人类的大部分知识都以概念和不同概念之间的关系形式存在。如果让机器学习智能, 需要让它能够在数据中发现概念和挖掘关系。虽然机器学习和深度学习发展到今天,特别擅长数据之间的统计相关性,比如通过一组线性和非线性的变化把找到 , 但是这种发现止于相关性, 而相关性仅仅是世界上大部分关系的冰山一角。 而各种逻辑关系,因果关系,比如物理里的作用力,还是剧本里人情世故的变化,则都超出这个范畴。
离开关系当下机器学习对概念的理解也是有限的, 因为概念的存在依赖于它和其他概念的关系,尤其是整体和部分的关系。例如真正理解某种化学物质是什么,就要理解组成该化学物质的原子和其关系,真理解生命,就要理解生物组成生命的细胞和其关系。
那么当下的任务就很明确了, 我们需要做一个机器学习模型, 不但具备基本的统计拟合能力,还可以进行关系推理,就需要把世界的这种关系本质作为一种先验嵌入到系统里。 我之前总结的让符号主义AI和深度学习融合的文章对整个这一思路框架进行了归纳
许铁-巡洋舰科技:AI的下个十年 zhuanlan.zhihu.com向这个伟大目标前进的第一步,是图网络。 图网络是当下机器学习的热点,这里我们不是从偏工程的角度,而是从关系学习本身来看图网络, 具体来介绍下面这个文章:
Relational inductive biases, deep learning, and graph networks arxiv.org如果我们想要让基于统计的神经网络模型某种程度掌握物体和物体,概念和概念之间基本的作用规律, 从而让深度学习看起来好像掌握一个符号体系。那么我们至少需要做到两件事,一个是从数据中提取概念符号作为节点,另一个是学习节点和节点间可能存在的关系。
图网络天然的具有定好的节点和边G =(V,E), 因此如果我们忽略第一步,仅仅聚焦在关系的表示和学习,图网络就是完成这件事的天然载体。
我们就从节点,边,系统的角度来观察这个问题。
首先说大千世界的大部分数据类型都可以看作这样的一种由节点和边构成的图, 不说那些本身具备高度结构性的分子构型图,物理质点系统(下图abcd),就连深度学习的日常图片和自然语言,都其实是可以看作这样的一个图。在自然语言中,节点可以看作单词,而节点关系的定义可以看作是语法树的结构本身(下图e), 而在图像中, 其实就是图像不同部分的某种连接图(下图f),节点是图像块,关系是图像块间的隐层联系。如果你熟悉CNN,那么你知道CNN自身就包含了像素和像素之间的这样的连接图,只不过它假设了只有被卷积定义的相邻像素间才允许存在连接。

那么我们再来看GNN, 图网络本身可以被看作对具备图结构的数据表示进行推理的工具。一旦数据被表示成由节点和边连接成的模式图。 我们就可以使用图网络的基本工具对关系进行建模。 这个基本的工具叫图网络模块,比较复杂的图网络也可以看作是由较为简单的图网络模块一点点延伸构成的。
这种基本的图网络模块被称为GNblock, 它以一个图作为输入, 执行一个运算,然后返回一个图作为输出。我们看这个定义比较拧巴。这句话的真实含义是, 图网络模块,代表一种变换,就像某一层神经网络代表一种变换。 与神经网络不同, 图网络模块需要同时输入节点的特征X和边的特征E。 如果你考虑到图网络模块的目标是利用假定的已知结构推导未知的关系,这个定义就极为的自然合理。输入的图可以看作我们在缺乏信息的时候假定的一个图结构,有了它我们可以进行信息的传递,从而得到包含了节点信息的边表示,和包含了边信息的节点表示。 要知道这里我们利用了假定的结构信息进行信息的传递, 这是图网络前的神经网络所不具备的关键步骤。 通过监督或非监督的方法基于这些节点和边的表示进行对目标的预测, 假定最终的结果是正确的,网络就可能正确的表达了概念或符号之间的关系。
然年后我们依次来看图的不同要素, 图基本模块里出现的实体包含节点(v),边(e),和图的整体(u), 它们都可以被向量表达。 一个节点上的属性通常可以看作节点的状态或特征, 比如如果是质点它就是速度和位置。 而边通常指定节点和节点如何连接, 这种连接可以是单向的也可以是双向的,它的属性可以包含相互作用的特性,比如如果是物理系统它可能与作用力相关。 而图的整体属性u则包含我们要研究的系统总体特性。对于物理系统这个总体特性可以是系统的一些参数比如能量,动量。 对于自然语言它可能是一段文字的感情。 而对应的更广义的复杂系统,它则与涌现概念密切相关。

