aws personalize putevents 不更新建议
aws personalize putevents does not update recommendations
我正在尝试使用 AWS Personalize。创建数据集和批量推理后,我正在使用 personalize.putEvents
更新用户项交互(使用 Javascript SDK,docs)
片段:
const awsOpts = { apiVersion, accessKeyId, secretAccessKey, region }
const pEvents = new AWS.PersonalizeEvents(awsOpts)
// ...
const params = {
trackingId, userId, sessionId,
eventList: [{
eventId: (+sentAt) + "",
sentAt,
eventType,
properties: { itemId }
}]
}
pEvents.putEvents(params, (err, data) => err ? reject(err) : resolve(data))
事件似乎已注册。没有错误。之后,当我创建另一个批处理推理时,我希望新的用户项不会再出现在推荐中。但是下一次批量推理中的建议没有改变。我是做错了什么还是误解了 putEvents
-API-call?
供参考的架构:
{
"type": "record",
"name": "Interactions",
"namespace": "com.amazonaws.personalize.schema",
"fields": [
{
"name": "USER_ID",
"type": "string"
},
{
"name": "ITEM_ID",
"type": "string"
},
{
"name": "EVENT_TYPE",
"type": "string"
},
{
"name": "TIMESTAMP",
"type": "long"
}
],
"version": "1.0"
}
有一件事似乎有点奇怪:Cloud watch 报告 lambda 执行了两次,尽管没有错误也没有超时(超时设置为 10s
,并且 lambda 耗时少于 2s
) . Retry attempts
也设置为 2
.
用户项目推荐,至少从运行时开始 API 应该 在某些事件发生后无需重新训练就可以改变(这就是它的用途,这就是我们使用的方式它),尽管 可能 (需要检查)您需要使用 runtime API 来查看新建议。
(编辑以澄清 API 被称为 "runtime" API - 感谢 PatrykMilewski 寻求澄清 - 我绝不确定特定的API 使用是重要的 - 我 do 知道在使用运行时 API 时,事件 do 有一个虽然效果)。
@D.J.Duff(遗憾的是我不能发表评论)
您确定使用 PutEvent 添加的事件 API 被认为是没有重新训练的吗?我一直在 AWS Personalize Doc 中寻找确切的内容,在我看来,您需要重新训练以包含这些事件,并让运行时 api 能够考虑它们。你能指出我在哪里看到他们无需重新培训就可以考虑吗?谢谢
我已经使用 boto3 sdk 尝试了与个性化完全相同的用例。是的!! Put 事件可用于更新用户项交互。放置事件后无需重新训练模型。看起来 aws personalize 解决方案兼容以处理使用 put 事件更新的数据。当我 运行 下一批推理时,在更新与放置事件的交互后 API,我可以看到建议中的变化。我用个性化排名方法验证了这一点。我可以看到最近互动的项目根据用户最近的互动重新排名。
我正在尝试使用 AWS Personalize。创建数据集和批量推理后,我正在使用 personalize.putEvents
更新用户项交互(使用 Javascript SDK,docs)
片段:
const awsOpts = { apiVersion, accessKeyId, secretAccessKey, region }
const pEvents = new AWS.PersonalizeEvents(awsOpts)
// ...
const params = {
trackingId, userId, sessionId,
eventList: [{
eventId: (+sentAt) + "",
sentAt,
eventType,
properties: { itemId }
}]
}
pEvents.putEvents(params, (err, data) => err ? reject(err) : resolve(data))
事件似乎已注册。没有错误。之后,当我创建另一个批处理推理时,我希望新的用户项不会再出现在推荐中。但是下一次批量推理中的建议没有改变。我是做错了什么还是误解了 putEvents
-API-call?
供参考的架构:
{
"type": "record",
"name": "Interactions",
"namespace": "com.amazonaws.personalize.schema",
"fields": [
{
"name": "USER_ID",
"type": "string"
},
{
"name": "ITEM_ID",
"type": "string"
},
{
"name": "EVENT_TYPE",
"type": "string"
},
{
"name": "TIMESTAMP",
"type": "long"
}
],
"version": "1.0"
}
有一件事似乎有点奇怪:Cloud watch 报告 lambda 执行了两次,尽管没有错误也没有超时(超时设置为 10s
,并且 lambda 耗时少于 2s
) . Retry attempts
也设置为 2
.
用户项目推荐,至少从运行时开始 API 应该 在某些事件发生后无需重新训练就可以改变(这就是它的用途,这就是我们使用的方式它),尽管 可能 (需要检查)您需要使用 runtime API 来查看新建议。
(编辑以澄清 API 被称为 "runtime" API - 感谢 PatrykMilewski 寻求澄清 - 我绝不确定特定的API 使用是重要的 - 我 do 知道在使用运行时 API 时,事件 do 有一个虽然效果)。
@D.J.Duff(遗憾的是我不能发表评论)
您确定使用 PutEvent 添加的事件 API 被认为是没有重新训练的吗?我一直在 AWS Personalize Doc 中寻找确切的内容,在我看来,您需要重新训练以包含这些事件,并让运行时 api 能够考虑它们。你能指出我在哪里看到他们无需重新培训就可以考虑吗?谢谢
我已经使用 boto3 sdk 尝试了与个性化完全相同的用例。是的!! Put 事件可用于更新用户项交互。放置事件后无需重新训练模型。看起来 aws personalize 解决方案兼容以处理使用 put 事件更新的数据。当我 运行 下一批推理时,在更新与放置事件的交互后 API,我可以看到建议中的变化。我用个性化排名方法验证了这一点。我可以看到最近互动的项目根据用户最近的互动重新排名。