Instacartの食料品ECを革新するLLM:検索と発見の未来
はい、承知いたしました。ご提供いただいた情報に基づき、InstacartのLLMを活用した検索・発見のアプローチについて詳細なブログ記事を作成します。以下ブログ記事の出力です。
現代のデジタル時代において、オンラインでのショッピングは私たちの生活に深く根付いています。特に食料品のEコマースは、忙しい現代人にとって欠かせないサービスとなりました。しかし、その利便性の裏には、膨大な商品カタログの中から顧客が求めるものを正確に、そして効率的に見つけ出すという複雑な課題が存在します。
Instacartは、北米におけるオンライン食料品業界のリーダーとして、この課題に正面から取り組み、大規模言語モデル(LLM)を活用して検索と発見の体験を根本から変革しています。この記事では、InstacartがどのようにLLMを導入し、従来の検索エンジンの限界を克服し、パーソナライズされた適応性の高いショッピング体験を実現しているのかを詳しく掘り下げていきます。
1. 食料品Eコマースにおける検索の重要性
食料品ショッピングにおいて、顧客はしばしば長い買い物リストを持っており、その大半は過去に購入した商品の補充です。しかし、顧客は同時に新しい商品を発見することにも関心があります。検索機能は、これら二つの主要なニーズを満たす上で中心的な役割を果たします。
- ユーザーの目標:
- 膨大な商品カタログの中から目的の商品を見つける
- 新しい商品を「発見」する
- プラットフォームの目標:
- 収益の向上
- 広告主の満足度向上(新商品の露出機会提供)
- カートサイズの拡大
これらの目標を達成するためには、検索体験を「パーソナライズ」し、「適応性」を持たせる必要があります。つまり、顧客一人ひとりの過去の購買履歴や検索行動、さらには現在のトレンドなどを考慮に入れ、最適な商品を提示する能力が求められるのです。
2. 従来の検索エンジンが抱える限界と課題
従来の検索エンジンは、多くの点で優れたパフォーマンスを発揮してきましたが、食料品Eコマース特有の課題においてはいくつかの限界に直面していました。
2.1. クエリ解釈における課題
顧客が入力するクエリは多種多様であり、その意図を正確に理解することは非常に困難です。Instacartのチームが直面していた主な課題は以下の2つです。
広範すぎるクエリ(Overly Broad Queries):
- 例:「スナック」
- 「スナック」というクエリに対しては、数えきれないほど多くの商品が該当します。従来のモデルはエンゲージメントデータに基づいて学習されるため、顧客に露出されていない商品はランキングを上げることが困難でした(いわゆる「コールドスタート問題」)。関連性の高い多くの商品があるにもかかわらず、その全スペクトルをユーザーに提示できないという課題がありました。
非常に具体的なクエリ(Very Specific Queries):
- 例:「無糖植物性ヨーグルト」
- このようなテールクエリは発生頻度が低いため、十分なエンゲージメントデータが蓄積されず、モデルの学習が困難になります。結果として、リコール(関連商品を見つけ出す能力)は向上しても、プレシジョン(検索結果の正確性)が課題となることが多かったのです。
従来の検索システムでは、モデルが学習できるのは過去のデータに限られており、ユーザーの意図を深く理解し、文脈に応じた適切な結果を返すことに苦労していました。
2.2. 発見に繋がるコンテンツの欠如
もう一つの大きな課題は、「発見」を促すコンテンツの不足でした。実店舗で買い物をする際、顧客はパスタ売り場に立ち寄れば、様々なブランドのパスタや、パスタソース、その他の関連商品(例えばパスタを作るのに必要なチーズや野菜など)を目にすることができます。これにより、新しい商品との出会いや、関連商品の購入が促されます。
しかし、オンラインの検索体験では、ユーザーが特定のキーワードで商品を検索し、その商品を見つけたら「デッドエンド」に陥ることがよくありました。関連する他の商品を能動的に探すには、新たに検索クエリを入力し直す必要があり、顧客体験を阻害していました。Instacartの顧客からも、「欲しい商品は検索で見つけられるが、他の関連商品を探そうとすると行き詰まる」というフィードバックが多数寄せられていました。
3. LLMがもたらす解決策:検索と発見の変革
Instacartはこれらの課題を克服するため、LLMのポテンシャルに着目し、その活用によって検索と発見のプロセスを大きく改善しました。
3.1. LLMによるクエリ理解の向上(LLM as QU)
Instacartのクエリ理解(Query Understanding; QU)モジュールは、検索スタックの最上流に位置し、スペル修正、クエリ正規化、カテゴリ分類、ブランド認識、クエリタグ付けなど、複数のモデルで構成されています。これらの各タスクにおいて、LLMが大きな効果を発揮しました。
- クエリから商品カテゴリへの分類(Query to Product Category CLS):
従来のモデル: FastTextベースのニューラルネットワークと、統計的共起モデル(NPMI)を併用していました。カテゴリ数は約1万、そのうち6,000以上が頻繁に使用されています。多ラベル分類問題として扱われ、クエリとカテゴリ間の意味的関係をモデル化していました。しかし、テールクエリ(稀なクエリ)に対してはエンゲージメントデータが不足しており、精度が課題でした。BERTベースのより洗練されたモデルも試みられましたが、レイテンシーの増加に見合うほどの改善は見られませんでした。
LLMベースの新モデル:
- アプローチ:
- まず、ユーザーエンゲージメントデータから、各クエリで頻繁にコンバージョンされるカテゴリ(トップKコンバージョンカテゴリ)を生成します。
- このトップKカテゴリをLLMへの追加コンテキストとして与え、最も関連性の高いカテゴリを予測させます。
- プロンプトエンジニアリング:
- InstacartのAIショッピングアシスタントとして機能し、与えられた検索クエリの意図と正確に合致する商品カテゴリをランク付けするよう指示します。
- ガイドラインとして、「カテゴリはできるだけ具体的かつ粒状にすること」「検索クエリにブランドの意図が含まれる場合は、関連カテゴリを見つける際にブランド情報を考慮に入れること」「コンバージョン率が低い場合は、直接トップコンバージョンカテゴリを返さないこと(無関係な可能性があるため)」などを与えます。
- 成果: LLMを活用することで、特にテールクエリにおいてプレシジョンが18ポイント、リコールが70ポイントと大幅に向上しました。
- 具体例: クエリ「Werner soda」に対して、従来のモデルは「フルーツ風味ソーダ」と識別しましたが、LLMは「ジンジャーエールの一種」とより正確に分類しました。これにより、下流の検索およびランキングの精度が大幅に向上し、ユーザー体験が改善されました。
- アプローチ:
3.2. LLMによるクエリの書き換え(Query Rewrites)
検索結果がない場合や、より関連性の高い商品を見つけるために、クエリの書き換えは非常に有効な手段です。Instacartでは、特定の小売店では全ての商品が揃っているわけではないため、この機能が特に重要となります。
- アプローチ:
- LLMを活用して、元のクエリに対して「代替(Substitute)」「広範(Broader)」「同義(Synonymous)」の3種類の書き換えを生成します。
- 例:「1%ミルク」→「2%ミルク」(代替)、「ミルク」(広範)、「低脂肪ミルク」(同義)
- 例:「アボカドオイル」→「オリーブオイル」(代替)、「健康的な食用油」(広範)、「アボカドエキス」(同義)
- 成果:
- オフライン評価では、GPT-3.5からGPT-4への移行、さらに少量のショット学習(Few-shot learning)を導入することで、書き換えの関連性(SubstituteおよびExactの割合)が大幅に向上し、無関係な書き換えの割合が減少しました。
- オンライン評価では、平均リコールサイズが+0.5%増加し、結果なしクエリの割合が-4.4%減少するという顕著な改善が見られました。これは、以前は何も表示されなかったクエリに対して結果を提示できるようになったことを意味し、ビジネスにとって非常に大きな成果です。
3.3. コンテンツのスコアリングと提供
LLMの利用には、レイテンシーとコストの課題が伴います。Instacartのユーザーは高速な検索体験を求めているため、リアルタイムでLLMを呼び出すのは非現実的です。
- アプローチ:
- Instacartの検索クエリは「ヘッド(高頻度クエリ)」と「テール(低頻度クエリ)」に大きく偏っています。
- ヘッドおよびトルソクエリ(頻度が高めなクエリ)については、LLMの出力をオフラインでバッチ処理し、キャッシュに保存します。
- ユーザーがクエリを送信すると、まずキャッシュから結果を検索し、レイテンシーを最小限に抑えます。
- ロングテールクエリ(非常に頻度が低いクエリ)や、キャッシュにヒットしないクエリに対しては、既存の軽量モデルにフォールバックします。将来的には、既存のモデルを蒸留されたLLMモデルに置き換えることを検討しています。
- 成果: このハイブリッドアプローチにより、レイテンシーに影響を与えることなく、ロングテールクエリの検索カバレッジを大幅に改善することができました。
3.4. LLMによる商品発見コンテンツの生成
LLMは、関連商品の提案を通じて「発見」を促進する上でも重要な役割を果たします。
- アプローチ:
- ユーザーが特定のアイテム(例:マグロ)を検索した場合、Instacartの検索エンジンがLLMを利用して、そのアイテムに関連する代替商品(例:ティラピア、タラなどの他の魚介類)や、相補的な商品(例:シーフード調味料、付け合わせの野菜など)を提案します。
- これにより、ユーザーは単に検索した商品だけでなく、それと関連性の高い他の商品も一緒に発見し、購入する機会を得ることができます。
- 要件:
- 既存ソリューションへの増分コンテンツの生成: 既存の検索結果と重複しない、追加的な価値のあるコンテンツを生成します。
- Instacartのドメイン知識との整合性: LLMがInstacartのコンテキストを理解し、適切な提案を行うことが求められます。例えば、「皿(dishes)」というクエリが食器を指すのか、料理を指すのかを区別する必要があります。
- 適切なタイミングでの表示: ユーザーが必要とする時に、適切な場所でコンテンツが表示されるようにします。
- 成果:
- LLMを活用することで、ユーザーの買い物体験をより豊かにし、カートに商品を追加する数を増やすことに成功しました。
- 魚介類(例:カニ)のクエリでは、他の魚介類(ロブスター、エビなど)や、シーフード調味料、付け合わせ(コーン、ポテトサラダなど)が提案され、ユーザーのエンゲージメントと収益の両方に好影響を与えました。
- 課題と解決策:
- 初期の課題: LLMは一般的な知識に基づいて回答を生成するため、Instacartのユーザーが期待する特定の行動パターンや商品カテゴリに合致しない場合がありました(例:「プロテイン」でプロテインシェイクではなく鶏肉や豆腐を提案)。
- 解決策: LLMへのプロンプトにInstacartのドメイン知識を注入し、ユーザーエンゲージメントデータを活用することで、より的確な提案が可能になりました。例えば、「サワークリーム」を購入したユーザーが次に検索する可能性の高い商品情報をLLMに与えることで、より関連性の高い提案ができるようになりました。
- コンテンツの評価: 生成されたコンテンツの品質評価は、当初予想よりも困難かつ重要でした。LLM自体を評価者として利用する戦略も導入されました。
4. 今後の展望
InstacartはLLMの活用をさらに深化させる計画を進めています。
すべてのQUタスクにおける一貫した推論:
- 現在、Instacartのクエリ理解は複数の独立したモデルで構成されており、その管理は複雑です。今後は、すべてのQUタスクを単一の統一モデルで処理し、タスク間の推論の一貫性を向上させることを目指しています。
- 例えば、「Humm」というブランド名の紅茶のクエリがあった場合、ブランド認識モデルは正しく紅茶と識別するが、スペル修正モデルが「Hummus(フムス)」と誤って修正してしまう、といったモデル間の不整合が発生する可能性があります。これを統合モデルで解決することで、ユーザーに混乱を与えることなく、より正確な検索結果を提供できるようになります。
セッションレベルのタスク理解:
- ユーザーの個別のクエリだけでなく、ショッピングセッション全体の文脈を理解することを目指します。
- 具体的には、ユーザーのクエリの再定式化、補完的な意図の理解、レシピや食事の検出などを通じて、より深くユーザーのニーズを捉え、能動的にサポートする体験を構築します。例えば、ユーザーが特定のレシピの食材を探していることを検出し、そのレシピに必要なすべての材料を提案するといった高度な機能が考えられます。
まとめ
InstacartがLLMを検索と発見の戦略に組み込んだことは、食料品Eコマースの未来を形作る上で画期的な一歩です。LLMの持つ世界知識とInstacartの豊富なドメイン知識を組み合わせ、ユーザーエンゲージメントデータでプロンプトを強化するハイブリッドアプローチは、従来の検索エンジンの限界を乗り越え、驚くべき成果をもたらしました。
特にテールクエリのプレシジョンとリコールの劇的な改善、そして、これまで空の結果ページが表示されていたクエリにも関連性の高い結果を表示できるようになったことは、顧客体験とビジネスの両面で大きな価値を生み出しています。
Instacartの事例は、LLMが単なる技術的なツールではなく、顧客のニーズを深く理解し、それに応えるための強力なパートナーであることを示しています。今後、AIと人間の創造性が融合することで、私たちのオンラインショッピング体験はさらにパーソナライズされ、より直感的で豊かなものへと進化していくでしょう。