前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >NLP随笔(三)

NLP随笔(三)

原创
作者头像
XianxinMao
修改于 2021-08-04 02:12:30
修改于 2021-08-04 02:12:30
4170
举报
文章被收录于专栏:深度学习框架深度学习框架

本篇介绍深度学习自然语言处理(NLP)中的应用,从词向量开始,到最新最强大的BERT等预训练模型,梗概性的介绍了深度学习近20年在NLP中的一些重大的进展

在深度学习之前,用于解决NLP问题的机器学习方法一般都基于浅层模型(如SVM和logistic 回归),这些模型都在非常高维和稀疏的特征(one-hot encoding)上进行训练和学习,出现了维度爆炸等问题难以解决。并且基于传统机器学习的NLP系统严重依赖手动制作的特征,它们极其耗时,且通常并不完备。

而近年来,基于稠密向量表征的神经网络在多种NLP任务上得到了不错结果。这一趋势取决了词嵌入和深度学习方法的成功;并且深度学习使多级自动特征表征学习成为可能。因此,本文从词的分布式表征开始介绍深度学习在NLP中的应用

分布式词表征(词向量)的实现

通常来讲,在2003年的《A Neural Probabilistic Language Model》中Bengio等人提出了神经语言模型(NNLM),而它的副产品,词向量,可以实现词的分布式表征。该文通常被认为是深度学习在自然语言处理中应用的开始。提出伊始,由于届时计算机计算能力的限制,该网络并不能较好的得到训练。因此,这一篇成果,在当时并没有得到相当的关注

2008年Collobert和Weston展示了第一个能有效利用预训练词嵌入的研究工作,他们提出的神经网络架构,构成了当前很多方法的基础。这一项研究工作还率先将词嵌入作为 NLP 任务的高效工具。

不过词嵌入真正走向NLP主流还是Mikolov 等人在 2013 年做出的研究《Distributed Representations of Words and Phrases and their Compositionality》。

Mikolov 等研究者在这篇论文中提出了连续词袋模型CBOW和 Skip-Gram 模型,通过引入负采样等可行性的措施,这两种方法都能学习高质量的词向量

分布式的词表征的一大好处是实现了语义的合成性,即两个词向量相加得到的结果是语义相加的词,例如[man]+[royal]=[king]

这种语义合成性的理论依据最近已经由Gittens et al. 在2017年给出,他们表示只有保证某些特定的假设才能满足语义合成性,例如词需要在嵌入空间中处于均匀分布。

GloVe是另外一个很有名的获得词向量的方法,在有些情况下,CBOW和Skip-Gram采用的交叉熵损失函数有劣势。因此GloVe采用了平方损失。同时,它基本上是一种基于词统计的模型,它令词向量拟合预先基于整个数据集计算得到的全局统计信息,从而学习高效的词表征

NLP中特征提取方法的进化

随着词分布式表征的问题得到了有效的解决,人们开始思考如何提取词序列中高级的语义信息,然后才能将这些提取到的语义信息,应用到下游的NLP任务中,例如情感分析、问答系统、机器翻译以及自动摘要等。

最早用来对自然语言词序列进行特征提取的,其实是卷积神经网络(CNN)。这主要归因于卷积神经网络在图像领域取得的骄人成绩。

使用 CNN 进行句子建模可以追溯到Collobert和Weston在2008年的研究,他们使用多任务学习为不同的NLP任务输出多个预测,如词性标注、语块分割、命名实体标签和语义相似词等。其中查找表可以将每一个词转换为一个用户自定义维度的向量。因此通过查找表,n个词的输入序列 {s_1,s_2,... s_n } 能转换为一系列词向量 {w_s1, w_s2,... w_sn}。

在Collobert 2011年的研究中,他扩展了以前的研究,并提出了一种基于CNN的通用框架来解决大量NLP任务,这两个工作都令NLP研究者尝试在各种任务中普及 CNN架构。CNN具有从输入句子抽取n-gram特征的能力,因此它能为下游任务提供具有句子层面信息的隐藏语义表征。

因为语言序列常常具有长程性,需要记忆很早时候的输入信息,CNN并不具备这种能力。这个时候,循环神经网络(RNN)网络被提出

RNN的思路是处理序列信息。“循环”表示RNN模型对序列中的每一个实例都执行同样的任务,并且权重共享,从而使输出依赖于之前的计算和结果。

通常,RNN通过将token挨个输入到循环单元中,来生成表示序列的固定大小向量。一定程度上,RNN对之前的计算有“记忆”,并在当前的处理中使用对之前的记忆。该模板天然适合很多NLP 任务,如语言建模、机器翻译、语音识别、图像字幕生成。因此近年来,RNN在NLP任务中逐渐流行。

但是RNN容易出现梯度消失和爆炸的问题,因而其改进版本LSTM和GRU被提出来了

LSTM比简单RNN多了“遗忘门”,其独特机制帮助该网络克服了梯度消失和梯度爆炸问题。与原版RNN不同,LSTM允许误差通过无限数量的时间步进行反向传播。它包含三个门:输入门、遗忘门和输出门,并通过结合这三个门来计算隐藏状态。另一个门控RNN变体是GRU,复杂度更小,其在大部分任务中的实验性能与LSTM类似。GRU包括两个门:重置门和更新门,并像没有记忆单元的 LSTM那样处理信息流。因此,GRU不加控制地暴露出所有的隐藏内容。由于GRU的复杂度较低,它比LSTM更加高效。

在llya Sutskever等人2014年的研究《Sequence to Sequence Learning with Neural Networks》中,作者提出了一种通用深度LSTM编码器-解码器框架,可以实现序列之间的映射。使用一个LSTM将源序列编码为定长向量,源序列可以是机器翻译任务中的源语言、问答任务中的问题或对话系统中的待回复信息。然后将该向量作为另一个 LSTM解码器的初始状态。在推断过程中,解码器逐个生成token,同时使用最后生成的token更新隐藏状态。

传统编码器-解码器框架的一个潜在问题是:有时编码器会强制编码可能与目前任务不完全相关的信息。这个问题在输入过长或信息量过大时也会出现,选择性编码是不可能的。因此,能够根据编码器编码内容动态解码内容的注意力机制(Attention)得到提出。

《Neural Machine Translation by Jointly Learning to Align and Translate》首次将注意力机制应用到机器翻译任务,尤其改进了在长序列上的性能。该论文中,关注输入隐藏状态序列的注意力信号由解码器最后的隐藏状态的多层感知机决定。通过在每个解码步中可视化输入序列的注意力信号,可以获得源语言和目标语言之间的清晰对齐。

但是RNN及其优化变种,因为都要按时序输入,都存在编码效率低下的问题。Transformer这种基于self-attention机制的强大特征提取器应运而生。《Attention Is All You Need》提出了Transformer,它完全去除了编码步中的循环和卷积,仅依赖注意力机制来捕捉输入和输出之间的全局关系。因此,整个架构更加并行化,在翻译、解析等任务上训练得到积极结果所需的时间也更少。

NLP中的预训练模型

训练得到的词向量表征的词语之间的信息其实有限。词向量一个难以解决的问题就是多义词的问题,例如“bank”在英文中有“河岸”和“银行”两种完全不同意思,但是在词向量中确实相同的向量来表征,这显然不合理。

2017年,为了解决这个问题,ELMO模型在“Deep contextualized word representation”被提出。

ELMO的本质思想是:用事先训练好的语言模型学好一个单词的Word Embedding,此时多义词无法区分,不过这没关系。在实际使用Word Embedding的时候,单词特定的上下文就可以知道,这个时候模型可以根据上下文单词的语义去调整单词的Word Embedding表示,这样经过调整后的Word Embedding更能表达在这个上下文中的具体含义,自然也就能克服多义词的问题。

从ELMO开始,这种先预训练,在实际应用时再fine-Tune的模式就开始流行起来了。我们再看ELMO,通过双向语言模型,能够学到较丰富的语义信息。但其用的是LSTM作为特征抽取器,在特征抽取能力上较弱

2018年,Generative Pre-Training(GPT)采用单向语言模型,用Transformer作为特征抽取器,取得了非常不错的效果,但由于主创人员营销能力欠佳,并没有像下面这一个主角一样,在NLP领域掀起滔天巨浪。

2018年10月,谷歌推出BERT(Bidirectional Encoder Representation from Transformers)模型,刷新了几乎所有NLP任务的榜单,一时风头无两。仔细看BERT的实现,其与GPT的主要差别在于,BERT用的“双向语言模型”,它通过MASK掉预料中的部分词再重建的过程来学习预料中词语序列中的语义表示信息,同样采用Transformer作为特征抽取器。BERT的出现,因其效果太好,几乎让其他所有的NLP工作都黯然失色。

2019年2月openAI用更大的模型,规模更大质量更好的数据推出了GPT2.0,其语言生成能力令人惊叹。

目前来看,出彩的工作都是基于BERT和GPT的改进工作。在2019年6月,XLNet: Generalized Autoregressive Pretraining for Language Understanding诞生,其基于BERT和GPT等两类预训练模型来进行改进,分别吸取了两类模型的长处,获得的很好的效果。

