【CS224W课程笔记】Graph Neural Networks

Limitation of ‘Shallow Encoders’

Graph Repretention Learning一课中,我们已经学习了如何基于shallow encoders(基于Embedding Lookup将节点映射为向量)表示一个图,但其存在以下限制:

  • 节点间的参数无法共享,每个节点的嵌入都是独一无二的。
  • 无法未训练时没有见过的节点生成嵌入。
  • 没有考虑节点自身的特性。

而今天将要学习的Graph Neural Networks可以解决上述限制,其基本思想在于基于图结构进行多层非线性变换对节点进行编码。现代深度学习工具基本是为简单的序列和网格来设计的,将其用于网络/图的难点在于:

  • 网络/图具有任意的大小和复杂的拓扑结构,即不同于网格那样的空间局限性;
  • 网络/图没有固定的节点顺序或参考点
  • 网络/图通常是动态的且具有多模态的特征

Graph Convolutional Networks (GCN)

Setup

给定一个图G=(V, A, X),其中V为节点(vertex)集合,A表示邻接矩阵,X \in \mathbb{R}^{m \times |V|}表示节点特征矩阵。

Computational Graph and Generalized Convolution:

aggregate neighbors

给定上图左侧的图G,我们的目标是基于G定义GCN的计算图,这一计算图需要保留G的结构,同时合并节点的相邻特性,例如节点A的嵌入尤其邻居\{B,C,D\}组成,但不取决于\{B,C,D\}这样的顺序。一个简单的方法就是取\{B,C,D\}特征向量的平均。一般而言,聚合方程(上图右侧部分的灰盒)应是顺序无关的(order invariant,如max、average等操作)。带有两层的基于G的计算图形式如下:

computation graph

图中的每个节点都基于其邻居定义了计算图,例如节点A的计算图如下,其中Layer-0,即第0层为输入层,其输入为各节点的特征向量。

computation graph for a

Deep Encoders

基于上述思想,使用平均聚合方程给出每层节点v的数学表达式如下:

  • 在第0层,h_v^0 = x _v,即节点特征;
  • 在第k层,h_v^k = \sigma (W_k \sum_{u \in N(v)} \frac{h_u^{k-1}}{|N(v)|}), \forall{k \in \{1,\dots,K\}}
  • 在输出层,假设经过K层,最终得到的embedding为z_v = h_v^K

其中|N(v)|表示节点v的邻居数量;\sum_{u \in N(v)} \frac{h_u^{k-1}}{|N(v)|}的目的在于聚合节点v的邻居在上一层的特征;\sigma表示激活函数(如ReLU)用于引入非线性;W_k \text{和} B_k均为需要训练的参数。

等价的,以上计算可以基于整个图写成矩阵相乘的形式如下:
H^l = {[{h_1^l}^\top, \dots, {h_N^l}^\top]}^\top \\ H^{l+1} = \sigma (H^l W_0^l + \tilde{A} H^l W_1^l) \\ \text{其中,}\tilde{A} = D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \\

Training the Model

接下来就可以将这些embeddings送入任意损失函数并经由随机梯度下降训练参数。例如,对于一个二分类任务,可以将损失函数定义如下:
L = \sum_{v \in V} y_v log(\sigma (z_v^\top \theta)) + (1-y_v)log(1-\sigma(z_v^\top \theta))
其中,y_v \in \{0, 1\}为节点的类别标签;z_v为encoder的输出;\theta为分类权重;\sigma可以是sigmoid函数;\sigma(z_v^\top \theta)代表节点v的预测概率。因此,公式的前半部分将在y_v=1时起到作用,而当y_v=0时,则是式子的后半部分起作用。
此外,还可以通过random walk、graph factorization、node proximity等方式以无监督的形式训练模型。

Inductive Capability

GCN可泛化到图中未曾见过的节点。例如,假设一个模型是通过节点A,B,C训练的,由于所有节点之间的参数是共享的,新加入的节点D,E,F同样可以参与运算。

GraphSAGE

上述介绍的是一种简单的邻居聚合方法,我们还可以以下形式概括性地表示聚合方法:
h_v^K = \sigma ([W_k AGG({h_u^{k-1}, \forall u \in N(v)}), B_k h_v^{k-1}])
即对于节点v。我们可以采用不同的方法聚合其邻居,然后再将其与自身特征拼接。常用的聚合方法有以下几种:

  • Mean:计算所有邻居特征的加权平均。
    AGG=\sum_{u \in N(v)} \frac{h_u^{k-1}}{|N(v)|}
  • Pooling:对邻居向量进行转换并运用对称向量函数(式中的\gamma可以是element-wise mean或max)。
    AGG=\gamma (\{Q h_u^{k-1}, \forall u \in N(v) \})
  • LSTM:
    AGG = LSTM(\{h_u^{k-1}, \forall u \in \pi (N(v))\})

Graph Attention Networks

考虑到部分节点携带的信息比其它节点重要的情况,可以采用attention机制对不同的邻居节点分配不同的权重。
\alpha_{vu}代表节点u要传递给节点v的信息的权重因子(重要性)。在上述平均聚合方案中,我们定义\alpha = \frac{1}{|N(v)|},此时我们可以根据图的结构属性明确定义\alpha

Attention Mechanism

节点u,v的注意力得分基于其携带的信息计算如下:
e_{vu} = a(W_k h_u^{k-1}, W_k h_v^{k-1})
其中a表示任意注意力计算方式,e_{vu}表示了节点u要传递给节点v的信息的重要性。
接下来使用softmax进行归一化处理以比较不同邻居之间的重要性:
\alpha_{vu}=\frac{exp(e_{vu})}{\sum_{k \in N(v)} exp(e_{vk})}
继而可以计算得到:
h_v^k = \sigma(\sum_{u \in N(v)} \alpha_{vu} W_k h_u^{k-1})

Reference

Tutorials and Overview:

Attention-based Neighborhood Aggregation:

Embedding the Entire Graphs:

Embedding Nodes:

Spectral Approaches to Graph Neural Networks:

Other GNN Techniques:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351