图嵌入表示学习—Node Embeddings随机游走

news2024/10/5 7:30:49

Random Walk Approaches for Node Embeddings

一、随机游走基本概念

请添加图片描述
想象一个醉汉在图中随机的行走,其中走过的节点路径就是一个随机游走序列

随机行走可以采取不同的策略,如行走的方向、每次行走的长度等。

二、图机器学习与NLP的关系

请添加图片描述

从图与NLP的类比关系可以看出,图机器学习和NLP相似度很高,了解两者的类比关系可以加深对图机器学习的理解。

随机游走的根本目标是对图中的各个节点进行编码,将图中的各个节点编码成可供下游任务使用的向量,即编码器。因此,随机游走是一个无监督/自监督算法,没有使用任何标签。

三、概念定义(可以先看后面,用到时再看概念)

请添加图片描述

  1. z u \mathbf{z} _u zu:期望获得的节点 u u u的嵌入向量,是算法的目标

  2. P ( v ∣ z u ) P(v|\mathbf{z} _u) P(vzu):从 u u u节点出发的随机游走序列经过 v v v节点的概率。

    如果 u u u节点和 v v v节点出现在同一个随机游走序列,那么 P P P值应该高;如果 u u u节点和 v v v节点没有出现在同一个随机游走序列,那么期望 P P P应该低,这也是之后优化算法的根本思路。

  3. P ( v ∣ z u ) P(v|\mathbf{z} _u) P(vzu)的计算:本文使用softmax计算 P P P值,具体计算方法在“五、优化算法”中,这里只介绍两个非线性函数

    • softmax:将k维的向量的值通过softmax改为k维的概率值,其中:
      σ ( z ) [ i ] = e z [ i ] ∑ j = 1 K e z [ j ] \sigma(z)[i]=\frac{e^{z[i]}}{\sum_{j=1}^K e^{z[j]}} σ(z)[i]=j=1Kez[j]ez[i]

    • sigmoid:将k维嵌入向量的值映射到0-1,其中:
      S ( x ) = 1 1 + e − x S(x)=\frac{1}{1 + e^{-x}} S(x)=1+ex1

  4. 相似度similarity:数量积(余弦相似度)

    因为嵌入向量 z z z在最后都通过计算使其度量(向量长度)相同,所以可以直接求向量积来代表其相似度。
    s i m i l a r i t y = z u T z v similarity=\mathbf{z} _u ^T \mathbf{z} _v similarity=zuTzv

  5. N R ( u ) N_R(u) NR(u):选定游走策略为R,在 u u u节点为起点的条件下,访问得到的节点的集合。

四、随机游走算法

1、特征学习优化策略:

请添加图片描述

优化算法总目标:对于给定的图 G G G,随机游走的目标是找到一个函数 f f f,其可以将节点 u u u映射为 d d d维的向量 z u \mathbf{z} _u zu

似然目标函数:如图,在确定出发节点 u u u的条件下(即向量 z u \mathbf{z} _u zu),与 u u u节点同一序列的节点集合 N R ( u ) N_R(u) NR(u)中的节点出现的概率最大。可以看出其本质是极大似然估计。

2、随机游走优化策略:

请添加图片描述

  1. 选定游走策略R,对每个节点 u u u进行固定长度的随机游走。
  2. 对每个节点 u u u,收集 N R ( u ) N_R(u) NR(u)
  3. 对于给定的节点 u u u N R ( u ) N_R(u) NR(u),更新 z u \mathbf{z} _u zu,使优化目标函数最大。最终得到的 z u \mathbf{z} _u zu即维节点 u u u的嵌入向量。

其中,优化目标函数在随机游走算法中等同于:

请添加图片描述

其中,第一个求和符号 u ∈ V u \in V uV代表遍历图 G G G的所有节点,第二个求和符号 v ∈ N R ( u ) v \in N_R(u) vNR(u)代表遍历所有 N R ( u ) N_R(u) NR(u)中的节点, l o g log log加负号使求最大变为求最小,这样,优化目标函数变为了损失函数。

P ( v ∣ z u ) P(v|\mathbf{z} _u) P(vzu)使用softmax进行求解。

进一步解释如图:

请添加图片描述

3、随机游走算法的优化—负样本:

请添加图片描述

从图中可以看出,在计算softmax时,需要遍历图 G G G的顶点两次,时间复杂度为 O ( ∣ V ∣ 2 ) O(|V|^2) O(V2),这是不可接受的。

在此使用负采样解决softmax难算问题:

请添加图片描述

如图,在计算softmax时,对于分母,不用计算图中所有的节点,而是采样 k k k个负节点进行计算。注意:图 G G G中每个节点的采样概率是不同的,在Node2Vec中采用类似于Word2Vec中词频的方法。

此方法原理解释如下:

请添加图片描述

关于K的取值是一个超参数:

请添加图片描述

更高的K意味着采样更多的点,这回增加模型的健壮性。但是相同的更多的会引入更多的负样本,这回导致正负样本失衡,影响训练,因此一般来说K的取值在5到20之间。理论上,同一个随机游走序列中的节点不应被采样为负样本。

4、优化过程—随机梯度下降

因这里是机器学习的基础,故在此不做赘述:

请添加图片描述
请添加图片描述

五、总结

请添加图片描述

  1. 选定游走策略R,对每个节点 u u u进行固定长度的随机游走。
  2. 对每个节点 u u u,收集 N R ( u ) N_R(u) NR(u)
  3. 利用损失函数,采用随机梯度方法对 z u \mathbf{z} _u zu进行优化。损失函数可以采用负样本算法简化计算。

本文只是将游走策略抽象为R,那么具体什么样的策略是真正有效的呢,DeepWalk和Node2Vec提供了可以参考的具体思路。

图片截选自——斯坦福CS224W: Machine Learning with Graphs

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

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

相关文章

posix线程的优先级测试

如果创建的线程不够多&#xff0c;有些问题是体现不出来的。 优先级打印&#xff1a; 测试目的&#xff1a;输出三种调度模式下的最大优先级和最小优先级 #include <stdio.h> #include <sys/socket.h> #include <sys/types.h> #include <fcntl.h> #…

Kubernetes_容器网络_01_Docker网络原理(二)

文章目录 一、前言二、被隔离的Docker容器三、网桥Bridge四、VethPair网络对五、统一宿主机上的两个Container容器通信六、宿主机访问其上的容器七、宿主机上的容器访问另一个宿主机八、尾声 一、前言 二、被隔离的Docker容器 Linux 网络&#xff0c;就包括&#xff1a;网卡&…

技术选型对比- RPC(Feign VS Dubbo)

协议 Dubbo 支持多传输协议: Dubbo、Rmi、http,可灵活配置。默认的Dubbo协议&#xff1a;利用Netty&#xff0c;TCP传输&#xff0c;单一、异步、长连接&#xff0c;适合数据量小(传送数据小&#xff0c;不然影响带宽&#xff0c;响应速度)、高并发和服务提供者远远少于消费者…

UnityWebGL+阿里云服务器+Apache完成项目搭建展示

一、服务器相关 Step1:租借一台阿里云服务器 我自己租借了一台北京的ECS服务器&#xff0c;有免费一年的活动&#xff0c;1 vCPU 2 GiB&#xff0c;我自己选择的Ubuntu系统&#xff0c;也可以选择Windows系统 Step2:进入远程连接 进入自己的服务器实例后&#xff0c;点击远程…

vue+elementui+nodejs机票航空飞机航班查询与推荐

语言 node.js 框架&#xff1a;Express 前端:Vue.js 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat 开发软件&#xff1a;VScode )本系统主要是为旅客提供更为便利的机票预定方式&#xff0c;同时提高民航的预定机票的工作效率。通过网络平台实现信息化和网络化&am…

关于Android的性能优化,主要是针对哪些方面的问题进行优化

前言 我们在开发Android的时候&#xff0c;经常会遇到一些性能问题&#xff1b;例如&#xff1a;卡顿、无响应&#xff0c;崩溃等&#xff0c;当然&#xff0c;这些问题为我们可以从日志来进行追踪&#xff0c;尽可能避免此类问题的发生&#xff0c;要解决这些问题&#xff0c…

mysql从零开始(05)----锁

全局锁 使用 # 启用全局锁 flush tables with read lock # 释放全局锁 unlock tables开启全局锁后&#xff0c;整个数据库就处于只读状态了&#xff0c;这种状态下&#xff0c;对数据的增删改操作、对表结构的更改操作都会被阻塞。 另外&#xff0c;当会话断开&#xff0c;全…

【1015. 可被 K 整除的最小整数】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给定正整数 k &#xff0c;你需要找出可以被 k 整除的、仅包含数字 1 的最 小 正整数 n 的长度。 返回 n 的长度。如果不存在这样的 n &#xff0c;就返回 -1。 注意&#xff1a; n 不符合 64 位带…

手把手教你在winform中将文本或文件路径拖到控件中

文章目录 前言博主履历介绍&#xff1a;一、将txt文件的所有内容复制到 RichTextBox中二、将txt文件的一行内容移动到RichTextBox中三、将多个文件的全路径复制到 RichTextBox中四 、源码1、[Winform从入门到精通&#xff08;1&#xff09;——&#xff08;如何年入30万&#x…

「MIAOYUN」:降本增效,赋能传统企业数字化云原生转型 | 36kr 项目精选

作为新经济综合服务平台第一品牌&#xff0c;36氪自2019年落地四川站以来&#xff0c;不断通过新锐、深度的商业报道&#xff0c;陪跑、支持四川的新经济产业。通过挖掘本土优质项目&#xff0c;36氪四川帮助企业链接更多资源&#xff0c;助力企业成长&#xff0c;促进行业发展…

分布式系统概念和设计——命名服务设计和落地经验

分布式系统概念和设计 通过命名服务&#xff0c;客户进程可以根据名字获取资源或对象的地址等属性。 被命名的实体可以是多种类型&#xff0c;并且可由不同的服务管理。 命名服务 命名是一个分布式系统中的非常基础的问题&#xff0c;名字在分布式系统中代表了广泛的资源&#…

C语言:指针求解鸡兔同笼问题

题目&#xff1a;鸡兔同笼问题 要求&#xff1a;使用自定义函数void calc(int h, int f,int *c,int *r) 求解鸡兔同笼问题。 h 表示总的头数&#xff0c;f 表示总的脚数。 例子&#xff1a; 输入&#xff1a; 5 16 输出&#xff1a; 2 3 分析&#xff1a; 在该代码中&a…

05-Docker安装Mysql、Redis、Tomcat

Docker 安装 Mysql 以安装 Mysql 5.7为例&#xff1a; docker pull mysql:5.7Mysql 单机 Mysql 5.7安装 启动 Mysql 容器&#xff0c;并配置容器卷映射&#xff1a; docker run -d -p 3306:3306 \--privilegedtrue \-v /app/mysql/log:/var/log/mysql \-v /app/mysql/data:…

ASP.NET Core MVC 从入门到精通之文件上传

随着技术的发展&#xff0c;ASP.NET Core MVC也推出了好长时间&#xff0c;经过不断的版本更新迭代&#xff0c;已经越来越完善&#xff0c;本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容&#xff0c;适用于初学者&#xff0c;在校毕业生&#xff0c…

VMware NSX-T Data Center 3.2.2.1 - 数据中心网络全栈虚拟化

请访问原文链接&#xff1a;https://sysin.org/blog/vmware-nsx-t-3/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org VMware NSX-T Data Center 3.2.2.1 | 30 MAR 2023 | Build 21487560 VMware NSX-T Data Center 3.2.2 | 08 …

NOA上车「清一色」自主品牌,哪些供应商正在突围前线

随着入门级L2进入普及周期&#xff0c;以NOA&#xff08;高速、城区&#xff09;为代表的L2/L2赛道&#xff0c;正在成为主机厂、硬件供应商、算法及软件方案商的下一波市场制高点的争夺阵地。 高工智能汽车研究院监测数据显示&#xff0c;2023年1-3月中国市场&#xff08;不含…

MySQL基础(十六)变量、流程控制与游标

1. 变量 在MySQL数据库的存储过程和函数中&#xff0c;可以使用变量来存储查询或计算的中间结果数据&#xff0c;或者输出最终的结果数据。 在 MySQL 数据库中&#xff0c;变量分为系统变量以及用户自定义变量。 1.1 系统变量 1.1.1 系统变量分类 变量由系统定义&#xff…

【Nacos在derby模式下密码忘记】使用derby的ij工具重置密码/修改密码

【问题描述】 nacos部署未用mysql,直接运行&#xff0c;使用了默认的derby数据库&#xff0c;这时候不一小心修改的密码给忘记了&#xff0c;无法登录 当时是部署在centos上的一个演示环境&#xff0c;没有采用mysql数据库&#xff0c;如果生产上&#xff0c;建议使用mysql。 …

php用户分享信息技术交流大学生论坛系统vue

系统应实现的目标 1. 提供安全、友好的操作环境&#xff1a;避免一些网上的不良言论&#xff0c;创造一个和谐的网络环境。 2. 提供发表帖子功能&#xff1a;注册的用户可以自由发帖&#xff0c;发表符合法律法规的言论。 3. 提供回复帖子功能&#xff1a;户可以自由回复&am…

camunda执行监听器如何使用

在Camunda工作流引擎中&#xff0c;执行监听器是一种机制&#xff0c;用于在业务流程执行期间捕获特定事件并执行相应的操作。它们可以帮助您实现一些重要的任务&#xff0c;例如&#xff1a; 1、记录或更新业务数据&#xff1a;当流程中的任务或事件发生时&#xff0c;您可以…