协同过滤

  • UserCF
  • 原理:基于用户相似度进行推荐的协同过滤算法,根据用户和物品的交互信息,形成“共现矩阵”。寻找矩阵中与用户兴趣最相似的Top n, 综合相似用户的评价,给出推荐结果。
    其中:
    ① 交互信息是指用户对于物品的反馈(好评和坏评、评分等级等)
    ② “共现矩阵”是一个二维矩阵,矩阵的每一行代表每一个用户,每一列代表每一件物品,矩阵中的元素是用户对物品的反馈。
    ③“寻找兴趣相似的用户”和“给出推荐结果”是较重要的两步,分别使用相似度计算和排序算法。
  • 相似度计算
    共现矩阵中的行向量代表相应用户的用户向量,计算用户相似度就是计算用户向量 i 和用户向量 j 之间的相似度。向量相似度的计算方法可以用来计算用户相似度,主要有余弦相似度和皮尔逊相关系数。
    余弦相似度:通过两个向量之间的夹角(余弦值)大小,来衡量相似度。 夹角越小,余弦相似度越大,用户就越相似。
  • 排序
    最常用的方式是利用用户相似度和相似用户的评价的加权平均获得最终评价。
  • 基于用户协同过滤的缺点
    ①用户数太多,并且在不断增加,用户相似度矩阵不好储存和维护。用户相似度矩阵的行、列代表用户,矩阵中的元素代表用户之间的相似度。
    ②用户向量(共现矩阵的行向量)稀疏,导致相似用户的查找不准确和难以查找相似用户(相似向量)。
  • ItemCF
  • 原理:基于物品相似度进行推荐的协同过滤算法,根据用户和物品的交互信息,形成“共现矩阵”。通过计算共现矩阵中物品列向量之间的相似度得到物品相似度矩阵,再找到用户历史正反馈(正面评价)物品的相似物品进行排序推荐。
  • 算法流程与UserCF类似,其中,通过物品相似度矩阵找到与用户历史正反馈物品相似的Top n 个物品,对这些物品根据相似度进行排序时,如果一个物品与多个用户历史正反馈物品相似,那么该物品的相似度应该是多个相似的累加。
  • 协同过滤的缺点
    对于稀疏(共现)矩阵的处理能力不强,也就是泛化能力弱。最后的推荐结果头部效应显著(热门物品与大量物品产生相似性,尾部物品则相反)。

王喆. 深度学习推荐系统[M].电子工业出版社, 2020.3.