4.2.6. 注意力机制¶
对于一个由 n 个单词组成的句子来说,不同位置的单词,重要性是不一样的。因此,我们需要让模型 “注意” 到那些相对更加重要的单词,这种方式我们称之为注意力机制,也称作 Attention 机制。
关于注意力机制最经典的论文就是大名鼎鼎的《Attention Is All You Need》
Attention 机制要做的事:找到最重要的关键内容。它对网络中的输入(或者中间层)的不同位置,给予了不同的注意力或者权重,然后再通过学习,网络就可以逐渐知道哪些是重点,哪些是可以舍弃的内容了。
在前面的神经网络语言模型中,对于一个确定的单词,它的向量是固定的,但是现在不一样了,因为 Attention 机制,对于同一个单词,在不同语境下它的向量表达是不一样的。
备注
注意力机制的原理其实很简单,但是也很巧妙。只需要增加很少的参数,就可以让模型自己弄清楚谁重要谁次要。
这就相当于计算得到了当前的输出和所有输入的匹配度,公式如下:
Attention(Q,K,V)=softmax(sim(Q,K))V
Attention 目前主要有两种,一种是 soft attention,一种是 hard attention。hard attention 关注的是当前词附近很小的一个区域,而 soft attention 则是关注了更大更广的范围,也更为常用。