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

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

3天内不再提示

图形神经网络的基础知识两种较高级的算法

倩倩 来源:雷锋网 2020-04-17 14:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

近来,图神经网络(GNN)在各个领域广受关注,比如社交网络,知识图谱,推荐系统以及生命科学。GNN在对图节点之间依赖关系进行建模的强大功能使得与图分析相关的研究领域取得了突破。 本文旨在介绍图形神经网络的基础知识两种较高级的算法,DeepWalk和GraphSage。

在我们学习GAN之前,大家先了解一下什么图。在计算机科学中,图是一种数据结构,由顶点和边组成。图G可以通过顶点集合V和它包含的边E来进行描述。

根据顶点之间是否存在方向性,边可以是有向或无向的。

顶点通常称为节点。在本文中,这两个术语是可以互换的。

图神经网络

图神经网络是一种直接在图结构上运行的神经网络。GNN的一个典型应用是节点分类。本质上,图中的每个节点都与一个标签相关联,我们希望预测未标记节点的标签。本节将介绍论文中描述的算法,GNN的第一个提法,因此通常被视为原始GNN。

在节点分类问题中,每个节点v都可以用其特征x_v表示并且与已标记的标签t_v相关联。给定部分标记的图G,目标是利用这些标记的节点来预测未标记的节点标签。 它通过学习得到每个节点的d维向量(状态)表示h_v,同时包含其邻居的信息。

https://arxiv.org/pdf/1812.08434

x_co[v] 代表连接顶点v的边的特征,h_ne[v]代表顶点v的邻居节点的嵌入表示,x_ne[v]代表顶点v的邻居节点特征。f是将输入投影到d维空间的转移函数。由于要求出h_v的唯一解,我们应用Banach不动点理论重写上述方程进行迭代更新。

https://arxiv.org/pdf/1812.08434

H和X分别表示所有h和x的连接。

通过将状态h_v以及特征x_v传递给输出函数g来计算GNN的输出。

https://arxiv.org/pdf/1812.08434

这里的f和g都可以解释为全连接前馈神经网络。 L1损失可以直接表述如下:

https://arxiv.org/pdf/1812.08434

可以通过梯度下降优化。

但是,本文指出的原始GNN有三个主要局限:

如果放宽了“固定点”的假设,则可以利用多层感知器来学习更稳定的表示,并删除迭代更新过程。 这是因为,在原始方法中,不同的迭代使用转移函数f的相同参数,而不同MLP层中的不同参数允许分层特征提取。

它不能处理边缘信息(例如知识图谱中的不同边可能表示节点之间的不同关系)

固定点会限制节点分布的多样化,因此可能不适合学习节点表示。

已经提出了几种GNN变体来解决上述问题。 但是,他们不是这篇文章的重点。

DeepWalk

DeepWalk是第一个以无监督学习的节点嵌入算法。 它在训练过程中类似于词嵌入。 它的初衷是图中的两个节点分布和语料库中的单词分布都遵循幂律,如下图所示:

http://www.perozzi.net/publications/14_kdd_deepwalk.pdf

算法包括两个步骤:

在图中的节点上执行随机游走生成节点序列

运行skip-gram,根据步骤1中生成的节点序列学习每个节点的嵌入

在随机游走过程中,下一个节点是从前一节点的邻居统一采样。 然后将每个序列截短为长度为2 | w |+1的子序列,其中w表示skip-gram中的窗口大小。如果您不熟悉skip-gram,我之前的博客文章已经向您介绍它的工作原理

在论文中,分层softmax用于解决由于节点数量庞大而导致的softmax计算成本过高的问题。为了计算每个单独输出元素的softmax值,我们必须为所有元素k计算ek。

softmax的定义

因此,原始softmax的计算时间是 O(|V|) ,其中其中V表示图中的顶点集。

多层的softmax利用二叉树来解决softmax计算成本问题。 在二叉树中,所有叶子节点(上面所说的图中的v1,v2,。.. v8)都是图中的顶点。 在每个内部节点中(除了叶子节点以外的节点,也就是分枝结点),都通过一个二元分类器来决定路径的选取。 为了计算某个顶点v_k的概率,可以简单地计算沿着从根节点到叶子节点v_k的路径中的每个子路径的概率。 由于每个节点的孩子节点的概率和为1,因此在多层softmax中,所有顶点的概率之和等于1的特性仍然能够保持。如果n是叶子的数量,二叉树的最长路径由O(log(n))限定,因此,元素的计算时间复杂度将减少到O(log | V |)。

多层softmax

