COLUMN

Vertex AI Searchで実現するレコメンデーション機能とは ~Webアプリへの活用と実装例~

魅力的なコンテンツがあっても、Webサイト上で適切な導線がなければ、ユーザーはすぐに離脱してしまいます。

そのため、Webサイトでユーザーの滞在時間を延ばしたり、コンバージョン率を向上させたりするには、「次に何を見てもらうか」 という導線づくりが重要です。

ここで効果を発揮するのが、ユーザーの関心に基づいて関連コンテンツを表示する「レコメンデーション機能」です。

パブリッククラウドの構築・活用に関するお問い合わせはこちら!

1. レコメンデーション機能とは

レコメンデーション機能は、コンテンツの特長やユーザーの行動データ等を用いて、関連性の高い情報を自動で提示する仕組みです。主な種類として、「コンテンツベース」(コンテンツの特長に類似するものをレコメンド)や 「協調フィルタリング」(ユーザーの行動データ等をもとにレコメンド)があり、例えば、Web記事のサイトでは閲覧中の記事に類似したものを表示したり、ECサイトでは購入履歴や閲覧傾向を基に商品を提案したりするなど、さまざまな分野で活用されています。

パブリッククラウドの構築・活用に関するお問い合わせはこちら!

2. Vertex AI Search Recommendation apps

Vertex AI Search Recommendation appsは、AI等を活用してパーソナライズされたレコメンデーションを提供するGoogle Cloud のサービスです。汎用的なレコメンデーション(generic recommendations)とメディア向けのレコメンデーション(media recommendations)の2つのタイプがあります。

  • 汎用的なレコメンデーション(generic recommendations)

ユーザーが閲覧中のコンテンツに類似した情報を提案するレコメンデーション機能で、ドキュメント、構造化データやウェブサイトの情報を利用してパーソナライズされたレコメンデーションを提供できるのが特長

  • メディア向けのレコメンデーション(media recommendations)

動画などのメディアコンテンツに特化したレコメンデーション機能で、ユーザーの視聴履歴や評価データを基にパーソナライズされたコンテンツを提供できるのが特長

パブリッククラウドの構築・活用に関するお問い合わせはこちら!

3. 汎用的なレコメンデーションとWebアプリケーションへの実装

Vertex AIのレコメンデーション機能はWebサイト、Eコマース、動画配信プラットフォームなど、さまざまなアプリケーションで活用できます。

本コラムでは、その実装例として汎用的なレコメンデーション(Generic Recommendations)の機能を活用し、Webアプリケーションにレコメンデーション機能を組み込む方法を紹介します。弊社のWebコラムサイトを題材に、データの準備、レコメンデーションアプリの構築、APIを利用した統合までの手順を詳しく解説します。

パブリッククラウドの構築・活用に関するお問い合わせはこちら!

4. 実装方法

汎用的なレコメンデーション機能の実装方法をご説明します。

以下の構成でレコメンデーション機能を作成します。

  • Vertex AI のレコメンデーションアプリを作成
  • Cloud Run に構築し、Discovery Engine API を経由してデータ取得
  • レコメンデーションのWebコンポーネントを追加

4-1. 構造化データの準備

最初にレコメンデーションに必要なデータを準備します。

Vertex AI Searchで実現する高度なWeb検索の導入と活用法について解説では、Webサイトからデータをインデックスする方法を取り上げましたが、今回は構造化データを活用する方法をご紹介します。

以下のようなタイトルや要約情報を含む構造化データ(JSONL)を用意しました。

{"url": "https://business.ntt-east.co.jp/content/cloudsolution/ih_column-176.html", "title": "小規模運用に最適!Amazon Connect Casesで始める問い合わせ履歴管理とボイスボット自動連携の活用例", "excerpt": "本コラムでは、Amazon Connect Casesについて機能の概要や使い方、活用例をご紹介します。", "description": "・・・・"}
{"url": "https://business.ntt-east.co.jp/content/cloudsolution/column-602.html", "title": "Amazon Connectで生成AIによるリアルタイムなエージェント支援機能を試してみた!", "excerpt": "本コラムでは、Amazon Connectの機能の一つであり、リアルタイムなエージェントの支援を行うためのサービスであるAmazon Q in Connectの紹介と、機能検証のデモを行うための手順をご紹介します。", "description": "・・・"}
{"url": "https://business.ntt-east.co.jp/content/cloudsolution/column-601.html", "title": "AWS入門ガイド:アカウント作成の方法と流れ", "excerpt": "本コラムでは、AWSの入門者向けに、運用に必要な最低限のアカウントである、「ルートユーザー」と「IAMユーザー」の作成方法を解説します。", "description": "・・・"}

次に Google Cloud Storageバケットを作成し、データを保管します。

コンソールからバケット名を入力して、「作成」を選択します。

作成済みのバケットに、準備した構造化データをアップロードします。

4-2. データストアの作成

Google Cloud コンソールからAgent Builderを選択し、データストアを作成します。データソースには「Cloud Storage」を選択します。

