1、推荐系统算法速读 根据推荐算法的不同,推荐系统可以分为以下几类:协同过滤(collaborative filtering)系统;基于内容(content-based)的推荐系统;基于网络结构(network-based)的推荐系统;混合(hybrid)推荐系统;精选协同过滤系统核心思想:1.利用用户的历史信息计算用户之间的相似性;2.利用与目标用户相似性较高的邻居对其他产品的评价来预测目标用户对特定产品的喜好程度。系统根据这一喜好程度来对目标用户进行推荐分类:基于记忆(memory-based)的算法 基于模型(model-based)的算法 精选基于记忆的算法 计算用户评分:设C=为用户集合
2、,S=为所有的产品集合。设 为用户c对产品s的打分(在协同过滤算法中,用户c对产品s的打分通过其他用户对s的打分计算而得到。)设 为与用户c相似度比高的用户集 第一种:直接计算邻居打分的平均值 第二种:加权平均(用户之间越相似,则用于预测的权重越大),.,2,1Nccc,.,21Msssscr,C精选基于记忆的算法 第三种:考虑用户评判的尺度不同 k=1/,sim(i,j)表示用户之间的相似度。用户c的平均打分 定义为 表示该用户打过的所有分的平均值。Ccccsim|),(|cr.0|,|)|/1(,sccScsscccrSsSrsr其中精选基于记忆的算法用户之间相似度的计算:用户x与y之间的
3、Pearson相关性:用户x和y共同打过分的产品集合为:夹角余弦(用户x与y都用m维向量表示)SySxSxy精选优缺点优点 1.具有推荐新信息的能力,可以发现用户潜在但自己尚未察觉的兴趣爱好。2.能够推荐艺术品、音乐、电影等难以进行内容分析的产品。问题 1.冷启动问题(新产品、新用户)2.打分稀疏性问题 3.算法可扩展性 精选基于内容的推荐系统 核心思想:分别对用户和产品建立配置文件,通过分析已经购买(或浏览)过的内容,建立或更新用户的配置文件。系统可以比较用户与产品配置文件的相似度,并直接向用户推荐与其配置文件最相似的产品。基于内容的推荐算法的根本在于信息获取和信息过滤。(用户的配置文件构建
4、与更新是最为核心的部分之一)精选基于内容的算法 信息获取(TF-IDF):与这个关键词在文件中出现数的逆 定义为 定义为中的词频在中出现的次数,那么在文件为关键词设个文件中出现,在个文本文件,关键词设有ijjijiijiiTFdkdkfnkNijTFiIDF精选设Content(s)为产品s的配置文件,UserProfile(c)为用户c的配置文件,UserProfile(c)可以用向量 表示,其中每个分量 表示关键词 对用户c的重要性在基于内容的系统中,被定义为:),.,(21ckccwwwciwikscr,精选优缺点 优点:1.可以处理冷启动问题;2.不受打分稀疏性问题的约束;3.能推荐新
5、出现的产品和非流行的产品;问题:1.受到信息获取技术的约束;2.难以从根本上解决冷启动问题。精选基于网络结构的推荐系统 核心思想:不考虑用户和产品的内容特性,而仅仅把他们看作抽象的节点,所有算法利用的信息都隐藏在用户和产品的选择关系之中。考虑一个由m个用户和n个产品构成的推荐系统,其中如果用户i选择过产品j,就在i和j之间连接一条边 、.由此,这个系统可以用一个具有m+n个节点的二部分图表示m;1,2,.,1(iaji0.),.,2,1jianj否则精选基于二部分图资源分配的推荐算法 对于任意目标用户i,推荐算法的目的是把所有i没有选择过的产品按照i喜欢的程度进行排序,并且把排名靠前的那些产品
6、推荐给i。对于有m个用户和n个产品的一般的推荐系统,如果用 表示产品j愿意分配给i的资源配额,可得到其一般表达式:其中kj表示产品j的度(被多少用户选择过),kl表示用户l的度(该用户选择过多少商品)ijw精选 最终的资源分配矢量 为一 个n维的0/1矢量,给定的目标用户选择过的产品上的初始资源设为1,其他设为0;W为n*n阶的矩阵。按照中对应元素的大小进行排序,值越大说明用户越喜欢该商品。Wffff精选推荐系统的评价指标 准确度(被绝大多数推荐系统采用)推荐列表的流行性和多样性 覆盖率 新鲜性和意外性 用户的满意度精选准确度评价指标 预测准确度 分类准确度 排序准确度 预测打分关联 距离标准
7、化指标 半衰期效用指标精选预测准确度 预测准确度的一个经典度量方法就是度量系统的预测打分和用户的实际打分的平均绝对误差MAE其中c为系统中用户i打分产品的个数,为用户实际打分,为系统的预测打分caiaiarvcMAE1|1iariav精选预测准确度 与平均绝对误差相关的其他指标有平均平方误差(MSE)和标准平均绝对误差(NMAE)。其中 为系统中用户-产品对(i,a)的个数 标准平均绝对误差定义为 其中 和 分别为用户打分区间的最小值和最大值),(2|1aiiaiatrvnMSEtn)/(minmaxrrMAENMAEminrmaxr精选分类准确度 分类准确度定义为推荐算法对一个产品用户是否喜
8、欢判定正确的比例 广泛使用的分类准确度指标:准确率,召回率以及相关的指标 其中 ,和 分别为被推荐产品中用户喜欢和不喜欢的产品数 isrssNNNrsNisN精选分类准确度 相应的,和 分别为未被推荐产品中用户喜欢和不喜欢的产品数。而 为未被推荐的产品数。显然,准确率定义为系统的推荐列表中用户喜欢的产品和所有被推荐产品的比率:召回率定义为推荐列表中用户喜欢的产品与系统中用户喜欢的所有产品的比率:mNinNinmnNNNnsNNNNsNrsPmrsrrrsNNNNNR,精选分类准确度 另一个度量系统分类准确度的重要指标就是ROC曲线 1)确定用户对每个产品感兴趣与否。2)根据预测结果为用户提供一
9、个推荐列表,从图的原点开始,如果预测的产品符合用户喜好,画一个竖线;如果预测的产品不符合实际,画一个横线;如果预测产品还没有被打分,那么抛弃这个产品,并不影响曲线。一个最好的预测系统产生一个竖的ROC线,随机预测产生从原点到右上角的直线。精选排序准确度 排序准确度用于度量推荐算法产生的列表符合用户对产品排序的程度。可以用平均排序分度量推荐系统的排序准确度,定义如下:其中N为训练集中用户为选择的产品个数,Li预测集中待预测产品i在推荐列表中的位置NLrii精选预测打分关联 预测打分关联不考虑预测打分与用户打分各单项的偏差,而是考虑两者之间整体的相关程度,推荐系统中,3个常用的相关性描述有Pear
10、son关联,Speaman关联和Kendalls Tau。Tau越大表示系统预测结果越好 C为系统预测正确的喜好偏序数,D为预测错误的喜好偏序数,TR为用户打分相同的产品数,TP为具有相同预测值的产品数)(TPDCTRDCDCTau精选距离标准化指标 距离标准化指标,简称为NDPM,在推荐系统中,NDPM的核心思想为:对比系统预测打分排名与用户实际排名的偏好关系,对基于偏好关系的度量进行标准化,具体定义如下:其中 为系统排序与用户排序相冲突的个数iucccNDPM22c精选半衰期效用指标 在网络中用户愿意浏览推荐列表的函数呈指数衰减。用户i的期望用 定义如下:其中 为用户i对推荐列表中排名第j
11、的产品打分,d为默认打分,h为半衰期iRjhjjiidrR)1)(1(,2)0,max(jir,精选准确度之外的评价指标1.推荐列表的流行性和多样性 一个产品的流行性可以用它的平均度来度量,产品度越大,说明越流行。推荐列表的多样性可以用平均海明距离来度量,用户i和j推荐列表的海明距离被定义如下:其中L为推荐列表的长度,为系统推荐给用户i和j的两个推荐列表中相同产品的个数LQHijij/1 ijQ精选2.覆盖率 覆盖率定义为可以预测打分的产品占所有产品的比例。3.新鲜性和意外性 在这里新鲜性和意外性具有本质的不同。例如,考虑一个电影推荐系统,这个系统只考虑用户喜欢的导演信息。如果系统给用户推荐了他喜欢的导演执导的一个自己并不熟悉的电影,这个电影就是新鲜的,但是并不是意外的。如果系统推荐了一个新导演的电影,那么系统提供了一个意外的推荐。4.用户满意度 用户对推荐系统的满意度不仅仅取决于系统的准确度,而是更多地取决于系统在多大程度上可以帮助用户完成任务。精选