[2017] Transformer 模型
根据我们组大神发给我的学习资料做成的一个笔记,方便自己进行复习~~~~~~~
参考:[论文] Attention Is All You Need [kjhv]
【博客】史上最小白之Transformer详解
【博客】图解Transformer(完整版)
【知乎】如何理解Transformer论文中的positional encoding,和三角函数有什么关系?
【视频】 汉语自然语言处理-从零解读碾压循环神经网络的transformer模型[B站up主:1espresso]
尽管Transformer模型不是预训练语言模型(是seq2seq模型),但BERT是从transformer中衍生出来的预训练语言模型。因此在这里介绍它有着重要意义。
在Transformer没有诞生之前,大多数模型都是基于CNN和RNN的。但Transformer做出了一个大胆的创新:引入一个新的机制并完全抛弃CNN和RNN,这个机制就是attention机制。attention可以解决RNN及其变体存在的长距离依赖问题,也就是attention机制可以有更好的记忆力,能够记住更长距离的信息。另外最重要的就是attention支持并行化计算,这一点十分关键。
Transformer之所以如此强大是因为它特有的结构。
Transformer模型主要包括四个部分,分别是:输入、编码、解码和输出,如下图。接下来将依次讲解。
1 Input
(1)输入
transformer有两个输入口,一个是编码器侧Inputs指向的入口(下称Inputs入口),另一个是解码器侧Outputs指向的入口(下称Outputs入口)。
Inputs入口(包含Input Embedding部分)
Inputs入口输入的内容可以为one-hot或任何词嵌入模型生成的词向量(在此以one-hot举例)。假设总共词数word_num为512,输入的句子最大长度max_num(如果输入的序列太长,超过了max_num,则是保留左边的内容,把多余的直接舍弃&