推荐系统笔记一、基于近邻的推荐系统(基础篇)

来源:互联网 发布:僵尸先网络ddos 编辑:程序博客网 时间:2024/06/11 07:55

参考:http://blog.csdn.net/wangjian1204/article/details/50451249

Recommender Systems Handbook 第一版(2008年)是推荐系统方向入门的经典。7年后,第二版(2015年)终于诞生了,加入了这几年推荐系统领域的最新技术,又是state-of-the-art了吧,开始读书加笔记整理。。。

一、概述:

    协同过滤方法大致可以分成两类:基于近邻(neighborhood-based)的算法和基于模型(model-based)的算法。基于近邻的算法直接使用已知评分进行预测;而基于模型的算法从已知评分中学习预测模型。基于近邻的算法又可以分成user-based 和item-based两类。本文主要介绍user-based 和item-based相关技术。

二、符号定义和度量标准:

  • U:用户集合;I:item集合;
  • R:评分集合,rui表示用户uU对item iI的评分;
  • S: 评分取值集合,例如S = [1,2,3,4,5];
  • Ui:已经给item i打分的用户集合;Iu:已经被用户u打分的item集合;
  • IuvIuIv,同时被用户u和用户v打过分的item集合;Uij:同时对item i和j打过分的用户集合。
  • wuv:用户u和v之间的相似度;wij:item i和j之间的相似度;
  • N(u):用户u的k近邻;Ni(u):对item i打过分的用户中与用户u最相似的k个近邻;
  • N(i):item i的k近邻;Nu(i):用户u打过分的item中与item i最相似的k个近邻。

    评价推荐系统时最重要的两个问题是评分准确率Top-N推荐问题。评分准确率问题常用的度量标准有Root Mean Squared Error (RMSE),Precision,Recall等。Top-N推荐常用的度量标准有NDCG,Average Reciprocal Hit-Rank(ARHR)等。

假设推荐系统为用户u返回top-N列表,pu1,...,puh是hits位置,即用户u感兴趣的item在推荐列表中的位置,1puiN。则ARHR等于 

ARHR=1|U|uUi=1h1pui

其他几种度量方法都很常见,在此不再赘述。

三、User-Based推荐方法:

    User-Based推荐方法根据用户u近邻的评分预测用户u对item i的评分: 

r̂ ui=vNi(u)wuvrvivNi(u)|wuv|

wuv是用户u和用户v的相似度,可能为负数。这是一种回归(Regression)的方法。

    如果要直接得到离散的结果(例如评分是good、bad…),则变成一个分类问题,可以用下面的式子预测评分: 

Vir=vNi(u)δ(rvi=r)wuvr̂ ui=argmaxr{Vir}

δ(rvi=r)是指示函数,如果rvi=r,则结果为1,否则结果为0。argmaxr{Vir}返回使Vir取值最大的r值。这个分类方法可以看做一个投票的过程,由用户u的k个近邻进行投票,每一票的权重是wuv,最后选择投票(Vote)最多的结果作为预测评分。

四、Item-Based推荐方法:

    Item-Based推荐方法根据用户u对item i近邻的评分来预测用户u对item i的评分: 

r̂ ui=jNu(i)wijrujjNu(i)|wij|

同样的,分类问题的预测评分式子如下: 

Vir=jNu(i)δ(ruj=r)wijr̂ ui=argmaxr{Vir}

五、User-Based方法和Item-Based方法比较:

  • 用户和item的规模:当用户数量远大于item数量时,最好选择Item-Based方法,从而可以得到更多可靠的近邻且节省存储空间。反之,选择User-Based方法。
  • 稳定性:如果item列表比较稳定,而用户变化较多,最好选择Item-Based方法,从而可以减少item间的相似度计算频率。反之,选择User-Based方法。
  • 可解释性:item之间的相似性比较直观,所以Item-Based方法有较好的解释性。User-Based方法中用户对其他相似用户不了解,所以解释性相对差一点。
  • 新颖性:User-Based方法能提供更多新颖的item推荐。Item-Based方法更倾向于给用户推荐与item i相似度较大的item。

