Mahout中基于项目和基于用户的推荐差异


15

我想知道mahout基于用户的推荐与基于项目的推荐之间到底有何不同。

它定义了

基于用户:通过查找相似用户来推荐项目。由于用户的动态特性,这通常很难扩展。

基于项目:计算项目之间的相似度并提出建议。项目通常不会有太大变化,因此通常可以离线进行计算。

但是,尽管有两种建议可用,但据我了解,这两种建议都将采用某种数据模型(例如1,2或1,2,.5作为item1,item2,value或user1,user2,value,其中value不是必选),并将所有计算作为我们选择的相似性度量和推荐器内置函数,并且我们可以在同一数据上运行基于用户/项目的推荐(这是正确的假设??)。

因此,我想知道这两种算法在各个方面到底有何不同。

Answers:


11

您是正确的,两个模型都可以在相同数据上正常工作。两项均以用户项评分矩阵为基础。

在基于用户的方法中,该算法通过组合与相似的其他用户的评分i来生成用户对项目u的评分。此处相似表示两个用户的评分具有较高的皮尔逊相关性或余弦相似性或相似性。u'u

在基于项目的方法,我们产生评级iu通过查看项目集i'类似于i(在同样的意义同上,除了现在我们会看的项目已经从用户接收到的收视率),其u已额定然后结合收视率ui'成预测等级ui

基于项目的方法是在Amazon(http://dl.acm.org/citation.cfm?id=642471)上发明的,旨在通过基于用户的过滤解决其规模挑战。他们出售的商品数量远少于用户数量,并且动态性也要差得多,因此可以离线计算项目相似度,并在需要时进行访问。


21

基于项目的算法

for every item i that u has no preference for yet

  for every item j that u has a preference for

    compute a similarity s between i and j

    add u's preference for j, weighted by s, to a running average

 return the top items, ranked by weighted average

基于用户的算法

for every item i that u has no preference for yet

 for every other user v that has a preference for i

   compute a similarity s between u and v

   add v's preference for i, weighted by s, to a running average

 return the top items, ranked by weighted average

项目与用户:

1)推荐项根据他们必须处理的项目或用户的数量进行扩展,因此在某些情况下,每种类型的性能都可以比另一种更好

2)与用户之间的相似度相比,项目之间的相似度估计随着时间的推移更可能收敛

3)我们可以计算和缓存融合的相似度,这可以使基于项目的推荐者获得性能优势

4)基于项目的推荐者从用户的首选项目列表开始,因此不需要像基于用户的推荐者那样最近的项目邻域


一般警告:本网站不接受链接作为答案。我建议您编辑或删除,然后再投票!
sheldonkreger 2014年

1
最有可能是“基于用户的算法”中有错字-第四行应以“添加您对i ...的偏好”
开头

@BernardoAflalo我不认为这是一个错字,您可以为所有v添加首选项,然后进行加权平均
Oswald
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.