我有一个关于Mahout中首选项值的含义的问题。《Mahout in Action》一书中写道:
偏好值可以是任何值,只要较大的值意味着更强的积极偏好。例如,这些值可能是评分范围为1到5,其中1表示用户不能进行的项目5表示最爱。
这是否意味着推荐人总是将较小的值解释为负面偏好(不喜欢)?
我正在尝试创建一个没有负面偏好的推荐人。我的意思是,我根本没有偏好,但我可以根据不同的加权指标(点击/编辑次数、编辑量、编辑方式等)来导出它们。然而,在我的实现中,当用户编辑了某个页面时,这并不意味着用户不喜欢该页面,而是在一定程度上喜欢它(正如我上面所描述的,喜欢的程度是派生出来的)。
我试过只使用布尔偏好(Log-likelehood和Tanimoto相似性),但它们表现不佳,在大多数情况下,它们无法产生推荐(在moore中为50%)。
我想利用数字来获得偏好,这样推荐会更好,但我不确定如何。我尝试过将偏好值从5导出到10,然后每个用户对人造物品的偏好值都为1(意味着不喜欢它)。然而,我认为这不是一个好方法,因为这意味着每个用户都不喜欢同一个项目。
有人更清楚我如何应用一些只有"积极"(喜欢)偏好值的基于用户和基于项目的算法吗?
如果你的意思是,你能仅仅基于积极的行动得到合理的结果吗?当然是的。这是常见的情况。如何解释偏好值在很大程度上取决于你使用的算法,但对于任何算法,我认为用所有正值编码所有积极行为都没有任何问题。这是一个简单的案例。"1"本质上不是负面评级,不是。
不过,您关于相似性度量的观点与值无关。听起来你的数据很稀疏。这是一个单独的问题。
其余的我不确定我是否理解。您使用的值取决于您的域。我会让它们与它们的"力量"或价值成比例。例如,如果视频观看频率是视频共享的20倍,则可以使视频共享作为动作的值比单击高20倍。这是一个不错的起点。
您应该尝试:
- 隐式偏好CCD_ 1(基于hadoop)
- 或者隐式偏好CCD_ 2和CCD_
在这些项目中,分配给用户对某个项目的偏好的数字表示该关联的强度,而不是评级,因此它们都是积极的关联,只是强度不同。通过这种方式,您可以对不同的交互进行建模,如查看、编辑、单击等。尽管分配给每个交互的强度会根据您的特定业务而有所不同。
这个演示(链接)应该能让你大致了解正在发生的事情。此外,本文(链接)描述了因子分解器的隐式反馈变体(它们是相同的,只是用来用hadoop缩放)