0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

图数据中蕴藏着秘密 神经网络中的结构化学习

mK5P_AItists 作者:工程师3 2018-05-28 14:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、图数据中蕴藏着秘密

事物之间的关联信息,人类已经积累了很多,但绝大多数人不知道如何利用它们。

社交媒体中的互动和关系网络图中,蕴含着深意。像WordNet这样的同义图表能够通过计算机视觉,帮助我们更好地理解和识别特定情形下研究对象之间的联系。从家谱到分子结构,我们周围世界中海量的信息都以图的形式呈现。

尽管普遍存在,图结构(Graph Structure)在机器学习的应用方面还是经常被忽视。比如“时尚潮流推荐问题”,其目标在于发现特定的能够形成凝聚趋势的一些衣服形式,也就是“风格”(style)。

通常的做法是从社交媒体抓取图片并识别这些图片中的衣服,然后用这些图片的流行程度代表特定“风格”服装的流行程度。用这种方式去了解流行样式风格当然可行,这个模型能够轻易地通过图数据获得优化。比如,我们可以分析用户社交网络中潮流趋势,或者提取马逊购物网站中的“相关联产品”的集合目录。

那么,为什么结构化的信息经常被忽视呢?因为多数情况下,从这些图表中提取有效的特征实在是个巨大的挑战。

在本文中,我们将探索一些从图数据中提取有效特征的新技术。特别地,我们将重点讨论那些利用随机遍历方法,来量化图中节点之间的相似性。这些技术主要依靠自然语言处理群体的现有结果。

我将建议一些未来的研究途径,特别是与时变图形的学习特征有关。最后,我们将简要讨论图卷积网络 (GCNs) 的大家族,它提供了一个在图结构数据上进行机器学习的端到端的解决方案,而无需单独的中间特征提取步骤。

这些方法本身就构成了机器学习的一个子领域,但是研究人员和从业者可以从他们感兴趣的特定范畴的结构中获益。

二、基于图的特征学习

2.1 图摘要的计算

当我们在图上进行机器学习的时候,我们通常需要计算一个图摘要(graph summary),它会将图中每一个顶点映射为一个实值特征向量,而该向量则编码了这个顶点的相邻顶点的信息,这样做对于基于图的机器学习是很有帮助的。

如果两个顶点具有相似的邻居(neighborhoods)(这里的“邻居”一词很宽泛,它通常用于捕捉某种局部概念,例如从某一顶点出发,经过1或2跳(hops)的顶点集合都可称为该顶点的“邻居”),我们要学习一个函数,将这两个顶点映射到空间中的两个相似的特征向量。

然后图中的的每一个顶点的特征向量就可以堆积为一个隐含的特征矩阵。有了顶点的向量化表征之后,我们就可以在其上运行标准的机器学习算法了。这是不是很棒啊!

DeepWalk(2014)和node2vec(2016)正是学习上述特征向量的两个算法。下面我们就一起来看一下这两个算法是怎么工作的吧。

2.2 DeepWalk:将随机游走看做句子?

DeepWalk算法[1]背后关键的思想是,图中的随机游走(random walks)和句子很像。经验发现,句子中的单词和一个真实世界中图上的随机游走均服从幂律分布(power-law distribution)。也就是说,我们可以把这些随机游走路径想象成某种“语言”中的“句子”。

受这种相似性的启发,DeepWalk使用原本被用于自然语言建模的优化技术来构建图摘要。在标准的语言模型中,我们通常是给定某个词的周边词,然后来估计该词出现在一个句子中的概率。

另一方面,在DeepWalk算法中,则是给定某个顶点之前的顶点集合,来去估计该顶点出现在一个随机游走过程中的概率。并且和语言模型一样,我们还试图去学习顶点的特征向量,以便估计这个概率。具体来说就是,给定某个分类器,去估计概率。我们的目的是,从向量空间中,选择特征向量,最大化如下目标:



然而遗憾的是,随着随机游走路径长度的不断增加,这个目标是很难处理的。因此DeepWalk论文作者使用给定当前顶点的向量表征,来去预测其附近2w距离的邻居顶点(注:w为窗口大小),从而重新界定了该问题。(从技术上来讲,这是一个不同的优化问题,但是它可以作为之前目标的一个合理且与顺序无关的替代目标[2])换句话说,我们要最大化目标概率:



但是,我们如何在整个随机游走空间上最小化(译者:最小化?不是最大化吗?)该目标呢?其中一个策略如下(请注意, 论文作者另外假设了的条件独立性):