(http://www.perozzi.net/publications/14_kdd_deepwalk.pdf)

在训练DeepWalk GNN之后,模型已经学习到了了每个节点的良好表示,如下图所示。 不同的颜色在输入图中(图a)表示不同标签。 我们可以看到,在输出图(每个顶点被嵌入到2维平面)中,具有相同标签的节点聚集在一起,而具有不同标签的大多数节点被正确分开。

http://www.perozzi.net/publications/14_kdd_deepwalk.pdf

然而,DeepWalk的主要问题是它缺乏泛化能力。 每当有新节点加入到图中时,它必须重新训练模型以正确表示该节点( 直推式学习 )。 因此,这种GNN不适用于图中节点不断变化的动态图。

GraphSage

GraphSage提供了解决上述问题的解决方案,它以归纳方式学习每个节点的嵌入。 具体来讲,它将每个节点用其邻域的聚合重新表示。 因此,即使在训练时间期间未出现在图中新节点,也仍然可以由其相邻节点正确地表示。 下图展示了GraphSage的算法过程。

https://www-cs-faculty.stanford.edu/people/jure/pubs/graphsage-nips17.pdf

外层for循环表示更新迭代次数,而 h^k_v 表示节点v 在迭代第 k 次时的本征向量。 在每次迭代时,将通过聚合函数,前一次迭代中 v 和 v 领域的本征向量以及权重矩阵W^k 来更新h^k_v 。这篇论文提出了三种聚合函数:

1.均值聚合器:

均值聚合器取一个节点及其邻域的本征向量的平均值。

https://www-cs-faculty.stanford.edu/people/jure/pubs/graphsage-nips17.pdf

与原始方程相比,它删除了上述伪代码中第5行的连接操作。 这种操作可以被视为“skip-connection” (“跳连接”),这篇论文后面将证明其可以在很大程度上提高模型的性能。

2. LSTM聚合器:

由于图中的节点没有任何顺序,因此他们通过互换这些节点来随机分配顺序。

3.池聚合器:

此运算符在相邻顶点集上执行逐元素池化函数。下面显示了最大池的例子:

https://www-cs-faculty.stanford.edu/people/jure/pubs/graphsage-nips17.pdf

可以用平均池或任何其他对称池函数替换这种最大池函数。尽管均值池和最大池聚合器性能相似,但是池聚合器(也就是说采用最大池函数)被实验证明有最佳的性能。 这篇论文使用max-pooling作为默认聚合函数

损失函数定义如下:

https://www-cs-faculty.stanford.edu/people/jure/pubs/graphsage-nips17.pdf

其中u 和v 共同出现在一定长度的随机游走中,而 v_n 是不与u共同出现的负样本。这种损失函数鼓动节点在投影空间中更靠近嵌入距离更近的节点,而与那些相距很远的节点分离。通过这种方法,节点将获得越来越多其邻域的信息。

GraphSage通过聚合其附近的节点,可以为看不见的节点生成可表示的嵌入位置。它让节点嵌入的方式可以被应用于涉及动态图的研究领域,这类动态图的图的结构是可以不断变化的。例如,Pinterest采用了GraphSage的扩展版本PinSage作为他们的内容探索系统的核心。

结束语

您已经学习了图形神经网络,DeepWalk和GraphSage的基础知识。 GNN在复杂图形结构建模中的强大功能确实令人惊讶。鉴于其高效性,我相信GNN将在人工智能的发展中发挥重要作用。如果您觉得我的文章还不错,请不要忘记在Medium和Twitter上关注我,我经常分享AI,ML和DL的高级发展动态。

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

    关注

    42

    文章

    4842

    浏览量

    108177
  • 计算机科学
    +关注

    关注

    1

    文章

    144

    浏览量

    11825
  • GNN
    GNN
    +关注

    关注

    1

    文章

    31

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    神经网络的初步认识

    日常生活中的智能应用都离不开深度学习,而深度学习则依赖于神经网络的实现。什么是神经网络神经网络的核心思想是模仿生物神经系统的结构,特别是大脑中神经
    的头像 发表于 12-17 15:05 460次阅读
    <b class='flag-5'>神经网络</b>的初步认识

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

    在自动驾驶领域,经常会听到卷积神经网络技术。卷积神经网络,简称为CNN,是一专门用来处理网格状数据(比如图像)的深度学习模型。CNN在图像处理中尤其常见,因为图像本身就可以看作是由像素排列成的二维网格。
    的头像 发表于 11-19 18:15 2246次阅读
    自动驾驶中常提的卷积<b class='flag-5'>神经网络</b>是个啥?

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

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

    NMSIS神经网络库使用介绍

    NMSIS NN 软件库是一组高效的神经网络内核,旨在最大限度地提高 Nuclei N 处理器内核上的神经网络的性能并最​​大限度地减少其内存占用。 该库分为多个功能,每个功能涵盖特定类别
    发表于 10-29 06:08

    构建CNN网络模型并优化的一般化建议

    :Dropout层随机跳过神经网络模型中某些神经元之间的连接,通过随机制造缺陷进行训练提升整个神经网络的鲁棒性。 6)指定合理的学习率策略:一旦神经网络的准确率饱和,那么学习率应当
    发表于 10-28 08:02

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

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

    CICC2033神经网络部署相关操作

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

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

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

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

    随着人工智能技术的飞速发展,神经网络在众多领域展现出了巨大的潜力和广泛的应用前景。然而,神经网络模型的复杂度和规模也在不断增加,这使得传统的串行计算方式面临着巨大的挑战,如计算速度慢、训练时间长等
    的头像 发表于 09-17 13:31 1297次阅读
    <b class='flag-5'>神经网络</b>的并行计算与加速技术

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

    摘要:论文通过对无刷电机数学模型的推导,得出转角:与三相相电压之间存在映射关系,因此构建了一个以三相相电压为输人,转角为输出的小波神经网络来实现转角预测,并采用改进遗传算法来训练网络结构与参数,借助
    发表于 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 1504次阅读
    基于FPGA搭建<b class='flag-5'>神经网络</b>的步骤解析

    AI神经网络降噪算法在语音通话产品中的应用优势与前景分析

    随着人工智能技术的快速发展,AI神经网络降噪算法在语音通话产品中的应用正逐步取代传统降噪技术,成为提升语音质量的关键解决方案。相比传统DSP(数字信号处理)降噪,AI降噪具有更强的环境适应能力、更高
    的头像 发表于 05-16 17:07 1874次阅读
    AI<b class='flag-5'>神经网络</b>降噪<b class='flag-5'>算法</b>在语音通话产品中的应用优势与前景分析