Enhancing Label Correlation Feedback in Multi-Label Text Classification via Multi-Task Learning笔记
摘要
-
首先,这篇文章在一开始的时候提到,之前的一些考虑通过标签相关性的方法有分类器链的方法还有序列到序列的方法,但是这些方法可能会收到标签的顺序依赖问题、标签结合过拟合以及错误的传播问题;
-
为了解决上面的这些问题,本文中提到的方法是通过多任务学习来提升标签相关性上的反馈;
1. 首先,利用联合嵌入机制分别获取文本和标签的表示,通过使用文档-标签型的注意力机制从而捕获到更具有辨别性的文档表示
2. 之后,通过两种辅助的多标签共现预测任务提升标签共现学习。- 一种是 Pairwise Label Co-occurrence Prediction (PLCP)
- 一种是 Conditional Label Co-occurrence Prediction (CLCP)
-
最后通过实验验证文中的方法在对于低频标签、标签依赖性、标签结合的多样性以及模型的收敛速度表明了文中方法的高效性
引言部分
-
在该部分中,文中首先是指出了使用Sequence-to-Sequence模型的缺陷,
1. 第一个缺点是,这种序列到序列的模型过度依赖于标签的顺序问题,这对于多标签分类是极为不利的,因为多标签分类中的标签空间中的各个标签之间是顺序不相关的;
2. 第二个缺点是,这种序列到序列的模型对于train-set的依赖程度较大,通常在训练集上过拟合,最终可能导致在位置数据上的泛化能力较差;
3. 第三个缺点是,这种模型对于后面的label的预测结果是依赖于之前潜在的不正确的标签预测结果,由于这种模型是依赖于序列顺序的,就有可能导致这种问题,结果就是如果前面有标签预测错误,对于后面的标签预测造成影响; -
文中提到的模型并不依赖于这种Sequence-to-Sequence的模型架构,文中的模型是一种基于多任务的学习模型,从而就不会产生序列的依赖问题了;主要是包含有三个不同的模块,分别是共享编码层、MLTC任务模块、标签相关性提升层;
1. 在共享编码层(shared parameter layers) 中,在这个模块中使用的是通过将文档和标签联合嵌入训练的方式,并且 使用了基于Transformer架构的方式来利用不同label中的信息,同时还不会产生序列依赖问题,并且这种方式还可以发掘出潜在的不同标签的依赖性问题;
2. 在MLTC模块(MLTC task specific module)中,通过文档标签交叉注意力机制的方式,从而得到特定标签的文档表示,并且还可以保留标识性的信息;
3. 通过上面的两个模块组成的部分称为是LACO,即LAbel COrrelation aware multi-label text classification.
4. 由于通过标签的共线性可以得到标签的相关性信息,这种方式不需要额外的认为标注。所以,文中的第三个模块——标签相似性提升模块,就是提供了两种标签共现预测模块,这两种模块和MLTC一起进行联合训练:
第一个模块是PLCP(Pairwise Label Co-occurrence Prediction) 即标签对共现预测,这个模块体现了标签相关性的二阶策略,通过考虑成对的、两个两个的标签结合的方式来区分他们是否同时出现在相关的标签集中;
第二个模块是CLCP(Conditional Label Co-occurrence Prediction) 即条件标签共现预测,这个模块体现的是标签相关性的高阶策略,通过部分相关的标签集来预测其他未知的标签集; -
这个模型的共现点在于:
1. 这个模型可以通过联合空间充分学习到文档和标签的特征表示,同时通过多任务设计提升标签相关性在不依靠标签顺序的情况下;
2. 同时提到了两种模块来得到相关性的反馈信息,分别是PLCP以及CLCP。这将有利于归纳出具有强泛化能力的多标签预测模型;
模型
文中将整个LACO模型分成了两大部分:

如上图中所示,除去输入部分之外,LACO模型分为是共现编码层和指定任务层这两个部分;
共享编码层
1.
这个部分的目的主要是获取了document-label以及label-label之间的相互信息;然后将这个信息转换为更加具有表征性的特征表示;
2.
实现这种目标使用的模型是BERT模型,所以模型的输入部分同样是使用了跟BERT中一样的输入开始符[CLS]和分隔符[SEP],其中CLS标识符中可以存放整个文档中的表示信息,从而更加有利于后面的文本分类工作;
3.
这个模型中的新意部分在于将所有的label和document一起进行联合训练,来得到更具备表征性的针对于特定label的文档表示;
4.
这种联合嵌入编码方式使得模型可以捕获到两个方面的信息:
文档和标签之间的语义信息。不同的文档对于某一个指定的标签的影响是不同的、同一个文档片段对于不同的标签的影响力也是不同的;
标签和标签之间的相关性信息。标签的语义信息是相互联系的,那么标签的共现就反映了强烈标签的相关性信息,所以文中通过标签的共现性来捕获标签的相关性信息;
MLTC任务模块
1.
这个模块中包含有两个部分:文档标签交叉注意力以及标签预测
2.
文档-标签交叉注意力:
这个模块的目的是为了显式的表示文档和label之间的相关性信息,所以在原始的document和label组合通过bert生成相应的向量之后,又再次对文本和label这两个部分向量进行交叉注意力计算,

