IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> [论文阅读] (22)图神经网络及认知推理总结和普及-清华唐杰老师 -> 正文阅读

[人工智能][论文阅读] (22)图神经网络及认知推理总结和普及-清华唐杰老师

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学术路上期待与您前行,加油。

前一篇从个人角度介绍S&P21的离地攻击(Living-Off-The-Land)系统分析,这是一篇非常经典的论文。这篇文章将带来清华唐杰老师的分享“图神经网络及认知推理总结和普及”或“Graph Neural Networks and Applications—A Review”。唐老师也是学术界大牛,真心值得我们学习。同时文章融合了自己十年NLP的理解及相关资料补充,只希望帮助更多初学者,且看且珍惜,写得不好的地方请海涵。这些大佬是真的值得我们去学习,献上小弟的膝盖~fighting!

在这里插入图片描述

在此感谢B站的“感谢吕同学”老师的视频,同时文章中插入了很多原文链接,感谢哪些大牛和老师们。

在这里插入图片描述


前文赏析:


一.Networked World

1.背景知识

主要分享我们在图神经网络相关的研究以及分享一些思考和发展。

从整个相关的研究往前看上20年,会发现整个大的背景是由许多网络化的数据组成,比如阿里巴巴、facebook、微博、头条、微信等都会产生海量的网络数据。现在数据隐私保护越来越好,但这些公司会有大量的比赛,提供数据供我们做科学研究。

在这里插入图片描述

这里面有大量的工作可以做,除了社交媒体数据,我们放大看,还会看到各种各样的网络数据,比如:经济方面的数据、生命科学和医学方面的数据,即研究不同药物成分和基因间的关系,有时候这些与人类生活息息相关的数据反而影响更大;还有底层的Internet,我们现在的互联网太关注上层,但事实上整个互联网发展,如可信验证或其他底层机理也非常重要;当然还有神经本身的网络,很多人可能觉得我们已经将DNN、CNN研究透了,会觉得直接这么使用就好了,但我们不应该单纯研究DNN,是不是还应该研究生物神经网络,从中学习新的知识。

在这里插入图片描述

大家知道生物神经网络和人工神经网络的区别吗?
生物神经网络和人工神经网络差别非常大,我们这种可计算的神经网络是生物神经网络的简化,神经网络里面有很多神经元、突触,其机理非常复杂,并且突触数量远大于神经元,那里面甚至产生化学物质和刺激。那里面的机理我们也不清楚,我们更多是通过输入构建模型,然后判断输出好。生物神经网络能从另一个角度理解人的机理, 神经网络是在模拟人的计算,现在虽然效果好,但是如果未来想继续提高一个数量级,怎么做呢?因此,很多人在研究(生物)神经网络本身形成网络的机理。

生物神经网络(Biological Neural Network):一般指生物的大脑神经元、细胞、触点等组成的网络,用于产生生物意识,帮助生物进行思考和行动。每个神经元可以看做一个小的处理单元,这些处理单元按照某种方式相互连接起来,构成了大脑内部的生物神经元网络,这些神经元之间连接的强弱,按照外部的激励信号作自适应变化,而每个神经元又随着接收到的多个激励信号的综合大小,呈现兴奋或抑制状态。本质上,人工神经网络是一个能让计算机处理和优化的数学模型,而生物神经网络是通过刺激,产生新的联结,让信号能够通过新的联结传递而形成反馈。

在这里插入图片描述


2.相关工作

机器学习中的网络分类如下:

Machine Learning with Networks

  • ML tasks in networks
    Node classification(节点分类或排序)
    Predict a type of a given node
    Link prediction(节点之间的关系预测)
    Predict whether two nodes are linked
    在社交网络中是朋友关系推荐,在知识图谱中比如概念之间关系寻找
    Community detection(社区检测)
    Identify densely linked clusters of nodes
    寻找类簇或群体
    Network similarity(网络相似度)
    How similar are two (sub)networks?

所以,网络化的学习做了大量的研究。图神经网络的发展历程如下图所示:

在这里插入图片描述

(1) Hinton早期(1986年)
图神经网络最早也不是这样的,从最早期 Hinton 做了相关的思路,并给出了很多的ideas,他说“一个样本可以分类成不同的representation,换句话,一个样本我们不应该去关注它的分类结果是什么,而更应该关注它的representation,并且它有很多不同的representation,每个表达的意思可能不同” ,distributed representation 后接着产生了很多相关的研究。

(2) 扩展(Bengio到Word2Vec)
Andrew Ng 将它扩展到网络结构上(结构化数据),另一个图灵奖获得者Yoshua Bengio将它拓展到了自然语言处理上,即NLP领域如何做distributed representation,起初你可能是对一个样本representation,但对自然语言处理来讲,它是sequence,需要表示sequence,并且单词之间的依赖关系如何表示,因此2003年Bengio提出了 Nerual Probabilistic Language Model,这也是他获得图灵奖的一个重要工作。其思路是:每个单词都有一个或多个表示,我就把sequence两个单词之间的关联关系也考虑进去。

但是,当时做出来后由于其计算复杂度比较高,很多人无法fellow。直到谷歌2013年提出 Word2Vec,基本上做出来一个场景化算法,之后就爆发了,包括将其扩展到paragraph、文档(Doc2Vec)。补充一句,Word2Vec是非常经典的工作或应用,包括我们安全领域也有相关扩展,比如二进制、审计日志、恶意代码分析的Asm2Vec、Log2Vec、Token2Vec等等

在这里插入图片描述

在这里插入图片描述

(3) 网络化数据时期(Deepwalk)
此后,有人将其扩展到网络化的数据上,2014年Bryan做了 Deepwalk 工作。其原理非常建立,即:原来大家都在自然语言处理或抽象的机器学习样本空间上做,那能不能针对网络化的数据,将网络化数据转换成一个类似于自然语言处理的sequence,因为网络非常复杂,网络也能表示成一个邻接矩阵,但严格意义上没有上下左右概念,只有我们俩的距离是多少,而且周围的点可多可少。如果这时候在网络上直接做很难,那怎么办呢?

通过 随机游走 从一个节点随机到另一个节点,此时就变成了了一个序列Sequence,并且和NLP问题很像,接下来就能处理了。

随后又有了LINE(2015)、Node2Vec(2016)、NetMF(2018)、NetSMF(2019)等工作,它们扩展到社交网络领域。我们的工作也给了证明,这些网络本质上是一个Model。

在这里插入图片描述

在这里插入图片描述

(4) 图卷积神经网络(GCN)时期
2005年,Marco Gori 实现了 Graph Neural Networks。2014年,Yann Lecun 提出了图卷积神经网络 Graph Convolutional Networks。2017年,Max Welling将图卷积神经网络和图数据结合在一起,完成了 GCN for semi-supervised classification,这篇文章引起了很大关注。还有很多不做卷积工作,因此有很多Graph Neural Networks和Neural Message Passing(一个节点的分布传播过去)的工作。Jure针对节点和Transductive Learning又完成了 Node2vecgrahpSAGE 两个经典工作。我们最近也做了一些工作,包括 Graph Attention Network

GraphSAGE 是 2017 年提出的一种图神经网络算法,解决了 GCN 网络的局限性: GCN 训练时需要用到整个图的邻接矩阵,依赖于具体的图结构,一般只能用在直推式学习 Transductive Learning。GraphSAGE 使用多层聚合函数,每一层聚合函数会将节点及其邻居的信息聚合在一起得到下一层的特征向量,GraphSAGE 采用了节点的邻域信息,不依赖于全局的图结构。

Data Mining over Networks

  • DM tasks in networks:
    – Modeling individual behavior
    – Modeling group behavioral patterns
    – Reveal anomaly patterns
    – Deal with big scale

第一部分花费大量时间介绍了研究背景,接下来我们讲讲为什么网络化数据或社交网络中要做这样的工作呢?


二.start with an example

Let us start with an example — Social influence and prediction
原来在机器学习中也可以做,比如社交网络中信息的传播以及热点事件的情感预测。

  • 我们第一个思路是将内容数据提取,然后每个节点内容做相关的features,然后再用Word2Vec转换向量,再构建模型做分类。
  • 我们今天先不讨论内容,更多讨论结构。比如:这个节点影响另一个节点,这个节点为什么会被它影响而不被其他节点影响。

在这里插入图片描述

