图表示学习——deepwalk

Graph Embedding

先从Word Embedding来说,现在的NLP语言取得了巨大突破一大部分原因是将高度离散化的词语符号表示,转换为了低维的连续分布的表示。

eg:

我爱香蕉

我爱苹果

用onehot来表示:

我 0 [1,0,0,0]

爱 1 [0,1,0,0]

苹果 2 [0,0,1,0]

香蕉 3 [0,0,0,1]

但是这种方法不能够表现出相似性的关系,来就有了更聪明的方法,考虑将这些词语用高维空间中的向量表示,如果两个词向量之间的距离近,那么它们对应的词就具有越高的语义相似性,这种思想即word2vec。用word2vec可以变成:

  • 我 [1,1,1]
  • 爱 [1,-1,1]
  • 苹果 [-1,1,0.5]
  • 雪梨 [-1,1,0.4]

类比在图上也是一样,在图上,如果两个节点之间的路径短,那么这两个节点的相似性一定很高,也就是向量之间的距离短,考虑图G(V,E),在其基础上添加顶点的类别,则形成标注图(labeled graph)GL=(V,E,X,Y),其中X∈R(|v|*d)为顶点嵌入,Y∈R(|V|×|C|),d为特征维数,Y为标签集。 注意这种写法指X和Y均为矩阵,X一共有|V|行,每行对应一个顶点的特征向量,有d维;并且每个结点可能属于多个类别⊂C。(指multi-label classification,而不是multi-class每个样本只归属一类别)。 目标则是学习得到嵌入表示X,或者说映射Φ:V↦X,使得在低维的嵌入空间中,图结点有很好的分布式连续表达,能够很好保持图的邻接结构,即结点向量间的距离能够衡量原图中的邻接关系强弱。

下图来自deepwalk论文中的空手道数据集的deepwalk的实验结果。

img

Deep Walk

将图中的节点当作词语,几个节点构成的路径当作句子。

Random walk

随机游走的方式得到节点序列,就是从一个节点除法,走L步,得到的节点序列

,其中从一个节点到相邻的节点之间是随机的饿过程。

w1,w2,…,wL

随机游走的好处:

可以实现并行计算
可以轻松应对动态网络,对于任意新加的点,不用再训练全图。
幂律分布

与文本语言相似,图中,少量的节点拥有大量的连接,严重的分布不均匀。在论文中有说明:

If the degree distribution of a connected graph follows a power law (i.e. scale-free), we observe that the frequency which vertices appear in the short random walks will also follow a power-law distribution.
图是符合幂律分布,他的子序列也符合幂律分布,因此可以尝试用语言模型来解决。
Skip-gram

在word2vec中提到了两种LM,一种CBOW,输入为前后w个词,输出为中间词;而另外一种是skip-gram,输入中间词,输出前后w,skip-gram的计算量更少,deepWalk选择skip-gram;下图是窗口为2的情况;
img
则最终的优化问题变成了:
m i n Φ − l o g P r ( v i − w , … , v i − 1 , v i + 1 , … , v i + w ∣ Φ ( v i ) ) minΦ−logPr({vi−w,…,vi−1,vi+1,…,vi+w}∣Φ(vi)) minΦlogPr(viw,,vi1,vi+1,,vi+wΦ(vi))
整体的算法流程:

论文中给出的伪代码:
img

img

总结一下:

1、每次随机选择一个起始点vi
2、从vi开始,做长为|Wvi|=t的随机游走。
3、依据得到的Wvi,做skip-gram。即对每一vj∈Wvi,每一uk∈Wvi[j−w:j+w],做梯度下降更新参数

J ( Φ ) = − l o g P r ( u k ∣ Φ ( v j ) ) , Φ = Φ − α ∂ J / ∂ Φ J(Φ)=−logPr(uk∣Φ(vj)) , Φ=Φ−α∂J/∂Φ J(Φ)=logPr(ukΦ(vj)),Φ=ΦαJ/Φ

其他的就是一些工程上的问题了,这里不再细致讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值