一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种商品信息召回方法、装置、设备和计算机存储介质与流程

2022-07-30 11:02:17 来源:中国专利 TAG:
1.本技术涉及互联网
技术领域
:,尤其涉及一种商品信息召回方法、装置、电子设备和计算机存储介质。
背景技术
::2.电商搜索系统中的商品召回模块主要使用倒排召回的方式,根据商品和搜索关键词的字面匹配程度来决定商品是否被召回。然而,倒排召回不能召回字面不匹配但语义相关的商品。例如“送爷爷的手机”难以召回“老人手机”之类的商品。3.相关技术中,通常使用深度学习模型来解决上述问题;其核心原理是通过学习商品和用户的搜索关键词(query)的向量表征(embedding),来计算两者之间的相似度。然而,现有模型对中长尾query的泛化性差,原因是现有模型采用n-gram方式对query进行分词,且query句向量是由词向量平均池化得到,而n-gram中的n在中文电商领域一般小于3;因此对于字符长度较长的query,现有模型难以捕捉到远距离词之间的联系,导致模型的泛能能力较差,进而,降低模型检索召回的精准度。技术实现要素:4.本技术提供一种商品信息召回方法、装置、电子设备和计算机存储介质,能够提升模型的泛化能力,确保模型检索召回的精准度。5.本技术的技术方案是这样实现的:6.本技术实施例提供了一种商品信息召回方法,所述方法包括:7.获取第一训练样本集和第二训练样本集;所述第一训练样本集中每个训练样本包括商品信息和伪造query;伪造query是对所述商品信息包括的商品标题进行伪造得到的;所述第二训练样本集中每个训练样本是从用户点击日志数据中获取的,所述每个训练样本包括真实query及对应的被点击商品信息;8.根据所述第一训练样本集对所述预先构建的(deepstructuredsemanticmodels,dssm)模型进行预训练,得到初始双塔模型;根据所述第二训练样本集对所述初始双塔模型进行微调训练,得到训练完成的双塔模型;9.获取用户针对当前query的检索请求;根据所述训练完成的双塔模型,得到所述当前query的召回结果;所述召回结果包括与所述当前query的相似度最高的前k个商品的商品信息;k为大于零的整数。10.在一些实施例中,所述预先构建的双塔模型包括query侧编码器和商品侧编码器;所述根据所述第一训练样本集对预先构建的双塔模型进行预训练,包括:11.根据所述query侧编码器,确定所述第一训练样本集中每一伪造query的句向量;根据所述商品侧编码器,确定所述第一训练样本集中每一商品信息的句向量;12.确定所述每一伪造query的句向量与所述每一商品信息的句向量之间的第一相似度;根据所述第一相似度,确定第一损失函数;13.使用目标损失函数对所述预先构建的双塔模型进行预训练;所述目标损失函数包括所述第一损失函数。14.在一些实施例中,所述每一商品信息还包括至少一种商品属性;所述使用目标损失函数对所述预先构建的双塔模型进行预训练,包括:15.从所述第一训练样本集中选取设定数目的目标商品属性;所述目标商品属性为所述至少一种商品属性中的任意一种商品属性;16.按照预设方式对所述设定数目的目标商品属性进行随机掩码后,根据所述预先构建的双塔模型中的多层感知机,对与所述设定数目的目标商品属性相关的句向量进行分类预测,得到预测结果;17.根据所述预测结果和所述设定数目的目标商品属性的真实结果,确定第二损失函数;18.对所述第一损失函数和所述第二损失函数进行累加,得到所述目标损失函数;19.使用所述目标损失函数对所述预先构建的双塔模型进行预训练。20.在一些实施例中,所述根据所述第二训练样本集对所述初始双塔模型进行微调训练,得到训练完成的双塔模型,包括:21.根据所述初始双塔模型中的query侧编码器,确定第二训练样本集中每一真实query的句向量;根据所述初始双塔模型中的商品侧编码器,确定第二训练样本集中每一被点击商品信息的句向量;22.确定所述每一真实query的句向量与所述每一被点击商品信息的句向量之间的第二相似度;根据所述第二相似度,确定第三损失函数;23.使用所述第三损失函数对所述初始双塔模型进行微调训练,得到训练完成的双塔模型。24.在一些实施例中,对所述商品信息包括的商品标题进行伪造得到伪造query的方式,包括:25.从所述商品标题随机截取一段字符长度满足第一设定长度的字符串作为所述伪造query;或者,从所述商品标题随机截取两段字符长度满足第二设定长度的字符串,将截取的两段字符串进行拼接,得到所述伪造query。26.在一些实施例中,所述方法还包括:27.在得到训练完成的双塔模型后,使用所述训练完成的双塔模型中的商品侧编码器,离线对预先获取的热门商品集合中每个商品的商品信息预测对应的句向量;28.对所述热门商品集合中每个商品的商品信息对应的句向量建立索引,得到索引集合;所述索引集合中每一索引用于确定所述当前query的召回结果。29.在一些实施例中,所述根据所述训练完成的双塔模型,得到所述当前query的召回结果,包括:30.将所述训练完成的双塔模型中的query侧编码器以及所述索引集合中每一索引加载到线上后,根据所述训练完成的双塔模型中的query侧编码器,预测所述当前query的句向量;31.根据所述当前query的句向量,对所述索引集合中每一索引进行检索,得到所述当前query的召回结果。32.本技术实施例还提出了一种商品信息召回装置,所述装置包括获取模块、训练模块和得到模块,其中,33.获取模块,用于获取第一训练样本集和第二训练样本集;所述第一训练样本集中每个训练样本包括商品信息和伪造query;伪造query是对所述商品信息包括的商品标题进行伪造得到的;所述第二训练样本集中每个训练样本是从用户点击日志数据中获取的,所述每个训练样本包括真实query及对应的被点击商品信息;34.训练模块,用于根据所述第一训练样本集对预先构建的双塔模型进行预训练,得到初始双塔模型;根据所述第二训练样本集对所述初始双塔模型进行微调训练,得到训练完成的双塔模型;35.得到模块,用于获取用户针对当前query的检索请求;根据所述训练完成的双塔模型,得到所述当前query的召回结果;所述召回结果包括与所述当前query的相似度最高的前k个商品的商品信息;k为大于零的整数。36.本技术实施例提供一种电子设备,所述设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述一个或多个技术方案提供的商品信息召回方法。37.本技术实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机程序;所述计算机程序被执行后能够实现前述一个或多个技术方案提供的商品信息召回方法。38.本技术实施例提出了一种商品信息召回方法、装置、电子设备和计算机存储介质,所述方法包括:获取第一训练样本集和第二训练样本集;所述第一训练样本集中每个训练样本包括商品信息和伪造query;伪造query是对所述商品信息包括的商品标题进行伪造得到的;所述第二训练样本集中每个训练样本是从用户点击日志数据中获取的,所述每个训练样本包括真实query及对应的被点击商品信息;根据所述第一训练样本集对预先构建的双塔模型进行预训练,得到初始双塔模型;根据所述第二训练样本集对所述初始双塔模型进行微调训练,得到训练完成的双塔模型;获取用户针对当前query的检索请求;根据所述训练完成的双塔模型,得到所述当前query的召回结果;所述召回结果包括与所述当前query的相似度最高的前k个商品的商品信息;k为大于零的整数。39.可以看出,本技术实施例的模型训练过程分为预训练阶段和微调训练阶段,其中,在预训练阶段,通过对第一训练样本集每个训练样本的商品标题进行伪造,得到伪造query的方式,使得模型充分学习到更多query的可能性,即,学习了各种词汇组成的方式,包括字符长度较长的query,便于模型捕捉到远距离词之间的联系;如此,解决了中长尾query不容易学习的问题,有效提升了模型的泛化能力。另外,模型在预训练阶段的优化目标与微调训练阶段的优化目标保持一致,通过从用户点击日志数据中获取的真实query和商品信息对模型进行微调训练,能够进一步提升模型学习的效果,有效提升模型表征能力以及模型整体的精准度。附图说明40.图1a是本技术实施例中的一种商品信息召回方法的流程示意图;41.图1b为本技术实施例中的一种根据商品标题得到伪造query的示意图;42.图1c是本技术实施例中的一种进行预训练的网络结构的示意图;43.图1d是本技术实施例中的一种进行微调训练的网络结构的示意图;44.图1e是本技术实施例中的一种实现离线导出和在线服务的示意图;45.图2为本技术实施例的一种对双塔模型进行训练的流程示意图;46.图3是本技术实施例的商品信息召回装置的组成结构示意图;47.图4是本技术实施例提供的一种电子设备的结构示意图。具体实施方式48.以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本技术,并不用于限定本技术。另外,以下所提供的实施例是用于实施本技术的部分实施例,而非提供实施本技术的全部实施例,在不冲突的情况下,本技术实施例记载的技术方案可以任意组合的方式实施。49.需要说明的是,在本技术实施例中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其它要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。50.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,i和/或j,可以表示:单独存在i,同时存在i和j,单独存在j这三种情况。另外,本文中术语“至少一种”表示多种中的任一或多种中的至少两种的任意组合,例如,包括i、j、r中的至少一种,可以表示包括从i、j和r构成的集合中选择的任意一个或多个元素。51.例如,本技术实施例提供的商品信息召回方法包含了一系列的步骤,但是本技术实施例提供的商品信息召回方法不限于所记载的步骤,同样地,本技术实施例提供的商品信息召回装置包括了一系列模块,但是本技术实施例提供的商品信息召回装置不限于包括所明确记载的模块,还可以包括为获取相关任务数据、或基于任务数据进行处理时所需要设置的模块。52.本技术实施例可以应用于终端设备和/或服务器组成的计算机系统中,并可以与众多其它通用或专用计算系统环境或配置一起操作。这里,终端设备可以是瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统,等等,服务器可以是小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。53.终端设备、服务器等电子设备可以通过程序模块的执行实现相应的功能。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。54.相关技术中,在电商搜索领域,主流的向量召回模型对搜索关键词和商品的分词方式是n-gram的方式,模型框架基于dssm,也称双塔语义模型进行训练;模型本身使用简单的平均池化(mean-pooling),原因在于搜索关键词通常比较短,n-gram的分词方式足以捕捉短距离词与词之间关系。n-gram分词得到的词表量级在百万级别。使用大量的点击数据可以充分的学习这些词向量,从而得到高质量的句向量。目前,transformer模型在自然语言处理领域应用广泛,该模型的优势在于通过自注意力机制可以捕捉到文本的主体,同时模型本身由于参数量巨大,在词向量之上可以学习到更多的文本知识,但transformer模型的分词方式通常是一元分词(unigram),即单个文字,词表在2w左右。在中文搜索召回这一场景的模型中实验,unigram分词加上transformer模型的训练效果不如n-gram分词加上mean-pooling,因此如何得到效果更好的模型是一大探索的方向。55.针对电商搜索场景,现有的向量召回模型主要存在以下缺点:56.1)泛化能力差;现有的向量召回模型对中长尾query的泛化性差,原因是现有模型用n-gram方式对query进行分词,query句向量是由词向量平均池化得到,而n-gram中的n在中文电商领域一般小于3,因此对于字符长度较长的query,模型无法捕捉到远距离词之间的联系。57.2)召回相关性不足;现有的向量召回模型的结构比较简单,参数量不足以学习到足够的知识,现有模型主要的学习目标是百万量级的词向量,而不关注词向量间的交互,无法学习到深层的语义关系。模型召回的商品更多停留在词粒度的语义相似,而忽略了query主体的语义召回;例如搜索一个长尾query“牛仔裤刺绣图案红色”,刺绣相关的商品可能被召回,这就导致召回的商品相关性不足。58.3)商品类目属性不准;商品类目这一属性对模型训练有正向提升,但这一属性存在着一定误差,一部分来自于商家填写偏差,另一部分来自于类目体系建设偏差,因此会影响召回模型的精准性。59.针对上述技术问题,提出以下各实施例。60.在本技术的一些实施例中,商品信息召回方法可以利用商品信息召回装置中的处理器实现,上述处理器可以为特定用途集成电路(applicationspecificintegratedcircuit,asic)、数字信号处理器(digitalsignalprocessor,dsp)、数字信号处理装置(digitalsignalprocessingdevice,dspd)、可编程逻辑装置(programmablelogicdevice,pld)、现场可编程逻辑门阵列(fieldprogrammablegatearray,fpga)、中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器中的至少一种。61.图1a是本技术实施例中的一种商品信息召回方法的流程示意图,如图1a所示,该方法包括如下步骤:62.步骤100:获取第一训练样本集和第二训练样本集;第一训练样本集中每个训练样本包括商品信息和伪造query;伪造query是对商品信息包括的商品标题进行伪造得到的;第二训练样本集中每个训练样本包括商品信息和真实query。63.示例性地,第一训练样本集和第二训练样本集中每个训练样本包括的商品信息可以相同;其中,商品信息可以包括商品标题和至少一种商品属性;这里,商品属性可以是数值类商品属性,也可以是身份标识(identity,id)类商品属性,例如,类目、店铺、品牌等;后续预训练过程中,本技术实施例以类目这一属性为例进行说明。64.示例性地,对于第一训练样本集中每个训练样本,其包括商品信息外,还包括一个根据商品标题伪造的query。65.在一些实施例中,对根据商品标题进行伪造得到伪造query的方式,可以包括以下两种:一种是从商品标题随机截取一段字符长度满足第一设定长度的字符串作为伪造query;另一种是从商品标题随机截取两段字符长度满足第二设定长度的字符串,将截取的两段字符串进行拼接,得到伪造query。66.示例性地,在按照第二种方式对截取的两段字符串进行拼接时,对于这两段字符串的先后顺序不作限定。67.示例性地,对于第一设定长度和第二设定长度的取值范围可以根据实际情况进行设置,本技术实施例对此不作限定;例如,第一设定长度的取值范围可以为5至15长度的字符串,第二设定长度的取值范围可以为3至8长度的字符串。68.图1b为本技术实施例中的一种根据商品标题得到伪造query的示意图,如图1b所示,从商品标题“荣耀笔记本电脑magicbookx15轻薄本手提商务办公超级本华为多屏协同银i5-40210u8gb512gb官方标配”中随机截取一段字符串“公超级本华为多屏协”,此时,该字符串即为根据上述第一种方式得到的伪造query;另外,对上述商品标题随机截取两段字符串,分别为“记本电脑”和“gb512gb官方”,通过对这两段字符串进行拼接,即可得到根据上述第二种方式得到的伪造query。69.这里,对于截取一段字符或两段字符得到伪造query的概率不作限定;可以理解地,为了确保模型的训练效果,截取一段字符或两段字符的概率可以分别为50%;这样,按照上述任意一种方式进行截取,商品标题中被截取的字符串有50%的概率保留,50%的概率被删除。70.本技术实施例中,对于第二训练样本集中每个训练样本,其包括商品信息外,还包括一个真实query;其中,该真实query为用户在电商搜索系统中真实的搜索关键词,每个训练样本包括的商品信息表示与真实query对应的商品信息。71.本技术实施例中,对于获取第一训练样本集和第二训练样本集的方式不作限定;示例性地,第一训练样本集中的商品信息可以来自于电商平台展示过的全部商品或者部分热门商品。第二训练样本集中的训练样本可以来自于用户点击日志数据,具体是用户点击商品的日志数据,一个训练样本是一个点击行为;可以理解地,为确保模型训练效果,训练样本可以是用户在设定时间段内点击超过设定次数的“真实query-被点击商品信息”对;这里,设置超过设定次数的原因在于未超过设定次数的点击日志数据很可能是用户误点击或者商家作弊造成的,该数据很可能是噪声,会对模型训练效果造成不良影响。示例性地,对于上述设定时间段的取值不作限定,也可以是近60天、30天等。72.步骤101:根据第一训练样本集对预先构建的双塔模型进行预训练,得到初始双塔模型;根据第二训练样本集对初始双塔模型进行微调训练,得到训练完成的双塔模型。73.示例性地,在根据上述步骤获取到第一训练样本集后,根据第一训练样本集中的每一样本对预先构建的双塔模型进行预训练;这里,在预训练之前,可以将第一训练样本集分为一个或多个批数据(batch),batch表示模型单次训练用的样本数;即,按照每个batch对预先构建的双塔模型进行预训练;本技术实施例中以第一训练样本集作为一个batch为例进行说明。74.在一些实施例中,预先构建的双塔模型包括query侧编码器和商品侧编码器;根据第一训练样本集对预先构建的双塔模型进行预训练,可以包括:根据query侧编码器,确定第一训练样本集中每一伪造query的句向量;根据商品侧编码器,确定第一训练样本集中每一商品信息的句向量;确定每一伪造query的句向量与每一商品信息的句向量之间的第一相似度;根据第一相似度,确定第一损失函数;使用目标损失函数对预先构建的双塔模型进行预训练;目标损失函数包括第一损失函数。75.本技术实施例中,双塔模型可以是基于语义相似度模型(deepstructuredsemanticmodels,dssm)的双塔模型;这里,对于query侧编码器和商品侧编码器的网络结构不作限定,例如,可以为transformer编码器、卷积神经网络(convolutionalneuralnetworks,cnn)等多种网络结构;其中,query侧编码器和商品侧编码器的网络结构可以相同,也可以不同。76.示例性地,在query侧编码器和商品侧编码器中至少一个为transformer编码器的情况下,transformer编码器的层数为4层,向量的维度为768,多头注意力个数12个。此时,无需对transformer加载预训练参数,使用截断正态分布随机初始化模型参数即可。77.示例性地,对于根据query侧编码器,确定第一训练样本集中每一伪造query的句向量的实现方式,可以为:首先对第一训练样本集中的每一伪造query转换成序列向量(sequenceembedding),再将该序列向量输入至query侧编码器对其进行编码,得到每一伪造query的句向量。78.示例性地,对于根据商品侧编码器,确定第一训练样本集中每一商品信息的句向量的实现方式,可以为:首先对第一训练样本集中的每一商品信息中的商品标题进行分词,再转换成序列向量;接着,将每一商品信息中的每种商品属性转换成向量,通过将每种商品属性转换的向量拼接在商品标题转换的序列向量后,组成每一商品信息的序列向量,再将每一商品信息的序列向量输入至商品侧编码器对其进行编码,得到每一商品信息的句向量。79.这里,以其中一个商品信息为例,对该商品信息的序列向量的确定方式进行说明;示例性,可以使用开源深度学习框架(tensorflow)提供的bert(bidirectionalencoderrepresentationsfromtransformers)中文分词方式,对商品信息中商品标题包含的中文进行分词,其中,中文为unigram单字,英文和数字为字节对编码(bytepairencoder,bpe)获取常用字符串,词典大小为21128,最终将每个商品标题对应的字符串转化为序列向量;接着,对商品信息中的每种商品属性单独建立一个向量表(embeddingtable),通过向量表将这些商品属性转化为向量后拼接在商品标题转换的序列向量前面,最终组成一个整体的序列向量,即得到该商品信息的序列向量。80.示例性地,在根据上述处理方式得到第一训练样本集中每一伪造query的句向量和每一商品信息的句向量后,计算每一伪造query的句向量和每一商品信息的句向量之间的第一相似度;这里,第一相似度可以是余弦相似度,也可以是欧氏距离相似度等,本技术实施例对此不作限定。81.进一步地,在得到第一相似度后,使用softmax函数将第一相似度转换成一个后验概率p(d |q),然后使用交叉熵损失函数确定第一损失函数l1,如公式(1)所示:[0082][0083]这里,d代表商品,d 代表正例,q代表伪造query,p(d |q)表示每一伪造query下正例的概率,该损失函数的目标是最大化正例预测的概率。其中,正例表示一个batch内,每个训练样本的伪造query和对应的商品标题,负例则表示每个训练样本的伪造query和batch内的其他商品标题。[0084]在一种实施方式中,对预先构建的双塔模型进行预训练过程可以包括确定第一损失函数l1这一任务,即,可以根据公式(1)确定的第一损失函数l1对预先构建的双塔模型进行预训练,优化直到模型损失和top1准确率收敛。[0085]在一些实施例中,上述方法还可以包括:从第一训练样本集中选取设定数目的目标商品属性;按照预设方式对设定数目的目标商品属性进行随机掩码后,根据预先构建的双塔模型中的多层感知机,对与设定数目的目标商品属性相关的句向量进行分类预测,得到预测结果;根据预测结果和设定数目的目标商品属性的真实结果,确定第二损失函数。[0086]这里,目标商品属性可以为商品信息包括的至少一种商品属性中的任一商品属性;例如,可以是类目、店铺、品牌中的任意一种。[0087]示例性地,设定数目的取值是根据对某一种商品属性进行随机掩码的概率确定的,下面实施例以类目为例进行说明;例如,第一训练样本集中包括100个训练样本,如果按照15%概率对类目这一商品属性进行随机掩码,则需要对15个训练样本中类目这一属性进行随机掩码;此时,设定数目的取值为15。[0088]进一步地,在得到设定数目的类目后,按照设定方法对这些类目进行掩码的具体实现可以为:80%的概率替换成《mask》类目,10%的概率替换成其他类目,10%的概率保留原始类目。参照图1c,在对这些类目进行随机遮掩后,将对应的商品信息输入到商品侧的transformer编码器,该编码器会输出与这些类目相关的各个句向量;在将与这些类目相关的各个句向量经过多层感知机后,对这些句向量进行分类预测,得到预测结果;其中,预测结果表示被遮掩的这些类目的预测类目,然后使用交叉熵损失函数确定第二损失函数l2,如公式(2)所示:[0089][0090]这里,表softmax函数输出概率,y为onehot正确类目;该损失函数的目标是最大化正确类目的概率。[0091]在另一种实施方式中,对预先构建的双塔模型进行预训练过程还可以包括确定第一损失l1函数和第二损失函数l2这两个任务;即,使用第一损失函数l1和第二损失函数l2同时对模型进行预训练;示例性地,可以对第一损失l1函数和第二损失函数l2进行累加,得到目标损失函数;进而,使用目标损失函数对预先构建的双塔模型进行预训练,一同优化直到模型损失和top1准确率收敛。[0092]可以看出,本技术实施例,在模型预训练过程中,通过新加一个商品类目的预测任务,有效提升双塔模型中商品侧编码器的模型表征能力。同时也提升了模型对商品类目这一属性的错误使用的鲁棒性,提升模型的精准度。[0093]本技术实施例中,对预先构建的双塔模型预训练结束后,得到初始双塔模型;接着,使用第二训练样本集对初始双塔模型进行微调训练,得到训练完成的双塔模型。[0094]在一些实施例中,根据第二训练样本集对初始双塔模型进行微调训练,得到训练完成的双塔模型,可以包括:根据初始双塔模型中的query侧编码器,确定第二训练样本集中每一真实query的句向量;根据初始双塔模型中的商品侧编码器,确定第二训练样本集中每一被点击商品信息的句向量;确定每一被点击真实query的句向量与每一商品信息的句向量之间的第二相似度;根据第二相似度,确定第三损失函数;使用第三损失函数对初始双塔模型进行微调训练,得到训练完成的双塔模型。[0095]示例性地,在将第二训练样本集看作一个batch的情况下,微调训练过程的正例表示batch内每个训练样本的真实query和对应的被点击商品标题,负例则表示每个训练样本的真实query和batch内的其他商品标题。[0096]示例性地,结合图1c和图1d可知,确定第三损失函数对初始双塔模型进行微调训练的实现方式与上述确定第一损失函数l1对模型进行预训练的实现方式类似,只是将第一训练样本集中的每一伪造query替换成第二训练样本集中的每一真实query;即,用户真实的搜关键词;每一商品信息替换成与每一真实query对应的被点击商品信息;此处不再赘述。[0097]可以理解地,本技术实施例在双塔模型的训练过程中可以选择使用dssmloss,也可以根据实际情况选择hingeloss达到类似的效果。[0098]可以看出,本技术实施例预训练模型的目标和后续微调训练模型的目标保持一致,有利于提升模型的精准度。另外,本技术实施例为基于模型层面的优化,不涉及整个模型系统架构的改动,并且模型使用的transformer编码器并行程度高,在线服务可以直接替换模型而不会大幅增加系统架构层面优化的成本。[0099]步骤102:获取用户针对当前query的检索请求;根据训练完成的双塔模型,得到当前query的召回结果;召回结果包括与当前query的相似度最高的前k个商品的商品信息;k为大于零的整数。[0100]本技术实施例中,在根据上述步骤得到训练完成的双塔模型后,需要离线准备商品的索引和query侧编码器,参照图1e所示的离线工作。在离线准备商品的索引之前,首先获取热门商品集合,这里,对于热门商品集合中的商品数目不作限定,可以根据实际情况进行确定。可以理解地,出于检索效率考虑,向量检索服务可以检索热门的1000万个商品,即,热门商品集合中的商品数目可以为1000万。[0101]在一些实施例中,在获取热门商品集合后,使用训练完成的双塔模型中的商品侧编码器,离线对热门商品集合中每个商品的商品信息预测对应的句向量;对热门商品集合中每个商品的商品信息对应的句向量建立索引,得到索引集合;同时,导出训练完成的双塔模型中的query侧编码器;这里,可以使用开源工具faiss对每个商品对应的句向量建立索引。[0102]在一些实施例中,根据训练完成的双塔模型,得到当前query的召回结果,可以包括:将训练完成的双塔模型中的query侧编码器以及索引集合中每一索引加载到线上后,根据训练完成的双塔模型中的query侧编码器,预测当前query的句向量;根据当前query的句向量,对索引集合中每一索引进行检索,得到当前query的召回结果。[0103]示例性地,可以使用检索服务(tensorflowserving)将训练完成的双塔模型中的query侧编码器以及索引集合中每一索引加载到线上;参照图1e所示的在线服务,当检索系统接收到用户针对当前query的检索请求后,首先经过query侧编码器在线预测当前query的句向量,而后使用该句向量在索引集合中检索出相似度排名最高的前k个商品的商品信息,得到当前query的召回结果;至此完成一次检索召回。[0104]本技术实施例提出了一种商品信息召回方法、装置、电子设备和计算机存储介质,方法包括:获取第一训练样本集和第二训练样本集;第一训练样本集中每个训练样本包括商品信息和伪造query;伪造query是对商品信息包括的商品标题进行伪造得到的;第二训练样本集中每个训练样本是从用户点击日志数据中获取的,每个训练样本包括真实query及对应的被点击商品信息;根据第一训练样本集对预先构建的双塔模型进行预训练,得到初始双塔模型;根据第二训练样本集对初始双塔模型进行微调训练,得到训练完成的双塔模型;获取用户针对当前query的检索请求;根据训练完成的双塔模型,得到当前query的召回结果;召回结果包括与当前query的相似度最高的前k个商品的商品信息;k为大于零的整数。[0105]可以看出,本技术实施例的模型训练过程分为预训练阶段和微调训练阶段,其中,在预训练阶段,通过对第一训练样本集每个训练样本的商品标题进行伪造,得到伪造query的方式,使得模型充分学习到更多query的可能性,即,学习了各种词汇组成的方式,包括字符长度较长的query,便于模型捕捉到远距离词之间的联系;如此,解决了中长尾query不容易学习的问题,有效提升了模型的泛化能力。另外,模型在预训练阶段的优化目标与微调训练阶段的优化目标保持一致,通过从用户点击日志数据中获取的真实query和商品信息对模型进行微调训练,能够进一步提升模型学习的效果,有效提升模型表征能力以及模型整体的精准度。[0106]为了能够更加体现本技术的目的,在本技术上述实施例的基础上,进行进一步的说明。[0107]本技术实施例首先将transformer编码器结构应用于双塔模型,将词向量编码成句向量,通过计算query和商品信息的句向量的相似度来对模型进行训练。训练的方式是首先进行预训练再进行微调训练,模型的网络结构如图1c和图1d所示。[0108]示例性地,在预训练阶段设计了两个预训练任务。任务一为通过伪造query和真实商品信息作为训练数据(对应上述第一训练样本),训练双塔模型。训练的方式为正负例方式,正例为一个batch内每一伪造query和对应的真实商品标题,负例为每一伪造query和batch内其他商品标题。预训练任务二如图1c所示,首先随机遮掩类目这一商品属性,而后用商品侧编码器输出的句向量经过多层感知机后预测被遮掩的类目。将预训练任务一的第一损失和任务二的第二损失加和后一同优化双塔模型,预训练接近收敛后进行微调训练。使用真实query和真实商品信息作为训练数据(对应上述第二训练样本)。训练方式同预训练任务一,使用正负例方式训练模型。在微调训练收敛后导出双塔模型中的query侧编码器加载在线上搜索系统,进行实时的query句向量预测。商品侧编码器则选用热门的1000万商品离线预测商品的句向量,并使用开源工具faiss建商品向量的倒排索引。将索引加载在线上后使用在线预测到的query的句向量进行检索得到召回商品集合。[0109]图2为本技术实施例的一种对双塔模型进行训练的流程示意图,如图2所示,该方法包括如下步骤:[0110]步骤s1,双塔模型搭建。[0111]示例性地,如图1c和图1d所示的网络结构,进行双塔模型的搭建;其中,图3所示的微调训练的网络结构为预训练网络结构的子集,无增加的网络模块。[0112]步骤s2,对双塔模型进行预训练。[0113]示例性地,在预训练阶段设计了两个预训练任务。预训练任务一为通过伪造query和真实商品信息作为训练数据(对应上述第一训练样本),训练双塔模型。训练的方式为正负例方式,正例为一个batch内每一伪造query和对应的真实商品标题,负例为每一伪造query和batch内其他商品标题。预训练任务二如图1c所示,首先随机遮掩类目这一商品属性,而后用商品侧编码器输出的句向量经过多层感知机后预测被遮掩的类目。将预训练任务一的第一损失和任务二的第二损失加和后一同训练双塔模型,直至收敛。[0114]步骤s3,对双塔模型进行微调训练。[0115]示例性地,在对模型预训练收敛后进行微调训练;使用真实query和真实商品信息作为训练数据(对应上述第二训练样本),训练方式同上述预训练任务一,使用正负例方式训练模型,此处不再赘述。[0116]步骤s4,模型导出和离线建立索引。[0117]示例性地,在对模型微调训练收敛后,导出双塔模型中query侧编码器;同时,使用双塔模型中的商品侧编码器离线预估热门商品集合中每个商品对应的句向量,使用开源工具faiss对这些商品的句向量建立索引,得到索引集合。[0118]步骤s5,在线服务。[0119]示例性地,将query侧编码器和索引集合加载上线进行在线服务;使用双塔模型中的query侧编码器加载到线上搜索系统,进行实时的query句向量预测,而后使用在线预测到的query的句向量在索引集合中检索出相似度最高的前k个商品的商品信息,即得到检索结果。[0120]可以看出,本技术实施例中,首先在预训练阶段,通过伪造query的方式配合真实的商品信息,进行有监督的预训练双塔模型;可行的原理是query和商品信息在电商语料中都是属性词堆砌而成,伪造的query和真实query分布接近且可以模拟更多样的长尾query。其次,预训练的目标和后续微调训练的目标保持一致,有利于提升模型的精准度;如此,通过上述训练方式整体提升了双塔模型query侧编码器的泛化能力和表达能力。进一步地,本技术实施例在预训练阶段还定义了一种商品属性遮掩预测任务,提升了商品侧编码器的鲁棒性和句向量的表达能力。[0121]图3是本技术实施例的商品信息召回装置的组成结构示意图,该装置如图3所示,该装置包括:获取模块300、训练模块301和得到模块302,其中,[0122]获取模块300,用于获取第一训练样本集和第二训练样本集;所述第一训练样本集中每个训练样本包括商品信息和伪造query;所述伪造query是对所述商品信息包括的商品标题进行伪造得到的;所述第二训练样本集中每个训练样本是从用户点击日志数据中获取的,所述每个训练样本包括真实query及对应的被点击商品信息;[0123]训练模块301,用于根据所述第一训练样本集对预先构建的双塔模型进行预训练,得到初始双塔模型;根据所述第二训练样本集对所述初始双塔模型进行微调训练,得到训练完成的双塔模型;[0124]得到模块302,用于获取用户针对当前query的检索请求;根据所述训练完成的双塔模型,得到所述当前query的召回结果;所述召回结果包括与所述当前query的相似度最高的前k个商品的商品信息;k为大于零的整数。[0125]在一些实施例中,所述预先构建的双塔模型包括query侧编码器和商品侧编码器;所述训练模块301,用于根据所述第一训练样本集对预先构建的双塔模型进行预训练,包括:[0126]根据所述query侧编码器,确定所述第一训练样本集中每一伪造query的句向量;根据所述商品侧编码器,确定所述第一训练样本集中每一商品信息的句向量;[0127]确定所述每一伪造query的句向量与所述每一商品信息的句向量之间的第一相似度;根据所述第一相似度,确定第一损失函数;[0128]使用目标损失函数对所述预先构建的双塔模型进行预训练;所述目标损失函数包括所述第一损失函数。[0129]在一些实施例中,所述每一商品信息还包括至少一种商品属性;所述训练模块301,还用于:[0130]从所述第一训练样本集中选取设定数目的目标商品属性;所述目标商品属性为所述至少一种商品属性中的任意一种商品属性;[0131]按照预设方式对所述设定数目的目标商品属性进行随机掩码后,根据所述预先构建的双塔模型中的多层感知机,对与所述设定数目的目标商品属性相关的句向量进行分类预测,得到预测结果;[0132]根据所述预测结果和所述设定数目的目标商品属性的真实结果,确定第二损失函数;[0133]对所述第一损失函数和所述第二损失函数进行累加,得到所述目标损失函数;[0134]使用所述目标损失函数对所述预先构建的双塔模型进行预训练。[0135]在一些实施例中,所述训练模块301,用于根据所述第二训练样本集对所述初始双塔模型进行微调训练,得到训练完成的双塔模型,包括:[0136]根据所述初始双塔模型中的query侧编码器,确定第二训练样本集中每一真实query的句向量;根据所述初始双塔模型中的商品侧编码器,确定第二训练样本集中每一被点击商品信息的句向量;[0137]确定所述每一真实query的句向量与所述每一被点击商品信息的句向量之间的第二相似度;根据所述第二相似度,确定第三损失函数;[0138]使用所述第三损失函数对所述初始双塔模型进行微调训练,得到训练完成的双塔模型。[0139]在一些实施例中,所述获取模块300,用于对所述商品信息包括的商品标题进行伪造得到伪造query的方式,包括:[0140]从所述商品标题随机截取一段字符长度满足第一设定长度的字符串作为所述伪造query;或者,从所述商品标题随机截取两段字符长度满足第二设定长度的字符串,将截取的两段字符串进行拼接,得到所述伪造query。[0141]在一些实施例中,所述得到模块302,还用于:[0142]在得到训练完成的双塔模型后,使用所述训练完成的双塔模型中的商品侧编码器,离线对预先获取的热门商品集合中每个商品的商品信息预测对应的句向量;[0143]对所述热门商品集合中每个商品的商品信息对应的句向量建立索引,得到索引集合;所述索引集合中每一索引用于确定所述当前query的召回结果。[0144]在一些实施例中,所述得到模块,用于根据所述训练完成的双塔模型,得到所述当前query的召回结果,包括:[0145]将所述训练完成的双塔模型中的query侧编码器以及所述索引集合中每一索引加载到线上后,根据所述训练完成的双塔模型中的query侧编码器,预测所述当前query的句向量;[0146]根据所述当前query的句向量,对所述索引集合中每一索引进行检索,得到所述当前query的召回结果。[0147]在实际应用中,上述获取模块300、训练模块301和得到模块302均可以由位于电子设备中的处理器实现,该处理器可以为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。[0148]另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。[0149]集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(readonlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。[0150]具体来讲,本实施例中的一种商品信息召回方法对应的计算机程序指令可以被存储在光盘、硬盘、u盘等存储介质上,当存储介质中的与一种商品信息召回方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述实施例的任一商品信息召回方法。[0151]基于前述实施例相同的技术构思,参见图4,其示出了本技术实施例提供的一种电子设备400,可以包括:存储器401和处理器402;其中,[0152]存储器401,用于存储计算机程序和数据;[0153]处理器402,用于执行存储器中存储的计算机程序,以实现前述实施例的任一商品信息召回方法。[0154]在实际应用中,上述存储器401可以是易失性存储器(volatilememory),例如ram;或者非易失性存储器(non-volatilememory),例如rom、快闪存储器(flashmemory)、硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);或者上述种类的存储器的组合,并向处理器402提供指令和数据。[0155]上述处理器402可以为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的审计管理平台,用于实现上述处理器功能的电子器件还可以为其它,本技术实施例不作具体限定。[0156]在一些实施例中,本技术实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。[0157]上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。[0158]本技术所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。[0159]本技术所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。[0160]本技术所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。[0161]本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。[0162]本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0163]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。[0164]以上,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献