halcyon编译

自然语言十项全能:转化为问答的多任务学习

Salesforce最新论文提出了一个可处理多项自然语言处理的通用模型:decaNLP,处理机器翻译文本分类等NLP任务统统不在话下!

以下是论文精华内容:

深度学习提升了许多单个自然语言处理任务的性能。但是,一般的NLP模型集中于单个度量、数据集和任务,因此不能形成典范。我们引进了自然语言十项全能(decaNLP)的概念,一个跨越10个任务的挑战:问答,机器翻译,总结,自然语言推理,情感分析,语义角色标注,关系抽取,目标驱动对话,语义解析,常识性代词消解。

我们将所有的问题转化为一段文本的问答。进一步的,我们提出了一个新的多任务问答网络(MQAN),它可以在没有任何特定任务的模块或参数的情况下,共同学习decaNLP中的所有任务。MQAN显示了机器翻译命名实体识别(NER)的迁移学习的改进,情感分析和自然语言推理的领域适应,以及文本分类的零样本能力。

我们证明了MQAN的多指针编解码器是这个成功的关键,并且通过相反训练策略(anti-curriculum training strategy)进一步提高了性能。尽管MQAN是为decaNLP设计的,但它也实现了在单任务设置中的WikiSQL语义解析任务的最新结果。我们还发布了获取和处理数据,训练和评估模型的代码,以及重现了decaNLP的所有实验。

代码链接:

https://github.com/salesforce/decaNLP

介绍

我们介绍了decaNLP,以探索推广到许多不同类型的NLP任务的模型。decaNLP鼓励用单一模型同时优化十项任务:问答、机器翻译、文档总结、语义解析、情感分析、自然语言推理、语义角色标注、关系抽取、目标驱动对话、代词消解。

MQAN是针对decaNLP设计的,它利用了一种新的双关联注意力和多指针发生器解码器在decaNLP中对所有任务进行多任务处理。我们的研究结果表明,用正确的相反训练策略对所有任务的MQAN进行联合训练,可以达到与10个独立的MQANs单独训练相同的性能。

在decaNLP上接受过训练的MQAN在机器翻译命名实体识别迁移学习、情感分析和自然语言推理的领域适应以及文本分类的零样本能力方面都有改进。虽然没有为任何一个任务明确地设计,但事实证明,MQAN在单任务设置中也是一个强大的模型,在decaNLP的语义解析上实现了最先进的结果。

我们发布了代码,用于获取和预处理数据集、训练和评估模型,以及通过基于decaScore的十项全能分数(decaScore)的排行榜跟踪进度。我们希望这些资源的结合能够促进多任务学习迁移学习、通用嵌入和编码器、架构搜索、零样本学习、通用问答、元学习等NLP相关领域的研究。

任务和指标

decaNLP包含了10个公开的可获得的数据集,示例被转换为(问题、上下文、回答)三元组,如图1所示。


图1. decaNLP数据集的概览:其中包含了每一个decaNLP任务的例子。它们展示了如何预先处理数据集,使其成为问答问题。红色的回答词是通过指向上下文生成的,绿色的是从问题中生成的,蓝色的是输出词汇表上的分类器生成的。

问答(QA)。QA模型接收一个问题和一个上下文,其中包含输出所需答案所需的信息。在这个任务中我们使用斯坦福问答数据集(SQuAD)。

上下文是从英语维基百科中摘取的段落,回答是从上下文中复制的单词序列。SQuAD使用一种标准化的F1指标,剔除冠词和标点符号。

机器翻译机器翻译模型以源语言作为输入文档,输出为翻译好的目标语言。我们使用2016年为国际口语翻译研讨会(IWSLT)准备的英语到德语训练数据。例子来自转录的TED演讲,以对话的形式涵盖了各种各样的话题。我们在2013年和2014年的测试集上分别以语料级别的BLEU评分作为验证集和测试集进行评估。

摘要。摘要模型接收一个文档并输出该文档的摘要。关于摘要,最近最重要的进展是CNN/DailyMail(CNN/DM)语料库转化为一个摘要数据集。我们在decaNLP中包含这个数据集的非匿名版本。平均而言,这些示例包含了decaNLP中最长的文档,并强迫模型通过生成新的抽象的单词序列来平衡从上下文提取的内容。CNN/DM使用ROUGE-1、ROUGE-2和ROUGE-L分数。我们把这三个分数取平均,计算出一个整体的ROUGE分数。

自然语言推理。自然语言推理(NLI)模型接受两个输入句子:一个前提和一个假设。模型必须将两者之间的推理关系归类为包含关系、中立关系或矛盾关系。我们使用多流派的自然语言推理语料库(MNLI),提供来自多个领域的训练示例(转录语音、通俗小说、政府报告),以及来自可见和不可见领域的测试对。MNLI使用精确匹配(EM)得分。

情感分析。训练情感分析模型的目的是,根据输入的文本对文本表达的情感进行分类。斯坦福情感树库(SST),由一些带有相应情绪(积极的,中性的,消极)的电影评论组成。我们使用未解析的二进制版本。SST也使用EM分数。

语义角色标注(SRL)。SRL模型被给定一个句子和谓词(通常是一个动词),然后必须确定“谁对谁做了什么”、“什么时候”、“在哪里”。我们使用一个SRL数据集,将任务视为一种问答,也叫QA-SRL。这个数据集涵盖了新闻和维基百科领域,但我们只使用后者,以确保decaNLP的所有数据都可以免费下载。我们用SQuAD使用的nF1指标来评估QA-SRL。

关系抽取。关系抽取系统接收到一段非结构化的文本以及要从该文本中提取的关系。在这种情况下,模型需要先识别实体间的语义关系,再判断是不是属于目标种类。与SRL一样,我们使用一个数据集QA-ZRE,将关系映射到一组问题,这样就可以将关系抽取处理为问答形式。

对数据集的评估是为了对新的关系进行零样本性能的测量——数据集是被分割的,这样在测试时看到的关系在训练时是看不到的。这种零样本关系的提取,把它转化成问答,使它有可能推广到新的关系。QA-ZRE使用一个预料级别的F1指标(cF1)来准确地解释无法回答的问题。这个F1指标定义精度为真正的正计数除以系统返回非空答案的次数,召回率为真正的正计数除以有答案的实例数。

目标驱动对话。对话状态跟踪是目标驱动对话系统的重要组成部分。基于用户的说话、已经采取的行动和会话历史,对话状态跟踪器会跟踪用户对对话系统有哪些预定义目标,以及用户在系统和用户交互时发出哪些请求。

我们使用了WOZ餐厅预订任务的数据集,它提供了一个预定义的食物、日期、时间、地址和其他信息,可以帮助代理商为客户预订。WOZ基于回合的对话状态(dsEM)对客户的目标进行评估。

语义解析。SQL查询生成与语义解析相关。基于WikiSQL数据集的模型将自然语言问题转化成结构化的SQL查询,以便用户可以使用自然语言与数据库进行交互。WikiSQL通过逻辑形式精确匹配(lfEM)进行评估,以确保模型不会从错误生成的查询中获得正确的答案。

指代消解。我们的最后一个任务是基于Winograd模式,它要求代词消解:“Joan made sure to thank Susan for the help she had [given/received]. Who had [given/received] help? Susan or Joan?"。我们从Winograd模式挑战中的例子开始,并对它们进行了修改,以确保答案是来自上下文的单个单词。这个修改后的Winograd模式挑战(MWSC)确保了分数不会因上下文、问题和答案之间的措辞或不一致而被夸大或缩小。我们用EM值来评估。

