【技术领域】
本发明涉及一种结合多头自注意力机制的cnn文本分类方法,尤其涉及一个或多个实施例涉及自然语言处理(naturallanguageprocessing,nlp)技术领域。
背景技术:
文本分类是nlp中常见的下游任务之一,深度学习算法在文本分类中应用广泛且性能优异。当前,基于深度学习的文本分类多采用rnn、cnn和transformer模型,其中rnn和transformer可学习文本的全局语义信息,但是由于计算量过大,应用受限。cnn计算量小且方便并行加速,在工业应用中有不可比拟的优势,但受感受野宽度的限制只能学习文本局部语义信息,分类性能不如rnn和transformer模型。本优化方案,将多头注意力机制应用于cnn模型的输入,使其包含文本的全局语义信息,从而提升cnn模型的分类性能。
技术实现要素:
本发明提供了一种结合多头自注意制的cnn文本分类方法,多头自注意力机制作用于输入cnn的词序列嵌入矩阵,以获取词序列对应原始文本的全局语义信息,从而提高cnn的输入精度,满足实际应用需求。
为实现上述目的,本发明提供一种结合多头自注意力机制的cnn文本分类方法,所述方法如下:
s1:获取待分类文本的分词序列,并进行特殊符号和停止词过滤等预处理;
s2:查询预设或随机初始化的词嵌入模型获取分词序列的嵌入矩阵,矩阵的每一行为各分词的嵌入向量;
s3:针对所得嵌入矩阵的各行向量,获取并叠加该向量对应分词的位置编码向量;
s4:对叠加位置编码后的嵌入矩阵通过自注意力机制生成自注意力矩阵;
s5:重复若干次自注意力矩阵的生成,将生成的多个矩阵在列的维度上进行拼接;
s6:将词序列拼接后的自注意力矩阵与加权矩阵相乘,实现降维和融合;
s7:将降维和融合后的自注意力矩阵输入cnn,进行训练或者预测。
作为上述技术方案的改进,上述分词序列中的每个词,由待分类文本分词处理,并进行特殊符号和停止词过滤等预处理所得。
作为上述技术方案的改进,所述分词序列的词嵌入矩阵为:通过预设或随机初始化的词嵌入模型映射获得。
作为上述技术方案的改进,所述获取的分词序列词嵌入矩阵维度为m×d:m和d分别表示分词序列的长度和词向量维度。
作为上述技术方案的改进,所述针对所得嵌入矩阵的各行向量,获取并叠加该向量对应分词的位置编码向量,包括:根据公式(1)获取位置编码向量:
其中pos为分词所在位置,i为编码向量元素的索引,生成的pe(pos,2i)和pe(pos,2i 1编码维度均为d/2,拼接两者形成维度为d的位置编码向量,将词序列嵌入矩阵中的各行向量与相应的位置编码向量进行叠加。
作为上述技术方案的改进,所述对叠加位置编码后的嵌入矩阵通过自注意力(self-attention)机制生成自注意力矩阵,包括:将词序列的嵌入矩阵x={x1,x2,...,xm}t分别与查询映射矩阵wq,键映射矩阵wk和值映射矩阵wv相乘,输出三种矩阵:查询矩阵q,键矩阵k和值矩阵v;三者通过公式(2)变换获得词序列的自注意力矩阵a={a1,a2,...,am}t,其中向量ai为第i个词的自注意力向量,它包含了该词本身和该词与词序列中其它词的关联信息。
作为上述技术方案的改进,所述对词序列的嵌入矩阵重复若干次自注意力变换,即多头自注意力机制,多次变换生成的自注意力矩阵在列维度上进行拼接,包括:利用多组映射矩阵
作为上述技术方案的改进,所述将词序列拼接后的自注意力矩阵m与加权矩阵相乘,实现降维和融合,加权矩阵wo列的维度小于m列的维度,故相乘所得矩阵m′相较于m行维度不变,列维度减小。
作为上述技术方案的改进,所述将降维和融合后的自注意力矩阵输入cnn,进行训练或预测,包括:将训练或者预测的文本经分词,特殊符号和停止词过滤,词嵌入矩阵映射,叠加位置编码向量,多头自注意力机制转换、拼接和降维,将处理所得矩阵输入cnn模型;cnn采用一维卷积神经网络,输入矩阵的列和行维度分别为特征图的宽度和通道数。
本发明的有益效果:
本发明提出一种结合多头自注意力机制的cnn文本分类方法,cnn模型通过自注意力机制获取包含全局语义信息的特征输入,在保证较低计算量的前提下,提升cnn模型的分类性能。
本发明的特征及优点将通过实施例结合附图进行详细说明。
【附图说明】
图1是本发明具体实施方式提供的一种结合多头自注意力机制的cnn文本分类方法的流程示意图;
图2是本发明具体实施方式提供的词向量获取和叠加位置编码向量方法;
图3是本发明专利具体实施方式提供的分词序列词嵌入矩阵获取自注意力矩阵的方法。
【具体实施方式】
文本分类是一种常见的nlp下游应用,cnn模型由于计算量较小和便于并行加速的特性,在文本分类落地应用中具有无可比拟的优势,但是受限于卷积核宽度,cnn模型无法学习文本的全局语义信息,导致分类性能受限。
本发明提出一种结合多头自注意力机制的cnn文本分类方法,cnn模型通过自注意力机制获取包含全局语义信息的特征输入,在保证较低计算量的前提下,提升cnn模型的分类性能。
以下结合具体实施方式和附图对本发明技术方案作进一步说明。图1示出本发明提供一种结合多头自注意力机制的cnn文本分类方法的流程示意图,具体步骤如下:
s1:获取待分类文本的分词序列,并进行特殊符号和停止词过滤等预处理;
s2:查询预设或随机初始化的词嵌入模型获取分词序列的嵌入矩阵,矩阵的每一行为各分词的嵌入向量;
s3:针对所得嵌入矩阵的各行向量,获取并叠加该向量对应分词的位置编码向量;
s4:对叠加位置编码后嵌入矩阵通过自注意力机制生成自注意力矩阵;
s5:重复若干次自注意力矩阵的生成,将生成的多个矩阵在列的维度上进行拼接;
s6:将词序列拼接后自注意力矩阵与加权矩阵相乘,实现降维和融合;
s7:将降维和融合后的自注意力矩阵输入cnn,进行训练或者预测。
具体地,s1中,获取待分类文本分词序列,并进行特殊符号和停止词过来等预处理。具体而言,首先对文本进行分词处理获得分词序列,在分词序列中,可能存在一些停止词或者特征符号等无用的信息,需要对这些无效词或符号进行过滤处理。例如,对于一个待分词的文本“【12**57】这是一个样例。”将其分词可能得到“【”、“12**57”、“】”、“这”“是”、“一个”、“样例”和“。”共8个元素,其中“【”、“12**57”、“】”和“。”作为特殊符号或者数字需要去除,同时去除不包含有效信息的停用词“是”,剩余的3个词按序作为最终分词序列。
s2中,查询预设或随机初始化的词嵌入模型获取分词序列的嵌入矩阵。具体而言,对s1步骤中得到的分词序列每一个词,通过词嵌入模型映射得到一个维度为d的向量,其中词嵌入模型可以为预训练或者随机初始化,例如采用word2vec预训练或者均匀分布u(0,1)随机初始化。分词序列的各词向量按词序作为矩阵中的一行,所得矩阵即为分词序列的词嵌入矩阵。例如对s1例中分词序列的“这”、“一个”和“样例”利用word2vec预训练词嵌入模型,假设词向量的维度为4,则可分别获得三个词向量x1=[x11,x12,x13,x14],x2=[x21,x22,x23,x24]和x3=[x31,x32,x33,x34],则分词序列的词嵌入矩阵为x={x1,x2,x3}t,其维度为3×4。
s3中,针对所得嵌入矩阵的各行向量,获取并叠加该向量对应分词的位置编码向量。具体而言,嵌入矩阵中的行向量在矩阵中的行索引即为对应分词在分词序列中的位置,根据行向量的行索引pos、维度d和公式(1),获得两个维度为d/2的位置编码pe(pos,2i)和pe(pos,2i 1),将两个位置编码拼接成维度为d的位置编码,与原始行向量叠加,叠加后矩阵的维度保持不变。图2说明了针对s2示例中分词序列“这”、“一个”和“样例”的词嵌入向量进行位置编码向量叠加的过程,叠加后词嵌入矩阵的维度仍为3×4。
s4中,对叠加位置编码后的嵌入矩阵通过自注意力机制生成自注意力矩阵。具体而言,将词序列的嵌入矩阵x={x1,x2,...,xm}t分别与查询映射矩阵wq,键映射矩阵wk和值映射矩阵wv相乘,输出三种矩阵:查询矩阵q,键矩阵k和值矩阵v,其中wq、wk和wv的权重通过训练获得,查询矩阵q包含分词序列各分词的查询向量,键矩阵k和值矩阵v同理。进一步地,根据公式(2)和矩阵q、k、v获取分词序列的自注意矩阵a={a1,a2,...,am}t,其中ai向量为第i个词的自注意力向量,它是分词序列所有分词值向量的加权和,权值通过第i个分词的查询向量与所有分词的键向量的点积,再经softmax函数计算得出,故ai向量包含了该词本身和该词与其他词的关联信息。图3说明了针对s3示例中分词序列“这”、“一个”和“样例”的叠加位置编码后的嵌入矩阵通过自注意力机制生成自注意力矩阵的过程,假设wq、wk和wv的维度均为4×3,则生成的自注意力矩阵的维度为3×3。
s5中,重复若干次注意力矩阵的生成,将生成的多个矩阵在列的维度上进行拼接。具体而言,利用多组映射矩阵
s6中,将词序列拼接后的自注意力矩阵与加权矩阵相乘,实现降维和融合。具体而言,加权矩阵wo列的维度小于拼接后的自注意力矩阵m,故相乘所得矩阵m′行维度不变,列维度较原拼接后的自注意力矩阵减小,从而起到降维的左右。举例而言,针对s5中获取的分词序列“这”、“一个”和“样例”的矩阵m(维度为3×9),与维度为9×5的加权矩阵wo相乘,则相乘所得的矩阵维度为3×5。
s7中,将降维和融合后的自注意力矩阵输入cnn,进行训练或者预测。具体而言,将文本输入cnn进行训练或者预测之间,对文本进行相同的处理:特殊符号和停止词过滤,词嵌入矩阵映射,叠加位置编码向量,多头自注意力机制转换、拼接和降维。对于训练而言,模型的学习目标为文本对应类别的one-hot编码。cnn采用一维卷积神经网络,输入矩阵列和行的维度分别为特征图的宽度和通道数。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
1.一种结合多头自注意力机制的cnn文本分类方法,其特征在于:所述方法如下:
s1:获取待分类文本的分词序列,并进行特殊符号和停止词过滤等预处理;
s2:查询预设或随机初始化的词嵌入模型获取分词序列的嵌入矩阵,矩阵的每一行为各分词的嵌入向量;
s3:针对所得嵌入矩阵的各行向量,获取并叠加该向量对应分词的位置编码向量;
s4:对叠加位置编码后的嵌入矩阵通过自注意力机制生成自注意力矩阵;
s5:重复若干次自注意力矩阵的生成,将生成的多个矩阵在列的维度上进行拼接;
s6:将词序列拼接后的自注意力矩阵与加权矩阵相乘,实现降维和融合;
s7:将降维和融合后的自注意力矩阵输入cnn,进行训练或者预测。
2.根据权利要求1所述结合多头自注意力机制的cnn文本分类方法,其特征在于:上述分词序列中的每个词,由待分类文本分词处理,并进行特殊符号和停止词过滤等预处理所得。
3.根据权利要求1所述结合多头自注意力机制的cnn文本分类方法,其特征在于:所述分词序列的词嵌入矩阵为:通过预设或随机初始化的词嵌入模型映射获得。
4.根据权利要求1所述结合多头自注意力机制的cnn文本分类方法,其特征在于:所述获取的分词序列词嵌入矩阵维度为m×d:m和d分别表示分词序列的长度和词向量维度。
5.根据权利要求1所述结合多头自注意力机制的cnn文本分类方法,其特征在于:所述针对所得嵌入矩阵的各行向量,获取并叠加该向量对应分词的位置编码向量,包括:根据公式(1)获取位置编码向量:
其中pos为分词所在位置,i为编码向量元素的索引,生成的pe(pos,2i)和pe(pos,2i 1)编码维度均为d/2,拼接两者形成维度为d的位置编码向量,将词序列嵌入矩阵中的各行向量与相应的位置编码向量进行叠加。
6.根据权利要求1所述结合多头自注意力机制的cnn文本分类方法,其特征在于:所述对叠加位置编码后的嵌入矩阵通过自注意力(self-attention)机制生成自注意力矩阵,包括:将词序列的嵌入矩阵x={x1,x2,...,xm}t分别与查询映射矩阵wq,键映射矩阵wk和值映射矩阵wv相乘,输出三种矩阵:查询矩阵q,键矩阵k和值矩阵v;三者通过公式(2)变换获得词序列的自注意力矩阵a={a1,a2,...,am}t,其中向量ai为第i个词的自注意力向量,它包含了该词本身和该词与词序列中其它词的关联信息。
7.根据权利要求1所述结合多头自注意力机制的cnn文本分类方法,其特征在于:所述对词序列的嵌入矩阵重复若干次自注意力变换,即多头自注意力机制,多次变换生成的自注意力矩阵在列维度上进行拼接,包括:利用多组映射矩阵
8.根据权利要求1所述结合多头自注意力机制的cnn文本分类方法,其特征在于:所述将词序列拼接后的自注意力矩阵m与加权矩阵相乘,实现降维和融合,加权矩阵wo列的维度小于m列的维度,故相乘所得矩阵m′相较于m行维度不变,列维度减小。
9.根据权利要求1所述结合多头自注意力机制的cnn文本分类方法,其特征在于:所述将降维和融合后的自注意力矩阵输入cnn,进行训练或预测,包括:将训练或者预测的文本经分词,特殊符号和停止词过滤,词嵌入矩阵映射,叠加位置编码向量,多头自注意力机制转换、拼接和降维,将处理所得矩阵输入cnn模型;cnn采用一维卷积神经网络,输入矩阵的列和行维度分别为特征图的宽度和通道数。
技术总结