ITエンジニア ノイのブログ

ITエンジニアのノイです。 YouTubeで ITエンジニアのお勉強という学習用の動画を公開しています。チャンネル登録お願いします!https://m.youtube.com/channel/UCBKfJIMVWXd3ReG_FDh31Aw/playlists

AWS Personalizeでレコメンド

こんにちは!ノイです! ECサイトなどでよく使われるレコメンド機能、簡単に作ってみたいですよね! データセットの配置から学習、推論まで簡単にできるのがAWS Personalizeです。

AWS Personalize

AWS Personalizeは、機械学習技術を使用して、ユーザーにとって最適な体験を提供するためのパーソナライズされた推薦を提供するためのサービスです。以下に、AWS Personalizeの主要なコンポーネントについて説明します。

Dataset Group:

Dataset Groupは、データセットを管理するための容器であり、複数の関連するデータセットを含めることができます。例えば、ユーザーの行動ログ、アイテムの属性情報、およびユーザーのフィードバックデータなどが含まれます。このグループ内でデータを整形し、機械学習に適した形式に変換することができます。

Recipe:

Recipeは、データセットグループから機械学習モデルを作成するための手順書です。AWS Personalizeには、さまざまな種類のレシピが用意されており、それぞれ異なる推薦タスクに最適化されています。例えば、ユーザーの過去の履歴からアイテムを予測するためのレシピがあります。

Solution:

Solutionは、特定のビジネス目標に合わせて調整されたレシピとデータセットの組み合わせです。AWS Personalizeでは、Solutionを使用して、推薦システムを構築することができます。 Solutionは、複数のバージョンを持つことができ、各バージョンは異なるレシピとハイパーパラメータを持ちます。

Campaign:

Campaignは、機械学習モデルをデプロイするためのAWS Personalizeのコンポーネントです。 Campaignを作成すると、エンドポイントが作成され、推薦システムがエンドユーザーに提供されます。 Campaignは、リアルタイムの推薦を提供することができます。

Solution detail

Item recommendation:アイテム推薦 User segmentation:ユーザーセグメンテーション

アイテム推薦

アイテム推薦は、ユーザーに個別に最適なアイテムを推薦するために使用されます。

ユーザーセグメンテーション

ユーザーセグメンテーションは、ユーザーをグループ分けして、それぞれのグループに対して異なるアプローチを適用するために使用されます。 具体的には、アイテム推薦では、ユーザーの過去の購入履歴やクリック履歴などのデータを元に、そのユーザーが興味を持つであろうアイテムを個別に推薦します。一方、ユーザーセグメンテーションでは、ユーザーの属性や行動パターンなどを分析し、それらをグループ分けして、それぞれのグループに対して異なるマーケティング戦略を適用することができます。 例えば、あるECサイトにおいて、女性の20代のユーザーに向けたプロモーションを行いたい場合、ユーザーセグメンテーションを使用して、このグループのユーザーを特定し、それらに対して女性向けの商品やキャンペーンをターゲティングすることができます。一方、アイテム推薦は、このグループのユーザーそれぞれに最適な商品を推薦するために使用されます。 つまり、アイテム推薦は個別のユーザーに対して最適なアイテムを提供することを目的としているのに対して、ユーザーセグメンテーションは、異なるグループに対して異なるマーケティング戦略を適用することを目的としているという点が違いです。

AWS Personalizeのレコメンド機能

AWS Personalizeは、機械学習を使用して、ユーザーにとって最適な商品のレコメンドを提供するサービスです。以下に、それぞれの機能について説明します。

  1. Similar Items(類似商品):この機能は、ユーザーが選択した商品に似た商品を推薦します。例えば、ユーザーが洋服を購入した場合、同じブランドの洋服や、同じスタイルの洋服を推薦することができます。
  2. Personalized Ranking(個別順位付け):この機能は、ユーザーが興味を持つと思われる商品を上位にランキングして表示します。これは、ユーザーが購入する可能性が高い商品を優先的に表示するために使用されます。
  3. User Personalization(ユーザー個別化):この機能は、ユーザーの過去の購入履歴、クリック履歴、および評価などのデータを使用して、ユーザーに最適な商品を推薦します。ユーザーの好みや嗜好に合わせた個別化された推薦が可能です。
  4. Item Popularity(商品人気度):この機能は、商品の人気度を基準にして、人気のある商品を優先的に表示することができます。これは、新しいユーザーがサイトにアクセスした場合や、特定のカテゴリーに関心がある場合に役立ちます。 以上のように、AWS Personalizeは、様々な機能を備えており、それぞれの機能は異なる推薦手法を使用しています。推薦システムを実装する場合には、目的に合わせた機能を適切に選択することが重要です。

精度評価

AWS Personalizeで精度を評価するためには、以下の方法があります。 テストデータを使用してモデルを評価する テストデータを使用して、モデルがどの程度正確に推薦を行っているかを評価することができます。テストデータは、訓練データとは別のデータセットを使用することが一般的です。テストデータに基づいて、精度指標(例えば、平均絶対誤差、平均二乗誤差、正確度、再現率、適合率など)を計算することができます。

A/Bテストを使用する

A/Bテストを使用すると、ユーザーのグループを2つに分け、一方にはPersonalizeが提供するリコメンドを、もう一方には従来のリコメンドを提供することで、Personalizeの効果を評価することができます。結果を比較して、Personalizeがどの程度改善されたかを確認することができます。

ビジュアルインスペクションを使用する

ビジュアルインスペクションを使用すると、ユーザーが実際に見た画面やリコメンドを可視化することができます。これにより、どのようなリコメンドが表示されているかを視覚的に確認し、Personalizeがどの程度効果的であるかを評価することができます。

以上のように、AWS Personalizeで精度を評価するためには、様々な方法があります。しかし、どの方法を使用するにしても、評価には十分な時間とリソースを割く必要があります。

recommender ARNのエラー

「The given recommender ARN is invalid」というエラーメッセージは、AWS Personalizeで指定したレコメンダーARNが無効であることを示しています。このエラーが発生した場合、以下の可能性があります。

  1. ARNのタイプが正しくありません:AWS Personalizeには、複数のARNタイプがあります。 たとえば、 arn:aws:personalize:us-east-1:123456789012:campaign arn:aws:personalize:us-east-1:123456789012:eventTracker arn:aws:personalize:us-east-1:123456789012:recipe などがあります。正しいARNタイプを使用しているか確認してください。
  2. ARNが間違っている:ARNが間違っている可能性があります。ARNを再度確認し、スペルミス、タイプミス、または誤ったリージョンの使用などの問題がないことを確認してください。
  3. アクセス権が不足しています:AWS Personalizeには、IAMユーザーやロールに割り当てられたアクセス権によって、異なるリソースにアクセスできるようになっています。ARにアクセスするために必要な権限が与えられていることを確認してください。
  4. レコメンダーが削除された:レコメンダーARNが無効である場合、レコメンダーが削除された可能性があります。削除されたレコメンダーARNを使用しないようにしてください。

※この記事の一部情報にはChatGPTを用いています。