被google备胎了,心情复杂,果然离Google还是很远的……写篇文章吧。
attention是为了解决在RNN过长的情况下导致,从图像领域引入到NLP领域中的。NLP领域的开篇之作,是Neural machine translation by jointly learning to align and translate,除此之外,推荐阅读这篇文章https://spaces.ac.cn/archives/4765/comment-page-1,对注意力机制的理解方向大有帮助
Attention 原理
回想一下利用RNN翻译的原理,也就是序列的encode&decode,attention实际上是在给decode端和encode端搭桥,attention实际上是一个概率分布,decoder端利用这个概率分布,对拿到的向量进行解码,就会的到更准确的句子。
为什么呢?首先一个句子过长的时候,实际上从RNN开始的信息,传递到最后的时候是不完全的,如果给每个单词提供相同的权重,会导致最后的句子也损失了一些细节上的信息。所以说,不加attention的模型是一个不专注的模型。
那么我们加一点专注力到我们的模型中,我们希望我们在翻译一个单词的时候,有一个贡献表,这个表中代表每个单词对当前要翻译的词的贡献程度,当一个单词的贡献程度越高,我们的模型回更好的翻译出这个单词,也就是一个专注的模型。