Hulu机器学习问题与解答系列 | 十一:Seq2Seq

你可以点击菜单栏的“机器学习”,回顾本系列前几期的全部内容,并留言发表你的感悟与想法。

今天的内容是

【Seq2Seq】

场景描述

作为生物体,我们的视觉和听觉会不断地获得带有序列的声音和图像信号,并交由大脑理解;同时我们在说话、打字、开车等过程中,也在不断地输出序列的声音、文字、操作等信号。在互联网公司日常要处理的数据中,也有很多是以序列形式存在的,例如文本、语音、视频、点击流等等。因此如何更好的对序列进行建模,一向是研究的要点。

2013年来,随着深度学习的发展,Seq2Seq(sequence to sequence,序列到序列)框架在机器翻译领域被大量采用,随后迅速影响到了上述的各领域,应用在了各类序列数据上。

问题描述

1. Seq2Seq的框架是什么?有哪些优点?

2. Seq2Seq在解码时,有哪些常用的方法?

背景知识假设:基本的深度学习知识。

该类问题的被试者:对RNN有一定的使用经验,或在自然语言理解、序列建模等领域有一定的经历。

解答与分析

1. Seq2Seq的框架是什么?有哪些优点?可以结合具体的应用场景进行分析。

在Seq2Seq框架提出之前,深度神经网络在图像分类等问题上取得了非常好的效果。在其擅长解决的问题中,输入和输出通常都可以表示为固定长度的向量,如果长度稍有变化,会使用补零等操作。然而许多重要的问题,例如机器翻译、语音识别、自动对话等,表示成序列后,其长度事先并不知道。因此如何突破先前深度神经网络的局限,使其可以适应这些场景,成为了13年以来的研究热点,Seq2Seq框架应运而生[1][2]。

Seq2Seq框架的核心思想是:通过深度神经网络将一个作为输入的序列映射为一个作为输出的序列,这一过程由编码输入与解码输出两个环节构成。在经典的实现中,编码器和解码器分别由一个RNN构成,其选择有传统RNN、LSTM、GRU等,这两个RNN是共同训练的。

上图[3]是Seq2Seq应用于机器翻译时的例子,输入的序列是一个源语言的句子,有三个单词A、B、C,编码器依次读入A、B、C和结尾符<EOS>。 在解码的第一步,解码器读入编码器的最终状态,生成第一个目标语言的词W;第二步读入第一步的输出W,生成第二个词X;如此循环,直至输出结尾符<EOS>。输出的序列W、X、Y、Z就是翻译后目标语言的句子。

在文本摘要时,输入的序列是长句子或段落,输出的序列是摘要短句。在图像描述生成时,输入是图像经过视觉网络的特征,输出的序列是图像的描述短句。在语音识别时,输入的序列是音频信号,输出的序列是识别出的文本。这些场景中,编码器或解码器会依据场景有不同的设计,大家在面试时可以结合自己的项目经历展开探讨。

2. Seq2Seq在解码时,有哪些常用的方法?

Seq2Seq最核心的部分是其解码部分,大量的改进也是在解码环节衍生的,因此面试时也常常问到。Seq2Seq最基础的解码方法是贪心法,即选取一种度量标准后,每次都在当前状态下选择最佳的一个结果,直到结束。贪心法的计算代价低,适合作为基础实现(baseline),并与其他方法相比较。很显然贪心法获得的是一个局部最优解,由于实际问题的复杂性,该方法往往并不能取得最领先的效果。

Beam search是常见的改进算法,它是一种启发式的算法。该方法会保存beam size(后面简写为b)个当前的较佳选择,然后解码时每一步根据保存的选择进行下一步扩展和排序,接着选择前b个保存,循环进行,直到结束时选择最佳的一个作为解码的结果。下图为b为2的示例:

在该例中,当前已经有解码得到的第一个词的两个选项:I和My。然后,将I和My输入到解码器,得到一系列候选的序列诸如I decided、My decision、 I thought等。最后,从后续序列中选择最优的两个,作为前两个词的两个选项。很显然,如果b取1,那么会退化为前述的贪心法。随着b的增大,其搜索的空间增大,获得的效果会提高,但需要的计算量也会增大。在实际的应用如机器翻译、文本摘要中,b往往会选择一个适中的范围如8~12。

解码时使用堆叠的RNN、增加dropout机制、与编码器之间建立残差连接等,也是常见的改进措施。大家在研究和工作中,可以依据使用场景,多查阅文献和技术文档,有针对的选择和实践。

在解码环节,另一个重要的改进是注意力机制[4],它的引入使得解码时,每一步可以有针对地关注与当前有关的编码结果,从而减小了编码器输出表示的学习难度,也更容易学到长期的依赖关系。注意力机制会在下一节做更加深入的探讨,敬请期待。此外,解码时还可以采用记忆网络(memory network)[5]等,从外界获取知识。

参考文献:

[1] Auli, Michael, et al. "Joint Language and Translation Modeling with Recurrent Neural Networks." EMNLP. 2013.

[2] Cho, Kyunghyun, et al. "Learning phrase representations using RNN encoder-decoder for statistical machine translation." EMNLP. 2014.

[3] Sutskever, Ilya, Oriol Vinyals, and Quoc V. Le. "Sequence to sequence learning with neural networks." NIPS. 2014.

[4] Bahdanau, Dzmitry, Kyunghyun Cho, and Yoshua Bengio. "Neural machine translation by jointly learning to align and translate." ICLR. 2015.

[5] Sukhbaatar, Sainbayar, Jason Weston, and Rob Fergus. "End-to-end memory networks." NIPS. 2015.



下一题预告

【注意力机制

场景描述

来来来,集中注意力好好学习了!其实,不仅人的注意力会分散,神经网络的注意力也会分散。前面介绍的Seq2Seq模型将输入序列进行编码后得到中间表示,再通过解码生成输出序列,这就要求生成的中间表示要尽可能多的包含输入序列的信息。在实际使用中,会发现随着输入序列长度的增加,模型的性能发生了显著下降。同时,Seq2Seq模型的输出序列中,常常会丢失或者重复部分输入序列的信息。

为了解决这些问题,注意力机制(attention mechanism)被引入Seq2Seq模型中。注意力机制模仿人在生成序列时的行为,当解码序列的某个输出时,重点关注输入序列中和当前位置的输出相关的部分,缓解了Seq2Seq模型的上述问题。作为一种通用的思想,注意力机制在包括Seq2Seq在内的多种场景中都得到了应用。

问题描述

RNN的Seq2Seq模型中引入了注意力机制(attention mechanism)是为了解决什么问题?在机器翻译的Seq2Seq模型中使用注意力机制建模时,为什么选用了双向的RNN模型?

原文地址:https://www.cnblogs.com/peizhe123/p/8480561.html

时间: 2024-10-10 15:15:28

Hulu机器学习问题与解答系列 | 十一:Seq2Seq的相关文章

Hulu机器学习问题与解答系列 | 十九:主题模型

今天的内容是 [主题模型] 场景描述 基于Bag-Of-Words(或N-gram)的文本表示模型有一个明显的缺陷,就是无法识别出不同的词(或词组)具有相同主题的情况.我们需要一种技术能够将具有相同主题的词(或词组)映射到同一维度上去,于是产生了主题模型(Topic Model).主题模型是一种特殊的概率图模型.想象一下我们如何判定两个不同的词具有相同的主题呢?这两个词可能有更高的概率出现在同一主题的文档中:换句话说,给定某一主题,这两个词的产生概率都是比较高的,而另一些不太相关的词产生的概率则

Hulu机器学习问题与解答系列 | 十七:随机梯度下降算法之经典变种

这是本周第二篇机器学习,也是Hulu面试题系列的第十七篇了~ 之前的所有内容都可以在菜单栏的"机器学习"中找到,愿你温故,知新. 今天的内容是 [随机梯度下降算法之经典变种] 场景描述 提到Deep Learning中的优化方法,人们都会想到Stochastic Gradient Descent (SGD),但是SGD并不是理想的万金油,反而有时会成为一个坑.当你设计出一个deep neural network时,如果只知道用SGD来训练,不少情况下你得到一个很差的训练结果,于是你放弃

Hulu机器学习问题与解答系列 | 十二:注意力机制

几天不见想死你们啦~ 今儿的课题很好玩,跟上队伍一起来读! 今天的内容是 [注意力机制] 场景描述 作为生物体,我们的视觉和听觉会不断地获得带有序列的声音和图像信号,并交由大脑理解:同时我们在说话.打字.开车等过程中,也在不断地输出序列的声音.文字.操作等信号.在互联网公司日常要处理的数据中,也有很多是以序列形式存在的,例如文本.语音.视频.点击流等.因此如何更好的对序列进行建模,一向是研究的要点. 为了解决这些问题,注意力机制(attention mechanism)被引入Seq2Seq模型中

Hulu机器学习问题与解答系列 | 二十四:随机梯度下降法

Hulu优秀的作者们每天和公式抗争,只为提升你们的技能,感动的话就把文章看完,然后哭一个吧. 今天的内容是 [随机梯度下降法] 场景描述 深度学习得以在近几年迅速占领工业界和学术界的高地,重要原因之一是数据量的爆炸式增长.如下图所示,随着数据量的增长,传统机器学习算法的性能会进入平台期,而深度学习算法因其强大的表示能力,性能得以持续增长,甚至在一些任务上超越人类.因此有人戏称,"得数据者得天下". 经典的优化方法,例如梯度下降法,每次迭代更新需要用到所有的训练数据,这给求解大数据.大规

Hulu机器学习问题与解答系列 | 二十三:神经网络训练中的批量归一化

来看看批量归一化的有关问题吧!记得进入公号菜单"机器学习",复习之前的系列文章噢. 今天的内容是 [神经网络训练中的批量归一化] 场景描述 深度神经网络的训练中涉及诸多手调参数,如学习率,权重衰减系数,Dropout比例等,这些参数的选择会显著影响模型最终的训练效果.批量归一化(Batch Normalization, BN)方法从数据分布入手,有效减弱了这些复杂参数对网络训练产生的影响,在加速训练收敛的同时也提升了网络的泛化能力. 问题描述 BN基本动机与原理是什么? BN的具体实现

Hulu机器学习问题与解答系列 | 十四:如何对高斯分布进行采样

欢迎回到"采样"系列~ 今天的内容是 [如何对高斯分布进行采样] 场景描述 高斯分布,又称正态分布,是一个在数学.物理及工程领域都非常重要的概率分布.在实际应用中,我们经常需要对高斯分布进行采样.虽然在很多编程语言中,直接调用一个函数就可以生成高斯分布随机数,但了解其中的具体算法能够加深我们对相关概率统计知识的理解:此外,高斯分布的采样方法有多种,通过展示不同的采样方法在高斯分布上的具体操作以及性能对比,我们会对这些采样方法有更直观的印象. 问题描述 如果让你来实现一个高斯分布随机数生

Hulu机器学习问题与解答系列 | 二十二:特征工程—结构化数据

听说最近冒出的大批呱儿子个个都是撑着眼皮也要看书的无眠小青蛙.我们学习Machine Learning的脚步又怎能停下来?动动手指,上滑开始~ 今天的内容是 [特征工程-结构化数据] 场景描述 特征工程是指结合问题寻找有效的特征并进行处理成适合模型的输入形式.机器学习中有句经典的话叫做"Garbage in, garbage out",意思是如果输入的数据是垃圾,那么得到的结果也是垃圾.可以看出模型成败的关键并不仅仅取决于模型的选取,还取决于我们是否有根据特定的问题找到了行之有效的输入

Hulu机器学习问题与解答系列 | 第八弹:强化学习 (二)

答应你们的解答部分来啦! "视频游戏里的强化学习" 场景描述 游戏是强化学习最有代表性也是最合适的应用领域之一,其几乎涵盖了强化学习所有的要素,例如环境:游戏本身的状态,动作:用户操作,机器人:程序,回馈:得分.输赢等.通过输入原始像素来玩视频游戏,是人工智能成熟的标志之一.雅达利(Atari)是20世纪七八十年代红极一时的电脑游戏,类似于国内的红白机游戏,但是画面元素要更简单一些.它的模拟器相对成熟简单,使用雅达利游戏来测试强化学习,是非常合适的.应用场景可以描述为:在离散的时间轴上

机器学习问题与解答系列(17-24)

老朋友了,还用多说什么吗?点击下面的链接复习咯: 17. 随机梯度下降算法之经典变种 18. SVM-核函数与松弛变量 19. 主题模型 20. PCA最小平方误差理论 21. 分类.排序.回归模型的评估 22. 特征工程-结构化数据 23. 神经网络训练中的批量归一化 24. 随机梯度下降法 你可以留言发表复习之后的新感悟,也许会在新的推送中看到你自己的思考噢- 不明白的地方也欢迎向作者提问,小编会在第一时间给予反馈. 日常唠叨还是要有的: 关注Hulu公众号,就可以在每周看到两篇机器学习问题