1. 引言
面对海量的信息,用户从中获取自己所需要的信息所消耗的时间将大幅增加,而推荐系统作为解决信息过载的有效手段,主要功能是在海量的数据中为用户找出当前最合适的信息,以缓解信息过载的问题。传统的推荐系统主要分为3种:基于内容的推荐、基于协同过滤推荐和基于混合推荐。当前推荐系统中应用最广的算法是协同过滤,协同过滤是通过用户过往的项目评分差异来计算用户之间的相似度,然后根据用户之间的历史评分和相似度计算效用值,最后得出用户的潜在偏好。协同过滤最常见的范例是嵌入来表示用户和项目,并且基于已经嵌入的向量进行预测。后来一些研究发现通过改进用户子图结构,也就是使用它的单跳邻居来改进嵌入学习 [1],可以提高嵌入的质量。
为了深入使用具有高跳邻居的子图结构,Wang等人提出了NGCF,并为CF实现了优秀的性能。它从图卷积网络(GCN)中获得了灵感,遵循同样的原则细化嵌入的传播规则:特征变换、邻域聚合和非线性激活。虽然NGCF已显示出优秀的结果,但He等人认为其设计相当繁重和许多操作都是在没有正当理由的情况下直接从GCN继承的。因此,他们对NGCF进行了简化称其为NACF,证明了从GCN继承的两种操作特征转换和非线性激活对NGCF的有效性没有贡献。更令人惊讶的是,删除它们会显著提高准确性。
本文以电影推荐任务为载体研究NACF模型。利用MovieLens标准数据集设计实验验证了基于邻域聚合的协同过滤电影推荐系统的有效性,主要工作如下。
第一,设计实现基于邻域聚合的协同过滤电影推荐系统。相较于传统的推荐算法,图卷积神经网络具有更为强大的数据表征学习能力,同时相较于传统的深度学习模型,图卷积神经网络通过将原始输入数据转化为以图的结构数据,不仅能够学习数据对象本身的特征信息,并且还能学习数据对象在图中的空间特征信息,从而能够进一步提升特征提取的效果 [2]。因此,本文采用在NGCF上进行改进的NACF来构建电影推荐系统。
第二,基于 MovieLens标准数据集设计对比实验。从推荐算法模型预测评分的准确率以及生成推荐列表的准确性两个维度对传统推荐算法模型与NACF模型的推荐结果进行对比、评价、验证电影推荐系统的有效性。
2. 基于邻域聚合的协同过滤推荐模型
NGCF是一个用于协同过滤的沉重而繁琐的GCN模型 [3]。正是因为这些原因,本文选择一个既拥有GCN基本成分又轻而有效的模型——NACF。与NGCF相比NACF更容易训练和维护,从技术上讲更容易分析模型行为,在本节中,我们首先介绍NACF模型,如图1所示。然后,我们对NACF进行了深入分析,以展示其设计背后的合理性。最后,我们描述了如何进行推荐模型训练。
Figure 1. Collaborative filtering model architecture based on neighborhood aggregation
图1. NACF模型架构
2.1. 模型介绍
GCN为了实现通过在平滑图上的特征来学习节点的表示,它迭代地执行图卷积,也就是将邻居的特征聚合为目标节点的新表示。这种邻域聚合可以抽象公式如下所示。
(1)
AGG是一个聚合函数(图卷积的核心),它注意目标节点以及和目标节点相邻节点的第k层表示。很多方法中都用到了AGG,比如GIN、GraphSAGE、BGNN等,这些方法的聚合器都用到了AGG [4]。虽然他们在节点或者图形分类任务中效果良好,但是它们设计繁琐计算复杂成为协同过滤的负担 [5]。
2.1.1. 简化的图卷积
在NACF中使用的是简化后的加权和聚合器,去掉了使模型变得更加复杂的特征变换和线性激活。NACF中的传播规则被定义为。
(2)
(3)
为了避免嵌入的规模随着图卷积的运算增加而增加,这里的对称归一化项
依旧遵循GCN
的标准设计。
图卷积运算通常需要聚合扩展的邻域,并且需要专门处理的自连接 [6]。与大多数图卷积不同的是,简化后的图卷积只聚合已经链接的邻居,而不会集成目标节点本身,这是根据层组合操作基本上与自连接效果相同 [7]。
2.1.2. 层组合
在NACF中,只有第0层的嵌入可以训练模型的参数,当给出表示所有用户的
和表示所有项目的
时,就可以通过等式(2)中定义的LGC计算更高层的嵌入。在经过k层的LGC之后,我们再组合每一层的嵌入就得到用户和项目的最终表示。
(4)
式中的
是大于0的,它表示的是第k层嵌入在最终嵌入中的比重。它是一个可以手动调节的参数,可
以看作一个自动优化模型的参数。在实验中,将
统一设置成
实验效果一般会比较好。所以,在
本实验中不对
进行优化来避免使整个模型复杂化,保持模型的简单性。本文实验采用层组合来获取最终表示的原因有三个。1) 在层数增加的同时嵌入会出现过平滑的现象,所以如果只使用最后一层是不对的。2) 不同层的嵌入捕获到的信息是不同的,因此使用层组合将使表示更加准确。3) 不同层的嵌入与加权和结合可以得到图卷积与自连接的效果。
用户和项目的最终表示的内积是模型预测。
(5)
作为生成推荐排名的分数。
2.1.3. 矩阵形式
模型的矩阵形式是让用户项的交互矩阵为
,其中M表示用户数量N表示项目数量,当
为1时表示用户与项目交互,当
为0时表示用户与项目不会交互。然后就得到了用户–项目图的邻接矩阵。如下所示。
(6)
表示第0层的嵌入矩阵
,T代表嵌入的大小。然后我们可以得到LGC的矩阵等价形式为:
(7)
D代表的是
对角矩阵,
代表邻接矩阵A的第i行向量中非零项的数量。最后,我们得到了用于模型预测的最终嵌入矩阵:
(8)
其中,
代表对称归一化矩阵。
2.2. 模型分析
我们将对模型进行分析来说明基于邻域聚合的协同过滤电影推荐系统设计的合理性。首先来讨论与去掉特征变换和非线性激活的GCN (SGCN)的联系,SGCN是一个线性GCN模型,它的自连接是集成到图卷积中的,这就表明通过层组合NACF中拥有自连接的影响,所以NACF不用在邻接矩阵中添加自连接 [8]。其次,我们来分析模型与个性化神经预测传播(APPNP)的关联,APPNP是一个GCN的变体,它通过PageRank解决了过度平滑的问题;这显示出NACF和APPNP之间存在潜在等效性,NACF在远程传播方面的过平滑是可以控制的。
二阶嵌入光滑性
由于NACF是线性的且具有简单性,这使得模型更容易分析,下面我们就深入地了解它是怎么平滑嵌入的。以一个两层的NACF来证明图模型的合理性,以用户端为例,第二层平滑了交互的项目上有重叠的用户。
(9)
可以看出,如果另一个用户v与目标用户u有共同交互关系,则v对u的平滑强度用系数表示(否则为0)。
(10)
这个系数可以解释为:二阶邻居v对u的影响,这个影响是由以下几点决定的,1) 共同交互的项目数量越多影响就越大;2) 交互的项目越不受欢迎越能表现用户的个性,所以交互的项目的受欢迎程度越低影响越大;3) 邻居v的活跃的越低影响越大。
2.3. 模型训练
LightGCN的可训练参数仅为第0层的嵌入,即
;也就是说,NACF的复杂性与MF是相同
的。模型采用贝叶斯个性化排名(BPR)损失,它的损失是成对的,它推崇预测一个观察到的项目要高于它没有观测到的项目:
(11)
式中
控制的是L2的正则化权重们使用的是am优化器,并以mini-batch的方式使用它。
因为我们的模型中没有使用特征变换矩阵,所以模型没有使用通常在GCNs和NGCF中使用的dropout机制。为了解决这一点在模型的嵌入层上强制L2正则化,这样就可以防止过拟合。这就凸显出NACF比NGCF更容易训练的特点。
3. 实验
3.1. 电影数据集
本文采用MovieLens 1M数据集,MovieLens是由GroupLens研究组根据MovieLens网站提供的数据制作数据集,这个数据集中包含了6000个用户,有关于4000部电影的一亿条评论。MovieLens数据集可以说是推荐系统领域中最为经典的数据集之一。数据集中有三个文件,分别是用户数据users.dat和电影数据movies.dat以及评分数据ratings.dat。
数据集处理
在电影数据这个文件中包含了三个字段,分别是电影ID字段、流派字段、标题字段。在处理电影ID字段时不用做出改变,流派字段时一种分类的字段,因为有些电影时属于多个分类的,为了方便处理所以将所有电影的流派转化成字符串映射到数字的字典,最后将电影的流派转成一个数字列表。最后是标题字段,处理的方法与电影流派处理的方法是类似的,值得注意的是,标题中的年份需要去掉,保持流派字段和标题字段长度相同,这样主要是为了方便神经网络的处理,空白部分用“ < PAD > ”对应的数字填充。
3.2. 实验环境
3.2.1. 比较方法
我们将基于邻域聚合的协同过滤(NACF)与基于贝叶斯个性化排序的矩阵分解(BPRMF)和图神经网络协同过滤(NGCF)进行比较,与NACF竞争的方法主要是NGCF,因为它已经被证明优于几种方法了,包括基于GCN的模型GC-MC和PinSage [9],因为比较是在同一条件下同一数据集进行的所以就不与这些方法进行比较了,BPRM是通过最大化后验概率进行学习的,它这样做的目的是为了使访问过的项目优于没有访问过的项目,它使用的是用户的点击矩阵而非评分矩阵,所以它最后得到的矩阵与原始的矩阵关联性不大。
3.2.2. 超参数设置
在本项目中,模型嵌入的大小与NGCF都固定为64,嵌入参数初始化的方法是Xavier。NACF用
Adam优化,默认学习率和batch-size分别为0.001和1024。L2正则化系数
在
中搜索,在一般情况下,最优值为1e−4。层组合系数
统一设置成
,k代表层数,K的范围在1到4之间,
当k等于3时结果比较理想。
3.3. 性能比较
首先我们将BPRMF与NGCF进行比较,如图2所示是BPRMF与NGCF的训练损失曲线,它们最后的结果相差不大但还是NGCF相对优秀一点,如图3所示是BPRMF与NGCF的召回率曲线,由图可知NGCF的召回率在绝大多数时候都是要高于BPRMF的,由图2和图3可知NGCF的性能要优于BPRMF。
其次我们将NACF与NGCF进行比较,我们在图4和图5中绘制了NACF的损失率和召回率的训练曲线,用来揭示我们的模型的优势以及明确训练的过程。图中显示的结果如下:
在所有情况下基于邻域的协同过滤表现都远远优于NGCF,在训练过程中,NACF相比于NGCF损失始终都很低,这说明NACF比NGCF更适合训练数据。NGCF最高的召回率是0.2958,而NACF在4层设置下可以达到0.3468,相比之下基于邻域聚合的协同过滤要比NGCF优越很多。
最后我们绘制了表1,表1显示了与对比方法的性能比较。我们展示的是每种方法可以获得的最优效果,从表中可以看出基于邻域聚合的方法在MovieLens数据集上始终是优于其他两种方法的。
Table 1. Model performance comparison
表1. 模型性能比较
4. 结论
本文首次将NACF应用到电影领域,NACF是一个在图神经网络协同过滤上改进的模型,它相比于图神经网络协同过滤有计算更加简单、计算速度更快、准确率更高的优点。将它与另外两个比较经典的算法进行比较,比较结果得出基于邻域聚合的协同过滤电影推荐系统效果要明显优于另外两种模型。
本系统仍有改进的空间,可以在层组合之间添加权重,以便为不同的用户实现个性化推荐。
基金项目
甘肃省青年科技基金(21JR1RA21)、中央高校基本科研业务费专项资金项目(31920210134)、国家档案局科技项目(2021-X-56)与甘肃省档案科技项目(GS-2020-X-07G)。
NOTES
*通讯作者。