推荐系统 - 将交易计数转换为星级

时间:2014-03-06 21:59:01

标签: r machine-learning data-mining recommendation-engine collaborative-filtering

我正在对推荐系统进行一些探索性工作,并且一直在阅读涉及基于用户,基于项目和SVD算法的协同过滤技术。我也在试用R的推荐器包。

文献中的一个明显假设是用户数据基于评定量表标记了项目,例如,介于1至5星之间。我正在研究用户数据没有评级但只是交易的问题。例如,如果我想向用户推荐餐馆,我所拥有的唯一数据就是他访问其他餐馆的频率。

如何将这些“交易”计数转换为可以由期望固定规模评级的推荐算法使用的评级?我想到的一种方法是简单的分箱:

0 stars = 0-1 visits
1 star  = 2-3 visits
...
5 stars = 10+ visits

然而,这似乎不会很好。例如,如果有人只去过一家餐馆,他可能仍然非常喜欢它。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

我会尝试不同的方法。正如你所说,只有访问一次可能表明用户仍然喜欢餐厅,但你不确定。您的目标不是针对单个用户而是针对所有用户进行优化。因此,您可以将数据拆分为培训和测试数据。训练不同尺度的训练数据并测试测试数据。

不同的尺度可能是

  • 二进制刻度(0:从未访问过,1:访问过)。这主要用于网上商店(买或不买)。支持你的一次性访问。

  • 您呈现的5星级范围或其他范围。您还可以使用超过5颗星。我可能不会将0-1次访问。

应选择具有最佳准确度的方法。

答案 1 :(得分:0)

这是一个想法:用户访问过的餐馆零次或一次告诉你他们喜欢什么。他们多次去过的餐馆告诉你很多。为什么不寻找类似于客户最常光顾的餐馆?通过这种方式,您可以使用正面信息(他们喜欢什么)但没有任何负面信息,因为您无论如何都无法访问它。

如果你绝对不得不推断一些连续的衡量标准,我认为只考虑过去行为的另一次访问的倾向是明智的。这将从选择该餐馆的先前概率(背景频率,或仅仅是餐馆的统一)开始,其可能性项与该餐馆的访问次数相关。通过这种方式,用户访问餐馆的次数越多,他们就越有可能再次访问。