用于确定文本相关度的模型训练方法、装置、电子设备及可读存储介质与流程

文档序号:22678274发布日期:2020-10-28 12:36阅读:97来源:国知局
用于确定文本相关度的模型训练方法、装置、电子设备及可读存储介质与流程

本公开的实施例涉及计算机技术领域,尤其涉及一种用于确定文本相关度的模型训练方法方法、装置、电子设备及可读存储介质。



背景技术:

确定文本的相关度是自然语言处理的基本问题,在诸如信息检索系统和对话系统中,如何衡量句子或者短语之间的相关度尤为重要。

o2o(onlinetooffline,线上到线下)将线下商务的机会与互联网结合在一起,让互联网成为线下交易的前台。o2o搜索场景中用户搜索请求比较明确,通常以结构化的商家和商品为主,商家搜索和商品搜索占整个搜索流量的40%左右,因此,如何更加准确地判断用户的查询词与搜索的商家或商品之间的相关度是影响搜索准确率和用户搜索体验的关键因素。

然而,在o2o搜索场景中,查询词与搜索结果的文本长度较短,相比正常文本,可挖掘的信息较少,相关度判断更加困难。例如,当查询词为“ladym”,搜索结果为“ladymarry婚纱”时,传统的文本相关度计算方法极可能判断两者语义相关,但是,用户输入的“ladym”实际上是一家甜品店,而“ladymarry婚纱”是一家婚纱店,二者虽然字面上语义相关,但是在o2o搜索场景,对用户来说二者差别较大,可能造成误判。又如,当查询词为“红酒”,搜索结果为“红酒开瓶器”时,由于二者的语义相关,也有可能造成误判。可以看出,在o2o搜索场景中,传统的文本相关度计算方法可能出现误判的情况,导致确定的文本相关度不够准确,进而影响搜索结果的准确率。



技术实现要素:

本公开的实施例提供一种用于确定文本相关度的模型训练方法、装置、电子设备及可读存储介质,用以提高确定文本相关度的准确性,进而提高搜索结果的准确率。

根据本公开的实施例的第一方面,提供了一种用于确定文本相关度的模型训练方法,所述方法包括:

根据第一文本样本和第二文本样本确定第一输入序列;

将所述第一输入序列输入初始模型,获得包括所述第一文本样本和所述第二文本样本的语义相关性的第一预测结果以及包括所述第一文本样本的第一实体特征和所述第二文本样本的第二实体特征的第二预测结果;

根据所述第二预测结果,确定所述第一文本样本和所述第二文本样本的实体相关性;

根据损失计算参数,计算模型损失值,所述损失计算参数包括:第一损失值和所述实体相关性,所述第一损失值为根据所述第一预测结果和第一标注信息计算得到,所述第一标注信息用于标注所述第一文本样本和所述第二文本样本的语义相关性;

根据所述模型损失值,对所述初始模型的模型参数进行调整,直到计算的模型损失值达到预设损失值,得到训练完成的目标模型。

根据本公开的实施例的第二方面,提供了一种确定文本相关度的方法,所述方法包括:

根据第一文本和第二文本确定第二输入序列;

将所述第二输入序列输入目标模型,通过所述目标模型输出所述第一文本和所述第二文本的相关度,所述目标模型根据上述用于确定文本相关度的模型训练方法训练得到。

根据本公开的实施例的第三方面,提供了一种用于确定文本相关度的模型训练装置,所述装置包括:

第一序列确定模块,用于根据第一文本样本和第二文本样本确定第一输入序列;

初始预测模块,用于将所述第一输入序列输入初始模型,获得包括所述第一文本样本和所述第二文本样本的语义相关性的第一预测结果以及包括所述第一文本样本的第一实体特征和所述第二文本样本的第二实体特征的第二预测结果;

相关性确定模块,用于根据所述第二预测结果,确定所述第一文本样本和所述第二文本样本的实体相关性;

损失值计算模块,用于根据损失计算参数,计算模型损失值,所述损失计算参数包括:第一损失值和所述实体相关性,所述第一损失值为根据所述第一预测结果和第一标注信息计算得到,所述第一标注信息用于标注所述第一文本样本和所述第二文本样本的语义相关性;

迭代调参模块,用于根据所述模型损失值,对所述初始模型的模型参数进行调整,直到计算的模型损失值达到预设损失值,得到训练完成的目标模型。

根据本公开的实施例的第四方面,提供了一种确定文本相关度的装置,所述装置包括:

第二序列确定模块,用于根据第一文本和第二文本确定第二输入序列;

模型预测模块,用于将所述第二输入序列输入目标模型,通过所述目标模型输出所述第一文本和所述第二文本的相关度,所述目标模型根据上述用于确定文本相关度的模型训练方法训练得到。

根据本公开的实施例的第五方面,提供了一种电子设备,包括:

处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现前述用于确定文本相关度的模型训练方法。

根据本公开的实施例的第六方面,提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述用于确定文本相关度的模型训练方法。

本公开的实施例提供了一种用于确定文本相关度的模型训练方法、装置、电子设备及可读存储介质,所述方法包括:

本公开实施例通过多任务学习模型确定文本相关度,将第一文本和第二文本对应的第一输入序列输入目标模型,通过所述目标模型分别确定第一任务的第一预测结果以及第二任务的第二预测结果,并基于所述第一预测结果和所述第二预测结果,确定所述第一文本与所述第二文本的相关度;以及通过所述目标模型输出所述第一文本与所述第二文本的相关度。其中,所述第一任务用于预测语义相关性,所述第二任务用于识别实体类别。本公开实施例在相关性分类的基础上引入实体识别任务,将两种任务进行联合训练得到目标模型,训练得到的目标模型在确定第一文本和第二文本的相关度过程中,以第一文本和第二文本的语义相关度为基础,以第一文本和第二文本的实体相关度为约束,使得目标模型确定的第一文本和第二文本的相关度同时满足语义相关和实体类别相关的需求,确定的相关度更加准确,可以进一步优化搜索结果。

附图说明

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

图1示出了本公开的一个实施例中的用于确定文本相关度的模型训练方法的步骤流程图;

图2示出了本公开的一个实施例中的训练目标模型的流程示意图;

图3示出了本公开的一个实施例中的确定文本相关度的方法的步骤流程图;

图4示出了本公开的一个实施例中的用于确定文本相关度的模型训练装置的结构图;

图5示出了本公开的一个实施例中的确定文本相关度的装置的结构图;

图6示出了本公开的一个实施例提供的电子设备的结构图。

具体实施方式

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

实施例一

参照图1,其示出了本公开的一个实施例中的用于确定文本相关度的模型训练方法的步骤流程图,所述方法包括:

步骤101、根据第一文本样本和第二文本样本确定第一输入序列;

步骤102、将所述第一输入序列输入初始模型,获得包括所述第一文本样本和所述第二文本样本的语义相关性的第一预测结果以及包括所述第一文本样本的第一实体特征和所述第二文本样本的第二实体特征的第二预测结果;

步骤103、根据所述第二预测结果,确定所述第一文本样本和所述第二文本样本的实体相关性;

步骤104、根据损失计算参数,计算模型损失值,所述损失计算参数包括:第一损失值和所述实体相关性,所述第一损失值为根据所述第一预测结果和第一标注信息计算得到,所述第一标注信息用于标注所述第一文本样本和所述第二文本样本的语义相关性;

步骤105、根据所述模型损失值,对所述初始模型的模型参数进行调整,直到计算的模型损失值达到预设损失值,得到训练完成的目标模型。

针对o2o搜索场景下query(查询词)和poi/spu(搜索结果)通常具有实体结构,为了避免搜索得到的搜索结果与查询词的语义相关但是实体不相关的情况,本公开实施例提出一种用于确定文本相关度的模型训练方法,以训练得到目标模型,该目标模型为多任务学习模型。所述多任务包括但不限于第一任务和第二任务。所述第一任务用于预测第一文本和第二文本之间的语义相关性,所述第二任务用于分别识别第一文本和第二文本的实体特征。

其中,“实体”指的是真实世界中存在的各种对象和概念,诸如人物、地理位置、组织、品牌、职业、日期等等。

需要说明的是,本公开实施例对所述多任务学习模型的具体模型类型不加以限制。例如,所述多任务学习模型可以包括但不限于:bert(bidirectionalencoderrepresentationfromtransformers)模型、rnn(recurrentneuralnetwork,循环神经网络)模型、以及cnn(convolutionalneuralnetworks,卷积神经网络)模型等。优选地,本公开实施例基于bert预训练模型结构的多任务学习模型训练目标模型。

本公开实施例在语义相关性分类的基础上引入实体识别任务,将两种任务进行联合训练。所述联合训练可以是机器学习模型的一种训练过程。所述机器学习模型可以是包含多个隐藏层和多个参数的神经网络模型。例如,深度学习模型。所述多任务学习模型可以包括但不限于多任务监督学习、多任务半监督学习、多任务主动学习、多任务强化学习、多任务在线学习以及多任务多视角学习等。

