如何使我的推荐引擎适应冷启动?

时间:2010-01-02 19:11:22

标签: prediction recommendation-engine cold-start

我很好奇克服“冷启动”问题的方法/方法是什么,当新用户或项目进入系统时,由于缺乏关于这个新实体的信息,建议是一个问题。

我可以考虑做一些基于预测的推荐(如性别,国籍等)。

6 个答案:

答案 0 :(得分:23)

您可以冷启动推荐系统。

有两种推荐系统;协同过滤和基于内容。基于内容的系统使用有关您推荐的内容的元数据。那么问题是元数据是什么重要的?第二种方法是协同过滤,它不关心元数据,它只是使用人们对项目所做的或所说的来做出推荐。通过协作过滤,您不必担心元数据中的哪些术语很重要。实际上,您不需要任何元数据来提出建议。协同过滤的问题在于您需要数据。在您有足够的数据之前,您可以使用基于内容的建议。您可以提供基于这两种方法的建议,并且在开始时具有100%基于内容的建议,然后随着您获得更多数据开始混合基于协作过滤。 这是我过去使用的方法。

另一种常见技术是将基于内容的部分视为简单的搜索问题。您只需将元数据作为文档的文本或正文放入,然后索引文档。你可以用Lucene& Solr无需编写任何代码。

如果您想了解基本协同过滤的工作原理,请查看Toby Segaran的“编程集体智慧”第2章

答案 1 :(得分:6)

也许有时候你不应该提出建议? “数据不足”应符合其中一个时间。

我只是看不出基于“性别,国籍等”的预测建议将不仅仅是刻板印象。

IIRC,像亚马逊这样的地方在推出建议之前建立了他们的数据库一段时间。这不是你想要出错的那种东西;根据数据不足,有很多关于不恰当推荐的故事。

答案 2 :(得分:2)

我自己也在处理这个问题,但是来自微软的Boltzmann机器上的这篇论文看起来很值得:http://research.microsoft.com/pubs/81783/gunawardana09__unified_approac_build_hybrid_recom_system.pdf

答案 3 :(得分:1)

之前已经多次询问过(当然,我现在无法找到这些问题:/,但一般的结论是避免这些建议更好。在各个部分,同一个名字属于不同的性别,等等...

答案 4 :(得分:0)

基于“类似用户喜欢......”的建议显然必须等待。如果您绝对致力于根据用户相似性进行预测,您可以向受访者提供优惠券或其他奖励。

冷启动推荐引擎还有另外两种方法。

  1. 自己建立模型。
  2. 让供应商填写骨架模型的关键信息。 (也可能需要奖励。)
  3. 所有这些中存在许多潜在的陷阱,这些陷阱太常见了。

    正如您所料,这里没有免费午餐。但是这样考虑一下:推荐引擎不是商业计划。他们只是改进了商业计划。

答案 5 :(得分:0)

解决冷启动问题需要三件事:

  1. 必须对数据进行分析,以便您拥有许多不同的功能(产品数据用于'功能'通常是'分类方面')。如果您没有正确地对数据进行分析,那么您的推荐引擎将保持“冷”状态。因为它没有对推荐进行分类的任何内容。

  2. 最重要的是:您需要一个用户反馈循环,用户可以使用该循环查看个性化引擎建议的建议。例如,是/否按钮是否有此建议有帮助?'应该将对一个训练数据集(即推荐训练数据集)中参与者的评论排队到另一个训练数据集(即不要推荐训练数据集)。

  3. 用于(推荐/不推荐)建议的模型绝不应被视为一刀切的建议。除了对产品或服务进行分类以向客户建议外,公司如何对每个特定客户进行分类也很重要。如果运行正常,人们应该期望具有不同功能的客户在特定情况下会得到(推荐/不推荐)的不同建议。这就是个性化'个性化引擎的一部分。