Lowe’s のイノベーション: Vertex AI によるインタラクティブなショッピング エクスペリエンスの実現

Zaid Alibadi
Senior Manager, Data Science, Lowe’s
Olga Stolpovskaia
Senior Data Scientist, Lowe's
※この投稿は米国時間 2025 年 4 月 30 日に、Google Cloud blog に投稿されたものの抄訳です。
Lowe's は、お客様にとってより楽しく便利なショッピング エクスペリエンスの実現に取り組んできました。私たちが特定したよくある課題は、多くのお客様が必要な商品は見たらわかると考えて、何を買いたいかを明確に決めずに e コマースサイトやモバイルアプリにアクセスすることです。
この課題に対応してショッピング ジャーニーを快適なものにするために導入されたのが、lowes.com で商品カタログをインタラクティブに閲覧し、興味のある商品を素早く見つけられるようにする Visual Scout です。これは、テキストだけでなく、画像、動画、音声、そしてそれらすべての組み合わせというさまざまな多数のコミュニケーション モードにおいて、AI を活用したおすすめ機能で現在の小売エクスペリエンスを変革する一例です。
Visual Scout は、購入を決める際に商品の視覚的な要素を重視するお客様を対象に設計されています。お客様はインタラクティブな操作で、同じ商品グループ内の多様なスタイルを確認できます。まず、Visual Scout によって 10 個のアイテムを含むパネルが表示されます。お客様は、表示されたアイテムについて、「好み」か「好みではない」のフィードバックを行って自分の好みを示します。この選択に基づいてパネルが動的に更新され、お客様の好みのスタイルやデザインを反映したアイテムが表示されます。
以下に示すのは、吊り下げ式照明を探しているある買い物客からのユーザー フィードバックが、類似商品パネルの更新に及ぼす影響の例です。


図 1: Visual Scout API が表示中のアイテムに対するユーザーのフィードバックを反映させて、おすすめ商品パネルをインタラクティブに更新する
この投稿では、技術的な側面から、このエクスペリエンスを可能にする重要なテクノロジーと MLOps の手法について詳しく見ていきます。
Visual Scout の仕組み
お客様が lowes.com で商品の詳細ページにアクセスするとき、目的とする「商品グループ」はだいたいわかっていても、その中で選べる商品のバリエーションが多いことがあります。そのような場合、Visual Scout を利用すれば、外観の似たアイテムを選り分け、関心のあるアイテムのリストを簡単に作成できます。複数のブラウザ ウィンドウを開いたり、提供されている比較表を確認する必要はありません。
特定の商品ページに表示されているアイテムが「アンカー アイテム」となり、それに基づいて最初のおすすめ商品パネルが表示されます。そこから、表示される個々のアイテムについて、お客様が「好みである」か「好みではない」かのフィードバックを行います。すると表示される商品のリストが繰り返しチューニングされます。
-
「好みである」のフィードバック: お客様が [More like this](類似の商品)ボタンを選択すると、好みの商品と外観が最も似ていない 2 つの商品が、好みの商品に近い外観のアイテムに置き換えられます。
-
「好みではない」のフィードバック: 逆に、お客様が [X] ボタンをクリックして商品が好みではないことを示すと、その商品はアンカー アイテムと外観が似ている商品に置き換えられます。
Visual Scout サービスはリアルタイムで更新されるため、顧客エンゲージメントを促進する魅力的でゲーム性のあるショッピング エクスペリエンスが実現し、これが最終的にコンバージョンにつながります。
試してみる
Visual Scout を実際に使ってみる場合は、こちらの商品ページにアクセスし、[Discover Similar Items](類似アイテムを見る)セクションを探してください。アカウントへのログインは必要ありませんが、ページの左上で店舗所在地を選択してください。Visual Scout はこの選択に基づき、お客様の最寄りの店舗に在庫があるアイテムをおすすめします。
Visual Scout を支えるテクノロジー
Visual Scout は複数の Google Cloud サービスに支えられています。
-
Dataproc: アイテムの画像を予測リクエストとしてコンピュータ ビジョン モデルにフィードすることで、新しいアイテムのエンベディングを計算するバッチ処理ジョブ。予測された値は画像のエンベディング表現。
-
Vertex AI Model Registry: コンピュータ ビジョン モデルのライフサイクルを管理するための中央リポジトリ。
-
Vertex AI Feature Store: 商品画像エンベディングの特徴量を管理し、低レイテンシを実現するためのオンライン サービング。
-
Vertex AI Vector Search: サービング インデックスをデプロイし、低レイテンシのオンライン取得のためにベクトル類似度検索を実行。
-
BigQuery: アイテムのメタデータ(例: 価格、プロモーション、在庫、評価、ユーザーが選択した店舗の在庫、制限など)の不変レコードを企業全体でホスト。
-
Google Kubernetes Engine: オンライン ショッピング エクスペリエンスに Visual Scout アプリケーションをデプロイし、他の領域とともに運用。
これらのコンポーネントが実際にどのように運用されているかを把握するために、以下のリファレンス アーキテクチャで主なタスクをいくつか確認しましょう。