在训练目标模型之前,首先收集用户的历史操作数据,从所述历史操作数据中提取第一文本样本和第二文本样本,将第一文本样本和第二文本样本拼接得到第一输入序列,对所述第一输入序列进行标注,得到训练数据,然后利用所述训练数据,训练所述目标模型。

本公开实施例可以收集用户的历史操作数据来构建用于训练目标模型的训练数据。所述历史操作数据包括用户生成内容数据和用户搜索行为数据等。所述历史操作数据可以来源于用户日志,例如,获取用户的搜索日志和/或点击日志,将搜索日志和/或点击日志中,用户已下单和/或已点击的数据作为正样本,以及将搜索日志和/或点击日志中,用户未下单和/或未点击的数据作为负样本。

用户的历史操作数据中包括用户的搜索数据,每一条搜索数据包括查询词和搜索结果,因此,对于每一条搜索数据可以提取查询词的文本信息作为第一文本样本,以及提取搜索结果的文本信息作为第二文本样本。并且将第一文本样本和第二文本样本拼接得到第一输入序列,对所述第一输入序列进行标注,得到训练数据,以训练目标模型。

可选地,步骤101所述根据第一文本样本和第二文本样本确定第一输入序列,包括:

步骤s11、分别对所述第一文本样本和所述第二文本样本按字符划分,得到所述第一文本样本对应的第一字符序列和所述第二文本样本对应的第二字符序列;

步骤s12、将所述第一字符序列和所述第二字符序列拼接,并在所述第一字符序列和所述第二字符序列之间添加分隔符,得到拼接字符序列;

步骤s13、在所述拼接字符序列的第一个字符前添加起始符,得到第一输入序列。

实体识别可以基于字符序列或词序列进行序列标注,在基于字符序列的标注方法中,字符的语义信息相比词的语义信息较为薄弱,而基于词序列的标注方法需要对文本先进行分词预处理,分词的准确率直接影响到了命名实体识别的结果,一个错误的分词结果再也无法正确地识别其中的实体类别,因此这种方法往往比较依赖于分词模型的准确率,两者方法各有优劣。

本公开实施例不限制所述第一输入序列的具体形式,优选地,本公开实施例中的第一输入序列为字符序列,也即,本公开实施例中的实体识别基于字符序列进行序列标注。需要说明的是,在中文场景下,一个字符指的是汉字中的一个字。

具体地,分别对所述第一文本样本和所述第二文本样本按字符划分,得到所述第一文本样本对应的第一字符序列和所述第二文本样本对应的第二字符序列。例如,第一文本样本为“红酒”,第二文本样本为“红酒开瓶器”,则得到第一字符序列为“红/酒”,第二字符序列为“红/酒/开/瓶/器”。将所述第一字符序列和所述第二字符序列拼接,并在所述第一字符序列和所述第二字符序列之间添加分隔符,得到拼接字符序列。在所述拼接字符序列的第一个字符前添加起始符,得到第一输入序列,如“[start]红/酒[div]红/酒/开/瓶/器”。其中,[start]表示起始符,[div]表示分隔符。

然后,将所述第一输入序列输入初始模型,即可通过所述初始模型分别确定第一任务的第一预测结果以及第二任务的第二预测结果,第一预测结果中包括所述第一文本样本和所述第二文本样本的语义相关性,第二预测结果中包括所述第一文本样本的第一实体特征和所述第二文本样本的第二实体特征。

接下来,根据所述第二预测结果,确定所述第一文本样本和所述第二文本样本的实体相关性,并且根据损失计算参数,计算模型损失值,最后根据所述模型损失值,对所述初始模型的模型参数进行调整,直到计算的模型损失值达到预设损失值,得到训练完成的目标模型。其中,所述损失计算参数包括:第一损失值和所述实体相关性,所述第一损失值为根据所述第一预测结果和第一标注信息计算得到,所述第一标注信息用于标注所述第一文本样本和所述第二文本样本的语义相关性。例如,由于“红酒”和“红酒开瓶器”在语义上具有相关性,因此,第一输入序列“[start]红/酒[div]红/酒/开/瓶/器”对应的第一标注信息可以为语义相关。

需要说明的是,本公开实施例对所述初始模型的模型结构以及训练方法不加以限制。所述初始模型可以是融合了多种神经网络的多任务学习模型。所述神经网络包括但不限于以下的至少一种或者至少两种的组合、叠加、嵌套:cnn、lstm(longshort-termmemory,长短时记忆)网络、rnn、注意力神经网络等。

优选地,所述初始模型为基于bert预训练模型结构的多任务学习模型,本公开实施例可以在bert模型的相关性分类基础上引入实体识别任务,将两种任务进行联合训练。

预训练模型是在大量数据集上训练好的模型。预训练模型可以迁移到特定任务上使用。为了在o2o搜索场景中更准确地确定query和poi/spu之间的相关度,本公开实施例基于bert微调方式来确定query和poi/spu的相关度。在本公开实施例中,bert模型的主任务为语义相关性判断任务,将样本数据中的query(第一文本样本)和poi/spu(第二文本样本)拼接得到第一输入序列后,输入bert预训练模型,通过bert微调进行语义相关性判别。bert模型的辅助任务为命名实体识别,通过bert微调识别query和poi/spu中的实体特征。最后在训练目标中引入query和poi/spu两者的语义相关性和实体相关性作为约束条件,以优化最终相关度确定的结果。

本公开实施例在bert预训练的基础上,加入了多任务学习的方法,由于bert只采用了未标注数据来做预训练,而本公开实施例增加了第一任务和第二任务的监督数据,与bert预训练进行互补,可以减轻对特定任务的过拟合。

其次,bert在多方面的自然语言处理任务中均具有较好的表现效果以及较强的泛化能力,对于特定的任务只需要添加一个输出层进行微调(fine-tuning)即可,实现过程简便并且高效。

bert的模型架构基于多层双向转换解码,特征抽取器采用transformer,bert的输入部分是个线性序列,两个句子(如句子a和句子b)通过分隔符分割,最前面和最后增加两个标识符号。具体地,首先需要将两个句子中的每个单词及特殊符号都转化为词嵌入向量,其中特殊符[sep]作为分隔符,用于分割两个句子。因为bert有一个任务是预测两个句子之间的关系,而这个分类任务会借助a/b句子最前面的特殊符[cls]实现,该特殊符可以视为汇集了整个输入序列的表征。最后的位置编码是transformer架构本身决定的,因为基于完全注意力的方法并不能像cnn或rnn那样编码词与词之间的位置关系,为了令transformer感知词与词之间的位置关系,需要使用位置编码给每个词加上位置信息。

在本公开的一个示例中,假设第一文本样本为“红酒”,第二文本样本为“红酒开瓶器”,初始模型为bert预训练模型,则第一输入序列为“cls红/酒sep红/酒/开/瓶/器”,将该第一输入序列输入bert预训练模型,通过bert预训练模型分别输出第一任务的第一预测结果和第二任务的第二预测结果。其中,第一预测结果包括第一文本样本“红酒”与第二文本样本“红酒开瓶器”的语义相关性。第二预测结果包括识别的第一文本样本“红酒”的第一实体特征和第二文本样本“红酒开瓶器”的第二实体特征。

根据所述第一任务的预测结果以及所述第一标注信息,通过第一损失函数可以计算第一损失值。其中,第一标注信息用于标注第一文本样本“红酒”与第二文本样本“红酒开瓶器”之间是否语义相关。第一损失值用于表示相关性分类损失,也即第一任务的第一预测结果与第一标注信息之间的差异,可选地,第一损失函数可以使用交叉熵损失函数。

所述第二任务可以对第一输入序列进行实体标注,得到第一输入序列对应的实体标注序列,并且根据该实体标注序列识别所述第一文本样本对应的第一实体特征和所述第二文本样本对应的第二实体特征。根据所述第一实体特征和所述第二实体特征,可以计算所述第一文本样本和所述第二文本样本的实体相关性,也即实体类别的相似度。

在本公开实施例中,可以利用正则项表示所述实体相关性,将所述第一损失值(如loss1)和所述实体相关性的正则项表示(如reg3)作为损失计算参数,计算模型损失值(如loss)。例如loss=loss1+reg3。联合训练目标为最小化模型损失值,使得训练得到的目标模型在确定语义相关的基础上,同时考虑实体相关性,进一步优化搜索结果。

在本公开的一种可选实施例中,所述损失计算参数还可以包括:第二损失值,所述第二损失值为根据所述第二预测结果和第二标注信息计算得到,所述第二标注信息用于标注所述第一输入序列中每个字符对应的实体标签。第二损失值用于表示命名实体识别任务损失,也即第二任务的预测结果与第二标注信息之间的差异。通过第二损失函数可以计算第二损失值,可选地,第二损失函数可以使用交叉熵损失函数。

其中,能够描述和区别一个实体的特性统称为实体标签,实体标签可用于区分实体类别。实体标签可以是一个字符串、一个词、一个短语等。每一个实体可以具有多个实体标签,实体可以被实体标签划分成某个实体的集合,足够的实体标签也可以唯一确定一个实体。由此,可以对用户生成内容数据和用户搜索行为数据进行挖掘,获取多个实体标签组合为实体标签集合。其中,挖掘的方法有很多种,可以根据实际应用需要选择。例如,可以是基于垂类网站的结构化标签挖掘、基于样本实体标签的标签挖掘、基于模糊匹配的标签挖掘和基于中心元素的标签生成等方法中的一种或者多种。

在本公开的一种可选实施例中,损失计算参数包括:第一损失值、第二损失值、以及实体相关性,所述根据损失计算参数,计算模型损失值,具体可以包括:

步骤s21、依据所述第一预测结果以及所述第一标注信息,通过第一损失函数计算第一损失值;

步骤s22、依据所述第二预测结果以及所述第二标注信息,通过第二损失函数计算第二损失值;

步骤s23、根据所述第一损失值、所述第二损失值、以及所述实体相关性,计算模型损失值。

本公开实施例在第一损失值和实体相关性的基础上,在损失计算参数中增加了第二损失值(如loss2)。也即,计算模型损失值如下:loss=loss1+loss2+reg3,使得训练得到的目标模型在确定语义相关的基础上,同时考虑实体相关性,并且增加实体识别准确性的约束,更进一步优化搜索结果。

在本公开的一种可选实施例中,步骤103所述根据所述第二预测结果,确定所述第一文本样本和所述第二文本样本的实体相关性,具体可以包括:

步骤s31、将所述第二预测结果中的所述第一实体特征和所述第二实体特征分别进行平均池化后,计算余弦相似度;

步骤s32、根据所述余弦相似度,确定所述第一文本样本和所述第二文本样本的实体相关性。

第一实体特征可用于表征第一文本样本的实体类别,第二实体特征可用于表征第二文本样本的实体类别,第一文本样本和第二文本样本的实体相关性指第一实体特征和第二实体特征之间的一致性或相似度。

在具体实施中,将第一输入序列输入初始模型后,初始模型可以通过第二任务分别识别第一文本样本的第一实体特征(假设记为queryembedding)以及第二文本样本的第二实体特征(假设记为poi/spuembedding),并且计算两个实体特征之间的一致性或者相似度。

具体地,将识别后的queryembedding和poi/spuembedding分别进行averagepooling(平均池化)之后,计算两者的余弦相似度,将该余弦相似度作为第一文本样本和第二文本样本的实体相关性的正则项表示。

在本公开的一种可选实施例中,步骤103所述根据所述第二预测结果,确定所述第一文本样本和所述第二文本样本的实体相关性,具体可以包括:

步骤s41、对所述第二预测结果中的所述第一实体特征和所述第二实体特征计算最大公共子串;

步骤s42、根据所述最大公共子串,确定所述第一文本样本和所述第二文本样本的实体相关性。

在本公开实施例中,初始模型可以通过第二任务分别识别第一文本样本的第一实体特征(queryembedding)以及第二文本样本的第二实体特征(poi/spuembedding),第一实体特征和第二实体特征可以为两个字符串。因此,计算两者之间的一致性或者相似度,可以通过判断这两个字符串之间的相似度来计算。

两个字符串之间的相似度可以通过这两个字符串包含的最大公共子串所确定,因此,本公开实施例可以计算所述第一实体特征与所述第二实体特征的最大公共子串,将所述最大公共子串作为第一文本样本和所述第二文本样本的实体相关性的正则项表示。

在本公开的一种可选实施例中,步骤s21所述依据所述第一预测结果以及所述第一标注信息,通过第一损失函数计算第一损失值,具体可以包括:

步骤s211、依据所述第一预测结果,得到第一任务预测的所述第一文本样本和所述第二文本样本的语义相关概率;

步骤s212、根据所述语义相关概率以及所述第一标注信息,通过第一损失函数计算第一损失值。

所述第一任务用于预测第一输入序列中第一字符序列与第二字符序列之间的语义相关性,也即预测第一文本样本和第二文本样本之间的语义相关性。

在一个示例中,将第一输入序列“cls红/酒sep红/酒/开/瓶/器”输入bert预训练模型,cls为一个768维的向量,最后通过softmax函数可以转化成一个概率值,该概率值可以表示第一文本样本“红酒”和第二文本样本“红酒开瓶器”的语义相似程度,本公开实施例将该概率值称为语义相关概率。

