Personalizer とは

重要

2023 年 9 月 20 日以降は、新しい Personalizer リソースを作成できなくなります。 Personalizer サービスは、2026 年 10 月 1 日に廃止されます。

Note

2023 年 7 月時点で、Azure AI サービスには、以前 Cognitive Services および Azure Applied AI Services と呼ばれていたものすべてが含まれています。 価格に変更はありません。 Cognitive Services および Azure Applied AI という名前は、Azure の課金、コスト分析、価格表、および Price API で引き続き使用されます。 アプリケーション プログラミング インターフェイス (API) または SDK に破壊的変更はありません。

Azure AI Personalizer は、強化学習を使用して、アプリケーションがよりスマートな意思決定を大規模に行う AI サービスです。 Personalizer は、アプリケーション、シナリオ、ユーザー ("コンテキスト") の状態に関する情報と、考えられる一連の意思決定および関連属性 ("アクション") を処理して、最適な意思決定を判断します。 アプリケーションからのフィードバック ("報酬") が Personalizer に送信され、ほぼリアルタイムで意思決定能力を向上させる方法を学習するために活用されます。

Personalizer は、さまざまなシナリオで実行する最適なアクションを決定できます。

  • eコマース: 購入の可能性を最大限に高めるには、どの商品を顧客に表示する必要があるか。
  • コンテンツのお勧め: クリックスルー率を上げるには、どの記事を表示する必要があるか。
  • コンテンツ デザイン: Web サイトのユーザー エンゲージメントを最適化するには、どこに広告を配置する必要があるか。
  • コミュニケーション: 応答の可能性を最大限に高めるには、どのようなタイミングと方法で通知を送信する必要があるか。

Personalizer の使用を開始するには、クイックスタート ガイドに従うか、またはこの対話型デモを使用してブラウザーで Personalizer を試してください。

このドキュメントには、次のような記事が記載されています。

  • クイック スタートでは、ステップバイステップの手順によって、サービスに対する API 要求の作成を開始するためのセットアップとサンプル コードについて説明します。
  • ハウツー ガイドには、Personalizer 機能と拡張機能を使用するための手順が含まれています。
  • コード サンプルは、Personalizer の使用方法を示し、アプリケーションとサービスを簡単に連結するのに役立ちます。
  • チュートリアルは、より広範なビジネス ソリューションの一部として Personalizer を実装する、より長いウォークスルーです。
  • 概念では、Personalizer の機能と基礎についてさらに詳しく説明します。

Personalizer のしくみ

Personalizer は、強化学習を使用して、すべてのユーザーに対して特定の "コンテキスト" に最適な "アクション" を選択することで、平均 "報酬" を最大化します。

  • コンテキスト: 意思決定に関連する可能性があるアプリケーション、シナリオ、またはユーザーの状態を記述する情報。
    • 例: Web サイトにアクセスするユーザーの位置情報、デバイスの種類、年齢、お気に入りのトピック。
  • アクション: 選択できる項目の個別のセットと、各項目を記述する属性。
    • 例: 一連のニュース記事と、各記事で取り上げられているトピック。
  • 報酬: 意思決定が "悪かった" (0) か "良かった" (1) かを示す、0 から 1 の間の数値スコア
    • 例: "1" は、ユーザーが提案された記事をクリックしたことを示し、"0" はユーザーがクリックしなかったことを示します。

Rank および Reward API

Personalizer を使用すると、2 つの主要 API のみを使用して、強化学習のパワーと柔軟性を活用できます。

RankAPI は、意思決定が行われるたびにアプリケーションによって呼び出されます。 アプリケーションは、一連のアクション、各アクションを記述する特徴、および現在のコンテキストを記述する特徴を含む JSON を送信します。 各 Rank API 呼び出しはイベントと呼ばれ、一意の "イベント ID" で通知されます。 Personalizer は、基になるモデルによって決定された平均報酬の合計を最大化する最適なアクションの ID を返します。

RewardAPI は、Personalizer が Rank 呼び出しで返されたアクション ID に価値があったかどうかを学習するのに役立つフィードバックが発生するたびに、アプリケーションによって呼び出されます。 たとえば、ユーザーが提案されたニュース記事をクリックした場合や、提案された製品の購入を完了した場合などです。 Reward API の呼び出しは、シナリオのニーズに合わせてリアルタイム (Rank が呼び出された直後) にすることも、遅延させることもできます。 報酬スコアは、ビジネス メトリックと目標によって決定され、アプリケーションのアルゴリズムまたはルールによって生成できます。 スコアは 0 から 1 の範囲の実数です。

学習モード

  • 徒弟モード 徒弟が職人を観察して技術を学ぶのと同様に、徒弟モードでは、Personalizer はアプリケーションの現在の意思決定ロジックを観察することによって学習できます。 これにより、トレーニングされていない新しいモデルで発生するいわゆる "コールド スタート" の問題を軽減し、Personalizer に送信されるアクションとコンテキスト機能を検証できます。 徒弟モードでは、Rank API を呼び出すたびに、Personalizer を使用しない場合にアプリケーションが実行するアクションである "ベースライン アクション" または "既定のアクション" が返されます。 これは、可能な一連のアクションの最初の項目として、Rank API でアプリケーションから Personalizer に送信されます。

  • オンライン モード Personalizer は、基になる RL モデルによって決定されたコンテキストに基づいて最適なアクションを返し、パフォーマンスを向上させる可能性のある他の可能なアクションを探索します。 Personalizer は、Reward API の呼び出しで提供されるフィードバックから学習します。

Personalizer では、すべてのユーザーの集合的な情報を使用して、現在のコンテキストに基づいて最適なアクションを学習します。 このサービスでは、次の処理は行われません。

  • ユーザー プロファイル情報を保持および管理する。 一意のユーザー ID は Personalizer に送信しないでください。
  • 個々のユーザーの好みや履歴データを記録する。

シナリオの例

ユーザーに表示する最適なコンテンツを選択するために Personalizer を利用できるいくつかの例を示します。

Content type アクション {特徴} コンテキストの特徴 返される報酬アクション ID
(このコンテンツが表示されます)
ニュース記事 a. The president... {国内, 政治, [テキスト]}
b. Premier League ... {グローバル, スポーツ, [テキスト, 画像, ビデオ]}
c. Hurricane in the ... {地域, 気象, [テキスト,画像]}
Country='USA',
Recent_Topics=('politics', 'business'),
Month='October'
a The president...
Movies 1. Star Wars {1977, [アクション, アドベンチャー, ファンタジー], ジョージ ルーカス}
2. Hoop Dreams {1994, [ドキュメンタリー, スポーツ], スティーブ ジェームズ}
3. Casablanca {1942, [ロマンス, ドラマ, 戦争], マイケル カーティス}
Device='smart TV',
Screen_Size='large',
Favorite_Genre='classics'
3. Casablanca
eコマース製品 i. Product A {3 kg, $$$$, 1 日以内に配送}
ii. Product B {20 kg, $$, 7 日以内に配送}
iii. Product C {3 kg, $$$, 2 日以内に配送}
Device='iPhone',
Spending_Tier='low',
Month='June'
ii. Product B

シナリオの要件

Personalizer は、対象のシナリオが以下の場合に使用します。

  • 各パーソナル化イベントで選択できるアクションまたは項目のセットが限定されている。 Rank API 呼び出しごとのアクション数を 50 個以下にすることをお勧めします。 可能性のあるアクションがそれより多い場合は、レコメンデーション エンジンまたは別のメカニズムを使用して、Rank API を呼び出す前にアクションの一覧を減らすことをお勧めします。
  • アクション ("アクションの特徴") を説明する情報がある。
  • 現在のコンテキスト (コンテキストの特徴) を説明する情報がある。
  • Personalizer が学習できるようにするための十分なデータ ボリュームがある。 一般に、Personalizer が効果的に学習できるようにするには、1 日あたり 1,000 件以上のイベントが推奨されます。 Personalizer が十分なデータを受け取らない場合、サービスが最適なアクションを判別するのに要する時間が長くなります。

AI の責任ある使用

Microsoft は、人を第一に考える原則に基づいて、AI の発展に取り組んでいます。 AI モデル (Personalizer サービスで使用可能なモデルなど) には大きな潜在的な利点がありますが、慎重な設計と深く考慮された軽減策がないと、このようなモデルによって正しくないか、または場合によっては有害なコンテンツが生成される可能性があります。 Microsoft は、悪用や意図しない損害からの保護に役立つ多大な投資を行ってきました。これには、責任ある AI の使用のための Microsoft の原則の採用、顧客をサポートするためのコンテンツ フィルターの構築、オンボードされた顧客への責任ある AI 実装ガイダンスの提供などが含まれます。 Personalizer に関する責任ある AI ドキュメントを参照してください。

Personalizer をアプリケーションに統合する

  1. "アクション""コンテキスト"設計および計画します。 フィードバックを "報酬" スコアとして解釈する方法を決定します。

  2. 作成した各 Personalizer リソースは、1 つの "学習ループ" と見なされます。 このループでは、そのコンテンツまたはユーザー エクスペリエンスに対する Rank と Reward の両方の呼び出しを受け取り、基になる RL モデルをトレーニングします。 以下のものがあります。

    リソースの種類 目的
    徒弟モード - E0 "オンライン モード" を使用して運用環境でより良いポリシーを学習する前に、既存のアプリケーションに影響を与えることなく、現在の意思決定ロジックを模倣するように Personalizer をトレーニングします。
    "オンライン モード" - Standard、S0 Personalizer は RL を使用して、運用環境で最適なアクションを判別します。
    "オンライン モード" - Free、F0 限定された非運用環境で Personalizer をお試しください。
  3. 対象のアプリケーション、Web サイトまたはシステムに Personalizer を追加します。

    1. Personalizer への Rank 呼び出しをアプリケーション、Web サイト、またはシステム内に追加して、最適なアクションを判別します。

    2. シナリオで "報酬アクション ID" として指定されている最適なアクションを使用します。

    3. ユーザーの行動またはフィードバックのデータに "ビジネス ロジック" を適用して、報酬スコアを決定します。 次に例を示します。

      動作 算出された報酬スコア
      ユーザーは Personalizer によって提案されたニュース記事を選択した 1
      ユーザーは Personalizer によって提案されて "いない" ニュース記事を選択した 0
      ユーザーは、ニュース記事の選択を迷い、優柔不断にスクロールし、最終的に Personalizer によって提案されたニュース記事を選択した 0.5
    4. 0 から 1 までの報酬スコアを送信する Reward 呼び出しを追加します。

      • フィードバックを受信した直後。
      • または、遅延フィードバックが予想される、シナリオ内での後のタイミング。
    5. Personalizer がオンラインで意思決定を行うために重要なデータを受信した一定期間後に、オフライン評価でループを評価します。 オフライン評価を使用すると、コードを変更したりユーザーに影響を与えたりすることなく、Personalizer サービスの有効性をテストして評価することができます。

次のステップ