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

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

3天内不再提示

图嵌入的用处和方法

汽车玩家 来源:AI公园 作者:rimož Godec 2020-05-04 12:21 次阅读

导读

这篇文章描述了什么是图嵌入,图嵌入的用处,并对比了常用的几种图嵌入方法。

图常用在现实世界的不同场景中。社交网络是人们相互联系的大型图,生物学家使用蛋白质相互作用的图,而通信网络本身就是图。他们在文本挖掘领域使用词共现图。对在图形上使用机器学习的兴趣正在增长。他们试图在社交媒体上预测新的联系,而生物学家预测蛋白质的功能标签。图上的数学和统计操作是有限的,将机器学习方法直接应用到图上是很有挑战性的。在这种情况下,嵌入似乎是一个合理的解决方案。

什么是图嵌入?

图嵌入是将属性图转换为一个或一组向量。嵌入应该捕获图的拓扑结构、顶点到顶点的关系以及关于图、子图和顶点的其他相关信息。更多的属性嵌入编码可以在以后的任务中获得更好的结果。我们大致可以将嵌入分为两组:

顶点嵌入:我们用每个顶点(节点)自己的向量表示对其进行编码。当我们想要在顶点层次上执行可视化或预测时,我们会使用这种嵌入,例如在二维平面上对顶点进行可视化,或者基于顶点相似性预测新的连接。

图嵌入:这里我们用一个向量表示整个图。当我们想要在图的层次上做出预测时,以及当我们想要比较或可视化整个图时,例如比较化学结构时,就会用到这些嵌入。

稍后,我们将介绍来自第一组的一些常用方法(DeepWalk、node2vec、SDNE)和来自第二组的graph2vec方法。

我们为什么要用到图嵌入?

图是一种有意义的、可理解的数据表示,但是需要使用图嵌入的原因如下:

机器学习在图上的应用是有限的。图由边和节点组成。这些网络关系只能使用数学、统计和机器学习的特定子集,而向量空间有更丰富的方法工具集。

嵌入是压缩的表示。邻接矩阵描述图中节点之间的连接。它是一个|V| x |V|矩阵,其中|V|是图中的一些节点。矩阵中的每一列和每一行都表示一个节点。矩阵中的非零值表示两个节点连接。对于大型图,使用邻接矩阵作为特征空间几乎是不可能的。假设一个图有1M个节点和一个1M x 1M的邻接矩阵。嵌入比邻接矩阵更实用,因为它们将节点属性打包到一个维度更小的向量中。

向量运算比图上的运算更简单、更快。

挑战

嵌入方法需要满足更多的需求。这里我们描述了嵌入方法面临的三个挑战:

我们需要确保嵌入能够很好地描述图的属性。它们需要表示图拓扑、节点连接和节点邻居。预测或可视化的性能取决于嵌入的质量。

网络的大小不应降低嵌入过程的速度。图通常很大。想象一下拥有数百万人的社交网络。好的嵌入方法需要在大型图上有效。

一个基本的挑战是决定嵌入维数。较长的嵌入保存了更多的信息,同时它们比排序器嵌入带来更高的时间和空间复杂度。用户需要根据需求做出权衡。在文章中,他们通常报告说,嵌入大小在128到256之间就足够完成大多数任务。在Word2vec方法中,他们选择了嵌入长度300。

Word2vec

在介绍嵌入图的方法之前,我将讨论Word2vec方法和skip-gram神经网络。它们是图形嵌入方法的基础。

Word2vec是一种将单词转换为嵌入向量的嵌入方法。相似的单词应该有相似的嵌入。Word2vec采用skip-gram网络,skip-gram网络具有一个隐含层的神经网络。skip-gram被训练来预测句子中的相邻单词。这个任务被称为伪任务,因为它只是在训练阶段使用。网络在输入端接受单词,并对其进行优化,使其能够以较高的概率预测句子中的相邻单词。下图显示了输入单词(用绿色标记)和预测单词的示例。通过这个任务,作者实现了两个相似的单词具有相似的嵌入,因为具有相似含义的两个单词很可能具有相似的邻域单词。

图嵌入的用处和方法

用绿色表示网络。优化后的算法能较好地预测邻域内的词,具有较高的预测概率。在本例中,我们考虑距离所选单词最远的两个位置的单词。

下图所示的skip-gram神经网络有输入层、隐藏层和输出层。网络接受one -hot编码。one -hot编码是一个长度与单词字典数量相同的向量,只有一个1其他都是0。这个1出现的位置是字典中出现编码单词的地方。隐藏层没有激活函数,它的输出是一个单词的嵌入。输出层是一个预测邻域单词的softmax分类器。

图嵌入的用处和方法

我将介绍四种图形嵌入方法。其中三个节点嵌入节点,而一个节点用一个向量嵌入整个图。他们将Word2vec中的嵌入原则应用于三种方法中。

顶点嵌入方法

