图嵌入 DeepWalk

article/2025/10/21 20:15:32

文章目录

  • 图表示学习-图嵌入 DeepWalk
    • 1 图嵌入
    • 2 随机游走-Random walks
    • 3 DeepWalk
      • 3.1 Hierarchical Softmax
        • 3.1.1 哈夫曼树
        • 3.1.2 Logistic Regression
        • 3.1.3 Softmax 回归
        • 3.1.4 Hierarchical Softmax
      • 3.2 模型训练

图表示学习-图嵌入 DeepWalk

1 图嵌入

目标:将节点 (node) 映射为 d 维的实向量

为什么要将节点映射为 d 维的实向量(嵌入到 d 维的空间)?

为了将节点进行数学表示,以度量节点间的相似度,有了节点对应的向量,才可以进行节点分类、连接预测等任务(为下游各种任务做准备)

2 随机游走-Random walks

算法的目标:将节点编码为向量,使得节点所表示的 d 维向量间尽可能的相似

  • 编码器 ENC(v):将节点映射为向量(本文中为 DeepWalk)

  • 相似度函数: s i m i l a r i t y ( v 1 , v 2 ) similarity(v_1, v_2) similarity(v1,v2)

  • 解码器 DEC:根据两个节点向量计算其相似度

3 DeepWalk

论文地址:https://arxiv.org/pdf/1403.6652.pdf

由于图的节点往往非常的多,经过 one-hot 编码之后得到的节点向量往往非常地大,且向量每个元素的值为 0 和 1。通过神经网络训练得到的节点向量是低维的、元素值是实数(连续值),且可进行相似度的度量,可以反应节点间的关系

随机得到游走序列,将随机游走序列视为句子(中心词+上下文),使用 Skip-gram 来训练节点向量!
请添加图片描述
请添加图片描述

使用 Hierarchical Softmax 计算输出的每个节点的概率

3.1 Hierarchical Softmax

3.1.1 哈夫曼树

  • 带权路径长度最短的二叉树

  • 可以使用哈夫曼编码

    • 频率相关:节点出现频率越高,其越靠近根节点

    • 唯一编码、且编码长度减小(压缩编码)

3.1.2 Logistic Regression

y = S i g m o i d ( w x + b ) y = Sigmoid(wx+b) y=Sigmoid(wx+b)

LR 是传统线性回归 y = w x + b y=wx+b y=wx+b S i g m o i d Sigmoid Sigmoid 变换结合,将连续值转化为0到1之间的类概率值,并设定分类阈值如 0.5,来完成二分类任务

3.1.3 Softmax 回归

神经网络的多分类,最基本的是使用Softmax回归

请添加图片描述

但是 Softmax 回归需要构建一个每个词的全连接层,即需要对词表中的每个词均计算一遍输出值并归一化,再找到输出概率最大的词。当词表非常大的时候,Softmax 回归将会非常耗时

传统 ML 中的多分类:用二分类解决多分类问题,这种方法要训练多个模型,对于神经网络这种庞大参数的模型来说无疑是行不通的

用二分类解决多分类问题:OvR (one versus rest)、OvO (one versus one)

OvO一对一:将 n 个类别两两配对,产生 n ∗ ( n − 1 ) 2 \frac{n*(n-1)}{2} 2n(n1)个二分类任务进行训练,最终把预测出来次数最多的类别作为最终的分类类别

OvR一对其他:每次将一个类作为正例,别的类作为反例,共训练 n 个分类器。预测时,用 n 个分类器预测,若只得到一个预测值是正例,则取此为最终预测类别;若多个分类器得到正例,则对比它们的置信度(如 LR 中得到的类概率值,来比较它们谁最大)

3.1.4 Hierarchical Softmax

请添加图片描述

分层 Softmax 如图,构建一颗二叉树,其中每个叶子节点对应一个词,非叶子结点是一个 LR 分类器,LR 在这里的应用就是判断在当前节点要走左子树还是右子树,其输出的值在当前节点往左走或右走的概率。

请添加图片描述
)]

由于此树从根节点的分类器到叶子节点的编码是唯一的(路径是唯一的),路径上每个 LR 预测概率之积,就可以视为在当前输入词的词向量下,得到的输出周围词(skip-gram根据中心词预测上下文的词)的词向量条件概率

分层 Softmax 比 Softmax 牛的地方:设窗口为2,训练的每轮迭代,Softmax 都得把词表遍历一遍,找到预测概率最大的俩词,而分层 Softmax 运行的次数是路径长度之和(从根节点到叶子节点经过的节点数之和),分层Softmax 运行的时间复杂度会大大减小。

3.2 模型训练

更新两套权重

  • n 个节点的 v 维节点向量

  • n-1 个 LR,每个 LR 的输入特征向量的维度是 v

为什么是 n-1 个 LR,因为二叉树性质 n 0 = n 2 − 1 n_0 = n_2 - 1 n0=n21,n 个节点对应其叶子节点,所以飞叶子节点的个数即 LR 的个数是 n-1


http://chatgpt.dhexx.cn/article/26QDl2Ew.shtml

相关文章

对DeepWalk的理解

DeepWalk的理解 如今我们都处于大数据时代,同时我们也身处于各个网络当中,列如通信网络,交通网络等等。我们如何将网络中的信息用我们计算机能懂的方式展现出来,这就是网络表示。而deepwalk主要是用来表示网络的一种方式&#xf…

KDD 2014 | DeepWalk: 社会表征的在线学习

目录 前言Abstract1.Introduction2.Problem Definition3.Learning Social Representations3.1 Random Walks3.2 Connection: Power laws3.3 Language Modeling 4.Method4.1 Overview4.2 Algorithm:DeepWalk4.2.1 Skip-Gram4.2.2 Hierarchical Softmax4.2.3 Optimiza…

DeepWalk

原文 《DeepWalk: Online Learning of Social Representations》 亮点 In this paper we introduce deep learning (unsupervised feature learning) techniques, which have proven successful in natural language processing, into network analysis for the first time.…

【论文精读实战】DeepWalk: Online Learning of Social Representations

DeepWalk: Online Learning of Social Representations 本文是我参加Datawhale的CS224W图机器学习时的笔记,第一次学习图机器学习,对DeepWalk这篇开山之作的理解。 论文的三位作者均来自纽约州立大学石溪分校,杨振宁和丘成桐也曾在此教学。 …

Deepwalk深度游走算法

主要思想 Deepwalk是一种将随机游走和word2vec两种算法相结合的图结构数据的挖掘算法。该算法可以学习网络的隐藏信息,能够将图中的节点表示为一个包含潜在信息的向量, Deepwalk算法 该算法主要分为随机游走和生成表示向量两个部分,首先…

DeepWalk阅读笔记

DeepWalk是一种学习网络中节点的表示的新的方法,是把language modeling的方法用在了social network里面,从而可以用deep learning的方法,不仅能表示节点,还能表示出节点之间的拓扑关系,也就是表现出社会网络的社会关系…

论文阅读|DeepWalk: Online Learning of Social Representations

论文阅读|DeepWalk: Online Learning of Social Representations 文章目录 论文阅读|DeepWalk: Online Learning of Social RepresentationsAbstractIntroductionProblem DefinitionLearning Social RepresentationsMethod实验设置Related Work我的看法参考资料 Abstract Deep…

大致了解一下DeepWalk

大致了解一下DeepWalk 讲到DeepWalk,不得不说的Word2VecCBOW模型CBOW模型的理解CBOW模型流程举例 Skip-Gram模型模型假任务模型细节隐层输出层直觉下一步 一些常用的trick词组降采样常用词采样率Negative Sampling选择 negative samples DeepWalk步骤相关算法 转载于…

[论文阅读] (25) 向量表征经典之DeepWalk:从Word2vec到DeepWalk,再到Asm2vec和Log2vec(二)

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学术路上期…

DeepWalk论文详解

DeepWalk算法报告 Deepwalk是网络表示学习的经典算法之一,是用来学习网络中顶点的向量表示(学习学习图的结构特征即属性,并且属性个数为向量的维数)。 该算法通过截断随机游走学习出一个网络的社会表示,输入是一张图…

DeepWalk原理理解:DeepWalk: online learning of social representations

文献:DeepWalk: online learning of social representations 对比阅读了几篇关于网络表示学习的文献,其中一篇包括DeepWalk的提出,下面将自己对于论文的理解和论文的笔记组织好记录下来。 deep walk 的提出是针对网络表示学习的稀疏性提出来…

DeepWalk模型的简介与优缺点

1、DeepWalk [DeepWalk] DeepWalk- Online Learning of Social Representations (SBU 2014) word2vec是基于序列进行embedding;但是,实际上实体之间的关系越来越复杂化、网络化。这个时候sequence embedding------>graph embedding。 图的定义&…

[论文阅读] (24) 向量表征:从Word2vec和Doc2vec到Deepwalk和Graph2vec,再到Asm2vec和Log2vec(一)

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学术路上期…

PyG基于DeepWalk实现节点分类及其可视化

文章目录 前言一、导入相关库二、加载Cora数据集三、定义DeepWalk四、可视化完整代码前言 大家好,我是阿光。 本专栏整理了《图神经网络代码实战》,内包含了不同图神经网络的相关代码实现(PyG以及自实现),理论与实践相结合,如GCN、GAT、GraphSAGE等经典图网络,每一个代…

【图嵌入】DeepWalk原理与代码实战

DeepWalk 基础理论 了解过 NLP 的同学对 word2vec 应该不陌生,word2vec 通过句子中词与词之间的共现关系来学习词的向量表示,如果你忘记了,可以看看我之前的博客: 【word2vec】篇一:理解词向量、CBOW与Skip-Gram等知…

DeepWalk算法(个人理解)

DeepWalk 什么是网络嵌入 将网络中的点用一个低维的向量表示,并且这些向量要能反应原先网络的某些特性。 一种网络嵌入的方法叫DeepWalk,它的输入是一张图或者网络,输出为网络中顶点的向量表示。DeepWalk通过截断随机游走(truncated rando…

deepwalk详解

目录 1. 算法思想2. 随机游走3. 如何把随机游走中得到的信息用来点表示学习?4.适用场景5. 不足和改进 1. 算法思想 源于word2vec,word2vec通过语料库中的句子序列来描述词与词的共现关系,进而学习到词语的向量表示。deepwalk则使用图中节点与节点的共现…

论文|DeepWalk的算法原理、代码实现和应用说明

万物皆可Embedding系列会结合论文和实践经验进行介绍,前期主要集中在论文中,后期会加入实践经验和案例,目前已更新: 万物皆可Vector之语言模型:从N-Gram到NNLM、RNNLM万物皆可Vector之Word2vec:2个模型、2…

泛运筹理论初探——DeepWalk算法简介

图论-图论算法之DeepWalk Graph-Embedding和DeepWalk算法 在之前的图算法介绍里,我们探讨了部分比较简单和经典的图算法,比如PageRank、最短路径、深度优先搜索等方法。在某些场景,之前介绍的一些算法虽然很经典,逻辑很清晰&…

推荐系统中的常用算法——DeepWalk算法

1. 概述 DeepWalk算法是在KDD2014中提出的算法,最初应用在图表示(Graph Embedding)方向,由于在推荐系统中,用户的行为数据固然的可以表示成图的形式,如下图所示: 通过Graph Embedding得到图中每…