2. 国家林业和草原局 林业智能信息处理工程技术研究中心, 北京 100083;
3. 北方工业大学 信息学院, 北京 100144;
4. 中国科学院 自动化研究所, 北京 100190
2. Forestry Intelligent Information Processing Engineering Technology Research Center, National Forestry and Grassland Administration, Beijing 100083, China;
3. College of Information, North China University of Technology, Beijing 100144, China;
4. Institute of Automation, Chinese Academy of Sciences, Beijing 100190, China
协同过滤算法是个性化推荐算法中经典算法之一,其核心思想是向用户推荐与该用户类似的用户感兴趣的信息[1]。由于协同过滤算法在个性化推荐算法中表现优异,因此被广泛运用于各类推荐系统中。常见的协同过滤算法有:Koren等[2]提出的矩阵分解协同过滤模型、He等[3]提出的深度神经网络协同过滤(neural collaborative filtering,NeuCF)模型以及Wang等[4]提出的图卷积神经网络协同过滤(neural graph collaborative filtering,NGCF)模型。在利用矩阵分解[2, 5]实现协同过滤模型时,具体的做法是把一个评分矩阵直接拆分为2个子矩阵,分别代表用户的特征向量以及条目的特征向量。但是,这样处理导致在模型中利用内积建模[6]只能获得用户与条目之间的线性关系,无法捕获用户与条目交互数据中隐藏的非线性关系。为此,有许多研究者利用深度神经网络来进行协同过滤,尤其是将图结构应用到深度神经网络的学习中。
基于图的深度神经网络模型需要考虑节点的嵌入,主要通过图嵌入学习来获得节点的嵌入信息。图嵌入学习可以充分捕获图的拓扑结构特征、节点到节点的关系,以及关于图、子图和节点的其他相关信息,从而能准确表达出图的特征以及图中节点的特征。图嵌入学习方法主要是以Wu等提出的SocialGCN模型[7]、Perozzi等提出的DeepWalk模型[8]为代表的基于随机游走、多重迭代的遍历策略来生成图嵌入的算法。另一种图嵌入方法是利用损失函数引导梯度下降[9],使得嵌入信息能表达出图中节点的特征。基于图嵌入可以将图的结构与深度学习结合来进行个性化推荐。例如,图卷积神经网络[4]方法通过在图上定义卷积算子来获得图中节点的嵌入信息。该模型迭代地聚合了节点的相邻节点的嵌入信息,并使用前一次嵌入传播中获得的嵌入信息以及相应的函数来生成新的嵌入信息。图卷积神经网络中的局部邻域聚合的嵌入信息使该模型具有可扩展性,并且允许多次嵌入传播,从而使一个节点的嵌入信息聚合相邻节点的嵌入信息。
目前基于图结构的神经网络模型[10-12]通常将用户-条目交互关系建模为二部图。二部图是异构图的一种特殊情况,可以将二部图的顶点集合拆分成2个子集,任意一条边的2个顶点都分别在这2个子集里。异构图指的是存在不同类型的节点或不同类型的边的图结构。二部图中用户和条目是2个独立的点集,不存在用户-用户边、条目-条目边,仅含有用户-条目边。用户-条目之间相连的边代表它们之间的交互关系。然后,通过在二部图上依靠图中的高阶连通性建立模型,捕获隐藏的用户之间与条目之间的关系。例如,Li等提出的基于图卷积神经网络的协同过滤模型[10], 以及Van Den Berg等提出的图卷积矩阵补全模型(graph convolutional matrix completion, GC-MC)[13],都是将用户-条目交互关系建模成二部图,用户和条目是2个独立的点集,只含有用户-条目边,这也导致了二部图的稀疏性。在基于图卷积神经网络协同过滤模型[10]中,二部图结构的稀疏性使得该模型需要依赖图中的高阶连通性建模,以捕获潜在的用户-条目交互关系。之后,利用图卷积神经网络这一有效的图上特征向量学习框架,将图结构数据直接用于训练,从而得到用户和条目的嵌入信息,最后利用用户和条目的嵌入信息进行模型预测。在图卷积矩阵补全模型[13]中,由于只利用了二部图中的一阶相邻节点用于训练,而不能充分捕获用户和条目之间的交互关系。Yang等提出的HOP-Rec模型[14]利用随机游走方法来捕获更多隐藏的用户与条目之间关系以丰富矩阵分解模型(matrix factorization,MF)的训练数据。
可见,目前采用二部图结构的协同过滤算法主要有以下3个可以完善的方面:1) 二部图结构中隐含着用户之间的相似关系和条目之间的相似关系,这些隐含的关系没有被显式地编码进图结构数据中。2) 二部图具有稀疏性。二部图中仅有用户-条目的边,不存在用户之间或条目之间的边,使得图结构较为稀疏。二部图的稀疏性使得基于二部图的模型需要依赖高阶连通性建模。3) 基于二部图神经网络的模型对计算能力要求高,加长了训练时间。以基于二部图卷积网络的协同过滤模型为例,该模型叠加了多个隐藏层,即利用二部图中高阶连通性进行建模。但是,图卷积网络累加的层数[15]过多时,会出现过平滑现象,使训练结果变差。因此,该模型不能保证二部图上的高阶连通性能被有效用于建模。
为此,考虑到异质图神经网络在许多领域的广泛应用,例如链路预测、节点分类[16-17]、事件抽取[18]等,本文提出了一种基于异质图神经网络的协同过滤模型。该模型利用了用户与条目之间的交互关系来建模,通过训练学习得到用户和条目的特征向量之后,利用用户和条目的特征向量预测用户可能感兴趣的条目或者对某个条目感兴趣的可能性。本文提出的异质图模型具有如下优势:1) 图中的用户之间相似度和条目之间的相似度可以直接编码到图结构中,并在嵌入传播过程中显式利用。2) 图中的节点连通性变得更好,同时图中的节点将更加聚集,解决了二部图的稀疏性问题。3) 用户更容易访问图结构数据中的条目,因为添加边后,用户、条目之间的访问距离减短,从而降低了对高阶连通性的依赖。
最后,将本文提出的异质图神经网络协同过滤模型在4个公开的数据集上进行了实验,并与4种经典方法进行了比较,实验结果验证了异质图神经网络协同过滤模型的有效性。
1 异质图神经网络协同过滤模型 1.1 二部图与异质图
|
| 图 1 二部图 |
|
| 图 2 异质图 |
图 1是只添加用户-条目边的二部图,图 2是基于用户之间的相似度和条目之间的相似度构建的异质图。其中:u1、u2、u3表示用户节点;i1, i2, …, i5表示条目节点。相比于图 1的二部图,图 2的异质图添加了(u1, u2)、(u2, u3)、(i1, i3)、(i3, i5) 4条边。通过这种方式,用户之间的相似度和条目之间的相似度可以在图结构中被明确地编码,并且可以在嵌入传播过程中被直接学习到。
高阶连通性可以通过用户到达除直接相邻节点之外的任何节点的路径的步数来度量。在二部图和异质图上分别进行广度优先搜索,广度优先搜索的起点是u1, 搜索过程中的优先级是priority(i1)>priority(i2)>priority(i3)>priority(i4)>priority(i5)>priority(u1)>priority(u2)>priority(u3),继而得到如图 3和4所示的二部图广度优先搜索生成树和异质图广度优先搜索生成树,可以观察到高阶连通性在二部图和异质图上的区别。
|
| 图 3 二部图广度优先搜索生成树 |
|
| 图 4 异质图广度优先搜索生成树 |
对比图 3二部图广度优先搜索生成树和图 4异质图广度优先搜索生成树可以看到,u1在二部图广度优先搜索生成树上到达i5路径为u1→i1→u2→i5,需要3步到达i5;而在异质图广度优先搜索生成树上到达i5的路径为u1→i3→i5,仅需要2步到达。这是由于i3与i5的相似度在异质图中直接以边的形式体现,从而减少了到达的距离,只需2步就可以在异质图中捕获u1与i5的潜在关系。
类似地,可以看到u1在二部图广度优先搜索生成树上到达u2的路径为u1→i1→u2,需要2步到达u2;而在异质图广度优先搜索生成树上到达u2的路径为u1→u2,仅需要1步到达。这也是由于u1与u2的相似度在异质图中直接以边的形式体现。
为了直观地看到广度优先生成树的生成过程,将图 2异质图经过几何变换可以得到图 5所示的广义的异质图结构。可见,在用户之间、条目之间添加边可以增强图的连通性,从而降低对高阶连通性的依赖。
|
| 图 5 异质图广义结构 |
1.2 异质图的构建
异质图可以用G来表示,G={Node,Edge}。其中:Node为节点的集合,Edge为边的集合。Node包括2种类型,用户节点和条目节点,分别表示为U={u1, u2, u3, …, un}和I={i1, i2, i3, …, im}。Edge包括3种类型,分别为用户到条目的边Edgeui、用户到用户的边Edgeuu、条目到条目的边Edgeii。
在异质图结构中,用户与条目之间存在一条边,代表该用户曾经点击或者访问过该条目,则模型认为该用户对该条目可能感兴趣。用户与用户之间存在一条边,代表这2个用户曾经点击或者访问过多个相同或相似的条目,则模型认为这2个用户具有高度相似性。类似地,条目与条目之间存在一条边,代表这2个条目曾经被多个相同或相似的用户点击或访问过,则模型认为这2个条目具有高度相似性。
假设函数N(·)返回相邻节点的集合。对于节点x和y,采用3种不同的相似度计算方法来获得异质图结构的相似度,分别为点间互信息(pointwise mutual information,PMI)[19]、余弦相似度(Cosine)和Jaccard指数:
| $ \operatorname{PMI}(x, y)=\log _2 \frac{|N(x) \cap N(y)| \cdot|I|}{|N(x)| \cdot|N(y)|}, $ | (1) |
| $ \operatorname{Cosine}(x, y)=\frac{|N(x) \cap N(y)|}{\sqrt{|N(x)| \cdot|N(y)|}}, $ | (2) |
| $ \begin{gathered} \operatorname{Jaccard}(x, y)= \\ \frac{|N(x) \cap N(y)|}{|N(x)|+|N(y)|-|N(x) \cap N(y)|}= \\ \frac{|N(x) \cap N(y)|}{|N(x) \cup N(y)|} . \end{gathered} $ | (3) |
基于不同的相似度计算方法,首先设置一个相似度阈值t,当2个节点之间的相似度大于相似度阈值t时,则在2个节点之间添加边。当2个节点之间具有交互关系时也需要添加边,接着添加自环,不属于上述情况时则不添加边。
基于上述的转换方法,可以得到式(4)的构图条件,A为邻接矩阵。
| $ A_{i j}= \begin{cases}1, & \text { 当 } \operatorname{Similarity}(i, j)>t \text { 时; } \\ 1, & \text { 当 } i=j \text { 时; } \\ 1, & \text { 当 } i \text { 与 } j \text { 之间有交互关系时; } \\ 0, & \text { 当不属于上述情况时. }\end{cases} $ | (4) |
在构建异质图后,可以得到邻接矩阵A。用户和条目采用嵌入信息表示,嵌入信息是用于表达用户或条目特征的一个向量。在本文中,使用eu来表示异质图数据中的用户u的特征,使用ei来表示异质图数据中的条目i的特征。
把异质图中用户和条目的嵌入信息合在一起后,可以得到一个特征矩阵E,矩阵中的每个向量都代表某个用户或者某个条目的嵌入信息。
| $ \begin{gathered} \boldsymbol{E}=\left[\boldsymbol{e}_{u_1}, \boldsymbol{e}_{u_2}, \cdots, \boldsymbol{e}_{u_n}, \boldsymbol{e}_{i_1}, \boldsymbol{e}_{i_2}, \cdots, \boldsymbol{e}_{i_m}\right] \\ \left(\boldsymbol{e}_u \in {\bf{R}}^d, \boldsymbol{e}_i \in {\bf{R}}^d\right) . \end{gathered} $ | (5) |
为了使用户和条目的图嵌入学习能够学到更多的特征,从而能更准确地表达用户和条目的特征,利用了图卷积神经网络的嵌入传播模型。
在图卷积神经网络模型中,每个嵌入层都将上一层的嵌入层作为本层的输入,同时将本层的嵌入层作为下一层的输入。嵌入经过层层传播就可以捕获异质图中用户和条目之间的交互关系,从而准确地表达出用户和条目的特征。
在图卷积神经网络中的嵌入传播过程可以大致分成2个步骤:信息构造和信息聚合。
1) 信息构造。
假设当前的嵌入信息由节点p流向节点q,那么信息构造公式为
| $ {\bf{Info}}_{q \leftarrow p}=\frac{\boldsymbol{W}_1 \boldsymbol{e}_p+\boldsymbol{W}_2\left(\boldsymbol{e}_p \odot \boldsymbol{e}_q\right)}{\sqrt{|N(p)| \cdot|N(q)|}} . $ | (6) |
其中:Infoq←p是节点p流向节点q的嵌入信息,W1、W2是可训练的参数矩阵,N(p)是节点p的相邻节点集合,N(q)是节点q的相邻节点集合。与以往的图神经网络类似,这里也使用Laplace算子进行归一化,即(|N(p)|·|N(q)|)-1/2。归一化可以使一个节点即使有非常多的相邻节点,也可以合理地分配权重,保证了度数高的节点和度数低的节点不会在特征分布上出现非常大的差异。
2) 信息聚合。
现在将节点q的相邻节点的嵌入信息聚集起来,可以得到节点q的节点嵌入。节点q的相邻节点可以是用户节点u,也可以是条目节点i。信息聚集公式为
| $ \boldsymbol{e}_q^{(l)}=\delta\left({\bf{I n f o}}_{q \leftarrow q}+\sum\limits_{u \in N(q)} {\bf{I n f o}}_{q \leftarrow u}+\sum\limits_{i \in N(q)} {\bf{Info}}_{q \leftarrow i}\right) . $ | (7) |
其中:eq(l)代表经过第l次嵌入传播后的节点q的表达;Infoq←q=W1eq,以尽可能保留节点q的原有的特征;δ(·)是激励函数,可以采用LeakyReLU激励函数[20]。
1.3.3 节点层面嵌入信息的高阶传播1) 信息构造。
类似于嵌入信息的一阶传播过程,可以通过累加多层嵌入传播层,来利用高阶连通性建模。
假设当前在第l层嵌入传播过程中,嵌入信息由节点j流向节点i,信息构造公式为:
| $ D_i=\sum\limits_{j \in N(i)} A_{i j}, $ | (8) |
| $ \widetilde{\boldsymbol{A}}=\boldsymbol{D}^{-\frac{1}{2}} \boldsymbol{A} \boldsymbol{D}^{-\frac{1}{2}}, $ | (9) |
| $ {\bf{Info}}_{i \leftarrow j}^{(l)}=\widetilde{A}_{i j}\left(\boldsymbol{W}_1^{(l)} \boldsymbol{e}_j^{(l-1)}+\boldsymbol{W}_2^{(l)}\left(\boldsymbol{e}_i^{(l-1)} \odot \boldsymbol{e}_j^{(l-1)}\right)\right). $ | (10) |
其中:矩阵D是矩阵A的度矩阵;
当节点i和节点j都是用户或者条目时,
3) 信息聚合。
在信息构建之后,可以累加当前层节点的相邻节点的信息得到节点的嵌入信息。假设当前在第l层嵌入传播过程中,节点q相邻的用户节点为u、相邻的条目节点为i,则聚集节点q的相邻节点的信息的聚合公式为
| $ \boldsymbol{e}_q^{(l)}=\delta\left({\bf{I n f o}}_{q \leftarrow q}^{(l)}+\sum\limits_{u \in N(q)} {\bf{I n f o}}_{q \leftarrow u}^{(l)}+\sum\limits_{i \in N(q)} {\bf{I n f o}}_{q \leftarrow i}^{(l)}\right) . $ | (11) |
其中: eq(l)代表经过第l次嵌入传播后的节点q的表达;
现在从矩阵层面分析节点的嵌入信息的传播过程。矩阵层面的嵌入信息传播是节点层面嵌入信息传播的批量实现,矩阵层面的分析能从整体视角看到节点的嵌入信息的传播过程。矩阵层面嵌入传播公式为:
| $ D_i=\sum\limits_{j \in N(i)} A_{i j}, $ | (12) |
| $ \widetilde{\boldsymbol{A}}=\boldsymbol{D}^{-\frac{1}{2}} \boldsymbol{A} \boldsymbol{D}^{-\frac{1}{2}}, $ | (13) |
| $ \boldsymbol{E}^{(l)}=\delta\left(\widetilde{\boldsymbol{A}} \boldsymbol{E}^{(l-1)} \boldsymbol{W}_1^{(l)}+\widetilde{\boldsymbol{A}} \boldsymbol{E}^{(l-1)} \odot \boldsymbol{E}^{(l-1)} \boldsymbol{W}_2^{(l)}\right). $ | (14) |
其中E(l)是节点的嵌入信息经过l次传播后的由用户和条目的嵌入信息合成的嵌入矩阵。
当l=0时,矩阵层面的嵌入矩阵为E(0)=E,节点层面则为ei(0)=ei[18]。
通过实现矩阵层面传播过程,可以在同一时间高效地更新所有用户和条目的嵌入信息。
1.3.5 异质图神经网络模型的预测过程经过L层的嵌入传播后,用户和条目的嵌入信息分别为
不同隐藏层的嵌入信息最终都有助于用户或条目的特征表达,因此将不同隐藏层的用户嵌入信息聚集在一起。类似地,也将不同层的条目嵌入信息聚集在一起。聚集公式为:
| $ \boldsymbol{e}_u^*=\|_{l=0, 1, \cdots, { }_L} \boldsymbol{e}_u^{(l)}, $ | (15) |
| $ \boldsymbol{e}_i^*=\|_{l=0, 1, \cdots, { }_L} \boldsymbol{e}_i^{(l)} . $ | (16) |
其中‖是连接运算符,表示将用户和条目的嵌入信息聚合。将用户和条目的嵌入信息根据式(15)和(16)聚合后,用户和条目的嵌入信息包含了嵌入传播过程中每一层的嵌入信息。这使得用户和条目的嵌入信息能更好地表达出自身的特征,有助于得到更优的推荐结果。
下面通过用户和条目的嵌入信息内积来预测用户对条目感兴趣的可能性。
| $ \widetilde{p}(u, i)=\boldsymbol{e}_u^{* \mathrm{~T}} \boldsymbol{e}_i^* . $ | (17) |
当用户的嵌入信息eu*和条目的嵌入信息ei*内积时,可以预测用户u对条目i的感兴趣的可能性。
1.3.6 异质图神经网络模型的损失函数损失函数是用来训练异质图神经网络中参数的一个函数。本文利用Bayes个性化排序算法算出模型每个损失,再利用正则化方法防止模型过拟合,最后利用一个聚合公式将所有损失聚集到一起,形成整个损失函数公式。Bayes个性化排序算法是基于点对的排序算法,广泛用于各类推荐系统中。
首先,使用Bayes个性化排序算法得到模型的第1个损失Loss1,
| $ \operatorname{Loss}_1=\sum\limits_{(u, i, j) \in O}-\ln \varphi\left(\tilde{p}_{u i}-\widetilde{p}_{u j}\right) . $ | (18) |
其中:
之后,使用正则化方法避免过拟合,以提高模型的泛化能力,
| $ \operatorname{Loss}_2=\sum\limits_{(u, i, j) \in O}\left(\left\|\boldsymbol{e}_u\right\|+\left\|\boldsymbol{e}_i\right\|+\left\|\boldsymbol{e}_j\right\|\right) . $ | (19) |
现在将Bayes个性化排序算法得到的Loss1与正则化项Loss2聚合在一起形成完整的损失公式,
| $ \text { Loss }=\operatorname{Loss}_1+\lambda \operatorname{Loss}_2 . $ | (20) |
其中λ是正则化系数,用来控制模型损失Loss1和正则化项Loss2的比重。
下面将模型损失Loss1和正则化项Loss2代入完整的Loss函数中得到
| $ \begin{gathered} \text { Loss }=\sum\limits_{(u, i, j) \in O}-\ln \varphi\left(\widetilde{p}_{u i}-\widetilde{p}_{u j}\right)+ \\ \lambda \sum\limits_{(u, i, j) \in O}\left(\left\|\boldsymbol{e}_u\right\|+\left\|\boldsymbol{e}_i\right\|+\left\|\boldsymbol{e}_j\right\|\right) . \end{gathered} $ | (21) |
通过损失函数公式(21),可以优化异质图神经网络协同过滤模型中的参数,从而训练出能够表达用户和条目特征的嵌入信息。
2 实验及分析通过将本文提出的异质图神经网络协同过滤模型与传统的协同过滤模型、已有的图神经网络模型进行比较,考察本文模型的效果,并基于不同类型边、不同相似度计算方法、不同相似度阈值对比实验结果,探讨影响异质图神经网络协同过滤模型性能的因素。
2.1 实验数据集本文的实验数据集如表 1所示,包括4个公开的数据集:1) Gowalla数据集有29 858个用户、40 981个条目以及1 027 370条用户交互信息,该数据集是从社交签到平台Gowalla获得的签到数据集,用户通过签到共享他们的位置。2) MovieLens-1M数据集有6 013个用户、3 900个条目以及1 000 209条用户交互信息,该数据集是关于电影评分的数据集,数据集中的条目是电影,数据集中用户交互信息是用户对电影的评分。3) Yelp2018数据集有31 668个用户、38 048个条目以及1 561 406条用户交互信息,该数据集来自2018年的Yelp挑战赛,条目是当地的门店,如餐馆、酒吧等。4) Amazon-Book数据集有52 643个用户、91 599个条目以及2 984 108条用户交互信息,该数据集来自亚马逊平台,其中条目大多是亚马逊卖出的书。Amazon-Book数据集是广泛用于产品预测[16]训练的数据集。
| 数据集 | 用户 | 条目 | 交互信息 |
| Gowalla | 29 858 | 40 981 | 1 027 370 |
| MovieLens-1M | 6 013 | 3 900 | 1 000 209 |
| Yelp2018 | 31 668 | 38 048 | 1 561 406 |
| Amazon-Book | 52 643 | 91 599 | 2 984 108 |
在数据集的用途划分方面,分别从表 1所示的4个数据集中随机抽取了20%的用户交互信息数据作为测试集,80%的用户交互信息数据作为训练集,并在训练集中随机抽取了10%的数据作为验证集,用于参数优化。在划分好的数据集中,只保留超过10条交互信息的用户和条目,即构成的图中节点的度都大于或等于10,以从中筛选出具有代表性的用户和条目。
2.2 评价指标本文采用归一化折扣累计收益(normalized discounted cumulative gain, NDCG)和召回率(Recall)作为评价指标。
归一化折扣累计收益是协同过滤模型中常用于评测推荐结果好坏的指标。假设当前向用户u推荐了k个条目,推荐结果包含了用户对每个条目的相关性分数。归一化折扣累计收益指标中的收益(Gain)是用户与每个条目的相关性分数,相关性分数用函数rel(·)表示,
| $ \text { Gain }=\operatorname{rel}(i) \text {. } $ | (22) |
归一化折扣累计收益指标中的累计收益(cumulative gain, CG)将每个条目的相关性分数累加后作为该条目推荐结果的评分,
| $ \mathrm{CG}_k=\sum\limits_{i=1}^k \operatorname{rel}(i). $ | (23) |
归一化折扣累计收益指标中的折扣累计收益(discounted cumulative gain, DCG)是考虑推荐结果集合中条目的顺序后的得分,
| $ \mathrm{DCG}_k=\sum\limits_{i=1}^k \frac{\operatorname{rel}(i)}{\log _2(i+1)}. $ | (24) |
实验中,设置k=20,即将预测相关性评分最高的20个条目作为预测结果。
召回率是指预测正确的正样本数量与样本集中正样本数量的比值,
| $ \text { Recall }=\frac{\mathrm{TP}}{\mathrm{TP}+\mathrm{FN}}. $ | (25) |
其中:TP是预测正确的正样本数量,即把正样本预测为正样本的数量,FN是预测错误的正样本数量,即把正样本预测为负样本的数量,那么TP+FN就是原有样本集合中正样本的总数量。
2.3 比较方法将本文模型与以下4种经典方法进行对比:1) 矩阵分解模型(MF)。矩阵分解可以捕获用户与条目之间的直接交互关系用于建模,模型训练过程使用了Bayes个性化排序作为损失函数。2) 神经网络协同过滤模型(NeuCF)。该模型引入了深度神经网络来捕获用户与条目之间的非线性交互关系。3) 图卷积矩阵补全模型(GC-MC)。该模型利用图卷积神经网络获得用户与条目的嵌入信息,然后把推荐任务转换为一个链路预测任务,但该模型只利用了用户与条目的一阶相邻节点。4) 图卷积神经网络协同过滤模型(NGCF)。该模型矩阵依赖二部图中用户和条目的高阶连通性,训练得到用户和条目的嵌入信息。
2.4 实验结果及分析 2.4.1 与传统的协同过滤模型的比较基于异质图神经网络协同过滤模型以及2种传统的协同过滤模型(矩阵分解模型、神经网络协同过滤模型)在4个数据集上进行实验,结果如表 2和3所示。根据2.2节的2种评价指标,不同协同过滤模型的对比实验结果表明,矩阵分解模型只能捕获用户与条目之间直接交互的线性关系,而忽略了用户与条目之间的非线性关系,这使得最终学习出的用户和条目的特征向量不能充分表达用户和条目的自身特征,导致召回率和归一化折扣累计收益2种评价指标的实验结果均差于其他模型。
| 模型 | Gowalla | MovieLens-1M | Yelp2018 | Amazon-Book |
| 矩阵分解(MF) | 0.185 3 | 0.317 4 | 0.086 1 | 0.050 7 |
| 神经网络协同过滤(NeuCF) | 0.197 6 | 0.387 1 | 0.087 8 | 0.052 3 |
| 异质图卷积神经网络协同过滤(添加用户-用户边) | 0.228 1 | 0.440 3 | 0.104 2 | 0.065 6 |
| 异质图卷积神经网络协同过滤(添加条目-条目边) | 0.226 7 | 0.435 8 | 0.102 7 | 内存溢出 |
| 异质图卷积神经网络协同过滤(添加用户-用户边、条目-条目边) | 0.227 3 | 0.442 7 | 0.103 6 | 内存溢出 |
| 模型 | Gowalla | MovieLens-1M | Yelp2018 | Amazon-Book |
| 矩阵分解(MF) | 0.124 5 | 0.254 3 | 0.041 2 | 0.023 1 |
| 神经网络协同过滤(NeuCF) | 0.131 8 | 0.276 1 | 0.043 1 | 0.024 9 |
| 异质图卷积神经网络协同过滤(添加用户-用户边) | 0.159 8 | 0.350 6 | 0.055 2 | 0.035 4 |
| 异质图卷积神经网络协同过滤(添加条目-条目边) | 0.157 3 | 0.337 1 | 0.054 7 | 内存溢出 |
| 异质图卷积神经网络协同过滤(添加用户-用户边、条目-条目边) | 0.159 8 | 0.359 5 | 0.055 2 | 内存溢出 |
神经网络协同过滤模型通过深度神经网络累加多个隐藏层捕获了用户与条目之间隐藏的非线性交互关系,从而使得2个评价指标的实验结果比矩阵分解模型均有所提升。尽管该模型通过多个隐藏层捕获了用户与条目之间的交互关系,但是训练出来的用户与条目的嵌入信息不如图卷积神经网络直接读取图结构数据训练出来的嵌入信息包含的用户或条目的特征信息丰富,从而导致实验结果差于基于图结构模型的协同过滤算法。
2.4.2 与已有的图神经网络模型的比较基于异质图神经网络协同过滤模型以及2种已有的图神经网络模型(图卷积矩阵补全模型、图卷积神经网络协同过滤模型)在4个数据集上进行实验,结果如表 4和5所示。可以看出,相比于矩阵分解模型和神经网络协同过滤模型,图卷积矩阵补全模型学习了一阶相邻节点的特征,提高了用户和条目的嵌入信息的表达能力,从而使得2个评价指标的实验结果比矩阵分解模型与神经网络协同过滤模型均有所提升。但是,由于仅利用了节点的一阶相邻节点的特征进行训练,因此没有充分捕获用户与条目之间的非线性交互关系,导致实验结果不如图卷积神经网络协同过滤模型与异质图神经网络协同过滤模型。
| 模型 | Gowalla | MovieLens-1M | Yelp2018 | Amazon-Book |
| 图卷积矩阵补全(GC-MC) | 0.195 7 | 0.403 2 | 0.091 6 | 0.054 1 |
| 图卷积神经网络协同过滤(NGCF) | 0.215 9 | 0.421 3 | 0.100 7 | 0.062 1 |
| 异质图卷积神经网络协同过滤(添加用户-用户边) | 0.228 1 | 0.440 3 | 0.104 2 | 0.065 6 |
| 异质图卷积神经网络协同过滤(添加条目-条目边) | 0.226 7 | 0.435 8 | 0.102 7 | 内存溢出 |
| 异质图卷积神经网络协同过滤(添加用户-用户边、条目-条目边) | 0.227 3 | 0.442 7 | 0.103 6 | 内存溢出 |
| 模型 | Gowalla | MovieLens-1M | Yelp2018 | Amazon-Book |
| 图卷积矩阵补全(GC-MC) | 0.137 6 | 0.298 4 | 0.045 3 | 0.028 3 |
| 图卷积神经网络协同过滤(NGCF) | 0.150 8 | 0.332 9 | 0.052 4 | 0.031 9 |
| 异质图卷积神经网络协同过滤(添加用户-用户边) | 0.159 8 | 0.350 6 | 0.055 2 | 0.035 4 |
| 异质图卷积神经网络协同过滤(添加条目-条目边) | 0.157 3 | 0.337 1 | 0.054 7 | 内存溢出 |
| 异质图卷积神经网络协同过滤(添加用户-用户边、条目-条目边) | 0.159 8 | 0.359 5 | 0.055 2 | 内存溢出 |
图卷积神经网络协同过滤模型可以直接处理二部图数据,不但可以学习用户与条目之间直接的交互关系,还可以通过多层嵌入传播学习用户与条目之间隐藏的交互关系,最终训练出来的用户和条目的嵌入信息可以准确地表达用户和条目的特征,从而使得2个评价指标的实验结果比矩阵分解模型、神经网络协同过滤模型以及图卷积矩阵补全模型的结果均有所提升。但是,由于图卷积神经网络协同过滤模型是基于二部图结构数据训练的,二部图的稀疏性使得该模型需要依赖图中的高阶连通性建模,同时通过二部图结构数据不能直接学习到用户之间的相似关系以及条目之间的相似关系。异质图神经网络协同过滤模型是基于异质图结构数据训练的,将用户之间的相似度以及条目之间的相似度显式地以边的形式编码到图结构中,弥补了二部图的稀疏性问题,进而缓解了异质图神经网络协同过滤模型对图结构数据高阶连通性的依赖。同时,由于在相似的用户和相似的条目之间之间添加了边,使得模型在嵌入传播的过程中可以直接学习用户之间的相似关系以及条目之间的相似关系,这导致异质图神经网络协同过滤模型的实验结果优于图卷积神经网络协同过滤模型。
2.4.3 不同类型边、相似度计算方法、相似度阈值对异质图神经网络协同过滤模型性能的影响基于不同类型边、不同相似度计算方法和不同相似阈值进行对比实验。
1) 基于不同类型边的对比实验。
基于不同类型边的对比实验结果如表 6和7所示。由于在异质图中存在用户-条目边来获得用户-条目的交互关系,因此进行了在图中分别添加用户-用户边、条目-条目边,以及同时添加用户-用户边和条目-条目边的实验。
| 边的类型 | Gowalla | MovieLens-1M | Yelp2018 |
| 用户-条目 | 0.215 9 | 0.421 3 | 0.100 7 |
| 用户-条目 用户-用户 |
0.228 1 | 0.440 3 | 0.104 2 |
| 用户-条目 条目-条目 |
0.226 7 | 0.435 8 | 0.102 7 |
| 用户-条目 用户-用户 条目-条目 |
0.227 3 | 0.442 7 | 0.103 6 |
| 边的类型 | Gowalla | MovieLens-1M | Yelp2018 |
| 用户-条目 | 0.150 8 | 0.332 9 | 0.052 4 |
| 用户-条目 用户-用户 |
0.158 5 | 0.350 6 | 0.055 8 |
| 用户-条目 条目-条目 |
0.157 3 | 0.337 1 | 0.054 7 |
| 用户-条目 用户-用户 条目-条目 |
0.159 8 | 0.359 5 | 0.055 2 |
从表 6和7可以看到,当添加用户-用户边或添加条目-条目边时,实验结果均优于仅有用户-条目边的二部图模型。这是因为用户之间的相似度或条目之间的相似度直接编码进图结构中构成了一个异质图,使得模型能直接学习到这些相似关系,从而获得更好的训练效果。
添加用户-用户边和条目-条目边、仅添加用户-用户边以及仅添加条目-条目边,这3种方式各有优劣。当图中同时含有用户-条目边、用户-用户边以及条目-条目边时,图中含有的用户或条目的相似信息更多,使得用户与条目的嵌入信息表达能力更强,但是在构图时的内存消耗更大。
2) 基于不同相似度计算方法的对比实验。
基于不同相似度计算方法的对比实验结果如表 8和9所示。对于PMI、Jaccard、Cosine 3种不同相似度计算方法,分别在Gowalla、MovieLens-1M和Yelp2018数据集上作了对比实验。
| 相似度计算方法 | Gowalla | MovieLens-1M | Yelp2018 |
| PMI | 0.227 3 | 0.442 7 | 0.103 6 |
| Jaccard | 0.224 5 | 0.439 5 | 0.101 3 |
| Cosine | 0.219 7 | 0.427 9 | 0.099 2 |
| 相似度计算方法 | Gowalla | MovieLens-1M | Yelp2018 |
| PMI | 0.159 8 | 0.359 5 | 0.055 2 |
| Jaccard | 0.158 1 | 0.339 5 | 0.054 1 |
| Cosine | 0.153 7 | 0.320 4 | 0.053 6 |
从表 8和9可以看出,PMI计算方法相较于Jaccard指数和Cosine方法能获得更好的实验的结果。这是由于PMI计算方法比其他2种方法得出的相似度范围更大。
3) 基于不同相似度阈值的对比实验。
为了研究不同的相似度阈值对实验结果的影响,将相似度阈值分别设定为-0.5、0、0.5、1、0,作了4组对比实验。利用不同相似度阈值构图的对比实验的归一化折扣累计收益和召回率如表 10和11所示。
| 相似度阈值 | Gowalla | MovieLens-1M | Yelp2018 |
| -0.5 | 0.219 4 | 0.431 0 | 0.100 4 |
| 0 | 0.227 3 | 0.442 7 | 0.103 6 |
| 0.5 | 0.217 8 | 0.437 5 | 0.108 7 |
| 1.0 | 0.210 7 | 0.421 1 | 0.102 2 |
| 相似度阈值 | Gowalla | MovieLens-1M | Yelp2018 |
| -0.5 | 0.153 0 | 0.318 6 | 0.050 1 |
| 0 | 0.159 8 | 0.359 5 | 0.055 2 |
| 0.5 | 0.151 9 | 0.312 7 | 0.056 7 |
| 1.0 | 0.150 4 | 0.307 2 | 0.049 5 |
由表 10和11可以看出,在Gowalla数据集和MovieLens-1M数据集中将相似度阈值设定为0时实验结果最优,而在Yelp2018数据集中将相似度阈值设定为0.5时实验结果最优。由于不同的数据集的特性不同,在实际应用过程中,可以通过设定不同的相似度阈值来训练模型,从而获得更优的推荐结果。
3 结论与展望本文首先分析了基于二部图结构的协同过滤模型的局限性,并针对性地提出了异质图神经网络协同过滤模型。该模型将用户之间的相似关系和条目之间的相似关系显式地以边的形式编码进异质图结构中,使得用户和条目的嵌入信息训练中能直接学习到这些相似关系。其次,异质图神经网络协同过滤模型弥补了二部图的稀疏性问题,同时缓解了二部图对高阶连通性建模过于依赖的问题。异质图神经网络协同过滤模型通过图中的低阶连通性也能充分捕获用户与条目之间的交互关系。最后,通过实验表明异质图神经网络协同过滤模型在4个公开的数据集上有着优秀的表现,大量的实验结果表明了异质图神经网络协同过滤模型的有效性。
本文提出的异质图神经网络协同过滤模型仍存在不足之处需要改进,例如对内存的需求过大以及训练的时间过长。
| [1] |
KIPF T N, WELLING M. Semi-s upervised classification with graph convolutional networks[C]//Proceedings of the 5th International Conference on Learning Representations. Toulon, France: OpenReview. net, 2017.
|
| [2] |
KOREN Y, BELL R, VOLINSKY C. Matrix factorization techniques for recommender systems[J]. Computer, 2009, 42(8): 30-37. DOI:10.1109/MC.2009.263 |
| [3] |
HE X N, LIAO L Z, ZHANG H W, et al. Neural collaborative filtering[C]//Proceedings of the 26th International Conference on World Wide Web. Perth, Australia: International World Wide Web Conferences Steering Committee, 2017: 173-182.
|
| [4] |
WANG X, HE X N, WANG M, et al. Neural graph collaborative filtering[C]//Proceedings of the 42nd International ACM SIGIR Conference on Research and Development in Information Retrieval. Paris, France: Association for Computing Machinery, 2019: 165-174.
|
| [5] |
QASEM S N, MOHAMMADZADEH A. A deep learned type-2 fuzzy neural network: Singular value decomposition approach[J]. Applied Soft Computing, 2021, 105: 107244. DOI:10.1016/j.asoc.2021.107244 |
| [6] |
NGUYEN J, ZHU M. Content-boosted matrix factorization techniques for recommender systems[J]. Statistical Analysis and Data Mining, 2013, 6(4): 286-301. DOI:10.1002/sam.11184 |
| [7] |
WU L, SUN P J, HONG R C, et al. SocialGCN: An efficient graph convolutional network based model for social recommendation[Z/OL]. arXiv: 1811.02815, 2018.
|
| [8] |
PEROZZI B, AL-RFOU R, SKIENA S. DeepWalk: Online learning of social representations[C]//Proceedings of the 20th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, USA: Association for Computing Machinery, 2014: 701-710.
|
| [9] |
YANG Y, CHEN H R, SHAO J M. Triplet enhanced autoencoder: Model-free discriminative network embedding[C]//Proceedings of the 28th International Joint Conference on Artificial Intelligence. Macao, China: IJCAI. org, 2019: 5363-5369.
|
| [10] |
LI S W, CHEN R Y, SUN C P, et al. Region-aware neural graph collaborative filtering for personalized recommendation[J]. International Journal of Digital Earth, 2022, 15(1): 1446-1462. DOI:10.1080/17538947.2022.2113463 |
| [11] |
XIA J F, LI D S, GU H S, et al. Incremental graph convolutional network for collaborative filtering[C]//Proceedings of the 30th ACM International Conference on Information & Knowledge Management. Queensland, Australia: Association for Computing Machinery, 2021: 2170-2179.
|
| [12] |
SHAH S M A, GE H W, HAIDER S A, et al. A quantum spatial graph convolutional network for text classification[J]. Computer Systems Science and Engineering, 2021, 36(2): 369-382. DOI:10.32604/csse.2021.014234 |
| [13] |
VAN DEN BERG R, KIPF T N, WELLING M. Graph convolutional matrix completion[Z/OL]. arXiv: 1706.02263, 2017.
|
| [14] |
YANG J H, CHEN C M, WANG C J, et al. HOP-rec: High-order proximity for implicit recommendation[C]//Proceedings of the 12th ACM Conference on Recommender Systems. Vancouver, Canada: Association for Computing Machinery, 2018: 140-144.
|
| [15] |
LI Q M, HAN Z C, WU X M. Deeper insights into graph convolutional networks for semi-supervised learning[C]//Proceedings of the 32nd AAAI Conference on Artificial Intelligence. New Orleans, USA: AAAI, 2018: 3538-3545.
|
| [16] |
ZHAO J A, WANG X, SHI C, et al. Heterogeneous graph structure learning for graph neural networks[C/OL]//Proceedings of the 35th AAAI Conference on Artificial Intelligence. Held Virtually: AAAI, 2021: 4697-4705.
|
| [17] |
YANG T C, HU L M, SHI C, et al. HGAT: Heterogeneous graph attention networks for semi-supervised short text classification[J]. ACM Transactions on Information Systems, 2021, 39(3): 32. |
| [18] |
XU R X, LIU T Y, LI L, et al. Document-level event extraction via heterogeneous graph-based interaction model with a tracker[C/OL]//Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing. Held Virtually: Association for Computational Linguistics, 2021: 3533-3546.
|
| [19] |
YAO L, MAO C S, LUO Y. Graph convolutional networks for text classification[C]//Proceedings of the 33rd AAAI Conference on Artificial Intelligence. Honolulu, USA: AAAI, 2019: 7370-7377.
|
| [20] |
MAAS A L, HANNUN A Y, NG A Y. Rectifier nonlinearities improve neural network acoustic models[C]//Proceedings of the 30th International Conference on Machine Learning. Atlanta, USA: International Machine Learning Society, 2013: 3.
|


