アイテムインタラクションデータセット - Amazon Personalize

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

アイテムインタラクションデータセット

アイテムインタラクションは、ユーザーとカタログ内のアイテム間のインタラクションイベントです。たとえば、ユーザーが映画を見たり、商品を閲覧したり、靴を購入したりする場合です。ユーザーとアイテムとのインタラクションに関するデータをアイテムインタラクションデータセットにインポートします。クリック視聴、または「いいね」など、複数のイベントタイプを記録できます。

例えば、ユーザーが特定のアイテムをクリックしてからそのアイテムに「いいね!」をした場合、Amazon Personalize にこれらのイベントをトレーニングデータとして使用させることができます。各イベントについて、ユーザーの ID、タイムスタンプ (Unix 時間エポック形式)、ならびにイベントタイプ (クリックおよび「いいね」) を記録します。その後、両方のアイテムインタラクションイベントをアイテムインタラクションデータセットに追加します。

すべてのユースケース (ドメインデータセットグループ) とレシピ (カスタムリソース) について、アイテムインタラクションデータには以下が必要です。

  • カタログ内のアイテムを操作したユーザーからのインタラクションレコードが少なくとも 1000 件ある。これらのインタラクションは、一括インポート、ストリーミングイベント、あるいはその両方からのものである。

  • それぞれに 2 回以上のアイテムインタラクションを伴う 25 個以上のユニークユーザー ID。

質の高いレコメンデーションを行うには、1,000 人以上のユーザーからのアイテムインタラクションが少なくとも 50,000 件あり、それぞれ 2 回以上のアイテムインタラクションがあることが推奨されます。

レコメンダーまたはカスタムソリューションを作成するには、少なくともアイテムインタラクションデータセットを作成する必要があります。このセクションでは、Amazon Personalize にインポートできる次のタイプのアイテムインタラクションデータに関する情報を提供します。

イベントタイプとイベント値のデータ

アイテムインタラクションデータセットには、各インタラクションのイベントタイプとイベント値のデータを保存できます。カスタムリソースのみがイベント値データを使用します。

イベントタイプデータ

Amazon Personalize は、クリックデータや購入データなどのイベントタイプデータを使用して、ユーザーの意図や関心を識別します。ドメインレコメンダーを作成する場合、すべてのユースケースでイベントタイプデータが必要になります。ユースケースによっては、特定のイベントタイプが必要です。その他のイベントタイプは自由に使用できます。詳細については、ユースケースの選択を参照してください。

カスタムリソースを作成すると、トレーニングに使用するイベントをイベントタイプ別に選択できます。データセットの EVENT_TYPE 列に複数のイベントタイプがあり、カスタムソリューションを設定するときにイベントタイプを指定しない場合、Amazon Personalize は、タイプに関係なくすべてのアイテムインタラクションデータを同じ重みでトレーニングに使用します。詳細については、「トレーニングに使用するアイテムインタラクションデータの選択」を参照してください。

ポジティブイベントタイプとネガティブイベントタイプ

Amazon Personalize では、どのようなやり取りもポジティブなものとみなしています。「嫌い」などのネガティブなイベントタイプのインタラクションがあっても、そのアイテムがユーザーのfuture レコメンデーションに表示されなくなるわけではありません。

ネガティブな出来事やユーザーの無関心がレコメンデーションに影響を与えるには、次のような方法があります。

イベント値データ (カスタムリソース)

イベント値データには、ユーザーが視聴した映画の割合や 10 点満点の評価などがあります。カスタムソリューションを作成し、イベント値データをイベントタイプデータと共にインポートすると、タイプと値に基づいてトレーニングに使用するレコードを選択できます。ドメインレコメンダーでは、Amazon Personalize はイベント値データを使用せず、トレーニング前にイベントをフィルタリングすることもできません。

タイプと値に基づいてレコードを選択するには、各イベントのイベントタイプとイベント値を記録します。各イベントで選択する値は、除外するデータや記録するイベントタイプによって異なります。例えば、視聴イベントタイプでは、ユーザーが視聴した動画の割合などのユーザーアクティビティを一致させることができます。

ソリューションを設定する際には、トレーニングからレコードを除外するためのしきい値として特定の値を設定します。例えば、EVENT_TYPE が [watch] (視聴) のイベントの EVENT_VALUE データが、ユーザーが視聴した動画のパーセンテージ (%) である場合であって、イベント値のしきい値を 0.5 に、イベントタイプを [watch] (視聴) に設定する場合、Amazon Personalize は、EVENT_VALUE が 0.5 以上の [watch] (視聴) インタラクションイベントのみを使用してモデルをトレーニングします。

詳細については、「トレーニングに使用するアイテムインタラクションデータの選択」を参照してください。

コンテキストメタデータ

特定のレシピやレコメンデーションユースケースでは、Amazon Personalize は、ユーザーにとって最も関連性の高いアイテムを明らかにする基本的なパターンを識別する際に、コンテキストメタデータを使用できます。コンテキストメタデータは、場所やデバイスのタイプなど、イベント時にユーザーの環境で収集するインタラクションデータです。

コンテキストメタデータを含めると、既存のユーザー向けに、よりパーソナライズされたエクスペリエンスを提供できます。例えば、顧客が電話からカタログにアクセスするときとコンピュータからアクセスするときで、ショッピングの態様が異なる場合は、ユーザーのデバイスに関するコンテキストメタデータを含めます。これにより、閲覧方法に基づいて、レコメンデーションの関連性がより高くなります。