因此,需要做很多相关的研究。节点之间可能会相互影响,也可能节点邻居都做Negative,也许我也会做Negative,这就是Conformity(一致性),它也是社交网络或现实社会中的现象。还有就是Structural influence,很多时候不是简单地重做,有时候有逆反心理。

  • Peer influence
  • Conformity influence
  • Structural influence

在这里插入图片描述

以《王者荣耀》为例,v1和v2周围都有6个节点,这6个节点都在玩王者荣耀,这两个图的区别是什么?主要是边不同,对v1和v2虽然都有6个用户在玩,但v1形成了三个小的子图(C、AD、BEF)。

假设现在v1和v2都不玩了,现在要发条信息给v1和v2,告诉他们还有6个朋友在玩?大家觉得v1回来的概率高,还是v2?

在这里插入图片描述

其结果显示:在社交网络中,人被影响的恰恰是你的潜意识。v2的潜意识是这些人都不相关,我的不同的朋友都还在玩,觉得大家都在玩,就跟着玩;v1觉得他们都认识,比如就高中朋友在玩。

在这里插入图片描述

回到本质,你在机器学习中要把它转换成features,你需要去定义,但过程很麻烦。刚才只是几个节点,尤其是需要泛化到更多节点时,就非常麻烦。

  • 三元组 Influence Learning

在这里插入图片描述

原来的机器学习方法会通过以下工作实现。

  • Influence features
  • Hand craft features
  • predictive mode

但是,特征定义是非常乏味和低效的。

在这里插入图片描述

所以,最近可以通过表示学习、Embedding、图神经实现,它们都在做一件事,即:

  • 自动将复杂的图或case表示或映射成向量,再扔给机器学习完成剩下的任务
    How to automate the representation of each user?

在这里插入图片描述

所以接下来唐老师将给大家介绍表示学习进展和GNN的知识,包括一些应用。

  • Representation Learning on Networks
  • Revisiting Graph Neural Networks
  • Applications
  • Conclusion and Q&A

在这里插入图片描述


三.表示学习:Representation Learning on Networks

1.表示学习

(1) 首先,我们看看网络中的表示学习,我们应该做什么事情。
本质上,给定一个网络,我们需要学习一个表示,这个表示在d维空间(如二维)找到两个节点之间的距离,如果两个节点label一样,则距离越近,反之越远。

在这里插入图片描述

(2) 为什么这个问题很难呢?
如果是sequence,还是比较简单,NLP可以直接处理。但如果是网络,它很难用数学模型描述,并且不同网络会有不同的属性,比如社交网络的社交属性,如三角关系,朋友的朋友是朋友,但这用一般的模型就描述不了,而这个属性又非常强。如果描述好了,社交网络的效果会大大提高。这个属性在公用网络中又不适用,它适用中心节点的属性。所以比较难。

  • Modern deep learning toolbox is designed for simple sequences or grids.
    – CNNs for fixed-size images/grids…
    – RNNs or word2vec for text/sequences…
  • But networks are far more complex!
    – Complex topographical structure (i.e., no spatial locality like grids)
    – No fixed node ordering or reference point (i.e., the isomorphism problem)
    – Often dynamic and have multimodal features.

(3) 大家可能看的第一篇引起关注的就是Word2Vec,早期主要应用在自然语言处理中。

补充:其实我是2014年接触这个工作的,自己阅读量最高的博客还是C语言实现Word2Vec,后面随着深入了解,有了更多的用法,但仍然有很多疑惑,希望未来能更深入地理解和运用。

Word2Vec:给定一个单词,提取其上下文单词,然后组成一个向量。基于这样的向量做一个表示学习,学习的本质和原来的NLP思路一样。如下图所示,如果两个单词一样或很相似,则组成的向量也很相似(上下文相似),如“stars”。

在这里插入图片描述

(4) 然而,向量模型必须要用严格的单词组成,缺乏语义信息,比如有个单词和某个植物单词很相似,但是无法描述。那怎么办呢?
我们需要将其映射到隐空间上,我们将每个单词映射到d维的空间上,如果两个单词很相似,其距离很近,反之距离越远。

(5) 那么,如果给定一个图,又该如何表示呢?
我们同样可以做类似的事情,图中每个节点都有context(上下文),它周围的节点就是context,我们可以用一个单词周围的节点来组成一个向量。如果两个节点很相似的话,它邻居节点也很相似。

