本发明涉及人工智能的领域,尤其涉及线性复杂度自注意力机制实现的方法、系统、设备及介质。
背景技术:
1、循环神经网络(rnns)在处理序列数据时表现出色,但面对长序列时容易出现梯度消失或梯度爆炸的问题,且计算效率低下。卷积神经网络(cnns)在特征提取方面表现优异,但其感受野受限于卷积核的大小和层数,难以捕获长距离依赖关系。自注意力机制最初在“attention is all you need”这篇论文中被提出,并迅速成为nlp领域的一个里程碑。它解决了传统模型在处理长序列数据时的不足,通过动态地赋予序列中不同位置不同的权重,更加高效、精确地捕捉信息间的依赖关系。自注意力机制近年来得到了广泛的应用,因其无先验假设、全局特性以及广泛的适用性,得到了大量的应用。
2、尽管自注意力机制在处理长序列时具有显著优势,然而,由于自注意力机制的计算特点,序列中每个点需要与序列中所有点进行相似度计算,因此计算复杂度为o(n^2),其中n是序列长度。随着序列长度的增加,计算量会急剧上升,这导致了较高的计算代价,使得大部分基于自注意力机制的模型的推理时间和显存占用大大增加了,极大提高了模型的训练、推理代价,限制了其在更低计算能力设备上的部署和应用。包括linformer在内的一系列方法通过将其计算复杂度降低为线性,然而受限于逼近精度等问题,造成了较大的性能损失。
技术实现思路
1、为解决前述提到的一个或多个技术问题,本发明提出了线性复杂度自注意力机制实现的方法,包括:
2、s1:将待处理的序列数据进行位置编码并特征映射施加到查询矩阵和键矩阵中;
3、s2:基于所述查询矩阵和键矩阵进行计算得到低秩查询矩阵、低秩键矩阵和低秩广义逆矩阵;
4、s3:将值矩阵进行增广得到增广矩阵,并基于所述增广矩阵和所述低秩键矩阵、低秩广义逆矩阵和低秩查询矩阵得到序列自注意力矩阵;
5、s4:将所述序列自注意力矩阵进行转置作为序列数据重复s1-s3,将再次得到的序列自注意力矩阵作为特征自注意力矩阵,基于所述序列自注意力矩阵和所述特征自注意力矩阵得到线性复杂度的自注意力矩阵。
6、在一些实施例中,所述基于所述查询矩阵和键矩阵进行计算得到低秩查询矩阵、低秩键矩阵和低秩广义逆矩阵的步骤包括:
7、在所述查询矩阵和键矩阵中通过概率分布选取行子矩阵,得到查询行子矩阵和键行子矩阵;
8、将所述查询矩阵与键行子矩阵的转置的乘积作为低秩查询矩阵;
9、将所述键矩阵与查询行子矩阵的转置的乘积作为低秩键矩阵;
10、将所述查询矩阵与键矩阵的转置的乘积作为低秩广义逆矩阵。
11、在一些实施例中,所述在所述查询矩阵和键矩阵中通过概率分布选取行子矩阵,得到查询行子矩阵和键行子矩阵的步骤包括:
12、计算所述查询矩阵和键矩阵的每一行的行范数;
13、对每个矩阵的所有行范数应用softmax转化为概率分布;
14、根据概率分布,进行行采样;
15、抽取选择的行组合成对应的查询行子矩阵和键行子矩阵。
16、在一些实施例中,所述将值矩阵进行增广得到增广矩阵,并基于所述增广矩阵和所述低秩键矩阵、低秩广义逆矩阵和低秩查询矩阵得到序列自注意力矩阵的步骤包括:
17、将1作为常数项向量,和所述值矩阵组合成为增广矩阵;
18、将所述增广矩阵和所述低秩查询矩阵左乘,逐元素计算点积,得到第一矩阵;
19、将所述第一矩阵和所述低秩广义逆矩阵左乘,逐元素计算点积,得到第二矩阵;
20、将所述第二矩阵和所述低秩查询矩阵左乘,逐元素计算点积,得到自注意力矩阵,以及基于所述自注意力矩阵得到序列自注意力矩阵。
21、在一些实施例中,所述基于所述自注意力矩阵得到序列自注意力矩阵的步骤包括:
22、选择所述低秩查询矩阵和低秩键矩阵的交集矩阵最大值作为最大归一化项;
23、选择所述低秩查询矩阵和低秩键矩阵的交集矩阵最小值作为最小归一化项;
24、通过所述最大归一化项和所述最小归一化项将自注意力矩阵的所有元素缩放到[0, 1]的范围中,得到归一化矩阵;
25、将所述归一化矩阵作为序列自注意力矩阵。
26、在一些实施例中,所述基于所述序列自注意力矩阵和所述特征自注意力矩阵得到线性复杂度的自注意力矩阵的步骤包括:
27、将所述序列自注意力矩阵的转置和所述特征自注意力矩阵的转置拼接,作为线性复杂度的自注意力矩阵并输出。
28、在一些实施例中,所述将待处理的序列数据进行位置编码并特征映射施加到查询矩阵和键矩阵中的步骤包括:
29、根据所述序列数据的长度和所述查询矩阵和键矩阵的维度生成位置编码;
30、将所述位置编码添加到查询矩阵和键矩阵中对应的位置。
31、本发明提出了线性复杂度自注意力机制实现的系统,包括:
32、预处理单元,配置为用于将待处理的序列数据进行位置编码并特征映射施加到查询矩阵和键矩阵中;
33、低秩单元,配置为用于基于所述查询矩阵和键矩阵进行计算得到低秩查询矩阵、低秩键矩阵和低秩广义逆矩阵;
34、近似单元,配置为用于将值矩阵进行增广得到增广矩阵,并基于所述增广矩阵和所述低秩键矩阵、低秩广义逆矩阵和低秩查询矩阵得到序列自注意力矩阵;
35、交互单元,配置为用于将所述序列自注意力矩阵进行转置作为序列数据重复调用预处理单元、低秩单元和近似单元,将再次得到的序列自注意力矩阵作为特征自注意力矩阵,基于所述序列自注意力矩阵和所述特征自注意力矩阵得到线性复杂度的自注意力矩阵。
36、本发明提出了一种计算机设备,包括:
37、至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述程序时执行所述线性复杂度自注意力机制实现的方法的步骤。
38、本发明提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行所述线性复杂度自注意力机制实现的方法的步骤。
39、本发明至少具有以下有益技术效果:
40、本发明提出了线性复杂度自注意力机制实现的方法、系统、设备及介质,方法包括:s1:将待处理的序列数据进行位置编码并特征映射施加到查询矩阵和键矩阵中;s2:基于所述查询矩阵和键矩阵进行计算得到低秩查询矩阵、低秩键矩阵和低秩广义逆矩阵;s3:将值矩阵进行增广得到增广矩阵,并基于所述增广矩阵和所述低秩键矩阵、低秩广义逆矩阵和低秩查询矩阵得到序列自注意力矩阵;s4:将所述序列自注意力矩阵进行转置作为序列数据重复s1-s3,将再次得到的序列自注意力矩阵作为特征自注意力矩阵,基于所述序列自注意力矩阵和所述特征自注意力矩阵得到线性复杂度的自注意力矩阵并输出。
41、本发明利用自注意力机制的低秩特性,通过分解低秩矩阵的方式,充分利用了其中的关键性信息,在实现线性自注意力的同时,较好地保持了模型性能。计算量与序列长度为线性关系,有更强的可拓展性。
1.线性复杂度自注意力机制实现的方法,其特征在于,包括:
2.根据权利要求1所述的线性复杂度自注意力机制实现的方法,其特征在于,所述基于所述查询矩阵和键矩阵进行计算得到低秩查询矩阵、低秩键矩阵和低秩广义逆矩阵的步骤包括:
3.根据权利要求2所述的线性复杂度自注意力机制实现的方法,其特征在于,所述在所述查询矩阵和键矩阵中通过概率分布选取行子矩阵,得到查询行子矩阵和键行子矩阵的步骤包括:
4.根据权利要求1所述的线性复杂度自注意力机制实现的方法,其特征在于,所述将值矩阵进行增广得到增广矩阵,并基于所述增广矩阵和所述低秩键矩阵、低秩广义逆矩阵和低秩查询矩阵得到序列自注意力矩阵的步骤包括:
5.根据权利要求4所述的线性复杂度自注意力机制实现的方法,其特征在于,所述基于所述自注意力矩阵得到序列自注意力矩阵的步骤包括:
6.根据权利要求1所述的线性复杂度自注意力机制实现的方法,其特征在于,所述基于所述序列自注意力矩阵和所述特征自注意力矩阵得到线性复杂度的自注意力矩阵的步骤包括:
7.根据权利要求1所述的线性复杂度自注意力机制实现的方法,其特征在于,所述将待处理的序列数据进行位置编码并特征映射施加到查询矩阵和键矩阵中的步骤包括:
8.线性复杂度自注意力机制实现的系统,其特征在于,包括:
9.一种计算机设备,包括:
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1至7任一项所述线性复杂度自注意力机制实现的方法的步骤。