当前位置:网站首页>Self-supervised Heterogeneous Graph Neural Network with Co-contrastive Learning 论文阅读
Self-supervised Heterogeneous Graph Neural Network with Co-contrastive Learning 论文阅读
2022-07-06 10:26:00 【kc7w91】
Self-supervised Heterogeneous Graph Neural Network with Co-contrastive Learning 论文阅读
一、重难点
异质图 : 异质图基本思想速通
双视角: network schema view & meta-path structure view,最后将两个视角得出的节点表征通过对比学习(contrastive learning)进行融合
自监督: 不需要标签信息,直接利用数据本身作为监督信息,可分为对比学习和生成学习两大类。本文即是对比学习,核心思想是讲正样本和负样本在特征空间对比,学习样本的特征表示
二、两种视角
network schema 如图1(b),表示不同类别的节点之间的关系
meta-path 如图1(c),可定义多种元路径作者-文章-作者/文章-主题-文章/…
三、模型定义
1.预处理
将不同类别的节点特征x投影到同一空间,特征长度对齐后记为h
2.network schema
对于一个文章类节点而言,在network schema 视角下将从作者、主题两个类别的节点中学习embedding,不同类别对当前节点的影响程度不同,这一程度值通过类似GAT的方式(引入注意力机制)由模型自主学习得到。每个类别下包含多个节点,不同节点的重要程度各不相同,类内各点重要程度也通过类似GAT的方式学习得到。
类内重要程度alpha(node-level attention):
其中fai_m表示所属节点类别,共m种;a为待学习的参数
通过node-level attention聚合邻居信息:
注:不是聚合所有邻居,有采样操作
将不同类别得到的embedding进行融合
类别重要程度beta(type-level attention):
其中W、b为待学习参数
通过type-level attention聚合不同类别embedding:
3. meta-path
通过元路径得到的是同构图,对每个同构图利用GCN得到各节点的初步表征h:
将不同元路径下得到的节点表征融合(还是类似GAT, semantic-level attention):
其中W、b为待学习参数,beta_fai_n为不同元路径下得到的图的重要程度
根据不同的重要程度,得到meta-path视角下的节点embedding
4. mask
network schema中节点不聚合本身的信息(masked),meta-path中不聚合中转节点的信息,这样将与当前文章相连的节点按类别区分开来,不重复计算。
5.contrastive learning
融合从两个视角得出的节点embedding进而进行判断,首先利用MLP进行映射:
接下来引入contrastive learning
对比学习:某事物的微小变种之间应有较高相似度(positive samples),本质不同的事物之间相似度低(negative samples)。本文正负样本定义如下:
positive:被多条meta-path相连的节点对(强调边的重要性)
negative: others
以i节点的network schema视角下的loss函数为例,将节点对按照meta-path相连条数降序排列,自行设置阈值划分正负样本。划分后有在network schema view下的contrastive loss(meta-path view同理):
其中sim为cos函数,表示两向量之间的相似程度。因为是network schema视角下的loss函数,所以目标embedding(gt)是network schema中的embedding;正负样本的embedding来自meta-path view。正样本对应值尽可能大,负样本对应值尽可能小,loss才能变小。
两视角loss均衡:
6. model extension
难以区分的负样本对提高对比学习模型的性能很有帮助,因此引入新的负样本生成策略:GAN & Mixup
边栏推荐
- OpenEuler 会长久吗
- On time and parameter selection of asemi rectifier bridge db207
- ASEMI整流桥DB207的导通时间与参数选择
- Comparative examples of C language pointers *p++, * (p++), * ++p, * (++p), (*p) + +, +(*p)
- Declval (example of return value of guidance function)
- Open source and safe "song of ice and fire"
- 【Android】Kotlin代码编写规范化文档
- std::true_type和std::false_type
- Brief description of SQL optimization problems
- Scratch epidemic isolation and nucleic acid detection Analog Electronics Society graphical programming scratch grade examination level 3 true questions and answers analysis June 2022
猜你喜欢
IP, subnet mask, gateway, default gateway
Interesting - questions about undefined
C语言通过指针交换两个数
Prophet模型的简介以及案例分析
当保存参数使用结构体时必备的开发技巧方式
SAP Fiori 应用索引大全工具和 SAP Fiori Tools 的使用介绍
Maixll-Dock 摄像头使用
Easy to use PDF to SVG program
30 minutes to understand PCA principal component analysis
Heavy! Ant open source trusted privacy computing framework "argot", flexible assembly of mainstream technologies, developer friendly layered design
随机推荐
High precision operation
Today in history: the mother of Google was born; Two Turing Award pioneers born on the same day
Excel usage record
重磅硬核 | 一文聊透对象在 JVM 中的内存布局,以及内存对齐和压缩指针的原理及应用
The difference between parallelism and concurrency
Kivy tutorial: support Chinese in Kivy to build cross platform applications (tutorial includes source code)
2022 Summer Project Training (II)
win10系统下插入U盘有声音提示却不显示盘符
SAP Fiori 应用索引大全工具和 SAP Fiori Tools 的使用介绍
STM32 key state machine 2 - state simplification and long press function addition
Easy to use PDF to SVG program
node の SQLite
The third season of Baidu online AI competition is coming in midsummer, looking for you who love AI!
Jerry is the custom background specified by the currently used dial enable [chapter]
Implementation of queue
HMS core machine learning service creates a new "sound" state of simultaneous interpreting translation, and AI makes international exchanges smoother
小程序在产业互联网中的作用
Olivetin can safely run shell commands on Web pages (Part 1)
C language exchanges two numbers through pointers
C语言高校实验室预约登记系统