此时遇到一个新的问题:网络跟上下文不一样,因为网络很难说有2度、3度纳入图,如果设置成6会将全世界都纳入进来。Facebook之前发过Nature,世界是由3点多度组成,所以很难直接引用这种思路。

为了解决这个问题,随机游走的思路被提出并被大量引用。

在这里插入图片描述


2.DeepWalk

2014年,Bryan做了DeepWalk工作。既然直接计算节点的邻居无法做,那能不能通过游走实现。DeepWalk和graphSAGE的思路都是随机,之后再网络化数据中有大量的使用。此外,网络化数据中有大量的冗余,只要捕获其中一个信息,也许就能影响到其它信息。

  • B. Perozzi, R. Al-Rfou, and S. Skiena. 2014. Deepwalk: Online learning of social representations. KDD, 701–710

在这里插入图片描述

DeepWalk怎么做的呢?
从任意节点跑一个Random walk,形成一个path,这个path与文本上那个一样。有了该结果后,剩下的事就很简单。假设每个节点学到d维的表示刚开始是随机的,通过随机结果和SkipGram来判断v3、v5能不能出现,最后的学习就用这个结果来预测单词是否存在,可以通过Softmax提升结果。

在这里插入图片描述

(1) Random walk
Random Walk生成如下图所示的结果:

在这里插入图片描述

(2) Representation Mapping
随机路径生成:

在这里插入图片描述

向量表征过程如下:

在这里插入图片描述

(3) SkipGram with Hierarchical softmax

在这里插入图片描述

在这里插入图片描述

(4) 参数学习
包括随机初始化权重,使用SGD(随机梯度下降)来更新分类器的权重和节点表示

在这里插入图片描述

实验结果如下图所示,比如给BlogCatalog数据打标签,一定程度提高聚类效果。

在这里插入图片描述

同时也在YouTube数据集进行测试。

在这里插入图片描述

贡献:这篇文章给了一个初始的案例,通过随机游走的方式对网络化数据先做一个表示学习,用表示学习的结果再去做预测,更多是提供新的思路。

在这里插入图片描述

在这里插入图片描述

后续的用法越来越多,同时研究DeepWalk存在什么问题。

  • 缺点:DeepWalk是利用固定长度、乱随机游动为每个节点生成上下文
    DeepWalk utilizes fixed-length, unbiased random walks to generate context for each node, can we do better?

在这里插入图片描述

对应的优化工作如下:

  • LINE:显式地保留一阶和二阶的相似性
    如图5和6应该更相似,但先前的方法可能学出来6和7更相似,在具体的实例中,7可能是房屋中介,8、9、10是卖家,5和6是买家,因此6和7相似度很低,除了买房的时候有关系,DeepWalk就存在这个问题。因此,LINE能解决该类问题。

在这里插入图片描述

  • PTE:继续扩展到异构文本网络上

在这里插入图片描述

  • Node2vec:use a biased random walk to better explore node’s neighborhood.
    社交网络中存在三阶关系,即朋友的朋友是朋友。V在X1和X2中的相似度不一样,他们做了一个biased的工作,使用有偏随机游走来更好地探索节点的邻域。

在这里插入图片描述

接下来我们将详细介绍。


3.Node2vec

Node2vec定义了两种Random walk不一样,从程序角度变成了BFS和DFS两种遍历方式。

  • local view

  • global view

  • A. Grover and J. Leskovec. 2016. node2vec: Scalable feature learning for networks. KDD, 855–864.

在这里插入图片描述

具体定义如下所示:

  • BFS:Local microscopic view(局部微观视图)
  • DFS:Global macroscopic view(全局宏观视图)

在这里插入图片描述

Biased Random Walk计算如下:

在这里插入图片描述

具体示例如下:

在这里插入图片描述


4.LINE:Information Network Embedding

LINE实现过程如下:

  • J. Tang, M. Qu, M. Wang, M. Zhang, J. Yan, and Q. Mei. 2015. Line: Large-scale information network embedding. WWW, 1067–1077.

在这里插入图片描述

(1) Line: First-order Proximity
首先定义一个一阶相似度,有关系存在。

在这里插入图片描述

(2) LINE: Second-order Proximity
然后定义一个二阶相似度,通过共同邻居实现。

在这里插入图片描述

表征如下:

在这里插入图片描述

接下来将两个函数combine。

在这里插入图片描述
在这里插入图片描述

(3) Combining first-order and second-order proximities

  • 一种简单有效的方法:训练LINE模型分别将一阶相似度和二阶相似度写在一起,然后同时优化,将两种方法训练的embeddings连接起来
  • 一个更有原则的方法是联合训练两个目标函数

模型优化如下:

在这里插入图片描述

LINE采用C++实现,其速度很快,很多人fellow,而且效果比DeepWalk更好。

在这里插入图片描述


5.我们的工作:Unifying DeepWalk, LINE, PTE, and node2vec into Matrix Forms

后来我们的研究中,考虑了两个问题。即:

  • What are the fundamentals underlying the different models?
    这些方法存在哪些本质的区别?

  • Can we unify the different network embedding approaches?
    我们能统一不同的网络嵌入方法吗?

我们就做了一些很有意思的工作,通过一些数据分析发现这些不同的方法在做什么。

  • DeepWalk、LINE、PTE和Node2Vec本质上都在做矩阵分解
    – D是diagonal矩阵;A是邻接矩阵;T是随机游走步数;
  • Qiu et al. Network embedding as matrix factorization: unifying deepwalk, line, pte, and node2vec. WSDM’18. The most cited paper in WSDM’18 as of May 2019 5

在这里插入图片描述

(1) DeepWalk
DeepWalk从原始网络进行随机游走,再做Skip-gram,输出节点Embedding。整个思路比较简单。

在这里插入图片描述

实现算法如下,每个节点Random Walk后,中间节点构建它的context。

在这里插入图片描述

Skip-gram with Negative Sampling如下:两个节点有无边的Objective function不同。

在这里插入图片描述

在我们的场景下,从a到e的Random Walk问题更复杂。因为它里面有方向性,比如c节点有左边的context和右边的context,并且windows是1或2的结果不一样。

在这里插入图片描述

扩展后的函数如下,简写为: P = D ? 1 A P=D^{-1}A P=D?1A

在这里插入图片描述

进一步扩展后得到如下两个式子。

在这里插入图片描述

最终得到如下的矩阵式子。

  • DeepWalk is factorizing a matrix

在这里插入图片描述

(2) LINE
同样的方法我们推到LINE方法,LINE是DeepWalk的特例。

  • LINE is a special case of DeepWalk T=1

在这里插入图片描述

(3) PTE
PTE是将LINE扩展到异构文本网络上。

  • word-word network、word-document network、word-label network

PTE是三个不同的邻接矩阵,本质是LINE的特例。

在这里插入图片描述

(4) Node2vec
Node2vec本质上是二阶的,原来是2度从这个节点随机游走到任何邻居节点;而Node2vec是从任意节点游走时,要考虑三个节点,w考虑w+1和w-1,它其实是原来随机游走的特例。

在这里插入图片描述

贡献:最终我们得到一个结论,所有这些方法都是DeepWalk矩阵分解的特例。

在这里插入图片描述

同时,它给我们另一个启示,既然这些方法都是在做矩阵分解,那么我们能不能就用矩阵分解来做。


6.我们的工作:NetMF

NetMF: explicitly factorizing the DW matrix
我们干脆将原来的Random Walk用矩阵分解来做,因此产生了NetMF,并引起了广泛的关注。

  • Qiu et al. Network embedding as matrix factorization: unifying deepwalk, line, pte, and node2vec. WSDM’18. The most cited paper in WSDM’18 as of May 2019

在这里插入图片描述

具体工作如下:

在这里插入图片描述

A unified algorithm NetMF to explicitly factorizes the derived matrix

在这里插入图片描述

构造矩阵分解,过程中使用了 Arnoldi算法,其做矩阵分解速度较快。它会将一些低质的节点消除,从而提升实验结果。

在这里插入图片描述

代码地址:

在这里插入图片描述

实验结果如下:

在这里插入图片描述

在这里插入图片描述


接下来是Sparsify S。

在这里插入图片描述

在这里插入图片描述


7.我们的工作:NetSMF

NetSMF增加了Sparse(稀疏),提出了大规模网络嵌入算法作为稀疏矩阵分解(NetSMF)。NetSMF利用spectral sparsification理论有效地稀疏密集矩阵,从而提高嵌入学习的效率。

  • J. Qiu, Y. Dong, H. Ma, J. Li, C. Wang, K. Wang, and J. Tang. NetSMF: Large-Scale Network Embedding as Sparse Matrix Factorization. WWW’19.

