【Transformer开山之作】Attention is all you need原文解读

这篇具有很好参考价值的文章主要介绍了【Transformer开山之作】Attention is all you need原文解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Attention Is All You Need

Transformer原文解读与细节复现

导读

在Transformer出现以前,深度学习的基础主流模型可分为卷积神经网络CNN、循环神经网络RNN、图对抗神经网络GAN。而Transformer的横空出世,吸引了越来越多的研究者的关注:Transformer不仅在NLP领域取得了耀眼的成绩,近年来甚至一度屠榜CV领域的各大比赛,热度超前。所以,基于之前对Transformer的研究与理解,更基于对新技术的好奇与渴求,接下来的几篇文章我会从最经典的Transformer结构出发,沿着NLP和CV两大主线,为大家讲解几篇影响力巨大的paper。

前言

Transformer是google的研究团队在2017年发表的Attention Is All You Need中使用的模型,经过这些年的大量的工业使用和论文验证,在深度学习领域已经占据重要地位。接下来我会顺着论文中的逻辑,来介绍、解释Transformer的输入输出和网络结构。

原文链接:Attention Is All You Need

Abstract

现在主流的序列转录模型主要基于是复杂的循环结构的RNN和CNN架构,通过其中的编码器Encoder解码器Decoder来实现。而本文提出的Transformer完全摒弃了之前的循环和卷积操作,完全基于注意力机制,拥有更强的并行能力,训练效率也得到较高提升。

Intro

之前提到过,在Transformer提出以前,主流的NLP模型包括RNN、LSTM、GRU等,这些模型是有以下缺点:

  • 难以并行
  • 时序中过早的信息容易被丢弃
  • 内存开销大

主要原因如下:由于这些网络都是由前往后一步步计算的,当前的状态不仅依赖当前的输入,也依赖于前一个状态的输出。即对于网络中的第个t状态,与前t-1个状态都有关,使得网络必须一步一步计算;当较为重要的信息在较早的时序中进入网络时,多次传播过程中可能保留很少甚至被丢弃;从另一角度来考虑,即使重要的信息没有被丢弃,而是随着网络继续传递,那么势必会造成内存的冗余,导致开销过大。 其网络流程图如下图所示。

【Transformer开山之作】Attention is all you need原文解读

所以,作者团队因势利导,引出了本文纯attention、高并行、高效率的Transformer网络结构。原文中是这样说的:

In this work we propose the Transformer, a model architecture eschewing recurrence and instead relying entirely on an attention mechanism to draw global dependencies between input and output.

Related Work

multi-head

在CNN中,我们会使用多个channel来表达不同的特征模式,Transformer的多头注意力与多通道有相类似的地方,就是通过不同的head抽取数据的不同特征模式。

self-attention

自注意,或者说内部注意,是一种将单个序列的不同位置联系起来以计算序列的表示形式的注意机制。自注意力机制在阅读理解、抽象摘要、文本蕴涵和学习任务独立的句子表征等任务中都得到了成功的应用,具体的内部细节在后续章节中介绍。

Model

Transformer的模型分为encoder和decoder两部分,即编码器和解码器两部分。对于原始输入(x1,x2,…,xn),编码器将其转化为机器可理解的向量(z1,z2,…,zn),解码器将编码器的输出作为输入,进而生成最终的解码结果(y1,y2,…,yn)。其模型结构如下图所示:
【Transformer开山之作】Attention is all you need原文解读

输入

