一种基于深度学习语义蕴含的商品检索方法及存储介质与流程

文档序号:30100964发布日期:2022-05-18 12:37阅读:93来源:国知局
一种基于深度学习语义蕴含的商品检索方法及存储介质与流程

1.本技术涉及文本处理技术领域,具体涉及一种基于深度学习语义蕴含的商品检索方法及存储介质。


背景技术:

2.随着电商行业的发展,线下门店陆续将运营的重心转移到线上,各大电商平台的商品数量每时每刻都在飞速增长。面对海量的商品信息,用户难以从中甄选出心仪的商品进行比价,因此当用户浏览商品时,自动检索商品数据库中的相似商品供用户对比,毫无疑问能够节省用户的购物时间成本,大大提高用户的购物体验。
3.传统的商品检索主要基于关键词,而电商平台的商家成千上万,命名规则不尽相同,基于关键词的检索鲁棒性较差。近年兴起的深度学习方法克服了这一难点,而常见的交互式的深度神经网络需要将两个待匹配的句子拼接作为网络的输入,这意味着每次检索时需要将待检索商品与库内海量的商品依次组合进行计算,而双塔式的模型则可以离线计算库内所有商品的特征向量,并构建索引,每次检索时仅需要将待检索商品信息进行神经网络的计算,这样一来无疑会节约大量时间,但常见的双塔式模型采用二分类任务进行模型的训练,导致模型更偏向于全局特征的表示,但对于较短的文本子串不够敏感;此外,基于双塔式的商品召回缺少了不同商品间信息的交互,仅依靠双塔式模型的商品检索难以取得良好的效果。


技术实现要素:

4.鉴于上述问题,本技术提供了一种基于深度学习语义蕴含的商品检索方法及存储介质,解决现有商品检索基于双塔式的商品召回缺少了不同商品间信息的交互,仅依靠双塔式模型的商品检索难以取得良好的效果的问题。
5.为实现上述目的,发明人提供了一种基于深度学习语义蕴含的商品检索方法,包括以下步骤:
6.对已经标注的商品信息进行数据规范化,得到商品信息的四元组信息,所述四元组信息包括标题信息、属性信息、品牌信息及型号信息;
7.根据商品信息中的标题数据进行训练引入文本生成的商品检索模型;
8.根据商品信息的四元组信息进行训练得到商品信息蕴含模型;
9.对待检索商品通过商品检索模型进行商品召回,得到候选商品列表;
10.将候选商品列表中的候选商品通过商品信息蕴含模型进行蕴含度计算,根据候选商品的蕴含度对候选商品进行排序。
11.进一步优化,所述步骤“对已经标注的商品信息进行数据规范化,得到商品信息的四元组信息”具体包括以下步骤:
12.抽取已经标注的商品信息中的四元组信息作为训练数据;
13.删除四元组信息中的无效字符,并将四元组信息的全角符号转换为半角符号,及
大写字母转换为小写字符;
14.按照预设概率删除商品信息中的属性信息中的品牌属性和型号属性;
15.将不同来源的同一商品的四元组信息形成商品簇,所述商品簇的个数为商品的种类个数。
16.进一步优化,所述步骤“根据商品信息中的标题数据进行训练引入文本生成的商品检索模型”具体包括以下步骤:
17.商品检索模型使用第一语义表征模型作为第一主干网络,选取预设个数商品簇,从选取的每个商品簇内随机得到两个标题信息作为商品检索模型的输入;
18.将选取的每个商品簇内的两个标题信息以不同的顺序送入第一主干网络中,训练seq2seq任务;
19.提取第一主干网络的整个batch的所有标识向量,并做l2归一化处理,接着将提取的所有标识向量进行两两做内积,训练分类任务;
20.将seq2seq任务部分和分类任务部分的交叉熵求和作为总的损失函数,在第一主干网络的每个步骤中更新参数。
21.进一步优化,所述步骤“根据商品信息的四元组信息进行训练得到商品信息蕴含模型”具体包括以下步骤:
22.商品信息蕴含模型以第二语义表征模型作为第二主干网络,训练蕴含任务;
23.在每个商品簇内重复随机选取成对的第一商品和第二商品,将第一商品的四元组信息和第二商品的四元组信息进行组合得到作为训练数据的第一正例数据;
24.对第一正例数据进行数据增强得到第二正例数据;
25.从不同的商品簇内随机选择第三商品和第四商品,将第三商品的四元组信息和第四四元组信息进行组合得到作为训练数据的第一负例数据;
26.对第一正例数据、第二正例数据及第一负例数据进行数据增强得到第二负例数据;
27.通过将第一正例数据和第二正例数据的标签为1,第一负例数据和第二负例数据的标签为0,通过交叉熵损失训练二分类任务。
28.进一步优化,所述步骤“对待检索商品通过商品检索模型进行商品召回,得到候选商品列表”具体包括以下步骤:
29.抽取未标注的数据库内所有商品的标题信息,并对抽取的商标的标题信息进行数据规范化处理;
30.通过训练的商品检索模型提取所有处理后的标题信息的语义特征,并进行l2范数归一化;
31.将提取的标题信息的语义特征存储至向量索引库;
32.提取待检索商品的标题信息,并通过训练的商品检索模型提取待检索商品的标题特征;
33.将提取的待检索商品的标题特征作为输入,从向量索引库中进行向量召回,得到候选商品列表。
34.还提供了另一个技术方案:一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器运行时执行以下步骤:
35.对已经标注的商品信息进行数据规范化,得到商品信息的四元组信息,所述四元组信息包括标题信息、属性信息、品牌信息及型号信息;
36.根据商品信息中的标题数据进行训练引入文本生成的商品检索模型;
37.根据商品信息的四元组信息进行训练得到商品信息蕴含模型;
38.对待检索商品通过商品检索模型进行商品召回,得到候选商品列表;
39.将候选商品列表中的候选商品通过商品信息蕴含模型进行蕴含度计算,根据候选商品的蕴含度对候选商品进行排序。
40.进一步优化,所述步骤“对已经标注的商品信息进行数据规范化,得到商品信息的四元组信息”具体包括以下步骤:
41.抽取已经标注的商品信息中的四元组信息作为训练数据;
42.删除四元组信息中的无效字符,并将四元组信息的全角符号转换为半角符号,及大写字母转换为小写字符;
43.按照预设概率删除商品信息中的属性信息中的品牌属性和型号属性;
44.将不同来源的同一商品的四元组信息形成商品簇,所述商品簇的个数为商品的种类个数。
45.进一步优化,所述步骤“根据商品信息中的标题数据进行训练引入文本生成的商品检索模型”具体包括以下步骤:
46.商品检索模型使用第一语义表征模型作为第一主干网络,选取预设个数商品簇,从选取的每个商品簇内随机得到两个标题信息作为商品检索模型的输入;
47.将选取的每个商品簇内的两个标题信息以不同的顺序送入第一主干网络中,训练seq2seq任务;
48.提取第一主干网络的整个batch的所有标识向量,并做l2归一化处理,接着将提取的所有标识向量进行两两做内积,训练分类任务;
49.将seq2seq任务部分和分类任务部分的交叉熵求和作为总的损失函数,在第一主干网络的每个步骤中更新参数。
50.进一步优化,所述步骤“根据商品信息的四元组信息进行训练得到商品信息蕴含模型”具体包括以下步骤:
51.商品信息蕴含模型以第二语义表征模型作为第二主干网络,训练蕴含任务;
52.在每个商品簇内重复随机选取成对的第一商品和第二商品,将第一商品的四元组信息和第二商品的四元组信息进行组合得到作为训练数据的第一正例数据;
53.对第一正例数据进行数据增强得到第二正例数据;
54.从不同的商品簇内随机选择第三商品和第四商品,将第三商品的四元组信息和第四四元组信息进行组合得到作为训练数据的第一负例数据;
55.对第一正例数据、第二正例数据及第一负例数据进行数据增强得到第二负例数据;
56.通过将第一正例数据和第二正例数据的标签为1,第一负例数据和第二负例数据的标签为0,通过交叉熵损失训练二分类任务。
57.进一步优化,所述步骤“对待检索商品通过商品检索模型进行商品召回,得到候选商品列表”具体包括以下步骤:
58.抽取未标注的数据库内所有商品的标题信息,并对抽取的商标的标题信息进行数据规范化处理;
59.通过训练的商品检索模型提取所有处理后的标题信息的语义特征,并进行l2范数归一化;
60.将提取的标题信息的语义特征存储至向量索引库;
61.提取待检索商品的标题信息,并通过训练的商品检索模型提取待检索商品的标题特征;
62.将提取的待检索商品的标题特征作为输入,从向量索引库中进行向量召回,得到候选商品列表。
63.区别于现有技术,上述技术方案,首先通过已有的带标注的商品构建数据集,对已经标注的商品信息进行数据规范化,得到商品信息的四元组信息,并通过得到的商品信息的四元组信息进行训练了一个引入文本生成的商品检索模型和商品信息蕴含模型,当需要对待检索商品检索时,通过商品检索模型实现对商品的召回,同时基于商品信息蕴含模型实现了候选商品相似度排序。在训练商品检索模型时,引入了文本生成分支作为辅助,令模型能够更好学习文本表征;同时采用双塔式模型提取深度特征对商品召回,能够利用单词的特征计算实现商品的召回,并使用商品信息蕴含模型对召回的候选商品的精排,解决了双塔式模型缺少商品信息间交互的弊端,进一步提升了相似商品排序的精度,同时由于双塔式模型的召回,节省了大量的模型计算时间与设备成本。具有更好的鲁棒性、更快的速度以及更高的精度。
64.上述发明内容相关记载仅是本技术技术方案的概述,为了让本领域普通技术人员能够更清楚地了解本技术的技术方案,进而可以依据说明书的文字及附图记载的内容予以实施,并且为了让本技术的上述目的及其它目的、特征和优点能够更易于理解,以下结合本技术的具体实施方式及附图进行说明。
附图说明
65.附图仅用于示出本技术具体实施方式以及其他相关内容的原理、实现方式、应用、特点以及效果等,并不能认为是对本技术的限制。
66.在说明书附图中:
67.图1为具体实施方式所述基于深度学习语义蕴含的商品检索方法的一种流程示意图;
68.图2为具体实施方式所述步骤s110的一种流程示意图;
69.图3为具体实施方式所述步骤s120的一种流程示意图;
70.图4为具体实施方式所述步骤s130的一种流程示意图;
71.图5为具体实施方式所述步骤s140的一种流程示意图;
72.图6为具体实施方式所述基于深度学习语义蕴含的商品检索方法的另一种流程示意图
73.图7为具体实施方式所述存储介质的一种结构示意图
74.上述各附图中涉及的附图标记说明如下:
75.610、存储介质。
具体实施方式
76.为详细说明本技术可能的应用场景,技术原理,可实施的具体方案,能实现目的与效果等,以下结合所列举的具体实施例并配合附图详予说明。本文所记载的实施例仅用于更加清楚地说明本技术的技术方案,因此只作为示例,而不能以此来限制本技术的保护范围。
77.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中各个位置出现的“实施例”一词并不一定指代相同的实施例,亦不特别限定其与其它实施例之间的独立性或关联性。原则上,在本技术中,只要不存在技术矛盾或冲突,各实施例中所提到的各项技术特征均可以以任意方式进行组合,以形成相应的可实施的技术方案。
78.除非另有定义,本文所使用的技术术语的含义与本技术所属技术领域的技术人员通常理解的含义相同;本文中对相关术语的使用只是为了描述具体的实施例,而不是旨在限制本技术。
79.在本技术的描述中,用语“和/或”是一种用于描述对象之间逻辑关系的表述,表示可以存在三种关系,例如a和/或b,表示:存在a,存在b,以及同时存在a和b这三种情况。另外,本文中字符“/”一般表示前后关联对象是一种“或”的逻辑关系。
80.在本技术中,诸如“第一”和“第二”之类的用语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何实际的数量、主次或顺序等关系。
81.在没有更多限制的情况下,在本技术中,语句中所使用的“包括”、“包含”、“具有”或者其他类似的表述,意在涵盖非排他性的包含,这些表述并不排除在包括所述要素的过程、方法或者产品中还可以存在另外的要素,从而使得包括一系列要素的过程、方法或者产品中不仅可以包括那些限定的要素,而且还可以包括没有明确列出的其他要素,或者还包括为这种过程、方法或者产品所固有的要素。
82.与《审查指南》中的理解相同,在本技术中,“大于”、“小于”、“超过”等表述理解为不包括本数;“以上”、“以下”、“以内”等表述理解为包括本数。此外,在本技术实施例的描述中“多个”的含义是两个以上(包括两个),与之类似的与“多”相关的表述亦做此类理解,例如“多组”、“多次”等,除非另有明确具体的限定。
83.在本技术实施例的描述中,所使用的与空间相关的表述,诸如“中心”“纵向”“横向”“长度”“宽度”“厚度”“上”“下”“前”“后”“左”“右”“竖直”“水平”“垂直”“顶”“底”“内”“外”“顺时针”“逆时针”“轴向”“径向”“周向”等,所指示的方位或位置关系是基于具体实施例或附图所示的方位或位置关系,仅是为了便于描述本技术的具体实施例或便于读者理解,而不是指示或暗示所指的装置或部件必须具有特定的位置、特定的方位、或以特定的方位构造或操作,因此不能理解为对本技术实施例的限制。
84.除非另有明确的规定或限定,在本技术实施例的描述中,所使用的“安装”“相连”“连接”“固定”“设置”等用语应做广义理解。例如,所述“连接”可以是固定连接,也可以是可拆卸连接,或成一体设置;其可以是机械连接,也可以是电连接,也可以是通信连接;其可以是直接相连,也可以通过中间媒介间接相连;其可以是两个元件内部的连通或两个元件的相互作用关系。对于本技术所属技术领域的技术人员而言,可以根据具体情况理解上述用
语在本技术实施例中的具体含义。
85.请参阅图1、图6,本实施例提供了一种基于深度学习语义蕴含的商品检索方法,包括以下步骤:
86.步骤s110:对已经标注的商品信息进行数据规范化,得到商品信息的四元组信息,所述四元组信息包括标题信息、属性信息、品牌信息及型号信息;
87.步骤s120:根据商品信息中的标题数据进行训练引入文本生成的商品检索模型;
88.步骤s130:根据商品信息的四元组信息进行训练得到商品信息蕴含模型;
89.步骤s140:对待检索商品通过商品检索模型进行商品召回,得到候选商品列表;
90.步骤s150:将候选商品列表中的候选商品通过商品信息蕴含模型进行蕴含度计算,根据候选商品的蕴含度对候选商品进行排序。
91.首先通过已有的带标注的商品构建数据集,对已经标注的商品信息进行数据规范化,得到商品信息的四元组信息,并通过得到的商品信息的四元组信息进行训练了一个引入文本生成的商品检索模型和商品信息蕴含模型,当需要对待检索商品检索时,通过商品检索模型实现对商品的召回,同时基于商品信息蕴含模型实现了候选商品相似度排序。在训练商品检索模型时,引入了文本生成分支作为辅助,令模型能够更好学习文本表征;同时采用双塔式模型提取深度特征对商品召回,能够利用单词的特征计算实现商品的召回,并使用商品信息蕴含模型对召回的候选商品的精排,解决了双塔式模型缺少商品信息间交互的弊端,进一步提升了相似商品排序的精度,同时由于双塔式模型的召回,节省了大量的模型计算时间与设备成本。具有更好的鲁棒性、更快的速度以及更高的精度。
92.请参阅图2,在某些实施例中,所述步骤“对已经标注的商品信息进行数据规范化,得到商品信息的四元组信息”具体包括以下步骤:
93.步骤s210:抽取已经标注的商品信息中的四元组信息作为训练数据;
94.步骤s220:删除四元组信息中的无效字符,并将四元组信息的全角符号转换为半角符号,及大写字母转换为小写字符;
95.步骤s230:按照预设概率删除商品信息中的属性信息中的品牌属性和型号属性;
96.步骤s240:将不同来源的同一商品的四元组信息形成商品簇,所述商品簇的个数为商品的种类个数。
97.通过抽取已标注的商标信息中四元组信息:标题信息、属性信息、品牌信息及型号信息,将抽取的四元组信息作为驯良数据,然后删除四元组信息中的无效字符,并将四元组信息中的全角符号同一转换为半角符号,并将大写字母同一转换为小写字母,同时按照预设概率s删除商品的属性信息中的“品牌属性”及“型号属性”,避免过多的信息冗余,其中,预设概率s取值为90%;将不同来源的同一商品归为一个个商品簇cluster,即cluster1、cluster2

clustern等,n为总的商品种类数量。其中,数据集的规范化操作,包括但不限于删除四元组中的无效字符,将四元组中的全角符号统一转换为半角符号,将大写字母统一转换为小写,此外按照概率s删除商品属性中的“品牌”、“型号”属性,避免过多的信息冗余,本文中s取值为90%。
98.请参阅图3,在某些实施例中,所述步骤“根据商品信息中的标题数据进行训练引入文本生成的商品检索模型”具体包括以下步骤:
99.步骤310:商品检索模型使用第一语义表征模型作为第一主干网络,选取预设个数
商品簇,从选取的每个商品簇内随机得到两个标题信息作为商品检索模型的输入;
100.步骤320:将选取的每个商品簇内的两个标题信息以不同的顺序送入第一主干网络中,训练seq2seq任务;
101.步骤330:提取第一主干网络的整个batch的所有标识向量,并做l2归一化处理,接着将提取的所有标识向量进行两两做内积,训练分类任务;
102.步骤340:将seq2seq任务部分和分类任务部分的交叉熵求和作为总的损失函数,在第一主干网络的每个步骤中更新参数。
103.训练商品检索模型时,通过使用第一语义表征模型(bert)作为第一主干网络,在训练过程的每个阶段,从若干个商品簇cluster内随机选取两个商品的标题信息:sentence_a、sentence_b;其中选取的商品簇的个数为batchsize,即每个训练阶段选取batchsize*2的标题信息作为模型输入,其中batchsize取值为64,输入文本的最大文本长度maxlen为64,即对选取的标题信息超出maxlen的部分进行截断。从每个商品簇cluster随机选取两个标题信息sentence_a、sentence_b,以[cls]sentence_a[sep]sentence_b[sep]和[cls]sentence_b[sep]sentence_a[sep]格式输入第二主干网络中,即将相似标题信息以不同顺序送入第二主干网络中,训练seq2seq任务,此处[cls]为bert中的特殊标识符,用于提取上下文语义信息,[sep]作为分隔标识符。提取第二主干网络的整个batch所有的[cls]向量(标识向量)并做l2归一化,接着两两做内积,训练分类任务,同一商品簇cluster的两个[cls]向量作为正样本,其他cluster的[cls]向量作为负样本。将seq2seq任务部分与分类任务部分的交叉熵求和作为总的损失函数,在每个阶段step后更新参数,其中,模型训练使用的优化器为adamw,设置的学习率为2e-6,权重衰减为0.01。针对结合文本生成的商品检索模型,包括但不限于商品关键信息标识符如[brand],标题属性表连接标识符如[union],符号标识符如空格[space]。商品检索模型的训练中,包括但不限于在每个训练阶段随机在商品簇cluster间挑选正负商品样本代替固定的正负样本,以及结合文本生成分支增强模型对商品标题的特征表示。
[0104]
请参阅图4,在某些实施例中,所述步骤“根据商品信息的四元组信息进行训练得到商品信息蕴含模型”具体包括以下步骤:
[0105]
步骤s410:商品信息蕴含模型以第二语义表征模型作为第二主干网络,训练蕴含任务,其中,第二语义表征模型的输入格式为[cls]title[sep]spec[sep]brand[sep]model[sep],[cls]为特殊标识符,[sep]为分隔标识符,title为商品的标题信息,spec为商品的属性信息,brand为商品的品牌信息,model为商品的型号信息;
[0106]
步骤s420:在每个商品簇内重复随机选取成对的第一商品和第二商品,将第一商品的四元组信息和第二商品的四元组信息进行组合得到作为训练数据的第一正例数据;
[0107]
步骤s430:对第一正例数据进行数据增强得到第二正例数据;
[0108]
步骤s440:从不同的商品簇内随机选择第三商品和第四商品,将第三商品的四元组信息和第四四元组信息进行组合得到作为训练数据的第一负例数据;
[0109]
步骤s450:对第一正例数据、第二正例数据及第一负例数据进行数据增强得到第二负例数据;
[0110]
步骤s460:通过将第一正例数据和第二正例数据的标签为1,第一负例数据和第二负例数据的标签为0,通过交叉熵损失训练二分类任务。
[0111]
在商品信息蕴含模型训练时,使用第二语音表征模型(bert)作为第二主干网络,训练蕴含任务,模型输入格式为[cls]title[sep]spec[sep]brand[sep]model[sep],其中title为商品的标题信息,spec为商品的属性信息,brand为商品的品牌信息,model为商品的型号信息。其中,文本的最大文本长度:maxlen_title=64,maxlen_spec=384,maxlen_brand=32,maxlen_model=32,对商品信息超出最大长度的部分进行截断。在每个商品簇cluster内重复随机选取成对的商品:第一商品item_a及第二商品item_b,将[cls]title_a[sep]spec_a[sep]brand_b[sep]model_b[se与[cls]title_b[sep]spec_b[sep]brand_a[sep]model_a[sep]作为训练数据的第一正例数据data_1。对生成的第一正例数据data_1,随机对形式如[cls]title[sep]spec[sep]brand[sep]model[sep]的第一正例数据进行数据增强,生成难正例的第二正例数据data_2;数据增强的方法如下:
[0112]
(1)、随机替换brand为品牌的不同称呼,如华为/huawei、美的/midea/美的(midea)等;
[0113]
(2)、随机在model中加入空格或
“‑“
等特殊符号。
[0114]
随机选取不同商品簇cluster内的商品,即在商品簇cluster_a中随机抽取第三商品item_c,在商品簇cluster_b中随机抽取第四商品item_d,将[cls]title_c[sep]spec_c[sep]brand_d[sep]model_d[sep]与[cls]title_d[sep]spec_d[sep]brand_c[sep]model_c[sep]作为训练数据的简单负例的第一负例数据data_3。
[0115]
对于生成的第一正例数据data_1、第二正例数据data_2、第一负例数据data_3,采用随机对形如[cls]title[sep]spec[sep]brand[sep]model[sep]的数据进行数据增强,生成难负例的第二负例数据data_4,采用的数据增强的方式如下:
[0116]
(1)、将[brand]、[model]替换为任意品类商品的品牌名、型号;
[0117]
(2)、将[brand]、[model]替换为同品类商品的品牌名、型号;
[0118]
(3)、将[model]中的数字进行随机替换;
[0119]
(4)、将[model]中的字母进行随机替换。
[0120]
令第一正例数据data_1、第一正例数据data_2的label(标签)为1,第一负例数据data_3、第二负例数据data_4的label(标签)为0,使用交叉熵损失训练二分类任务。其中,优化器选用adam,学习率为1e-6。
[0121]
商品信息蕴含模型的训练,包括但不限于增加分隔标识符[sep],包括但不限于设定maxlen_title=64,maxlen_spec=384,maxlen_brand=32,maxlen_model=32;以及包括但不限于上述中的两个数据增强方法。
[0122]
请参阅图5,在某些实施例中,所述步骤“对待检索商品通过商品检索模型进行商品召回,得到候选商品列表”具体包括以下步骤:
[0123]
步骤s510:抽取未标注的数据库内所有商品的标题信息,并对抽取的商标的标题信息进行数据规范化处理;
[0124]
步骤s520:通过训练的商品检索模型提取所有处理后的标题信息的语义特征,并进行l2范数归一化;
[0125]
步骤s530:将提取的标题信息的语义特征存储至向量索引库;
[0126]
步骤s540:提取待检索商品的标题信息,并通过训练的商品检索模型提取待检索商品的标题特征;
[0127]
步骤s550:将提取的待检索商品的标题特征作为输入,从向量索引库中进行向量召回,得到候选商品列表。
[0128]
抽取未标注的数据库内所有商品的标题信息,并进行数据规范化,其中数据规范化为:删除标题信息中的无效字符,并将标题信息的全角符号转换为半角符号,及大写字母转换为小写字符。使用训练的深度学习的商品检索模型计算所有商品的标题信息的语义特征并进行l2范数归一化,具体为网络最后一层的[cls]标识符对应的向量,向量维度为768。将提取的商品标题信息的语义特征存储至milvus向量索引库,以内积作为距离计算方式,使用ivf_sq8作为索引方式构建集合。对于待检索商品(query),提取待检索商品的标题信息(title_query),通过训练的深度学习的商品检索模型执行特征提取操作得到待检索商品的标题特征(vec_query)。将标题特征vec_query作为输入,使用milvus向量索引库进行向量召回,得到topk个相似向量,并进一步根据向量id得到候选商品列表(item_list)。
[0129]
在某些实施例中,步骤“将候选商品列表中的候选商品通过商品信息蕴含模型进行蕴含度计算,根据候选商品的蕴含度对候选商品进行排序”具体包括以下步骤:
[0130]
提取待检索商品的四元组信息及候选商品列表中商品的四元组信息;
[0131]
将提取的待检索商品的四元组信息及候选商品列表中商品的四元组信息输入训练的商品信息蕴含模型计算得到候选商品列表中每个商品与待检索商品的蕴含置信度;
[0132]
根据计算得到的候选商品列表中每个商品与待检索商品的蕴含置置信度对候选商品列表中商品进行排序。
[0133]
对待检索商品query以及候选商品列表item_list中的每一个候选商品itemx(x∈(1,k))提取对应的四元组信息,根据检索商品query的四元组信息和候选商品itemx(x∈(1,k))的四元组信息构造形如[cls]title_query[sep]spec_query[sep]brandx[sep]modelx[sep]的输入数据input_ax(x∈(1,k))与[cls]titlex[sep]specx[sep]brand_query[sep]model_query[sep]的输入数据input_bx(x∈(1,k))。
[0134]
将input_ax(x∈(1,k))与input_bx(x∈(1,k))分别输入训练的商品信息蕴含模型,获得输入数据input_ax(x∈(1,k))的蕴含置信度entailment_score_ax与输入数据input_bx(x∈(1,k))的蕴含置信度entailment_score_bx,将max(entailment_score_ax,entailment_score_bx)作为query与itemx的最终蕴含置信度entailment_scorex。
[0135]
将k个候选商品与待检索商品query计算蕴含置信度,得到k个蕴含置信度entailment_scorex(x∈(1,k))。将k个蕴含置信度进行排序,得到相似商品的排名。对query商品与召回的候选商品的蕴含置信度判断上,使用了正反向的蕴含,并将两个蕴含得分取最大值作为商品间最终的蕴含置信度。
[0136]
请参阅图7,另一实施例中,一种存储介质610,所述存储介质610存储有计算机程序,所述计算机程序被处理器运行时执行以下步骤:
[0137]
对已经标注的商品信息进行数据规范化,得到商品信息的四元组信息,所述四元组信息包括标题信息、属性信息、品牌信息及型号信息;
[0138]
根据商品信息中的标题数据进行训练引入文本生成的商品检索模型;
[0139]
根据商品信息的四元组信息进行训练得到商品信息蕴含模型;
[0140]
对待检索商品通过商品检索模型进行商品召回,得到候选商品列表;
[0141]
将候选商品列表中的候选商品通过商品信息蕴含模型进行蕴含度计算,根据候选
商品的蕴含度对候选商品进行排序。
[0142]
首先通过已有的带标注的商品构建数据集,对已经标注的商品信息进行数据规范化,得到商品信息的四元组信息,并通过得到的商品信息的四元组信息进行训练了一个引入文本生成的商品检索模型和商品信息蕴含模型,当需要对待检索商品检索时,通过商品检索模型实现对商品的召回,同时基于商品信息蕴含模型实现了候选商品相似度排序。在训练商品检索模型时,引入了文本生成分支作为辅助,令模型能够更好学习文本表征;同时采用双塔式模型提取深度特征对商品召回,能够利用单词的特征计算实现商品的召回,并使用商品信息蕴含模型对召回的候选商品的精排,解决了双塔式模型缺少商品信息间交互的弊端,进一步提升了相似商品排序的精度,同时由于双塔式模型的召回,节省了大量的模型计算时间与设备成本。具有更好的鲁棒性、更快的速度以及更高的精度。
[0143]
在某些实施例中,所述步骤“对已经标注的商品信息进行数据规范化,得到商品信息的四元组信息”具体包括以下步骤:
[0144]
抽取已经标注的商品信息中的四元组信息作为训练数据;
[0145]
删除四元组信息中的无效字符,并将四元组信息的全角符号转换为半角符号,及大写字母转换为小写字符;
[0146]
按照预设概率删除商品信息中的属性信息中的品牌属性和型号属性;
[0147]
将不同来源的同一商品的四元组信息形成商品簇,所述商品簇的个数为商品的种类个数。
[0148]
通过抽取已标注的商标信息中四元组信息:标题信息、属性信息、品牌信息及型号信息,将抽取的四元组信息作为驯良数据,然后删除四元组信息中的无效字符,并将四元组信息中的全角符号同一转换为半角符号,并将大写字母同一转换为小写字母,同时按照预设概率s删除商品的属性信息中的“品牌属性”及“型号属性”,避免过多的信息冗余,其中,预设概率s取值为90%;将不同来源的同一商品归为一个个商品簇cluster,即cluster1、cluster2

clustern等,n为总的商品种类数量。其中,数据集的规范化操作,包括但不限于删除四元组中的无效字符,将四元组中的全角符号统一转换为半角符号,将大写字母统一转换为小写,此外按照概率s删除商品属性中的“品牌”、“型号”属性,避免过多的信息冗余,本文中s取值为90%。
[0149]
在某些实施例中,所述步骤“根据商品信息中的标题数据进行训练引入文本生成的商品检索模型”具体包括以下步骤:
[0150]
商品检索模型使用第一语义表征模型作为第一主干网络,选取预设个数商品簇,从选取的每个商品簇内随机得到两个标题信息作为商品检索模型的输入;
[0151]
将选取的每个商品簇内的两个标题信息以不同的顺序送入第一主干网络中,训练seq2seq任务;
[0152]
提取第一主干网络的整个batch的所有标识向量,并做l2归一化处理,接着将提取的所有标识向量进行两两做内积,训练分类任务;
[0153]
将seq2seq任务部分和分类任务部分的交叉熵求和作为总的损失函数,在第一主干网络的每个步骤中更新参数。
[0154]
训练商品检索模型时,通过使用第一语义表征模型(bert)作为第一主干网络,在训练过程的每个阶段,从若干个商品簇cluster内随机选取两个商品的标题信息:
sentence_a、sentence_b;其中选取的商品簇的个数为batchsize,即每个训练阶段选取batchsize*2的标题信息作为模型输入,其中batchsize取值为64,输入文本的最大文本长度maxlen为64,即对选取的标题信息超出maxlen的部分进行截断。从每个商品簇cluster随机选取两个标题信息sentence_a、sentence_b,以[cls]sentence_a[sep]sentence_b[sep]和[cls]sentence_b[sep]sentence_a[sep]格式输入第二主干网络中,即将相似标题信息以不同顺序送入第二主干网络中,训练seq2seq任务,此处[cls]为bert中的特殊标识符,用于提取上下文语义信息,[sep]作为分隔标识符。提取第二主干网络的整个batch所有的[cls]向量(标识向量)并做l2归一化,接着两两做内积,训练分类任务,同一商品簇cluster的两个[cls]向量作为正样本,其他cluster的[cls]向量作为负样本。将seq2seq任务部分与分类任务部分的交叉熵求和作为总的损失函数,在每个阶段step后更新参数,其中,模型训练使用的优化器为adamw,设置的学习率为2e-6,权重衰减为0.01。针对结合文本生成的商品检索模型,包括但不限于商品关键信息标识符如[brand],标题属性表连接标识符如[union],符号标识符如空格[space]。商品检索模型的训练中,包括但不限于在每个训练阶段随机在商品簇cluster间挑选正负商品样本代替固定的正负样本,以及结合文本生成分支增强模型对商品标题的特征表示。
[0155]
在某些实施例中,所述步骤“根据商品信息的四元组信息进行训练得到商品信息蕴含模型”具体包括以下步骤:
[0156]
商品信息蕴含模型以第二语义表征模型作为第二主干网络,训练蕴含任务,其中,第二语义表征模型的输入格式为[cls]title[sep]spec[sep]brand[sep]model[sep],[cls]为特殊标识符,[sep]为分隔标识符,title为商品的标题信息,spec为商品的属性信息,brand为商品的品牌信息,model为商品的型号信息;
[0157]
在每个商品簇内重复随机选取成对的第一商品和第二商品,将第一商品的四元组信息和第二商品的四元组信息进行组合得到作为训练数据的第一正例数据;
[0158]
对第一正例数据进行数据增强得到第二正例数据;
[0159]
从不同的商品簇内随机选择第三商品和第四商品,将第三商品的四元组信息和第四四元组信息进行组合得到作为训练数据的第一负例数据;
[0160]
对第一正例数据、第二正例数据及第一负例数据进行数据增强得到第二负例数据;
[0161]
通过将第一正例数据和第二正例数据的标签为1,第一负例数据和第二负例数据的标签为0,通过交叉熵损失训练二分类任务。
[0162]
在商品信息蕴含模型训练时,使用第二语音表征模型(bert)作为第二主干网络,训练蕴含任务,模型输入格式为[cls]title[sep]spec[sep]brand[sep]model[sep],其中title为商品的标题信息,spec为商品的属性信息,brand为商品的品牌信息,model为商品的型号信息。其中,文本的最大文本长度:maxlen_title=64,maxlen_spec=384,maxlen_brand=32,maxlen_model=32,对商品信息超出最大长度的部分进行截断。在每个商品簇cluster内重复随机选取成对的商品:第一商品item_a及第二商品item_b,将[cls]title_a[sep]spec_a[sep]brand_b[sep]model_b[se与[cls]title_b[sep]spec_b[sep]brand_a[sep]model_a[sep]作为训练数据的第一正例数据data_1。对生成的第一正例数据data_1,随机对形式如[cls]title[sep]spec[sep]brand[sep]model[sep]的第一正例数据进行数
据增强,生成难正例的第二正例数据data_2;数据增强的方法如下:
[0163]
(1)、随机替换brand为品牌的不同称呼,如华为/huawei、美的/midea/美的(midea)等;
[0164]
(2)、随机在model中加入空格或
“‑“
等特殊符号。
[0165]
随机选取不同商品簇cluster内的商品,即在商品簇cluster_a中随机抽取第三商品item_c,在商品簇cluster_b中随机抽取第四商品item_d,将[cls]title_c[sep]spec_c[sep]brand_d[sep]model_d[sep]与[cls]title_d[sep]spec_d[sep]brand_c[sep]model_c[sep]作为训练数据的简单负例的第一负例数据data_3。
[0166]
对于生成的第一正例数据data_1、第二正例数据data_2、第一负例数据data_3,采用随机对形如[cls]title[sep]spec[sep]brand[sep]model[sep]的数据进行数据增强,生成难负例的第二负例数据data_4,采用的数据增强的方式如下:
[0167]
(1)、将[brand]、[model]替换为任意品类商品的品牌名、型号;
[0168]
(2)、将[brand]、[model]替换为同品类商品的品牌名、型号;
[0169]
(3)、将[model]中的数字进行随机替换;
[0170]
(4)、将[model]中的字母进行随机替换。
[0171]
令第一正例数据data_1、第一正例数据data_2的label(标签)为1,第一负例数据data_3、第二负例数据data_4的label(标签)为0,使用交叉熵损失训练二分类任务。其中,优化器选用adam,学习率为1e-6。
[0172]
商品信息蕴含模型的训练,包括但不限于增加分隔标识符[sep],包括但不限于设定maxlen_title=64,maxlen_spec=384,maxlen_brand=32,maxlen_model=32;以及包括但不限于上述中的两个数据增强方法。
[0173]
在某些实施例中,所述步骤“对待检索商品通过商品检索模型进行商品召回,得到候选商品列表”具体包括以下步骤:
[0174]
抽取未标注的数据库内所有商品的标题信息,并对抽取的商标的标题信息进行数据规范化处理;
[0175]
通过训练的商品检索模型提取所有处理后的标题信息的语义特征,并进行l2范数归一化;
[0176]
将提取的标题信息的语义特征存储至向量索引库;
[0177]
提取待检索商品的标题信息,并通过训练的商品检索模型提取待检索商品的标题特征;
[0178]
将提取的待检索商品的标题特征作为输入,从向量索引库中进行向量召回,得到候选商品列表。
[0179]
抽取未标注的数据库内所有商品的标题信息,并进行数据规范化,其中数据规范化为:删除标题信息中的无效字符,并将标题信息的全角符号转换为半角符号,及大写字母转换为小写字符。使用训练的深度学习的商品检索模型计算所有商品的标题信息的语义特征并进行l2范数归一化,具体为网络最后一层的[cls]标识符对应的向量,向量维度为768。将提取的商品标题信息的语义特征存储至milvus向量索引库,以内积作为距离计算方式,使用ivf_sq8作为索引方式构建集合。对于待检索商品(query),提取待检索商品的标题信息(title_query),通过训练的深度学习的商品检索模型执行特征提取操作得到待检索商
品的标题特征(vec_query)。将标题特征vec_query作为输入,使用milvus向量索引库进行向量召回,得到topk个相似向量,并进一步根据向量id得到候选商品列表(item_list)。
[0180]
在某些实施例中,步骤“将候选商品列表中的候选商品通过商品信息蕴含模型进行蕴含度计算,根据候选商品的蕴含度对候选商品进行排序”具体包括以下步骤:
[0181]
提取待检索商品的四元组信息及候选商品列表中商品的四元组信息;
[0182]
将提取的待检索商品的四元组信息及候选商品列表中商品的四元组信息输入训练的商品信息蕴含模型计算得到候选商品列表中每个商品与待检索商品的蕴含置信度;
[0183]
根据计算得到的候选商品列表中每个商品与待检索商品的蕴含置置信度对候选商品列表中商品进行排序。
[0184]
对待检索商品query以及候选商品列表item_list中的每一个候选商品itemx(x∈(1,k))提取对应的四元组信息,根据检索商品query的四元组信息和候选商品itemx(x∈(1,k))的四元组信息构造形如[cls]title_query[sep]spec_query[sep]brandx[sep]modelx[sep]的输入数据input_ax(x∈(1,k))与[cls]titlex[sep]specx[sep]brand_query[sep]model_query[sep]的输入数据input_bx(x∈(1,k))。
[0185]
将input_ax(x∈(1,k))与input_bx(x∈(1,k))分别输入训练的商品信息蕴含模型,获得输入数据input_ax(x∈(1,k))的蕴含置信度entailment_score_ax与输入数据input_bx(x∈(1,k))的蕴含置信度entailment_score_bx,将max(entailment_score_ax,entailment_score_bx)作为query与itemx的最终蕴含置信度entailment_scorex。
[0186]
将k个候选商品与待检索商品query计算蕴含置信度,得到k个蕴含置信度entailment_scorex(x∈(1,k))。将k个蕴含置信度进行排序,得到相似商品的排名。对query商品与召回的候选商品的蕴含置信度判断上,使用了正反向的蕴含,并将两个蕴含得分取最大值作为商品间最终的蕴含置信度。
[0187]
将k个候选商品与待检索商品query计算蕴含置信度,得到k个蕴含置信度entailment_scorex(x∈(1,k))。将k个蕴含置信度进行排序,得到相似商品的排名。最后需要说明的是,尽管在本技术的说明书文字及附图中已经对上述各实施例进行了描述,但并不能因此限制本技术的专利保护范围。凡是基于本技术的实质理念,利用本技术说明书文字及附图记载的内容所作的等效结构或等效流程替换或修改产生的技术方案,以及直接或间接地将以上实施例的技术方案实施于其他相关的技术领域等,均包括在本技术的专利保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1