在这里插入图片描述

具体过程如下图所示:

在这里插入图片描述

代码下载地址如下:

在这里插入图片描述
在这里插入图片描述

然而,多项式随机游走重构稀疏矩阵也非常花时间,内存开销很大,只是解决了问题。因此我们有了后续的工作。


8.我们的工作:ProNE: Fast and Scalable Network Embedding

ProNE:给定一个网络,首先构建一个超级稀疏的矩阵,然后进行矩阵分析(tSVD),再增加一个Spectral Propagation操作。相当于每个节点分解完后,应该有对应的向量,然后在图上或分解结果上增加一个Propagation,类似于卷积网络中的卷积操作,线性算法的向量相加,从而防止高阶信息丢失(如边)。

因此,ProNE通过在频谱调制空间(spectrally modulated space)中传播嵌入增强了Embedding,它是一个快速、可伸缩和有效的模型。

  • J. Zhang, Y. Dong, Y. Wang, J. Tang, and M. Ding. ProNE: Fast and Scalable Network Representation Learning. IJCAI’19.

在这里插入图片描述

NE as Sparse Matrix Factorization如下:

在这里插入图片描述

在这里插入图片描述

Propagation原理解释:Higher-order Cheeger’s inequality

  • 原来卷积网络能映射低通滤波,而这里的本质是带通滤波,从而避免丢失高阶信息

在这里插入图片描述

贡献:原来的SVD稀疏矩阵分解是一个线性算法,增加Spectral Propagation也是线性算法,所以整个算法非常快。

在这里插入图片描述

实验结果如下,我们只用单线程,其它算法用20个线程,我们的效果比其它最快的也快一个数量级。

在这里插入图片描述

上亿的图速度也非常快,性能也好。

在这里插入图片描述

Spectral Propagation在其他算法上均有提高,包括ProDeepWalk、ProLINE、ProNode2vec、ProGraRap和ProHOPE。

在这里插入图片描述

NetMF vs. ProNE

在这里插入图片描述

贡献&总结:我们的工作可以用下图显示,包括NetMF S=f(A)、NetSMF Sparsify S和ProNE Fast RLN。其输入是邻接矩阵,输出是向量。

在这里插入图片描述


四.图神经网络:Revisiting Graph Neural Networks

1.总体概述

刚才介绍的很多模型其实还是Shallow Model,Shallow层面做表示和矩阵分解。

在这里插入图片描述

但在神经网络中会更深的模型,尤其是图神经网络。例如,encoder是一个依赖图结构的复杂函数。

在这里插入图片描述

那么,我们怎么把它变成一个更深层呢?

在这里插入图片描述

GCN的基本思路:给定一个网络,这个网络中有很多属性,可以构造一个矩阵(如相似矩阵或邻接矩阵),再进行卷积操作,并做全连接和label分类。

在这里插入图片描述

下图展示了GCN的相关研究,包括GCN、GraphSAGE、GAT、FastGCN和GraphSGAN等,后续我们将详细介绍。

在这里插入图片描述


2.GCN

图卷积网络的架构如下图所示:

  • Kipf et al. Semi-supervised Classification with Graph Convolutional Networks. ICLR 2017

在这里插入图片描述

GCN核心是:每个节点都有一个隐向量,这里有个卷积函数,使得所有的隐向量就映射到中间节点v上,再对v学习一个新的向量。

在这里插入图片描述

卷积操作如下图所示,可以参考作者之前CNN博客。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

GNN的基本思路是把邻居节点的相关信息都接入(Neighborhood Aggregation)到当前节点。

  • Aggregate neighbor information and pass into a neural network
  • It can be viewed as a center-surround filter in CNN—graph convolutions!

在这里插入图片描述

其计算公式如下所示:

在这里插入图片描述

它既可以捕获当前节点的信息,也可以捕获邻居节点的信息,因此公式展开如下。

  • Aggregate from v’s neighbors
  • Aggregate from itself

在这里插入图片描述

同时可以增加两个权重。

在这里插入图片描述

有趣的是,邻接矩阵也可以写成一个矩阵分解式。

在这里插入图片描述

