【NLP】Attention函数手册!
共 1252字,需浏览 3分钟
·
2021-04-23 17:27
作者:一元,四品炼丹师
目前的诸多机器学习相关的问题,诸如推荐问题中的序列处理,时间序列的预测,文本分类等问题都会涉及到Attention函数的使用,Attention已经成为了这些问题在建模时的最为核心的模块。
而我们在实践的过程中发现,attention计算方式的不同对于不同的问题会有些许影响,有的时候影响还很大,所以在本文我们看看有哪些常用的attention函数。
我们用Q,K,V分别表示Query,Key和Value。
我们将权重函数分为两个模块函数以及函数。
1.A(Q,K)计算方式
1.Concat策略
其中,表示连接的意思,该策略简单,在一些博客中说此类策略在大数据问题中效果较好,该计算方式来源于论文《NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE》
2.Minus
3.Add
4.Dot Product
Dot Product的形式最为简单,很多时候我们也经常会使用该函数作为Baseline,但是它的问题也很明显,虽然降低了模型计算复杂度,但是有时会因为相乘得到过大的值影响模型的效果。
5.Bilinear Dot
Bilinear Dot可以认为是Dot Product的扩展形式,有些情况下,Bilinear Dot的效果和Dot Product稍微好一些。
6.Scaled-dot Product
其中是特征的维度。
7.Content-Based
使用cosine距离替代了直接相乘,该计算方式来源于论文《Neural Turing Machines》。
8.扩展
从上面的诸多计算中,我们发现就像是在计算之间的距离,所以很多基于距离的函数都是可以套过来尝试一下的,下面是一些距离的列表,有兴趣的朋友可以比较一下。
2.f()计算
目前最常使用的计算方式主要有下面两种。
1.softmax函数
softmax函数是使用最多的函数也是最为常见的函数,在实践中往往也可以取得不错的效果。
2.TopN softmax
同样地,也是先使用softmax函数进行计算,然后取softmax最大的N个值进行保留,将其它的值全部设置为0,该方法曾经出现在一些推荐相关的问题建模中,可以取得非常不错的效果。
Attention基本公式及其变种 Attention? Attention! [机器学习]常用距离定义与计算
往期精彩回顾
本站qq群851320808,加入微信群请扫码: