目录

  • 前言
  • Abstract
  • 1.Introduction
  • 2.Problem Definition
  • 3.Learning Social Representations
    • 3.1 Random Walks
    • 3.2 Connection: Power laws
    • 3.3 Language Modeling
  • 4.Method
    • 4.1 Overview
    • 4.2 Algorithm:DeepWalk
      • 4.2.1 Skip-Gram
      • 4.2.2 Hierarchical Softmax
      • 4.2.3 Optimization
    • 4.3 Parallelizability
  • 5.Experimental Design
  • 6.Experiments
  • 7.Related Work
  • 8.Conclusions

前言


题目: DeepWalk:Online Learning of Social Representations
会议: KDD 2014
论文地址:DeepWalk: Online Learning of Social Representations

总的来说这篇论文算是Network Embedding的开山之作,DeepWalk把神经语言模型Skip-Gram运用在了社区网络中,从而使得深度学习的方法不仅能表示节点还能表示出节点之间的拓扑关系。关于DeepWalk的内容在KDD2016 | node2vec:Scalable Feature Learning for Networks
中有提到过,本文是对DeepWalk更为细致的阐述。

关于node2vec和DeepWalk的详细代码实现过程,会考虑在后面几期内容中给出。

Abstract

本文提出了一种新的学习网络中顶点的潜在表示的方法:DeepWalk。

DeepWalk使用从截断的随机游走中获得的局部信息,通过将游走当作句子的等价形式来学习顶点的潜在表示。

DeepWalk是可扩展的(能够在较短时间内处理大规模网络),它是一种在线学习算法,可以建立有用的增量结果,并且可以简单地并行化。这些特性使得DeepWalk在现实世界中应用广泛,如网络分类和异常检测

1.Introduction

网络表示的稀疏性既是优点也是缺点:稀疏性使设计高效的离散算法成为可能,但也使其在统计学习中难以推广。网络中的机器学习应用(如网络分类、内容推荐、异常检测和缺失链接预测)必须能够处理这种稀疏性,才能发挥较好的作用。

DeepWalk以一个图作为输入,输出的是每个节点的向量表示。

本文的贡献总结如下:

  1. 将深度学习引入到网络图的学习中。
  2. 实验结果表明:在网络的标签较为稀疏的情况下,DeepWalk也能取得不错的性能。
  3. 通过使用并行实现构建web规模的图表示(如YouTube)来证明了算法的可扩展性。

2.Problem Definition


带节点集和边集的图G=(V,E)G=(V,E)G=(V,E)GL=(V,E,X,Y)G_L=(V,E,X,Y)GL=(V,E,X,Y)是一个带有部分标签的网络,其中XXX描述了每一个节点的特征,每个特征大小为SSSYYY是标签集合。

本文的目标是学习到所有节点的ddd维特征表示XE∈R∣V∣×dX_E\in R^{|V|\times d}XERV×d

3.Learning Social Representations


学习到的特征表示具有如下性质:

  1. 自适应性:网络的演化通常是局部的点和边的变化,这样的变化只会对部分随机游走路径产生影响,因此在网络的演化过程中不需要每一次都重新计算整个网络的随机游走。
  2. 社区意识:节点的向量表示间的距离应该可以量化两个节点的相似性。
  3. 低维度:当标记数据稀缺时,低维模型具有更好的泛化能力,并且能够加快收敛和推理速度。
  4. 连续性:节点的表示向量可以用来模拟连续空间中的部分社区节点。

本文的方法通过使用最初为语言建模而设计的优化技术(Skip-Gram),从短随机游走中学习顶点的表示。 因此接下来会简要回顾随机游走和语言建模的基础知识。

3.1 Random Walks

WviW_{v_i}Wvi表示节点viv_ivi的一个长度为kkk的随机游走序列:(Wvi1,Wvi2,...,Wvik)(W_{v_i}^1,W_{v_i}^2,...,W_{v_i}^k)(Wvi1,Wvi2,...,Wvik),在内容推荐和社区检测中,这些序列可以被用作各种问题的相似度度量。

