NLP-Attention模型

在说注意力机制之前,先回想这样一个场景,你在阅读一篇文章都时候,是不是一个字一个字的看的?有没有想过为什么你是这样看的,而不是一下就看完了整页的内容?

整页内容我们是看到了的,但是需要一个字一个字的去看,才能理解,是吧?别折腾想了,这是我们人类的视觉注意机制的特点,就是这样的,只有造物主才能知道为什么要这样设计,我们现在也就只能抱着存在即合理的心态去接纳这个特点了,不过,我们不止步于此,我们可以模仿这种机制的特点,去做很多有价值的事情,通过大量实验证明,将注意力机制应用在机器翻译,摘要生成,阅读理解等问题上,取得的成效显著。

在说自然语言处理里面的注意力机制前,我们需要先理解Encoder-Decoder模型,即编码-解码模型,这是一种应用于seq2seq问题的模型。

那么seq2seq又是什么呢?简单的说,就是根据一个输入序列x,来生成另一个输出序列y。seq2seq有很多的应用,例如翻译,文档摘取,问答系统等等。在翻译中,输入序列是待翻译的文本,输出序列是翻译后的文本;在问答系统中,输入序列是提出的问题,而输出序列是答案。

我们来看看Encoder-Decoder模型的原理,所谓编码,就是将输入序列转化成一个固定长度的向量;解码,就是将之前生成的固定向量再转化成输出序列。

《NLP-Attention模型》
《NLP-Attention模型》

编码器和解码器都不是固定的,可选的有CNN/RNN/BiRNN/GRU/LSTM等等,你可以自由组合。

在编码解码框架中,一个编码器读入输入句子的向量序列 《NLP-Attention模型》 ,将其转换成向量c。最常用的方法是使用如下的RNN模型:

《NLP-Attention模型》

获得了各个时间段的隐藏层以后,在将隐藏层的信息汇总,生成最后的语义向量:

《NLP-Attention模型》

一种简单的方法是将最后的隐藏词层做为语义向量C,即:

《NLP-Attention模型》

这里 《NLP-Attention模型》 是在时间步t的隐藏状态,c是有隐藏状态产生的一个向量。f和q是一些非线性函数。例如使用LSTM作为f和 《NLP-Attention模型》

解码器通常被训练来预测下一个单词 《NLP-Attention模型》 ,预测是通过给出的上下文向量c和所有先前的预测输出单词 《NLP-Attention模型》 。换句话说,解码器定义了一个概率模型通过分解联合概率成有序的条件概率来进行翻译。

解码阶段可以看做编码的逆过程。这个阶段,我们要根据给定的语义向量C和之前已经生成的输出序列y1,y2,…yt−1来预测下一个输出的单词yt,即

《NLP-Attention模型》

这里y=(y1,……,yTy)。也可以写作 :

《NLP-Attention模型》

而在RNN中,上式又可以简化成 :

《NLP-Attention模型》

其中s是输出RNN中的隐藏层,C代表之前提过的语义向量, 《NLP-Attention模型》 表示上个时间段的输出,反过来作为这个时间段的输入。而g则可以是一个非线性的多层的神经网络,产生词典中各个词语属于 《NLP-Attention模型》 的概率。

encoder-decoder模型虽然非常经典,但是局限性也非常大。最大的局限性就在于编码和解码之间的唯一联系就是一个固定长度的语义向量C。也就是说,编码器要将整个序列的信息压缩进一个固定长度的向量中去。但是这样做有两个弊端,一是语义向量无法完全表示整个序列的信息,还有就是先输入的内容携带的信息会被后输入的信息稀释掉,或者说,被覆盖了。输入序列越长,这个现象就越严重。

存在问题,我们就会有解决方案,现在我们来看看注意力机制是怎么回事,我们将注意力机制引入Encoder-Decoder框架,通过前面的输入X和中间语义表示C来共同决定decoder的结果。增加了Attention model的Encoder-Decoder框架如下图所示:

《NLP-Attention模型》
《NLP-Attention模型》

目标句子中的每个单词都学会其对应的源语句子中单词的注意力分配概率信息。在生成每个单词Yi的时候,原先都是相同的中间语义表示C会替换成根据当前生成单词而不断变化的 《NLP-Attention模型》 。即生成目标句子单词的过程成了下面的形式:

《NLP-Attention模型》

而每个Ci可能对应着不同的源语句子单词的注意力分配概率分布。

总是在网上看别人的博客,然后copy过来,心中总是没有安全感,但是有时候觉得别人写的有比我自己写的好,这个比较尴尬,以后对于要展开的问题,我还是多看看论文,多看看教科书吧,少看别人的博客,看了博客,尽量自己总结出来,以新的方式来描述一遍。

今天就先到这里,晚安。

    原文作者:flash sliver
    原文地址: https://zhuanlan.zhihu.com/p/29402703
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