[论文精读]Active and Semi-Supervised Graph Neural Networks for Graph Classification

news2024/11/23 9:43:33

论文网址:Active and Semi-Supervised Graph Neural Networks for Graph Classification | IEEE Journals & Magazine | IEEE Xplore英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用

目录

1. 心得

2. 论文逐段精读

2.1. Abstract

2.2. Introduction

2.3. Related Work

2.3.1. Graph Neural Networks

2.3.2. Active Learning

2.3.3. Semi-Supervised Learning

2.4. Methodology

2.4.1. Problem Statement and Notations

2.4.2. Framework

2.4.3. Active Learning

2.4.4. Semi-Supervised Learning

2.4.5. Discussion

2.5. Experiments

2.5.1. Datasets

2.5.2. Baselines

2.5.3. Comparison With Different Methods

2.5.4. Parameter Sensitivity Analysis

2.5.5. Ablation Study

2.5.6. Verification of Effectiveness on Used Labeled Data

2.6. Conclusion

3. 知识补充

3.1. Active Learning

3.2. Difference between semi-supervise, weakly supervise, self-supervise and active learning

4. Reference


1. 心得

(1)hh,相关工作能先简介一下某某方式是咋用的然后再介绍

(2)近期看的二区论文里面写得top清晰的了只能说,就没什么没解释的notation和图blabla...

(3)还可以,读起来比较顺畅和轻松,不是高血压文章,上一篇都要高压麻了

2. 论文逐段精读

2.1. Abstract

        ①做半监督的开头都是说“现在大家都是用数据集的xx%来训练xx%来测试~样本量太小”是吧。勾史,现在做半监督的多的一

        ②They proposed a novel active and semi-supervised graph neural network (ASGNN)

        ③They add collaborative learning with multi GNNs to improve the generalization

2.2. Introduction

        ①大家都爱在intro里面举例一些工作啊。总感觉这样容易和相关工作重复。举例了一些自监督的图分类模型

        ②Other self-supervised, semi-supervised models did not use active learning

2.3. Related Work

2.3.1. Graph Neural Networks

        ①Briefly introducing MPNN and other models and claiming they do not consider the sample problems

2.3.2. Active Learning

        ①Listing active learning methods and mentioning that they did not apply it in GNN graph classification

2.3.3. Semi-Supervised Learning

        ①Mentions some semi-superviesed models

2.4. Methodology

2.4.1. Problem Statement and Notations

(1)Graph Classification

        ①Graph representation: G_m=\left ( V,E \right ), where V is node set and E denotes edge set

        ②Input space/samples: \left \{ G_m \right \}^M_{m=1}

        ③Class label set: Y

        ④Task: mapping f:\left \{ G_m \right \}^M_{m=1}\rightarrow Y

(2)Supervised Graph Classification

        ①For training set G_{training}=\left \{ G_1,...,G_l \right \}

        ②Predicting another samples G_{test}=\left \{ G_{l+1},...,G_{l+u} \right \}

(3)Active Graph Classification

        ①There are training set G_{training}=\left \{ G_1,...,G_l \right \} and testing set G_{test}=\left \{ G_{l+1},...,G_{l+u} \right \}

        ②Selecting G_{select}=\left \{ G_{l+1},...,G_{l+k} \right \} from test set and adds them to the training set after annotation

        ③Updating training set and testing set, then use new training set to predict new test set

(4)Semi-Supervised Graph Classification

        ①Training set contains l labeled graph and u unlabeled graph: G_{training}=\left \{ G_1,...,G_l,G_{l+1},...,G_{l+u} \right \}

        ②Task: predict unlabeled graph: G_{test}=\left \{ G_{l+1},...,G_{l+u} \right \}

2.4.2. Framework

        ①Notations:

(哥们儿的类别数是L表示的所以有时候有点奇怪(可能也是想表示Labeled data吧),很多人的类别是C。而哥们儿的神经网络层数用T表示,很多人是用的L

        ②“Active learning can select the graph examples with high value from the test set, and semi-supervised learning can select the graph examples with high confidence level from test set

        ③Overall framework of their model:

        ④Algorithm of ASGNN framework:

        ⑤Extraction of graph feature matrix:

h_{v_i}^{(t)}=NN_\Theta^{(t)}\left(h_{v_i}^{(t-1)}+\sum_{v_j\in\mathcal{N}(v_i)}h_{v_j}^{(t-1)}\right)

(就是一个很普通的特征聚合惹,就GCN吧差不多,只是W放在NN那去了,这里的NN作者说可以是MLP,\Theta是里面的参数惹)

where h^t_{v_i} is the feature vector of node v_i at the t-th layer

        ⑥Readout function:

h_{G_m}=readout\left ( \left \{ h^{\left ( T \right )}_{v_i}\mid v_i \in G_m \right \} \right )

where T denotes the number of conv layers. They allow mean/sum pooling and MLP layers

        ⑦Loss for 2 GNNs:

\mathcal{L}_{train}=\sum_{g_m}\left ( -\sum^L_{l=1}y_l\left [ G_m \right ] log\left ( p_l[G_m] \right )\right )

where L is the total class number, y_l[G_m] is indicator variable (correct classification will let it be 1 otherwise 0), p_l[G_m] denotes the predicted probability of G_m belongs to class l

        ⑧⭐Samples adding: the intersection of two GNNs' selection

2.4.3. Active Learning

        ①Active learning module:

        ②Classification probability:

p_l[G_m]=\text{Soft}\max\left(S_l[h_{G_m}]\right)=\frac{\exp(S_l[h_{G_m}])}{\sum_{l^{'}=1}^L\exp(S_{l^{'}}[h_{G_m}])}

where S_l[h_{G_m}] is the soft clustering score that G_m is belong to class l, so \text{Soft}\max\left(S_l[h_{G_m}]\right) is the prediction probability in D_U

        ③Entropy of graph:

E=-\sum_{l=1}^Lp_l[G_m]^*\log(p_l[G_m])

        ④They further introduced euclidean distance to measure the richness of the information contained in the graph:

C_l=\frac{\sum\left\{h_l\left[G_m\right]\mid G_m\in D_L\quad and\quad\mathcal{Y}\left[G_m\right]=l\right\}}{|\{G_m\mid G_m\in D_L\quad and\quad\mathcal{Y}\left[G_m\right]=l\}|}

the distance between a graph and a cluster center:

d_{G_m}=\min_{l=1,\ldots,L}\left\{\left\|h_{G_m}-C_l\right\|_2^2\right\}

        ⑤作者在熵和欧几里得距离上分别给出了p_Ep_d作为百分比表示(很奇怪的说法),然后给出加权分:

I_{G_\mathrm{m}}=\alpha^*p_E+(1-\alpha)^*p_d

        ⑥Active learning algorithm:

2.4.4. Semi-Supervised Learning

         ①Select data with high confidence level by choosing data with high soft clustering score:

S_l\left[G_m\right]=\frac{\left(\left\|h_{G_m}-C_l\right\|_2^2\right)^{-1}}{\sum_{l'=1}^L\left(\left\|h_{G_m}-C_{l'}\right\|_2^2\right)^{-1}}

where S_l\left[G_m\right] denotes G_m is predicted to belong to class l

        ②Algorithm of semi-supervised module:

2.4.5. Discussion

        讲了讲俩模型相互促进有多好

2.5. Experiments

2.5.1. Datasets

        ①12 datasets: MUTAG, PTC_MR, COLLAB, BZR_MD, BZR, NCI1, PROTEINS, ER_MD, COX2_MD, DHFR, DHFR_MD and PTC_FR

        ②Statistic of datasets:

2.5.2. Baselines

        ①介绍了对比的模型,我就懒得写了,仁者见仁智者见智吧爱比谁比谁

2.5.3. Comparison With Different Methods

        ①Comparison table with label rate 10%:

(感觉普通图分类这种数据集多的就更看重精度了,没其他一堆破指标)

2.5.4. Parameter Sensitivity Analysis

       ①Proportion of the graph selected from the test set by active learning with grid search ALK\in\{1\%,2\%,5\%,8\%,10\%\} on MUTAG, PTC_MR, PROTEINS and DHFR:

(xd说随着主动学习选的代表标志增高。那咋说明到上限了呢咋不继续增高呢(作者在这一小节最后一段说模型还有继续提高的潜力,笑死,不能自己挖掘十八))

        ②Proportion of the graph selected from the test set by semi-supervised learning with grid search SSK\in\{2\%,4\%,6\%,8\%,10\%\} on MUTAG, PTC_MR, PROTEINS and DHFR:

(???哈???咋这么相似呢那为啥不继续增加呢?)

        ③Ablation study on \alpha with grid search \alpha\in\{0.1,0.3,0.5,0.7,0.9 \} on MUTAG, PTC_MR, PROTEINS, and DHFR:

(也没提供什么特别的解释,就说都该关注)

2.5.5. Ablation Study

        ①Module ablation on MUTAG, PTC_MR, PROTEINS, and DHFR:

2.5.6. Verification of Effectiveness on Used Labeled Data

        ①Different number of labeled data:

2.6. Conclusion

        “对于未来的工作,我们希望进一步扩展拟议的框架”说了和没说一样

3. 知识补充

3.1. Active Learning

(1)定义:主动学习的核心思想是,如果允许机器学习算法选择要学习的数据,那么它可以用更少的标记训练实例实现更高的准确性。这主要基于一个关键假设:即如果学习算法能够选择它学习的数据,那么它在较少的训练下就能表现得更好。主动学习通过不确定性抽样、基于委员会的查询等策略,选择最具信息量的实例进行标记,从而减少人工标注成本,提高学习效率。

(2)参考学习1:超详细的主动学习Active Learning介绍【理论+代码】-CSDN博客

(3)参考学习2:主动学习(Active Learning),看这一篇就够了 - 知乎 (zhihu.com)

3.2. Difference between semi-supervise, weakly supervise, self-supervise and active learning

(1)半监督学习(Semi-supervised Learning)

        ①定义:结合少量标记样本和大量未标记样本进行训练。

        ②例子:在图像分类任务中,假设有100个标记的图像(如猫和狗),和1000个未标记的图像。先用标记图像训练初步模型,然后使用该模型对未标记图像生成伪标签,再将这些伪标签加入训练集,进一步提高模型性能。

(2)弱监督学习(Weakly-supervised Learning)

        ①定义:使用不完全、不准确或不精确的标签来训练模型。

        ②例子:在图像分类中,假设只有部分图像有标签,或者标签是模糊的(如只标记了“动物”,但没有具体到“猫”或“狗”)。弱监督学习算法可以利用这些不完全或不精确的标签进行训练,改善模型的分类性能。

(3)自监督学习(Self-supervised Learning)

        ①定义:通过自我生成标签来训练模型,不依赖外部标签。无监督学习不生成标签,只关注分布。

        ②例子:在自然语言处理任务中,可以用“下一个词预测”作为任务,模型根据前面的单词来预测下一个单词。模型使用自己的输出作为标签,通过这种方式学习语言的结构和上下文。

(4)主动学习(Active Learning)

        ①定义:模型可以选择要标记的样本去寻求人工标记(我在想作者的文章里面似乎没有人工标记?难道是选出来给半监督标记吗?这么流水线?),以获得更多的信息并提高学习效率。

        ②例子:假设在一个情感分析任务中,模型对一批未标记的评论进行分类,评估哪些评论对学习最有帮助。模型选择那些最不确定的评论(如边界模糊的评论)请求人类标记,从而获得更有价值的训练数据,提升模型的表现。

4. Reference

Xie, Y. et al. (2022) 'Active and Semi-Supervised Graph Neural Networks for Graph Classification', IEEE Transactions on Big Data, 8(4): 920-932. doi:  10.1109/TBDATA.2021.3140205

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2211526.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据-168 Elasticsearch 单机云服务器部署运行 详细流程

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

PyQt: QMessageBox Duplication

在使用 PyQt 的 QMessageBox 时,如果你遇到 消息框重复显示 或 QMessageBox 重复实例化 的问题,通常是因为消息框没有正确管理或关闭,或者消息框的创建和显示逻辑中存在重复调用。以下是一些常见原因和解决方案。 1、问题背景 在 PyQt 中使用…

无心剑七绝《泊院雕楼》

七绝泊院雕楼 清歌咏尽桂花香 泊院雕楼醉夕阳 逸兴无端飞万里 幽情宛转忆潇湘 2024年10月13日 平水韵七阳平韵 这首七绝《泊院雕楼》以清新脱俗的语言,描绘了一幅宁静致远的画面。 首句“清歌咏尽桂花香”,以“清歌”起兴,形象地描绘了桂花香…

C++——类和对象(三)

一.赋值运算符 1.运算符重载 (1) 运算符重载是具有特殊名字的函数,他的名字是由operator和后面要定义的运算符共同构成。和其他函数一样,它也具有其返回类型和参数列表以及函数体。 (2) 重载运算符函数的参数个数和该运算符作用的运算对象数量一样多。…

React.createRef(),React.forwardRef(),forwardRef()结合next.js的link进行路由跳转

码云https://gitee.com/skyvilm/react-next.js 1.React.createRef() 作用:获取dom元素 使用 import React,{Component} from react export default class Index extends Componen{ constructor(props){ super(props) this.myrefReact.createRef(); //创建节点 } c…

如何批量从sql语句中提取表名

简介 使用的卢易表 的提取表名功能,可以从sql语句中批量提取表名。采用纯文本sql语法分析,无需连接数据库,支持从含非sql语句的文件文件中提取,支持各类数据库sql语法。 特点 快:从成百个文件中提取上千个表名只需1…

集成方案 | 借助 Microsoft Copilot for Sales 与 Docusign,加速销售流程!

