見習いモードを使用して、既存のアプリケーションに影響を与えずに Personalizer をトレーニングするUse Apprentice mode to train Personalizer without affecting your existing application

実際の補強学習の性質により、Personalizer モデルは運用環境でのみトレーニングできます。Due to the nature of real-world Reinforcement Learning, a Personalizer model can only be trained in a production environment. 新しいユース ケースをデプロイする場合、モデルが十分にトレーニングされるまで時間がかかるため、Personalizer モデルは効率的には実行されません。When deploying a new use case, the Personalizer model is not performing efficiently because it takes time for the model to be sufficiently trained. 見習いモードは、このような状況を軽減し、開発者がコードを変更することなくモデルの自信を得ることができる学習動作です。Apprentice mode is a learning behavior that eases this situation and allows you to gain confidence in the model – without the developer changing any code.

重要

見習いモード (パブリック プレビュー) は、E0 価格レベルでのみ使用できます。Apprentice mode (in Public Preview) is only available on the E0 pricing tier. 詳細については、価格のページを参照してください。Please see pricing for details. リソースの作成時に E0 レベルを選択するか、Azure portal の [サブスクリプション] タブから E0 にアップグレードすることができます。You can select the E0 tier at resource creation or upgrade to E0 from the Subscriptions tab in the Azure portal. 別のレベルを使用していて、E0 にアップグレードした場合、既存の Personalizer リソースが E0 レベルに自動的に移行されます。If you are on another tier, and upgrade to E0, your existing Personalizer resources will automatically be migrated to the E0 tier.

見習いモードとはWhat is Apprentice mode?

見習いがマスターから学習し、経験によってさらに向上するのと同じように、見習いモードは、既存のアプリケーション ロジックから取得された結果を観察することによって Personalizer が学習できるようにする "動作" です。Similar to how an apprentice learns from a master, and with experience can get better; Apprentice mode is a behavior that lets Personalizer learn by observing the results obtained from existing application logic.

Personalizer は、アプリケーションと同じ出力を模倣することによってトレーニングを行います。Personalizer trains by mimicking the same output as the application. イベント フローが増えると、Personalizer は既存のロジックと結果に影響を与えることなく、既存のアプリケーションに "追い付く" ことができます。As more events flow, Personalizer can catch up to the existing application without impacting the existing logic and outcomes. Azure portal と API から使用できるメトリックは、モデルが学習するパフォーマンスを把握するのに役立ちます。Metrics, available from the Azure portal and the API, help you understand the performance as the model learns.

Personalizer が一定のレベルの理解を学習して獲得すると、開発者は動作を見習いモードからオンライン モードに変更できます。Once Personalizer has learned and attained a certain level of understanding, the developer can change the behavior from Apprentice mode to Online mode. その時点で、Personalizer は Rank API でのアクションに影響を与えるようになります。At that time, Personalizer starts influencing the actions in the Rank API.

見習いモードの目的Purpose of Apprentice Mode

見習いモードを使用すると、Personalizer サービスとその機械学習機能が信頼できるようになり、オンライン トラフィックを危険にすることなく、学習可能な情報がサービスに送信されることの再保証が提供されます。Apprentice mode gives you trust in the Personalizer service and its machine learning capabilities, and provides reassurance that the service is sent information that can be learned from – without risking online traffic.

見習いモードを使用する主な理由は、次の 2 つです。The two main reasons to use Apprentice mode are:

  • コールド スタートの軽減: 見習いモードは、最良のアクションが返されず、60 - 80% 前後の十分なレベルの効果が得られない場合に、"新しい" モデルの学習時間を管理および評価するのに役立ちます。Mitigating Cold Starts: Apprentice mode helps manage and assess the cost of a "new" model's learning time - when it is not returning the best action and not achieved a satisfactory level of effectiveness of around 60-80%.
  • アクションとコンテキストの特徴の検証: アクションとコンテキストで送信される特徴は、少なすぎる、多すぎる、正しくない、詳細すぎるなど、理想的な有効度を達成するために Personalizer をトレーニングするのに不適切または不正確である場合があります。Validating Action and Context Features: Features sent in actions and context may be inadequate or inaccurate - too little, too much, incorrect, or too specific to train Personalizer to attain the ideal effectiveness rate. 特徴に関する問題を見つけて修正するには、特徴評価を使用します。Use feature evaluations to find and fix issues with features.

