"); //-->
图1 ChatGPT引发 Google“红色警报” [1][2][3]
从机器翻译到ChatGPT:自然语言处理的进化自然语言处理的历史可以追溯到1949年,恰好与共和国同龄。但是由香农的学生、数学家Warren Weaver发布的有关机器翻译的研讨备忘录被认为是自然语言处理的起点,比1956年达特茅斯会议提出“人工智能(Artificial Intelligence,AI)” 的概念还略早一些。二十世纪五、六十年代是自然语言处理发展的第一阶段,致力于通过词典、生成语法(图2)和形式语言来研究自然语言,奠定了自然语言处理技术的基础,并使得人们认识到了计算对于语言的重要意义。这个阶段的代表性的成果有1954年自动翻译(俄语到英语)的“Georgetown–IBM实验”,诺姆·乔姆斯基(Noam Chomsky)于1955年提交的博士论文《变换分析(Transformational Analysis)》和1957年出版的著作《句法结构(Syntactic Structures)》等。图2 句法分析示例,来自《知识图谱:认知智能理论与实战》图4-5,P149[6]在二十世纪六、七十年代,对话系统得到了发展,比如SHRDLU、LUNAR和ELIZA(图3)。麻省理工学院的SHRDLU采用句法分析与“启发式理解器(heuristic understander)”相结合的方法来理解语言并做出响应。LUNAR科学自然语言信息系统(Lunar Sciences Natural Language Information System)则试图通过英语对话的方式来帮助科学家们便捷地从阿帕网(ARPA net)获取信息,这倒像是当前爆火的ChatGPT雏形。ELIZA是那时对话系统的集大成者,集成了关键词识别(图4)、最小上下文挖掘、模式匹配和脚本编辑等功能[5]。图3 ELIZA对话系统,摘自维基百科ELIZA词条图4 ELIZA系统中关键词挖掘的流程图[5]随着自然语言处理任务愈加复杂,人们认识到知识的缺乏会导致在复杂任务上难以为继,由此知识驱动人工智能逐渐在二十世纪七、八十年代兴起。语义网络(Semantic Network)和本体(Ontology)是当时研究的热点,其目的是将知识表示成机器能够理解和使用的形式,并最终发展为现在的知识图谱[6]。在这个阶段,WordNet、CYC等大量本体库被构建,基于本体和逻辑的自然语言处理系统是研究热点。进入二十世纪末二十一世纪初,人们认识到符号方法存在一些问题,比如试图让逻辑与知识覆盖智能的全部方面几乎是不可完成的任务。统计自然语言处理(Statistical NLP)由此兴起并逐渐成为语言建模的核心,其基本理念是将语言处理视为噪声信道信息传输,并通过给出每个消息的观测输出概率来表征传输,从而进行语言建模。相比于符号方法,统计方法灵活性更强,在大量语料支撑下能获得更优的效果。在统计语言建模中,互信息(Mutual Information)可以用于词汇关系的研究,N元语法(N-Gram)模型是典型的语言模型之一,最大似然准则用于解决语言建模的稀疏问题,浅层神经网络也早早就应用于语言建模,隐马尔可夫模型(Hidden Markov Model,HMM)和条件随机场(Conditional Random Fields ,CRF)(图5)是这个阶段的扛把子。在搜索引擎的推动下,统计自然语言处理在词法分析、机器翻译、序列标注和语音识别等任务中广泛使用。图5 条件随机场,来自《知识图谱:认知智能理论与实战》图3-8,P104[6]特别地,从这个阶段开始,中文自然语言处理兴起,中国的机构紧紧跟上了人工智能发展的潮流。由于中文分词、词性标注和句法分析等工作与英语等西方语言有着很大的不同,许多针对中文语言处理的方法被深入研究并在推动自然语言处理的发展中发挥着巨大作用。2006年起,深度学习开始流行,并在人工智能的各个细分领域“大杀四方”,获得了非凡的成就,自然语言处理也开始使用深度学习的方法。随着2013年Word2vec的出现,词汇的稠密向量表示展示出强大的语义表示能力,为自然语言处理广泛使用深度学习方法铺平了道路。从现在来看,Word2vec也是现今预训练大模型的“婴儿”时期。随后,在循环神经网络(Recurrent Neural Network,RNN)、长短期记忆网络(Long Short-Term Memory,LSTM)、注意力机制、卷积神经网络(Convolutional Neural Network,CNN)、递归神经网络(Recursive Neural Tensor Network)等都被用于构建语言模型,并在句子分类、机器翻译、情感分析、文本摘要、问答系统、实体抽取、关系抽取、事件分析等任务中取得了巨大的成功。2017年发布的变换器网络(Transformer)[7]极大地改变了人工智能各细分领域所使用的方法,并发展成为今天几乎所有人工智能任务的基本模型。变换器网络基于自注意力(self-attention)机制,支持并行训练模型,为大规模预训练模型打下坚实的基础。自此,自然语言处理开启了一种新的范式,并极大地推进了语言建模和语义理解,成就了今天爆火出圈的 ChatGPT,并让人们能够自信地开始探讨通用人工智能(Artificial General Intelligence,AGI)。
BERT & GPT的基础:变换器网络变换器网络是2017年Google在论文《Attention Is All You Need》[7]中提出的一种序列到序列(Sequence to sequence, seq2seq)的深度神经网络架构,其架构如图6所示。图6 变换器网络架构[7]该网络在当时并未引起轰动,仅仅如蝴蝶扇动了几下翅膀。但随着时间的推移却引发了蝴蝶效应,最终掀起了自然语言处理乃至人工智能的海啸。限于篇幅,这里简要介绍变换器网络的重要特点。变换器网络完全依赖于注意力机制,支持极大的并行化。如图6所示,变换器网络由两部分组成,左边是编码部门,有N个编码器组成;右边是解码部分,由N个****组成。编码部分将输入序列(文本)进行编码,解码部分以自回归的方法不断解码下一个词元,最终完成从序列到序列的变换并输出。图7展示了一个中文到英文翻译的序列到序列的实例——将中文“《知识图谱:认知智能理论与实战》是一本人工智能必看书籍”翻译为英文“Knowledge Graph: Theory and Practice of Cognitive Intelligence is a must read book on AI.”。翻译也是最典型的序列到序列的语言任务,事实上也正是这个任务在1949年开启了自然语言处理这门学科,同时在变换器网络的论文中,用的评测也正是翻译任务。图7 用变换器网络进行中译英的实例变换器网络的最大创新是完全使用多头自注意力机制(Multi-Head Self-Attention Mechanism,其架构如图8所示)。变换器网络的编码器和****都是用了同样的多头自注意力结构,有所不同的是,编码器中,自注意力是双向的,而****中,自注意力只允许关注输出序列中较早的位置。如图8的左边图所示,****的自注意力层在自注意力计算的 softmax 步骤之前设置为-inf来屏蔽(mask)未来位置,即图中标签为“Mask(opt.)”的框所标识的。这也正是图6的****中被称为“Masked Multi-Head Attention”的原由。图8 多头自注意力机制[7]多头自注意力机制的核心就是自注意力。图9是自注意力的一个实例,直观地理解,自注意力就是模型在处理当前输入序列的某个词元与该序列其他词元的语义相关性。不同的“头”关注了不同维度/方面的语义。图9示例了“今”字与同一输入序列(句子)的其他字的语义相关性,不同颜色表示了不同的“头”( 顶部色块表示了不同的“头”的标识),而颜色的深浅表示了语义相关性的强弱。在这个例子中,“今”字在有多个“注意力头”最关注了“古”字,而在另一个“注意力头”则最关注“魂”字,还有两个“注意力头”最关注了“的”字。图9 自注意力实例,《知识图谱:认知智能理论与实战》图3-15(P124)[6]值得一提的是,变换器网络是近5年自然语言处理乃至全部人工智能高速发展的最大功臣!近年来叱咤风云的BERT就是以变换器网络的编码器为基础的,而 GPT 则是以其****为基础的。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。