融合电影流行性与观影时间的协同过滤算法

2024-03-14 08:37钱泽俊刘润然
网络安全与数据管理 2024年2期
关键词:集上度量权值

钱泽俊,刘润然

(杭州师范大学 阿里巴巴商学院,浙江 杭州 311121)

0 引言

推荐系统[1]是人们借助计算机系统的高计算能力,为解决用户在面对信息过载时获取有效信息的效率低下问题而设计的辅助系统,其准确性极大程度上依赖于所采用的推荐策略。

在推荐系统的众多策略中,“协同过滤”是其中广泛使用的一种策略[2],它以用户的兴趣偏好作为推荐依据,并假设每个用户未来的行为更有可能与该用户过去的行为类似。因此,以协同过滤策略为基础的推荐系统,会基于与目标用户相似的其他用户对一些物品的评价来向目标用户推荐物品[3],具有良好的可解释性。

协同过滤策略的关键步骤是计算用户间的相似度,但由于传统的相似度算法很容易受到冷启动、数据稀疏性、时间衰变等问题的影响[4],因此许多研究人员对此进行改进并提出了一些新的相似性度量算法。

在研究物品的权值计算方面,Leskovec[5]等人对Pearson相关系数算法的改进考虑到评价的分布具有长尾特征,即随着时间的流逝,部分受欢迎的物品将会得到更多用户的评价,而一些不受欢迎的物品,它们得到的评价数量则一直非常有限。总体而言,该研究认为只拥有少量评价的物品对用户间相似度的影响远远大于具有大量评价的物品。在长尾分布思想的影响下,Weng[6]等人提出PCCIUF算法,使用对数函数为物品的权重赋值;Ricci[7]等人在FPC算法中也运用了同样的思想。不同的是,Zhang[8]等人在weighted PCC算法中采用指数函数来应对长尾分布效应。而AL-Bakri[9]等人则结合了长尾分布思想对CPCC算法进行改进,提出了modified CPCC算法。

在研究用户兴趣随时间变化方面,张维[10]使用时间窗口这一研究手段对用户兴趣的变化进行捕捉,并通过加权的方式参与相似度的计算过程。姜书浩[11]等人则使用聚类这一研究方法对用户的评分信息按类别及时间的远近进行权重赋值,同时也考虑到部分用户会通过打低分的方式来表示对该类别不感兴趣。而Zhang[12]等人以艾宾浩斯遗忘曲线理论为依据,认为如果用户对某个物品具有浓厚的兴趣,那么该用户对该物品的遗忘速率将会慢于那些不感兴趣的物品。

虽然以上算法在一定程度上扩大了相似性比较的维度,并在一定程度上提高了推荐效果,但由于忽略了作为选择主体的“人”与被选择的“物”之间存在的自然联系,因此采用人为标定的方式对一些阈值进行设定[13],这不利于在不同数据环境下的通用性,同时聚类与时间窗口等方式的计算步骤较为繁杂,导致计算量的增加较为明显,在一定程度上降低了算法效率。

本文首先从电影流行度的计算方式这一角度出发,探究人与电影之间自然存在的影响关系,提出了基于自洽逻辑的电影流行度权值计算方式;其次从观影时间数据的利用方式这一角度出发,通过用户间观影时间顺序的一致程度来衡量用户之间的相对兴趣偏移程度,该方法所涉及的计算步骤较为简洁,因此相对而言增加的计算量较少;最后使用上述这两个部分的研究内容对余弦相似度算法进行改进。

在Netflix Prize和豆瓣两个数据集上的实验结果表明,本文所提出的相似性度量方法对电影推荐系统准确率的提升有一定帮助。

1 相关工作

1.1 对物品权重计算方式的研究

推荐系统中人们对物品评价的分布具有长尾分布特性[14](Long-tail),即随着时间的推移,越受欢迎的物品获得的评价数量将变得越多,而越不受欢迎的物品获得的评价数量则基本维持不变,因此不受欢迎的物品常常被人们所忽视。长尾分布特性的发现,让人们意识到不同物品对用户间相似性度量的贡献有可能不同。人们通过对长尾分布特性的发掘研究,提出了几种较为有效的物品权值计算方式。

