Deepwalk(深度游走)算法简介

深度游走:一种社交表示的在线学习算法

主要思想

  Deepwalk是一种将随机游走(random walk)和word2vec两种算法相结合的图结构数据挖掘算法。该算法能够学习网络的隐藏信息,能够将图中的节点表示为一个包含潜在信息的向量,如图1-2所示。
在这里插入图片描述

图1 输入: 图信号

在这里插入图片描述

图2 输出: 图节点嵌入

Deepwalk算法

  该算法主要分为随机游走和生成表示向量两个部分。首先利用随机游走算法(Random walk)从图中提取一些顶点序列;然后借助自然语言处理的思路,将生成的定点序列看作由单词组成的句子,所有的序列可以看作一个大的语料库(corpus),最有利用自然语言处理工具word2vec将每一个顶点表示为一个维度为d的向量。

  1. 符号定义:一个图可以表示为:
    G = ( V , E ) G = (V,E) G=(V,E)其中, V V V表示顶点的集合; E E E表示边的集合, 且 E ⊆ V × V E \subseteq V \times V EV×V
  2. 算法:
算法1: D e e p W a l k ( G , w , d , γ , t ) DeepWalk(G, w, d, γ, t) DeepWalk(G,w,d,γ,t)
输入:图 G ( V , E ) G(V, E) G(V,E)
   窗口尺寸 w w w
   输出维度 d d d
   以每个节点开始的路径数量 γ γ γ
   每条路径的长度 t t t
输出:隐含信息的表示矩阵 Φ ∈ R ∣ V ∣ × d \Phi \in \textbf R^{\vert V \vert} \times d ΦRV×d
1. 随机初始化 Ф Ф Ф
2: for i = 0 i=0 i=0 to γ γ γ do
3:   将顶点随机排列,即 O = S h u f f l e ( V ) O=Shuffle(V) O=Shuffle(V)
4:    for 每一个 v i ∈ O vi∈O viO do:
5:      W v i = R a n d o m W a l k ( G , v i , t ) W_{v_i} = RandomWalk(G, v_i, t) Wvi=RandomWalk(G,vi,t)
6.      W o r d 2 v e c ( Ф , W v i , w ) Word2vec(Ф, W_{v_i}, w) Word2vec(Ф,Wvi,w)
7.    end for
8. end for

参考文献

[1] Perozzi B, Al-Rfou R, Skiena S. DeepWalk: Online Learning of Social Representations[C]. Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining - KDD '14, 2014: 701-710.

  • 31
    点赞
  • 134
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值