用于文本分析的模型训练方法、文本分类方法和装置与流程

文档序号:18257926发布日期:2019-07-24 10:26阅读:219来源:国知局
用于文本分析的模型训练方法、文本分类方法和装置与流程

本说明书一个或多个实施例涉及计算机领域,尤其涉及用于文本分析的模型训练方法、文本分类方法和装置。



背景技术:

转换器(Transformer)模型是Google的Ashish Vaswani等人在2017年提出的一种神经网络模型,可用于序列数据的深度建模,可替代长短记忆网络(long short term memory,LSTM)模型,具有运行速度快的特点。

Transformer模型只从单向处理序列,在处理序列中每个位置时都只考虑前面所有位置的信息,没有考虑后面位置的信息,这极大地限制了模型的鲁棒性。

因此,希望能有改进的方案,在对序列数据进行深度建模时,能够利用Transformer模型运行速度快的特点,并且保证模型的鲁棒性。



技术实现要素:

本说明书一个或多个实施例描述了一种用于文本分析的模型训练方法、文本分类方法和装置,在对序列数据进行深度建模时,能够利用Transformer模型运行速度快的特点,并且保证模型的鲁棒性。

第一方面,提供了一种用于文本分析的模型训练方法,方法包括:

利用第一双向转换器模型,针对第一训练语句中的每个词,基于该词的初始词向量,以及该词在所述第一训练语句中的上文信息,得到该词对应的正向向量;

利用所述第一双向转换器模型,针对所述第一训练语句中的每个词,基于该词的初始词向量,以及该词在所述第一训练语句中的下文信息,得到该词对应的反向向量;

根据所述第一训练语句中的每个词的位置,将该位置的前一个词的正向向量和该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;

利用第一语言模型,针对所述第一训练语句中每个位置对应的目标词向量,预测得到该位置对应的词的第一概率;

通过使与所述第一概率相关的第一损失函数极小化,对所述第一双向转换器模型和所述第一语言模型进行训练,得到训练后的第二双向转换器模型和第二语言模型。

在一种可能的实施方式中,所述利用所述第一双向转换器模型,针对所述第一训练语句中的每个词,基于该词的初始词向量,以及该词在所述第一训练语句中的下文信息,得到该词对应的反向向量,包括:

利用所述第一双向转换器模型,针对所述第一训练语句中的每个词,使用自注意力机制,基于该词的初始词向量,以及该词在所述第一训练语句中的下文信息,从不同角度抽取多个重要信息;

将所述多个重要信息中每个重要信息对应的向量进行拼接,得到该词对应的反向向量。

第二方面,提供了一种用于文本分析的模型训练方法,方法包括:

利用如第一方面所述的方法训练后的所述第二双向转换器模型,针对第二训练语句中的每个词,基于该词的初始词向量,以及该词在所述第二训练语句中的上文信息,得到该词对应的正向向量;

利用所述第二双向转换器模型,针对所述第二训练语句中的每个词,基于该词的初始词向量,以及该词在所述第二训练语句中的下文信息,得到该词对应的反向向量;

根据所述第二训练语句中的每个词的位置,将该位置的前一个词的正向向量和该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;

利用如第一方面所述的方法训练后的所述第二语言模型,针对所述第二训练语句中每个位置对应的目标词向量,预测得到该位置对应的词的第一概率;以及,根据所述第二训练语句中每个位置对应的目标词向量,生成所述第二训练语句对应的句子的表示向量;

利用多分类模型,基于所述第二训练语句对应的句子的表示向量,预测所述第二训练语句对应标签的第二概率;

通过使第一损失函数与第二损失函数的和极小化,对所述第二双向转换器模型、所述第二语言模型和所述多分类模型进行训练,得到第三双向转换器模型、第三语言模型和第二多分类模型;其中,所述第一损失函数与所述第一概率相关,所述第二损失函数与所述第二概率相关。

在一种可能的实施方式中,所述利用所述第二双向转换器模型,针对所述第二训练语句中的每个词,基于该词的初始词向量,以及该词在所述第二训练语句中的下文信息,得到该词对应的反向向量,包括:

利用所述第二双向转换器模型,针对所述第二训练语句中的每个词,使用自注意力机制,基于该词的初始词向量,以及该词在所述第二训练语句中的下文信息,从不同角度抽取多个重要信息;

将所述多个重要信息中每个重要信息对应的向量进行拼接,得到该词对应的反向向量。

在一种可能的实施方式中,所述根据所述第二训练语句中每个位置对应的目标词向量,生成所述第二训练语句对应的句子的表示向量,包括:

将所述第二训练语句中每个位置对应的目标词向量取均值,将所述均值作为所述第二训练语句对应的句子的表示向量。

在一种可能的实施方式中,所述通过使所述第一损失函数与第二损失函数的和极小化,对所述第二双向转换器模型、所述第二语言模型和所述多分类模型进行训练,包括:

通过梯度下降法使所述第一损失函数与第二损失函数的和极小化,以确定所述第二双向转换器模型、所述第二语言模型和所述多分类模型的模型参数。

第三方面,提供了一种文本分类方法,方法包括:

利用如第二方面所述的方法训练后的所述第三双向转换器模型,针对待分类语句中的每个词,基于该词的初始词向量,以及该词在所述待分类语句中的上文信息,得到该词对应的正向向量;

