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

数据挖掘 机器学习 数据挖掘 算法 推荐系统
2021-09-24 01:28:43

我想知道基于 mahout 用户的推荐和基于项目的推荐到底有什么不同。

它定义了

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

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

但是虽然有两种推荐可用,但我的理解是这两种都会采用一些数据模型(比如 1,2 或 1,2,.5 作为 item1,item2,value 或 user1,user2,value ,其中 value 不是强制性),并将执行所有计算作为我们选择的相似性度量和推荐器内置函数,我们可以在相同数据上运行基于用户/项目的推荐(这是一个正确的假设吗??)。

所以我想知道这两种算法究竟在哪些方面以及在哪些方面有所不同。

2个回答

基于项目的算法

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)基于项目的推荐器从用户的首选项目列表开始,因此不需要像基于用户的推荐器那样的最近的项目邻域

您是正确的,两个模型都可以毫无问题地处理相同的数据。这两个项目都在用户项目评级矩阵上运行。

在基于用户的方法中,该算法通过组合其他用户的评分i来生成用户对项目的评分,这些评分类似于这里的相似意味着两个用户的评分具有较高的皮尔逊相关性或余弦相似性或类似的东西。uu'u

在基于项目的方法中,我们i通过u查看与已评分的项目集(在与上述相同的意义上,除了现在我们将查看项目从用户那里收到的评分)i'相似的项目集来生成评分然后将of的评级组合for的预测评级iuui'ui

Amazon发明了基于项目的方法,以通过基于用户的过滤解决其规模挑战。他们销售的商品数量比用户数量的动态性要少得多,因此可以离线计算商品相似度并在需要时访问。