一、GroupLens [1994]

《GroupLens: An Open Architecture for Collaborative Filtering of Netnews》

  1. 在1994 年的论文《GroupLens: An Open Architecture for Collaborative Filtering of Netnews》 进一步的发扬了 UserBased 协同过滤的思想。

    GroupLens 是一个采用协同过滤的网络新闻过滤系统,它设计了一种机制来帮助用户筛选他/她感兴趣的新闻。GroupLens 基于一个朴素的思想:用户在过去的兴趣会延续到将来。

    GroupLens 利用了用户对文章的评分:

    • 首先计算不同用户的评分序列之间的相关性,从而得到用户兴趣之间的相似性。

    • 然后根据相似用户的评分来预测当前用户对于新文章的评分。

  2. 给定评分矩阵:

    R=item1item2⋯itemnuser1r1,1r1,2⋯r1,nuser2r2,1r2,2⋯r2,n⋮⋮⋮⋱⋮usermrm,1rm,2⋯rm,n

    其中 ri,j 表示用户 i 对于文章 j 的评分,该评分可能是已知的,也可能是未知的(因为用户尚未阅读该文章)。当用户评分未知时,我们将其填充为 ri,j=0

    GroupLens 首先计算用户兴趣之间的相似性。给定用户 u 和 v ,定义他们共同评分的文章集合为:

    Iu,v={j∣ru,j>0andrv,j>0}

    然后计算用户 u,v 在这些共同评分文章上的均值、方差、以及协方差:

    r¯u=1|Iu,v|∑j∈Iu,vru,j,r¯v=1|Iu,v|∑j∈Iu,vrv,jσu=∑j∈Iu,v(ru,j−r¯u)2,σv=∑j∈Iu,v(rv,j−r¯v)2cov(u,v)=∑j∈Iu,v(ru,j−r¯u)(rv,j−r¯v)

    则用户 u 和 v 的兴趣相似性由二者评分集合的相关系数(correlation coefficient)定义为:

    su,v=cov(u,v)σuσv
  3. 当预测用户 u 在未阅读文章 j∗ 上的评分时,我们首先找出在 j∗ 上存在评分的用户集合 Uj∗:

    Uj∗={i∣ri,j∗>0}

    然后我们基于用户 u 和集合 U 中用户的相似性来预测:

    ru,j∗=r¯u+∑v∈Uj∗su,v×(rv,j∗−r¯v)

    评分 rv,j∗ 不仅受到用户 v 对文章 j∗ 的偏好的影响,还受到用户 v 整体打分的影响。如,有的用户倾向于都打高分,有的用户倾向于都打低分。因此这里通过 (rv,j∗−r¯v) 来剔除整体性偏好的影响,得到文章 j∗ 的偏好。