利用所述第三双向转换器模型,针对所述待分类语句中的每个词,基于该词的初始词向量,以及该词在所述待分类语句中的下文信息,得到该词对应的反向向量;

根据所述待分类语句中的每个词的位置,将该位置的前一个词的正向向量和该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;

根据所述待分类语句中每个位置对应的目标词向量,生成所述待分类语句对应的句子的表示向量;

利用如第二方面所述的方法训练后的所述第二多分类模型,基于所述待分类语句对应的句子的表示向量,对所述待分类语句进行文本分类。

第四方面,提供了一种用于文本分析的模型训练装置,装置包括:

正向向量生成单元,用于利用第一双向转换器模型,针对第一训练语句中的每个词,基于该词的初始词向量,以及该词在所述第一训练语句中的上文信息,得到该词对应的正向向量;

反向向量生成单元,用于利用所述第一双向转换器模型,针对所述第一训练语句中的每个词,基于该词的初始词向量,以及该词在所述第一训练语句中的下文信息,得到该词对应的反向向量;

词向量生成单元,用于根据所述第一训练语句中的每个词的位置,将所述正向向量生成单元得到的该位置的前一个词的正向向量和所述反向向量生成单元得到的该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;

预测单元,用于利用第一语言模型,针对所述词向量生成单元得到的所述第一训练语句中每个位置对应的目标词向量,预测得到该位置对应的词的第一概率;

模型训练单元,用于通过使与所述预测单元得到的第一概率相关的第一损失函数极小化,对所述第一双向转换器模型和所述第一语言模型进行训练,得到训练后的第二双向转换器模型和第二语言模型。

第五方面,提供了一种用于文本分析的模型训练装置,装置包括:

正向向量生成单元,用于利用如第一方面所述的方法训练后的所述第二双向转换器模型,针对第二训练语句中的每个词,基于该词的初始词向量,以及该词在所述第二训练语句中的上文信息,得到该词对应的正向向量;

反向向量生成单元,用于利用所述第二双向转换器模型,针对所述第二训练语句中的每个词,基于该词的初始词向量,以及该词在所述第二训练语句中的下文信息,得到该词对应的反向向量;

词向量生成单元,用于根据所述第二训练语句中的每个词的位置,将所述正向向量生成单元得到的该位置的前一个词的正向向量和所述反向向量生成单元得到的该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;

第一预测单元,用于利用如第一方面所述的方法训练后的所述第二语言模型,针对所述第二训练语句中每个位置对应的目标词向量,预测得到该位置对应的词的第一概率;

句子向量生成单元,用于根据所述词向量生成单元得到的所述第二训练语句中每个位置对应的目标词向量,生成所述第二训练语句对应的句子的表示向量;

第二预测单元,用于利用多分类模型,基于所述句子向量生成单元得到的所述第二训练语句对应的句子的表示向量,预测所述第二训练语句对应标签的第二概率;

模型训练单元,用于通过使第一损失函数与第二损失函数的和极小化,对所述第二双向转换器模型、所述第二语言模型和所述多分类模型进行训练,得到第三双向转换器模型、第三语言模型和第二多分类模型;其中,所述第一损失函数与所述第一概率相关,所述第二损失函数与所述第二概率相关。

第六方面,提供了一种文本分类装置,装置包括:

正向向量生成单元,用于利用如第二方面所述的方法训练后的所述第三双向转换器模型,针对待分类语句中的每个词,基于该词的初始词向量,以及该词在所述待分类语句中的上文信息,得到该词对应的正向向量;

反向向量生成单元,用于利用所述第三双向转换器模型,针对所述待分类语句中的每个词,基于该词的初始词向量,以及该词在所述待分类语句中的下文信息,得到该词对应的反向向量;

词向量生成单元,用于根据所述待分类语句中的每个词的位置,将所述正向向量生成单元得到的该位置的前一个词的正向向量和所述反向向量生成单元得到的该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;

句子向量生成单元,用于根据所述词向量生成单元得到的所述待分类语句中每个位置对应的目标词向量,生成所述待分类语句对应的句子的表示向量;

文本分类单元,用于利用如第二方面所述的方法训练后的所述第二多分类模型,基于所述句子向量生成单元得到的所述待分类语句对应的句子的表示向量,对所述待分类语句进行文本分类。

第七方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面或第三方面的方法。

第八方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面或第三方面的方法。

通过本说明书实施例提供的方法和装置,一方面,首先利用第一双向转换器模型,针对第一训练语句中的每个词,基于该词的初始词向量,以及该词在所述第一训练语句中的上文信息,得到该词对应的正向向量;接着利用所述第一双向转换器模型,针对所述第一训练语句中的每个词,基于该词的初始词向量,以及该词在所述第一训练语句中的下文信息,得到该词对应的反向向量;然后根据所述第一训练语句中的每个词的位置,将该位置的前一个词的正向向量和该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;再利用第一语言模型,针对所述第一训练语句中每个位置对应的目标词向量,预测得到该位置对应的词的第一概率;最后通过使与所述第一概率相关的第一损失函数极小化,对所述第一双向转换器模型和所述第一语言模型进行训练,得到训练后的第二双向转换器模型和第二语言模型。本说明书实施例中,与通常的单向Transformer模型不同,双向转换器模型充分考虑了每个词的上下文信息,而非只考虑上文信息,在对序列数据进行深度建模时,能够利用Transformer模型运行速度快的特点,并且保证模型的鲁棒性。

