テキストの関連性のみに基づいて検索結果を順位付けすると、ユーザーが実際に求めている内容を見逃すことがあります。たとえば、「Bright」というクエリで検索した場合、ユーザーは米よりも乳製品を求める可能性が高いですが、テキストのみに依存する順位付けではその意図を捉えることができません。カテゴリ予測は、過去の検索およびクリックデータを用いてモデルをトレーニングし、クエリと商品カテゴリ間の関連性を学習します。その後、この関連性スコアをソート時のランキング調整に活用します。
ソート式でカテゴリ関連性スコアを参照すると、関連性の高いカテゴリに属する商品が上位に表示されます。これにより、すべてのクエリに対して手動でソート重みを調整することなく、商業的に最も関連性の高い結果を最適に表示できます。
仕組み
カテゴリ予測は、検索クエリと各商品カテゴリとの間の関連性を測定するモデルをトレーニングします。このモデルは以下の 3 つのデータソースを活用します:
| データソース | 提供方法 |
|---|---|
| 過去の検索クエリ | 検索リクエストに raw_query パラメーターを追加します |
| カテゴリおよび商品データ | アプリケーション内でフィールドを指定します。カテゴリ ID および商品タイトルは必須です |
| 行動データ | アプリケーションを改修してクリックイベントをレポートするように設定します |
OpenSearch では、行動データの有無に応じて 2 種類のトレーニングモードをサポートしています。
行動データを用いたトレーニング
クリックデータがアップロード済みであり、かつトレーニングのしきい値を満たす場合にこのモードを使用します。トレーニング開始時に、OpenSearch は自動的にデータの量、品質、整合性が要件を満たしているかを検証します。
トレーニングパイプラインでは、以下のステップが実行されます:
過去の検索クエリおよびカテゴリ情報からサンプルデータを生成し、行動データを用いてサンプルにラベルを付与します。
インデックス統計情報を収集し、クリックデータに対して特徴量計算を実行してクリック特徴量を生成します。
検索クエリおよび商品タイトルを分析し、意味的特徴量を算出します。
トランザクション行動データが利用可能な場合、特徴量計算を実行してトランザクション特徴量を生成します。これにより、トランザクションパフォーマンスが優れた商品をより上位にランキングできます。
サンプルデータ、行動特徴量、意味的特徴量、トランザクション特徴量、およびラベルを統合してトレーニングデータを作成し、アルゴリズムに対して反復的なトレーニングを実行します。
検索クエリとカテゴリ間の関連性を記述するモデルを出力します。
行動データを用いないトレーニング
クリックデータが未取得または未アップロードである場合、あるいはトレーニングに使用しないこと、またはデータがトレーニングのしきい値を満たさない場合にこのモードを使用します。必要なフィールドはカテゴリ ID および商品タイトルのみです。
行動データがない場合、サンプルデータに対するラベルは存在しません。代わりに、モデルは検索クエリのテキストと商品タイトルの間の意味的関連性を計算し、これをカテゴリ関連性スコアとして使用します。
行動データを用いてトレーニングされたモデルは、関連性の多様な次元を捉えるため、より正確な予測を実現します。いずれのモードでも、異なるシナリオのデータを用いたパラメータチューニングおよび検証が必要です。
前提条件
モデルのトレーニングを開始する前に、以下の条件を満たしていることを確認してください。
商品データを格納するデータソース
モデルと関連付けるアプリケーション
アプリケーションのカテゴリおよび商品データ、過去の検索履歴、行動データ
アプリケーション内で以下のフィールドが指定されていること
| フィールド | 必須 | 目的 |
|---|---|---|
| カテゴリ ID | はい | 各商品が属するカテゴリを識別します |
| 商品タイトル | はい | 意味的関連性の算出に使用します |
| カテゴリ名 | いいえ(推奨) | パフォーマンス評価ページ上で手動レビューを行う際に表示されます |
カテゴリ名フィールドを含めることで、パフォーマンス評価ページ上で予測されたカテゴリ・クエリ間の関連性が期待通りかどうかを確認できます。
クリックデータが利用可能であり、トレーニングのしきい値を満たす場合は、モデルの構成時に追加の行動データフィールドを選択してください。
カテゴリ予測の開始
作成:カテゴリ予測モデルを作成し、アプリケーションに関連付けます。
適用:モデルをクエリ分析および粗ソート/高度ソートの各段階に適用します。
クエリ分析ルールを作成し、カテゴリ予測を構成して、ステップ 1 で作成したモデルを選択します。
カテゴリ予測モデルを検索リクエストで 有効化します:SDK を使用して関連操作を呼び出し、
raw_queryパラメーターを含めます。
詳細な構成手順については、「カテゴリ予測の使用」をご参照ください。
次のステップ
モデルのトレーニングが完了したら、予測結果をエクスポートし、パフォーマンス評価ページで確認してください。予測されたカテゴリ・クエリ間の関連性が期待通りであることを確認します。