源于word2vec ,word2vec通过语料库中的句子序列来描述词与词之间的共现关系。进而学习到词语的向量表示,deepwalk则使用图中的节点与节点的共像现关系来学习节点的向量表示。这种借鉴的前提是点在图中的分布和词在句子中的分布都是幂律分布。
通过构建
h
i
e
r
a
r
c
h
i
c
a
l
s
o
f
t
m
a
x
hierarchical softmax
hierarchicalsoftmax,第三步对每个结点做
y
y
y次随机游走。第四步打乱网络中的节点,可以加快随机梯度下降的速,
第五步:以每个节点为根节点生成长度为
t
t
t的随机游走。
第七步:根据生成的随机游走使用Skip-gran模型利用梯度的方法对参数进行更新。
这里得到的随机游走就相当于自然语言处理的语句,包含了点在图中的分布信息。
概率的部分意思是:在一个随机游走中,当给定一个顶点
v
i
v_i
vi时,
出现其的
w
w
w窗口范围内顶点的概率。
同时考虑左边窗口和右边窗口,不考虑顺序。
为什么要使用Softmax?
P
r
(
u
k
∣
ϕ
(
v
j
)
)
Pr(u_k|\phi(v_j))
Pr(uk∣ϕ(vj))
为了方便计算
基本思想:将词典中的每个词按照词频大小构建出一颗Huffman树,保证词频较大的词处于相对比较钱的层。词频较低的词相应处于Huffma树深层的叶子节点。每一词都处于这颗Huffman树上的某个叶子节点。
计算方法: