Label-Specific Dual Graph Neural Network for Multi-Label Text Classification,ACL2021 finding

提出一种新的多标签分类方法——标签特异性对偶图神经网络(LDGN),它通过利用类别信息从文档中学习标签特异性成分,并采用双图卷积网络来联合建模这些组件之间的交互,尤其提高了对罕见标签的识别能力。

在这里插入图片描述
为了提取多标签分类中标签之间的高阶关联性,一些方法使用统计相关性。然而,基于统计的方法有如下缺点:从训练数据中获得的标签对之间的共现模式是不完整的和有噪声的(有的统计特征可能是训练集特有的);在全局中构建标签共现图,这可能会对罕见的标签相关性有偏倚;统计标签相关性可能形成长尾分布,即,一些类别非常常见,而大多数类别有很少的文档。
为了解决上述问题,本文提出了一种新的标签特异性对偶图神经网络(LDGN),该网络利用类别信息从文档中学习标签特异性成分,并采用双图卷积网络(dual Graph Convolution Network, GCN),基于统计标签共现和动态重构图,联合建模这些组件之间的完整自适应交互,取得良好性能的同时,也提升了对tail标签的识别率。

Model

如下图所示,模型主要由两个模块组成:1) labelspecific document representation 2) dual graph neural network for semantic interaction learning。特定标签的文档表示学习描述了如何从每个文档中混合的标签信息中提取特定标签的语义组件;而用于语义交互学习的对偶图神经网络则说明了如何在统计标签共现的先验知识和动态重构图的后验信息的指导下,准确地探索这些语义成分之间的完整交互。
在这里插入图片描述

Label-specific Document Representation

首先,使用LSTM将文本转化为向量 h ∈ R ∣ J ∣ ∗ D h\in R^{|J|*D} hRJD,其中 J J J表示单词。之后,使用标签引导注意机制来学习特定于标签的文本表示。标签的特征可以使用一个随机初始化的向量表示 C ∈ R ∣ C ∣ ∗ d c C\in R^{|C|*d_c} CRCdc,那么基于标签注意力的label specific semantic components可以表示为:
在这里插入图片描述
u i ∈ R D u_i\in R^D uiRD表示标签 c i c_i ci在每一个文档上携带的信息量。这个 u i u_i ui构成的矩阵 U ∈ R ∣ C ∣ ∗ D U\in R^{|C|*D} URCD作为后续图网络的输入。

Dual Graph Neural Network

统计训练集中标签之间的成对概率可以得到初始的矩阵 A s ∈ R ∣ C ∣ ∗ ∣ C ∣ A^s\in R^{|C|*|C|} AsRCC,并借助两层的GCN获取进一步的聚合特征 H 2 ∈ R ∣ C ∣ ∗ D ′ H^2\in R^{|C|*D'} H2RCD。之后,为了更完整、更自适应地捕捉这些组件之间的交互,利用 H 2 H^2 H2动态地重建邻接图,弥补了共现矩阵的不足。然后利用动态重建图的后验信息,重新学习标签特异性成分之间的相互作用。为了更完整、更自适应地捕捉这些组件之间的交互,我们利用上述组件表示H2动态地重建邻接图,弥补了共现矩阵的不足。然后利用动态重建图的后验信息,重新学习标签特异性成分之间的相互作用。具体来说,重构矩阵是两个基于 H 2 H^2 H2变换的相似度:
在这里插入图片描述
f f f是sigmoid。之后,又是两层GCN,以 H 2 H^2 H2作为输入,最终得到 H 4 H^4 H4。之后, H 2 H^2 H2 H 4 H^4 H4进行拼接,并预测标签概率分布 y ^ \hat{y} y^。损失函数为:
在这里插入图片描述

Experiment

数据集:
在这里插入图片描述
Evaluation Metric:precision at top K (P@k) and Normalized Discounted Cumulated Gains at top K (nDCG@k)。
模型性能,主要对比的算法是LSAN:
在这里插入图片描述
在这里插入图片描述
消融实验,对比了三种不同变体:
S:仅与统计标签共现的基于图的语义交互;
D:仅与动态重构图进行基于图的语义交互;
no-G:哪个图都不用。
在这里插入图片描述
tail标签评价,采用了propensity scored precision at k (PSP@k)。原文给出的参考文献并没有给出详细的解释,这里我参考了另一篇文献。具体来说,PSP@k在计算过程中添加了propensity score,参考文献的话说For label l l l, its propensity p l p_l pl is related to number of its positive training instances N l N_l Nl,具体来说:
在这里插入图片描述
这使得出现次数越高的标签会有更高的propensity score( P r a n k ( l ) P_{rank(l)} Prank(l))。然后,PSP@k计算方式为:
在这里插入图片描述
这使得对出现次数较少的tail标签的权重增加。对比实验结果如下:
在这里插入图片描述
不同标签权重的可视化,颜色越深表示注意力越高:
在这里插入图片描述
两个不同邻接矩阵的可视化:
在这里插入图片描述
可见相比于静态的基于统计的向量,动态的矩阵更能捕捉cy-ce这俩之间的相关性。

### 标签感知双图神经网络方法在多标签眼底图像分类中的应用 在医学图像分析领域,尤其是眼底图像的多标签分类任务中,标签感知双图神经网络(Label-Aware Dual Graph Neural Networks, LA-DGNN)是一种有效的方法[^1]。这种方法结合了图神经网络(Graph Neural Networks, GNNs)的优势,能够同时建模图像特征和标签之间的关系。 #### 方法概述 LA-DGNN 的核心思想是通过构建两个图结构:**图像特征图**和**标签关系图**,来捕捉图像内容与标签之间的复杂关联。图像特征图用于表示眼底图像的空间特征分布,而标签关系图则用于编码不同标签之间的语义相关性。具体实现如下: 1. **图像特征提取**:利用卷积神经网络(CNN)从眼底图像中提取高维特征向量。这些特征可以作为节点嵌入输入到图像特征图中[^2]。 2. **标签关系建模**:通过分析历史数据或预定义的标签相似度矩阵,构建标签关系图。此图的边权重通常由标签共现频率或语义相似度计算得出[^3]。 3. **双图融合**:将图像特征图和标签关系图结合,通过消息传递机制更新节点表示。这一过程允许模型学习到更鲁棒的特征表示,尤其是在面对稀疏或多标签的情况时[^4]。 4. **标签感知优化**:引入标签感知损失函数,确保模型不仅关注图像特征的学习,还重视标签预测的准确性。常见的损失函数包括二元交叉熵损失和标签平滑正则化项[^5]。 #### 实现细节 以下是一个简化的代码示例,展示了如何使用 PyTorch 实现 LA-DGNN 的关键部分: ```python import torch import torch.nn as nn import torch.nn.functional as F class LabelAwareDualGNN(nn.Module): def __init__(self, input_dim, hidden_dim, num_classes): super(LabelAwareDualGNN, self).__init__() self.cnn = nn.Sequential( nn.Conv2d(3, 64, kernel_size=3, stride=1, padding=1), nn.ReLU(), nn.MaxPool2d(kernel_size=2, stride=2) ) self.gnn_image = nn.Linear(input_dim, hidden_dim) self.gnn_label = nn.Linear(num_classes, hidden_dim) self.fc = nn.Linear(hidden_dim * 2, num_classes) def forward(self, x, adj_image, adj_label): # 图像特征提取 features = self.cnn(x) features = features.view(features.size(0), -1) image_out = F.relu(self.gnn_image(features)) # 标签关系建模 label_out = F.relu(self.gnn_label(adj_label)) # 双图融合 combined = torch.cat((image_out, label_out), dim=1) output = self.fc(combined) return torch.sigmoid(output) # 示例使用 model = LabelAwareDualGNN(input_dim=1024, hidden_dim=512, num_classes=8) x = torch.randn(32, 3, 224, 224) # 输入图像 adj_image = torch.randn(32, 1024) # 图像特征图 adj_label = torch.randn(32, 8) # 标签关系图 output = model(x, adj_image, adj_label) print(output.shape) # 输出形状为 [32, 8] ``` #### 性能评估 为了验证 LA-DGNN 的有效性,可以在公开的眼底图像数据集(如 IDRiD 或 Messidor)上进行实验。常用的评价指标包括精确率、召回率、F1 分数以及 Hamming Loss 等[^6]。此外,还可以通过可视化技术观察模型对标签关系图的学习效果。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五月的echo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值