注意,Shallow是一个矩阵分解,现在的卷积还是一个矩阵分解,就可以将公式写在一起。

在这里插入图片描述

GCN模型架构的推导过程如下:

在这里插入图片描述

性能比较如下:

在这里插入图片描述

下面是一些传统GCN的扩展,第一个扩展是GraphSage。

在这里插入图片描述


3.GraphSage

GraphSage又是Jure Leskovec他们提出来的。
GraphSAGE 是 2017 年提出的一种图神经网络算法,解决了 GCN 网络的局限性: GCN 训练时需要用到整个图的邻接矩阵,依赖于具体的图结构,一般只能用在直推式学习 Transductive Learning。

GraphSAGE 使用多层聚合(aggregate)函数,每一层聚合函数会将节点及其邻居的信息聚合在一起得到下一层的特征向量,GraphSAGE 采用了节点的邻域信息,不依赖于全局的图结构。

在这里插入图片描述

其计算过程如下,比如将当前节点v的邻居节点的信息聚合在一起。

在这里插入图片描述
在这里插入图片描述

其性能如下图所示:

在这里插入图片描述

然而,事实上邻居节点会有不同的影响或重要性不一样。那怎么办解决呢?


4.Graph Attention Networks

GAN被提出,它是在刚才模型的基础上,每两个节点之间增加一个权重,编程了Attention Model。

  • Velickovic et al. Graph Attention Networks. ICLR 2018

在这里插入图片描述

此时的性能又会有提升。

在这里插入图片描述

此外,不同模型背后的基本原理是什么呢?
每一层都是一个矩阵分解,GCN可以看作是多层图卷积网络,其propagation规则如下:

在这里插入图片描述


5.我们的工作:NRGCN(Node Ranking-aware GCN)

那么,我们能不能在矩阵操作的基础上做一些事情呢?
我们直接在矩阵上对A进行操作,左乘一个矩阵,右乘一个矩阵,将网络中每个节点的重要性和边的影响补充进来。

在这里插入图片描述

通过这种方式(简单的矩阵相乘),我们就可以将很多不一样的Attention机制增加进来。

在这里插入图片描述

贡献:整个模型变成了如下图所示的样子,将不同的Attention机制增加到式子中,实现了一个统一(unify)。

  • Node attention
  • Edge attention
  • K-hop edge attention
  • Path attention

在这里插入图片描述


6.我们的工作:NSGCN(Network Sampling GCN)

第二个工作是图形结构化数据中的结构依赖性和信息冗余性分析,通过采样(Sampling)来帮助探索网络信息。

给定一个矩阵,我们实现砍掉一半的信息再做Predict。我们发现学出来的结果与先前的结果比较接近,因此我们思考,如何优美地将信息利用起来,说不定结果还更好。

在这里插入图片描述

因此,我们构造了这个模型,利用Sampling思想,我们将图看成两个图,各学各的,然后将它们加到一起;继续二分,就可以构造多个图,即NSGCN(dp)。

在这里插入图片描述

第二种,我们想能不能互相让两部分相互学习,并且让两部分的loss更小,就构造了NSGCN(dm),即Disagreement Minimization。

在这里插入图片描述

整个模型如下所示:

在这里插入图片描述

实验结果如下图所示,效果更好。

在这里插入图片描述

同时支持inductive的实验。

在这里插入图片描述

在这里插入图片描述


五.Applications

最近,大家可能非常关心GNN的实际应用。我们也探讨了一些应用。

App1: Social Prediction

我们探讨了《王者荣耀》的信息探测。

J. Qiu, J. Tang, H. Ma, Y. Dong, K. Wang, and J. Tang. DeepInf: Social Influence Prediction with Deep Learning. KDD’18.

在这里插入图片描述

我们构建了 End-2-End Behavior Prediction Framework,通过该模型预测节点本身的信息。原来只通过拓扑结构学习一个表示,但是它在真实场景是很难用的,因为真实场景往往会添加很多属性,比如性别、职位、位置等。所以,我们的模型中允许它添加很多属性,最终来预测它的行为。

在这里插入图片描述

实验结果如下图所示:

在这里插入图片描述


App2: Recommendation in E-commerce

接着我们做了推荐系统:用户和商品的关系。

  • Y. Cen, X. Zou, J. Zhang, H. Yang, J. Zhou and J. Tang. Representation Learning for Attributed Multiplex Heterogeneous Network. KDD’19.

