近日,Salesforce发布了一项新的研究成果:decaNLP,这是一种能够同时处理机器翻译、问答、摘要、文本分类、情感分析等十项自然语言处理任务的通用模型。
Salesforce的首席科学家Richard Socher表示:“我们的decaNLP就像自然语言处理领域的瑞士军刀。”
深度学习显著提升了自然语言处理任务的性能,例如机器翻译、摘要、问答和文本分类。每项任务都有特定的评估标准,通常通过一组基准数据集进行衡量。尽管如此,这种方法并未推动那些能够在多种自然语言处理任务中表现出色的通用模型的发展。为了探讨这种通用模型的可能性及其带来的权衡,我们引入了自然语言十项全能(decaNLP)。
decaNLP涵盖的任务包括:问答、机器翻译、摘要、自然语言推理、情感分析、语义角色标注、关系抽取、任务驱动多轮对话、数据库查询生成器和代词消解。decaNLP的目标是开发一个能够整合所有这些任务的模型,并研究这种模型与专门为单一任务训练的模型之间的差异。为此,我们使用一个统一的指标来衡量十项任务的整体表现。
我们通过将decaNLP的十个任务统一转化为问答形式,提出了一个新的多任务问答网络(MQAN)。MQAN无需特定任务的模块或参数即可进行共同学习任务。在机器翻译和实体识别任务中,MQAN展示了迁移学习的优势。在情感分析和自然语言推理任务中,MQAN展示了领域适应的改进,同时在文本分类任务中展现了zero-shot的能力。
在与基线模型的比较中,我们发现MQAN的多指针编解码器是其成功的关键,并且使用反向训练策略进一步提升了性能。尽管MQAN的设计初衷是为了decaNLP和通用问答任务,但它在单任务设置中也表现优异:在WikiSQL语义解析任务中,MQAN的成绩与最佳单任务模型持平;在任务驱动型对话任务中,MQAN排名第二;在SQuAD数据集上,MQAN的表现也名列前茅。此外,decaNLP的所有代码已开源,包括数据获取与处理、模型训练和评估。
问答(QA)模型接收一个问题及相关的上下文信息,并输出理想的答案。我们使用斯坦福问答数据集(SQuAD)来完成这项任务。上下文来自英文维基百科中的段落,答案则是从文章中复制的单词序列。
机器翻译模型接收源语言文本并输出翻译成目标语言的文本。我们使用2016年为国际口语翻译研讨会(IWSLT)准备的英译德数据集作为训练数据,并使用2013年和2014年的测试集作为验证和测试集。这些例子来自TED演讲,涵盖了多种主题的会话语言。尽管这是一个相对较小的机器翻译数据集,但你可以使用额外的训练资源,如机器翻译大赛(WMT)中的数据集。
摘要模型接收一个文档并输出该文档的摘要。当前在摘要方面的重大进展源于将CNN/DailyMail语料库转换成一个摘要数据集。我们在decaNLP中包含这个数据集的非匿名版本。平均而言,这些实例包含最长的文档,并在上下文直接提取答案与语境外生成答案之间取得平衡。
自然语言推理(NLI)模型接收两个输入句子:一个前提和一个假设。模型必须将前提和假设之间的推理关系归类为支持、中立或矛盾。我们使用的是多体裁自然语言推理语料库(MNLI),它提供了来自多个领域的训练示例(如转录语音、通俗小说、政府报告)和来自各领域的测试对。
情感分析模型被训练用来对输入文本的情感进行分类。斯坦福情感树库(SST)包含了一些带有相应情绪(积极、中立、消极)的影评。我们使用未解析的二进制版本,以便明确对decaNLP模型的解析依赖。
语义角色标注(SRL)模型接收一个句子和谓语(通常是一个动词),并确定“谁对谁做了什么”、“什么时候”、“在哪里”。我们使用一个SRL数据集,该数据集将任务视为一种问答:QA-SRL。这个数据集涵盖新闻和维基百科的领域,但为了确保decaNLP的所有数据可以自由下载,我们只使用了后者。
关系抽取系统包含文本文档和要从文本中提取的关系类型。在这种情况下,模型需要先识别实体间的语义关系,再判断是否属于目标种类。与SRL一样,我们使用一个数据集,该数据集将关系映射到一组问题,以便关系抽取可以视为一种问答形式:QA-ZRE。对数据集的评估是为了在新的关系上测量零样本性能——数据集是分开的,使得测试时看到的关系在训练时是无法看到的。
对话状态跟踪是任务驱动多轮对话系统的关键组成部分。根据用户的话语和系统动作,对话状态跟踪器会跟踪用户为对话系统设定的目标及请求。我们使用的是英文版的WOZ餐厅预订服务,它提供了事先设定的关于食物、日期、时间、地址和其他信息的本体,以帮助代理商为客户进行预订。
SQL查询生成与语义解析相关。基于WikiSQL数据集的模型将自然语言问题转换为结构化SQL查询,以便用户可以使用自然语言与数据库交互。
最后一个任务是基于要求代词解析的Winograd模式:“Joan一定要感谢Susan的帮助(给予/收到)。谁给予或者收到了帮助?Joan还是Susan?”我们从Winograd模式挑战中的示例开始,并对它们进行了修改(导致了修订的Winograd模式挑战,即MWSC),以确保答案是上下文中的单个单词,并且分数不会因上下文、问题和答案之间的措辞或不一致而增加或减少。
在decaNLP上竞争的模型通过特定任务中的度量标准的组合来评估。所有的度量值在0到100之间,因此十项全能得分在10个任务中的度量值在0到1000之间。为了评估decaNLP模型,我们选择了特定的测试集进行验证,而不是使用标准的验证数据集。MNLI测试集不是公开的,decaNLP模型必须通过Kaggle系统来评估MNLI的测试性能。
为了在所有decaNLP任务中实现高效的多任务处理,我们引入了MQAN,一个无特定任务参数和模块的多任务问答网络。MQAN采用问题和上下文背景文档,使用BiLSTM编码,并通过额外的共同关注层对两个序列进行表示。使用自我关注机制来收集长距离依赖关系,并使用BiLSTM对问题和背景环境进行最终表示。多指针生成器解码器则根据问题、上下文和先前输出符号来决定是否从问题中复制、从上下文复制或从有限词汇表中生成。
除了MQAN,我们还尝试了几种基线方法并计算了它们的十项全能得分。第一个基线是S2S,具有注意力和指针生成器的序列到序列网络。第二个基线是S2S w/SAtt,S2S网络在编码器侧的BiLSTM层和解码器侧的LSTM层之间添加了自注意(Transformer)层。第三个基线是+CAtt,将上下文和问题分成两个序列,并在编码器侧添加一个额外的共同关注层。MQAN是一个带有附加问题指针的+CAtt模型,在我们的基线/消融研究中称为+QPtr。针对每一个模型,我们提出了两种实验:单任务性能和多任务性能。
比较这些实验的结果突出了在序列到序列和通用NLP问答方法之间的多任务和单任务之间的权衡。从S2S到S2S w/SAtt添加了附加关注层,这大大提高了SQuAD和WikiSQL的性能,并提高了QA-SRL的性能。下一个基线使用上下文和问题作为单独的输入序列,增强了S2S模型,但遗憾的是,这种分离不能改善其他任务,并且极大地损害了MNLI和MWSC的性能。为了解决这个问题,我们在前面的基线中添加了一个问题指针(+QPtr),这提高了MNLI和MWSC的性能,并改善了SQuAD、IWSLT和CNN/DM上的性能。
在多任务设置中,我们看到了类似的结果,但我们也注意到一些显著特性。在QA-ZRE中,零样本关系提取的性能比最高单任务模型提高了11个百分点,支持了多任务学习在零样本情况下也能更好地泛化的假设。
考虑到我们的模型是在丰富和多样的数据上进行训练的,它构建了强大的中间表示,从而实现了迁移学习。相对于一个随机初始化的模型,我们的模型在decaNLP上进行了预先训练,使得在几个新任务上更快地收敛并提高了分数。我们在图中给出了两个这样的任务:命名实体识别和英文到捷克语的翻译。我们的模型也具有领域适应的零样本能力。
我们的模型在decaNLP上接受过训练,在没有看过训练数据的情况下,我们将SNLI数据集调整到62%的精确匹配分数。因为decaNLP包含SST,它也可以在其他二进制情感分析任务中表现良好。在亚马逊和Yelp的评论中,MQAN在decaNLP上进行了预先培训,分别获得了82.1%和80.8%的精确匹配分数。此外,用高兴/愤怒或支持/不支持来替换训练标签的符号来重新表示问题,只会导致性能的轻微下降,因为模型主要依赖于SST的问题指针。这表明,这些多任务模型对于问题和任务中的微小变化更加可靠,并且可以推广到新的和不可见的类。
为了方便起见,我们为感兴趣的读者提供了我们的论文及其附录,提供更多关于主要任务、历史背景、模型、训练策略、课程学习启发、模型激活分析和相关工作的细节。该论文链接如下:
论文链接:https://einstein.ai/static/images/pages/research/decaNLP/decaNLP.pdf
未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能、互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业、行业与城市的智能水平服务。