Skip to content

genokamura/cc_personalize_demo

Repository files navigation

CapsuleCloud Personalize Demo

リポジトリの説明

Amazon Personalizeの機能を紹介するデモ。

利用方法

1.事前準備

  • Amazon Personalizeで利用するデータセットのスキーマは./schema.jsonにて以下の通り定義されている。
{
  "type": "record",
  "name": "Interactions",
  "namespace": "com.amazonaws.personalize.schema",
  "fields": [
    {
      "name": "USER_ID",
      "type": "string"
    },
    {
      "name": "ITEM_ID",
      "type": "string"
    },
    {
      "name": "EVENT_TYPE",
      "type": "string"
    },
    {
      "name": "TIMESTAMP",
      "type": "long"
    }
  ],
  "version": "1.0"
}

ランダム生成したダミーデータを利用する場合

  • 以下のコマンドを実行することで学習用のランダムなダミーデータを生成できる
python generate_ramdom.py
  • generated_random_interaction_data.csvが生成されたことを確認する。このCSVは以下のようなデータとなる。
USER_ID,ITEM_ID,EVENT_TYPE,TIMESTAMP
193,438,Purchase,1639718210
900,251,View,1618553835
637,926,Purchase,1630896977
824,65,View,1629775849
653,434,Purchase,1637710157
119,619,Purchase,1633249672
359,893,View,1630425573
845,868,View,1628847019
928,822,Purchase,1633454262
...

SUSHI Preference Data Setsを利用する場合

公開されている寿司に関する嗜好の調査結果のデータセットを活用する。

  1. こちら よりデータセットをダウンロード
  2. ダウンロードしたファイルのうち、sushi3a.5000.10.orderファイルをコピー
  3. 以下のコマンドを実行することで学習用のダミーデータを生成できる
python generate_sushi.py sushi3a.5000.10.order
  • generated_sushi_interaction_data.csvが生成されたことを確認する。このCSVは以下のようなデータとなる。
USER_ID,ITEM_ID,EVENT_TYPE,TIMESTAMP
1,5,Purchase,1632299870
1,0,Purchase,1632966077
1,3,View,1647927814
1,4,View,1620623738
1,6,View,1642763855
2,0,Purchase,1627349264
2,9,Purchase,1636151520
2,6,View,1640738875
2,3,View,1619022370
  • 適当なS3バケットにCSVをアップロードしておく

  • Amazon Personalize用のIAMロールを作成し、以下の権限を付与しておく

    • CSVをアップロードしたS3バケットへのGetObject, ListBucket
  • S3バケットのバケットポリシーで、以下の許可を設定しておく

    • Amazon Personalize用に作成したIAMからのGetObject, ListBucket

2.Amazon Personalizeに新たなDataset Groupを作成する

  1. コンソールにサインイン
  2. Amazon Personalizeダッシュボードにアクセス
  3. Dataset Groupの作成
  4. Dataset GroupのDomainは「E-commerce」を選択
  5. 生成したCSVをインタラクションデータとしてインポートするジョブを作成する
  6. 作成したジョブが完了したら、Recommenderを作成する
  7. RecommenderはBest sellersRecommended for youを選択する
  8. Recommenderが作成されるまでしばらく待つ
  9. 作成されたRecommenderのリソース名を控えておく
  10. 完了

3.Demoアプリケーションからリコメンドを取得する

デモアプリケーションの動作環境

  • Ruby 3.0.4
  • Rails 7.0.3

Demo用アプリケーションを実行する

  • demoディレクトリに移動する
cd ./demo
  • ライブラリをインストール
bundle install
  • .envを以下のように編集する
AWS_ACCESS_KEY_ID={AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY={AWS_SECRET_ACCESS_KEY}
ARN_PREFIX=arn:aws:personalize:{REGION}:{AWS_ACCOUN_ID}:recommender/
RECOMMEND_FOR_YOU={RECOMMEND_FOR_YOU_RESOURCE_NAME}
BEST_SELLERS={BEST_SELLER_RESOURCE_NAME}
AWS_REGION=ap-northeast-1

※{}で囲われている部分は各々の内容に書き換える

  • 起動
rails s

Demo用アプリケーションの動作

操作方法

demo1

  • 未ログイン状態
  • 未ログイン状態では、ベストセラーが表示される
  • USER IDにおすすめを取得するユーザのIDを入力し、ログインする

ログイン状態

demo2

  • ベストセラーに加えて、「〇〇様へのおすすめ」としてパーソナライズされたランキングが表示される
別のユーザでログインした場合

demo3

  • 別のユーザでログインした場合は異なるランキングがおすすめとして表示される

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages