查看原文
其他

【综述专栏】系统了解Encoder-Decoder 和 Seq2Seq及其关键技术

在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。

来源:知乎—一小撮人
地址:https://zhuanlan.zhihu.com/p/114933655
Encoder-Decoder 模型主要是 NLP 领域里的概念。它并不特值某种具体的算法,而是一类算法的统称,只要是符合上面的框架的算法,都可以统称为 Encoder-Decoder 模型。Encoder-Decoder 的通用的框架如上。
Encoder 又称作编码器。它的作用就是「将现实问题转化为数学问题」
Decoder 又称作解码器,他的作用是「求解数学问题,并转化为现实世界的解决方案」
Encoder-Decoder 这个框架很好的诠释了机器学习的核心思路:
将现实问题转化为数学问题,通过求解数学问题,从而解决现实问题。

其中需要注意的是:

1. 不论输入和输出的长度是什么,中间的向量 C长度都是固定的,这显然存在丢失信息的可能性,一般输入信息太长时会导致信息丢失。
2. 根据不同的任务可以选择不同的编码器和解码器,Encoder-Decoder可以是RNN、LSTM、GRU。
Encoder-Decoder 的应用场景包括:
Seq2Seq(是 Sequence-to-sequence 的缩写),就如字面意思,输入一个序列,输出另一个序列。这种结构最重要的地方在于输入序列和输出序列的长度是可变的。Seq2Seq也不特指具体方法,满足「输入序列、输出序列」的目的,都可以统称为 Seq2Seq 模型。
Encoder-Decoder 和 Seq2Seq的区别:
1、Seq2seq是应用层的概念,即序列到序列,强调应用场景。
2、Encoder-decoder是网络架构层面的概念,是现在主流框架,特指同时具有encoder模块和decode模块的结构。
3、encoder-decoder模型是一种应用于seq2seq问题的模型。
4、目前,Seq2Seq 使用的具体方法基本都属于Encoder-Decoder 模型的范畴
Seq2Seq模型在机器翻译,语音识别,文本摘要,问答系统等领域取得了巨大的成功,其中包含着很多非常经典的关键技术。下面不分析关键技术的论文,只对其简单介绍,并附上论文地址。

1、attention机制

attention机制的本质是从人类视觉注意力机制中获得灵感。大致是我们视觉在感知东西的时候,一般不会是一个场景从到头看到尾每次全部都看,而往往是根据需求观察注意特定的一部分。
TensorFlow.contrib.seq2seq里面的两种attention机制。
原始论文:https://arxiv.org/pdf/1409.0473.pdf
对应tf.contrib.seq2seq.BahdanauAttention
后面论文:https://arxiv.org/pdf/1508.04025.pdf
对应tf.contrib.seq2seq.LuongAttention

2、Copy Mechanism

目的是为了解决OOV的问题,在自然语言处理或者文本处理的时候,我们通常会有一个字词库(vocabulary)。这个vocabulary要么是提前加载的,或者是自己定义的,或者是从当前数据集提取的。假设之后你有了另一个的数据集,这个数据集中有一些词并不在你现有的vocabulary里,我们就说这些词汇是Out-of-vocabulary,简称OOV。
论文原文:Incorporating Copying Mechanism in Sequence-to-Sequence Learning
https://arxiv.org/abs/1603.06393

3、Sequential Copying Networks

原先的CopyNet(Copy Mechanism)每次copy一个词,这篇文章一次可以copy多个词(词组),通过给每个copy的词打标签来判断是否结束。
论文原文:Sequential Copying Networks
https://arxiv.org/abs/1807.02301v1

4、Scheduled Sampling

scheduled sampling翻译成“计划采样”, 用于解决exposure bias问题。传统的神经网络训练时和预测时的输入不一样,当在某一步做出一个错误选择后,后面可能会产生累积错误。
论文原文:Scheduled Sampling for Sequence Prediction with Recurrent Neural Networks
https://proceedings.neurips.cc/paper/2015/file/e995f98d56967d946471af29d7bf99f1-Paper.pdf

5、Self-critical sequence training

针对图像描述(Image Caption)的问题。
论文原文:Self-critical Sequence Training for Image Captioning
https://arxiv.org/abs/1612.00563

6、seq2seq中的beam search算法

Beam Search算法是以较少的代价在相对受限的搜索空间中找出其最优解,得出的解接近于整个搜索空间中的最优解。Beam Search算法一般分为两部分:路径搜索:是指在受限空间中检索出所有路径。路径打分:是指对某一条路径进行评估打分。
论文原文:Sequence-to-Sequence Learning as Beam-Search Optimization.
https://arxiv.org/abs/1606.02960

7、Coverage 机制

解决seq2seq模型生成句子中经常有重复片段的现象。
论文原文:Get To The Point: Summarization with Pointer-Generator Networks
https://arxiv.org/pdf/1704.04368.pdf
注:如果上面的论文链接不能打开,可以Google学术搜索论文。
认为文章有价值的同学,欢迎关注我的专栏,跟踪搜索引擎、推荐系统等机器学习领域前沿。
https://zhuanlan.zhihu.com/c_1218177030141050880
参考文献:
https://easyai.tech/ai-definition/encoder-decoder-seq2seq/
https://blog.csdn.net/appleml/article/details/87929579
https://blog.csdn.net/thormas1996/article/details/81536977
https://zhuanlan.zhihu.com/p/47929039

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“综述专栏”历史文章


更多综述专栏文章,

请点击文章底部“阅读原文”查看



分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存