论文《Neighbor Interaction Aware Graph Convolution Networks for Recommendation》阅读

论文《Neighbor Interaction Aware Graph Convolution Networks for Recommendation》阅读

  • 论文概况
    • Introduction
      • 在GCN中,对于目标结点的aggregation过程中往往忽视了邻居节点的交互情况
      • user-item二部图本质上是一个异质图(hegerogeneous graph),传统GCN中忽略了这一点
      • 传统GCN在aggregation过程中没有考虑不同层深结点embedding的组合
    • Methodology
      • Pairwise Neighborhood Aggregation (PNA) Graph Convolutional Layer
      • Parallel-GCNs
      • Cross-Depth Ensemble (CDE) for Final Representation
      • loss函数
    • 论文总结

论文概况

这篇文章是华为诺亚实验室在GCN的基础上,加入邻居节点交互感知完成的一个推荐系统方向的论文,提出了模型NIA-GCN,被发表在SIGIR 2020上,文中关于邻居交互感知的部分,与BGNN模型比较像(可以参考本人CSDN《论文阅读》专栏 - 『论文《Bilinear Graph Neural Network with Neighbor Interactions》阅读』一文)。
论文地址:NIA-GCN论文
论文代码未开源

Introduction

作者提出三个问题引出本文的三个创新点:

在GCN中,对于目标结点的aggregation过程中往往忽视了邻居节点的交互情况

类似于BGNN模型提出的观点,NIA-GCN认为对于目标节点的表示,以往的研究中通常将邻居节点直接进行aggregation(包括sum、mean等等),和目标节点target本身作为传播之后的节点表示。而这样的表示缺失了邻居节点之间的交互情况。

这里我必须指出的,本人不是十分认同这种观点(目前这么理解,欢迎交流)。对于BGNN模型来说,他们要解决的是node classification问题,节点之间确实有边连接,在aggregation过程中将邻居节点的交互加入从知觉上来讲就有助于问题的解决。但是对于推荐场景,user-item是二部图(bipartite graph),也就是说user-user之间,item-item之间是没有边连接的,文中4.1部分Neighborhood aggregation部分下对此解释说,将邻居节点看作中心节点的特征,但是我认为这与本文后面关于user和item的异质性(heterogeneity)相矛盾,所以我不认为这个解释很好。

user-item二部图本质上是一个异质图(hegerogeneous graph),传统GCN中忽略了这一点

NIA-GCN认为在推荐系统领域应该将二者区别开来。这也就是上面我认为第一个创新点关于邻居交互感知逻辑无法自恰的原因。

传统GCN在aggregation过程中没有考虑不同层深结点embedding的组合

NIA-GCN认为不同层深邻居节点包含不同的信息,应该都予以考虑

这三点对应于本文的三个创新点:1. 邻居交互感知; 2. user、item的heterogeneous特性; 3. 跨层融合。

Methodology

Pairwise Neighborhood Aggregation (PNA) Graph Convolutional Layer

h P N A k = 1 N k ∑ i = 1 N k ∑ j = i + 1 N k q i k ⊙ q j k (1) \bm{h}_{PNA}^{k} = \frac{1}{N_k} \sum_{i=1}^{N_k}\sum_{j=i+1}^{N_k} \bm{q}_i^k \odot \bm{q}_j^k \tag{1} hPNAk=Nk1i=1Nkj=i+1Nkqikqjk(1)

这里的k是指层深,就是指将以中心结点为中心,k-hop远的节点作为 Q k ∈ R N k × d Q^k\in\mathbb{R}^{N_k \times d} QkRNk×d集合, q i k \bm{q}_i^k qik q j k \bm{q}_j^k qjk 分别是 Q k Q^k Qk 的任意第 i 行、第 j 行,长度为d,是embedding之后的维度。 这里表示的意思就是将中心结点 k-hop 的邻居节点中任意两个,两两相乘求和得到所有 k-hop 邻居结点的表示。 公式(1)的后半部分省略掉了,是为了证明可以在 O(N) 时间复杂度内完成,可以参考BGNN的相关证明。

另外,所有 k-hop 邻居求mean得到 h M E A N k h_{MEAN}^k hMEANk ,concatenation之后通过 W u , 1 k W_{ u,1 }^k Wu,1k 进行线性变换得到k-hop邻居节点的最终表示 h N ( u ) k k h_{ N_{(u)}^k}^k hN(u)kk

与中心结点本身表示 h u 0 = e u h_{ u }^0 = e_u hu0=eu 进行类似操作得到最终中心节点在k层的节点表示 h u 0 h_{ u }^0 hu0 。示意图如下图所示:
论文《Neighbor Interaction Aware Graph Convolution Networks for Recommendation》阅读_第1张图片
这里的k表示层深,如果k=2,则这样的表示由两个(不含 h u 0 h_{ u }^0 hu0 ),如果等于10,则有十个。本文模型应该是选择k=2。这部分是本文的重点部分。

另外,需要注意的是,如果进行学习,则需要批处理来加快速度,每个节点每层深度的邻居节点个数 ∣ N k ∣ |N_k| Nk 都不一样,怎么处理?本文中是对每个节点的邻居节点进行采样完成的。根据实验部分,1-hop随机选择10个,2-hop随机选择5个。这样就保证了批处理的进行。同时,本文在数据预处理阶段,筛掉了少于十次interaciton的节点,这样每次迭代都会顺利进行。

Parallel-GCNs

论文《Neighbor Interaction Aware Graph Convolution Networks for Recommendation》阅读_第2张图片
这里,不同于常规的GCN一层一层不断向远传播每次只影响直接邻接节点,作者是直接将不同层深k的k-hop邻居同时进行直接传播,传播方法如上文Pairwise Neighborhood Aggregation (PNA) Graph Convolutional Layer部分所讲,不需要管谁邻接谁,直接将embedding传播到中心节点。

Cross-Depth Ensemble (CDE) for Final Representation

这里,作者指的是最终 e u ∗ e_u^* eu e v ∗ e_v^* ev 的得到。方法是把每层的embedding h u k h_{ u }^k huk (k=1, 2, …, K)和他们的element-wise product结果进行连接,得到最终的 e u ∗ e_u^* eu e v ∗ e_v^* ev 方法同理。

这里作者表述不是很清楚,看伪代码得到的结论,见下图:
论文《Neighbor Interaction Aware Graph Convolution Networks for Recommendation》阅读_第3张图片

loss函数

loss函数包含了BPR损失(用户他们交互过(点赞、购买)的物品的喜爱程度要大于没有交互过的物品),L2损失项,同时,作者将用户和物品的交互情况进行整理,通过向量的cosine相似得到与他们最相近的10个user作为 u p u_p up i p i_p ip,并在损失函数中加入了每个 u u u u p u_p up i i i i p i_p ip的差值的2-范式进去。目的应该是为了加强user和item异质性的表达。

论文总结

这篇文章三个创新点:(1)邻居节点交互感知;(2)并行的图卷积过程;(3)跨层融合。

你可能感兴趣的:(论文阅读,机器学习,人工智能,深度学习,算法,推荐系统)