另一方面,首先利用如第一方面所述的方法训练后的所述第二双向转换器模型,针对第二训练语句中的每个词,基于该词的初始词向量,以及该词在所述第二训练语句中的上文信息,得到该词对应的正向向量;接着利用所述第二双向转换器模型,针对所述第二训练语句中的每个词,基于该词的初始词向量,以及该词在所述第二训练语句中的下文信息,得到该词对应的反向向量;然后根据所述第二训练语句中的每个词的位置,将该位置的前一个词的正向向量和该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;再利用如第一方面所述的方法训练后的所述第二语言模型,针对所述第二训练语句中每个位置对应的目标词向量,预测得到该位置对应的词的第一概率;以及,根据所述第二训练语句中每个位置对应的目标词向量,生成所述第二训练语句对应的句子的表示向量;接着利用多分类模型,基于所述第二训练语句对应的句子的表示向量,预测所述第二训练语句对应标签的第二概率;最后通过使第一损失函数与第二损失函数的和极小化,对所述第二双向转换器模型、所述第二语言模型和所述多分类模型进行训练,得到第三双向转换器模型、第三语言模型和第二多分类模型;其中,所述第一损失函数与所述第一概率相关,所述第二损失函数与所述第二概率相关。本说明书实施例中,不仅在对序列数据进行深度建模时,能够利用Transformer模型运行速度快的特点,并且保证模型的鲁棒性;而且,在第一方面对双向转换器模型和语言模型进行模型训练的基础上,进一步对双向转换器模型、语言模型和多分类模型进行联合训练,达到更好的模型训练效果。

又一方面,首先利用如第二方面所述的方法训练后的所述第三双向转换器模型,针对待分类语句中的每个词,基于该词的初始词向量,以及该词在所述待分类语句中的上文信息,得到该词对应的正向向量;接着利用所述第三双向转换器模型,针对所述待分类语句中的每个词,基于该词的初始词向量,以及该词在所述待分类语句中的下文信息,得到该词对应的反向向量;然后根据所述待分类语句中的每个词的位置,将该位置的前一个词的正向向量和该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;再根据所述待分类语句中每个位置对应的目标词向量,生成所述待分类语句对应的句子的表示向量;最后利用如第二方面所述的方法训练后的所述第二多分类模型,基于所述待分类语句对应的句子的表示向量,对所述待分类语句进行文本分类。本说明书实施例中,在对序列数据进行深度建模时,能够利用Transformer模型运行速度快的特点,并且保证模型的鲁棒性,并且经过两阶段训练后的双向转换器模型和多分类模型,有利于得到较佳的文本分类结果。

附图说明

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

图1为本说明书披露的一个实施例的实施场景示意图;

图2示出根据一个实施例的用于文本分析的模型训练方法流程图;

图3示出根据另一个实施例的用于文本分析的模型训练方法流程图;

图4示出根据另一个实施例的文本分类方法流程图;

图5为本说明书实施例提供的单向Transformer模型的内部结构示意图;

图6示出根据一个实施例的用于文本分析的模型训练装置的示意性框图;

图7示出根据另一个实施例的用于文本分析的模型训练装置的示意性框图;

图8示出根据另一个实施例的文本分类装置的示意性框图。

具体实施方式

下面结合附图,对本说明书提供的方案进行描述。

图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及文本分类,以及对用于文本分析的模型的训练。参照图1,该实施场景涉及三类模型:双向转换器模型(也称为双向Transformer模型)、语言模型以及多分类模型(也称为多分类器),在对模型进行训练时,可以多个模型联合训练形成多任务学习。

其中,文本分类:文本分类是指将用户输入的文本分类到预先定义好的若干类中的一个或多个类的任务。

语言模型:语言模型通过计算一个句子在自然语言中出现的概率来判断该句子是否属于正确的自然语言,对信息检索,机器翻译,语音识别等任务有着重要的作用。神经语言模型是语言模型的一种,它利用神经网络建模每个句子出现的概率。通过从大量语料中学习,神经语言模型可以学习到语言的内部规律和知识。

多任务学习:多任务学习是一个机器学习研究领域,旨在将多种相关的任务放到同一个模型或框架中联合学习,达到任务之间知识迁移提高每个任务的效果。

如图1所示,模型的训练分为两个阶段:预训练阶段以及微调阶段。

在预训练阶段,对于由N个词构成的句子S={w1,w2,…,wN},双向Transformer模型首先将S转换成N个向量{v1,v2,…,vN},其中每个向量表示一个词的输出向量,该向量的产生充分考虑了每个词的上下文信息。然后用每个词的输出向量vi通过语言模型预测当前位置的词wi,从而基于预测结果对双向Transformer模型和语言模型进行模型训练。

在微调阶段,使用有标注的文本数据,同样经过双向Transformer模型将句子S={w1,w2,…,wN}转换成向量{v1,v2,…,vN},然后将所有词输出向量{v1,v2,…,vN}的均值作为句子的表示向量,将句子的表示向量作为多分类器的输入,经过多分类器进行文本分类,同时也将每个词的输出向量作为语言模型的输入,经过语言模型预测当前词,微调阶段分类任务和语言模型预测任务形成多任务学习,可以提高多分类模型的泛化能力。

在预测阶段,对于用户输入的句子,经过双向Transformer输出的向量取均值后得到句子的表示向量,将句子的表示向量输入多分类器中进行分类。