使用Random Walks有什么好处?首先,局部探索很容易并行化:多个随机游走程序(在不同的线程、进程或机器中)可以同时探索同一图的不同部分。其次,依靠从短随机游走中获得的信息,可以适应图结构的小变化,而不需要全局重计算。

3.2 Connection: Power laws

那么怎么获得这些随机游走序列呢?一个重要的原则是:如果连通图的度分布遵循幂律分布(无标度网络),则在短随机游走中顶点出现的频率也遵循幂律分布(密度函数是幂函数)。值得注意的是,自然语言中的词频遵循类似的分布。

百度了一下无标度网络: 对于许多现实世界中的复杂网络,如互联网、社会网络等,各节点拥有的连接数(Degree)服从幂律分布。也就是说,大多数“普通”节点拥有很少的连接,而少数“热门”节点拥有极其多的连接。 这样的网络称作无标度网络(Scale-free Network),网络中的“热门”节点称作枢纽节点(Hub)。

图2展示了两种不同的幂律分布:Random Walks中顶点出现的频率分布以及自然语言中的词频分布,从中可以看出二者的相似性

本文的一个核心贡献就是:Zipf定律可以用于建模网络中的社区结构。 Zipf定律(齐普夫定律):如果把单词出现的频率按由大到小的顺序排列,则每个单词出现的频率与它的名次的常数次幂存在简单的反比关系。它表明在英语单词中,只有极少数的词被经常使用,而绝大多数词很少被使用。这与无标度网络类似。

3.3 Language Modeling

Language Modeling的目标是:估计一个特定单词序列在语料库中出现的可能性。

给定一个单词序列W1n=(w0,w1,...,wn)W_1^n=(w_0,w_1,...,w_n)W1n=(w0,w1,...,wn),其中wi∈Vw_i\in VwiVVVV是词库,建模的目标就是在所有训练语料库中使Pr(wn∣w0,w1,...,wn−1)Pr(w_n|w_0,w_1,...,w_{n-1})Pr(wnw0,w1,...,wn1)最大化。

将上述概念扩展到网络中(单词对应节点):在给定之前的随机游走中访问过的所有顶点的情况下,估计观测到顶点viv_ivi的可能性,即Pr(vi∣v1,v2,...,vi−1)Pr(v_i|v_1,v_2,...,v_{i-1})Pr(viv1,v2,...,vi1)

前面已经说过,本文的目标是要学习到每个顶点的特征向量表示,而不仅仅只是节点共现的概率分布。但是节点本身是没法计算的,因此需要引入一个映射函数Φ:v∈V↦R∣V∣×d\Phi:v \in V \mapsto R^{|V| \times d}Φ:vVRV×d,即将节点映射到其特征表示。因此,我们需要估计以下概率:
Pr(vi∣(Φ(v1),Φ(v2),...,Φ(vi−1)))Pr(v_i|(\Phi(v_1),\Phi(v_2),...,\Phi(v_{i-1})))Pr(vi(Φ(v1),Φ(v2),...,Φ(vi1)))
将顶点转换成向量后就能够进行计算了,具体怎么计算需要用到前面讲的Skip-Gram模型!

在论文阅读:Efficient Estimation of Word Representations in Vector Space
中提出了两种模型:CBOW和Skip-Gram。其中Skip-Gram是使用一个单词来预测上下文(上下文是由出现在给定单词左右的单词组成的)。观察上面概率表达式我们发现右边那部分(Φ(v1),Φ(v2),...,Φ(vi−1))(\Phi(v_1),\Phi(v_2),...,\Phi(v_{i-1}))(Φ(v1),Φ(v2),...,Φ(vi1))比较难算,但是如果只是计算一个单词就变得很容易,这与Skip-Gram的思想一致!

同时Skip-Gram消除了对问题的排序约束,即只要在窗口内的单词就都算进来而不用考虑其具体位置,即要求模型最大化任何单词出现在上下文中的概率,而无需知道它与给定单词的偏移量。 类比到网络中将产生以下优化问题:

其中概率部分的意思为:在一个随机游走过程中,给定viv_ivi时,出现它的www窗口范围内顶点的概率。 简单来说就是在一个游走过程中,出现了viv_ivi,那么在该序列中也出现它的www窗口范围内这些顶点的概率,这些顶点间没有顺序。

4.Method

本节讨论算法的主要组成部分,由于水平有限,可能解读有误,敬请谅解!

4.1 Overview

在任何语言建模算法中,都只是需要输入语料库和词汇表。而在DeepWalk中,我们将一组随机游走序列作为语料库,图的顶点作为词汇表。

4.2 Algorithm:DeepWalk

DeepWalk由两部分组成:随机游走序列生成器+更新程序。

算法输入:图GGG,窗口长度www,嵌入维度ddd,每一个节点γ\gammaγ个游走序列,每个游走序列长度为ttt。算法输出:每一个节点的向量表示(维度为ddd)。

前面我们讲在计算概率的时候需要引入一个矩阵Φ\PhiΦ来将所有节点映射为向量,矩阵Φ\PhiΦ中包含∣V∣×d|V|\times dV×d个参数,这些参数是需要学习的。学习到了矩阵Φ\PhiΦ之后,实际上我们也就学习到了所有节点的特征向量表示,也就达到了目的。

类比于神经网络的训练,第1步是对Φ\PhiΦ进行初始化。

第2步是搭建一个分类树TTT,实际上就是搭建Hierarchical Softmax,关于Hierarchical Softmax在Skip-Gram一文中也提到过。所谓层次Softmax,就是将词汇表表示为Huffman树,Huffman树将短的二进制代码分配给频繁的单词,这进一步减少了需要评估的输出单元的数量。 输出减少,复杂度就能从VVV下降到log2(V)log_2(V)log2(V)

层次Softmax在后面会进行详细阐述。

第3步开始,循环γ\gammaγ次,每一次为所有节点生成一个随机游走序列,每生成一个序列就利用Skip-Gram算法来更新参数。

4.2.1 Skip-Gram

具体更新过程如下:

SkipGram算法的输入:当前的Φ\PhiΦ,节点viv_ivi的一个游走序列WviW_{v_i}Wvi以及窗口参数www

对游走序列中的每一个节点vjv_jvj,取其左右各www个节点,对其中每一个节点μk\mu_kμk,计算对数概率:
−logPr(μk∣Φ(vj))-log Pr(\mu_k|\Phi(v_j))logPr(μkΦ(vj))
概率意为:已知vjv_jvj的情况下出现μk\mu_kμk的概率,每算出一个概率就更新矩阵Φ\PhiΦ

我们可以发现更新的原则就是:对随机游走中的每一个节点,我们都最大化(最小化负的对数概率)以下概率:

举一个具体的例子:

对于顶点v4v_4v4,它的一个游走序列为[4,3,1,5,1...][4,3,1,5,1...][4,3,1,5,1...],对于序列中每一个vjv_jvj,我们需要利用Φ\PhiΦ矩阵来将其映射为一个ddd维向量Φ(vj)\Phi(v_j)Φ(vj)。然后利用Φ(vj)\Phi(v_j)Φ(vj)来计算并最大化条件概率:Pr(μk∣Φ(vj))Pr(\mu_k|\Phi(v_j))Pr(μkΦ(vj)),其中μk\mu_kμkWv4W_{v_4}Wv4vjv_jvj前后www个节点中的某一个节点。

4.2.2 Hierarchical Softmax

对于给定的μk\mu_kμk计算−logPr(μk∣Φ(vj))-log Pr(\mu_k|\Phi(v_j))logPr(μkΦ(vj))的代价比较大,因此将使用分层Softmax来分解条件概率。具体做法:将顶点作为哈夫曼树的叶子,然后最大化特定路径出现的概率:

如果到达顶点μk\mu_kμk的路径为(b0,b1,...,b⌈log∣V∣⌉)(b_0,b_1,...,b_{\lceil log|V| \rceil})(b0,b1,...,blogV),则Pr(μk∣Φ(vj))Pr(\mu_k|\Phi(v_j))Pr(μkΦ(vj))可以转换为:

Pr(bl∣Φ(vj))Pr(b_l|\Phi(v_j))Pr(blΦ(vj))可以通过分配给节点blb_lbl的父节点的二进制分类器来计算:

其中Ψ(bl)∈Rd\Psi(b_l)\in R^dΨ(bl)Rd是节点blb_lbl父结点的向量表示。

经过上述复杂地转化后,计算Pr(μk∣Φ(vj))Pr(\mu_k|\Phi(v_j))Pr(μkΦ(vj))的复杂度将从O(∣V∣)O(|V|)O(V)下降到O(log∣V∣)O(log|V|)O(logV)

举一个具体的例子:

我们需要计算Pr(v3∣Φ(v1))Pr(v_3|\Phi(v_1))Pr(v3Φ(v1)):到达顶点v3v_3v3的路径已知,Φ(v1)\Phi(v_1)Φ(v1)已知,该路径上每一个父节点的向量表示也已知,那么我们就能根据:



来计算Pr(v3∣Φ(v1))Pr(v_3|\Phi(v_1))Pr(v3Φ(v1))

算出概率后,随后我们更新Φ\PhiΦΦ=Φ−α∂J∂Φ\Phi=\Phi-\alpha\frac{\partial J}{\partial \Phi}Φ=ΦαΦJ来最大限度地提高v1v_1v1v3v_3v3同时出现的概率,这样我们算出的每一个节点的特征向量表示将与其游走序列有着很好地对应。

4.2.3 Optimization

总结一下:DeepWalk中需要优化的参数为:θ=(Φ,Ψ)\theta=(\Phi,\Psi)θ=(Φ,Ψ),这两个参数在算法的第1步和第2步分别初始化。参数的优化采用SGD,学习率α\alphaα初始时设置为2.5%,学习率会随着到目前为止看到的顶点数的增加而线性减少。

4.3 Parallelizability

前面3.2节有提到:社交网络的随机游走中顶点的频率分布和语言中的单词的频率分布都遵循幂律。 因此参数的更新将是稀疏的。鉴于此,将使用异步SGD(ASGD)来对参数进行更新,尽管本文是在一台机器上使用多线程运行实验,但它已经证明了这种技术是高度可扩展的,并且可以用于非常大规模的机器学习。图4展示了并行DeepWalk的效果:

随着核的增加,并行DeepWalk处理两个网络的速度线性减少,并且相较于连续运行的DeepWalk,并行DeepWalk的预测表现也没有下降。

5.Experimental Design

6.Experiments

第5部分和第6部分的实验细节不再叙述,关于这类算法的实验设计可以参考node2vec中实验的相关细节:KDD2016 | node2vec:Scalable Feature Learning for Networks

7.Related Work

本文方法与前人方法的主要区别可以总结如下:

  1. 本文关注的是节点的嵌入表示,而不是计算一些统计数据。
  2. 不试图扩展分类过程本身。
  3. 提出了一种仅使用本地信息的可扩展的在线方法,大多数其它方法需要全局信息并且是离线的。
  4. 将无监督表示学习应用于图。

8.Conclusions

本文提出了一种学习顶点潜在社会表征的新方法:DeepWalk。在极具挑战性的多标签分类任务中,DeepWalk表现出了良好的性能。

作为一种在线算法,DeepWalk是可扩展的:在大规模的图上,DeepWalk的性能明显优于其它几种方法。

DeepWalk还是可并行化的,允许同时更新模型的不同部分。

此外,DeepWalk也是对语言建模的一次总结与概括:语言建模实际上是从不可观察的语言图中采样,语言建模的进步可能会给网络的表示工作带来进步。反之,从可观察图建模中获得的知识反过来也可能会改进对不可观察图的建模。

KDD 2014 | DeepWalk: 社会表征的在线学习相关推荐

  1. 【GNN】图嵌入之 DeepWalk:基于社交表征的在线学习算法

    论文名称:DeepWalk: Online Learning of Social Representations 论文下载:https://arxiv.org/abs/1403.6652 论文年份:S ...

  2. 【论文笔记】DeepWalk:大型社会表示的在线学习

    DeepWalk: Online Learning of Social Representations Arxiv 1403.6652 二.问题定义 我们将社交网络的成员分类问题考虑为一个或多个类别. ...

  3. 在线学习在爱奇艺信息流推荐业务中的探索与实践

    概述 爱奇艺的信息流推荐业务每天会产生数十亿规模的 feed 浏览,如此大规模的数据给模型训练带来了很大的挑战.同时,信息流这类用户与推荐系统的强交互场景也引入了很多有趣的研究课题.对于信息流推荐产品 ...

  4. 南京大学赵鹏:动态环境在线学习的算法与理论研究

    不到现场,照样看最干货的学术报告! 嗨,大家好.这里是学术报告专栏,读芯术小编不定期挑选并亲自跑会,为大家奉献科技领域最优秀的学术报告,为同学们记录报告干货,并想方设法搞到一手的PPT和现场视频--足 ...

  5. 效果广告点击率预估实践:在线学习

    效果广告点击率预估实践:在线学习 原创 2016-03-24 腾讯大数据 腾讯大数据 1.引言 技术钻研如逆水行舟,不进则退.公司的广告业务发展非常迅猛,有目共睹,激烈的外部竞争和客户越来越高的期望, ...

  6. 国外在线学习网站+慕课平台

    转自知乎:[学习而已]走心整理的26个国外在线学习网站+慕课平台 - 知乎 edX edx.org 「优势」:名校资源,质量优,性价比高 「适合群体」:想学习高质量,高性价比名校课程的人 edX是名校 ...

  7. 各大公司广泛使用的在线学习算法FTRL详解

    现在做在线学习和CTR常常会用到逻辑回归( Logistic Regression),而传统的批量(batch)算法无法有效地处理超大规模的数据集和在线数据流,google先后三年时间(2010年-2 ...

  8. verilog 简单module_HDLBits:在线学习 Verilog (二十九 · Problem 140-144)

    本系列文章将和读者一起巡礼数字逻辑在线学习网站 HDLBits 的教程与习题,并附上解答和一些作者个人的理解,相信无论是想 7 分钟精通 Verilog,还是对 Verilog 和数电知识查漏补缺的同 ...

  9. Springboot中国古代史在线学习网站 毕业设计-附源码260839

    Springboot中国古代史在线学习网站 摘要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为 ...

最新文章

  1. conda不是内部文件或外部命令_Fastqc文件数据质量质检
  2. Android 系统(218)---Android的事件分发机制以及滑动冲突的解决
  3. php mysql自动反转义_ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法...
  4. 数据库msqlserver的几种类型及解决MSSQLServer服务启动不了的问题
  5. 性能计数器驱动_Linux CPU性能优化方法
  6. 开发打开设置洁面_用了两到三年的华为手机,一键打开开发者选项,帮助性能加速...
  7. 这几个问题解决了,怎么设计大型网站架构不再是困难
  8. ssh-keygen的使用方法及配置authorized_keys两台linux机器相互认证
  9. 纯CSS3代码制作六边形图形教程
  10. Ant Deign Pro - ProTable - 高级表格 通用打印组件
  11. ssh登录极路由后台_OpenWrt刷机详细流程(极路由)
  12. 《测试用例评审》会议纪要模板
  13. 关于反走样技术的基本介绍与分享
  14. 【搬运】射手播放器下载字幕存储位置及修改方法
  15. 网络空间安全是指什么/网络空间安全是怎么产生的
  16. 2008服务器系统配置dns,2008系统如何配置dns服务器
  17. 少儿知识付费做好内容是关键
  18. R语言data.frame label的设置
  19. uniapp开发——微信小程序获取上传图片的拍摄时间(附源码)
  20. 【Codeforces 785D】范德蒙恒等式

热门文章

  1. 计算机评游戏图形低,高手分享:快速辨别图形分数与游戏图形之差
  2. Qt TCP服务端和客户端连接
  3. Myeclipse2018注册工具无法生成注册码解决方案
  4. php制作学生卡片,抖音私信名片卡片消息链接图文xml生成制作方法php代码插件软件解析...
  5. 基础入门原画,需要学习什么
  6. 以阿克曼转向车为例对URDF和XACRO文件进行解读
  7. 求下图穿越火线游戏交易所辅助大神
  8. 从事医院计算机网络管理工作,浅谈医院计算机网络安全管理工作.doc
  9. QQ 登录/分享接入流程
  10. 毕设demo丨您有一份会议系统App项目请查收!