どのようなときに見習いモードを使用する必要があるかWhen should you use Apprentice mode?

ユーザーのエクスペリエンスが Personalizer によって影響を受けないようにしながら、次のシナリオを通して有効性が向上するように Personalizer をトレーニングするには、見習いモードを使用します。Use Apprentice mode to train Personalizer to improve its effectiveness through the following scenarios while leaving the experience of your users unaffected by Personalizer:

  • 新しいユース ケースに Personalizer を実装しています。You are implementing Personalizer in a new use case.
  • コンテキストまたはアクションで送信する特徴を大幅に変更しました。You have significantly changed the features you send in Context or Actions.
  • 報酬を計算するタイミングと方法を大幅に変更しました。You have significantly changed when and how you calculate rewards.

見習いモードは、報酬スコアに対する Personalizer の影響を測定する効果的な方法ではありません。Apprentice mode is not an effective way of measuring the impact Personalizer is having on reward scores. 各 Rank の呼び出しに対して最適なアクションの選択での Personalizer の効果を測定するには、オフライン評価を使用します。To measure how effective Personalizer is at choosing the best possible action for each Rank call, use Offline evaluations.

見習いモードを使用する必要があるユーザーWho should use Apprentice mode?

見習いモードは、開発者、データ サイエンティスト、およびビジネス上の意思決定者に役立ちます。Apprentice mode is useful for developers, data scientists and business decision makers:

  • 開発者は、見習いモードを使用して、Rank API と Reward API がアプリケーションで正しく使用されていること、およびアプリケーションから Personalizer に送信される特徴にバグ、またはタイムスタンプや UserID 要素などの関連のない特徴が含まれないことを、確認することができます。Developers can use Apprentice mode to make sure the Rank and Reward APIs are being used correctly in the application, and that features being sent to Personalizer from the application contains no bugs, or non-relevant features such as a timestamp or UserID element.

  • データ サイエンティストは、見習いモードを使用して、特徴が Personalizer モデルのトレーニングに効果的であること、および報酬の待機時間が長すぎたり短かすぎたりしないことを、検証できます。Data scientists can use Apprentice mode to validate that the features are effective to train the Personalizer models, that the reward wait times aren’t too long or short.

  • ビジネス上の意思決定者は、見習いモードを使用して、既存のビジネス ロジックと比較して Personalizer により結果 (つまり報酬) が向上する可能性を評価することができます。Business Decision Makers can use Apprentice mode to assess the potential of Personalizer to improve results (i.e. rewards) compared to existing business logic. これにより、実際の収益やユーザー満足度につながるユーザー エクスペリエンスに影響を与える決定を、情報に基づいて行うことができます。This allows them to make a informed decision impacting user experience, where real revenue and user satisfaction are at stake.

動作の比較 - 見習いモードとオンライン モードComparing Behaviors - Apprentice mode and Online mode

見習いモードでの学習は、次の点がオンライン モードと異なります。Learning when in Apprentice mode differs from Online mode in the following ways.

