CS224W—07 Machine Learning with Heterogeneous Graphs

news/2024/9/19 0:48:57/ 标签: 机器学习, 人工智能, GNN

CS224W—07 Machine Learning with Heterogeneous Graphs

本节中,我们将学习如何在异构图中进行图神经网络学习。

Heterogeneous Graphs

图中的节点类型/边类型不同,就会形成一个异构图(Heterogeneous Graph),例如下图中的节点有两种类型:Paper节点/Author节点;第二个图中的边有两种类型:Cite/Like;也可以是多种节点和边的结合,如第三个图。

image-20240826093437463

为了更好的捕捉节点和边的交互,使用relation type来描述一条边:

Relation Type: (node_start, edge, node_end)
image-20240826093628369

异构图定义为
G = ( V , E , τ , ϕ ) G = (V, E, \tau, \phi) G=(V,E,τ,ϕ)

  • 具有节点类型 τ ( v ) \tau(v) τ(v) 的节点 v ∈ V v \in V vV

  • 具有边类型 ϕ ( u , v ) \phi(u, v) ϕ(u,v) 的边 ( u , v ) ∈ E (u, v) \in E (u,v)E

  • e e e 的relation type是一个元组: r ( u , v ) = ( τ ( u ) , ϕ ( u , v ) , τ ( v ) ) r(u, v) = \left(\tau(u), \phi(u, v), \tau(v)\right) r(u,v)=(τ(u),ϕ(u,v),τ(v))

观察:我们也可以将节点和边的类型视为特征 示例:为节点和边添加一位有效指示器

  • 给每个“作者节点”附加特征 [1, 0];
  • 给每个“论文节点”附加特征 [0, 1]
  • 同样,我们可以为不同类型的边分配边特征;然后,异构图简化为标准图

那我们何时需要异构图?

  • 情景1:不同的节点/边类型有不同形状的特征
  • 情景2:不同的relation type代表不同类型的interaction
    • 比如 (English, translate, French) 和 (English, translate, Chinese) 需要不同的模型。

异构图的计算成本是很高的,也有许多方法将异构图转换为同构图来进行计算。

Relational GCN (RGCN)

论文地址:https://arxiv.org/pdf/1703.06103

经典的GCN:

image-20240826094418287

对于只有一种relation的有向图:

image-20240826094623823

对于有多种relation types的图,不同的relation type 使用不同的神经网络参数:

image-20240826094714556 image-20240826094821529

RGCN Definition

h v ( l + 1 ) = σ ( ∑ r ∈ R ∑ u ∈ N v r 1 C ν , r W r ( l ) h u ( l ) + W 0 ( l ) h v ( l ) ) \mathbf{h}_v^{(l+1)}=\sigma\left(\sum_{r\in R}\sum_{u\in N_v^r}\frac{1}{C_{\nu,r}}\mathbf{W}_r^{(l)}\mathbf{h}_u^{(l)}+\mathbf{W}_0^{(l)}\mathbf{h}_v^{(l)}\right) hv(l+1)=σ rRuNvrCν,r1Wr(l)hu(l)+W0(l)hv(l)

Message:

  • 每个给定relation ( r ) 的领居消息:
    m u , r ( l ) = 1 c v , r W r ( l ) h u ( l ) , c v , r = ∣ N v r ∣ \mathbf{m}_{u,r}^{(l)}=\frac1{c_{v,r}}\mathbf{W}_r^{(l)}\mathbf{h}_u^{(l)}, \quad c_{v,r}=|N_v^r| mu,r(l)=cv,r1Wr(l)hu(l),cv,r=Nvr

  • 自身消息:
    m v ( l ) = W 0 ( l ) h v ( l ) \mathbf{m}_v^{(l)}=\mathbf{W}_0^{(l)}\mathbf{h}_v^{(l)} mv(l)=W0(l)hv(l)

Aggregation:

  • 对来自邻居和自身的消息进行求和,然后进行激活:
    h v ( l + 1 ) = σ ( S u m ( { m u , r ( l ) , u ∈ N ( v ) } ∪ { m v ( l ) } ) ) \mathbf{h}_v^{(l+1)}=\sigma\left(\mathrm{Sum}\left(\left\{\mathbf{m}_{u,r}^{(l)},u\in N(v)\right\}\cup\left\{\mathbf{m}_v^{(l)}\right\}\right)\right) hv(l+1)=σ(Sum({mu,r(l),uN(v)}{mv(l)}))

RGCN Scalability

每种关系都有 L L L 个矩阵: W r ( 1 ) , W r ( 2 ) ⋯ W r ( L ) W_r^{(1)}, W_r^{(2)} \cdots W_r^{(L)} Wr(1),Wr(2)Wr(L)。每个 W r ( l ) W_r^{(l)} Wr(l) 的大小是 d ( l + 1 ) × d ( l ) d^{(l+1)} \times d^{(l)} d(l+1)×d(l) d ( l ) d^{(l)} d(l) 是第 l l l 层的隐藏维度。

参数数量相对于关系数量的快速增长!过拟合成为一个问题。

两种方法来正则化权重 W r ( l ) W_r^{(l)} Wr(l)

  1. 使用分块对角矩阵( Block Diagonal Matrices)
  2. 基/字典学习(Basis/Dictionary learning)
Block Diagonal Matrices

关键:使权重变得稀疏!使用分块对角矩阵对 W r W_r Wr 进行稀疏化

image-20240827204151412

限制:只有邻近的神经元/维度可以通过 W W W 进行交互。 如果使用 B B B 个低维矩阵,则参数数量从 d ( l + 1 ) × d ( l ) d^{(l+1)} \times d^{(l)} d(l+1)×d(l) 减少到 B × d ( l + 1 ) B × d ( l ) B B \times \frac{d^{(l+1)}}{B} \times \frac{d^{(l)}}{B} B×Bd(l+1)×Bd(l)

Basis Learning

关键:在不同的relation之间分享权重

将每种关系的矩阵表示为基变换的线性组合:
W r = ∑ b = 1 B a r b ⋅ V b , W_{r} = \sum_{b=1}^{B} a_{r b} \cdot V_{b}, Wr=b=1BarbVb,
其中 V b V_{b} Vb 在所有关系中共享。

  1. V b V_{b} Vb 是基矩阵。

  2. a r b a_{r b} arb 是矩阵 V b V_{b} Vb 的重要性权重。

现在每种关系只需要学习 { a r b } b = 1 B \{a_{r b}\}_{b=1}^{B} {arb}b=1B,这是 B B B 个标量。

Example: Entity/Node Classification

任务:对于给定节点,预测其标签

如果我们从 k k k 个类别中预测节点 A 的类别,取最后一层(预测头): h A ( L ) ∈ R k h_{A}^{(L)} \in \mathbb{R}^{k} hA(L)Rk h A ( L ) h_{A}^{(L)} hA(L) 中的每个项代表该类别的概率。

image-20240827205454842

Link Prediction

在异质图中,将每种关系对应的边都分成 training message edges, training supervision edges, validation edges, test edges 四类。

假设 ( E , r 3 , A ) \left(E, r_{3}, A\right) (E,r3,A)training supervision edge,所有其他边都是training message edges。使用RGCN对 ( E , r 3 , A ) \left(E, r_{3}, A\right) (E,r3,A) 进行评分:

  • E E E A A A 的最后一层: h E ( L ) h_{E}^{(L)} hE(L) h A ( L ) ∈ R d h_{A}^{(L)} \in \mathbb{R}^{d} hA(L)Rd
  • 关系特定的评分函数 f r f_{r} fr R d × R d → R \mathbb{R}^{d} \times \mathbb{R}^{d} \rightarrow \mathbb{R} Rd×RdR
    • 例子: f r 1 ( h E , h A ) = h E T W r 1 h A , W r 1 ∈ R d × d f_{r_1}\left(h_E, h_A\right) = h_E^T W_{r_1} h_A, W_{r_1} \in \mathbb{R}^{d \times d} fr1(hE,hA)=hETWr1hA,Wr1Rd×d

image-20240829092442925

