2013-03-28 43 views
1

我想使用mahout,它应该帮助我下一个: 我有用户,项目和偏好矩阵。 我们已经为所有用户和项目填满了所有分数。然后,某些用户的某些项目的偏好分数会发生变化。问题是状态变化后如何重新计算可能受到最近操作影响的其他用户分数?Mahout评分矩阵状态改变

例如:

state before  state changed   state after recalculation 

u1 item1 25   u1 item1 25   u1 item1 ?? 
u1 item2 12   u1 item2 12   u1 item2 ?? 
u1 item3 10   u1 item3 10   u1 item3 ?? 
u2 item1 25  => u2 item1 25  =  u2 item1 ?? 
u2 item2 12   u2 item2 12   u2 item2 ?? 
u2 item3 10   u2 item3 10   u2 item3 ?? 
u3 item1 25   u3 item1 20*   u3 item1 20 
u3 item2 12   u3 item2 15*   u3 item2 15 
u3 item3 10   u3 item3 10   u3 item3 10 
+0

在理论上,每次更新后,每个分数都有所变化。目前还不清楚你在问什么结果。添加一些细节。 –

+0

是的,你说得对,每个价值都改变了。关键是我想要从mahout中获得如此的好处:u1 item1 25.5,u1 item2 13,u2 ...然后我将从列(之前的状态)替换u1 item1 25到u1 item1(25 + 25.5)/ 2 = 25.25等。因此,我将获得用户属性pereferences的下一个近似状态。 – HighJustice

+0

您似乎不清楚您尝试实现的目标。用户的偏好是否随时间而改变,并且您希望重新生成推荐者模型,以便生成的建议使用新的偏好值?或者当某个项目的用户偏好发生变化时,您希望保持某种平均值作为偏好值?或者它有什么不同? –

回答

0

亨利马乌不会适应的建议在网上方式,当偏好的变化,在本质上,你就需要给亨利马乌完整的更新数据模型文件,并再次要求它重新计算建议建模并从中检索建议,所以基本上就像一个批处理过程。

有点像:

  • File1中 - >亨利马乌 - >推荐
  • (文件1 +在偏好的变化) - >文件2
  • 文件2 - >亨利马乌 - >推荐
+0

当我们对特定用户的项目分数有空白时,它可以很好地工作。如何设定所有分数时,它是如何工作的? Mahout不希望在这种情况下提出建议:) – HighJustice

+0

我不确定我是否关注。如果你对所有项目的每个用户都有分数,那你为什么需要推荐人?推荐人的目的通常是试图预测用户未来与他们尚未互动的项目之间的互动。 我必须问,你如何确定用户对项目的偏好值?这是用户给该项目的明确评分吗?或者你如何解决这个问题? –

+0

回答您的问题:根据隐式用户偏好设置分数,当然这只是原始预测(逼近)。为了使它们更精确,根据对系统进行的每一次改变重新计算它们将是一件好事。然后我们将根据系统进化得到越来越精确的近似值。我正在考虑以下内容(参见带矩阵的图):迭代所有与用户3(u3)最相似的用户,并删除所有item1和item2。为每个用户重新计算这些项目的分数。 Сalculate算术平均值。商店。但这是非常耗时的方法... – HighJustice