Upgrade to Pro — share decks privately, control downloads, hide ads and more …

はじめてのレコメンド〜Amazon Personalizeを使った推薦システム超超超入門〜

はじめてのレコメンド〜Amazon Personalizeを使った推薦システム超超超入門〜

AWSのマネージドサービス「Amazon Personalize」を活用するとレコメンドシステムの構築が容易になります。
しかし、必要なデータの準備や得られる結果のイメージが湧きにくいかもしれません。
そこで、本セッションではレコメンドシステムの基本の話や、Amazon Personalizeでどんなことができるのかを解説します。

貞松政史

July 31, 2024
Tweet

More Decks by 貞松政史

Other Decks in Technology

Transcript

  1. データセットの種類 (必須) 15 ▪ Interaction • どのユーザーがどの商品を買った、どのコンテンツを観たなどの ユーザーインタラクションデータ • 必須スキーマ

    - USER_ID - ITEM_ID - TIMESTAMP (unixtimestamp形式) ※最低限このデータセットさえあればレコメンドを⽣成できる 誰が、何を、いつ (買った、視聴した など)
  2. データセットの種類 (任意) ▪User • ユーザーの属性(年齢、性別等々)データ • 必須スキーマ - USER_ID -

    (1つ以上の)ユーザーメタデータ ▪Item • アイテムの属性(カテゴリ・ジャンル、価格等々)データ • 必須スキーマ - ITEM_ID - (1つ以上の)アイテムメタデータ ※使⽤するレシピによっては必須になる 16
  3. ソリューションの作成 ソリューション → 要は学習済みのレコメンドモデル n ソリューション • レシピ(要はビルトインのアルゴリズム)やハイパーパラメータを設定して モデルを学習する為の枠組み •

    別のレシピやハイパーパラメータで学習させる場合は、複数の ソリューションを作成する必要がある n ソリューションバージョン • 新規データを投⼊して再学習されたソリューションの各バージョン • 特定のソリューションバージョンを指定してレコメンド⽣成を実⾏可能 17
  4. レコメンドの作成⽅法 ▪ キャンペーン (リアルタイムレコメンド) • APIエンドポイントを作成 • USER_IDやITEM_ID等のパラメータを投げ込んでレコメンド 結果を取得する ▪

    バッチレコメンデーション • 必要なパラメータ(ユーザーID等)のリストをJSONファイルで準備 • レコメンド結果をまとめて作成 → S3に出⼒ 18
  5. 利⽤可能なレシピ(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 ユーザーベース (例︓あなたへのおすすめ) アイテムベース (例︓この商品を⾒た⼈におすすめ)
  6. オフライン評価による効果検証 どのように効果検証をするか︖ ↓ 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
  7. 事業やシステムとレコメンドの関係性 • 着⽬するイベント • 購⼊やクリックだけではなく、お気に⼊り登録、途中からの視聴など 実システムのイベントは幅広い • ユーザーへの⾒せ⽅ • レコメンドスコアを⾼い順に並べる以外にも様々な⽅法がある

    • 興味なしと⾒なす⽅法 • 同じレコメンドアイテムを何回か表⽰してクリックされなかったら 興味なしと⾒なして除外したり、表⽰順位を下げる • 除外されたアイテムを再度提⽰するための条件を設定する など • 再購⼊の可能性 • アイテムの特性や利⽤側のシステムによっては再購⼊の可能性がある • ユーザの状態に応じて、類似アイテムのレコメンドが欲しい場合と欲しくない 場合がある 31
  8. 機械学習の運⽤や評価分析を考慮した分析基盤 • 学習や推論に必要な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
  9. まとめ • レコメンデーションの基礎について解説 • Amazon Personalizeについて • 概要や最低限の仕様を解説 • レコメンドを作成するまでの基本的な⼿順をご紹介

    • AWSインフラを活⽤したレコメンドシステムの アーキテクチャ例をご紹介 レコメンデーションのスターターキットが揃った状態 35
  10. 37