位置编码
位置编码用来记录向量的位置
当然很多位置向量是借助正弦和余弦函数进行设定的,那么可以采用其他的方法吗?答案是肯定的,其位置向量的设定有很多种,同时目前也正处于研究之中。比如循环神经网络其实也可以用来产生位置编码,但其效果可能大多不如正弦函数。
截断自注意力
一个词汇相比于一个句子是比较小的,如果要分析该词汇的词性,需要联系上下文,但如果上下文比较长,我们采用自注意力其计算量比较大,那么我们需要进行截断自注意力,不看一整句话,只看一个小范围。截断自注意力可以解决序列过长的问题。
对比自注意力和卷积神经网络
以图片检测为例,自注意力需要联系全文,而CNN是进行小范围的检测,需要借助感觉野,我们可以把CNN看作受限制的自注意力,
当数据集比较少时,可以采用受限较多的CNN效果更好,数据集较多时,可以采用更加灵活的自注意力更好一些,防止过拟合象限的发生。
对比自注意力和循环神经网络
自注意力考虑的是整个序列,而RNN考虑的是左边的序列,右边的序列不考虑,当然如果采用Bi-RNN 可以解决这一问题,但是我们还要考虑循环神经网络最右边向量和最左边的向量联系建立在最左边的向量没有被遗忘。另一个不同是自注意力机制可以进行并行计算,而由于RNN 输入输出均为序列,没有办法进行并行计算。长期遗忘,没有办法进行并行计算是RNN的缺陷
自注意力机制可以用在图上,其GNN神经网络