六、评分标准化:

    每个用户有其特定的打分习惯,如平均打分比其他用户要高/低;item之间的打分的平均值也不相同。所以需要对评分进行标准化处理,统一用户的评分标准。标准化方法主要有两种:零均值化和Z-Score。

零均值化:

User-Based方法标准化:用户u的评分都减去它的均值r¯u。 

r̂ ui=r¯u+vNi(u)wuv(rvir¯v)vNi(u)|wuv|

Item-Based方法标准化:Item i的评分都减去它的均值r¯i。 

r̂ ui=r¯i+jNu(i)wij(rujr¯j)jNu(i)|wij|

Z-Score:

    零均值化方法移除了评分均值上的偏差,Z-Score在移除均值偏差的同时考虑到了评分的方差。

User-Based方法标准化:用户u的评分都减去它的均值r¯u,然后再除以标准差δu。 

r̂ ui=r¯u+δuvNi(u)wuv(rvir¯v)/δvvNi(u)|wuv|

Item-Based方法标准化:Item i的评分都减去它的均值r¯i,然后再除以标准差δi。 

r̂ ui=r¯i+δijNu(i)wij(rujr¯j)/δjjNu(i)|wij|

七、相似权值计算:

    前面的评分预测式子用到了相似权重wuvwij,下面介绍几种权重的计算方法。

Cosine相似度:

cos(u,v)=iIuvruirvijIur2ujkIvr2vk

IuIv的相似度。在前面符号定义小节已经提到过Iuv表示同时被用户u和用户v打过分的item集合。

考虑均值和方差: 

PearsonCorrelation(u,v)=iIuv(ruir¯u)(rvir¯v)jIuv(rujr¯u)2kIuv(rvkr¯v)2

PearsonCorrelation(i,j)=uUij(ruir¯i)(rujr¯j)vUij(rvir¯i)2kUij(rkjr¯j)2

        Pearson Correlation是在集合IuvUij上计算的,Uij表示同时对item i和j评分的用户集合。Pearson Correlation的分子分母都要除以标准差项,所以可以分子分母同时约去。

权值改进:

        当使用Pearson Correlation方法时,如果用户u和v只共同评论过一个item并且恰好在这个item上的评分相同,那么根据公式他们之间的相似度是1,这显然不大合理。可以用以下几种方法对权值进行平滑: 

wuv=min{|Iuv|,γ}γwuv

wuv=|Iuv||Iuv|+βwuv

γβ的值可以通过交叉验证选择(例如γ=50β=100)。

八、近邻选择:

近邻的选择主要包括近邻个数k和近邻选取的过程,其中近邻个数k可以通过交叉验证来选择(通常k的取值在20到50之间)。由于现实推荐系统用户数和item数很大,保存所有的用户或item 之间的(非零)相似度需要大量的存储空间,所以需要提前过滤,把不重要的相似度信息都筛选掉。主要有以下几种筛选方法:

  • Top-N过滤:只保留用户或item的N个近邻的相似度权值;
  • 阈值过滤:保留大于某个阈值的相似度权值;
  • 负值过滤:只保留大于零的相似度权值。

九、近邻方法的优缺点:

  • 可解释性较好,尤其是Item-Based方法;
  • 实时性较好,通过预先计算好的相似矩阵找出k近邻后就可以对item评分进行预测;
  • 会占用较多存储空间,特别是当用户数和item数都很多的时候;
  • 冷启动问题,新的用户和item找k近邻需要借助其他方法;
  • 局限性较大,例如用户u和v根据Iuv计算相似度,所以只有当他们有共同的评分项时才可能成为近邻;
  • 稀疏问题,当评分矩阵很稀疏的时候,两个用户共同评分的项会很少,使得预测结果偏差较大。

十、参考资料

Recommender Systems Handbook


0 0
原创粉丝点击