さらに、コンテキストメタデータは、新規ユーザーまたは不明ユーザーのコールドスタートフェーズを減らすのに役立ちます。コールドスタートフェーズとは、そのユーザーに関する履歴情報が不足しているために、レコメンデーションエンジンが関連性の低いレコメンデーションを提供する期間をいいます。

ドメインデータセットグループでは、以下のレコメンダーユースケースでコンテキストメタデータを使用できます。

カスタムリソースについては、コンテキストメタデータを使用するレシピには次のものが含まれます。

コンテキスト情報の詳細については、「コンテキスト情報を活用して Amazon Personalize レコメンデーションの関連性を高める」 AWS というMachine Learning ブログ記事を参照してください。

インプレッションデータ

VIDEO_ON_DEMAND または ECOMMERCE ドメインのドメインデータセットグループを作成するか、User-Personalization レシピを使用する場合、Amazon Personalize は、アイテムインタラクションデータセットにアップロードするインプレッションデータをモデル化できます。インプレッションは、ユーザーが特定のアイテムを操作した (例えば、クリックや視聴した) ときに表示されたアイテムのリストです。

Amazon Personalize は、インプレッションデータを使用して、探索に含めるアイテムを決定します。探索では、新しいアイテムまたはアクション、インタラクションがほとんどないアイテムまたはアクション、以前の行動に基づいてユーザーに関連性が低いアイテムまたはアクションなど、通常はユーザーにレコメンデーションされる可能性が低いアイテムまたはアクションがレコメンデーションに含まれます。インプレッションデータでアイテムが頻繁に発生するほど、Amazon Personalize がそのアイテムを探索に含める可能性は低くなります。インプレッションの値は最大 1,000 文字 (縦棒文字を含む) まで入力できます。

探索の詳細については、「探査」を参照してください。Amazon Personalize は、暗黙的なインプレッション および 明示的なインプレッション といった 2 種類のインプレッションをモデル化できます。

暗黙的なインプレッション

暗黙的なインプレッションは、Amazon Personalize から取得した、ユーザーに表示するレコメンデーションです。(GetRecommendations および GetPersonalizedRanking 操作によって返される) RecommendationId を将来の PutEvents リクエストの入力として含めることにより、それらをレコメンデーションワークフローに統合できます。Amazon Personalize は、レコメンデーションデータに基づいて暗黙的なインプレッションを派生させます。

例えば、ストリーミング動画に関するレコメンデーションを提供するアプリケーションがあるとします。暗黙的なインプレッションを使用するレコメンデーションワークフローは次のようになります。

  1. Amazon Personalize の GetRecommendations API 操作を使用して、いずれかのユーザー向けに動画のレコメンデーションをリクエストします。

  2. Amazon Personalize は、モデル (ソリューションバージョン) を使用してユーザー向けのレコメンデーションを生成し、それらを recommendationId とともに API 応答で返します。

  3. アプリケーションでユーザーに動画のレコメンデーションを表示します。

  4. ユーザーが動画を操作する (例えば、クリックする) 際に、PutEvents API に対するコールで選択内容を記録し、パラメータとして recommendationId を含めます。コードサンプルについては、「インプレッションデータの記録」を参照してください。

  5. Amazon Personalize は、recommendationId を使用して以前の動画のレコメンデーションからインプレッションデータを導き出し、その後にインプレッションデータを使用して探索をガイドします。将来のレコメンデーションには、インタラクションデータまたは関連性が少ない新しい動画が含まれます。

    暗黙的なインプレッションデータを使用したイベントの記録の詳細については、「インプレッションデータの記録」を参照してください。

明示的なインプレッション

明示的なインプレッションとは、手動で記録して Amazon Personalize に送信するインプレッションです。明示的なインプレッションを使用して、Amazon Personalize の結果を操作します。アイテムの順序はいかなる影響も及ぼしません。

例えば、靴に関するレコメンデーションを提供するショッピングアプリケーションがあるとします。現在在庫のある靴のみをお勧めする場合は、明示的なインプレッションを使用してこれらのアイテムを指定できます。明示的なインプレッションを使用するレコメンデーションワークフローは次のようになります。

  1. Amazon Personalize の GetRecommendations API を使用して、いずれかのユーザー向けにレコメンデーションをリクエストします。

  2. Amazon Personalize は、モデル (ソリューションバージョン) を使用してユーザー向けのレコメンデーションを生成し、それらを API 応答で返します。

  3. 推奨される靴のうち、在庫がある靴のみをユーザーに表示します。

  4. リアルタイムの増分データインポートについては、ユーザーが 1 組の靴を操作する (例えば、クリックする) ときに、PutEvents API に対するコールで選択を記録し、在庫がある推奨アイテムを impression パラメータでリストします。コードサンプルについては、「インプレッションデータの記録」を参照してください。

    履歴アイテムインタラクションデータにインプレッションをインポートするために、明示的なインプレッションを csv ファイルにリストし、各アイテムを「|」文字で区切ることができます。縦棒文字は 1,000 文字の制限に含まれます。例については、「明示的なインプレッションのフォーマット」を参照してください。

  5. Amazon Personalize は、インプレッションデータを使用して探索をガイドします。将来のレコメンデーションには、インタラクションデータまたは関連性が少ない新しい靴が含まれます。