次にデータをインポートします。データの種類として「構造化データ(JSONL)」を選択し、GCSに保存されているデータのパスを指定した後、「続行」をクリックします。

インポートしたデータからフィールドが自動検出されます。割り当てられていないフィールドは、手動でマッピングすることもできます。

最後にデータストア名を入力して、「作成」を選択します。

4-3. アプリの作成

次にアプリを作成してデータストアに接続します。

Google Cloud コンソールからAgent Builderを選択し、アプリを作成します。アプリの種類を「レコメンデーション エンジン」に指定します。

アプリ名を入力して「続行」を選択します。

作成したデータストアを選択して、「作成」を選択します。

4-4. プレビュー

アプリ作成後、自動的に学習が開始されます。利用開始できるまで数時間かかることがあります。

完了後に、コンソールからレコメンデーションの結果をプレビューできます。

「生成AIを使った電話対応の効率化・自動化~学校・教育機関編~」の記事を指定して、レコメンデーションを取得します。

すると、旅行代理店編やインフラ業界編など、同じシリーズの記事が上位にランクインしていることが分かります。

4-5. レコメンデーションアプリのAPI統合

レコメンデーションのモデルが学習を完了したら、APIを利用してアプリに統合できます。

ここでは、DiscoveryEngine APIを使用して、レコメンデーション結果を取得する方法を紹介します。

サンプルコードが以下です。

from google.cloud import discoveryengine_v1 as discoveryengine

・・・
project_id = <プロジェクトID>
location = "global"
engine_id = <レコメンデーションアプリID>
 
def sample_recommend():
    client = discoveryengine.RecommendationServiceClient()
 
    user_event = discoveryengine.UserEvent()
    user_event.event_type = "event_type_value"
    user_event.user_pseudo_id = "user_pseudo_id_value"
 
    user_event = discoveryengine.UserEvent(
        event_type="view-item",
        user_pseudo_id="user1",
        documents=[{"id": <対象記事のドキュメントID>}],
    )
 
    request = discoveryengine.RecommendRequest(
serving_config = f"projects/{project_id}/locations/{location}/collections/default_collection/engines/{engine_id}/servingConfigs/{engine_id}",
        user_event=user_event,
        page_size=3, #出力する結果の数
        params={  
            "returnDocument": True, 
            "returnScore": True,
            "strictFiltering": True, 
        }
    )
 
    # Make the request
    response = client.recommend(request=request)
sample_recommend()

このコードを実行すると、以下のような結果が得られます。

Documentブロックには、レコメンデーション結果として返された記事とその詳細情報 が含まれます。

Metadataには、レコメンデーションの関連度スコアが表示されていることがわかります。

results {
  id: "ade1e6f1eb4e62770375b80db2c10cea"
  document {
    name: "projects/134425563507/locations/global/collections/
default_collection/dataStores/ad_1737952871861/branches/0/documents/ade1e6f1eb4e62770375b80db2c10cea"
    id: "ade1e6f1eb4e62770375b80db2c10cea"
    schema_id: "default_schema"
    struct_data {
      fields {
        key: "url"
        value {
          string_value: "https://business.ntt-east.co.jp/content/cloudsolution/column-580.html"
        }
      }
      fields {
        key: "title"
        value {
          string_value: "生成AIを使った電話対応の効率化・自動化~旅行代理店編~"
        }
      }
      fields {
        key: "excerpt"
        value {
          string_value: "本コラムでは、広告代理店におけるAI自動電話対応の活用法についてご紹介します。"
        }
      }
      fields {
        key: "description"
        value {
          string_value: "昨今、旅行代理店における電話業務への生成AIの導入が急速に進んでいます。・・・"
        }
      }
    }
    parent_document_id: "ade1e6f1eb4e62770375b80db2c10cea"
  }
  metadata {
    key: "score"
    value {
      number_value: 8.7996078946162015e-05
    }
  }
}
・・・

4-6. Webアプリケーションへの組み込み

最後に、Webアプリにレコメンデーション機能を組み込む実装を行います。

完成後のイメージがこちらです。

ユーザーが記事を閲覧すると、「おすすめのコラム」として関連する記事が動的に表示されます。

具体的なソースコードは割愛しますが、以下の流れで実装しています。

  • Cloud Run にレコメンデーションAPIをデプロイ
  • フロントエンドで「おすすめ」コンポーネントを追加
  • WebからAPIを呼び出し、関連する記事を表示

パブリッククラウドの構築・活用に関するお問い合わせはこちら!

5. まとめ

レコメンデーションシステムのWebアプリケーションの構築方法について、ご理解いただけたでしょうか。本コラムでは、Vertex AI Search Recommendation Appsを活用し、コンテンツの特長に基づいたレコメンデーション機能をWebアプリに統合する方法をご紹介しました。また、今回紹介した方法に加えて、ユーザーイベントなどのデータを活用することで、ユーザーの関心に基づいた、より精度の高いレコメンデーション機能もVertex AIから実現できます。ぜひ一度お試しください。

パブリッククラウドの構築・活用に関するお問い合わせはこちら!

ページ上部へ戻る

相談無料!プロが中立的にアドバイスいたします

クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。