我在一个电子商务网站上添加了一个带有Amazon个性化的产品推荐功能。我们目前有一个庞大的产品目录,数百万件。我们希望能够在我们的项目详细信息页面上使用Amazon个性化推荐当前项目的其他相关项目。
现在您可能知道,Amazon的个性化很大程度上依赖于用户交互来提供推荐。然而,由于我们只是刚刚开始我们的新业务,我们没有得到足够的交互数据。我们目录中的大多数项目根本没有交互作用。尽管有几个项目(千)得到了大量的交互,这对推荐结果产生了巨大的影响。因此,您将看到,这几个项目总是被推荐,即使它们与当前项目完全无关,创建了一个非常奇怪的建议。
我认为这就是我们通常所说的“冷启动”情况--除了通常的冷启动问题是关于“冷启动”或用户“冷启动”的问题,但我现在面临的问题是一个新的业务“冷启动”--我们没有基本的交互数据来支持完全个性化的推荐。在缺少每个项的交互数据的情况下,我们希望Amazon个性化服务依赖项元数据来提供建议。因此,理想情况下,我们希望基于项元数据推荐服务,一旦得到更多的交互,建议基于项元数据+交互。
到目前为止,我已经做了相当多的研究,只是为了找到一个解决方案--在创建活动时增加explorationWeight。正如这篇文章所指出的,较高的explorationWeight值意味着更高的勘探;较低印象的新项目更有可能被推荐。但这似乎对我没什么用。它改善了一些情况,但我仍然经常看到奇怪的结果被推荐,因为一个较高的集成率。
我不确定是否有其他解决办法来补救我的处境。如果我有一个庞大的目录,没有足够的交互数据,我如何改进推荐结果?
如果有人有任何建议我很感激。谢谢你,祝你今天愉快!
发布于 2021-08-20 23:05:36
西姆斯配方通常是产品详细信息页面上推荐类似项目的工具。但是,假设SIMS只考虑用户项交互数据集,而且您的交互数据非常少,那么SIMS在这种情况下的性能就不会很好。至少在这个时候。一旦积累了更多的交互数据,您可能希望重新访问SIMS以获取详细信息页。
用户个性化配方在这里是一个更好的匹配,因为它使用项元数据推荐用户可能感兴趣的冷项。通过向项数据集添加文本数据,可以提高基于项元数据的建议的相关性。这是一个新的个性化特性(详见博客帖子 )。只需将产品说明作为文本字段添加到项目数据集中,如下所示,并使用用户个性化配方创建解决方案。
{
"type": "record",
"name": "Items",
"namespace": "com.amazonaws.personalize.schema",
"fields": [
{
"name": "ITEM_ID",
"type": "string"
},
{
"name": "BRAND",
"type": [
"null",
"string"
],
"categorical": true
},
{
"name": "PRICE",
"type": "float"
},
{
"name": "DESCRIPTION",
"type": [
"null",
"string"
],
"textual": true
},
],
"version": "1.0"
}如果您仍然在产品详细信息页面上使用此菜谱,则还可以考虑在调用过滤器时使用GetRecommendations将推荐限制在当前产品的类别中。
INCLUDE ItemID WHERE Items.CATEGORY IN ($CATEGORY)其中$CATEGORY是当前产品的类别。这可能需要一些实验,看看它是否适合您的UX和目录。
https://stackoverflow.com/questions/68390643
复制相似问题