MLを使用したフィルターとファセットの生成

ML モデルを使用した検索エクスペリエンスにおけるフィルターとファセットの作成を自動化することと、従来のハードコードされたアプローチを比較して、長所と短所を検討します。

Elasticsearchには、ユースケースに最適な検索ソリューションを構築するための新機能が豊富に備わっています。最新の検索するAIエクスペリエンスを構築するための実践的なウェビナーで、実践の方法を学びましょう。無料のクラウドトライアルを始めるか、ローカルマシンでElasticを試すことができます。

フィルターとファセットは、検索結果を絞り込むために使用されるメカニズムであり、ユーザーが関連するコンテンツや製品をより迅速に見つけるのに役立ちます。従来のアプローチでは、ルールは手動で定義されます。たとえば、映画カタログでは、フィルターやファセットで使用するためにジャンルなどの属性が事前定義されています。一方、AI モデルを使用すると、映画の特徴から新しい属性を自動的に抽出できるため、プロセスはより動的かつパーソナライズされたものになります。このブログでは、それぞれの方法の長所と短所を検討し、その応用と課題に焦点を当てます。

フィルターとファセット

始める前に、フィルターとファセットとは何かを定義しましょう。フィルターは、結果セットを制限するために使用される定義済みの属性です。たとえば、マーケットプレイスでは、検索を実行する前でもフィルターを利用できます。ユーザーは、 「PS5」 を検索する前に 「ビデオゲーム」 などのカテゴリを選択し、データベース全体ではなく、より具体的なサブセットに検索を絞り込むことができます。これにより、より関連性の高い結果を得られる可能性が大幅に高まります。

ファセットはフィルターと同様に機能しますが、検索を実行した後にのみ使用できます。つまり、検索によって結果が返され、それに基づいて絞り込みオプションの新しいリストが生成されます。たとえば、PS5 コンソールを検索する場合、ストレージ容量送料などの側面が表示され、ユーザーが理想的な製品を選択できるようになります。

フィルターとファセットを定義したので、次に、従来のアプローチと機械学習 (ML) ベースのアプローチがそれらの実装と使用に与える影響について説明しましょう。それぞれの方法には、検索効率に影響する利点と課題があります。

古典的なアプローチ

このアプローチでは、フィルターとファセットは事前定義されたルールに基づいて手動で定義されます。つまり、検索を絞り込むために使用できる属性は、カタログ構造とユーザーのニーズを考慮して事前に固定され、計画されています。

たとえば、マーケットプレイスでは、「エレクトロニクス」や「ファッション」などのカテゴリに、ブランド、フォーマット、価格帯などの特定のフィルターがある場合があります。これらのルールは静的に作成されるため、検索エクスペリエンスの一貫性は確保されますが、新しい製品やカテゴリが登場するたびに手動で調整する必要があります。

このアプローチでは、表示されるフィルターとファセットの予測可能性と制御が可能になりますが、動的な改良を必要とする新しいトレンドが生まれた場合には制限される可能性があります。

長所:

  • 予測可能性と制御:フィルターとファセットは手動で定義されるため、管理が容易になります。
  • 複雑さが低い:モデルをトレーニングする必要はありません。
  • メンテナンスの容易さ:ルールが事前に定義されているため、調整や修正を迅速に行うことができます。

短所:

  • 新しいフィルターには再インデックスが必要です:新しい属性をフィルターとして使用する必要がある場合は、ドキュメントにこの情報が含まれていることを確認するために、データセット全体のインデックスを再作成する必要があります。
  • 動的適応の欠如:フィルターは静的であり、ユーザーの行動の変化に自動的に適応しません。

フィルター/ファセットの実装 – 古典的なアプローチ

開発ツールの Kibanaでは、従来のアプローチを使用してフィルター/ファセットのデモを作成します。

まず、インデックスを構造化するためのマッピングを定義します。

ブランドおよびストレージフィールドはキーワードとして設定されており、集計 (ファセット) で直接使用できます。価格フィールドはfloat型であり、価格範囲の作成を可能にします。

次のステップでは、製品データがインデックス化されます。

ここで、ブランド、ストレージ、価格帯別に結果をグループ化して、クラシック ファセットを取得してみましょう。クエリでは、size:0 が定義されました。このシナリオでは、クエリに対応するドキュメントを含めずに、集計結果のみを取得することが目標です。

応答には、 BrandStoragePriceのカウントが含まれ、フィルターとファセットの作成に役立ちます。

機械学習/AIベースのアプローチ

このアプローチでは、人工知能 (AI) 技術を含む機械学習 (ML) モデルがデータ属性を分析して、関連するフィルターとファセットを生成します。ML/AI は、事前定義されたルールに依存するのではなく、インデックス化されたデータ特性を活用します。これにより、新しいファセットとフィルターを動的に検出できるようになります。

