transformer机制

news/2024/7/19 12:31:28 标签: 深度学习, transformer

transformer___0">transformer机制 – 潘登同学的深度学习笔记

文章目录

  • 应用了残差思想的self-Attention Encoder
    • 加入位置信息Position Embedding
  • transformer模型详解
    • Decoder的第一层self-Attention
    • Decoder的第二层self-Attention
      • 理解为啥第二层不需要做mask

应用了残差思想的self-Attention Encoder

在这里插入图片描述

简单来说就是每一层的输入都会加到每一层的结果上去,然后做Layer Normalization

加入位置信息Position Embedding

注意到前面说的Self-attention是没有位置信息的,对于相同输出 b 1 , b 3 b_1,b_3 b1,b3来说,输入句子我爱你你爱我, 得到的 b 1 , b 3 b_1,b_3 b1,b3是相同的,因为都是然后其他两个字都是, 根据上面计算图计算出来的都是相等的,所以Transformer 模型用到Position Embedding; 这是因为Transformer 摒弃了之前机器翻译任务中常用的 RNN 结构,使得并行性更好。RNN的这种结构天生考虑了词语的先后顺序关系。当 Transformer 模型不使用 RNN 结构时,它就要想办法通过其它机制把位置信息传输到 Encoding 的部分。所以在该模型中,每个时刻的输入是 Word Embedding+Position Embedding

在原论文中是拿了一个预训练的Position Embedding,直接与Embedding层进行加和,得到Encoder的输入,其实也可以自己训练,原理就是在词向量加上位置信息的向量,如下图所示

在这里插入图片描述

对输入 x l ∗ 1 x_{l*1} xl1拼接上一个位置向量,扔到Embedding层中去等同于,用一个位置矩阵 W K ∗ P W_{K*P} WKP与位置向量 P P ∗ 1 P_{P*1} PP1相乘得到的 e K ∗ 1 e_{K*1} eK1 加上 词嵌入矩阵 W K l W_{K_l} WKl与词向量 x l ∗ 1 x_{l*1} xl1相乘得到的 α K ∗ 1 \alpha_{K*1} αK1;

在这里插入图片描述

transformer_25">transformer模型详解

整体模型

模型内部

Encoder部分我们已经研究的比较透彻了,现在重点关注Decoder层,一个Decoder有两层,一层是self-Attention,另一层也是Self-Attention,但是这两者略有不同

Decoder的第一层self-Attention

Decoder block 的第一个 Multi-Head Attention 采用了 Masked 操作,因为在翻译的过程中是顺序翻译的,即翻译完第 i 个单词,才可以翻译第 i+1 个单词。通过 Masked 操作可以防止第 i 个单词知道 i+1 个单词之后的信息。

算法步骤(引用自Transformer模型详解)

  • Decoder 的输入矩阵和 Mask 矩阵,输入矩阵包含 “ < B e g i n > <Begin> <Begin> I have a cat” (0, 1, 2, 3, 4) 五个单词的表示向量,Mask 是一个 5×5 的矩阵。在 Mask 可以发现单词 0 只能使用单词 0 的信息,而单词 1 可以使用单词 0, 1 的信息,即只能使用之前的信息。
  • 和之前的 Self-Attention 一样,通过输入矩阵X计算得到Q,K,V矩阵。然后计算Q和 K T K^T KT 的乘积 Q K T QK^T QKT
  • 在得到 Q K T QK^T QKT 之后需要进行 Softmax,计算 attention score,我们在 Softmax 之前需要使用Mask矩阵遮挡住每一个单词之后的信息,遮挡操作如下

    得到 Mask Q K T QK^T QKT 之后在 Mask Q K T QK^T QKT上进行 Softmax,每一行的和都为 1。但是单词 0 在单词 1, 2, 3, 4 上的 attention score( b 1 , 1 , … , b 1 , 4 b_{1,1},\ldots,b_{1,4} b1,1,,b1,4) 都为 0。
  • 使用 Mask Q K T QK^T QKT与矩阵 V相乘,得到输出 Z,则单词 1 的输出向量 Z 1 Z_1 Z1 是只包含单词 1 信息的。
  • 通过上述步骤就可以得到一个 Mask Self-Attention 的输出矩阵 Z i Z_i Zi ,然后和 Encoder 类似,通过 Multi-Head Attention 拼接多个输出 Z i Z_i Zi 然后计算得到第一个 Multi-Head Attention 的输出Z,Z与输入X维度一样

Decoder的第二层self-Attention

第二层self-Attention与Encoder中self-Attention主要的区别在于其中 Self-Attention 的 K, V矩阵不是使用 上一个 Decoder block 的输出计算的,而是使用 Encoder 的编码信息矩阵 C 计算的。

简单来说,就是输入self-Attention的有两个向量,一个向量是从Encoder的output拿过来与矩阵 W K , W V W^K,W^V WK,WV相乘,得到 K, V ;另一个向量是从第一层self-Attention中拿过来,与矩阵 W Q W^Q WQ相乘得到Q矩阵;然后后续的计算方法与Encoder部分一样

tention中拿过来,与矩阵 W Q W^Q WQ相乘得到Q矩阵;然后后续的计算方法与Encoder部分一样

理解为啥第二层不需要做mask

回想Self-Attention,是用Q分别与K內积,得到相似度权重,最后与V相乘得到上下文向量;这点很关键,因为第一层mask输出结果当做Q,Encoder的输出当做KV,Q只要一个,而KV有很多,这满足了self-attention的要求(我就是搞反Q和V了, 死活也想不明白, 为什么第二层不做mask)

在这里插入图片描述


http://www.niftyadmin.cn/n/740208.html

相关文章

命名实体识别BiLSTM-CRF

命名实体识别BiLSTM-CRF – 潘登同学的NLP笔记 文章目录命名实体识别BiLSTM-CRF -- 潘登同学的NLP笔记标注策略早期方法基于统计学习的方法深度学习方法BiLSTM-CRF如果不加CRF层CRF 层可以从训练数据学习限制CRF层Emission score(发射分数)Transition score(转移分数)Loss函数训…

“流量”什么可以吃吗?怎么吃好流量,赚点零花钱

什么是流量了&#xff0c;是联通移动的流量吗 &#xff1f;流量真的可以吃吗&#xff1f;小编今天要介绍的是一种读者观看的那种流量&#xff0c;肯定有人会说引流量那还不简单吗&#xff1f;今天小编要介绍的就不是那么简单的&#xff0c;流量其实也分很多种&#xff0c;做的方…

什么叫做自媒体,什么是流量,该如何引导流量了

第一篇小编先来和大家介绍一下什么自媒体&#xff0c;要怎么要做自媒体&#xff0c;自媒体怎么样吸引流量&#xff0c;怎么样用这些流量变现&#xff0c;先来看看什么叫自媒体&#xff1a;在自媒体时代&#xff0c;各种不同的声音来自四面八方&#xff0c;"主流媒体"…

Word2Vec进阶 - ELMO

Word2Vec进阶 - ELMO – 潘登同学的NLP笔记 文章目录Word2Vec进阶 - ELMO -- 潘登同学的NLP笔记ELMO原理整体架构Char Encoder LayerBiLSTMELMO词向量实验结果总结ELMO ELMo出自Allen研究所在NAACL2018会议上发表的一篇论文《Deep contextualized word representations》&…

微信公众号要怎么样运营!为什么别人运营一个公众号可以赚几万?

前面的二篇一个是介绍自媒体&#xff0c;一个介绍流量&#xff0c;这一篇就来讲讲微信公众号该如何运营&#xff0c;怎么样才可以运营好一个公众号达到盈利了&#xff0c;下面小编就来分析下公众号是怎么算收益的&#xff0c;我们具体该怎么做&#xff1a;第一个文章赚钱不管做…

word2Vec进阶 -Bert

Word2Vec进阶 - Bert – 潘登同学的NLP笔记 文章目录Word2Vec进阶 - Bert -- 潘登同学的NLP笔记Bert介绍BERT的结构Bert的输入Bert的输出预训练任务Masked Language Model&#xff08;MLM&#xff09;Next Sentence Prediction&#xff08;NSP&#xff09;总结ERNIEERNIE2.0预训…

做自媒体不赚钱了,有多少人是月入过千的?

月入过千是随便注册一个账号就可以达到的好吗。你要说月入上万可以没有多少人达到。但是月入上千很容易&#xff0c;只要能写文章&#xff0c;一天挣个30多块就可以了。现在小号随便都可以做出上千的收入&#xff0c;如果你达不到的话。一是你能力不行&#xff0c;不会写文章做…

Word2Vec进阶 -GPT2

Word2Vec进阶 - GPT2 – 潘登同学的NLP笔记 文章目录Word2Vec进阶 - GPT2 -- 潘登同学的NLP笔记GPT2网络结构预训练任务机器翻译自动摘要生成阅读理解Zero-shot,One-shot,Few-shot问题来了Bert与GPT2的区别Bert与GPT2的区别GPT2网络结构 Bert是用了Transformer的Encoder层&…