抽样一个顶点v,并生成一个随机游走序列,其中。

对该序列中每一个顶点和每一个小于某一步长的,在向量空间 F 上,应用梯度下降算法,最小化损失函数 。

这个算法虽然可行,但是也使得最后应用梯度下降算法的步骤变得尤为复杂,使得至少要更新个参数。这对于数百万级规模的图来说,是一个非常严重的问题。

为了解决这个问题,DeepWalk的作者使用“分层softmax (hierarchical softmax)”的方法(很抱歉,该方法不在本文介绍范围内),将该优化问题拆解为一个二分类器的平衡树(balanced tree of binary classifiers)。使用这些二分类器,可以将最后一步梯度下降算法的参数更新个数,从减少到。

图数据中蕴藏着秘密 神经网络中的结构化学习

Deepwalk算法示意图

2.3 Node2vec:泛化到不同类型的邻域

Grover and Leskovec (2016)[3]将Deepwalk算法拓展成为node2vec算法。与deepwalk算法不一样,我们不再根据现有的结点运用一阶随机游走(first-order random walks)选择下一个节点,node2vec不仅基于现有结点,还会使用现有结点前面的那一个结点,从而使用一系列二阶随机游走。

我们可以在随机游走的每一步通过调节两个参数值来确定具体的分布:大概来说,我们可以通过降低p值从而让随机游走偏向“探索”模式;同时,我们也可以通过提高q值让随机游走实现“广度优先”(breadth-first)模式。

这篇论文的关键想法是通过选择不同模式的二阶随机游走,我们可以提取到网络图的不同特性。

为了证明它的必要性,作者们在文中给出了两种在网络图上做机器学习通常使用的邻域类型:(节点颜色代表类别)

在同质性假设下,由于高度连接的节点在网络图里位置相近,因此它们属于同一个邻域。



在结构性假设下,承担着相似结构性功能的节点(比如说,网络的所有中心节点)由于他们高阶结构性显著度,它们属于同一个邻域。

图数据中蕴藏着秘密 神经网络中的结构化学习



用两个参数, 作者们提供了一种非常好用的方法在这两种邻域类型之间相互转换。

就像Deepwalk一样,node2vec的目标函数可以通过抽样来实现最优化,采用(p,q)随机游走,然后通过梯度下降(gradient descent)来更新F,达到优化的目的。

2.4 时变网络(temporal networks)中的潜在特征

这些图摘要技术很有用,但现实世界中很多图是随着时间变化的时变网络。比如,社交网络中一个人的朋友圈图会随着时间发生扩张或者收缩。我们可以使用node2vec,但是有两个缺点:

每次随着图的改变而运行一个新的node2vec实例很耗算力

其次,难以保证多个node2vec的实例能产生相似的甚至是可比较的F矩阵

对于第一个问题,有一个解决方法--每次网络改变后不立即运行node2vec,而是直到足够多的边发生改变使得原始嵌入的特征矩阵F质量下降再运行。

那么多少条边发生改变才可以被认为发生了“显著”的变化呢?这高度依赖于图中特殊的边和随机游走中的(p, q)两个参数。

观察下面这些图:



注意到的领域和的邻域很相似。然而,一条额外的边把路径图转换成闭环,显著地改变了图的随机游走邻域。类似这样,连接网络中的无连接或弱连接部分,起到桥梁作用的边,相比其它边更可能对邻居产生显著影响。

幸运的是,很多现实世界中的图,比如社交网络,更倾向于这种类型。网络是高度连接的,增加和删除节点的某条边不会对DeepWalk中使用的一阶随机游走的嵌入产生显著影响。需要注意的是,一阶和二阶的随机游走差别很大,因此这里的讨论内容对于扩展到node2vec可能并不是必要的。

在某种程度上,第二个问题可以通过连接从多个node2vec实例得出的特征,然后训练一个自动编码器,把这些综合特征映射成压缩的表示。

图数据中蕴藏着秘密 神经网络中的结构化学习

如何实现时变网络上的可扩展特征学习呢?对于时变网络,一些工具可以用于图嵌入的增量更新,比如Abraham et al.(2016)[4]提出的动态频谱稀释器。

这方面仍然有大量工作需要做,即使是最好的稀释器也因为速度太慢而难以实际应用于现实世界中的图,即使存在亚对数算法,算法的常量因子也非常大。我相信,结合动态图分割技术和更新图摘要矩阵F对于时变图的特征摘要来说或许是一个可行的方法。

