多标签节点分类

在这里插入图片描述

Multi-Label Node Classification on Graph-Structured Data,TMLR’23
Code
学习笔记

图结构数据的多标签分类

  1. 节点表示或嵌入方法
    通常会生成查找表,以便将相似的节点嵌入的更近。学习到的表示用作各种下游预测模块的输入特征。
    表现突出的方法是基于随机游走(random walk)的方法:通过节点在随机游走中的共现频率(co-occurrence frequency)来定义节点之间的相似性。[在随机游走的过程中,如果两个节点经常在一起出现,即它们在游走序列中共现的频率较高。]比如DeepWalk

  2. CNN.其他方法比如说使用卷积神经网络,首先通过聚合局部邻域的特征信息来提取节点表示。然后将提取的特征向量与标签嵌入融合以生成最终的节点嵌入。比如LANC

  3. 图神经网络(GNNs)
    通过递归聚合和转换其邻居的特征表示来计算节点表示,然后将其传递到分类模块。图卷积运算的第k层可以描述为:
    z i ( k ) = A G G R E G A T E ( { x i ( k − 1 ) , { x j ( k − 1 ) ∣ j ∈ N ( i ) } } ) z_i^{(k)}=AGGREGATE(\left \{ \mathbf{x}_i^{(k-1)},\left \{ {\mathbf{x}_j^{(k-1)}|j\in N(i)} \right \}\right \}) zi(k)=AGGREGATE({xi(k1),{xj(k1)jN(i)}})
    对于多标签节点分类,采用sigmoid层作为最后一层来预测类别概率 y ← ( sigmoid ( z i ( L ) θ ) ) \mathbf{y}\gets (\text{sigmoid}(z_i^{(L)}\theta )) y(sigmoid(zi(L)θ)) θ \theta θ对应于分类模块中的可学习权重矩阵。
    GNN模型的主要区别在于聚合层的实现。最简单的模型是GCN:对邻域特征采用度加权(degree-weighted)聚合;
    GAT采用了多个堆叠的图注意力层,它允许节点关注其邻域的特征;
    GraphSAGE仅使用邻域的随机样本进行特征聚合步骤。
    一般来说,GNNs在高**同配图(连接的节点往往共享相同的标签)**表现出更好的性能。H2GCN显示了在异配图上(多类设置)的改进:将邻居聚合的信息与自我节点的信息分开。此外,它利用高阶邻域信息来学习信息丰富的节点表示。

  4. 标签传播(label propagation)
    LPA算法和GNNs都基于消息传递。GNNs传播和变换节点特征,而LPA沿着图的边缘传播节点标签信息,以预测未标记节点的标签分布。 最近的一些工作将他们结合起来,比如GCN-LPA利用LPA作为正则项来帮助GCN学习适当的边权重,从而提高分类性能。

多标签数据集的特性

标签同配性label homophily

本文提出多标签图数据集的同配性定义
GNNs的性能通常根据标签同配性来讨论,标签同配性量化了图中相似节点之间的相似性,特别是,标签同配性在文(Beyond homophily in graph neural networks: Current limitations and effective designs)中被定义为图中同配边的分数:其中如果一条边连接具有相同标签的两个节点,则该边被认为是同配的。
这一定义不能直接用于多标签图数据集,因为每个节点可以有多个标签,并且在多标签dataset中两个连接节点的整个标签集相同的情况很少见。通常,两个节点共享其部分标签。
给定一个多标签图 G G G,其同配性 h h h定义为图中所有连通节点的标签集的杰卡德(Jaccard)相似度的平均值:
h = 1 ∣ ε ∣ ∑ ( i , j ) ∈ ε ∣ l ( i ) ∩ l ( j ) ∣ ∣ l ( i ) ∪ l ( j ) ∣ . h=\frac{1}{|\varepsilon |}\sum _{(i,j)\in \varepsilon }\frac{|l(i)\cap l(j)|}{|l(i)\cup l(j)|} . h=ε1(i,j)εl(i)l(j)l(i)l(j).
标签同配性是一阶标签引起的相似性,因为它根据相邻节点的标签分布来量化相邻节点之间的相似性。

跨类邻域相似度CCNS

二阶标签诱导度量,量化任何两个节点的邻域之间的相似性。
在这里插入图片描述
异配图的CCNS较低,同配图的CCNS更高

