发明内容
基于此,有必要针对上述技术问题,提供一种用于生成相似文本的模型训练方法、装置及计算机设备。
第一方面,本申请提供了一种用于生成相似文本的模型训练方法。所述方法包括:
利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练,得到第二词向量表征模型,所述第二词向量表征模型用于识别文本间的相似关系;
将单意图文本数据训练集中每一条文本输入至所述第二词向量表征模型,得到每条文本对应的词向量;
基于所述单意图文本数据训练集及所述每条文本对应的词向量,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集;
根据所述相似文本句对数据集对初始的相似文本生成模型进行训练,得到目标相似文本生成模型。
在其中一个实施例中,所述将单意图文本数据训练集中每一条文本输入至所述第二词向量表征模型,得到每条文本对应的词向量,包括:
针对单意图文本数据训练集中每一条文本,对所述文本进行编码处理得到文本内容对应的第一数值序列和用于区分不同句子的第二数值序列;
将所述第一数值序列和所述第二数值序列输入至所述第二词向量表征模型,得到所述文本对应的词向量。
在其中一个实施例中,所述将所述第一数值序列和所述第二数值序列输入至所述第二词向量表征模型,得到所述文本对应的词向量,包括:
将所述第一数值序列和所述第二数值序列输入至所述第二词向量表征模型,得到数组格式为序列长度乘以词向量维度的第一数组;
在序列维度上对所述第一数组取平均得到第二数组,将所述第二数组作为所述文本对应的词向量。
在其中一个实施例中,所述基于所述单意图文本数据训练集及所述每条文本对应的词向量,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集,包括:
针对所述单意图文本数据训练集中每条文本,将所述文本作为第一文本,计算所述第一文本对应的词向量与第二文本对应的词向量之间的相似度;其中,所述第二文本为所述单意图文本数据训练集中除所述第一文本外的任一文本;
按照相似度从大到小选取预定数量的第二文本;
从所述预定数量的第二文本中确定意图与所述第一文本的意图一致的第二文本作为目标文本,将所述第一文本和所述目标文本组成一条相似文本句对数据;
根据所述单意图文本数据训练集中每条文本所得到的相似文本句对数据,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集。
在其中一个实施例中,所述根据所述单意图文本数据训练集中每条文本所得到的相似文本句对数据,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集,包括:
对所述单意图文本数据训练集中每条文本所得到的相似文本句对数据进行去重处理,得到与所述单意图文本数据训练集相同业务领域的相似文本句对数据集。
第二方面,本申请提供了一种相似文本生成方法。所述方法包括:
获取待扩充的单意图文本数据集中每条文本,将所述每条文本输入目标相似文本生成模型,生成每条文本对应的相似文本;其中,所述目标相似文本生成模型是基于与单意图文本数据训练集相同业务领域的相似文本句对数据集进行训练得到;所述相似文本句对数据集是基于所述单意图文本数据训练集及所述单意图文本数据训练集中每条文本对应的词向量构造得到;所述每条文本对应的词向量是将所述单意图文本数据训练集中每一条文本输入至第二词向量表征模型得到,所述第二词向量表征模型是利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练得到,所述第二词向量表征模型用于识别文本间的相似关系。
第三方面,本申请提供了一种用于生成相似文本的模型训练装置。所述装置包括:
第一训练模块,用于利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练,得到第二词向量表征模型,所述第二词向量表征模型用于识别文本间的相似关系;
词向量表征模块,用于将单意图文本数据训练集中每一条文本输入至所述第二词向量表征模型,得到每条文本对应的词向量;
句对构造模块,用于基于所述单意图文本数据训练集及所述每条文本对应的词向量,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集;
第二训练模块,用于根据所述相似文本句对数据集对初始的相似文本生成模型进行训练,得到目标相似文本生成模型。
第四方面,本申请提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练,得到第二词向量表征模型,所述第二词向量表征模型用于识别文本间的相似关系;
将单意图文本数据训练集中每一条文本输入至所述第二词向量表征模型,得到每条文本对应的词向量;
基于所述单意图文本数据训练集及所述每条文本对应的词向量,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集;
根据所述相似文本句对数据集对初始的相似文本生成模型进行训练,得到目标相似文本生成模型。
第五方面,本申请提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练,得到第二词向量表征模型,所述第二词向量表征模型用于识别文本间的相似关系;
将单意图文本数据训练集中每一条文本输入至所述第二词向量表征模型,得到每条文本对应的词向量;
基于所述单意图文本数据训练集及所述每条文本对应的词向量,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集;
根据所述相似文本句对数据集对初始的相似文本生成模型进行训练,得到目标相似文本生成模型。
第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练,得到第二词向量表征模型,所述第二词向量表征模型用于识别文本间的相似关系;
将单意图文本数据训练集中每一条文本输入至所述第二词向量表征模型,得到每条文本对应的词向量;
基于所述单意图文本数据训练集及所述每条文本对应的词向量,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集;
根据所述相似文本句对数据集对初始的相似文本生成模型进行训练,得到目标相似文本生成模型。
上述用于生成相似文本的模型训练方法、装置、计算机设备、存储介质和计算机程序产品,通过利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练,得到第二词向量表征模型,所述第二词向量表征模型用于识别文本间的相似关系;将单意图文本数据训练集中每一条文本输入至所述第二词向量表征模型,得到每条文本对应的词向量;基于所述单意图文本数据训练集及所述每条文本对应的词向量,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集;根据所述相似文本句对数据集对初始的相似文本生成模型进行训练,得到目标相似文本生成模型。将单意图文本输入目标相似文本生成模型,可自动生成多条相似文本,不再需要人工进行相似文本的标注,从而可大大提高相似文本的生成效率。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
随着人工智能技术的发展,计算机可以针对不同的输入文本识别出相应的意图标签。意图标签识别的准确程度将直接关系到人工智能产品的用户体验。在实际生产业务中,意图识别模型通常都采用有监督的学习方法进行设计和训练,即模型的训练依赖人工标注的文本数据集。因此,数据集的样本数量和样本质量在模型的识别效果上扮演着至关重要的角色。为了取得较好模型识别效果,企业往往不得不投入较多的人力和物力对样本数据集进行精心的收集和构建,这种样本积累方式往往周期较长,并且效率较低。此外,对于较为冷门的意图,其样本出现的频次较低,样本积累的速度也就更慢,这直接影响到模型的开发进度。
本申请实施例提供的用于生成相似文本的模型训练方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。服务器104利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练,得到第二词向量表征模型,所述第二词向量表征模型用于识别文本间的相似关系;将单意图文本数据训练集中每一条文本输入至所述第二词向量表征模型,得到每条文本对应的词向量;基于所述单意图文本数据训练集及所述每条文本对应的词向量,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集;根据所述相似文本句对数据集对初始的相似文本生成模型进行训练,得到目标相似文本生成模型。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种用于生成相似文本的模型训练方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练,得到第二词向量表征模型,其中,第二词向量表征模型用于识别文本间的相似关系。
相似句对,是指具有相似语义或者相似意图的一对文本。预设的相似句对训练集包含有若干对相似句对,并标注了相似句对的相似度值,取值为0或1(0表示不相似,1表示相似)。预设的相似句对训练集例如可以是BQ(Bank Question Corpus)训练集、LCQMC(ALarge-scale Chinese Question Matching Corpus)训练集、PAWS-X((ParaphraseAdversaries from Word Scrambling)训练集等。第一词向量表征模型可以用来计算文本对应的词向量,通过使用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练后,得到第二词向量表征模型,第二词向量表征模型可用于识别文本间的相似关系。例如,第一词向量表征模型为BERT(Bidirectional Encoder Representation fromTransformers,基于Transformers模块的双向编码器表征模型),BERT模型关注的是两句文本之间的上下句顺序关系,通过使用预设的相似句对训练集对BERT模型进行文本相似关系训练后,得到可识别文本间相似关系的第二词向量表征模型。除此之外,第一词向量表征模型还可以是Skip-grams、CBOW(Continuous Bag-of-Word Model)、GloVe(Global Vector)以及ELMO(Embedding from Language Models)等模型。
步骤204,将单意图文本数据训练集中每一条文本输入至第二词向量表征模型,得到每条文本对应的词向量。
单意图文本数据训练集中,同一意图的文本数量至少有两个,且相同意图的文本之间字面相似度满足预设条件。单意图文本数据集中每条文本包括文本内容和对应意图标签。将单意图文本数据训练集中每一条文本输入至第二词向量表征模型,得到每条文本对应的词向量。其中,词向量(Word Embedding),是指词汇表的单词或短语被映射到实数的向量。文本输入第二词向量表征模型,通过第二词向量表征模型的Embedding层处理,得到文本对应的词向量。
步骤206,基于单意图文本数据训练集及每条文本对应的词向量,构造与单意图文本数据训练集相同业务领域的相似文本句对数据集。
将单意图文本数据训练集中的每条文本都进行词向量表征后,根据单意图文本数据训练集及每条文本对应的词向量,构造与单意图文本数据训练集相同业务领域的相似文本句对数据集。例如,根据单意图文本数据训练集中的每条文本对应的词向量,选择出字面相似度满足要求的文本,再从选择出的文本中根据文本意图标签,选择出具有相同意图标签的任意一对文本,该对文本即为一对相似文本句对数据,所有相似文本句对数据组成相似文本句对数据集。
步骤208,根据相似文本句对数据集对初始的相似文本生成模型进行训练,得到目标相似文本生成模型。
相似样本生成,是一种基于文本数据的自然语言处理技术,通过自动学习大量相似文本数据的统计规律,可实现根据当前文本,自动生成若干条语义相近但说法存在一定差异的相似文本。初始的相似文本生成模型不能针对特定领域的文本,自动生成符合条件的相似文本。比如初始的相似文本生成模型为SimBERT模型,是以BERT模型为基础,基于微软的UniLM(Unified Language Model)思想设计了融检索与生成于一体的任务,来进一步微调后得到的自然语言处理模型,它同时具备相似问生成和相似句检索能力,该模型的训练数据主要来自百度知道推荐的相似问句,其文本内容涵盖多个领域,可视作通用场景下的模型,并且训练数据主要是疑问句,与实际业务场景的数据存在一定差距。则根据相似文本句对数据集对SimBERT模型进行训练,得到目标相似文本生成模型。目标相似文本生成模型,可将单意图文本,生成对应的特定领域的相似文本。
在一个可选的实现方式中,将相似文本句对数据集中的相似文本句对数据输入初始的相似文本生成模型得到的结果作为第一结果,将第一结果与第一结果对应的真实结果之间的交叉熵损失作为第一损失;将训练相似度和真实相似度之间的交叉熵损失作为第二损失;其中,训练相似度是基于第一结果演变得到的,并用于表征样本间的相似情况;根据第一损失与第二损失之和对初始的相似文本生成模型进行训练,直至得到满足预设训练条件的目标相似文本生成模型。
上述用于生成相似文本的模型训练方法,通过利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练,得到第二词向量表征模型,所述第二词向量表征模型用于识别文本间的相似关系;将单意图文本数据训练集中每一条文本输入至所述第二词向量表征模型,得到每条文本对应的词向量;基于所述单意图文本数据训练集及所述每条文本对应的词向量,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集;根据所述相似文本句对数据集对初始的相似文本生成模型进行训练,得到目标相似文本生成模型。将单意图文本输入目标相似文本生成模型,可自动生成多条相似文本,不再需要人工进行相似文本的标注,从而可大大提高相似文本的生成效率。
在一个实施例中,如图3所示,将单意图文本数据训练集中每一条文本输入至所述第二词向量表征模型,得到每条文本对应的词向量的步骤204,包括:
步骤302,针对单意图文本数据训练集中每一条文本,对文本进行编码处理得到文本内容对应的第一数值序列和用于区分不同句子的第二数值序列。
步骤304,将第一数值序列和第二数值序列输入至第二词向量表征模型,得到文本对应的词向量。
本实施例中,针对单意图文本数据训练集中的每一条文本,对文本进行编码处理得到文本对应的预设长度的数值序列,文本内容对应的数值序列为第一数值序列,用于区分不同句子的数值序列为第二数值序列,将第一数值序列和第二数值序列输入至第二词向量表征模型,根据第二词向量表征模型的格式输出文本对应的词向量。其中,对文本进行编码处理的方法有keras库、tensorflow、pytorch、mxnet、caffe、paddlepaddle(飞桨)等,也可以通过自主设计的编程方法来实现。在一些具体案例中,若输入的为单句文本,则对文本进行编码处理得到文本内容对应的第一数值序列,而没有用于区分不同句子的第二数值序列,或者用于区分不同句子的第二数值序列全部使用0元素表示。
在一个实施例中,将第一数值序列和所述第二数值序列输入至第二词向量表征模型,得到文本对应的词向量的步骤304,包括:
步骤402,将第一数值序列和第二数值序列输入至第二词向量表征模型,得到数组格式为序列长度乘以词向量维度的第一数组。
步骤404,在序列维度上对第一数组取平均得到第二数组,将第二数组作为文本对应的词向量。
本实施例中,将第一数值序列和第二数值序列输入至第二词向量表征模型,得到数组格式为序列长度乘以词向量维度的第一数组,在序列维度上对第一数组取平均得到第二数组,将第二数组作为文本对应的词向量。也就是说,在得到数组格式为序列长度乘以词向量维度的第一数组后,可在序列维度上对第一数组取算术平均或者加权平均后得到第二数组,将第二数组作为文本对应的词向量。一般地,序列维度包括序列长度。
在一个可实现的方式中,将文本进行编码处理,由文本字符序列得到文本对应的数值序列,该数值序列包括文本的开始标记符和结束标记符。数值序列长度比字符序列长度长2个单位,这是因为数值序列中增加了文本的开始标记符和结束标记符,例如,开始标记符为“CLS”,结束标记符为“SEP”。本实施例中,由于输入的仅仅是单句文本,因此,文本内容对应的数值序列为第一数值序列,区分不同句子的第二数值序列使用0元素进行表示,第二数值序列长度与第一数值序列长度相同。将第一数值序列和第二数值序列输入第二词向量表征模型,得到数组格式为序列长度乘以词向量维度的第一数组,即文本中的每一个字符都得到了第二词向量表征模型相应的词向量表示。在序列维度上对第一数组取平均后得到第二数组,将第二数组作为该文本对应的词向量。例如,若第一词向量表征模型为BERT模型,则第一数组的格式为序列长度乘以768维的数组,在序列维度上对第一数组取平均后,得到1*768维的第二数组,将1*768维的第二数组作为文本对应的词向量。
在一个实施例中,将第一数值序列和第二数值序列输入至第二词向量表征模型,得到文本对应的词向量的步骤304,还包括:将第一数值序列和第二数值序列输入至第二词向量表征模型,得到数组格式为序列长度乘以词向量维度的第一数组;在序列维度上对第一数组取最大值得到第三数组,将第三数组作为文本对应的词向量。
在一个实施例中,基于单意图文本数据训练集及每条文本对应的词向量,构造与单意图文本数据训练集相同业务领域的相似文本句对数据集的步骤206,包括:
步骤502,针对单意图文本数据训练集中每条文本,将文本作为第一文本,计算第一文本对应的词向量与第二文本对应的词向量之间的相似度;其中,第二文本为单意图文本数据训练集中除第一文本外的任一文本。
步骤504,按照相似度从大到小选取预定数量的第二文本。
步骤506,从预定数量的第二文本中确定意图与第一文本的意图一致的第二文本作为目标文本,将第一文本和目标文本组成一条相似文本句对数据。
步骤508,根据单意图文本数据训练集中每条文本所得到的相似文本句对数据,构造与单意图文本数据训练集相同业务领域的相似文本句对数据集。
针对单意图文本数据训练集中的每条文本,选取任一文本作为第一文本,单意图文本数据训练集中除第一文本外的任一文本作为第二文本,计算第一文本对应的词向量与第二文本对应的词向量之间的相似度,相似度包括余弦相似度,余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小,余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似。按照相似度从大到小选取预定数量的第二文本,获取第一文本的意图及预定数量的第二文本各自的意图,从预定数量的第二文本中确定意图与第一文本的意图一致的第二文本作为目标文本,则目标文本与第一文本为相似文本,将第一文本和目标文本组成一条相似文本句对数据,根据单意图文本数据训练集中每条文本所得到的相似文本句对数据,构造与单意图文本数据训练集相同业务领域的相似文本句对数据集。其中,相似文本句对数据集包括多条相似文本句对数据。
在一个可实现的方式中,以单意图文本数据训练集中的其中一条文本为例进行说明。单意图文本数据训练集中的其中一条文本,记作文本A,分别计算文本A对应的词向量与单意图文本数据训练集中其他文本对应的词向量之间的余弦相似度,单意图文本数据训练集中其他文本即为第二文本,根据余弦相似度从大到小的顺序选取15条第二文本,可记作文本1,文本2,……,文本15。获取文本A、文本1至文本15的文本内容及对应意图标签,从文本1至文本15中选择出与文本A的意图标签一致的文本作为目标文本,那么,文本A与该目标文本即组成一条相似文本句对数据,文本A与除目标文本之外的其他文本为不相似文本。将单意图文本数据训练集中的每一条文本都按照上述文本A的方式进行处理,最终可得到与单意图文本数据训练集相同业务领域的相似文本句对数据集。
在一个实施例中,根据单意图文本数据训练集中每条文本所得到的相似文本句对数据,构造与单意图文本数据训练集相同业务领域的相似文本句对数据集的步骤508,包括:
对单意图文本数据训练集中每条文本所得到的相似文本句对数据进行去重处理,得到与单意图文本数据训练集相同业务领域的相似文本句对数据集。
本实施例中,在获得相似文本句对数据的过程中,假如在选择单意图文本数据训练集中数据A的相似文本时,数据B被选中与数据A作为一条相似文本句对数据;同样地,在选择单意图文本数据训练集中数据B的相似文本时,数据A也会被选中与数据B作为一条相似文本句对数据,那么数据B和数据A组成的相似文本句对数据,与数据A和数据B组成的相似文本句对数据构成重复的相似文本句对数据。因此,需要对相似文本句对数据集中的重复的相似文本句对数据进行去重处理,只保留其中一条即可,最终得到与单意图文本数据训练集相同业务领域的相似文本句对数据集。
在一个实施例中,如图6所示,用于生成相似文本的模型训练方法包括:
步骤602,使用预设的相似句对训练集对BERT模型进行训练,得到BERT_retrained模型。
使用预设的相似句对训练集,比如BQ训练集、LCQMC训练集、PAWSX训练集,对BERT模型进行训练,得到BERT_retrained模型,使得BERT_retrained模型能够识别文本间的相似关系。
步骤604,将单意图文本数据训练集中的文本进行编码处理,得到文本内容对应的第一数值序列和用于区分不同句子的第二数值序列。
将单意图文本数据训练集中的文本进行编码处理,即由文字转换为数值,得到文本内容对应的第一数值序列和用于区分不同句子的第二数值序列。
步骤606,将第一数值序列和第二数值序列输入BERT_retrained模型,得到文本对应的词向量。
将第一数值序列和第二数值序列输入BERT_retrained模型,具体由BERT_retrained模型的Embedding层输出格式为序列长度乘以768维的第一数组,将第一数组在序列维度上取平均得到1*768维的第二数组,将第二数组作为文本对应的词向量。
步骤608,计算文本对应的词向量与其他文本对应词向量之间的余弦相似度,选出余弦相似度从大到小的前15条文本。
步骤610,将选出的15条文本与该文本进行意图比较,选出与该文本意图一致的文本作为目标文本,该文本与目标文本组成一条相似文本句对数据。
获取该文本与选出的15条文本各自对应的意图标签,依次将选出的15条文本的意图与该文本进行对比,选出与该文本的意图一致的目标文本,该文本与目标文本组成一条相似句对数据。
步骤612,找出单意图文本数据训练集中的每条文本所对应的相似文本,构成对应的相似文本句对数据。
步骤614,根据每条文本所得到的相似文本句对数据,构造单意图文本数据训练集的相似文本句对数据集。
将单意图文本数据训练集中的每条文本按照上述步骤608至步骤612进行处理,得到对应的相似文本,从而形成相似文本句对数据,将所有的相似文本句对数据作为相似文本句对数据集。
步骤616,使用相似文本句对数据集对simBERT模型进行训练,得到simBERT_retrained模型。
将相似文本句对数据输入simBERT模型得到的结果作为第一结果,将第一结果与第一结果对应的真实结果之间的交叉熵损失作为第一损失;将训练相似度和真实相似度之间的交叉熵损失作为第二损失;其中,训练相似度是基于第一结果演变得到的,并用于表征样本间的相似情况;根据第一损失与第二损失之和对simBERT模型进行训练,直至得到满足预设训练条件的simBERT_retrained模型。
具体地,假设ai与bi,是一条相似文本句对数据,其中i=1,2,……,n,n表示同一个批次(batch)的大小。以“CLS”作为开始标记,“SEP”作为不同句子的分隔标记,将每一条相似文本句对数据以[CLS]ai[SEP]bi[SEP]对应的数值编码格式输入simBERT模型,通过seq2seq(序列到序列)的训练方式,对simBERT模型进行训练,使得simBERT模型尽可能由文本ai生成文本bi。将相似文本句对数据以[CLS]ai[SEP]bi[SEP]对应的数值编码格式输入simBERT模型得到的结果作为第一结果。
将相似文本句对数据集中的任一对相似文本句对数据以[CLS]a
i[SEP]b
i[SEP]对应的数值编码格式输入simBERT模型,首先输出一个格式为batch大小*序列长度*词向量维度的数组,该数组也包含了“CLS”及“SEP”字符对应的词向量。将同一个batch内所有相似句对数据的“CLS”词向量取出(以“CLS”词向量作为文本a
i的句向量表示),得到相似文本句对数据的句向量矩阵V∈R
b×d,其中,b为batch大小,d为词向量维度;沿着d维度归一化得到
将矩阵
和其转置矩阵
进行内积得到
将M矩阵对角线元素归零并对每一行元素归一化得到矩阵
矩阵
即视作batch内文本a
i之间的相似矩阵,即矩阵
反映了每一条文本与其他文本之间的相似度,将该相似度作为训练相似度。
每一条文本与其他文本的真实相似度可定义为:相似文本之间的相似度定义为1(不包含自身),其他定义为0。例如,同一个batch内包含4条相似文本句对数据,a
i仅与b
i组成相似文本,那么a
i文本对应真实相似矩阵的一行元素可以为[0,1,0,0],由计算得到的相似矩阵
中a
i文本所对应的一行元素假设为[m
i1,m
i2,m
i3,m
i4],理想条件下,[m
i1,m
i2,m
i3,m
i4]应该无限接近或等于[0,1,0,0]。因此,对simBERT模型进行训练的过程中,除了直接使用文本输入simBERT模型,根据输出结果与目标输出文本之间的交叉熵损失来训练模型参数,还需要使得由模型输出的词向量计算得到的相似矩阵无限接近上述定义的真实相似矩阵。通过施加这一约束,使得模型不仅可以生成文本,而且尽可能生成符合条件的相似文本。
上述实施例中提供的用于生成相似文本的模型训练方法,输入单意图文本后,可以自动生成若干条相似样本作为候选意图样本,对候选意图样本进行二次审核后即可作为新的意图样本加入样本库,以供后续意图识别模型训练使用。
在一个实施例中,本申请提供了一种相似文本生成方法,所述方法包括:
获取待扩充的单意图文本数据集中每条文本,将所述每条文本输入目标相似文本生成模型,生成每条文本对应的相似文本;其中,所述目标相似文本生成模型是基于与单意图文本数据训练集相同业务领域的相似文本句对数据集进行训练得到;所述相似文本句对数据集是基于所述单意图文本数据训练集及所述单意图文本数据训练集中每条文本对应的词向量构造得到;所述每条文本对应的词向量是将所述单意图文本数据训练集中每一条文本输入至第二词向量表征模型得到,所述第二词向量表征模型是利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练得到,所述第二词向量表征模型用于识别文本间的相似关系。
上述相似文本生成方法,将待扩充的单意图文本数据集中的每条文本输入目标相似文本生成模型中,可直接生成每条文本对应的相似文本,提高了相似文本的生成效率,有利于对待扩充的单意图文本进行相同业务领域的相似文本扩充,实现单意图文本样本数量的丰富。
在一个可实现的方式中,如图7所示,相似文本生成方法包括:
步骤702,获取待扩充的单意图文本数据集。
在此需要说明的是,待扩充的单意图文本数据集可以是不包含相似文本的单意图文本。
步骤704,将待扩充的单意图文本数据集中的每条文本输入目标相似文本生成模型,生成每条文本对应的相似文本。
目标相似文本生成模型可以是根据上述实施例中所描述的simBERT_retrained模型。
步骤706,人工检验通过后,形成新的单意图样本。
将新生成的单意图样本与原本的待扩充的单意图文本数据集合并,形成样本量相对较大的单意图文本数据集,以供后续对意图识别模型训练使用。
在一个实施例中,所述相似文本句对数据集是基于所述单意图文本数据训练集及所述单意图文本数据训练集中每条文本对应的词向量构造得到,包括:
针对所述单意图文本数据训练集中每条文本,将所述文本作为第一文本,计算所述第一文本对应的词向量与第二文本对应的词向量之间的相似度;其中,所述第二文本为所述单意图文本数据训练集中除所述第一文本外的任一文本;
按照相似度从大到小选取预定数量的第二文本;
从所述预定数量的第二文本中确定意图与所述第一文本的意图一致的第二文本作为目标文本,将所述第一文本和所述目标文本组成一条相似文本句对数据;
根据所述单意图文本数据训练集中每条文本所得到的相似文本句对数据,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集。
在一个实施例中,根据所述单意图文本数据训练集中每条文本所得到的相似文本句对数据,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集,包括:
对所述单意图文本数据训练集中每条文本所得到的相似文本句对数据进行去重处理,得到与所述单意图文本数据训练集相同业务领域的相似文本句对数据集。
在一个实施例中,所述每条文本对应的词向量是将所述单意图文本数据训练集中每一条文本输入至第二词向量表征模型得到,包括:
针对单意图文本数据训练集中每一条文本,对所述文本进行编码处理得到文本内容对应的第一数值序列和用于区分不同句子的第二数值序列;
将所述第一数值序列和所述第二数值序列输入至所述第二词向量表征模型,得到所述文本对应的词向量。
在一个实施例中,所述将所述第一数值序列和所述第二数值序列输入至所述第二词向量表征模型,得到所述文本对应的词向量,包括:
将所述第一数值序列和所述第二数值序列输入至所述第二词向量表征模型,得到数组格式为序列长度乘以词向量维度的第一数组;
在序列维度上对所述第一数组取平均得到第二数组,将所述第二数组作为所述文本对应的词向量。
在一个实施例中,如图8所示,相似文本生成方法包括以下步骤:
步骤802,利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练,得到第二词向量表征模型,其中,第二词向量表征模型用于识别文本间的相似关系。
步骤804,将单意图文本数据训练集中每一条文本输入至第二词向量表征模型,得到每条文本对应的词向量。
步骤806,基于单意图文本数据训练集及每条文本对应的词向量,构造与单意图文本数据训练集相同业务领域的相似文本句对数据集。
步骤808,根据相似文本句对数据集对初始的相似文本生成模型进行训练,得到目标相似文本生成模型。
步骤810,获取待扩充的单意图文本数据集。
步骤812,将待扩充的单意图文本数据集中的每条文本输入目标相似文本生成模型,生成每条文本对应的相似文本。
其中,步骤802至步骤808与步骤202至步骤208相对应,步骤810至步骤812与步骤702至步骤704相对应,在此不再赘述。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的用于生成相似文本的模型训练方法的用于生成相似文本的模型训练装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个用于生成相似文本的模型训练装置实施例中的具体限定可以参见上文中对于用于生成相似文本的模型训练方法的限定,在此不再赘述。
在一个实施例中,如图9所示,提供了一种用于生成相似文本的模型训练装置,包括第一训练模块902、词向量表征模型904、句对构造模块906和第二训练模块908,其中:
第一训练模块902,用于利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练,得到第二词向量表征模型,所述第二词向量表征模型用于识别文本间的相似关系;
词向量表征模块904,用于将单意图文本数据训练集中每一条文本输入至所述第二词向量表征模型,得到每条文本对应的词向量;
句对构造模块906,用于基于所述单意图文本数据训练集及所述每条文本对应的词向量,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集;
第二训练模块908,用于根据所述相似文本句对数据集对初始的相似文本生成模型进行训练,得到目标相似文本生成模型。
在一个实施例中,词向量表征模块904还用于:针对单意图文本数据训练集中每一条文本,对所述文本进行编码处理得到文本内容对应的第一数值序列和用于区分不同句子的第二数值序列;将所述第一数值序列和所述第二数值序列输入至所述第二词向量表征模型,得到所述文本对应的词向量。
在一个实施例中,词向量表征模块904还用于:将所述第一数值序列和所述第二数值序列输入至所述第二词向量表征模型,得到数组格式为序列长度乘以词向量维度的第一数组;在序列维度上对所述第一数组取平均得到第二数组,将所述第二数组作为所述文本对应的词向量。
在一个实施例中,词向量表征模块904还用于:将第一数值序列和第二数值序列输入至第二词向量表征模型,得到数组格式为序列长度乘以词向量维度的第一数组;在序列维度上对第一数组取最大值得到第三数组,将第三数组作为文本对应的词向量。
在一个实施例中,句对构造模块906还用于:针对所述单意图文本数据训练集中每条文本,将所述文本作为第一文本,计算所述第一文本对应的词向量与第二文本对应的词向量之间的相似度;其中,所述第二文本为所述单意图文本数据训练集中除所述第一文本外的任一文本;按照相似度从大到小选取预定数量的第二文本;从所述预定数量的第二文本中确定意图与所述第一文本的意图一致的第二文本作为目标文本,将所述第一文本和所述目标文本组成一条相似文本句对数据;根据所述单意图文本数据训练集中每条文本所得到的相似文本句对数据,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集。
在一个实施例中,句对构造模块906还用于:对所述单意图文本数据训练集中每条文本所得到的相似文本句对数据进行去重处理,得到与所述单意图文本数据训练集相同业务领域的相似文本句对数据集。
上述用于生成相似文本的模型训练装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储词向量表征模型、目标相似文本生成模型的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种用于生成相似文本的模型训练方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
第四方面,本申请提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练,得到第二词向量表征模型,所述第二词向量表征模型用于识别文本间的相似关系;
将单意图文本数据训练集中每一条文本输入至所述第二词向量表征模型,得到每条文本对应的词向量;
基于所述单意图文本数据训练集及所述每条文本对应的词向量,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集;
根据所述相似文本句对数据集对初始的相似文本生成模型进行训练,得到目标相似文本生成模型。
第五方面,本申请提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练,得到第二词向量表征模型,所述第二词向量表征模型用于识别文本间的相似关系;
将单意图文本数据训练集中每一条文本输入至所述第二词向量表征模型,得到每条文本对应的词向量;
基于所述单意图文本数据训练集及所述每条文本对应的词向量,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集;
根据所述相似文本句对数据集对初始的相似文本生成模型进行训练,得到目标相似文本生成模型。
第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
利用预设的相似句对训练集对第一词向量表征模型进行文本相似关系训练,得到第二词向量表征模型,所述第二词向量表征模型用于识别文本间的相似关系;
将单意图文本数据训练集中每一条文本输入至所述第二词向量表征模型,得到每条文本对应的词向量;
基于所述单意图文本数据训练集及所述每条文本对应的词向量,构造与所述单意图文本数据训练集相同业务领域的相似文本句对数据集;
根据所述相似文本句对数据集对初始的相似文本生成模型进行训练,得到目标相似文本生成模型。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。