当前位置: 首页 > 科技观察

从想法到实践,2018年NLP的13项漂亮新研究_0

时间:2023-03-15 09:42:39 科技观察

过去的2018年,自然语言处理有很多令人兴奋的想法和工具。从概念角度到实践训练,他们为NLP注入了新鲜的活力。前段时间,SebastianRuder介绍了他心目中最有影响力的10个思想,并分别提供了具体的论文和核心思想。正如Ruder所说,他的清单必然是主观的,主要涵盖与迁移学习和泛化相关的想法。其中一些想法在过去的一年里引起了很多关注,大家也围绕这些优秀的想法开展了大量的研究工作和实践。有些想法不是当前的趋势,但它们可能会在未来流行。因此,机器之心在儒德介绍的基础上,聚焦今年最前沿的趋势,推荐一些真正好用的NLP新工具。在这篇文章中,我们将重点关注2018年的神经机器翻译和预训练模型。这两个概念真的很令人兴奋!那么对于实战设备来说,数百种中文预训练词嵌入向量、BERT预训练模型、建模框架PyText等工具,着实让人想做一个新奇的NLP应用。1.神经机器翻译2018年,神经机器翻译似乎发生了很大的变化。用RNN和attention机制搭建的Seq2Seq模型好像要被Tramsformer取代了。每个人都在使用更大的Transformer、更高效的Transformer组件。比如阿里会根据最近的一些新研究,对标准的Transformer模型做一些修正。这些修正首先体现在将Transformer中的Multi-HeadAttention替换为多个self-attention分支,其次,他们使用编码相对位置的表示来扩展self-attention机制,使模型能够更好地理解序列元素它们之间的相对距离。有道翻译也使用了Transformer,他们也会采用一些修正,包括单语数据的使用、模型结构的调整、训练方式的改进等等。比如在单语数据的使用上,他们尝试了backtranslation等策略和对偶学习,并在模型结构中采用相对位置表示。所以总的来说,虽然Transformer在解码速度和位置编码方面存在一些不足,但它仍然是神经机器翻译最有效的基础架构。在Ruder的演讲中,它主要关注两个无监督机器翻译模型,它们都被接受为ICLR2018论文。如果无监督机器翻译模型可以工作,那么这个想法本身就是惊人的,尽管无监督翻译很可能比有监督翻译差得多。在EMNLP2018中,有一篇paper在unsupervisedtranslation上更进了一步,做了很多改进,取得了很大的进步。Ruder的笔记中提到了以下论文:Paper:Phrase-Based&NeuralUnsupervisedMachineTranslation论文链接:https://arxiv.org/abs/1804.07755这篇论文很好地提炼了无监督机器翻译的三个关键点:Excellentparameterinitialization,language通过反向翻译建模和建模逆向任务。这三种方法也用于其他无监督场景。例如,建模逆向任务会强制模型实现循环一致性。这种一致性已应用于许多任务。也许读者对CycleGAN最为熟悉。论文还对英语-乌尔都语和英语-罗马尼亚语这两种语料库较少的语言做了广泛的实验和评估。无监督机器翻译的三个主要原则:A)两个单语数据集,B)参数初始化,C)语言建模,D)回译。这篇论文获得了EMNLP2018的最长论文奖,在遵循以上三个主要原则的同时简化了结构和损失函数。由此产生的模型优于以前的方法,并且更容易训练和调整。2.预训练模型2018年,预训练语言模型的使用可能是NLP领域最显着的趋势,它可以利用从无监督文本中学习到的“语言知识”,迁移到各种NLP任务中。预训练模型有很多,包括ELMo、ULMFiT、OpenAITransformer、BERT,其中BERT最具代表性,在当时的11个NLP任务中取得了最好的表现。然而,目前有九项任务被微软的新模式超越。机器之心解读了BERT的核心流程。它会先从数据集中提取两个句子,第二个句子是第一个句子的下一个句子的概率是50%,这样就可以学习句子之间的关系。.其次,随机去掉两个句子中的一些词,让模型预测这些词是什么,这样就可以学习到句子内部的关系。***然后将处理后的句子传入大型Transformer模型,同时通过两个损失函数学习以上两个目标,完成训练。如上图所示,不同预训练模型的架构,BERT可以看作是结合了OpenAIGPT和ELMo优点的新模型。其中,ELMo使用两个独立训练的LSTM获取双向信息,而OpenAIGPT使用新型Transformer和经典语言模型只获取单向信息。BERT的主要目标是在OpenAIGPT的基础上对预训练任务做一些改进,从而同时利用Transformer的深度模型和双向信息。这种“双向”的根源在于BERT不同于传统的语言模型。它不是给定所有前面的词来预测最有可能的当前词,而是随机覆盖一些词并使用所有未屏蔽的词进行预测。.此外,值得注意的是,最近微软发布了一个新的综合模型,在GLUE的11个基准NLP任务中的9个上优于BERT,并且也超过了BERT。除了准确率之外,微软的新模型只有1.1亿个参数,远不及BERT-Large模型的3.35亿个参数,和BERT-Base一样多的参数。在“MicrosoftD36***I&MSRAI”模型的描述页面中,新模型采用了多任务联合学习。因此,所有任务共享相同的结构,并通过多任务训练方法共同学习。目前,关于新车型的信息非常少。如果经过多任务预训练后能够像BERT一样用于更广泛的NLP任务,那么这样一个高效的模型无疑具有很大的优势。SebastianRuder很欣赏ELMo的创新思想,也是今年的论文(NAACL2018):论文:Deepcontextualizedwordrepresentations(NAACL-HLT2018)论文链接:https://arxiv.org/abs/1802.05365ThispaperThewell-receivedELMo被提议。除了令人印象深刻的实验结果,论文最吸引人的部分是论文的分析部分,它消除了各种因素的影响,分析了表示捕获的信息。下图左中,语义消歧(WSD)表现非常好,它们都表明语言模型提供的语义消歧和词性标注(POS)性能接近当前state-of-艺术。与基线模型相比,第一层和第二层双向语言模型的语义消歧(左)和词性标注(右)。3.CommonsenseReasoningDatasets将常识集成到模型中是NLP最重要的研究方向之一。然而,创建好的数据集并非易事,即使是流行的数据集也会遇到很大的偏好问题。今年出现了几个试图教授机器学习常识的数据集,例如华盛顿大学的Event2Mind和SWAG。但是SWAG很快就被BERT打败了。代表性研究成果包括:论文:FromRecognitiontoCognition:VisualCommonsenseReasoning论文地址:https://arxiv.org/abs/1811.10830这是第一个包含每个答案数据集的基本原理(解释)的视觉QA。此外,回答问题需要复杂的推理。创建者尽一切努力考虑可能的偏差,确保每个答案都有25%的先验概率是正确答案(每个答案在整个数据集中出现4次,3次不正确,1次正确);这需要使用可以计算相关性和相似性的模型来解决约束优化问题。给定一张图像、一系列位置和一个问题,模型必须回答问题并提供合理的推论来解释为什么答案是正确的(Zellersetal.,2018)4.元学习元学习是当前的领域机器学习。一个令人兴奋的研究趋势,它解决了学习如何学习的问题。元学习在少样本学习、强化学习和机器人技术中有很多应用,其中最突出的是模型不可知元学习(MAML),但在NLP中取得的成功很少。当训练样本有限时,元学习非常有用。代表性研究成果包括:论文1:Meta-LearningforLow-ResourceNeuralMachineTranslation论文链接:http://aclweb.org/anthology/D18-1398作者使用MAML为翻译学习了一个很好的初始化,对待每个语言对作为一个独立的元任务。资源较少的语言或许是NLP中元学习最有价值的场景。结合多语言迁移学习(如多语言BERT)、无监督学习和元学习是一个很有前途的研究方向。迁移学习、多原因迁移学习和元学习之间的区别。实线:学习初始化。虚线:微调路径。论文2:Meta-LearningaDynamicalLanguageModel论文地址:https://arxiv.org/abs/1803.10631作者提出用于优化神经网络模型的元学习器的行为类似于循环神经网络网络,它会提取一系列模型训练过程中的参数和梯度作为输入序列,并根据这个输入序列计算出一个输出序列(更新后的模型参数序列)。在他们的论文中,他们详细描述了这种相似性,并研究了元学习器在神经网络语言模型中用于中期记忆的用途:学习后,元学习器能够对中期记忆进行编码(除了传统的编码LSTM隐藏状态下的短期记忆)。他们的元学习语言模型由3个自下而上的记忆层次结构组成:一个标准LSTM、一个用于更新LSTM权重以存储中期记忆的元学习器,以及一个长期静态记忆。他们发现可以训练元学习语言模型来编码最近输入的记忆,就像维基百科文章的开头对于预测文章的结尾非常有帮助一样。5.稳健的无监督方法今年,我们观察到跨语言嵌入方法在语言相似性较低时会失败。这是迁移学习中的常见现象,其中源语言和目标语言设置之间的差异(例如域适应中的域、持续学习中的任务和多任务学习)导致模型退化或失败。因此,使模型对这些变化更加稳健非常重要。代表性研究成果包括:论文:Arobustself-learningmethodforfullyunsupervisedcross-lingualmappingsofwordembeddings论文链接:http://www.aclweb.org/anthology/P18-1073这篇论文是基于其理解的更好的初始化是在不使用元学习作为初始化的情况下构建的。特别是,他们将两种语言中具有相似词分布的词配对。这是利用领域知识和分析洞察力使模型更加健壮的一个很好的例子。三个词的相似度分布:等价翻译(“two”和“due”)比不相关的词(“two”和“cane”(狗))具有更相似的词分布。(Arttexteetal.2018http://www.aclweb.org/anthology/P18-1073)6.理解表征今年已经做了很多工作来更好地理解表征。特别是,论文《Fine-grained Analysis of Sentence Embeddings Using Auxiliary Prediction Tasks》提出了“诊断分类器”(测量学习表示是否预测特定属性的任务),这后来在其他研究中变得很普遍,例如《What you can cram into a single vector: Probing sentence embeddings for linguistic properties》。代表性研究成果包括:论文:DissectingContextualWordEmbeddings:ArchitectureandRepresentation论文链接:http://aclweb.org/anthology/D18-1179这篇论文对更好地理解预训练语言模型表示做出了巨大贡献。他们广泛研究在精心设计的无监督和监督任务中学习到的单词和跨度表征。事实证明,预训练表示在较低层学习与低级形态和句法任务相关的任务,并在较高层学习更广泛的语义。对我来说,这项研究表明,预训练语言模型确实可以捕获文本的相似属性,就像在ImageNet上预训练的计算机视觉模型可以捕获图像之间的相似属性一样。BiLSTM和Transformer的预训练表示的每一层的性能,从左到右:POS标记、选区解析和无监督共指解析(Petersetal.2018http://aclweb.org/anthology/D18-1179)。7.辅助任务在许多设置中,我们看到越来越多地使用多任务学习方法和精心选择的辅助任务。最重要的案例之一是BERT。它使用下一句预测来实现卓越的性能(最近用于Skip-thoughts、Quick-thoughts等)。代表性研究成果包括:论文1:SyntacticSc??affoldsforSemanticStructures论文链接:http://aclweb.org/anthology/D18-1412本文提出了通过预测每个span对应的句法成分类型来预训练span的辅助任务交涉。虽然概念上很简单,但这个辅助任务可以在语义角色标记和共指消解等跨度预测任务上取得很大的改进。该论文表明,目标任务在所需级别学习的专门表示非常有用。论文2:pair2vec:CompositionalWord-PairEmbeddingsforCross-SentenceInference论文链接:https://arxiv.org/abs/1810.08854基于类似的思路,本文采用optimizedwordpairsandcontextualpoint-by-pointMutualinformationpre-训练有素的词对表示。这鼓励模型学习比语言建模等更一般的表示更有意义的词对表示。这些预训练表示在SQuAD和MultiNLI等需要跨句子推理的任务中非常有效。我们可以期待看到更多预训练模型捕获特定的下游任务并补充更一般的任务(例如语言建模)。OntoNotes的句法、***语料库和共识注释。***语料库SRL参数和引用在语法组件上方进行了注释。几乎每个参数都与句法成分有关(Swayamdiptaetal.,2018http://aclweb.org/anthology/D18-1412)8.半监督学习与迁移学习相结合最近,迁移学习取得了最大进展,我们应该不要忘记使用目标任务特定数据的更明确的方式。事实上,预训练表示是对各种形式的半监督学习的补充。研究人员探索了一种特定类别的半监督学习——自我标记方法。代表性研究包括:论文:Semi-SupervisedSequenceModelingwithCross-ViewTraining论文链接:http://aclweb.org/anthology/D18-1217这篇论文展示了一个概念上非常简单的想法——即Ensuringthatpredictionsfordifferentinputviewsare与主要模型的一致-可以在一系列不同的任务中受益。这个想法类似于worddropout,但允许使用未标记的数据来增强模型的鲁棒性。与meanteacher等其他自集成模型相比,它是专门为特定的NLP任务设计的。辅助预测模块看到的输入:辅助1:他们前往__________________。辅助2:他们前往华盛顿_______。辅助3:_____________华盛顿乘飞机。辅助4:________________________________________________________________________了。在QA)数据集的帮助下,问答系统取得了很大进展。除了对话问答和多步推理之外,问答系统最具挑战性的方面之一是合成包含大量信息的叙述和文本。代表性研究包括:论文:TheNarrativeQAReadingComprehensionChallenge论文链接:http://aclweb.org/anthology/Q18-1023这篇论文的作者提出了一个具有挑战性的QA数据集,该数据集基于对整个电影剧本和书籍集的问答.虽然目前的方法仍然不能胜任这项任务,但模型可以选择使用摘要(而不是整本书)作为上下文,选择答案(而不是生成答案),并使用IR模型的输出。这些变体提高了任务的可行性,使模型逐渐扩展到完整的上下文。QA数据集比较。10.InductivebiasInductivebiasCNN中的卷积、正则化、dropout等机制作为正则化项是神经网络模型的核心部分,也使得模型采样更加高效。然而,提出一个普遍可用的归纳偏差并将其纳入模型是非常具有挑战性的。代表性研究成果包括:论文1:sequenceclassificationwithhumanattention(CoNLL2018)论文链接:http://aclweb.org/anthology/K18-1030本文提出利用人眼追踪语料库中的人类注意力对RegularizingAttentioninRNN。如今,许多现有的模型如Transformers都在使用注意力,找到一种更有效的训练方式是一个重要的方向。很高兴看到人类语言学习如何帮助我们改进计算模型。论文2:Linguistically-InformedSelf-AttentionforSemanticRoleLabeling(EMNLP2018)论文链接:http://aclweb.org/anthology/D18-1548这篇论文有很多值得欣慰的地方:Simultaneoustrainingofasyntacticandsemantictask变压器;在训练期间添加高质量解析和域外评估的能力。通过训练注意力头来关注每个标记的句法父级,本文还规范了Transformer的多头注意力,使其在句法上更加敏感。我们可能会在未来看到更多Transformerattentionheads的例子,作为专注于输入特定方面的辅助词预测器。PropBank过去十年的语义角色标记。Linguistically-InformedSelf-Attention(LISA)方法与域外数据的其他方法相比。无论是带有Mask的语言模型,还是通过回译的无监督机器翻译,这10个想法都很漂亮。但在实际应用中,我们更愿意直接使用已有的工具来构建高效的应用程序。只有这样,才能将这些想法转化为真正有趣的东西。11.数百个预训练中文词向量用于自然语言处理。词嵌入基本上是不可避免的步骤。各种任务都需要归结到单词级别才能继续计算。因此,对于国内自然语言处理研究者来说,中文词向量语料库是一个需求量很大的资源。为此,北京师范大学等机构的研究人员开源了“中文词向量语料库”,其中包含数十个各个领域的语料库(百度百科、维基百科、人民日报1947-2017、知乎、微博、文学、财经,古汉语等)训练词向量,涵盖各个领域,包含多种训练设置。中文词向量项目地址:https://github.com/Embedding/Chinese-Word-Vectors本项目提供了使用不同表示(稀疏和密集)、上下文特征(词、n-gram、字符等)的中文词和语料库训练词向量(嵌入)。我们可以轻松获得具有不同属性的预训练向量,并将它们用于各种下游任务。12.BERT开源实现BERT的效果虽然如前所述惊人,但预训练所需的计算能力同样惊人,普通开发者基本不愿复现。BERT的作者也在Reddit上表示预训练计算量非常大。Jacob说:“OpenAI的Transformer有12层和768个隐藏单元。他们使用8个P100块在8亿词的数据集上训练40个Epoch。耗时一个月,而BERT-Large模型有24层和2014个隐藏单元单位。他们需要在33亿词的数据集上训练40个Epoch,那么在8个P100上可能需要1年?16个CloudTPU已经是很大的计算能力了。不过谷歌团队开源了BERT的预训练模型,我们可以将它们用于不同的NLP任务,这为我们节省了大量的计算能力,同时可以提升现有模型的效果,所以在做之前NLP任务,可以使用预训练的BERT先试水吗?BERT实现地址:https://github.com/google-research/bert其实很多开发者已经将BERT预训练模型应用到了自己的13.Facebook开源的NLP建模框架PyText,从论文到产品部署只需要几天时间。部署之间的界限。PyTex是主要的自然语言Facebook正在使用的处理(NLP)建模框架,每天为Facebook及其应用程序系列的用户提供超过10亿个AI任务。基于PyTorch,该框架可以1)简化工作流程并加快实验进度;2)pro提供大量预置模型架构和文本处理、词汇管理工具,方便大规模部署;系统的功能,包括NLP社区的研究人员和工程师预先构建的模型和工具。使用这个框架,Facebook在几天内将一个NLP模型从构思到完全实现,并部署了依赖于多任务学习的复杂模型。YannLeCun介绍,“PyText是一个工业级开源NLP工具包,可用于在PyTorch中开发NLP模型,并通过ONNX进行部署。其预训练模型包括文本分类、序列标注等。》项目地址:https://github.com/facebookresearch/pytext参考链接:http://ruder.io/10-exciting-ideas-of-2018-in-nlp/