陈桂敏(Derek) 腾讯作者DataFunTalk来源

万字长文带你解读NLP深度学习的各类模型

导读:NLP,让人与机器的交互不再遥远;深度学习,让语言解析不再是智能系统的瓶颈。本文尝试回顾NLP发展的历史,解读NLP升级迭代过程中一些重要而有意思的模型,总结不同任务场景应用模型的思路,对NLP未来发展趋势发表自己的看法。笔者经验有限,如有不全或不当地方,请予指正。

1 背景

自然语言处理(英语:Natural Language Process,简称NLP)是计算机科学、信息工程以及人工智能的子领域,专注于人机语言交互,探讨如何处理和运用自然语言。自然语言处理的研究,最早可以说开始于图灵测试,经历了以规则为基础的研究方法,流行于现在基于统计学的模型和方法,从早期的传统机器学习方法,基于高维稀疏特征的训练方式,到现在主流的深度学习方法,使用基于神经网络的低维稠密向量特征训练模型。最近几年,随着深度学习以及相关技术的发展,NLP领域的研究取得一个又一个突破,研究者设计各种模型和方法,来解决NLP的各类问题。下图是Young等[1]统计了过去6年ACL、EMNLP、EACL和NAACL上发表深度学习长篇论文的比例逐年增加,而2018年下半场基本是ELMo、GPT、BERT等深度学习模型光芒四射的showtime,所以本文会将更多的笔墨用于陈述分析深度学习模型。

机器学习是计算机通过模式和推理、而不是明确指令的方式,高效执行指定任务的学习算法。贝叶斯概率模型、逻辑回归、决策树、SVM、主题模型、HMM模型等,都是常见的用于NLP研究的传统机器学习算法。而深度学习是一种基于特征学习的机器学习方法,把原始数据通过简单但非线性的模块转变成更高层次、更加抽象的特征表示,通过足够多的转换组合,非常复杂的函数也能被学习。在多年的实验中,人们发现了认知的两个重要机制:抽象和迭代,从原始信号,做底层抽象,逐渐向高层抽象迭代,在迭代中抽象出更高层的模式。如何形象地理解?在机器视觉领域会比较容易理解,深度学习通过多层神经网络依次提取出图像信息的边缘特征、简单形状特征譬如嘴巴的轮廓、更高层的形状特征譬如脸型;而在自然语言处理领域则没有那么直观的理解,我们可以通过深度学习模型学习到文本信息的语法特征和语义特征。可以说,深度学习,代表自然语言处理研究从机器学习到认知计算的进步。

要讲深度学习,得从语言模型开始讲起。自然语言处理的基础研究便是人机语言交互,以机器能够理解的算法来反映人类的语言,核心是基于统计学的语言模型。语言模型(英语:Language Model,简称LM),是一串词序列的概率分布。通过语言模型,可以量化地评估一串文字存在的可能性。对于一段长度为n的文本,文本中的每个单词都有通过上文预测该单词的过程,所有单词的概率乘积便可以用来评估文本存在的可能性。在实践中,如果文本很长,P(w_i|context(w_i))的估算会很困难,因此有了简化版:N元模型。在N元模型中,通过对当前词的前N个词进行计算来估算该词的条件概率。对于N元模型。常用的有unigram、bigram和trigram,N越大,越容易出现数据稀疏问题,估算结果越不准。为了解决N元模型估算概率时的数据稀疏问题,研究者尝试用神经网络来研究语言模型。

早在2000年,就有研究者提出用神经网络研究语言模型的想法,经典代表有2003年Bengio等[2]提出的NNLM,但效果并不显著,深度学习用于NLP的研究一直处在探索的阶段。直到2011年,Collobert等[3]用一个简单的深度学习模型在命名实体识别NER、语义角色标注SRL、词性标注POS-tagging等NLP任务取得SOTA成绩,基于深度学习的研究方法得到越来越多关注。2013年,以Word2vec、Glove为代表的词向量大火,更多的研究从词向量的角度探索如何提高语言模型的能力,研究关注词内语义和上下文语义。此外,基于深度学习的研究经历了CNN、RNN、Transormer等特征提取器,研究者尝试用各种机制优化语言模型的能力,包括预训练结合下游任务微调的方法。最近最吸睛的EMLo、GPT和BERT模型,便是这种预训练方法的优秀代表,频频刷新SOTA。

2 模型

接下来文章会以循序渐进的方式分成五个部分来介绍深度学习模型:第一部分介绍一些基础模型;第二部分介绍基于CNN的模型;第三部分介绍基于RNN的模型;第四部分介绍基于Attention机制的模型;第五部分介绍基于Transformer的模型,讲述一段语言模型升级迭代的故事。NLP有很多模型和方法,不同的任务场景有不同的模型和策略来解决某些问题。笔者认为,理解了这些模型,再去理解别的模型便不是很难的事情,甚至可以自己尝试设计模型来满足具体任务场景的需求。

Basic Embedding Model

NNLM是非常经典的神经网络语言模型,虽然相比传统机器学习并没有很显著的成效,但大家说起NLP在深度学习方向的探索,总不忘提及这位元老。分布式表示的概念很早就有研究者提出并应用于深度学习模型,Word2vec使用CBOW和Skip-gram训练模型,意外的语意组合效果才使得词向量广泛普及。FastText在语言模型上没有什么特别的突破,但模型的优化使得深度学习模型在大规模数据的训练非常快甚至秒级,而且文本分类的效果匹敌CNN/RNN之类模型,在工业化应用占有一席之地。

NNLM

2003年Bengio等[2]提出一种基于神经网络的语言模型NNLM,模型同时学习词的分布式表示,并基于词的分布式表示,学习词序列的概率函数,这样就可以用词序列的联合概率来表示句子,而且,模型还能够产生指数量级的语义相似的句子。作者认为,通过这种方式训练出来的语言模型具有很强的泛化能力,对于训练语料里没有出现过的句子,模型能够通过见过的相似词组成的相似句子来学习。

模型训练的目标函数是长度为n的词序列的联合概率,分解成两部分:一是特征映射,通过映射矩阵C,将词典V中的每个单词都能映射成一个特征向量C(i) ∈ Rm;二是计算条件概率分布,通过函数g,将输入的词向量序列(C(wt−n+1),··· ,C(wt−1))转化成一个概率分布y ∈ R|V|,g的输出是个向量,第i个元素表示词序列第n个词是Vi的概率。网络输出层采用softmax函数。

专业用户独享

本文为机器之心深度精选内容,专业认证后即可阅读全文
开启专业认证
理论深度学习NLP
214
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

数据分析技术

数据分析是一类统计方法,其主要特点是多维性和描述性。有些几何方法有助于揭示不同的数据之间存在的关系,并绘制出统计信息图,以更简洁的解释这些数据中包含的主要信息。其他一些用于收集数据,以便弄清哪些是同质的,从而更好地了解数据。 数据分析可以处理大量数据,并确定这些数据最有用的部分。

模式匹配技术

在计算机科学中,模式匹配就是检查特定序列的标记是否存在某种模式的组成部分。 与模式识别相比,匹配通常必须是精确的。 模式通常具有序列或树结构的形式。 模式匹配的使用包括输出令牌序列内的模式的位置(如果有的话),输出匹配模式的某个分量,以及用另一个令牌序列(即搜索和替换)替换匹配模式。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

高斯分布技术

正态分布是一个非常常见的连续概率分布。由于中心极限定理(Central Limit Theorem)的广泛应用,正态分布在统计学上非常重要。中心极限定理表明,由一组独立同分布,并且具有有限的数学期望和方差的随机变量X1,X2,X3,...Xn构成的平均随机变量Y近似的服从正态分布当n趋近于无穷。另外众多物理计量是由许多独立随机过程的和构成,因而往往也具有正态分布。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

自然语言处理技术

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

图灵测试技术

图灵测试(英语:Turing test,又译图灵试验)是图灵于1950年提出的一个关于判断机器是否能够思考的著名试验,测试某机器是否能表现出与人等价或无法区分的智能。测试的谈话仅限于使用唯一的文本管道,例如计算机键盘和屏幕,这样的结果是不依赖于计算机把单词转换为音频的能力。

遗忘门技术

LSTM或GRU中特有的机制

腾讯机构

腾讯科技股份有限公司(港交所:700)是中国规模最大的互联网公司,1998年11月由马化腾、张志东、陈一丹、许晨晔、曾李青5位创始人共同创立,总部位于深圳南山区腾讯大厦。腾讯由即时通讯软件起家,业务拓展至社交、娱乐、金融、资讯、工具和平台等不同领域。目前,腾讯拥有中国国内使用人数最多的社交软件腾讯QQ和微信,以及中国国内最大的网络游戏社区腾讯游戏。在电子书领域 ,旗下有阅文集团,运营有QQ读书和微信读书。

http://www.tencent.com/
推荐文章
vn
厉害厉害
非常好
yoyoPro
云南大学・计算机科学与技术・博士
very good