·阅读摘要:
本文提出基于SGM模型,在Seq2Seq的基础上提出SGM模型应用于多标签文本分类。论文还提出了很多提升模型表现的细节,这是在Seq2Seq中没有的。
·参考文献:
[1] SGM: Sequence Generation Model for Multi-Label Classification
[2] Seq2Seq模型讲解,参考博客:【多标签文本分类】代码详解Seq2Seq模型
本文的亮点有很多:
1、对训练集的标签处理:高频标签放在前面,进而更好地指导整个标签的输出。此外,bos和eos符号分别添加到标签序列的头部和尾部;
2、SGM模型结构:编码器+注意力机制+解码器;
3、解码器预测生成词时,使用Masked Softmax
防止重复预测;
4、上一步的生成词转为词向量,放入下一步的解码器时,采用Global Embedding
全局嵌入;
5、选择生成出来的序列时,采用beam search
波束搜索算法找出预测路径;
[1] SGM模型图
如下图,是论文中给的模型:
我给模型图加了一些注释,如下图:
【注一】:模型介绍将以帮助理解为主,关于公式推导,可以参考论文原文
首先,模型架构可以分成3个部分:编码器、注意力机制、解码器。
【注三】:Global Embedding
、Masked Softmax
会在下文阐述。
[2] 细节阐述
1、Masked Softmax
解决多标签分类的输出重复问题。
2、 Seq2Seq 中某时刻t 的输出对时刻t+1的输出影响很大,也就是说时刻t出错会对时刻 t+1之后的所有输出造成严重影响。论文称为exposure bias
问题。
解决方法: 在多标签分类问题中,我们显然不想让标签间拥有如此强的关联性,于是作者提出 Global Embedding
来解决这个问题。
3、beam search
波束搜索算法找出预测路径,优化路径搜索算法。
所以,便有了 beam search 算法的产生。beam search 算法从一定程度上缓解了这个问题,有兴趣的可以自行去搜索下 beam search 算法的原理,但是它仍然不能从根本上解决这个问题,因为 exposure bias 可能会出现在所有的路径上。
4、提升模型小技巧
考虑到出现次数更多的标签在标签相关性训练中具有更强的作用,在训练时把标签按照其出现次数进行从高到低排序作为输出序列。这么做的好处是,出现次数更多的标签可以出现 LSTM 的前面,进而更好地指导整个标签的输出。