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

How can similarity values in recommendations systems such as Mahout be trusted?

最近一直在研究 Mahout 推荐系统,并成功地用它做了一个简单的推荐系统。但这对我来说没有意义,这些通过数学计算的相似度值如何对推荐系统有用?特别是在 ItemBasedSimilarity 中?我可以理解 2 个用户可以通过他们 like/view/purchase/rate 的项目彼此相似,但是 2 个项目如何彼此相似?

基于项目的相似度(项目-项目相似度)类似于基于用户的相似度(用户-用户相似度)。如您所说,两个用户在项目 like/view/purchase/rate 上彼此相似。类似地,两个项目基于它们共有的某些特征而彼此相似。例如,指环王霍比特人很相似,因为它们都是奇幻小说,都是[=32写的=].托尔金,书中人物重叠,等等。这通常需要有关项目的更多信息。

现在,基于项目的推荐会查找用户 liked/viewed/purchased/rated 过去推荐过类似项目的项目。它根本看不到其他用户。

算法伪代码如下:

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

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