基于混合相似度和用户兴趣迁移的改进协同过滤推荐算法*

2023-03-21 02:21肖云天
计算机时代 2023年3期
关键词:权重协同混合

夏 翔,刘 姜,倪 枫,肖云天

(上海理工大学管理学院,上海 200093)

0 引言

随着互联网高速发展及电商红利的爆发,数据呈现爆炸式增长,其规模之大,产生速度之快,使得人们面对海量信息进行查询挖掘和分析成了热点和难点。推荐系统通过自动向用户推荐可能符合其兴趣的项目来处理信息过载问题[1]。目前,推荐系统的应用领域十分广泛,包括商品推荐[2]、音乐推荐[3]、新闻推荐[4]、图书推荐[5]等。

现有的推荐系统虽已进入成熟阶段,但也面临着一些长久以来的挑战,如:数据稀疏性[6]、冷启动[7]、等问题。本文重点针对现有协同过滤忽略用户属性权重的问题,以及用户兴趣随时间发生动态迁移问题,考虑用户属性相似度及用户时间权重,提出了一种基于混合相似度和用户兴趣迁移的改进协同过滤推荐算法HSIT-CF(hybrid similarity and interest transfer collaborative filtering)。

1 理论基础

1.1 User-CF算法

传统的User-based 步骤主要分为以下几步:构建用户—项目评分矩阵、计算用户相似度、评分预测并产 生Top-N 推 荐。假 设U={u1,u2,…,um} 是用户 集合,I={i1,i2,…,in} 是项目集合,构建用户—项目评分矩阵R,其中包括m 个用户和n个项目,如表1所示,元素ru,i表示用户u 对项目i 的评分,数值越大表示用户对该项目偏好程度越高,反之则越低。

表1 用户—项目评分矩阵R

修正的余弦相似度在余弦相似度上弥补了其不足,将用户评分减去该用户的平均评分后,再进行原本的相似度计算,其计算公式如下:

1.2 基于熵权法计算属性权重

本文利用熵权法计算出各个用户属性类型权重wj,以及计算各个用户的综合属性得分值si,假设有m 个用户,n 个属性,xij为第i 个用户的第j 个属性值(i=1,…,m;j=1,…,n),其步骤如下:

⑴标准化处理

通过标准化处理,把属性的绝对值转化为相对值,归一化后的数据仍记为xij。

⑵计算第j个属性下第i个样本值占该属性的比重

⑶计算第j个属性的熵值

(4)计算信息熵冗余度

⑸计算各个属性的权重

⑹计算各个用户的综合属性得分值

2 基于混合相似度与用户兴趣迁移的协同过滤推荐算法

本文提出的基于混合相似度与用户兴趣迁移的协同过滤推荐算法,算法具体流程如图1所示。

图1 HSIT-CF算法推荐流程

2.1 用户属性权重计算

在实际生活中,属性相似的的两个用户,其兴趣偏好往往同时具有相似性。例如针对美食推荐项目,四川人更普遍喜欢吃辣,而广东人更喜清淡,此时用户背景中的地域属性对用户相似度的计算影响较大,因此赋予各个用户不同的权重是具有现实意义的。

本文实验所使用的数据集为明尼苏达大学的Grouplens 研究小组收集的Movielens-100k,如表2。在对用户属性特征表中的年龄、性别、职业、时间戳等数据进行预处理时,根据上述方法计算出的用户属性权重信息结果如表3所示。

表2 用户属性特征表

表3 用户属性权重表

利用余弦公式计算出用户间的属性相似度sim1(u,v)。其公式如下:

其中,simL(u,v)表示用户u,v之间的属性相似度,表示用户属性特征向量。

2.2 用户兴趣迁移函数

传统协同过滤只考虑用户间的相似性,往往忽略了用户兴趣的动态变化,从而导致推荐精度会随时间推移而下降[8]。指数衰减函数可以通过衰减项目影响力,即运用用户兴趣权重来衡量用户长期兴趣[9]。本文借助指数函数作为时间权重来描述用户的兴趣变化差异,用户对项目的评分越靠近当前,其时间权重越大。

其中,Wu,i表示用户u对项目i的兴趣衰减的时间权重,其大小反映了用户兴趣衰减快慢;tu,i表示用户u 对项目i 的评分时间,t0表示项目的发布时间,tnow表示当前时间。

2.3 HSIT-CF算法过程

本文2.1节(公式⑻)和1.1(公式⑴)中提出的相似度的计算方法各有优点,因此考虑将两种相似度进行结合,计算最终的用户相似度,其计算公式如下:

其中,a 的值在0~1 之间变化,表示两种相似度的融合比例。simP(u,v)sim(u,v)表示用户评分相似度,simL(u,v)sim1(u,v)表示用户属性相似度。

将上述混合相似度与用户时间权重引入传统协同过滤算法中,改进后的协同过滤推荐算法预测公式为:

其中,pu,i表示用户u 对项目i 的预测评分;rv,j表示用户v 对项目j的实际评分;和分别表示用户u 和用户v对已有项目的平均评分;Wu,i表示用户u 对项目i 的兴趣衰减的时间权重,Nu表示用户u 的最近邻集合;sim(u,v)表示用户之间的混合相似度。

根据以上步骤,HSIT-CF具体算法流程描述如下。

算法:基于混合相似度和用户兴趣迁移的协同过滤推荐算法HSIT-CF。

输入:用户、项目、评分数据文件,融合参数a。

输出:用户评分预测值矩阵。

步骤1根据输入的评分数据文件构建用户—评分矩阵R;

步骤2计算所有用户的评分均值;

步骤3利用式⑴计算用户评分相似度simP(u,v);

步骤4根据1.1 节中的式⑶~式⑺算出各属性的权重与综合得分值,利用式⑻计算用户属性相似度simL(u,v);

步骤5根据式⑼算出用户的时间权重Wu,i来描述用户的兴趣变化差异;

步骤6根据式⑽计算得到混合相似度sim(u,v);

步骤7根据步骤6中的sim(u,v)得出的结果,采用K 近邻法选出最大的k 个用户形成目标用户的最近邻集合,利用式⑾得出预测评分,形成用户的评分预测值矩阵。

3 实验分析

3.1 实验数据集

本文实验使用明尼苏达大学的Grouplens研究小组收集的Movielens-100k 数据集对算法进行实验验证。该数据集包含943 个用户对1682 部电影的10 万条评分数据。由于部分用户属性信息不全面,本文剔除了部分用户数据,最终实验的用户数据为934个用户。

3.2 评价指标

本实验采取平均绝对误差(MAE)和召回率来评价算法的推荐质量。平均绝对误差根据算法计算出的预测值与实际值之间的平均绝对差值,其偏差越小,准确性越高。召回率表示用户兴趣列表中有多少正确推荐,是指根据用户在训练集上的行为做出的推荐列表与用户在测试集上的行为列表的“交集”与用户在测试集上的行为列表的比值。计算公式:

其中,u表示用户,i表示项目,T表示测试集,pu,i和ru,iru,i分别表示用户u 对项目i 的预测评分和实际评分。R(u)为表示根据训练数据集为用户提供的推荐列表;T(u)表示用户在测试集上的行为列表。

3.3 结果分析

为了验证本文算法的有效性,本文采用传统User-CF(originalCF),文献[10]提出的UII-CF 以及文献[11]提出的proposed 算法作为对比算法进行比较。实验结果如图2、图3所示。

图2 不同算法的MAE值

图3 不同算法的recall值

图2给出了不同算法对MAE值的影响。从图2中可以看出,随着邻居数目的增加,MAE 值逐渐下降。传统的original CF 由于其自身相似度计算等局限性,其MAE 值高于本文及其他两种对比算法。当邻居个数为10 至50 时,proposed 的MAE 值基本稳定在0.75 至0.79 之间且变化趋势趋于平缓。文献[10]提出UII-CF 算法的MAE 值波动相对较大,但当邻居数目大于20 时,可以取得较好的推荐效果。由图2 可见,本文HSIT-CF 算法的MAE 值相对于传统的协同过滤算法及UII-CF及proposed均有显著降低,当最近邻居个数为16 时,本文算法的MAE 值较文献[11]降低了6.61%,较文献[10]降低了3.43%。

由图3 可见,在MovieLens-100k 数据集上,针对recall指标,本文提出的HSIT-CF明显优于original CF和文献[11]提出的proposed 算法,与文献[10]提出的UII-CF 保持基本持平,当最大邻居数为16 和30 时高于UII-CF算法,当k为15时,最高提高了7.86%。

4 结束语

本文针对协同过滤算法忽略用户属性权重差异,导致相似度计算不准确和用户兴趣的动态变化问题,提出了一种基于混合相似度和用户兴趣迁移的协同过滤推荐算法。该算法根据熵权法计算出各用户特征属性权重,并构造出用户混合相似度,然后加入时间权重描述用户的兴趣动态变化,克服了一般协同过滤算法的弊端。实验表明,该方法能够有效降低平均绝对误差,提高推荐精度。然而在本文算法中,并未详细考虑针对不同推荐项目时,具体用户背景属性对推荐结果的影响,接下来将考虑一个或多个具体属性对不同推荐项目的影响,进一步提高推荐精度。

猜你喜欢
权重协同混合
混合宅
蜀道难:车与路的协同进化
权重常思“浮名轻”
一起来学习“混合运算”
“四化”协同才有出路
为党督政勤履职 代民行权重担当
基于公约式权重的截短线性分组码盲识别方法
油水混合
三医联动 协同创新
混合所有制