Amazon Personalizeを活用した機械学習によるレコメンドシステムのご紹介
データ事業本部の鈴木です。
私の所属している機械学習チームでは『機械学習を活用したレコメンドシステムプラン』を提供しています。
このプランではAWSの機械学習サービス(Amazon PersonalizeとAmazon SageMaker)を活用してシステムを構築していますが、中でもマネージドのAmazon Personalizeはインフラストラクチャの管理が不要で扱いやすくおすすめのサービスです。
このエントリでは、本サービス向けに構築例をご紹介します。
レコメンドについて
ユーザーに対しておすすめのアイテムを提示します。
ECサイト・動画配信サービス・不動産情報サイトなどさまざまなシーンで扱われています。
購入・利用履歴(インタラクションデータ)やユーザーおよびアイテムの属性情報などを使用します。
利用者側は目的のものに素早くアクセスできたり意図しない気づきを得られるなどユーザー体験が向上し、事業者側はサービスの活性化に繋がる施策となります。
昨年ウェビナーで発表した際の以下の資料が大変参考になります。
Amazon Personalizeについて
AWSが提供する、機械学習によるレコメンド向けのマネージドサービスです。ユーザーはデータセットを準備するだけでモデルを訓練しレコメンド結果を得ることができます。
また、カスタマイズ性もあり、用途やデータに合う多様なレシピを用意しています。
閲覧履歴やランキングなども一種のレコメンドですが、機械学習を使う強みとしては、ユーザーやアイテム個別にレコメンドを作ることができる点があります。例えば、ユーザーAさんにはアイテム1, 2, 3をレコメンドする、などです。昨今は生成AIも非常に強力な方法ですが、Amazon Personalizeで扱う手法では、数万以上の大きな規模のユーザーに対しても現実的な時間でレコメンド結果を作ることができる点がメリットになります。
我々のチームではバッチレコメンドを中心に支援実績があります。レコメンドの内容としては大きく分けて、ユーザーに対するおすすめを出力するユーザーレコメンド、アイテムに関連するおすすめを出力するアイテムレコメンドの2つがありますが、双方に対応実績があります。
構成例
以下に想定している構成例をご紹介します。
1. Amazon Athenaからまとまったレコメンド結果を検索
S3バケットにあるデータから、Amazon Personalizeのモデルを作成してレコメンドします。出力はAmazon Athenaよりテーブルとして読み込むことができます。ある程度まとまった結果を取得するような場合に最適です。
モデルのトレーニングや推論対象としてはAmazon RDS内にある購買データがまずは考えられます。Amazon PersonalizeはS3が入出力のインターフェースとなっているため、AWS Glueのジョブで取得してS3バケットに配置できます。
実行制御はStep Functionsにて行います。AWSのマネージドのオーケストレーションサービスです。
以下のようにステートを定義し、各ステートでAPIへのリクエストや待機などを行うことができます。
2. APIから個別ユーザーのレコメンド結果を取得
S3バケットへの出力までは先の例と同じですが、レコメンド結果はDynamoDBなどのデータベースに格納しておき、API Gatewayから取得することも可能です。利用側のシステムがAPI連携のみを対応している場合や、個別のユーザーの結果のみ使うユースケースに最適です。
最後に
Amazon Personalizeを活用した機械学習によるレコメンドシステムのご紹介でした。
レコメンドシステムの導入にご関心がある方はお気軽にお問い合わせください。