Amazon Personalize を使ったパーソナライズレコメンドのはじめ方

最終更新日: 2026年8月7日

Amazon Personalize は、AWS が提供するフルマネージドの機械学習サービスで、ユーザー(顧客や会員など)とアイテム(商品やコンテンツなど)とのやり取りデータ(インタラクション)をもとに、パーソナライズされたレコメンデーションを実現するサービスです。
ECサイトの「あなたにおすすめの商品」、動画配信サービスの「あなたにおすすめのコンテンツ」、あるいは転職・求人サイトでの「あなたに合う求人情報」といった仕組みを、比較的短期間で構築できます。

この記事では、Amazon Personalize を利用する際に必要となるデータや、そのデータをどのように用意すればよいかを紹介します。たとえば以下のようなケースにおけるレコメンドにも応用できます。

  • ECサイトでの「ユーザーに合う商品おすすめ機能」
  • 動画配信サービスにおける「ユーザーの好みに合ったコンテンツ推薦」
  • 求人サービスでの「求職者に合う案件マッチング」
  • 記事やブログプラットフォームでの「関連度の高い記事のレコメンド」

1. 必要なデータの種類

Amazon Personalize では、大きく分けて以下の 3種類のデータ を取り扱います。

  1. インタラクションデータ (Interactions)
  2. ユーザーデータ (Users)
  3. アイテムデータ (Items)

まず必須となるのは インタラクションデータ です。ここに、必要に応じて ユーザーデータアイテムデータ を加えることで、より高度な推定や「コールドスタート」(新しいユーザーやアイテムへの対応)が可能になります。

1.1 インタラクションデータ (Interactions)

目的

  • ユーザーがアイテムに対して「どのようなアクションを起こしたか」の履歴を表す。
  • Amazon Personalize の学習で最も重要なデータ。

  • ECサイトで「ユーザーが商品Aを閲覧した」「商品Bを購入した」
  • 動画配信サービスで「ユーザーが動画Cを再生した」「動画Dを高評価した」
  • 求人サービスで「求職者が案件Xをクリックした」「応募した」「お気に入りに登録した」など

Amazon Personalize では基本的に以下の項目を管理します。

  • user_id: ユーザーを一意に表すID
  • item_id: アイテムを一意に表すID
  • event_type: ユーザーが起こしたイベントの種類(閲覧(view)、購入(purchase)、お気に入り(like) など)
  • timestamp: イベントが発生した時刻(UNIXタイムスタンプで管理)
  • event_value: スコアや評価値などの数値データ(任意)

インタラクションデータのサンプル (CSV形式)

user_id,item_id,event_type,event_value,timestamp
user_001,product_1001,view,,1674464523
user_001,product_1001,purchase,,1674464580
user_002,product_1001,view,,1674464900
user_002,product_1002,view,,1674465000
user_003,product_1003,like,5,1674465100
...

1.2 ユーザーデータ (Users)

目的

  • 各ユーザーの補足情報(属性・好み・特徴など)を取り込み、推定精度を高める。
  • 新規ユーザー(まだインタラクション実績が少ない)のレコメンド性能を向上させる(コールドスタート対策)。

  • 性別、年齢、所在地、趣味、会員ランク など
  • 業種・スキル(求人サイトの場合)
  • 視聴ジャンルの好み(動画配信の場合)
  • ペットの有無、家族構成(興味に関連する商品をレコメンドするECサイトの場合)

ユーザーデータのサンプル (CSV形式)

user_id,age,location,interests
user_001,32,"Tokyo","music,tech"
user_002,27,"Remote","movies,fitness"
user_003,22,"Osaka","education,books"
...

カラムはユースケースに合わせて自由に拡張可能です。たとえばスキルや経験年数などを入れてもOKです。


1.3 アイテムデータ (Items)

目的

  • 各アイテムの補足情報を取り込み、推定精度を高める。
  • 新規アイテム(まだインタラクションが少ない)へのレコメンド品質を向上させる(コールドスタート対策)。

  • 商品カテゴリ、ブランド、価格帯(ECサイトの場合)
  • 動画のジャンル、出演者、公開年(動画配信の場合)
  • 求人案件の勤務地、必要スキル、契約形態(求人サイトの場合)

アイテムデータのサンプル (CSV形式)

item_id,category,price,brand
product_1001,"Electronics",15000,"BrandA"
product_1002,"Books",1200,"BrandB"
product_1003,"Health",3000,"BrandC"
...

こちらも同様にプロジェクトに合わせ、必要な属性情報を自由に拡張してください。


3種のデータ比較表

データ種別 必須 主な役割 最低件数目安 追加効果
Interactions
(インタラクション)
必須 ユーザーとアイテムの行動履歴。学習の核心データ 1,000件以上推奨(最低25件) なし(これが全体の基盤)
Users
(ユーザー)
任意 ユーザーの属性情報。行動履歴を補強する Interactionsと同数 コールドスタート改善・推薦精度向上
Items
(アイテム)
任意 アイテムの属性情報。新規アイテムへの対応力強化 Interactionsに出現する全アイテム 新規アイテムのコールドスタート対策