在这里插入图片描述

分析结果如下图所示:

在这里插入图片描述
整个模型如下图所示:

在这里插入图片描述

数据分析和代码如下:

在这里插入图片描述

分析的结果如下图所示:

在这里插入图片描述

同时在真实场景做了A/B测试,推荐系统上提高了点击率。

在这里插入图片描述

在这里插入图片描述


六.总结及感受

这次分享主要从背景知识、表示学习、图神经网络和真实场景应用四个方面介绍,下图是经典工作的总结和我们的相关工作。本来还想讲一些推理的事情,即ACL19的Cognitive Graph,根据兴趣来推理转换为决策过程,并且可以回溯和可解释;但看到另一位老师也在,他后续会补充。

  • 一.Networked World
    1.背景知识
    2.相关工作
  • 二.start with an example
  • 三.表示学习:Representation Learning on Networks
    1.表示学习
    2.DeepWalk
    3.Node2vec
    4.LINE:Information Network Embedding
    5.我们的工作:Unifying DeepWalk, LINE, PTE, and node2vec into Matrix Forms
    6.我们的工作:NetMF
    7.我们的工作:NetSMF
    8.我们的工作:ProNE: Fast and Scalable Network Embedding
  • 四.图神经网络:Revisiting Graph Neural Networks
    1.总体概述
    2.GCN
    3.GraphSage
    4.Graph Attention Networks
    5.我们的工作:NRGCN(Node Ranking-aware GCN)
    6.我们的工作:NSGCN(Network Sampling GCN)
  • 五.Applications
    App1: Social Prediction
    App2: Recommendation in E-commerce

在这里插入图片描述
在这里插入图片描述

同时,推荐大家关注唐老师和B站的UP老师。

在这里插入图片描述

个人感受简单总结下:

  • 图神经网络和知识推理越来越重要,在各个领域都有应用,包括安全领域的知识表示(Asm2vec、log2vec、token2vec等)和图神经网络及知识图谱应用(溯源图、恶意代码检测、入侵检测等)。这篇博客作为一个入门,从唐老师的视角,能让大家更清晰整个领域的发展及应用。
  • 唐老师的分享很棒,从经典的工作到存在的问题以及后续工作的改进,梳理了整个领域的知识点,也包括他们的现有工作,这种逐层改进能让我们更好地阅读论文和发散思维。其中两个知识点的结论如下:
    – (1) 表示学习:这些经典方法(DeepWalk、LINE、PTE、Node2vec)都是由DeepWalk矩阵分解得到,因此实现了矩阵分解的统一;
    – (2)图神经网络:该模型可以将不同的Attention机制增加到式子中,实现了统一(unify),包括GCN、GraphSage、GAN。同时,NSGCN通过采样提升性能。
  • 在传统机深度学习模型中,Word2Vec发挥了极其重要的作用,甚至导致了NLP的快速发展。那么,图结构能不能构建类似的模型呢?因此,我们要解决的第一个问题是如何将图表征为向量,然后更好地学习知识和实现预测。在图结构中,它会将邻接节点映射成NLP中上下文的信息,从而转换成类似NLP的问题,基于此(DeepWalk、LINE、PTE、Node2vec)有了后续的工作,这也体现了表示学习的重要性。
  • 只有不断地向这些大牛和老师学习,阅读经典的顶会顶刊论文,探索不同方向论文的发展趋势及Motivation和Insight,才能更好地提升自己。这些知识不仅仅在AI和NLP中有应用,在安全四大顶会中我也看到了很多,在生物医学方面更多,所以学吧,学无止境!再次感谢唐老师的分享,以及B站的UP主。
  • 虽然自己很菜,但会努力的,每天前进一小步,足矣!秀璋,加油。

在这里插入图片描述

这篇文章就写到这里,希望对您有所帮助。由于作者英语实在太差,论文的水平也很低,写得不好的地方还请海涵和批评。同时,也欢迎大家讨论,继续加油!感恩遇见,且看且珍惜。

在这里插入图片描述

(By:Eastmount 2022-05-28 周六夜于武汉 http://blog.csdn.net/eastmount/ )

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-06-06 17:19:25  更:2022-06-06 17:20:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 1:52:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码