当前位置: 首页 > news >正文

论文笔记|DeepWalk

简介

DeepWalk是由Bryan PerozziRami Al-RfouSteven Skiena在2014年提出的,它是一种基于图的无监督特征学习方法,它有趣的点是将文本处理任务中词向量的处理思想迁移到了图特征学习上,就像处理句子得到word embedding一样,通过处理由网络中节点组成的序列从而得到Node embedding,算是图特征学习的开山之作。

 示例的输入是一个网络,输出是图中每个节点的二维向量,DeepWalk通过截断随即游走学习出一个网络的社会表示,从两张图的对比也可以发现,越是在网络中拓扑结构相近的点,其对应的二维向量在二维空间上的距离越近。

文章中提出,在学习一个网络的特征表示时,需要注意几个问题:

  • 适应性(Adaptabilty):网络表示必须适应网络的变化,因为网络是一个动态变化的网络,不断的有新的节点加入时,网络的拓扑结构也跟随着变化。
  • 社区意识(Community aware):节点在潜在维度上的距离,应该能够表示社会成员之间的相似性度,所以必须使得学习到的向量必须相似。
  • 低维(Low dimensional):每个节点的向量维度不能过高(要远远小于节点规模N),泛化能力要好,速度要快。
  • 连续(Continuous):低维向量应该是连续的,通过低维连续向量表示空间中的顶点。

那如何得到图中节点的向量表示?

方法

总结一下就是随机游走+语言模型

  • 针对网络中的每个节点进行随机游走遍历,在游走的过程中会得到一系列的有序节点序列,然后将这个有序节点序列类比为文本处理时的句子,而序列中的节点相当于句子中的单词。
  • 借助文本处理word embedding思想,对其进行训练,得到对应的向量。

随机游走

所谓随机游走(random walk),就是在网络上不断重复的随机选择游走路径,最终形成一条贯穿网络的路径,有点类似与图搜索中的深度优先遍历,但此处是随机的深度优先遍历。随机遍历有以下几点好处:

  • 局部:能够捕捉到图的局部特征;
  • 并行化:随机游走是局部的,对于一个大的网络来说,可以同时在不同的顶点进行一定路径长度的游走,并行游走时可以相应的减少采样时间;
  • 适应性:可以适应网络的局部变化,就像上文提出的一样,网络是一个动态变化的网络,所以需要解决适应性的问题,当网络中局部的节点和边发生变化时,这样只对部分随机游走的路径产生影响,这样不用每次网络结构发生变化时计算整个网络的随机游走;

幂律分布--为什么图可以用语言模型生成向量表示

 

文章中提到网络中随机游走的分布规律与NLP中句子序列在语料库中出现的规律有着类似的幂律分布特征,既然网络的特征与自然语言的词特征有着十分的类似,那为什么不能借助处理自然语言处理中词向量的方法,计算网络顶点的向量表示呢?

语言模型

语言模型这里不做过多的介绍,相信接触过自然语言处理的同学肯定对词向量(word embedding)不会太陌生。

算法过程

算法一共分为两个部分:

1、随机游走生成器:首先随机选择一个顶点,然后执行随机游走方法,每次游走均匀的采样一个邻居节点,直到最后一个节点达到最大长度。重复N次,重复N次,可以得到N个随机游走序列。

上述算法的3-9行是该算法的核心。外围循环的循环次数 γ ,每次都会重新在某个节点(作为根节点)开始随机游走。每次迭代都会在数据中形成一个PASS,在PASS中每个节点采样一个随机游走。在每个PASS的开始,产生随机序列遍历节点。虽然不是严格的要求,但是能加快随机梯度下降的收敛速度。 在内循环中,在每个节点上进行迭代。对于每个节点 vi ,我们产生一个随机游走 |Wvi|=t ,然后用它来更新表示(Line7)。

2、更新顶点向量:将随机游走序列变成一个窗口长度为w的Skip-Gram编码序列,然后利用梯度下降进行更新权重。

 对算法部分不做过多的介绍,大家可以参考原论文进行理解,且原论文也基于现有算法提出了优化策略,总的来说这篇论文为后续的学习网络特征提供了很好的思路。但是此篇论文也存在一些缺点,比如随机漫步可以当做是随机的深度优先遍历,深度往往增加了复杂度,而且没有考虑广度带来的周围邻居结构的影响,;另一个是文中没有提出一个明确的优化目标函数,但这些并不妨碍其是一篇优秀的论文。

 

相关文章:

  • STM32的光敏检测自动智能窗帘控制系统proteus设计
  • week14|week15 查阅文章总结
  • 编写一个方法,去掉一个数组的重复元素。
  • HTML做一个简单的页面(纯html代码)地球专题学习网站
  • Neuroscout:可推广和重复利用的fMRI研究统一平台
  • Arduino开发实例-DIY超声波传感器避障机器人
  • QuTrunk与MindSpore量子神经网络初探
  • Docker配置主从复制
  • 助农销售平台毕业设计,农产品销售管理系统设计与实现,毕业设计怎么写论文源码开题报告需求分析怎么做
  • FOR ALL ENTRIES 优化
  • 20 函数的极值和最大(小)值
  • A-Level经济例题解析及练习Opportunity Cost
  • 哪款TWS耳机音质比较好?音质最好的TWS耳机推荐
  • 《视觉SLAM十四讲》示例程序编译报错处理(上)
  • 【JavaScript】字符串方法汇总(方法最新至ES7~)
  • Git---定位代码某一次提交的问题,逐次验证(git bisect)
  • 【檀越剑指大厂—Spring】Spring高阶篇
  • 如何系统全面的成为一个网络工程师?看完这个你就懂了
  • Jenkins执行shell脚本报错:bash: kubectl: command not found
  • 数据链路层-点对点PPP(point-to-point protocal)
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