十项全能分数(decaScore)。在decaNLP上竞争的模型将使用每个特定于任务的指标的相加组合进行评估。所有指标都在0到100之间,因此十项任务的decaScore自然会在0到1000之间。使用一个相加组合可以避免因衡量不同的指标而产生的问题。所有指标都不区分大小写。


表1 decaNLP中公开可用的基准数据集以及用于decoSocre的评估指标。

多任务问答网络

因为每一项任务都被定义为问答并且共同训练,所以我们称我们的模型为多任务问答网络(MQAN)。每个示例由上下文、问题和回答组成,如图1所示。


图2. MQAN模型概览:它输入一个问题和上下文文档,然后将它们用BiLSTM进行编码,使用dual coattention对两个序列的条件进行表示,用另两个BiLSTMs压缩所有的这些信息,用self-attention来收集这种长距离依赖,然后使用两个BiLSTMs的问题和上下文环境进行最终的表示。多指针生成器解码器使用对问题、上下文和先前输出的词次的关注来决定是从问题中复制、从上下文中复制还是从有限的词汇表中生成。

在训练过程中,MQAN将三个序列作为输入:具有l个词次的文本c,具有m个词次的问题q,具有n个词次的回答a。它们都用矩阵表示,矩阵的第i列与d_emb维的嵌入向量一致,作为序列中的第i个词次:

编码器将这些矩阵作为输入,使用重复的、coattentive的和self-attentive层的深层堆栈来产生最终的表示。设计作为上下文和问题的C_fin和Q_fin,来捕捉局部和全局的相互依赖。

回答表示

在训练过程中,解码器开始把回答潜入向量投影到d维的空间中:

接下来是一个self-attentive层,它在编码器中有一个相应的self-attentive层。因为它既没有递归,又没有卷积,我们给A_poj添加位置编码PE,其中PE为:

多头解码机制

我们使用self-attentive,这样解码器就可以知道以前的输出(或者在没有先前输出的情况下,可以使用一个特殊的初始化词次),并且可以关注上下文来准备下一个输出。

中间解码器状态

接下来,我们将使用标准的LSTM来获取时间步t时的循环上下文状态c_t。首先,让LSTM通过使用先前的回答词A_self和循环上下文状态产生一个中间状态h_t:

上下文和问题机制

这个中间状态被用于获得注意力权重,以使解码器集中于与时间步t有关的编码信息。


循环上下文状态

上下文表示与这些权重相结合,通过tanh激活的前馈网络输入,形成重复的上下文状态和问题状态:


多指针生成器


我们的模型必须能够生成不在上下文或问题中的词次。我们让它访问v个额外的词汇词次。分别得到在上下文中、问题和这个外部词汇表中词次的分布:


这些分布通过将缺失的条目设置为0以使每个分布都在R_l+m+v中来扩展,以覆盖上下文、问题和外部词汇表中的词次的联合。两个标量开关调节每个分布在决定最终输出分布的重要性。


我们在整个时间步中使用一个词次级别的负对数似然损失:

实验和分析

基线和MQAN

表2 decaNLP基线的验证指标:单任务和多任务实验对不同模型和训练策略的验证结果。


在我们的框架中,训练示例是(问题,上下文,回答)三元素。我们第一个基线是指针生成器S2S模型,S2S模型只接受一个输入序列,因此我们将该模型的上下文和问题连接起来。

在表格2中,验证指标显示在SQuAD上表现得并不是很好,在WikiSQL上,它相比于之前的S2S基线包含了更高的分数,但是相比于MQAN(+Qptr)和其他基线则更低。

使用self-attentive编码器和解码器层扩展S2S模型(w/SAtt),增加了模型集成来自上下文和问题的信息的能力。这让SQuAD上的表现性能提高了20个nF1,QA-SRL上的表现性能提高4个nF1,WikiSQL上的表现性能提高了12个LFEM。对于WikiSQL,这个模型在没有使用结构化方法的情况下,几乎达到了先前的最先进的验证结果72.4%。(见表格中红色箭头标注)

