Google BERT入门(5)Transformer通过位置编码学习位置

文章目录

  • [6. Google BERT入门(5)Transformer通过位置编码学习位置](#6. Google BERT入门(5)Transformer通过位置编码学习位置)

6. Google BERT入门(5)Transformer通过位置编码学习位置

考虑输入句子"I love learning"。在RNN(Recurrent Neural Network,递归神经网络)中,我们逐词将句子输入网络。也就是说,首先输入单词"I",然后输入单词"love",等等。我们逐词输入句子,以便网络完全理解句子。但是,在transformer网络中,我们不遵循递归机制。所以,我们不是逐词输入句子,而是将句子中的所有单词并行输入网络。并行输入单词有助于减少训练时间,也有助于学习长期依赖关系。

然而,问题是由于我们并行输入单词到transformer中,如果单词顺序没有保留,它将如何理解句子的含义?要理解句子,单词顺序(句子中单词的位置)是重要的,对吧?是的,单词顺序非常重要,因为它有助于理解句子中每个单词的位置,这反过来又有助于理解句子的含义。

所以,我们应该向transformer提供一些关于单词顺序的信息,以便它能够理解句子。我们怎样才能做到这一点?现在,让我们更详细地探讨这个问题。

对于给定的句子"I love learning",首先,我们获取句子中每个单词的嵌入向量。设嵌入维度为dmodel。假设嵌入维度dmodel是4。那么,我们的输入矩阵维度将是[句子长度 x 嵌入维度] = [3 x 4]。

我们使用输入矩阵(嵌入矩阵)表示我们的输入句子"I love learning"。设输入矩阵如下:

图1.25 -- 输入矩阵

现在,如果我们直接将前面的输入矩阵传递给transformer,它无法理解单词顺序。所以,我们不是直接将输入矩阵喂给transformer,而是需要添加一些信息来指示单词顺序(单词的位置),以便我们的网络能够理解句子的含义。为此,我们引入了一种称为位置编码的技术。位置编码,顾名思义,是一种指示句子中单词位置(单词顺序)的编码。

位置编码矩阵P的维度与输入矩阵X相同。现在,在直接将输入矩阵(嵌入矩阵)喂给transformer之前,我们包含了位置编码。因此,我们简单地将位置编码矩阵加到嵌入矩阵上,然后作为输入喂给网络。现在,我们的输入矩阵不仅包含单词的嵌入,还包含句子中单词的位置:

图1.26 -- 将输入矩阵和位置编码矩阵相加

现在,我们很自然地要提出这样一个问题:位置编码矩阵究竟是如何计算的?transformer论文《Attention Is All You Need》的作者使用了正弦函数来计算位置编码,如下所示:

在这两个方程中,pos表示句子中单词的位置,而i表示嵌入的位置。让我们通过一个例子来理解这两个方程。使用前面的方程,我们可以写出以下内容:

图1.27 -- 计算位置编码矩阵

从前面的矩阵中,我们可以观察到,在位置编码中,当i是偶数时我们使用正弦函数,当i是奇数时我们使用余弦函数。简化前面的矩阵,我们可以写出以下内容:

图1.28 -- 计算位置编码矩阵

我们知道,在我们的输入句子中,单词"I"位于第0位,love位于第1位,learning位于第2位。代入值,我们可以写出以下内容:

图1.29 -- 计算位置编码矩阵

因此,我们的最终位置编码矩阵 是如下给出的:

图1.30 -- 位置编码矩阵

计算位置编码后,我们简单地对嵌入矩阵进行逐元素加法,并将修改后的输入矩阵喂给编码器。

现在,让我们重新审视我们的编码器架构。单个编码器块如下图所示。我们可以观察到,在直接将输入喂给编码器之前,首先我们获取输入嵌入(嵌入矩阵),然后我们将其与位置编码相加,然后将其作为输入喂给编码器:

图1.31 -- 单个编码器块

至此,我们了解了位置编码器是如何工作的;在上一节中,我们还学习了多头注意力子层是如何工作的。在下一节中,我们将学习编码器中的前馈网络子层是如何工作的。


感谢您的阅读,欢迎关注!


相关推荐
童话名剑15 分钟前
目标检测(吴恩达深度学习笔记)
人工智能·目标检测·滑动窗口·目标定位·yolo算法·特征点检测
木卫四科技23 分钟前
【木卫四 CES 2026】观察:融合智能体与联邦数据湖的安全数据运营成为趋势
人工智能·安全·汽车
珠海西格电力6 小时前
零碳园区有哪些政策支持?
大数据·数据库·人工智能·物联网·能源
じ☆冷颜〃6 小时前
黎曼几何驱动的算法与系统设计:理论、实践与跨领域应用
笔记·python·深度学习·网络协议·算法·机器学习
启途AI6 小时前
2026免费好用的AIPPT工具榜:智能演示文稿制作新纪元
人工智能·powerpoint·ppt
TH_16 小时前
35、AI自动化技术与职业变革探讨
运维·人工智能·自动化
楚来客6 小时前
AI基础概念之八:Transformer算法通俗解析
人工智能·算法·transformer
风送雨6 小时前
FastMCP 2.0 服务端开发教学文档(下)
服务器·前端·网络·人工智能·python·ai
效率客栈老秦7 小时前
Python Trae提示词开发实战(8):数据采集与清洗一体化方案让效率提升10倍
人工智能·python·ai·提示词·trae
小和尚同志7 小时前
虽然 V0 很强大,但是ScreenshotToCode 依旧有市场
人工智能·aigc