另一个可选的方法是泛化node2vec算法到时变网络,通过添加一个额外的参数λ,影响随机游走经过“时变边界”的概率。有些预测任务中可能有“时变位置”的概念,其中有着相似时间戳的图的快照是相关的,而其他的或许有更久的依赖关系。

接下来我们开始介绍图卷积网络,一种最近提出的网络图上机器学习的方法。

三、图卷积

Node2vec和DeepWalk的方法都是先生成“语料”然后用于后续的机器学习技术。相比之下,图卷积(GCN)则是展示了一种端到端的方法进行结构化学习。

图卷积

GCN尝试将传统的卷积神经网络推广到可变的、无序的结构中。由于图没有明确定义的顺序,因此节点的排序不应该对GCN产生影响。很显然,CNN并没有这个特性,因为随机交换图像像素矩阵的行和列,再输入给CNN必然会改变计算的输出(通常,用于视觉问题的CNN,在识别图像中的边缘或其他局部结构时,其输入在不同的行列置换下,计算结果并不是一成不变的)。

此外,CNN对像素邻域的形状并不是不可知的,换句话说,并没有明显的方式可以训练一个CNN同时接受在正方形和六边形网格上定义的图像,即一个内在像素分别具有八个和六个直接邻居。因此,为了解释一般图的动态结构,必须对CNN的激活函数(activation function)进行合理的松弛(relaxations)。

很多作者提出了不同的GCN松弛(relaxations)方法。其中一篇文章[5]定义了一种和CNN类似的方法,该方法优化了稀疏过滤器,而过滤器在多个尺度上对图进行聚类操作。这篇文章还提出了CNN的谱近似方法,CNN中多个谱过滤器作用在对应最大特征值的特征向量上。

另外一篇文章[6]提出了一种和CNN更新具有相同的时间复杂度的GCN更新方案,即对谱过滤器只进行低度的多项式近似。还有一篇文章[7]通过使用多个线性谱过滤器简化了GCN的公式,这些过滤器可以共同捕捉高阶特征。

这些图卷积网络公式本身就很有趣,需要更多篇幅来详细描述。GCN作为之前章节描述的图处理方法的合理替代方案已经显示出了前景。GCN的完全可微分的特征也使得其稀疏过滤器能够成为端到端学习算法的一部分。虽然node2vec的偏置超参数(p, q)允许发现更多个性化的特征,但是GCN的权重矩阵也可以根据提供的训练数据进行调整。

结构化学习已经被应用到生物化学领域,文章[8]提供了一种端到端的和全微分的神经网络来预测基于稀疏原子结构的蛋白质-配体亲和力。另一篇论文[9]用GCN解决了药物发现问题,并引入了一个虚拟的“超级节点”,该虚拟的“超级节点”通过有向边连接到候选药物图中的每个节点,以便得到图特征。

GCN也已经成功应用在知识图[10]的链接预测和实体分类等方面。最近出现的结构化学习的成功和快速的研究在未来几年还会有更多。

也许我们很快就会看到利用关系结构如知识图的GCN网络来提高计算机视觉中物体检测的性能,也或许,通过结构化学习方法能够加速蛋白质折叠模拟,从而大大降低原子度低的三维蛋白质的维度等等。这些应用几乎可以肯定将会出现(如果尚未发布的话),这当然使得结构化学习成为一个令人兴奋的领域。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4845

    浏览量

    108373
  • 机器学习
    +关注

    关注

    67

    文章

    8570

    浏览量

    137421

原文标题:前沿综述:关系数据纷繁复杂,如何捕捉其中结构?

