百度飞桨-图神经网络7日学习总结

百度飞桨-图神经网络7日学习总结

  • 1. 图游走模型
    • 1.1 概述
    • 1.2 Word2vec模型
    • 1.3 DeepWalk模型
  • 2. 图卷积网络与图自注意力网络
  • 3. 图采样与GraphSage算法
    • 3.1 采样邻居顶点
    • 3.2 聚合函数的选取

1. 图游走模型

1.1 概述

百度飞桨-图神经网络7日学习总结_第1张图片
图游走模型:百度PGL图学习公开课

图游走的目标:
学习出图中每一个节点的低维表示,称为 Node Embeddings。得到节点的低维表示后,可以利用这些低维表示来进行接下来的下游任务,比如节点分类等。

图游走的步骤:

  1. 通过在图进行某种方式的游走,得到多个序列,利用这些序列进行图表示学习
  2. 通过图表示学习,利用节点之间的关系,学习到节点的低维表示(Node Embedding)
  3. 利用这些Embeddings做下游任务

1.2 Word2vec模型

图游走中的核心技术:
借鉴了自然语言处理(NLP)中的Word2vec模型,图中的节点可以看做 NLP 中的词,而节点序列进而就可以联想到句子。
Word2vec模型的整体架构可以表示为:
百度飞桨-图神经网络7日学习总结_第2张图片
Word2vec 模型,可以简单的理解为 Skip Gram + 负采样。Skip Gram的目的很简单,就是根据中心词,预测对应中心词的上下文词。这样做不仅仅能够利用了词共现关系,同时也体现了 Word2vec的本质,即词的语义由其上下文来决定。
Skip gram 的模型结构很简单,输入层就是中心词的 one hot 表示,经过中间一个投影层后,在输出层预测对应的context word,因此最后一层就是一个softmax分类层。通常在训练结束后,隐层的权重 W 会作为词向量矩阵。
Softmax 层在 Skipgram 模型中是用来计算词表的概率的。为了能够预测出某个词出现的概率,不仅要预测它的概率,还要预测整个词表中所有单词的概率。但这样做的计算量是非常大的,因此,这里使用负采样的方法进行优化。负采样的思想很简单。将中心词和对应的上下文词作为正样本。同时,选取一定数量的负样本。
确定要正样本和负样本之后,就不再需要计算所有词的概率,而只需要对这几个样本进行分类,如果 Y=1,意味着是正样本,Y=0,意味着是负样本。从而减少了计算量。也就是把 softmax 层修改为了多个 sigmoid 函数,从而大大减少了计算量和参与权重更新的参数数目。

1.3 DeepWalk模型

将Word2vec模型的思想应用到图学习中,即DeepWalk模型。起整体架构如下:
百度飞桨-图神经网络7日学习总结_第3张图片
与 Word2vec 模型不同,DeepWalk模型多了一个采样节点序列的随机游走部分。因此这两者实现起来非常相似。另外,大部分的图游走类算法,都是在随机游走这一块做比较多的创新和改动,而在后续的训练方法上则和 Word2vec 基本保持一致。
以随机游走(Random Walk)为例,其具体实现过程为:
从图中的某个节点出发,游走的每一步都从与当前节点相连的边中随机选择一条,沿着选定的边移动到下一个顶点,不断重复这个过程,直到得到的序列无法继续往下走或者到达指定最大长度。在走了多趟之后,便可以得到多个游走序列,此时就可以类比 NLP 中的句子了。
随机游走的本质,其实就是可以“回头”的深度优先搜索(DFS)。

2. 图卷积网络与图自注意力网络

参考:https://blog.csdn.net/m0_37876745/article/details/104307711
图注意力网络Graph Attention Network

传统是CNN处理的数据是矩阵形式,就是以像素点排列成的矩阵为基础。称为Euclidean Structure,欧几里得结构。而图卷积网络(Graph Convolutional Network,GCN)处理的数据是图结构,即Non Euclidean Structure非欧几里得结构,拓扑结构。如社交网络连接,信息网络等等。对于Non euclidean structure的数据,卷积神经网络就没有用了。
GCN一般采用频域方法(谱方法)来对图的特征进行提取。
GSP(graph signal processing)是图形信号处理的方法,即在图上进行信号处理的变换,如傅立叶变换或者拉普拉斯变换,进而进行图的卷积,从而提取图的特征。
作为一种代表性的图卷积网络,Graph Attention Network (GAT) 引入了注意力机制来实现更好的邻居聚合。通过学习邻居的权重,GAT 可以实现对邻居的加权聚合。因此,GAT 不仅对于噪音邻居较为鲁棒,注意力机制也赋予了模型一定的可解释性。
百度飞桨-图神经网络7日学习总结_第4张图片

3. 图采样与GraphSage算法

GraphSAGE: 算法原理,实现和应用
GCN是一种在图中结合拓扑结构和顶点属性信息学习顶点的embedding表示的方法。然而GCN要求在一个确定的图中去学习顶点的embedding,无法直接泛化到在训练过程没有出现过的顶点,即属于一种直推式(transductive)的学习。
本文介绍的GraphSAGE则是一种能够利用顶点的属性信息高效产生未知顶点embedding的一种归纳式(inductive)学习的框架。
其核心思想是通过学习一个对邻居顶点进行聚合表示的函数来产生目标顶点的embedding向量。GraphSAGE算法原理可表示如下:
百度飞桨-图神经网络7日学习总结_第5张图片
GraphSAGE 是Graph SAmple and aggreGatE的缩写,其实现过程可以分为三个步骤

  1. 对图中每个顶点邻居顶点进行采样
  2. 根据聚合函数从聚合邻居顶点蕴含的信息
  3. 得到图中各顶点的向量表示供下游任务

3.1 采样邻居顶点

出于对计算效率的考虑,对每个顶点采样一定数量的邻居顶点作为待聚合信息的顶点。设采样数量为k,若顶点邻居数少于k,则采用有放回的抽样方法,直到采样出k个顶点。若顶点邻居数大于k,则采用无放回的抽样。
当然,若不考虑计算效率,我们完全可以对每个顶点利用其所有的邻居顶点进行信息聚合,这样是信息无损的。
百度飞桨-图神经网络7日学习总结_第6张图片

3.2 聚合函数的选取

由于在图中顶点的邻居是天然无序的,所以我们希望构造出的聚合函数是对称的(即改变输入的顺序,函数的输出结果不变),同时具有较高的表达能力。聚合的方法一般有:MEAN aggregator,Pooling aggregator,LSTM aggregator等。

你可能感兴趣的:(深度学习)