网络表达学习系列(一):深度游走(Deepwalk)

DeepWalk 论文笔记 DeepWalk 论文笔记针对论文[1]的阅读撰写阅读笔记。这篇论文主要提出了在一个网络中,学习节点隐表达的方法——DeepWalk,这个方法在一个连续向量空间中对节点的社会关系进行编码,是语言模型和无监督学习从单词序列到图上的一个扩展。该方法将截断游走的序列当成句子进行学习。该方法具有可扩展,可并行化的特点,可以用来做网络分类和异常点检测。 阅读详情

DeepWalk: Online Learning of Social Representations,KDD' 14

阅读更多,欢迎关注公众号:论文收割机(paper_reader)
原文链接:网络表达学习系列(一):深度游走(Deepwalk)

这次我们准备的主题是关于最近很火的主题:网络表达学习(Network Representation Learning),或者称之为网络嵌入(Network Embedding)。我们会把近年来经典的网络表达学习算法,包括Deepwalk,LINE,Node2vec等逐一解释,做成一个系列分享给大家。

什么是网络表达学习?

       网络表达学习吗,顾名思义,是指学习出一个网络的低维度隐含表达。网络表达学习的目标是将一个复杂网络中的结点和边的信息都通过向量来表达,我们通过算法可以学习出这些向量,因此这些向量中包含着网络的结构信息。学习得到的向量可以作为图的特征用在基于图的各种任务上,比如连接预测,节点分类,社区发现以及可视化等问题上。

        网络表达学习本质上是将网络进行降维从而更好得利用其它模型来处理网络数据。对于一个网络G=(V,E)来说,网络表达的结果是将这个网络变成维度为|V|xd的一个二维矩阵,|V|是指网络节点个数,d是每个节点表达的维度。网络表达学习相当于一个映射函数,将每个节点映射到一个向量中去。原本网络中单个节点包含的特征是复杂且难以把控的,节点的特征包括周边邻接点的信息(结构信息),节点的属性以及边的属性等等,如果我们要同时直接使用节点的所有特征是非常困难的,每个特征都有自己的含义,所以我们希望把这些特征都封装到一起成为一个向量,这样既方便读取也方便模型运算。

 

深度游走(DeepWalk)算法

 

       深度游走算法是近年来第一个有影响力的大规模网络表达学习算法,它的本质是将随机游走(Random Walk)和自然语言处理中的skip-gram算法作组合所产生的算法。我们首先来介绍一下随机游走和skip-gram,然后再来看deepwalk是如何工作的。

随机游走(Random Walk)

       随机游走是一个非常基础的基于网络的算法。它的本质就是从一个节点出发,随机选择它的一个邻接点,再从这个邻接点出发到下一个节点,重复这个步骤然后记录下所经过的所有节点。这个算法的变种在Google搜索和金融领域应用广泛。通过随机游走我们可以得到从每个节点出发的一条路径,这条路径就代表了这个节点的结构信息。

Skip-gram算法

        Skip-gram算法是自然语言处理中常用的一种方法,它是用一个词来预测这个词前后可能会出现哪些词。举个例子,对于I can do all things这句话,我们希望学出do这个词的表达,因此我们要定一个窗口,如图1所示,1就是我们要学的词,而uk就是窗口,代表我们要用哪些词来训练1的表达。若窗口大小定为3,则对于do这个词而言,训练数据为(do, can),(do, all), 若窗口大小定为5,则对于do这个词而言,训练数据为(do, can),(do, I),(do all),(do things)。

图1. skip-gram窗口

       我们是通过神经网络来学出词的表达。网络的结构如图2。输入是每个词的one-hot向量,即,如果字典里一共有10000个词,那输入就是一个10000维的向量,只在这个词所处的位置上置1其余全部置0。输出也是训练集中对应词的one-hot向量,此时输入层和输出层之间隐含层的值就是我们学习出的词的表达。对于skip-gram模型,我们采用随机梯度下降进行参数学习。我们希望将这种方法用在学习网络节点表达上,接下来将描述如何将随机游走和skip-gram结合起来。

 

图2. skip-gram模型

 

深度游走算法

      深度游走的核心思想总结成一句话就是,短的随机游走路径=句子(short random walk = sentence,quoted from Bryan Perozzi),因此我们只需要设定一个随机游走的步数r,通过随机游走我们就可以得到一个长度为r的路径(节点集),此时我们将其中每一个节点都看成单词,每个节点也都有对应的one-hot编码,这样就可以直接用skip-gram模型学出节点的表达。

       由于网络的节点数目可能达到百万甚至千万级,节点的one-hot编码会过于稀疏,不同于传统的skip-gram模型直接用softmax函数得到输出,deepwalk采用的是层级softmax方法,如图3所示,每个节点对应一个完全二叉树的叶子节点,根节点输入的是我们目标节点的表达,此时就变成一个二分类问题,我们只需要判断二叉树的左右子树就可以学出节点的表达。

图3. 层级softmax模型

 

总结

      Deepwalk是一个非常简单但很有创意的方法,它将基于图的经典方法随机游走和自然语言处理中的skip-gram模型结合,得到了一个简单好用的网络表达学习方法。这也是第一篇将深度学习应用在大规模网络上,因此这个方法具有很强的可拓展性。Deepwalk作为网络表达学习中一个开创性工作,从一个简单的角度切入,用现有的成熟的方法,在一个全新的且尚未成为主流的问题中得到一个行之有效的解,不仅对网络表达这个问题带来极大的发展,同时也为我们做研究提供了一个很好的思路。一个优秀的方法是要建立在前人工作的基础上而不是凭空产生,并且当前最热门的问题并不一定是最值得研究的,冷门的问题也有其潜在的研究价值。

阅读更多,欢迎关注公众号:论文收割机(paper_reader)
原文链接:网络表达学习系列(一):深度游走(Deepwalk)

参考文献

[1] DeepWalk: Online Learning of Social Representations,KDD' 14

[2] Skip-gram. http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/

【Graph Embedding/Network Embedding 图嵌入/网络表示学习】主要工作(Deepwalk/LINE/node2vec)总结 本文介绍了图嵌入/网络表示学习领域比较重要的三个工作DeepWalk/LINE/node2vec,重点在于它们的思路、算法以及其中关联。 阅读详情

相关推荐

图表示学习笔记(一)

图表示学习笔记(一) DeepWalk:算法原理和应用 图表示学习 目前提到的图算法一般指: 1.经典数据结构与算法层面的:最小生成树,最短路径、拓扑结构、关键路径 2.概率模型,涉及图的表示学习,推断和学习 3.图神经网络,主要包括Graph Embedding(基于随机游走) 和==Graph CNN(基于邻居汇聚)==两部分。 Graph Emmbedding技术将图中的节点以低维稠密向量的形式进行表达,要求在原始图中相似(不同方法对相似的定义不同)的节点其在低维空间也接近。得到的表达向量可以用来进行

weixin_43539150的博客 2251

DeepWalk(深度游走)算法

然后借助自然语言处理的思路,将生成的顶点序列看作由单词组成的句子,所有的序列可以看作一个大的语料库(corpus),最后利用自然语言处理工具word2vec将每一个顶点表示为一个维度为d的向量。顶点的表示X是一个|V|×s维的矩阵,|V|表示顶点的数量,s是代表每个顶点的向量的维数(一般比较小),所以X即为将每个顶点的向量结合在一起形成的矩阵。如果在图G的基础上再加上顶点的向量表示和顶点所属的标注(网络节点分类问题中,网络中的每个顶点都有一个类别,所属的类别即为该顶点的标注)就构成了一个。

adsdasdasdahj的博客 6707

Graph embedding之Deepwalk算法原理,实现和应用

目录图神经网络DeepWalk 算法原理DeepWalk算法 图网络现在非常的流行,应用场景也十分的广泛,在推荐领域应用也十分广泛,在召回阶段graph-embedding是很有效的一种方式。以下内容参考浅梦大神的笔记。 图神经网络 主要包括Graph Embedding(基于随机游走)和Graph CNN(基于邻居汇聚)两部分。这里先看下Graph Embedding的相关内容。Graph Embedding技术将图中的节点以低维稠密向量的形式进行表达,要求在原始图中相似(不同的方法对相似的定义不同)的节

sixgold的博客 2002

DeepWalk论文详解

DeepWalk算法报告 Deepwalk是网络表示学习的经典算法之一,是用来学习网络中顶点的向量表示(学习学习图的结构特征即属性,并且属性个数为向量的维数)。 该算法通过截断随机游走学习出一个网络的社会表示,输入是一张图或者网络,输出为网络中顶点的向量表示。 本文的主要贡献为: 1.深度游走可以学习短随机有洞中存在的结构规律。 2.在标签稀疏性存在情况下,显著提高了分类性能。 3.通过使用并行实现构建网络规模的图的表示来演示我们算法的可伸缩性。 本文处理网络节点的表示...

shencongge的博客 2365

【Graph Embedding】DeepWalk 算法

最近项目需要用到 Graph Embedding 模型,所以简单把这个系列学习一下做个记录。 一、Graph Embedding Graph Embedding 的中心思想是找到一种映射函数,将图中的每个节点转换为低维稠密的嵌入表示,要求在图中相似的节点在低维空间距离相近。 得到的表示向量可用于下游任务,如节点分类、链接预测、可视化等。 二、DeepWalk 算法 参考文献: 论文题目:DeepWalk: Online Learning of Social Representations 论文来源:K.

