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,我可以看到建议中的变化。我用个性化排名方法验证了这一点。我可以看到最近互动的项目根据用户最近的互动重新排名。