deepwalk python,Deepwalk
1.算法2的思想。随机漫步3。如何用随机漫步中获得的信息来表示学习?4.适用场景5。不足和改进
1.算法思想
源于word2vec,word2vec通过语料库中的句子序列来描述词与词之间的共现关系,进而学习词的向量表示。Deepwalk使用图中节点之间的共现关系来学习节点的向量表示。这种引用的前提是图形中的点和句子中的词的分布都是幂律分布。
2.随机游动
第二步建立分层Softmax,第三步对每个节点做次随机游走,第四步扰动网络中的节点,可以加快随机梯度的下降。第五步是以每个节点为根节点生成长度为t的随机游走,第七步是根据生成的随机游走,通过使用skip-gram模型的梯度法来更新参数。
这里得到的随机游走相当于自然语言中的一句话,包含了图中点的分布信息。
3.如何利用随机漫步中获得的信息指出学习?1skipgram:
对于每次随机游走,为每个点选取附近的点(i-w,i-w)形成(vi,uk)作为skipgram的输入,根据(vi,uk)的频率调整点来指示嵌入。目标函数:给定vi的表示嵌入,最大化其他邻居出现在walk中的概率
部分概率是指,在随机游走中,给定一个顶点vi时,其W窗口内的一个顶点出现的概率。
考虑左窗口和右窗口,不考虑顺序。
2softmax
为什么使用softmax?
-为了计算方便。基本思想:根据词典中每个词的词频构建霍夫曼树,保证词频较高的词处于相对较浅的层次,词频较低的词处于霍夫曼树较深的叶节点,每个词处于霍夫曼树的某个叶节点。
计算方法:
二叉树的每个节点存储一个向量,需要学习。最后一个叶节点上没有向量。很明显,整棵树有V个向量。规定第k层节点分类时,节点的左子树为正范畴,节点的右子树为负范畴,节点的向量用v(k)表示。
然后正类和负类的分数如公式(2)和(3)所示。预测时,需要根据蓝色箭头的方向进行分类。0级分类结果为负,1级分类结果为正,2级分类结果为正。最后,它到达叶节点v(5)。最后,将所有节点的分类分数相乘。
4.适用场景一.图形表示学习,捕捉节点的局部结构信息。
二。适用于加权图和同构网络
三。即使在图形稀疏的情况下,也可以获得更好的性能。
四。对于大型图形可以获得良好的性能,并且可以进行并行计算。
5.缺点和改进不能处理图中的边信息(权重和不同关系)。
随机游走就是节点选择的概率不完美,没有广度优先搜索和深度优先搜索的区分。node2vec模型对此进行了改进。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。