2. サンプルデータの作成イメージ

Amazon Personalize を試す際は、まず CSV ファイル でこれらのデータを用意し、Amazon S3 にアップロードしたうえでインポートするのが一般的です。
PoC(概念実証)やテストであれば、少量のサンプルデータを用意するだけでも学習を試せます。

例:(PoC用の小規模サンプル)

  • ユーザー:10名ほど
  • アイテム:20件ほど
  • インタラクション履歴:数十〜数百件程度

サンプルファイル例

  • interactions.csvuser_id,item_id,event_type,timestamp user_001,product_1001,view,1674464000 user_001,product_1001,purchase,1674464500 user_002,product_1002,view,1674464600 user_003,product_1001,like,1674464700 ...
  • users.csvuser_id,age,location,interests user_001,32,"Tokyo","music,tech" user_002,27,"Remote","movies,fitness" user_003,22,"Osaka","education,books" ...
  • items.csvitem_id,category,price product_1001,"Electronics",15000 product_1002,"Books",1200 product_1003,"Health",3000 ...

3. 他に必要な準備や注意点

  1. S3 バケットの準備
    • 上記 CSVファイルを格納するための AWS S3 バケットを用意します。
  2. Amazon Personalize の設定
    • Dataset Group を作成し、Interactions / Users / Items に対応する Schema を定義します。
    • その後、S3 上の CSV を指定してデータをインポートします。
  3. レシピ(アルゴリズム)の選択
    • USER_PERSONALIZATION, RELATED_ITEMS, PERSONALIZED_RANKING など、ユースケースに応じたレシピを選びます。
    • たとえば「ユーザーごとにおすすめのアイテムを出す」なら USER_PERSONALIZATION
    • 「あるアイテムに関連するアイテムを出す」なら RELATED_ITEMS などを検討します。
  4. コールドスタートへの対応
    • 新規ユーザーや新規アイテムが増える場合は、ユーザーデータアイテムデータ を活用することで、インタラクションが少なくてもある程度の推定が可能になります。
  5. リアルタイムイベントの送信 (PutEvents)
    • 運用環境では、ユーザーが閲覧や購入などのアクションをした際に、リアルタイムで Amazon Personalize にイベント送信することで、最新の行動を反映したレコメンドが可能になります。
    • 大量のイベントをバッチでまとめて取り込む方式との比較は、システム要件に合わせて検討します。
  6. 推定結果の利用
    • 学習モデルが作成できたら、GetRecommendationsGetPersonalizedRanking API を呼び出すことで、パーソナライズされたランキングや候補リストを取得し、フロントエンドや他システムで活用します。

レシピ(アルゴリズム)比較表

レシピ名 主な用途 入力 向いているシーン
USER_PERSONALIZATION 特定ユーザーにおすすめのアイテムを提示 user_id ECのトップページ・ホーム画面のリコメンド
RELATED_ITEMS あるアイテムに関連するアイテムを提示 item_id 商品詳細ページの「関連商品」「この動画を見た人は…」
PERSONALIZED_RANKING 既存のアイテムリストをユーザー向けに並び替え user_id + item_idリスト 検索結果のパーソナライズ・メール配信の優先順位付け
POPULARITY_COUNT 人気アイテムをランキング形式で提示 なし(全体集計) 新規ユーザーへのベースライン推薦・コールドスタート補完

4. まとめ

  • Amazon Personalize を使えば、ユーザーとアイテムの インタラクションデータ を活用してパーソナライズされたレコメンドを簡単に実装できます。
  • ユーザーデータアイテムデータ を併用することで、より高精度のレコメンドや新規ユーザー/アイテムへの対応(コールドスタート)も可能です。
  • レシピ(アルゴリズム)はUSER_PERSONALIZATION / RELATED_ITEMS / PERSONALIZED_RANKINGの3種が基本で、用途に応じて選択する。
  • PoC であれば、少量のデータを CSV で作成し、S3 にアップロードして学習を試す方法がおすすめです。
  • 運用を目指すなら、リアルタイムイベント送信や定期的なデータ更新などのワークフロー設計も重要になります。
  • まずはInteractions・Users・Itemsの3種のデータを準備し、実際に動かしてみることで活用イメージが具体的に湧いてきます。

この記事が、Amazon Personalize の導入やデータ準備の際のヒントになれば幸いです。
実際に運用する際には、ビジネス要件やシステム構成に合わせて、データ設計やイベント送信の仕組みを最適化していきましょう。


(参考リンク)

  • Amazon Personalize 公式ドキュメント
  • AWS Machine Learning Blog: Amazon Personalize 関連の記事

▼ アクロビジョンについて

👔

一緒に働きましょう

一人ひとりのキャリアに向き合い、
活躍できる現場をご紹介します。

採用サイトを見る →
💻

システム開発のご依頼・ご相談

コンサルティングから運用保守まで、
ワンストップで対応します。

まずはお気軽にご相談ください →

お問い合わせ

サービスに関するご質問やご相談など、お気軽にお問い合わせください。