Slide 1

Slide 1 text

2024/11/13 niino Amazon Personalizeの レコメンドシステム構築、実際何するの? 〜大体10分で具体的なイメージをつかむ〜

Slide 2

Slide 2 text

自己紹介 2 𝕏:@kniino1234 ● 部署 ○ データ事業本部 機械学習チーム ● 名前 ○ niino ● 出身・住まい ○ 奈良県出身・大阪オフィス所属 ● ボーナスの使い道 ○ PlayStation5 奈良のこのあたり

Slide 3

Slide 3 text

いろんなところにレコメンデーション 3 特に膨大なコンテンツを持つサービスはレコメンデーションがあると便利 ( 出 典:h t t p s ://w w w .a m a z o n .c o .j p /)

Slide 4

Slide 4 text

レコメンデーションとは 4 ユーザーの興味・行動に基づくおすすめのアイテムを提示し、 意思決定を促進する仕組み 興味を引くアイテムが 簡単に見つけられる! ユーザー 事業者 購買への動線が 増える!

Slide 5

Slide 5 text

AWSでのレコメンドといえば 5 Amazon Personalize

Slide 6

Slide 6 text

もくじ 6 ⚫ Amazon Personalizeとは ⚫ レコメンドシステムの構築にあたって必要な要素 データの準備・取り込み モデルの作成・学習 レコメンデーション作成 ⚫ 構成例 ⚫ まとめ

Slide 7

Slide 7 text

もくじ 7 ⚫ Amazon Personalizeとは ⚫ レコメンドシステムの構築にあたって必要な要素 データの準備・取り込み モデルの作成・学習 レコメンデーション作成 ⚫ 構成例 ⚫ まとめ

Slide 8

Slide 8 text

Amazon Personalizeとは 8 ユーザー向けにパーソナライズしたレコメンデーションを提供する AWSフルマネージドの機械学習サービス 引用:https://docs.aws.amazon.com/ja_jp/personalize/latest/dg/how-it-works.html

Slide 9

Slide 9 text

メリット 9 レコメンドシステムは 実装が難しい より少ないリソースで 迅速に レコメンドシステムを 導入できる データ取込・レコメンド 方式選択・結果取得という 一連の流れがGUIで 作成可能

Slide 10

Slide 10 text

Personalizeにできること 10 商品購入履歴に応じたおすすめ:アイテムベース • 「この商品を購入した人におすすめの商品です」 ユーザーの属性に応じたおすすめ:ユーザーベース • 「あなたにおすすめの商品です」 パーソナライズされたランキングの表示 • おすすめ商品の表示順序をユーザーごとに変える

Slide 11

Slide 11 text

Personalizeのきほん 11 Personalizeの基本的な使い方はこちらをご参照ください!

Slide 12

Slide 12 text

Personalizeのきほん 12 Personalizeの基本的な使い方はこちらをご参照ください! 今日はPersonalizeの機能そのものよりも、 実装の流れや必要な周辺知識にフォーカス

Slide 13

Slide 13 text

もくじ 13 ⚫ Amazon Personalizeとは ⚫ レコメンドシステムの構築にあたって必要な要素 データの準備・取り込み モデルの作成・学習 レコメンデーション作成 ⚫ 構成例 ⚫ まとめ

Slide 14

Slide 14 text

実装だけじゃないレコメンドシステムのサイクル 14 アルゴリズム 選定 学習 チューニング 課題定義 仮説立案 データ設計 取得・加工 レコメンド 実装 評価 改善

Slide 15

Slide 15 text

Personalizeの利用のざっくりとした流れ 15 データの準備・取り込み モデルの作成・学習 レコメンデーション作成 ⚫ 探索的データ分析で 利用データを検討 ⚫ Personalizeで使える形に データを加工 1 2 3 ⚫ 作成したモデルが レコメンドにあたって 十分な性能を持つか確認 ⚫ 設計したデータセットの 妥当性を確認し、データ を増やすべきか インタラクション数が少 ないアイテムをフィルタ するなどの工夫をする ⚫ レコメンド結果の妥当性 を確認 ⚫ 評価改善

Slide 16

Slide 16 text

Personalizeの利用のざっくりとした流れ 16 データの準備・取り込み モデルの作成・学習 レコメンデーション作成 ⚫ 探索的データ分析で 利用データを検討 ⚫ Personalizeで使える形に データを加工 1 2 3 ⚫ 作成したモデルが レコメンドにあたって 十分な性能を持つか確認 ⚫ 設計したデータセットの 妥当性を確認し、データ を増やすべきか インタラクション数が少 ないアイテムをフィルタ するなどの工夫をする ⚫ レコメンド結果の妥当性 を確認 ⚫ 評価改善

Slide 17

Slide 17 text

データの準備・取り込みでやること 17 探索的データ分析(EDA) • データの傾向や特徴を捉え、レコメンドに適したデータセットを作るためのプロセス • アイテム、ユーザー数、メタデータ、アクション数の分布などを事前に調べておく • このプロセスがないと不適切なデータ設計による偏ったレコメンド結果となる可能性も… SELECT FLOOR(download_count/100) * 100 as download_range_start, FLOOR(download_count/100) * 100 + 99 as download_range_end, COUNT(*) as user_count FROM (SELECT user_id, COUNT(*) as download_count FROM download_history GROUP BY user_id) user_downloads GROUP BY FLOOR(download_count/100) ORDER BY download_range_start;

Slide 18

Slide 18 text

データの準備・取り込みでやること 18 Personalize利用のためのデータ加工 Interactionデータ(必須): USER_ID • 会員IDなど、ユーザーを一意に識別するID ITEM_ID • SKUなど、商品やアイテムを一意に識別するID TIMESTAMP • 購買処理日時など • UNIX TIMESTAMPのみ利用可能

Slide 19

Slide 19 text

Personalizeの利用のざっくりとした流れ 19 データの準備・取り込み モデルの作成・学習 レコメンデーション作成 ⚫ 探索的データ分析で 利用データを検討 ⚫ Personalizeで使える形に データを加工 1 2 3 ⚫ 作成したモデルが レコメンドにあたって 十分な性能を持つか確認 ⚫ 設計したデータセットの 妥当性を確認し、データ を増やすべきか インタラクション数が少 ないアイテムをフィルタ するなどの工夫をする ⚫ レコメンド結果の妥当性 を確認 ⚫ 評価改善

Slide 20

Slide 20 text

モデル作成・学習で確認すること 20 作成したモデルがレコメンドにあたって十分な性能を持つか確認 設計したデータセットの妥当性を確認し、結果によってデータセットを見直す (例:データを増やす、インタラクション数が少ないアイテムをフィルタする) ユニークなアイテム総数の うちレコメンドしたアイテ ムの割合。数値が大きいと 多くの種類のアイテムを レコメンドしている。 「正解アイテムが何番目に 表示されたか」の評価値。 正解アイテムが上位に表示 されるほど1に近い値となり、 下位になるほど0に近づく。 システムが推薦したアイテ ムの中で、実際にユーザー が好む(購入・閲覧など) アイテムの割合 推薦リストの順序を考慮 した評価指標で、関連性の 高いアイテムが上位に ランクされているほど 高スコアになる

Slide 21

Slide 21 text

モデル作成・学習で確認すること 21 データセットを見直す一例 Coverage • 低すぎる:購買データの期間を広げ、新しいデータを重視するよう調整 • 高すぎる:直近の購買がないアイテムを除外

Slide 22

Slide 22 text

Personalizeの利用のざっくりとした流れ 22 データの準備・取り込み モデルの作成・学習 レコメンデーション作成 ⚫ 探索的データ分析で 利用データを検討 ⚫ Personalizeで使える形に データを加工 1 2 3 ⚫ 作成したモデルが レコメンドにあたって 十分な性能を持つか確認 ⚫ 設計したデータセットの 妥当性を確認し、データ を増やすべきか インタラクション数が少 ないアイテムをフィルタ するなどの工夫をする ⚫ レコメンド結果の妥当性 を確認 ⚫ 評価改善

Slide 23

Slide 23 text

レコメンデーション作成でやること 23 レコメンド結果の妥当性を確認し、評価改善 • 定量的な評価指標だけでなく、実際のユーザー体験の観点で確認 ☞データから読み取れるところ以外にも、「このユーザーにこのアイテムが レコメンドされるのは適切である」と感じられるかどうか確認 • A/Bテストでより適切なデータセット、レシピ(アルゴリズム)を判断 契約プラン ユーザー属性 プレミアムプラン すべて フリープラン A業種、B業種 フリープラン 上記以外の業種 プラン × 業種 状態 ユーザー属性 月間ログイン 20回以上 すべて 〜10回 A業種、B業種 10回以下 上記以外の業種 利用頻度 × 業種

Slide 24

Slide 24 text

もくじ 24 ⚫ Amazon Personalizeとは ⚫ レコメンドシステムの構築にあたって必要な要素 データの準備・取り込み モデルの作成・学習 レコメンデーション作成 ⚫ 構成例 ⚫ まとめ

Slide 25

Slide 25 text

構成例(レコメンド結果をクエリで確認) 25 ⚫ レコメンド結果をAthenaからクエリして検索 データ取得・ 加工を定期実行 Personalizeの 各ジョブを実行 推論結果を Athenaでクエリ

Slide 26

Slide 26 text

構成例(Webページにレコメンド結果を表示) 26 ⚫ レコメンド結果をWebページに表示させる ⚫ バッチ推論の結果をS3バケットに出力し、API経由で取得 データ取得・ 加工を定期実行 Personalizeの 各ジョブを実行 推論結果を API経由で取得

Slide 27

Slide 27 text

もくじ 27 ⚫ Amazon Personalizeとは ⚫ レコメンドシステムの構築にあたって必要な要素 データの準備・取り込み モデルの作成・学習 レコメンデーション作成 ⚫ 構成例 ⚫ まとめ

Slide 28

Slide 28 text

まとめ 28 • Amazon Personalizeでのレコメンドシステム導入にあたって 概要や構成例、実装以外にも必要なことを解説 • 導入して終わりではなく、継続的なモニタリングとデータの収集、 モデルの更新を通じて、ユーザーの行動変化や新しいトレンドに 適応させていくことが重要 • Amazon Personalizeはレコメンドシステム導入への近道!