【Transformer开山之作】Attention is all you need原文解读
首先,我们来看看编码器与解码器的输入部分。
Transformer 中单词的输入表示 x由单词 Embedding位置 Embedding (Positional Encoding) 相加得到。其中,单词的 Embedding 有很多种方式可以获取,例如可以采用 Word2Vec、Glove 等算法预训练得到,也可以在 Transformer 中训练得到;位置 Embedding 表示单词出现在句子中的位置,因为 Transformer 不采用 RNN 的结构,而是使用全局信息,不能利用单词的顺序信息,而这部分信息对于 NLP 来说非常重要。所以 Transformer 中使用位置 Embedding 保存单词在序列中的相对或绝对位置。位置 Embedding 用 PE表示,PE 的维度与单词 Embedding 是一样的。PE 可以通过训练得到,也可以使用某种公式计算得到。在 Transformer 中采用了后者,计算公式如下:
【Transformer开山之作】Attention is all you need原文解读
其中,pos 表示单词在句子中的位置,d 表示 PE的维度 (与词 Embedding 一样),2i 表示偶数的维度,2i+1 表示奇数维度 (即 2i≤d, 2i+1≤d)。使用这种公式计算 PE 有以下的好处:

  • 使 PE 能够适应比训练集里面所有句子更长的句子,假设训练集里面最长的句子是有 20 个单词,突然来了一个长度为 21 的句子,则使用公式计算的方法可以计算出第 21 位的 Embedding。
  • 可以让模型容易地计算出相对位置,对于固定长度的间距 k,PE(pos+k) 可以用 PE(pos) 计算得到。因为 Sin(A+B) = Sin(A)Cos(B) + Cos(A)Sin(B), Cos(A+B) = Cos(A)Cos(B) - Sin(A)Sin(B)。

Multi-attention(self attention)

结构

【Transformer开山之作】Attention is all you need原文解读
上图是 Self-Attention 的结构,在计算的时候需要用到矩阵Q(查询),K(键值),V(值)。在实际中,Self-Attention 接收的是输入(单词的表示向量x组成的矩阵X) 或者上一个 Encoder block 的输出。而Q,K,V正是通过 Self-Attention 的输入进行线性变换得到的。

Q, K, V 的计算

Self-Attention 的输入用矩阵X进行表示,则可以使用线性变阵矩阵WQ,WK,WV计算得到Q,K,V。计算如下图所示,注意 X, Q, K, V 的每一行都表示一个单词。
【Transformer开山之作】Attention is all you need原文解读

Self-Attention 的输出

得到矩阵 Q, K, V之后就可以计算出 Self-Attention 的输出了,计算的公式如下:
【Transformer开山之作】Attention is all you need原文解读
公式中计算矩阵Q和K每一行向量的内积,为了防止内积过大,因此除以 dk的平方根。Q乘以K的转置后,得到的矩阵行列数都为 n,n 为句子单词数,这个矩阵可以表示单词之间的 attention 强度。下图为Q乘以 KT ,1234 表示的是句子中的单词。
【Transformer开山之作】Attention is all you need原文解读
得到[公式] 之后,使用 Softmax 计算每一个单词对于其他单词的 attention 系数,公式中的 Softmax 是对矩阵的每一行进行 Softmax,即每一行的和都变为 1.
【Transformer开山之作】Attention is all you need原文解读
得到 Softmax 矩阵之后可以和V相乘,得到最终的输出Z。
【Transformer开山之作】Attention is all you need原文解读

Multi-Head Attention

在上一步,我们已经知道怎么通过 Self-Attention 计算得到输出矩阵 Z,而 Multi-Head Attention 是由多个 Self-Attention 组合形成的,下图是论文中 Multi-Head Attention 的结构图。
【Transformer开山之作】Attention is all you need原文解读
从上图可以看到 Multi-Head Attention 包含多个 Self-Attention 层,首先将输入X分别传递到 h 个不同的 Self-Attention 中,计算得到 h 个输出矩阵Z。下图是 h=8 时候的情况,此时会得到 8 个输出矩阵Z。

【Transformer开山之作】Attention is all you need原文解读文章来源地址https://www.toymoban.com/news/detail-401242.html

