掌桥专利:专业的专利平台
掌桥专利
首页

基于Transformer模型的数据预测方法、装置、服务器及存储介质

文献发布时间:2023-06-19 12:18:04


基于Transformer模型的数据预测方法、装置、服务器及存储介质

技术领域

本申请涉及智能决策的技术领域,尤其涉及一种基于Transformer模型的数据预测方法、装置、服务器及存储介质。

背景技术

Transformer模型是一种NLP(自然语言处理)经典模型,现在比较火热的Bert模型也是基于Transformer模型建立的。Transformer模型完全基于注意力来编码输入和计算输出,而不依赖于序列对齐的循环神经网络或卷积神经网络,Transformer模型使用Self-Attention(自注意力)机制,而不采用RNN的顺序结构,使得模型可以并行化训练,而且能够拥有全局信息。

然而,当前的Transformer模型可以很好地提取各个词向量间的语义信息,但也非常容易导致模型过拟合。例如句子中存在某个符合模型数据分布的特殊字符,可能导致Transformer模型学习到该特殊字符的信息而不是真正的语义信息,使得实际应用中模型泛化性能和预测准确度不高。目前还没有针对Attention结构防止过拟合的方法,因此,如何防止Transformer模型过拟合,从而提高Transformer模型预测结果的准确性成为了亟需解决的问题。

发明内容

本申请的主要目的在于提供一种基于Transformer模型的数据预测方法、装置、服务器及存储介质,旨在利用人工智能的深度学习来防止Transformer模型过拟合,提高模型泛化性能,从而使得模型预测结果更加准确。

第一方面,本申请提供一种基于Transformer模型的数据预测方法,包括:

获取样本语句的多个字词的词向量组成的词向量矩阵,并调用预设的Transformer模型,所述Transformer模型包括自注意力层;

将所述词向量矩阵输入至所述自注意力层,以使所述自注意力层根据所述词向量矩阵生成查询矩阵、键矩阵和值矩阵,并根据预设的随机失活算法和所述词向量矩阵生成注意力矩阵,以及根据所述查询矩阵、键矩阵、值矩阵和注意力矩阵,确定所述样本语句的多个字词之间的关注程度的概率分布矩阵;

根据所述概率分布矩阵调整所述Transformer模型的模型参数,直至所述Transformer模型收敛;

获取待预测的目标语句的词向量矩阵,将所述目标语句的词向量矩阵输入至收敛的所述Transformer模型进行处理,得到预测向量矩阵。

第二方面,本申请还提供一种数据预测装置,所述数据预测装置包括:

获取模块,用于获取样本语句的多个字词的词向量组成的词向量矩阵,并调用预设的Transformer模型,所述Transformer模型包括自注意力层;

输入模块,用于将所述词向量矩阵输入至所述自注意力层,以使所述自注意力层根据所述词向量矩阵生成查询矩阵、键矩阵和值矩阵,并根据预设的随机失活算法和所述词向量矩阵生成注意力矩阵,以及根据所述查询矩阵、键矩阵、值矩阵和注意力矩阵,确定所述样本语句的多个字词之间的关注程度的概率分布矩阵;

调整模块,用于根据所述概率分布矩阵调整所述Transformer模型的模型参数,直至所述Transformer模型收敛;

预测模块,用于获取待预测的目标语句的词向量矩阵,将所述目标语句的词向量矩阵输入至收敛的所述Transformer模型进行处理,得到预测向量矩阵。

第三方面,本申请还提供一种服务器,所述服务器包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如上所述的数据预测方法的步骤。

第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如上所述的数据预测方法的步骤。

本申请提供一种基于Transformer模型的数据预测方法、装置、服务器及存储介质,本申请通过获取样本语句的多个字词的词向量组成的词向量矩阵,并调用预设的Transformer模型,Transformer模型包括自注意力层;将词向量矩阵输入至自注意力层,以使自注意力层根据词向量矩阵生成查询矩阵、键矩阵和值矩阵,并根据预设的随机失活算法和词向量矩阵生成注意力矩阵,以及根据查询矩阵、键矩阵、值矩阵和注意力矩阵,确定样本语句的多个字词之间的关注程度的概率分布矩阵;根据概率分布矩阵调整Transformer模型的模型参数,直至Transformer模型收敛;获取待预测的目标语句的词向量矩阵,将目标语句的词向量矩阵输入至收敛的Transformer模型进行处理,得到预测向量矩阵。根据随机失活算法和词向量矩阵生成注意力矩阵,并结合注意力矩阵来确定样本语句的概率分布矩阵,可以有效的减少模型的过拟合,提高模型泛化能力,从而使得模型预测结果更加准确。

附图说明

为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种基于Transformer模型的数据预测方法的步骤流程示意图;

图2为图1中的数据预测方法的子步骤流程示意图;

图3为本申请实施例提供的词向量矩阵的一示意图;

图4为本申请实施例提供的随机概率矩阵的一示意图;

图5为本申请实施例提供的注意力矩阵的一示意图;

图6为本申请实施例提供的一种数据预测装置的示意性框图;

图7为本申请实施例提供的一种服务器的结构示意性框图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。另外,虽然在装置示意图中进行了功能模块的划分,但是在某些情况下,可以以不同于装置示意图中的模块划分。

本申请实施例提供一种基于Transformer模型的数据预测方法、装置、服务器及存储介质。其中,该基于Transformer模型的数据预测方法可应用于服务器中,涉及人工智能的深度学习,该服务器可以为单台的服务器,也可以为由多台服务器组成的服务器集群。Transformer模型应用于自然语言处理NLP领域,例如机器翻译,问答系统,文本摘要和语音识别等方向,本申请实施例提供的数据预测方法也可应用于NLP领域,从而实现NLP领域的数据预测。

下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

请参照图1,图1为本申请实施例提供的一种基于Transformer模型的数据预测方法的步骤流程示意图。

如图1所示,该基于Transformer模型的数据预测方法包括步骤S101至步骤S104。

步骤S101、获取样本语句的多个字词的词向量组成的词向量矩阵,并调用预设的Transformer模型,Transformer模型包括自注意力层。

其中,服务器预存有未训练的Transformer模型,Transformer模型包括自注意力层(Self-Attention),自注意力层可以有多个。例如,Transformer模型包括多头注意力层(Multi-Head Attention),多头注意力层包括多个自注意力层。本申请实施例以至少一个自注意力层为例对基于Transformer模型的数据预测方法进行介绍和解释,多个自注意力层的工作机制基本相同。

在一实施例中,样本语句包括多个字词,该字词包括英文单词、英文词组、中文字词或者其他语言单词或者词组。对样本语句的多个字词进行特征提取,得到多个字词的词向量;将多个字词的词向量进行组合,得到多个词向量组成的词向量矩阵。示例性的,将样本语句输入至特征识别模型进行特征识别处理,得到样本语句的多个字词的词向量,组合该多个字词的词向量得到样本语句的词向量矩阵。

在一实施例中,词向量矩阵由多个字词的词向量排列而成,词向量排列可用X=(n×d)表示,其中X可表示词向量矩阵,n表示样本语句中的单词个数,d表示词向量的向量维度。需要说明的是,词向量可由词特征向量和词位置向量相加得到。词特征向量可通过多种方式获取,例如可以采用Word2Vec、Glove等算法预训练得到,也可以通过Transformer模型进行训练得到。词位置向量表示单词出现在句子中的位置,因为Transformer模型不采用RNN的结构,而是使用全局信息,不能利用单词的顺序信息,而顺序信息对于NLP来说非常重要。所以Transformer模型中使用词位置向量保存单词在序列中的相对或绝对位置。词位置向量也可以通过训练或者使用公式计算得到,本申请实施例不做具体限定。

示例性的,词位置向量使用公式计算得到,则词位置向量PE

其中,pos表示单词在句子中的位置,d表示词位置向量PE的向量维度(与词特征向量维度一样),2i表示偶数的维度,2i+1表示奇数维度(即2i≤d,2i+1≤d)。

步骤S102、将词向量矩阵输入至自注意力层,以使自注意力层根据词向量矩阵生成查询矩阵、键矩阵和值矩阵,并根据预设的随机失活算法和词向量矩阵生成注意力矩阵,以及根据查询矩阵、键矩阵、值矩阵和注意力矩阵,确定样本语句的多个字词之间的关注程度的概率分布矩阵。

