Deepwalk,Node2vec算法原理生动理解(图文)

news2024/9/25 13:22:09

Deepwalk算法原理详解

DeepWalk算法之所以能够有效地学习节点的低维表示,是因为它利用了本质上与自然语言处理相同的思路:图是一种高维数据,很难直接处理,但是可以将其映射到低维空间中,这样可以更好地进行处理

DeepWalk算法的核心是随机游走过程。该过程从某个节点开始,依次按照一定的策略,选择这个节点的邻居节点进行移动,最终形成一个游走路径。重复执行该过程,就可以得到一系列游走路径,这些路径就是DeepWalk算法中的“句子”。Word2Vec对“句子”进行学习,得到每个节点的低维表示

DeepWalk算法的基本原理

1、生成节点邻接矩阵A

2、从一个初始节点开始,按照随机游走策略,不断移动到与它邻接的节点
我们假设随机游走的长度为4,并且从A节点开始游走:
在这里插入图片描述

第一步:A——B
在这里插入图片描述

第二步:A——B——C
在这里插入图片描述

第三步:A——B——C——D
在这里插入图片描述
这样我们就得到了一个随机游走序列A——B——C——D(请注意游走是随机的,完全有可能从A到B,再从B又回到A)

3、重复上面的步骤生成多个游走路径,这些路径就是DeepWalk算法中的“句子”

4、利用Word2Vec模型,对“句子”进行学习,得到每个节点的低维表示,即嵌入向量
假如图中有10000个顶点,那么我们将每个顶点用长度10000的向量表示,顶点1表示为[1,0,0,0,…],顶点2表示为[0,1,0,0,…]
在这里插入图片描述
在上图中,输入为某个顶点,通过10000xh的W1矩阵,变成了长度为h的向量,再通过hx10000的W2矩阵变回长度为10000的向量

我们的目标是输入一个顶点,输出的结果中对应的与输入顶点关系密切的位置的得分较高。
在序列A——B——C——D中,输入A节点时,希望输出向量的第2,3,4维度的得分较高。
通过deepwalk得到了许多的游走序列,也就是句子,这就是我们的训练集。
观察图中,Input的第一个维度只与W1的第一行进行了线性计算,意思是W1的第一行提取了Input输入的第一个维度信息(也就是顶点1),所以顶点1的低纬度向量表示即为W1的第一行。

Deepwalk特点

1、首个将深度学习和自然语言处理的思想用于图机器学习

2、在稀疏标注节点分类场景下,嵌入性能卓越

3、DeepWalk算法不能捕获节点的全局结构信息

4、DeepWalk算法基于随机游走,对于大图,这个方法可能会带来较高的计算复杂度

5、DeepWalk算法依赖于节点的邻居关系,在节点之间存在高度长距离的图上时,DeepWalk效果可能不佳

6、无监督,仅编码图的连接信息,没有利用节点的属性特征

7、没有真正用到神经网络和深度学习

Node2Vec算法原理详解

Node2Vec算法的基本原理

相较于Deepwalk,Node2Vec中节点的游走不再是无偏的随机游走,而是根据p和q的参数来影响节点的游走:(看图!)
在这里插入图片描述
假设A是上一个节点,B是当前节点,那么B现在有四条路可以选择:A,H,C,J
对于A:相当于是返回,我们设置其概率为1/p,受参数p的影响
对于H:相当于是徘徊,因为A到B和A到H的距离都是相等的,,设置概率为1
对于C和J:相当于是远离,它们朝着离A更远的方向离去,设置概率为1/q,受参数q的影响

当q值较小时,类似于深度优先搜索算法(DFS),用于探索相邻的节点
当p值较小时,类似于广度优先搜索算法(BFS),用于探索结构功能相似的节点

DeepWalk是Node2Vec在p=1, q=1的特例

Node2Vec特点

1、通过调节p、q值,实现有偏随机游走,探索节点社群、功能等不同属性

2、首次把节点分类用于Link Prediction

3、可解释性、可扩展性好,性能卓越

4、需要大量随机游走序列训练。弱水三千取一瓢,管中窥豹

5、距离较远的两个节点无法直接相互影响。看不到全图信息(图神经网络)

6、无监督,仅编码图的连接信息,没有利用节点的属性特征(图卷积)

7、没有真正用到神经网络和深度学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1074435.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ElasticSearch 使用 searchAfter() 进行遍历查询 查到的数据总数小于 totalHits

ElasticSearch 使用 searchAfter() 进行遍历查询,查到的数据总数小于 totalHits,并且每次查询的页 size 越大,遍历总数和 totalHits 的差距越小。 原因 这是由于如下的机制: 每个文档具有一个唯一值的字段应该用作排序规范的仲裁…

2023 IDC中国数字金融论坛丨中电金信向行业分享“源启+应用重构”新范式

9月8日,IDC主办的“2023 IDC中国数字金融论坛”在北京召开。中电金信受邀参会,并带来了深度数字化转型趋势之下关于应用重构的分享与洞见。 论坛重点关注金融科技创新发展趋势与数字化转型之路,中电金信副总经理、研究院院长况文川带来了“创…

多无人机编队集群飞行

matlab2016b可直接运行 多无人机集群编队飞行(8架无人机)资源-CSDN文库

S7-1200PLC与力控通过S7协议进行通信的具体步骤示例

S7-1200PLC与力控通过S7协议进行通信的具体步骤示例 准备条件: TIA PORTAL V16 力控7.2 SP3 PLC:1214 DC/DC/DC PLC一侧的配置: PLC IP设置为192.168.2.10 PLC属性中的连接机制,勾选允许来自远程对象的PUT/GET 新建一个名为FirstDB的数据块,数据块编号为1 在FirstDB中添加…

大屏设计器项目部署详细步骤

一.项目效果图 二.部署步骤 1.nginx配置前端配置 #gzip on;server {listen 48009;server_name analyse;location / {root /home/designer/dist;index index.html;try_files $uri

vue中v-model的原理是什么?v-model作用在组件上的原理是什么?sync修饰符的原理是什么?

vue中v-model的原理是什么&#xff1f; 特点&#xff1a;双向绑定 数据>视图 视图>数据 场景&#xff1a; 收集表单数据组件上 原理&#xff1a; v-model只是个语法题&#xff0c;本质是&#xff1a;v-model v-bind (:value) v-on (input) <template><…

蓝牙资讯|三星推迟发布智能戒指Galaxy Ring,智能穿戴小型化是大趋势

根据外媒 The Elec 报道&#xff0c;Galaxy Ring这款戒指主要面向健康和 XR 头显市场&#xff0c;该智能戒指可能被延期至 2024 年第三季度后发布。 外媒声称三星 Galaxy Ring 的上市周期&#xff0c;主要取决医疗认证的相关审批时间&#xff0c;三星计划将在 2024 年第三季度…

2023年软件测试工具总结 —— 性能测试工具

软件性能测试的目标是识别应用程序中的所有性能瓶颈。一个软件系统的性能不仅取决于系统本身的设计和编码&#xff0c;而且取决于系统所依赖的运行环境。系统的运行环境会依赖于一些关键因素&#xff0c;例如&#xff1a;系统架构、硬件配置、网络带宽、配套的软件如数据库和中…

java多线程卖电影票的三种实现方式

java多线程卖电影票的三种实现方式 一、需求描述二、实现方式1、继承Thread类的方式2、实现Runnable接口的方式3、使用Lock锁的方式 一、需求描述 某电影院目前正在上映国产大片&#xff0c;共有1000张票&#xff0c;而它有2个窗口卖票&#xff0c;请设计一个程序模拟该电影院…

12.3 实现模拟鼠标录制回放

本节将向读者介绍如何使用键盘鼠标操控模拟技术&#xff0c;键盘鼠标操控模拟技术是一种非常实用的技术&#xff0c;可以自动化执行一些重复性的任务&#xff0c;提高工作效率&#xff0c;在Windows系统下&#xff0c;通过使用各种键盘鼠标控制函数实现动态捕捉和模拟特定功能的…

Ubuntu22.04.3安装教程

虚拟机系列文章 VMware Workstation Player 17 免费下载安装教程 VMware Workstation 17 Pro 免费下载安装教程 windows server 2012安装教程 Ubuntu22.04.3安装教程 FTP服务器搭建 Ubuntu22.04.3安装教程 虚拟机系列文章前言Ubuntu22.04.3安装&#xff08;图文&#xff09; 前…

【C++心愿便利店】No.7---C++之运算符重载

文章目录 前言一、运算符重载的引用二、运算符重载三、赋值运算符重载四、日期类的实现五、const成员六、取地址及const取地址操作符重载 前言 &#x1f467;个人主页&#xff1a;小沈YO. &#x1f61a;小编介绍&#xff1a;欢迎来到我的乱七八糟小星球&#x1f31d; &#x1f…

onlyoffice历史版本功能实现

一&#xff1a;开启客户端配置 如果不开启&#xff0c;回调请求里面的history和changeUrl是空 二&#xff1a;客户端主要实现2个回调函数 1.实现onRequestHistory事件&#xff0c;该事件会在ui点击查看历史的时候发起,用于展示历史列表 关键在于获取到history的内容&#xff…

Vscode进行远程开发

之前用的是pycharm&#xff0c;但是同事说pycharm太重了&#xff0c;连接远程服务器的时候给远程服务器的压力比较大&#xff0c;有时候远程服务器可能都扛不住&#xff0c;所以换成了vscode。 参考博客 手把手教你配置VS Code远程开发工具&#xff0c;工作效率提升N倍 - 知…

【自动驾驶】PETR/PETRv2/StreamPETR论文分析

1.PETR PETR网络结构如下&#xff0c;主要包括image-backbone, 3D Coordinates Generator, 3D Position Encoder, transformer Decoder 1.1 Images Backbone 采用resnet 或者 vovNet,下面的x表示concatenate 1.2 3D Coordinates Generator 坐标生成跟lss类似&#xff0c;假…

从零开始的SRC挖掘

前言 每一次成功的渗透&#xff0c;都有一个非常完备的信息搜集。 大师傅讲的好呀&#xff1a;信息搜集的广度决定了攻击的广度&#xff0c;知识面的广度决定了攻击的深度。 点击此处即可领取282G网络安全学习资料 信息搜集 信息搜集可以从多个领域来看&#xff1a; 公司…

springboot vue 部署至Rocky(Centos)并自启,本文部署是若依应用

概述 1、安装nohup&#xff08;后台进程运行java&#xff09; 2、安装中文字体&#xff08;防止中文乱码&#xff09; 3、安装chrony&#xff08;保证分布式部署时间的一致性&#xff09; 5、安装mysql数据&#xff0c;迁移目录&#xff0c;并授权自启动&#xff1b; 6、安…

基于JavaSpring的学生宿舍管理系统

点击以下链接获取源码&#xff1a; https://download.csdn.net/download/qq_64505944/88407844

Bootstrap网格系统的原理

Bootstrap 提供了一套响应式、移动设备优先的流式网格系统&#xff0c;随着屏幕或视口&#xff08;viewport&#xff09;尺寸的增加&#xff0c;系统会自动分为最多12列。 Bootstrap 网格系统&#xff08;Grid System&#xff09;的工作原理 网格系统通过一系列包含内容的行和…

HRM人力资源管理系统源码

HRM人力资源管理系统源码 运行环境&#xff1a;PHP8.1或以上 MYSQL5.7或以上 php扩展要求 fileinfo imagemagick 功能介绍&#xff1a; 综合仪表板 它通过其综合仪表板提供了员工总数、工单和帐户余额的概览。 您可以轻松访问组织中的缺席者以及详细的公告和预定会议列…