计算机有着独特的语言,和人类的语言不同,那么,怎样才能让两者的语言相通,让人类的表达被计算机所理解呢?这就要依赖自然语言处理技术。自然语言处理技术在AIGC技术中的应用非常广泛,例如Oracle、Siri、Cortana、Alexa等智能客服。当人们向智能客服提问时,自然语言理解技术能使智能客服正确理解提问的含义,而自然语言生成技术可生成符合提问的回答。本节将按照输入和输出的分类,介绍自然语言处理技术是如何帮助AIGC生成内容的。
算法如何理解人类的输入呢?自然语言理解技术(natural language understanding,NLU)作为自然语言处理技术的一个分支,能够通过分解语言片段来帮助计算机理解和解释人类语言。当语音识别技术实时捕获口语、转录并返回文本时,自然语言理解技术能够确定用户的意图。语音识别由统计机器学习方法提供支持,而机器学习模型也会随着时间的推移而改进。算法识别了用户的输入后,将通过以下几个步骤来尝试理解用户输入的内容,即分词、词性标注、语义理解和情感分析。
1.分词
分词是自然语言理解技术的一个重要环节。语句是由具有一定含义的单词组成的。因此,将文本切分成有意义的词语序列,可以更好地反映文本的语义和结构,为后续的语言分析打下基础。以汉语为代表的汉藏语系与以英语为代表的印欧语系不同,词与词之间不存在明显的分隔符,而是由遗传连续的字符构成句子 。
理解汉语分词的难度高于英语。例如,对“南京市长江大桥”这个短语进行分析,那么“南京市/长江大桥”和“南京市长/江大桥”的含义显然不同。前者表达的是位于南京市的长江大桥,而后者可能是想表达有一位叫江大桥的南京市市长。
分词技术可以使用规则化方法、统计方法或混合方法等来实现。其中,规则化方法通常是通过定义一系列规则和模式,进行词语的识别和切分。统计方法是通过分析语料库中的大量语言数据,以及学习单词和词语之间的关系,从而自动分词。混合方法则大多是采用一种分词方法后,再使用其他分词方法作为辅助 。总而言之,分词是自然语言处理技术的基础和核心环节,它对于机器准确理解和处理自然语言文本至关重要。
2.词性标注
词性标注是自然语言理解技术的重要环节,有助于语言算法进一步理解文本。为每个分词赋予一个语法角色,有助于语言算法划定词汇上下文的范围,为后续的语言生成提供支持。通常而言,词性可分为动词、名词、形容词和助词等,这些词性也可以进一步细分,如按时间、地点、人名等细节进行分类。
图2.4呈现的是一个词性标注的案例。在这个案例中,两句话被标注为多种不同的词性,包括其他名词(NN)、其他动词(VV)、专有名词(NR)和系动词(VC)等。当然,在其他的软件中也存在不同的词性分类方法。
图2.4 词性标注的案例
3.语义理解
完成词性标注后,接下来进入语义理解步骤。
语义通常是指文本所表达的实际含义或意义,包括词语、句子、对话等不同层次。
语义不仅指文本的字面含义,还包括文本隐含的情感、主题、目的等方面的信息。例如,“今天天气不错”这个句子。从表面上看,这个句子表达的是今天的天气很好;但是从语义上分析,这个句子可能传递出更深层次的含义,比如讲述人告诉别人自己今天心情很好、今天可以出门活动、今天比较适合进行户外运动。
这些深层次的含义可以通过分析句子语境、上下文等来体会。在实际应用中,语义理解技术可以帮助计算机更准确、更全面地处理文本。AIGC技术可以根据用户输入的问题,理解问题的语义,然后从海量文本中自动获取和整合答案,为用户提供准确和有用的信息。
在自然语言处理中,语义理解可以通过多种方法实现,如基于规则的方法、基于统计的方法、基于语义知识库的方法等。其中,基于语义知识库的方法是目前比较流行的一种方法,它利用大量的语义资源,通过深入分析词汇、句法和语义关系,实现对文本的自动理解。
总之,语义是自然语言处理技术涉及的一个重要概念,它是计算机理解文本的核心和基础。语义理解技术的发展将为自然语言处理技术的广泛应用提供强大和高效的支持。
4.情感分析
在完成语义理解后,下面要做的就是尝试对语言中的情感进行分析。情感分析算法通过对大量数据进行分析和训练,建立情感分类模型,尝试判断文本中的喜怒哀乐等情绪。除了情绪分类,情感分析的其他应用包括以下几种 。
(1)观点识别。给定的文本中究竟是列出了逻辑观点,还是充满情绪呢?观点识别能够对文本中的观点进行判断。
(2)情感极性判别。通过将情绪分为褒义、贬义或中性,可以判断文本中的情绪倾向性。
(3)情感强度判别。“我有点不舒服”和“我非常不舒服”显然表达了不同程度的情感。通过对情感的程度打分,可以在情感极性判别的基础上明确情感的强度。
在上一个小节中,我们讲述了算法如何理解文本输入。那么有没有能够直接理解人类语音的技术呢?语音识别技术(automatic speech recognition,ASR)能够让人类与机器直接通过语音沟通。机器根据人类语音执行命令或者将语音转化为文字输出,完成从语音序列到文本序列的映射 。
如图2.5所示,语音识别框架主要由声学模型、发音词典、语言模型组成。首先,对语音进行预处理,建立声学模型;其次,通过训练文本数据建立语言模型;再次,基于文本数据建立发音词典;最后,将声学模型、语言模型、发音词典组成解码器来输出识别结果。
图2.5 语音识别的基本框架
随着技术的发展,目前已有多种语音识别的建模方法,包括DTW、DNN-HMM和E2E模型等,本节将对这些模型进行简单介绍。
1.DTW
起初,语音识别的思路是比较标准语音的声波和样本声波,以此来进行语音识别。然而,传统的时间序列匹配对声波的吻合程度要求非常高,导致许多样本无法被识别。动态时间规整(dynamic time warping,DTW)通过弯折时间曲线来匹配时间序列,解决了传统的欧氏距离无法解决的时间序列不能对齐的问题。目前,动态时间规整技术被广泛运用于金融分析、健身追踪器和GPS中的导航功能等 。
2.DNN-HMM
深度学习的快速发展带动了语音处理技术的进步。由于深度学习具有强大的建模能力,许多公司都试图在这一方向取得突破。深度神经网络——隐马尔可夫链模型(Deep Neural Network-Hidden Markov Model)在2012年由微软研究院提出。由于技术成熟,隐马尔可夫链已被应用于天气预报、语音识别等领域。深度学习与隐马尔可夫链的合作,能够应对更加复杂的语音变化情况,相较以往的模型,其技术水平有着较大幅度的提升 。
3.E2E
端到端(end to end,E2E)模型是近年来流行的一款语音识别模型。如图2.6所示,E2E模型和传统的语音识别模型不同,它将语音识别建模中的声学模型、发音词典、语言模型组合成为一个模型,直接实现语音识别。E2E模型的词汇错误率远远低于传统模型。
图2.6 E2E模型框架
GPT不是横空出世的,提起它就难免要提起促使自然语言处理广为人知的各种技术,比如编码器和解码器、注意力机制、Transformer模型以及预训练思想。那么,到底什么是解码器和编码器呢?注意力机制是什么?它解决了什么问题?Transformer模型为什么这么重要?作为自然语言处理技术不可或缺的一个部分,自然语言生成(natural language generation,NLG)技术能够生成符合人类逻辑的语言,帮助智能客服等众多人工智能服务器输出对人类的回应。本节将简要介绍三种常见的自然语言生成算法,即Transformer、BERT和GPT。
在讲述算法之前,我们应当了解算法的发展历程。明确文本的顺序概念是算法发展中的重要一环。显然,“猫吃了鱼”和“鱼吃了猫”这两个句子的语义是完全不同的。然而,传统的前馈神经网络(feedforward neural network,FNN)和卷积神经网络(convolutional neural networks,CNN)等模型不能将语序纳入模型的学习范围,它们也无法理解语序不同带来的语义差别。于是,循环神经网络(recurrent neural network,RNN)应运而生,它只向模型传送一个输入数据,并且按照序列前进的方向,令模型进行递归学习 。
虽然RNN模型能够理解语序带来的语义之差,但是它没有考虑到翻译任务中不同语言的语序不一致的问题,尤其是当需要翻译的文本中出现倒装句、排比句等长难句时,翻译结果和原文的含义大相径庭。
注意力(attention)机制是一种尝试解决RNN模型既不能双向捕获上下文也不能并行计算的问题的机制 。注意力机制的好处有两点:首先,它通过控制相应参数的权重来影响学习结果,从而解决RNN模型的梯度消失问题;其次,由于注意力机制不存在计算顺序的问题,可以用并行计算的方式来实现。此外,注意力机制可以灵活调整参数权重,这为提高大参数量的语言模型理解能力提供了无限可能。
1.Transformer
Transformer模型通过应用注意力机制解决RNN模型中的各种问题。图2.7呈现的是Transformer模型架构。图中左边部分是Transformer模型的编码器,右边部分则是解码器。
图2.7 Transformer模型架构
以将中文翻译成英文的任务为例,模型用左边的编码器输入单词,获取每一个单词的 Q 值和 K 值,随后将其输送到解码器;解码器每次预测一个英文单词的内容,在每次预测时都将之前的预测结果输入解码器;解码器结合之前输出的英文内容以及编码器传输的中文 Q 值和 K 值,预测下一个英文单词的内容。
Transformer编码器由四部分组成,即多头自注意力计算层、残差和(层级)标准化层、全连接层、第二个残差和(层级)标准化层。它们各自的功能如下所述。
(1)多头自注意力(multi-headed self-attention)机制。编码器使用多头自注意力机制进行注意力计算。这里的多头自注意力机制可以理解为将多个自注意力计算结果合并在一起。
(2)残差和(层级)标准化层(layer normalization)。完成自注意力计算后,还需要经过残差层(就是简单的加运算)和(层级)标准化层。残差层可解决深层神经网络无法有效学习的问题。(层级)标准化层可消除输入长度不同对模型预测结果的影响。
(3)全连接层(fully connected layer)。该层的设计目的是通过激活函数对数据进行一次非线性变换,以进一步激活模型对数据的学习能力。
(4)第二个残差和(层级)标准化层。此层的作用与第一个残差和(层级)标准化层的作用一致。
2.BERT
2019年,谷歌推出的BERT(bidirectional encoder representations from transformers)模型成为自然语言处理领域的一次重大突破。BERT是一种预训练模型,它可以自动学习自然语言中的上下文信息,从而在自然语言处理任务中取得先进结果。
BERT模型是对Transformer模型的堆叠。不同的Transformer模型在堆叠后,可以形成一个神经网络,最终形成BERT模型的主体部分。BERT可以基于大规模未标记的文本数据进行无监督预训练,学习通用的语言表征,然后通过微调进行特定任务预测。BERT模型可以通过双向语言模型预训练理解上下文信息,从而优化其在各种自然语言处理任务中的表现。
3.GPT
既然提到了文本生成模型,那怎么能少了大热的ChatGPT(chat generative pretrained transformer)呢?实际上,ChatGPT所使用的模型就是来源于OpenAI团队于2018年推出的首个版本的GPT模型,又名GPT-1。它是一种基于变换器的预训练语言模型,它能完成自然、流畅的语言输出。GPT-1的成功开发引领了预训练语言模型技术的发展,成为自然语言处理领域的重大突破。
GPT-1模型(见图2.8)的核心是一个基于变换器的编码器——解码器框架,它可以自动学习语言的规则和模式,从而生成自然、连贯的文本。该模型在预训练过程中使用大规模的未标记数据,然后通过微调来适应特定任务。GPT-1在多个自然语言处理任务中取得了优异的表现,包括文本生成、机器翻译、语言推断等。
图2.8 GPT-1模型架构
如图2.8所示,GPT-1将12个Transformer模型的解码器叠加,最终得到了一种预训练语言模型。与其他预训练语言模型一样,GPT-1完成各种具体任务要经过两个步骤:预训练与微调。预训练阶段的目标是通过设置合理的预训练任务,使GPT-1模型能够理解文本;微调阶段的目标是通过监督训练完成具体的任务,如情感分析、分类分析等。
随着时间的推移,GPT-1不断被优化。2019年,OpenAI团队发布了更新版本的GPT-2模型,其核心思想是舍弃GPT-1的微调环节,在预训练后将合理的问题作为输入,令模型直接通过文字生成的方式生成答案。这种输入被称为“prompt”。以文本情感分类任务为例,要判断“我今天很不开心”的情感,可以设计相应的prompt来表达具体问题,通过文本生成模型可以直接生成“积极”或“消极”两个结果,从而完成文本分类。
此后,OpenAI的研究员们受到GPT-2不需要微调即可完成下游任务的启发,提出在设计prompt时加入一定的提示,以优化模型完成具体任务的表现,于是GPT-3模型产生。GPT-3的训练数据不再是单纯的自然语言文本,而是针对具体任务的高质量prompt。由于数据量的大幅度增加,GPT-3执行具体任务的准确率要远远高于GPT-2,它能够输出更符合人类喜好的回答。
在之前的小节中,我们介绍了计算机是如何通过算法来理解音频的。那么在理解了音频内容以后,有没有什么方法能让算法生成音频并输出呢?答案是显而易见的,语音合成技术(text to speech,TTS)就是一种可以将任意输入文本转换成相应语音的技术。
20世纪初,人们通常使用电子方法来合成语言。例如,1939年Homer Dudley发明的VODER语音合成器、1950年Frank Cooper发明的模式播放器和1953年C. Chapman发明的共振峰合成器等。随着计算机技术的逐步推广,语音合成步骤更加简单。在这一时期,语音合成技术主要有两种:数字式共振峰语音合成和波形拼接合成。进入新世纪后,随着人工智能等技术的快速发展,神经网络和深度学习被用来训练语音合成,计算机的模拟人声也更加自然成熟 。
语音合成系统包括文本分析、韵律建模和语音合成三个部分。其中,语音合成可归纳为三个步骤:第一步,根据韵律建模结果,从原始语音库中调取对应的语音基元;第二步,利用特定的语音合成技术对语音基元进行韵律调整和修改;第三步,合成并输出用户期望的语音 。
本节将介绍一个著名的AI语音合成模型——Tacotron模型 。
2017年,谷歌公司提出的Tacotron模型成为AI在语音合成应用领域的里程碑。如图2.9所示,Tacotron模型是一个基于自注意力机制的端到端语音合成模型。它包括一个编码器、一个基于自注意力机制的解码器和一个后处理网络。模型输入文字,生成声谱图帧,最后转换为波形。
图2.9 Tacotron模型架构
图2.9的左侧部分是一个CBHG模型。该模型由一维卷积滤波器组、高速网络、双向门控递归单元和递归神经网络组成。CBHG的输入序列首先经卷积滤波器进行卷积,这些滤波器将对局部和上下文信息进行建模。在进一步处理后,卷积输出将被输送到多层高速网络中以提取高级特征。最终,顶部的双向门控递归单元和递归神经网络将双向从上下文中提取顺序特征,提取完的特征仍需要进行一系列预处理。
图2.9的右下方是预处理模块,其中包括编码器。CBHG模块会将输出转换为注意力模块并使用编码器格式。随后,图2.9右侧的解码器就会将预处理完成的输入转换为80波段梅尔谱图,最终使用Griffin-Lim(格林芬-林)算法从预测的频谱图中合成波形 。
Tacotron有一个明显的缺点,它只能生成最终波形的Griffin-Lim算法,这个算法只是一种临时措施。因此,在2018年,Tacotron2模型被开发出来,用于改进生成的问题。Tacotron2模型和原模型相比,在结构上有所调整。例如,CBHG模块不再出现在模型中,而是使用LSTM和卷积层作为替代,模型的输出也变为以梅尔谱图为基础的声波样本 。经过改良的Tacotron2模型生成的语音更接近人类语音,在各项测试中的得分也显著优于Tacotron模型。