機能量の重要度を評価する

重要

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

履歴ログ データに対して機能評価を実行することで、各機能が Personalizer の機械学習モデルにとってどの程度重要であったかを評価できます。 機能の評価は、次の場合に役立ちます。

  • モデルにとって最も重要な機能量または最も重要でない機能量を把握します。
  • モデルで現在重要な機能からインスピレーションを得ることで、学習に役立つ可能性のある追加の機能をブレインストーミングします。
  • 重要でない、または役に立たない可能性のある機能を特定し、さらなる分析または削除のために考慮する必要があります。
  • 機能を設計して Personalizer に送信するときに発生する可能性がある一般的な問題とエラーのトラブルシューティングを行います。 たとえば、GUID、タイムスタンプ、または一般的にスパースであるその他の機能を使用すると、問題が発生する可能性があります。 詳しくは機能の改善をご確認ください。

機能評価とは

機能の評価は、指定した期間に履歴的に収集されたログ データに対して、現在のモデル構成のコピーをトレーニングして実行することによって実行されます。 機能は一度に 1 つずつ無視され、各機能がある場合とない場合のモデルのパフォーマンスの差が測定されます。 機能の評価は履歴データに対して実行されるため、これらのパターンが将来のデータで観察される保証はありません。 ただし、これらの分析情報は、ログに記録されたデータがデータの十分な変動性または非定常プロパティをキャプチャしている場合、将来のデータに関連する可能性があります。 現在のモデルのパフォーマンスは、機能評価を実行しても影響を受けません。

機能の重要度スコアは、評価期間中の報酬に対する機能の相対的な影響の尺度です。 機能量の重要度スコアは、0 (最も重要でない) から 100 (最も重要) までの数値で、機能の評価に表示されます。 評価は特定の期間にわたって実行されるため、追加のデータが Personalizer に送信されたり、ユーザー、シナリオ、データが時間の経過と共に変化したりすると、機能の重要度が変わる可能性があります。

機能評価の作成

機能の重要度スコアを取得するには、ログに記録されたデータの期間にわたって機能の評価を作成し、機能の重要度スコアを含むレポートを生成する必要があります。 このレポートは、Azure portal で表示できます。 機能評価を作成するには:

  1. Azure portal Web サイトにアクセスする
  2. Personalizer リソースを削除します
  3. サイド ナビゲーション ウィンドウから [モニター] セクションを選択します
  4. [機能] タブを選択します
  5. [ポートの作成] 選択すると、新しい画面が表示されます
  6. レポートの名前を選択します
  7. 評価期間の開始終了時間を選択します
  8. [レポートの作成] を選択します

[監視] ブレードの [機能] タブをクリックし、[レポートの作成] をクリックして、Personalizer リソースで機能評価を作成する方法を示すスクリーンショット。

作成ウィンドウに、名前、開始日、終了日など、レポートのフィールドを入力する方法を示すスクリーンショット。

次に、レポート名が下のレポート テーブに表示されます。 機能評価の作成は実行時間の長いプロセスです。完了までの時間は評価期間中に Personalizer に送信されるデータの量によって異なります。 レポートの生成中は、評価の [状態] 列に "実行中" と表示され、完了すると "成功" に更新されます。 定期的にチェックして、評価が終了したかどうかを確認してください。

Personalizer リソースにログ データがあるさまざまな期間にわたって、複数の機能評価を実行できます。 古いデータに対して評価を実行できるように、データ保持期間が十分に長く設定されていることを確認します。

機能量の重要度スコアの解釈

重要度スコアの高い機能

重要度スコアが高い機能は、他の機能と比較して、評価期間中にモデルにより影響を与えました。 重要な機能は、モデルに含める追加機能を設計するためのインスピレーションを提供します。 たとえば、"IsWeekend" または "IsWeekday" というコンテキスト機能が食料品の買い物で重要度が高い場合、休日や長い週末も重要な要素である可能性があるため、この情報を取得する機能の追加を検討することをお勧めします。

重要度スコアが低い機能

