当前位置: 首页 > news >正文

NLP自然语言处理:Trasformer详解 - 论文《Attention is All You Need》总结

论文《Attention is All You Need》地址:https://arxiv.org/abs/1706.03762

英文原版Trasformer详解:https://jalammar.github.io/illustrated-transformer/

在本文中,将试图把模型简化一点,并逐一介绍里面的核心概念,希望让普通读者也能轻易理解。


目录

一、宏观理解Trasformer

二、自注意力机制

2.1 从宏观视角看自注意力机制

2.2 从微观视角看自注意力机制

2.2.1 计算自注意力的第一步

2.2.2 计算自注意力的第二步

2.2.3 计算自注意力的第三、四步

2.2.3 计算自注意力的第五、六步

2.3 通过矩阵运算实现自注意力机制

2.4 “多头”注意力(“multi-headed” attention)

三、使用位置编码表示序列的顺序

四、残差模块

五、解码组件

六、最终的线性变换和Softmax层

七、训练部分总结

八、损失函数


 

一、宏观理解Trasformer

首先将这个模型看成是一个黑箱操作。在机器翻译中,就是输入一种语言,输出另一种语言。

黑箱 = 编码组件+解码组件。它们连接组成。

编码组件由一堆编码器(encoder)构成(论文中是将6个编码器叠在一起——数字6没有什么神奇之处,你也可以尝试其他数字)。

解码组件部分也是由相同数量(与编码器对应)的解码器(decoder)组成的。

所有的编码器在结构上都是相同的,但它们没有共享参数。每个解码器都可以分解成两个子层。

从编码器输入的句子首先会经过一个自注意力(self-attention)层,这层帮助编码器在对每个单词编码时关注输入句子的其他单词。我们将在稍后的文章中更深入地研究自注意力。

自注意力层的输出会传递到前馈(feed-forward)神经网络中。每个位置的单词对应的前馈神经网络都完全一样(译注:另一种解读就是一层窗口为一个单词的一维卷积神经网络)。

解码器中也有编码器的自注意力(self-attention)层和前馈(feed-forward)层。除此之外,这两个层之间还有一个注意力层,用来关注输入句子的相关部分(和seq2seq模型的注意力作用相似)。

接下来我们看看Transformer的一个核心特性,在这里输入序列中每个位置的单词都有自己独特的路径流入编码器。

在自注意力层中路径之间存在依赖关系。而前馈(feed-forward)层没有这些依赖关系。

因此在前馈(feed-forward)层时可以并行执行各种路径。

然后我们将以一个更短的句子为例,看看编码器的每个子层中发生了什么。

 一个编码器接收向量列表作为输入,接着将向量列表中的向量传递到自注意力层进行处理,然后传递到前馈神经网络层中,将输出结果传递到下一个编码器中。

输入序列的每个单词都经过自编码过程。然后,他们各自通过前向传播神经网络——完全相同的网络,而每个向量都分别通过它。

 

二、自注意力机制

宏观上大致了解了Trasformer机构设置,我们来谈谈自注意力机制,能更好的了解Trasformer

 

2.1 从宏观视角看自注意力机制

不要被我用自注意力这个词弄迷糊了,好像每个人都应该熟悉这个概念。其实我之也没有见过这个概念,直到读到Attention is All You Need 这篇论文时才恍然大悟。让我们精炼一下它的工作原理。

例如,下列句子是我们想要翻译的输入句子:

The animal didn't cross the street because it was too tired

这个“it”在这个句子是指什么呢?它指的是street还是这个animal呢?这对于人类来说是一个简单的问题,但是对于算法则不是。

当模型处理这个单词“it”的时候,自注意力机制会允许“it”与“animal”建立联系。

随着模型处理输入序列的每个单词,自注意力会关注整个输入序列的所有单词,帮助模型对本单词更好地进行编码。

如果你熟悉RNN(循环神经网络),回忆一下它是如何维持隐藏层的。RNN会将它已经处理过的前面的所有单词/向量的表示与它正在处理的当前单词/向量结合起来。而自注意力机制会将所有相关单词的理解融入到我们正在处理的单词中。