領域Area 見習いモードApprentice mode オンライン モードOnline mode
ユーザー エクスペリエンスへの影響Impact on User Experience 既存のユーザー動作を使用し、既定のアクションとそれによって獲得された報酬を(影響を与えるのではなく) 観察することによって、Personalizer をトレーニングできます。You can use existing user behavior to train Personalizer by letting it observe (not affect) what your default action would have been and the reward it obtained. これは、ユーザーのエクスペリエンスとビジネスの結果が影響を受けないことを意味します。This means your users’ experience and the business results from them won’t be impacted. Rank の呼び出しから返された上位のアクションを表示して、ユーザーの動作に影響を与えます。Display top action returned from Rank call to affect user behavior.
学習速度Learning speed Personalizer の学習速度は、オンライン モードで学習しているときより、見習いモードのときの方が遅くなります。Personalizer will learn more slowly when in Apprentice mode than when learning in Online mode. 見習いモードでは、既定のアクションによって獲得される報酬を観察することによってのみ学習できます。そのため、探索を実行できないので、学習の速度が制限されます。Apprentice mode can only learn by observing the rewards obtained by your default action, which limits the speed of learning, as no exploration can be performed. 現在のモデルの活用と新しい傾向の調査の両方が可能であるため、より迅速に学習できます。Learns faster because it can both exploit the current model and explore for new trends.
学習効果の "天井"Learning effectiveness "Ceiling" Personalizer は、基になるビジネス ロジックを近似でき、一致することはほとんどなく、超えることはありません (各 Rank 呼び出しの既定のアクションによって獲得される報酬合計)。Personalizer can approximate, very rarely match, and never exceed the performance of your base business logic (the reward total achieved by the default action of each Rank call). Personalizer はアプリケーションのベースラインを超える必要があり、時間が経って行き詰まったら、オフライン評価と特徴評価を実施して、モデルの改善を続ける必要があります。Personalizer should exceed applications baseline, and over time where it stalls you should conduct on offline evaluation and feature evaluation to continue to get improvements to the model.
rewardActionId に対する Rank API の値Rank API value for rewardActionId rewardActionId は常に Rank 要求で送信する最初のアクションであるため、ユーザーのエクスペリエンスが影響を受けることはありません。The users' experience doesn’t get impacted, as rewardActionId is always the first action you send in the Rank request. つまり、見習いモードの間は、Rank API はアプリケーションに対して目に見えることは何も行いません。In other words, the Rank API does nothing visible for your application during Apprentice mode. アプリケーションの Reward API は、モードが変わっても、Reward API の使用方法が変更されないようにする必要があります。Reward APIs in your application should not change how it uses the Reward API between one mode and another. ユーザーのエクスペリエンスは、Personalizer によってアプリケーションに対して選択された rewardActionId により変更されます。Users' experience will be changed by the rewardActionId that Personalizer chooses for your application.
評価Evaluations Personalizer では、既定のビジネス ロジックによって得られる報酬の合計と、その時点でオンライン モードになっている場合に Personalizer が獲得する報酬の合計の比較が保持されています。Personalizer keeps a comparison of the reward totals that your default business logic is getting, and the reward totals Personalizer would be getting if in Online mode at that point. 比較は、そのリソースの Azure portal で使用できますA comparison is available in the Azure portal for that resource オフライン評価を実行することによって、Personalizer の有効性を評価します。これにより、Personalizer によって達成された合計報酬と、アプリケーションのベースラインの予想される報酬を比較できます。Evaluate Personalizer’s effectiveness by running Offline evaluations, which let you compare the total rewards Personalizer has achieved against the potential rewards of the application’s baseline.

見習いモードの有効性に関する注意事項:A note about apprentice mode's effectiveness:

  • 見習いモードでの Personalizer の有効性は、アプリケーションのベースラインの 100% 近くを達成することはほとんどなく、それを超えることはありません。Personalizer's effectiveness in Apprentice mode will rarely achieve near 100% of the application's baseline; and never exceed it.
  • ベスト プラクティスは、100% の達成を試みないようにすることです。ただし、ユース ケースによっては、60 から 80% の範囲を対象にする必要があります。Best practices would be not to try to get to 100% attainment; but a range of 60% – 80% should be targeted depending on the use case.

見習いモードを使用して履歴データでトレーニングを行うUsing Apprentice mode to train with historical data

大量の履歴データがあり、Personalizer のトレーニングに使用したい場合は、見習いモードを使用し、Personalizer を通してデータを再生できます。If you have a significant amount of historical data, you’d like to use to train Personalizer, you can use Apprentice mode to replay the data through Personalizer.

