Vertex AI Search API による検索アプリケーションのパーソナライズ

2025年3月24日掲載

Google Cloud の Vertex AI Search には便利な Web API が公開されており、Vertex AI Search と連携した検索を行える Web アプリケーションを簡単に作ることが出来ます。今回はこれを活用してユーザーの趣味嗜好を反映した(パーソナライズされた)ニュース記事検索の Web アプリケーション(以降 検索アプリ と記載)を作ってみました

パーソナライズとは:個々のユーザーの好みや行動に基づいて AI サービスをカスタマイズすることです。これにより、ユーザーは自分に最適化された提案や情報を AI から受け取ることができます。

ベースとなる Vertex AI Search 側のアプリケーションには、前回の記事「Vertex AI Agent Builder による RSS Feed 専用検索エンジンの作成」で作成した RSSFeed検索の AI アプリケーション(以降 AI アプリと記載)を使用しています。

目次

1.作成した 検索アプリ の画面

今回のアプリは、大きくWebアプリケーションである検索アプリと、回答を生成するAIアプリに分けられます。

まずは、完成形をイメージしてもらうために、今回作成した Web アプリケーション(検索アプリ)の画面を紹介します。

質問文を書いて「送信」ボタンを押すと質問文をAI アプリに送信。その回答をブラウザに表示する簡単な仕組みです。

パーソナライズのための工夫

AI アプリからの回答内容についてはユーザーの趣味嗜好を反映したいため、上記の処理に改変を加えて質問転送の裏側で以下のように補足文章を組み立てています。

 [クエリ文章] + [補足テキスト] + [タグデータ]

タグデータの部分にはユーザーの趣味嗜好等のパーソナリティが記述されています。

※ 検索アプリはテスト段階なので、「補足テキスト」と 「user_id」 は投稿者が自分で設定する仕様になっています。

画面構成の説明

操作説明と補足設定(灰色の枠内)

灰色の枠内に検索アプリの使い方と、補足設定を入れる欄があります

補足テキスト:質問クエリに追加する補足文章です。AIアプリに対してタグデータをどのように解釈するべきなのかを伝えます。

ページサイズ:検索する記事数の上限を指定します

質問送信フォーム(緑色の枠内)

質問投稿のメインとなる部分です。各項目を記述して質問を投稿します

クエリ:投稿する質問の記入欄です

User ID:パーソナライズ情報を決める「タグデータ」を取得するための IDを記載します

質問履歴:一連の追加質問をした際に、投稿した質問文の履歴が表示されます

追加質問:新規質問の後、AI の回答に対して追加で質問するための入力欄です

AIからの返答の表示部分

回答:AIが返す回答文章を表示します。

検索:質問内容に関する検索によって出てきた記事の一覧を表示します。

 

2.検索アプリと AI アプリの連携について

システムは大きく検索アプリとAIアプリに分かれていて、以下のように連携しています。

図の左側がAIアプリ、真ん中が検索アプリとなっています。AIアプリにはVertex AI Search API / Vertex AI Answer API を、検索アプリには AppEngine 、データストアには FireStore を利用しています。

コンポーネントの説明※基本的に Google Cloud サービスを使用

Application On AppEngine:Google Cloud の AppEngine 上に質問フォームとその回答を表示する Web アプリケーションを構築しています。

Tag On FireStore:FireStore Database に各 user_id と同じ名前でドキュメントを作成しています。ドキュメントにはユーザー固有の趣味嗜好を示す単語が Array 形式で列挙されています。

例){

tags:[vertex AI, Google Cloud, 生成AI]

}

Vertex AI Search API および Vertex AI Answer API:Vertex AI Search の検索結果と回答を取得するための API です。エンドポイントに AI アプリを指定してコールすることで、RSSFeed の記事検索結果とその要約(回答文章)を取得することが出来ます。

動作フローの説明

  • ①ユーザーはWebの入力欄から「質問文」+「補足テキスト」+「user_id」を指定してAI アプリ側に送信します。
  • ②~③ 検索アプリは受け取った user_id を使ってそれに合致する Tag データを FireStore から取得します。
  • ④~⑦「質問文」+「補足テキスト」+「user_id」という形で文章を結合して、AI アプリに質問文を API で送信、記事検索結果と回答文を受領します。
  • ⑤AI アプリから返ってきた内容を検索アプリ上に表示します

3.Webアプリケーションの動作検証

作成した Web アプリケーションの動作検証として用意した質問に対して、どの程度こちらが想定した記事を返答するか簡単に検証してみました。

