Amazon Personalizeとは?


Amazon Personalizeは、AIを使ってカスタマイズ可能なリコメンデーションサービスを提供するAWSのサービスであり、クライアントサイドの労力をいらない顧客体験の向上を実現します。Amazon Personalizeは、オンラインショップなどのWebサイトやアプリにリコメンドを実装するためのAPIサービスでもあり、顧客プロファイル情報や購買履歴などから強力な機械学習を利用して、個別のユーザーに最適な商品やサービスの組合せを提供します。


Amazon Personalizeが使える場面


Amazon Personalizeは、オンラインショップのレコメンドやモバイル・オンラインゲームにおける消費者生活のステップアップなど、さまざまな分野で使われています。例えば、ネットショップなどで商品を検索する場合に、ユーザーが商品絞り込みを行う際や、検索結果を表示する際に、Amazon Personalize を使えば、個々の顧客の検索条件や利用履歴に基づいてカスタマイズされたレコメンドを表示することができます。


Amazon Personalizeを使った開発例


Amazon Personalizeを使って開発を行う場合、AWS 上で3つのサービスが必要になります。

・Amazon Personalize

・Amazon DynamoDB

・Amazon S3


それぞれのサービスを接続してサービスを開発するため、以下のようなコードを記述します。


import boto3

# Amazon Personalize用のサービスクライアントを作成
personalize = boto3.client('personalize')

# Amazon DynamoDB用のサービスクライアントを作成
dynamodb = boto3.client('dynamodb')

# Amazon S3用のサービスクライアントを作成
s3 = boto3.client('s3')

# Amazon Personalizeのデータセットを作成
personalize.create_dataset(
name = 'my-dataset',
schema = {
'type': 'record',
'name': 'Interactions',
'fields': [
{
'name': 'USER_ID',
'type': 'string'
},
{
'name': 'ITEM_ID',
'type': 'string'
},
{
'name': 'TIMESTAMP',
'type': 'long'
},
]
},
)

# AmazonDynamoDBでデータを読み込み
dynamodb_table = dynamodb.scan(
TableName = 'my-table',
ReturnConsumedCapacity = 'TOTAL'
)

# Amazon S3でデータを読み込み
s3_object = s3.get_object(
Bucket='my-bucket',
Key='my-data.csv'
)

# Amazon Personalizeのインポートジョブを作成
personalize.create_dataset_import_job(
jobName = 'my-import-job',
datasetArn = 'arn:aws:personalize:ap-northeast-1:123456789012:dataset/my-dataset',
dataSource = {
'dataLocation': {
's3DataSource': {
'bucket': 'my-bucket',
'key': 'my-data.csv'
}
}
)


まとめ


AWSが提供するAmazon Personalizeを使えば、専門的な知識が不要なのにAIを使ってリコメンデーションを行うことができます。今回は、Amazon Personalizeを使って開発を行う場合に3つのサービスを接続するコードを説明しました。今後もAmazon Personalizeを使って開発を進めることで、より顧客体験の向上をはかることができるでしょう。

投稿者: systemreach_engineer