其中,将词向量矩阵输入至自注意力层进行处理,以根据词向量矩阵生成查询矩阵、键矩阵、值矩阵以及注意力矩阵,并根据查询矩阵、键矩阵、值矩阵和注意力矩阵,确定样本语句的多个字词之间的关注程度的概率分布矩阵。需要说明的是,注意力矩阵是自注意力层根据预设的随机失活Dropout算法和词向量矩阵生成的,根据随机失活算法和词向量矩阵生成注意力矩阵,并结合注意力矩阵来确定样本语句的概率分布矩阵,可以有效的减少模型的过拟合,提高模型泛化能力,从而使得模型预测结果更加准确。

在一实施例中,将词向量矩阵分别与随机初始化的三个权重矩阵(WQ、WK和WV)相乘,得到查询矩阵Q(Query矩阵),键矩阵K(Key矩阵),值矩阵V(Value矩阵)。示例性的,权重矩阵WQ、WK和WV的矩阵维度为(64,512)。

在一实施例中,如图2所示,根据预设的随机失活算法和词向量矩阵生成注意力矩阵,包括:子步骤S1021至子步骤S1024。

子步骤S1021、获取词向量矩阵的矩阵尺寸和预设的最大矩阵尺寸。

其中,矩阵尺寸也可称为矩阵维度,矩阵尺寸包括矩阵行数和矩阵列数,矩阵行数和矩阵列数可以相同或者不同,词向量矩阵的矩阵尺寸小于或者等于最大矩阵尺寸。最大矩阵尺寸可由用户根据实际情况进行设置,可选的,最大矩阵尺寸的维度为512,即最大矩阵尺寸的矩阵行数和矩阵列数均为512。

示例性的,词向量矩阵X1=(N×D),即词向量矩阵的矩阵行数为N,矩阵列数为D,最大矩阵尺寸的维度为L,则最大矩阵尺寸的矩阵行数为L,最大矩阵尺寸的矩阵列数亦为L,数值N和数值D小于或者等于数值L。

例如,如图3所示,图3为样本语句的多个字词的词向量组成的词向量矩阵,该样本语句包括4个字词,每个字词的词向量的向量维度为6,将4个字词的词向量进行排列得到如图3所示的词向量矩阵,该词向量矩阵的矩阵尺寸为(4×6),即词向量矩的矩阵行数为4,包括N1-N4;词向量矩的矩阵列数为6,包括D1-D6。

子步骤S1022、根据矩阵尺寸和最大矩阵尺寸,生成随机概率矩阵。

需要说明的是,根据词向量矩阵的矩阵尺寸随机生成多个概率值,得到对应该矩阵尺寸的目标概率矩阵,并根据词向量矩的矩阵尺寸和预设的最大矩阵尺寸,对目标概率矩阵进行扩充,生成随机概率矩阵,随机概率矩阵的矩阵尺寸为该最大矩阵尺寸。其中,在生成目标概率矩阵以及随机概率矩阵的过程中,可以根据词向量矩阵的多个词向量的排列顺序一行一行地进行,直至完成最后一行(最大矩阵尺寸的矩阵行数)的扩充。

其中,根据矩阵尺寸和最大矩阵尺寸,生成随机概率矩阵,包括:确定词向量矩阵的矩阵尺寸,该矩阵尺寸包括矩阵行数和矩阵列数;随机生成对应词向量矩阵的矩阵行数和矩阵列数的多个概率值,得到目标概率矩阵;根据最大矩阵尺寸和预设标识对目标概率矩阵进行扩充,得到矩阵尺寸为最大矩阵尺寸的随机概率矩阵。其中,概率值为取值范围为[0,1],预设标识可选的为数值,例如预设标识为0,通过预设标识进行扩充的矩阵元素不属于随机生成的概率值,目标概率矩阵的矩阵尺寸为词向量矩阵的矩阵尺寸,即目标概率矩阵的矩阵行数等于词向量矩阵的矩阵行数,目标概率矩阵的矩阵列数等于词向量矩阵的矩阵列数。

