LoginSignup
1
0

More than 1 year has passed since last update.

【Amazon Personalize】Part.1 概要、データセットの要件

Last updated at Posted at 2021-12-13

はじめに

Amazon Personalize とは

Amazon Personalize は、アプリケーションを使用するユーザー向けに個別化したレコメンデーションを簡単に追加できる、開発者向けの機械学習サービスです。

抜粋:https://docs.aws.amazon.com/ja_jp/personalize/latest/dg/what-is-personalize.html
image.png

関連記事

ワークフロー

image.png

  1. 入力データをフォーマットして Amazon S3 にアップロードするか、リアルタイムのイベントデータを送信する。
  2. データに適用するトレーニングレシピ (アルゴリズム) を選択する。
  3. レシピを使用してソリューションバージョンをトレーニングする。
  4. ソリューションバージョンをデプロイする。
  5. レコメンデーションを取得する。

詳細:https://docs.aws.amazon.com/ja_jp/personalize/latest/dg/personalize-workflow.html

レシピの種類

Amazon Personalize では、ユースケースに合わせてレシピ(アルゴリズム)の選択をします。

① USER_PERSONALIZATION レシピ
ユーザー向けにパーソナライズされた推奨事項を提供する。

② PERSONALIZED_RANKING レシピ
特定のアイテムリストをユーザーの嗜好に合わせて並び替えて提供する。
例:特定カテゴリーのアイテムリストからユーザー毎に並び替えて表示。

③ RELATED_ITEMS レシピ
類似アイテムを提供する。
例:よく一緒に購入される商品や、ほかのユーザーも視聴した映画など

詳細:https://docs.aws.amazon.com/ja_jp/personalize/latest/dg/determining-use-case.html#use-cases

データについての要件

データセットの種類

次の3つの種類があります。

種類 説明
Users ユーザーに関するメタデータ 年齢、性別、ロイヤリティメンバーシップなど
Items アイテムに関するメタデータ 価格、SKU タイプ、在庫状況など
Interactions(必須) ユーザーとアイテム間の対話からの履歴データとリアルタイムデータ ユーザーの場所やデバイスなど、ユーザーの閲覧コンテキストに関するインプレッションデータやコンテキストメタデータ

データセットの要件

各データセットには必須フィールド、予約キーワード、および必須のデータ型があります。
予約キーワード:メタデータ以外のオプションのフィールド

データセットタイプ 必須フィールド 予約キーワード 詳細
ユーザー USER_ID (string)
1つのメタデータフィールド (カテゴリstringまたは数値型)
リンク
アイテム ITEM_ID (string)
1 つのメタデータフィールド (カテゴリまたはテキストstringフィールドまたは数値フィールド)
TIMESTAMP (long) リンク
インタラクション USER_ID (string)
ITEM_ID (string)
TIMESTAMP (long)
EVENT_TYPE (string)
EVENT_VALUE (float,null)
印象 (string) RECOMMENDATION_ID (string,null)
リンク

スキーマの要件

データセットを追加する前に、そのデータセットにスキーマを定義する必要があります。
データセットの作成後はスキーマを変更できません。

  • Avro 形式であること。
  • スキーマフィールドの順序とデータファイル内の対応する列ヘッダーの順序を一致させる。
  • 各データセットタイプには、スキーマ内に特定の非メタデータフィールドが必要。(前表参照)
  • ネストされた構造のないフラット JSON ファイルであること。
  • スキーマフィールドは一意の英数字の名前。

Items データ

価格、SKU タイプ、在庫状況などのアイテムに関するメタデータを格納します。

詳細:https://docs.aws.amazon.com/ja_jp/personalize/latest/dg/items-datasets.html

  • Items スキーマの例
{
  "type": "record",
  "name": "Items",
  "namespace": "com.amazonaws.personalize.schema",
  "fields": [
    {
      "name": "ITEM_ID",
      "type": "string"
    },
    {
      "name": "GENRES",
      "type": [
        "null",
        "string"
      ],
      "categorical": true
    },
    {
      "name": "CREATION_TIMESTAMP",
      "type": "long"
    },
    {
      "name": "DESCRIPTION",
      "type": [
        "null",
        "string"
      ],
      "textual": true
    },
  ],
  "version": "1.0"
}
  • Items データの例
ITEM_ID,GENRES,CREATION_TIMESTAMP,DESCRIPTION
1,Adventure|Animation|Children|Comedy|Fantasy,1570003267,"This is an animated movie that features action, comedy, and fantasy. Audience is children. This movie was released in 2004."
2,Adventure|Children|Fantasy,1571730101,"This is an adventure movie with elements of fantasy. Audience is children. This movie was release in 2010."
3,Comedy|Romance,1560515629,"This is a romantic comedy. The movie was released in 1999. Audience is young women."
4,Comedy|Drama|Romance,1581670067,"This movie includes elements of both comedy and drama as well as romance. This movie was released in 2020."
...
...

Users データ

年齢、性別、ロイヤリティメンバーシップなどの、ユーザーに関するメタデータを格納します。

詳細:https://docs.aws.amazon.com/ja_jp/personalize/latest/dg/users-datasets.html

  • Users スキーマの例
{
  "type": "record",
  "name": "Users",
  "namespace": "com.amazonaws.personalize.schema",
  "fields": [
      {
          "name": "USER_ID",
          "type": "string"
      },
      {
          "name": "AGE",
          "type": "int"
      },
      {
          "name": "GENDER",
          "type": "string",
          "categorical": true
      }
  ],
  "version": "1.0"
}
  • Users データの例
USER_ID,AGE,GENDER
5,34,Male
6,56,Female
8,65,Male
...
...

Interactions データ

ユーザーとアイテム間のやりとりの履歴データとリアルタイムデータを格納します。

  • インプレッションデータ:ユーザーが特定のアイテムと対話したとき(クリックまたは視聴したときなど)に表示されたアイテムのリスト
  • コンテキストメタデータ:イベント発生時にユーザーの環境で収集する対話データ(ユーザーのデバイス情報など)

詳細:https://docs.aws.amazon.com/ja_jp/personalize/latest/dg/interactions-datasets.html

  • Interactions スキーマの例
{

  "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": "EVENT_VALUE",
          "type": [
             "float",
             "null"
          ]
      },
      {
          "name": "LOCATION",
          "type": "string",
          "categorical": true
      },
      {
          "name": "DEVICE",
          "type": [
              "string",
              "null"
          ],
          "categorical": true
      },
      {
          "name": "TIMESTAMP",
          "type": "long"
      },
      {
          "name": "IMPRESSION",
          "type": "string"
      }
  ],
  "version": "1.0"
}
  • Interactions データの例
USER_ID,ITEM_ID,EVENT_TYPE,EVENT_VALUE,LOCATION,DEVICE,TIMESTAMP,IMPRESSION
35,73,click,,Ohio,Tablet,1586731606,73|70|17|95|96|92|55|45|16|97|56|54|33|94|36|10|5|43|19|13|51|90|65|59|38
54,35,watch,0.75,Indiana,Cellphone,1586735164,35|82|78|57|20|63|1|90|76|75|49|71|26|24|25|6|37|85|40|98|32|13|11|54|48
9,33,click,,Oregon,Cellphone,1586735158,68|33|62|6|15|57|45|24|78|89|90|40|26|91|66|31|47|17|99|29|27|41|77|75|14
23,10,watch,0.25,California,Tablet,1586735697,92|89|36|10|39|77|4|27|79|18|83|16|28|68|78|40|50|3|99|7|87|49|12|57|53
27,11,watch,0.55,Indiana,Tablet,1586735763,11|7|39|95|71|1|6|40|41|28|99|53|68|76|0|65|69|36|22|42|34|67|24|20|66
...
...

さいごに

次回は実際に使ってみて手順をまとめたいと思います。(➝記事

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0