[まるクラ勉強会 ONLINE #3] Amazon Personalizeの レコメンドシステム構築、実際何するの? 〜大体10分で具体的なイメージをつかむ〜 #まるクラ勉強会
データ事業本部インテグレーション部機械学習チーム・新納(にいの)です。
2024/11/13に「まるクラ勉強会 #03 - AWS・Google Cloudを活用した機械学習 -」を開催しました。ご参加いただいた皆さま、ありがとうございました!たくさん質問をいただけて大変うれしい気持ちです。
私は「Amazon Personalizeの レコメンドシステム構築、実際何するの? 〜大体10分で具体的なイメージをつかむ〜」というセッションで登壇しましたので、資料公開いたします。
登壇資料
登壇の中でご紹介したブログ
今回はAmazon Personalizeを中心としたレコメンドシステムについてお話ししました。実際に導入するために何が必要なのかをイメージしていただけるよう、細かな機能面よりもPersonalize以外の要素にフォーカスしました。Personalizeの機能については上述したブログをぜひご参照ください。
いただいたご質問
会員管理などログイン管理システムがないサイト(ユーザーIDがない)ではGoogle アナリティクスなどデータを使ってAmazon Personalizeを使ってユーザー別のレコメンドを作れるのでしょうか
レコメンドしたいアイテムとユーザーのアクションの紐付けがGoogle Analyticsのデータからできればレコメンドを作成可能です。
また、PersonalizeではRELATED_ITEMSというレシピがあり、指定されたアイテムに類似したアイテムをレコメンドすることも可能です(例:「この商品を購入した人におすすめの商品です」)。
定性的な評価では、どの程度のユーザ数に対してテストするのでしょうか?
レコメンド結果については、定量的な指標による評価に加えユーザー体験の観点からも妥当性を確認する必要性についてお話ししました。そのことに関連してのご質問をいただいたものと理解しております。
ここで重視するのは評価するユーザーの数というよりも多様なユーザー層をカバーできているかどうかです。例えば、年齢層や利用頻度、興味のあるカテゴリーなど、様々な特性を持つユーザーをバランスよく選ぶことが重要です。
PersonalizeをECSでコンテナ化して提供していた理由
Personalizeの各ジョブをStep Functionsでオーケストレーションする場合とECS(Fargate)でコンテナ化するケースの2パターンをご紹介しました。
Step Fuctionsを利用する場合は、コードのメンテナンスやインフラの管理が不要で、実行状況もリアルタイムにAWSマネジメントコンソールからトレースできるというメリットがあります。
一方、ECSを利用する場合はPython boto3を利用し、Personalizeのジョブ実行の自動化を想定しています。Pythonを使い慣れていればIDEを活用できてデバッグもしやすいですし、細かい制御や例外処理も表現しやすいというメリットがあります。
以下の観点で最適な方法を選択するといいかもしれません。
- システムに関わるチームメンバーのスキルセット
- プロジェクトの要件と目標
- 既存のインフラストラクチャとの統合
- スケーラビリティとメンテナンス性の要求
最後に
Personalizeを利用したレコメンドシステム導入について、機能面以外のトピックについて中心にお話ししました。導入したあとも継続的にモニタリングしてトレンドの変化などに追従することも大事です。
後日、登壇の動画もアップロードされる予定ですので追記します。