|
| 1 | +--- |
| 2 | +title: Active learning - Personalizer |
| 3 | +titleSuffix: Azure Cognitive Services |
| 4 | +description: |
| 5 | +services: cognitive-services |
| 6 | +author: edjez |
| 7 | +manager: nitinme |
| 8 | +ms.service: cognitive-services |
| 9 | +ms.subservice: personalizer |
| 10 | +ms.topic: overview |
| 11 | +ms.date: 05/30/2019 |
| 12 | +ms.author: edjez |
| 13 | +--- |
| 14 | + |
| 15 | +# Active learning and learning policies |
| 16 | + |
| 17 | +When your application calls the Rank API, you receive a rank of the content. Business logic can use this rank to determine if the content should be display to the user. When you display the ranked content, that is an _active_ rank event. When your application does not display that ranked content, that is an _inactive_ rank event. |
| 18 | + |
| 19 | +Active rank event information is returned to Personalizer. This information is used to continue training the model through the current learning policy. |
| 20 | + |
| 21 | +## Active events |
| 22 | + |
| 23 | +Active events should always be shown to the user and the reward call should be returned to close the learning loop. |
| 24 | + |
| 25 | +### Inactive events |
| 26 | + |
| 27 | +Inactive events shouldn't change the underlying model because the user wasn't given a chance to choose from the ranked content. |
| 28 | + |
| 29 | +## Don't train with inactive rank events |
| 30 | + |
| 31 | +For some applications, you may need to call the Rank API without knowing yet if your application will display the results to the user. |
| 32 | + |
| 33 | +This happens when: |
| 34 | + |
| 35 | +* You may be pre-rendering some UI that the user may or may not get to see. |
| 36 | +* Your application may be doing predictive personalization in which Rank calls are made with less real-time context and their output may or may not be used by the application. |
| 37 | + |
| 38 | +### Disable active learning for inactive rank events during Rank call |
| 39 | + |
| 40 | +To disabling automatic learning, call Rank with `learningEnabled = False`. |
| 41 | + |
| 42 | +Learning for an inactive event is implicitly activated if you send a reward for the Rank. |
| 43 | + |
| 44 | +## Learning policies |
| 45 | + |
| 46 | +Learning policy determines the specific *hyperparameters* of the model training. Two models of the same data, trained on different learning policies, will behave differently. |
| 47 | + |
| 48 | +### Importing and exporting Learning Policies |
| 49 | + |
| 50 | +You can import and export learning policy files from the Azure portal. This allows you to save existing policies, test them, replace them, and archive them in your source code control as artifacts for future reference and audit. |
| 51 | + |
| 52 | +### Learning policy settings |
| 53 | + |
| 54 | +The settings in the **Learning Policy** are not intended to be changed. Only change the settings when you understand how they impact Personalizer. Changing settings without this knowledge will cause side effects, including invalidating Personalizer models. |
| 55 | + |
| 56 | +### Comparing effectiveness of learning policies |
| 57 | + |
| 58 | +You can compare how different Learning Policies would have performed against past data in Personalizer logs by doing [offline evaluations](concepts-offline-evaluation.md). |
| 59 | + |
| 60 | +[Upload your own Learning Policies](how-to-offline-evaluation.md) to compare with the current learning policy. |
| 61 | + |
| 62 | +### Discovery of optimized learning policies |
| 63 | + |
| 64 | +Personalizer can create a more optimized learning policy when doing an [offline evaluation](how-to-offline-evaluation.md). |
| 65 | +A more optimized learning policy, which is shown to have better rewards in an offline evaluation, will yield better results when used online in Personalizer. |
| 66 | + |
| 67 | +After an optimized learning policy has been created, you can apply it directly to Personalizer so it replaces the current policy immediately, or you can save it for further evaluation and decide in the future whether to discard, save, or apply it later. |
0 commit comments