示例性的,如图4所示,若词向量矩阵的矩阵尺寸为(4×6),最大矩阵尺寸为(8×8),随机生成对应词向量矩阵的矩阵行数4和矩阵列数6的多个概率值,得到目标概率矩阵,多个概率值包括P11-P16、P21-P26、P31-P36、P41-P46,该多个概率值组成目标概率矩阵,目标概率矩阵的矩阵尺寸为(4×6)。然后,根据最大矩阵尺寸(8×8)和预设标识0对目标概率矩阵进行扩充,得到随机概率矩阵,随机概率矩阵的矩阵尺寸为(8×8)。

在一实施例中,根据词向量矩阵的矩阵列数以及最大矩阵尺寸的矩阵列数,生成随机概率向量;根据词向量矩阵的矩阵行数以及最大矩阵尺寸的矩阵行数,确定多个随机概率向量的数量及排列顺序;根据多个随机概率向量的数量及排列顺序,对多个随机概率向量进行排列组合,得到随机概率矩阵。换而言之,在生成目标概率矩阵以及随机概率矩阵的过程中,根据词向量矩阵的多个词向量的排列顺序一行一行地生成随机概率向量,直至生成最大矩阵尺寸的矩阵行数对应的随机概率向量,得到随机概率矩阵。

示例性的,如图4所示,词向量矩阵的矩阵尺寸为(4×6),最大矩阵尺寸为(8×8)。首先,随机生成词向量矩阵的矩阵列数的概率值P11至P16,并用预设标识0扩充Padding到最大矩阵尺寸的矩阵列数,得到第一随机概率向量;词向量矩阵的矩阵行数为4,按照前述方法依次生成多个概率值P21-P26、P31-P36和P41-P46,并用预设标识0进行扩充Padding处理,得到第二随机概率向量、第三随机概率向量和第四随机概率向量;最大矩阵尺寸的矩阵行数为8,用预设标识0填充第五至第八行的随机概率向量,得到第五随机概率向量至第八随机概率向量;将第一随机概率向量至第八随机概率向量进行排列即可得到随机概率矩阵。

子步骤S1023、确定对随机概率矩阵的每个行向量中的概率值进行随机失活的目标个数。

本申请实施例中,对随机概率矩阵的每个行向量中的概率值进行随机失活的目标个数可根据实际情况进行设置,例如目标个数为2个,目标个数可以根据随机概率矩阵的每个行向量的元素数量(矩阵列数)来确定,随机概率矩阵的每个行向量的元素数量越多目标个数可以越大,例如当随机概率矩阵的矩阵列数为4时,目标个数为1;当随机概率矩阵的矩阵列数为6时,目标个数为2,本实施例对此不做具体限定。

在一实施例中,对每个行向量中的概率值进行随机失活的目标个数根据最大矩阵尺寸的矩阵列数和预先设置的对每个行向量中的概率值进行随机失活的目标概率确定。该目标概率可根据实际情况进行设置,可选的目标概率为0.2。

示例性的,设最大矩阵尺寸的矩阵列数为L,对每个行向量中的概率值进行随机失活的目标概率为P,则目标个数D=int(P*L),即对每个行向量中的概率值进行随机失活的目标个数为目标概率P与矩阵列数L的乘积并取整数。

子步骤S1024、根据随机概率矩阵和目标个数,生成注意力矩阵。

生成随机概率矩阵之后,根据随机概率矩阵和对随机概率矩阵的每个行向量中的概率值进行随机失活的目标个数,生成注意力矩阵。通过在注意力矩阵中进行随机失活处理DropOut,便于后续随机丢弃部分词向量,强制模型去学习所有词向量的信息,防止出现对某些词向量的过度依赖,从而减少模型的过拟合。

在一实施例中,确定随机概率矩阵的每个行向量中的多个概率值被随机失活的历史次数;根据每个行向量中的多个概率值被随机失活的历史次数,修正每个行向量中的多个概率值,得到新的随机概率矩阵;从新的随机概率矩阵的每个行向量中选取目标个数的目标概率值;将目标概率值替换为第一预设标识,并将除目标概率值之外的每个概率值替换为第二预设标识,得到注意力矩阵。

