コンテンツに移動
AI & 機械学習

Vertex AI で生成 AI を使って商品データを拡充する方法

2023年10月19日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 10 月 10 日に、Google Cloud blog に投稿されたものの抄訳です。

商品情報管理(PIM)は、小売業界において商品データ(説明、画像、各種属性)を管理する重要なプロセスです。このブログ投稿では、Vertex AI で大規模言語モデル(LLM)を使って商品データを拡充する方法を紹介します。これにより、カスタマー エクスペリエンスや収益の改善が期待されます。

商品情報管理

PIM は、組織内に分散する商品情報を収集、格納、管理するプロセスです。収集対象のデータソースは、商品カタログから、ウェブサイト、お客様のフィードバックまで、多岐にわたります。収集したデータは、e コマース プラットフォームや、マーケティング自動化ツール、商品レコメンデーション エンジンなどの他のシステムで使用できるように整理、正規化します。現在、ビジネスにおいて正確かつ最新の商品情報を維持することの重要性が広く認識されるようになってきており、PIM 市場は急速に拡大しています。

PIM プロセスでは LLM をさまざまな方法で活用できます。たとえば、以下のような用途があります。

  • 商品説明の生成: LLM を商品説明の大規模コーパスでトレーニングして、新たな説明を生成する。
  • 商品説明の翻訳: LLM を使って、商品説明を多言語に翻訳する。
  • 商品属性の抽出: LLM を使って、商品説明から商品属性(商品名、価格、特長など)を抽出する。

使ってみる

例として、Kaggle で公開されている Flipkart の商品のデータセットを使用しましょう。ここにはインドの e コマース小売業者 Flipkart の商品のうち、20,000 件分のサンプルデータが 15 種類のフィールド(名前、説明、価格など)にわたり含まれています。

目標は、このデータセットの商品説明の質を改善することです。特に、短い説明や不完全な説明に着目し、これらを補足してみましょう。

Colab ノートブックに沿って作業を進めることができます。以下に、大まかな手順を示します(ここでは詳細は省きます)。

データ分析

まず最初に、商品説明の分布を把握しましょう。カーネル密度推定図(KDE)を作成すると、データの分布を滑らかにして可視化できます。

読み込んでいます...

ここでは、分布の左側を詳しく観察するため、X 軸で対数スケールを使用しています。ほとんどの説明の長さは、100~1,000 文字以内であることがわかります。説明が特に短い 0.05% を補うことにしましょう。そのために、説明の長さのしきい値を 93 文字に設定します。

読み込んでいます...

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_s5vfT7l.max-2000x2000.jpg

データの準備

以下のように計算を実行して、補足対象の商品が 13 件あることがわかります。

読み込んでいます...

これらのうち 3 件を取り上げてみましょう。改善の余地があることは明らかですね。

  • Specifications of Shilpi NHSCN003 Coin Bank (Brown) In The Box Sales Package Coin Bank
  • Key Features of Prime Printed 6 Seater Table Cover Length 78 inch/198 cm Width 54 inch/137 cm
  • Specifications of Speedo Men's Swimsuit General Details Occasion Sports Ideal For Men's

元の説明だけでなく、その他の属性(名前、ブランド、カテゴリなど)も入力し、LLM に追加のコンテキストを与えましょう。すべての属性を含める必要はありません。目標と関係のない列は省いてください。これらの結果を JSON 文字列に格納し、モデルから解析しやすいようにします。

読み込んでいます...

プロンプト エンジニアリング

次に、モデルへの指示(プロンプト)を作成します。ここでは、プロンプトの設計について詳しくは触れませんが、使用するプロンプトの各要素を紹介します。

まず、要件を明確にします。目標は、魅力的で正確なコピーを生成することです。また、解析を容易にするために、レスポンスを JSON 形式にする必要があります。さらに、商品の一意の識別子を含めて、新しい説明を元の商品に関連付けられるようにしたいと考えています。プロンプトの末尾には、先ほどまとめた商品データを表示します。

読み込んでいます...

モデルへのクエリ

ここまでで、商品の説明を生成する準備が整いました。以下に示す 4 つの簡単なステップで生成できます。

  1. まず、Vertex AI SDK for Python をインポートし、ご利用のプロジェクト ID とリージョンでクライアントを初期化します。
  2. 次に、Vertex AI Model Garden から事前トレーニング済みのテキスト生成モデルを選択します。
  3. 出力トークンの最大値を 1024 に設定し、詳細な説明を受け付けられるようにします。
  4. モデルに対してクエリを実行し、結果を確認します。
読み込んでいます...

以下のような結果が得られます。

[{"uniq_id": "CNBEJ9EDXWN8HQUU", "description": "Shilpi NHSCN003 Coin Bank (Brown) is a coin bank with a capacity of 1000 coins...

解析しやすい JSON 構造になっていることがわかります。JSON 解析関数を使って、各 ID と新しい商品説明を抽出し、元の説明を更新できます。

新しい説明を元の説明と比べてみると、はるかに改善されていることがわかります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_xncUn5s.max-2000x2000.jpg

短い商品説明の分布をご覧ください。しきい値より短い説明はなくなっていることがわかります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_Lny3QME.max-2000x2000.jpg

まとめ

大規模言語モデルは、商品データの質を高めるのに効果的なツールです。正確で一貫性のある、魅力的な商品データは、小売業のエクスペリエンスを支える土台となります。このブログ投稿では、商品データを拡充するために Vertex AI サービスと簡単に統合する手順を紹介しました。そのほかにも、Vertex AI Vision を使って商品画像からコンテキストを取得する、さらに一歩踏み込んで、商品のメタデータに基づき Vertex AI 上の Imagen から画像を生成するといった案が考えられます。詳しくは、Vertex AI の生成 AI および小売業のための Google Cloud のサイトをご覧ください。

- デベロッパーリレーションズ担当エンジニアリング マネージャー Karl Weinmeister

投稿先