0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

deepwalk算法核心的步骤

智能生物识别说 来源:快商通AI 作者:快商通AI 2021-10-14 09:59 次阅读

在数据量越来越大的今天,word2vec是通过字词的共现关系来学习字词的向量表示,Graph Embeding的思想类似于word2vec,通过图中节点与节点的共现关系来学习节点的向量表示,构成文本序列从而计算相互关联出现的词的概率,从而计算词向量表示文本。那么在图模型中的关键的问题就是如何来描述节点与节点的共现关系,于是方法是利用DeepWalk来采样这样的文本序列,通过随机游走(RandomWalk)的方式在图中进行节点采样,从而就能够输入序列计算图的向量表示。所以deepwalk算法核心的步骤就是两步:

RandomWalk

Skip-Gram

RandomWalk是一种可重复访问已访问节点的深度优先遍历算法。给定当前访问起始节点,从其邻居中随机采样节点作为下一个访问节点,重复此过程,直到访问序列长度满足预设条件。

spacer.gif算法过程就是输入一个图,输出节点表示的矩阵,简单对步骤进行解析:

初始化:从 $\mathcal{U}^{|V| \times d}$ 样本空间中采样,embedding的大小为 $d$

构建一棵二叉树Hierarchical Softmax

开始做 $\gamma$ 步的随机游走,这里的 $\gamma$ 是初始化好的超参数

打乱采样得到的节点

这个循环是开始以每个节点为根节点开始做长度为 $t$ 的随机游走,这里的 $t$ 为初始化的超参数。然后按窗口 $w$ 进行SkipGram学习文本序列

SkipGram

一般提到word2vec有两种主要的算法,Cbow和Skip-Gram,都是在统计语言模型的基础上计算一个词在文本中出现的概率用来作为这个词的表示向量,于是优化目标就是最大化$Pr(w_n|w_0,w_1,...,w_{n-1})$ 。 $w$ 表示的就是词。

SkipGram就是用当前词来预测上下文。丢掉了词序并且不考虑与当前词的距离。优化目标是最大化同一个句子中同时出现的词的共现概率:

预测给到的词从整个词表vocabulary中选择,因此在输出的时候会计算softmax进行选择,维度为 $|V|$ ,计算的维度会非常大,因此采用Hierarchical Softmax来构建二叉树进行选择,每个词就只需要计算 $log_2^{|V|}$ 次。

Node2Vec

node2vec依然采用的是随机游走的方式获取顶点的临近顶点序列,但不同的是node2vec采用的是一种有偏的随机游走。给定当前顶点 $v$,访问下一个顶点的概率是:

$\pi{vx}$ 是顶点 $v$ 到顶点 $x$ 之间的转移概率, $Z$ 是归一化参数。 node2vec引入两个超参数 $p$ 和 $q$ 来控制随机游走的策略,假设当前随机游走经过边 $(v, x) $ 到达顶点 $t$ ,设 $\pi{vx}=\alpha{pq}(t, x)\cdot w{vx}$ , $w_{vx}$ 是顶点 $v$ 和 $x$ 之间的边权。

$d{tx}$ 为顶点 $t$ 和顶点 $x$ 之间的最短路径距离。参数$p$和参数$q$的意义:控制重复访问刚刚访问过的顶点的概率。$p$作用于$d{tx}=0$,表达的意义就是顶点$x$就是访问当前顶点$v$之前刚刚访问过的顶点。如果$p$较高,则访问刚刚访问过的顶点的概率会变低,反之变高。$q$控制着游走是向外还是向内,如果$q>1$,随机游走倾向于访问和节点$t$相接近的顶点(类似于$BFS$)。如果$q<1$,则倾向于访问远离$t$的顶点(类似于$DFS$)。

Graph Convolutional Network

Graph Embedding的意义就在于能够利用图结构处理非结构化数据,因此在cv和nlp领域能够更进一步结合先验知识进行特征学习,因此是深度学习领域的重要发展方向。定义图$G=(V,E)$,$V$为节点的集合,$E$为边的集合,对于每个节点$i$, 均有其特征$x_i$,特征矩阵可以用$X_{N*D}$来表示,其中$N$表示节点数,$D$表示每个节点的特征编码尺寸,在nlp应用中就是embedding_size。对于图的理解有一个经典的思想:

图中的每个结点无时无刻不因为邻居和更远的点的影响而在改变着自己的状态直到最终的平衡,关系越亲近的邻居影响越大。

实际上从邻居节点获取信息的思想在很多领域都有应用,例如:word2vec和pagerank。很多参考的理解描述了更加细节的数学原理:从傅立叶变换到拉普拉斯算子到拉普拉斯矩阵。很难理解。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4607

    浏览量

    92838
  • 节点
    +关注

    关注

    0

    文章

    218

    浏览量

    24419
收藏 人收藏

    评论

    相关推荐

    【「从算法到电路—数字芯片算法的电路实现」阅读体验】+介绍基础硬件算法模块

    作为嵌入式开发者往往比较关注硬件和软件的协调。本书介绍了除法器,信号发生器,滤波器,分频器等基本算法的电路实现,虽然都是基础内容,但是也是最常用到的基本模块。 随着逆全球化趋势的出现,过去的研发
    发表于 11-21 17:05

    NPU与机器学习算法的关系

    在人工智能领域,机器学习算法是实现智能系统的核心。随着数据量的激增和算法复杂度的提升,对计算资源的需求也在不断增长。NPU作为一种专门为深度学习等机器学习任务设计的处理器,其与机器学习算法
    的头像 发表于 11-15 09:19 433次阅读

    AIGC算法解析及其发展趋势

    、AIGC算法解析 核心基础 人工智能算法 :AIGC技术的基础和灵魂,如深度学习、机器学习等算法,使机器能够模拟人类的思考和行为过程,从而自主地完成各种任务。这些
    的头像 发表于 10-25 15:35 432次阅读

    图像识别算法核心技术是什么

    图像识别算法是计算机视觉领域的一个重要研究方向,其目标是使计算机能够像人类一样理解和识别图像中的内容。图像识别算法核心技术包括以下几个方面: 特征提取 特征提取是图像识别算法的基础,
    的头像 发表于 07-16 11:02 625次阅读

    opencv图像识别有什么算法

    图像识别算法: 边缘检测 :边缘检测是图像识别中的基本步骤之一,用于识别图像中的边缘。常见的边缘检测算法有Canny边缘检测器、Sobel边缘检测器和Laplacian边缘检测器。 特征点检测 :特征点检测是识别图像中的关键点,
    的头像 发表于 07-16 10:40 1007次阅读

    ai大模型和算法有什么区别

    复杂的问题。这些模型通常需要大量的数据和计算资源来训练和优化。例如,深度学习中的神经网络就是一种典型的AI大模型。 算法则是一系列解决问题的步骤和规则,它们可以应用于各种领域,包括人工智能。算法可以是简单的,也可以是复
    的头像 发表于 07-16 10:09 1780次阅读

    BP神经网络预测模型的建模步骤

    BP(Backpropagation)神经网络是一种多层前馈神经网络,其核心思想是通过反向传播算法来调整网络中的权重和偏置,从而实现对输入数据的预测或分类。BP神经网络预测模型的建模是一个系统而复杂
    的头像 发表于 07-11 16:57 1482次阅读

    bp神经网络预测模型建模步骤

    BP神经网络(Backpropagation Neural Network)是一种多层前馈神经网络,其核心思想是通过反向传播算法来调整网络中的权重和偏置,从而实现对输入数据的预测或分类。本文将详细
    的头像 发表于 07-11 10:52 502次阅读

    深度学习的基本原理与核心算法

    处理、语音识别等领域取得了革命性的突破。本文将详细阐述深度学习的原理、核心算法以及实现方式,并通过一个具体的代码实例进行说明。
    的头像 发表于 07-04 11:44 1977次阅读

    神经网络反向传播算法的原理、数学推导及实现步骤

    传播算法的原理、数学推导、实现步骤以及在深度学习中的应用。 神经网络概述 神经网络是一种受人脑启发的计算模型,由大量的神经元(或称为节点)组成,每个神经元与其他神经元通过权重连接。神经网络可以分为输入层、隐藏层和输出层。输入层接收外部输入数据
    的头像 发表于 07-03 11:16 774次阅读

    神经网络反向传播算法原理是什么

    介绍反向传播算法的原理、数学基础、实现步骤和应用场景。 神经网络简介 神经网络是一种受人脑启发的计算模型,由大量的神经元(或称为节点)组成。每个神经元接收输入信号,通过激活函数处理信号,并将输出信号传递给下一层神经元。神经网络通常由输入层、
    的头像 发表于 07-02 14:16 617次阅读

    运动控制算法有哪些

    运动控制算法是机器人学和自动化领域中的核心技术之一,它们负责规划和执行机器人或自动化设备的精确运动。以下是一些常见的运动控制算法,以及它们的基本原理和应用场景。 PID控制算法
    的头像 发表于 06-13 09:17 2432次阅读

    机器学习六大核心算法深度解析

    算法历程:线性回归是一种古老的统计方法,它试图找到最佳拟合数据的直线或超平面,最早可以追溯到19世纪初的高斯最小二乘法理论。
    发表于 04-23 16:25 1785次阅读
    机器学习六大<b class='flag-5'>核心算法</b>深度解析

    计算机视觉领域的十大核心技术算法

    图像分割算法是计算机视觉领域的基础算法之一,它的主要任务是将图像分割成不同的区域或对象。常见的图像分割算法包括基于阈值的分割、基于区域的分割、基于边缘的分割和基于图割的分割等。
    发表于 02-25 09:38 992次阅读

    AC电机控制算法是什么

    机(AC)是一种将电能转换为机械能的设备,其工作原理是通过电流在磁场中产生力矩,使电机转子旋转。AC电机控制算法核心目标是实现对电机的精确控制,以满足不同的运行需求。为了实现这一目标,AC电机控制算法需要解决以下几个关键问
    的头像 发表于 01-11 11:21 1065次阅读
    AC电机控制<b class='flag-5'>算法</b>是什么