接下来,我们将研究如何将上下文和问题分割为两个输入序列,并使用coattentive扩展S2S模型(+CAtt)。SQuAD和QA-SRL上的表现增加了5个nF1。不幸的是,这不能改进其他任务,并且会严重影响MNLI和MWSC上的性能。

对于这两个任务,可以直接从问题中复制答案。由于两个S2S基线都将问题连接到上下文,所以指针生成器机制能够直接从问题中复制。当上下文和问题被分成两个不同的输入时,模型就失去了这种能力。

为了解决这个问题,我们在前面的基线上添加了一个问题指针(+QPtr),这提高了MNLI和MWSC在先前基线之上的性能。它还将阵容性能提高到75.5 nF1,这使它成为了在SQuAD数据集上训练的最高效的问答模型。

最后一个模型在WikiSQL上达到了一个新的最先进的测试结果,达到了72.4%的lfEM和80.4%的数据库执行精度,超过了之前最先进的71.7%和78%的水平。

在多任务设置中,我们看到了类似的结果,但我们也注意到一些额外的显著特性。QA-ZRE的性能比最高的单任务模型提高了11个F1点,这支持了多任务学习可以更好地推广零样本学习的假设。

需要大量使用外部词汇表的任务的性能从S2S基线下降了50%以上,直到问题指针添加到模型中。除了参与的上下文之外,这个问题指针还使用参与的问题,它允许来自问题的信息直接流到解码器中。我们假设更直接地访问这个问题使模型更容易决定何时生成输出词次比复制更合适。


图3 对MQAN如何选择输出回答词的分析。当p(generation)最高时,MQAN对外部词汇的权重最大。当p(context)最高时,MQAN将最大的权重放在上下文上的指针分布上。当p(question)最高时,MQAN将最大的权重放在问题的指针分布上

分析

多指针生成器和和任务识别。在每个步骤中,MQAN在三个选项中进行选择:从词汇表生成、指向问题和指向上下文。虽然模型没有接受过对这些决策进行明确监督的培训,但它学会了在这三个选项之间进行切换。图3显示了最终模型选择每个选项的频率。

对于SQuAD、QA-SRL和WikiSQL,模型大部分是从上下文复制的。这很直观,因为正确回答来自这些数据集的问题所需的所有词次都包含在上下文中。这个模型通常也会复制CNN/DM的上下文,因为答案摘要主要是由上下文中的词汇组成的,而很少有词汇是在上下文之外产生的。

对于SST、MNLI和MWSC,模型更喜欢问题指针,因为问题包含可接受类的词次。因为模型学习用这种方法来使用问题指针,所以它可以做零样本分类。对于IWSLT和WOZ,该模型更喜欢从词汇表中生成,因为德语词汇和对话状态字段很少出现在上下文中。该模型还避免了对QA-ZRE的复制。

对新任务的适应性。在decaNLP上训练的MQAN学会了泛化,而不是局限于特定领域,同时也学习表示,使学习完全新的任务更容易。对于两项新任务(英语对捷克语翻译和命名实体识别),在decaNLP上完成的一个MQAN训练需要更少的迭代,并且比从随机初始化(图4)获得更好的最终性能(图4)。

文本分类的零样本域适应性。因为MNLI包含在decaNLP中,所以它是能够适应相关的SNLI。在decaNLP上对MQAN进行微调,达到了87%的精确匹配分数,这比目前最好的随机初始化的训练增加了2个点。更值得注意的是,在没有对SNLI进行任何微调的情况下,在decaNLP上接受过训练的MQAN仍然能够获得62%的精确匹配分数。

这些结果表明,在decaNLP上训练的模型有潜力同时对多个任务的域外上下文和问题进行模拟推广,甚至可以适应文本分类的不可见类。这种输入和输出空间中的零样本域适应表明,decaNLP中的任务宽度鼓励了泛化,超出了对单个任务的训练所能达到的范围。