Pumpkin_DAYTOY 689

CAD制图

CAD制图可以提高设计效率和准确性,并方便文档的存档和交流,是现代工程设计中不可或缺的一部分。·CAD三维开发是指使用计算机程序和工具来创建、编辑和操作三维模型、图形和设计的过程。它在工程、建筑、制造和游戏等领域广泛应用。CAD三维开发可能涉及到复杂的图形算法、性能优化、并行计算等方面的内容,因此需要深入学习和实践,以提高开发的效率和质量。

RZer的博客 1652

Deepwalk(深度游走)算法简介

深度游走:一种社交表示的在线学习算法主要思想Deepwalk算法参考文献 主要思想 Deepwalk是一种将随机游走(random walk)和word2vec两种算法相结合的图结构数据挖掘算法。该算法能够学习网络的隐藏信息,能够将图中的节点表示为一个包含潜在信息的向量,如图1-2所示。 图1 输入: 图信号 图2 输出: 图节点嵌入 Deepwalk算法  该算法主要分为...

Mr.Cheng 3万+

Python 高级语法:闭包

闭包(Closure)是函数式编程中的一个重要概念。在Python中,闭包可以简单理解为:一种特殊的函数。外函数:嵌套函数中最外层的函数称之为外函数。内函数:嵌套函数中最内层的函数称之为内函数;内函数引用了外函数的临时变量;外函数的返回使用了临时变量的内函数。

moment159的博客 2354

Deepwalk深度游走算法

慢慢的自己将图嵌入算法全部都将其搞定。会自己进行图嵌入。

kuxingseng123的博客 855

InsightFace实战:如何在树莓派上部署轻量级人脸识别系统(附完整代码)

本文详细介绍了如何在树莓派上部署基于InsightFace框架的轻量级人脸识别系统。通过硬件选型、环境配置、模型优化(如MobileFaceNet)及完整代码实战,指导开发者构建本地化、低功耗的智能应用,如智能门铃,并提供了性能调优与系统服务化的进阶技巧。

weixin_29043895的博客 351

基于python+mediapipe的手势拖动识别(无gpu)

手势点方块拖动

weixin_38029956的博客 5982

【经典论文阅读8】Deepwalk算法—基于随机游走的节点表示学习

word2vec使用语言天生具备序列这一特性训练得到词语的向量表示。而在图结构上,则存在无法序列的难题,因为图结构它不具备序列特性,就无法得到图节点的表示。deepwalk 的作者提出:可以使用在图上随机游走的方式得到一串序列,然后再根据得到游走序列进行node2vec的训练,进而获取得到图节点的表示。本质上deepwalk和word2vec思想相同,deepwalk算法的提出为图结构学习打开了新的天地。

说文科技,做有态度的研究。 8501

Unreal 5 MetaHuman插件全流程:从安装到角色动画生成

本文详细介绍了Unreal 5中MetaHuman插件的全流程使用指南,从安装配置到角色动画生成。通过Quixel Bridge下载预设角色,利用面部捕捉技术赋予数字人模型生命力,并提供材质编辑、性能优化等进阶技巧,帮助用户快速创建照片级真实的虚拟角色。

weixin_29009081的博客 829

【Graph Embedding】DeepWalk:算法原理,实现和应用

图表示学习 我们都知道在数据结构中,图是一种基础且常用的结构。现实世界中许多场景可以抽象为一种图结构,如社交网络,交通网络,电商网站中用户与物品的关系等。 目前提到图算法一般指: 经典数据结构与算法层面的:最小生成树(Prim,Kruskal,…),最短路(Dijkstra,Floyed,…),拓扑排序,关键路径等 概率图模型,涉及图的表示,推断和学习,详细可以参考Koller的书或者公开课 图...

浅梦的学习笔记 8668

Matplotlib之bar3d画3D柱状图

3D柱状图通常用于展示数据集中不同分类项的数据大小或数量。与普通的柱状图相比,3D柱状图更适合展示数据的三个维度 3D 柱状图 按行/列涂颜色 柱加阴影、描黑边 自定义座标轴名、刻度标签、范围

我走的每一步都算数 1121

面试问题总结——关于YOLO系列(三)

接着上篇的的YOLO系列面试问题总结,加油,冲! 三.YOLOv3 1.YOLOv3主干网络BackBone——Darknet-53网络结构(因为有53个卷积层) (原论文中Darknet53的尺寸是在图片分类训练集上训练的,所以输入的图像尺寸是256x256,而在YOLOv3中输入尺寸是416×416)   ①上图中,Top-1 Accuracy和Top-5 Accuracy是指什么呢?区别在哪呢?   我们知道ImageNet有大概1000个分类,而模型预测某张图片时,会给出1000个按概率从高.

boss-dog 1万+