需要说明的是,从新的随机概率矩阵的每个行向量中选取目标个数的目标概率值作为被随机失活的概率值,该目标个数的目标概率值在每个行向量中处于数值排序的前目标个数,例如目标个数为D,则从随机概率矩阵的每个行向量中选取Top D个概率值作为目标概率值。在选取目标个数的目标概率值作为被随机失活的概率值的历史记录中,记录有随机概率矩阵的每个行向量中的多个概率值被随机失活的历史次数,通过该历史次数修正每个行向量中的多个概率值,保证即使采用随机失活算法,每个词向量都不会被随机失活太多次,从而维持模型去学习所有词向量的信息,防止出现对某些词向量的过度依赖,提高模型泛化能力。

其中,修正每个行向量中的多个概率值的计算公式包括:p_new=p*(D-d_n)/D。P表示行向量中的概率值,p_new表示修正后的概率值,D表示对行向量中的概率值进行随机失活的目标个数,d_n表示概率值被随机失活的历史次数。需要说明的是,若概率值被随机失活则表明该概率值为历史的目标概率值,历史次数d_n小于等于目标个数D,历史记录中的非目标概率值随机失活的历史次数为0,因此修正的计算公式不影响非目标概率值的数值。通过修正目标概率值来降低已被随机失活的词向量的概率值,从而保证每个词向量被随机失活的概率保持一致,能够有效防止Transformer模型过拟合,提高模型泛化性能,从而使得模型预测结果更加准确。

示例性的,如图5所示,图5为注意力矩阵的一示意图。若对每个行向量中的概率值进行随机失活的目标个数为2个(通过预设标识进行扩充的矩阵元素不属于随机生成的概率值),得到新的随机概率矩阵之后,从新的随机概率矩阵的每个行向量中选取目标个数的目标概率值;将目标概率值替换为第一预设标识,该第一预设标识为0,并将除目标概率值之外的每个概率值替换为第二预设标识,该第二预设标识为1,得到注意力矩阵。

在一实施例中,生成注意力矩阵的具体过程也可参照前述生成随机概率矩阵的实施例,根据词向量矩阵的多个词向量的排列顺序一行一行地进行。示例性的,每次生成最大矩阵尺寸的矩阵行数对应的随机概率向量之后,根据随机概率向量中的多个概率值被随机失活的历史次数,修正随机概率向量中的多个概率值,得到新的随机概率向量;从新的随机概率向量中选取目标个数的目标概率值;将目标概率值替换为第一预设标识,并将除目标概率值之外的每个概率值替换为第二预设标识,得到注意力向量;按照该步骤方法循环处理,直至完成最大矩阵行数对应的注意力向量,从而生成注意力矩阵。本实施例对此不再赘述。

在一实施例中,根据查询矩阵、键矩阵、值矩阵和注意力矩阵,确定样本语句的多个字词之间的关注程度的概率分布矩阵,包括:将查询矩阵与键矩阵进行点乘,得到转置矩阵;通过注意力矩阵对转置矩阵进行调整,得到目标矩阵;对目标矩阵进行归一化运算,并将值矩阵与经过归一化运算后的目标矩阵进行相乘,得到概率分布矩阵。其中,注意力矩阵是根据预设的随机失活Dropout算法和词向量矩阵生成的,通过注意力矩阵对转置矩阵进行调整,直接随机丢弃部分词向量,强制Transformer模型去学习所有词向量的信息,防止出现对某些词向量的过度依赖(模型过拟合),从而提高Transformer模型的泛化性能,保证Transformer模型的预测性能得到提高。

需要说明的是,当前的样本语句的概率分布矩阵的计算方式为:

其中,QK

在一实施例中,通过注意力矩阵对转置矩阵进行调整,得到目标矩阵,包括:获取预设调整公式;将注意力矩阵和转置矩阵代入预设调整公式进行计算,得到目标矩阵。通过预设调整公式对转置矩阵进行调整,可以有效的减少模型的过拟合,提高模型泛化能力,从而使得模型预测结果更加准确。

其中,预设调整公式为

步骤S103、根据概率分布矩阵调整Transformer模型的模型参数,直至Transformer模型收敛。