根据所述语义相关概率以及所述第一标注信息,通过第一损失函数可以计算第一损失值,以确定当前模型的第一预测结果与第一标注信息之间的差异,根据该差异优化模型参数。

在本公开的一种可选实施例中,步骤s22所述依据所述第二预测结果以及所述第二标注信息,通过第二损失函数计算第二损失值,具体可以包括:

步骤s221、依据所述第二预测结果,得到第二任务对所述第一输入序列进行实体识别得到的实体标注序列;

步骤s222、根据所述实体标注序列以及所述第二标注信息,通过第二损失函数计算第二损失值。

第二任务可以对第一输入序列进行实体标注,得到第一输入序列对应的实体标注序列,并且根据该实体标注序列识别所述第一文本样本对应的第一实体特征和所述第二文本样本对应的第二实体特征。

第一输入序列的实体标注序列中包括每个字符对应的实体标注信息,以第一输入序列为“cls红/酒sep红/酒/开/瓶/器”为例,通过第二任务对该第一输入序列进行实体识别可以得到如下实体标注序列:b-cat/e-cat/o/b-spu/m-spu/m-spu/m-spu/e-spu。其中,“b-cat”为第一文本样本“红酒”中的字符“红”对应的实体标注信息,“e-cat”为第一文本样本“红酒”中的字符“酒”对应的实体标注信息,“o”用于表示分隔符,“b-spu”为第二文本样本“红酒开瓶器”中的字符“红”对应的实体标注信息,“m-spu”为第二文本样本“红酒开瓶器”中的字符“酒”对应的实体标注信息,以此类推。其中,cat和spu为实体标签,实体标签“cat”表示实体类别为“红酒”,实体标签“spu”表示实体类别为“开瓶器”。实体标签的前缀如“b-cat”中的“b”表示一个字符序列中的第一个字符,前缀“e”表示一个字符序列中的最后一个字符,“m”表示一个字符序列中的中间字符。

根据第二任务预测的实体标注序列以及第二标注信息,通过第二损失函数可以计算第二损失值,以确定当前模型的第二预测结果与第二标注信息之间的差异,根据该差异优化模型参数。

需要说明的是,上述将交叉熵损失函数作为第一损失函数和第二损失函数,仅作为本公开的一种应用示例,本公开实施例对第一损失函数和第二损失函数的具体类型不作限制。

参照图2,示出了本公开的一个实施例中的训练目标模型的流程示意图。如图2所示,输入的第一输入序列为“cls红/酒sep红/酒/开/瓶/器”,分别确定第一任务的第一预测结果以及第二任务的第二预测结果。第一预测结果包括第一文本样本“红酒”与第二文本样本“红酒开瓶器”之间的语义相关性,第二预测结果包括第一输入序列“cls红/酒sep红/酒/开/瓶/器”对应的实体标注序列,根据该实体标注序列可以得到第一文本样本的第一实体特征和第二文本样本的第二实体特征。

如图2所示,本公开实施例将第一预测结果输入第一损失函数计算第一损失值,将第二预测结果输入第二损失函数计算第二损失值,以及根据第二任务识别的第一文本样本的第一实体特征(queryembedding)以及第二文本样本的第二实体特征(spuembedding),确定第一文本样本和第二文本样本的实体相关性,将第一文本样本“红酒”与第二文本样本“红酒开瓶器”之间的实体相关性作为正则约束项,与第一损失值和第二损失值共同参与第一文本样本“红酒”与第二文本样本“红酒开瓶器”的相关度的确定过程,根据第一损失值、第二损失值、以及实体相关性共同计算模型损失值;根据所述模型损失值,对所述初始模型的模型参数进行调整,直到计算的模型损失值达到预设损失值,得到训练完成的目标模型。

综上,本公开实施例提供了一种用于确定文本相关度的模型训练方法,在模型训练过程中,预测第一文本样本和第二文本样本之间的语义相关性,以及第一文本样本的第一实体特征和第二文本样本的第二实体特征,根据第一实体特征和第二实体特征可以确定第一文本样本和第二文本样本的实体相关性,进而在第一损失值的基础上,结合实体相关性共同参与模型损失值的计算,联合训练目标为最小化模型损失值,使得训练得到的目标模型在确定语义相关的基础上,同时考虑实体相关性,进一步优化搜索结果。例如,在查询词和搜索结果的实体不相关的情况下,本公开实施例训练得到的目标模型能够做出更准确的相关度判断,避免出现误判的情况,可以提高搜索结果的准确性。

实施例二

参照图3,其示出了本公开的一个实施例中的确定文本相关度的方法的步骤流程图,所述方法包括:

