GNN 学习记录

news2024/11/18 8:18:44

GNN

参考资料:https://www.bilibili.com/video/BV16v4y1b7x7

图网络为什么复杂

  • 需要接受任意尺寸的输入
  • 没有固定的节点顺序和参考锚点(比如文本是从前往后处理,图像是有像素点的,图没有起始点)
  • 动态变化和多种模态的特征(比如音乐推荐)

在这里插入图片描述
端到端

GNN 工具

PyG

GNN 库

NetworkX

构建图的库

DGL

李沐老师推荐,复现了很多顶会论文,适合做学术研究

图数据可视化工具

  • AntV 可视化
  • Echarts 可视化
  • GraphGL

图数据库

Neo4j

图机器学习应用

  • 最短路径搜索和查找
  • 分析节点的重要性 PageRank
  • 社交群体检测
  • 社交网络,可能认识的人
  • 相似度分析
  • Embeddings 节点映射为一个向量,作为后续的机器学习

不同的任务

  • 图层面:分子是否有毒,生成新的分子结构
  • 节点层面:信用卡欺诈
  • 子图层面:用户聚类
  • 边层面:推荐可能认识的人

在这里插入图片描述

图数据挖掘应用

  • ReadPaper
  • Connected paper
  • Bios
  • 刘焕勇

Google 插件

Hypercrx

OpenRank
在这里插入图片描述
在这里插入图片描述

1. 图的基本表示

  • 图的本体设计
  • 图的种类(有向,无向,异质,二分,连接带权重)
  • 节点连接数
  • 图的基本表示-邻接矩阵
  • 图的基本表示-连接列表和邻接列表
  • 图的连通性

1.1 本体图 Ontology

如何设计图的本体,取决于将来想解决什么问题。

抽象图叫做本体图

1.2 无向图

对称的,互相的,双向的

比如:

  • 合作关系
  • Facebook 的好友关系

1.3 有向图

比如:

  • 打电话
  • Facebook 的关注

1.4 异质图

节点有不同的类型,连接也有不同的类型

1.5 二分图,比较特殊的异质图

只有两种类型的节点

比如:

  • 论文和作者
  • 演员和电影
  • 用户和电影(评分)
  • 菜谱和食材

展开二分图

在这里插入图片描述
将 U 和 V 各自的连通关系分别进行分析挖掘。

1.6 Node Degree

在这里插入图片描述
使用 Node Degree 可以展示一个节点的重要性

Note:
为什么要把图表示成矩阵的形式?

  • 保留了图全部的信息
  • 适合矩阵加速运算

稀疏矩阵适合连接列表和邻接列表的表示。

1.7 其他图

  • 带权边图
  • Self-edges
  • Multigragh,两个节点有多条道路

1.8 图的术语

强连通:有向图任意两个节点可以相互触达

弱联通:忽略方向是联通的

强连通域:
在这里插入图片描述

2. 传统图机器学习和特征工程

2.0 图机器学习基本任务

  • 节点层面
  • 连接层面
  • 图层面

2.1 图机器学习

目标:对一系列目标进行预测

可选设计:

  • 将节点变为 d 维向量
  • 全图变成 d 维向量

让算法去拟合一个边界

2.2 节点层面的特征工程

给定一个图 G = ( V , E ) G=(V,E) G=(V,E)

学习一个函数 f : v → R f:v\to R f:vR

  • 输入某个节点的 d 维向量,输出该节点是某类的概率

由已知的节点去预测未知节点,称作半监督节点分类问题(训练时用到了未标记节点的特征)
在这里插入图片描述

2.2.1 特征向量中心性

https://blog.csdn.net/myy3075/article/details/87948777

2.3 连接层面的特征工程

通过已知连接补全未知连接

  • 直接提取 link 的特征,把 link 变成 d 维向量(√)
  • 把 link 的两端的节点的 d 维向量拼起来(×)丢失了 link 本身的连接结构信息

a.基于两节点距离:

两点间最短路径的长度 distance-based feature

缺点:这种方式的问题在于没有考虑两个点邻居的重合度(the degree of neighborhood overlap),如B-H有2个共同邻居,B-E和A-B都只有1个共同邻居。

b.基于两节点局部连接信息

共同的邻居的问题在于度数高的点对就会有更高的结果,Jaccard的系数是其归一化后的结果。Adamic-Adar指数在实践中表现得好。在社交网络上表现好的原因:有一堆度数低的共同好友比有一堆名人共同好友的得分更高。

c.基于两节点在全图的连接信息

local neighborhood overlap的限制在于,如果两个点没有共同邻居,值就为0。

但是这两个点未来仍有可能被连接起来。所以我们使用考虑全图的global neighborhood overlap来解决这一问题,主要计算Katz index。
Katz index:计算点对之间所有长度路径的条数
计算方式:邻接矩阵求幂
邻接矩阵的k次幂结果,每个元素就是对应点对之间长度为k的路径的条数

