我正在尝试建立一个推荐系统,但我只有关于我的用户“喜欢”的数据,即所有非缺失数据都具有相同的数值。
我是否可以在没有实际“评级”的情况下使用矩阵分解方法?(用户评分的多个数值,而不仅仅是用户“喜欢”该项目的指标。)如果是这样,怎么做?
我正在尝试建立一个推荐系统,但我只有关于我的用户“喜欢”的数据,即所有非缺失数据都具有相同的数值。
我是否可以在没有实际“评级”的情况下使用矩阵分解方法?(用户评分的多个数值,而不仅仅是用户“喜欢”该项目的指标。)如果是这样,怎么做?
这个问题通常被称为隐式反馈。典型的解决方案类似于 word2vec 噪声对比估计:
通常你想从相似的分布中生成这个不喜欢的集合,即用户和页面(或他们喜欢的任何东西)的相同分布。最简单的方法是获取两个随机条目,从一个获取用户,从另一个获取页面。
看:
请参阅Steffen Rendle 和 Christoph Freudenthaler (2014)从隐式反馈中改进项目推荐的成对学习。前者撰写了原始论文Factorization Machines (2010),我强烈推荐阅读。
是的,这被称为“一元”数据(如果您只使用点击或展示,则通常是“隐式”数据)。最常用的矩阵分解技术可能是本文 (PDF) 中概述的交替最小二乘法:Hu、Koren 和 Volinsky。在许多常见的机器学习软件包中都有实现,例如 Mahout、Myrrix 和 GraphLab。