長所:

  • 自動更新:新しいフィルターとファセットは自動的に生成され、手動で調整する必要はありません。
  • 新しい属性の検出:これまで考慮されていなかったデータ特性をフィルターとして識別し、検索エクスペリエンスを充実させることができます。
  • 手作業の削減: AI が利用可能なデータから学習するため、チームはフィルタリング ルールを継続的に定義および更新する必要がありません。

短所:

  • メンテナンスの複雑さ:モデルを使用する場合、生成されたフィルターの一貫性を確保するために事前検証が必要になる場合があります。
  • ML と AI の専門知識が必要:このソリューションでは、モデルのパフォーマンスを微調整および監視する資格のある専門家が必要です。
  • 無関係なフィルターのリスク:モデルが適切に調整されていない場合、ユーザーにとって役に立たないファセットが生成される場合があります。
  • コスト: ML および AI の使用にはサードパーティのサービスが必要になる場合があり、運用コストが増加する可能性があります。

適切に調整されたモデルと適切に作成されたプロンプトを使用しても、生成されたファセットはレビュー手順を経る必要があることに注意してください。この検証は手動で行うことも、モデレーション ルールに基づいて行うこともできます。これにより、コンテンツが適切かつ安全であることが保証されます。必ずしも欠点ではありませんが、ファセットをユーザーに提供する前に、その品質と適合性を確認することは重要な考慮事項です。

フィルター/ファセットの実装 - AIアプローチ

このデモでは、AI モデルを使用して製品の特性を自動的に分析し、関連する属性を提案します。適切に構造化されたプロンプトを使用して、カタログから情報を抽出し、それをフィルターとファセットに変換します。以下に、プロセスの各ステップを紹介します。

最初に、 Inference API を使用して、ML サービスとの統合のためのエンドポイントを登録します。以下はOpenAI のサービスとの統合の例です。

ここで、プロンプトを実行し、モデルによって生成された新しいフィルターを取得するためのパイプラインを定義します。

「PlayStation 5」製品用にこのパイプラインのシミュレーションを実行すると、次のようになります。

驚異的なゲーム体験: 驚異的なグラフィックスに驚嘆し、新しい PS5 の機能を体験してください。

息を呑むような没入感: 触覚フィードバック、アダプティブ トリガー、3D オーディオ テクノロジーのサポートにより、より奥深いゲーム体験を体験できます。

スリムなデザイン: PS5 デジタル エディションでは、洗練されたコンパクトなデザインで強力なゲーミング テクノロジーをゲーマーに提供します。

1TB のストレージ: 1TB の内蔵 SSD ストレージで、お気に入りのゲームをいつでもプレイできます。

下位互換性とゲームブースト: PS5 コンソールは 4,000 以上の PS4 ゲームをプレイできます。Game Boost を使用すると、最高の PS4 コンソール ゲームの一部で、より高速でスムーズなフレーム レートを楽しむことができます。

このシミュレーションから生成されたプロンプト出力を観察してみましょう。

これで、AI によって生成されたファセットを保存するための新しいフィールドdynamic_facetsが新しいインデックスに追加されます。

Reindex API を使用して、プロセス中に generate_filter_ai パイプラインを適用し、 videogames インデックスを videogames_1 に再インデックスします。このパイプラインは、インデックス作成中に動的ファセットを自動的に生成します。

ここで、検索を実行して新しいフィルターを取得します。

結果:

ファセットの実装を象徴するシンプルなフロントエンドを以下に示します。

提示された UI コードはここにあります。

まとめ

フィルターとファセットを作成する両方のアプローチには、利点と注意点があります。手動ルールに基づく従来のアプローチでは、制御が可能になりコストも削減されますが、継続的な更新が必要となり、新しい製品や機能に動的に適応することができません。

一方、AI と機械学習ベースのアプローチでは、ファセット抽出が自動化されるため、検索がより柔軟になり、手動による介入なしに新しい属性を発見できるようになります。ただし、このアプローチは実装と維持が複雑になる可能性があり、一貫した結果を確保するために調整が必要になります。

従来のアプローチと AI ベースのアプローチのどちらを選択するかは、ビジネスのニーズと複雑さによって異なります。データ属性が安定していて予測可能な、より単純なシナリオでは、従来のアプローチの方が効率的で保守が容易になり、インフラストラクチャと AI モデルによる不必要なコストを回避できます。一方、ML/AI を使用してファセットを抽出すると、検索エクスペリエンスが向上し、フィルタリングがよりインテリジェントになるため、大きな価値が付加されます。

重要なのは、自動化が投資を正当化するかどうか、あるいはより従来型のソリューションがすでにビジネス ニーズを効果的に満たしているかどうかを評価することです。

関連記事

最先端の検索体験を構築する準備はできましたか?

十分に高度な検索は 1 人の努力だけでは実現できません。Elasticsearch は、データ サイエンティスト、ML オペレーター、エンジニアなど、あなたと同じように検索に情熱を傾ける多くの人々によって支えられています。ぜひつながり、協力して、希望する結果が得られる魔法の検索エクスペリエンスを構築しましょう。

はじめましょう