[图神经网络]图嵌入
创始人
2025-05-31 08:35:26

将节点映射成D维向量主要有以下几种方法:

        ①人工特征工程:节点重要度、集群系数、Graphlet等

        ②图表示学习:通过随机游走构造自监督学习来实现,如DeepWalk,Node2Vec

        ③矩阵分解

        ④深度学习:图神经网络

一、图嵌入

        传统图机器学习需要使用人为的特征工程来实现图到D维向量的转换。而图表示学习是有计算机自动学习特征将各模态输入转换为向量,这个过程不需要人工干预。

         d维向量有如下特点:

                低维:向量的维度远小于节点数

                连续:每个元素都是实数

                稠密:每个元素都不为0(区别于热编码)

        嵌入向量包含网络的连接信息,且能用于下游任务。

二、基本框架

        1.编码器

                输入一个节点,经过处理后输出其对应的d维向量

        2.解码器

                将编码器得到的向量进行点积,得到其余弦相似度(标量,可以反映节点的相似度)

        !!!需注意的是编码器和解码器的结构是可以更换的,不一定是点积,得到的也不一定是余弦相似度。

        框架迭代优化的方向是:使得图中相似节点的向量数量积大,不相似节点的向量数量积小

三、常见的编码器

        1.浅编码器

                实质上是人为将所有节点的d维向量写入一个矩阵Z中,将此矩阵与一个热编码(one-hot)向量v相乘即可得到嵌入向量,记作:Enc(v)=z_v=Z \cdot v;其中矩阵Z的参数为可学习参数。

        2.随机游走

                从u节点出发,生成一个随机游走序列,求其经过v节点的概率,记作:P(v|z_u)

                可以通过softmax激活函数计算:\sigma (z)[i]=\frac{e^{z[i]}}{\sum e^{z[i]}}sigmoid计算:S(x)=\frac{1}{1+e^{-x}}

                ①Deepwalk

                        1.采样得到若干随机游走序列,计算条件概率

                        2.迭代优化每个节点的d维向量,使得序列中共现节点向量数量积大,不共现节点向量数量积小。

        似然目标函数\underset{f}{max}\sum logP(N_R(u)|z_u),其中N_R(u)为从u节点出发的随机游走序列,游走策略为R

        损失函数\iota=\sum\sum -log(P(v|z_u)),其中概率由softmax计算P(v|z_u)=\frac{exp(z_u^Tz_v)}{\sum exp(z_u^Tz_n)}

         负采样:可以将P(v|z_u)=\frac{exp(z_u^Tz_v)}{\sum exp(z_u^Tz_n)},近似为log(\sigma(z_u^Tz_v))-\sum_{i=1}^k log(\sigma(z_u^Tz_{n_i}) ),此式中的 k 为负样本个数。k一般取5-20,且统一个游走序列中的节点不应被采样为“负样本”。

                Node2vec

                        其余步骤和Deepwalk一致,但是可以通过设置超参数来规定随机游走的偏向性:BFS--宽度优先--局部探索;DFS--深度优先--全局探索

相关内容

热门资讯

游戏服务器是什么怎么租用 游戏服务器是什么怎么租用 我是艾西,作为一个常年与游戏行业保持着高频率的服务器供应商&...
Flink-转换算子  基本转换算子         map(映射)         filter(过滤&#...
2023年金三银四大厂高频Ja... Java 面试 谈到 Java 面试,相信大家第一时间脑子里想到的词肯定是金三银四&#...
C语言手撕一个Hash表(Ha... 什么是Hash Table 散列表用的是数组支持按照下标随机访问数据的特性,所以散列表...
springMVC01- 文章目录今日目标一、SpringMVC简介1 SpringMVC概述问题导入1.1 SpringMV...
Electron开发的应用利用... 技术选型: 1、electron:21.3.3 2、electron-v...
【Elastic (ELK) ... 目录 一、ES 基本概念介绍 1.1 ES 是什么 1.2 ES 主要功能 1.3 ES 相关术语 ...
指定wb用户在指定日期范围内的... 一、操作步骤 只记录过程,不讲述原理 1.获取用户ID和cookie 用户ID在进入个...
sheng的学习笔记-IO多路... 基础概念IO分为几种:同步阻塞的BIO,同步非阻塞的NIO,...
接口自动化测试(Python+...  目录:导读 (1)接口自动化测试的优缺点 (2)Pyth...
重构条件-Consolidat... 重构条件-Consolidate Conditional Expression合并条件式二 1.合并...
【论文阅读】BiSeNet V... 前言BiSeNet V2延续了v1版本的双边结构,分别处理空间细节信息、高层语义信息。...
二、马尔可夫决策过程与贝尔曼方... 这里写目录标题1 马尔可夫性质2 马尔可夫过程3 马尔可夫奖励过程(Markov re...
golang端口重用 文章目录前言SO_REUSEADDR简介Python中的用法golang用法其他学习总结 前言 服...
Zabbix“专家坐诊”第18... 问题一 Q:Zabbix5.0版本,如图,请问这里怎么修改...
深度学习技巧应用5-神经网络中... 大家好,我是微学AI,今天给大家带来深度学习技巧应用5-神经网络中的模型...
Mongodb 常用基本语法与... 常用操作 1、 Help查看命令提示 db.help(); 2、 切换/创建数据库 use t...
java中Long型数据大小比... 起因 今天在做项目的时候,想构建一个树形结构,从数据库中查询出了所有数据...
【Linux】-- 进程概念 基本概念进程(Process):是操作系统进行资源分配的最小单位。一个进程是一个程序的一次执行过程。...
2023-03-22干活小计: transformer: position-embedding: 残差:我也会了 ad...
verilog(基础知识) 摘要:主要写自己的学习内容,可能不完整 概述 对硬件描述,主要是对芯片设计进行验证人员对其进行验证...
MySQL函数 - 字符串函数... 文章目录1 字符串函数2 数值函数3 日期函数4 流程函数 函数是指一段可以直接被另一段程序调用的程...
Word2010(详细布局解释... 目录一、界面介绍二、选项卡1、文件选项卡(保存、打开、新建、打印、保存并发送、选项&#...
ProTradex是链上衍生品... 目前,链上衍生品市场的总市值已经超过100亿美元,链上衍生品市场的产品类...
spring boot 集成 ... 要将 PostGIS 集成到 Spring Boot 应用程序中,需要按照以下步骤进行操作:1. 将...
【DDIM精读】公式推导加代码... 【DDIM精读】公式推导加代码分析。1.前言:ddim总览2.均值(μ\...
系统开发-McCabe复杂度(... 系统开发(上)-软件设计(三十二)https...
每日学术速递3.22 CV - 计算机视觉 |  ML - 机器学习 |  RL - 强化学习 | NLP 自然语言处理 ...
CCF-CSP题解 第二题(J... 目录 201312-2:ISBN号码 201403-2:窗口 20140...
在服务器上搭建nacos集群-... 搭建集群需要具备JDK环境,1个Nginx+3个nacos注册中心+1...