CS224N WINTER 2022Transformers详解(附Assignment5答案)
Posted 囚生CY
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CS224N WINTER 2022Transformers详解(附Assignment5答案)相关的知识,希望对你有一定的参考价值。
CS224N WINTER 2022(一)词向量(附Assignment1答案)
CS224N WINTER 2022(二)反向传播、神经网络、依存分析(附Assignment2答案)
CS224N WINTER 2022(三)RNN、语言模型、梯度消失与梯度爆炸(附Assignment3答案)
CS224N WINTER 2022(四)机器翻译、注意力机制、subword模型(附Assignment4答案)
CS224N WINTER 2022(五)Transformers详解(附Assignment5答案)
序言
-
CS224N WINTER 2022课件可从https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1224/下载,也可从下面网盘中获取:
https://pan.baidu.com/s/1LDD1H3X3RS5wYuhpIeJOkA 提取码: hpu3
本系列博客每个小节的开头也会提供该小结对应课件的下载链接。
-
课件、作业答案、学习笔记(Updating):GitHub@cs224n-winter-2022
-
关于本系列博客内容的说明:
-
笔者根据自己的情况记录较为有用的知识点,并加以少量见解或拓展延申,并非slide内容的完整笔注;
-
CS224N WINTER 2022共计五次作业,笔者提供自己完成的参考答案,不担保其正确性;
-
由于CSDN限制博客字数,笔者无法将完整内容发表于一篇博客内,只能分篇发布,可从我的GitHub Repository中获取完整笔记,本系列其他分篇博客发布于(Updating):
CS224N WINTER 2022(一)词向量(附Assignment1答案)
CS224N WINTER 2022(二)反向传播、神经网络、依存分析(附Assignment2答案)
CS224N WINTER 2022(三)RNN、语言模型、梯度消失与梯度爆炸(附Assignment3答案)
-
文章目录
lecture 9 Transformers
slides
[slides]
Transformer是对自然语言处理研究领域的一场革新,几乎目前NLP中所有的先进模型都离不开Transformer。典中典的Attention Is All You Need,很多人都有写过Transformer的原理解析,这里不赘述。
-
RNN的缺陷:slides p.19
① 线性交互距离(linear interaction distance):联系两个相隔很长的节点的时间复杂度是 O ( sequence length ) O(\\textsequence length) O(sequence length)
② 不能并行:GPU和TPU能够高效地并行巨量的独立运算,然而RNN无法享受这样的红利。
-
自注意力(self attention):slides p.22
注意力机制将每个单词的表示视为查询向量(query),然后与一系列值向量结合(参考lecture7中相关内容),在encoder-decoder模型架构中,注意力得分是根据decoder中当前需要解码的一个隐层状态与encoder中所有隐层状态计算得到的一个相似度向量(如点积),这称为encoder-decoder注意力。
自注意力则是encoder-encoder注意力(或decoder-decoder注意力),具体而言,在机器翻译模型中,注意力刻画的两种不同的语言序列(称之为输入语句和输出语句)之间的相似度,那么自注意力就是刻画输入语句(或输出语句)与自身的一个相似度。
-
Transformer的优势:slides p.24
① 非并行的运算复杂度不会随着序列长度的增加而增加;
② 因为自注意力机制的存在,每个单词都相互关联,因此联系两个相隔很长的节点的时间复杂度是 O ( 1 ) O(1) O(1)
-
Transformer详解(编码器部分):slides p.26
下图摘自Transformer提出文:Attention Is All You Need
-
自注意力机制:这是Transformer的核心区块(多头注意力)。
假想有一个模糊的哈希表,如果我们想要查询某个值(value),我们需要将查询(query)与表中的键(key)进行对比(因为这是一个模糊的哈希表)。
上图左边是各标准哈希表,每个查询恰好对应一个键值对,右边是自注意力机制,每个查询可能匹配多个键值对,因此我们将根据查询与键的相似度对每个值进行赋权。
首先我们来看Transformer中编码器的自注意力机制:
① 对于每个输入的词向量 x i ∈ R d m o d e l x_i\\in\\R^d_\\rm model xi∈Rdmodel( d m o d e l d_\\rm model dmodel表示词向量的维度),计算其查询向量,键向量,值向量:
q i = W Q x i ∈ R d k k i = W K x i ∈ R d k v i = W V x i ∈ R d v i = 1 , 2 , . . . , n (9.1) q_i=W^Qx_i\\in\\R^d_k\\quad k_i=W^Kx_i\\in\\R^d_k\\quad v_i=W^Vx_i\\in\\R^d_v\\quad i=1,2,...,n\\tag9.1 qi=WQxi∈Rdkki=WKxi∈Rdkvi=WVxi∈Rdvi=1,2,...,n(9.1)
② 计算查询向量与键向量之间的注意力得分(点积), n n n表示序列长度:
e i j = q i k j ∈ R i = 1 , 2 , . . . , n ; j = 1 , 2 , . . . , n (9.2) e_ij=q_ik_j\\in\\R\\quad i=1,2,...,n;j=1,2,...,n\\tag9.2 eij=qikj∈Ri=1,2,...,n;j=1,2,...,n(9.2)
③ 对注意力得分取softmax进行得到标准化的概率分布:
α i j = softmax ( e i j ) = exp ( e i j ) ∑ p = 1 n exp ( e i p ) ∈ R i = 1 , 2 , . . . , n ; j = 1 , 2 , . . . , n (9.3) \\alpha_ij=\\textsoftmax(e_ij)=\\frac\\exp(e_ij)\\sum_p=1^n\\exp(e_ip)\\in\\R\\quad i=1,2,...,n;j=1,2,...,n\\tag9.3 αij=softmax(eij)=∑p=1nexp(eip)exp(eij)∈Ri=1,2,...,n;j=1,2,...,n(9.3)
④ 根据概率分布计算值向量的加权累和:
output i = ∑ j = 1 n α i j v j i = 1 , 2 , . . . , n (9.4) \\textoutput_i=\\sum_j=1^n\\alpha_ijv_j\\quad i=1,2,...,n\\tag9.4 outputi=j=1∑nαijvji=1,2,...,n(9.4)
可以将式 ( 9.1 ) (9.1) (9.1)到式 ( 9.4 ) (9.4) (9.4)写成统一矩阵的形式:
Q = X W Q K = X W K V = X W V E = Q K ⊤ A = softmax ( E ) Output = A V ⇒ Output = softmax ( Q K ⊤ ) V (9.5) \\left.\\beginaligned Q=XW^Q\\quad K=XW^K\\quad V=XW^V&\\\\ E=QK^\\top&\\\\ A=\\textsoftmax(E)&\\\\ \\textOutput=AV&\\endaligned\\right\\ \\Rightarrow\\textOutput=\\textsoftmax(QK^\\top)V\\tag9.5 Q=XWQK=XWKV=XWVE=Q以上是关于CS224N WINTER 2022Transformers详解(附Assignment5答案)的主要内容,如果未能解决你的问题,请参考以下文章CS224N WINTER 2022词向量(附Assignment1答案)
CS224N WINTER 2022Transformers详解(附Assignment5答案)
CS224N WINTER 2022Transformers详解(附Assignment5答案)
CS224N WINTER 2022Transformers详解(附Assignment5答案)
-