APP下载

基于用户兴趣和评分差异的改进混合推荐算法

2021-11-01郑小楠李玲玲

计算机工程与设计 2021年10期
关键词:矩阵因子差异

王 粤,黄 俊,郑小楠,李玲玲

(1.重庆邮电大学 通信与信息工程学院,重庆 400065; 2.重庆邮电大学 信号与信息处理重庆市重点实验室,重庆 400065)

0 引 言

协同过滤推荐算法(collaborative filtering recommendation algorithm,CF)作为诞生最早、最为著名的算法之一[1],在音乐[2]、旅游、广告、饮食、新闻[3]等诸多领域都得到了广泛的应用。但是该算法仍然存在诸多问题,例如冷启动和数据稀疏等[4]。

文献[5]和文献[6]提出了使用多种评分统计值进行矩阵填充的方法用于缓解矩阵中数据稀疏的问题,但是该方法并不能有效地反映出不同用户的兴趣偏好和项目质量差异。文献[7]和文献[8]针对寻找近邻集合的问题提出将聚类方法引入到CF算法中,但是其忽略了用户之间以及项目本身质量的差异而导致的相似度准确性低下的问题。文献[9]针对用户兴趣随时间变化的问题提出了一种将时间权重融入到聚类过程中的算法,但是其没有考虑到时间因素在不同情况下的影响权重并不相同。

为了解决上述存在的问题,本文提出了一种基于用户兴趣和评分差异的改进混合推荐算法(improved hybrid recommendation algorithm based on user interest and rating difference,IHR-UIRD)。该算法首先基于TF-IDF思想对用户不同项目属性的兴趣偏好权重进行计算,并将该权重再用于计算稀疏矩阵的填充数值并对矩阵进行填补,然后基于修正余弦相似度将用户影响因子和项目质量因子引入相似度计算中,以此改进用户评分差异对相似度计算的准确性,最后,在用户兴趣偏好权重与预测评分计算中分别引入了两种不同的时间衰减函数,以此反映用户兴趣的变化,并根据预测评分的大小得到最终的推荐结果。

1 构建相关矩阵

本节公式中相关符号的含义定义于表1中。首先建立用户-评分矩阵(见表2)和项目-属性矩阵(见表3)。通过上述两个矩阵可计算得到用户对项目中每个项目属性的评分。

表1 本节数学符号释义

表2 用户评分矩阵

对用户的项目属性评分均值进行计算,如式(1)所示

(1) 表3 项目属性矩阵

通过式(1),可计算得到用户对项目属性的评分均值,并构建矩阵见表4。

表4 项目属性评分均值矩阵

2 本文算法

2.1 融合用户兴趣的矩阵填充方法

2.1.1 基于项目属性的用户兴趣偏好矩阵

对于目标用户对项目属性的兴趣偏好权重的计算,本节中采用词频-逆向文件频率(term frequency-inverse document frequency,TF-IDF)的思想。假设用户对已评价的项目中的项目属性进行评分的次数越多,并且该项目属性在整个项目属性中的比例越小,则表示目标用户对该项目属性的兴趣就越高。本节中相关公式符号的含义定义见表5。

表5 本节数学符号释义

根据文献[10]的定义可知,TFu,a越大,即用户u对项目属性a越感兴趣,说明该属性越能代表目标用户的兴趣偏好。IDF(a) 越大,即项目属性a在用户集合中越受欢迎,则该属性对区分不同用户偏好的贡献越小。基于此,用户u对项目属性a的兴趣程度定义如式(2)所示

Pu,a=TFu,a×IDF(a)

(2)

(3)

(4)

2.1.2 修正用户兴趣偏好的时间衰减函数

传统的推荐算法在进行用户对项目属性的兴趣偏好计算时并没有考虑到时间变化的影响,项目属性值在整个推

荐的过程中均与时间的变化无关,即用户行为在任何时刻的参考价值皆相同。这样会导致推荐结果中可能存在用户以前感兴趣但现在不再感兴趣的项目,从而产生推荐误差。

在实际的应用中,用户对项目属性的偏好往往会随时间而变化,用户的近期行为相较于早期行为更具有参考性。因此对于已评分项目而言,距离当前时间越近的属性所占权重应当越大。基于此,在计算目标用户对项目属性的兴趣偏好时引入时间权重,使得评分时间跨度越长的项目属性在用户偏好中所占权重越大,从而使推荐结果更加符合用户的当前兴趣。文献[11]成功将艾宾浩斯遗忘曲线函数公式引入到推荐系统中,该曲线描述了人脑对新事物的遗忘规律,如式(5)所示

(5)

本文引入该时间衰减函数,用于修正时间对用户兴趣偏好计算的影响,其在本文中的函数表达如式(6)所示

(6)

tu,i距离当前时间越近,s(u,i) 的值则越大,这代表用户对项目的评价时间距离当前时间越近,则该项目对预测用户偏好的参考价值越大。将式(6)引入到式(2)中,得到改进的项目属性兴趣偏好计算公式,如式(7)所示

(7)

表6 用户兴趣偏好矩阵

最后通过用户兴趣偏好矩阵P和用户项目属性评分均值矩阵算出填充数值,并对稀疏矩阵进行填充,矩阵填充分为如下3种情况:

(1)在已评分项目集合中,包含了与评分缺失项具有的项目属性完全相同的项目。则对已评分集合中所有的该类项目的评分均值进行计算,并使用计算得到的均值对矩阵进行填充,如式(8)所示

(8)

(2)在已评分项目集合中,不包含与评分缺失项所具有的项目属性完全相同的项目,但包含了具有评分缺失项中的所有项目属性的项目。该类情况采用式(9)对填充数值进行计算

(9)

(3)在评分缺失项所含的项目属性中,含有已评分项目集合中不存在的项目属性。该类情况不对矩阵进行填充。

2.2 考虑评分差异的相似度计算方法

不同的用户可能会对具有相同评分值的项目表达出不同的兴趣偏好。针对此问题,当前通常采用传统的修正余弦相似度计算公式,并利用用户的评分均值对相似度进行校正。但是该方法还忽略了用户之间差异以及项目本身质量差异对相似度计算的影响。

首先是用户间的影响差异,在计算用户之间的相似性时,使用传统的相似度计算方法在默认情况下仅会考虑用户之间的共同评分项目,并没有考虑到非共同已评分项目所造成的影响。例如用户A和用户B两者对4个不同项目的评分向量分别为(4,4,0,0)和(4,4,2,3),如果仅考虑用户A和用户B的共同评分项目,则根据修正余弦相似度计算公式,结果将表明两者兴趣完全相同。

其次项目本身质量的不同也是导致相似度计算偏差的原因。例如大量用户对某一项目都打出相似评分,该情况下计算得到用户间相似度往往会偏高,但这并不能完全代表着用户之间的兴趣偏好完全相同。由此说明项目本身质量的差异也会导致计算出的相似度结果存在偏差。

针对上述问题,本文分别引入了用户影响因子和项目影响因子以提高用户相似度计算的准确性。用户影响因子能校正在相似度计算中不同用户的已评分项目的影响。项目影响因子能校正项目质量在相似度计算中的影响。本节中相关公式符号的含义定义见表7。

表7 本节数学符号释义

2.2.1 影响因子

为反映不同用户间相互影响程度的不同,引入用户影响因子Cu,v于用户间的相似度计算中。其定义如式(10)所示

(10)

从式(10)可知,在计算用户影响因子时,首先需要先找到用户u和用户v都已评过分的项目的集合。

为反映项目本身质量差异造成的影响,还要通过引入项目影响因子Ci于校正用户评分偏差的计算中,来解决项目本身的质量在用户相似度计算中所造成的不利影响,其定义如式(11)所示

(11)

若各用户对项目i的评分值差异越大,则说明该项目越能够区分不同用户间的兴趣偏好,Ci值越大。根据式(11)可计算得到所有项目的项目影响因子,并对其进行归一化处理,归一化处理公式如式(12)所示

(12)

2.2.2 基于评分差异的改进相似度计算公式

本节充分考虑了不同用户间的相互影响程度的差异和项目本身质量的差异对相似度计算的影响,从而提出了一种改进的相似度计算方法。该算法基于修正余弦相似度公式往其中引入了用户影响因子Cu,v和项目影响因子C′i, 公式如式(13)所示

(13)

2.3 基于用户兴趣和评分差异的改进混合推荐算法

通过式(13)可以计算得到更为理想的用户近邻集合,从而得到目标用户的潜在偏好项目集合,然后通过式(14)可以计算得到基于评分标准差异的项目预测评分结果

(14)

但是上式的不足之处在于未考虑时间对用户评分差异之间的影响,因此根据式(5),在式(14)中引入一个时间衰减函数加以修正,所述时间衰减函数的计算公式如式(15)所示

(15)

式中:tnow-tv i表示用户u的近邻用户v对项目i评分的时间跨度,timax-timin表示项目i在推荐系统中存在的总时间,β表示衰减参数,当β>0时,s(u,v,i) 将呈现遗忘曲线特性,s(u,v,i) 的值越小,代表时间对用户u、v的评分差异之间的影响越小。

将式(15)带入式(14)中,得到最终的预测评分计算公式,如式(16)所示,并根据该式的计算结果生成推荐

(16)

2.3.1 算法描述

算法:基于用户兴趣和评分差异的改进混合推荐算法

输入:用户评分数据信息、项目属性信息、目标用户u, 邻居个数K

具体的步骤如下:

步骤1 对用户评分数据进行预处理,构建用户评分矩阵、项目属性矩阵以及项目属性评分均值矩阵;

步骤2 根据式(7)计算用户对项目属性的兴趣偏好并将其构建对应矩阵;

步骤3 根据式(8)、式(9)计算用户未评分项目的填充数值,并将其填充于用户评分矩阵;

步骤4 根据式(10)~式(12)计算用户影响因子与项目影响因子;

步骤5 将步骤4计算后的结果代入式(13)得到基于用户评分标准差异的用户相似度simR(u,v);

步骤8 根据式(18)计算MAE的值。

2.3.2 算法分析

本文提出的IHR-UIRD算法主要分为3个部分。首先是融合了用户兴趣的矩阵填充,该算法通过计算项目属性的评分得到目标用户的兴趣偏好,并将其结合用户项目评分得到评分缺失项的填充数值。这部分算法描述出了用户的兴趣偏好,很好地解决了数据稀疏的问题。

然后提出考虑用户评分准则不同的改进相似度计算方法,针对用户间的影响差异与项目本身质量差异的问题,将两个不同的影响因子应用到修正余弦相似度计算公式中,进而对传统的相似度计算方法做出改进。

最后考虑用户兴趣变化,将两种不同的时间衰减函数s(u,i) 和s(u,v,i) 分别融入了上述的矩阵填充和相似度计算之中,用于刻画用户兴趣随时间变化的特性。将艾宾浩斯遗忘曲线函数引入用户兴趣变化的评估中,使得推荐结果具有一定的科学性和更好的合理性。

基于当前大数据、分布式技术越加成熟,本文主要对时间复杂度进行分析。假设用户数为m,项目数为n,项目属性数为s,在2.3.1节提出的IHR-UIRD算法的步骤中,步骤2的时间复杂度为O(mns), 步骤3的时间复杂度为O(mn2), 步骤5的时间复杂度为O(m2n), 步骤7最后排序的时间复杂度为O(mlog2m)。 其时间复杂度公式如下所示

T(n)≈O(mns)+O(mn2)+O(m2n)+O(mlog2m)

(17)

本文提出的IHR-UIRD算法是在基于用户的CF算法上进行改进,因此该算法更适用于用户的数量远小于项目数的场景,所以该算法的时间复杂度为T(n)≈O(n2)。 该复杂度与传统算法相同,因此IHR-UIRD算法并未影响推荐效率,具备较强的可行性。

3 实验与分析

3.1 实验准备

本文算法都是通过Python实现。实验运行PC的操作系统为Windows10,处理器CPU:Intel(R) Core(TM) i5-9300U @2.40 GHz,内存16 GB。

本文采用Movielens100k数据集作为实验数据。该数据集囊括了943个用户对1682部电影的100 000条评分内容[12],另外还包含了一些用户信息和物品信息等。

3.2 评估指标

平均绝对误差(mean absolute error,MAE)常被用作推荐系统的评价标准,MAE计算的是目标用户的预测评分和真实评分之间的误差的平均值,值越小,说明偏差越小,则准确性越高。设用户的预测评分集合为 {p1,p2,…,pn}, 真实的评分集合为 {q1,q2,…,qn}, 计算公式如式(18)所示,其中n为测试集的元素个数

(18)

3.3 结果分析

在实验开始前将数据集分为两部分,分别为80%的训练集和20%的测试集。训练集用来实验,测试集用来验证准确性。随机将训练数据分为5个小组,最终取5组的平均值作为最终结果。

实验1:通过MAE值来确定s(u,i) 中时间衰减参数α的最佳值。

当α=0时,表示在计算用户对项目属性的兴趣偏好时不考虑时间因素的影响。取近邻数目K分别为10、30、50、70、90时,MAE随α变化的曲线如图1所示。

图1 确定参数α的大小

图1可看出,加入时间衰减函数α后,随着α增大,MAE值皆为先降后升,并且α值在0.6附近时,MAE达到最小值,即算法能够得到最优解。因此将α取值为0.6进行接下来的实验。

实验2:通过MAE值来确定s(u,v,i) 中时间衰减参数β的最佳值。

当β=0时,表示在计算用户对项目属性的兴趣偏好时不考虑时间因素的影响。当α=0.6, 取近邻数目K分别为10、30、50、70、90时,MAE随β变化的曲线如图2所示。

图2 确定参数β的大小

通过图2可看出,加入时间衰减函数β后,随着β的增大,MAE值也基本呈现了先降后增的趋势。并且β值在0.3附近时,MAE达到最小值,即算法能够得到最优解。综上,取α=0.6、β=0.3完成实验3。

实验3:测试了本文最终提出算法的有效性。

根据以上两个实验最终将时间衰减参数α的值设定为0.6,时间衰减参数β的值设定为0.3,将IHR-UIRD算法与现有的一些其它改进算法进行对比。将近邻个数K在10-90的范围内以10为步长进行分布,然后把本文提出的IHR-UIRD算法与传统的UBCF算法、IBCF算法、文献[13]中的基于用户兴趣点的算法(UICF)、文献[14]提出的融合聚类与用户兴趣偏好的协同过滤推荐算法(CUIPCF)、文献[15]提出的融合用户兴趣和评分差异的CF算法(CF-UIRD)以及文献[16]提出的基于评分矩阵填充和用户兴趣的CF算法(PICF)进行对比实验。分别对7种算法的MAE值进行计算和比较,以此验证本文提出的IHR-UIRD算法的有效性。实验结果如图3所示。

图3 7种不同算法的MAE值比较

上述7种不同算法的MAE值随着近邻用户数K值的增加均在K=70后趋于稳定。相较于UBCF和IBCF两种传统CF算法,推荐性能分别平均提升了10.07%和10.32%;相较于PICF、CF-UIRD、CUIPCF、UICF这4种改良CF算法,推荐性能分别平均提升了5.78%、4.06%、2.85%和1.84%。通过上述比较,可知本文所提出的IHR-UIRD 算法均优于另外6种对比算法,由此验证本文提出的算法可以进一步降低MAE值,提高了推荐的准确率。

4 结束语

本文针对现有CF算法中存在的数据稀疏性问题、用户评分差异影响相似度计算结果准确性问题以及用户兴趣随时间变化导致的低时效问题,提出了一种基于用户兴趣和评分差异的改进混合推荐算法。该算法首先基于TF-IDF思想,根据用户的历史评分数据分析得到用户对项目属性的兴趣偏好并以此对稀疏矩阵进行填充,然后在用户的相似度计算中基于修正余弦相似度计算方法引入了用户影响因子和项目质量因子修正评分差异的影响,随后考虑时间因素在用户兴趣偏好计算和预测评分计算中的影响分别引入了不同的时间衰减函数以此刻画用户兴趣变化。最后通过实验与其它CF算法比较,实验结果表明本文提出的IHR-UIRD算法一定程度上缓解了数据稀疏问题,修正了评分差异的影响并反映出了用户的兴趣变化,推荐精度均优于现有的一些改进算法。

猜你喜欢

矩阵因子差异
相似与差异
因子von Neumann代数上的非线性ξ-Jordan*-三重可导映射
一些关于无穷多个素因子的问题
影响因子
影响因子
找句子差异
生物为什么会有差异?
初等行变换与初等列变换并用求逆矩阵
矩阵
矩阵