文章出处:【微信号:AItists,微信公众号:人工智能学家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么 VisionFive V1 板上的 JH7100 并存 NVDLA 引擎和神经网络引擎?

    我想知道为什么 VisionFive V1 板上的 JH7100 并存 NVDLA 引擎和神经网络引擎,请问?您能否举一些关于他们的用例的例子?
    发表于 03-25 06:01

    神经网络的初步认识

    日常生活的智能应用都离不开深度学习,而深度学习则依赖于神经网络的实现。什么是神经网络神经网络
    的头像 发表于 12-17 15:05 526次阅读
    <b class='flag-5'>神经网络</b>的初步认识

    自动驾驶中常提的卷积神经网络是个啥?

    在自动驾驶领域,经常会听到卷积神经网络技术。卷积神经网络,简称为CNN,是一种专门用来处理网格状数据(比如图像)的深度学习模型。CNN在图像处理
    的头像 发表于 11-19 18:15 2324次阅读
    自动驾驶中常提的卷积<b class='flag-5'>神经网络</b>是个啥?

    CNN卷积神经网络设计原理及在MCU200T上仿真测试

    数的提出很大程度的解决了BP算法在优化深层神经网络时的梯度耗散问题。当x&gt;0 时,梯度恒为1,无梯度耗散问题,收敛快;当x&lt;0 时,该层的输出为0。 CNN
    发表于 10-29 07:49

    NMSIS神经网络库使用介绍

    :   神经网络卷积函数   神经网络激活函数   全连接层函数   神经网络池化函数   Softmax 函数   神经网络支持功能   该库具有用于操作不同权重和激活
    发表于 10-29 06:08

    在Ubuntu20.04系统训练神经网络模型的一些经验

    , batch_size=512, epochs=20)总结 这个核心算法的卷积神经网络结构和训练过程,是用来对MNIST手写数字图像进行分类的。模型将图像作为输入,通过卷积和池化层提取图像的特征,然后通过全连接层进行分类预测。训练过程
    发表于 10-22 07:03

    CICC2033神经网络部署相关操作

    在完成神经网络量化后,需要将神经网络部署到硬件加速器上。首先需要将所有权重数据以及输入数据导入到存储器内。 在仿真环境下,可将其存于一个文件,并在 Verilog 代码
    发表于 10-20 08:00

    液态神经网络(LNN):时间连续性与动态适应性的神经网络

    1.算法简介液态神经网络(LiquidNeuralNetworks,LNN)是一种新型的神经网络架构,其设计理念借鉴自生物神经系统,特别是秀丽隐杆线虫的神经
    的头像 发表于 09-28 10:03 1692次阅读
    液态<b class='flag-5'>神经网络</b>(LNN):时间连续性与动态适应性的<b class='flag-5'>神经网络</b>

    神经网络的并行计算与加速技术

    问题。因此,并行计算与加速技术在神经网络研究和应用变得至关重要,它们能够显著提升神经网络的性能和效率,满足实际应用对快速响应和大规模数据
    的头像 发表于 09-17 13:31 1378次阅读
    <b class='flag-5'>神经网络</b>的并行计算与加速技术

    如何在机器视觉中部署深度学习神经网络

    1:基于深度学习的目标检测可定位已训练的目标类别,并通过矩形框(边界框)对其进行标识。 在讨论人工智能(AI)或深度学习时,经常会出现“神经网络”、“黑箱”、“标注”等术语。这些概
    的头像 发表于 09-10 17:38 1130次阅读
    如何在机器视觉中部署深度<b class='flag-5'>学习</b><b class='flag-5'>神经网络</b>

    基于神经网络的数字预失真模型解决方案

    在基于神经网络的数字预失真(DPD)模型,使用不同的激活函数对整个系统性能和能效有何影响?
    的头像 发表于 08-29 14:01 3767次阅读

    无刷电机小波神经网络转子位置检测方法的研究

    摘要:论文通过对无刷电机数学模型的推导,得出转角:与三相相电压之间存在映射关系,因此构建了一个以三相相电压为输人,转角为输出的小波神经网络来实现转角预测,并采用改进遗传算法来训练网络结构与参数,借助
    发表于 06-25 13:06

    神经网络专家系统在电机故障诊断的应用

    摘要:针对传统专家系统不能进行自学习、自适应的问题,本文提出了基于种经网络专家系统的并步电机故障诊断方法。本文将小波神经网络和专家系统相结合,充分发挥了二者故障诊断的优点,很大程度上降低了对电机
    发表于 06-16 22:09

    神经网络RAS在异步电机转速估计的仿真研究

    众多方法,由于其结构简单,稳定性好广泛受到人们的重视,且已被用于产品开发。但是MRAS仍存在在低速区速度估计精度下降和对电动机参数变化非常敏感的问题。本文利用神经网络的特点,使估计更为简单、快速
    发表于 06-16 21:54

    基于FPGA搭建神经网络的步骤解析

    本文的目的是在一个神经网络已经通过python或者MATLAB训练好的神经网络模型,将训练好的模型的权重和偏置文件以TXT文件格式导出,然后通过python程序将txt文件转化为coe文件,(coe
    的头像 发表于 06-03 15:51 1596次阅读
    基于FPGA搭建<b class='flag-5'>神经网络</b>的步骤解析