Deepwalk笔记

DeepWalk: Online Learning of Social Representations

Github整理代码链接,欢迎讨论和交流,觉得有用的可以Star一下。

1.主要思想

        Deepwalk是一种将随机游走(Random walk)和Word2Vec两种算法相结合的图表示算法。网络的输入是一张图或者一个网络,输出为网络中顶点的低维向量表示(Embedding)。图1(b)为了可视化将向量映射到二维平面上,相同颜色的顶点具有更近的距离。

图1 图表示示意图

        引入Word2Vec的原因,随机游走的路径集合中的顶点频率和NLP中语料库的词频分布比较相似。

图2 顶点频率和词频对比

2.总体流程

        ①输入一张图,随机给定当前访问起始点,从邻居中随机采样顶点作为下一个顶点,重复此过程,直到访问序列长度和序列个数满足预设条件

        ②获得顶点访问序列后,采用Word2vec中的Skip-Gram模型进行向量学习,将离散的网络节点向量化,最大化节点共现,就能得到每个节点的Embedding,在计算上使用Hierarchical Softmax进行优化,降低计算复杂度

2.1 Random walk

图3 包含个节点的图

        如图3红色线段所示,以V1顶点为起始点,每次从邻居顶点中随机选择一个顶点作为下一步顶点,游走8步到达V9顶点,即可得到一条顶点数为9的随机游走路径。n个顶点不断重复随机游走k条路径构成一个k*n大小的路径集合。

2.2 Skip-Gram

2.2.1 介绍

        NLP中Word2Vec中Skip-Gram目的是将一个高维的onehot向量映射到一个低维连续的向量。将该方式引入图嵌入上,将路径集合中的不重复的顶点构成大小为V的字典,方便以onehot方式表达每个顶点,将随机游走得到的一条路径看作一个序列,例如V1->V2->V3-V4->V5->V6->V7->V8->V9序列长度为9。

        Skip-Gram主要思想是利用中心词预测其上下文单词,最大化上下文共现,设置窗口 w w w(句子中当前词与预测词之间的最大距离)大小为4,用中心顶点V5预测其前面4个顶点和后面4个顶点(称之为上下文),公式中 x i x_i xi为顶点的向量表达,最大化优化目标P(x1,x2,x3,x4,x6,x7,x8,x9|x5)。

图4 Skip-Gram模型
2.2.2 举例

        以图3为例,图中总共包含10个不重复顶点,构成大小为10的字典。V1->V2->V3-V4->V5->V6->V7->V8->V9序列输入Skip-Gram模型,输入V5在字典中onehot表达向量x5,预测V1,V2,V3,V4,V6,V7,V8,V9的表达向量x1,x2,x3,x4,x6,x7,x8,x9,如图5所示(图中D为需要映射的维度)

  1. 输入:V5在字典中onehot表达向量x5=[0,0,0,0,1,0,0,0,0,0],维度1x10

  2. 映射:x5经过10xD的映射得到1xD的向量(V5的Embedding表达),再经过8个Dx10的映射得到8个1x10维度的向量,8个维度1x10的向量是预测得到的上下文的表达向量

  3. 输出:8个1x10维度的向量分别经过softmax归一化得到1X10维度的概率值,如第一个向量对应着x1,应该索引0的概率值最大;第二个向量对应着x2,应该索引1的概率值最大,依次类推。如果该向量表示顶点不是我们需要预测的,则会反向传播更新映射矩阵,经过训练模型得到一个最优解,此时输入onehot向量经过10xD的映射得到1xD的向量即该输入顶点的Embedding表达。

图5 Skip-Gram演示

2.3 数学公式推导

2.3.1 优化目标

        最大化优化目标:
P ( V 1 , V 2 , V 3 , V 4 , V 6 , V 7 , V 8 , V 9 ∣ V 5 ) = P ( V 1 ∣ V 5 ) ⋅ P ( V 2 ∣ V 5 ) ⋅ P ( V 3 ∣ V 5 ) ⋅ P ( V 4 ∣ V 5 ) ⋅ P ( V 6 ∣ V 5 ) ⋅ P ( V 7 ∣ V 5 ) ⋅ P ( V 8 ∣ V 5 ) ⋅ P ( V 9 ∣ V 5 ) P(V_1,V_2,V_3,V_4,V_6,V_7,V_8,V_9|V_5)=P(V_1|V_5)·P(V_2|V_5)·P(V_3|V_5)·P(V_4|V_5)·P(V_6|V_5)·P(V_7|V_5)·P(V_8|V_5)·P(V_9|V_5) P(V1,V2,V3,V4,V6,V7,V8,V9V5)=P(V1V5)P(V2V5)P(V3V5)P(V4V5)P(V6V5)P(V7V5)P(V8V5

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值