训练阶段:用 training message edges 预测 training supervision edges

  1. 用RGCN给training supervision edge ( E , r 3 , A ) (E,r_3,A) (E,r3,A) 打分
  2. 通过perturb supervision edge 得到negative edge :例如perturb ( E , r 3 , A ) (E,r_3,A) (E,r3,A) 得到 ( E , r 3 , B ) (E,r_3,B) (E,r3,B)
  3. 使用GNN计算 negative edge的分数
  4. 优化交叉熵损失函数,使 training supervision edge 上得分最高,negative edge 上得分最低:
    1. ℓ = − log ⁡ σ ( f r 3 ( h E , h A ) ) − log ⁡ ( 1 − σ ( f r 3 ( h E , h B ) ) ) \ell=-\log\sigma\left(f_{r_3}(h_E,h_A)\right)-\log(1-\sigma\big(f_{r_3}(h_E,h_B))\big) =logσ(fr3(hE,hA))log(1σ(fr3(hE,hB))) σ : S i g m o i d \sigma: Sigmoid σ:Sigmoid

验证阶段:用 training message edges 和 training supervision edges 预测 validation edges: ( E , r 3 , D ) (E,r_3,D) (E,r3,D) ( E , r 3 , D ) (E,r_3,D) (E,r3,D) 的得分应该比所有不在 training message edges 和 training supervision edges 的点得分更高,比如 ( E , r 3 , B ) (E,r_3,B) (E,r3,B)

image-20240829093719538

具体步骤:

  1. 计算 ( E , r 3 , D ) (E,r_3,D) (E,r3,D) 的得分
  2. 计算所有 negetive edges 的得分 { ( E , r 3 , v ) ∣ v ∈ { B , F } } \{(E,r_3,v)|v\in\{B,F\}\} {(E,r3,v)v{B,F}}
  3. 获得 ( E , r 3 , D ) (E,r_3,D) (E,r3,D) 的排名
  4. 计算指标

http://www.ppmy.cn/news/1519559.html

相关文章

情侣日记2.0.0_多种姿势卡_增进情侣感情必备工具

一款专门为情侣互动、增进感情而开发的一款软件;乐趣激情的游戏互动让你和ta的感情快速升温、拉近彼此的距离;恋爱话术技巧、享受甜蜜热恋;真心话大冒险、激情骰子、情侣飞行棋,享受生活小情趣! 链接:http…

TensorFlow创建回归神经网络及Optimizer优化器

一.TensorFlow创建神经层 如图所示,通过该神经网络识别动物猫或狗,共包括输入层(Input Layer)、隐藏层3层(Hidden Layer)和输出层(Output Layer)。其中每个隐藏层神经元都有一个激励…

开学季儿童护眼台灯怎么选择?盘点央视公布十大护眼灯!

随着年级的升高和学习内容的增加,学生的休闲娱乐时间逐渐减少,相反,他们在书桌前度过的时间却越来越多。近年来,由于电子产品的广泛使用,我国青少年的用眼负担显著增加。据权威机构预测,到2050年&#xff0…

windows下安装docker操作步骤

因为最近dockerb被封,下载资源太不方便了,所以还是自己本地安装上docker吧 下载的地址一定不要找错,是这里 https://docs.docker.com/desktop/install/windows-install/ 电脑--“控制面板”--“程序与功能”--开启windows功能 “Hyper-V”…

实战docker第一天——windows安装docker,测试,并解决被墙办法

Docker 是一个开源的容器化平台,它允许开发者将应用程序及其所有依赖项打包在一个名为“容器”的单独环境中,从而确保应用程序在任何环境下都能一致地运行。以下是 Docker 的一些核心概念及其意义: 容器化:Docker 通过将应用程序及…

vrrp协议,主备路由器的选举

当VRRP备份组中的所有备份路由器(BACKUP)具有相同的优先级时,选举新的主路由器(MASTER)的过程将基于以下规则: IP地址优先:如果备份路由器的优先级相同,那么具有最高IP地址的路由器…

鱼哥好书分享活动第30期:一本书看完教你学习如何做B端竞品分析?《有效竞品分享》

鱼哥好书分享活动第30期:一本书看完教你学习如何做B端竞品分析?《有效竞品分享》 01 明确目标:案例分享:案例背景: 02 选择竞品:2.1 竞品的分类2.2 如何找到B端的竞品?1.找售前/销售沟通。2.各个…

C#护照查验接口集成示例、护照文字识别、外国人身份认证

护照查验是对护照有效性、真实性和符合相关出入境要求的确认过程。护照作为跨国旅行的重要身份证明文件,其查验是国际旅行中的一个必要程序。护照查验接口,支持查验出入境管理局签发护照的真伪,接口集成,简单高效便捷。 C#护照查验…

闲置物品|基于SprinBoot+vue的校园闲置物品交易平台(源码+数据库+文档)

