多标签分类:Sequence Generation Model for Multi-Label Classification(2018)

原文链接: https://github.com/lancopku/SGM

注:本篇文章是COLING 2018的最佳论文,来源于北京大学计算语言学教育部重点实验室,文章代码已公开于Github

一、Introduction

现有方法往往忽略标签之间的相关性,除此以外,文本的不同部分可以对预测不同的标签做出不同的贡献。针对以上问题,本文提出了包含新型解码器结构的序列生成模型,不仅能捕获标签之间的相关性,而且在预测不同标签时能自动选择信息量最大的单词。

Seq2Seq模型在机器翻译领域取得巨大成功的影响,本文所提出的序列生成模型由一个具有注意力机制的编码器和一个解码器组成,解码器使用LSTM按顺序生成标签,并根据先前预测的标签预测下一个标签。因此,该模型可以通过LSTM结构处理标签序列依赖关系来考虑标签之间的相关性。此外,当模型预测不同的标签时,注意力机制考虑了文本不同部分的贡献。此外,为了进一步提高模型的性能,通过整合整体信息信号,提出了一种新的全局嵌入解码器结构。

本文的贡献如下:

  • ①文章提出将MLC任务看作是一个序列生成问题,以考虑到标签之间的相关性。
  • ②文章提出一种采用新的解码结构的序列生成模型,不仅能捕获标签之间的关联,而且在预测不同标签时能自动选择信息量最大的单词。

二、Proposed Method

1、Overview

从序列生成角度,MLC任务可以建模作为找到一个使条件概率p(y|x)最大化的最优标签序列y。

首先,作者根据训练集中标签的频率对每个样本的标签序列进行排序,将高频标签放在前面。此外,bos和eos符号分别添加到标签序列的头部和尾部。此外,bos和eos符号被分别添加到标签序列的头部和尾部。最后,MS(masked softmax)层被用作输出概率分布。

2、Sequence Generation

整个序列生成模型由一个编码器和一个具有注意力机制的解码器组成。
在这里插入图片描述
(1)Encoder
将单词用one-hot编码表示,然后通过嵌入矩阵(embedding matrix)把单词嵌入成一个稠密的嵌入向量。
本文采用Bi-LSTM,从两个方向计算每个单词的隐藏状态(通过连接两个方向上的隐藏状态来得到第i个单词的最终状态)。

(2)Attention
注意机制通过关注文本序列的不同部分并聚合这些信息词的隐藏表示,从而生成上下文向量。为方便起见,本文省略了所有的偏置项。

(3)Decoder
在解码器阶段,为了预防解码器预测重复标签,引入It
在这里插入图片描述
在训练阶段,损失函数为交叉熵损失函数。

本文利用Beam search(集束搜索)算法在inference的时候来找top-ranked预测,一定程度上缓解了Greedy search(贪心搜索)算法的不足。

3、Global Embedding

在上述序列生成模型,提出的序列生成模型按顺序生成标签,并根据先前预测的标签预测下一个标签。因此,如果在时间步t上的预测是错误的,那么很可能在接下来的时间步中,我们会得到一系列错误的标签预测,这也叫做exposure bias。集束搜索算法在一定程度上解决了这一问题。但是,这并不能从根本上解决问题,因为所有的候选路径都可能出现exposure bias现象。

基于上述问题,本文提出一种新的解码器结构,使得t时间步上的嵌入向量在能够代表t-1时间步上的所有信息。作者引入了global embedding。通过考虑每个标签的概率,该模型能够减少由前一时间步中的错误预测造成的损害,使模型能够更准确地预测标签序列。

三、Experiments

1、Datasets

本文采用的数据集简介如下:
在这里插入图片描述

2、Evaluation Metrics

本文采用4个评价指标,分别是:Hamming-loss、Precision、Recall、Micro-F1。

3、Details

对于RCV1-V2数据集,每个文档在500的长度被截断,并且在推理阶段的beam size大小为5。 此外,我们将embedding size设置为512,编码器和解码器的隐藏大小分别为256和512。 编码器和解码器的LSTM层数为2。

对于AAPD数据集,对于AAPD数据集,字嵌入的大小为256.编码器中有两个LSTM层,其大小为256.对于解码器,有一个大小为512的LSTM层。词汇表的大小为30000并且OOV单词也被替换为unk。 每个文档的截断长度为500。在预测阶段,beam size大小为9。

本文使用Adam优化方法来最小化训练数据上的交叉熵损失。

训练结束后,本文选择验证集上具有最佳微观F1评分的模型作为我们的最终模型,并评估其在测试集上的表现。

4、Baselines

包括:BR、CC、LP、CNN、CNN-RNN

5、Results

通过使用全局嵌入显着改善了SGM模型,大大优于其他传统的深度学习模型。

6、Analysis and Discussion

(1)Exploration of Global Embedding
全局嵌入可以显著提高模型的性能。全局嵌入在t时间利用在t-1时间步上所有可能的标签信息,所以它能够丰富来源信息,导致模型的性能显著提高。

(2)The Impact of Mask and Sorting
我们提出的方法是基于传统的Seq2Seq模型。但是,mask模块被添加到提出的方法中,用于防止模型预测重复标签。另外,我们根据训练集中标签出现的频率对每个样本的标签序列进行排序。为了探究掩模模块和排序的影响,我们对RCV1-V2数据集进行消融实验,发现标签的排序对于模型的性能非常重要,mask 操作可以改善模型性能。

(3)Error Analysis
当标签序列长度增加时,所有方法的性能都会恶化。当样本的标记序列特别长时,难以准确的预测所有标记。因为模型预测更多标签时需要更多信息。人们很容易忽视一些特征信息不充分的真实标签。即使样本包含一些真实标签的较少信息,SGM模型也能够通过考虑已经预测的相关标签来生成这些真实标签。

(4)Visualization of Attention
当模型预测不同的标签时,不同单词的贡献度存在差异。SGM模型能够通过利用注意机制来选择信息最丰富的单词。这表明我们提出的模型能够在预测不同标签时考虑文本内容的贡献差异,并自动选择信息量最大的单词。
(5)Case Study
通过使用全局嵌入来预测更准确的标记序列。丰富的信息使全局嵌入更加平滑,使模型能够减少由前一时间步中的错误预测造成的损害。

四、Related Work

MLC任务研究为每个样本分配多个标签的问题。MLC任务有四种主要类型的方法:问题转换方法、算法适应方法、集成方法和神经网络模型。

五、Conclusions and Future Work

在本文中,我们提议将多标签分类任务视为序列生成问题,以模拟标签之间的相关性。 具有新颖解码器结构的序列生成模型建议提高分类的性能。 大量的实验结果表明,所提出的方法在很大程度上优于基线。 进一步分析实验结果表明,我们提出的方法不仅可以捕获标签之间的相关性,还可以在预测不同标签时自动选择信息量最大的单词。 当为样本分配大量标签时,如何准确预测所有这些真实标签是一个棘手的问题。 我们提出的方法在一定程度上缓解了这个问题,但未来还需要进一步探索更有效的解决方案。

猜你喜欢

转载自blog.csdn.net/MaybeForever/article/details/102463419
今日推荐