图4. 在decaNLP上预先训练的MQAN在适应新环境时和学习新任务时优于随机初始化。左:在一个新的语言对上训练,英语-捷克语,右:在一个新任务-命名实体识别(NER)上训练。

入门多任务学习自然语言处理
相关数据
逻辑技术
Logic

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

长距离依赖技术
Long-distance dependencies

也作“长距离调序”问题,在机器翻译中,比如中英文翻译,其语言结构差异比较大,词语顺序存在全局变化,不容易被捕捉

映射技术
Mapping

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

命名实体识别技术
Named entity recognition

命名实体识别(NER)是信息提取(Information Extraction)的一个子任务,主要涉及如何从文本中提取命名实体并将其分类至事先划定好的类别,如在招聘信息中提取具体招聘公司、岗位和工作地点的信息,并将其分别归纳至公司、岗位和地点的类别下。命名实体识别往往先将整句拆解为词语并对每个词语进行此行标注,根据习得的规则对词语进行判别。这项任务的关键在于对未知实体的识别。基于此,命名实体识别的主要思想在于根据现有实例的特征总结识别和分类规则。这些方法可以被分为有监督(supervised)、半监督(semi-supervised)和无监督(unsupervised)三类。有监督学习包括隐形马科夫模型(HMM)、决策树、最大熵模型(ME)、支持向量机(SVM)和条件随机场(CRF)。这些方法主要是读取注释语料库,记忆实例并进行学习,根据这些例子的特征生成针对某一种实例的识别规则。

元学习技术
Meta learning

元学习是机器学习的一个子领域,是将自动学习算法应用于机器学习实验的元数据上。现在的 AI 系统可以通过大量时间和经验从头学习一项复杂技能。但是,我们如果想使智能体掌握多种技能、适应多种环境,则不应该从头开始在每一个环境中训练每一项技能,而是需要智能体通过对以往经验的再利用来学习如何学习多项新任务,因此我们不应该独立地训练每一个新任务。这种学习如何学习的方法,又叫元学习(meta-learning),是通往可持续学习多项新任务的多面智能体的必经之路。

自然语言处理技术
Natural language processing

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

机器翻译技术
Machine translation

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

零样本学习技术
One shot learning

从仅仅一个或一小撮样本中学习一个新的概念,而普通的机器学习标准算法通常需要几十或几百个表现类似的样本。

参数技术
parameter

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

查询技术
Query

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

文本分类技术
text classification

该技术可被用于理解、组织和分类结构化或非结构化文本文档。文本挖掘所使用的模型有词袋(BOW)模型、语言模型(ngram)和主题模型。隐马尔可夫模型通常用于词性标注(POS)。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。

迁移学习技术
Transfer learning

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

验证集技术
Validation set

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

权重技术
Weight

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

深度学习技术
Deep learning

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。 近年来监督式深度学习方法(以反馈算法训练CNN、LSTM等)获得了空前的成功,而基于半监督或非监督式的方法(如DBM、DBN、stacked autoencoder)虽然在深度学习兴起阶段起到了重要的启蒙作用,但仍处在研究阶段并已获得不错的进展。在未来,非监督式学习将是深度学习的重要研究方向,因为人和动物的学习大多是非监督式的,我们通过观察来发现世界的构造,而不是被提前告知所有物体的名字。 至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

多任务学习技术
Multi-task learning

大数据文摘
大数据文摘

秉承“普及数据思维,传播数据文化,助⼒产业发展”的企业⽂化,我们专注于数据领域的资讯、案例、技术,形成了“媒体+教育+⼈才服务”的良性⽣态,致⼒于打造精准数据科学社区。

大数据文摘
大数据文摘

秉承“普及数据思维,传播数据文化,助⼒产业发展”的企业⽂化,我们专注于数据领域的资讯、案例、技术,形成了“媒体+教育+⼈才服务”的良性⽣态,致⼒于打造精准数据科学社区。

返回顶部