比较NLP技术:RNN,Transformer,BERT

2023年10月12日 由 camellia 发表 411 0

RNN、Transformer和BERT是受欢迎的自然语言处理(NLP)技术,在序列建模、并行化和下游任务的预训练方面存在权衡。


2

自然语言处理(NLP)是人工智能领域的一个分支,用于使机器具备理解文本数据的能力。NLP研究已经存在很长时间,但是随着大数据和更高计算处理能力的引入,它变得越来越显著。


随着NLP领域的发展壮大,许多研究人员尝试提高机器对文本数据的理解能力。通过不断进展,许多技术被提出并应用于NLP领域。


本文将比较NLP领域中用于处理文本数据的各种技术。本文将重点讨论RNN、Transformer和BERT,因为它们经常在研究中使用。


RNN


RNN是在1980年开发的,但直到最近才在NLP领域引起关注。RNN是神经网络家族中的一种特殊类型,用于处理顺序数据或无法独立于彼此的数据。顺序数据的示例包括时间序列、音频或文本句子数据,基本上是任何具有有意义顺序的数据。


与常规的前馈神经网络不同,RNN以不同的方式处理信息。在正常的前馈神经网络中,信息会按照层次结构进行处理。然而,RNN在信息输入时使用循环循环。为了理解这些差异,让我们看一下下面的图像。


2.1

从上面的图像中可以看出,RNN模型在信息处理过程中实现了一个循环。RNN在处理信息时会考虑当前和以前的数据输入。这就是为什么该模型适用于任何类型的顺序数据。


如果我们以文本数据为例,想象一下我们有一个句子“I wake up at 7 AM”,然后我们将单词作为输入。在前馈神经网络中,当我们到达单词“up”时,模型已经忘记了词汇“I”、“wake”和“up”。然而,RNN会使用每个单词的输出,并将它们循环回来,以便模型不会忘记。


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


深入研究文本数据上的RNN,有许多类型的RNN。例如,下面的图像是多对多类型的RNN。

2.2

从上面的图像中可以看出,每个步骤(时间步长)的输出一次处理一步,并且每次迭代总是考虑以前的信息。


在许多NLP应用中使用的另一种RNN类型是编码器-解码器类型(序列到序列)。该结构在下面的图像中显示。


2.3

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


使用RNN处理自然语言数据有多种优点,包括:


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


但是,也有几个缺点:


  1. RNN易受到梯度消失和梯度爆炸的影响。梯度消失指的是梯度接近零,导致网络权重仅在一小部分上进行更新,而梯度爆炸则表示梯度结果非常大,给网络赋予了不切实际的重要性。
  2. 长时间的训练由于模型的顺序性质而导致。
  3. 短时记忆意味着模型在训练时间越长,就会开始遗忘。有一个RNN的扩展称为LSTM,可以缓解这个问题。


Transformer


Transformer是一种NLP模型架构,旨在解决RNN中遇到的序列到序列任务。如上所述,RNN具有短时记忆问题。输入越长,模型忘记信息的问题就越突出。这就是注意机制可以帮助解决该问题的地方。


注意机制在Bahdanau等人(2014)的论文中引入,用于解决长输入问题,特别是对于RNN的编码器-解码器类型。我不会详细解释注意机制。基本上,它是一层允许模型在输出预测时专注于模型输入中的关键部分的层次。例如,如果任务是翻译,并且单词输入为“Clock”,则它将与“Jam”在印度尼西亚语中高度相关。


Transformer模型由Vaswani等人(2017)提出。该架构受到编码器-解码器RNN的启发,并以注意机制为基础构建,并且不按顺序处理数据。整体Transformer模型的结构如下图所示。


3

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


与其他模型相比,Transformer提供了一些优势,包括:


  1. 并行化处理增加了训练和推断速度。
  2. 能够处理更长的输入,从而更好地理解上下文。
  3. 相较于其他模型,更容易使用。


然而,Transformer模型仍存在一些缺点:


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


BERT


BERT是由Devlin等人(2019)开发的一个模型,包括两个步骤(预训练和微调)来创建该模型。与之对比,BERT是一堆变换器编码器(BERT Base有12层,BERT Large有24层)。


BERT的整体模型开发如下图所示。


4

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


BERT的独特之处在于它是第一个在文本数据上进行预训练的无监督双向语言模型。BERT先在整个维基百科和书籍语料库上进行预训练,包括超过30亿个单词。


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


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


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


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


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


然而,BERT仍然存在一些缺点,包括:


  1. 对于某些下游任务进行微调时,需要高计算性能和长的训练时间。
  2. BERT模型可能会导致大型模型,需要更大的存储空间。
  3. 对于简单任务,与使用更简单模型相比,性能并没有太大的区别。


结论


NLP最近变得更加突出,许多研究都集中在改进应用程序上。每种技术都有其优点和缺点,但总的来说,我们可以看到模型以更好的方式发展。


文章来源:https://www.kdnuggets.com/comparing-natural-language-processing-techniques-rnns-transformers-bert
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消