Press "Enter" to skip to content

比较自然语言处理技术:RNNs, Transformers, BERT

比较自然语言处理技术:RNNs, Transformers, BERT 四海 第1张

自然语言处理(Natural Language Processing,简称NLP)是人工智能领域中一门研究文本数据理解能力的技术。NLP研究存在已久,但随着大数据和更高的计算处理能力的引入,它近年来变得更加突出。

随着NLP领域的扩大,许多研究人员也努力改进机器对文本数据的理解能力。在取得了很大进展后,我们在NLP领域中提出并应用了许多技术。

本文将对NLP领域中处理文本数据的各种技术进行比较。文章将重点讨论RNN、Transformers和BERT,因为它们经常被用于研究。让我们开始吧。

循环神经网络

循环神经网络(Recurrent Neural Network,简称RNN)于1980年被开发出来,但直到近年来才在NLP领域引起了关注。RNN是神经网络家族中的一种特殊类型,用于处理顺序数据或不能独立于彼此的数据。顺序数据的例子包括时间序列、音频或文本句子数据,基本上是任何具有有意义顺序的数据。

RNN与常规前馈神经网络不同,它们以不同的方式处理信息。在常规前馈网络中,信息是按层处理的。然而,RNN在信息输入时使用了一个循环周期作为考虑因素。为了理解这些差异,请看下面的图片。

比较自然语言处理技术:RNNs, Transformers, BERT 四海 第2张

如您所见,RNN模型在信息处理过程中实现了循环循环。当处理这些信息时,RNN会考虑当前和先前的数据输入。这就是为什么该模型适用于任何类型的顺序数据。

以文本数据为例,假设我们有句子“I wake up at 7 AM”,我们需要对每个单词进行输入。在常规前馈神经网络中,当我们达到“up”这个词时,模型已经忘记了“I”、“wake”和“up”这几个单词。然而,RNN会使用每个单词的输出,并将它们循环回来,以便模型不会遗忘。

在NLP领域,RNN经常用于许多文字应用,如文本分类和生成。它经常用于基于词级的应用,如词性标注、下一个词的生成等。

深入研究文本数据上的RNN,可以发现有许多类型的RNN。例如,下面的图片是”many-to-many”类型的。

比较自然语言处理技术:RNNs, Transformers, BERT 四海 第3张

从上图可以看出,每个步骤(RNN中的时间步)的输出按顺序逐步处理,每次迭代都会考虑到先前的信息。

NLP应用中另一种常用的RNN类型是编码器-解码器类型(Sequence-to-Sequence)。其结构如下图所示。

比较自然语言处理技术:RNNs, Transformers, BERT 四海 第4张

该结构引入了两个用于模型的部分。第一部分称为编码器,它接收数据序列并基于之创建新的表示。这个表示将在模型的第二部分——解码器中使用。有了这个结构,输入和输出的长度不一定需要相等。例如,语言翻译就是一个没有输入和输出长度相等的常见情况。

使用RNN处理自然语言数据的各种好处包括:

  1. RNN可用于处理没有长度限制的文本输入。
  2. 模型在所有时间步上共享相同的权重,使得神经网络可以在每个步骤中使用相同的参数。
  3. 具有过去输入的记忆使得RNN适用于任何顺序数据。

但是,它也有一些缺点:

  1. RNN对消失和爆炸梯度都很敏感。这是指梯度结果接近零值(消失),导致网络权重只更新了一小部分,或者梯度结果非常大(爆炸),将不切实际的巨大重要性分配给网络。
  2. 由于模型的顺序性质,训练时间较长。
  3. 短期记忆意味着模型在训练时间越长时会开始遗忘。为了缓解这个问题,有一种称为LSTM的RNN扩展。

 

变压器

 

变压器是一种自然语言处理(NLP)模型架构,旨在解决以前在RNN中遇到的序列到序列任务。如上所述,RNN在短期记忆方面存在问题。输入文本越长,模型遗忘信息的问题越突出。这就是注意机制可以帮助解决这个问题的地方。

