基于bert的序列生成方法及装置

文档序号:136536 发布日期:2021-10-22 浏览:12次 >En<

阅读说明:本技术 基于bert的序列生成方法及装置 (Sequence generation method and device based on BERT ) 是由 张志锐 骆卫华 陈博兴 于 2020-04-17 设计创作,主要内容包括:本发明公开了一种基于BERT的序列生成方法及装置,涉及自然语言处理技术领域,本发明的主要目的在于利用BERT模型实现对序列生成任务的处理。本发明主要的技术方案为:获取基于BERT模型构建的序列生成模型;设置所述序列生成模型的迭代参数;向所述序列生成模型输入第一序列数据;由所述序列生成模型根据所述第一序列数据以及迭代参数,生成第二序列数据。(The invention discloses a sequence generation method and a sequence generation device based on BERT, relates to the technical field of natural language processing, and mainly aims to realize the processing of a sequence generation task by utilizing a BERT model. The main technical scheme of the invention is as follows: acquiring a sequence generation model constructed based on a BERT model; setting iteration parameters of the sequence generation model; inputting first sequence data into the sequence generation model; and generating second sequence data according to the first sequence data and the iteration parameters by the sequence generation model.)

基于BERT的序列生成方法及装置

技术领域

本发明涉及自然语言处理技术领域,尤其涉及一种基于BERT的序列生成方法及装置。

背景技术

BERT模型是谷歌提出的基于双向Transformer构建的语言模型。BERT模型是将预训练模型和下游任务模型结合在一起的,也就是说在做下游任务时仍然使用BERT模型。BERT的全称为Bidirectional Encoder Representations from Transformers,即基于Transformer的双向编码器表征,其中,双向的意思表示它在处理一个词的时候,能考虑到该词前面和后面单词的信息,从而获取上下文的语义。BERT通过联合调节所有层中的上下文来预先训练深度双向表示,因此,预训练的BERT表示可以通过一个额外的输出层进行微调以迅速适应下游任务。

但是,根据BERT模型的上述结构,该模型目前所能够处理的自然语言处理任务主要集中在文本分类任务,比如情感分类;序列标注任务,比如分词实时识别、词性标注等,并不能处理序列生成任务,比如句子简化、机器翻译等任务。而现有的序列生成模型在处理序列生成任务时采用的是单向从左到右的解码方式,使得BERT模型的训练目标与生成方式与现有的序列生成模型存在明显差异,不能很好地将BERT模型应用于序列生成任务。

发明内容

鉴于上述问题,本发明提出了一种基于BERT的序列生成方法及装置,主要目的在于利用BERT模型实现对序列生成任务的处理。

为达到上述目的,本发明主要提供如下技术方案:

一方面,本发明提供一种基于BERT的序列生成方法,具体包括:

获取基于BERT模型构建的序列生成模型;

设置所述序列生成模型的迭代参数;

向所述序列生成模型输入第一序列数据;

由所述序列生成模型根据所述第一序列数据以及迭代参数,生成第二序列数据。

另一方面,本发明提供一种基于BERT的序列生成装置,具体包括:

获取单元,用于获取基于BERT模型构建的序列生成模型;

设置单元,用于设置所述获取单元得到的序列生成模型的迭代参数;

输入单元,用于向所述获取单元得到的序列生成模型输入第一序列数据;

生成单元,用于由所述序列生成模型根据所述输入单元输入的第一序列数据以及设置单元得到的迭代参数,生成第二序列数据。

另一方面,本发明提供一种基于BERT的序列生成模型,所述序列生成模型由第一BERT模型与第二BERT模型级联构成,其中,第一BERT模型的输入为所述序列生成模型的输入,第一BERT模型的输出为所述序列生成模型的输出序列的长度以及输出序列向量;第二BERT模型的输入为所述第一BERT模型输出的输出序列向量以及预设掩码参数,所述预设掩码参数用于将所述输出序列向量中的指定向量进行掩码操作,第二BERT模型的输出为对经过掩码操作的指定向量的预测结果。

另一方面,本发明提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述的基于BERT的序列生成方法。

借由上述技术方案,本发明提供的一种基于BERT的序列生成方法及装置,通过获取基于BERT模型构建的序列生成模型,实现在自然语言处理任务中将BERT模型应用于序列生成任务,提高序列生成任务的处理效果。本发明在处理序列生成任务时,除了需要构建基于BERT模型的序列生成模型外,还需要规定该模型的具体应用方式,相对于现有的BERT模型仅应用于处理分类任务,本发明通过设置对模型迭代参数的设置,控制模型的迭代次数,以此利用原BERT模型的输出逐步确定所要生成的序列数据,实现了将BERT模型应用于序列生成任务的目的。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的

具体实施方式

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提出的一种基于BERT的序列生成方法的流程图;

图2示出了本发明实施例提出的一种序列生成模型的结构框图;

图3示出了本发明实施例提出的一种序列生成模型处理序列生成任务过程中的迭代过程示意图;

图4示出了本发明实施例提出的一种基于BERT的序列生成装置的组成框图;

图5示出了本发明实施例提出的另一种基于BERT的序列生成装置的组成框图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

自然语言处理是研究语言能力和语言应用的模型,通过建立计算机算法框架来实现,并通过训练完善、测评,最终用于各种实用系统。自然语言处理的模型所应用的场景包括信息检索、机器翻译、文档分类、信息抽取、文本挖掘等。因而语言模型的训练在自然语言处理的任务中有着重要的作用。目前,预训练表示方法在处理自然语言处理任务方面取得了显著进步,而现有的预训练表示(pre-trained representations)的方法都是单向语言模型。也就是说每个词只能利用该词之前的词信息进行训练,这样的约束条件严重限制了pre-trained representations的表示能力。因而,BERT模型的提出可以解决上述的约束,BERT是一个MASK model,BERT将随机的mask替换输入序列中的词,目标就是利用上下文信息(相对于传统自左向右的语言模型,BERT模型可以同时使用masked词左右的上下文进行预测)预测被mask的词。但是,目前关于BERT模型的使用还仅限于对分类任务的处理,并不能处理序列生成任务。

基于上述对BRET模型的理解,本发明实施例提供的一种基于BERT的序列生成方法,其是在BERT模型的基础上进行改进,使得所改进的BERT模型能够有效地处理序列生成任务。本方法具体步骤如图1所示,该方法包括:

步骤101、获取基于BERT模型构建的序列生成模型。

由于本发明实施例中的序列生成模型是基于BERT模型构建的,因此,该序列生成模型在生成序列的过程中,并不是单向预测的,而是通过双向的上下文关系预测得到的输出序列。也就是说,该序列生成模型的序列生成方式并不是传统的由左向右预测,而是通过对左右的上下文来预测输出序列,使得该模型的预测效果更佳。

此外,由于BERT模型具有通过微调模型参数可以快速适应不同应用场景的自然语言处理任务,因此,本步骤中的序列生成模型同样可以用过微调模型参数来适应不同应用场景中序列生成任务,即,当一个应用场景中训练样本不充足时,本步骤中的序列生成模型也可以通过微调模型参数来适应该应用场景,是其适用新生的且缺少训练样本的应用场景。因此,本步骤中的序列生成模型在经过训练后,可以将其作为预训练好的模型通过微调模型参数而快速地应用于其他的序列生成任务场景。

步骤102、设置序列生成模型的迭代参数。

由于现有BERT模型主要应用于对输入序列的分类任务,其输出主要是对应的类别表示,因此,本发明实施例中的序列生成模型在处理输入序列时,其输出主要体现在对输出序列长度的预测以及对输出序列中各个向量的向量值得预测,即将BERT中对输出的类别表示应用到对所要生成序列中个别向量的预测。由于输出序列的长度一般会大于类别表示的分类种类,因此,本实施例中是通过多次的迭代计算来逐步确定输出序列的,迭代的次数决定了每次迭代所需要确定的序列向量的个数。

步骤103、向序列生成模型输入第一序列数据。

步骤104、由序列生成模型根据所述第一序列数据以及迭代参数,生成第二序列数据。

其中,序列生成模型的具体处理过程中,主要应用的是BERT模型中针对词向量的处理方式,具体的,先根据第一序列数据来确定输出序列的长度,再根据所设置的迭代参数,确定每次处理后所确定的输出序列中的向量,通过多次迭代处理确定出完整的输出序列,并将其确定为第二序列数据并输出。

通过上述实施例的说明,本发明提供的一种基于BERT的序列生成方法,是通过对BERT模型的改进,得到一种可以用于序列生成任务的双向语言模型,其所输出的序列中的词向量是通过序列中的左右上下文信息得到的,使得所输出的第二序列数据具有更好的自然语言表示,更利于理解。本发明实施例可以应用于多种序列生成任务的场景,比如,句子翻译,句子解释或简化,问答对话等等。

进一步的,对于上述图1中所述的序列生成模型,在本发明实施例中是基于BERT模型所创建的,具体的,该序列生成模型可以是由多个BERT模型组合构建的,其结构的一种实现方式如图2所示,包括第一BERT模型与第二BERT模型,通过将第一BERT模型与第二BERT模型级联构成序列生成模型,其中,第一BERT模型的输入为所述序列生成模型的输入,第一BERT模型的输出为所述序列生成模型的输出序列的长度以及输出序列向量;第二BERT模型的输入为所述第一BERT模型输出的输出序列向量以及预设掩码参数,所述预设掩码参数用于将所述输出序列向量中的指定向量进行掩码操作,第二BERT模型的输出为对经过掩码操作的指定向量的预测结果。对应于图2,假设序列X为序列生成模型输入序列(第一序列数据);序列Y为序列生成模型所生成的输出序列(第二序列数据),那么,第一BERT模型的输入为序列X,输出为Yl以及序列Y对应的序列向量T,而第二BERT模型的输入为序列向量T与Yo输出为Ym,其中,Yl为第一BERT模型输出的序列向量T的长度,Yo为输入第二BERT模型的预设掩码参数,通过该预设掩码参数可以确定将向量序列T进行掩码的向量个数,Ym为对被掩码的向量进行预测所得到的向量值。

通过上述对序列生成模型的结构说明可以看出,第一BERT模型用于根据输出序列来预测输出序列的长度,以及对输出序列中各个位置向量的向量值进行初始化预测,将该预测结果作为第二BERT模型的输入;而第二BERT模型用于对输出序列中各个位置向量进行迭代预测,确定各个位置向量的向量值,而对于Yo则仅在该序列生成模型的训练阶段设置,即该Yo的值是由训练样本所提供的,为此,本发明实施例中所提出的序列生成模型的训练样本需要包括:输入序列,预设掩码参数以及向量值,其中,预设掩码参数为将第一BERT模型输出序列中指定向量进行掩码操作的向量个数,所述向量值为经过掩码操作的指定向量对应的向量值。对应于图2所示,一个训练样本的组成应为(X,Yo,Ym)。

而当该序列生成模型完成训练应用于序列生成任务时,第一BERT模型输出的序列向量T将全部被掩码,即,Yo将根据T的长度Yl确定,通过多次迭代逐步确定T中各个位置向量的向量值。

进一步的,本发明实施例中的序列生成模型在训练过程中,由于需要设置预设掩码参数,因此,需要确定模型的输出序列长度,而对于现有的BERT模型则不需要对此进行预测,为此,本发明实施例在第一BERT模型的输入序列的开头增加预设标识,使得第一BERT模型能够根据该预设标识确定输出序列的长度,其中,输入序列包括在样本的输入X前增加预设标识,以及在第一序列数据前增加预设标识。具体的,该预设标识为固定标识,其不随模型的输入序列变化而改变,序列生成模型通过识别该预设标识,将可以根据所输入的序列向量以及模型所应用的环境参数来确定输出序列向量的长度。比如,对于同样的输入序列:你好,在翻译环境下,其输出序列为:hello,长度为1,而在对话环境下,其输出序列则可以为:早上好,其长度为3。可见,通过该预设标识来确定输出序列的长度是需要训练该模型的环境参数。

进一步的,在上述的序列生成模型处理序列生成任务的过程中,对第二序列数据的预测主要应用了BERT模型中的掩码预测算法,即将输入序列中的个别向量掩码,并预测所掩码向量的向量值。具体的,序列生成模型的处理过程包括:

首先,根据第一序列数据中开头的预设标识确定第二序列数据的长度。

为此,需要对第一序列数据中开头位置的向量进行识别判断,当确定该向量为预设标识时,才处理该第一序列数据,并确定第二序列数据的长度。

之后,根据第二序列数据的长度将经过掩码处理的向量序列作为第二序列数据。

本实施例中,将使用[MASK]标识替代第二序列数据中的所有向量,也就是说,根据上述确定的长度生成由相同数量[MASK]标识所组成的序列。

第三,根据迭代参数以及上述的长度确定每次迭代后需要确认的向量个数n。

迭代参数具体为迭代次数,具体的确定方式不做限定,可以是平均数,也可以是百分比,比如,长度为10,迭代次数为3,那么根据平均数确定每次迭代需确认的向量个数至少为3,即第一次迭代确定3个向量,第二次迭代确定3个向量,第三次迭代确定4个向量,而根据百分比(50%)确定,则第一次迭代确定5个向量,第二次迭代确定3个向量,第三次迭代确定2个向量。

最后,根据向量个数n,在每次迭代过程中将预测概率最高的n个向量确定为第二序列数据中对应的向量。

基于上述的对序列生成模型处理序列生成任务的说明,以下将通过图3所示内容对照说明处理序列生成任务时通过迭代确定第二序列数据的过程。

序列生成模型在接收到第一序列数据后,经过识别其开头位置的预设标识,即图2中X开头位置的标识[CLS],将确定第二序列数据的长度,假设该长度为5,那么此时,序列生成模型中的第二BERT模型的输入为长度为5的向量序列,且该向量序列中的各个向量均由[MASK]标识所替换,即图3中下方的输入序列,经过第一次迭代处理后,得到每个位置上的向量值,以及对应的概率,即该位置向量为该向量值得概率。假设该序列生成模型的迭代参数为3次,那么,根据计算可知,在第一次迭代处理后,需要确定的向量个数n为2,若所预测的序列向量为:“what causes causes headache!”所对应的概率为“0.7,0.5,0.1,0.8,0.5”,那么选出概率最高的两个向量,即第一个与第四个,得到向量序列“what[MASK][MASK]headache[MASK]”,将其作为第二次迭代的输入序列,重复计算,经过3次迭代后,将5个向量全部确定,从而得到第二序列数据:“what causes a headache?”,此处对后两次的迭代过程说明省略,其余第一次迭代处理的方式相同。

进一步的,对于图1所示实施例中的步骤102,设置迭代参数的具体方式,本实施例不限定其具体的设置方式,其可以是由人工设定该迭代参数,也可以是通过计算确定,即根据预测的第二序列数据的长度来设置迭代参数,如此,该迭代次数可以随长度的变化而改变,如此,对于较长的序列,其可以通过更多次的迭代来确定各个位置向量的向量值,使得第二序列数据所表示的自然语言的语义更准确,更容易理解。

进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种基于BERT的序列生成装置,该装置主要目的在于利用BERT模型实现对序列生成任务的处理。为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置如图4所示,具体包括:

获取单元21,用于获取基于BERT模型构建的序列生成模型;

设置单元22,用于设置所述获取单元21得到的序列生成模型的迭代参数;

输入单元23,用于向所述获取单元21得到的序列生成模型输入第一序列数据;

生成单元24,用于由所述序列生成模型根据所述输入单元23输入的第一序列数据以及设置单元22得到的迭代参数,生成第二序列数据。

进一步的,如图5所示,所述装置还包括:

创建单元25,用于创建序列生成模型,其中,所述序列生成模型包括第一BERT模型与第二BERT模型;

训练单元26,用于利用预设训练样本训练所述创建单元25构建的序列生成模型。

进一步的,所述创建单元25具体用于,将第一BERT模型与第二BERT模型级联构成序列生成模型,其中,第一BERT模型的输入为所述序列生成模型的输入,第一BERT模型的输出为所述序列生成模型的输出序列的长度以及输出序列向量;第二BERT模型的输入为所述第一BERT模型输出的输出序列向量以及预设掩码参数,所述预设掩码参数用于将所述输出序列向量中的指定向量进行掩码操作,第二BERT模型的输出为对经过掩码操作的指定向量的预测结果。

进一步的,所述预设训练样本包括:输入序列,预设掩码参数以及向量值,其中,预设掩码参数为将第一BERT模型输出序列中指定向量进行掩码操作的向量个数,所述向量值为经过掩码操作的指定向量对应的向量值。

进一步的,如图5所示,所述训练单元26还用于,在所述输入序列的开头增加预设标识,其中,所述第一BERT模型根据所述预设标识确定输出序列的长度。

进一步的,所述输入单元23还用于,在所述第一序列数据的开头增加预设标识,将含有所述预设标识的第一序列数据输入所述序列生成模型。

进一步的,所述生成单元24具体用于:

由序列生成模型根据所述第一序列数据中开头的预设标识确定第二序列数据的长度;

根据所述长度将经过掩码处理的向量序列作为第二序列数据;

根据所述迭代参数以及所述长度确定每次迭代后需要确认的向量个数n;

根据所述向量个数n,在每次迭代过程中将预测概率最高的n个向量确定为第二序列数据中对应的向量。

另外,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一个实施例提供的基于BERT的序列生成方法。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的较佳实施方式。

此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:物料编码的生成方法及生成装置、电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!