推荐系统学习笔记(二)——协同过滤算法

一、协同过滤算法基本介绍

协同过滤算法CF(Collaborative Filtering),就是协同大家的反馈、评价和意见一起对海量信息进行过滤,从中筛选出目标可能感兴趣的信息的推荐过程,主要有基于用户协同过滤(UserCF)和基于物品的协同过滤(ItemCF)两种算法。

二、基于用户的协同过滤算法

推荐系统学习笔记(二)——协同过滤算法_第1张图片用户对物品偏好的有向图转换成矩阵即共现矩阵,用户为行坐标,物品为列坐标。要想预测用户对某物品的偏好,用户协同需要找到与用户X最相似的n个用户,综合相似用户对电视机的评价,得出用户X对“电视机”评价的预测。

用户相似度计算

上面所说的找到用户最相似的n个用户,需要计算用户相似度,主要有通过向量来计算,主要有三种:杰卡德相似系数余弦相似度皮尔逊相关系数

1.杰卡德相似系数(Jaccard)

这个是衡量两个集合的相似度一种指标。 两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示,jaccard值越大说明相似度越高。
推荐系统学习笔记(二)——协同过滤算法_第2张图片

2.余弦相似度

余弦相似度是衡量两个用户向量之间夹角大小,夹角越小余弦相似度越大,也就是两用户越相似,主要公式如下:推荐系统学习笔记(二)——协同过滤算法_第3张图片

3.皮尔逊相关系数

考虑到用户对物品评分有时为空一般就赋值为0,这是用余弦相似度会影响相似结果,因此就提出了皮尔逊系数,通过使用用户评分对各独立评分进行修正,减少用户评分的偏置影响,公式如下:
推荐系统学习笔记(二)——协同过滤算法_第4张图片
其中Ri,p代表用户i对物品p的评分,Ri一拔代表用户i对所有物品的平均评分,P代表所有物品的集合。

之后就可以获得Top n相似用户后,就可以生成推荐,具体推荐过程是,根据相似用户已有的评价对目标用户的偏好预测,这里常用的方式是利用用户相似度和相似用户的评分加权平均获得目标用户的评价预测,公式如下:
推荐系统学习笔记(二)——协同过滤算法_第5张图片
其中,权重Wu,s是用户u和用户s的相似度,Rs,p是用户s对物品p的评分。
在获得用户u对不同物品评价预测后,最终的推荐列表根据预测得分进行排序得到,到这里,协同过滤推荐过程就完成了。

三、基于物品的协同过滤算法

ItemCF是基于物品相似度进行推荐的系统过滤算法,通过计算共现矩阵中物品列向量的相似度得到物品之间相似矩阵,在找到用户历史正反馈物品相似物品进行进一步推荐,具体步骤如下:

( 1)基于历史数据,构建以用户(假设用户总数为m)为行坐标,物品(物品总数为n)为列坐标的m×n维的共现矩阵。
(2)计算共现矩阵两两列向量间的相似性(相似度的计算方式与用户相似度的计算方式相同),构建nxn维的物品相似度矩阵。
( 3)获得用户历史行为数据中的正反馈物品列表。
( 4)利用物品相似度矩阵,针对目标用户历史行为中的正反馈物品,找出相似的Top k个物品,组成相似物品集合。
(5)对相似物品集合中的物品,利用相似度分值进行排序,生成最终的推荐列表。
在第5步中,如果一个物品与多个用户行为历史中的正反馈物品相似,那么该物品最终的相似度应该是多个相似度的累加,如图所示。
推荐系统学习笔记(二)——协同过滤算法_第6张图片
其中,H是目标用户的正反馈物品集合,Wp,n是物品p与物品h的物品相似度,Ru,n是用户u对物品h的已有评分。

四、协同过滤算法的优缺点及下一步发展

在互联网应用的场景下,用户数远大于物品数,而UserCF需要维护用户相似矩阵快速找到Top n相似用户,因此相似矩阵的存储开销大,以n^2增长,其次,用户的历史数据向量往往非常稀疏对于只有几次购买或者点击行为的用户来说,找到相似用户的准确率较低。
协同过滤是一个非常直观、可解释性很强的模型,但它并不具备较强的泛化能力,换句话说,协同过滤无法将两个物品相似这一信息推广到其他物品的相似性计算上。这就导致了一个比较严重的问题——热门的物品具有很强的头部效应,容易跟大量物品产生相似性;而尾部的物品由于特征向量稀疏,很少与其他物品产生相似性,导致很少被推荐。

为解决上述问题,同时增加模型的泛化能力,矩阵分解技术被提出.该方法在协同过滤共现矩阵的基础上,使用更稠密的隐向量表示用户和物品,挖掘用户和物品的隐含兴趣和隐含特征,在一定程度上弥补了协同过滤模型处理稀疏矩阵能力不足的问题。

矩阵分解技术将在下一节中介绍。

你可能感兴趣的:(推荐系统,算法,机器学习,人工智能,推荐算法)