図 2: lowes.com で Visual Scout API を提供するリファレンス アーキテクチャ
-
Visual Scout API が特定のアイテムに対するベクトル一致リクエストを作成する
-
このリクエストはまず Vertex AI Feature Store を呼び出して、アイテムの最新の画像エンベディング ベクトルを取得する
-
続けて Visual Scout が、このアイテムのエンベディングを使用して、最も類似度の高いエンベディング ベクトルを Vertex AI Vector Search インデックスで検索し、関連するアイテムの ID を返す
-
外観が似たアイテムごとに、商品関連のメタデータ(例: 在庫状況)を使用して、ユーザーが選択した店舗所在地に在庫があるアイテムを絞り込む
-
在庫のあるアイテムとそのメタデータが Visual Scout API に戻され、lowes.com で提供される
-
毎日実行されるトリガーによって、新しいアイテムの画像エンベディングを計算する更新ジョブが開始される
-
トリガーされると、Dataproc が新しいアイテム画像すべてを処理し、登録済みのコンピュータ ビジョン モデルでエンベディングに変換する
-
ストリーミングの更新によって、新しい画像エンベディングが Vertex AI Vector Search のサービング インデックスに追加される
-
新しい画像エンベディング ベクトルが Vertex AI Feature Store のオンライン サービング ノードに取り込まれ、アイテム ID と取り込み時のタイムスタンプでベクトルがインデックス化される
Vertex AI による低レイテンシのサービング
おすすめ商品パネルのアイテムの入れ替えは毎回、Visual Scout が Vector Search と Feature Store の 2 つの Vertex AI サービスを利用してリアルタイムで行います。
Vertex AI Feature Store は、アイテムの最新のエンベディング表現を保存するために使用されます。これには、商品カタログへの新規追加と、アイテムに使用できるようになった新しい画像すべてが含まれます。後者の場合、アイテムの従前のエンベディング表現がオフライン ストレージに移動され、最新のエンベディングがオンライン ストレージで維持されます。サービング時には、Feature Store の検索によってクエリアイテムの最新のエンベディング表現がオンライン サービング ノードから取得され、ダウンストリームの取得タスクに渡されます。
Visual Scout は次に、多種のアイテムが含まれるデータベースの中から、エンベディング ベクトルに基づいてクエリアイテムに最もよく似た商品を特定します。この種の最近傍探索では、クエリとアイテム候補のベクトル間の類似度を計算する必要があり、特に網羅的(いわゆるブルートフォース)探索を実行する場合、この規模では計算がすぐに取得時の演算上のボトルネックとなってしまいます。このボトルネックに対処するために、Vertex AI Vector Search は近似探索を実装し、ベクトル取得で低レイテンシのサービング要件を満たせるようにしています。
この 2 つのサービスにより、Visual Scout は低レイテンシのレスポンスを維持しながら大量のリクエストを処理できるようになります。99 パーセンタイルで約 180 ミリ秒というレスポンス タイムは当社のパフォーマンス要件を満たしており、円滑で応答性に優れたユーザー エクスペリエンスを実現できます。
Vertex AI Vector Search が高速である理由
Vertex AI Vector Search は、10 億規模のベクトル データベースから効率的なベクトル類似度検索と取得を行うマネージド サービスです。これは Google の多数のプロジェクトにとって重要な機能で、Google はその研究を長年続け、その成果が Vertex AI Vector Search というサービスとして結実しています。基盤となる複数のアルゴリズムと手法は、Google Research のオープンソース ベクトル検索ライブラリ ScaNN でも公開されています。ScaNN の目的は、再現可能で信頼性の高いベンチマークを確立し、最終的にこの分野の研究を推進することです。Vertex AI Vector Search の目的は、プロダクション レディなアプリケーションを対象としたスケーラブルなベクトル検索ソリューションを提供することです。
ScaNN の基礎知識
ScaNN は、Google Research が 2020 ICML で発表したホワイトペーパー「Accelerating Large-Scale Inference with Anisotropic Vector Quantization」(異方性ベクトル量子化による大規模推論の加速)の内容を実装したものです。この実装では、新しい圧縮アルゴリズムを適用して、最近傍探索ベンチマークで最先端のパフォーマンスを達成しています。ScaNN のベクトル類似度検索のワークフローは、おおまかに 4 つの段階に分けられます。
-
パーティショニング: ScaNN は探索空間を縮小するために、階層型クラスタリングを実行してインデックスのパーティショニングを行い、そのコンテンツを探索ツリーとして表します。このとき、各パーティションはそのセントロイドによって表されます。これは通常は K 平均法ツリーです(そうではない場合もあります)。
-
ベクトル量子化: このステップでは、非対称ハッシュ(AH)アルゴリズムを使用して各ベクトルを 4 ビットコードのシーケンスに圧縮します。そして最終的にコードブックを学習します。データベースのベクトルだけを圧縮し、クエリのベクトルは圧縮しないため、「非対称」となります。
-
近似スコアリング: クエリ時には AH が部分ドット積のルックアップ テーブルを作成し、テーブルを使用して
<query, db-vector>
のドット積を推定します。 -
リスコアリング: 近似スコアリングで得られた Top-K アイテムについて、より高い精度で距離を再計算します(例: 歪みを少なくする、未加工のデータポイントを使用する)。
サービング向けに最適化されたインデックスの構築
Vertex AI Vector Search は、低レイテンシのサービングに最適化されたインデックスを構築するために、ScaNN の tree-AH アルゴリズムを使用します。「tree-AH」という用語は tree-X hybrid モデルを指し、パーティショニングの「tree」と「leaf searcher」(この場合、非対称ハッシュを意味する「AH」)から構成されています。基本的に、次の 2 つの補完アルゴリズムを組み合わせたものです。
-
tree-X(K 平均法ツリー)。インデックスを探索ツリーにパーティショニングすることで探索空間を縮小する、階層型クラスタリング アルゴリズム。ツリー内の各パーティションは、そのパーティションに属すデータポイントのセントロイドによって表されます。
- 非対称ハッシュ(AH)。探索ツリーの各レベルでクエリベクトルとパーティションのセントロイド間の類似度をスコアリングするために使用される、高度に最適化された近似距離計算ルーチン。


図 3: 概念上、「tree-X hybrid」はパーティショニングの「tree」と「leaf searcher」を組み合わせたもの。「leaf searcher」はツリーの探索とスコアリングに使用される
tree-AH は、パーティションのセントロイドとサービング インデックスの量子化コードブックを本質的に定義する、最適なインデックス モデルを学習するようにトレーニングされます。そして、異方性損失関数でトレーニングすると、tree-AH がさらに最適化されます。なぜなら、異方性損失では、ドット積が大きいベクトルペアの量子化エラーを軽減することが重視されているからです。<query, db-vector>
ベクトルペアのドット積が小さい場合、Top-K に入る可能性が低くなり、量子化エラーは重要ではなくなるため、これは理にかなっています。ベクトルペアのドット積が大きい場合は、その相対的なランキングを維持する必要があるため、量子化エラーにより多くの注意を払わなければなりません。
最後のポイントをまとめると、次のようになります。
-
元のベクトルとその量子化形態の間で量子化エラーが発生する
-
ベクトルの相対的なランキングを維持すると、推論における再現率が高くなる
-
ベクトルのサブセットの相対的なランキングをより高い精度で維持することは可能だが、その場合、別のベクトルのサブセットの相対的なランキングを維持する精度が低くなる
異方性損失の手法と影響について詳しくは、Google Research のブログ記事 Announcing ScaNN: Efficient Vector Similarity Search(ScaNN の発表: 効率的なベクトル類似度検索)、または前述のホワイトペーパーをご覧ください。
プロダクション レディなアプリケーションのサポート
マネージド サービスである Vertex AI Vector Search では、ScaNN のパフォーマンスを活かせるだけでなく、運用上のオーバーヘッドを軽減しビジネス価値をもたらす以下のような各種機能を利用できます。
-
リアルタイムのインデックス更新 - インデックスとメタデータを更新し、ほんの数秒でクエリを実行。
-
複数インデックスのデプロイ - 単一のエンドポイントに複数のインデックスをデプロイ(「名前空間の設定」とも呼ばれる)。
-
自動スケーリング - QPS トラフィックに基づいてサービング ノードを自動的にサイズ変更することで、一貫性のあるパフォーマンスを広範囲で確保。
-
動的な再構築 - 定期的なインデックス圧縮で新しい更新に対応。サービスを解釈することなく、クエリのパフォーマンスと信頼性を改善。
-
完全なメタデータのフィルタリングと多様性 - 文字列、数値、許可リスト、拒否リストでクエリ結果を制限。crowding タグで多様性を適用。
Vector Search と Feature Store を使ってみる
リアルタイムのパーソナライズによってカスタマー エクスペリエンスを改善することを検討されている場合は、Vertex AI の Vector Search と Feature Store の組み合わせが最適な選択肢です。これらのサービスは多数の本番環境 AI ワークロードの基盤となるコンポーネントであり、Google (そして Lowe’s)の多数のデプロイで活用されています。Google は今後もこれらのサービスに投資を続けます。
Vertex AI Vector Search の導入にあたっては、以下のリソースもご覧ください。
-
Vertex AI Vector Search クイックスタート。インデックスの作成、デプロイ、クエリ実行の方法を確認できます。
-
最近のブログ投稿、マルチモーダル検索とは何か:「視覚を持った LLM」でビジネスが変わる。マルチモーダル検索での Vector Search の使い方を確認できます。
-
ノートブックのチュートリアルと Vector Search に関するドキュメント。Vector Search インデックスのデプロイ、チューニング、サービングに関するハンズオン形式のチュートリアルを利用できます。
Vertex AI Feature Store の導入にあたっては、以下のリソースもご覧ください。
-
Vertex AI での特徴量管理の概要。Feature Store の概念を確認できます。
-
BigQuery を活用した新しい Vertex AI Feature Store が予測 AI と生成 AI に対応。プロダクトの最新の機能とロードマップを確認できます。
-
ノートブックのチュートリアル。さまざまなユースケースのハンズオン形式のコード チュートリアルを利用できます。
これらのサービスを併用した事例については、「Vertex AI の Streaming Ingestion でリアルタイム AI を実現」をご覧ください。
Google Cloud Retail AI スペシャリスト、Jordan Totten の協力に感謝の意を表します。
-Lowe’s、データ サイエンス担当シニア マネージャー Zaid Alibadi 氏
-Lowe's、シニア データ サイエンティスト Olga Stolpovskaia 氏