cs224w课程学习笔记-第10课
cs224w课程学习笔记-第10课 异构图
- 前言
- 一、异构图
- 1、异构图定义
- 2、异构图与同构图
- 二、异构图下的GNN
- 1、GCN扩展至RGCN
- 1.1 RGCN原理
- 1.2 异构图的任务预测特点
- 1.3 异构图任务预测基础案例
- 2、完整的异构图GCN
- 三、异构图下的Transformer
前言
异构图的定义是节点内部存在类型不同,边的内部存在类型不同信息,那么类型不同的信息是否可以做特征引入图学习中,由此异构图可做同构图对待?若必须视为异构图,其图学习又如何进行?本节课将介绍异构图的基本定义,以及其与同构图的关系,如何使用GCN实现对异构图的嵌入学习,如何使用Transform实现对异构图的嵌入学习.
一、异构图
1、异构图定义
当图中的节点,边有不同类型存在时,可视为异构图,如下图所示,其节点有两种类型,边也有两种类型,若考虑其连接类型则(开始节点类型,边类型,结束节点类型)一共8种.因此从连接类型上看,节点类型数为n,边类型数为m,其连接类型数为(n^2 *m).

因为异构图多了类型,由此其图定义G(V,E),将增加节点类型 τ \tau τ 与边类型 ϕ \phi ϕ,其具体定义如图所示

常见异构图场景有:医药知识图谱,事件图,电商图,学术图等
2、异构图与同构图
实际上我们将类型信息转为onehot,作为特征引入到同构图中即可,那什么时候我们需要将其作为异构图对待呢?
- 不同类型节点/边有不同维度的特征:比如作者节点5维特征,文章节点4维特征
- 先验知识表明不同关系类型其交互模式存在差异:比如英语翻译法语,英语翻译中文
总体来说异构图所表达的信息更多,相应的计算量也更大.
二、异构图下的GNN
1、GCN扩展至RGCN
1.1 RGCN原理
首先回顾一下GCN的计算核心原理,消息传递,然后聚合,其中传递的参数是共享的.

现在**同构图有不同关系类型,其消息传递过程是不是也应该按照关系类型进行区分呢?**自然而然想到一个关系类型给一组参数,这样消息传递过程变为如下形势.

但是每一个关系类型就引入一组参数的方式可能会造成过拟合,因为前面说过关系类型随着节点类型的增长而指数增加.因此可以通过下面两种方法对参数进行正则化:
- Use Block Diagonal Matrices (使用块对角矩阵):如下图所示,除对角的小块外的参数均0,这减少了模型训练时的参数量,同时在结构上仅对相关子类型的信息进行聚合;这防止了模型对多个无关或噪声信息的过拟合.
- Basis/Dictionary Learning (基/字典学习):将 W r W_r Wr表示为某些共享的"基"或"字典"的线性组合, W r = ∑ b = 1 B a r b V b W_r= \sum_{b=1} ^ {B}a_{rb}V_b Wr=∑b=1BarbVb,其中V是基矩阵,一共B个,a是每个基矩阵在r关系类型上的权重.通过该种方式也可以实现参数共享与压缩,有效地降低整体模型的复杂性。

1.2 异构图的任务预测特点
节点任务没有什么特别的,仍然是获得嵌入后进行预测;边任务在训练流程上有些差异,流程回顾见cs224w课程学习笔记-第6课下的数据集划分里有,其差别在训练集,验证集,测试集划分时需要按关系类型配置多套,如下图所示

同时在做负样本生成时,也需要区分关系类型,其具体方法如下所示,目标是(E,r3,A),则负样本可以通过改变尾部节点得到,添加负样本的目的是为了让模型的鲁棒性更强.

在评估时,有了负样本,因此目标是要负样本评分低,正样本评分高 ,由此loss表示为如下形式

在验证模型性能时,因为都是打分因此需要使用相应的评价指标,如Hits@k方法.MRR方法.

以Hit@k为例,k表示排前K名,如下图所示,正边为(E,r3,D),在评分排名中排在第2名,使用Hit@2指标,则正边排名小于等于2,为1,其排名倒数为1/2.通过对所有正边的指标计算,可知其排名倒数和越大越好,Hit@2指标和越大越好.

边任务差异性内容就到此结束啦,接下来看一个具体的异构图应用案例
1.3 异构图任务预测基础案例
任务背景说明:
使用微软学术图的ogbn_mag数据集,预测每篇论文的所属会议
这是一个节点分类任务,考虑349个会议,即为349类,通过消息传递,论文节点的信息得到综合表达的嵌入,对嵌入进行分类预测得到该应用输出.其下图展示了该案例的图数据构成(节点类型,边类型)与应用不同算法的表现,可以看到sota算法是一个联合算法,不止是简单的GCN,前面还有一步嵌入算法,这个方法在下一节课中进行阐述.

2、完整的异构图GCN
由前面的内容可以得到GCN如何扩展为RGCN,接下来看实践中两者的不同
首先是消息传递原理的变化,前面介绍RGCN的原理里已说明;
然后是层级间的连接,其前后处理mlp处理的差异是根据节点类型数,边类型数匹配多个mlp进行并行处理(类似moe结构);
其次是图数据处理,特征上统计类特征区分类型进行计算,子图采样上根据每个类型进行近邻采样或者全图随机采样;
最后是任务预测上,嵌入结果在预测应用时考虑不同类型对应不同参数进行预测.

三、异构图下的Transformer
回忆一下其原理是注意力机制Q,K,V,同构图对不同边使用的是同一套QKV,对标GCN变RGCN的思想,直接扩为关系类型数的QKV套数(类比多条注意力),但是直接增加注意力头数,会让计算量激增,因此考滤将该方式分解为节点类型数与边类型数的注意力机制,这样的话若节点类型数为3,边类型数为2,则其关系类型数为332=18,而分解后的注意力集为3+3+2=8.
其具体分解原理如下图所示,

其公式如下所示,我们知道GAT与GCN的差异就在权重上,因此扩展到异构图上,RGAT与RGCN的差异也是在权重上.至此异构图的Transformer便扩展完成啦.

应用于基线数据可以看到在参数量更少的情况下,异构图的GAT(HGT)表现效果更好.

