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

由于神经网络强大的表达能力,在 NLP 领域研究者们开始研究基于神经网络的多任务学习。大多数方法通过网络参数共享来学习任务间的关联,提升各任务效果。

本期推荐的论文笔记来自 PaperWeekly 社区用户 @robertdlut。这篇文章介绍了一个联合的多任务(joint many-task)模型,通过逐步加深层数来解决复杂任务

与传统的并行多任务学习不一样的地方在于,该文是根据任务的层次关系构建层次(POS->CHUNK->DEP->Related->Entailment)的模型进行学习每个任务有自己的目标函数,最后取得了不错的效果。该论文最后发表在了 EMNLP2017。

如果你对本文工作感兴趣,点击底部的阅读原文即可查看原论文。

关于作者:罗凌,大连理工大学博士生,研究方向为深度学习,文本分类,实体识别和关系抽取。

■ 论文 | A Joint Many-Task Model: Growing a Neural Network for Multiple NLP Tasks

■ 链接 | https://www.paperweekly.site/papers/1049

■ 作者 | robertdlut

该论文一作来自于东京大学,是他在 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)。

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


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

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


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

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

(1) shortcut 连接,输出标签向量和级联正则化项的效果


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

(2) 层次和平行结构的对比


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

(3) 任务训练顺序的影响

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

4. 总结

该论文针对语言学层次结构,提出了层次结构的多任务学习框架。相比平行的多任务结构有更好的效果。这样的框架也可以扩展到更多高层任务应用上(例如关系抽取等)。

可以看到虽然框架思路简单,但是在实现要取得好的效果,我感觉很多论文中的细节需要注意(例如:Shortcut connections,Label Embeddings 和级联正则化项等)。论文的实验做得很详细,有些训练细节也在附加材料中给出,利于大家学习。

原文发布时间为:2017-11-21

本文作者:罗凌

时间: 2024-07-28 12:32:58

NLP多任务学习:一种层次增长的神经网络结构 | PaperDaily #16的相关文章

2017年ACL的四个NLP深度学习趋势 (一):语言结构和词汇嵌入(Linguistic Structure and Word Embeddings)

更多深度文章,请关注:https://yq.aliyun.com/cloud 介绍 在本月初我在温哥华出席的ACL(国际计算语言学协会 (ACL,The Association for Computational Linguistics) )时Joakim Nivre宣布:"NLP正在蓬勃发展".参加人数众多的人士认为,学术界对NLP的兴趣已经处于历史最高点,主要是因为深度学习的成功. 然而,我参加ACL时注意到的一个研究人员的焦虑,因为一个领域正在快速发展转型.研究人员对是否将旧的N

2017年ACL的四个NLP深度学习趋势 (二):可解释性和注意力(Interpretability and Attention)

更多深度文章,请关注:https://yq.aliyun.com/cloud 2017年ACL的四个NLP深度学习趋势 (一):语言结构和词汇嵌入(Linguistic Structure and Word Embeddings) 趋势3:可解释性(Interpretability) 我最近一直在思考可解释性,然而我并不孤单,在深度学习实践者中,神经网络的可怕的"黑匣子"质量使他们难以控制,难以调试.然而,从非研究者的角度来看,有一个更重要的理由要求可解释性:信任. 公众,媒体和一些研

自然语言处理多任务学习目标

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud 在之前的博文中,我讨论了如何利用相关任务提高多任务学习(MTL)模型的性能.在此之前,我们需要了解一下到底什么是多任务学习. 多任务学习是和单任务学习相对的一种机器学习方法.在机器学习领域,标准的算法理论是一次学习一个任务,而多任务学习是一种联合学习,多个任务并行学习,结果相互影响.简单来说,就是同时求解多个问题.例如我们经常探讨的"千人千面"这种个性化问题,就是一种典型的多任务学习问题,它可以同时

《中国人工智能学会通讯》——11.20 多任务学习在交通分析中的应用

11.20 多任务学习在交通分析中的应用 本章对文中所提出的多任务学习方法在我国安徽和山西两省的真实高速公路交通场景中的应用进行介绍,涉及到的具体分析问题包括交通关联模式挖掘.交通流预测和交通异常监测与分析.图 3(a)为安徽省高速交通的出入口流量分配模式矩阵,其中数值较大的出入口流量集中于对角线附近,这说明安徽省高速公路网的出入口流量分配模式具有局部流量密集的特点,即短途的车流量较大.交通路网的出入口流量分配矩阵直接代表了车辆的出行模式[7] .图 3(b) 为两省高速公路交通流全网络下一时刻

上千篇文章肯定不会全部出现在考试的“阅读理解“中,我们依然要学习千年不变的语文课本,其实就是在学习一种”分析的思维“,一种”举一反三“的能力。

尽管做技术已经有不少年头了,不管是犹犹豫豫还是坚定不移,我们走到了现在,依然走在技术这条路上. 不管我们处于何种职位,拿着哪种薪水,其实,我们会是不是的问问自己"做技术到底可以做到那种地步",说的直白一点,其实我们很多人对技术这条路依然充满很多彷徨,不管我们的现状是多么的满意与辉煌. 最近一直招聘技术人员,见了很多求职的朋友,也和他们探讨了很多与职业发展,技术能力方面的问题,下面说下我个人的看法,和大家分享一下.   有很多的人总是一直在问"我搞.NET很多年了,但是感觉现在

刚学习.net,应该学习哪种语言?使用什么环境好??软件用什么???

问题描述 刚学习.net,应该学习哪种语言?使用什么环境好??软件用什么??? 解决方案 解决方案二:熟悉哪种就用哪种.vb或者c#.vs2008.解决方案三:我想用c#编解决方案四:VisualStudio.NET2003这个软件可不可以??解决方案五:什么的软件容易上手点,有人回答我吗??解决方案六:要用就用最新的.现在是VisualStudio2008.解决方案七:同1楼,熟悉什么就用什么.解决方案八:刚开始可以用VS2003,然后2005..至于2008,感觉现在还不太成熟...解决方案

学习10种良好的XML使用习惯

简介 人们都很喜欢XML以及它所提供的灵活性和互操作性,但是,通过使用一些技巧,可以使与XML的互操作和与XML一起使用的工具更加简单.在处理XML时养成一些良好的习惯可以保证最高效地利用您的XML文档和应用程序. 使用 10 种良好的习惯 以下是 10 种最良好的XML习惯: 定义XML和编码 使用 DTD 或 XSD 记得进行验证 验证并不总是能够解决问题 XML 结构和属性 使用 XPath 查找信息 并不总是需要使用解析器提取信息 何时使用 SAX 而非 DOM 解析 何时使用 DOM

jQuery 学习 几种常用方法_jquery

jQuery事件处理 ready(fn) 代码: $(document).ready(function(){// Your code here...}): 作用:它可以极大地提高web应用程序的响应速度.通过使用这个方法,可以在DOM载入就绪能够读取并操纵时立即调用你所绑定的函数,而99.99%的JavaScript函数都需要在那一刻执行. bind(type,[data],fn) 代码: $("p").bind("click", function(){alert(

学习一种符合WEB标准的导航菜单例子

web|web标准|菜单|导航 <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>css菜单演示</title><style type=