那么后面我们就以一个物理系统为基础来看这个问题;
首先我们可以定义个引力连接的物理质点系统G =(U, V, E), 这里的E是引力, V是速度,位置,质量,而U是重力场,具备能量。
当定义好G,我们就可以让整个动力系统向前演化, 每个时刻, 力先进行更新, 然后力形成合力, 更新质点状态, 然后把更新的力和质点统一在一起,更新整个系统的状态。
这是当系统已知的时候,我们可以用牛顿的万有引力公式和牛顿第二定律来求解整个系统。 那么如果这些知识是未知的呢? 我们可以用神经网络来表达刚刚说的所有属性, 然后同样来做动力学更新,只不过这一次力的作用变成了图网络的语言-消息传递,而质点的更新变成了网络迭代求解新的节点embedding 。

如果存在一定数据,我们就可以用梯度下降来算出那些未知的节点和边是什么。
我们来看如何在机器学习里真实的设计这样一个系统。
一, 首先考虑求解问题的目标
首先和所有机器学习任务一样你要有明确的目标函数, 相对于图本身这个函数可以是有关边的,有关节点的,或有关图整体的。 比如很多时候我们关心相互作用本身的类型, 在社交网络里我们要推断某两个人之间有没有交易关系, 在生物脑网络里我们要判断两个脑区有没有连接,这时候我们要进行边的分类。
有时候这种推理是有关质点的, 比如我们要知道疾病网络里某个特定的人是否会成为超级传播者, 这时候我们往往是对节点进行分类。
还有一类问题是我们的推理是有关图整体的,假如图片是一个网络, 那么当我们要让机器回答关于图片整体的一个问题,它就是对图的整体的一种任务,相似的也对应自然语言。
二, 问题的分类, 边已知,边未知, 边部分已知。
然后我们再来看图网络的结构设计。 这种设计包含边的连接已知和未知两种。 因为在很多时候,我们事先知道这个网络的连接,比如基于知识图谱,分子网络的推理。 而另一些时候,这些关系是隐含的,比如图像,自然语言间的关系。 这时候我们往往可以假定网络是全连接的,或者局部全连接,比如CNN,LSTM。 虽然在这个结构里我们没有假定元素和元素间的特定连接, 但是通过这些网络强大的学习和表示力,其实会通过匹配得到一个解释力最强的连接。 还有一些时候,关系处在已知和未知之间,我们知道某些节点间的边连接但不知道其它的,这在复杂系统的求解里很常见。
三, 设计基本图网络单元的变体
图网络的基本单元都具备
一定要实现的链接有更新当下的边和节点情况对边进行更新, 然后根据当下更细的边发射消息并集合到节点,根据这些消息更新节点状态, 和网络总体状态这些基本步骤, 通过这些步骤的循环, 得到一个不停迭代的网络模块。

