《Deep multi-task learning with low level tasks supervised at lower layers》
论文来源:2016 ACL
论文方向:multi-task learning
摘要:
本文创新点: 之前的多任务学习中 task supervision都是在网络的同一层(最外层)。
本文提出的一种基于双向RNN的多任务学习架构,不同的任务可以在网络不同的层进行监控。
本文实验:主要任务:句法chunking和CCG高级标注;辅助任务:POS
本文实验表明:POS网络的最内层要比在网络的最外层效果好。
本文观点(最大的贡献):提出一种新的观点:低层任务在网络低层建模的性能高于在网络高层建模。低层任务在低层建模,高层任务才能使用低层任务的共享表示。
1.引言:
MTL概述:MTL可以被看作是一种正则化模型归纳的方法,通过与其他归纳共享表示(隐藏层)
本文架构:基于深度双向RNN网络进行多个任务的任务监控,在不同的任务中共享一层或者多层双向RNN网络。
本文最大的贡献是提出一种新的观点:低层任务在网络低层建模的性能高于在网络高层建模
本文的架构可以看做是多任务和级联学习的无缝连接。同时提出应用于领域自适应的架构,在高层进行高层任务的监控,在低层进行低层任务的监控。
对比实验:先前 Collobert 等人进行了NER和POS的多任务实验,但是将POS任务在网络的最外层输出,本文效果优于前人。
本文主要贡献:
(1)提出双向RNN进行序列标注
(2)表明,从网络的最外层对所有任务进行任务监督通常不是最优的
(3)表明本文架构可以被用来领域自适应
2.Sequence tagging with deep bi-RNN
- Deep bi-RNNs
- Greedy sequence tagging with deep bi-RNNs
输入数据: x1, x2, …xn为单词w1, w2…wn的相关映射向量
网络: 双向RNN
网络输出: v i = BIRNN(x 1:n ,i)可以看做是以单词wi为中心的有限窗口内的信息总结
分类器: 将vi 输入进一个分类器得到一个tag
embedding、LSTM网络的参数、以及分类器的参数都是联合训练的。
-
MTL in deep bi-RNNs
常规方法:在大部分的网络中共享参数。
本文:共享双向RNN的参数,单独训练各个任务的分类器 -
Supervising different tasks on different layers
把RNN网络的每一层与每个任务联系起来,然后这一层的输出feed到该任务的分类器中。
这样使得网络的分层结构成为具有级联预测的任务,同时对于高层的任务,是一个深度任务导向型的学习。也就是说存在一些层是所有任务所共享的,也存在一些层是属于特定任务的。
-
The Multi-task training protocol
训练集划分为T 份,每一小份都是 input-output 格式,输入数据的词典是所有任务共享的,但是输出的label词典是每个任务特定的。
训练时随机选择一个任务,同时选择了训练数据集。通过该任务的分类器得到一个损失,然后反向传播去更新模型和分类器的参数。
注意: 更新的模型参数只会影响RNN模型的 1到 t 层,不会影响 t 层以上的模型参数,也不会影响其他任务的分类器参数。 -
Implementation details
3 Experiments and Results
-
In-domain MTL
结论: POS在RNN的低层 效果更好 -
Additional tasks?
作者也在NER等其他任务上测试了多任务学习的性能,并没有得到更好的效果;
结论:多任务学习仅适用于足够相似的任务。 -
Domain adaptation
本文在领域自适应上也做了相关实验,实验表明此方法在领域自适应上也是有效的,但是作者认为是因为有用目标领域的训练数据做低层任务。