検証内容

以下の条件でタグデータの有無によって AI アプリケーション が返す記事の変化を確認しました

  • 検証用にパーソナライズ情報を記述したタグデータを新規作成
  • AIに投げる質問を4つ用意。各質問に対して期待する検索結果の記事をピックアップ
  • 記事の表示件数は各質問につき5件に制限

 

用意したタグデータ

user_id  

タグ情報  

 ●●

Copilot
生成AI
JTB
Apple

質問文および期待する回答記事

 

検証結果

タグ情報 

想定記事の返答数 

補足

あり

10件 / 80件中

4個の質問を補足テキストの有無で計8回実施。

表示記事数は1つの質問毎に5件迄に制限

なし

0 件 / 80件中

4個の質問を補足テキストの有無で計8回実施。

表示記事数は1つの質問毎に5件迄に制限

評価

検証結果から、タグデータを設定することで想定した記事をいくつか引っ張ってきていることを確認しました。

パーソナライズという意味ではある程度うまく機能しているようです。しかしながら、回答内容を吟味すると以下のような課題があることも分かりました。

課題

  • タグデータにマッチする記事を持ってくるために、遡ってかなり過去の記事を返答したりなど、話題のニュースを探したいユーザーにとっては有用ではないと思われる回答
    ⇒Googleの2年前のトップニュースを回答したりなど

  • 質問文を無視して、タグデータの方を反映した検索結果
    ⇒トラベルボイスのニュースの質問に対して、ギズモードのCopilotニュースを回答するなど

4.改善点、次回実施したいこと

今回は AI のパーソナライズの手法として、質問文にユーザーのパーソナリティを示すタグデータを追加する仕組みでアプリケーションを実装してみました。しかしながら単純に裏側で単純に情報を付加するだけでは、AI アプリケーションからは適切な記事の回答が得られませんでした。

これを踏まえて、次回の改善点を考えます。

4−1.フィードバック学習の検証

AI アプリからの検索結果及び回答に対して、ユーザーから Good、Bad のボタンによるフィードバックを取得しデータストアに保管、このデータストアの再学習によってより精度の高いパーソナライズ化を検証します。

4−2.正規に用意されたパーソナライズパラメータの使用

Vertex AI Search Answer API のパラメータに パーソナライズに関するパラメータが実装されたようです。検索アプリで使用した「タグデータ」と「補足テキスト」については、この API で対応する専用パラメータが使えそうです。

公開時点では英語の公式ドキュメント Get answers and follow-ups  :  Personalize answers  にのみ公開されていました。こちらも試してみようと思います。

※日本語設定では上記URLの解説が表示されません。Personalize answersの項目が表示されない場合は、Google Cloudの言語設定を英語に変更してから再度このページにアクセスしてください。

5.あとがき

今回の記事では Vertex AI Search の検索アプリケーションについて、検索と回答のパーソナライズ手法を模索してみました。効果的な手法については未だ検証段階ですが、課題点が明確になった点については非常に有意義な試みでした。

また、Gemini の AI モデルも日々進化を続けているため、今後の回答精度向上にも期待したいと思います。

 

Vertex AI DIYプランについて

Vertex AI Search を使って社内文書を検索する生成 AI を構築してみませんか?
ソフトバンクのエンジニアが構築をサポートします。

Vertex AI DIY プランでは、以下の3つのことをご体験いただけます。
詳細は、関連サービスにある「Vertex AI DIYプラン」をご確認ください。

SoftBank Vertex AI Search DIYプランのご紹介

関連サービス

Vertex AI Search を使って社内文書を検索する生成AIを構築してみませんか?
ソフトバンクのエンジニアが構築をサポートします。
Google の生成AIの導入を考えている方はもちろん、どのようなものか確認したいという方でもご活用いただけます。

Looker は定義から集計、可視化の一連のデータ分析プロセスをカバーする BI ツールを超えるデータプラットフォームです。ソフトバンクは、顧客のニーズに合わせて柔軟なサポートを提供し、Looker を活用したデータドリブンな企業変革を支援しています。

Google サービスを支える、信頼性に富んだクラウドサービスです。お客さまのニーズにあわせて利用可能なコンピューティングサービスに始まり、データから価値を導き出す情報分析や、最先端の機械学習技術が搭載されています。

MSP(Managed Service Provider)サービスは、お客さまのパブリッククラウドの導入から運用までをトータルでご提供するマネージドサービスです。

おすすめの記事

条件に該当するページがございません