フォーム読み込み中
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 アプリと記載)を使用しています。
今回のアプリは、大きくWebアプリケーションである検索アプリと、回答を生成するAIアプリに分けられます。
まずは、完成形をイメージしてもらうために、今回作成した Web アプリケーション(検索アプリ)の画面を紹介します。
質問文を書いて「送信」ボタンを押すと質問文をAI アプリに送信。その回答をブラウザに表示する簡単な仕組みです。
AI アプリからの回答内容についてはユーザーの趣味嗜好を反映したいため、上記の処理に改変を加えて質問転送の裏側で以下のように補足文章を組み立てています。
[クエリ文章] + [補足テキスト] + [タグデータ]
タグデータの部分にはユーザーの趣味嗜好等のパーソナリティが記述されています。
※ 検索アプリはテスト段階なので、「補足テキスト」と 「user_id」 は投稿者が自分で設定する仕様になっています。
灰色の枠内に検索アプリの使い方と、補足設定を入れる欄があります
補足テキスト:質問クエリに追加する補足文章です。AIアプリに対してタグデータをどのように解釈するべきなのかを伝えます。
ページサイズ:検索する記事数の上限を指定します
質問投稿のメインとなる部分です。各項目を記述して質問を投稿します
クエリ:投稿する質問の記入欄です
User ID:パーソナライズ情報を決める「タグデータ」を取得するための IDを記載します
質問履歴:一連の追加質問をした際に、投稿した質問文の履歴が表示されます
追加質問:新規質問の後、AI の回答に対して追加で質問するための入力欄です
回答:AIが返す回答文章を表示します。
検索:質問内容に関する検索によって出てきた記事の一覧を表示します。
システムは大きく検索アプリとAIアプリに分かれていて、以下のように連携しています。
図の左側がAIアプリ、真ん中が検索アプリとなっています。AIアプリにはVertex AI Search API / Vertex AI Answer API を、検索アプリには AppEngine 、データストアには FireStore を利用しています。
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 アプリケーションの動作検証として用意した質問に対して、どの程度こちらが想定した記事を返答するか簡単に検証してみました。
以下の条件でタグデータの有無によって AI アプリケーション が返す記事の変化を確認しました
user_id | タグ情報 |
|---|---|
●● | Copilot |
| 生成AI | |
| JTB | |
| Apple |
タグ情報 | 想定記事の返答数 | 補足 |
|---|---|---|
あり | 10件 / 80件中 | 4個の質問を補足テキストの有無で計8回実施。 表示記事数は1つの質問毎に5件迄に制限 |
なし | 0 件 / 80件中 | 4個の質問を補足テキストの有無で計8回実施。 表示記事数は1つの質問毎に5件迄に制限 |
検証結果から、タグデータを設定することで想定した記事をいくつか引っ張ってきていることを確認しました。
パーソナライズという意味ではある程度うまく機能しているようです。しかしながら、回答内容を吟味すると以下のような課題があることも分かりました。
今回は AI のパーソナライズの手法として、質問文にユーザーのパーソナリティを示すタグデータを追加する仕組みでアプリケーションを実装してみました。しかしながら単純に裏側で単純に情報を付加するだけでは、AI アプリケーションからは適切な記事の回答が得られませんでした。
これを踏まえて、次回の改善点を考えます。
AI アプリからの検索結果及び回答に対して、ユーザーから Good、Bad のボタンによるフィードバックを取得しデータストアに保管、このデータストアの再学習によってより精度の高いパーソナライズ化を検証します。
Vertex AI Search Answer API のパラメータに パーソナライズに関するパラメータが実装されたようです。検索アプリで使用した「タグデータ」と「補足テキスト」については、この API で対応する専用パラメータが使えそうです。
公開時点では英語の公式ドキュメント Get answers and follow-ups : Personalize answers にのみ公開されていました。こちらも試してみようと思います。
※日本語設定では上記URLの解説が表示されません。Personalize answersの項目が表示されない場合は、Google Cloudの言語設定を英語に変更してから再度このページにアクセスしてください。
今回の記事では Vertex AI Search の検索アプリケーションについて、検索と回答のパーソナライズ手法を模索してみました。効果的な手法については未だ検証段階ですが、課題点が明確になった点については非常に有意義な試みでした。
また、Gemini の AI モデルも日々進化を続けているため、今後の回答精度向上にも期待したいと思います。
Vertex AI Search を使って社内文書を検索する生成 AI を構築してみませんか?
ソフトバンクのエンジニアが構築をサポートします。
Vertex AI DIY プランでは、以下の3つのことをご体験いただけます。
詳細は、関連サービスにある「Vertex AI DIYプラン」をご確認ください。
Vertex AI Search を使って社内文書を検索する生成AIを構築してみませんか?
ソフトバンクのエンジニアが構築をサポートします。
Google の生成AIの導入を考えている方はもちろん、どのようなものか確認したいという方でもご活用いただけます。
Looker は定義から集計、可視化の一連のデータ分析プロセスをカバーする BI ツールを超えるデータプラットフォームです。ソフトバンクは、顧客のニーズに合わせて柔軟なサポートを提供し、Looker を活用したデータドリブンな企業変革を支援しています。
Google サービスを支える、信頼性に富んだクラウドサービスです。お客さまのニーズにあわせて利用可能なコンピューティングサービスに始まり、データから価値を導き出す情報分析や、最先端の機械学習技術が搭載されています。
MSP(Managed Service Provider)サービスは、お客さまのパブリッククラウドの導入から運用までをトータルでご提供するマネージドサービスです。
条件に該当するページがございません