重要度スコアが低い機能は、さらに分析する候補として適しています。 1 つ以上の理由で低スコアが発生する可能性があります。すべての低スコア機能が必ずしも悪い、または役に立たないわけではありません。 次の一覧は、機能のスコアが低い可能性がある理由の分析を開始するのに役立ちます。

  • この機能は、評価期間中のデータでほとんど観察されませんでした。

    • この機能の出現回数が他の機能と比較して少ない場合は、モデルが価値があるかどうかを判断するのに十分な頻度で機能が存在しなかったことを示している可能性があります。
  • 機能値には、多様性やバリエーションはあまりありませんでした。

    • この機能の一意の値の数が予想よりも少ない場合は、評価期間中に機能があまり変化せず、重要な分析情報が得られないことを示している可能性があります。
  • 機能値がノイズが多すぎる (ランダム) か、区別されすぎて、ほとんど値が提供されませんでした。

    • 機能評価の一意の値の数を確認します。 この機能の一意の値の数が予想よりも多い場合、または他の機能と比較して多い場合は、評価期間中に機能のノイズが多すぎたことを示している可能性があります。
  • データまたはフォーマットの問題があります。

    • 機能が書式設定され、期待どおりに Personalizer に送信されていることを確認します。
  • 機能スコアが低く、上記の理由が当てはまらない場合、機能はモデルの学習とパフォーマンスにとって価値がない可能性があります。

    • この機能は、モデルが平均報酬を最大化するのに役立たないため、削除することを検討してください。

重要度スコアの低い機能を削除すると、学習に必要なデータ量が減り、モデルのトレーニングを高速化できます。 また、モデルのパフォーマンスが向上する可能性もあります。 ただし、これは保証されておらず、さらに分析が必要になる場合があります。 コンテキスト機能とアクション機能の設計の詳細を参照してください。

一般的な問題と機能を改善する手順

  • カーディナリティの高い機能を送信します。 カーディナリティが高い機能は、多くのイベントで繰り返される可能性が低い多くの異なる値を持つ機能です。 たとえば、1 人の個人に固有の個人情報 (名前、電話番号、クレジット カード番号、IP アドレスなど) は、Personalizer では使用しないでください。

  • ユーザー ID の送信 ユーザー数が多い場合、この情報が Personalizer 学習に関連して平均報酬スコアを最大化する可能性は低くなります。 ユーザー ID (個人情報でなくても) を送信すると、モデルにノイズが追加される可能性があるため、推奨されません。

  • 機能が少なすぎます。 値は区別でき、数回以上出現することは、ほとんどありません。 秒までの正確なタイムスタンプは非常に少なくなる可能性があります。 たとえば、時間を「午前」、「正午」、「午後」にグループ化することで、より高密度に(したがって効果的に)することができます。

位置情報では、通常、より広範な分類を作成することによってメリットが得られます。 たとえば、緯度:47.67402° N、経度:122.12154 ° W の座標は正確すぎ、モデルは、緯度と経度を明確なディメンションとして学習するように強制されます。 位置情報に基づいてパーソナライズしようとしている場合は、位置情報をより大きなセクターにグループ化すると便利です。 そのための簡単な方法として、緯度と経度の数値に対して適切な丸め精度を選択し、緯度と経度を 1 つの文字列にすることで、それらを "区分" へと結合します。 たとえば、幅約数キロメートルのリージョン内の緯度: 47.67402 ° N、経度:122.12154 ° W は、"34.3, 12.1" と表すことができます。

  • 外挿された情報で機能セットを拡張します また、すでに持っている情報から導き出すことができる未踏の属性を考えることで、より多くの機能を得ることができます。 たとえば、架空の映画リストをパーソナライズするとき、週末と平日で異なる行動をユーザーから引き出せるでしょうか? 時間帯を拡大し、"週末" または "平日" 属性を与えることができます。 国や地域の文化的な休日は特定の種類の映画に対する注目を促しますか? たとえば、「ハロウィーン」という属性は、関連する場所で役立ちます。 多くの人にとって雨が映画の選択に大きな影響を与えるということがあるでしょうか? 天気サービスはそのような情報を時間と場所と共に提供することがあります。それを特別のフィーチャーとして追加できます。

次のステップ

Personalizer を使用してオフライン評価でポリシーのパフォーマンスを分析します。