论文阅读笔记#3

论文笔记#3

论文:EvolveGCN: Evolving Graph Convolutional Networks for Dynamic Graph

作者:Aldo Pareja,1;2∗ Giacomo Domeniconi,1;2∗ Jie Chen,1;2y Tengfei Ma,1;2 Toyotaro Suzumura,1;2Hiroki Kanezashi,1;2 Tim Kaler,1;3 Tao B. Schardl,1;3 Charles E. Leiserson1;

Github: https://github.com/IBM/EvolveGCN

Innovation point

  • GCN参数不再被训练。它们是由RNN计算的,因此只有RNN参数被训练。通过这种方式,参数的数量(模型大小)不会随着时间步长的增加而增加,并且模型与典型的RNN一样易于管理。
  • 分别使用GCU,LSTM 两种方法进行权重更新并对比。

Basic knowledges

来源:https://blog.csdn.net/weixin_36474809/article/details/89316439

https://zhuanlan.zhihu.com/p/54505069

cnn与gcn

  • 欧几里得结构:CNN处理的数据是矩阵形式,就是以像素点排列成的矩阵为基础。称为Euclidean Structure,欧几里得结构。

  • 拓扑结构(图结构):GCN处理的数据是图结构,即Non Euclidean Structure非欧几里得结构,拓扑结构。如社交网络连接,信息网络等等。对于Non euclidean structure的数据,卷积神经网络就没有用了。

空域方法vertex domain

直接用相应顶点连接的neighbors来提取特征。

img

频域方法(谱方法)spectral domain

借助于图的拉普拉斯矩阵的特征值和特征向量来研究Graph的性质。

拉普拉斯矩阵

对于\(G=(V,E)\),其Laplacian matrix为 \(L=D-A\)

  • D为对角度矩阵Degree matrix,对角线上的元素是顶点的度,即该元素链接的元素的个数
  • A为邻接矩阵 Adjacency matrix ,即表示任意两个顶点之间的邻接关系,邻接则为1,不邻接则为0

img

Fourier变换

定义graph上的fourier变换,就可以定义出graph上的convolution变换。

Research question

现有的方法通常依靠节点嵌入(node embeddings),并使用循环神经网络(RNN,广义上)来调节嵌入和学习时间动态。这些方法需要全时间跨度的节点知识(包括训练和测试),不太适用于频繁变化的节点集。在一些极端情况下,不同时间步的节点集可能完全不同。

为了解决这一挑战,本文提出了EvolveGCN,它沿着时间维来适应图卷积网络(GCN)模型,而不借助于节点嵌入。该方法通过使用RNN来演化GCN参数来捕捉图序列的动态性。对参数演化考虑了两种体系结构。在包括链路预测、边缘分类和节点分类的任务上评估提出的方法。

循环神经网络(Recurrent Neural Network,RNN)是一种以序列数据为输入来进行建模的深度学习模型,它是 NLP 中最常用的模型。

Methods

Notations

subscript t 时间索引

superscript l GCN层指标

\(A_t \in \mathbb{R}^{n\times n}\) 时间步长为n的邻接矩阵

\(X_t \in \mathbb{R}^{n\times d}\) 输入节点特征矩阵

Graph Convolutional Network (GCN)

在第t时刻,第l层以邻接矩阵\(A_t\)和节点嵌入矩阵\(H_t^{(l)}\)为输入,使用权重矩阵\(W_t^{(l)}\)将节点嵌入矩阵更新到\(H_t^{(l+1)}\)为输出。

\(\hat{A_t}\)\(A_t\)的正则化

σ 是除输出层外激活函数(ReLU),初始嵌入矩阵为节点特征\(H_t^{(0)} = X_t\) ,有L个图卷积层

Weight Evolution

该方法的核心是基于当前和历史信息更新t时刻的权值矩阵\(W_t^{(l)}\)。目前有两种选择。

1、\(W_t^{(l)}\)为动态系统的hidden state ,使用GRU更新。

\(r_t\)表示重置门(reset gate),重置门的主要作用就是过去的多少信息需要被遗忘.

\(z_t\)表示更新门(update gate),其决定了上一个隐藏状态有多少信息被保留下来,且新的内容有多少需要被添加进memory里。
\(h_t\)为当前时间步的记忆。

来源:https://blog.csdn.net/u012328159/article/details/87907739

2、 将\(W_t^{(l)}\)作为动态系统的输出(它在随后的时间步长成为输入)。我们使用一个长短期记忆(LSTM)单元来模拟这种输入-输出关系。在这个版本中,根本没有使用节点嵌入。

由于RNN无法处理长期依赖的问题(原因在于 梯度消失)。所以提出LSTM

来源:https://blog.csdn.net/u012328159/article/details/87567358

Evolving Graph Convolution Unit (EGCU)

对于两个版本都需要将向量变为矩阵。由数据集决定使用哪个版本,当节点特征信息丰富时,-H版本可能更有效,因为它在递归网络中添加了额外的节点嵌入。另一方面,如果节点特性信息不多,但图结构起着更重要的作用,则-O版本关注结构的变化,可能更有效。

Implementation of the -H Version

1、将输入和隐藏状态从向量扩展到矩阵(因为隐藏状态现在是GCN权值矩阵)。矩阵扩展很简单:只需将列向量并排放置,就可以形成一个矩阵。换句话说,使用相同的GRU来处理GCN权值矩阵的每一列。

2、第二个要求是GRU输入的列数必须与隐藏状态的列数相匹配。后一个数设为k。策略是将所有节点嵌入向量汇总为k个代表向量(每个作为列向量)。

3、循环架构

Implementation of the -O Version

只需要简单地将标准LSTM从向量版本扩展到矩阵版本。

循环架构:

posted @ 2021-03-15 21:30  jcsama  阅读(184)  评论(0)    收藏  举报