一、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=item1item2itemnuser1r1,1r1,2r1,nuser2r2,1r2,2r2,nusermrm,1rm,2rm,n

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

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

    Iu,v={jru,j>0andrv,j>0}

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

    r¯u=1|Iu,v|jIu,vru,j,r¯v=1|Iu,v|jIu,vrv,jσu=jIu,v(ru,jr¯u)2,σv=jIu,v(rv,jr¯v)2cov(u,v)=jIu,v(ru,jr¯u)(rv,jr¯v)

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

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

    Uj={iri,j>0}

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

    ru,j=r¯u+vUjsu,v×(rv,jr¯v)

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