图深度学习——图嵌入的通用框架

图嵌入通用框架

图上的机器学习

图上的节点不全是独立同分布的,因此传统的机器学习无法直接运用到图上。一种解决思路是,把图变成一种独立同分布的数据,这样在图上的任务就可以转变成传统机器学习任务,这就是图上的特征学习和特征提取的主要动机。
图深度学习——图嵌入的通用框架_第1张图片
图的矩阵表示有两种:邻接矩阵和拉普拉斯矩阵。
无论是邻接矩阵还是拉普拉斯矩阵,当图上的节点数量特别大、节点的度不大时,使用邻接矩阵表示图就会存在几个问题:

  1. 稀疏
  2. 高维度

在传统机器学习中会引起“维度灾难”
邻接矩阵只是对图进行了简单表示,无法捕获图中拓扑结构的更多信息,因此需要学习低维节点表示。

节点表示学习

图深度学习——图嵌入的通用框架_第2张图片

低维节点表示不是随便进行低维度表示,形式化定义是:给定一个图,将图上每一个节点映射到低维空间,同时在低维节点表示中还要保留图上的重要信息。(即,映射过程中还要去捕捉图上的重要信息,这也是图表示学习的一个目标。)
当学习了图的表示以后,这个节点表示中包含了很多图中的重要信息,后续就可以将这个节点表示用于传统机器学习方法。

节点表示学习1.0: 数据降维

图深度学习——图嵌入的通用框架_第3张图片
数据降维方法:将数据表示成图,然后对图进行一些低维表示(分解、映射等等),达到降维的目的。
不足:

  1. 通常具有很高的复杂度
  2. 无法应用在大规模的图上

但是不管是第二代还是第三代节点表示学习,都能从中找到第一代节点表示学习的一些概念(灵感)or原理。

节点表示学习2.0: Word2vec词嵌入

图深度学习——图嵌入的通用框架_第4张图片

Word2vec词嵌入

给定语料文本,这些文本由很多句子组成,每个句子由很多词组成。词嵌入目的:把每一个词映射到 d d d 维的空间,用向量空间表示每一个词。在没有词嵌入前,选择onehot编码来表示。onehot编码通过表示的词在字典中的位置来表示这个词,但是onehot编码中不包含这个词的语义信息,只是一个表示。

词嵌入时目的是将词映射到低维空间,同时保留其中的语义信息。

图深度学习——图嵌入的通用框架_第5张图片
company在特定句子里,不一定表示是“公司”的意思。因此周围词的共现信息十分重要。Word2vec的基本思想就是保留目标词的共现信息。

图深度学习——图嵌入的通用框架_第6张图片
通过窗口来读取中心词的上下文词,来计算他们共现的概率,以此提取共现信息。一个词的共现信息一定程度上能反映这个词的语义信息。所以抽取语料中的共现信息表示这个词的语义信息,通过词嵌入重建共现信息,达到保留语义信息的目的。
词嵌入在自然语言处理领域的出色表现,引发是否可以用于节点表示学习的思考。所以节点表示学习进入第二代:

图嵌入——DeepWalk:把Word2vec的思想运用到图嵌入中。

图深度学习——图嵌入的通用框架_第7张图片
优点:

  1. 通常比较高效(第一代基于图的拉普拉斯矩阵,计算复杂度比较高)
  2. 有较好的可拓展性

节点嵌入

首先图表示学习向低维映射不是随机映射,目的是为了保留图中的有用信息 (词嵌入:保留词的共现信息)
那么在节点嵌入中要保留什么信息

  1. 共现信息
  2. 结构角色
  3. 社区信息
  4. 节点状态

如何保留这些信息:
利用节点嵌入尽可能重构保留的信息
把原始图数据看作是一个空间,新的节点嵌入看作是一个新的空间。从原始空间中抽取信息,映射到节点嵌入空间,并在这个空间中去重新表示这些信息。

图深度学习——图嵌入的通用框架_第8张图片

图嵌入的通用框架

在这里插入图片描述
第一个部分
图数据可以看作有两种表示方法:图域(图的拓扑结构表示出来的图信息),嵌入域(向量空间表示出来的图信息)。
因此在通用框架中需要一个映射函数,映射函数可以把图上的每个节点从图域映射到嵌入域(高维 --> 低维)
第二个部分
在图域中需要有一个信息提取器,在图域中提取重要信息(共现信息、结构角色、社区信息和节点状态)。在嵌入域需要有一个重构器,在嵌入域基于每一个节点的表示,去重构信息,并且使得信息提取器提取信息和重构器重构信息尽可能接近。这样可以在嵌入域通过嵌入尽可能保留信息提取器提取到的信息。
以此实现图嵌入的通用框架。

你可能感兴趣的:(深度学习,人工智能,机器学习)