注意机制是由Bahdanau et al. (2014)在论文中引入的,旨在解决长输入问题,特别是对于编码器-解码器类型的RNN。我不会详细解释注意机制。基本上,它是一个允许模型在输出预测时集中关注模型输入关键部分的层。例如,如果任务是翻译,输入词”钟”可能与印尼文中的”果酱”高度相关。

变压器模型是由Vaswani et al. (2017)介绍的。该架构受到编码器-解码器RNN的启发,专注于注意机制,不按顺序处理数据。整体变压器模型的结构如下图所示。

 比较自然语言处理技术:RNNs, Transformers, BERT 四海 第5张  

在上述结构中,变压器将数据向量序列编码为带有位置编码的词嵌入,并使用解码器将数据转换回原始形式。通过注意机制,编码可以根据输入进行重要性排序。

与其他模型相比,变压器提供了一些优势:

  1. 并行处理可以提高训练和推断速度。
  2. 能够处理更长的输入,对上下文的理解更好。

变压器模型仍然存在一些缺点:

  1. 计算处理和需求高。
  2. 由于长度限制,注意机制可能需要将文本分割。
  3. 如果分割处理不正确,上下文可能会丢失。

BERT

BERT,即双向变压器编码器表示,是由Devlin et al. (2019)开发的模型,包括两个步骤(预训练和微调)来创建模型。与之相比,BERT是一堆变压器编码器(BERT Base有12层,BERT Large有24层)。

BERT的整体模型发展可以在下图中展示。

 比较自然语言处理技术:RNNs, Transformers, BERT 四海 第6张  

预训练任务同时启动模型的训练,一旦完成,模型可以针对各种下游任务进行微调(问答、分类等)。

BERT之所以特别,是因为它是第一个使用文本数据预训练的无监督双向语言模型。BERT之前曾在整个维基百科和书籍语料库上进行预训练,包含超过30亿个单词。

BERT被认为是双向的,因为它不是按顺序顺序阅读数据输入(从左到右或相反),而是变压器编码器同时读取整个序列。

与定向模型不同,定向模型按顺序(从左到右或从右到左)阅读文本输入,变压器编码器同时读取整个单词序列。这就是为什么模型被认为是双向的,并且允许模型理解输入数据的整个上下文。

为了实现双向性,BERT使用了两种技术:

  1. 掩码语言模型(MLM)——单词掩码技术。该技术会掩盖输入单词的15%并尝试根据非掩盖的单词预测此掩盖的单词。
  2. 下一个句子预测(NSP)——BERT试图学习句子之间的关系。该模型将句子对作为数据输入,并试图预测后续句子是否存在于原始文档中。

使用BERT在NLP领域中具有几个优点,包括:

  1. BERT易于用于预训练各种NLP下游任务。
  2. 双向性使BERT更好地理解文本上下文。
  3. 它是一个受到社区支持的流行模型。

尽管如此,还存在一些缺点,包括:

  1. 某些下游任务微调需要较高的计算能力和较长的训练时间。
  2. BERT模型可能导致需要更大存储空间的大模型。
  3. 对于简单任务的性能与使用更简单模型没有太大差异,更适合用于复杂任务。

 

结论

 

NLP近年来变得更加突出,许多研究都致力于改进应用。在本文中,我们讨论了三种经常使用的NLP技术:

  1. RNN
  2. 变换器
  3. BERT

每种技术都有其优点和缺点,但总体而言,我们可以看到模型的发展越来越好。 Cornellius Yudha Wijaya是一位数据科学助理经理和数据作家。他在Allianz Indonesia全职工作时,喜欢通过社交媒体和写作媒体分享Python和数据技巧。

[Cornellius Yudha Wijaya](https://www.linkedin.com/in/cornellius-yudha-wijaya/)是一位数据科学助理经理和数据作家。他在Allianz Indonesia全职工作期间,喜欢通过社交媒体和写作媒体分享Python和数据技巧。

Leave a Reply

Your email address will not be published. Required fields are marked *