APP下载

基于用户属性和项目属性的融合推荐算法

2022-01-12申艳梅李亚平王岩

关键词:冷启动列表协同

申艳梅,李亚平,王岩

(河南理工大学 计算机科学与技术学院,河南 焦作 454000)

0 引言

推荐系统(recommendation sysytem)[1]是大数据时代帮助用户处理信息过载的重要工具,它根据用户行为[2]识别一组感兴趣的条目,为用户推荐心仪物品,节省用户时间。

协同过滤(collaborative filtering,CF)算法[3]被称为个性化推荐系统的成功技术之一,但随着海量数据增加,CF算法出现了一系列问题,例如稀疏度越来越高,推荐准确性降低[4],特别是当一个用户或者项目数量极少,或者有新用户和各式各样的新物品出现时,很难根据用户历史评分行为向目标用户进行准确推荐,众所周知的冷启动[5]问题便由此产生。因此,如何解决数据稀疏、冷启动问题成为近年来国内外学者的主要研究方向。李荣等[6]引入两个修正因子计算不同用户共同评分项目比例来调整相似性;范永全等[7]提出一种给Pearson加权的相似度计算方法;端德坤等[8]仅针对用户属性研究,解决了用户冷启动问题,忽略了项目冷启动;吴佳婧等[9]将项目属性标签融入Pearson相关系数计算项目间的相似度,但未考虑项目被评分时间对相似度的影响;李淑芝等[10]通过分析项目属性,得到了用户的评分比例,以此为依据对相似度进行改进。以上研究均未考虑时间上下文问题。吴飞等[11]在协同过滤算法中利用时间效应动态分配评分的权重,将时间因素和用户评分综合后进行预测,提出基于时间效应的协同过滤算法;LI T Y等[12]通过遗忘曲线跟踪用户兴趣随时间变化发生的转移,提高了用户满意程度。

经分析,上述研究只是对基于用户属性或项目属性的数据信息进行独立的挖掘,没有将二者进行充分融合。本文为了解决用户冷启动问题,分析用户自身年龄、性别、职业差异度,提出改进的基于用户属性的协同过滤算法(collaborative filtering algorithm based on user attributes,UACF);

为了解决项目冷启动问题,通过分析项目类型标签与项目被评分时间对项目相似度的影响,提出改进的基于项目属性的协同过滤算法(collaborative filtering algorithm based on item attributes,IACF);在以上基础上进行UACF算法推荐列表和IACF算法推荐列表融合,以提出一种新的加权融合推荐算法(UIACF)。融合后的推荐列表根据Top-N算法进行推荐,以期克服CF算法中的冷启动问题,从而提高推荐系统的性能。

1 传统协同过滤算法

传统的协同过滤算法中,应用最广泛的是基于邻域的协同过滤算法[14]。即基于邻域的协同过滤算法一般划分为2个大类,基于用户的协同过滤(user-based collaborative filtering,UBCF)算法[14]和基于项目的协同过滤(item-based collaborative filtering,IBCF)算法[15]。

1.1 UBCF算法

在计算用户之间相似度时,传统的UBCF算法一般使用Pearson相关系数,经改进后的算法以用户历史行为为依据,充分考虑目标用户评价过的每一个项目评分,通过此方法计算相似度,以提高结果精准度,计算式为

式中:Ru,i,Rv,i分别为用户u,v对项目i的评分;R-u,R-v分别为用户u,v对项目i的平均评分。

1.2 IBCF算法

使用IBCF算法给用户推荐时,不能仅仅考虑项目之间的评分关系,也要参考用户的历史行为,这样就能为目标用户找到满足其需求的项目或者物品,然后将这些项目推荐给目标用户。余弦法为传统相似度的计算方法,其式为

式中:Ni为评价过项目i的用户数量;Nj为评价过项目j的用户数量;|NiNj|为同时评价过项目i和项目j的用户数量。

2 改进的协同过滤算法

2.1 改进的基于用户属性的协同过滤算法

文献[7]未曾考虑到新用户没有评分行为和某些用户评分数量少的因素,本文算法将用户属性融入相似度计算公式,当有新用户出现时,推荐系统根据与新用户属性最相似的用户喜欢的项目进行推荐,能够有效缓解冷启动问题。

用户属性包括用户的年龄、性别和职业。首先对年龄段进行划分,本文认为年龄在10岁以下的人群,其兴趣度更加接近,因此将用户年龄对10取整,得到的结果作为该用户的年龄段;其次用户性别为男时,记为0,性别为女时记为1;职业划分标准参考《中华人民共和国职业分类大典》将数据集中的21种职业划分为4个类别,依次记为0,1,2,3。

本文将以上3类属性特征联合后映射为一个1行3列的行向量,每一列的值分别为年龄、性别、职业的分类值,利用欧几里得距离方法计算不同用户间的属性差异度,将其作为属性特征相似性计量方法,用AttriUser(u,v)表示,其计算式为

式中,Au和Av分别为用户u,v的特征向量。用户属性差异度值越大,说明用户间相似性越高。

本文在计算用户间相似度的过程中引入权重系数α,用于调节关于用户属性的相似度计算方法与Pearson相关系数各自所占的权重,从而产生新的相似度计算方法,即

加权后的算法缓解了用户自身年龄、性别和职业属性对用户兴趣度的影响,能够提高用户之间的相似度,进而提高推荐系统的推荐质量。

计算得到不同用户间的相似度后,以从大到小原则对相似度排序,获得与目标用户最相近的邻居,然后将仅有最近邻居评价过的项目推荐给目标用户,最后预测目标用户对每一个推荐项目的评分,计算式为

式中:PUser(u,i)为基于用户的协同过滤算法中用户u对项目i的预测评分;Ku为用户u的K个最近邻居集合。

2.2 改进的基于项目属性的协同过滤算法

传统算法计算不同项目间的相似性的依据是用户行为,而忽略了项目自身的属性特征,然而项目自身也有很多种类的属性,因此以属性为依据,根据不同项目属性的一致度改进其相似性。

文献[9]虽然引入了项目类型标签,但项目被评分时间对推荐结果的影响未被考虑,推荐效果不佳,本文算法在计算相似度时,考虑时间因素,由于用户短时间内的兴趣度更加接近,所以评分时间间隔越短,推荐结果越准确。

定义1项目i拥有属性a,记为Aui,a=1,否则记为Aui,a=0。

定义2Di,j为项目i和项目j属性差异度,计算式为

其中,NA为关于项目的所有属性集合。

考虑到目标用户对不同项目进行评分时,评分时间会对项目相似性产生一定影响,因此本文在计算项目i和j之间的相似度时,引入两个项目同时被目标用户评分的时间差异度。

定义3 项目i和项目j时间差异度计算式为

式中,timeui为目标用户u对项目i的评分时间;timeuj为目标用户u对项目j的评分时间,认为不同项目在更接近的时间段内被同一用户进行评分时会更加相似。

将项目属性差异度和项目被评分时间影响的差异度融入到传统的余弦相似度计算方法,得到改进的相似度计算方法,计算式为

式(8)为改进的亲和力计算方法,充分分析了时间因素对用户兴趣度的影响,用户在短期内对相似项目的兴趣度更高,随着时间流逝,兴趣度发生偏移,对相似项目的喜爱程度降低。因此,该式能更准确地找到项目的最近邻。

计算完成项目之间的相似度之后,从大到小排序,把相似程度高的N个项目推荐给目标用户,再逐一评测其对推荐项目的评分,根据项目i和项目j的相似度得到预测评分,计算式为

式中,Ruj为用户u对项目j的评分。

2.3 融合的协同过滤推荐算法

将改进的基于用户属性和项目属性的协同过滤算法加权结合,得到推荐项目列表,再次进行融合的新型融合推荐算法。

如表1~2所示,在UACF算法和IACF算法中,对同一个目标用户U1而言,有共同的推荐项目I2和I3,引入β权重系数计算其融合算法的预测评分,当数据集中用户数量比项目数量多时,UACF算法的推荐结果占据主导地位,否则,IACF算法的推荐结果占主导地位。UACF和IACF算法融合预测评分计算方法为

表1 UACF算法对用户U1的推荐列表Tab.1 UACF algorithm recommended list for user U1

β=0.8时,推荐结果最佳,此时,P(U1,I2)=0.8×4+0.2×5=4.2,P(U1,I3)=0.8×3+0.2×4=3.2。

