人工智能
由于神经网络强大的表达能力,在 NLP 领域研究者们开始研究基于神经网络的多任务学习。大多数方法通过网络参数共享来学习任务间的关联,提升各任务效果。
这篇文章介绍了一个联合的多任务(joint many-task)模型,通过逐步加深层数来解决复杂任务。
与传统的并行多任务学习不一样的地方在于,该文是根据任务的层次关系构建层次(POS->CHUNK->DEP->Related->Entailment)的模型进行学习。每个任务有自己的目标函数,最后取得了不错的效果。
在 NLP 领域,各个任务之间有着相互联系。研究者们通过多任务学习(Multiple-Task Learning)来促进任务间互相联系,提高各个任务的性能。目前现存的主流多任务框架多使用同样深度的模型,通过参数共享的方式并行地进行多任务学习,如下图。
而在 NLP 领域中,各个任务间经常是有层级关系的,例如从词法分析到句法分析到上层的实际应用任务(例如具体任务:词性分析 POS->语块分析 CHUNK->依存句法分析 DEP->文本语义相关 Relatedness->文本蕴涵 Entailment)。
现存的多数多任务学习模型忽视了 NLP 任务之间的语言学层次关系,针对这一问题,该论文提出了一种层次增长的神经网络模型,考虑了任务间的语言学层次关系。
论文方法
该论文模型的整体框架图如下所示,相比传统的并行多任务学习模型,该模型框架是依据语言学层次关系,将不同任务栈式的叠加,越层次的任务具有更深的网络结构。当前层次的任务会使用下一层次的任务输出。
在词和句法层级,每个任务分别是使用一个双向的 LSTM 进行建模。语义层级,根据前面层级任务学习到的表示,使用 softmax 函数进行分类。在训练阶段,每个任务都有自己相应的目标函数,使用所有任务训练数据,按照模型从底至顶的层次顺序,依次联合训练。
除此之外,在具体实现上,每层双向 LSTM 都用了词向量(Shortcut Connection)和前面任务的标签向量(Label Embedding)。在各个任务的目标函数里加入了级联正则化项(Successive Regularization)来使得模型不要忘记之前学习的信息。
论文实验
各任务数据集:POS(WSJ),CHUNK(WSJ),DEP(WSJ),Relatedness(SICK),Entailment(SICK)。
多任务vs单任务(测试集上)
论文给出了多任务和单任务的实验结果(由于一些任务数据集存在重叠,所以没有结果 n/a),还有具体使用全部任务和任意任务的结果。可以看到相比单任务,多任务学习在所有任务上效果都得到了提升。
和主流方法进行比较(测试集上)
每个具体任务和目前主流方法(包含了并行的多任务学习方法)的比较,可以看到该论文每个任务的结果基本可以达到目前最优结果。
模型结构分析(在开发集上)
(1) shortcut 连接,输出标签向量和级联正则化项的效果
可以看到使用 shortcut 连接(Shortcut Connections, SR),输出标签向量(Label Embeddings, LE)和级联正则化(Successive Regularization, SR)能够提升任务的效果,特别是在高层的任务。
(2) 层次和平行结构的对比
ALL-3 表示的是各个任务都用三层结构,只是输出不同,相当于平行多任务学习。可以看到该文层次的结构效果更好。
(3) 任务训练顺序的影响
通过随机顺序和按照从底至顶的训练顺序结果进行比较,可以看出,从底层任务往高层任务顺序训练很重要,特别是对于高层任务。
4. 总结
该论文针对语言学层次结构,提出了层次结构的多任务学习框架。相比平行的多任务结构有更好的效果。这样的框架也可以扩展到更多高层任务应用上(例如关系抽取等)。
可以看到虽然框架思路简单,但是在实现要取得好的效果,我感觉很多论文中的细节需要注意(例如:Shortcut connections,Label Embeddings 和级联正则化项等)。论文的实验做得很详细,有些训练细节也在附加材料中给出,利于大家学习。
全部0条评论
快来发表一下你的评论吧 !