本说明书实施例中,首先预训练双向Transformer模型和语言模型,双向Transformer模型充分考虑每个词的上下文信息,而非只考虑上文信息。然后用预训练好的Transformer模型在文本分类任务上微调,从而提高模型的鲁棒性。

图2示出根据一个实施例的用于文本分析的模型训练方法流程图,该实施例可以对应于图1所示应用场景中提到的预训练阶段。如图2所示,该实施例中用于文本分析的模型训练方法包括以下步骤:

首先在步骤21,利用第一双向转换器模型,针对第一训练语句中的每个词,基于该词的初始词向量,以及该词在所述第一训练语句中的上文信息,得到该词对应的正向向量。可以理解的是,该步骤21中,获得每个词对应的正向向量的过程与单向Transformer模型类似。

接着在步骤22,利用所述第一双向转换器模型,针对所述第一训练语句中的每个词,基于该词的初始词向量,以及该词在所述第一训练语句中的下文信息,得到该词对应的反向向量。可以理解的是,该步骤22中,获得每个词对应的反向向量的过程中利用了该词的下文信息。

在一个示例中,利用所述第一双向转换器模型,针对所述第一训练语句中的每个词,使用自注意力机制,基于该词的初始词向量,以及该词在所述第一训练语句中的下文信息,从不同角度抽取多个重要信息;将所述多个重要信息中每个重要信息对应的向量进行拼接,得到该词对应的反向向量。

然后在步骤23,根据所述第一训练语句中的每个词的位置,将该位置的前一个词的正向向量和该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量。可以理解的是,每个位置对应的目标词向量既体现了该位置之前的上文,又体现了该位置之后的下文,鲁棒性好。

再在步骤24,利用第一语言模型,针对所述第一训练语句中每个位置对应的目标词向量,预测得到该位置对应的词的第一概率。可以理解的是,利用双向转换器模型得到第一训练语句中每个位置对应的目标词向量,再由语言模型根据目标词向量预测得到该位置对应的词的概率。

最后在步骤25,通过使与所述第一概率相关的第一损失函数极小化,对所述第一双向转换器模型和所述第一语言模型进行训练,得到训练后的第二双向转换器模型和第二语言模型。可以理解的是,模型训练采用的训练语句无需人工标注,便于利用广泛的无标注语料对模型进行训练。

通过本说明书实施例提供的方法,首先利用第一双向转换器模型,针对第一训练语句中的每个词,基于该词的初始词向量,以及该词在所述第一训练语句中的上文信息,得到该词对应的正向向量;接着利用所述第一双向转换器模型,针对所述第一训练语句中的每个词,基于该词的初始词向量,以及该词在所述第一训练语句中的下文信息,得到该词对应的反向向量;然后根据所述第一训练语句中的每个词的位置,将该位置的前一个词的正向向量和该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;再利用第一语言模型,针对所述第一训练语句中每个位置对应的目标词向量,预测得到该位置对应的词的第一概率;最后通过使与所述第一概率相关的第一损失函数极小化,对所述第一双向转换器模型和所述第一语言模型进行训练,得到训练后的第二双向转换器模型和第二语言模型。本说明书实施例中,与通常的单向Transformer模型不同,双向转换器模型充分考虑了每个词的上下文信息,而非只考虑上文信息,在对序列数据进行深度建模时,能够利用Transformer模型运行速度快的特点,并且保证模型的鲁棒性。

图3示出根据另一个实施例的用于文本分析的模型训练方法流程图,该实施例可以对应于图1所示应用场景中提到的微调阶段。如图3所示,该实施例中模型训练方法包括以下步骤:

首先在步骤31,利用图2所述的方法训练后的所述第二双向转换器模型,针对第二训练语句中的每个词,基于该词的初始词向量,以及该词在所述第二训练语句中的上文信息,得到该词对应的正向向量。可以理解的是,该步骤31中,获得每个词对应的正向向量的过程与单向Transformer模型类似。

接着在步骤32,利用所述第二双向转换器模型,针对所述第二训练语句中的每个词,基于该词的初始词向量,以及该词在所述第二训练语句中的下文信息,得到该词对应的反向向量。可以理解的是,该步骤32中,获得每个词对应的反向向量的过程中利用了该词的下文信息。

在一个示例中,利用所述第二双向转换器模型,针对所述第二训练语句中的每个词,使用自注意力机制,基于该词的初始词向量,以及该词在所述第二训练语句中的下文信息,从不同角度抽取多个重要信息;将所述多个重要信息中每个重要信息对应的向量进行拼接,得到该词对应的反向向量。

然后在步骤33,根据所述第二训练语句中的每个词的位置,将该位置的前一个词的正向向量和该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量。可以理解的是,每个位置对应的目标词向量既体现了该位置之前的上文,又体现了该位置之后的下文,鲁棒性好。

再在步骤34,利用图2所述的方法训练后的所述第二语言模型,针对所述第二训练语句中每个位置对应的目标词向量,预测得到该位置对应的词的第一概率。可以理解的是,利用双向转换器模型得到第二训练语句中每个位置对应的目标词向量,再由语言模型根据目标词向量预测得到该位置对应的词的概率。

再在步骤35,根据所述第二训练语句中每个位置对应的目标词向量,生成所述第二训练语句对应的句子的表示向量。可以理解的是,生成所述第二训练语句对应的句子的表示向量,结合了多个位置对应的目标词向量,而不仅仅是其中一个位置对应的目标词向量。