步骤301、根据第一文本和第二文本确定第二输入序列;

步骤302、将所述第二输入序列输入目标模型,通过所述目标模型输出所述第一文本和所述第二文本的相关度,所述目标模型根据上述用于确定文本相关度的模型训练方法训练得到。

需要说明的是,所述目标模型根据上述用于确定文本相关度的模型训练方法训练得到。

本公开提供的确定文本相关度的方法可应用于电子设备,所述电子设备具体包括但不限于:智能手机、平板电脑、电子书阅读器、mp3(动态影像专家压缩标准音频层面3,movingpictureexpertsgroupaudiolayeriii)播放器、mp4(动态影像专家压缩标准音频层面4,movingpictureexpertsgroupaudiolayeriv)播放器、膝上型便携计算机、车载电脑、台式计算机、机顶盒、智能电视机、可穿戴设备等等。

第一文本可以为用户输入的搜索信息,如query(查询词)。可选地,所述第一文本可以为用户输入的搜索信息的一部分内容或全部内容。例如,用户输入的搜索信息为“红酒推荐”,则第一文本可以为“红酒推荐”或者“红酒”。

第二文本可以为搜索引擎针对所述第一文本召回的召回结果。基于本公开实施例提供的确定文本相关度的方法,确定第一文本和第二文本的相关度,进而可以根据第一文本和第二文本的相关度,对所述召回结果进行排序,得到向用户推荐的搜索结果。

在具体应用中,召回结果的数量通常较大,且包含大量相关性较低的搜索结果,为了提高搜索效率,可选地,所述第二文本可以为对所述召回结果进行初步排序后得到的粗排结果。然后再基于本公开实施例提供的确定文本相关度的方法,在所述粗排结果的基础上,确定第一文本和第二文本的相关度,根据该相关度,对所述粗排结果进行进一步排序,得到向用户推荐的搜索结果。

本公开实施例的应用场景包括但不限于自然语言处理、垃圾邮件过滤、网页搜索等。尤其适用于在o2o搜索场景中,确定查询词query和搜索的商家poi(pointofinformation,兴趣点)/spu(standardproductunit,标准化产品单元)之间的相关度,以提高o2o搜索场景的搜索结果的准确性。其中,spu是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。例如,上述“ladymarry婚纱”为一个商家poi,“红酒开瓶器”为一个spu。所述第一文本和第二文本可以为短文本。所述第一文本可以为o2o搜索场景的query,所述第二文本可以为o2o搜索场景的poi/spu。

在本公开的一个示例中,假设第一文本为“红酒”,第二文本为“红酒开瓶器”,确定第二输入序列为“cls红/酒sep红/酒/开/瓶/器”,将该第二输入序列输入已训练好的目标模型,通过所述目标模型输出所述第一文本和所述第二文本的相关度。例如,输出的相关度可以为分类结果,如相关或者不相关。或者,输出的相关度可以为一个概率值,用于表示第一文本和第二文本的相关程度。虽然第一文本“红酒”和第二文本“红酒开瓶器”语义相关,但是二者属于不同实体类别,实体并不相关,因此,通过本公开实施例的目标模型将输出第一文本“红酒”和第二文本“红酒开瓶器”不相关的预测结果,或者,输出一个相关度较低概率值。

本公开实施例在训练目标模型的过程中,在语义相关性的第一损失值的基础上,结合实体相关性共同参与模型损失值的计算,联合训练目标为最小化模型损失值,使得训练得到的目标模型在确定语义相关的基础上,同时考虑实体相关性,进一步优化搜索结果。例如,在查询词和搜索结果的实体不相关的情况下,本公开实施例训练得到的目标模型能够做出更准确的相关度判断,避免出现误判的情况,可以提高搜索结果的准确性。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开实施例并不受所描述的动作顺序的限制,因为依据本公开实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本公开实施例所必须的。

实施例三

参照图4,其示出了本公开的一个实施例中的用于确定文本相关度的模型训练装置的结构图,具体如下。

第一序列确定模块401,用于根据第一文本样本和第二文本样本确定第一输入序列;

初始预测模块402,用于将所述第一输入序列输入初始模型,获得包括所述第一文本样本和所述第二文本样本的语义相关性的第一预测结果以及包括所述第一文本样本的第一实体特征和所述第二文本样本的第二实体特征的第二预测结果;

相关性确定模块403,用于根据所述第二预测结果,确定所述第一文本样本和所述第二文本样本的实体相关性;

损失值计算模块404,用于根据损失计算参数,计算模型损失值,所述损失计算参数包括:第一损失值和所述实体相关性,所述第一损失值为根据所述第一预测结果和第一标注信息计算得到,所述第一标注信息用于标注所述第一文本样本和所述第二文本样本的语义相关性;

迭代调参模块405,用于根据所述模型损失值,对所述初始模型的模型参数进行调整,直到计算的模型损失值达到预设损失值,得到训练完成的目标模型。

可选地,所述相关性确定模块403,包括:

第一计算子模块,用于将所述第二预测结果中的所述第一实体特征和所述第二实体特征分别进行平均池化后,计算余弦相似度;

第一确定子模块,用于根据所述余弦相似度,确定所述第一文本样本和所述第二文本样本的实体相关性。

可选地,所述相关性确定模块403,包括:

第二计算子模块,用于对所述第二预测结果中的所述第一实体特征和所述第二实体特征计算最大公共子串;

第二确定子模块,用于根据所述最大公共子串,确定所述第一文本样本和所述第二文本样本的实体相关性。

可选地,所述损失计算参数还包括:第二损失值,所述第二损失值为根据所述第二预测结果和第二标注信息计算得到,所述第二标注信息用于标注所述第一输入序列中每个字符对应的实体标签。

可选地,所述损失值计算模块404,包括:

第一损失计算子模块,用于依据所述第一预测结果以及所述第一标注信息,通过第一损失函数计算第一损失值;

第二损失计算子模块,用于依据所述第二预测结果以及所述第二标注信息,通过第二损失函数计算第二损失值;

模型损失计算子模块,用于根据所述第一损失值、所述第二损失值、以及所述实体相关性,计算模型损失值。

可选地,所述第一损失计算子模块,包括:

概率计算单元,用于依据所述第一预测结果,得到第一任务预测的所述第一文本样本和所述第二文本样本的语义相关概率;

第一损失计算单元,用于根据所述语义相关概率以及所述第一标注信息,通过第一损失函数计算第一损失值。

可选地,所述第二损失计算子模块,包括:

实体序列预测单元,用于依据所述第二预测结果,得到第二任务对所述第一输入序列进行实体识别得到的实体标注序列;

第二损失计算单元,用于根据所述实体标注序列以及所述第二标注信息,通过第二损失函数计算第二损失值。

可选地,所述初始模型为基于bert预训练模型结构的多任务学习模型。

本公开实施例提供了一种用于确定文本相关度的模型训练装置,在模型训练过程中,预测第一文本样本和第二文本样本之间的语义相关性,以及第一文本样本的第一实体特征和第二文本样本的第二实体特征,根据第一实体特征和第二实体特征可以确定第一文本样本和第二文本样本的实体相关性,进而在第一损失值的基础上,结合实体相关性共同参与模型损失值的计算,联合训练目标为最小化模型损失值,使得训练得到的目标模型在确定语义相关的基础上,同时考虑实体相关性,进一步优化搜索结果。例如,在查询词和搜索结果的实体不相关的情况下,本公开实施例训练得到的目标模型能够做出更准确的相关度判断,避免出现误判的情况,可以提高搜索结果的准确性。

实施例四

参照图5,其示出了本公开的一个实施例中的确定文本相关度的装置的结构图,具体如下。

第二序列确定模块501,用于根据第一文本和第二文本确定第二输入序列;

模型预测模块502,用于将所述第二输入序列输入目标模型,通过所述目标模型输出所述第一文本和所述第二文本的相关度,所述目标模型根据上述用于确定文本相关度的模型训练方法训练得到。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开的实施例还提供了一种电子设备,参见图6,包括:处理器601、存储器602以及存储在所述存储器上并可在所述处理器上运行的计算机程序6021,所述处理器执行所述程序时实现前述实施例的用于确定文本相关度的模型训练方法。

本公开的实施例还提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述实施例的用于确定文本相关度的模型训练方法。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本公开的实施例的示例性实施例的描述中,本公开的实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开的实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的实施例的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

本公开的实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本公开的实施例的排序设备中的一些或者全部部件的一些或者全部功能。本公开的实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。这样的实现本公开的实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本公开的实施例进行说明而不是对本公开的实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开的实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

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

以上所述仅为本公开的实施例的较佳实施例而已,并不用以限制本公开的实施例,凡在本公开的实施例的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本公开的实施例的保护范围之内。

以上所述,仅为本公开的实施例的具体实施方式,但本公开的实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开的实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的实施例的保护范围之内。因此,本公开的实施例的保护范围应以权利要求的保护范围为准。

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