我将介绍在图中嵌入节点的三种方法。之所以选择它们,是因为它们在实践中经常使用,并且通常提供最好的结果。在深入讨论之前,我可能会提到节点嵌入的方法可以分为三大类:因子分解方法、随机游走方法和深度方法。

DeepWalk使用随机游走来生成嵌入。从选定的节点开始随机游走,然后我们从当前节点随机移动到邻居,执行一定数量的步骤。

该方法主要包括三个步骤:

抽样:通过随机游走对图进行采样。从选到的节点执行的随机游走很少。作者证明,从每个节点执行32到64步随机游走就足够了。它们还表明,良好的随机游走的长度约为40步。

训练skip-gram:随机游走相当于word2vec方法中的句子。skip-gram网络接受随机游走中的一个节点作为one hot向量作为输入,最大限度地提高了预测相邻节点的概率。它通常被训练来预测大约20个邻居节点——左边10个节点和右边10个节点。

计算嵌入:嵌入是网络隐含层的输出,DeepWalk计算图中每个节点的嵌入。

图嵌入的用处和方法

DeepWalk方法执行随机遍历,这意味着嵌入不能很好地保留节点的局部邻域。Node2vec方法解决了这个问题。

Node2vec是DeepWalk的一个改进,只是随机游动的差异很小。它有参数P和Q。参数Q定义了random walk发现图中未发现部分的概率,而参数P定义了random walk返回到前一个节点的概率。参数P控制发现节点周围的微观视图。参数Q控制较大邻域的发现。它推断出社区和复杂的依赖关系。

图嵌入的用处和方法

图中显示了Node2vec中随机行走步长的概率。我们只是从红结点到绿结点跨了一步。返回到红色节点的概率为1/P,而返回到与前一个(红色)节点没有连接的节点的概率为1/Q。到红结点相邻结点的概率是1。

嵌入的其他步骤与DeepWalk方法相同。

结构深度网络嵌入(SDNE)与前两种方法没有任何共同之处,因为它不执行随机游走。我之所以提到它,是因为它在不同任务上的表现非常稳定。

它的设计使得嵌入保持了一阶和二阶的接近性。一阶近似是由边连接的节点之间的局部成对相似性。它描述了局部网络结构。如果网络中的两个节点与边缘连接,则它们是相似的。当一篇论文引用了另一篇论文,这意味着它们涉及了类似的主题。二阶邻近度表示节点邻域结构的相似性。它捕获了全球网络结构。如果两个节点共享许多邻居,它们往往是相似的。

作者提出了一个自动编码器神经网络,它有两个部分。自编码器(左、右网络)接受节点邻接向量,训练自编码器重构节点邻接。这些自动编码器被称为vanilla自动编码器,它们学习二阶近似。邻接向量(邻接矩阵中的一行)在表示连接到所选节点的节点的位置上具有正值。

还有一个网络的监督部分——左翼和右翼之间的联系。它计算从左到右的嵌入距离,并将其包含在网络的共同损失中。网络经过这样的训练,左、右自动编码器得到所有由输入边连接的节点对。距离部分的损失有助于保持一阶近似。

网络的总损失是由左右自编码器的损失和中间部分的损失之和来计算的。

图嵌入的用处和方法

图嵌入方法

最后一种方法对整个图进行了嵌入。它计算一个描述图形的向量。我选择graph2vec方法,因为据我所知,它是图形嵌入的最佳方法。

Graph2vec基于doc2vec方法的思想,该方法使用了skip-gram网络。它在输入上获取文档的ID,并经过训练得到最大化从文档中预测随机单词的概率。

Graph2vec方法包括三个步骤:

从图中采样并重新标记所有子图。子图是出现在所选节点周围的一组节点。子图中的节点距离不超过所选边数。

训练跳跃图模型。图类似于文档。由于文档是一组单词,所以图是一组子图。在此阶段,对skip-gram模型进行训练。它被训练来最大限度地预测存在于输入图中的子图的概率。输入图作为独热向量。

计算嵌入提供一个图形ID作为独热向量作为输入。嵌入是隐藏层的结果。

由于任务是预测子图,具有相似子图和相似结构的图具有相似的嵌入。

图嵌入的用处和方法

其他的嵌入方法

我提出了四种文献中常用的方法。由于这个主题目前非常流行,所以可以使用更多的方法。这里我列出了其他可用的方法:

顶点嵌入方法:LLE,拉普拉斯特征映射,图分解,GraRep, HOPE, DNGR, GCN, LINE

图嵌入方法:Patchy-san, sub2vec (embed subgraphs), WL kernel和deep WL kernel

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

    关注

    66

    文章

    8373

    浏览量

    132395
