Slide 1

Slide 1 text

はじめてのレコメンド 〜Amazon Personalizeを使った推薦システム超超超⼊⾨〜 2024.07.31 データ事業本部 インテグレーション部 機械学習チーム 貞松 政史

Slide 2

Slide 2 text

Xへの投稿の際は、 ハッシュタグ #devio2024 でお願いいたします。 2 お願い

Slide 3

Slide 3 text

⽇常に溶け込むレコメンデーション 3 https://newspicks.com/ https://www.youtube.com/ https://open.spotify.com/ https://www.amazon.co.jp/ ECサイト 動画配信サービス ⾳楽配信サービス ニュースサイト

Slide 4

Slide 4 text

レコメンデーションを導⼊したい︕ • とはいえ⾊々なハードルがある… • レコメンデーションに関するノウハウがない • レコメンデーションを実際に運⽤するシステム構築が⼤変 • 必要なデータをどうやって準備、蓄積すれば良いかわからない • ⾦銭的にも⼈的にもコストが掛かる 4

Slide 5

Slide 5 text

本セッションのゴール • 本セッションで持ち帰っていただきたいこと • レコメンデーションの基礎的な内容 • AWSのマネージドサービスを活⽤したレコメンデーションの コア部分の作り⽅ • AWSインフラを活⽤したシステム構築イメージ • レコメンドシステムを導⼊したいという熱い想い 5

Slide 6

Slide 6 text

スピーカー情報 ⽒名 貞松 政史 (サダマツ マサシ) 所属 データ事業本部 インテグレーション部 機械学習チーム マネージャー 6

Slide 7

Slide 7 text

おしながき • レコメンデーションとは • Amazon Personalizeを活⽤したレコメンデーション • Amazon Personalizeで実際にレコメンドを作成してみる • AWSインフラを活⽤したレコメンドシステムの例 • まとめ 7

Slide 8

Slide 8 text

レコメンデーションとは 8

Slide 9

Slide 9 text

レコメンデーションの定義 ユーザーに対しておすすめのアイテムを提⽰するような仕組み サービスの購⼊・利⽤履歴や、属性情報(ユーザー・アイテム)などを使⽤ 9

Slide 10

Slide 10 text

レコメンデーション レコメンデーションの特徴 検索との関係性は近く、様々なシーンでレコメンデーションの可能性がある アイテム群 検索ワード (明⽰的) 検索 結果 アイテム群 レコメンド 結果 検索 購⼊履歴の蓄積 (暗黙的) 10

Slide 11

Slide 11 text

レコメンデーションのメリット 【利⽤者側︓ユーザ体験向上】 ・⽬的のものに素早くアクセス ・ユーザが意図しない気づきを与える 【事業者側︓サービスの活性化】 ・サービス利⽤の継続、売上の向上 ・流⾏させたい新規アイテムを適切なユーザに提⽰する 最終的なゴールに沿ったKPIを設定することが重要 11

Slide 12

Slide 12 text

Amazon Personalizeを 活⽤したレコメンデーション 12

Slide 13

Slide 13 text

Amazon Personalize とは Amazonがレコメンデーションを 20年以上提供してきた経験と 機械学習を活⽤して⾏った調査を ベースにしたレコメンデーションサービス 13

Slide 14

Slide 14 text

Amazon Personalizeの構成要素 データセットグループ データセット(必須) Interaction データセット(任意) User データセット(任意) Item ソリューション(学習済みのレコメンドモデル) キャンペーン・バッチレコメンデーション 14

Slide 15

Slide 15 text

データセットの種類 (必須) 15 ■ Interaction • どのユーザーがどの商品を買った、どのコンテンツを観たなどの ユーザーインタラクションデータ • 必須スキーマ - USER_ID - ITEM_ID - TIMESTAMP (unixtimestamp形式) ※最低限このデータセットさえあればレコメンドを⽣成できる 誰が、何を、いつ (買った、視聴した など)

Slide 16

Slide 16 text

データセットの種類 (任意) ■User • ユーザーの属性(年齢、性別等々)データ • 必須スキーマ - USER_ID - (1つ以上の)ユーザーメタデータ ■Item • アイテムの属性(カテゴリ・ジャンル、価格等々)データ • 必須スキーマ - ITEM_ID - (1つ以上の)アイテムメタデータ ※使⽤するレシピによっては必須になる 16