在一实施例中,根据概率分布矩阵计算Transformer模型的损失函数;通过损失函数更新Transformer模型的模型参数;根据Transformer模型的模型参数确定Transformer模型是否收敛;若确定Transformer模型未收敛,则继续通过样本语句的词向量矩阵对Transformer模型进行训练,直至确定Transformer模型收敛。若确定所述Transformer模型收敛,则停止训练,得到收敛的Transformer模型。通过模型参数确定Transformer模型的收敛状态,有利于保障Transformer模型的性能。

其中,获取所述Transformer模型的真实概率分布矩阵,根据样本语句的概率分布矩阵和真实概率分布矩阵,计算所述Transformer模型的损失函数。Transformer模型的模型参数(权重)都被随机的生成,未经训练的Transformer模型产生的概率分布矩阵在每个单元格/单词里都赋予了随机的数值。可以用真实的输出(真实概率分布矩阵)来比较它,然后用反向传播算法来略微调整Transformer模型的权重,生成更接近结果的输出。损失函数的计算方式包括交叉熵和KL散度等,本实施例不再赘述。

在一实施例中,确定所述Transformer模型收敛的条件包括:Transformer模型的模型参数小于等于预设模型参数、模型迭代次数达到预设迭代次数和/或模型迭代时间大于等于预设迭代时间。其中,预设模型参数、预设迭代次数和预设迭代时间可根据实际情况进行设置,本实施例对此不做具体限定。

步骤S104、获取待预测的目标语句的词向量矩阵,将目标语句的词向量矩阵输入至收敛的Transformer模型进行处理,得到预测向量矩阵。

其中,目标语句的词向量矩阵是由目标语句的多个字词进行特征提取得到的多个词向量组合而成的,将目标语句的词向量矩阵输入至收敛的Transformer模型,以供收敛的Transformer模型的自注意层根据目标语句的词向量矩阵生成查询矩阵、键矩阵和值矩阵,并根据所述查询矩阵、键矩阵和值矩阵,确定所述目标语句中多个词之间的关注度的概率分布矩阵,并根据该概率分布矩阵得到该目标语句的预测向量矩阵。Transformer模型的应用推理过程不再结合注意力矩阵来确定样本语句的概率分布矩阵,从而使Transforme模型更加稳健。

在一实施例中,收敛的所述Transformer模型包括编码器(Encoder)、解码器(Decoder)和归一化层(Soft max);将目标语句的词向量矩阵输入至所述编码器进行编码处理,得到目标语句的多个词的编码信息矩阵;将该编码信息矩阵输入至解码器进行处理,并结合目标语句的词向量矩阵进行预测,得到目标语句的多个词的解码信息矩阵;将解码信息矩阵输入至所述归一化层进行处理,得到目标语句的预测向量矩阵。通过编码器、解码器和归一化层对目标语句的词向量矩阵进行处理,得到的预测向量矩阵更加准确。

上述实施例提供的基于Transformer模型的数据预测方法,通过获取样本语句的多个字词的词向量组成的词向量矩阵,并调用预设的Transformer模型,Transformer模型包括自注意力层;将词向量矩阵输入至自注意力层,以使自注意力层根据词向量矩阵生成查询矩阵、键矩阵和值矩阵,并根据预设的随机失活算法和词向量矩阵生成注意力矩阵,以及根据查询矩阵、键矩阵、值矩阵和注意力矩阵,确定样本语句的多个字词之间的关注程度的概率分布矩阵;根据概率分布矩阵调整Transformer模型的模型参数,直至Transformer模型收敛;获取待预测的目标语句的词向量矩阵,将目标语句的词向量矩阵输入至收敛的Transformer模型进行处理,得到预测向量矩阵。根据随机失活算法和词向量矩阵生成注意力矩阵,并结合注意力矩阵来确定样本语句的概率分布矩阵,可以有效的减少模型的过拟合,提高模型泛化能力,从而使得模型预测结果更加准确。

请参照图6,图6为本申请实施例提供的一种数据预测装置的示意性框图。

如图6所示,该数据预测装置200,包括:获取模块201、输入模块202、调整模块203和预测模块204。

获取模块201,用于获取样本语句的多个字词的词向量组成的词向量矩阵,并调用预设的Transformer模型,所述Transformer模型包括自注意力层;

输入模块202,用于将所述词向量矩阵输入至所述自注意力层,以使所述自注意力层根据所述词向量矩阵生成查询矩阵、键矩阵和值矩阵,并根据预设的随机失活算法和所述词向量矩阵生成注意力矩阵,以及根据所述查询矩阵、键矩阵、值矩阵和注意力矩阵,确定所述样本语句的多个字词之间的关注程度的概率分布矩阵;

调整模块203,用于根据所述概率分布矩阵调整所述Transformer模型的模型参数,直至所述Transformer模型收敛;

预测模块204,用于获取待预测的目标语句的词向量矩阵,将所述目标语句的词向量矩阵输入至收敛的所述Transformer模型进行处理,得到预测向量矩阵。

在一个实施例中,输入模块202包括:

获取子模块,用于获取所述词向量矩阵的矩阵尺寸和预设的最大矩阵尺寸;

生成子模块,用于根据所述矩阵尺寸和所述最大矩阵尺寸,生成随机概率矩阵;

确定子模块,用于确定对所述随机概率矩阵的每个行向量中的概率值进行随机失活的目标个数;

生成子模块,还用于根据所述随机概率矩阵和所述目标个数,生成注意力矩阵。

在一个实施例中,输入模块202还用于:

确定所述词向量矩阵的矩阵尺寸,所述矩阵尺寸包括矩阵行数和矩阵列数;

随机生成对应所述矩阵行数和矩阵列数的多个概率值,得到目标概率矩阵;

根据所述最大矩阵尺寸和预设标识对所述目标概率矩阵进行扩充,得到矩阵尺寸为所述最大矩阵尺寸的随机概率矩阵。

在一个实施例中,输入模块202还用于:

确定所述随机概率矩阵的每个行向量中的多个概率值被随机失活的历史次数;

根据每个所述行向量中的多个概率值被随机失活的历史次数,修正每个所述行向量中的多个概率值,得到新的随机概率矩阵;

从所述新的随机概率矩阵的每个所述行向量中选取所述目标个数的目标概率值;

将所述目标概率值替换为第一预设标识,并将除所述目标概率值之外的每个概率值替换为第二预设标识,得到注意力矩阵。

在一个实施例中,输入模块202还用于:

将所述查询矩阵与所述键矩阵进行点乘,得到转置矩阵;

通过所述注意力矩阵对所述转置矩阵进行调整,得到目标矩阵;

对所述目标矩阵进行归一化运算,并将所述值矩阵与经过归一化运算后的所述目标矩阵进行相乘,得到所述概率分布矩阵。

在一个实施例中,输入模块202还用于:

获取预设调整公式,所述预设调整公式为

将所述注意力矩阵和所述转置矩阵代入所述预设调整公式进行计算,得到目标矩阵。

在一个实施例中,调整模块203还用于:

根据所述概率分布矩阵计算所述Transformer模型的损失函数;

通过所述损失函数更新所述Transformer模型的模型参数;

根据所述Transformer模型的模型参数确定所述Transformer模型是否收敛;

若确定所述Transformer模型未收敛,则继续通过样本语句的词向量矩阵对所述Transformer模型进行训练,直至确定所述Transformer模型收敛。

需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各模块及单元的具体工作过程,可以参考前述数据预测方法实施例中的对应过程,在此不再赘述。

上述实施例提供的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图7所示的服务器上运行。

请参阅图7,图7为本申请实施例提供的一种服务器的结构示意性框图。

如图7所示,该服务器包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。

非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种基于Transformer模型的数据预测方法。

处理器用于提供计算和控制能力,支撑整个服务器的运行。

内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种基于Transformer模型的数据预测方法。

该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:

获取样本语句的多个字词的词向量组成的词向量矩阵,并调用预设的Transformer模型,所述Transformer模型包括自注意力层;

将所述词向量矩阵输入至所述自注意力层,以使所述自注意力层根据所述词向量矩阵生成查询矩阵、键矩阵和值矩阵,并根据预设的随机失活算法和所述词向量矩阵生成注意力矩阵,以及根据所述查询矩阵、键矩阵、值矩阵和注意力矩阵,确定所述样本语句的多个字词之间的关注程度的概率分布矩阵;

根据所述概率分布矩阵调整所述Transformer模型的模型参数,直至所述Transformer模型收敛;

获取待预测的目标语句的词向量矩阵,将所述目标语句的词向量矩阵输入至收敛的所述Transformer模型进行处理,得到预测向量矩阵。

在一个实施例中,所述处理器在实现所述根据预设的随机失活算法和所述词向量矩阵生成注意力矩阵时,用于实现:

获取所述词向量矩阵的矩阵尺寸和预设的最大矩阵尺寸;

根据所述矩阵尺寸和所述最大矩阵尺寸,生成随机概率矩阵;

确定对所述随机概率矩阵的每个行向量中的概率值进行随机失活的目标个数;

根据所述随机概率矩阵和所述目标个数,生成注意力矩阵。

在一个实施例中,所述处理器在实现所述根据所述矩阵尺寸和所述最大矩阵尺寸,生成随机概率矩阵时,用于实现:

确定所述词向量矩阵的矩阵尺寸,所述矩阵尺寸包括矩阵行数和矩阵列数;

随机生成对应所述矩阵行数和矩阵列数的多个概率值,得到目标概率矩阵;

根据所述最大矩阵尺寸和预设标识对所述目标概率矩阵进行扩充,得到矩阵尺寸为所述最大矩阵尺寸的随机概率矩阵。

在一个实施例中,所述处理器在实现所述根据所述随机概率矩阵和所述目标个数,生成注意力矩阵时,用于实现:

确定所述随机概率矩阵的每个行向量中的多个概率值被随机失活的历史次数;

根据每个所述行向量中的多个概率值被随机失活的历史次数,修正每个所述行向量中的多个概率值,得到新的随机概率矩阵;

从所述新的随机概率矩阵的每个所述行向量中选取所述目标个数的目标概率值;

将所述目标概率值替换为第一预设标识,并将除所述目标概率值之外的每个概率值替换为第二预设标识,得到注意力矩阵。

在一个实施例中,所述处理器在实现所述根据所述查询矩阵、键矩阵、值矩阵和注意力矩阵,确定所述样本语句的多个字词之间的关注程度的概率分布矩阵时,用于实现:

将所述查询矩阵与所述键矩阵进行点乘,得到转置矩阵;

通过所述注意力矩阵对所述转置矩阵进行调整,得到目标矩阵;

对所述目标矩阵进行归一化运算,并将所述值矩阵与经过归一化运算后的所述目标矩阵进行相乘,得到所述概率分布矩阵。

在一个实施例中,所述处理器在实现所述通过所述注意力矩阵对所述转置矩阵进行调整,得到目标矩阵时,用于实现:

获取预设调整公式,所述预设调整公式为

将所述注意力矩阵和所述转置矩阵代入所述预设调整公式进行计算,得到目标矩阵。

在一个实施例中,所述处理器在实现所述根据所述概率分布矩阵调整所述Transformer模型的模型参数,直至所述Transformer模型收敛时,用于实现:

根据所述概率分布矩阵计算所述Transformer模型的损失函数;

通过所述损失函数更新所述Transformer模型的模型参数;

根据所述Transformer模型的模型参数确定所述Transformer模型是否收敛;

若确定所述Transformer模型未收敛,则继续通过样本语句的词向量矩阵对所述Transformer模型进行训练,直至确定所述Transformer模型收敛。

需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述服务器的具体工作过程,可以参考前述数据预测方法实施例中的对应过程,在此不再赘述。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序中包括程序指令,所述程序指令被执行时所实现的方法可参照本申请数据预测方法的各个实施例。

其中,所述计算机可读存储介质可以是前述实施例所述的服务器的内部存储单元,例如所述服务器的硬盘或内存。所述计算机可读存储介质也可以是所述服务器的外部存储设备,例如所述服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。

应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 基于Transformer模型的数据预测方法、装置、服务器及存储介质
  • 基于预测模型的费用预测方法、装置、服务器及存储介质
技术分类

06120113240574