사용자의 event를 상호작용(interaction)로 등록하여 개인화 추천에 사용합니다.
Personalize의 상호작용(interaction)에 대한 메타 정보는 USER_ID, ITEM_ID, TIMESTAMP, EVENT_TYPE, IMPRESSION로 구성됩니다.
{
"type": "record",
"name": "Interactions",
"namespace": "com.amazonaws.personalize.schema",
"fields": [
{
"name": "USER_ID",
"type": "string"
},
{
"name": "ITEM_ID",
"type": "string"
},
{
"name": "TIMESTAMP",
"type": "long"
},
{
"name": "EVENT_TYPE",
"type": "string"
},
{
"name": "IMPRESSION",
"type": "string"
}
],
"version": "1.0"
}
lambda-like에서는 Personalize의 상호작용(interaction) 정보를 등록합니다. 등록할 때에는 putEvents를 사용합니다.
let params = {
sessionId: itemId,
trackingId: trackingId,
userId: userId,
eventList: [{
eventType: "click",
sentAt: timestamp,
eventId: uuidv4(),
itemId: itemId,
impression: impression,
}],
};
console.log('event params: ', JSON.stringify(params));
await personalizeevents.putEvents(params).promise();
CDK stack에서는 아래와 같이 상호작용 스키마로 상호작용 데이터셋을 정의합니다.
const interactionSchema = new personalize.CfnSchema(this, 'InteractionSchema', {
name: 'image-recommender-interaction-schema',
schema: interactionSchemaJson,
});
const interactionDataset = new personalize.CfnDataset(this, 'InteractionDataset', {
datasetGroupArn: datasetGroup.attrDatasetGroupArn,
datasetType: 'Interactions',
name: 'image-recommender-interaction-dataset',
schemaArn: interactionSchema.attrSchemaArn,
});