我正在做一些关于推荐系统的探索性工作,并且一直在阅读关于协作过滤技术的文章,这些技术涉及基于用户的、基于项目的和SVD算法。我也在尝试R的推荐实验室包。
文献中的一个明显的假设是,用户数据已经基于评级尺度对项目进行了标记,例如在1星和5星之间。我正在研究的问题是,用户数据没有评级,而只是交易。例如,如果我想向用户推荐餐厅,我拥有的唯一数据是他访问其他餐厅的频率。
如何将这些“交易”计数转换为可供期望固定评级的推荐算法使用的评级?我想到的一种方法是简单的装箱:
0 stars = 0-1 visits
1 star = 2-3 visits
...
5 stars = 10+ visits然而,这似乎并不能很好地发挥作用。例如,如果一个人只去过一家餐厅一次,他可能仍然真的很喜欢它。
任何帮助都将不胜感激。
发布于 2014-03-07 06:36:57
我会尝试不同的方法。正如你所说,只访问过一次可能表明用户仍然喜欢这家餐厅,但你不确定。您的目标不是针对单个用户进行优化,而是针对所有用户进行优化。因此,您可以将数据拆分为训练数据和测试数据。对不同尺度的训练数据进行训练,并对测试数据进行测试。
不同的尺度可能是
应该选择精度最高的方法。
发布于 2014-03-07 17:52:35
这里有一个想法:用户访问过0次或1次的餐厅不会告诉你他们喜欢什么。他们去过很多次的餐馆会告诉你很多东西。为什么不找一些与顾客经常光顾的餐厅相似的餐厅呢?通过这种方式,你使用了积极的信息(他们喜欢的),但没有负面的信息,因为你无论如何都无法访问它。
如果你一定要推断一些连续的衡量标准,我认为只有在考虑到过去的行为后,才会明智地看看再次访问的倾向。这将从选择该餐厅的先验概率(背景频率,或仅是餐厅上的一致性)开始,其中的似然项与该餐厅的光顾次数相关。这样,用户访问一家餐厅的次数越多,他们再次访问的可能性就越大。
https://stackoverflow.com/questions/22236947
复制相似问题