一、前沿
传统文本分类的多任务学习是显示的抽取相关任务之间的共同特征,从而可以提升每个分类任务的性能。这些学习方式通常会有如下缺点:
1)每个任务的label都是相互独立的使用类似one-hot形似表示的,比如使用[1,0]和[0,1]分别表示正负样本的label;
2)多任务的神经网络架构通常是固定的,一些网络是pair-wise的交互,加入新任务的时候往往需要重新训练整个网络;
3)人类可以通过学习少数几个相关任务就可以学习一个新的任务,这也叫做迁移学习,传统的多任务学习网络架构是固定的,没有专门的layer是为新任务而设计的,所以迁移能力不足。
且看本文提出的Multi-Task Label Embedding (MTLE),是如何解决这些问题的,了解文本分类或者监督学习的朋友比较清楚交叉熵损失函数了,我整理列出单任务和多任务的损失函数形式对比:
单任务:
多任务:
由此看出,差别在于多任务的损失函数仅仅是单个任务在多个任务上求和即可。
二、MTLE模型通用架构
Figure1是MTLE的通用框架,主要是有Input Encoder, the Label Encoder and the Matcher三部分组成。其中Input Encoder, the Label Encoder分别是对输入数据和任务标签label的embedding操作,而Matcher是对这两部分的匹配,举个不恰当的例子,比如输入两句话,那么这两句话的相识度分数就是Matcher负责的事情,下面看一个具体的实现结构:
三、MTLE模型的一个具体架构
如上图Figure2所示,WI and WL表示word embedding矩阵,可以使用开放域训练好的词向量,比如使用word2vec训练好,然后在模型训练中进行fine-tune词向量,LI and LL是特征抽取器,目的是把输入文本表示为固定大小的向量,本文使用BiLSTM,如下公式所示:
输入文本内容和分类标签label都经过BiLSTM进行编码,可以简化为如下形式:
把这两个结果进行concatenate拼接起来,然后送给Matcher(也就是Figure2中的M,通过一个全连接和sigmoid激活函数连接到一个神经元),公式如下所示:
模型的损失函数形式如下公式所示:
最终的形式是对多个任务进行加权求和,公式如下图所示:
四、MTLE模型的应用与迁移学习
如Figure3所示,根据新加入任务的不同,MTLE的迁移学习分为三种方式:
1)Hot Update:加入新的分类任务时,使用新任务的数据进行fine-tune原来的模型;
2)Cold Update:加入新的分类任务时,所有的任务都需要重新训练;
3)Zero Update:加入的新分类任务,数据只有标签集合,没有对数据进行标注,直接基于之前的模型进行预测计算即可。
五、MTLE模型的实验效果
5.1、数据集
Multi-Cardinality:SST-1,SST-2, IMDB
Multi-Domain:BDEK
Multi-Objective:IMDB,RN, QC
5.2、实验任务
A + B → C,A、B表示已经在多任务中训练好的任务,C表示新加入的任务
论文对下面三种case做了实验对比
• Case 1 SST-1 + SST-2 → IMDB.
• Case 2 B+D+E→K.
• Case 3 RN+QC→IMDB.
实验效果如下Tabel 4所示: