【发布时间】:2010-01-02 19:11:22
【问题描述】:
我很好奇有什么方法可以克服“冷启动”问题,即当新用户或项目进入系统时,由于缺乏有关该新实体的信息,因此进行推荐是一个问题。
我可以考虑做一些基于预测的推荐(如性别、国籍等)。
【问题讨论】:
标签: prediction recommendation-engine cold-start
我很好奇有什么方法可以克服“冷启动”问题,即当新用户或项目进入系统时,由于缺乏有关该新实体的信息,因此进行推荐是一个问题。
我可以考虑做一些基于预测的推荐(如性别、国籍等)。
【问题讨论】:
标签: prediction recommendation-engine cold-start
您可以冷启动推荐系统。
推荐系统有两种;协同过滤和基于内容。基于内容的系统使用有关您推荐的内容的元数据。那么问题是什么元数据是重要的?第二种方法是协同过滤,它不关心元数据,它只使用人们对某个项目所做或所说的内容来进行推荐。使用协同过滤,您不必担心元数据中的哪些术语很重要。事实上,您不需要任何元数据来进行推荐。协同过滤的问题在于您需要数据。在获得足够数据之前,您可以使用基于内容的推荐。您可以提供基于这两种方法的推荐,并且在开始时 100% 基于内容,然后随着您获得更多数据开始混合基于协同过滤。 这就是我过去使用的方法。
另一种常见的技术是将基于内容的部分视为简单的搜索问题。您只需将元数据作为文档的文本或正文放入,然后为您的文档编制索引。您可以使用 Lucene 和 Solr 做到这一点,而无需编写任何代码。
如果您想了解基本协同过滤的工作原理,请查看 Toby Segaran 撰写的“编程集体智能”的第 2 章
【讨论】:
也许有时您不应该提出建议? “数据不足”应该属于这些时间之一。
我只是不明白基于“性别、国籍等”的预测建议将如何超越成见。
IIRC,亚马逊等地方在推出推荐之前建立了一段时间的数据库。这不是你想弄错的事情。有很多关于基于数据不足的不适当建议的故事。
【讨论】:
我自己正在解决这个问题,但是这篇来自微软的关于玻尔兹曼机器的论文看起来很有价值:http://research.microsoft.com/pubs/81783/gunawardana09__unified_approac_build_hybrid_recom_system.pdf
【讨论】:
这已经被问过好几次了(当然,我现在找不到这些问题了:/,但一般的结论是最好避免这样的建议。在世界的各个地方,同名属于不同的性别,等等...
【讨论】:
基于“类似用户喜欢...”的推荐显然必须等待。如果您绝对致力于根据用户相似性进行预测,则可以向调查对象发放优惠券或其他奖励。
还有另外两种冷启动推荐引擎的方法。
所有这些都有很多潜在的陷阱,这些都是常识,无法提及。
正如您所料,这里没有免费的午餐。但是这样想:推荐引擎不是商业计划。他们只是增强了商业计划。
【讨论】:
解决冷启动问题需要做三件事:
必须对数据进行分析,以便您具有许多不同的特征(对于产品数据,用于“特征”的术语通常是“分类方面”)。如果您没有正确地分析数据,那么您的推荐引擎将保持“冷漠”,因为它没有任何东西可以用来对推荐进行分类。
最重要的:您需要一个用户反馈循环,用户可以通过该循环查看个性化引擎的建议。例如,“此建议有用吗?”的是/否按钮应将一个训练数据集(即“推荐”训练数据集)中参与者的审查排入另一个训练数据集(即不推荐训练数据集)。
用于(推荐/不推荐)建议的模型绝不应被视为一刀切的建议。除了对产品或服务进行分类以向客户推荐之外,公司如何对每个特定客户进行分类也很重要。如果功能正常,人们应该期望具有不同功能的客户在给定情况下会得到不同的建议(推荐/不推荐)。这将是个性化引擎的“个性化”部分。
【讨论】: