NLP必读圣经《自然语言处理综述》2023最新版
自然语言处理领域经典综述教材《SpeechandLanguageProcessing》,中文名《自然语言处理综述》第三版发布。该书由NLP领域的大牛,斯坦福大学DanielJurafsky教授和科罗拉多大学的JamesH.Martin教授等人共同编写。DanielJurafsky是斯坦福大学计算机科学教授,主要研究方向是计算语言学和自然语言处理。JamesH.Martin是科罗拉多大学博尔德分校计算机科学系一名教授,两位教授都是NLP领域知名学者。
最新版pdf: https://mp.weixin.qq.com/s?__biz=MzIxNDgzNDg3NQ==&mid=2247488070&idx=1&sn=f56cf2433b69040eb3e8d28a4aecc74d&chksm=97a0d992a0d750842ade299f263b23c30b8228825b9a5f7d63c9fe449967462868629131e4c1&token=974303003&lang=zh_CN#rd
《SpeechandLanguageProcessing》最新版,与之前版本相比,内容有较大的变动:
1. 更新内容包括新的第10、22、23、27章。
2.大范围修改了第9、19和26章,以及所有其他各章的最新内容。
3.针对读者的建议对许多错字和建议进行了修复。
4.更新了部分章节的幻灯片。
整本书什么时候完成?大概是在2020年夏天之后的某个时候,因为大多在夏天和秋天写东西。
本书目录
章节内容节选
本书pdf下载:https://mp.weixin.qq.com/s?__biz=MzIxNDgzNDg3NQ==&mid=2247488070&idx=1&sn=f56cf2433b69040eb3e8d28a4aecc74d&chksm=97a0d992a0d750842ade299f263b23c30b8228825b9a5f7d63c9fe449967462868629131e4c1&token=974303003&lang=zh_CN#rd
人工智能领域中的一个重要方向:自然语言处理
本文作者:林峰博士,千家网经授权发布
人工智能作为新一轮科技革命和产业变革的重要驱动力量,正在深刻改变世界。而自然语言处理(NaturalLanguageProcessing,简称NLP)已成为人工智能领域中的一个重要方向,它推动着语言智能持续发展和突破,并越来越多地应用于各个行业。
NLP研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。而用自然语言与计算机进行通信,有着十分重要的实际应用意义,也有着革命性的理论意义。实现人机间自然语言通信意味着要使计算机既能理解自然语言文本的意义,也能以自然语言文本来表达给定的意图、思想等;前者称为自然语言理解,后者称为自然语言生成。由于理解自然语言需要关于外在世界的广泛知识以及运用操作这些知识的能力,所以NLP也被视为解决人工智能完备(AI-complete)的核心问题之一。可以说,NLP目前是人工智能领域中的关键技术,对它的研究也是充满魅力和挑战的。
最早的NLP研究工作是机器翻译。1949年,美国知名科学家韦恩·韦弗先生首先提出了机器翻译设计方案。20世纪60年代,许多科学家对机器翻译曾有大规模的研究工作,耗费了巨额费用;但他们显然是低估了自然语言的复杂性,语言处理的理论和技术均不成熟,所以进展不大。当时的主要做法是存储两种语言的单词、短语对应译法的大辞典,翻译时一一对应,技术上只是调整语言的同条顺序。但日常生活中语言的翻译远不是如此简单,很多时候还要参考某句话前后的意思。
大约90年代开始,NLP领域发生了巨大的变化。这种变化的两个明显的特征是:(1)对系统的输入,要求研制的NLP系统能处理大规模的真实文本,而不是如以前的研究性系统那样,只能处理很少的词条和典型句子。只有这样,研制的系统才有真正的实用价值。(2)对系统的输出,鉴于真实地理解自然语言是十分困难的,对系统并不要求能对自然语言文本进行深层的理解,但要能从中抽取有用的信息。
同时,由于强调了“大规模”和“真实文本”,因此两方面的基础性工作也得到了重视和加强:(1)大规模真实语料库的研制。大规模的经过不同深度加工的真实文本的语料库,是研究自然语言统计性质的基础;没有它们,统计方法只能是无源之水。(2)大规模、信息丰富的词典的编制工作。规模为几万,十几万,甚至几十万词,含有丰富的信息(如包含词的搭配信息)的计算机可用词典对NLP的重要性是很明显的。
系统的输入与这两个特征在NLP的诸多领域都有所体现,其发展直接促进了计算机自动检索技术的出现和兴起。实际上,随着计算机技术的不断发展,以海量计算为基础的机器学习、数据挖掘等技术的表现也愈发优异。NLP之所以能够度过“寒冬”,再次发展,也是因为统计科学与计算机科学的不断结合,才让人类甚至机器能够不断从大量数据中发现“特征”并加以学习。不过要实现对自然语言真正意义上的理解,仅仅从原始文本中进行学习是不够的,我们需要新的方法和模型。
目前存在的问题主要有两个方面:一方面,迄今为止的语法都限于分析一个孤立的句子,上下文关系和谈话环境对本句的约束和影响还缺乏系统的研究,因此分析歧义、词语省略、代词所指、同一句话在不同场合或由不同的人说出来所具有的不同含义等问题,尚无明确规律可循,需要加强语用学的研究才能逐步解决。另一方面,人理解一个句子不是单凭语法,还运用了大量的有关知识,包括生活知识和专门知识,这些知识无法全部贮存在计算机里。因此一个书面理解系统只能建立在有限的词汇、句型和特定的主题范围内;计算机的贮存量和运转速度大大提高之后,才有可能适当扩大范围。
无论实现自然语言理解,还是自然语言生成,都远不如人们原来想象的那么简单,而是十分困难的。从现有的理论和技术现状看,通用的、高质量的NLP系统,尤其是应用软件,仍然是较长期的努力目标。就像中国知名科学家周海中先生曾在《自然语言理解的研究历程》一文中指出的那样:“虽然现今市场上出现不少可以进行一定自然语言处理的商品软件,但要想让机器能像人类那样自如地运用自然语言,仍是一项长远而艰巨的任务。”造成困难的根本原因是自然语言文本和对话的各个层次上广泛存在的各种各样的歧义性或多义性。
由于语言学、语言工程、认知科学等主要局限于实验室,目前来看数据处理可能是NLP应用场景最多的一个发展方向。实际上,自从进入大数据时代,各大平台就没有停止过对用户数据的深度挖掘。要想提取出有用的信息,仅提取关键词、统计词频等是远远不够的,必须对用户数据(尤其是发言、评论等)进行语义上的理解。另外,利用离线大数据统计分析的方法进行NLP任务的研究是目前非常有潜力的一种研究范式,尤其是谷歌、推特、百度等大公司在这类应用上的成功经验,引领了目前大数据研究的浪潮。
NLP是为各类企业及开发者提供的用于文本分析及挖掘的核心工具,已经广泛应用在电商、金融、物流、文化娱乐等行业客户的多项业务中。它可帮助用户搭建内容搜索、内容推荐、舆情识别及分析、文本结构化、对话机器人等智能产品,也能够通过合作,定制个性化的解决方案。由于理解自然语言,需要关于外在世界的广泛知识以及运用操作这些知识的能力,所以NLP也被视为解决强人工智能的核心问题之一,其未来一般也因此密切结合人工智能发展,尤其是设计一个模仿人脑的神经网络。
训练NLP文本解析人工智能系统需要采集大量多源头数据集,对科学家来说是一项持续的挑战:需要使用最新的深度学习模型,模仿人类大脑中神经元的行为,在数百万甚至数十亿的注释示例中进行训练来持续改进。当下一种流行的NLP解决方案是预训练,它改进了对未标记文本进行训练的通用语言模型,以执行特定任务;它的思想就是,该模型的参数不再是随机初始化,而是先有一个任务进行训练得到一套模型参数,然后用这套参数对模型进行初始化,再进行训练,以获得更好的预测性见解。
深度学习在NLP中的应用非常广泛,可以说横扫NLP的各个应用,从底层的分词、语言模型、句法分析等到高层的语义理解、对话管理、知识问答等方面都几乎都有深度学习的模型,并且取得了不错的效果。有关研究已从传统的机器学习算法转变成更有表现力的深度学习模型,如卷积神经网络和回归神经网络。不过,目前的深度学习技术还不具备理解和使用自然语言所必需的概念抽象和逻辑推理能力,还有待今后进一步的研究。
目前我们已经进入了以互联网为主要标志的海量信息时代,这些海量信息大部分是以自然语言表示的。一方面,海量信息也为计算机学习人类语言提供了更多的“素材”,另一方面,这也为NLP提供了更加宽广的应用舞台。例如,作为NLP的重要应用,搜索引擎逐渐成为人们获取信息的重要工具,出现了以谷歌、百度等为代表的搜索引擎巨头;机器翻译也从实验室走入寻常百姓家;基于NLP的中文输入法(如搜狗、微软、谷歌等输入法)成为计算机用户的必备工具;带有语音识别的计算机和手机也正大行其道,协助用户更有效地工作和学习。
总之,随着互联网的普及和海量信息的涌现,作为人工智能领域中的一个重要方向,NLP正在人们的日常生活中扮演着越来越重要的角色,并将在科技创新的过程中发挥越来越重要的作用。
自然语言处理 NLP 的百年发展史
紧接着在1952年,生物学家阿兰·霍奇金(AlanHodgkin)和安德鲁·赫克斯利(AndrewHuxley)开发了一个数学模型来解释章鱼巨型轴突中神经细胞的行为,霍奇金-赫克斯利模型展示了人类的大脑如何利用神经元形成网络,首次将人类大脑的工作原理具象化地展示在世人面前。
这一系列颠覆性的研究成果在学术界引发轰动,激发了人工智能(AI)的思潮,同时也催生了自然语言处理(NLP)和计算机技术的发展。
NLP的早期理论基础
人们最早对NLP的探索始于对机器翻译的研究。1947年,美国科学家韦弗(W.Weaver)博士和英国工程师布斯(A.D.Booth)提出了利用计算机进行语言自动翻译的设想,机器翻译(MachineTranslation)从此步入历史舞台。
1957年,麻省理工学院的语言学教授诺姆·乔姆斯基(NoamChomsky)在他出版的《句法结构》一书中,革新了语言的概念,提出“要使计算机理解语言,就必须更改句子的结构。”
以此为目标,乔姆斯基创建了一种语法,称为“阶段结构语法”,该语法能够有条不紊地将自然语言句子翻译为计算机可以使用的格式。
1958年夏天,同样来自麻省理工学院的人工智能研究先驱约翰·麦卡锡(JohnMcCarthy)参与IBM资讯研究部的工作,研究符号运算及应用需求。但IBM旗下的Fortran表处理语言却未能支持符号运算的递归、条件表达式、动态存储分配及隐式回收等功能。
于是麦卡锡带领由MIT学生组成的团队开发了一门全新的表处理语言LISP,赋予了编程语言更强的数学计算能力。LISP语言后来也被称为人工智能的“母语”,成为早期人工智能研究人员的编程语言。
1964年,首个自然语言对话程序ELIZA诞生,该程序是由麻省理工学院人工智能实验室的德裔计算机科学家约瑟夫·维岑鲍姆(JosephWeizenbaum)使用一种名为MAD-SLIP的类LISP语言编写,运行在MIT实验室中36位的分时系统IBM7094(早期的晶体管大型计算机)上。
由于当时的计算能力有限,ELIZA只是通过重新排列句子并遵循相对简单的语法规则来实现与人类的简单交流。
用户通过电动打字机和打印机与程序进行远程交互,当用户键入一个句子并按Enter键时,消息被发送到服务端系统,ELIZA扫描邮件中是否存在关键字,并在新句子中使用该关键字以形成响应,返回打印给用户。
这种对话方式,给人的印象是计算机可以理解对话,又不必为对话提供任何新内容,仅用200行代码就产生了理解和参与的错觉。
在这一时期,虽然有了一定的理论基础以及像Eliza这样的初级产品,但在历时近12年并耗资近2000万美元后,机器翻译的成本还是远高于人工翻译,并且仍然没有任何计算机能够真正实现基本的对话。
于是在1966年,美国国家研究委员会(NRC)和自动语言处理咨询委员会(ALPAC)停止了对自然语言处理和机器翻译相关项目的资金支持,AI和NLP的发展因此陷入停滞。
此时,许多学者认为人工智能和自然语言处理的研究进入了死胡同。人类早期结合语言学与统计学对AI/NLP的初步探索以失败告终。
NLP的回归
直到1980年,在美国的卡内基梅隆大学召开了第一届机器学习国际研讨会,标志着机器学习研究在全世界的重新兴起。
在某种程度上来说,长达14年的真空期也让NLP界有时间冷静下来寻求新的突破。于是,早期的机器翻译概念被推翻,新的思想促进了新的研究。
早期的自然语言处理研究中,很流行语言学和统计学的混合,大多数NLP系统都使用复杂的“手写”逻辑规则。而现在,这一理念被纯粹的统计学所取代。
20世纪80年代,得益于计算能力的稳定增长以及机器学习的发展,研究人员开始对AI和NLP进行根本性的重新定位,用简单的近似法取代了深入的分析法,评估过程也变得更加量化。
经过一些挫折后,一种前馈神经网络模型MLP由伟博斯在1981年的神经网络反向传播(BP)算法中具体提出。当然BP仍然是今天神经网络架构的关键因素。
有了这些新思想,神经网络的研究又加快了。1985-1986年,一些神经网络研究学者先后提出了MLP与BP训练相结合的理念。
随后,一个非常著名的ML算法由罗斯·昆兰(RossQuinlan)在1986年提出,我们称之为决策树算法,更准确的说是ID3算法。这是另一个主流机器学习的重要里程碑。
与黑盒神经网络模型截然不同的是,决策树ID3算法也被作为一个软件,通过使用简单的规则和清晰的参考可以找到更多的现实生活中的使用情况。
决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。
决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测。
决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。
决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测。
语言模型简单来说就是一串词序列的概率分布。具体来说,语言模型的作用是为一个长度为m的文本确定一个概率分布P,表示这段文本存在的可能性。在实践中,如果文本的长度较长,P(wi|w1,w2,...,wi−1)的估算会非常困难。
因此,研究者们提出使用一个简化模型:n元模型(n-grammodel)。在n元模型中估算条件概率时,只需要对当前词的前n-1个词进行计算。
在n元模型中,传统的方法一般采用频率计数的比例来估算n元条件概率。当n较大时,机会存在数据稀疏问题,导致估算结果不准确。因此,在百万词级别的语料中,一般也就用到三元模型。
语言模型简单来说就是一串词序列的概率分布。具体来说,语言模型的作用是为一个长度为m的文本确定一个概率分布P,表示这段文本存在的可能性。在实践中,如果文本的长度较长,P(wi|w1,w2,...,wi−1)的估算会非常困难。
因此,研究者们提出使用一个简化模型:n元模型(n-grammodel)。在n元模型中估算条件概率时,只需要对当前词的前n-1个词进行计算。
在n元模型中,传统的方法一般采用频率计数的比例来估算n元条件概率。当n较大时,机会存在数据稀疏问题,导致估算结果不准确。因此,在百万词级别的语料中,一般也就用到三元模型。
为了缓解n元模型估算概率时遇到的数据稀疏问题,研究者们提出了神经网络语言模型。1997年,LSTM递归神经网络(RNN)模型被引入,并在2007年找到了语音和文本处理的利基市场。目前,神经网络模型被认为是NLP对文本和语音生成理解的最前沿研究。
2001年,法国AI专家约书亚·本吉奥(YoshioBengio)发表了一篇论文,提出了一种全新的语言神经网络模型。该模型使用前馈神经网络描述了一种不使用连接来形成循环的人工神经网络。
在这种类型的网络中,数据仅在一个方向上移动,从输入节点到任何隐藏节点,再到输出节点。前馈神经网络没有循环,与递归神经网络有很大不同。
本吉奥带来的全新思路启发了之后的很多基于神经网络的NLP学术研究,在工业界也得到了广泛使用,助力了NLP的应用在未来几年的加速落地。
此外,还有梯度消失(gradientvanishing)的细致分析,word2vec的雏形,以及如今实现的机器翻译技术都有本吉奥的贡献。
当代NLP的研究
经过长期的发展,自然语言处理(NLP)被人们系统地定义为人工智能中的一门分支学科。除了机器翻译与人机交互意外,NLP还包含以下高级功能的研究:
内容分类:语言文档摘要,包括内容警报,重复检测,搜索和索引。
主题发现和建模:捕获文本集合的主题和含义,并对文本进行高级分析。
上下文提取:自动从基于文本的源中提取结构化数据。
情绪分析:识别存储在大量文本中的总体情绪或主观意见,用于意见挖掘。
文本到语音和语音到文本的转换:将语音命令转换为文本,反之亦然。
文档摘要:自动创建摘要,压缩大量文本。
机器翻译:自动将一种语言的文本或语音翻译成另一种语言。
内容分类:语言文档摘要,包括内容警报,重复检测,搜索和索引。
主题发现和建模:捕获文本集合的主题和含义,并对文本进行高级分析。
上下文提取:自动从基于文本的源中提取结构化数据。
情绪分析:识别存储在大量文本中的总体情绪或主观意见,用于意见挖掘。
文本到语音和语音到文本的转换:将语音命令转换为文本,反之亦然。
文档摘要:自动创建摘要,压缩大量文本。
机器翻译:自动将一种语言的文本或语音翻译成另一种语言。
在2011年,苹果公司的Siri成为世界上第一个成功被普通消费者使用的NLP/AI助手之一。在Siri中,自动语音识别模块将所有的单词转换为数字解释的概念。
然后,语音命令系统会将这些概念与预定义的命令进行匹配,从而启动特定的操作。例如,如果Siri问:“您想听一下您的余额吗?”它会理解你将要回答的“是”或“否”,并采取相应的行动。
通过使用机器学习技术,所有者的口语模式不必与预定义的表达式完全匹配。对于NLP系统来说,声音必须合理地接近才能正确翻译含义。通过使用反馈循环,NLP引擎可以显着提高其翻译的准确性,并增加系统的词汇量。
训练有素的系统会理解“我在哪里可以得到大数据的帮助?”这样的字眼。“我在哪里可以找到大数据专家?”或“我需要大数据方面的帮助”,并提供适当的答复。
对话管理器与NLP的组合,使开发一个能够真正与人类对话的系统成为可能。2014年6月8日,一个名为尤金·古斯特曼(EugeneGoostman)的电脑聊天程序成功让参与测试的33%人类裁判相信它是一个13岁的男孩,成为有史以来首台通过图灵测试的计算机。
NLP的未来
近年来,在NLP领域中,使用语言模型预训练方法在多项NLP任务上都取得了突破性进展,广泛受到了各界的关注。
前文提到,目前神经网络在进行训练的时候基本都是基于后向传播(BP)算法,通过对网络模型参数进行随机初始化,然后通过BP算法利用例如SGD这样的优化算法去优化模型参数。
那么预训练的思想就是,该模型的参数不再是随机初始化,而是先有一个任务进行训练得到一套模型参数,然后用这套参数对模型进行初始化,再进行训练。
即通过在大量的语料上预训练语言模型,然后再将预训练好的模型迁移到具体的下游NLP任务,从而提高模型的能力。
得益于目前硬件算力的提升,预训练语言模型的参数规模呈指数倍增长。其中,GPT模型是OpenAI在2018年提出的一种新的ELMo算法模型,该模型在预训练模型的基础上,只需要做一些微调即可直接迁移到各种NLP任务中,因此具有很强的迁移能力。
2019年推出的GPT-2拥有15亿参数,到了2020年推出的GPT-3已经拥有惊人的1750亿参数,不仅能轻松通过图灵测试,还能完成包括写代码在内的大部分NLP任务。
神经网络之父、图灵奖获得者杰弗里·辛顿(GeoffreyHinton)表示,“鉴于GPT-3在未来的惊人前景,可以得出结论:生命、宇宙和万物的答案,就只是4.398万亿个参数而已。”
这一观点也引发了人们的广泛讨论,被认为是对NLP发展尽头的预言。当未来人类的算力不断突破极限时,包含全人类文明的GPT-N是否会是NLP的终点呢?返回搜狐,查看更多