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

peizhe123 peizhe123     2022-10-21     249

关键词:

几天不见想死你们啦~ 今儿的课题很好玩,跟上队伍一起来读!

 

今天的内容是

【注意力机制】

 

场景描述

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

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

 

问题描述

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

 

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

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

 

解答与分析

我们已经介绍了Seq2Seq模型以及LSTM。在实际任务,例如机器翻译中,使用Seq2Seq模型,通常会先使用一个RNN作为编码器,将输入序列(源语言句子的词向量序列)编码成为一个向量表示,然后再使用一个RNN模型作为解码器,从编码器得到的向量表示里解码得到输出序列(目标语言句子的词序列)。

Seq2Seq模型中, 当前隐状态以及上一个输出词决定了当前输出词,即:

技术分享图片

其中f, g是非线性变换,通常是多层神经网络;yi是输出序列中的一个词,si是对应的隐状态。

技术分享图片

Figure 1. Seq2Seq模型

在实际使用中,会发现随着输入序列的增长,模型的性能发生了显著下降。这是因为编码时将输入序列的全部信息压缩到一个向量表示中,随着序列增长,句子越前面的词的信息的丢失就越严重。试想翻译一个有100个词的句子,需要将整个句子全部词的语义信息编码在一个向量中,而在解码时,目标语言的第一个词大概率是和源语言的第一个词相对应的,这就意味着第一步的解码就需要考虑100步之前的信息。建模时的一个小技巧是将源语言句子逆序输入,或者将其重复两遍输入来训练模型,这可以得到一定的性能提升。使用LSTM能够在一定程度上缓解这个问题,但在实践中对于过长的序列仍然难以有很好的表现。

同时,Seq2Seq模型的输出序列中,常常会丢失或者重复部分输入序列的信息。这是因为在解码时,对当前词及对应的源语言词的上下文信息和位置信息也在编码解码过程中丢失了。

Seq2Seq模型中引入注意力机制就是为了解决这些问题。

在注意力机制中,仍然可以用普通的RNN对输入序列进行编码,得到隐状态h1, h2 ... hT,但是在解码时,每一个输出词都依赖于前一个隐状态以及输入序列每一个对应的隐状态:

技术分享图片

其中语境向量ci是输入序列全部隐状态h1, h2 ... hT的一个加权和:

技术分享图片

权重参数,即注意力权重αij并不是一个固定权重,而是由另一个神经网络计算得到:

技术分享图片

神经网络α将上一个输出序列隐状态si-1和输入序列隐状态hj作为输入,计算出一个xj, yi对齐的值eij,再归一化得到权重αij

技术分享图片

Figure 2. 双向RNN的注意力机制模型

我们可以对此给出一个直观的理解:在生成一个输出词时,会考虑每一个输入词和当前输出词的对齐关系,对齐越好的词,会有越大的权重,对生成当前输出词的影响也就越大。下图给出了翻译时注意力机制的权重分布,在互为翻译的词上会有最大的权重。

技术分享图片

Figure 3. 注意力机制的权重分布

在机器翻译这样一个典型的序列到序列模型里,生成一个输出词yj时,会用到第i个输入词对应的隐状态hi以及对应的attention权重αij,如果只使用一个方向的RNN网络来计算隐状态,那么hi只包含了x0到xi的信息,相当于在αij这里丢失了xi后面的词的信息。而使用双向RNN进行建模,第i个输入词对应的隐状态包含了

技术分享图片

前者编码了x0到xi的信息,后者编码了xi及之后所有词的信息,防止了前后文信息的丢失。

注意力机制是一种思想,可以有多种不同的实现方式,在Seq2Seq以外的场景也有不少应用,下图展示了在图像描述文本生成任务中的结果,可以看到在生成对应词时,图片上对应物体的部分有较大的注意力权重。

技术分享图片

Figure 4. 注意力机制在图片描述文本生成中的应用

 

参考文献:

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

[2] Xu, Kelvin, et al. "Show, attend and tell: Neural image caption generation with visual attention."

[3] Rockt?schel, Tim, et al. "Reasoning about entailment with neural attention."

 


 

下一题预告

【集成学习

 

场景描述

