来源:深度学习与图网络本文约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

实验结果

  1. 即使仅仅是 LinkDistMLP,也接近甚至超过了 GCN 的表现,说明这种方式训练出的 MLP 确实能达到 GNN 的效果。

  2. 用上消息传递和对比蒸馏能进一步提升模型效果。

  3. 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/

编辑:于腾凯

“不传递消息、不使用邻接矩阵、在边集上训练”: 从对比链接中蒸馏自知识:非消息传递的图节点分类...相关推荐

  1. Android开发--Service和Activity通过广播传递消息

    Android的Service也运行在主线程,但是在服务里面是没法直接调用更改UI,如果需要服务传递消息给Activity,通过广播是其中的一种方法: 一.在服务里面发送广播 通过intent传送数据 ...

  2. Flume案例:模拟两个agent之间传递消息的场景

    模拟两个agent之间传递消息的场景 说明: 1.在hadoop1机器上有一个flume agent,通过exec监听tail命令输出的结果. 2.新增的结果通过avro sink的方式下层到hado ...

  3. 通过小程序给公众号传递消息_多输入现场消息传递应用程序概念

    通过小程序给公众号传递消息 by Dawid Woldu 戴维德·沃尔杜(Dawid Woldu) 多输入现场消息传递应用程序概念 (A multi-input field messaging app ...

  4. MFC小笔记:父子窗口传递消息

    一.需求 MFC程序可能有许多个对话框,有主对话框,有子对话框,本文介绍父子对话框之间的消息传递.适用于外部事件.外部通知等事件.为简单起见,只针对父窗口传递消息到子窗口. 二.界面 主界面为对话框, ...

  5. Android学习笔记(十二)——Fragment向Activity传递消息

    点击Fragment中"给Activity传递消息"按钮,使Activity中TextView中原本的text="hello"换成"你好" ...

  6. MFC用PostMessage传递消息

    1.自定义消息ID. #define WM_MY_MESSAGE (WM_USER+100)         WM_USER为windows系统为非系统消息保留的ID,这里至少要用100,因为其它控件 ...

  7. C#窗口间传递消息(聊天记录)

    C#窗口间传递消息 链接:http://blog.csdn.net/chenyuling/archive/2007/05/25/1625907.aspx 链接:http://www.cnblogs.c ...

  8. wxpython多线程 假死_wxpython多线程防假死与线程间传递消息实例详解

    wxpython中启用线程的方法,将GUI和功能的执行分开. 网上关于python多线程防假死与线程传递消息是几年前的,这里由于wxpython和threading模块已经更新最新,因此给出最新修改代 ...

  9. 【Akka】Akka 传递消息

    1.概述 转载:Akka传递消息 1.1 消息传递 Akka 有 4 种核心的 Actor 消息模式: tell .ask .forward 和 pipe. Ask:向 Actor 发送一条消息,返回 ...

最新文章

  1. PHP APM fiery 更新 v0.5.8.0
  2. 用 C 语言开发一门编程语言 — 条件分支
  3. tableau必知必会之通过 Tableau 计算挖掘数据真相
  4. 面试题01(C++)
  5. 对TypeScript进行研究
  6. 再延期!曝华为P50六月发布
  7. 如何理解 MySQL 中的 = 操作符?
  8. 博文视点大讲堂41期-SEO难点之网站内部链接结构
  9. MAC系统如何连接Windows共享文件?MAC系统连接Win共享文件的方法
  10. SMB扫描-Server Message Block 协议、nmap
  11. 道哥:我人生的两大选择,为的都是同一件事
  12. HTC全景视频,2D 3D视频播放器下载教程
  13. 怎么彻底卸载cad2017_如何彻底卸载AutoCAD
  14. 你到底是前端人还是搬砖人?推荐一款国产摸鱼神器!
  15. 基于STM32根据DL/T 645-2007通讯协议利用RS485进行抄表并将电压等数据利用HC-05蓝牙实时传输至上位机显示
  16. PS图片去水印的方法
  17. 抖音-uid转sec_uid
  18. 普通广播Normal broadcasts使用
  19. 计算机在智能交通系统中应用,浅议计算机技术在现代智能交通系统中的应用
  20. 什么是MDD,DDD,TDD?

热门文章

  1. mysql alter engine_MySQL_mysql下修改engine引擎的方法,修改my.ini,在[mysqld]下加上 - phpStudy...
  2. java中io流实现哪个接口_第55节:Java当中的IO流-时间api(下)-上
  3. phpexcel_cell 获取表格样式_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...
  4. 关于Enterprise Library 两个网占.
  5. Cloud Toolkit 应用部署、文件上传支持上传进度实时展示...
  6. AJAX Control Toolkit 30930
  7. 无法在WEB服务器上启动调试,Web 服务器配置不正确
  8. MFC中设备描述表dc的使用
  9. java和C++ C比较
  10. 用C语言解“逆序的三位数”问题