罗凌 NLP多任务学习:一种层次增长的神经网络结构
新闻来源:IR实验室       发布时间:2017/12/4 0:00:00

NLP多任务学习:一种层次增长的神经网络结构

A Joint Many-Task Model: Growing a Neural Network for Multiple NLP Tasks》该论文一作来自于东京大学,是他在Salesforce Research实现时完成的工作。最后发表在EMNLP2017

 

1.      论文动机

NLP领域,各个任务之间有着相互联系。研究者们通过多任务学习(Multiple-Task Learning)来促进任务间互相联系,提高各个任务的性能。目前现存的主流多任务框架多使用同样深度的模型,通过参数共享的方式并行地进行多任务学习,如下图。

而在NLP领域中,各个任务间经常是有层级关系的,例如从词法分析到句法分析到上层的实际应用任务(例如具体任务:词性分析POS->语块分析CHUNK->依存句法分析DEP->文本语义相关Relatedness->文本蕴涵Entailment)。现存的多数多任务学习模型忽视了NLP任务之间的语言学层次关系,针对这一问题,该论文提出了一种层次增长的神经网络模型,考虑了任务间的语言学层次关系。

 

2.      论文方法

该论文模型的整体框架图如下所示,相比传统的并行多任务学习模型,该模型框架是依据语言学层次关系,将不同任务栈式的叠加,越层次的任务具有更深的网络结构。当前层次的任务会使用下一层次的任务输出。在词和句法层级,每个任务分别是使用一个双向的LSTM进行建模。语义层级,根据前面层级任务学习到的表示,使用softmax函数进行分类。在训练阶段,每个任务都有自己相应的目标函数,使用所有任务训练数据,按照模型从底至顶的层次顺序,依次联合训练。

 

 

除此之外,在具体实现上,每层双向LSTM都用了词向量(shortcut connection)和前面任务的标签向量(label embedding)。在各个任务的目标函数里加入了级联正则化项(successive regularization)来使得模型不要忘记之前学习的信息。

 

3.      论文实验

各任务数据集:POS(WSJ), CHUNK(WSJ), DEP(WSJ), Relatedness(SICK), Entailment(SICK)

1)多任务vs单任务(测试集上)

论文给出了多任务和单任务的实验结果(由于一些任务数据集存在重叠,所以没有结果n/a),还有具体使用全部任务和任意任务的结果。可以看到相比单任务,多任务学习在所有任务上效果都得到了提升。

2)和主流方法进行比较(测试集上)

每个具体任务和目前主流方法(包含了并行的多任务学习方法)的比较,可以看到该论文每个任务的结果基本可以达到目前最优结果。

3)模型结构分析(在开发集上)

Ø  shorcut连接,输出标签向量和级联正则化项的效果

可以看到使用shorcut连接(Shortcut ConnectionsSR),输出标签向量(Label EmbeddingsLE)和级联正则化(Successive RegularizationSR)能够提升任务的效果,特别是在高层的任务。

Ø  层次和平行结构的对比

ALL-3表示的是各个任务都用三层结构,只是输出不同,相当于平行多任务学习。可以看到该文层次的结构效果更好。

Ø  任务训练顺序的影响

通过随机顺序和按照从底至顶的训练顺序结果进行比较,可以看出,从底层任务往高层任务顺序训练很重要,特别是对于高层任务。

 

4.      总结

该论文针对语言学层次结构,提出了层次结构的多任务学习框架。相比平行的多任务结构有更好的效果。这样的框架也可以扩展到更多高层任务应用上(例如关系抽取等)。可以看到虽然框架思路简单,但是在实现要取得好的效果,我感觉很多论文中的细节需要注意(例如,Shortcut connectionsLabel Embeddings和级联正则化项等)。论文的实验做得很详细,有些训练细节也在附加材料中给出,利于大家学习实战。