【问题标题】:How can similarity values in recommendations systems such as Mahout be trusted?如何信任 Mahout 等推荐系统中的相似性值?
【发布时间】:2017-11-14 16:12:45
【问题描述】:

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

【问题讨论】:

    标签: mahout recommendation-engine mahout-recommender


    【解决方案1】:

    经过一番研究,我在这里找到了答案 (link)。本文仅展示了 2 个指标(欧几里得距离和余弦相似度)的 2 个示例,但它有助于可视化计算相似度值的方式,因此值得信赖。

    【讨论】:

      【解决方案2】:

      基于物品的相似度(item-itemsimilarity)与基于用户的相似度(user-usersimilarity)相似。正如您所说,两个用户在喜欢/查看/购买/率等项目上彼此相似。同样,两个项目基于它们共享的某些特征而彼此相似。例如,指环王霍比特人很相似,因为它们都是奇幻小说,都是由J.R.R.写的。托尔金,书中人物重叠,等等。这通常需要有关项目的更多信息。

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

      算法的伪代码如下:

      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 发明了基于项目的方法,以通过基于用户的过滤解决规模挑战。

      【讨论】:

      • 虽然听起来很清楚,但我仍然不清楚根据用户体验,项目之间是如何“相似”的(我实际上是想问相似度 s 是如何计算的,值是否可靠)。但是,感谢您指出伪代码,它实际上使我对机制有了更多的了解,并帮助我提高了系统的性能。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      • 2014-09-21
      • 2017-08-17
      • 1970-01-01
      • 1970-01-01
      • 2011-09-09
      相关资源
      最近更新 更多