我正在对推荐系统进行一些探索性工作,并且一直在阅读涉及基于用户,基于项目和SVD算法的协同过滤技术。我也在试用R的推荐器包。
文献中的一个明显假设是用户数据基于评定量表标记了项目,例如,介于1至5星之间。我正在研究用户数据没有评级但只是交易的问题。例如,如果我想向用户推荐餐馆,我所拥有的唯一数据就是他访问其他餐馆的频率。
如何将这些“交易”计数转换为可以由期望固定规模评级的推荐算法使用的评级?我想到的一种方法是简单的分箱:
0 stars = 0-1 visits
1 star = 2-3 visits
...
5 stars = 10+ visits
然而,这似乎不会很好。例如,如果有人只去过一家餐馆,他可能仍然非常喜欢它。
任何帮助都将不胜感激。
答案 0 :(得分:1)
我会尝试不同的方法。正如你所说,只有访问一次可能表明用户仍然喜欢餐厅,但你不确定。您的目标不是针对单个用户而是针对所有用户进行优化。因此,您可以将数据拆分为培训和测试数据。训练不同尺度的训练数据并测试测试数据。
不同的尺度可能是
二进制刻度(0:从未访问过,1:访问过)。这主要用于网上商店(买或不买)。支持你的一次性访问。
您呈现的5星级范围或其他范围。您还可以使用超过5颗星。我可能不会将0-1次访问。
应选择具有最佳准确度的方法。
答案 1 :(得分:0)
这是一个想法:用户访问过的餐馆零次或一次告诉你他们喜欢什么。他们多次去过的餐馆告诉你很多。为什么不寻找类似于客户最常光顾的餐馆?通过这种方式,您可以使用正面信息(他们喜欢什么)但没有任何负面信息,因为您无论如何都无法访问它。
如果你绝对不得不推断一些连续的衡量标准,我认为只考虑过去行为的另一次访问的倾向是明智的。这将从选择该餐馆的先前概率(背景频率,或仅仅是餐馆的统一)开始,其可能性项与该餐馆的访问次数相关。通过这种方式,用户访问餐馆的次数越多,他们就越有可能再次访问。