カテゴリ予測とは
検索エンジンのパフォーマンス最適化は大きなトピックです。クエリ意図理解段階では、意味理解、固有表現認識 (NER)、用語の重み分析、スペル修正などの最適化手法を使用できます。ソート段階では、テキスト関連性分析、人気モデル、カテゴリ予測などの最適化手法を使用できます。また、クエリ分析ルールを設定し、ソート式を調整し、A/Bテストを実行して、さまざまな最適化ポリシーの検索パフォーマンスを比較することもできます。
このトピックでは、カテゴリ予測について説明します。検索クエリを入力すると、複数の商品が見つかります。システムは、検索クエリと各商品のカテゴリとの関連性を計算します。関連性がソート式で参照されている場合、関連性が高いほど商品のソートスコアが高くなります。この場合、商品は上位にランクされます。
たとえば、入力した検索クエリが「Bright」の場合、検索結果には牛乳カテゴリの商品と米カテゴリの商品が含まれる場合があります。「Bright」を検索したユーザーの中で、米カテゴリではなく牛乳カテゴリの商品をクリックしたユーザーが多いという行動データに基づいて、カテゴリ予測モデルをトレーニングできます。この場合、モデルは、「Bright」と牛乳カテゴリの関連性は、「Bright」と米カテゴリの関連性よりも高いと予測します。したがって、システムが各商品のソートスコアを計算すると、牛乳カテゴリの商品は米カテゴリの商品よりもスコアが高くなります。その結果、牛乳カテゴリの商品は米カテゴリの商品よりも上位にランクされます。モデルは、「Bright」を検索する意図は牛乳カテゴリの商品を見つける可能性が高いと予測します。これにより、検索のビジネス価値が高まります。
基本原則
カテゴリ予測の目的は、過去のクエリデータ、クリックに関する行動データ、およびカテゴリの商品に関する情報に基づいて、検索クエリと特定のカテゴリとの関連性を予測することです。過去の検索クエリ、検索後のクリックに関する行動データ、およびカテゴリの商品に関する情報に基づいてモデルをトレーニングして、検索クエリとカテゴリとの関連性を記述できます。
モデルをトレーニングするには、商品データを格納するデータソースが必要です。カテゴリ予測モデルを作成するときは、まずモデルをアプリケーションに関連付ける必要があります。次に、モデルのトレーニングに必要な3種類のデータを決定できます。
1. 検索リクエストにraw_queryパラメータを追加することで、アプリケーションのすべての過去の検索クエリを取得できます。
2. モデルのトレーニングを準備するときに、アプリケーションでフィールドを指定することで、カテゴリデータと商品データを取得できます。アプリケーションでは、少なくともカテゴリIDと商品タイトルを記録するフィールドを指定する必要があります。
3. アプリケーションでのクリックに関する行動データを報告するための計測を追加する必要があります。報告されるデータがより包括的で高品質であるほど、より多くの機能を備えたモデルを開発でき、より優れたパフォーマンスを実現できます。
OpenSearchは2つのオプションを提供します。行動データの有無にかかわらずモデルをトレーニングできます。
行動データを使用したモデルのトレーニングは、行動データがアップロードされるシナリオに適しています。トレーニングが開始されると、データの量、品質、および整合性が要件を満たしていることを確認するために、入力条件が自動的にチェックされます。モデルをトレーニングするために実行できる手順に注意してください。
1. 過去の検索クエリとカテゴリの情報を使用してサンプルデータを生成し、行動データを使用してサンプルデータにラベルを付けます。
2. インデックス統計を収集し、行動データに対して特徴量計算を実行することにより、クリック特徴量を生成します。
3. 検索クエリとカテゴリの商品タイトルを分析した後、検索クエリと商品タイトルのテキストの意味的特徴量を計算します。
4. トランザクションに関する行動データがアップロードされた場合は、インデックス統計を収集し、行動データに対して特徴量計算を実行して、トランザクション特徴量を生成します。このような特徴量は、トランザクションパフォーマンスがより良い商品を上位にランク付けするためにモデルで使用されます。
5. サンプルデータと、サンプルデータの行動特徴量、意味的特徴量、トランザクション特徴量、およびラベルがトレーニングデータとして結合されます。トレーニングデータをアルゴリズムにインポートして反復トレーニングを行います。
6. トレーニングが完了すると、サンプルの検索クエリとカテゴリ間の関連性を記述するモデルが取得されます。このモデルを使用して、検索クエリと特定のカテゴリとの関連性を予測します。
行動データを使用しないモデルのトレーニングは、行動データがアップロードされないシナリオ、または行動データの品質が不十分なシナリオに適しています。モデルのトレーニングを開始するには、アプリケーションでカテゴリIDと商品タイトルを記録するフィールドのみを指定する必要があります。この場合、行動データがないため、サンプルデータにラベルを付けるための基準は存在しません。検索クエリとカテゴリの商品タイトルを分析した後、検索クエリと商品タイトルのテキスト間の意味的関連性、つまり検索クエリとカテゴリ間の関連性を計算します。
理論的には、行動データでトレーニングされたモデルは、行動データなしでトレーニングされたモデルよりも優れています。より多くの特徴量を持つモデルは、検索クエリとカテゴリ間のより包括的な関連性を記述し、モデルの予測はより正確になります。
モデルが行動データの有無にかかわらずトレーニングされるかどうかに関係なく、トレーニングには多数の実験、さまざまなシナリオからのデータ、および慎重なパラメータ調整が含まれ、結果が期待どおりになるようにします。
カテゴリ予測の使用
要件
モデルをトレーニングする前に、データソースを準備し、モデルをアプリケーションに関連付ける必要があります。カテゴリ予測モデルには、アプリケーションのカテゴリと商品データ、過去の検索エントリ、および行動データが必要です。
クリックに関する行動データがアップロードされていない場合、またはクリックに関する行動データをトレーニングに使用したくない場合、またはクリックに関する行動データがトレーニング条件を満たしていない場合は、行動データなしでモデルをトレーニングできます。この場合、カテゴリ予測モデル用にアプリケーションから次の3つのフィールドのデータを選択する必要があります:カテゴリID、商品タイトル、およびカテゴリ名。カテゴリIDと商品タイトルを記録するフィールドは必須であり、カテゴリ名を記録するフィールドはオプションです。モデルのトレーニングが完了すると、モデルの特定の予測結果がパフォーマンス評価のためにエクスポートされます。カテゴリ名は、パフォーマンス評価ページで、検索クエリとカテゴリ間の関連性が期待どおりであるかどうかを手動で評価するために使用されます。モデルをトレーニングするときは、カテゴリ名を記録するフィールドを選択することをお勧めします。
クリックに関する行動データがアップロードされている場合は、モデルをトレーニングするときに、上記のフィールドに加えて、行動データに関連するフィールドを選択できます。行動データがトレーニング条件を満たしている場合、データはモデルのトレーニングに使用されます。
手順
アプリケーションでカテゴリ予測モデルを作成します。
カテゴリ予測モデルを適用します:モデルをクエリ分析に適用し、次にモデルを粗ソートと精密ソートに適用します。
クエリ分析ルールを作成し、カテゴリ予測を設定し、手順1で作成したモデルを選択します。
検索リクエストでカテゴリ予測モデルを有効にします:SDKを使用して操作を呼び出し、raw_queryパラメータを指定します。
詳細については、カテゴリ予測の使用を参照してください。