资源描述
扫码关注公众号 免费下载资料 码:/1 156扫码关注公众号 免费下载资料 目录 大规模图神经网络计算中的算法技术 4自适应通用广义PageRank图神经网络 23探索图神经网络的表达能力 50基于图神经网络的欺诈检测从研究到应用 68图神经网络在反欺诈领域的应用 94基于图神经网络的互联网金融欺诈检测 103图神经网络在实时风控的应用 118图神经网络在支付风控中的应用 138码:/3 156扫码关注公众号 免费下载资料 大规模图神经网络计算中的算法技术 分享嘉宾徐潇然 Hulu 研究员 编辑整理莫高鼎 出品社区DataFun 导读:2017年我以深度学习研究员的身份加入Hulu,研究领域包括了图神经网络及NLP中的知识图谱推理,其中我们在大规模图神经网络计算方向的工作发表在ICLR2020主会上,题目是Dynamically Pruned Message Passing Networks for Large-Scale Knowledge Graph Reasoning。本次分享的话题会沿着这个方向,重点和大家探讨一下并列出一些可以降低大规模图计算复杂度的思路。01 图神经网络简单介绍 码:/4 156扫码关注公众号 免费下载资料 1.图神经网络使用的图 图神经网络这几年特别火爆,无论学术界还是业界,大家都在考虑用图神经网络。正因为图神经网络的应用面很广,所用的图各种各样都有,简单分类如下:根据图与样本的关系 全局图:所有样本共用一个大图 比如有一个大而全的知识图谱,所做任务的每一个样本都共用这个知识图谱,使用来自这个知识图谱的一部分信息。实例图:以每个样本为中心构建的图 每个输入的样本自带一个图,比如要考虑一张图片中所有物体之间的关系,这可以构成一个物体间关系图。换一张图片后,就是另一张关系图。码:/5 156扫码关注公众号 免费下载资料 根据边的连接密度 完全图 稀疏图 2.图神经网络与传统神经网络的联系 神经网络原本就是图,我们大多只是提到“权重”和“层”,再细粒度一点,会讲到“单元”(即units)。但是,有图就有节点和边的概念,就看你怎么定义这个节点。在BERT网络结构中,输入是一个文本序列,预处理成一串代表word或sub-word的tokens,我们可以把这些tokens看成是图中的nodes,这样BERT变成了一个完全图上的图神经网络,而且BERT网络结构的每层可以对应到图神经网络的一次message passing迭代。3.图神经网络与传统神经网络的区别 传统神经网络有多个层的概念,每一层用的都是不同的参数;图神经网络只有一个图,图中计算通过多步迭代完成节点间的消息传递和节点状态更新。这种迭代式的计算,有点类似神经网络的多个层,但是迭代中使用的是同一套权重参数,这点又像单层的RNN。当然,如果不嫌复杂,你可以堆叠多个图,下层图向上层图提供输入,让图神经网络有“层”的概念。另外,图神经网络中的nodes与传统神经网络中的units不同。图神经网络中的nodes是有状态的(stateful),不像传统神经网络中的units,当一层计算完输出给下一层后,这层units的生命就结束了。Nodes的状态表示为一个向量,在下次迭代时会更新。此外,你也可以考虑为edges和global定义它们的状态。码:/6 156扫码关注公众号 免费下载资料 4.图神经网络的计算框架 初始步 初始化每个节点的状态向量(可以包括各条边和全局的状态)消息传递(message-passing)迭代步:计算节点到节点的消息向量 计算节点到节点的(多头)注意力分布 对节点收到的消息进行汇总计算 更新每个节点的状态向量(可以包括各条边和全局的状态)5.图神经网络的计算复杂度 计算复杂度主要分为空间复杂度和时间复杂度。我们使用PyTorch或者TensorFlow进行神经网络训练或预测时,会遇到各种具体的复杂度,比如码:/7 156扫码关注公众号 免费下载资料 会有模型参数规模的复杂度,还有计算中产生中间tensors大小的复杂度,以及一次前向计算中需保存tensors个数的复杂度。我们训练神经网络时,它做前向计算的过程中,由于梯度反向传播的需要,前面层计算出的中间tensors要保留。但在预测阶段,不需要梯度反向传播,可以不保留中间产生的tensors,这会大大降低空间上的开销。物理层面,我们现在用的GPU,一张卡的显存顶到天也就24G,这个尺寸还是有限的,但是实际中遇到的很多图都非常之大。另外,就是时间复杂度了。下面,我们用T表示一次图计算中的迭代个数,B表示输入样本的批大小(batch size),|V|表示节点个数,|E|表示边个数,D,D1,D2表示表征向量的维数。空间复杂度:模型参数规模 计算中间产生tensors规模(此时有B=1,T=1)计算中间保留tensors规模(此时有B=1,T=1)时间复杂度:计算所需浮点数规模(此时考虑D1,D2)总结复杂度的计算公式,不外乎如下的形式:02 降低图神经网络计算复杂度的几点思路 码:/8 156扫码关注公众号 免费下载资料 思路一:避开|E|通常情况下,图中边的个数远大于节点的数量。极端情况下,当边的密度很高直至完全图时,图的复杂度可以达到|V|(|V|-1)/2。如果考虑两个节点间双向的边,以及节点到自身的特殊边,那么这个复杂度就是|V|2。为了降低计算的复杂度,一个思路就是尽量避开围绕边的计算。具体来说,为了让计算复杂度从|E|级别降低为|V|级别,在计算消息向量(message vectors)时,我们仅计算 destination-independent messages。也就是说,从节点u发出的所有消息使用同一个向量,这样复杂度从边数级别降为了节点数级别。值得注意的是,这里会存在一个问题,消息向量里不区分不同的destination节点。那么,能否把不同的destination节点考虑进来呢?当然可以,不过需要引入multi-head attention机制。下面针对这种情况来介绍一下优化方案。适合情形:当|E|V|时,即边密度高的图,尤其是完全图 优化方案:码:/9 156扫码关注公众号 免费下载资料 思路二:减少D 顺着思路一,我们在计算attention时,每个attention分数都是一个标量。我们可以减小计算attention所用的向量维数,因为输出是一个标量,信息被压缩到一维空间,所以计算时没必要使用大向量来提高capacity。如果需要multi-head的话,可以把每个计算channel的向量维数变小,让它们加起来还等于原来的总维数。这个思路很像BERT,BERT虽然不是GNN,但是这种机制可以运用到GNN中。还有一篇论文,提出了Graph Attention Networks,也用到了类似的思路。适合情形:引入attention mechanism的multi-head channels设计 优化方案:每个head channel 的消息计算使用较小的hidden dimensions,通过增加head的数量来保证模型的capacity,而每个head的attention 分数在一个节点上仅仅是一个标量。码:/10 156扫码关注公众号 免费下载资料 思路三:部分迭代更新(选择性减少T)前面的思路是减少边数量以及计算维度数,我们还可以减少迭代次数T,这样中间需保留tensors的规模就会变小,适合非常大的网络,尤其当网络节点刻画的时间跨度很大,或者异构网络的不同节点需要不同频次或不同阶段下的更新。有些节点不需要迭代更新那么多次,迭代两、三次就够了,有些节点要更新好多次才行。下图的右侧部分,每步迭代节点都更新;左侧部分,节点只更新一次,即使这样,它的计算依赖链条还是有四层。至于更新策略,可以人为设定,比如说,采取随机抽样方式,或者通过学习得到哪些节点需更新的更新策略。更新策略的数学实现,可以采取hard gate的方式(注意不是soft),也可以采取sparse attention即选择top-K节点的方式。有paper基于损失函数设计criteria去选择更新的节点,如果某个节点的当前输出对最终损失函数的贡献已经很好了,就不再更新。需要注意的是,在hard gate和sparse attention的代码实现中,不能简单地把要略过的节点的权重置零,虽然数学上等价,但是CPU或GPU还是要计算的,所以代码中需要实现稀疏性计算,来减少每次更新所载入的tensor规模。更新的粒度可以是逐点的,也可以是逐块的。码:/11 156扫码关注公众号 免费下载资料 适合情形:具有大时间跨度或异构的网络,其节点需不同频次或不同阶段下的更新 优化方案:码:/12 156扫码关注公众号 免费下载资料 更新策略一:预先设定每步更新节点 更新策略二:随机抽样每步更新节点 更新策略三:每步每节点通过hard gate的开关决定是否更新 更新策略四:每步通过sparse attention机制选择top-K节点进行更新 更新策略五:根据设定的criteria选择更新节点(如:非shortcut支路上梯度趋零)思路四:Baking(“烘焙”,即使用临时memory存放某些计算结果)Baking这个名字,是我引用计算机3D游戏设计中的一个名词,来对深度学习中一种常见的技巧起的名字。当某些数据的计算复杂度很高时,我们可以提前算好它,后面需要时就直接拿来。这些数据通常需要一个临时的记忆模块来存储。大时间跨度的早期计算节点,或者异构网络的一些非重要节点,我们假定它们对当前计算的作用只是参考性的、非决定性的,并设计它们只参与前向计算,不参与梯度的反向传播,此时我们可以使用记忆模块保存这些算好的数据。记忆模块的设计,最简单的就是一组向量,每个向量为一个记忆槽(slot),访问过程可以是严格的索引匹配,或者采用soft attention机制。适合情形:码:/13 156扫码关注公众号 免费下载资料 大时间跨度的早期计算节点或者异构网络的一些非重要节点(只参与前向计算,不参与梯度的反向传播)。优化方案:维护一个记忆缓存,保存历史计算的某些节点状态向量,对缓存的访问可以是严格索引匹配,也可以使用soft attention机制。思路五:Distillation(蒸馏技术)蒸馏技术的应用非常普遍。蒸馏的思想就是用层数更小的网络来代替较重的大型网络。实际上,所有神经网络的蒸馏思路都类似,只不过在图神经网络里,要考虑如何把一个重型网络压缩成小网络的具体细节,包括要增加什么样的loss来训练。这里,要明白蒸馏的目的不是仅仅为了学习到一个小网络,而是要让学习出的小网络可以很好地反映所给的重型网络。小网络相当于重型网络在低维空间的一个投影。实际上,用一个小的参数空间去锚定重型网络的中间层features,基于hidden层或者attention层做码:/14 156扫码关注公众号 免费下载资料 对齐,尽量让小网络在某些中间层上产生与重型网络相对接近的features。适合情形:对已训练好的重型网络进行维度压缩、层压缩或稀疏性压缩,让中间层的feature space表达更紧凑。优化方案:Distillation Loss的设计方案:Hidden-based loss Attention-based loss 码:/15 156扫码关注公众号 免费下载资料 思路六:Partition(or clustering)如果图非常非常大,那该怎么办?只能采取图分割(graph partition)的方法了。我们可以借用传统的图分割或节点聚类算法,但是这些算法大多很耗时,故不能采取过于复杂的图分割或节点聚类算法。分割过程要注意执行分割算法所用的节点数据,最好不要直接在节点hidden features上做分割或聚类计算,这是因为只有hidden features相似的nodes才会聚到一起,可能存在某些相关但hidden features不接近的节点需要放在一个组里。我们可以将hidden features做非线性转换到某个分割语义下的空间,这个非线性转换是带参的,需要训练,即分割或聚类过程是学习得到的。每个分割后的组,组内直接进行节点到节点的消息传递,组间消息传递时先对一组节点做池化(pooling)计算,得到一个反映整个组的状态向量,码:/16 156扫码关注公众号 免费下载资料 再通过这个向量与其他组的节点做消息传递。另外的关键一点是如何通过最终的损失函数来训练分割或聚类计算中的可训参数。我们可以把节点对组的成员关系(membership)引入到计算流程中,使得反向传播时可以获得相应的梯度信息。当然,如果不想这么复杂,你可以提前对图做分割,然后进行消息传递。适合情形:针对非常大的图(尤其是完全图)优化方案:对图做快速分割处理,划分节点成组,然后在组内进行节点到节点的消息传递,在组间进行组到节点、或组到组的消息传递。Transformation step Project hidden features onto the partition-oriented space Partitioning step Group-pooling step Compute group node states Message-passing step Compute messages from within-group neighbors 码:/17 156扫码关注公众号 免费下载资料 Compute messages from the current group node Compute messages from other group nodes 思路七:稀疏图计算 如何利用好稀疏图把复杂度降下来?你不能把稀疏图当作dense矩阵来处理,并用Tensorflow或PyTorch做普通tensors间的计算,这是没有效果的。你必须维护一个索引列表,而且这个索引列表支持快速的sort、unique、join等操作。举个例子,你需要维护一份索引列表如下图,第一列代表batch中每个sample的index,第二列代表source node的id。当码:/18 156扫码关注公众号 免费下载资料 用节点状态向量计算消息向量时,需要此索引列表与边列表edgelist做join,把destination node的id引进来,完成节点状态向量到边向量的转换,然后你可以在边向量上做一些计算,如经过一两层的小神经网络,得到边上的消息向量。得到消息向量后,对destination node做sort和unique操作。联想稀疏矩阵的乘法计算,类似上述的过程,可以分成两步,第一步是在非零元素上进行element-wise乘操作,第二步是在列上做加操作。适合情形:当|E|v|*|v|时 优化方案:稀疏计算的关键在于维护一个索引列表,能快速进行sort、unique、join操作并调用如下深度学习库函数:码:/19 156扫码关注公众号 免费下载资料 TensorFlow:-gather,gather_ndm -scatter_nd,segment_sum,-segment_max,unsored_segment_sum|max Pytorch:-gather,scatter,scatter_add 思路八:稀疏routing 稀疏routing与partition不同,partition需要将整个图都考虑进来,而稀疏routing只需考虑大图中所用到的局部子图。单个样本每次计算时,只需要用到大图的一个局部子图,刚开始的子图可能仅是一个节点或几个节点,即聚焦在一个很小的区域,计算过程中聚焦区域逐渐扩大。这种routing的方式也是一种attention机制,与传统的attention机制有所不同。传统的attention用于汇总各方来的消息向量,采用加权平均的方式,让incoming消息的权重相加等于1;对于routing的话,刚好相反,让outgoing的边权重和为1,这个有点类似PageRank算法。这样做的好处,可以在计算过程中通过选取top-K的outgoing边来构建一个动态剪枝的子图。适合情形:全图虽大,但每次仅用到局部子图 优化方案:码:/20 156扫码关注公众号 免费下载资料 Attention机制是“拉”的模式,routing机制是“推”的模式。思路九:跨样本共享的图特征 当你计算的图特征(如节点向量)不依赖具体样本时,这些特征可以作为输入喂给每个样本,但是它们的大小不随batch size的大小而增加。我们称这些是input-agnostic features,由于跨样本共享,它们相当于batch size为1的输入。适合情形:提供input-agnostic features 优化方案:跨样本共享,相当于batch size为1。码:/21 156扫码关注公众号 免费下载资料 思路十:组合使用以上九种方法 组合使用以上九种方法,根据自己的实际情况设计适当的算法。码:/22 156扫码关注公众号 免费下载资料 自适应通用广义PageRank图神经网络 分享嘉宾簡翌/彭建浩 UIUC 编辑整理何坤登 氪信科技 出品社区DataFun 导读:大家好,我叫彭建浩,我是UIUC电子科技与计算机工程专业的在读博士生,今天我会和我的同事简翌分享一篇我们最近被ICLR收录的论文,名字叫Adaptive Universal Generalized PageRank Graph Neural Network,简称GPRGNN。相信大家都知道,图神经网络或GNN已经在很多图结构的数据集上展现出了较传统方法更优越的性能,包括在各种节点分类,图分类,还有关联预测等等任务上,其实除去一些常见的标准测试数据集还有各种各样的合成数据,图神经网络还可以运用到很多新兴生物医学领域上,目前他们大多数还是使用传统的方法,例如:根据不同的疾病来分类相同的基因,或者把不同的药物跟基因或者疾病作关联,把已有的药物用在潜在的疾病上。码:/23 156扫码关注公众号 免费下载资料 1.在基因和疾病的关联上 我们做的事情可以有一个已知基因网络的部分基因,然后我们尝试对剩余的基因进行节点分类,我们就知道什么样的基因和这个疾病是有关的,还有就是已知基因网络跟疾病网络,还有部分疾病到疾病的联系,我们就尝试去做剩余的基因跟疾病之间的关联预测,也就是link prediction,node classification的任务。2.类似的,在药物与疾病相关联上 我们可以通过做药物基因的关联网络还有疾病基因的关联网络,然后通过基因把他们串联起来,去预测不同药物与疾病之间的关系,或者对药物进行不同疾病的分类,也就是线性预测,节点分类的任务。码:/24 156扫码关注公众号 免费下载资料 上述话题其实都是在生物领域非常热门的话题。回到今天展示的主要内容,我们将我们的论文概括成以下五点:已有的图神经网络;现有图神经网络普遍存在的两个主要问题:一般性和过平滑;GPR-GNN模型;GPR-GNN模型的实验结果;总结以及GPR-GNN模型未来的研究方向。01 已有的图神经网络 码:/25 156扫码关注公众号 免费下载资料 1.常用符号 首先,我们先介绍一些比较通用的符号:和其他的方法类似,我们首先定义GNN 的邻接矩阵A,节点特征矩阵 X,类别特征矩阵Y,还有必要的normalized degree和邻接矩阵tilde D 和tilde A 以及delta函数。2.现有模型:stacking GNN layers 大部分常用的GNN结构其实都是通过不断的叠加类似于下图的GNN layer或者传播 layer来得到。码:/26 156扫码关注公众号 免费下载资料 从图里面我们能看到的是GCN用到的单层结构,概括的讲,从k-1层的特征矩阵 H0到k层的特征矩阵Hk,GCN或者普遍的GNN的单层结构会先用normalized 邻接矩阵作为自特征层的传播乘上该层对应的变换矩阵作一个线性的变化,最后再通过一个非线性累加得到下一层的结果;不断的迭代,直到在最后层用softmax对所有的节点做最终的表达,然后对该表达做一个节点的分类或者其他的任务。02 现有GNN模型的缺陷 码:/27 156扫码关注公众号 免费下载资料 在GCN的影响下,大家又提出的其他的不同的GNN结构,比较常见的例如GAT,Graph SAGE以及其他更多的一些结构,其通用逻辑可以概括为先提出一个类似上述的传播层,然后不断的叠加一些层,最后再用一个类似与softmax的单层作为神经网络的最终输出。这样的做法在很多的测试数据集上都表现出优越的成绩,尤其是像较于仅使用图拓扑结构或者是使用节点的表达 node 特征矩阵。但是GNN也衍生出了一些GNN的主要问题,我们这里主要关注大部分GNN都有的两个问题:其中一个就是普遍性或者一般性;以及大部分GNN都存在的过平滑。码:/28 156扫码关注公众号 免费下载资料 这里的普遍性是指一个普通的GNN应该能在不同种类的图结构数据上学习,进行准确的预测,不应该偏向于某一类型的图,而过平滑是一个图深层网络都会出现的一个普遍问题。那么接下来我会详细的讲一下一般性和过平滑的问题。1.一般性 首先,大部分的GNN都是基于一个 叫做homophilic(同源)的假设,即同向偏好假设(或者同源偏好假设),在这个假设中,属于同一类的点或者相似的点,他们之间更偏向于建立相互的连接,它的反例就是heterophily(weak homophily)就是异向偏好(或者异源偏好),即非同源偏好,即不同类别的点或者不相似的点更倾向与建立连接,例如在部分Dating graph或者protein graph上,不同的性别或者不同的氨基酸,比码:/29 156扫码关注公众号 免费下载资料 起同类的,他们更有可能在不同的类别之间建立连接,此时,基于homophily假设设计的GNN,或者假设图已经是homophily的GNN,那么他们的表现就不太好,甚至还不如其他的或者一般的方法。因此我们设计GNN的时候,一个关键的点就是要使得我们的GNN能够同时应对这两种情况的图结构,也就是所谓的一般性。2.过平滑另一个GNN的主要问题就是过平滑,过平滑的意思就是大部分现有的GNN都不能算作是一个深层模型(deep model),上文中提到的图里面,理论上没有限制K有多大,可以一直叠加,但是实际上,大部分的模型,如GCN,还有Graph SAGE,他们普遍都只有2-4层,非常浅。而且,这些码:/30 156扫码关注公众号 免费下载资料 浅层的模型在测试数据集上往往比深层的模型表现要好。导致了GNN不能叠加过多层的理论上的原因,即过平滑(过平滑)。如何理解过平滑的问题?假设在无穷层的GCN中,如果把所有非线性变化叠加全部去掉,就只有了一个连续的传播以及连续线性变换。由表达式可知,如果模型迭代了无限多层,且没有非线性叠加的话,最后的特征向量或者特征矩阵会变成和原先的输入矩阵X无关的一个矩阵。因此,无论输入数据是什么,最后都会得到一个与输入无关的表达,即完全丧失了来自于节点特征的信息,所以,图不能在该数据中学得很好。码:/31 156扫码关注公众号 免费下载资料 以上即GNN的两个主要问题。接下来就交给简翌介绍我们的解决方法以及GPR-GNN如何解决GNN的上述问题,和一些其他的beneficials。03 我们的解决方案:GPR-GNN 下图是GPR-GNN的主要结构,它分为两个部分,第一部分是一个单层的MLP神经网络。它主要的作用是做隐态特征提取。当输入矩阵X(node matrix)进入到神经网络层之后,会得到一个变换之后的特征矩阵 H0,之后根据图拓扑去传播 K步分别得到H1至Hk不同步数传播后的结果。然后把得到的不同步数的结果做一个线性组合,其对应的权重叫做GPR Weights,码:/32 156扫码关注公众号 免费下载资料 最后线性组合完成的结果就是最终的输出结果。表达式中标注的红色参数就是需要学习的参数,而模型是采用端对端(end-to-end)的方式进行训练。逻辑为:在解释其功能中,前面的逻辑好像是专门针对node feature,而GPR Weights专门解决图传播的问题,如果实际上是end-to-end的训练,他们相互之间可以借由梯度信息同时得到节点特征和图传播,并同时受到节点特征和图传播的限制。GPR-GNN能够同时解决一般性和过平滑 的问题,此外,GPR-GNN还能够避免过拟合的问题。在以前的SGC中,如果每多加一层,就需要多引进一个需要训练的参数矩阵,当隐藏单元很大的时候,每多加一层,参数量就会很大,相对来说,GPR-GNN每多传播一步,只会多引入一个单个的参数,因此可以传播很深但是参数量不会明显增加。同时,GPR-GNN还具有码:/33 156扫码关注公众号 免费下载资料 可解释性,之后的实验会观察学到的GPR weights是否合理,然后借由实验表明GPR-GNN 模型确实有可解释性。1.节点分类 在本次的分享中主要关注的是节点分类的问题,我们会拿到一整张图以及node 特征矩阵,然后会得到一些点,我们的任务就是还原所有标签的节点。Generalized PageRank 对于节点分类这个问题,其实与非监督图聚类相关,特别是与seed-set expansion相关,在我们19年发布的论文中,提出了Generalized 码:/34 156扫码关注公众号 免费下载资料 PageRank的想法,去研究在seed-set expansion 这个任务中,GPR的表现如何。研究显示,GPR明显优于比较受欢迎的传统方法,如Personalized PageRank(PPR),seed-set expansion 这个任务是指给定一个点,在图中找到包含该点的集群,更类似于非监督问题。我们可以根据信息学做一个one dimension 特征矩阵即如果该节点是seed node,那么其结果为1,否则为0。GPR主要的概念就是把one dimension 特征矩阵做一个K部的传播,之后再做一个线性组合对每一个点得到一个GPR分数,然后根据GPR的分数进行聚类,将分数最高的几个点作为包含seed node的集群。图卷积与随机漫步之间的关系 码:/35 156扫码关注公众号 免费下载资料 从下图中,可以看见GCN 层与GPR的传播具有一定的相似性,但也存在不同得地方。它们相似的点为都是在图中做传播。不同的点是GCN会增加一些特征变换,且只用了最后一步;而GPR的重点则是从第0步到第k步做一个线性组合,第0步到第k步的信息都有用到。3.GPR-GNN具有一般性的原因 那么接下来我来解释为什么GPR-GNN是具有一般性的。一个很重要的评论是GPR在数学上是与多项式的图滤波器是等价的,以下是多项式图滤波器的表达式:码:/36 156扫码关注公众号 免费下载资料 可以看到对一个邻接矩阵而言,它是一个K次的多项式,GPR weights则变为多项式的系数。而学习最优GPR weights也等同于学习最优多项式滤波器。从传统的信号处理或者图信号处理的角度而言:多项式滤波器可以逼近任意种类的滤波器,如低通滤波器,或高通滤波器,甚至是更复杂的带通滤波器。在此论文中,主要得到一下的理论:第一个部分的结论是说,假设GPR weighs的结果全部为非负,且并非只有第0步为非负,即除了corner case 以外,不是只有第0步有值,然后其他步都为非负,那么GPR weights 可以对应看作一个低通图滤波器,另一方面,如果 GPR weights的形式为(-)k,其正负号会随其步数的weights而依次有(-1)k的交替,则GPR会对应看作一个高通图滤波器。码:/37 156扫码关注公众号 免费下载资料 理论上,如果GPR-GNN或者多项式滤波器需要满足一般性,那么部分GPR weights 需为负值,如果全部为正,则就会对应为低通滤波器。4.GPR-GNN能够避免过平滑的原因 另外,我们也理论的角度分析为什么GPR-GNN能够避免过平滑。因为理论分析相对复杂,所以本此分享中仅提到关键理论,思路为,如果第K步的结果对训练损失没有帮助,那么在用它的梯度更新相对应的GPR weights 的时,就会把第K步的结果的大小拉下来,当其结果下降到一定程度时,没有帮助的步数就最终就不会影响结果,从而避免过平滑的问题。详细的理论证明则请有兴趣的同学从论文中查找。码:/38 156扫码关注公众号 免费下载资料 5.与相关论文的对比那么接下来,我们提一些比较相关的论文,其可以分为两类:GCN-like 模型:(1)JK-NET:与GPR-GNN相同的是,它也在最后一层中将不同步数的结果累加起来。(2)GCN-Cheby:每一层的GNN都传播超过1步。上述两个模型在实践中,深度都会比较受限,且其学习到的参数步具有可解释性。很难说明他们学习到的weights具体代表什么内容。码:/39 156扫码关注公众号 免费下载资料 基于图拓扑加强的MLP(1)APPNP:如果我们将GPR-GNN的weights固定不动为PPR weights的形式,则将GPR-GNN还原为APPNP,因为它的所有GPR weights都是正值,所以它不可避免地成为了一个低通滤波器;导致它只能在同源图中生效,而无法在异源图中生效。(2)SGC:与APPNP类似,它只有最后一步的GPR weights 有值,而把所有的非线性值都删除,所以它仍然是一个低通滤波器,仍然只能在同源图中生效,而无法在异源图中生效。(3)C&S:在2021年ICLR论文:Huang et al.Combining Label Propagation and Simple Models out-performs Graph Neural Networks中提出catch and smooth的方法,其主要观点则是结合标签 传播与MLP,该论文也存在部分工作仍然基于同源图的假设,故亦不能应用于异源图中。码:/40 156扫码关注公众号 免费下载资料 04 实验 1.实验:Synthetic data 为了测试各个GNN 在不同程度的同源图和异源图中的表现,我们提出了使用contextual Stochastic Block模型(cSBM)生成随机图测试GNN的性能。码:/41 156扫码关注公众号 免费下载资料 其node feature 是一些高斯随机向量,则是高斯随机向量的距离,所以越大,那么node feature的信息强度则越强。而其图的部分则是SBM,由参数控制相同标签的边或者不同标签的边机率的差,因此的大小则表示了该拓扑图信息强度的大小,的绝对值越大,则图的信息强度越强,为正则表示该图为同源图,为负则表示该图的异源图。新定义参数 表示与的比值,如果 在1到-1之间,则该图对应为强同源图或者强异源图,如果等于1或者-1,则node feature 独立与node 标签不相关,如果等于0,则拓扑图独立与 node 标签不相关。以下是我们对各个Baseline以及GPR-GNN在cSBM上的实验结果,当从0到1变大的时候,所有的GNN表现都会越来越好,也说明了GNN目前受到欢迎的原因,因为在同源图中,GNN比一般不考虑图拓扑信息的模型表码:/42 156扫码关注公众号 免费下载资料 现好,而MLP的表现则会随着的增加而变差,因为当等于1的时候,node feature 是完全没有信息的。根据我们刚刚的模型,如果一个GNN具有一般性,则其在同源图或者异源图中的学习效果是相同的,因此,如果当在0到-1中时,越接近-1,传统的GNN,如GCN,GAT,其表现则不如他们在同源图中学习的效果,会具有明显的落差。与之相对的,GPR-GNN的表现曲线则相对较为对称,表示GPR-GNN确实具有一般性。同时,在图拓扑信息不强的时候,即接近0的时候,传统GNN的表现明显弱于完全忽略图拓扑信息的模型,如MLP。所以,在不确定图是同源图还是异源图,甚至是与标签不相关的情况下,如果盲目使用GNN,则有可能得到更糟糕的结果,而GPR-GNN在图拓扑信息完全与节点标签不相关的情况下,其表现仍然与MLP相差不远。2.实验:真实世界数据集 码:/43 156扫码关注公众号 免费下载资料 在实际情况的数据集中也做了实验,简而言之,无论是在同源图,还是异源图中,GPR-GNN的表现仍然较好。3.实验:已学习GPR weights的可解释性 同样地,我们也做了实验证明GPR weghts是否具有可解释性。首先,a,b,e,f四个图表示的是同源图的效果,可以看到每一步已学习GPR weights都是正值,就理论而言,其表现为低通滤波器;而在c,d,g,h四个异源图中,已学习GPR weights是正负交替出现的,其在理论上仍然符合高通滤波器的特点,即GPR weights的部分值需要为负值。码:/44 156扫码关注公众号 免费下载资料 4.实验:避免过平滑 最后,我们仍做实验测试了GPR-GNN是否能够避免过平滑。刚开始,将GPR weights初始化到最后一步,则发现在训练之前,GPR-GNN很大程度上会出现过平滑,而随着开始训练GPR weights整个模型时,前面几步的GPR weights已经开始逐渐变大,最后一步其大小会下降,而从准确率的角度评估,完全没有训练之间的准确率在百分之五十左右,而训练完成的准确率则可高达仅百分之九十九。而该实验中训练步数达到了10步,已经是一个相对叫较深的模型,同时也证明了GPR-GNN确实能够避免过平滑问题。码:/45 156扫码关注公众号 免费下载资料 05 总结与未来发展 码:/46 156扫码关注公众号 免费下载资料 总结:GPR-GNN具有一般性,且能够避免过平滑问题;此外,因为GPR-GNN使用的参数较少,所有也能够避免过拟合问题;而所学习到的GPR weights 是具有可解释性的。更多地,发现能够在cSBM中严谨地测试GNN的一般性。在未来研究中,也思考过很多有趣的发展方向,如是否能够将MLP替换为其他更加复杂的神经网络;或者使用attention机制学习GPR weights,因为目前GPR-GNN形式还较为简单,需要验证是否能够将其变得更复杂从而学习到GPR weights;最后 GPR-GNN是否能够延伸到图表示学习中,即如果在GPR-GNN中加入图池化层,GPR-GNN是否仍然能够运行。码:/47 156扫码关注公众号 免费下载资料 06 问答环节 Q:如何辨别同源图和异源图?A:在ICLR关于GCN的论文中,有提到过一个关于衡量同源图和异源图的标准指标,但是其仍然存在一些缺点,同时,在我们的论文附录中,也有具体讨论过关于衡量同源图与异源图的相关指标。Q:在生物医药中的一些实际应用 A:目前的论文是专注在节点分类的方向上提供一种可行性,暂时没有实际应用到生物医药分析上。Q:图上高频和低频的实际物理含义 A:图上的高低频主要是根据其特征值(Eigenvalue)确定的,如果把adjacency matrix做特征值处理的话,其特征值在1到-1之间变化,特征值越大,则对应的是低频,反之对应的则是高频;因为特征值会从所有值为正值逐渐变为负值,而随着特征值越靠近高频,该节点的邻居节点也会逐渐靠近负值。Q:如何衡量节点最终的表示是否与原始信息是否相关?码:/48 156扫码关注公众号 免费下载资料 A:GPR-GNN是不需要特别在意最终的表现与初始信息是否有强相关或者弱相关,因为在cSBM上,不管特征是否具有信息量,都具有非常好的表示结果。论文中,在弱化初始特征是否重要。Q:如果节点特征没有区分度,模型是否仍然有作用?A:节点特征是与结果无关的,其证明在输入特征完全没有用的情况下,GPR-GNN模型仍然能够提取图的拓扑信息。Q:假设没有非线性层,该模型是否仍然能够调用一个深度的基因模型,仅仅是传播次数加深,如果有非线性,是否仍然能够做相关分析?2020年有一篇ICLR做过相关方面的分析,可以用gamma训练大小来衡量 Q:是否能
展开阅读全文