HAQM Web Services ブログ

OfferUp が HAQM Bedrock と HAQM OpenSearch Service のマルチモーダル検索を導入し、地域に密着した検索結果が 54% 増加、検索の関連性が 27% 向上

この記事は 2025 年 2 月 5 日に投稿された「OfferUp improved local results by 54% and relevance recall by 27% with multimodal search on HAQM Bedrock and HAQM OpenSearch Service」の日本語版です。OfferUp の Andrés Vélez Echeveri 氏と Sean Azlin 氏、AWS の GenAI Specialist Solution Architect である Purna Sanyal によって執筆されました。

OfferUp は、地域での取引と発見を促進するためにデザインされたオンラインのモバイルファーストのマーケットプレイスです。ユーザーフレンドリーなアプリとユーザー評価やアプリ内チャットなどの信頼構築機能で知られる OfferUp は、ユーザーが商品の売買や、幅広い求人や地域サービスを探索することを可能にしています。ユーザー体験の向上とビジネス成長を推進するという継続的な使命の一環として、OfferUp は常に検索機能の改善を追求し、ユーザーが地域コミュニティで発見、取引、つながることをより速く、より直感的にできるようにしています。

このブログ投稿シリーズ (全 2 回)では、OfferUp が従来の語彙検索から HAQM Bedrock と HAQM OpenSearch Service を活用したモダンなマルチモーダル検索へと既存の検索ソリューションを強化・変革する過程で取り組んだ主要な機会について探ります。

OfferUp は、マルチモーダル検索によって関連性のあるリコールが 27% 向上し、地理的な広がりが 54% 減少(言い換えると、より地域に密着した結果の割合が増加)し、検索の深さ(ユーザーが検索結果をどれだけ深く追うようになったかを示す割合)が 6.5% 増加したことを発見しました。このシリーズでは、独自の検索ソリューションを最新化するための戦略、アーキテクチャパターン、ビジネス上のメリット、技術的なステップについて掘り下げます。

検索基盤

OfferUp では、数百万件のアクティブな出品リストをホストしており、毎月さらに数百万件がユーザーによって追加されています。以前の OfferUp の検索エンジンは、HAQM Elastic Compute Cloud (HAQM EC2) 上の Elasticsearch (v7.10) を使用して構築され、関連する出品リストを見つけるためにキーワード検索アルゴリズムを採用していました。以下の図は、基盤となる検索アーキテクチャにおける、インデックス作成とクエリのデータパイプラインです。

Figure 1: Foundational search architecture

データインデックス作成ワークフローは、以下のステップで構成されています。

  1. OfferUp ユーザーが出品リストを作成または更新すると、新しい画像は署名付きアップロード URL を使用して HAQM Simple Storage Service (HAQM S3) に直接アップロードされます。
  2. OfferUp ユーザーは、新規または更新された出品リストの詳細(タイトル、説明、画像 ID)を投稿マイクロサービスに送信します。
  3. 投稿マイクロサービスは、HAQM DynamoDB 内のリスティングライターマイクロサービスを使用して変更を永続化します。
  4. リスティングライターマイクロサービスは、出品リスト変更イベントを HAQM Simple Notification Service (HAQM SNS) トピックに発行し、HAQM Simple Queue Service (HAQM SQS) キューがそれをサブスクライブします。
  5. リスティングインデクサー AWS Lambda 関数は継続的にキューをポーリングし、受信した出品リスト更新を処理します。
  6. インデクサーは、リスティングリーダーマイクロサービスを通じて DynamoDB テーブルから完全な出品リスト詳細を取得します。
  7. 最後に、インデクサーはこれらの出品リスト詳細を Elasticsearch に更新または挿入します。

このフローにより、新規または更新された出品リストがインデックス化され、Elasticsearch での検索クエリに利用できるようになります。

また、データクエリワークフローは、以下のステップで構成されています。

  1. OfferUp ユーザーは「サマーシャツ」や「ランニングシューズ」などのテキスト検索を実行します。
  2. 検索マイクロサービスはクエリリクエストを処理し、キーワード検索 (ランキングアルゴリズムとして BM25 を使用) を用いて Elasticsearch から関連する出品リストを取得します。

検索基盤の課題

