Attention
attention 机制在最近的机器学习中应用广泛,并且在各个模型上都取得了良好成绩。尤其是在机器翻译中,训练出来的模型的翻译质量明显提高了一个层次。这里就简单的说一些attention的原理以及计算过程,主要是attention的计算过程的记录。
首先是基本的attention的计算过程:(这里是逆向解析的)
第一步:计算attention
这里的表示在 i 时刻,翻译j 单词的时候对应的attention的计算过程,主要是通过计算第j个单词和其他所有的源单词的权重分值的加权和。
第二步:计算这个权重分值 (BahdanauAttention类型)
这里的计算步骤是通过计算上一个单词和源单词的相似程度来预测下一个单词
这里主要是通过计算当前查询的词(也即目标单词)与隐层全连接层进行点积运算,并且和上下文信息(编码层的最终向量) 与隐层全连接层进行点积运算的结果进行求。其中 两个W 表示的是全连接层,h表示的是上下信息,也就是经过一系列隐层编码后的向量,dt指的是上一时刻的翻译的词。
上面的是最里面括号里面的内容,然后外边进行一次双曲正切的变换,并且对value 进行点积运算,这个value是和上下文信息相同的,也就是经过隐层编码后的向量。
最后在经过一次归一化处理,归一化函数softmax ,这时就计算出了aij 了。
关于attention的详细内容可见参考:
注意力机制的基本思想和实现原理(很详细)
注意力机制的基本思想和实现原理(很详细)(第二篇)
https://blog.csdn.net/qsczse943062710/article/details/79539005
详解tensorflow中的Attention机制