2010-01-02 23 views
5

我很好奇什么是克服“冷启动”问题的方法/方法,当新用户或项目进入系统时,由于缺乏有关此新实体的信息,因此推荐是一个问题。如何使我的推荐引擎适应冷启动?

我能想到做一些基于预测的建议(如性别,国籍等)的。

回答

6

也许有几次你不应该提出建议? “数据不足”应该符合这些时间之一。

我只是不明白如何根据“性别,国籍等”预测建议将达到比定型了。

IIRC,如Amazon的地方建立自己的数据库了一段时间推出的建议之前。这不是你想要弄错的那种东西;有很多关于基于数据不足的不适当建议的故事。

1

这已经被问了几次前(当然,现在我无法找到这些问题:/,但总的结论是,最好避免这样的建议在worls的各部分相同的名称属于不同性别,等等。在...基础上

0

建议“类似的用户喜欢...”,明确必须等待。你可以给出来的优惠券或其他奖励,如果你是绝对致力于基于用户相似度做预测调查的受访者。

还有其他两种方式冷启动一个推荐引擎。

  1. 自己构建模型。
  2. 让供应商填写骨架模型的关键信息。 (也可能需要$奖励。)

所有这些都有很多潜在的缺陷,这些常常没有提及。

正如您所预料的那样,这里没有免费午餐。但是想想这样:推荐引擎不是商业计划。他们只是提高业务计划。

22

您可以冷启动推荐系统。

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

另一种常见的方法是治疗所述基于内容的一部分作为一个简单的搜索问题。您只需将元数据作为文档或文档正文放入索引文档。你可以用Lucene & Solr来做到这一点,而无需编写任何代码。

如果你想知道如何基本的协同过滤的作品,由托比·西格伦

+2

这是最好的答案,确实值得选中标记。我想补充一点,强盗算法可能会在发现新产品的基准利率或确定基于内容和协作方法之间的权衡方面发挥作用。 – SetJmp 2013-11-28 16:47:45

0

有解决冷启动问题需要三样东西:

  1. 的数据必须已经成型,使得你有很多不同的特点(产品数据日用于'特征'的术语通常是'分类方面')。如果你没有正确地分析数据,那么你的推荐引擎将保持“冷”,因为它没有任何东西可以对建议进行分类。

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

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