菜鸟笔记之《Large-Scale Learnable Graph Convolutional Networks》

本文是发表在KDD会议上的一篇文章,以大规模可学习图卷积神经网络为研究内容,作者来自于华盛顿大学。在笔者看过的很多graph embedding的论文中,华盛顿大学出现过很多次,看来在该领域华盛顿大学很优秀呀。言归正传,我将从以下三个方面,相关工作、模型算法、实验设计进行总结阐述。

1. 相关工作

       众所周知,深度学习领域,卷积神经网络CNN功能强大,无论是在图像识别,自然语言处理,机器翻译等领域,都有很出彩的表现。大规模减少权值参数的同时,避免了人工特征提取。然而,传统卷积核是应用在网格样式(grid-like)的数据上,图片也是由一个个规则的像素矩阵构成的。因此,规则卷积需要网格化数据。其实,网格数据在一定程度上,是一种特殊类型的图数据。

       当面对现实世界中普遍存在的网络结构样式的图数据时,由于每个节点的邻居节点数目不同,邻居节点之间没有自然的顺序关系,强大的CNN神器要想在graph上发挥作用,受到严重的限制。图数据的应用主要在于节点分类问题,基于图中网络关系和节点自身特征对节点进行分类预测。传统的方法是进行graph embedding等操作,这也是一个重要的研究领域。

1.1 GCN图卷积神经网络

       借鉴谱图卷积理论,图卷积神经网络GCN被提出,并且在cora等引文网络的数据集上取得了显著的效果。GCN网络的层间前向传播规则,也是GCN的核心原理(详见另一篇笔记),如下所示:
X_{x+1} = \sigma(\hat D^{{-}{\frac{1}{2}}} \hat A \hat D^{{-}{\frac{1}{2}}}X_lW_l)

       在该公式中,\hat D是对角化的节点度矩阵,\hat A是加入自环连接的邻接矩阵,W_l是训练过程中进行学习的各层参数。本质上讲,GCN并不是严格意义上的卷积网咯,它只是借鉴卷积计算思想的聚合操作,将节点的邻居节点信息“卷积”到节点自身,在此过程中,邻居节点的地位是相等的,简而言之,只是做了算数平均。而且,\hat D^{{-}{\frac{1}{2}}} \hat A \hat D^{{-}{\frac{1}{2}}}对于一个特定的网络而言,是固定的,不可训练的。和CNN通过学习局部滤波器权重,自动提取特征相比逊色不少。GCN不可训练的聚合操作限制了图数据中CNN的特征提取能力。

1.2 GATs图注意力机制

       注意力机制需要在节点和其邻居节点间进行额外操作,也会带来存储和计算资源的消耗问题。GCN中的算数平均聚合用特征向量加权和取代。公式如下:
e_l^{i,j} = a_l(W_lx_l^i,W_lx_l^j)
a_l^{i,j} = softmax(e_l^{i,j})
       注意力机制之前没有接触过,会作为一篇笔记进行专门总结,到时候这部分再更新。

2. 模型算法

       本文的算法创新点主要在于以下两个方面,可学习的图卷积层和针对大图的子图训练策略。
       为了充分利用CNN的规则卷积核进行空间平移从而自动提取特征的优点,需要将网络结构的图数据转化为网格数据。首先要解决的两个问题是节点邻居数标准化和邻居节点顺序的选择。本文作者是这样进行解决的,如图所示:

fig1 网格数据构建

       第一次看到这个构建过程,觉得既简单又巧妙,该例子不仅蕴含着最大化降采样原理,还有1d卷积核的应用,这里k取4,k是一个超参数,k的选取很重要,一般k 的选择,考虑节点的平均度数以及分类任务的复杂性。在三个特征维度上选择每一维选最大的四个值进行组合,所以这里的节点并不是真是邻居节点特征,是经过加工之后的,有max-pooling的感觉,不仅解决了树木标准化为4们还按照大小顺序排好序。节点特征向量是三维,视为三个通道channel,由于只有一个橘色节点,因此batch_size为1,卷积核kennel对应的也是三通道,filter个数是4,即
