用余弦相似度修正评分的协同过滤推荐算法

前言

今天读的这篇论文是一篇于2020年6月份发表在计算机工程与科学(Computer Engineering & Science)上的一篇论文。

论文采用评分矩阵的多种维度进行相似度比较以修正不合理评分,再用修正后的评分进行协同过滤推荐。

利用MovieLens和BookCrossing数据库进行实验,结果表明:带修正评分的协同过滤算法相比未修正前的评分具有更高的推荐精度,其推荐评分MAE明显下降,本文算法相比对照算法获得了更优的MAE,Precision和Coverage。

摘要

在用户对项目进行评分的时候,有时会出现不合理因素导致用户对项目做出不合理评分,使得推荐过程出现偏差。

为修正这种偏差,采用评分矩阵的多种维度进行相似度比较以修正不合理评分,再用修正后的评分进行协同过滤推荐。而在采用变维度评分矩阵进行相似度对比时,主要利用同一用户对相似项目评分的相近性,对比2个用户对多个相似项目评分数组在不同维度下的余弦相似度。首先将多个评分构建成等维度的几个数组,对比2个用户的各个评分数组相似度,当某个相似度与其它相似度差别较大时,认为该相似度对应的2个用户的数组中至少有1个包含不合理评分;然后将2个数组按同样的方式均分为维度更低的数组,以此类推,最终确定不合理评分;最后以所有合理评分数组对应的相似度均值作为不合理评分数组对应的相似度,从而修正不合理评分。

这便是摘要所展示的内容,向我们展示了如何进行对于不合理评分的修正。再使用协同过滤算法进行推荐。

引言

当今社会互联网相关产业飞速发展,数据爆炸性增长,推荐系统的出现大大缓解了我们对于信息的筛选难度,

根据评分计算用户相似性并依据相似性进行项目推荐是目前常用的协同过滤推荐手段。而在评分时,由于某些不合理因素可能导致少量用户对项目做出与自身意志不相符的评分,比如因一时情绪导致评分的极端化,这类评分会使相似度计算出现较大偏差,从而引起推荐结果出现明显误差。

为了更大程度地减小不合理评分带来的影响,本文采用评分矩阵的多种维度进行余弦相似度比较的方法修正不合理评分。用不同用户对高相似度的多个项目所做评分构成的评分向量计算余弦相似度,首先将评分向量按元素个数均分为多组,分别求取对应的余弦相似度,如果某组余弦相似度过小,表明该组存在不合理评分,再对带不合理评分的数组进行降维分组,如此往复,最终可确定不合理评分;再对第1次分组的不带不合理评分的各组余弦相似度求取平均值,将其作为带不合理评分数组的余弦相似度,从而计算出1个评分来取代所确定的不合理评分。

修正评分后,结合皮尔逊相似度模糊偏好相似度和Jaccard相似度计算用户相似度,以推荐评分与实际评分间的平均绝对偏差(MAE)、准 确 率 (Precision)和 覆 盖 率 (Coverage)来衡量推荐性能。利用MovieLens数据库和BookCrossing数据库进行实验。

协同过滤推荐

采用文中所使用的对于不合理的评分的修正之后,利用修正后的评分矩阵计算用户相似度,假设有u个用户对v个项目做出了评分,评分矩阵表示为Ruv,rjk表示第j个用户对第k个项目做出的评分。如果未评分,则将对应的评分记为0。

于是有:
image

本文以模糊化的混合评分相似度作为用户评分的相似度,以此来衡量不同用户的相似度。此相似度为3部分的乘积:皮尔逊相似度×平均模糊偏好相似度×Jaccard相似度。第j个用户Aj和第h
个用户Ah的皮尔逊相似度为:
image

算法

最后文中给出算法实现细节,需要查看算法的同学可以去知网搜索“用余弦相似度修正评分的协同过滤推荐算法”查看。

写在结尾

今天论文分享就到这了,明天见!

posted @   想你时风起  阅读(94)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示