收藏 人收藏

    评论

    相关推荐

    反极实验数据的分析方法

    利用样品的轧面(ND面)、与轧向垂直的剖面(RD面)、与横向垂直的剖面(TD面)等3个观察面的普通粉末衍射数据,进行2种分析处理。第1种方法是利用Excel表格把晶面指数与强度的关系处理成圆饼
    的头像 发表于 11-05 11:37 216次阅读
    反极<b class='flag-5'>图</b>实验数据的分析<b class='flag-5'>方法</b>

    晶体取向反极实验数据的采集方法

    晶体的取向可以用极和反极来表征。正极的数据采集方法被广泛应用,就是通过织构附件获得某一晶面的衍射强度在样品中的空间分布,推知某一晶面在样品中的空间分布,由此获得晶体的取向信息。然
    的头像 发表于 11-05 11:35 188次阅读
    晶体取向反极<b class='flag-5'>图</b>实验数据的采集<b class='flag-5'>方法</b>

    RK3566高性能低功耗四核应用处理器数据手册

    电子发烧友网站提供《RK3566高性能低功耗四核应用处理器数据手册.pdf》资料免费下载
    发表于 10-24 16:53 0次下载

    嵌入式工控机如何使用?嵌入式工控机操作方法及注意事项

    嵌入式工控机作为现代工业自动化和控制系统中重要的硬件支持,广泛应用于生产线监控、轨道交通、电力能源等多个领域。其稳定性、可靠性以及适应恶劣环境的能力,使其成为许多行业的首选。那么,嵌入式工控机究竟如何使用呢?高能计算机将详细介绍其操作
    的头像 发表于 10-18 10:02 204次阅读

    OMAP5912应用处理器数据表

    电子发烧友网站提供《OMAP5912应用处理器数据表.pdf》资料免费下载
    发表于 08-07 09:16 0次下载
    OMAP5912应<b class='flag-5'>用处</b>理器数据表

    OMAP3515和OMAP3503应用处理器数据表

    电子发烧友网站提供《OMAP3515和OMAP3503应用处理器数据表.pdf》资料免费下载
    发表于 08-05 10:32 0次下载
    OMAP3515和OMAP3503应<b class='flag-5'>用处</b>理器数据表

    嵌入式工控一体机的安装方法和使用注意事项?

    嵌入式工控一体机的安装方法和使用注意事项?工控一体机系列产品中,因为使用环境的特殊性,很多企业需要以嵌入式的方式,把工控一体机安装到固定的位置,途控在多年的嵌入式工控一体机的客户沟通中
    的头像 发表于 08-04 11:12 1118次阅读

    专家力荐|《嵌入式系统原理与开发——基于RISC-V和Linux系统》新书发售

    ——基于RISC-V和Linux系统》图书,填补了高性能RISC-V应用处理器在嵌入式应用方面相关书籍的空白。《嵌入式系统原理与开发——基于RISC-V和Linux系
    的头像 发表于 07-24 08:20 510次阅读
    专家力荐|《<b class='flag-5'>嵌入</b>式系统原理与开发——基于RISC-V和Linux系统》新书发售

    MOS管可变电阻区有什么用处

    MOS管(Metal-Oxide-Semiconductor Field-Effect Transistor,金属-氧化物半导体场效应晶体管)的可变电阻区是其工作特性中的一个重要区域,具有广泛的应用和多种用处。以下是对MOS管可变电阻区用处的详细探讨。
    的头像 发表于 07-23 11:46 1825次阅读

    示波器测量伯德的技巧方法介绍

    伯德是一种在频域内表示系统频率响应的图形表示方法,通常由幅频特性和相频特性组成。
    的头像 发表于 05-31 15:01 828次阅读

    请问STM32F4XX系列USB的usb_regs.h文件有什么用处

    STM32F4XX 系列USB的usb_regs.h文件有什么用处
    发表于 05-17 06:13

    维谛嵌入式开关电源常见告警处理方法

    维谛嵌入式开关电源常见告警处理方法
    的头像 发表于 04-09 17:15 1171次阅读
    维谛<b class='flag-5'>嵌入</b>式开关电源常见告警处理<b class='flag-5'>方法</b>

    用于高级应用处理器的电源管理单元LP3971数据表

    电子发烧友网站提供《用于高级应用处理器的电源管理单元LP3971数据表.pdf》资料免费下载
    发表于 04-02 15:23 0次下载
    用于高级应<b class='flag-5'>用处</b>理器的电源管理单元LP3971数据表

    什么是嵌入式微处理器?嵌入式微处理器有哪些?

    嵌入式微处理器是指嵌入到特定应用系统中的微处理器,它是整个嵌入式系统的核心,由通用处理器演变而来,具有体积小、重量轻、成本低、可靠性高等优点。与通
    的头像 发表于 03-29 11:39 938次阅读

    基于嵌入式RISC-V处理器核轻松实现DSP扩展设计

    基于已开发的嵌入式或应用处理器核 (如L31等)
    的头像 发表于 02-28 13:35 933次阅读
    基于<b class='flag-5'>嵌入</b>式RISC-V处理器核轻松实现DSP扩展设计