見習いモードで Personalizer を設定し、履歴データからのアクションとコンテキストの特徴で Rank を呼び出すスクリプトを作成します。Set up the Personalizer in Apprentice Mode and create a script that calls Rank with the actions and context features from the historical data. このデータのレコードの計算に基づいて、Reward API を呼び出します。Call the Reward API based on your calculations of the records in this data. 何らかの結果を得るには約 5 万件の履歴イベントが必要ですが、結果の信頼性を高めるために 50 万件が推奨されます。You will need approximately 50,000 historical events to see some results but 500,000 is recommended for higher confidence in the results.

履歴データからトレーニングするときは、送信されるデータ (コンテキストとアクションの特徴、Rank 要求で使用される JSON のレイアウト、このトレーニング データ セットでの報酬の計算) を、既存のアプリケーションから利用できるデータ (特徴および特典の計算) と一致させることをお勧めします。When training from historical data, it is recommended that the data sent in (features for context and actions, their layout in the JSON used for Rank requests, and the calculation of reward in this training data set), matches the data (features and calculation of reward) available from the existing application.

オフライン データと事後データは、より不完全で、形式の不備や相違が多くなる傾向があります。Offline and post-facto data tends to be more incomplete and noisier and differs in format. 履歴データからのトレーニングを行うことは可能ですが、その結果は決定的でなく、Personalizer の学習の結果を予測するのに適していない可能性があります。過去のデータと既存のアプリケーションで特徴が異なる場合は特にそうです。While training from historical data is possible, the results from doing so may be inconclusive and not a good predictor of how well Personalizer will learn, especially if the features vary between past data and the existing application.

一般に、Personalizer では、履歴データを使用してトレーニングするより、見習いモードに動作を変更し、既存のアプリケーションから学習した方が、効果的なモデルを作成するためのより効率的なパスになり、作業量、Data Engineering、クリーンアップ作業が少なくなります。Typically for Personalizer, when compared to training with historical data, changing behavior to Apprentice mode and learning from an existing application is a more effective path to having an effective model, with less labor, data engineering, and cleanup work.

見習いモードの使用と A/B テストの使用Using Apprentice Mode versus A/B Tests

検証が済み、オンライン モードで学習している場合にのみ、Personalizer の処理の A/B テストを行うと役に立ちます。It is only useful to do A/B tests of Personalizer treatments once it has been validated and is learning in Online mode. 見習いモードでは、既定のアクションのみが使用されます。これは、すべてのユーザーに対してコントロール エクスペリエンスが効果的に表示されることを意味します。In Apprentice mode, only the default action is used, which means all users would effectively see the control experience.

Personalizer が "処理" だけであっても、データの検証が Personalizer のトレーニングに対して適切であるときは、同じ課題が存在します。Even if Personalizer is just the treatment, the same challenge is present when validating the data is good for training Personalizer. 100% のトラフィックを使用し、すべてのユーザーがコントロール (影響を受けない) エクスペリエンスを取得するようにして、代わりに見習いモードを使用できます。Apprentice mode could be used instead, with 100% of traffic, and with all users getting the control (unaffected) experience.

Personalizer を使用してオンラインで学習するユース ケースができたら、A/B 実験を使用して、報酬に使用されるシグナルより複雑な可能性がある結果の制御されたコーホートと科学的な比較を行うことができます。Once you have a use case using Personalizer and learning online, A/B experiments allow you to do controlled cohorts and scientific comparison of results that may be more complex than the signals used for rewards. A/B テストで回答できる質問の例を次に示します: In a retail website, Personalizer optimizes a layout and gets more users to _check out_ earlier, but does this reduce total revenue per transaction?An example question an A/B test could answer is: In a retail website, Personalizer optimizes a layout and gets more users to _check out_ earlier, but does this reduce total revenue per transaction?

次のステップNext steps