文章目录
前言
学习路径:
Attention --> Transformer —> BERT —>NLP
问题: 为什么会出现Attention?
answer: 基于RNN一类的seq2seq模型,在处理长文本时遇到了挑战,而对于长文本中不同位置的信息进行attention有助于提升RNN模型效果
1 什么是seq2seq模型?
sequence to sequence:常见的NLP模型结构
大白话: 从一个文本序列得到一个新的文本序列
例子: 机器翻译任务,文本摘要任务
2 基于RNN的seq2seq模型如何处理文本/长文本序列?
- seq2seq模型中的编码器和解码器一般采用循环神经网络RNN(Transformer还没出现的时代)
3 seq2seq模型处理长文本序列时遇到了什么问题?
一方面单个向量很难包含所有文本序列的信息,另一方面RNN递归地编码文本序列使得模型在处理长文本时面临非常大的挑战(比如RNN处理到第500个单词的时候,很难再包含1-499个单词中的所有信息了)
3.1 解决方法
通过attention技术,seq2seq模型极大地提高了机器翻译的质量。归其原因是:attention注意力机制,使得seq2seq模型可以有区分度、有重点地关注输入序列。
A. 首先,编码器会把更多的数据传递给解码器。编码器把所有时间步的 hidden state(隐藏层状态)传递给解码器,而不是只传递最后一个 hidden state(隐藏层状态)
B. 注意力模型的解码器在产生输出之前,做了一个额外的attention处理。
attention可以简单理解为:一种有效的加权求和技术,其艺术在于如何获得权重
4 基于RNN的seq2seq模型如何结合attention来改善模型效果?
注意力模型不是无意识地把输出的第一个单词对应到输入的第一个单词,它是在训练阶段学习到如何对两种语言的单词进行对应
Transformer
Transformer模型在2017年被google提出,直接基于Self-Attention结构,取代了之前NLP任务中常用的RNN神经网络结构,并在WMT2014 Englishto-German和WMT2014 English-to-French两个机器翻译任务上都取得了当时的SOTA。
优点: 模型在处理序列输入时,可以对整个序列输入进行并行计算,不需要按照时间步循环递归处理输入序列
Transformer宏观结构
Transformer由编码部分和解码部分组成,而编码部分和解码部分又由多个网络结构相同的编码层和解码层组成。每个编码层由self-attention和FFNN组成,每个解码层由self-attention、FFN和encoder-decoder attention组成。
Transformer结构细节
输入处理
词向量
使用词嵌入算法(embedding algorithm)
位置向量
ransformer模型对每个输入的词向量都加上了一个位置向量。这些向量有助于确定每个单词的位置特征,或者句子中不同单词之间的距离特征。
编码器encoder
- Self-Attention层
- 多头注意力机制
- Attention代码实例
- 残差连接
解码器
编码器一般有多层,第一个编码器的输入是一个序列文本,最后一个编码器输出是一组序列向量
- 线性层和softmax
线性层就是一个普通的全连接神经网络,可以把解码器输出的向量,映射到一个更大的向量,这个向量称为 logits 向量:假设我们的模型有 10000 个英语单词(模型的输出词汇表),此 logits 向量便会有 10000 个数字,每个数表示一个单词的分数 - 损失函数
参考
Datawhale基于transformers的自然语言处理(NLP入门)
队友的一些推荐学习资料
视频类
(强推)李宏毅2021春机器学习课程
重点:self- attention ,transformer,Bert
文本类
https://www.yuque.com/office/yuque/0/2021/xlsx/12417658/1631435944513-6ceae974-65ef-4a60-9b49-0189e73d80f6.xlsx?from=https%3A%2F%2Fwww.yuque.com%2Fdocs%2Fshare%2Fc38d308e-fc88-4b60-8b82-a34cc51e4919
论文-ICLR 2020:On The Realationship Between Self-Attention And Convolutional Layers
从理论上数学角度,证明CNN是特殊的self- attention
代码网址类
(GitHub)点击:https://jalammar.github.io/illustrated-transformer/
主页展示
百度网盘
链接:https://pan.baidu.com/share/init?surl=kU6ZzBPk5stBhfio5GIzsw
提取码:0709
苏剑林博客-关于Transformers的合集
链接:https://spaces.ac.cn/search/transformer/1/