网络表示学习——Deepwalk

参考一个微信公众号DrPeot

https://mp.weixin.qq.com/s?src=11&timestamp=1562551705&ver=1715&signature=o7m1IxntaqVzuj-wIg2irlVORdNpf3tXokctKTSB5GACQZJviGTlloI69E87II2lr6yyzDDVoMyvDHex2Sho7yyUS3TjUIDDZevbIYgvMSBdOHQiAkG8Cq5Ci2cMzTZw&new=1

证明:DeepWalk的本质是一种矩阵分解

主要用于自己学习

1.对NRL的定义 (网络表示学习)

给定一个网络:G=(V,E)

对每一个节点v建立低维向量  且k << |V|

由于稠密的实数化表示,rv 可以减轻诸如邻接矩阵等表示带来的稀疏性。将rv当作节点v的特征,将其应用到机器学习中去。

 

2.Deepwalk

Deepwalk第一将skip-gram算法用于网络结构学习社交网络的节点表示

首先生成一个短随机游走当作相似性度量,

给定由随机游走生成的节点序列S={v1,v2,...,V|s|}

将顶点视作中心节点vi 的上下文信息。

与SkipGram相似,DeepWalk的目标是最大化S中的顶点-上下文对的概率的对数的平均值:

其中p(vj|vi) 是一个softmax函数

 rvicvj分别是中心节点vi 和上下文节点vj 的向量表示。

因此每个节点有两种表示向量:作为中心节点的和作为上下文节点的c

 之后DeepWalk使用SkipGram及Hierarchical Softmax从S中学习节点的向量表示。

 

DeepWalk的思想类似word2vec,使用图中节点与节点的共现关系来学习节点的向量表示。那么关键的问题就是如何来描述节点与节点的共现关系,DeepWalk给出的方法是使用随机游走(RandomWalk)的方式在图中进行节点采样。

RandomWalk是一种可重复访问已访问节点的深度优先遍历算法。给定当前访问起始节点,从其邻居中随机采样节点作为下一个访问节点,重复此过程,直到访问序列长度满足预设条件。

获取足够数量的节点访问序列后,使用skip-gram model 进行向量学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值