(1)受欢迎程度与贡献度呈负相关

部分学者认为应该降低受欢迎物品在相似度计算过程中的贡献程度[6],原因是由于受欢迎的物品无法体现用户的独特偏好,同时由于不受欢迎的物品只被极少数的用户所选择,在某种程度上可以体现用户的独特偏好,因此应当提高不受欢迎的物品在相似度计算过程中的贡献程度。

在该思想的指导下,研究人员先后提出了包括FPC算法、PCCIUF算法、modified CPCC算法在内的一系列相似度算法。

以FPC算法中的权值计算方式为例,设Uall为所有用户的集合,Ui为对物品i进行评价的用户集合,则物品i的权值计算如式(1)所示:

(1)

(2)分类讨论受欢迎程度与贡献度的关系

有学者分类讨论了受欢迎程度与贡献度之间的关系[8],认为应当降低最受欢迎与最不受欢迎的物品在相似度计算过程中的贡献度,并提高二者之间的物品的贡献度,因此提出了weighted PCC算法。

以该算法中的权值计算方式为例,设Ui为对物品i进行评价的用户集合,则对于物品i的权值计算如式(2)所示:

(2)

然而,以上这些计算方式简单地通过物品被选择的次数来对其权值进行计算,而忽略了“人”与“物”之间的相互影响关系,即同一个物品对不同的人可能有着不同的意义,以及同一个人对不同的物品也可能有着不同的影响。

因此,在对电影受欢迎程度的度量方法中,本文考虑了用户与电影之间的相互影响关系,并以此提出了用于计算电影权值的电影流行度权值计算公式。

1.2 对用户兴趣转变的研究方法

用户兴趣的改变也是在相似度计算时需要考虑的一个重要因素[15]。对于该问题,有以下几种研究方法。

(1)基于时间窗口[16]的研究方法

使用时间窗口进行研究的基本步骤如图1所示,在将用户的历史评价信息按时间顺序排列完成后,设定一个时间长度作为时间窗口的长度,接着将该时间窗口按某一固定时长向后进行递进扫描,然后对相邻窗口的历史评价信息进行数据处理与对比分析。

图1 时间窗口分析法

(2)基于聚类分析[17]的研究方法

采用聚类分析的方法进行研究时,首先需要将用户的历史评论数据按类别进行分类,然后对每个分类均进行时间段的划分,之后根据自行设定的比较逻辑对每个类别的各个相邻时间段依次进行计算,最后根据计算结果分析用户偏好的改变情况。

(3)基于艾宾浩斯遗忘曲线理论的研究方法

艾宾浩斯遗忘曲线是19世纪德国心理学家赫尔曼·艾宾浩斯提出的用于描述人类在学习过程中对于新知识的遗忘规律[18],如图2所示,对于新知识,人们通常在初期遗忘得较快,之后的记忆量趋于平稳。

图2 艾宾浩斯遗忘曲线

Li[19]等人以艾宾浩斯遗忘曲线理论为依据划分时间窗口,为不同窗口中的物品分配不同的权值。Qi[20]等人将艾宾浩斯遗忘曲线理论与长尾分布效应相结合,提出了效果较好的相似度计算方法。

然而,以上这些计算方式不仅需要人为地设定多个基准参数,并且计算量也将大幅增加。

本文认为,电影观看顺序能够在一定程度上体现用户兴趣的变化,因此可以通过观影时间顺序的一致程度来度量用户间喜好随时间而发生偏移的程度。

2 基于电影流行性度量与观影时间的相似度算法研究

2.1 基于自洽逻辑的电影流行度权值计算方法

Tacchella[21]等人在研究国家适应度与产品复杂性时,发现二者间可能具有一定的相互影响关系。该研究认为,对于c国的适应度Fc而言,其与该国出口产品的总和呈一定的比例关系,同时根据产品复杂性Qp进行加权,而对于产品p的复杂性Qp而言,其与出口该产品的国家数量呈反比关系,同时国家的适应度Fc越高,对产品复杂性Qp的贡献应当越低。以此思路,该研究建立了一个关于Fc与Qp的迭代模型,并发现在经过一定次数的迭代后,Fc和Qp最终会处于一个与初始值无关的稳定状态。

受此启发,本文认为用户和电影之间也可能存在一定的相互支配并能够自洽的逻辑。在此,本文提出了用户的独特性和电影流行性这两个指标来挖掘用户和电影更为深层次的内在属性,从而优化电影之间相似性度量的方法。假定用户的独特性一定程度上反映了用户的挑剔程度,而电影的流行性则反映了电影内在品质。用户在选择电影时受自身挑剔程度的影响,而各个电影的内在品质也会反过来在一定程度上体现出选择它们的用户的挑剔程度。

2.1.1 自洽的用户独特性与电影流行性

本文将用户自身的挑剔属性定义为“用户独特性(Specificity)”,以Su作为用户u的独特性度量指标,以S作为用户独特度集合的简称;同时采用“电影流行性(Popularity)”来表征电影的内在品质,以Pi作为电影i的流行性度量指标,以P作为电影流行度集合的简称。

电影流行性会受到用户独特性的影响,用户独特性也会反过来受到电影流行性的佐证,两者因此能够达成一定的平衡,而随着时间推移,用户与电影之间的关联结构不断发生变化,在不同时段中各个用户的独特性与各部电影的流行性也会重新达到平衡。

电影的流行性与选择它的人数密切相关,获得更多用户选择的电影相对而言拥有更高的流行性,同时独特性相对较高的用户对电影流行性的贡献相对较低,这是由于他们有着相对更为严苛的电影评价标准,而由于独特性相对较低的用户有着更接近大众的评价方式,因此他们对电影流行性的贡献相对更高。

同时,用户独特性的表征也会受到电影流行性影响,独特性较高的用户有着更挑剔的眼光和更高的电影鉴赏能力,他们所选择的电影往往会具有较高的品质,因此挑剔性强的用户所选择的电影也往往会更为流行。

设Ui为最早到之后某时刻内选择电影i的用户集合,电影i在该时刻下的流行度Pi受到在该时段内选择该电影的各个用户的独特性Su共同影响,计算方式如式(3)所示:

(3)

设Iu为用户u从最早到之后某时刻内所选择的电影集合,那么用户u在该时刻下的独特度Su受该用户在该时段内所选择的各个电影的流行性Pi共同影响,计算方式如式(4)所示:

(4)

2.1.2 电影流行度权值计算公式

在某时刻下,本文赋予各用户相同的初始独特度,然后根据用户对电影的选择关系,计算该时刻下所有电影的流行度,接着根据计算所得的电影流行度集合再次计算用户的独特度,然后根据计算得出的用户独特度集合继续计算电影的流行度,此后继续重复上述计算过程,不断地进行迭代,直至达到平衡。

基于豆瓣K5数据集研究发现,在经过一定次数的相互迭代后,电影流行度Pi与用户独特度Su最终会在一定范围内发生稳定且有规律的振荡变化,而在对其后每次的迭代结果研究后发现,每部电影的流行度Pi与每位用户的独特度Su的数值与其各自集合的平均值最终会保持一个固定的比值。

(5)

(6)

如图3所示,在对电影流行度比值集合的研究中发现,电影流行度比值的分布非常不均匀,主要集中在纵轴的底部,这也印证了在现实场景中冷门电影占据电影总量的绝大部分。

图3 各电影流行度比值分布图

然而,如果直接将大量集中的电影流行度比值作为电影流行度权重,可能会导致大量电影在相似度计算中的贡献度相近,因此需要对电影流行度比值进行适当调整,以减弱个别极大值的影响与扩大冷门电影之间的差异性。

在尝试了多种处理方法后,本文构建了电影流行度权值(Movie Popularity Weight,MPW)用以表征电影项目权值,计算公式如式(7)所示:

(7)

如图4所示,MPW计算公式可以扩大大量集中在[0,5]值域范围内的电影流行度比值的差异性,同时也相对减弱了电影流行度比值中的极大值影响。

图4 MPW计算公式函数图

如图5所示,在使用MPW计算公式对电影流行度比值集合进行调整后,电影的流行度权值能够较为均匀地分布在一定的值域内,基本满足期望。

图5 MPW计算公式处理后的值分布图

2.1.3 MPWCosine相似度算法

设Iu与Iv分别为用户u与用户v的评价电影集,Ru,i与Rv,i分别为用户u与用户v对电影i的评分,使用MPW计算公式对余弦相似度算法进行改进,得到MPWCosine相似度算法,如式(8)所示:

MPWCosineu,v=

(8)

其中,指数α用于控制电影流行度权重影响因素在相似度计算过程中的参与程度,且当α=0时,该相似度算法等价于余弦相似度算法。

2.2 基于观影时间顺序因素的一致性度量方法

2.2.1 观影顺序一致性理论

本文认为两位用户对共同评价电影的观看时间顺序也会影响彼此之间的相似度,这是由于用户的喜好会随着时间的流逝而发生变化,而喜好的变化会体现在对不同特征电影的观看顺序上。

对于两位用户来说,如果他们的观影顺序拥有较高的一致度,那么可以认为即使时间推移,两位用户的喜好仍然存在较高的相似情况;而如果两位用户观影顺序的一致程度较低,则可以认为这两位用户的喜好随着时间的推移而发生了偏差,这个偏差可能一直存在,也有可能现在正在发生。

因此本文提出观影顺序一致性理论,认为在对用户进行相似度计算时,两位用户对共同评价电影的观看顺序的一致度能在一定程度上反映出该二人的兴趣喜好随着时间的流逝而发生的偏移程度。一致度越高则说明两位用户的喜好偏移程度越低,反之则说明两位用户的喜好偏移程度较高。

2.2.2 观影顺序一致性度量公式

以肯德尔相关系数理论[22]为基础,在仅考虑一致对这一积极因素的前提下,本文提出了SCK(Single Consistency Kendall)度量公式,用以度量两位用户间某方面的一致性,如式(9)所示:

(9)

其中,c与d代表一致对的数量与非一致对的数量。

观影顺序一致性因素作为拓展因素,其通过对两位用户进行整体上的衡量来发挥作用,故SCK度量公式与任一相似度算法Simu,v的形式结合如式(10)所示:

SCKSimu,v=Simu,vSCKu,v

(10)

如图6所示,基于豆瓣K5数据集,使用SCK度量公式对用户之间观影顺序的一致度进行计算,发现所得的原始一致度值(下称原始值)的分布范围较广。

图6 原始一致度值与数量分布情况

由于观影顺序一致性因素作为对现有相似性计算公式的拓展,它需要与相似性计算公式进行配合才能够更好地发挥作用,因此如果直接使用原始值参与相似度计算,则其较大的分布范围会在部分情况下造成极大的数值差距,使观影顺序一致性因素在相似度计算中成为决定性因素,影响与之配合的相似性计算公式的作用发挥。因此,本文希望能够对原始值进行适当的调整,缩小其值的差异性及分布范围,以平衡原始一致度值的差异性与一致性因素的决定性。

在余弦相似度算法的配合下,使用数个调整方式进行对比后,本文提出了用户之间观影顺序一致性(Consistency in Viewing Sequence,CVS)度量公式,如式(11)所示:

(11)

如图7所示,经由CVS度量公式计算后,观影顺序一致度值的分布范围相比较于原始值的分布范围有所缩小,并且两者的数量分布形态也较为相似。

图7 收敛后的一致度值与数量分布情况

2.2.3 MCC相似性度量公式

由于观影顺序一致性度量公式是对两位用户整体发挥作用,因此,在使用观影顺序一致性度量公式对MPWCosine相似度算法进行整体改进后,得到的MCC(MPWCosine-CVS)相似性度量公式如式(12)所示:

MCCu,v=MPWCosineu,vCVSu,vβ

(12)

其中指数β用于控制观影顺序一致性影响因素在相似度计算过程中的参与程度,且当β=0时,该相似度算法等价于MPWCosine相似度算法。

3 实验及分析

3.1 实验环境

硬件方面,本文实验所使用的计算机处理器规格为Intel(R) Core(TM) i7-11800H @ 2.30 GHz,内存容量为32 GB,显卡规格为NVIDIA GeForce RTX 3070 Laptop,专用显存容量为8 GB。