到了这里,关于【Transformer开山之作】Attention is all you need原文解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 翻译: 详细图解Transformer多头自注意力机制 Attention Is All You Need

    The Transformer——一个使用注意力来提高这些模型的训练速度的模型。Transformer 在特定任务中的表现优于谷歌神经机器翻译模型。然而,最大的好处来自于 The Transformer 如何使自己适合并行化。事实上,Google Cloud 建议使用 The Transformer 作为参考模型来使用他们的Cloud TPU产品。所

    2023年04月08日
    浏览(50)
  • 小周带你读论文-2之“草履虫都能看懂的Transformer老活儿新整“Attention is all you need(2)

    书接前文:小周带你读论文-2之\\\"草履虫都能看懂的Transformer老活儿新整\\\"Attention is all you need(1) (qq.com)       上文书说到为什么我们要用casual-decoder架构,把Transformer的左边给省略了,于是得到下图这样的架构       上图是GPT-1的模型结构,那么casual-decoder和原始Transformer除了没

    2024年01月21日
    浏览(46)
  • Attention Is All You Need

    人生如茶,静心以对。时光如水,沉淀方澈。  论文: Attention Is All You Need Github: GitHub - tensorflow/tensor2tensor: Library of deep learning models and datasets designed to make deep learning more accessible and accelerate ML research. 打破传统基于cnn,lstm等的序列翻译模型,论文提出了一个新的网络结构Transf

    2023年04月09日
    浏览(44)
  • 论文阅读:Attention is all you need

    【最近课堂上Transformer之前的DL基础知识储备差不多了,但学校里一般讲到Transformer课程也接近了尾声;之前参与的一些科研打杂训练了我阅读论文的能力和阅读源码的能力,也让我有能力有兴趣对最最源头的论文一探究竟;我最近也想按照论文梳理一下LLM是如何一路发展而来

    2024年01月18日
    浏览(46)
  • 【论文阅读笔记】Attention Is All You Need

      这是17年的老论文了,Transformer的出处,刚发布时的应用场景是文字翻译。BLUE是机器翻译任务中常用的一个衡量标准。   在此论文之前,序列翻译的主导模型是RNN或者使用编解码器结构的CNN。本文提出的Transformer结构不需要使用循环和卷积结构,是完全基于注意力机制

    2024年04月13日
    浏览(41)
  • 论文阅读 Attention is all u need - transformer

    提出一个仅需要self attention + linear组合成encoder+decoder的模型架构 2.2.1 对比seq2seq,RNN Self Attention 输入token转为特征输入 shape [n(序列长度), D(特征维度)] 输入 进入attention模块 输出 shape [n(序列长度), D1(特征维度)] 此时每个D1被N个D做了基于attention weight的加权求和 进入MLP 输出 sha

    2024年02月01日
    浏览(39)
  • LLM架构自注意力机制Transformers architecture Attention is all you need

    使用Transformers架构构建大型语言模型显著提高了自然语言任务的性能,超过了之前的RNNs,并导致了再生能力的爆炸。 Transformers架构的力量在于其学习句子中所有单词的相关性和上下文的能力。不仅仅是您在这里看到的,与它的邻居每个词相邻,而是与句子中的每个其他词。

    2024年02月12日
    浏览(40)
  • Attention Is All Your Need论文笔记

    提出了一个新的简单网络架构——transformer,仅仅是基于注意力机制,完全免去递推和卷积,使得神经网络训练地速度极大地提高。 We propose a new simple network architecture, the Transformer, based solely on attention mechanisms, dispensing with recurrence and convolutions entirely. 用多头注意力取代推导层

    2024年02月19日
    浏览(69)
  • Vector Search with OpenAI Embeddings: Lucene Is All You Need

    本文是LLM系列文章,针对《Vector Search with OpenAI Embeddings: Lucene Is All You Need》的翻译。 我们在流行的MS MARCO文章排名测试集上使用Lucene提供了一个可复制的、端到端的OpenAI嵌入向量搜索演示。我们工作的主要目标是挑战主流的说法,即专用向量存储是利用深度神经网络应用于搜

    2024年02月10日
    浏览(44)
  • 【深度学习】语义分割:论文阅读(NeurIPS 2021)MaskFormer: per-pixel classification is not all you need

    论文:Per-Pixel Classification is Not All You Need for Semantic Segmentation / MaskFormer 代码:代码 官方-代码 笔记: 作者笔记说明 【论文笔记】MaskFormer: Per-Pixel Classification is Not All You Need for Semantic Segmentation 总结思路清晰-简洁 【MaskFormer】Per-Pixel Classification is Not All You Needfor Semantic Segmenta

    2024年02月04日
    浏览(83)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包