加速协议信息提取,随时优化邮件内容~ 在当今信息爆炸的时代,销售人员掌握着丰富的数据资源。他们能够通过 CRM 平台、电子邮件、合同库以及其他多种记录系统,随时检索特定个人或组织的关键信息。这些数据对于销售沟通至关重要。然而&#x…

【端到端】CVPR 2023最佳论文:UniAD解读

作者:知乎一根呆毛授权发布 传统的端到端网络是用多个小model串起来,但这会有误差累积的问题,因此我们提出了UniAD,一个综合框架,把所有任务整合到一个网络。整一个网络都是为planner而进行设计的。 Introduction a传…

SQL性能优化指南:如何优化MySQL多表join场景

目录 多表join问题SQL 这里解释下 Using join buffer (Block Nested Loop): 对性能产生的影响: 三种join算法介绍 join操作主要使用以下几种算法: (1)Nested Loop Join (2)Block Nested …

生信服务器配置:优化生物信息学数据处理的最佳实践

介绍 在生物信息学研究中,处理和分析大规模数据集(如基因组、转录组和蛋白质组数据)需要强大的计算资源和精确的服务器配置。生信服务器配置的优化可以显著提高数据处理的效率和结果的准确性。本文将探讨生信服务器配置的关键要素&#xff0…

【LeetCode热题100】分治-快排

本篇博客记录分治快排的4道题目&#xff1a;颜色分类、排序数组、数组中的第K个最大元素、数组中最小的N个元素&#xff08;库存管理&#xff09;。 class Solution { public:void sortColors(vector<int>& nums) {int n nums.size();int left -1,right n;for(int…

【实战项目】——Boost搜索引擎(五万字)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、项目的相关背景 1.1、什么是Boost库&#xff1f; 1.2、什么是搜索引擎&#xff1f; 1.3、为什么要做Boost库搜索引擎&#xff1f; 二、搜索引擎的宏观原…

VirtualBOX虚拟机提高速度,鼠标卡顿解决——未来之窗数据恢复

一、刚安装完操作系统&#xff0c;鼠标操作不灵敏 需要安装系统增强 二、系统增强作用 1.鼠标丝滑 2.文件共享 3.可以共享剪贴板 三、安装步骤-设备-安装增强 四、安装步骤-设备-选择光驱 五、安装增强软件然后重启 六、阿雪技术观 拥抱开源与共享&#xff0c;见证科技进…

【算法】动态规划:从斐波那契数列到背包问题

【算法】动态规划&#xff1a;从斐波那契数列到背包问题 文章目录 【算法】动态规划&#xff1a;从斐波那契数列到背包问题1.斐波那契数列2.爬楼梯3.零钱转换Python代码 4.零钱兑换 II5.组合数dp和排列数dp6.为什么动态规划的核心思想计算组合数的正确方法代码实现 为什么先遍历…

【C++打怪之路Lv8】-- string类

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;重生之我在学Linux&#xff0c;C打怪之路&#xff0c;python从入门到精通&#xff0c;数据结构&#xff0c;C语言&#xff0c;C语言题集&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持…

智能汽车智能网联

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消耗你的人和事&#xff0c;多看一眼都是你的不…

深入理解线性表--顺序表

目录 顺序表- Seqlist -> sequence 顺序 list 表 顺序表的概念 问题与解答 顺序表的分类 静态顺序表 动态顺序表 问题与解答(递进式) 动态顺序表的实现 尾插 头插 尾删 头删 指定位置插入 指定位置删除 销毁 总结 前言&#xff1a;线性表是具有相同特性的一类数据结构…

【exceljs】纯前端如何实现Excel导出下载和上传解析?

前段时间写过一篇类似的文章&#xff0c;介绍了sheetjs。最近发现了一个更好用的库ExcelJS&#xff0c;它支持高级的样式自定义&#xff0c;并且使用起来也不复杂。实际上sheetjs也支持高级自定义样式&#xff0c;不过需要使用付费版。 下面对比了Exceljs和Sheetjs&#xff1a…

Linux的习题+一道回溯类型的算法题

Linux的习题 Linux环境与版本 1.linux 2.6.* 内核默认支持的文件系统有哪些&#xff1f;[多选] A.ext3 B.ext2 C.ext4 D.xfs E.ufs 正确答案&#xff1a;ABCD A 全称Linux extended file system, extfs,即Linux扩展文件系统&#xff0c;ext2为第二代 D XFS一种高性能的日…

使用频率最高的 opencv 基础绘图操作 - python 实现

以下是 opencv-python 基本操作绘制示例&#xff0c;绘制&#xff1a; 1&#xff09;圆&#xff0c;2&#xff09;矩形&#xff0c;3&#xff09;线段&#xff0c;4&#xff09;文本。 安装 opencv-python pip install opencv-python 在图上绘制圆的操作&#xff0c;示例如…