Connect with us

人工智能

NLP Rise with Transformer Models | A Comprehensive Analysis of T5, BERT, and GPT

mm
Guide on NLP

自然语言处理(NLP)在近年经历了一些最具影响力的突破,主要归功于Transformer架构。这些突破不仅增强了机器理解和生成人类语言的能力,还重新定义了从搜索引擎到对话式人工智能等众多应用的格局。

为了充分理解Transformer的重要性,我们必须首先回顾一下为这一革命性架构奠定基础的前身和构建块。

早期NLP技术:Transformer前的基础

词嵌入:从One-Hot到Word2Vec

在传统的NLP方法中,词的表示通常是字面上的,缺乏任何语义或句法理解。One-Hot编码是这一限制的典型例子。

One-Hot编码是一种将分类变量转换为二进制向量表示的过程,其中只有一个位是“热”(设置为1),而其他位是“冷”(设置为0)。在NLP的背景下,词汇表中的每个词都由One-Hot向量表示,其中每个向量的大小等于词汇表的大小,每个词都由一个向量表示,该向量在相应的词汇表索引位置有一个1,其他位置都是0。

One-Hot编码示例

假设我们有一个只有五个词的微小词汇表:[“king”, “queen”, “man”, “woman”, “child”]。每个词的One-Hot编码向量如下:

  • “king” -> [1, 0, 0, 0, 0]
  • “queen” -> [0, 1, 0, 0, 0]
  • “man” -> [0, 0, 1, 0, 0]
  • “woman” -> [0, 0, 0, 1, 0]
  • “child” -> [0, 0, 0, 0, 1]

数学表示

如果我们将词汇表的大小表示为V,将第i个词的One-Hot向量表示为wi,则wi的数学表示为:

wi=[0,0,,1,,0,0] 其中第i个位置为1,其他位置为0。其中第i个位置为1,其他位置为0。

One-Hot编码的主要缺点是,它将每个词视为一个孤立的实体,与其他词无关。这导致产生稀疏和高维的向量,这些向量不能捕获词的任何语义或句法信息。

Word2Vec的引入,尤其是由Google的Tomas Mikolov领导的团队在2013年开发的Word2Vec,是NLP领域的一个关键时刻。Word2Vec在密集的向量空间中表示词,捕获基于大型文本语料库中词的上下文的句法和语义词关系。

与One-Hot编码不同,Word2Vec产生密集的向量,通常具有数百个维度。在相似上下文中出现的词,如“king”和“queen”,将具有在向量空间中更接近的向量表示。

为了说明,让我们假设我们已经训练了一个Word2Vec模型,现在将词表示在一个假设的三维空间中。(通常这些嵌入维度更高,但为了简单起见,我们将其简化为三维。)嵌入可能如下所示:

  • “king” -> [0.2, 0.1, 0.9]
  • “queen” -> [0.21, 0.13, 0.85]
  • “man” -> [0.4, 0.3, 0.2]
  • “woman” -> [0.41, 0.33, 0.27]
  • “child” -> [0.5, 0.5, 0.1]

虽然这些数字是虚构的,但它们说明了如何使相似的词具有相似的向量。

数学表示

如果我们将词的Word2Vec嵌入表示为vw,并且我们的嵌入空间具有d个维度,则vw可以表示为:

v1=[v1,v2,,vd] 其中每个vi是一个表示词在嵌入空间中的浮点数特征。

语义关系

Word2Vec甚至可以捕获复杂的关系,例如类比。例如,Word2Vec嵌入捕获的著名关系是:

vector(“king”) – vector(“man”) + vector(“woman”)≈vector(“queen”)vector(“king”) – vector(“man”) + vector(“woman”)vector(“queen”)

这是因为Word2Vec在训练过程中调整词向量,以便在语料库中共享共同上下文的词在向量空间中被放置得更接近。

Word2Vec使用两种主要的架构来生成词的分布式表示:连续袋词(CBOW)和Skip-Gram。CBOW从上下文词预测目标词,而Skip-Gram则相反,从目标词预测上下文词。这使得机器能够以更细致的方式开始理解词的使用和含义。

序列建模:RNN和LSTM

随着领域的进展,重点转向了理解文本序列,这对于机器翻译、文本摘要和情感分析等任务至关重要。循环神经网络(RNN)成为这些应用的基石,因为它们可以通过维持某种形式的内存来处理序列数据。

然而,RNN并非没有局限性。它们在处理长距离依赖时遇到了困难,这是由于梯度消失问题引起的,信息会在长序列中丢失,使得学习远距离事件之间的相关性变得困难。

长短期记忆网络(LSTM),由Sepp Hochreiter和Jürgen Schmidhuber于1997年引入,通过更复杂的架构解决了这个问题。LSTM具有控制信息流动的门:输入门、遗忘门和输出门。这些门决定了什么信息被存储、更新或丢弃,使得网络能够保留长距离依赖,并显著提高了在广泛的NLP任务上的性能。

Transformer架构

NLP领域的格局在2017年Vaswani等人发表的“Attention is All You Need”论文中引入Transformer模型后发生了戏剧性的变化。Transformer架构偏离了RNN和LSTM的顺序处理,而是使用一种称为“自注意力”的机制来权衡不同输入数据部分的影响。

Transformer的核心思想是,它可以同时处理整个输入数据,而不是顺序处理。这使得模型可以更好地并行化,并且训练速度大大提高。自注意力机制使得模型能够在处理文本时关注不同的部分,这对于理解上下文和词之间的关系至关重要,无论它们在文本中的位置如何。

Transformer中的编码器和解码器:

在原始Transformer模型中,如Vaswani等人在论文“Attention is All You Need”中所述,架构分为两个主要部分:编码器和解码器。两部分都由具有相同一般结构的层组成,但服务于不同的目的。

编码器:

  • 角色:编码器的角色是处理输入数据并创建一个捕获元素之间关系(如句子中的词)的表示。Transformer的这一部分不生成任何新内容;它只是将输入转换为解码器可以使用的状态。
  • 功能:每个编码器层都具有自注意力机制和前馈神经网络。自注意力机制允许编码器中的每个位置关注前一层编码器中的所有位置——因此,它可以学习每个词周围的上下文。
  • 上下文嵌入:编码器的输出是一系列向量,它们在高维空间中表示输入序列。这些向量通常被称为上下文嵌入,因为它们不仅编码个别词,还编码了词在句子中的上下文。

解码器:

  • 角色:解码器的角色是根据从编码器接收的输入和它已经生成的内容,顺序生成输出数据,一次一个。它的设计目的是用于文本生成等任务,其中生成的顺序至关重要。
  • 功能:解码器层也包含自注意力机制,但它们被掩蔽以防止位置关注后续位置。这样可以确保对特定位置的预测只能依赖于之前位置的已知输出。此外,解码器层包括一个关注编码器输出的第二个注意力机制,将输入的上下文整合到生成过程中。
  • 顺序生成能力:这指的是解码器一次生成一个序列元素的能力,建立在它已经产生的基础上。例如,在生成文本时,解码器根据编码器提供的上下文和它已经生成的词序列预测下一个词。

编码器和解码器中的这些子层对于模型处理复杂NLP任务的能力至关重要。特别是多头注意力机制,使得模型能够选择性地关注序列的不同部分,提供对上下文的丰富理解。

流行的基于Transformer的模型

在初始Transformer模型成功之后,基于其架构的新模型如雨后春笋般涌现,每个模型都有其自己的创新和针对不同任务的优化:

BERT(来自Transformer的双向编码器表示):由Google于2018年推出,BERT通过对大型文本语料库进行掩码语言模型和下一句预测的预训练,彻底改变了语言表示中上下文信息的集成方式,并在广泛的NLP任务中取得了最先进的成果。

BERT

BERT

T5(文本到文本转换Transformer):由Google在2020年推出,T5将所有NLP任务重新定义为文本到文本问题,使用统一的基于文本的格式。这种方法简化了将模型应用于各种任务的过程,包括翻译、摘要和问答。

T5架构

T5架构

GPT(生成式预训练Transformer):由OpenAI开发,GPT模型从GPT-1开始,到2023年发展到GPT-4。这些模型使用大量文本数据进行预训练,并针对各种任务进行微调。它们生成连贯且上下文相关的文本的能力使它们在学术和商业AI应用中具有巨大的影响力。

GPT

GPT架构

以下是T5、BERT和GPT模型在各个维度上的更深入比较:

1. 分词和词汇

  • BERT:使用WordPiece分词,词汇表大小约为30,000个令牌。
  • GPT:采用字节对编码(BPE),词汇表大小很大(例如,GPT-3的词汇表大小为175,000)。
  • T5:使用SentencePiece分词,将文本视为原始文本,不需要预分割的词。

2. 预训练目标

  • BERT:掩码语言模型(MLM)和下一句预测(NSP)。
  • GPT:因果语言模型(CLM),其中每个令牌预测序列中的下一个令牌。
  • T5:使用一种去噪目标,其中文本的随机跨度被替换为一个哨兵令牌,模型学习重建原始文本。

3. 输入表示

  • BERT:令牌、段和位置嵌入被组合以表示输入。
  • GPT:令牌和位置嵌入被组合(没有段嵌入,因为它不是为句子对任务设计的)。
  • T5:仅使用令牌嵌入,并在注意力操作期间添加相对位置编码。

4. 注意力机制

  • BERT:使用绝对位置编码,并允许每个令牌关注左侧和右侧的所有令牌(双向注意力)。
  • GPT:也使用绝对位置编码,但限制了注意力仅关注之前的令牌(单向注意力)。
  • T5:实现了一个使用相对位置偏差而不是位置嵌入的Transformer变体。

5. 模型架构

  • BERT:仅编码器架构,具有多个Transformer块层。
  • GPT:仅解码器架构,也具有多个层,但设计用于生成任务。
  • T5:编码器-解码器架构,编码器和解码器均由Transformer层组成。

6. 微调方法

  • BERT:适应预训练模型的最终隐藏状态,用于下游任务,并根据需要添加输出层。
  • GPT:在Transformer上添加一个线性层,并使用与因果语言模型相同的目标对下游任务进行微调。
  • T5:将所有任务转换为文本到文本格式,模型被微调为从输入序列生成目标序列。

7. 训练数据和规模

  • BERT:在BookCorpus和英语维基百科上训练。
  • GPT:GPT-2和GPT-3在从互联网提取的多样化数据集上训练,GPT-3在一个名为Common Crawl的更大语料库上训练。
  • T5:在“巨大清洁爬行语料库”上训练,这是一个大型且干净的Common Crawl版本。

8. 上下文和双向性的处理

  • BERT:旨在同时理解双向上下文。
  • GPT:训练为理解从左到右的上下文。
  • T5:可以在编码器中建模双向上下文,在解码器中建模单向上下文,适用于序列到序列任务。

9. 适应下游任务的能力

  • BERT:需要特定任务的头层和微调。
  • GPT:具有生成性质,可以通过最少的结构变化来提示执行任务。
  • T5:将所有任务视为“文本到文本”问题,使其内在地具有灵活性和适应新任务的能力。

10. 可解释性和可说明性

  • BERT:双向性质提供了丰富的上下文嵌入,但可能更难解释。
  • GPT:单向上下文可能更容易理解,但缺乏双向上下文的深度。
  • T5:编码器-解码器框架提供了处理步骤的清晰分离,但由于其生成性质,可能更复杂,需要分析。

Transformer对NLP的影响

Transformer通过使模型能够并行处理序列数据,从而革新了NLP领域,这大大提高了训练大型神经网络的速度和效率。它们引入了自注意力机制,使得模型能够权衡输入数据的每个部分的重要性,无论距离如何。这导致了广泛的NLP任务(包括但不限于翻译、问答和文本摘要)取得了前所未有的改进。

研究继续推动基于Transformer的模型的边界。GPT-4及其同代人不仅规模更大,而且由于架构和训练方法的进步而更加高效和强大。少样本学习(模型在最少的示例下执行任务)和更有效的迁移学习方法是当前研究的前沿。

像Transformer这样的语言模型从数据中学习,这些数据可能包含偏见。研究人员和从业者正在积极地识别、理解和减轻这些偏见。技术包括精心策划的训练数据集和针对公平性和中立性的后训练调整。

…(内容太长,省略剩余部分)

我过去五年一直沉浸在令人着迷的机器学习和深度学习世界中。我的热情和专业知识使我能够为超过50个不同的软件工程项目做出贡献,特别注重人工智能/机器学习。我的持续好奇心也使我对自然语言处理产生了兴趣,这是一个我渴望进一步探索的领域。