几种常见的Graph Embedding方法

图(Graph)是一个常见的数据结构,现实世界中有很多很多任务可以抽象成图问题,比如社交网络,蛋白体结构,交通路网数据,以及很火的知识图谱等,甚至规则网络结构数据(如图像,视频等)也是图数据的一种特殊形式。针对graph的研究可以分成三类:1.简单的graph算法:如生成树算法,最短路算法,复杂一点的二分图匹配,费用流问题等等;2.概率图模型:将条件概率表达为图结构,并进一步挖掘,典型的有条件随机场等;3.图神经网络:研究图结构数据挖掘的问题,典型的有graph embedding,graph CNN等。

总览

在介绍Graph Embedding之前,我们先回顾什么是Embedding?Embedding在数学上是一个函数,将一个空间的点映射到另一个空间,通常是从高维抽象的空间映射到低维的具象空间。Embeding的意义将高维数据转换到低维利于算法的处理;同时解决one-hot向量长度随样本的变化而变化,以及无法表示两个实体之间的相关性这一问题。

最常见的embeding方法是word2vec,根据语料库中单词的共现关系求出每个单词的embedding,常用的word2vec模型有cbow和skip-gram两种,cbow根据上下文预测中心词,skip-gram根据中心词预测上下文(详见word2vec 中的数学原理详解)。因此既然自然语言中的单词可以通过共现关系进行embedding,那么将graph类比成整个语料库,图中的节点类比成单词,我们是否也可以通过共现关系对graph中的node进行embedding?对于word2vec而言,语料库中的每个句子都可以描述单词之间的共现,对于graph,这种共现关系如何描述呢?接下来我们将对多种不同的graph embedding方式进行展开。

Graph Embedding

Graph Embedding 的中心思想就是找到一种映射函数,该函数将网络中的每个节点转换为低维度的潜在表示。利于计算存储,不用再手动提特征(自适应性),下图是graph embeding的几种常见分类

DeepWalk

DeepWalk 通过将节点视为单词并生成短随机游走作为句子来弥补网络嵌入和单词嵌入之间的差距。然后,可以将诸如 Skip-gram 之类的神经语言模型应用于这些随机游走以获得网络嵌入。其优点是首先其可以按需生成随机游走。由于 Skip-gram 模型也针对每个样本进行了优化,因此随机游走和 Skip-gram 的组合使 DeepWalk 成为在线算法。其次,DeepWalk 是可扩展的,生成随机游走和优化 Skip-gram 模型的过程都是高效且平凡的并行化。最重要的是,DeepWalk 引入了深度学习图形的范例

  用SkipGram的方法进行网络中节点的表示学习。那么,根据SkipGram的思路,最重要的就是定义Context,也就是Neighborhood。​NLP中,Neighborhood是当前Word周围的字,本文用随机游走得到Graph或者Network中节点的Neighborhood。

(1)随机游走随机均匀地选取网络节点,并生成固定长度的随机游走序列,将此序列类比为自然语言中的句子(节点序列=句子,序列中的节点=句子中的单词),应用skip-gram模型学习节点的分布式表示,skip-gram模型详见:http://blog.csdn.net/u013527419/article/details/74129996
(2)前提:如果一个网络的节点服从幂律分布,那么节点在随机游走序列中的出现次数也服从幂律分布,并且实证发现NLP中单词的出现频率也服从幂律分布。

Network/graph ---------random walk ---------得到节点序列(representation mapping)-------- 放到skip-gram模型中(中间节点预测上下        文节点)--------- output:representation

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值