基于权重调节和用户偏好的协同过滤算法

2020-05-29 06:32:48董立岩修冠宇马佳奇
吉林大学学报(理学版) 2020年3期
关键词:物品权重协同

董立岩, 修冠宇, 马佳奇

(1.吉林大学 计算机科学与技术学院, 长春 130012; 2.北京邮电大学 国际学院, 北京 100876)

以系统过滤[1]为代表的推荐算法, 因具有较好的精确度而被广泛应用.协同过滤算法不仅具有较好的推荐精度, 还具备推荐解释性.但协同过滤算法也存在一些问题, 如数据稀疏性[2-4]影响了推荐结果的准确度[5-6].在传统协同过滤算法中, 相似性度量的选择影响了相似的用户集或物品集寻找的正确与否, 并决定最终的推荐结果.数据的稀疏性导致在计算用户、物品的相似性时推荐准确度较低.传统相似度计算方法完全依赖于用户评分数据等显性反馈行为, 而未考虑现实推荐场景中存在的隐性信息影响.基于此, 本文提出一种新的协同过滤算法, 将权重调节方法与用户偏好等隐性信息相融合, 以提升相似度计算的准确性.实验结果表明, 融合权重调节和用户偏好的协同过滤算法(weight adjustment and user preference collaborative filtering, WA&UP-CF)与传统协同过滤算法相比, 具有更好的推荐效果.

1 预备知识

1.1 相似度计算方法

1.1.1 欧氏距离 欧氏距离(ED)用于计算空间中两点之间的距离, 距离越远说明两点的差异越大, 用于用户间相似度计算, 可表示为

(1)

其中Iuv表示用户u和用户v共同评分项目集合.

1.1.2 余弦相似度 余弦(Cos)相似度[7]关注两个向量方向间的差异, 夹角越小, 余弦值越接近1, 方向越贴近, 表明越相似, 可表示为

(2)

其中:Iu表示用户u评分项目集合;Iv表示用户v评分项目集合.

1.1.3 Pearson相关系数 相比于余弦相似度, Pearson相关系数(PCC)的计算消除了均值和方差间的影响, 减少了样本个体间数值差异对整体相似度的影响, 其计算公式为

(3)

其中ru和rv分别表示用户u和用户v评价过物品的平均分.

1.2 改进相似度计算

首先, 以用户观看电影评分为例, 如果两个用户观看过《泰坦尼克号》这部电影, 并不能说明他们在兴趣上十分相似, 因为这部电影非常经典, 可能每个用户都了解并看过这部电影, 即热门物品的交互记录并不能代表用户的兴趣爱好, 在冷门物品上的交互行为更能体现其兴趣爱好.因此, 在用户相似度计算中应去除该因素的影响, 本文采用反用户频率[8], 公式如下:

(4)

其中:αi表示每个物品i的权重;N(u)表示系统中用户集合;N(i)表示评论过物品i的用户集合.当N(u)一定时,N(i)值越大,αi值越小, 反之αi值越大, 越能达到对热门物品的降权作用, 同时提高冷门物品的权重.

其次, 当用户项目评分矩阵较稀疏时, 对用户相似度的计算仅通过一小部分评分实现, 如果这一小部分共同评分完全一致, 则会得出两个用户是高度相似的[9], 但这两个用户实际上兴趣并不相同, 这是由于得到的用户评分信息过少所致.Ma等[10]提出了具体的权重调节方法设置, 本文通过阈值ω在消除流行物品影响时为两个用户设置一个共同评分行为的最小权重Wuv, 可表示为

(5)

其中:Nuv表示用户u和用户v的共同评分项目个数;ω是共同评分个数阈值.如果共同评分数小于ω, 则Wuv的取值范围在[0,1]内, 以降低用户间的相似度权重; 当大于ω时,Wuv=1, 对用户相似度无影响.改进后的用户相似度计算公式为

(6)

1.3 评分预测及推荐

