毕业论文
您现在的位置: 语言识别 >> 语言识别优势 >> 正文 >> 正文

一文梳理经典图网络模型附新书

来源:语言识别 时间:2022/11/3
白癜风有哪些要忌的 http://pf.39.net/bdfyy/bjzkbdfyy/171127/5878257.html

作者

Chilia

哥伦比亚大学nlp搜索推荐

整理

NewBeeNLP

图神经网络已经在NLP、CV、搜索推荐广告等领域广泛应用,今天我们就来整体梳理一些经典常用的图网络模型:DeepWalk、GCN、Graphsage、GAT!

1.DeepWalk[]

DeepWalk是来解决图里面节点embedding问题的。GraphEmbedding技术将图中的节点以低维稠密向量的形式进行表达,要求在原始图中相似(不同的方法对相似的定义不同)的节点其在低维表达空间也接近。得到的表达向量可以用来进行下游任务,如节点分类(nodeclassification),链接预测(linkprediction)等。

1.1DeepWalk算法原理

虽然DeepWalk是KDD的工作,但却是我们了解GraphEmbedding无法绕过的一个方法。

我们都知道在NLP任务中,word2vec是一种常用的wordembedding方法,word2vec通过语料库中的句子序列来描述词与词的共现关系,进而学习到词语的向量表示。

DeepWalk的思想类似word2vec,使用图中节点与节点的共现关系来学习节点的向量表示。那么关键的问题就是如何来描述节点与节点的共现关系,DeepWalk给出的方法是使用**随机游走(RandomWalk)**的方式在图中进行节点采样。

RandomWalk是一种可重复访问visited节点的深度优先遍历算法。给定当前访问起始节点,从其邻居中随机采样节点作为下一个访问节点,重复此过程,直到访问序列长度=K。获取足够数量的节点访问序列后,使用skip-gram进行向量学习,这样能够把握节点的共现信息。这样就得到了每个节点的embedding。

2.GCN[]

GCN的概念首次提出于ICLR:SEMI-SUPERVISEDCLASSIFICATIONWITHGRAPHCONVOLUTIONALNETWORKS。

为什么要用GCN呢?这是因为对于图结构的数据,CNN、RNN都无法解决。

对于图片来说,我们用卷积核来提取特征,这是因为图片有平移不变性:一个小窗口无论移动到图片的哪一个位置,其内部的结构都是一模一样的,因此CNN可以实现参数共享。RNN主要用在NLP这种序列信息上。图片,或者语言,都属于欧式空间的数据,因此才有维度的概念,欧式空间的数据的特点就是结构很规则。

但是图结构(拓扑结构)如社交网络、知识图谱、分子结构等等是十分不规则的,可以认为是无限维的一种数据,所以它没有平移不变性。每一个节点的周围结构可能都是独一无二的,这种结构的数据,就让传统的CNN、RNN瞬间失效。

GCN,图卷积神经网络,实际上跟CNN的作用一样,就是一个特征提取器,只不过它的对象是图。GCN精妙地设计了一种从图数据中提取特征的方法,从而让我们可以使用这些特征去对图数据进行:

节点分类(nodeclassification)

图分类(graphclassification)

链接预测(linkprediction)

2.1GCN的核心公式

假设我们手头有一个图,其中有N个节点,每个节点都有自己的特征embedding,我们设这些节点的特征组成一个N×D维的矩阵,然后各个节点之间的关系也会形成一个N×N维的矩阵A(就是邻接矩阵)

GCN也是一个神经网络层,它的层与层之间的传播方式是:

这个公式中:

,是单位矩阵。

是度矩阵(degreematrix),D[i][i]就是节点i的度。

H是每一层的特征,对于第一层(输入层)的话,就是矩阵。

σ是非线性激活函数

用这个公式就可以很好地提取图的特征。假设我们构造一个两层的GCN,激活函数分别采用ReLU和Softmax,则整体的正向传播的公式为:

其中,.

那么,为什么这个公式能提取图的特征呢?

A+I其实是保证对于每个节点,都能够

转载请注明:http://www.0431gb208.com/sjszjzl/2233.html