Slide 17

Slide 17 text

ソリューションの作成 ソリューション → 要は学習済みのレコメンドモデル n ソリューション • レシピ(要はビルトインのアルゴリズム)やハイパーパラメータを設定して モデルを学習する為の枠組み • 別のレシピやハイパーパラメータで学習させる場合は、複数の ソリューションを作成する必要がある n ソリューションバージョン • 新規データを投⼊して再学習されたソリューションの各バージョン • 特定のソリューションバージョンを指定してレコメンド⽣成を実⾏可能 17

Slide 18

Slide 18 text

レコメンドの作成⽅法 ■ キャンペーン (リアルタイムレコメンド) • APIエンドポイントを作成 • USER_IDやITEM_ID等のパラメータを投げ込んでレコメンド 結果を取得する ■ バッチレコメンデーション • 必要なパラメータ(ユーザーID等)のリストをJSONファイルで準備 • レコメンド結果をまとめて作成 → S3に出⼒ 18

Slide 19

Slide 19 text

利⽤可能なレシピ(Recipe)⼀覧 種類 Recipe 説明 POPULAR_ITEMS Popularity-Count 最も⼈気のあるアイテムをレコメンド Trending-Now 急速に⼈気が⾼まっているアイテムをレコメンド USER_PERSONALIZATION User-Personalization 個⼈にパーソナライズされたレコメンドを提供 User-Personalization-v2 アップデート版(より⾼速、⼤規模なアイテム数に対応) PERSONALIZED_RANKING Personalized-Ranking あるコレクションに対してパーソナライズされたリランキングを実施 Personalized-Ranking-v2 アップデート版(より⾼速、⼤規模なアイテム数に対応) RELATED_ITEMS SIMS 利⽤履歴を⽤いた類似アイテムのレコメンド Similar-Items 利⽤履歴とアイテムデータを⽤いた類似アイテムのレコメンド USER_SEGMENTATION Item-Affinity 利⽤履歴からユーザをグループ化する Item-Attribute-Affinity 利⽤履歴とアイテムデータからユーザをグループ化する PERSONALIZED_ACTIONS Next-Best-Action ユーザが次に取るべきアクションをレコメンド https://docs.aws.amazon.com/personalize/latest/dg/working-with-predefined-recipes.html 19 ユーザーベース (例︓あなたへのおすすめ) アイテムベース (例︓この商品を⾒た⼈におすすめ)

Slide 20

Slide 20 text

オフライン評価による効果検証 どのように効果検証をするか︖ ↓ Amazon Personalizeが提供するオフライン指標(Metrics)を⽤いる https://docs.aws.amazon.com/personalize/latest/dg/working-with-training-metrics.html#metric-definitions 種類 説明 coverage 多様なアイテムをレコメンドしているかどうか MRR: mean reciprocal rank at k (k=25) レコメンド結果の上位に正解があることを重視した指標 NDCG: normalized discounted cumulative gain at k (k=5,10,25) レコメンド結果の順序に依存した指標 precision at k (k=5,10,25) レコメンドの正確性を表す指標 USER-A,ITEM-002,購⼊ USER-A,ITEM-005,購⼊ USER-A,ITEM-012,購⼊ ... USER-A,ITEM-005,0.81 USER-A,ITEM-002,0.74 USER-A,ITEM-001,0.53 USER-A,ITEM-003,0.49 USER-A,ITEM-012,0.33 ⽐較 テストデータ (正解とみなすデータ) 推論結果 テストセット 全期間のデータセット 20

Slide 21

Slide 21 text

オンライン評価による効果検証 オンライン評価を考慮した機械学習基盤上での効果検証 • オフライン評価は「レコメンドしなくても購⼊したもの」を正解にしている • 新規性やセレンディピティ(意外性)など「レコメンドされたから購⼊したもの」が存在 • この評価にはユーザを分割したABテストが有効 レコメンドシステム Model(v1) Model(v2) 画⾯表⽰ 集計・分析 Amazon Redshift Amazon QuickSight A群 B群 21

Slide 22

Slide 22 text

Amazon Personalizeで実際に レコメンドを作成してみる 22

Slide 23

Slide 23 text