需要注意的是,所有的预训练模型都是无监督的,这意味着,模型的数据来源是廉价而且数量巨大的。因为XLNET在训练时一直是under-fitting的,因此即使是通过增加数据量,都还能提升NLP预训练模型的效果。这无疑是振奋人心的

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【技术白皮书】第三章:文字表格信息抽取模型介绍——实体抽取方法:NER模型(上)
深度学习是一个由多个处理层组成的机器学习领域,用于学习具有多个抽象层次的数据表示。典型的层次是人工神经网络,由前向传递和后向传递组成。正向传递计算来自前一层的输入的加权和,并通过非线性函数传递结果。向后传递是通过导数链规则计算目标函数相对于多层模块堆栈权重的梯度。深度学习的关键优势在于表示学习的能力以及向量表示和神经处理赋予的语义合成能力。这允许机器输入原始数据,并自动发现分类或检测所需的潜在表示和处理。
合合技术团队
2022/08/17
1.3K0
【技术白皮书】第三章:文字表格信息抽取模型介绍——实体抽取方法:NER模型(上)
NLP笔记——NLP概述
在字符上使用 CNN 或 LSTM 以获得基于字符的词表示的做法现在相当普遍,特别是对于形态信息重要或有许多未知单词的丰富的语言和任务,效果更加明显。据我所知,序列标签使用基于字符的表示(Lample 等人,2016;普兰克等人,2016),可以减轻在计算成本增加的情况下必须处理固定词汇表的需要,并支持完全基于字符的 NMT (Ling 等人, 2016;Lee 等人,2017)。
UM_CC
2022/09/22
7270
​迁移学习在NLP中的演化:从基础到前沿
论文标题:Evolution of Transfer Learning in Natural Language Processing
AI科技评论
2019/10/31
9100
​迁移学习在NLP中的演化:从基础到前沿
一文读懂深度学习:从神经元到BERT
自然语言处理领域的殿堂标志 BERT 并非横空出世,背后有它的发展原理。今天,蚂蚁金服财富对话算法团队整理对比了深度学习模型在自然语言处理领域的发展历程。从简易的神经元到当前最复杂的BERT模型,深入浅出地介绍了深度学习在 NLP 领域进展,并结合工业界给出了未来的 NLP 的应用方向,相信读完这篇文章,你对深度学习的整体脉络会有更加深刻认识。
Ai学习的老章
2019/05/27
1.3K0
从Word Embedding到Bert模型——自然语言处理预训练技术发展史
作者简介:张俊林,中国中文信息学会理事,目前在新浪微博 AI Lab 担任资深算法专家。在此之前,张俊林曾经在阿里巴巴任资深技术专家,以及在百度和用友担任技术经理及技术总监等职务。同时他是技术书籍《这就是搜索引擎:核心技术详解》(该书荣获全国第十二届输出版优秀图书奖)、《大数据日知录:架构与算法》的作者。
zenRRan
2018/12/17
1.4K0
万字长文概述NLP中的深度学习技术
自然语言处理(NLP)是指对人类语言进行自动分析和表示的计算技术,这种计算技术由一系列理论驱动。NLP 研究从打孔纸带和批处理的时代就开始发展,那时分析一个句子需要多达 7 分钟的时间。到了现在谷歌等的时代,数百万网页可以在不到一秒钟内处理完成。NLP 使计算机能够执行大量自然语言相关的任务,如句子结构解析、词性标注、机器翻译和对话系统等。
机器之心
2019/03/12
1.2K0
万字长文概述NLP中的深度学习技术
【完结】 12篇文章带你完全进入NLP领域,掌握核心技术
专栏《NLP》第一阶段正式完结了。在本专栏中,我们从NLP中常用的机器学习算法开始,介绍了NLP中常用的算法和模型;从朴素贝叶斯讲到XLnet,特征抽取器从RNN讲到transformerXL。这篇文章我们就一起回顾一下这些文章。
用户1508658
2019/08/29
1.3K0
NLP之从word2vec到ELMO GPT再到BERT与attention transformer过程笔记与详解
在NLP自然语言处理学习或者发展过程中,在13年word2vec word embedding后,人们发现一个单词通过Word Embedding表示,很容易找到语义相近的单词,但单一词向量表示,不可避免一词多义问题。于是迎来Google的ELMO transformer BERT等动态表征模型,BERT模型更是刷新了GLUE benchmark的11项测试任务最高记录。
大鹅
2021/02/21
3.4K0
NLP | 百度 ERNIE - 简析1.0 与 2.0
本文以通俗易懂的语言介绍了百度提出的 持续学习语义理解框架 ERNIE 的基本原理,和利用 ERNIE 来解决下游 NLP 任务的过程。
用户3946442
2022/04/11
8350
NLP | 百度 ERNIE - 简析1.0 与 2.0
【NLP】从word2vec, ELMo到BERT
还记得不久之前的机器阅读理解领域,微软和阿里在SQuAD上分别以R-Net+和SLQA超过人类,百度在MS MARCO上凭借V-Net霸榜并在BLEU上超过人类。这些网络可以说一个比一个复杂,似乎“如何设计出一个更work的task-specific的网络"变成了NLP领域政治正确的研究方向。而在这种风向下,不管word2vec也好,glove也好,fasttext也好,都只能充当一个锦上添花的作用。说好的迁移学习、预训练呢?在NLP似乎始终没成主角。
yuquanle
2020/02/21
9280
词向量(2)--从ELMo到Bert
其实,本文到这里,"核心内容"就已经讲完啦...当然如果你还不困的话,可以继续往下看,应该会有助于睡眠的
流川枫
2020/04/24
1.5K0
【每周NLP论文推荐】从预训练模型掌握NLP的基本发展脉络
读论文是做AI的人必需要下的功夫,所以咱们开通了专栏《每周NLP论文推荐》。本着有三AI的一贯原则,即系统性学习,所以每次的论文推荐也会是成系统的,争取每次能够把一个领域内的“故事”基本说清楚。
用户1508658
2019/08/01
7790
【每周NLP论文推荐】从预训练模型掌握NLP的基本发展脉络
广告行业中那些趣事系列3:NLP中的巨星BERT
摘要:上一篇广告行业中那些趣事系列2:BERT实战NLP文本分类任务(附github源码)通过项目实战讲解了如何使用BERT模型来完成文本分类任务。本篇则从理论的角度讲解BERT模型的前世今生。BERT虽然在模型创新的角度来说并不是非常出色,但它是近几年NLP领域杰出成果的集大成者。BERT大火最重要的原因是效果好,通用性强两大优点。可以说BERT的出现是NLP领域里具有里程碑意义的大事件。本篇主要讲解NLP里面的Word Embedding预训练技术的演化史,从最初的Word2Vec到ELMO、GPT,再到今天的巨星BERT诞生,还会讲解如何改造BERT模型去对接上游任务以及BERT模型本身的创新点。
数据拾光者
2022/05/05
3600
广告行业中那些趣事系列3:NLP中的巨星BERT
浅谈NLP:从词向量到Transformer| 技术创作特训营第一期
是时候把之前学习NLP的知识整理下了。大模型火了后,又涌出好多Transfomer相关的文章,回想当时刚接触NLP的时候,还是从word2vec开始...很久前看的东西都快忘记了,所以想做一些总结。
languageX
2023/08/14
1.8K1
自然语言处理中的迁移学习(上)
本文转载自公众号「哈工大SCIR」(微信ID:HIt_SCIR),该公众号为哈尔滨工业大学社会计算与信息检索研究中心(刘挺教授为中心主任)的师生的信息分享平台,本文作者为哈工大SCIR 徐啸。
AI科技评论
2019/10/23
1.4K0
自然语言处理中的迁移学习(上)
后BERT时代:15个预训练模型对比分析与关键点探究
在小夕之前写过的《NLP的游戏规则从此改写?从word2vec, ELMo到BERT》一文中,介绍了从word2vec到ELMo再到BERT的发展路径。而在BERT出现之后的这大半年的时间里,模型预训练的方法又被Google、Facebook、微软、百度、OpenAI等极少数几个玩得起游戏的核心玩家反复迭代了若干版,一次次的刷新我们这些吃瓜群众的案板上的瓜。
zenRRan
2019/08/21
2.2K0
后BERT时代:15个预训练模型对比分析与关键点探究
命名实体识别的深度学习综述
A Survey on Deep Learning for Named Entity Recognition
马上科普尚尚
2020/09/24
1.9K0
命名实体识别的深度学习综述
【AI大模型】ELMo模型介绍:深度理解语言模型的嵌入艺术
ELMo最底层的词嵌入采用CNN对字符级进行编码, 本质就是获得一个静态的词嵌入向量作为网络的底层输入.
小言从不摸鱼
2024/11/24
2740
【AI大模型】ELMo模型介绍:深度理解语言模型的嵌入艺术
【NLP】预训练模型综述
摘要:近年来,预训练模型的出现将自然语言处理带入了一个新的时代。本文概述了面向自然语言处理领域的预训练模型技术。我们首先概述了预训练模型及其发展历史。并详细介绍自然语言处理领域的经典预训练模型,包括最经典的预训练模型技术和现在一系列新式的有启发意义的预训练模型。然后梳理了这些预训练模型在自然语言处理领域的优势和预训练模型的两种主流分类。最后,对预训练技术的未来发展趋势进行了展望。
黄博的机器学习圈子
2020/05/26
2.2K0
【NLP】预训练模型综述
BERT预训练模型的演进过程!(附代码)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
mantch
2019/09/29
1.6K0
BERT预训练模型的演进过程!(附代码)
推荐阅读
相关推荐
【技术白皮书】第三章:文字表格信息抽取模型介绍——实体抽取方法:NER模型(上)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档