自然语言处理中的Attention原理和作用
目前NLP三个大的进展,一个是分布式表示(词向量),第二个是 LSTM(GRU),第三个就是attetion,这些技术在原来的基础上大大提升了nlp各项基础任务。
attetion究竟是什么呢。假设循环神经网络,每个时刻的输出 h1, h2, . . . , hn
attetion其实就是,循环神经网络hi的在每个时刻的权重αi。因为,原来我们在预测的时候,是把LSTM的最终的预测状态 Hn输出,作为神经网络最后的预测输入,这就要求循环神经网络压缩所有的信息到hn,而这是很难办到的,是目前循环神经网络导致瓶颈的主要原因。
所以attetion其实就是把 h1, h2, . . . , hn所有时刻的信息加上权重最终得到向量C,从而引入到后面的预测网络中。
其中α1的生成的公式如下。
其中g是一个以hi和w为输入,Θ为参数的函数。w可以是任务相关的,从训练中的来的向量。也可以是一个向量从解码器中获得的隐状态(翻译模型中常用)。g的形式一般是点积,双线性函数,或者一个隐层的MLP。
本文参考了 陈丹琦博士论文,NEURAL READING COMPREHENSION AND BEYOND