OfferUp は特に検索の関連性の改善に力を入れ、継続的にユーザー体験の向上に努めています。関連性は出品者と購入者間のエンゲージメント (Engagement with Seller Response (EWSR)) に直接影響し、広告インプレッションも促進するためです。検索基盤は幅広く多様な在庫を効果的に表示しますが、OfferUp は最適な結果に到達する上でいくつかの制限に直面しました。課題には以下のようなものがあります。

  • コンテキスト理解 – キーワード検索では、用語が使用されるコンテキストが考慮されません。同じキーワードが異なる意味や用途を持つ場合、関連性のない結果につながる可能性があります。キーワードだけではユーザーの意図を見分けることができません。例えば、「アップル」は文脈によって果物、テクノロジー企業、またはブランド名を指す可能性があります。
  • 同義語とバリエーションの認識 – 検索用語が異なる場合や同義語が使用される場合、キーワード検索では結果を見逃す可能性があります。例えば、「車」を検索しても「セダン」の結果が返されない場合があります。同様に、iPhone 11 を検索すると、iPhone 10 や iPhone 12 の結果が返される場合があります。
  • 複雑なクエリ管理 – 既存の検索アプローチでは、「赤いランニングシューズ」のような複雑な複数概念のクエリに対応することが難しく、多くの場合、他の色の靴やランニング用ではない履物の結果を返していました。

ランキングアルゴリズムとして BM25 を使用するキーワード検索には、単語間の意味的関係を理解する能力がなく、正確なキーワードを含まない場合、意味的に関連する結果を見逃すことがよくあります。

ソリューション概要

検索品質を向上させるため、OfferUp はコスト効率を維持しながら検索の関連性を高めることに焦点を当てた、さまざまなソフトウェアおよびハードウェアソリューションを検討しました。最終的に、OfferUp は HAQM Titan マルチモーダルエンベディングと HAQM OpenSearch Service を選択しました。これらはフルマネージドサービスであり、検索とレコメンデーションのユースケース全体で高い精度と迅速な応答を提供できる堅牢なマルチモーダル検索ソリューションをサポートしています。この選択により、OfferUp アプリでの大規模な検索機能の展開と運用が簡素化され、高いスループットとレイテンシーの要件を満たすことが可能になりました。

HAQM Titan Multimodal Embeddings G1 モデル

このモデルは大規模なデータセットで事前トレーニングされており、そのまま使用することも、特定のタスク向けに独自のデータでファインチューニングしてカスタマイズすることも可能です。このモデルは、テキストによる画像検索、画像による検索、またはテキストと画像の組み合わせによる類似性やパーソナライゼーションのためのユースケースに使用されます。入力画像やテキストを、同じ意味空間内で画像とテキストの両方の意味的内容を含む埋め込みに変換します。埋め込みを比較することで、このモデルはキーワードマッチングのみの場合と比較して、関連性が高く文脈に沿った応答を生成します

HAQM Titan Multimodal Embeddings G1 は、最大 25 MB の画像データと、最大 256 のテキストトークンを入力としてサポートしています。出力ベクトルサイズは 1024、384、256 から選択可能です。オンデマンド、プロビジョンドスループットの 2 つの推論タイプをサポートしています。

HAQM OpenSearch Service のベクトルデータベース機能

ベクトルデータベースは、メタデータと共にベクトルを保存・インデックス化し、類似性に基づいてアイテムを素早く検索できるようにします。これらのデータベースは通常、Hierarchical Navigable Small World (HNSW) や Inverted File Index (IVF) などの高度なアルゴリズムで構築された k-最近傍 (k-NN) インデックスを使用します。基本的な k-NN 検索機能だけでなく、ベクトルデータベースはデータ管理、障害対策、アクセス権限管理、高速なクエリ処理などが必要なアプリケーションに対して、安定した基盤を提供します。

OpenSearch は、Apache 2.0 ライセンスの下で提供される強力なオープンソーススイートで、検索、分析、セキュリティ監視、システム状態の可視化といった機能を備えています。HAQM OpenSearch Service は、AWS クラウド上で OpenSearch を簡単に導入、拡張、運用できるフルマネージドサービスです。HAQM OpenSearch Service をベクトルデータベースとして活用することで、従来の検索機能、データ分析、ベクトル検索を一つのソリューションにまとめることができます。OpenSearch のベクトル機能により、AI アプリケーションの開発が加速し、チームは AI を活用したリソースの運用、管理、統合をより簡単に行えるようになります。

こうした機能をさらに強化するために、OpenSearch は以下のような高度な機能を提供しています。

  •  HAQM Bedrock 用コネクタ – サービス用の組み込みコネクタを通じて HAQM Bedrock 上の機械学習 (ML) モデルと OpenSearch をシームレスに統合し、高度な ML 機能への直接アクセスを可能とします。
  • インジェストパイプライン – パイプラインによって、データの効率的な処理、変換、配信が可能となります。これにより、スムーズなデータフローによってリアルタイムに取り込み、インデックス化されるデータに対する検索可能性を維持できます。
  • ニューラル検索 – ニューラル検索はテキストと画像をベクトルに変換する機能です。ベクトル検索における、取り込みと検索の両方を容易にします。これにより、OpenSearch 内だけで、データ取り込み、検索、必要な連携機能をすべて一貫して構築可能です。

