Transformer 模型:彻底改变自然语言处理
Transformer 模型是一种深度学习架构,彻底改变了自然语言处理 (NLP) 领域。它基于一种自注意力机制,使其能够处理文本数据中的远程依赖关系,使其非常适合语言翻译、摘要和问答等任务。
Transformer 模型由几个关键组件组成,它们协同工作以处理文本数据。在本文中,我们将重点关注其中的五个组件:分词器、嵌入、位置编码、Transformer 块和 softmax。
Tokenizer:将单词转换为标记
分词器是 Transformer 模型管道中的第一个组件。它将原始文本数据转换为标记,这些标记是单个单词或子单词的数字表示。标记化是 NLP 中的关键步骤,因为它允许我们使用数学运算来处理文本数据。
标记化:将单词变成标记
例如,如果句子是“Write a story”,那么对应的 4 个 token 将是 、、 和 <.>。
嵌入:将标记转换为数字(向量)
一旦文本数据被标记化,下一步就是将标记转换为可用作深度学习模型输入的数字向量。这是使用嵌入层完成的,该层将每个标记映射到连续空间中的高维向量。这些嵌入捕获标记的语义,并允许模型理解它们之间的关系。
在下面的嵌入中,樱桃的坐标是 [6,4],接近草莓 [5,4],但远离城堡 [1,2]。
例如,如果我们正在考虑的句子是“写一个故事”。标记是 、、 和 <.>,然后这些标记中的每一个都将被发送到一个长向量,我们将有四个向量。
通常嵌入将每个单词(标记)发送到一长串数字
位置编码:为文本中的单词添加顺序
句子中单词的顺序对于理解文本的含义很重要。为了保留此信息,Transformer 模型使用位置编码,为每个标记添加唯一的位置嵌入。这些嵌入提供了有关每个标记在序列中的相对位置的信息,使模型能够区分文本中的不同位置。
在下面的示例中,对应于单词“Write”、“a”、“story”和“.”的向量。成为携带有关其位置信息的修改向量,标记为“Write (1)”、“a (2)”、“story (3)”和“. (4)”。
位置编码为每个单词添加一个位置向量,以便跟踪单词的位置。
Transformer Block:猜下一个词
Transformer 块是 Transformer 模型的核心。它由两个主要的子块组成:注意力块和前馈块。这些模块协同工作,根据输入标记、嵌入和位置编码猜测序列中的下一个单词。
注意:为文本添加上下文
Transformer 模型中的注意力块负责为文本数据添加上下文。它通过关注输入序列中的所有标记并计算它们嵌入的加权和来实现这一点。这个加权和表示上下文向量,它捕获输入序列中最相关的信息。
在下面的句子中,如何区分 bank 的含义?
- 句子一:河岸。
- 句子 2:银行里的钱。
前馈:
是 transformer 神经网络中的一个块,它猜测下一个词。Transformer 模型中的前馈块将注意力块生成的上下文向量传递给一系列全连接层。这些层将非线性变换应用于上下文向量,允许模型对序列中的下一个单词进行预测。
Softmax:将分数转化为概率,以便对下一个单词进行采样
最后,softmax 函数用于将前馈块的输出转换为下一个可能单词的词汇表的概率分布。然后,该模型可以从该分布中采样以生成序列中最有可能的下一个单词。
综上所述
Transformer 模型是一种强大的深度学习架构,彻底改变了自然语言处理领域。它处理文本数据中的远程依赖关系的能力使其非常适合各种 NLP 任务。分词器、嵌入、位置编码、Transformer 模块、注意力、前馈和 softmax 组件协同工作,使模型能够非常准确地猜测文本序列中的下一个单词。随着深度学习研究的不断进步,Transformer 模型有望在未来几年保持在 NLP 的前沿。