相关知识链接
引言
- 本文主要详解 transformer 的算法结构以及理论解释,代码实现以及具体实现时候的细节放在下一篇来详述。

- 下面就通过上图中 transformer 的结构来依次解析
输入部分(Encode 侧)
- input 输出主要包含 两个部分:embedding 的输入数据, 数据位置的 embedding
- 关于输入数据的 embedding 有很多种方式,比如word2vec,GloVe,FastText 等(注意embedding 和热编码,向量化不一回事)
- 关于位置的 embedding,因为 transformer使用的全局信息而不是单纯的利用单词的之间的顺序信息,所以位置信息十分重要,transformer 使用位置 embedding 来保存单词在序列中的相对或者绝对位置
- 位置 embedding 用 PE 表示,PE 可以通过训练得到(比如 bert 的位置信息),也可以使用自定义公式得到,transformer 使用的是公式
P E ( p o s , 2 i ) = S i n ( p o s / 10000 0 ( 2 i / d ) ) PE_(pos, 2i) = Sin(pos/100000^(2i/d)) PE(pos,2i)=Sin(pos/100000(2i/d))
P E ( p o s , 2 i + 1 ) = C o s ( p o s / 10000 0 ( 2 i / d ) ) PE_(pos, 2i+1) = Cos(pos/100000^(2i/d)) PE(pos,2i+1)=
- 位置 embedding 用 PE 表示,PE 可以通过训练得到(比如 bert 的位置信息),也可以使用自定义公式得到,transformer 使用的是公式

本文详细解析了Transformer的输入编码(包括词嵌入和位置编码)、自注意力和多头注意力机制,以及Add&Norm层的作用。着重介绍了位置编码如何处理相对位置信息和为何需要mask。文章还提及了TeacherForcing在训练中的应用。
最低0.47元/天 解锁文章

2万+

被折叠的 条评论
为什么被折叠?



