发明内容
为了提升快销品企业线上不同渠道产品归一的准确率,提升此类数据处理效率,本发明提出了一种智能最小库存量单位匹配方法,包括:
步骤1,录入标准商品实体数据构建标准商品实体库,所述标准商品实体数据包括标题文本数据以及内容文本数据;
步骤2、构建召回模型,并对所述召回模型进行预训练;所述召回模型采用使用三元组网络,损失函数采用 Triplet Margin loss;
步骤3、将待匹配商品的标题文本数据以及标准商品实体数据连在一起作为输入数据,输入到训练好的召回模型中,进行二分类,输出待匹配商品的标题文本数据经过召回模型变换后的向量一和标准商品实体数据经过召回模型变换后的向量二;
计算每个标准商品实体数据与待匹配商品的标题文本数据输入召回模型后输出的向量一和向量二间的欧式距离,并按照欧式距离由小到大的顺序进行排序,从中选取TOP100个标准商品实体数据作为步骤4中精排序模型的基础数据;
步骤4、构建精排序模型,将待匹配商品的标题文本数据分别与TOP100的标准商品实体数据连在一起作为输入数据,输出每个标准商品实体数据与待匹配商品的标题文本数据相似度概率,并按照相似度概率由大到小的顺序输出top10的标准商品实体数据,再次将待匹配商品的标题文本数据分别与TOP10的标准商品实体数据连在一起作为输入数据,并按照相似度概率由大到小的顺序输出top1的标准商品实体数据。
进一步地,所述步骤2中,召回模型共用同一个Triplet BERT层,Triplet Margin
loss 输入的样本对是一个三元组
,所述三元组由一个锚点样本
、一个正样本
和一个负样本
组成,则定义损失函数为:
通过模型优化,实现锚点样本和负样本之间的距离
与锚点样本和正样本
之间的距离
之差大于阈值
。
进一步地,对所述召回模型进行预训练时,所述损失函数Triplet Margin Loss的参数Margin=3,输入数据正样本、负样本和锚点样本,其中,三个输入数据共享一个TripletBERT层参数。
进一步地,所述精排序模型;选取待匹配商品的标题文本数据生成向量,对输出的向量按照相似度概率排序。
进一步地,所述精排序模型采用 ernie-1.0、roberta-wwm 和 bert-wwm三个预训练模型,进行训练,实现句子向量化,使得该精排序模型收敛。
进一步地,所述召回模型的预训练采用Sentence-Bert预训练模型。
进一步地,反馈输出top1的标准商品实体数据给用户,用户反馈匹配正确或错误,并将待匹配商品的标题文本数据与top1的标准商品实体数据以及反馈结果存储于数据库中,作为精排序模型的训练数据,帮助精排序模型提升准确度。
进一步地,召回模型与精排序模型每5天根据积累的反馈结果进行一次重新训练,并自动部署,当下次运行该方法时,使用新的迭代模型进行评估匹配。
通过本发明的智能最小库存量单位匹配方法,增加标准商品的元数据,丰富商品的文本定义;实现语义级别的匹配;提供反馈机制,能在使用过程中进行模型更新迭代,使方法能更智能的成长。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下通过实施例并参照附图对本发明的内容进一步详细说明,但是本发明的实施方式不仅限于此。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
如图1所示,为本发明的智能最小库存量单位匹配方法的流程图,包括如下步骤:
步骤1,录入标准商品实体数据构建标准商品实体库,所述标准商品实体数据包括标题文本数据以及内容文本数据。
首先构建标准商品实体库,在该步骤中,采用多个已知三方渠道中录入的标准商品实体数据作为标准商品实体库,例如商品实体“新希望(华西)袋装纯鲜牛奶220ml”,将该文字内容作为该商品实体的标题文本数据,获取记录该商品实体的产地、功能、成分、生产企业、规格、价格等数据作为内容文本数据,如产地为“成都”,成分为“鲜牛乳”,生产企业为“新希望华西”,规格为“220ml(袋)”,价格为“2.5元”。按照 ‘标题’、‘产地’、 ‘主要成分’、‘生产企业’、‘规格’、‘价格’的顺序对标准商品的文本数据相连,并与该商品的标题文本数据共同构成标准商品实体库中的标准商品实体数据,即:新希望(华西)袋装纯鲜牛奶220ml,产地为成都,由鲜牛乳经巴氏杀菌制得,生产企业为新希望华西乳业,其规格为220ml每袋,价格为2.5元每袋。
步骤2,构建召回模型,并对所述召回模型进行预训练。
预训练模型BERT(Bidirectional Encoder Representation fromTransformers)在文本阅读理解,上下文填空等自然语言领域有非常优秀的表现,并且基于BERT,衍生出了诸如GPT-2,Robert,XLNet,Transformer-XL,Albert,T5等等其他预训练模型。但是大部分预训练模型均不适合语义相似度搜索,也不适合非监督任务,比如聚类。而为了解决聚类和语义相似度搜索,需要将每个句子映射到一个向量空间,使得语义相似的句子聚拢。但这样得到的句向量不具有语义信息,也就是说,两个相似的句子,得到的句向量可能会有很大的差别。此外,不仅句向量表示的语义方面存在很大差别,而且,它要求两个句子都被输入到网络中,从而导致巨大消耗,例如从10000个语句集合中找到最相似的sentence-pair需要进行大约5000万个推理计算(约65小时)。
而基于BERT的预训练模型Sentence-Bert,对预训练的BERT进行修改:使用孪生(Siamese)和三重(Triplet)网络结构来获得语义上有意义的句子embedding,以此获得定长的sentence embedding,使用余弦相似度或Manhatten/Euclidean距离等进行比较找到语义相似的句子。
在此基础上,本发明提出一种召回模型,由于本发明的标题文本数据与内容文本数据的长度差异较大,因此召回模型采用类似Sentence-Bert的预训练模型,即召回模型使用Triplet Network(三元组网络),指定损失函数为 Triplet Margin loss。
Triplet Loss是深度学习中的一种损失函数,用于训练差异性较小的样本,如短文本,人脸等,输入数据包括锚点样本(Anchor)、正样本(Positive)、负样本(Negative),通过优化锚点样本与正样本的距离小于锚点样本与负样本的距离,实现样本间相似性的计算。
具体地,本发明中的召回模型如图2所示,本发明的召回模型共用同一个TripletBERT层参数,经过多次训练进行参数调整,得出损失函数Triplet Margin loss中margin参数设置为3时,召回模型评估效果最好。
因此,训练时,设输入的样本对是一个三元组
,所述三元组由一个锚点
样本
、一个正样本
和一个负样本
组成。则我们可以定义损失函数为:
通过优化锚点样本和负样本之间的距离
与锚点样本和正样本之间的距离
之差大于阈值
,训练该模型,直至该模型收敛。
图2中,Anchor 为商品的标题文本数据,Positive 为正样本的内容文本数据,Negative 为负样本的内容文本数据,其中Anchor、Positive和Negative三个输入数据共享一个Triplet Bert层参数。训练时,将上述三个输入数据输入到Triplet Bert层中,将Triplet Bert层输出的向量Token取平均作为输出,例如将Positive样例输入TripletBert层后,生成文本向量Token,并对该文本向量Token进行两段的向量化,取两段向量的平均作为输出Mean output。将三个输出向量Positive out、Anchor out 和Negative out经过三元损失函数Triplet Margin Loss(Margin=3)得到损失函数优化完成模型的训练。负样本优选地采用动态负采样,在训练中的每个批次中,都对三元组进行动态的采样,样本随后用于训练该召回模型,直至该召回模型收敛。
步骤3、将待匹配商品的标题文本数据以及标准商品实体数据连在一起作为输入数据,输入到训练好的召回模型中,计算Triplet Bert层输出的向量间的欧式距离,根据欧式距离从小到大进行排序。
具体地,在匹配过程中,输入待匹配商品的标题文本数据,并将标准商品实体库中所有标准商品实体数据分别输入召回模型中,进行二分类,输出向量为:
输出1:待匹配商品的标题文本数据经过召回模型变换后的向量一,
输出2:标标准商品实体数据经过召回模型变换后的向量二。
计算所有标准商品实体数据与待匹配商品的标题文本数据的输出1和2中的向量一和向量二间的欧式距离,并按照欧式距离有小到大的顺序进行排序,从中选取TOP100个标准商品实体数据作为步骤4中精排序模型的基础数据。
步骤4 、构建精排序模型,将待匹配商品的标题文本数据分别与TOP100的标准商品实体数据连在一起作为输入数据,输出每个标准商品实体数据与待匹配商品的标题文本数据相似度概率,并按照相似度概率由大到小的顺序输出top10的标准商品实体数据,再次将待匹配商品的标题文本数据分别与TOP10的标准商品实体数据连在一起作为输入数据,并按照相似度概率由大到小的顺序输出top1的标准商品实体数据。
具体地,精排序模型如图3所示。精排序模型将待匹配的商品的标题文本数据和标准商品实体数据连在一起作为输入数据,输入到精排序模型中,即构建例如“[CLS]待匹配的商品的标题文本数据[SEP] 标准商品实体数据[SEP]”的长句,目的即是判断后一个内容文本数据是否和前一个标题文本数据在语义上的相似度,将该长句输入精排序模型中,例如ernie1.0,roberta-wwm等BERT预训练模型,进行生成向量Token;选取 CLS 位置的向量输出,然后对输出的相似度概率排序,将相似度概率由大到小排序,第一阶段的精排序可筛选出TOP10的标准商品实体数据,第二阶段的精排序可筛选出TOP1的标准商品实体数据,TOP1的标准商品实体即为匹配到的目标商品数据。
在优选实施例中,精排序模型采用 ernie-1.0、roberta-wwm 和 bert-wwm三个预训练模型,进行精排序,使得该精排序模型收敛。ernie-1.0、roberta-wwm 和 bert-wwm为基于中文语义的BERT预训练模型,用来实现句子向量化。
在优选实施例中,反馈输出top1的标准商品实体数据给用户,用户反馈匹配正确或错误,并将待匹配商品的标题文本数据与top1的标准商品实体数据以及反馈结果存储于数据库中,作为精排序模型的训练数据,帮助精排序模型提升准确度。
在优选实施例中,召回模型与精排序模型每5天根据5天中积累的反馈结果进行一次重新训练,并自动部署,当下次运行该程序时,使用新的迭代算法进行评估匹配,达到程序与算法自动更新的效果。
下面以具体的例子对本发明的匹配方法进行说明:
待匹配商品的标题文本数据:华西袋装纯鲜牛奶220ml;
而标准商品数据库里存在的一组标准商品数据为(仅以三个标准商品数据为例说明):
标题文本数据1:新希望(华西)袋装纯鲜牛奶220ml;
内容文本数据1:产地为成都,由鲜牛乳经巴氏杀菌制得,生产企业为新希望华西乳业,其规格为220ml每袋,价格为2.5元每袋。
标题文本数据2:新希望(华西) 袋装鲜牛奶220ml;
内容文本数据2:产地为成都,由鲜牛乳经巴氏杀菌制得,生产企业为新希望华西乳业,其规格为220ml每袋,价格为2.5元每袋。
标题文本数据3:新希望(华西) 纯鲜牛奶220ml;
内容文本数据3:产地为成都,由鲜牛乳经巴氏杀菌制得,生产企业为新希望华西乳业,其规格为220ml每袋,价格为2.5元每袋。
将上述待匹配商品的标题文本数据,分别与各个标准商品数据库组成一个二元数组,如:
1.(“华西袋装纯鲜牛奶220ml”,“新希望(华西)袋装纯鲜牛奶220ml,产地为成都,由鲜牛乳经巴氏杀菌制得,生产企业为新希望华西乳业,其规格为220ml每袋,价格为2.5元每袋”);
2.(“华西袋装纯鲜牛奶220ml”,“新希望(华西)袋装鲜牛奶220ml,产地为成都,由鲜牛乳经巴氏杀菌制得,生产企业为新希望华西乳业,其规格为220ml每袋,价格为2.5元每袋”);
3.(“华西袋装纯鲜牛奶220ml”,“新希望(华西) 纯鲜牛奶220ml,产地为成都,由鲜牛乳经巴氏杀菌制得,生产企业为新希望华西乳业,其规格为220ml每袋,价格为2.5元每袋”)。
分别将二元组数据输入到步骤2中训练得到的召回模型中,并计算Triplet Bert层输出的向量间的欧式距离,根据欧式距离从小到大进行排序。例如:
1.(“华西袋装纯鲜牛奶220ml”,“新希望(华西)袋装纯鲜牛奶220ml,产地为成都,由鲜牛乳经巴氏杀菌制得,生产企业为新希望华西乳业,其规格为220ml每袋,价格为2.5元每袋”), 1.5;
2.(“华西袋装纯鲜牛奶220ml”,“新希望(华西) 袋装鲜牛奶220ml,产地为成都,由鲜牛乳经巴氏杀菌制得,生产企业为新希望华西乳业,其规格为220ml每袋,价格为2.5元每袋”), 4.0;
3.(“华西袋装纯鲜牛奶220ml”,“新希望(华西)纯鲜牛奶220ml,产地为成都,由鲜牛乳经巴氏杀菌制得,生产企业为新希望华西乳业,其规格为220ml每袋,价格为2.5元每袋”), 22;
取得排序TOP100并将上述二元组构造成如下的文本数据,即将二元组中两段文本连在一起形成输入数据文本为:[CLS] 华西袋装纯鲜牛奶220ml [SEP] 新希望(华西)袋装纯鲜牛奶220ml,产地为成都,由鲜牛乳经巴氏杀菌制得,生产企业为新希望华西乳业,其规格为220ml每袋,价格为2.5元每袋[SEP]。
将上述文本输入步骤4中构建的精排序模型,输出二元组两者为同一商品最小库存量单位的相似度概率,相似度概率由大到小排序,最终可筛选出TOP10数据。
重复上述操作,将TOP10个二元组再次输入步骤4构建的精排序模型,输出二元组两者为同一商品最小库存量单位的相似度概率,概率由大到小排序,最终可筛选出TOP1数据,该商品即为匹配到的目标商品。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。