表2 IACF算法对用户U1的推荐列表Tab.2 IACF algorithm recommended list for user U1

对于UACF算法的推荐列表和IACF算法的推荐列表中不重合的项目,将UACF算法中的项目I1融合到IACF算法的推荐列表中,对融合后的列表进行预测评分排序。用户U1的融合推荐列表及其预测评分如表3所示。

表3 UIACF算法对用户U1的融合推荐列表Tab.3 Fusion recommendation list of UIACF algorithm for user U1

根据融合推荐列表的预测评分值进行Top-N推荐。UACF算法解决了新用户冷启动问题,IBACF算法解决了项目冷启动问题,因此融合后的算法解决了新用户和新项目出现的冷启动问题。

3 算法验证

3.1 实验流程

输入:MovieLens数据集

算法设计如下。

(1)分离MovieLens数据集,按比例随机生成train训练集和test测试集。

(2)读取训练集,生成user-movie-rating排序表。

(3)计算改进的关于用户属性的相似度,用户与用户之间的相似度sim(u,v)由Pearson相关系数计算得出。

a)计算用户属性差异度AttriUser:由用户的性别、年龄、职业属性,建立用户属性矩阵,从而计算得到属性差异度。

b)得到改进的用户相似度simUser(u,v),做归一化处理。

c)依据MAE的结果合理确认变量α的值。

(4)根据用户的相似度排序,检索出K1个与用户最近的邻居。

(5)将只有最近邻居评价过的项目推荐给目标用户,依据预测评分的高低生成推荐结果PUser(u,i)。

(6)由步骤(2),根据用户行为生成物品-物品的共现矩阵和物品被不同用户购买过的数量矩阵。

(7)计算改进的关于项目属性的相似度。

a)由传统算法计算出项目之间的相似度sim(i,j)。

b)由项目的属性标签,建立项目属性矩阵,计算可得项目属性差异度Di,j。

c)由项目被用户评分时间计算得到项目时间差异度Timei,j。

d)得到改进的项目相似度simItem(i,j),进行归一化处理。

(8)根据项目的相似度进行排序,将项目的K2个最近邻居推荐给用户,并生成推荐结果PItem(u,i)。

(9)将步骤(5)和(8)生成的推荐结果融合,融合后的列表排序后将前N个推荐给用户。

(10)通过MAE值的变化情况比较本文改进的3种算法与文献[7]和[9]算法。

3.2 数据环境

采用美国GroupLens小组提供的包含943名用户对1682部电影的10万条评分数据的MovieLens 100K数据集进行实验,数据集被随机切分为80%的训练集和20%的测试集。

3.3 推荐质量的评价标准

以准确率、召回率、MAE和均方根误差(root mean square error,RMSE)作为衡量指标。

(1)准确率

(2)召回率

式中:U为用户集合;为推荐的项目列表与实际评价的项目列表相交的数量;R(u)为推荐的项目列表长度;T(u)为实际评分的项目列表长度。

(3)MAE

(4)RMSE

式中:N为推荐项目列表的长度;P(u,i)为用户u对推荐项目i的预测评分;Q(u,i)为用户u对项目i的实际评分。

3.4 实验结果与分析

为了验证本文改进方法,共设计5组实验。

实验1通过MAE值确定UACF算法中权值α的大小。

本实验为了确定式(4)中α的最佳值,首先令最近邻K=30,推荐项目N=12,则不同的α值对应的MAE如图1所示。

由图1可知,当α=0.5时,MAE=0.7658,此时MAE值最小,推荐效果最佳。

图1 变量α对应的MAE值变化情况Fig.1 MAE changes corresponding to the variableαvalues

实验2确定UACF算法的最近邻K1值。取推荐项目个数N=12,取12组K1(用户最相邻)值,分别计算传统UACF(相似度计算使用Pearson相关系数)和改进的基于用户属性协同过滤算法。改进算法的最优K1值,由召回率、准确率、MAE和RMSE得到,结果如图2所示。由图2可知,当K1值在30附近时,UACF算法的MAE值最小为0.7761,RMSE最小为0.9516,召回率和准确率分别为0.0428和0.03848,且几乎不再发生变化,因此,UACF算法的用户最近邻居K1的最优值取30。

