自然语言处理五年技术革新,快速梳理 NLP 发展脉络
来源:机器之心
机器之心发布机器之心编辑部机器之心《2020-2021全球AI技术趋势发展报告》节选:顶会趋势(NeurIPS)分析。2021年伊始,机器之心发布《2020-2021全球AI技术趋势发展报告》,基于顶会、论文及专利等公共数据、机器之心专业领域数据仓库,通过数据挖掘定位七大趋势性AI技术领域。此外,该报告还邀请了近100位专家学者通过问卷调查,形成对这七大技术领域近年发展情况、成熟度与未来趋势的综合总结,并基于2015-2020年间的开源论文与专利语料,结合机器之心自有的新闻舆论以及模型最佳表现(SOTA)等相关数据库进行了探索性数据分析,并形成了用以帮助技术趋势判定的量化指标SyncedIndicator(SI)。为了方便从业者把握AI技术趋势,机器之心将持续刊载该该报告的节选内容,以下篇幅选自《2020-2021全球AI技术趋势发展报告》第三章「人类语言技术」。「3-1 」人类语言技术3-1-1 近年领域事件根据机器之心整理的人工智能领域事件库数据,近5年(2015~2020)来人类语言技术领域的主要有以下大事件值得关注:神经机器翻译、注意力机制与Transformer自然语言处理的技术突破似乎总是从机器翻译领域开始的,作为NLP领域最早的研究领域之一,机器翻译是较能体现语言理解的一项重要技术任务,也是自深度学习兴起后技术突破最多最频繁的技术任务。机器翻译的核心技术涵盖了自然语言理解和生成两大基本问题,其技术路径的演变基本可以代表整个自然语言处理技术领域的主要技术方法演变:从最初的基于语法规则的机器翻译(RBMT),统计学兴起之后逐渐开始形成气候的统计机器翻译(SMT),以及近10年来基于神经网络的机器翻译(NMT),机器翻译领域通常是新技术首先得到测试验证的领域。2015年以来,正是神经机器翻译快速发展的时代,而其中贡献较为突出的当属搜索引擎行业的龙头企业谷歌,从2016年谷歌神经机器翻译(GNMT)的发布开始,将初期主要在CV领域活跃的Attention机制运用到了机器翻译领域,2017年又抛开深度学习领域一直被广泛使用的核心RNN网络、提出了单纯基于自注意力机制的Transformer模型架构,在模型泛化能力上看到了很大的可能性。2018年紧接着提出并开源了基于双向Transformer的大规模预训练语言模型BERT,刷新了当时多项不同类型的NLP下游任务的最佳表现,使人们看到了这类模型的巨大潜力,也自此掀起了NLP领域的大规模预训练语言模型研究与开发的热潮。大规模预训练语言模型2018~2019年里,尤其是2019年,大规模预训练语言模型似乎成为了NLP领域技术指标突破逃不开的技术方法。在ELMo之前,深度学习在自然语言处理的主要应用方向在于从词到句子级别的分布式表征,word2vec是此类方法的典型代表。虽然一时间预训练的词向量在诸多自然语言处理任务上取得了不错的进展,但词向量本身都是上下文无关的,也即同一个词的向量表示在不同语境中总是相同的,这就意味着词向量无法解决语言技术里很大的一个障碍,一词多义问题。因此研究人员们开始在具体的下游任务中基于词向量的序列来做编码,这种seq2seq端到端的思想迅速取代了word2vec的热潮,而谷歌在这个基础上研发出的自注意力机制模型transformer可算是这个思想的集大成者。也正是同一时间,来自华盛顿大学的研究者开发出了ELMo模型,通过语言模型来获得一个上下文相关的预训练表示,并通过定制成功地用在了多个不同的下游任务上取得领先的表现效果。而仅仅针对文本进行丰富的encoding尚不足以覆盖所有NLP下游任务,尤其是QA、阅读理解等包含问询关系等多种复杂模式的情况下,下游任务的网络会需要做更多不同的结构调整,同一个模型在多个不同任务、甚至同一任务不同数据集上的表现差别仍然有待提高,这也就促使了BERT的诞生。BERT类模型使用大规模语料数据采取更深程度的预训练,从而形成一个更为通用的模型基底。这比覆盖上下文语境含义的词向量更进一步,而涉及到下游任务时也仅需要定制一个非常轻量级的输出层而不需要对模型骨架做重大调整。实用效率工具和数据集当一个技术发展成熟到一定程度之后,我们会看到技术在研究层面的数据增加开始放缓,但在工程和应用层面的相关数据开始增加。而回顾过去五年的NLP领域事件,我们发现除了重要的具体模型算法之外,数据集和实用的开源工具成为该领域里不可忽视的组成部分。除了机器翻译领域Google开源的GNMT,OpenNMT也开源了其自研的神经机器翻译工具包,并且提供了Pytorch和TensorFlow两个不同框架的支持。数据集Benchmark方面,问答数据集SQuAD经历了1.0、2.0两个代际,自然语言理解综合benchmarkGLUE也经历了一次到SuperGLUE的升级,中文领域也衍生出了类似的评价体系CLUE。随着预训练语言模型的火热与广泛应用,可以预见的是相关的数据集与评估指标还会有新的升级与换代。Facebook开发并开源了实用文本分类库fastText,OpenAI在三代GPT版本更迭后,于今年的GPT-3发布后不久便开始提供对应的API服务。综合工具方面,微软联合创始人保罗艾伦建立的AllenInstituteforAI于今年正式推出了其自然语言处理工具包AllenNLP,提供完整的自然语言处理流程框架和相应工具。成立于2016年的Huggingface借助Transformer模型的东风,提供多种基于transformer架构模型的调用框架(包括BERT、GPT-2、Transformer-XL、RoBERTa、DistilBERT、BART,以及GoogleT5等近40种不同模型),同时兼容TensorFlow与pytorch。知名语音技术工具包Kaldi也于2017和2018年先后增加了TensorFlow和PyTorch的整合支持。总体而言,NLP领域每年都有新突破,语音领域在2015~2017年发展迅猛,达到接近人类水平,而后归于稳定、小修小改重点解决局部问题。*完整的人类语言技术相关影响力事件表请参看报告附录。3-1-22019~2020年热门技术根据2019-2020年度技术热词分析结果,该领域的整体热度在本篇报告覆盖的领域里面排第二,仅次于计算机视觉,领域内的技术热词以主流的自然语言处理下游技术任务为主(如机器翻译、问答系统、信息抽取、文本分类等),同时包括一些近年来讨论热度比较高的算法模型框架(如BERT、word2vec、Transformer等),语音识别、语音合成两个语音相关的技术词也同样榜上有名。具体来说,神经机器翻译、语音识别以及BERT在论文、新闻的热词发现中均名列前茅,除此之外,新闻资讯中的技术热词多是大众讨论度比较高的技术词或偏口语化的技术词,如自然语言处理本身、聊天机器人、以及注意力机制,而论文中则会有比较多相对具体的基础技术任务如文本分类、命名体识别、语义解析等以及相对书面正式的技术词如自然语言理解、问答系统、机器阅读理解。报告、survey中呈现出的高频讨论技术词则多是归纳性质较强的技术任务或方法,如问答系统、序列到序列(seq2seq)、端到端(end2end)模型等。以下为本领域在各项热门技术词挖掘中综合排名前100的技术词:技术名词新闻挖掘论⽂挖掘报告/Survey⾃然语⾔处理✓⾃然语⾔理解✓⾃然语⾔推理✓机器翻译✓神经机器翻译✓✓问答系统✓✓对话系统✓聊天机器⼈✓机器阅读理解✓⽂本⾃动摘要⽂本分类✓情感分析✓语⾳识别✓✓语⾳合成⽂本⽣成✓命名体识别✓语义解析✓语法解析词性标注✓语⾔模型✓预训练模型✓ELMOGPTBERT✓✓Transformer✓注意⼒机制✓seq2seq✓word2vec✓词嵌⼊✓表3-1-2-1人类语言技术2019~2020年热门技术词*为了分析的完整和可对比性,我们额外补充了语音合成、语法解析、文本自动摘要,以及ELMO、GPT等技术词结合各AI技术分析报告文章、论文survey,社交网络观点、以及专家问卷结果,该人类语言技术章节分析主要从机器翻译、问答系统、阅读理解、文本分类、语音识别、语音合成等热门NLP和语音方面的技术任务,以及相关的热门技术方法如语言模型、序列到序列,词嵌入,BERT等分不同角度切入,从学界问卷、论文专利、以及新闻舆情多数据角度综合分析其本身以及相关技术近五年来的重要事件以及发展趋势,分析细节详情参见报告。报告全文获取方式方式二:成为机器之心PRO-VIP会员自然语言处理NLP 2023年最新综述:An introduction to Deep Learning in Natural Language Processing
论文题目:AnintroductiontoDeepLearninginNaturalLanguageProcessing:Models,techniques,andtools
摘要深度学习技术在NLP中的应用;NLP研究中的主要资源,包括软件,硬件和受欢迎的语料库;主要局限性
一、简而言之如机器翻译,问答,摘要等。涉及模型,系统和算法的设计和实施,以解决理解人类语言的实际问题。
将NLP分为两个主要的子分支,分别是基础和应用研究:前者如语言建模,形态分析,句法处理或解析、语义分析;后者如从文本中自动提取相关信息(如命名实体及其之间的关系),语言之间的文本翻译,文档摘要,问题的自动回答,分类和文档的聚类。
深度学习引入NLP,替代传统ML算法:端到端训练且无需特定特征提取工程;能处理大量训练数据;但对与自然语言的语义分析有关的任务,语义注释数据有限(需要专业人员)
最近的模型(如回答或检测欺骗内容)超越人类在各种任务上的表现。但是仍存在问题,如计算成本,结果的可重复性以及缺乏可解释性。
仅考虑最近的调查(自2019年以来),包括:主要NLP任务的分类;当前问题和未来工作的分析(重点是可重复性);软件和硬件资源以及NLP中使用的主要语料库的描述。【一些相关工作】
二、任务和应用序列分类:输入为一组序列,每个序列包括系列tokens,对应一个类别;相关示例(情感分析,根据其极性对简短的文本进行分类;文本分类,找文本的主题(体育,财务…);回答句子选择,从给定的段落/文本中选择最佳句子以回答输入问题)
成对序列分类:根据它们的相似性,语义和含义,比较和分类两个不同的序列,通常是一个二进制分类任务。输入为两个不同的序列,若表达相同的含义返回+1,否则-1;需要充分理解序列并提取有意义的语义表示,克服同义、多义等问题;相关示例(Quora问题对挑战,从Quora找到重复的问题)
单词标注:每个token附加一个标签,输出空间由输入的每个元素的标签序列组成;相关示例(命名实体识别(NER),从输入序列中确定相关实体(如名称,位置);经典问题回答,使用输入段落涉及的概率分布,选择包含答案的span;语音部分(pos)标记,将文本中的单词标记为对应语音的特定部分(如动词,名词,形容词))
seq2seq:使用输入序列生成输出序列。与单词标记不同,输入序列和输出序列不直接对齐,且需要生成新句子(尽管输入输出都包含序列,但可能是不相交的集合)
三、NLP的最新进展过去十年中的主要问题之一是定义token,句子和文件的适当有效表示。早期的one-hot编码存在2个主要问题(输入词由巨大的向量描述,其尺寸取决于字典大小;不同单词仅由正交表示,而单词之间有任意可能的语义关系)
3.1单词和句子向量Word2Vec,一种学习分布式低维单词级表示(称为词向量或单词嵌入)的有效方法,由一个浅神经网络组成(包括CBOW和Skip-gram两个模型)。被用于NER、情感分析、推荐、同义词识别等问题;提出的改进包括GloVe、fastText。
两篇单词嵌入的总结文献:前者从头总结,后者专注于跨语化环境
适当的句子和文本表示仍具有挑战性:词袋BOW为主要方法之一。它将文档d表示为组成该文档的(可数的)单词集,可以计算为组成该文档的独热单词向量的和。
有意义的文档和句子级别表示的新方法,可以分为两个类别,即无监督文档嵌入技术(通常受到Word2vec的启发)和监督方法:无监督词/句子向量旨在提取可用于各种任务的一般表示,这些方法可通过语言模型目标函数(即单词序列上的概率分布)在大规模的未标注语料库上进行训练;监督方法使用显式标签来开发下游任务中使用的有意义的表示。
无监督方法:通过单词矢量的简单平均池化得到句子向量;直接扩展Word2Vec的不同方法(如Doc2Vec/ParagraphVector);基于skip-gram相同结构的skip-thought向量(将原子单元由单词变为句子,试图根据目标句子重建上下文);基于带GRU单元RNN的编码解码结构;fastSent(扩展skip-thought向量,使用CNN编码器和RNN解码器的组合)
监督方法:大多基于递归或卷积神经网络,通常在词向量之上构建一个神经网络,结合预训练词嵌入的特性、神经架构的弹性和监督的强度;用于序列分类的CNN的典型结构:将静态词向量作为输入,然后由卷积层学习单词之间的语义关系;相关应用有神经机器翻译(MT),将seq2seq作为编码-解码器,将句子而不是短语作为输入,但存在长句子信息不能被压缩在固定长度向量中的问题,因此添加注意力机制。
ELMo语言模型嵌入受双向RNN的启发,不是使用静态词向量,而是查看整个句子,通过双向语言模型生成上下文词嵌入。该网络是在未标记数据上预训练的多层LSTM,表明通过微调网络,在下游任务中使用内部表示机制,可改进基准测试结果。
3.2预训练的Transformer模型Transformer是第一个完全基于注意力来绘制输入输出之间全局依赖关系的架构,取代了编码-解码器架构中最常用的循环层,质量好速度快。
现代NLP的两个主要支柱:在大型未标记语料库上预训练的语言模型;Transformer架构。
最流行的预训练Transformer模型之一是BERT(Transformers的双向编码器表示),通过联合调节所有层的左右上下文,从未标记的文本中预训练深度双向表示。预训练由两个语言模型目标驱动,即掩蔽语言模型(MLM)和下一句预测(NSP)。在预训练阶段后,微调网络可用于下游任务,如序列分类、单词标注、seq2seq等。
这些方法依赖于两个主要优势:(i)架构强基于允许读取和跟踪整个输入序列的自注意力机制;(ii)预训练允许网络读取和理解文本、语义及含义。
受BERT启发,提出的其他预训练Transformer,如RoBERTa、ALBERT和DistilBERT(架构相同,细微差别);基于相同概念的其他方法有GPT、Transformer-XL及其扩展XLNet。
在跨多语言场景性能突出。如在104种语言上预训练的多语言BERT(MBERT)在不使用明确的多语言训练目标的情况下开发跨语言表示非常稳健,且语言之间的词汇重叠在跨语言中的作用可忽略不计。
也被广泛用于文本生成,即根据给定段落生成文本的任务,如摘要、翻译、聊天机器人。常用方法有GPT(生成式预训练)。GPT使用带有掩码自注意力的12层仅解码器transformer结构,在7000本未出版的书籍上训练语言模型。GPT-2增加层数、参数及上下文大小,引入TaskConditioning概念,可使用相同的无监督模型学习多个任务,即对不同任务的相同输入产生不同输出。GPT-3为具有1750亿参数的自回归语言模型,人类难以辨别其生成的新闻;在零样本和少样本设置中有效,但生成长文本时连贯性不足、推理成本高、引发伦理和社会学问题。
四、资源4.1软件低级NLP模块(标记化、PoS标记…)和高级系统(文档分类器、模型…);根据功能集、社区维度、可用性,选择了以下主要工具:
NLTK(自然语言工具包):为超过50个语料库和词汇资源(如WordNet)提供易于使用的接口,提供一套用于分类、标记化、词干提取、标记、解析和语义推理的文本处理库。
Gensim:用于主题建模、文档索引和大型语料库的相似性检索,包含流行算法的有效实现,如潜在语义分析(LSA/LSI/SVD)、LDA、随机投影(RP)、HDP,还包括几个Word2vec预训练模型。
SpaCy:可与TensorFlow、PyTorch、scikit-learn、Gensim和Python的AI生态系统的其他部分无缝互操作,还包含各种预训练的词向量。
Transformers:为自然语言理解(NLU)和自然语言生成(NLG)提供通用架构(BERT、GPT-2、RoBERTa、XLNet…),有超过32种预训练模型,涵盖100多种语言、与TensorFlow2.0和PyTorch有互操作性。
CoreNLP:Java、提供对6种不同语言的支持
Stanza:包括CoreNLPJava包的Python接口,支持70多种语言,为生物医学和临床任务提供专门的工具和模型。
4.2硬件小型研究实验室:使用自己的机器和几个负担得起的GPU,如NvidiaRTX2080-Ti或1080-Ti;不昂贵且不需要专门的冷却系统,但这些GPU不是为运行24/7应用程序而设计的,且内存量有限
大中型研究实验室:利用高性能计算(HPC)集群;按需Web服务,如AmazonWebServices(AWS)或MicrosoftAzure,以小时成本提供优化的GPU。
为特定目的选择最合适的GPU的关键标准:训练速度(受CUDA内核数量、架构、频率…的影响);最大批量大小需要的内存;效率,即TDP;管理GPU的系统;GPU的成本(初始硬件价格、维护和能源消耗)
一些流行的GPU:NvidiaTeslaV100(2017-2020年深度学习最知名和最快的GPU,16/32GiB内存);NvidiaTeslaA100(显着优于V100,40GiB内存);NvidiaTeslaT4(速度较慢但功耗低,适用于大型HPC);NvidiaTeslaK80(包含2个11GiB的GPU、便宜、采用被动冷却设计、可以有效安装在desktop上);NvidiaTeslaM60(包含2个8GiB的GPU,更贵)、IntelXeonE5-2686-v4(i)(CPU、包括2.3Ghz的18个物理内核和36个线程,支持用于快速矢量运算的AVX-2指令)
训练速度、综合考虑、功耗、其他方面
4.3数据集简要描述与NLP任务最相关的参考数据集(特别关注更适合DL方法的数据集)
问答:在给定问题和段落/短文本的情况下产生答案;主要有两个不同任务,答案句子选择(AS2)(选择构成/包含答案的句子)和机器阅读(MR)(识别代表答案的确切文本span)
前者基于语言学理论,利用单词重叠概念/基于冗余技术(简单的单词匹配优于各种复杂的系统);随着神经网络的出现,提出比较-聚合框架的模型(为问题和候选答案生成上下文表示,然后比较这些表示,选择更能代表问题的候选答案)
斯坦福问答数据集(SQuAD-1.1)为流行的开放域MR数据集,由一组Wikipedia文章中提出的问题组成,每个问题的答案为相应阅读文章中的一段文本/span;SQuAD-2.0进一步改进,加入编写的相似的50,000个无法回答的问题,任务还需判断段落是否不支持答案(答案触发);但数据集中,包含问题的段落由一个简单的短段落组成,机器表现已超越人类。
得益于Transformer,QA主要朝着三个方向发展:由复杂用户生成问题和长段落组成的各种大型语料库,如NaturalQuestion(NQ)、WikiQA、ASNQ;探索文本的提问者和回答者之间的交互(或对话),如上下文问答(QuAC)和会话问答挑战(CoQA);侧重于问题及其可理解性。
AS2的另一个相关资源MS-Marco,包含100,000个开放域问题和从Wikipedia检索到的相关文本。
情感分析:识别人们对特定事件或实体的感受,最受欢迎的应用涉及产品评论(预测用户对购买的商品或观看的电影的感受,公司可通过分析用户的评分和感受来改进其系统);SA通常是一个序列分类任务,给定输入文本,系统返回代表感觉的标签。
IMDB电影评论数据集、Sentiment140、论文评论数据集、多模态(IEMOCAP、MOSI及其扩展CMU-MOSEI)
机器翻译:OPUS(来自网络的翻译文本集合)、WMT(最重要的MT评估平台)、至少数亿字的并行文本(ParaCrawl14和OpenSubtitles)、MultiUN(联合国翻译文件的集合)、OPUS-100(以英语为中心的多语言语料库,涵盖100种语言)、WIT3(用于研究TED演讲的多语言转录)、语音翻译(MuST-C、Europarl-ST)
生物医学文本挖掘(BioNLP):可提供结构化和快速访问可操作的生物医学信息;指文本挖掘和NLP技术如何应用于生物医学文献和文本的方法和研究(词分布无法直接从一般领域语料库转移到生物医学语料库)
生物医学NER(BioNER):从生物医学文档中提取相关的生物医学实体,如蛋白质、化合物或生物体名称;相关语料库;Biocreative社区;简单BioNER任务(概念识别,为检索到的实体分配一个标识符;关系提取,提取不同实体间的关系)
生物医学语义索引(BioSI):如根据层次标签(如MeSH)对生物医学文档进行分类;BioASQ社区(提供由专家手动注释的数千万个文档组成的大型语料库)
生物医学QA:回答与生物医学相关的问题;小的数据集,PubMedQA(专家手动注释,包含标记、未标记和人工生成的示例)、BioASQ;更大的语料库(问题大多是事实,无需太多推理就可以从上下文中提取答案)
GLUE和其他基准:用于评估模型在一组各种英语自然语言理解(NLU)任务上的性能;由9个不同任务组成,包括单句(语言可接受性、情感分析)和句子对任务(相似性和释义、语言推理);相应数据集的大小差异很大,其内容从多个领域提取,评估指标随任务和数据集特征而变化。
被视为评估模型学习通用语言知识能力的工具,但其进一步研究空间有限(最先进模型的性能最近已接近非专家人类水平),因此又提出SuperGLUE(由几个具有挑战性的NLU任务组成)
生物医学语言理解评估(BLUE)基准:由5个任务组成(句子相似度、命名实体识别、关系提取、文档多标签分类和推理),包含10个数据集,涵盖具有不同数据集大小和难度的生物医学和临床文本。
其他资源:
NER:是最早开始采用定量评估的NLP任务之一;开放域文本中的相关实体通常是人、地点或组织;考虑英语以外的语言;如今主要吸引生物医学领域的研究人员。
词义消歧(WSD):SensEval-1、SemEval2015Task13
词性标记(PoS):BrownCorpus(第一个主要英语语料库,被用于有关词频和POS的多项研究)、PennTreebank中的华尔街日报(WSJ)部分(包含45个不同的POS标签和500万个带注释的标记);最先进的深度学习模型出现后,PoS热度下降。
如今的关键场景有:历史语料库、注释数据较差的语言、跨语言。
五、当前的问题和未来的方向流行的Transformer不能完全编码整个文档,因为它们的复杂性与序列长度成二次方,并且它们的输入序列不能超过512个标记,这通常对应于单个段落。处理长文档的经典变体,如Transformer-XL和Longformer(通过各种策略应用放松的经典自注意力)
计算成本高,预训练的Transformer通常包含110-340百万个可学习参数,需要专门且昂贵的硬件。更轻的Transformer和蒸馏方法。
计算成本会对模型选择产生负面影响,并且很难对多个超参数(学习率、批量大小、预热调度器…)配置进行详尽的评估;而模型选择通常通过使用默认配置或单次运行来简化,会降低结果质量(降低了可重复性,如很少考虑统计显着性)
Transformer和现代架构经常被用作黑盒工具,它们的输出很难解释。可解释性是NLP应用在医学等敏感领域的一个关键方面,也引起了研究重视。
NLP的进一步研究方向包括:网络安全,如假新闻检测;工业应用,如虚拟助手(Alexa、Siri…);基于最近的变分自动编码器或生成对抗网络实例的文本生成。
三、自然语言处理研究内容
二十、Eclat算法介绍777---:代码其实不是eclat算法,两个以上的货物都要用两个货物交集运算得来,而不是在代码中用combinations暴力组合,大量数据就跑不动了
四、自然语言处理的主要挑战普通网友:这学期也在自学人工智能,看了您的博文感觉很不错,可以加您VX交流吗感谢博主
二十八、电力窃漏电案例模型构建m0_58512240:作者你的数据还有吗
八、朴素贝叶斯中文分类实战_错错错:好文,欢迎大佬回访指导呀,一起学习
二十三、聚类算法向彪-blockchain:大佬,看了你的文章,内心的仰慕之情油然而生,赶紧给大佬点个赞!