【Graph Embedding】DeepWalk:Online Learning of Social Representations论文笔记

文章目录网络表示学习(Network Representation Learning,NRL)、Graph EmbeddingDeepWalk:Online Learning of Social Representations摘要:1. Introduction2. Problem Definition3. Learning social representations3.1 Random Wal...

知行合一,止于至善 1998

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

论文阅读_DeepWalk

介绍 英文题目:DeepWalk: Online Learning of Social Representations 中文题目:DeepWalk:关系表征的在线学习 论文地址:http://perozzi.net/publications/14_kdd_deepwalk.pdf 领域:知识图谱 发表时间:2014 出处:KDD 被引量:5094 代码和数据:https://github.com/phanein/deepwalk/ 阅读时间:2022.3.28 泛读 针对问题:学习图中节点的表征,解决多分

谢彦的技术博客 1366

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【Graph Embedding】DeepWalk算法原理,实现和应用

本文首先从整体介绍一下图表示学习,然后分别从原理,核心代码,应用三个部分介绍 DeepWalk 。 图表示学习 我们都知道在数据结构中,图是一种基础且常用的结构。现实世界中许多场景可以抽象为一种图结构,如社交网络,交通网络,电商网站中用户与物品的关系等。 目前提到图算法一般指: 1. 经典数据结构与算法层面的:最小生成树 (Prim,Kruskal,...) ,最短路 (Dijkstr...

木东的博客 2992

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【推荐算法】Graph Embedding系列之DeepWalk: Online Learning of Social Representation

DeepWalk的输入是一张图或者网络,输出为网络中顶点的向量表示。DeepWalk通过截断随机游走学习出一个网络的社会表示(social representation),在网络标注顶点很少的情况也能得到比较好的效果,并且该方法还具有可扩展的优点,能够适应网络的变化。

长相忆兮长相忆的专栏 1101

[图神经网络] 图节点Node表示(DeepWalk与Node2Vec)

前言 在图中,如果能把节点表示成合适的数值,能做很多任务,例如节点分类,关系预测,聚类等等。如何把节点表示成计算机能看懂的数值目前也有很多方法,本文主要为大家介绍基于Random Walk的节点表示方法。 ...

摩登都市天空---专栏 6076

DeepWalk:阅读感悟

什么是GE Network Embedding/Graph Embedding目的是希望能够将网络中的节点用比较低维的向量去表达,同时在这个向量空间中,网络结构的一些性质仍能够保持。 如图所示可以将网络中的节点用低维的向量表达,然后来执行实际的任务(异常检测,分类,链接预测等等) DeepWalk 论文中作者提出自己的三点主要贡献: 作者使用深度学习作为工具去分析图,建立了一个适合复杂模型的R...

Xj_jun的博客 977

graph embedding第一篇——deepwalk and line

文章目录参考DeepWalkLineNode2VecSDNEBillion-scale Commodity Embedding for E-commerce Recommendation in Alibaba[Item2Vec] Item2Vec-Neural Item Embedding for Collaborative Filtering[Airbnb Embedding] Real-time Personalization using Embeddings for Search Ranking at

init__的博客 1825

论文笔记《DeepWalk: Online Learning of Social Representations》

文章目录摘要1、简介2、问题定义3、学习社交表征3.1 随机游走3.2 连接:幂定律(power laws)3.3 语言模型4、方法4.1 概览4.2 算法:深度游走4.3 并行化 摘要 我们提出了DeepWalk,这是一种用于学习网络中顶点的隐表示的新颖方法。这些隐表征将社会关系编码在一个连续的向量空间中,这很容易被统计模型利用。 Deep-Walk 概括了语言建模和无监督特征学习(或深度学习)方面的最新进展,从单词序列到图形。 DeepWalk使用从截断的随机游走中获得的局部信息,通过将游走视为句子的等

zuolixiangfisher的博客 823

从 DeepWalk 到 Node2Vec:如何让图学习“更聪明”?

CA/ \假设当前节点为A,前一节点为B。BFS 邻域{B, C, D}—— 包括直接邻居和回退点DFS 邻域{D, E, F}—— 沿着一条路径深入探索⚠️ 但注意:Node2Vec 并不会“选择”某个邻域,而是通过参数调节游走倾向。Node2Vec 的核心是:让图上的随机游走变得“智能”。它没有改变 DeepWalk 的整体框架,却通过引入搜索偏差和两个可调参数p和q,实现了对游走行为的精细控制。这使得它既能像 DFS 一样深入挖掘局部社区,也能像 BFS 一样广泛扫描全局结构。

sweet_ran的博客 721
上一篇: 一文全面了解深度强化学习
下一篇: 用深度学习解决虚假评价检测中的冷启动问题
paper_reader
博客等级 码龄8年 157粉丝 46原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值