如公式1中所示,HDH_D 为通过BERT得到的文档向量;HYH_Y 表示通过BERT得到的标签向量;
将这两个向量做点积运算,最终得到交叉注意力的结果文档表示矩阵MM
考虑到文档中词的连续性语义信息,再将得到的泛化的文档表示矩阵M通过一个非线性网络,对于一个中心词为ii 长度为2r+12r+1 的文本片段,这种片段在文档矩阵M中的表示记为局部矩阵Mi−r;i+rM_{i-r;i+r} , 将这个文本片段表示记为是标签段对之间的相关性关系 (多个标签一起形成标签段) ,对于这部分的解释是从(i−r到i)(i-r\text{到}i) 的部分对应于一个标签段;从(i到i+r)(i\text{到}i+r) 对应一个标签段;
上面提到要将这种离散型的文本表示矩阵转化为连续型的表示,这部分需要使用到非线性网络,模型中使用的网络是在隐藏层中使用CNN网络+ReLU激活函数的方式,随后使用最大池化+tanh函数的方式构建这样一个非线性网络ΩΩ

如上图所示,其实就是将原来文档表示使用注意力加权的方式进行处理,然后得到一个新的文档表示;
3.
标签预测
通过上面的步骤得到文档具有辨别性的表示,然后通过全连接层捕捉当前文档中的不同小区域中的细粒度特征信息;

上面的向量p表示的就是标签向量;
这里使用的loss function就是binary cross-entropy:

其中qiq_i groundtruth中标签positive的概率向量,pip_i 为预测的positive的概率向量;
标签相关性多任务学习模块
1.
标签对共现预测模块(PLCP)
这个部分的内容主要是通过考虑标签的二阶相关性策略最终将标签相关性信息考虑进来;
首先,每一个文档D 都包含有两个不同的标签集,一个是跟文档相关的标签集Y+Y^+ ;另一个是跟文档不相关的标签集Y−Y^-;
为了模型能够理解train set中的标签集包含的二阶标签相关性,这里考虑构建一个二元标签对预测任务——PLCP;即
1. 一部分从Y+Y^+ 中进行抽样得到,记为是IsCo-occur\text{IsCo-occur};
2. 另外一部分从Y+Y^+ 和Y−Y^- 中抽样得到,记为是NotIsCo-occur\text{NotIsCo-occur} ;
为了构建这样一个数据集,将上面得到的这两个部分数据集的比重设置为γγ ,

如图中所示,将两部分的嵌入连接起来形成[yi,yj][y_i,y_j] ,然后构建的额外的二分类器是为了判断这两个标签是不是共现的还是不共现的;
使用的损失函数是

其中,qij=1q_{ij}=1 表示这两个标签在train set 中就是共现的;qij=0q_{ij}=0 表示这两个标签在train set中是不共现的;
2.
条件标签共现预测(CLCP)
这个模块主要是考虑到了标签的高阶相关性;
主要考虑的方法是通过上面的PLCP中对于每一个文档建立的两个标签集Y+Y^+ 以及Y−Y^- ,从 相关的标签集中随机的选出s个相关标签构成标签集YGY^G ,有YG∈Y+YG∈Y+ 成立;
通过YGYG预测Y−YGY-YG 中的标签跟s个标签是否共现,来体现高阶相关性;
这里引入了位置向量

其中,对于元素ey1e_{y1} ,如果该值为0,则表示y1位置的元素是被抽样到的标签之一;如果值为1,则表示,该位置的元素是Y−YGY-Y^G 中的一个标签;
然后,通过计算所有位置向量为0的标签的嵌入平均值,记为hyGh_y^G ; 通过这个值去预测剩余的Y−YGY-Y^G 集合中的每一个标签是否跟这s个标签是共现的;

上面的概率表示通过sigmoid函数预测标签yiy_i 的概率;
对于这种分类的损失通过计算在每一个非零位置的BCE之和来计算:

训练目标函数
如上图中所示,其中LmlcL_{mlc} 表示在MLTC任务模块预测标签中产生的loss,另外的两个损失分别是PLCP和CLCP中的损失,是实现捕获标签相关性的辅助任务;α\alpha 表示超参数调节权重;
实验结果