软件方面,操作系统使用Windows 10 22H2版本,编程语言为Java,开发软件使用IntelliJ IDEA Ultimate 2023.1.1版本,JDK版本为1.8,数据库管理系统使用MySQL 8.0,缓存使用Redis 3.1.0-windows版本。

3.2 数据集

本文除了使用Netflix Prize数据集进行实验外,在不影响网站正常运行的前提下,自行从豆瓣网电影频道(https://movie.douban.com)以用户为单位收集已公开的评论数据,以此构建新的数据集。

(1)Netflix Prize数据集

Netflix Prize数据集中拥有约48万名用户对超过1.7万部电影的约1亿条评价数据,但由于受到实验设备性能的限制,无法直接使用庞大的Netflix Prize数据集进行实验,因此对其以用户为单位进行随机筛选。

本文将筛选出的数据集命名为Netflix Prize-5K数据集,它与Netflix Prize数据集的结构信息如表1所示。

表1 不同体积的Netflix Prize数据集结构表

Netflix Prize-5K数据集中评论时间跨度及用户数量分布情况如图8所示。

图8 Netflix Prize-5K数据集评论时间跨度及用户数量分布图

(2)自行构建的豆瓣K5数据集

本文从豆瓣网电影频道对电影数据、用户数据及评论数据进行了较为系统的收集,并且通过数据清洗及条件筛选,对原始数据集进行精简并得到了如表2所示的三个拥有不同数据量的数据集。

表2 不同体积的自构数据集结构表

在对研究需求与实验效率这两方面的因素进行综合考虑后,本文决定采用K5数据集作为实验用途数据集,同时也将其作为在研究过程中使用的主要数据集。

K5数据集中评论时间跨度及用户数量分布情况如图9所示。

图9 K5数据集评论时间跨度及用户数量分布图

3.3 评价指标

在本文的实验中,主要采用平均绝对误差(Mean Absolute Error,MAE)与均方根误差(Root Mean Square Error,RMSE)[23]来衡量用户的预测值与真实值之间的偏差程度。

(13)

(14)

3.4 实验设计与结果

在本文实验中,训练集的占比为80%,测试集的占比为20%,采用交叉验证的方式,每项实验均进行五轮,并且在实验的过程中,均采用kNN(k-Nearest Neighbor)算法[24]来寻找与目标用户最为相似的k名用户。

(1)实验1:MPWCosine相似度算法中不同α值的影响

将参数α以1的步长从0提升至10,然后在Netflix Prize-5K与K5数据集上分别进行实验,计算MPWCosine相似度算法在不同k-Neighbor值(k值)下的RMSE指标。

在Netflix Prize-5K数据集上的实验结果如图10所示。图10显示,在各个k值下,MPWCosine相似度算法的RMSE指标在α值从0提升至1的过程中下降幅度较为明显,其后便逐渐保持平稳,此时在总体上优于余弦相似度算法(α=0),而当α>2后,RMSE指标出现回弹。

图10 Netflix Prize-5K数据集上各k值下不同α值的影响

在Netflix Prize-5K数据集上,当α=2时,MPWCosine相似度算法与余弦相似度算法在各k值下的对比如图11所示。

图11 Netflix Prize-5K数据集上不同α下的RMSE对比图

在K5数据集上的实验结果如图12所示。

图12 K5数据集上各k值下不同α值的影响

图12显示,在各个k值下,MPWCosine相似度算法的RMSE指标在α值从0提升至6的过程中下降幅度较为明显,其后便逐渐保持平稳,在总体上优于余弦相似度算法(α=0)。

在K5数据集上,当α=10时,MPWCosine相似度算法与余弦相似度算法在各k值下的对比如图13所示。

图13 K5数据集上不同α下的RMSE对比图

以上实验结果说明了当MPWCosine相似度算法中的参数α处于1~10的值域范围内时,存在一定的α取值使得MPWCosine相似度算法的推荐精度相比较于余弦相似度算法,有较为明显的提升。

(2)实验2:MCC相似性度量公式中不同α与β值的影响

在不同k值下,将参数α以1的步长从0提升至10,将参数β以0.5的步长从0提升至5,然后在Netflix Prize-5K与K5数据集上分别进行实验,计算MCC相似性度量公式在不同的参数组合下的RMSE指标与MAE指标,最后与FPC相似度算法、weighted PCC相似度算法进行比较。

在Netflix Prize-5K数据集上的实验结果如图14所示,其中图(a)为k=50时的实验结果,图(b)为k=100时的实验结果。

图14 Netflix Prize-5K数据集上不同k值下不同α与β值的影响

在Netflix Prize-5K数据集上的实验结果显示,随着β值的提升,MCC相似性度量公式的RMSE指标总体呈现出一种先下降后上升的态势,最佳的参数值区间约为[0.2,0.8],而α值在其中的影响规律与实验1相似,总体相较于MPWCosine相似度算法(β=0)有着一定的提升,同时相较于余弦相似度算法(α=0且β=0)也有着一定的提升。

在Netflix Prize-5K数据集上,当α=2且β=0.3时,MCC相似性度量公式与FPC相似度算法、weighted PCC相似度算法在不同k值下的比较结果如图15所示,其中图(a)为RMSE指标,图(b)为MAE指标。

图15 Netflix Prize-5K数据集上多种相似度算法比较

在K5数据集上的实验结果如图16所示,其中图(a)为k=50时的实验结果,图(b)为k=100时的实验结果。

图16 K5数据集上不同k值下不同α与β值的影响

在K5数据集上的实验结果显示,随着β值的提升,MCC相似性度量公式的RMSE指标总体也呈现出一种先下降后上升的态势,最佳的参数值区间约为[1.5,2.0],而α值在其中的影响规律也与实验1相似,总体相较于MPWCosine相似度算法(β=0)有着一定的提升,同时相较于余弦相似度算法(α=0且β=0)也有着一定的提升。

在K5数据集上,当α=10且β=1.5时,MCC相似性度量公式与FPC相似度算法、weighted PCC相似度算法在不同k值下的比较结果如图17所示。

图17 实验2中K5数据集上多种相似度算法比较

以上实验结果说明了MCC相似性度量公式相较于其他改进型相似度算法,在推荐精度上有较为明显的提升。

4 结束语

本文首先从电影流行性计算方式这一角度出发,针对用户与电影之间的相互影响关系进行了深入研究,阐述了“用户独特性”与“电影流行性”之间存在的自洽逻辑,构建了用于描述两者间相互影响方式的数学表达式,并在该表达式的基础上提出了电影流行度权值计算公式。接着,通过探究用户之间的观影时间顺序一致性与兴趣转变之间的关系,提出了观影顺序的一致程度能够在一定程度上体现用户间相对兴趣转变程度的观点,并在此基础上构建了观影顺序一致性度量公式。最后,根据以上研究内容对余弦相似度算法进行了改进并设计了多个对比实验。实验结果表明,本文的研究成果能够有效地提高推荐系统的准确度,具有非常重要的现实意义与应用价值。

本文虽然提出了一些可以提高推荐系统准确度的新思路,但仍然存在一些不足之处,这些不足之处可以成为今后的研究内容:

(1)对电影流行度权值计算方法的改进可以考虑将用户与电影间存在的自洽逻辑与时序因素相结合,探究用户评价信息中存在的观影时序信息对权值计算的影响,从而对当前的权值计算方法进行改进。

(2)对观影顺序一致性度量方法的改进可以考虑从时间的远近角度对“一致对”进行加权,提高近期的电影观看行为在相似度计算时的贡献度,也可以考虑从喜好稳定程度的角度入手,在一致性计算中考虑喜好稳定性这一因素。

猜你喜欢
集上度量权值
一种融合时间权值和用户行为序列的电影推荐模型
鲍文慧《度量空间之一》
模糊度量空间的强嵌入
CONTENTS
Cookie-Cutter集上的Gibbs测度
链完备偏序集上广义向量均衡问题解映射的保序性
迷向表示分为6个不可约直和的旗流形上不变爱因斯坦度量
复扇形指标集上的分布混沌
基于权值动量的RBM加速学习算法研究
地质异常的奇异性度量与隐伏源致矿异常识别