翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
インプレッションデータを使用したアイテムインタラクションイベントの記録
User-Personalization recipe を使用するか、ドメインデータセットグループのデータセットのスキーマに IMPRESSIONSフィールドを追加すると、 オペレーションで PutEventsインプレッションデータを記録できます。インプレッションは、ユーザーが特定のアイテムを操作した (例えば、クリックや視聴した) ときに表示されたアイテムのリストです。Amazon Personalize は、インプレッションデータを使用して探索をガイドします。レコメンデーションには、インタラクションデータや関連性が少ないアイテムが含まれます。Amazon Personalize がモデル化できる暗黙的および明示的なインプレッションについては、「インプレッションデータ」を参照してください。
PutEvents
リクエストで競合する暗黙的および明示的なインプレッションデータを提供する場合、Amazon Personalize は、デフォルトで明示的なインプレッションを使用します。
ユーザーに表示する Amazon Personalize のレコメンデーションをインプレッションデータとして記録するには、PutEvents リクエストに recommendationId
を含めます。Amazon Personalize は、レコメンデーションデータに基づいて暗黙的なインプレッションを派生させます。
イベントのインプレッションデータを手動で記録するには、PutEvents コマンドの impression
入力パラメータにインプレッションをリストします。次のコードサンプルは、 for Python (Boto3) または SDK for Java 2.x のいずれかを使用して、 PutEvents オペレーションimpression
に SDK recommendationId
と を含める方法を示しています。両方を含めると、Amazon Personalize は、デフォルトで明示的なインプレッションを使用します。
- SDK for Python (Boto3)
-
import boto3
personalize_events = boto3.client(service_name='personalize-events')
personalize_events.put_events(
trackingId = 'tracking_id
',
userId= 'userId
',
sessionId = 'sessionId
',
eventList = [{
'eventId': 'event1
',
'eventType': 'rating
',
'sentAt': 1553631760
,
'itemId': 'item id
',
'recommendationId': 'recommendation id
',
'impression': ['itemId1
', 'itemId2
', 'itemId3
'
]
}]
)
- SDK for Java 2.x
-
インプレッションデータと を含むイベントを記録するには、次のputEvents
方法を使用しますrecommendationId。impressions パラメータの場合、 のリストを itemIds として渡します ArrayList。
public static void putEvents(PersonalizeEventsClient personalizeEventsClient,
String trackingId,
String sessionId,
String userId,
String eventType,
Float eventValue,
String itemId,
ArrayList<String> impressions,
String recommendationId) {
try {
Event event = Event.builder()
.eventType(eventType)
.sentAt(Instant.ofEpochMilli(System.currentTimeMillis() + 10 * 60 * 1000))
.itemId(itemId)
.eventValue(eventValue)
.impression(impressions)
.recommendationId(recommendationId)
.build();
PutEventsRequest putEventsRequest = PutEventsRequest.builder()
.trackingId(trackingId)
.userId(userId)
.sessionId(sessionId)
.eventList(event)
.build();
int responseCode = personalizeEventsClient.putEvents(putEventsRequest)
.sdkHttpResponse()
.statusCode();
System.out.println("Response code: " + responseCode);
} catch (PersonalizeEventsException e) {
System.out.println(e.awsErrorDetails().errorMessage());
}
}