2.4 全图层面的特征工程

图级别特征构建目标:找到能够描述全图结构的特征。

2.4.1 Kernel Methods

类似于SVM的核函数,定义好以后,通过核函数矩阵的映射,就可以按照之前的方式来处理了。

2.5 NetworkX 实战

3. 图嵌入表示学习

将节点变成一个低维向量用于机器学习算法

3.1 DeepWalk

类似 Word2Vec,在图上随机游走,游走序列可以看成一个句子,一个节点可以看成一个单词。

采用类似 skip-gram 的算法,输入中心节点,预测周围临近节点

算法步骤:

  1. 输入图
  2. 随机游走
  3. 训练嵌入向量
  4. 为了解决分类个数过多的问题,加一个分层 Softmax(霍夫曼编码数),每次分类可以排除一半的类别数
  5. 得到每个节点的嵌入向量

Note:
贡献:

  • 首个将深度学习和 NLP 领域的知识用于图机器学习
  • 在稀疏标注节点分类场景下,嵌入性能卓越
    缺陷:
  • 均匀随机游走,没有偏向的游走方向(Node2Vec 改进)
  • 需要大量随机游走序列训练
  • 基于随机游走,管中窥豹。距离较远的两个节点无法相互影响。看不到全图信息(GNN 改进)
  • 无监督,仅编码图的连接信息,没有利用节点的属性特征
  • 没有真正用到神经网络和深度学习

3.2 Node2Vec

在这里插入图片描述

在这里插入图片描述
Node2Vec 采用两种游走策略:

  • DFS:同质社群(社交网络)
  • BFS:节点功能角色(中枢,桥接,边缘)

在这里插入图片描述

抽样算法:https://www.keithschwarz.com/darts-dice-coins/

alibaba 商品推荐:
在这里插入图片描述

Note:
在这里插入图片描述

4. PageRank

TOFIX

在这里插入图片描述
转移矩阵每一列非零位置的概率相等,且和为 1。

PageRank 收敛性分析:
在这里插入图片描述

Ergodic theory

5. 半监督节点分类:标签传播和消息传递

TOFIX

6. GNN

将节点映射为 d 维向量,向量具有三个特征:

  • 低维:向量维度远小于节点数
  • 连续:每个元素都是实数(有正有负)
  • 稠密:每个元素都不为 0

表示学习:从数据中提取最少必要信息

图嵌入、节点表示学习:把节点映射为低维连续稠密向量

向量点乘数值(余弦相似度)反映节点的相似度

邻接矩阵包含了所有的节点信息和连接信息。

Naive Approach

Note:
邻接矩阵既然包含了节点和相互连接的所有信息,那么能否直接将邻接矩阵输入神经网络呢?

把每一行对应的特征输入到神经网络中去。

这样会出现几个缺点:

  • 节点过多内存会炸
  • 参数量太大,容易过拟合
  • 新节点加入,需要重新训练,无法进行泛化
  • 不具备 “变换不变性”

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

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

相关文章

月入3000万,23岁美国女网红用AI分身交1000多男友!谈恋爱按分钟计费

来源 | 新智元 微信号:AI-era 【导读】这位23岁的女网红用GPT-4复刻了一个自己后,已经周入7万多美元了。不仅如此,短短几天内,候补名单上就排了差不多1万名男施主。 各种逼真的AI工具火了之后,各路心思活泛的选手都开…

Spring Boot 项目【前后端分离】 之架子搭建

Spring Boot 项目【前后端分离】 之架子搭建 注意如果看过我ssm项目的博客的项目的前端可以不需要看或者快速看一下即可 比较页面什么的一样主要是技术栈不同. 技术栈 - 使用了前后端分离,前端的主体框架Vue3+后端的基础框架Spring-Boot 1.前端技术栈…

SQL: STUFF()和FOR XML PATH的使用

STUFF(param1, startIndex, length, param2) 将param1中自startIndex(SQL中都是从1开始,而非0)起,删除length个字符,然后用param2替换删掉的字符。 示例: select STUFF(abcdefg,1,0,1234) --结果为1234abcdefg select ST…

每日一题163——矩阵置零

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]] 示例 2: 输入&…

Docker与Docker-compose安装Vulfocus Vulhub漏洞环境

目录 一.docker 和 docker-compose 介绍: docker: docker-compose: 二者的区别: 二者的联系: 二者的总结: 二.Centos 7安装Docker 三.Centos 7安装docker-compose 四.docker-compose搭建Vulhub漏…

Linux安装MySQL后无法通过IP地址访问处理方法

本文主要总结Linux安装Mysql后,其他主机访问不了MySQL数据库的原因和解决方法 环境说明: MySQL 5.7.30CentOS Linux release 7.6.1810 (Core) 创建完Mysql数据库后可以查看mysql 日志获取root 用户登录密码 [rootlocalhost mysql-5.7.30]# cat /var/l…