之前几篇中我们介绍了具体的机器学习模型和算法,集成学习 (ensemble learning)更多的是一种组合策略,将多个机器学习模型结合起来,可以称为元算法 (meta-algorithm)。

面对一个机器学习问题,通常有两种策略,一种是研发人员尝试各种模型,选择其中表现最好的模型做重点调参优化。这种策略类似于奥运会比赛,通过强强竞争来选拔最优的运动员,并逐步提高成绩。另一种重要的策略是集各家之长,如同贤明的君主广泛的听取众多谋臣的建议,然后综合考虑,得到最终决策。后一种策略的核心,是将多个分类器的结果集成为一个统一的决策。使用这类策略的机器学习方法统称为集成学习。其中的每个单独的分类器称为基分类器。

集成学习可以大致分为两类:

  1. Boosting:这类方法训练基分类器时采用串行的方法,各个基分类器之间有依赖。它的基本思路是将基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本,给予更高的权重。测试时,根据各层分类器的结果的加权得到最终结果。

  2. Bagging:这类方法基分类器之间无强依赖,可以并行。其中很著名的算法之一是基于决策树基分类器的随机森林(Random Forest)。为了让基分类器之间互相独立,将训练集分为若干子集(当训练样本数量较少时,子集之间可能有交叠)。

基分类器有时又称为弱分类器,因为基分类器的错误率要大于集成后的分类器。基分类器的错误,是偏差(Bias)和方差(Variance)两种错误之和。偏差主要是由于分类器的表达能力有限导致的系统性错误,表现在训练误差不能收敛到一个比较小的值。方差则是由于分类器对于样本分布过于敏感,导致在训练样本数较少时,产生过拟合。

Boosting方法通过逐步聚焦于基分类器分错的样本,减小集成分类器的偏差。Bagging方法则是采取分而治之的策略,通过对训练样本多次采样,并分别训练出多个不同模型,然后做综合,来减小集成分类器的方差。假设每个基分类器出错的概率都是相互独立的,在某个测试样本上,用简单多数的投票方法来集成结果,超过半数基分类器都出错的概率会小于每个单独的基分类器的出错概率。一个Bagging的简单示例如下图:

技术分享图片

 

问题描述

  1. 集成学习有哪些基本步骤? 

  2. 常用的基分类器是什么?

hulu机器学习问题与解答系列|第七弹:非监督学习算法与评估

听说,Hulu机器学习与冬日的周末更配噢~ 你可以点击菜单栏的“机器学习”,回顾本系列前几期的全部内容,并留言发表你的感悟与想法。同时,为使大家更好地了解Hulu,菜单“关于Hulu”也做了相应调整,好奇宝宝们,牌... 查看详情

hulu机器学习问题与解答系列|第六弹:pca算法

好久不见,Hulu机器学习问题与解答系列又又又更新啦! 你可以点击菜单栏的“机器学习”,回顾本系列前几期的全部内容,并留言发表你的感悟与想法,说不定会在接下来的文章中看到你的感言噢~  今天的主题是... 查看详情

hulu机器学习问题与解答系列|第九弹:循环神经网络

...NN问题的解答。记得多多思考和转发,公式供应充足的Hulu机器学习系列,怎么能只自己知(shou)道(nue)  ~  今天的内容是【循环神经网络】 场景描述循环神经网络(RecurrentNeuralNetwork)是一种主流的深度学习模型... 查看详情

hulu机器学习问题与解答系列|第八弹:强化学习

...的要素,例如环境:游戏本身的状态,动作:用户操作,机器人:程序,回馈:得分、输赢等。通过输入原始像素来玩视频游戏,是人工智能成熟的标志之一。雅达利(Atari)是20世纪七八十年代红极一时的电脑游戏,类似于国... 查看详情

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

这是本周第二篇机器学习,也是Hulu面试题系列的第十七篇了~之前的所有内容都可以在菜单栏的“机器学习”中找到,愿你温故,知新。 今天的内容是【随机梯度下降算法之经典变种】 场景描述提到DeepLearning中的优化方... 查看详情

hulu机器学习问题与解答系列|第一弹:模型评估

