小标
2018-10-15
来源 :
阅读 1444
评论 0
摘要:本文主要向大家介绍了机器学习入门之Hulu机器学习问题与解答系列 | 十二:注意力机制,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
本文主要向大家介绍了机器学习入门之Hulu机器学习问题与解答系列 | 十二:注意力机制,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
今天的内容是
【注意力机制】
场景描述
作为生物体,我们的视觉和听觉会不断地获得带有序列的声音和图像信号,并交由大脑理解;同时我们在说话、打字、开车等过程中,也在不断地输出序列的声音、文字、操作等信号。在互联网公司日常要处理的数据中,也有很多是以序列形式存在的,例如文本、语音、视频、点击流等。因此如何更好的对序列进行建模,一向是研究的要点。
为了解决这些问题,注意力机制(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. 注意力机制在图片描述文本生成中的应用
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号