如何确信Mahout等推荐系统中的相似度值?

时间:2017-06-13 03:52:00

标签: mahout recommendation-engine mahout-recommender

我最近一直在玩Mahout推荐系统,并成功地制作了一个简单的推荐系统。但它对我来说没有意义,通过数学计算的这些相似度值如何对推荐系统有用?特别是在ItemBasedSimilarity?我可以理解,2个用户可以通过他们喜欢/查看/购买/评价的项目彼此相似,但是2个项目如何彼此相似?

2 个答案:

答案 0 :(得分:1)

基于项目的相似度(项目 - 项目相似度)类似于基于用户的相似度(用户 - 用户相似度)。正如你所说,两个用户通过类似/ view / purchase / rate的项目彼此相似。类似地,两个项目基于它们共享的一些特征彼此相似。例如,指环王 The Hobit 是相似的,因为它们是幻想小说,都是由 J.R.R编写的。 Tolkien ,书籍的人物重叠,等等。这通常需要有关这些项目的更多信息。

现在,基于商品的推荐会查找用户过去喜欢/查看/购买/评价的商品,以推荐类似的商品。它根本不适合其他用户。

算法的伪代码如下:

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

基于项目的推荐器的运行时间随着项目数量的增加而增加,而基于用户的推荐者的运行时间随着用户数量的增加而增加。

因为项目项的相似性更加固定,所以它们更适合预先计算。预计算相似性需要工作,但它会在运行时加速推荐。

基于项目的方法是在Amazon发明的,旨在通过基于用户的过滤解决规模挑战。

答案 1 :(得分:0)

在做了一些研究之后,我在这里找到了答案(link)。本文仅展示了2个度量的2个示例(欧几里德距离和余弦相似度),但它有助于可视化相似度值的计算方式,因此可以信任。