相关文章:
cs224w课程学习笔记-第10课
cs224w课程学习笔记-第10课 异构图 前言一、异构图1、异构图定义2、异构图与同构图 二、异构图下的GNN1、GCN扩展至RGCN1.1 RGCN原理1.2 异构图的任务预测特点1.3 异构图任务预测基础案例 2、完整的异构图GCN三、异构图下的Transformer 前言 异构图的定义是节点内部存在类型不…...
OpenCV 图形API(26)图像滤波-----方框滤波函数boxFilter()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 使用方框滤波器模糊图像。 该函数使用以下内核来平滑图像: K α [ 1 1 … 1 1 1 … 1 ⋮ ⋮ ⋱ ⋮ 1 1 … 1 ] K \alpha \begin{b…...
安卓手机怎样开启双WiFi加速
1. 小米/Redmi手机 路径: 设置 → WLAN → 高级设置 → 双WLAN加速 操作: 开启功能后,可同时连接一个2.4GHz WiFi和一个5GHz WiFi(或两个不同路由器)。 可选择“智能选择”或手动指定辅助网络。 2. 华为/荣耀手机…...
大模型上下文协议MCP详解(2)—核心功能
版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl1. 标准化上下文交互技术 1.1 实时数据接入能力 MCP(Model Context Protocol)通过标准化的接口,为 AI 模型提供了强大的实时数据接入能力,使其能够快速获取和处理来自不同数据源的实时信息。…...
剑指Offer(数据结构与算法面试题精讲)C++版——day8
剑指Offer(数据结构与算法面试题精讲)C版——day8 题目一:链表中环的入口节点题目二:两个链表的第1个重合节点题目三:反转链表附录:源码gitee仓库 题目一:链表中环的入口节点 这道题的有如下三个…...
【Qt】QxOrm:下载、安装、使用
1、下载源码 github地址:https://github.com/QxOrm/QxOrm 稳定版本下载:https://github.com/QxOrm/QxOrm/releases/tag/1.5.0 2、编译源码 QxOrm支持cmake编译(CMakeLists.txt)、Qt pro工程编译(QxOrm.pro) 以 QxOrm.pro 为例,编译生成的库,没有在 build-QxOrm-1.5…...
CISCO组建RIP V2路由网络
1.实验准备: 2.具体配置: 2.1根据分配好的IP地址配置静态IP: 2.1.1PC配置: PC0: PC1: PC2: 2.1.2路由器配置: R0: Router>en Router#conf t Enter configuration…...
【数学建模】(智能优化算法)鲸鱼优化算法(Whale Optimization Algorithm)详解与应用
鲸鱼优化算法(Whale Optimization Algorithm)详解与应用 文章目录 鲸鱼优化算法(Whale Optimization Algorithm)详解与应用1. 引言2. 算法原理2.1 生物学基础2.2 数学模型[^3]1. 包围猎物阶段2. 气泡网攻击(螺旋更新)3. 随机搜索猎物(全局探索…...
【深度洞察】解码饮料行业破局点:场景革命
当东鹏特饮以 “大瓶装 防尘盖” 精准解决货车司机的场景化需求,当农夫山泉通过 “冷藏版东方树叶” 打开年轻白领的早餐场景 —— 这些现象级案例背后,是饮料行业底层逻辑的深刻变革:真正的市场增量,藏在对消费场景的极致拆解中…...
工业科学级天文相机:跨界融合的高精密成像解决方案
随着国内科技的快速发展,工业相机领域正悄然兴起一场"天文级"的技术革命。这类兼具工业设备可靠性与天文观测精度的特殊相机,正在半导体制造、天文观测、空间探测等领域开辟新的应用疆域。其核心技术突破不仅体现在传感器性能的提升࿰…...
回文日期2
#include <bits/stdc.h> using namespace std; bool huiwen(int date) {int tempdate;int r0;while(temp>0){rr*10temp%10;temp/10;}return dater; }int main() {// 请在此输入您的代码int n,m;cin>>n>>m;int tempfn/100,tempem/100;int yearfn/10000,mon…...
Ubuntu搭建Pytorch环境
Ubuntu搭建Pytorch环境 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Ubuntu搭建Pytorch环境前言一、Anaconda二、Cuda1.安装流程2、环境变量&#…...
图书管理系统(Python)
运行结果: 源代码: # 定义一个图书类 class Book: def __init__(self, title, author, isbn): self.title title self.author author self.isbn isbn def show_info(self): print(f"{self.title},{self.author},{self.isbn}") # 图书列表…...
大模型本地部署系列(3) Ollama部署QwQ[阿里云通义千问]
大家好,我是AI研究者, 今天教大家部署 一个阿里云通义千问大模型。 QwQ大模型简介 QwQ是由阿里云通义千问(Qwen)团队推出的开源推理大模型,专注于提升AI在数学、编程和复杂逻辑推理方面的能力。其核心特点包括&#x…...
操作系统 4.1-I/O与显示器
外设工作起来 操作系统让外设工作的基本原理和过程,具体来说,它概括了以下几个关键步骤: 发出指令:操作系统通过向控制器中的寄存器发送指令来启动外设的工作。这些指令通常是通过I/O指令(如out指令)来实现…...
前端-Vue3
1. Vue3简介 2020年9月18日,Vue.js发布版3.0版本,代号:One Piece(n 经历了:4800次提交、40个RFC、600次PR、300贡献者 官方发版地址:Release v3.0.0 One Piece vuejs/core 截止2023年10月,最…...
Facebook账号类型一览
对于跨境出海从业者来说,Facebook是必不可少的内容营销和广告投放平台。针对Facebook的营销策略和发挥空间都很丰富,因此了解Facebook账号的类型、特点、适用场景和相关工具还是很有用的。 一、账号类型及特点 1.小黑号 无主页、无好友、无历史操作&am…...
Kotlin 通用请求接口设计:灵活处理多样化参数
在 Kotlin 中设计一个通用的 ControlParams 类来处理不同的控制参数,有几种常见的方法:方案1:使用密封类(Sealed Class) sealed class ControlParamsdata class LightControlParams(val brightness: Int,val color: S…...
Java学习手册:Java基本语法与数据类型
Java语言以其简洁明了的语法和强大的数据类型系统而闻名。掌握Java的基本语法和数据类型是成为一名合格Java开发者的第一步。本文将深入探讨Java的基本语法结构和数据类型,帮助读者打下坚实的基础。 Java的基本语法 Java语言的语法设计简洁而强大,强调…...
通过扣子平台将数据写入飞书多维表格
目录 1.1 创建飞书开放平台应用 1.2 创建飞书多维表格 1.3 创建扣子平台插件 1.1 创建飞书开放平台应用 1.1.1 打开地址:飞书开放平台,点击创建应用 注:商店应用需要申请ISV资质,填写企业主体信息,个人的话&#x…...
C++-Mongoose(2)-https-server-openssl
OpenSSL生成HTTPS自签名证书 - 简书 1.Openssl windowsubuntu下载http://www.openssl.vip/download1.VS2019编译OpenSSL 2.VS2019编译第一个OpenSSL项目 1.ubuntu编译OpenSSL 3.0 2.编写第一个OpenSSL 1.windows下编译OpenSSL 安装vs2019 perl nasm安装activePerl…...
【GDB】调试程序的基本命令和用法(Qt程序为例)
1. 引言 GDB(GNU Debugger)是一个强大的命令行调试工具,它可以帮助开发者在程序运行时查找和修复错误。当调试Qt程序时,GDB同样适用,并且能够帮助开发者定位诸如数组越界挂死等复杂问题。 2. 基本命令 2.1 启动GDB …...
力扣DAY46-50 | 热100 | 二叉树:展开为链表、pre+inorder构建、路径总和、最近公共祖先、最大路径和
前言 中等 、困难 √,越来越有手感了,二叉树done! 二叉树展开为链表 我的题解 前序遍历树,当遇到左子树为空时,栈里pop节点,取右子树接到左子树位置,同时断开该右子树与父节点的连接&#x…...
服务器DNS失效
服务器异常 xx.t.RequestException: java.net.UnknownHostException: test.ac.xxxx.cn现象分析 本地测试正常,说明域名本身无问题。服务器 DNS 解析异常,导致 UnknownHostException。**服务器可正常解析 ****baidu.com**,说明网络正常&#…...
用excel做九乘九乘法表
公式: IF($A2>B 1 , 1, 1,A2 & “" & B$1 & “” & $A2B$1,”")...
企业数据安全如何保障?深度解析AIGC系统源码本地化部署
—从数据加密到权限管控,构建企业级AI安全防线 企业AIGC面临的5大数据安全风险 1. 数据出境违规 典型场景: 使用ChatGPT处理客户信息 → 数据经美国服务器中转 → 违反《个人信息保护法》第38条某金融公司因通过Midjourney生成宣传图,导致产…...
《妖风》-来自DeepSeek
《妖风》 周明揉了揉酸胀的眼睛,电脑屏幕上的Excel表格已经模糊成一片绿色的小格子。窗外,三月的阳光懒洋洋地洒进来,带着春天特有的那种让人昏昏欲睡的温暖。办公室里中央空调的嗡嗡声像是一首催眠曲,他的眼皮越来越重。 "…...
鬼泣:蓄力攻击
文章目录 蓄力攻击:有两个动作,蓄力时触发蓄力动作,攻击时触发攻击动作1.蓄力动作2.攻击动作 浮空上挑1.蓄力对齐位置 2.攻击 下劈斩1.蓄力对齐位置 2.攻击 beiwuf debug事件分发器发送:调用发送器即可发送消息接收:绑…...
企业指标设计方法指南
该文档聚焦企业指标设计方法,适用于企业中负责战略规划、业务运营、数据分析、指标管理等相关工作的人员,如企业高管、部门经理、数据分析师等。 主要内容围绕指标设计展开:首先指出指标设计面临的困境,包括权责不清、口径不统一、缺乏标准规范、报表体系混乱、指标…...
CSS学习02 动态列数表格开发,解决多组数据布局与边框重合问题
概要 在前端开发中,表格常用于展示结构化数据。当数据组的字段数量不统一时(如有的行包含 3 组数据,有的行包含 2 组或 1 组),传统固定列数的表格会出现结构错位、边框重合等问题。本文通过 HTML/CSS 规范方法&#x…...