在评分预测中主要采用基于K近邻的协同过滤[11-12], 通过相似度矩阵计算用户最近邻居集合的TopK, 并在目标用户未交互过的项目中选取适合目标用户的项目进行推荐.预测用户对项目的评分值为

(7)

其中:ru和rv分别表示用户u和用户v历史评分的均值; sim(u,v)表示用户的相似度权重.

2 融合权重调节和用户偏好的协同过滤

2.1 用户偏好相似度计算

在推荐系统中用户的兴趣爱好迥然相异, 对同一物品的选择, 可能是其自身所具有的特征符合了用户的兴趣点.例如在电影推荐中, 一部电影是爱情喜剧类型, 另一部电影是恐怖悬疑类型, 根据用户对不同电影类型的偏好选择电影.对于像电影类型这样的特征可将其定义为偏好词, 通过偏好词确定用户的兴趣度[13], 既可解决当评分矩阵稀疏时, 用户间无共同评分, 可通过用户偏好找到与用户兴趣相近的群体, 也可以在原始的评分信息中加入用户偏好元素.假设系统内共有m个用户和n个项目, 则用户项目评分矩阵R可表示为

假设每个项目都有t个偏好词, 偏好词的表示可为电影类型、书籍类型等形式, 则项目偏好词矩阵C可表示为

其中: 1表示项目具有该偏好词; 0表示项目不具有该偏好词.根据矩阵R和矩阵C计算用户对偏好词的兴趣程度, 计算公式为

(8)

其中:pui表示用户u对偏好词i的打分;Ii表示用户u评论过的项目中包含偏好词i的项目集合;ruj表示在Ii集合中用户u对项目的评分.不同项目拥有不同的偏好词, 可反过来得到每个偏好词拥有的项目集合, 利用式(8)进行计算, 即可得到用户对偏好词的评分, 分数越高, 表示用户对该类偏好词越感兴趣, 因此, 根据矩阵R和矩阵C计算得到用户偏好词矩阵P为

综上可见, 用户项目评分矩阵由m行n列变为用户偏好词矩阵的m行t列,t为项目偏好词个数, 要远小于项目的个数n, 用户兴趣偏好的评分能缓解用户项目评分矩阵的稀疏性, 同时根据用户偏好仍采用Pearson公式计算用户间的相似度.这里基于反用户频率, 热门或冷门物品对用户兴趣的偏好计算也有一定影响.对于热门物品具有的偏好词因子, 多数人观看不代表用户都对这种特征的物品感兴趣, 同时冷门物品具有的项目偏好词更能体现用户对这种特征物品的兴趣偏好.因此, 定义反项目频率调节用户偏好相似度计算时偏好词的权重, 计算公式为

(9)

其中:θi表示每个项目偏好词i的权重;N表示推荐系统中用户总数;Ni表示评论过偏好词i的用户个数.将其与用户偏好词评分矩阵相结合, 可得用户偏好相似度计算公式为

(10)

2.2 实现过程

融合权重调节和用户偏好的相似度计算方法流程如图1所示。

图1 融合权重调节和用户偏好的相似度计算方法流程Fig.1 Flow chart of similarity calculation method for fusion weight adjustment and user preference

步骤1) 分别根据用户历史评分数据与项目基本数据, 获取用户项目评分矩阵R和项目偏好词矩阵C, 根据矩阵R和C生成用户偏好矩阵P, 用户偏好词为项目特征(爱情、喜剧、动作、悬疑等电影类型).

步骤2) 用步骤1)得到评分矩阵R, 用权重调节方法调节流行物品和用户共同评分物品数量的权重, 计算目标用户u和每个用户v(v∈用户集合U)的相似性SimWA(u,v).

步骤3) 用步骤1)生成的用户偏好矩阵P及式(6)计算目标用户u和v的项目特征偏好相似度SimUP(u,v).

步骤4) 根据步骤2)和步骤3)计算得到的相似度, 使用参数a将两者相结合

Sim(u,v)=a×SimWA(u,v)+(1-a)×SimUP(u,v),

(11)

