Amazon Personalize導入検討①【概要編】に続き、こちらの【検証編】では実際に簡単なテストデータを用意し、推論結果を算出するところまで試してみたので、その手順を記していきます。
ビジネスドメインについて
まず初めに、扱っているデータについて理解しやすいと思うので、ビジネスドメインに触れておきます。今回導入検討したのは人材採用サービスです。企業と求職者が存在し、その間には応募するという関係があります。
ちょっとわかりづらいのですが、Amazon Personalize上では以下のようなデータの位置付けになります。
Amazon Personalizeの検証手順
今回作成したのは、企業に対してパーソナライズされた求職者をレコメンドするリアルタイム推論APIです。企業IDを指定してリクエストを送ると、その企業に対しておすすめの求職者データを返してくれます。
先に、今回選択した設定などについてまとめておきます。
それではここから具体的な手順をご紹介します。
Step 0. テストデータを用意
今回は以下の3つのCSVデータを用意してS3に置きます。個人が特定されない情報に限り、本番データから抽出しました。
Users(企業データ)
※25件以上必須
Step 1-1. データセットグループの作成
Create dataset group
からデータセットグループを作成します。
今回の要件は、E-commerceやVideo on demandの用途には該当しないので、ドメインはCustomを選択
Step 1-2. データセットのインポート
Create dataset
から、Users・Items・Item interactionsの3つのデータをimportする
- Dataset nameを適当に入力
- Schema nameを適当に入力
- Schema definitionで抽出したデータに合わせてスキーマを定義
- それぞれのスキーマはこんな感じ
// Users
{
"type": "record",
"name": "Users",
"namespace": "com.amazonaws.personalize.schema",
"fields": [
{
"name": "USER_ID",
"type": "string"
},
{
"name": "USER_INDUSTRY_ID",
"type": "int"
}
],
"version": "1.0"
}
// Items
{
"type": "record",
"name": "Items",
"namespace": "com.amazonaws.personalize.schema",
"fields": [
{
"name": "ITEM_ID",
"type": "string"
},
{
"name": "ITEM_INDUSTRY_ID",
"type": "int"
}
],
"version": "1.0"
}
// Item interactions
{
"type": "record",
"name": "Interactions",
"namespace": "com.amazonaws.personalize.schema",
"fields": [
{
"name": "USER_ID",
"type": "string"
},
{
"name": "ITEM_ID",
"type": "string"
},
{
"name": "TIMESTAMP",
"type": "long"
}
],
"version": "1.0"
}
// Users
{
"type": "record",
"name": "Users",
"namespace": "com.amazonaws.personalize.schema",
"fields": [
{
"name": "USER_ID",
"type": "string"
},
{
"name": "USER_INDUSTRY_ID",
"type": "int"
}
],
"version": "1.0"
}
// Items
{
"type": "record",
"name": "Items",
"namespace": "com.amazonaws.personalize.schema",
"fields": [
{
"name": "ITEM_ID",
"type": "string"
},
{
"name": "ITEM_INDUSTRY_ID",
"type": "int"
}
],
"version": "1.0"
}
// Item interactions
{
"type": "record",
"name": "Interactions",
"namespace": "com.amazonaws.personalize.schema",
"fields": [
{
"name": "USER_ID",
"type": "string"
},
{
"name": "ITEM_ID",
"type": "string"
},
{
"name": "TIMESTAMP",
"type": "long"
}
],
"version": "1.0"
}
- それぞれのスキーマはこんな感じ
- Dataset import job nameを適当に入力
- Data locationでS3のURIを入力
- Personalizeを利用するためのIAMロールを作成
Step 2-2. Solution versionを作成
以上が、実際にテストデータを用意して検証してみた内容になります。基本的な使用の流れは把握できたかと思います。
ただし、実運用するとなるとコスト面や運用方法、フィルタリングや効果検証などもう少し深く理解して検討していく必要がありそうです。導入に至るにはもう一歩踏み込んだ**PoC(**概念実証)を行う必要があるかなと思います。
それでは、良いレコメンデーションライフを👋