“不传递消息、不使用邻接矩阵、在边集上训练”: 从对比链接中蒸馏自知识:非消息传递的图节点分类...
来源:深度学习与图网络本文约800字,建议阅读5分钟 本文从图网络的边中蒸馏知识,使 MLP 在图节点分类任务上达到了 GNN 的表现。
这篇文章从图网络的边中蒸馏知识,使 MLP 在图节点分类任务上达到了 GNN 的表现。不传递消息、不使用邻接矩阵、在边集上训练,因此空间占用低、分类速度快。
此外,作者还从随机点对中蒸馏“逆边”的知识,进一步提升了模型的效果。
方法
分叉 MLP
通常的图神经网络方法(GNN)基于消息传递模式,使用邻居节点传递来的消息帮助中心节点的分类。那么反过来说,任一节点中应含有其邻居节点的部分信息。
因此构造分叉 MLP:从 MLP 的倒数第二层分叉出另一个输出层,为与原输出层相区别称为“推理层”。分叉 MLP 接受一个节点的特征作为输入,输出该节点和它邻居节点的标签分布。
边蒸馏(Link Distillation)
边蒸馏
随机点对的对比蒸馏
如果随机采样一对节点,这对节点之间就(大概率)不能借助分叉 MLP 相互推导了。因此用对比学习的思路,最大化一个节点的标签和另一个节点的推理层输出之间的交叉熵,同时最大化一个节点的输出层输出和另一个节点的推理层输出。
逆边的对比蒸馏
两种分类模式
分叉 MLP 训练好后,可以将推理层扔掉变回一个经典的 MLP 结构,输入节点特征对节点进行分类。这种模型根据是否对逆边做对比蒸馏命名为 CoLinkDistMLP 和 LinkDistMLP。
另外,也可以保留推理层,将输出加到邻居节点上,提升邻居节点的分类准确率。但这样一来,就相当于又用上消息传递模式了。这种模型根据是否对逆边做对比蒸馏在文章中称为 CoLinkDist 和 LinkDist。
实验
做了归纳式、转导式和全监督三种设置下 8 个常用图数据集的节点分类实验,对比的基准除了 MLP 和 GCN 以外,还有 GCN2MLP 代表用训练好的 GCN 模型蒸馏得到的 MLP。
半监督、归纳式:
semi-supervised and inductive
半监督、转导式:
semi-supervised and transductive
全监督(转导式):
full-supervised
实验结果
即使仅仅是 LinkDistMLP,也接近甚至超过了 GCN 的表现,说明这种方式训练出的 MLP 确实能达到 GNN 的效果。
用上消息传递和对比蒸馏能进一步提升模型效果。
GCN2MLP 在半监督时效果比 GCN 还要好,但在全监督时可用于蒸馏的知识不
多,最后表现跟 MLP 差不多。
此外,还用了 Open Graph Benchmark 的数据集进行节点分类实验
OGB
本文来源:
https://cf020031308.github.io/papers/2021-distilling-self-knowledge-from-contrastive-links-to-classify-graph-nodes-without-passing-messages/
编辑:于腾凯
“不传递消息、不使用邻接矩阵、在边集上训练”: 从对比链接中蒸馏自知识:非消息传递的图节点分类...相关推荐
- Android开发--Service和Activity通过广播传递消息
Android的Service也运行在主线程,但是在服务里面是没法直接调用更改UI,如果需要服务传递消息给Activity,通过广播是其中的一种方法: 一.在服务里面发送广播 通过intent传送数据 ...
- Flume案例:模拟两个agent之间传递消息的场景
模拟两个agent之间传递消息的场景 说明: 1.在hadoop1机器上有一个flume agent,通过exec监听tail命令输出的结果. 2.新增的结果通过avro sink的方式下层到hado ...
- 通过小程序给公众号传递消息_多输入现场消息传递应用程序概念
通过小程序给公众号传递消息 by Dawid Woldu 戴维德·沃尔杜(Dawid Woldu) 多输入现场消息传递应用程序概念 (A multi-input field messaging app ...
- MFC小笔记:父子窗口传递消息
一.需求 MFC程序可能有许多个对话框,有主对话框,有子对话框,本文介绍父子对话框之间的消息传递.适用于外部事件.外部通知等事件.为简单起见,只针对父窗口传递消息到子窗口. 二.界面 主界面为对话框, ...
- Android学习笔记(十二)——Fragment向Activity传递消息
点击Fragment中"给Activity传递消息"按钮,使Activity中TextView中原本的text="hello"换成"你好" ...
- MFC用PostMessage传递消息
1.自定义消息ID. #define WM_MY_MESSAGE (WM_USER+100) WM_USER为windows系统为非系统消息保留的ID,这里至少要用100,因为其它控件 ...
- C#窗口间传递消息(聊天记录)
C#窗口间传递消息 链接:http://blog.csdn.net/chenyuling/archive/2007/05/25/1625907.aspx 链接:http://www.cnblogs.c ...
- wxpython多线程 假死_wxpython多线程防假死与线程间传递消息实例详解
wxpython中启用线程的方法,将GUI和功能的执行分开. 网上关于python多线程防假死与线程传递消息是几年前的,这里由于wxpython和threading模块已经更新最新,因此给出最新修改代 ...
- 【Akka】Akka 传递消息
1.概述 转载:Akka传递消息 1.1 消息传递 Akka 有 4 种核心的 Actor 消息模式: tell .ask .forward 和 pipe. Ask:向 Actor 发送一条消息,返回 ...
最新文章
- PHP APM fiery 更新 v0.5.8.0
- 用 C 语言开发一门编程语言 — 条件分支
- tableau必知必会之通过 Tableau 计算挖掘数据真相
- 面试题01(C++)
- 对TypeScript进行研究
- 再延期!曝华为P50六月发布
- 如何理解 MySQL 中的 = 操作符?
- 博文视点大讲堂41期-SEO难点之网站内部链接结构
- MAC系统如何连接Windows共享文件?MAC系统连接Win共享文件的方法
- SMB扫描-Server Message Block 协议、nmap
- 道哥:我人生的两大选择,为的都是同一件事
- HTC全景视频,2D 3D视频播放器下载教程
- 怎么彻底卸载cad2017_如何彻底卸载AutoCAD
- 你到底是前端人还是搬砖人?推荐一款国产摸鱼神器!
- 基于STM32根据DL/T 645-2007通讯协议利用RS485进行抄表并将电压等数据利用HC-05蓝牙实时传输至上位机显示
- PS图片去水印的方法
- 抖音-uid转sec_uid
- 普通广播Normal broadcasts使用
- 计算机在智能交通系统中应用,浅议计算机技术在现代智能交通系统中的应用
- 什么是MDD,DDD,TDD?
热门文章
- mysql alter engine_MySQL_mysql下修改engine引擎的方法,修改my.ini,在[mysqld]下加上 - phpStudy...
- java中io流实现哪个接口_第55节:Java当中的IO流-时间api(下)-上
- phpexcel_cell 获取表格样式_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...
- 关于Enterprise Library 两个网占.
- Cloud Toolkit 应用部署、文件上传支持上传进度实时展示...
- AJAX Control Toolkit 30930
- 无法在WEB服务器上启动调试,Web 服务器配置不正确
- MFC中设备描述表dc的使用
- java和C++ C比较
- 用C语言解“逆序的三位数”问题