然而我们日常所见的图网络模块, 却往往不具有刚刚所说的所有步骤,我们日常见到的包括图卷积网络GCN,图注意力网络GAT等等,事实上都可以看作这种网络单元经过一定假设后的变体,因此关于图神经网络单元各种变体的设计也就成为图神经网络学习的关键所在。经过简化的模块会更加方便学习。
以下为几种基本图网络的类型。 我们可以看到从a最完全的图网络模块单元,经过一定假设,可以退化成c,d, e,f的形态。 假如传递过程中间边本身不需要更新, 那么这样的图我们可以看作是通讯路径固定的网络,又称为message passing network(c), 假如这个过程中我们不需要考虑网络正退状态的更新, 这时候我们得到的构型包含GCN和GAT等一大票图网络。 假定我们需要更新的不是节点的状态而是网络整体状态呢, 这时候网络类似于从各个元素关系的总体做回答问题这一类的关系网络。

四,用不同的图网络模块构成一个信息通道
关于如何构建一个图网络系统的第三步就是如何把图网络基本单元组合成完整的图网络系统。 首先, 基本图网络模块可以通过串行的方法形成一个core, 它可以把一个图结构,通过若干中间层, 转化成另一种最终的图结构编码, 这个过程酷似深度网络对数据的处理过程。 如果你对消息传播熟悉, 这个串行过程类似于信息在图中前向传播的过程。 这个core可以在头和尾加上编码和解码模块,从而得到一个完整的图自编码器, 它的功能类似于把图结构压缩成一系列隐变量,然后再恢复成新的图, 而其功能则是可以用无监督的模式训练图网络结构如同一般的自编码器结构。 最终,我们还可以引入时间步的概念,上述定义的图信息传递过程变成相对某个时间点, 最终通过类似RNN隐变量的原理, 我们引入可以把记忆叠加再一起的隐层图Ghid, 这样, 我们就把图网络模型转化为动态图, 从而可以模拟随时间变化的关系。 这对于动力系统的模拟是绝对意义重大的。


图模块建构框架的基本应用
1, 预测在一个随机网络上的最短链路

2. 物理系统的预测
通过图网络引入多体物理系统的相互关系, 比如不同属性的作用力,从而预测物理系统的变化。
Neural Relational Inference for Interacting Systems arxiv.org
Kipf的文章提出了一套通过图网络求解物理系统的通用方法。 首先, 我们将相互作用的粒子系统理解成为一系列节点,其连接边就是作用力。
然后,我们用张量表示节点和边,用神经网络表示节点到边或边到节点的映射,并且通过图网络的消息传递,得到了综合了节点和边的关系的表示, 通常它求解不同边的类型。
这还不够, 我们把上面的过程理解为一个编码器,再起下由引入一个解码器,来预测物理系统的未来变化。 有兴趣了解整个过程的同学可查看原文。

3. 图象理解和视频问答
如果把图象看成由不同物体构成的一个相互作用网络,那么图象理解, 看图问答, 都可以从上述系统得到一定的回答。
这种视频理解的方式, 与之前的模式最大的区别在于我们不在仅限于识别特征来理解图像, 而是直接考虑图像内不同物体间的相互信息传递,考虑到不同物体间的相互影响。 虽然当下这方面的工作还很初级,以下nips文章算是开了一个小头, 文章力图从一些具有简单的内容(比如弹球碰撞)中,提取出物理符号来进行视频预测。
Learning to See Physics via Visual De-animation

结尾
在深度学习诞生之初,我们试图提取特征, 建立特征和所预测变量间的相关性, 以为我们掌握了智能。 而时间到达2020, 这条路越发走到局限,我们重新举起符号主义的遗智, 认识到需要让神经网络学习概念,以及概念之间的联系的重要性, 并且通过图网络,建立了深度学习和这个符号主义AI之路的联系。 新的图网络范式, 最重要的是把数据理解成一个相互作用的图, 而显式的表达部分之间的作用关系网络,通过线性和非线性的变化组合,求解这些关系和预测变量的联系。 这或许对时间序列预测, 会起到一个突破式的变化。
在未来,我们还需要找寻关系学习背后的生物本质是什么,寻找关系学习在人脑中的认知基础,让这项工作更灵活。
来源:oschina
链接:https://my.oschina.net/u/4407852/blog/4314531