自然语言处理(NLP):15 seq2seq+attention(图解原理+论文剖析)
专注于文本分类、关键词抽取、文本摘要、FAQ问答系统、对话系统语义理解NLU、知识图谱等。结合工业界具体案例和学术界最新研究成果实现NLP技术场景落地。更多精彩内容加入“NLP技术交流群” 学习。
从BERT模型横空出世以后,通过预训练模型在NLP 领域的使用得到了快速的发展并且取得了非常好的效果。然而理解BERT 之前我们需要掌握大量知识。这里给大家一个学习路线:
bert<-transformer<-self-attention<-attention<-seq2seq。本章节重点 seq2seq 和 attention 机制。
作者:走在前方
本次主要分享内容如下
- seq2seq 入门
- 什么是seq2seq
- seq2seq 结构
- Encoder-Decoder 应用场景(文本-文本、音频-文本、图片-文本)
- Attention可视化演示
- 加深seq2seq、attention理解,通过多个可视化的效果来理解attention机制
- Attention机制论文
- Attention发展历史(带领大家看几篇重要的论文)
- Attention计算得分方法(论文中重点提到计算attention的方法)
seq2seq 入门
什么是 seq2seq
seq2seq,全名是 Sequence-to-sequence。是一个 Encoder–Decoder 结构的网络,它的输入是一个序列,输出也是一个序列, Encoder 中将一个可变长度的信号序列变为固定长度的向量表达,Decoder 将这个固定长度的向量变成可变长度的目标的信号序列。
**2014 **年,Google Brain 团队和 **Yoshua Bengio **团队各自独立提出来的,将深度学习技术应用于自然语言的生成和自然语言的理解的方面的研究。
该技术突破了传统的固定大小输入问题框架,深度神经网络模型运用于机器翻译、自动文摘、聊天机器人 。
Encoder–Decoder 结构
Cho 在 2014 年提出了 Encoder–Decoder 结构,即由两个 RNN 组成,
https://arxiv.org/pdf/1406.1078.pdf
seq2seq 结构
Sutskever 在 2014 年也发表了论文:
https://arxiv.org/pdf/1409.3215.pdf
「Seq2Seq」和「Encoder-Decoder」的关系
Seq2Seq(强调目的)不特指具体方法,满足「输入序列、输出序列」的目的,都可以统称为 Seq2Seq 模型。
而 Seq2Seq 使用的具体方法基本都属于Encoder-Decoder 模型(强调方法)的范畴。
总结一下的话:
- Seq2Seq 属于 Encoder-Decoder 的大范畴
- Seq2Seq 更强调目的,Encoder-Decoder 更强调方法
Encoder–Decoder 应用场景
文本-文本
机器翻译、对话机器人、诗词生成、代码补全、文章摘要(文本 – 文本)
「文本 – 文本」 是最典型的应用,其输入序列和输出序列的长度可能会有较大的差异。
Google 发表的用Seq2Seq做机器翻译的论文《Sequence to Sequence Learning with Neural Networks》
语音识别(音频 – 文本)
语音识别也有很强的序列特征,比较适合 Encoder-Decoder 模型。
Google 发表的使用Seq2Seq做语音识别的论文《A Comparison of Sequence-to-Sequence Models for Speech Recognition》
图像描述生成(图片 – 文本)
通俗的讲就是「看图说话」,机器提取图片特征,然后用文字表达出来。这个应用是计算机视觉和 NLP 的结合。图像描述生成的论文《Sequence to Sequence – Video to Text》
可视化理解Attention
Seq2Seq&Attention
通过视频动画方式加深attention的理解
Attn: Illustrated Attention
通过GIF图来进一步看看我们的attention的机制
Attention 机制论文
初识Attention
Attention 的发展可以粗暴地分为两个阶段
Attention第一阶段
首次提出 attention,文章提出了最经典的 Attention 结构(additive attention 或者 又叫 bahdanau attention)用于机器翻译。
在基础 attention 上开始研究一些变化操作。
- 不同的 score-function
- 不同的 alignment-function
文章使用的 Attention(multiplicative attention 或者 又叫 Luong attention)结构也被广泛应用。
- 2015年 ICML 《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》是 attention在 image caption 上的应用。
Attention第二阶段
2017年-至今是属于 transformer 的时代。基于 transformer 强大的表示学习能力,NLP 领域爆发了新一轮的活力,BERT、GPT 领跑各项 NLP 任务效果。
2017年 NIPS《Attention is all you need》提出 transformer 的结构(涉及 self-attention,multi-head attention)。基于 transformer 的网络可全部替代sequence-aligned 的循环网络,实现 RNN 不能实现的并行化,并且使得长距离的语义依赖与表达更加准确
Attention 得分计算种类
常用的attention 机制(attention mechanisms)和对齐函数(alignment score function)
这里对重要的几种score function 计算方法进行可视化
重要的attention 机制
Bahdanau Attention
The encoder-decoder model with additive attention mechanism in Bahdanau et al., 2015.
Luong attention
- Global Attention
luong 中提到了三种 score 的计算方法如下
- Local Attention
采用一种策略选择那些局部的hidden_state 参与score的计算。