改善後のマルチモーダル検索基盤

OfferUp は HAQM Bedrock Titan マルチモーダルと HAQM OpenSearch Service で、基盤となる検索アーキテクチャを変革しました。以下の図は、改善後のマルチモーダル検索基盤におけるインデックス作成とクエリのデータパイプラインです。

Figure 2: Transformed multimodal search architecture

データインデックス作成ワークフローは、以下のステップで構成されています。

  1. OfferUp ユーザーが出品リストを作成または更新すると、新しい画像は署名付きアップロード URL を使用して HAQM Simple Storage Service (HAQM S3) に直接アップロードされます。
  2. OfferUp ユーザーは、新規または更新された出品リストの詳細 (タイトル、説明、画像 ID) を投稿マイクロサービスに送信します。
  3. 投稿マイクロサービスは、HAQM DynamoDB 内のリスティングライターマイクロサービスを使用して変更を永続化します。
  4. リスティングライターマイクロサービスは、出品リスト変更イベントを HAQM Simple Notification Service (HAQM SNS) トピックに発行し、HAQM Simple Queue Service (HAQM SQS) キューがそれをサブスクライブします。
  5. リスティングインデクサー AWS Lambda 関数は継続的にキューをポーリングし、受信した出品リスト更新を処理します。
  6. インデクサーは、リスティングリーダーマイクロサービスを通じて DynamoDB テーブルから完全な出品リスト詳細を取得します。
  7. Lambda インデクサーは、画像マイクロサービスを利用して出品リスト画像を取得し、base64 形式でエンコードします。
  8. インデクサー Lambda は、出品リストの詳細と base64 エンコードされた画像を含む挿入と更新を HAQM OpenSearch Service ドメインに送信します。
  9. OpenSearch インジェストパイプラインは、HAQM Bedrock 用の OpenSearch コネクターを呼び出します。Titan Multimodal Embeddings モデルは、出品リスト画像と説明の多次元ベクトル埋め込みを生成します。
  10. 出品リストデータと埋め込みは、HAQM OpenSearch インデックスに保存されます。

データクエリワークフローは、以下のステップで構成されています:

  1. OfferUp ユーザーは、「グレーのフェイクレザーソファ」や「ランニングシューズ」などの検索を、テキストと画像の両方を使用して行います。
  2. 検索マイクロサービスはクエリをキャプチャし、HAQM OpenSearch Service ドメインに転送します。ニューラル検索パイプラインはテキストと画像の検索リクエストを同一の HAQM Titan Multimodal Embeddings モデルに転送し、多次元ベクトル埋め込みに変換します。
  3. OpenSearch Service は、ベクトル化された検索キーワードと画像を使用してベクトル検索を実行し、最も近い、関連性の高いアイテムの出品リストを取得します。

さまざまな k 値 (ベクトル検索において取得する類似アイテム数) での広範な A/B テストの後、OfferUp は k = 128 が計算リソースを最適化しつつも、最良の検索結果をもたらすことを確認しました。

OfferUp におけるマルチモーダル検索への移行パス

OfferUp は、検索基盤にマルチモーダル検索機能を実装するために、3 段階のプロセスを採用しました。

  1. 指定市場エリア (Designed Market Area – DMA) の特定 – OfferUp は DMA を高密度と低密度に分類しています。高密度 DMA はユーザー集中度が高い地域を表し、低密度 DMA はユーザーが少ない地域を指します。OfferUp は最初に、オフライン実験でマルチモーダル検索ソリューションが有望な結果を示した、 ビジネス上重要な 3 つの高密度地域を特定し、マルチモーダル検索の理想的な候補としました
  2. インフラストラクチャと必要な設定のセットアップ – これには以下が含まれます
    • OpenSearch Service: OpenSearch ドメインは高可用性を提供するために 3 つのアベイラビリティーゾーン (AZ) にわたって展開されています。クラスターはクラスター操作を管理するための 3 つのクラスターマネージャーノード (m6g.xlarge.search インスタンス) で構成されています。データ処理には、ストレージと処理の両方に最適化された 24 のデータノード(r6gd.2xlarge.search インスタンス) が使用されています。インデックスは読み取りパフォーマンスを向上させるために 12 のシャードと 3 つの読み取りレプリカで構成されています。各シャードは約 11.6GB のメモリを消費します。
    • エンベディングモデル: このインフラストラクチャにより、HAQM Bedrock 上の HAQM Titan Multimodal Embeddings G1 へのアクセスが可能になります。
  3. バックフィリングの実行 – バックフィリングでは、すべてのアクティブな出品リストの画像を HAQM Titan Multimodal Embeddings を使用してベクトルに変換し、OpenSearch Service に保存します。最初のフェーズでは、OfferUp は 1,200 万件のアクティブな出品リストをバックフィリングしました。