图2 UACF和Pearson的指标对比Fig.2 Comparisons of UACF and Pearson indicators

实验3确定IACF算法的最近邻K2的值。

取推荐项目的个数N=12,选取12组K2(用户最近邻)值,分别计算传统Item-Based CF(项目相似度计算方法采用式(2)余弦相似度)和基于用户属性改进的协同过滤算法,改进算法的最优K2值由召回率、准确率、MAE和RMSE得到,结果如图3所示。由图3可知,当K2值在5附近时,IACF算法的MAE和RMSE最小分别为0.76245和0.9508,召回率和准确率最大分别为0.1164和0.1052,因此,IACF算法的项目最近邻居K2的最优值取5。

图3 IACF和Cosine的指标对比Fig.3 Comparison of IACF and Cosine indicators

实验4 计算融合算法中β对MAE的影响。

本实验为了确定式(11)中β的最佳值,由实验2和实验3取用户最近邻K1=30,K2=5,图4为不同的权重系数β对应的MAE值。由图4可知,当β=0.8时,MAE=0.7457,此时MAE值最小,推荐效果最佳。

图4 权重系数β对MAE值的影响Fig.4 Effect of weight coefficientβon MAE value

实验5 融合算法与其他算法MAE比较。

将改进的基于用户属性的协同过滤算法与文献[7]的算法比较,改进的基于项目属性的协同过滤算法与文献[9]的算法比较,融合后的算法与UBACF算法和IACF算法比较,5种算法的推荐效果以MAE的变化情况为依据,如图5所示。

图5 5种算法的MAE值Fig.5 MAE values for the five types of algorithms

由实验结果可以看出,改进的UACF算法推荐效果要优于文献[7]的,因为文献[7]算法忽略了用户属性特征对用户信任度的影响;改进的IACF算法推荐效果要优于文献[9],这是因为文献[9]未将时间因素引入相似度计算中去,导致推荐质量不佳;融合的UIACF算法MAE值在5种算法中始终处于最低,在改进的UACF和IACF算法推荐效果明显提高的前提下,UIACF又融合了UACF和IACF的推荐结果,同时解决了用户和项目冷启动问题,因此推荐精度最高。

实验6融合算法与其他算法时间性能比较。

为了更好地验证算法在不同数据集下的时间性能,选取的K为50~250,每隔50取值1次,表4给出5种算法在不同K值下的运行时间。

表4 5种算法在不同K值的运行时间Tab.4 Running times of five algorithms with different K values

如表4所示,IACF算法和文献[9]运行时间最长,这是因为它们都是在传统余弦相似度算法的基础上进行改进的,IACF算法的推荐效率不及文献[9]算法,IACF算法考虑了用户兴趣度随时间偏移发生的变化。融合算法和文献[7]、UACF的推荐效率很接近,相对于本文选取的数据集,UACF算法占据主导地位,但由于融合算法同时融合了IACF算法,因此在运行时间上要长于UACF算法和文献[7]的算法,总体而言,本文提出的融合算法能够满足用户的基本需求。

5 结论

(1)在UACF算法中,计算用户间相似度时,用户年龄、性别、职业等属性会带来差异,为了减少差异,引入权重系数,将用户属性差异度与Pearson相关系数相结合进行计算。

(2)在IACF算法中,计算不同项目间的相似度时,增加了因时间因素而导致不同项目被同一用户评分的时间差异度,并引入项目的属性差异度,提出一种新的计算项目之间相似度的方法。

(3)实验表明,本文的融合推荐算法明显缓解了推荐系统的冷启动和精确度不高问题。

(4)本文未考虑用户的评分风格对推荐结果的影响,在以后的工作中将会通过深度学习对此进行深度挖掘。

猜你喜欢

冷启动列表协同
输入受限下多无人机三维协同路径跟踪控制
轻型汽油车实际行驶排放试验中冷启动排放的评估
家校社协同育人 共赢美好未来
Evaluation of Arctic Sea Ice Drift and its Relationship with Near-surface Wind and Ocean Current in Nine CMIP6 Models from China
基于PEMS试验的重型柴油车冷启动 排放特征研究
基于学习兴趣的冷启动推荐模型
学习运用列表法
扩列吧
“四化”协同才有出路
京津冀协同发展