...这是科学家门捷列夫的名言。在计算机科学中,特别是在机器学习的领域,对模型的测量和评估同样至关重要。只有选择与问题相匹配的评估方法,我们才能够快速的发现在模型选择和训练过程中可能出现的问题,迭代地对模型... 查看详情

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

...量的爆炸式增长。如下图所示,随着数据量的增长,传统机器学习算法的性能会进入平台期,而深度学习算法因其强大的表示能力,性能得以持续增长,甚至在一些任务上超越人类。因此有人戏称,“得 查看详情

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

今天的内容是【主题模型】 场景描述基于Bag-Of-Words(或N-gram)的文本表示模型有一个明显的缺陷,就是无法识别出不同的词(或词组)具有相同主题的情况。我们需要一种技术能够将具有相同主题的词(或词组)映射到同一... 查看详情

hulu机器学习问题与解答系列|十八:svm–核函数与松弛变量

嗨,又见面了~你可以进入公众号,点击菜单栏的“机器学习”回顾本系列的全部内容,并留言与作者交流。 今天的内容是【SVM–核函数与松弛变量】 场景描述当我们在SVM中处理线性不可分的数据时,核函数可以对数据... 查看详情

hulu机器学习问题与解答系列|二十一:分类排序回归模型的评估

本期问题的解答结合了具体的Hulu业务案例,可以说是很有趣又好懂了。快快学起来吧!  今天的内容是【分类、排序、回归模型的评估】 场景描述在模型评估过程中,分类问题、排序问题、回归问题往往需要使用不... 查看详情

hulu机器学习问题与解答系列|第四弹:不均衡样本集的处理

Hulu机器学习系列按时来报到~快搬好小板凳,一起来学习吧 今天的主题是【采样】 引言古人有云:“知秋一叶,尝鼎一脔”,其中蕴含的就是采样思想。采样,就是根据特定的概率分布产生对应的样本点。对于一些简... 查看详情

hulu机器学习问题与解答系列|十六:经典优化算法

HappyNewYear! 新年伊始,我们都会在祝福他人之余,为自己暗暗定下几个小目标。那就从现在开始努力吧,跑得更快一点,才会让时间显得慢一些~ 今天的内容是【经典优化算法】 场景描述针对我们遇到的各类优化问题... 查看详情

hulu机器学习问题与解答系列|十五:多层感知机与布尔函数

今天没有别的话,好好学习,多多转发!  本期内容是【多层感知机与布尔函数】 场景描述神经网络概念的诞生很大程度上受到了神经科学的启发。生物学研究表明,大脑皮层的感知与计算功能是通过分多层实现的,... 查看详情

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

欢迎回到“采样”系列~ 今天的内容是【如何对高斯分布进行采样】 场景描述高斯分布,又称正态分布,是一个在数学、物理及工程领域都非常重要的概率分布。在实际应用中,我们经常需要对高斯分布进行采样。虽然... 查看详情

hulu机器学习问题与解答系列|十一:seq2seq

你可以点击菜单栏的“机器学习”,回顾本系列前几期的全部内容,并留言发表你的感悟与想法。 今天的内容是【Seq2Seq】 场景描述作为生物体,我们的视觉和听觉会不断地获得带有序列的声音和图像信号,并交由大脑... 查看详情

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

来看看批量归一化的有关问题吧!记得进入公号菜单“机器学习”,复习之前的系列文章噢。 今天的内容是【神经网络训练中的批量归一化】 场景描述深度神经网络的训练中涉及诸多手调参数,如学习率,权重衰减系数... 查看详情

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

老朋友了,还用多说什么吗?点击下面的链接复习咯: 17. 随机梯度下降算法之经典变种18. SVM—核函数与松弛变量19. 主题模型20. PCA最小平方误差理论21. 分类、排序、回归模型的评估22. 特征工程—结构... 查看详情

机器学习(ml)十二之编码解码器束搜索与注意力机制(代码片段)

编码器—解码器(seq2seq)在自然语言处理的很多应用中,输入和输出都可以是不定长序列。以机器翻译为例,输入可以是一段不定长的英语文本序列,输出可以是一段不定长的法语文本序列,例如英语输入:“They”、&... 查看详情