Amazon Web Services ブログ

Amazon Personalize の新レシピでより大規模な商品カタログを低レイテンシーで利用可能に

本記事は、Amazon Personalize launches new recipes supporting larger item catalogs with lower latency を翻訳したものです。翻訳は Solutions Architect の小川翔が担当しました。

パーソナライズされた顧客体験は、今日のユーザーを惹きつけるために不可欠です。しかし、ユーザーの行動の変化に適応する本当にパーソナライズされた体験を提供することは、チャレンジングかつ時間のかかるものです。Amazon Personalize を使えば、機械学習の専門知識がなくても簡単に Amazon が使用しているものと同じ機械学習テクノロジーを使って、ウェブサイト、アプリ、メールなどをパーソナライズできます。Amazon Personalize が提供するレシピ (特定のユースケース用のアルゴリズム) を使えば、商品やコンテンツのおすすめ、パーソナライズされた並べ替えなど様々なパーソナライズを実現できます。

2024/5/2、Amazon Personalize の2つの高度なレシピ、User-Personalization-v2 Personalized-Ranking-v2 の一般提供を発表できることを嬉しく思います。これらのレシピは 最新の Transformer アーキテクチャに基づいており、より大規模な商品カタログに対応しながら低レイテンシーを実現しています。

この投稿では、新機能の概要を説明し、モデルの学習プロセスとユーザーへの推薦方法をご案内します。

新レシピのメリット

新しいレシピでは、スケーラビリティ、レイテンシー、モデルのパフォーマンス、機能性が強化されています。

  • 高いスケーラビリティ – 新しいレシピでは最大 5 百万アイテムのカタログと 30 億件のユーザーとアイテムのインタラクションデータを用いた学習が可能になり、大規模カタログや何十億もの利用イベントがあるプラットフォームでの適用が可能になりました。
  • レイテンシーの短縮 – 大規模データセットの場合でも、推論時間と学習時間が短縮されたことで、エンドユーザーの待ち時間を削減できます。
  • パフォーマンスの最適化 – Amazon Personalize でのテストでは、v2 レシピがレコメンデーションの精度を最大 9 % 高め、レコメンデーションのカバレッジを最大 1.8 倍にする結果が出ています。カバレッジが高いということは、Amazon Personalize がカタログの多くのアイテムを推薦できるということです。
  • 推論レスポンスにアイテムメタデータを返す – 新しいレシピではアイテムメタデータがデフォルトで追加料金なしで有効化されているので、ジャンル、説明、入手可能性など、メタデータを推論レスポンスに含めることができます。これにより追加作業なしにユーザーインターフェースでレコメンデーションを充実させることができます。Amazon Personalize を生成 AI と組み合わせる場合は、メタデータをプロンプトに取り入れることもできます。大規模言語モデルに豊富な文脈を提供することで、商品属性を深く理解しより関連性の高いコンテンツを生成することができるようになります。
  • 高度な自動化されたオペレーション – 新しいレシピはモデルの学習とチューニングのオーバーヘッドを削減するように設計されています。例えば、Amazon Personalize はトレーニング設定の単純化と、カスタムモデルの最適な設定を内部的に自動選択します。

ソリューションの概要

User-Personalization-v2 および Personalized-Ranking-v2 レシピを使用するには、まず Amazon Personalize のリソースをセットアップする必要があります。データセットグループを作成し、データをインポートして、ソリューションバージョンを作成し、キャンペーンをデプロイしてください。詳細な手順については、Getting Startedをご覧ください。

この投稿では、キャンペーンをデプロイするために Amazon Personalize コンソールを使った方法に沿ってご案内します。代わりに SDK を使ってソリューション全体を構築することもできます。また、非同期のバッチフローを使って一括で推薦を取得することもできます。ここでは、MovieLens 公開データセットと User-Personalization-v2 レシピを使って、ワークフローを説明します。

データセットの準備

次の手順でデータセットを準備してください:

  1. データセットグループを作成します。各データセットグループには、最大 3 つのデータセット (ユーザー、アイテム、インタラクション) を含めることができ、User-Personalization-v2 および Personalized-Ranking-v2 ではインタラクションデータセットは必須です。
  2. スキーマを使用して、インタラクションデータセットを作成します。
  3. Amazon Simple Storage Service (Amazon S3) から、インタラクションデータを Amazon Personalize にインポートします。

モデルの学習

データセットのインポートジョブが完了したら、トレーニングの前にデータを分析できます。Amazon Personalize の Data analysis 機能では、データに関する統計情報と、トレーニングの要件を満たしてレコメンデーションを改善するためのアクションを確認できます。

