SGM历史意义:
1、提出一种新奇的模型SGM
2、给多标签文本分类提供一种新的解决思路
3、在两个多标签分类的数据集上取得了很好的结果
论文主要结构:
一、Abstract
多标签文本分类因为标签之间的相关性所以是一个非常有挑战性的工作,并且文本不同部分对于标签的预测的重要性不同,基于这两点,这篇论文提出一种基于注意力机制的序列生成模型来做多标签文本分类
二、Introduction
(任务重要性 -> 前人缺点 -> 本文提出相关模型 -> 实验)
1、多标签文本分类是自然语言处理的重要任务,多标签文本分类可以用到文本分类、推荐领域以及信息检索任务中
2、目前的多标签文本分类模型存在两个问题:没有注意到标签之间的相关性以及不同文本对于不同标签分类的重要性不同
3、为了解决这两个问题,这篇论文使用SeqSeq模型模型学习标签之间的相关性,使用注意力机制学习不同文本的重要性
4、实验证明-模型能够在两个多标签文本分类数据集上大幅度领先基准模型并且实验结果表明可以解决上述问题
三、Proposed Model
本文提出SGM模型
本文首先总体概括一下主要做了什么工作
主要介绍了一句话是多标签,会有一个标签序列L,会根据训练集按照label出现的次数进行统计,然后每一个文本对应的标签序列,出现频率比较高的标签放在标签序列的前面,“bos”、“eos”分别表示标签序列的开始和结束,整体流程主要是首先输入文本序列x,然后编码获取隐藏层状态,利用注意力机制获得向量ct,解码部分是根据向量ct、上一层的隐藏状态st-1以及解码向量g(yt-1)获得t时刻的隐藏层状态st,最后通过一个mask softmax获得输出yt的概率分布。
模型整体结构图:
具体结构细分包括: Encoder部分、Attention部分、Decoder部分、global embedding部分
1)Encoder部分
Encoder部分主要是输入一个句子,把每一个词embedding化,然后把每一个词的embedding输入到双向LSTM网络中,并将正向和反向的隐藏层状态做concat作为该词的最后隐藏层状态表示(也就是上图中的hi)
2) Attention部分
每个词对标签的贡献不一样,所以在隐藏层状态表示部分添加一个注意力机制获取每一个编码隐藏层的权重(对应图中ati),va相当于注意力机制中的query在这里也是一个动态的可学习的参数矩阵,wa、ua也是参数矩阵,ct表示attention value
3) Decoder部分
g(yt-1)表示在yt-1的最大概率分布label的embedding,yt-1是在时间t-1的时刻标签序列的概率分布,并且为了在标签序列中防止相同的标签被多次预测,在softmax部分添加一个It
4)global embedding部分
说的主要目的是当前时刻的标签部分依赖于这个标签序列上一时刻的标签,如果上一时刻预测标签有问题,那么这个标签序列下一时刻也有很大的问题,相当于一错再错下去,提出的global embedding表示不在仅仅依赖与上一时刻而是依赖于全局,具体做法是对embeding进行加权求和也就是上述图中的e',e表示上一时刻的embedding
四、Experiment
两个数据集上实验及实验结果
介绍了两个数据集以及多标签评价指标以及后续介绍相关实验设置、对比模型-baseline、主要实验结果、实验分析(不同参数取值对结果的影响、attention可视化等内容)
五、Related Work
介绍了前人在多标签分类的相关论文以及内容
六、Conclusion and Feature work
全文总结并对未来展望
关键点:
1、之前的模型没有注意到标签之间的相关性以及不同标签分类的文本重要性不同
2、本文通过SeqSeq 学习标签之间的相关性,通过注意力机制学习不同标签得到重要相关文本
3、SGM模型
创新点:
1、将多标签分类任务看成文本生成任务,可以学习标签之间的相关性
2、本文提出一种新的decoder结构,不仅可以获取标签之间的关系,并且可以自适应选择不同的文本去分类不同的标签
3、实验结果表明SGM模型能够大幅度提高多标签文本分类的效果
启发点:
1、前人忽略标签之间的相关性,并且没有注意不同文本对于预测不同标签的重要性不同
2、beam search不能从根本上解决曝光误差问题,因为这一误差可能会出现在每一条可能的路径上,而beam search只是选择几条最好的路径
七、代码实现
论文中公开了源码:https://github.com/lancopku/SGM