OfferUp は、入力トークンサイズが 3~15 の間で変動する可能性がある、3 つの DMA でマルチモーダル検索を実験的に展開しました。

マルチモーダル検索の利点

このセクションでは、マルチモーダル検索の利点について説明します。

ビジネス指標

OfferUp は、リクエストの振り分け制御と実験における様々な条件を管理するために、A/B テストを通じてマルチモーダル検索の効果を評価しました。この実験では、実験ユーザー群には新しいマルチモーダル検索を、比較対象のグループには既存のキーワードベースの検索機能を提供しました。十分な数のユーザーを対象としてテストを行ったため、安定した比較結果が得られました。

マルチモーダル検索の実装効果は説得力のあるものでした。

  • ユーザーエンゲージメントは 2.2% 増加し、EWSR は 3.8% 向上し、検索結果の関連性向上が示されました
  • 検索結果の閲覧深度が 6.5% 増加し、ユーザーがより多くの検索結果を見るようになりました。これは、上位に表示される結果だけでなく、より下位に表示される商品の関連性も高くなったことを示しています。
  • 特に注目すべき点として、ユーザーが地理的な検索範囲を広げる必要性が 54.2% 減少しました。これは、最初の検索で地域に関連した適切な結果がすぐに見つかるようになったことを意味します。
  • 広告インプレッションも 0.91% 増加しました。検索パフォーマンスを向上させながらも、広告の可視性が維持されています。

技術指標

OfferUp は技術面から効果を測定するために、さらに実験を行いました。6 か月間の実際のシステム利用データを分析し、ユーザー密度の高い地域と低い地域それぞれで、検索結果上位10件の関連性を調査しました。地域タイプ別に分析することで、ユーザー密度の違いが検索システムの性能にどう影響するかを把握し、様々な市場環境での検索精度についての理解を深めることができました。

関連性リコール (RR) = 合計(出品リスト関連性スコア) / 取得された出品リストの数

出品リストの関連性は (1, 0) としてラベル付けされ、クエリと取得された出品リストとの相関関係に基づいています。

  • 1: 出品リストが関連している
  • 0: 出品リストが関連していない

まとめ

この記事では、OfferUp が HAQM Titan Multimodal Embeddings と HAQM OpenSearch Service を活用した検索基盤の改善によって、ユーザーエンゲージメントを大幅に向上させ、検索品質を改善し、テキストと画像の両方で検索できる機能をユーザーに提供した方法を紹介しました。OfferUp は、フルマネージドな HAQM Titan Multimodal Embeddings モデルと HAQM OpenSearch Service を選択したことで、高精度で安定したマルチモーダル検索ソリューションの開発を可能にし、検索とレコメンデーションのユースケースを素早く市場に投入できました。

これらの知見をコミュニティに広く共有し、独自のマルチモーダル検索の取り組みを始める組織や検索精度の向上を目指す組織をサポートできることを嬉しく思います。私たちの経験に基づき、同様の成果を達成するために HAQM Bedrock と HAQM OpenSearch Service を使用することをお勧めします。

本シリーズの次の投稿では、HAQM SageMaker Jupyter Notebooks、HAQM Titan Multimodal Embeddings モデル、OpenSearch Service を使用してマルチモーダル検索ソリューションを構築する方法について説明します。

著者について

Purna Sanyal は AWS の GenAI スペシャリストソリューションアーキテクトです。クラウドネイティブアーキテクチャとデジタルトランスフォーメーションの成功的な導入によってお客様のビジネス課題解決を支援しています。データ戦略、機械学習、生成 AI を専門としています。最適なパフォーマンスでグローバルユーザーにサービスを提供できる大規模 ML システムの構築に情熱を注いでいます。

Andrés Vélez Echeveri 氏は OfferUp のスタッフデータサイエンティスト兼機械学習エンジニアです。レコメンデーションシステム内の検索と順位付けコンポーネントを最適化することで検索体験の向上に注力しています。機械学習と生成 AI を専門としています。イノベーションとユーザーへの影響をもたらすスケーラブルな AI システムの構築に情熱を持っています。

Sean Azlin 氏は OfferUp のプリンシパルソフトウェア開発エンジニアです。テクノロジーを活用してイノベーションを加速し、市場投入までの時間を短縮し、他者の成功と成長を支援することに注力しています。あらゆる規模のクラウドネイティブな分散システムの構築に豊富な経験を持っています。特に生成 AI とその多くの潜在的な応用に情熱を持っています。