在一个示例中,将所述第二训练语句中每个位置对应的目标词向量取均值,将所述均值作为所述第二训练语句对应的句子的表示向量。

再在步骤36,利用多分类模型,基于所述第二训练语句对应的句子的表示向量,预测所述第二训练语句对应标签的第二概率。可以理解的是,标签为预先标注的文本分类的类别。

最后在步骤37,通过使第一损失函数与第二损失函数的和极小化,对所述第二双向转换器模型、所述第二语言模型和所述多分类模型进行训练,得到第三双向转换器模型、第三语言模型和第二多分类模型;其中,所述第一损失函数与所述第一概率相关,所述第二损失函数与所述第二概率相关。可以理解的是,模型训练采用的训练语句需人工标注,便于利用有标注语料对模型进一步训练。

在一个示例中,通过梯度下降法使所述第一损失函数与第二损失函数的和极小化,以确定所述第二双向转换器模型、所述第二语言模型和所述多分类模型的模型参数。

本说明书实施例提供的方法,首先利用图2所述的方法训练后的所述第二双向转换器模型,针对第二训练语句中的每个词,基于该词的初始词向量,以及该词在所述第二训练语句中的上文信息,得到该词对应的正向向量;接着利用所述第二双向转换器模型,针对所述第二训练语句中的每个词,基于该词的初始词向量,以及该词在所述第二训练语句中的下文信息,得到该词对应的反向向量;然后根据所述第二训练语句中的每个词的位置,将该位置的前一个词的正向向量和该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;再利用图2所述的方法训练后的所述第二语言模型,针对所述第二训练语句中每个位置对应的目标词向量,预测得到该位置对应的词的第一概率;以及,根据所述第二训练语句中每个位置对应的目标词向量,生成所述第二训练语句对应的句子的表示向量;接着利用多分类模型,基于所述第二训练语句对应的句子的表示向量,预测所述第二训练语句对应标签的第二概率;最后通过使第一损失函数与第二损失函数的和极小化,对所述第二双向转换器模型、所述第二语言模型和所述多分类模型进行训练,得到第三双向转换器模型、第三语言模型和第二多分类模型;其中,所述第一损失函数与所述第一概率相关,所述第二损失函数与所述第二概率相关。本说明书实施例中,不仅在对序列数据进行深度建模时,能够利用Transformer模型运行速度快的特点,并且保证模型的鲁棒性;而且,在第一方面对双向转换器模型和语言模型进行模型训练的基础上,进一步对双向转换器模型、语言模型和多分类模型进行联合训练,达到更好的模型训练效果。

图4示出根据另一个实施例的文本分类方法流程图,该实施例可以对应于图1所示应用场景中提到的预测阶段。如图4所示,该实施例中文本分类方法包括以下步骤:

首先在步骤41,利用图3所述的方法训练后的所述第三双向转换器模型,针对待分类语句中的每个词,基于该词的初始词向量,以及该词在所述待分类语句中的上文信息,得到该词对应的正向向量。可以理解的是,该步骤41中,获得每个词对应的正向向量的过程与单向Transformer模型类似。

接着在步骤42,利用所述第三双向转换器模型,针对所述待分类语句中的每个词,基于该词的初始词向量,以及该词在所述待分类语句中的下文信息,得到该词对应的反向向量。可以理解的是,该步骤42中,获得每个词对应的反向向量的过程中利用了该词的下文信息。

然后在步骤43,根据所述待分类语句中的每个词的位置,将该位置的前一个词的正向向量和该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量。可以理解的是,每个位置对应的目标词向量既体现了该位置之前的上文,又体现了该位置之后的下文,鲁棒性好。

再在步骤44,根据所述待分类语句中每个位置对应的目标词向量,生成所述待分类语句对应的句子的表示向量。可以理解的是,生成所述待分类语句对应的句子的表示向量,结合了多个位置对应的目标词向量,而不仅仅是其中一个位置对应的目标词向量。

最后在步骤45,利用图3所述的方法训练后的所述第二多分类模型,基于所述待分类语句对应的句子的表示向量,对所述待分类语句进行文本分类。可以理解的是,利用多分类模型,基于所述待分类语句对应的句子的表示向量,预测所述待分类语句对应每个类别的概率,取概率最大的类别作为文本分类的结果。

本说明书实施例提供的方法,首先利用图3所述的方法训练后的所述第三双向转换器模型,针对待分类语句中的每个词,基于该词的初始词向量,以及该词在所述待分类语句中的上文信息,得到该词对应的正向向量;接着利用所述第三双向转换器模型,针对所述待分类语句中的每个词,基于该词的初始词向量,以及该词在所述待分类语句中的下文信息,得到该词对应的反向向量;然后根据所述待分类语句中的每个词的位置,将该位置的前一个词的正向向量和该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;再根据所述待分类语句中每个位置对应的目标词向量,生成所述待分类语句对应的句子的表示向量;最后利用图3所述的方法训练后的所述第二多分类模型,基于所述待分类语句对应的句子的表示向量,对所述待分类语句进行文本分类。本说明书实施例中,在对序列数据进行深度建模时,能够利用Transformer模型运行速度快的特点,并且保证模型的鲁棒性,并且经过两阶段训练后的双向转换器模型和多分类模型,有利于得到较佳的文本分类结果。

下面将具体介绍前述实施例中涉及的三种模型:双向Transformer模型(简称双向Transformer)、语言模型和多分类模型(也称多分类器)。

其中,双向Transformer:

首先介绍传统Transformer(即单向Transformer)的工作原理,然后将其扩展到双向Transformer上。

1、单向Transformer

Transformer是Google的Ashish Vaswani等人提出的,用于将文本序列转换成向量,Transformer克服了LSTM处理文本时需要逐词计算的缺点,通过对每个词在其上文中使用注意力机制(attention mechanism)获取上文信息。在这个过程中,每个词的输出向量的计算是可以并行的。

图5为本说明书实施例提供的单向Transformer模型的内部结构示意图,参照图5:

Transformer模块的输入是一个向量序列X={x1,x2,…,xN},其中xi为第i个位置的表示向量。X首先经过多头自注意力模块(multi-head self attention)使每个词和其上文中每个词产生交互,给每个词加上其上文中与之相关的重要信息。多头自注意力模块由多个结构相同的自注意力模块组成,其中每个自注意力模块的计算过程如下:

首先用全相连层(feed forward)将每个词xi转换成两个向量ki和ti:

ki=tanh(Wqxi+b)

ti=tanh(Wvxi+b)

Wq和Wv为模型中可训练的参数。ki用于计算xi上文所有词{x1,…,xi-1}对于xi的重要性,ti则用于存储xi中的信息,提供给其他词使用:

得到的向量ci即为从上文中抽取的对xi有用的重要信息。多头自注意力机制即使用多个上述注意力模块,从不同角度给每个词xi从上文{x1,…,xi-1}中抽取重要信息。最后将所有注意力模块给每个词抽取的向量拼接成di,即为多头自注意力模块对于每个词的输出向量。

每个词的输出向量di再经过归一化层(layer normalization)-全相连层(feed forward)-归一化层之后得到输出向量li,即为xi经过Transformer模块转换之后的向量,计算过程如下:

li=LayerNorm(LayerNorm(xi+di)+W·LayerNorm(xi+di)

其中W为可训练的参数,LayerNorm用于对神经网络的一层做归一化,使层之间的信息流动更稳定。LayerNorm计算方式如下:

其中μ为一层神经网络中所有神经元的均值,σ为一层神经网络中所有神经元的标准差。

Transformer模块可以进行多层堆叠,下一层Transformer的输出作为上一层Transformer的输入,从而形成多层Transformer网络。Transformer网络的计算过程可以表示为

2、双向Transformer

双向Transformer是单向Transformer的扩展,体现在单向Transformer在注意力机制中只考虑上文信息,忽略了下文信息。而每个词下文的下文的信息对其本身也是有用的。因此双向Transformer从上下文两个方向建模句子,增加了模型的表达能力。其计算过程如下:

其中和分别表示从上、下文中抽取的对xi重要的信息。利用双向Transformer得到di之后,和单向Transformer一样,和也分别经过归一化层和全相连层得到双向Transformer对于xi的两个输出向量。经过多层双向Transformer之后,最后一个句子S={w1,w2,…,wN}被转换成两组向量和双向Transformer的计算过程可以表示为

其中,语言模型:

一个句子S={w1,w2,…,wN}经过多层双向Transformer之后转换成两组向量和可以通过语言模型任务来预训练模型,因为语言模型任务的数据不需要标注,因此非常容易获得大量数据对模型进行充分预训练。语言模型任务的目的是通过每个词xi上下文{x1,…,xi-1,xi+1,…,xN}来预测xi,使得模型学习到自然语言的内在规律,如果一个模型能够通过上下文来正确预测出每个词,那么这个模型就已经很好的学到了自然语言的内在规律。双向Transformer语言模型的计算过程如下:

首先将第i-1个词的正向向量和第i+1个词的反向向量拼接起来

然后用vi预测第i个词wi的概率:

其中WLM是语言模型中可训练的参数,WjLM表示WLM的第j行。

语言模型的损失函数为句子中所有词的交叉熵损失函数的均值

语言模型的目的是要极小化LLM,记双向Transformer中所有可训练参数集合为W,语言模型中所有可训练参数集合为WLM。W和WLM通过梯度下降法进行迭代优化:

预训练时通过迭代优化模型,直到LLM小于一个设定的阈值β(通常可以取0.1,0.01等),模型就训练好了,此时模型学到了自然语言的内在规律。γ1通常取0.0001量级的实数。

其中,多分类器:

在微调阶段,使用有真实标签的数据对经过预训练的双向Transformer模型进行微调。因为双向Transformer经过预训练,已经掌握了自然语言的知识,因此相比于随机初始化模型,直接在有标签数据上训练,通过预训练加分类微调能够达到更好的效果。

微调过程包括两部分,一部分是和预训练过程相同的语言模型部分,另一部分是对每个输入的句子(S={w1,w2,…,wN},l)进行分类,其中l为句子的标签分类过程如下:

首先用双向Transformer将S={w1,w2,…,wN}转换成向量[v1,…,vN],其中每个向量都为对应位置词的表示向量。然后对所有词的表示向量取均值得到的向量作为整个句子的表示向量。

然后用Softmax分类器对计算S属于每个标签的概率:

其中Wc为多分类器中可训练的参数集合,Wkc表示Wc中的第k行。分类器的损失函数为每个样本属于其真实标签l的交叉熵,即

LC=-logpC(l|S)

微调过程中,模型的目的是通过极小化语言模型的损失函数LLM和分类器的损失函数LC之和L=LLM+LC,模型中的所有参数通过梯度下降方法迭代优化,

γ2的取值通常比γ1小一个量级,为0.00001左右。

在预测阶段,通过只需要双向Transformer将句子S转换成向量然后用多分类器计算S属于每个标签lk的概率,最后取概率最大的标签输出即可。

l=argmaxkpc(lk|S)

至此,就实现了利用双向Transformer提高文本分类模型的效果。

需要说明的是,多任务分类器和任务判别器都不仅限于softmax分类器,所有能进行分类的模型都可以充当多任务分类器和任务判别器,比如支持向量机,逻辑回归,多层神经网络等。

根据另一方面的实施例,还提供一种用于文本分析的模型训练装置,所述装置用于执行本说明书实施例提供的用于文本分析的模型训练方法,例如,图2所示的用于文本分析的模型训练方法。图6示出根据一个实施例的用于文本分析的模型训练装置的示意性框图。如图6所示,该装置600包括:

正向向量生成单元61,用于利用第一双向转换器模型,针对第一训练语句中的每个词,基于该词的初始词向量,以及该词在所述第一训练语句中的上文信息,得到该词对应的正向向量;

反向向量生成单元62,用于利用所述第一双向转换器模型,针对所述第一训练语句中的每个词,基于该词的初始词向量,以及该词在所述第一训练语句中的下文信息,得到该词对应的反向向量;

词向量生成单元63,用于根据所述第一训练语句中的每个词的位置,将所述正向向量生成单元61得到的该位置的前一个词的正向向量和所述反向向量生成单元62得到的该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;

预测单元64,用于利用第一语言模型,针对所述词向量生成单元63得到的所述第一训练语句中每个位置对应的目标词向量,预测得到该位置对应的词的第一概率;

模型训练单元65,用于通过使与所述预测单元64得到的第一概率相关的第一损失函数极小化,对所述第一双向转换器模型和所述第一语言模型进行训练,得到训练后的第二双向转换器模型和第二语言模型。

可选地,作为一个实施例,所述反向向量生成单元62,具体用于:

利用所述第一双向转换器模型,针对所述第一训练语句中的每个词,使用自注意力机制,基于该词的初始词向量,以及该词在所述第一训练语句中的下文信息,从不同角度抽取多个重要信息;

将所述多个重要信息中每个重要信息对应的向量进行拼接,得到该词对应的反向向量。

通过本说明书实施例提供的装置,首先正向向量生成单元61利用第一双向转换器模型,针对第一训练语句中的每个词,基于该词的初始词向量,以及该词在所述第一训练语句中的上文信息,得到该词对应的正向向量;接着反向向量生成单元62利用所述第一双向转换器模型,针对所述第一训练语句中的每个词,基于该词的初始词向量,以及该词在所述第一训练语句中的下文信息,得到该词对应的反向向量;然后词向量生成单元63根据所述第一训练语句中的每个词的位置,将该位置的前一个词的正向向量和该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;预测单元64再利用第一语言模型,针对所述第一训练语句中每个位置对应的目标词向量,预测得到该位置对应的词的第一概率;最后模型训练单元65通过使与所述第一概率相关的第一损失函数极小化,对所述第一双向转换器模型和所述第一语言模型进行训练,得到训练后的第二双向转换器模型和第二语言模型。本说明书实施例中,与通常的单向Transformer模型不同,双向转换器模型充分考虑了每个词的上下文信息,而非只考虑上文信息,在对序列数据进行深度建模时,能够利用Transformer模型运行速度快的特点,并且保证模型的鲁棒性。

根据另一方面的实施例,还提供一种用于文本分析的模型训练装置,所述装置用于执行本说明书实施例提供的用于文本分析的模型训练方法,例如,图3所示的用于文本分析的模型训练方法。图7示出根据一个实施例的用于文本分析的模型训练装置的示意性框图。如图7所示,该装置700包括:

正向向量生成单元71,用于利用图2所述的方法训练后的所述第二双向转换器模型,针对第二训练语句中的每个词,基于该词的初始词向量,以及该词在所述第二训练语句中的上文信息,得到该词对应的正向向量;

反向向量生成单元72,用于利用所述第二双向转换器模型,针对所述第二训练语句中的每个词,基于该词的初始词向量,以及该词在所述第二训练语句中的下文信息,得到该词对应的反向向量;

词向量生成单元73,用于根据所述第二训练语句中的每个词的位置,将所述正向向量生成单元71得到的该位置的前一个词的正向向量和所述反向向量生成单元72得到的该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;

第一预测单元74,用于利用图2所述的方法训练后的所述第二语言模型,针对所述第二训练语句中每个位置对应的目标词向量,预测得到该位置对应的词的第一概率;

句子向量生成单元75,用于根据所述词向量生成单元73得到的所述第二训练语句中每个位置对应的目标词向量,生成所述第二训练语句对应的句子的表示向量;

第二预测单元76,用于利用多分类模型,基于所述句子向量生成单元75得到的所述第二训练语句对应的句子的表示向量,预测所述第二训练语句对应标签的第二概率;

模型训练单元77,用于通过使第一损失函数与第二损失函数的和极小化,对所述第二双向转换器模型、所述第二语言模型和所述多分类模型进行训练,得到第三双向转换器模型、第三语言模型和第二多分类模型;其中,所述第一损失函数与所述第一概率相关,所述第二损失函数与所述第二概率相关。

可选地,作为一个实施例,所述反向向量生成单元72,具体用于:

利用所述第二双向转换器模型,针对所述第二训练语句中的每个词,使用自注意力机制,基于该词的初始词向量,以及该词在所述第二训练语句中的下文信息,从不同角度抽取多个重要信息;

将所述多个重要信息中每个重要信息对应的向量进行拼接,得到该词对应的反向向量。

可选地,作为一个实施例,所述句子向量生成单元75,具体用于将所述第二训练语句中每个位置对应的目标词向量取均值,将所述均值作为所述第二训练语句对应的句子的表示向量。

可选地,作为一个实施例,所述模型训练单元77,具体用于通过梯度下降法使所述第一损失函数与第二损失函数的和极小化,以确定所述第二双向转换器模型、所述第二语言模型和所述多分类模型的模型参数。

本说明书实施例提供的装置,首先正向向量生成单元71利用图2所述的方法训练后的所述第二双向转换器模型,针对第二训练语句中的每个词,基于该词的初始词向量,以及该词在所述第二训练语句中的上文信息,得到该词对应的正向向量;接着反向向量生成单元72利用所述第二双向转换器模型,针对所述第二训练语句中的每个词,基于该词的初始词向量,以及该词在所述第二训练语句中的下文信息,得到该词对应的反向向量;然后词向量生成单元73根据所述第二训练语句中的每个词的位置,将该位置的前一个词的正向向量和该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;第一预测单元74再利用图2所述的方法训练后的所述第二语言模型,针对所述第二训练语句中每个位置对应的目标词向量,预测得到该位置对应的词的第一概率;以及,句子向量生成单元75根据所述第二训练语句中每个位置对应的目标词向量,生成所述第二训练语句对应的句子的表示向量;接着第二预测单元76利用多分类模型,基于所述第二训练语句对应的句子的表示向量,预测所述第二训练语句对应标签的第二概率;最后模型训练单元77通过使第一损失函数与第二损失函数的和极小化,对所述第二双向转换器模型、所述第二语言模型和所述多分类模型进行训练,得到第三双向转换器模型、第三语言模型和第二多分类模型;其中,所述第一损失函数与所述第一概率相关,所述第二损失函数与所述第二概率相关。本说明书实施例中,不仅在对序列数据进行深度建模时,能够利用Transformer模型运行速度快的特点,并且保证模型的鲁棒性;而且,在第一方面对双向转换器模型和语言模型进行模型训练的基础上,进一步对双向转换器模型、语言模型和多分类模型进行联合训练,达到更好的模型训练效果。

根据另一方面的实施例,还提供一种文本分类装置,所述装置用于执行本说明书实施例提供的文本分类方法,例如,图4所示的文本分类方法。图8示出根据一个实施例的文本分类装置的示意性框图。如图8所示,该装置800包括:

正向向量生成单元81,用于利用图3所述的方法训练后的所述第三双向转换器模型,针对待分类语句中的每个词,基于该词的初始词向量,以及该词在所述待分类语句中的上文信息,得到该词对应的正向向量;

反向向量生成单元82,用于利用所述第三双向转换器模型,针对所述待分类语句中的每个词,基于该词的初始词向量,以及该词在所述待分类语句中的下文信息,得到该词对应的反向向量;

词向量生成单元83,用于根据所述待分类语句中的每个词的位置,将所述正向向量生成单元81得到的该位置的前一个词的正向向量和所述反向向量生成单元82得到的该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;

句子向量生成单元84,用于根据所述词向量生成单元83得到的所述待分类语句中每个位置对应的目标词向量,生成所述待分类语句对应的句子的表示向量;

文本分类单元85,用于利用图3所述的方法训练后的所述第二多分类模型,基于所述句子向量生成单元84得到的所述待分类语句对应的句子的表示向量,对所述待分类语句进行文本分类。

本说明书实施例提供的装置,首先正向向量生成单元81利用图3所述的方法训练后的所述第三双向转换器模型,针对待分类语句中的每个词,基于该词的初始词向量,以及该词在所述待分类语句中的上文信息,得到该词对应的正向向量;接着反向向量生成单元82利用所述第三双向转换器模型,针对所述待分类语句中的每个词,基于该词的初始词向量,以及该词在所述待分类语句中的下文信息,得到该词对应的反向向量;然后词向量生成单元83根据所述待分类语句中的每个词的位置,将该位置的前一个词的正向向量和该位置的后一个词的反向向量拼接起来,作为该位置对应的目标词向量;句子向量生成单元84再根据所述待分类语句中每个位置对应的目标词向量,生成所述待分类语句对应的句子的表示向量;最后文本分类单元85利用图3所述的方法训练后的所述第二多分类模型,基于所述待分类语句对应的句子的表示向量,对所述待分类语句进行文本分类。本说明书实施例中,在对序列数据进行深度建模时,能够利用Transformer模型运行速度快的特点,并且保证模型的鲁棒性,并且经过两阶段训练后的双向转换器模型和多分类模型,有利于得到较佳的文本分类结果。

根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2至图4所描述的方法。

根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2至图4所描述的方法。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1