これで、モデルを学習する準備が整いました。次にモデルを学習する手順を示します。

  1. Amazon Personalize コンソールで、ナビゲーションメニューから Dataset groups を選択します。
  2. 作成したデータセットグループを選択します。
  3. Create solutions を選びます。
  4. Solution name には、ソリューション名を入力します。
  5. Solution type では、Item recommendation を選びます。
  6. Recipe では、新しいaws-user-personalization-v2 のレシピを選びます。
  7. Training configuration セクションで、Automatic training では Turn on を選択します。これにより、定期的なトレーニングでモデルの有効性を維持することができます。
  8. Hyperparameter configuration で、Apply recency bias(最新データへの重み付け) を選択します。これにより、モデルがインタラクションデータセットの最新のアイテムインタラクションデータにより重みを置くようになります。
  9.  Create solution を選びます。

Automatic training を有効にした場合、Amazon Personalize は最初のソリューションバージョンを自動的に作成します。ソリューションバージョンとは、トレーニングされた ML モデルのことを指します。ソリューションバージョンが作成されると、Amazon Personalize はレシピとトレーニング設定に基づいて、ソリューションバージョンに紐づくモデルをトレーニングします。ソリューションバージョンの作成を開始するまでに最大で 1 時間かかります。

  1. ナビゲーションペインの Custom resources で、Campaigns を選択してください。
  2. Create campaign を選択してください。

キャンペーンは、学習済みモデル (ソリューションバージョン) をデプロイして、リアルタイムの推薦を生成します。v2 レシピで学習したソリューションで作成されたキャンペーンでは、推薦結果にアイテムのメタデータを含めるオプトインが自動的にオンになります。推論リクエストの際にメタデータ列を選択できます。

  1. キャンペーンの詳細を入力してキャンペーンを作成します。

推薦情報を取得する

キャンペーンの作成または更新後、ユーザーが最も関心を示すと思われる順に、アイテムの推薦リストを取得できます。

  1. キャンペーンを選択し、View details を選びます。
  2. Test campaign results セクションで、ユーザー ID を入力し、Get recommendations を選択します。

次の表は、ユーザーに対する推薦結果です。推薦された商品、関連スコア、商品メタデータ (タイトルとジャンル) が含まれています。

これで、User-Personalization-v2 をウェブサイトやアプリに組み込んで、顧客一人ひとりに合わせた体験を提供できる準備ができました。

クリーンアップ

この投稿に従って作成した、アカウント内の不要なリソースは必ず削除してください。キャンペーン、データセット、データセットグループは、Amazon Personalize コンソールまたは Python SDK を使用して削除できます。

まとめ

Amazon Personalize の新しい2つのレシピ( User-Personalization-v2Personalized-Ranking-v2 )はレシピは、大規模なアイテムカタログに対応し、レイテンシの削減、パフォーマンスの最適化により、パーソナライズを次のレベルに引き上げます。Amazon Personalize の詳細は、Amazon Personalize 開発者ガイドを参照してください。

著者について

Jingwen Hu は AWS AI/ML の Amazon Personalize チームでシニアテクニカルプロダクトマネージャーとして働いています。余暇には旅行と現地の食べ物を探索するのを楽しんでいます。

Daniel Foley は Amazon Personalize のシニアプロダクトマネージャーです。人工知能を活用してお客様の最大の課題を解決するアプリケーションの構築に取り組んでいます。仕事の合間には、熱心なスキーヤーとハイカーでもあります。

Pranesh Anubhavは、Amazon Personalize のシニアソフトウェアエンジニアです。顧客に対するスケーラブルな機械学習システムの設計に情熱を持っています。仕事以外では、サッカーをするのが大好きで、レアル・マドリードの熱心な追随者です。

Tianmin Liu は、Amazon Personalize のシニアソフトウェアエンジニアです。様々な機械学習アルゴリズムを用いて、大規模な推薦システムの開発に従事しています。余暇時間は、ビデオゲームをプレイしたり、スポーツを観戦したり、ピアノを弾くことが好きです。

Abhishek Mangalは、Amazon Personalize のソフトウェアエンジニアです。様々な機械学習アルゴリズムを使って大規模な推薦システムの開発に携わっています。余暇にはアニメを視聴することが好きで、ワンピースが最近の物語として最高傑作であると考えています。

Yifei Ma は、AWSAILabs のシニアアプライドサイエンティストであり、レコメンダーシステムに従事しています。彼の研究興味は、能動学習、生成モデル、時系列解析、オンライン意思決定にあります。仕事以外では、航空機愛好家です。

Hao Ding は、AWS AI Labsのシニアアプライドサイエンティストであり、Amazon Personalizeのレコメンデーションシステムの進化に取り組んでいます。彼の研究関心は、レコメンデーション基盤モデル、ベイズ深層学習、大規模言語モデル、およびそれらのレコメンデーションへの応用にあります。

Rishabh Agrawal は、 AWS の AI サービスに携わるシニアソフトウェアエンジニアです。余暇には、ハイキング、旅行、読書を楽しんでいます。