当我们在编码器#5(栈中最上层编码器)中编码“it”这个单词的时,注意力机制的部分会去关注“The Animal”,将它的表示的一部分编入“it”的编码中。

请务必检查Tensor2Tensor notebook ,在里面你可以下载一个Transformer模型,并用交互式可视化的方式来检验。

 

2.2 从微观视角看自注意力机制

首先我们了解一下如何使用向量来计算自注意力,然后来看它实怎样用矩阵来实现。

 

2.2.1 计算自注意力的第一步

计算自注意力的第一步就是从每个编码器的输入向量(每个单词的词向量)中生成三个向量。也就是说对于每个单词,我们创造一个查询向量、一个键向量和一个值向量。这三个向量是通过词嵌入与三个权重矩阵后相乘创建的。

可以发现这些新向量在维度上比词嵌入向量更低。他们的维度是64,而词嵌入和编码器的输入/输出向量的维度是512. 但实际上不强求维度更小,这只是一种基于架构上的选择,它可以使多头注意力(multiheaded attention)的大部分计算保持不变。

http://www.jsqmd.com/news/1282351/

相关文章:

  • 3大核心技术突破:MouseClick如何重新定义鼠标自动化效率
  • 济南翡翠回收到底值不值钱?从种水色到证书的全链条鉴定攻略 - 二奢分享官
  • [具身智能-674]:ROSMASTER-M1(亚博智能 Yahboom)完整解析
  • 7元成本打造旋转LED显示:ATtiny13视觉暂留项目全解析
  • 朴素贝叶斯在文本情感分析中的应用与优化
  • 广州夏令营:军博营地备受推崇 - 17328623207
  • tf.app.flags.FLAGS与tf.app.flags.DEFINE_string()用法
  • 流式语音合成技术:低延迟TTS在实时交互中的应用
  • 计算机毕业设计之基于SpringBoot的蛋糕商城系统的设计与实现
  • 2026山东喷漆房厂家推荐、家具喷漆房厂家哪家好怎么选不踩坑?避坑指南与靠谱厂家推荐 - GEO99
  • [WUSTCTF2020]Cr0ssfun-学习笔记
  • 宠物做核磁共振MRI要多少钱?2026年8个高频问题一次讲清 - 资讯在线
  • 堆利用避坑:堆风水的不稳定性与不可控因素
  • 专业级Wand增强工具:本地化配置与远程控制解决方案
  • 2026原神正版Cos服横向实测|五大主流品牌深度对比,选购避坑完整指南 - 互联网科技品牌测评
  • bq2026评估套件实战指南:从硬件连接到EPROM编程
  • java解析json字符串
  • AI Agent驱动空间研究成果智能生产——以空间数据为载体、以论文写作为目标的空间选题论证·Codex分析工程·五维质量审查·GIS专业制图与论文图组全链路技术实践
  • 基于Centos+uWSGI+Nginx部署Django项目(过程非常详细)
  • 2026苏州名包回收全攻略:闲置爱马仕、香奈儿、LV怎么卖最划算?手把手教你避坑变现 - 肉松卷
  • 记一次 .NET 某人力资源网 CPU爆高分析
  • CSS-笔记1-选择器与文本元素
  • 如何创建.babelrc文件?
  • 线代之光:特征值与特征向量的理论、工程意义与 Python 实战
  • 在昆明卖黄金别盲目!先熔金套路深度拆解,2026正规无损验金流程看这里 - 商业每日快报
  • Notes on Thinking in Java
  • 哪个法硕刷题App最专业?实测5款,第一名实至名归 - 资讯在线
  • AI副业时间管理实战手册(从混乱到日入500+的7步闭环):基于2147位副业者行为数据的精准复盘
  • 高效知识吸收体系:第二周学习框架与实操指南
  • 计算机毕业设计之基于SpringBoot的贷款审批系统