Graph Convolutional Neural Networks for Web-Scale Recommender Systems
概
以往的 GCN 通常需要囊括图的所有结点和边进行推断, 这难以推广到 Web-Scale 的数据, 本文通过采样的方式来避免这一问题.
本文思路
这里只介绍采样和训练的流程, 不涉及文中的 importance pooling.
-
假设当前 mini-batch 我们希望针对结点 \(\mathcal{M} \subset \mathcal{V}\) 进行 \(K\) 层的一个图卷积;
-
我们知道, 一般来说, 对结点 \(u\) 进行多一层的图卷积, 就会使得它的感受野增加 1-hop, 故 \(K\) 层的图卷积中 \(u\) 会接触到 \(K\)-hop 的邻居信息;
-
故在该 mini-batch 的训练中, 涉及到:
\[\mathcal{S}^{(0)} \]的结点信息, 其中
\[\mathcal{S}^{(k-1)} = \mathcal{S}^{(k)} \bigcup_{u \in \mathcal{S}^{(k)}} \mathcal{N}(u), \\ \mathcal{S}^{(K)} = \mathcal{M}. \]其中 \(\mathcal{N}(u)\) 表示结点 \(u\) 的 1-hop 邻居.
-
接着, 我们可以按照上图的方式, 以一种辐射的方式逐步计算:
- for \(k=1,2,\ldots, K\) do:\[h_u^{(k)} \leftarrow \text{GRAPHCONV}(h_u^{(k-1)}, \{h_v^{(k-1)}, \forall v \in \mathcal{N}(u)\}) \: \forall u \in \mathcal{S}^{(k)}. \]
- for \(k=1,2,\ldots, K\) do:
-
虽然我们还是对 \(\mathcal{S}^{(0)}\) 的结点进行图卷积, 但是由于图天然的稀疏性, 相较于整个图而言现在的计算量已经是相当少了.