常用多标签节点分类数据集

  1. BlogCat
    nodes博客作者,edges表示他们的关系,labels表示所属社会群体
  2. Yelp
    nodes客户评论,edges对应他们的friendship,labels代表企业类型
  3. OGB-Proteins
    nodes蛋白质,edges表示蛋白质之间不同类型的生物学意义关联,labels对应于蛋白质功能
  4. DBLP
    nodes作者,edges合著关系,labels表示作者的研究领域

‘25%’、'50%'和’75%'对应于节点的标签数量的排序列表的第25、第50和第75位。即,有 25%、'50%‘或’75%’ 的节点的标签数目小于或等于这个值。
在这里插入图片描述

  • 标签分布不对称
  • 高标签稀疏性下使用AUROC评分进行评估存在问题
    (ROC曲线是以召回率为纵轴,FPR为横轴的曲线,其面积代表AUROC分数
    FPR是被错误地预测为正类别地负样本占所有负样本的比例,召回率是预测为true positive样本占所有实际positive样本的比例)
    因此存在,通过增加训练使其的数量来增加AUROC分数,即鼓励了模型通过预测为negative样本来减少损失。

NEW生物数据集

  1. PCG:蛋白质表型预测(phenotype:疾病可观察到的特征或形状)
  2. HumLoc:人类蛋白质亚细胞位置预测数据集(预测蛋白质亚细胞位置可以帮助识别药物靶点)标签是位置信息,14个维度one-hot编码
  3. EukLoc:真核生物蛋白质亚细胞位置预测数据集
    在这里插入图片描述
    HUMLOC、EUKLOC有着较高的同配性

Results

在这里插入图片描述


  1. DBLP
  2. EukLoc
  3. HumLoc
  4. PCG

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker部署项目,/var/lib/docker/overlay2目录满了如何清理?

docker部署项目,/var/lib/docker/overlay2目录满了如何清理? 一、问题二、解决1、查看 /var/lib/docker 目录(1)、containers 目录(2)、volumes 目录(3)、overlay2 目录 2、清理&…

台灯护眼有用吗?分享备考专用的护眼台灯

说到台灯相信大家都不陌生,如今基本是每个家庭都会备上一台。很多家长会买上一台给孩子学习使用,还有些学生党、办公族夜晚学习工作时也会用得上它。但普通的台灯会出现光照范围不够大、光线过度集中、光线均匀度不足、产生眩光等问题,可能会…

基于 IDEA 进行 Maven 依赖管理

一、依赖管理概念 Maven 依赖管理是 Maven 软件中最重要的功能之一。Maven 的依赖管理能够帮助开发人员自动解决软件包依赖问题,使得开发人员能够轻松地将其他开发人员开发的模块或第三方框架集成到自己的应用程序或模块中,避免出现版本冲突和依赖缺失等…

Redis--Zset使用场景举例(滑动窗口实现限流)

文章目录 前言什么是滑动窗口zset实现滑动窗口小结附录 前言 在Redis–Zset的语法和使用场景举例(朋友圈点赞,排行榜)一文中,提及了redis数据结构zset的指令语法和一些使用场景,今天我们使用zset来实现滑动窗口限流&a…

IOS-高德地图SDK接入-Swift

申请key 这个要前往高德开发平台注册成为个人开发者然后在控制台创建一个应用: 高德开发平台 注册步骤就不写了,写一下创建应用的步骤: 1、点击应用管理——>我的应用 2、点击右上角的创建新应用 3、输入内容: 4、点击添加ke…

【设计模式之美】重构(三)之解耦方法论:如何通过封装、抽象、模块化、中间层等解耦代码?

文章目录 一. “解耦”概述二. 如何给代码“解耦”?1. 封装与抽象2. 中间层2.1. 引入中间层能**简化模块或类之间的依赖关系**。2.2. 引入中间层可以起到过渡的作用,能够让开发和重构同步进行,不互相干扰。 3. 模块化4. 其他设计思想和原则4.…

【STM32】| 02——常用外设 | I2C

系列文章目录 【STM32】| 01——常用外设 | USART 【STM32】| 02——常用外设 | I2C 失败了也挺可爱,成功了就超帅。 文章目录 前言1. 简介2. I2C协议2.1 I2C物理连接2.2 I2C通信协议2.2.1 起始和停止信号2.2.2 数据有效性2.2.3 数据传输格式2.2.4 从机地址/数据方…

QT中操作word文档

QT中操作word文档: 参考如下内容: C(Qt) 和 Word、Excel、PDF 交互总结 Qt对word文档操作总结 QT中操作word文档 Qt/Windows桌面版提供了ActiveQt框架,用以为Qt和ActiveX提供完美结合。ActiveQt由两个模块组成: QAxContainer模…

【计算机网络】OSI七层模型与TCP/IP四层模型的对应与各层介绍

1 OSI七层模型与TCP/IP四层模型对应 2 OSI七层模型介绍 OSI(Open Systems Interconnection)模型是一个由国际标准化组织(ISO)定义的七层网络体系结构,用于描述计算机网络中的通信协议。每一层都有特定的功能&#xff…

【数据库原理】(27)数据库恢复

在数据库系统中,恢复是指在发生某种故障导致数据库数据不再正确时,将数据库恢复到已知正确的某一状态的过程。数据库故障可能由多种原因引起,包括硬件故障、软件错误、操作员失误以及恶意破坏。为了确保数据库的安全性和完整性,数…

(C++)成绩排序

文章目录 一、实验目的、内容二、实验程序设计及结构1.需求分析结构体变量函数 2.设计结构或流程图 三、设计过程四、测试分析五、设计的特点和结果 一、实验目的、内容 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。…

Unity-场景

创建场景 创建新的场景后: 文件 -> 生成设置 -> Build中的场景 -> 将项目中需要使用的场景拖进去 SceneTest public class SceneTest : MonoBehaviour {// Start is called before the first frame updatevoid Start(){// 两个类: 场景类、场…

ONLYOFFICE服务器无法连接,请联系管理员问题解决

1、现象 部署好了nextcloud和onlyoffice后,新建文本文档报错ONLYOFFICE服务器无法连接,请联系管理员。 用快捷键“F12”进入控制台,点开错误提示栏,找到有“api.js“文件,“https://ONLYOFFICED的地址/web-apps/apps/…

微电网优化MATLAB:蚁群算法(Ant Colony Optimization,ACO)求解微电网优化(提供MATLAB代码)

一、微网系统运行优化模型 微电网优化是指通过优化微电网的运行策略和控制算法,以实现微电网的高效、可靠和经济运行。在微电网中,通过合理调度和控制微电源、负荷和储能系统,可以最大限度地提高能源利用效率,降低能源成本&#…

SpringCloud GateWay 在全局过滤器中注入OpenFeign网关后无法启动

目录 一、问题 二、原因 1、修改配置 2、添加Lazy注解在client上面 3、启动成功 一、问题 当在gateway的全局过滤器GlobalFilter中注入OpenFeign接口的时候会一直卡在路由中,但是不会进一步,导致启动未成功也未报错失败 2024-01-18 22:06:59.299 I…

数据集成时表模型同步方法解析

01 背景介绍 数据治理的第一步,也是数据中台的一个基础功能 — 即将来自各类业务数据源的数据,同步集成至中台 ODS 层。业务数据源多种多样,单单可能涉及到的主流关系型数据库就有近十种。功能更加全面的数据中台通常还具有对接非关系型数据…

BigeMap在Unity3d中的应用,助力数字孪生

1. 首先需要用到3个软件,unity,gis office 和 bigemap离线服务器 Unity下载地址:点击前往下载页面(Unity需要 Unity 2021.3.2f1之后的版本) Gis office下载地址:点击前往下载页面 Bigemap离线服务器 下载地址: 点击前往下载页面 Unity用于数字孪生项…

SqlAlchemy使用教程(五) ORM API 编程入门

SqlAlchemy使用教程(一) 原理与环境搭建SqlAlchemy使用教程(二) 入门示例及编程步骤SqlAlchemy使用教程(三) CoreAPI访问与操作数据库详解SqlAlchemy使用教程(四) MetaData 与 SQL Express Language 的使用SqlAlchemy使用教程(五) ORM API 编程入门 前一章用SQL表达式(SQL Expr…

在js文件中引入外部变量

需求背景: 有个ip地址需要在项目部署后修改为客户自己的,所以就把这个ip放到了外部进行管理,方便直接修改 实现方法: 第一步:在public文件夹下创建一个json文件,里面放的就是需要在外部进行管理,随时都可以修改的变量 第二步:在需要引变量的js文件中写入如下代码 结合第一步…