(k/2+1)*4*3
,卷积核从上到下,步长为1,不做padding,得到
3*4
的中间结果,接下来,卷积核
(k/2+1)*5*4
,得到最终
1*5
的特征向量,表征当前的橘色节点特征。

       但是这样的解决方法是有前提的,每个节点的邻居节点个数足够多(保证基本大于k且基本均匀,对于非常稀疏的大量孤立节点存在的网络,k取得值很小,邻居节点间特征传播没有意义)。一般对CNN来讲,深度卷积的效果可能更好一点,但是,GCN的层数一般是2-3层,层数过高,会造成过拟合。

       结合图卷积网络,构造可学习的图卷积,在DCNN之前增加了一个图嵌入层(graph embedding),将高维图数据(节点特征)低维度表示,\hat D^{{-}{\frac{1}{2}}} \hat A \hat D^{{-}{\frac{1}{2}}}X_0W_0,不经过激活函数,则还是特征表示。同时,W_0\in R^{C_0\times C_1}X_1\in R^{N\times C_1},并且C_1<C_0实现了节点特征从高维空间降低维空间的映射。

       大规模网络数据的子图训练,借鉴随机抽样,裁剪补丁的思想,通过裁剪大图获得用于训练的小图。子图选择算法我们通过下图直观理解,算法步骤如下:

 1.随机采样,得到初始节点(图中三个橘色节点)
 2.广度优先搜索,为子图迭代扩充邻居节点
 3.$N_m$每次迭代可置不同值(第一次5个蓝色节点,第二次7个一蓝色节点为中心绿色邻居节点)
 4.初始节点和迭代搜索到的节点,总共15个节点,作为训练的子图样本
子图生成算法

        综上所述,本文提出的模型算法流程应该是这样子滴:


图数据节点分类处理流程

       如图所示,图数据的研究,无论是节点分类还是链路预测等应用,归根结底,都是由其本质特征决定的,即相较于传统的一维数据、图像数据、文本数据,图数据不仅具有节点甚至边的自身特征,还有节点间的网络关系。不同于graph-embedding常用的node2vec先做特征衍生,再跑机器学习模型的做法,图深度学习将特征提取和模型训练合并进行。子图选择算法尤其适用于具有若干社区,社区间联系稀疏,社区内关系紧密的情况 。GCN在本文模型中仅仅作为embedding降维的工具,这个工作node2vec也可以进行,不过时间效率可能不及GCN。最关键的步骤就是黄色部分,实现了非欧到欧式空间的网格化抽象转化,以及邻居节点的统一有序排列。为直接应用CNN的可行性提供基础。这样做还有一个好处,我们知道图深度学习,按照目前GCN的做法,隐藏层只有两到三层,层数增加之后,带来的过拟合现象,同时,GCN隐藏层的作用本质上是将邻居节点信息卷积到当前节点上,随着隐藏层加深,所有节点会最终被同质化为同一个节点,使得模型退化,即图深度学习并不“深”。但是按照本文的做法,最后用传统卷积神经网络做,相当于一个标准的一维卷积问题(1d-cnn),原理上讲,不存在上述这个问题,设计深层模型应该没有问题。这里仅是笔者猜测,没有做实验论证,以后有时间补上。

3.实验设计

       本文的实验数据集如下图所示,采用经典的引用网络数据集Cora,Ci'te'se'r以及Pubmed,前两个数据集节点数只有两三千,特征维数上千,这种情况一般是embedding之后表示学习的结果,比如Cora的特征就是文本数据关键词one-hot编码后的结果,文中指出是bag-of-word文档表示后得到的特征向量。从Degree一列可以看出,网络中节点的度数不低,平均或最高(由于论文作者没有阐述该列含义,此处为笔者猜测)节点度数4-6个,网络不是特别稀疏。


数据集

       我们注意到,在实验设置的时候,有Transductive和Inductive之分,Transductive是转化学习,是指在训练过程中,无标签节点的网络结构和特征向量是已知的,是一个半监督学习的过程;Inductive是归纳学习,是指训练过程中,测试样本是不存在的,包括待测节点的特征向量和网络结构,这篇文章的PPI数据集就属于这种情况,作者在切分训练集验证集测试集时,直接按照子图切分的,也就是说测试过程是在一个新的图上进行的。之前看的一篇文章《Revisiting Semi-Supervised Learning with Graph Embedding》中就这两个问题进行了一些描述,等下次再写,这里不赘述了。个人感觉,Inductive和动态网络的节点分类问题还不太一样,动态网络是指网络中节点可以随时进出,这部分动态进出的节点并不是孤立的一个子图,所以不能把这部分工作当作是动态检测的参考案例。
       Transductive部分的三个数据集都采用了GCN作为embedding层进行降维,然后各自分别堆叠2,1,1层LGCLs(就是网格化接1d-cnn),最后用全连接分类器做预测。对于Inductive,作者采用子图方式训练,网络结构基本不变。主要是embedding,k,dropout,L2正则化的参数设置上,根据问题规模进行相应调整。


Inductive实验结果

       作者还对网格化过程的模型中,k值选择的科学性进行研究,经过实验,他认为k的选择应当比平均节点度数大一点(由此我们推出前文数据集表格中的degree是指图的平均节点度数)。但具体值仍然需要是通过实验来选择。


不同k值选择的表现

       好了,就说到这里了,第一次写论文笔记,一些不到位的地方,欢迎大家批评指正。

作者原创,欢迎交流,如需转载请先联系作者。

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

推荐阅读更多精彩内容