2 机器学习知识 Softmax回归 deep learning system

机器学习算法的三个主要部分 The hypothesis class: 模型结构loss fuction 损失函数An optimization method:在训练集上减小loss的方法 多分类问题 训练数据: x ( i ) ∈ R n , y ( i ) ∈ 1 , . . . , k f o r i 1 , . . . m x^{(i)}\in \mathbb{R}…

在Fedora-Workstation-Live-x86_64-36-1.5中编译安装信使iptux0.7.6

在Fedora-Workstation-Live-x86_64-36-1.5中编译安装信使iptux0.7.6 https://github.com/iptux-src/iptux/tree/v0.7.6 下载信使iptux-0.7.6.zip,类似飞鸽传书ipmsg,已经尝试过0.8.3版本不成功 [rootfedora ~]# unzip /home/ruhong/download/iptux-0.7…

usb摄像头驱动-core层driver.c

usb摄像头驱动-core层driver.c 文章目录 usb摄像头驱动-core层driver.cusb_bus_typeusb_device_matchusb_uevent usb_register_driver 在ubuntu中接入罗技c920摄像头打印的信息如下: 在内核中,/driver/usb/core/driver.c 文件扮演了 USB 核心驱动程序管…

自动化遍历测试技术之android maxim遍历测试工具

这里写目录标题 一、问题1、例如app中存在问题2、解决方法3、改进策略4、自动遍历测试5、常见遍历工具与技术 二、android maxim 遍历测试工具策略使用环境预备命令行模式策略 三、android fastbot 遍历测试工具使用 一、问题 业务线众多 业务流程复杂 依赖传统券商一些资源 …

2023年最新软件测试面试题,自动化测试面试题,接口自动化测试面试题详解,对标大厂。

【软件测试面试题】 1、你的测试职业发展是什么?   测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程…

软件测试之性能测试

性能测试是与时间相关的。 主要内容 性能测试基础概念和术语介绍性能测试模型性能测试分类介绍性能测试实施与管理 性能测试基础 为什么要进行性能测试(WHY)(最重要) 应用程序是否能够很快的响应用户的要求?应用程…

【C程序设计】——程序=算法+数据结构

目录 🍊🍊一、什么是算法? 🍊🍊二、简单的算法举例 🍊🍊三、算法的特性 🍊🍊四、怎样表示一个算法 一个程序主要包括以下两方面的信息: (1&am…

软件测试项目实战经验附视频以及源码【商城项目,app项目,电商项目,银行项目,医药项目,金融项目】

前言: ​​大家好,我是凡叔。 很多初学的测试小白都在烦恼找不到合适的项目去练习,这也是难倒大部分测试小白的一个很常见的问题,项目经验确实是每一个测试非常宝贵的经验!这里凡叔给大家找了一些常用的项目合集&…

数据结构与算法十二 图进阶

一 有向图 在实际生活中,很多应用相关的图都是有方向性的,最直观的就是网络,可以从A页面通过链接跳转到B页面,那么a和b连接的方向是a->b,但不能说是b->a,此时我们就需要使用有向图来解决这一类问题,它和我们之前…

行业集体迈进全屋智能,华为的“空间智能跃升”独领风骚?

智能家居近年来发展飞速,市场正在从最初的单品智能向全屋联动智能切换。 据IDC数据,2022年中国全屋智能市场销售额突破100亿元,同比增长54.9%。一个住宅往往由卧室、客厅、厨房、卫生间、餐厅等多个基本功能区组成,全屋智能便是在…

企业进行产品管理内训至少有这5大好处

企业需要重视产品管理,建立完善的产品管理流程和标准,提高员工的产品管理能力,以应对各种挑战和机遇,在企业进行内训是最好的方式。 企业进行产品管理内训的目的是为了提高员工的产品管理能力,从而实现以下几个方面的好…

ChatGPT创始人采访 | GPT-4报告中文版

关于采访OpenAl Co创始人 Greg Brockman的要点记录分析,先介绍Gpt-4的基本内容,然后说下采访的重点部分,最后读一下154页Gpt-4的技术报告,这个大家可以在官网下载文档后,百度翻译支持每人限量一次的PDF翻译。面对文心一…

图(课堂笔记)

图的引入与术语 两种图 1. 有向图(Digraph):Each edge of arc has an associated direction. 2. 无向图(non-directed graph):Every edge or arc is two-way. 简单图是一种特殊的无向图。无向图没有自环…

即时设计是一款什么软件,有什么优势

即时设计是什么软件 即时设计是一款「专业UI设计工具」,不受平台限制,打开浏览器即可开始创作。它不仅具备精细化设计能力,还自带丰富的共享设计资源,同时支持多人实时协作、设计成果一键分享交付,让设计师在工作中每…