协同过滤推荐算法研究∗

2019-10-08 07:12李晓瑜
计算机与数字工程 2019年9期
关键词:冷启动相似性计算方法

李晓瑜

(安康学院电子与信息工程学院 安康 725000)

1 引言

协同过滤也称为社会过滤由Terry等于1992年提出[1],它计算用户间偏好的相似性,在相似用户的基础上自动的为目标用户进行过滤和筛选,其基本思想为具有相同或相似的价值观、思想观、知识水平和兴趣偏好的用户,其对信息的需求也是相似的[2]。协同过滤推荐技术是推荐系统中最为常用并且有效的方法,主要有两种类型一种是基于用户的协同过滤,另一种是基于项目的协同过滤。基于用户的算法是将和目标用户有共同兴趣爱好的用户所喜欢的物品且目标用户没有购买的物品推荐给目标用户,基于项目的算法通过目标项目的相似项目集合预测用户对相似项目的的喜欢程度。协同过滤推荐算法的推荐步骤为建立用户评分表,寻找相似用户,推荐物品。协同过滤推荐技术是目前应用广泛的一种推荐技术,但仍然面临很多问题,其中主要有:

1)冷启动问题(Cold-start)[3]

推荐系统需要根据系统中用户的历史评价数据来预测用户未来的兴趣,当一个新的户或一个新项目进入系统时,系统中没有关于该用户或项目的评价数据,就没有办法找到其近邻,从而无法对其进行推荐,这就是协同过滤推荐系统中的冷启动问题。

2)稀疏性问题(Sparsity)

协同过滤推荐需要根据用户对某些项目的共同评分或相同行为,来进行推荐。由于网络中项目量非常大,用户间共同评分的项目可能非常少,这样就会影响到协同过滤推荐的准确度。对于新加入的项目,系统中没有用户关于该项目的评分记录,我们就无法使用协同过滤推荐技术对其进行推荐。在推荐系统中,数据的稀疏性可以定义为[4]

3)推荐精度问题(Recommendation accuracy)

由于协同过滤推荐技术存在数据稀疏性问题和冷启动问题,影响到了推荐结果的正确性和精确性。目前主要的研究方向是在解决系统数据稀疏性问题和冷启动问题的同时,如何保证系统推荐的精度。

本文主要对协同过滤推荐算法中存在的主要问题以及其主要的解决方法进行了总结,同时还对协同过滤推荐过程中计算相似度的方法进行概括和总结。

2 相似度计算方法比较

2.1 传统相似度计算方法

传统的相似度度量方法主要有修正的余弦相似性、杰卡德相似、相关相似,具体如表1所示。

2.2 融合用户活跃度和项目流行度的相似度计算方法[7]

融合用户活跃度和项目流行度的计算方法是在传统的皮尔逊(Pearson)相似性计算方法上进行的改进。皮尔逊(Pearson)相似性计算方法需要用户对项目共同评分,由于数据的稀疏性会导致结果误差较大,燕山大学的王斌在他的硕士论文中提出了一种融合用户活跃度和项目流行度的相似度计算方法,通过引入了相关性惩罚权重来降低误差。项目i和项目j的评分相似性可表示为式(1)。

表1 传统的相似性度量方法[5~6]

其中Ui和Uj分别表示对项目i和对项目j评分用户的集合。Ui∩Uj表示对项目i和对项目j共同评分用户的集合。ru,i和ru,j分别表示用户u对项目i和项目j的评分。和分别代表用户对项目i和项目j的平均评分。表示相关性惩罚权重,其计算方法如下:

Iu表示用户u评价过项目的数量,I表示所有项目的数量。项目i流行度的计算方法如下:

Ui表示评价过项目i的用户的数量,U表示所有用户的数量。项目i和项目j流行度的差值计算方式为

当项目i和项目j间的流行度差值大于某个阈值时,就可以不考虑项目流行度对项目相似性计算的影响。

2.3 融合兴趣和评分的相似度计算方法[8]

融合兴趣和评分的相似度计算方法,考虑到影响项目评分的因素除了评分还有用户的兴趣。将用户的评分信息映射为兴趣向量,先计算用户的兴趣相似性,然后计算项目的评分相似性,最后将用户兴趣相似性和评分相似性进行两次融合。任意两个用户,用户u和用户v兴趣相似性可表示为

其中当vui和vvi为集合时,其元素允许重复。得到任意用户u和用户v之间的兴趣相似性sim(u,v)interest,并应用传统计算相似性方法计算项目评分相似性sim(u,v)rate,则用户u和用户v的综合相似性sim(u,v)计算方式如下:

其中α和β是平衡参数,用来控制用户兴趣相似性和用户评分相似性在用户综合相似性中所占的权重,并且α+β=1。

该计算方法可以对传统相似性度量仅仅依靠用户评分进行相似性计算引起的误差进行修正。并在计算用户评分相似性的时候引入专家信任度,通过引入专家信任度的概念对用户未评分项目进行评分预测填充,可以降低由于数据稀疏性引起的评分相似性计算误差。

2.4 基于项目聚类的用户最近邻全局相似性[9]

基于项目聚类的用户最近邻全局相似性,先计算局部最近邻用户相似性。局部最近邻用户相似性是在k个项目聚类的基础上,引入重叠度因子,并将其融合到计算用户局部相似度的公式中。用户u和用户v在聚类Cj上的局部最近邻用户相似性可表示为

其中,|Iu∩Iv∩Cj|指用户u和用户v在聚类Cj上共同评分的项目数,设置参数γ,当用户共同评分的项目数小于γ,即数据相对稀疏时,共同评价的项目数越多,因子值越大,从而保证只有共同评分项目较多且评分相似的用户才有可能成为邻居用户。

全局最近邻用户相似性可以表示为

基于项目聚类的用户最近邻全局相似性协同过滤算法,根据用户共同评分的项目数量,引入重叠度因子,并将其融合到计算用户局部相似度的公式中,来进一步加强相似度的准确性。同时汕头大学的李巧雨在她的硕士论文里还提出了混合的相关相似性度量方法和混合的余弦相似性度量方法,来解决传统相似性度量方法中存在的问题[10]。

3 冷启动问题解决方法

李欢提出的基于项目相似度学习的协同过滤推荐算法(ISL-CF),通过实验结果验证,该算法可以很好地缓解冷启动问题[11]。刘群、陈阳等提出的融合信任度和相似度的推荐算法,利用用户间的信任信息,将源用户的信任邻居对项目的评分作为该用户的个人喜好,同时根据基于物质扩散的协同过滤算法找出源用户的相似邻居,利用信任邻居和相似邻居为该用户产生推荐,实验结果表明该算法能有效的解决冷启动问题[12]。乔雨、李玲娟等提出的融合用户相似度与评分信息的协同过滤算法,算法先找出用户基本信息之间的相似度,再根据最速下降法对用户评分矩阵进行更新,从而产生对目标用户的推荐,实验表明,该算法在保证推荐准确率的同时,解决了冷启动问题[13]。刘坤提出了两种新的推荐模型:基于偏好的推荐模型NPBM和基于人口统计学的推荐模型NDBM分别用于解决非纯冷启动问题和纯冷启动问题,NPBM算法结合结合机器学习方法,根据用户的产品评价信息准确地找到冷用户的最近邻,然后将这些最近邻用户喜欢的产品推荐给冷用户。NDBM模型利用用户的人口统计学特征信息准确地找到冷用户的相似用户,然后将相似用户喜欢的产品推荐给冷用户。实验结果显示NPBM和NDBM模型面对冷启动问题仍然具有较高的推荐准确率,它们能有效地缓解冷启动问题带来的影响[14]。

4 稀疏性问题解决方法

安徽大学的李欢提出了一种基于项目相似度学习的协同过滤推荐算法,实验证明该算法即可以很好地解决数据稀疏性问题也可以缓解冷启动问题[11]。山东大学的黄山山提出的结合Linked Data的协同过滤推荐算法,利用Linked Data中关于项目的显式结构化属性信息定义项目之间的相似度,提出了两种项目相似度敏感的矩阵分解推荐算法,实验证明该算法可以很好地解决数据稀疏性问题[4]。李聪、梁昌勇、马丽等提出基于领域最近邻的协同过滤推荐算法,以用户评分项并集作为用户相似性计算基础,将并集中的非目标用户区分为无推荐能力和有推荐能力两种类型,实验结果表明该算法可以很好地解决数据稀疏性问题[15]。张俊、刘满等提出的融合兴趣和评分的协同过滤推荐算法,将用户的评分项目信息映射为兴趣向量,计算用户的兴趣相似性,并使用用户兴趣相似性和评分相似性进行两次融合,从而对传统相似性度量仅仅依靠用户评分进行相似性计算引起的误差进行修正。在计算相似性过程中,通过引入专家信任度的概念对用户未评分项目进行评分预测填充,从而降低由于数据稀疏性引起的评分相似性计算误差[8]。假设rui表示用户u对项目i的评分,定义函数如下:

如果用户u评论过项目的数量大于某个阈值时,则将用户u加入到专家集合E中,阈值Ø的计算方式如下:

其中m为选取用户的数量,n为选取项目的数量,rui是用户u对项目i的评分。则任一专家e对于项目i的信任度计算如下:

其中,C(e)和C(n)分别表示专家e和专家n评论过项目的数量。rui是用户u对项目i的评分,rni是用户n对项目i的评分。E表示专家集合,专家对未评分项目的预测评分计算如下:

其中tni代表专家n对项目i的信任度,rni是用户n对项目i的评分。目标用户u对未评分项目i的预测评分为:情况[13]。

输入:用户-项目评分矩阵、项目信息、目标用户u、目标项目i

输出:目标用户u对未评分目标项目i的预测评分。

1)根据用户-项目评分矩阵和项目信息,计算用户的兴趣向量;

2)由使用式(6)计算用户之间的兴趣相似性,得到用户兴趣相似性矩阵;

3)在原始用户-项目评分矩阵上找出专家集合E;

4)应用专家集合E,计算任意专家n对项目i的信任度tni,然后应用式(15)计算专家对于未评分项目i的预测评分;

5)根据Pei的结果对用户-项目评分矩阵进行填充;

6)依据填充后用户-项目评分矩阵,利用相关相似性度量方法计算用户之间的评分相似性形成用户评分相似性矩阵;

7)根据融合兴趣和评分的相似度计算方法,计算用户的相似性,得到用户综合相似性矩阵;

8)根据用户综合相似性矩阵,获得目标用户u的邻居集Nu;

9)根据式(16),计算目标用户u对目标项目i的预测评分Pui。

5 推荐精度问题解决方法

贾冬艳、张付志等提出的基于双重邻居选取策略的协同过滤推荐算法,动态选取目标用户的兴趣相似用户集,利用双重邻居选择策略。实验结果表明该算法不仅提高了系统推荐精度,而且具有较强的抗攻击能力[16]。孙光福、吴乐等提出的基于时序行为的协同过滤推荐算法,根据用户间的时序行为进行建模,找到对目标用户影响最大的邻居集合,并将最近邻集合融合到基于概率矩阵分解的协同过滤推荐算法中,实验证明该算法不仅能够有效地预测用户实际评分,还可以有效地提高推荐精度[17]。李巧雨提出的优化的基于用户聚类的协同过滤算法OUKCF,通过在算法中加入聚类,应用混合相似性计算方法计算用户相似性,实验结果证明该算法不仅可以解决数据稀疏性问题和可扩展性问题,同时可以保证推荐的精度。黄山山提出的基于用户组的二部图推荐算法,将聚类技术应用到用户聚类中,利用奇异值分解(SVD)将打分信息进行降维获得用户的特征空间,实验结果表明该算法在提高可扩展性的同时保证了推荐的准确度[10]。苏芳芳提出的相似度最优加权协同过滤推荐算法,利用PSO优化算法进行模型求解的过程中,使用相关加权的结果作为粒子的初值,极大地加快了收敛速度,实验结果表明该算法可以很好地改善推荐效果[18]。

6 结语

本文主要介绍了协同过滤算法的推荐流程,存在的主要问题,推荐过程中常用的相似性度量方法,归纳了国内外研究者已经提出的用来解决数据稀疏性,冷启动和推荐精度等问题的解决方法。与其他学科和领域的融合是协同过滤未来发展的趋势。随着互联网上信息的急剧增长,协同过滤推荐系统常需要处理海量的数据,如何存储以及如何依据大量的数据计算出推荐结果,是协同过滤推荐面临的一个挑战,可以将协同过滤技术与云计算技术相结合,这样可以使协同过滤推荐系统具有更高的容错能力,实时推荐能力和更强的并行计算能力。为向用户提供个性化的商品或服务,协同过滤系统需了解用户的个人信息,这就涉及到用户的隐私保护问题。对协同过滤推荐的隐私保护问题的研究还比较少,还需进一步深化。

猜你喜欢
冷启动相似性计算方法
轻型汽油车实际行驶排放试验中冷启动排放的评估
槽道侧推水动力计算方法研究
基于示踪气体法的车内新风量计算方法研究
Evaluation of Arctic Sea Ice Drift and its Relationship with Near-surface Wind and Ocean Current in Nine CMIP6 Models from China
基于PEMS试验的重型柴油车冷启动 排放特征研究
基于学习兴趣的冷启动推荐模型
极限的计算方法研究
浅析当代中西方绘画的相似性
12个毫无违和感的奇妙动物组合
基于隐喻相似性研究[血]的惯用句