其中参数a最优值的确定通过多次实验方法获得, 区间为[0,1].

步骤5) 根据步骤4)计算用户相似性的方法得到用户-用户相似性矩阵, 按照相似度降序, 获取目标用户u的最近邻居集合U={u1,u2,…,uk},u∉U, 用集合U预测用户对新项目的评分.

步骤6) 重复步骤5), 获得用户u未评分项目的预测评分集Ru={ru1,ru2,…,run}, 在Ru中选取K个预测值较高的项目为用户推荐.

3 实 验

3.1 数据集

MovieLens数据集[14]是美国GroupLens实验室从MovieLens(movielens.umn.edu)网站采集的用户对电影评分的数据.用户对电影的评分区间为[0,5], 分值越大表示用户越喜欢这部电影.本文采用943名用户对1 682部电影的100 000个数据评分.共有18个项目偏好词(电影类型), 有动作、冒险、喜剧等.用1表示电影中具有该偏好词, 0表示电影中不具有该偏好词.

3.2 评价指标

本文选择平均绝对偏差MAE作为实验的测评标准[15], 表示为

(12)

其中: |T|表示测试集中项目评分的总数量; {ru1,ru2,…,run}表示测试集的真实评分; {pu1,pu2,…,pun}表示改进后算法的预测评分.MAE的值越小, 表示系统预测的误差越小, 推荐质量越好.

3.3 结果分析

在基于用户的协同过滤算法中, 计算用户相似度共同评分比例和流行物品的影响, 确定用户间权重调节后的相似度[16], 并与用户偏好的相似度通过参数a相结合, 选取合适的参数a值.参数a取值对MAE的影响如图2所示.由图2可见, 当最近邻个数固定为20个, 参数a=0.8时, MAE值最低, 为0.812 36, 即此时取得了较好的推荐效果, 因此实验中参数a的值设定为0.8.

为分析融合权重调节和用户偏好后相似度改进对推荐效果的影响, 在确定的参数a下进行实验, 与传统的协同过滤算法进行比较, 通过比较MAE值验证相似度计算融合后算法对推荐效果的提升[17].相似度改进与传统协同过滤算法比较如图3所示.由图3可见, 考虑到流行物品、共同评分行为和用户偏好的改进相似度计算, 其MAE值要远低于未改进的传统协同过滤算法[18].因此, 改进后的相似度计算更符合用户推荐, 并能缓解评分数据稀疏的影响.

图2 参数a取值对MAE的影响Fig.2 Influence of parameters a on MAE

图3 相似度改进与传统协同过滤算法比较Fig.3 Comparison of similarity improvement and traditional collaborative filtering algorithm

综上所述, 针对数据稀疏和现实推荐场景中相似度计算不准确的问题, 本文提出了一种基于权重调节和用户偏好的协同过滤算法.首先融合热门物品降权的思想, 降低热门物品对全局的影响和共同评分数的差异性, 共同调节用户相似度的权重; 其次引入用户偏好词矩阵, 计算用户对项目特征的兴趣, 在利用用户评分的基础上, 挖掘用户在不同特征项目上的兴趣点.实验结果表明, 改进后的相似度计算与传统相似度计算相比, 能缓解用户数据的稀疏问题, 提高了推荐的准确性.

猜你喜欢
物品权重协同
称物品
“双十一”,你抢到了想要的物品吗?
蜀道难:车与路的协同进化
科学大众(2020年23期)2021-01-18 03:09:08
权重常思“浮名轻”
当代陕西(2020年17期)2020-10-28 08:18:18
谁动了凡·高的物品
“四化”协同才有出路
汽车观察(2019年2期)2019-03-15 06:00:50
为党督政勤履职 代民行权重担当
人大建设(2018年5期)2018-08-16 07:09:00
基于公约式权重的截短线性分组码盲识别方法
电信科学(2017年6期)2017-07-01 15:44:57
三医联动 协同创新
中国卫生(2016年5期)2016-11-12 13:25:26
找物品