Amazon Personalize
機械学習によるリアルタイムパーソナライゼーション (レコメンデーション、パーソナライズドランキング) を提供するサービス
概要
Amazon Personalize は、機械学習の専門知識がなくてもリアルタイムのパーソナライゼーションを実装できるフルマネージドサービスです。ユーザーの行動履歴 (クリック、購入、視聴等) とアイテムのメタデータを学習し、個々のユーザーに最適化されたレコメンデーション、パーソナライズドランキング、関連アイテムの提案を生成します。Amazon.com で培われたレコメンデーション技術を基盤としており、コールドスタート問題への対応、リアルタイムのイベント反映、ビジネスルールによるフィルタリングなど、実運用に必要な機能を備えています。
データセットグループとスキーマ設計
Personalize のデータセットグループは、レコメンデーションモデルの構築に必要なデータを格納するコンテナです。データセットグループには最大 3 種類のデータセットを登録します。Interactions データセット (必須) はユーザーとアイテムの行動履歴 (USER_ID、ITEM_ID、TIMESTAMP、EVENT_TYPE) を格納し、モデルの学習基盤となります。Items データセット (任意) はアイテムのメタデータ (カテゴリ、価格帯、ジャンル、作成日等) を格納し、コンテンツベースのフィルタリングやコールドスタートアイテムの推薦に活用されます。Users データセット (任意) はユーザーの属性情報 (年齢層、性別、会員ランク等) を格納し、ユーザーセグメント別の推薦精度を向上させます。スキーマ設計では、EVENT_TYPE の粒度が推薦品質に直結します。「view」「click」「purchase」のように行動の強度を区別し、EVENT_VALUE フィールドで重み付けすることで、購入行動をクリックより重視するモデルを構築できます。Interactions データセットには最低 1,000 件のインタラクションと 25 人以上のユニークユーザーが必要で、データ量が多いほどモデルの精度が向上します。
レシピ選択とソリューションバージョンのトレーニング
Personalize のレシピは、レコメンデーションアルゴリズムのテンプレートです。ユースケースに応じて適切なレシピを選択します。USER_PERSONALIZATION レシピはユーザーごとにパーソナライズされたアイテムリストを生成し、EC サイトのトップページや動画配信のホーム画面に適しています。RELATED_ITEMS レシピは特定のアイテムに類似・関連するアイテムを返し、商品詳細ページの「この商品を見た人はこちらも」に使用します。PERSONALIZED_RANKING レシピは、指定されたアイテムリストをユーザーの嗜好に基づいて並べ替え、検索結果やカテゴリ一覧のパーソナライズに活用します。ソリューションバージョンはレシピとデータセットを組み合わせてトレーニングしたモデルのスナップショットです。トレーニングにはフルトレーニング (全データで再学習) とインクリメンタルトレーニング (差分データで更新) があり、フルトレーニングは週次、インクリメンタルトレーニングは日次で実行する運用が一般的です。ハイパーパラメータの自動最適化 (HPO) を有効にすると、Personalize が最適なパラメータを探索しますが、トレーニング時間とコストが増加します。オフラインメトリクス (precision@K、nDCG、coverage) でモデルの品質を評価し、ベースラインとの比較で改善度を定量化します。
キャンペーンデプロイとリアルタイム推論
キャンペーンは、トレーニング済みのソリューションバージョンをリアルタイム推論エンドポイントとしてデプロイしたものです。GetRecommendations API を呼び出すと、指定したユーザーに対するパーソナライズされたアイテムリストがミリ秒単位のレイテンシで返されます。キャンペーンの minProvisionedTPS (最小プロビジョンドトランザクション/秒) を設定し、トラフィックに応じた処理能力を確保します。実際のトラフィックが minProvisionedTPS を超えた場合は自動スケーリングが働きますが、急激なスパイクには追従が遅れる場合があるため、セール時期などは事前に TPS を引き上げておきます。PutEvents API でユーザーのリアルタイム行動 (クリック、カート追加等) をストリーミング送信すると、次回の推論に即座に反映されます。これにより、セッション中のユーザー行動に応じて推薦内容が動的に変化します。フィルター機能を使えば、「既に購入済みのアイテムを除外」「在庫切れのアイテムを除外」「特定カテゴリに限定」といったビジネスルールを推論時に適用できます。料金はトレーニング時間 (1 時間あたり約 0.24 USD)、リアルタイム推論 (TPS あたり約 0.20 USD/時間)、データ取り込み (1 GB あたり約 0.05 USD) の 3 要素で構成されます。