本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.
现实世界中的大量问题都可以抽象成 图模型(Graph Model)
,也就是节点和连边的集合。从知识图谱到概率图模型,从蛋白质相互作用网络到社交网络,从基本的逻辑线路到巨大的Internet, 图与网络无处不在
。
语言本质上就是单词序列,图像本质上就是像素点,他们都可以被抽象为结构简单的 graph
。传统机器学习方法在自然语言处理和计算机视觉领域已经取得了非常好的进展,然而却很难处理更复杂的图网络信息,这种缺陷大大限制了深度学习的应用领域。
于是,人们提出了 图网络(Graph Network),一种基于图结构的广义人工神经网络
,它可以直接对真实问题进行建模,又可以利用自动微分技术进行学习,甚至有望将多个传统人工智能领域进行融合。
所以,图网络是一种结合 机器学习
和 网络科学
的前沿学科。
它将传统的用于 自然语言处理
、 图像处理
、 计算机视觉
等领域中的神经网络、深度学习技术 扩充到了一般的图
上,使得这些技术可以处理类似于 图
、 n维流形
等更加一般而普适的非欧几里德几何对象,以及多 关系网络
、 知识图谱
、 带属性的图结构
等更加复杂的数据结构。
大概从 2015
年开始,该领域同时在学术界和工业界获得了蓬勃的发展机遇,它不仅可以很有效地解决诸如 连边预测
、 社区划分
等传统经典的网络科学问题,而且还可以解决诸如 节点分类
、 网络重构
、 网络补全
、 图上的组合优化问题
等非传统的网络科学问题,甚至还可以解决诸如 计算机视觉
、 图像理解
、 自然语言处理
、 自动推理
、 机器人控制
、 动力学建模
等人工智能领域中的问题。
入门图网络学习路径
一、深度学习与PyTorch入门
既然图网络是传统深度学习方法在graph上的延伸,那幺就必然要会使用了 深度学习
这个强大的工具了。而相比于其他编程语言,基于python的 pytorch
可以说是当前最便捷的开发语言了,没有之一。现在pytorch也出了 官方中文文档 ,查阅起来也非常方便。
为了能够打好深度学习的基础,以及掌握一项编程工具,建议学习 集智学园 上的线上课程。
2017-系列课程:火炬上的深度学习(上)—— 计算机视觉篇
2017系列课程:火炬上的深度学习(下)—— 自然语言处理篇
2019系列课程:深度学习原理与pytorch实战
2019年和2017年内容基本一致,课程中包含了包括 文本翻译
, 单车预测
, AI游戏
, 手写体数字识别
等实战任务,开放所有的课程代码。可以按自己需求购买。而且也有配套的同名书 《深度学习原理与pytorch实战》 。
集智学园 上还有配套的附加视频
学完了这一系列内容,你就基本上掌握了深度学习的使用方法,和基本的工作原理。
二、图向量化(图嵌入)
向量可以计算出有用的属性,例如任意两个节点嵌入的内积可以表示它们是否来自于同一个社群。
通过这种方式,节点嵌入将图形数据简化为更易于管理的东西:向量。
而要想用机器学习的技术处理图结构的数据,首先要做的就是将网络上的每个节点表示成规整的欧氏空间向量。
1、Word2Vec
Efficient Estimation of Word Representations in Vector Space [2013] Tomas Mikolov
Distributed Representations of Words and Phrases and their Compositionality [2013] Tomas Mikolov
Linguistic Regularities in Continuous Space Word Representations [2013] Tomas Mikolov
这三篇文章出自同一个团队,引出了自然语言处理领域中经典的Word2Vec技术。这个技术可以通过扫描文本,将每个单词赋予一个向量。可以说是所有节点嵌入方法的鼻祖。
下面是和word2vec相关的课程
本质上讲,如果我们将一篇文章看作是词语共现的网络:单词为节点,如果一对单词同时出现在一个句子中就连一条边, 则词向量的嵌入就相当于网络的嵌入
。
2、网络嵌入算法
DeepWalk: Online Learning of Social Representations[2014] Bryan Perozzi
这是网络嵌入算法的第一篇工作
node2vec: Scalable Feature Learning for Networks[2016] Aditya Grover
node2vec 是一种流行且相当普遍的使用随机游走的嵌入方法。这是对上一篇DeepWalk的改进,它目前已经成为一种Benchmark。
将这些随机游走转化为计算嵌入的方法有一种智能的优化方式。首先为每个节点分配一个随机层,(例如长度为N的高斯向量)。然后对于每对源相邻节点,我们希望通过调整这些层来最大化它们的点积。同时最后,我们最小化随机节点对的点积。这样做的效果是我们学习了一组嵌入,这些嵌入倾向于在相同的遍历过程中高点积的节点。例如在相同的 社群/结构中。
三、图网络
如果详细追溯,图神经网络早在2008年左右就被人提出了,但是到了2015年左右,随着图卷积神经网络的出现与流行,人们突然发现,我们可以在图结构上进行卷积操作了,而且这种卷积操作不仅计算简单,还具有超强的准确度,这大大刺激了该领域的突飞猛进地发展。
1、图网络综述:
Relational inductive biases, deep learning, and graph networks [2018] Peter W. Battaglia
这基本上是第一篇有关图网络的综述,非常全面,但也不太容易读懂。它既记录了这一子领域的历史,也提出了一种统一的方法来比较图网络和一般神经网络的不同。
在上面的文章中,图网络被认为是用于在 节点
, 边
和 整个图上``传播状态
和 聚合状态
的函数集合。这样,来自于许多不同理论的架构都是可比较的。下面是从函数中提取的步骤:
GN模块中的更新。蓝色表示正在更新的元素,黑色表示更新中涉及的其他元素(请注意,蓝色元素更新前的值也在更新中使用)。有关符号的详细信息,请参见原论文的公式1。
2、图卷积及其相关架构
Semi-Supervised Classification with Graph Convolutional Networks [2016] Thomas N. Kipf
这篇文章是经典的图卷积工作(GCN),在半监督学习任务上效果非常好
Graph Attention Networks [2017] Petar Veličković
这篇文章是一种基于 注意力
的图卷积架构
Inductive Representation Learning on Large Graphs[2017] Will Hamilton
第三篇提出了 GraphSAGE
框架,一种可以处理大规模网络的图卷积网络,效果非常棒。
四、相关应用
可以将上述技术应用于各种具体的网络问题上,包括 连边预测、节点分类、图分类、推荐算法
等。这种应用非常多,我们仅挑其中几篇与本研究组最相关的工作:
1、连边预测:
这是一项通常且非常简单的任务,基本表示为: 节点A与节点B有关系的概率p(a,r,b)是多少?
例如知识图补全(例如,如果米开朗基罗是托斯卡纳出生的画家,他是意大利人吗?),预测蛋白质相互作用。这两种方法都可以用来预测新的未知事物(例如哪些药物可能有效?)以及改进现有不完善的数据(例如,此任务属于哪个项目?). Variational Graph Auto-Encoders[2016] Thomas N. Kipf
论文讲解的VGAE(变分图自编码器)将VAE(变分自编码器)引入图网络中,实现VAE从类的预测到VGAE中到实例的预测。
Be First to Comment