一种修正评分偏差并精细聚类中心的协同过滤推荐算法
2024-03-16段刚龙
马 鑫,段刚龙
(1.南开大学商学院,天津 300110;2.西安理工大学 a.经济与管理学院;b.大数据分析与商务智能实验室,西安 710054)
0 引言
近年来,推荐系统作为传统搜索引擎的重要补充,成为帮助用户专注有用信息和缓解信息过载的重要工具,而协同过滤是个性化推荐系统中使用最普遍的推荐算法[1]。为应对协同过滤算法的数据稀疏等问题,既有研究往往结合聚类、回归、图等算法[2,3]或矩阵分解、多模态数据融合、矩阵填充等技术[1,4,5]进行组合推荐。在聚类算法方面,划分聚类算法因具有准确率高、可操作性强等优点,常被学者加以改进后用来对用户进行聚类。改进方法主要有手肘法[6]、轮廓系数[7]、谱聚类[8]、粗聚类[9]等。虽然上述改进算法在一定程度上提升了基于划分聚类的协同过滤推荐(Divide Clustering-based Collaborative Filtering Recommender,DC-CFR)算法的推荐效果,但仍存在以下不足:(1)评分失真且评分区分度小。现有产品评分多为“5 星评价”,离散、有限数值往往难以准确量化用户的真实喜好,而这种偏差会进一步影响用户聚类中高维稀疏评分向量间的空间距离测算,影响DC-CFR算法的表现;此外,受从众效应和可得性效应的影响,用户评分分布较为集中,信息量较小,通过空间距离或相关系数比较用户间异同的难度较大。(2)初始聚类中心随机。自由参数问题是划分聚类算法的主要缺陷。相比于最佳聚类数的确定,初始聚类中心的选择较少被讨论和研究。而随机初始聚类中心不仅易使聚类结果陷入局部最优,而且会增加聚类迭代次数,累积数据稀疏造成的用户聚类偏差,影响DC-CFR 算法推荐效果。
鉴于此,本文提出一种基于评论情感挖掘与数据场聚类的协同过滤推荐算法(Comment Sentiment Mining and Data Field Clustering-based Collaborative Filtering Recommender,CSM-DFC-CFR),该算法首先利用高频词性路径规则等无监督情感挖掘技术量化评论情感来修正用户-产品评分矩阵中的评分;其次,利用数据场算法计算划分聚类自由参数的取值;然后,通过基于相似用户的聚类协同过滤推荐算法生成产品推荐列表;最后,在三个真实数据集上进行实验,以验证改进算法的推荐效果。
1 基于划分聚类的协同过滤推荐算法
传统的DC-CFR 算法是基于相似用户的协同过滤推荐算法的一种改进算法,具有易理解、易复现、推荐结果新颖度高等优势[10]。其基本思想是:在用户-产品评分矩阵上,通过划分聚类创建较少且包含目标用户的聚类簇,以降低近邻用户检索中的相似度计算次数,减小数据稀疏性对聚类效果的影响。
假设有用户-产品评分矩阵M=[r1r2…rm]T,其中ri=(ri,1,ri,2,…,ri,n),m为用户数,n为产品数,ri,j为用户i对产品j的评分。随机选择k个用户评分向量ri作为初始聚类中心C=[c1c2…ck]T,按欧氏距离大小将用户归到最近聚类中心:
更新聚类中心:
其中,|Ck|为第k个聚类中包含的用户数。
当误差平方和最小时聚类停止迭代:
计算目标用户u与同簇用户v的相似度:
预测用户-产品评分矩阵中目标用户缺失评分:
其中,为目标用户u同簇用户v的历史评分均值,Nu为用户u的最近邻域。
将ru,j降序排列,选择前z个较高评分对应的产品pj生成推荐列表。
2 基于评论情感挖掘与数据场聚类的协同过滤算法
2.1 评论情感挖掘算法
在线产品评论一直是用户生成决策的重要信息来源。为进一步提升DC-CFR 算法在高维数据空间中的用户聚类能力,本文利用一种无监督评论情感挖掘算法修正评分与用户偏好间的偏差。
假设有用户u的评论集合Tu={t1,t2,…,tm},m为历史评论数,ti为用户u对产品i的评论。
对评论t进行预处理,附加148612个词的分词词库和3451 个词的停用词词库,利用pkuseg 工具进行分词并标注词性,统计并生成10个高频词性路径:
其中,n为名词,a为形容词,d为副词,v为动词,an为形容词性名词,l为习用语。
按Ruls路径对评论t进行模糊匹配,生成词对pt={(w1,s1),(w2,s2),…,(wf,sf)},f为词对个数,wi为实体词,si为情感词。
计算实体词wi与产品主题词themei之间的互信息,剔除不相关实体词及对应情感词:
其中,I(wi,themei)为wi与themei之间的互信息,值越大表明关联程度越强;p(wi,themei)为wi与themei共同出现的次数,p(wi)为wi单独出现的次数,p(themei)为themei单独出现的次数。
利用SingleRank算法计算Tu中实体词wi的权重hwi,生成实体偏好向量Hu=(hw1,hw2,…,hwg),g为集合Tu中的实体词数量。
计算评论t中的实体词相对权重:
基于NTUSD[11]、Hownet[12]的研究以及自整理词典,按[积极,中性,消极]=[5,3,1]的规则量化情感词,生成评论t中情感词si的情感值cssi。
评论t的整体情感值为:
设定评分修正幅度Δ,将Et调整到[-Δ,Δ]范围:
修正用户-产品评分矩阵中评论t的对应评分r:
2.2 数据场算法
受物理学场论启发,数据场将数域空间中的数据对象当作相互作用的有质量粒子,任一数据对象均受其他对象的共同作用,且当无外力作用时,数据对象会相向运动并聚集成簇,类似划分聚类过程,因此常被用于划分聚类算法优化[13]。
为解决划分聚类算法的自由参数问题,尤其是随机初始聚类中心的选择问题,本文提出了一种数据场算法,可一次性确定最佳聚类数和最优初始聚类中心,减少聚类迭代次数,避免数据稀疏性引起的用户聚类偏差累积。
假设有修正评分后的用户-产品评分矩阵R=[r1r2…rm]T,其中,ri=(ri,1,ri,2,…,ri,n),m为用户数,n为产品数,ri,j为用户i对产品j的评分,U为用户集合。
计算数据场中各用户ui的相互作用势值:
其中,d为欧氏距离,mj为用户uj的质量,满足Σm=1,σ为数据对象之间的相互作用力里程。
对于用户质量mi和作用里程σ,给定计算公式:
其中,|Ngi|为与用户ui相距不超过1/4分位数距离的用户数,φ(ui)为对应σ取值下用户ui的势值,argmin 为获取最小值对应σ的函数。
利用随机爬山法计算数据场的势值极大值,将极大值对应用户评分向量作为初始聚类中心C=[c1c2…ck]T,最佳聚类数k即为|C|。
2.3 改进的协同过滤推荐算法
本文首先通过评论情感挖掘算法修正评分偏差,使评分更加接近用户真实偏好,得到更加准确的用户-产品评分矩阵;然后,利用数据场算法计算用户聚类的最佳聚类数和最优初始聚类中心;最后,通过基于划分聚类的协同过滤推荐算法为目标用户生成推荐结果。
2.3.1 算法模型构建
本文提出的基于评论情感挖掘与数据场聚类的协同过滤推荐算法(CSM-DFC-CFR)模型见图1。
图1 基于评论情感挖掘与数据场聚类的协同过滤算法模型
2.3.2 算法描述
图1所示模型包含三大模块,具体描述如下:
(1)利用评论情感修正用户评分模块。首先,利用高频词性路径规则匹配评论文本中的实体词与情感词,并借助互信息剔除无关实体词及对应情感词;然后,利用混合情感词词典对情感词进行量化,计算评论中各实体词的相对权重;最后,按实体词相对权重对各量化情感值进行加权以获得评论总体情感值,在[-Δ,Δ]区间内对用户评分进行修正。
(2)利用数据场计算划分聚类参数模块。基于评分修正后更加接近用户真实喜好的用户-产品评分矩阵,先计算各用户质量m和数据场作用里程σ,再将其作为势函数参数,计算用户之间的相互作用势值,利用启发式随机爬山法挖掘势值分布规律,寻优势值极大值。
(3)划分聚类协同过滤推荐模块。首先,将势值极大值点对应评分向量和势值极大值点个数分别作为划分聚类的聚类数和初始聚类中心,对用户进行迭代聚类;然后,计算目标用户与同聚类簇用户相似度,并按相似度大小降序排列生成最近邻域Nu;最后,基于邻域用户相似度和非共有评分预测目标用户可能评分,按评分高低生成长度为z的产品推荐列表。
2.3.3 算法流程
综上所述,CSM-DFC-CFR算法步骤如下:
3 算法验证
3.1 数据来源与处理
遵循网站robots协议,利用爬虫采集了2015年6月17日至2020 年5 月9 日某知名电商平台1190 个类目下153129 个商品的评分及评论文本,从中随机抽取三组数据作为实验数据集,分别占原始评分数据的0.8%(数据集1)、0.9%(数据集2)和1.1%(数据集3)。同时,剔除历史评分总数为0的用户行和产品列,并按用户评分时间先后将前80%数据作为训练集,后20%数据作为测试集,以供模型训练使用。实验数据集的统计特征如表1所示。
表1 预处理后实验数据集统计特征
3.2 评价指标与对照算法
采用精度Precision(见公式(15))、召回率Recall(见公式(16))和F1-Score(见公式(17))共三种常见评价指标对算法推荐效果进行评价[10,14]。特别地,所有评价指标均依据产品推荐列表R(u)和测试集用户选择列表T(u)计算得出。
关于对照算法,选择基于用户的协同过滤推荐(U-CFR)算法、基于K-means的协同过滤推荐(KM-CFR)算法、融合Canopy和K-means的协同过滤推荐(CKM-CFR)算法、基于评论情感挖掘的协同过滤推荐(CSM-CFR)算法、基于数据场聚类的协同过滤推荐(DFC-CFR)算法以及本文所提算法(CSM-DFC-CFR)共六种算法在三个实验数据集上进行实验,所有实验结果的数据为1折15次交叉实验结果的平均值。
3.3 实验结果
3.3.1 参数影响
对于评分修正幅度Δ,分别取值为0.1、0.2、0.3、0.4和0.5,探讨Δ的最佳取值。由图2 可知,CSM-DFC-CFR 算法精度在Δ=0.4时最优(召回率也相对较优),算法表现最佳。
图2 不同评分调整幅度Δ对CSM-DFC-CFR算法精度影响
对于最近邻域大小|Nu|,很容易理解,最近邻数量增加会降低目标用户与邻居之间的评分相似度,如果取值过大,那么势必会影响算法表现。参照文献[15],将所有算法最近邻域大小取值为5。此外,参照文献[16],令各算法推荐列表长度z=15。
3.3.2 算法性能分析
不同对照算法在三个测试集中的1折15次Precision、Recall和F-Score表现如图3所示。对比U-CFR算法和CSMDFC-CFR 算法的两种变体算法(CSM-CFR 和DFC-CFR)的结果发现,评论情感挖掘修正用户评分和数据场聚类方法均能提升协同过滤算法的性能,且数据场聚类的方法对算法推荐效果正向作用更大。此外,进一步对比CSM-DFC-CFR及其两种变体算法可以发现,评论情感挖掘修正用户评分和数据场聚类两种方法的结合要比任意一种方法对算法推荐性能的提升效果都要明显。对比U-CFR、KM-CFR、CKM-CFR 和CSM-DFC-CFR 算法,结果表明,本文所提CSM-DFC-CFR算法在三个不同评价指标上推荐性能均最佳,CKM-CFR 算法次之,而KM-CFR和U-CFR算法较差。
图3 不同测试集中推荐算法的性能表现
3.3.3 算法有效性分析
为充分证明本文所提算法的有效性,进一步利用Kruskal-Wallis 检验方法对CSM-DFC-CFR 与U-CFR、KM-CFR、CKM-CFR和CSM-CFR算法的1折15次交叉验证结果进行组间差异比较。表2的结果表明,在95%的置信区间内,各测试集CSM-DFC-CFR算法的性能表现均显著优于其他对照算法(P<0.05)。还可以发现,虽然CSMDFC-CFR 与DFC-CFR 算法在各评价指标结果之间并不存在显著组间差异,但平均而言,CSM-DFR-CFR 算法的Precision、Recall 和F1-Score 均优于DFC-CFR 算法。以上结果充分证明了本文所提推荐算法的有效性,算法的优化思路与实际数据相吻合。
表2 CSM-DFC-CFR和对照算法的性能差异比较
4 结束语
本文针对当前DC-CFR 算法存在的评分失真和区分度小以及自由参数问题,提出了一种基于评论情感挖掘和数据场聚类的协同过滤推荐算法。其中,评论情感挖掘是指利用无监督情感挖掘技术对评论整体情感进行量化,通过加权方式修正用户评分,以提升评分区分度(细化了评分粒度),缩小评分与用户真实喜好之间的偏差。数据场聚类是指利用数据场计算最佳聚类数和最优初始聚类中心,对用户进行划分聚类,以缩小最近邻域检索范围,优化高维数据聚类表现。三个真实数据集的实验结果表明,与其他算法相比,本文所提算法在Precision、Recall和F1-Score指标上的表现均最优。值得注意的是,本文未处理虚假用户评论,即假定评论中不存在不实消费经历及对商品实体的鼓吹或诽谤[17],未来将考虑运用文体或元数据特征识别并剔除虚假评论,对本文算法进行改进。