用最少的公式看懂Attention机制原理

Attention

Encoder-Decoder模型

enco-deco模型是seq2seq任务的一种实现方式,比如在英翻中任务中,encoder模块用来编码一句英文句子,在最后一个时刻用一个context-vector存储整句话的信息。

在decoder部分,通过context-vector解码出每个时刻对应的中文单词。
因为这一结构,encoder-decoder有一些固有的弊端:
1: context-vector可能不能覆盖输入句子的所有信息,先输入的信息会被后输入的信息覆盖。
2: 在decoder中,解码每个时刻的单词应该是对encoder每个时刻的vector有不同权重,
比如翻译I have a pen -> 我有一只笔。实际上翻译 ‘笔’ 的时候自然的应该多关注pen,但是enco-deco结构中只能做到把I have a pen整句话压缩到一个vector中。不能做到对不同时刻有不同的关注度。
在这里插入图片描述
为解决上述问题,attention思想被提出。
attention机制本质上是,在计算decoder中的 t时刻的隐藏状态时(记为query), 对输入序列的信息做加权求和。
那权重是怎么计算的呢?t时刻的输入信息分成key 和value对,计算query和key的相似度, 这个相似度即为权重,再乘对应的value,就得到了解码器t时刻的隐藏状态对输入序列t时刻的注意程度。

A t t e n t i o n ( q u e r y , i n p u t ) = ∑ i = 1 L S i m i l a r i t y ( q u e r y , k e y i ) ∗ V a l u e i Attention(query, input) = \sum_{i=1}^{L}Similarity(query,key_{i}) *Value_{i} Attention(query,input)=i=1


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部