校园闲置物品交易平台 目录 基于SprinBootvue的校园闲置物品交易平台 一、前言 二、系统设计 三、系统功能设计 5.1系统功能实现 5.2管理员模块实现 5.3用户模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xf…

Vue59 github案例 vue-resource版本

代码 List.vue <template><div class"row"><!-- 展示用户列表 --><div v-show"info.users.length" class"card" v-for"user in info.users" :key"user.login"><a :href"user.html_url&qu…

uniapp 生成H5 返回上一页 事件不执行

uniapp 生成H5 返回上一页事件不执行 背景&#xff1a;想根据返回的页面判断是否再返回一页 解决办法&#xff1a;uniapp&#xff0c;H5是先执行方法再返回&#xff0c;所以给事件增加延迟调用&#xff0c;如下代码 // 监听返回 onBackPress(e) {let pages getCurrentPages(…

数据结构(6.4_3)最短路径问题_Dijkstra算法

BFS的局限性 Dijkstra算法 1、 2、 3、 4、 如何使用数组信息 Dijkstra算法的时间复杂度 对比&#xff1a;Prim算法的实现思想 用于负权值带权图

docker实战基础三(Docker基础命令)

Docker 实战案例:构建镜像、查看容器运行信息、查看镜像构建信息 在这个实战案例中,我们将详细介绍如何构建Docker镜像、查看容器运行信息以及查看镜像构建信息。这些知识点非常实用,可以帮助你在实际工作中更好地利用Docker进行开发和运维。 一、构建Docker镜像 1. 创建…

【C++】C++STL 揭秘:Strng背后的底层逻辑

C语法相关知识点可以通过点击以下链接进行学习一起加油&#xff01;命名空间缺省参数与函数重载C相关特性类和对象-上篇 在上篇介绍string类的使用与理解&#xff0c;本篇将为大家来带关于string的底层实现逻辑&#xff0c;当然这不是一定库里面的实现逻辑。我们设计一个string…

Android13 动态控制状态栏和导航栏

前言 在Android系统中,状态栏(StatusBar)、导航栏(NavigationBar)以及下拉菜单(通常称为Notification Shade或Quick Settings Panel)构成了用户界面不可或缺的三个元素,它们共同为用户提供了丰富的信息显示与便捷的交互体验。具体而言,状态栏实时展示着时间、电池电量…

DMDSC集群安装

1. 环境描述 机器情况&#xff1a; 存储情况&#xff1a; 2. 部署前准备 2.1. 目录规划和创建 创建和规划目录在2个节点都需要执行。 DSC环境搭建的目录&#xff1a;/dmdba/dmdbms DM执行码和工具存放于目录&#xff1a;/dmdba/dmdbms/bin 配置文件存放于目录&#xff1a…

算法基础-区间合并

1、按照区间的左端点排序 2、 左端点小于等于ed&#xff0c;只需要更新ed和右端点的最大值 左端点大于ed&#xff0c;存入res中&#xff0c;并更新st和ed&#xff0c;最后一组数据手动插入res public class Main {public static void main(String[] args) {Scanner in new S…

信息安全--网络安全体系与安全模型(一)

网络安全体系概述 ■ 网络安全体系是网络安全保证系统的最高层概念抽象&#xff0c;是由各种网络安全单元按照一定的规则组成&#xff0c; 共同实现网络安全的目标。网络安全体系包括法律法规政策文件、安全策略、组织管理、技术措施、 标准规范、安全建设与运营、人员队伍、教…

【Zookeeper】Windows下安装Zookeeper(全面)

目录 1.下载 2.安装 3.环境变量配置 4.启动 1.下载 下载链接&#xff1a; Index of /dist/zookeeper (apache.org)https://archive.apache.org/dist/zookeeper/ 选择合适的版本&#xff0c;下载后缀名为tar.gz的文件下载&#xff1a; 2.安装 下载后将文件夹解压两次&am…

全国大学生数据建模比赛——深度学习

全国大学生数学建模比赛中&#xff0c;深度学习可以成为解决复杂问题的有力手段。 一、深度学习的优势在比赛中的体现 强大的模式识别能力&#xff1a;深度学习模型&#xff0c;如卷积神经网络&#xff08;CNN&#xff09;和循环神经网络&#xff08;RNN&#xff09;&#xff0…