Personalizeを使ったレコメンデーション MovieLens https://grouplens.org/datasets/movielens/ 映像作品のレコメンデーション データ列項⽬ • user_id︓ユーザーのユニークID • item_id︓映像作品のユニークID • timestamp︓レビュー投稿時のUNIX時間 23

Slide 24

Slide 24 text

設定等々 • レシピ︓USER_PERSONALIZATION (ユーザーベース) • データセット︓Interactionのみ • ハイパーパラメータ︓デフォルト 24

Slide 25

Slide 25 text

⼤まかな処理の流れ 25 データセットグループ作成 データセット作成 データセットインポート ソリューション作成 レコメンド作成 順番に実⾏

Slide 26

Slide 26 text

詳細な⼿順について 26 https://dev.classmethod.jp/articles/introduction -2024-amazon-personalize-2/

Slide 27

Slide 27 text

キャンペーン(リアルタイムレコメンデーション) ユーザーIDを渡すと レコメンドアイテムのリスト (スコアが⾼い順)が返ってくる 27

Slide 28

Slide 28 text

バッチレコメンデーション ユーザーIDのリストを渡すと、各ユーザーに対する指定された数の レコメンドアイテムのリストが出⼒される 28

Slide 29

Slide 29 text

最終的にはこうなる https://newspicks.com/ https://www.youtube.com/ https://open.spotify.com/ https://www.amazon.co.jp/ ECサイト 動画配信サービス ⾳楽配信サービス ニュースサイト 29

Slide 30

Slide 30 text

AWSインフラを活⽤した レコメンドシステムの例 30

Slide 31

Slide 31 text

事業やシステムとレコメンドの関係性 • 着⽬するイベント • 購⼊やクリックだけではなく、お気に⼊り登録、途中からの視聴など 実システムのイベントは幅広い • ユーザーへの⾒せ⽅ • レコメンドスコアを⾼い順に並べる以外にも様々な⽅法がある • 興味なしと⾒なす⽅法 • 同じレコメンドアイテムを何回か表⽰してクリックされなかったら 興味なしと⾒なして除外したり、表⽰順位を下げる • 除外されたアイテムを再度提⽰するための条件を設定する など • 再購⼊の可能性 • アイテムの特性や利⽤側のシステムによっては再購⼊の可能性がある • ユーザの状態に応じて、類似アイテムのレコメンドが欲しい場合と欲しくない 場合がある 31

Slide 32

Slide 32 text

リアルタイム推論システム(即時推論、コスト⾼) バッチ推論システム(1⽇1回推論など、コスト低) リアルタイム推論とバッチ推論 • バッチ推論も使い⽅次第で多様なアイテムをレコメンドできる • どうしても即時性が求められる場合にリアルタイムが選択肢に Amazon Personalize ユーザIDリスト バッチ推論結果 AWS Step Functions workflow EventBridge Scheduler Amazon Personalize リアルタイム推論 アプリケーション アプリケーション 通常は固定の結果取得 扱い次第で多様化が可能 32

Slide 33

Slide 33 text

機械学習の運⽤や評価分析を考慮した分析基盤 • 学習や推論に必要なETL処理基盤(Lambda, Glue, dbtなど) • 実験管理や利⽤履歴データの蓄積(DWH)、推論結果やABテストの分析(QuickSight) Amazon Personalize ユーザIDリスト バッチ推論結果 AWS Lambda Amazon API Gateway AWS Step Functions workflow EventBridge Scheduler アプリケーション Amazon Personalize Amazon Aurora Amazon DynamoDB Amazon Redshift 学習⽤の 利⽤履歴データ アプリケーションログ ユーザデータ アイテムデータ 学習済みモデル AWS Step Functions workflow Amazon QuickSight 実運⽤を想定したアーキテクチャ例 結果の取得、後処理 33

Slide 34

Slide 34 text

まとめ 34

Slide 35

Slide 35 text

まとめ • レコメンデーションの基礎について解説 • Amazon Personalizeについて • 概要や最低限の仕様を解説 • レコメンドを作成するまでの基本的な⼿順をご紹介 • AWSインフラを活⽤したレコメンドシステムの アーキテクチャ例をご紹介 レコメンデーションのスターターキットが揃った状態 35

Slide 36

Slide 36 text

既存の(クラウド)サービスに乗っかって 早く・安く・巧く レコメンデーションを活⽤しましょう︕ 36

Slide 37

Slide 37 text

37