CN112182144A - 搜索词标准化方法、计算设备和计算机可读存储介质 - Google Patents
搜索词标准化方法、计算设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN112182144A CN112182144A CN202011374977.1A CN202011374977A CN112182144A CN 112182144 A CN112182144 A CN 112182144A CN 202011374977 A CN202011374977 A CN 202011374977A CN 112182144 A CN112182144 A CN 112182144A
- Authority
- CN
- China
- Prior art keywords
- vector
- standard product
- self
- vectors
- search term
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种搜索词标准化方法、计算设备和计算机可读存储介质。该方法包括:基于多个用户的历史数据构建多条训练数据;构建深度语义相似度模型的自注意力模型并利用该多条训练数据对该自注意力模型进行训练;分别确定该搜索词向量和该正样本向量之间的第一相似度以及该搜索词向量和该负样本向量之间的第二相似度;基于该第一相似度和该第二相似度确定相似度损失函数;基于该多条训练数据的搜索词向量、正样本向量和负样本向量确定该深度语义相似度模型的损失函数;基于该自注意力模型和标准产品数据库产生标准产品词库索引;以及基于该自注意力模型和该标准产品词库索引为特定用户输入的目标搜索词确定标准产品名称。
Description
技术领域
本发明概括而言涉及机器学习领域,更具体地,涉及一种搜索词标准化方法、计算设备和计算机可读存储介质。
背景技术
随着网络的不断发展,越来越多的用户通过电商搜索***满足购物需求。然而,在很多情况下,用户输入的搜索词并不是标准的产品名称,从而使得搜索结果可能包含大量的无用产品信息。尤其是,在工业品销售领域,产品名称通常具有专业的规范化表达。利用常规的搜索方法,当输入不规范的搜索词时,很难准确命中所希望的产品或者召回结果中有大量冗余产品,使得用户体验很差。例如,当用户希望寻找“水管钳”这种产品时,如果其不知道这种规范化产品名称,他可能会输入“用在水管上的钳子”这样的搜索词,通常搜索***对搜索词进行分词之后可能会召回分别包含“水管”和“钳子”的产品,不能精确匹配用户需求。
发明内容
针对上述问题,本发明提供了一种搜索词标准化方案,通过构建改进的深度语义相似度模型和标准产品词库索引,将用户输入的任何目标搜索词改写为标准搜索词,以获得更加准确的召回结果。
根据本发明的一个方面,提供了一种搜索词标准化方法。该方法包括:基于多个用户的历史数据构建多条训练数据,其中每条训练数据包括搜索词、正样本和负样本;构建深度语义相似度模型的自注意力模型并利用该多条训练数据对该自注意力模型进行训练,其中对于每条训练数据,该自注意力模型输出搜索词向量、正样本向量和负样本向量;基于每组训练数据的搜索词向量、正样本向量和负样本向量分别确定该搜索词向量和该正样本向量之间的第一相似度以及该搜索词向量和该负样本向量之间的第二相似度;基于该第一相似度和该第二相似度确定相似度损失函数;基于该多条训练数据的搜索词向量、正样本向量和负样本向量确定该深度语义相似度模型的损失函数;基于该自注意力模型和标准产品数据库产生标准产品词库索引;以及基于该自注意力模型和该标准产品词库索引为特定用户输入的目标搜索词确定标准产品名称。
在一种实施例中,构建多条训练数据包括:从所述多个用户的历史数据中确定一个搜索词;确定输入所述搜索词的用户对搜索结果执行了所述预定操作的产品数据作为所述正样本,其中所述预定操作包括点击、加入购物车和购买中的至少一种;以及基于所述标准产品数据库确定所述负样本。
在一种实施例中,所述负样本包括以下至少一种:从所述标准产品数据库中随机选择的产品数据;以及在所述标准产品数据库中与所述正样本具有相同父级类目的产品数据。
在一种实施例中,利用所述多条训练数据对所述自注意力模型进行训练包括:对每条训练数据的搜索词、正样本和负样本分别执行字符级词嵌入以分别获得所述搜索词、所述正样本和所述负样本的字符级词嵌入向量;对每条训练数据的搜索词、正样本和负样本分别执行奇偶位置编码以分别获得所述搜索词、所述正样本和所述负样本的位置编码向量;分别对所述搜索词、所述正样本和所述负样本的字符级词嵌入向量和位置编码向量进行合并和归一化以得到所述搜索词、所述正样本和所述负样本的归一化向量;在至少一个自注意力头中的每个自注意力头中,利用自注意力函数对所述搜索词、所述正样本和所述负样本的归一化向量分别执行运算以获得所述搜索词、所述正样本和所述负样本的自注意力向量;在每个自注意力头中,利用非线性激活函数分别对所述搜索词、所述正样本和所述负样本的自注意力向量进行操作以获得所述搜索词、所述正样本和所述负样本的全连接向量;以及对所述至少一个自注意力头中获得的所述搜索词、所述正样本和所述负样本的至少一个全连接向量分别进行平均以获得所述搜索词向量、所述正样本向量和所述负样本向量。
在一种实施例中,确定所述深度语义相似度模型的损失函数包括:基于每条训练数据的搜索词向量、正样本向量和负样本向量分别确定所述搜索词向量和所述正样本向量之间的第一相似度以及所述搜索词向量和所述负样本向量之间的第二相似度;基于所述第一相似度和所述第二相似度确定相似度损失函数;基于所述多条训练数据的搜索词的类目和搜索词向量确定类目分类损失函数;基于所述相似度损失函数和所述类目分类损失函数确定深度语义相似度模型的损失函数。
在一种实施例中,所述相似度损失函数包括三元组损失函数(Triplet Loss)。
在一种实施例中,产生标准产品词库索引包括:获取所述标准产品数据库;将所述标准产品数据库中的每个标准产品名称输入所述自注意力模型以产生所述标准产品名称的名称向量;以及基于随机超平面的局部敏感哈希算法对所述标准产品数据库中的所有标准产品名称的名称向量进行操作以产生所述标准产品数据库中的所有标准产品名称的名称向量的哈希索引树,其中在所述哈希索引树中,临近的名称向量的哈希索引也临近。
在一种实施例中,基于所述自注意力模型和所述标准产品词库索引为特定用户输入的目标搜索词确定标准产品名称包括:接收所述特定用户输入的目标搜索词;将所述目标搜索词输入所述自注意力模型以产生所述目标搜索词的目标搜索词向量;在所述标准产品词库索引中召回与所述目标搜索词向量对应的目标名称向量;以及获取与所述目标名称向量对应的标准产品名称作为所述目标搜索词的标准产品名称。
根据本发明的另一个方面,提供了一种计算设备。该计算设备包括:至少一个处理器;以及至少一个存储器,该至少一个存储器被耦合到该至少一个处理器并且存储用于由该至少一个处理器执行的指令,该指令当由该至少一个处理器执行时,使得该计算设备执行根据上述方法的步骤。
根据本发明的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序代码,该计算机程序代码在被运行时执行如上所述的方法。
利用本发明的方案,通过构建改进的深度语义相似度模型和标准产品词库索引,可以将用户输入的任何搜索词改写为标准搜索词(即标准产品名称),从而能够基于该标准搜索词获得更加准确的召回结果。
附图说明
通过参考下列附图所给出的本发明的具体实施方式的描述,将更好地理解本发明,并且本发明的其他目的、细节、特点和优点将变得更加显而易见。
图1示出了用于实现根据本发明的实施例的搜索词标准化方法的***的示意图。
图2示出了根据本发明的一些实施例的搜索词标准化方法的流程图。
图3示出了根据本发明实施例的用于构建多条训练数据的步骤的流程图。
图4示出了根据本发明实施例的深度语义相似度模型的结构示意图。
图5示出了根据本发明实施例的利用训练数据对自注意力模型进行训练的步骤的流程图。
图6示出了根据本发明实施例的用于确定深度语义相似度模型的损失函数的步骤的流程图。
图7示出了根据本发明实施例的产生标准产品词库索引的步骤的流程图。
图8示出了根据本发明实施例的召回目标标准产品的步骤的流程图。
图9示出了适合实现本发明的实施例的计算设备的结构方框图。
具体实施方式
下面将参照附图更详细地描述本发明的优选实施方式。虽然附图中显示了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整的传达给本领域的技术人员。
在下文的描述中,出于说明各种发明的实施例的目的阐述了某些具体细节以提供对各种发明实施例的透彻理解。但是,相关领域技术人员将认识到可在无这些具体细节中的一个或多个细节的情况来实践实施例。在其它情形下,与本申请相关联的熟知的装置、结构和技术可能并未详细地示出或描述从而避免不必要地混淆实施例的描述。
除非语境有其它需要,在整个说明书和权利要求中,词语“包括”和其变型,诸如“包含”和“具有”应被理解为开放的、包含的含义,即应解释为“包括,但不限于”。
在整个说明书中对“一个实施例”或“一些实施例”的提及表示结合实施例所描述的特定特点、结构或特征包括于至少一个实施例中。因此,在整个说明书的各个位置“在一个实施例中”或“在一些实施例”中的出现不一定全都指相同实施例。另外,特定特点、结构或特征可在一个或多个实施例中以任何方式组合。
此外,说明书和权利要求中所用的第一、第二等术语,仅仅出于描述清楚起见来区分各个对象,而并不限定其所描述的对象的大小或其他顺序等。
图1示出了用于实现根据本发明的实施例的分层排序方法的***1的示意图。如图1中所示,***1包括用户终端10、计算设备20、服务器30和网络40。用户终端10、计算设备20和服务器30可以通过网络40进行数据交互。这里,每个用户终端10可以是终端用户的移动或固定终端,如手机、平板电脑、台式电脑等。用户终端10例如可以通过其上安装的电商企业应用程序或特定搜索引擎与电商企业的服务器30通信,以向服务器30发送信息和/或从服务器30接收信息。计算设备20基于来自用户终端10和/或服务器30的数据执行相应的操作。计算设备20可以包括至少一个处理器210和与该至少一个处理器210耦合的至少一个存储器220,该存储器220中存储有可由该至少一个处理器210执行的指令230,该指令230在被该至少一个处理器210执行时执行如下所述的方法100的至少一部分。注意,在本文中,计算设备20可以是服务器30的一部分或者可以独立于服务器30。计算设备20或服务器30的具体结构例如可以如下结合图9所述。
图2示出了根据本发明的一些实施例的搜索词标准化方法100的流程图。方法100例如可以由图1中所示的***1中的计算设备20或服务器30执行。以下以在计算设备20中执行为例,结合图1至图9对方法100进行描述。
如图2中所示,方法100包括步骤110,其中计算设备20基于多个用户的历史数据构建多条训练数据。每条训练数据可以包括搜索词(query)、正样本(positive_item)和负样本(negative_item)。正样本positive_item指示在基于搜索词query的搜索结果中、用户执行了预定操作的产品数据,负样本negative_item指示与基于该搜索词query的搜索结果无关的产品数据。
图3示出了根据本发明实施例的用于构建多条训练数据的步骤110的流程图。
如图3中所示,步骤110可以包括子步骤112,其中计算设备20可以从多个用户的历史数据中确定一个搜索词。这里,多个用户的历史数据可以存储在服务器30或与其相关联的外部数据库中。在构建训练数据时,计算设备20可以从存储器30或外部数据库中获取这些用户的历史数据。一条历史数据例如可以包括用户信息(例如用户ID)、搜索词、与搜索词对应的搜索结果(例如搜索到的产品列表)、用户操作、与用户操作对应的产品数据(如搜索结果中用户执行了特定操作的产品数据)以及其他信息(如时间信息等)。
在子步骤112中,计算设备20可以从一条历史数据中提取该搜索词。
在子步骤114,计算设备20(例如可以从上述历史数据中)确定输入该搜索词的用户对搜索结果执行了预定操作的产品数据作为正样本positive_item。例如,正样本positive_item可以是用户执行了点击操作、加入购物车操作和购买操作中的至少一种的产品数据。对于一个用户执行的一次搜索,如果用户对搜索结果中的多个产品数据执行了上述预定操作中的任一种,则可以针对所有操作的产品数据分别产生一个正样本或者可以仅选择其中的一个或多个产品数据分别产生一个正样本。即,一条历史数据可以产生一个或多个正样本(从而产生一条或多条训练数据)。当然,一条历史数据也可能不产生任何正样本(从而不产生训练数据),例如当用户对搜索结果中的任何产品都没有执行任何预定操作时。在这种情况下,该条历史数据不用于构建训练数据。
在子步骤116,计算设备20基于标准产品数据库确定该条训练数据的负样本negative_item。标准产品数据库可以是用户执行检索的电商企业构建的产品数据库,其可以预先存储在该电商企业的服务器30或与其相连的外部存储器中。在子步骤116,计算设备20可以向服务器30或该外部存储器发送请求并接收从服务器30或外部存储器返回的产品数据。负样本negative_item应当是与该搜索词的搜索结果基本上无关的产品数据。
在一种实施例中,负样本negative_item可以是从该标准产品数据库中随机选择的产品数据。由于标准产品数据库中通常包含大量产品数据,随机选择的产品数据与正样本positive_item的商品数据相同或相近的可能性很小,因此可以认为是与正样本positive_item完全无关的样本数据。
负样本negative_item也可以是在标准产品数据库中与对应的正样本positive_item具有相同父级类目的产品数据。通常,在标准产品数据库中,每条产品数据具有其对应的类目数据,多个产品的类目数据通常以树状结构存储在服务器30或与其相连的外部存储器中。每个产品数据可以对应于多个类目,从上到下依次为一级类目、二级类目、三级类目……等。对于不同企业和不同产品来说,其类目数据的树状结构的层级数可能不同。在根据本发明的一些实施例中,类目数据的层级数为4,每个产品数据的最低一个层级的类目称为末级类目(层级数为4的情况下也可以称为四级类目),其上一个层级的类目称为父级类目(层级数为4的情况下也可以称为三级类目)、父级类目的上一个层级称为祖父级类目(层级数为4的情况下也可以称为二级类目)、祖父级类目的上一个层级称为曾祖父级类目(层级数为4的情况下也可以称为一级类目)。这样,与正样本positive_item具有相同父级类目的产品数据是指与正样本positive_item具有相同三级类目的其他四级类目中的产品数据。如果层级数大于4,则可以依次向上类推,如果层级数小于4,则可以从上到下依次称为一级类目、二级类目……。
或者,多条训练数据中的负样本可以使用上述两种不同的方式的组合。例如,一部分训练数据(例如80%训练数据)中的负样本可以基于随机选择的方式确定,另一部分训练数据(例如20%训练数据)中的负样本可以基于相同父级类目的方式确定。
在步骤110,可以以上述子步骤112至116所述的方式构建多条训练数据。例如,一条训练数据的实例可以表示为:
可以看出,在该条训练数据中,查询词query为“红外温度仪”,正样本positive_item为“优利德 红外测温仪 UT300A+”,负样本negative_item为“福禄克 振动测试仪 FLUKE-802CN”。在本实例中,正样本和负样本的产品数据分别包括品牌“优利德”和“福禄克”、产品名称“红外测温仪”和“振动测试仪”以及型号“UT300A+”和“FLUKE-802CN”这三项,然而本领域技术人员可以理解,正样本和负样本的产品数据可以包括更多或更少的信息。
继续图2,在步骤120,计算设备20构建深度语义相似度模型的自注意力模型并利用步骤110构建的多条训练数据对该自注意力模型进行训练。
图4示出了根据本发明实施例的深度语义相似度模型400的结构示意图。如图4中所示,深度语义相似度模型400可以包括自注意力模型410、相似度计算层420和全连接分类层430。
在模型训练阶段,自注意力模型410可以输入上述构建的每条训练数据(包括搜索词query、正样本positive_item和负样本negative_item),并且分别输出对应的搜索词向量query_vec、正样本向量positive_item_vec和负样本向量negative_item_vec,如图4中所示。也就是说,虽然搜索词query、正样本positive_item和负样本negative_item作为一条训练数据输入自注意力模型410,但是它们在自注意力模型410中是分别处理并得到各自的向量的。在模型使用阶段,自注意力模型410可以输入用户输入的目标搜索词query,并且输出该目标搜索词query的目标搜索词向量query_vec(图中未示出)。以下主要以模型训练阶段为例对自注意力模型410进行描述。
如图4中所示,深度语义相似度模型400的自注意力模型410可以包括字符级词嵌入层411、位置编码层412、合并层413、归一化层414、至少一个自注意力头(每个包括一个自注意力层415和一个第一全连接层416)。对于自注意力模型410中包括多个自注意力头的情况(例如图4中所示的“自注意力头x 3”表示有3个自注意力头),自注意力模型410还可以包括多头自注意力合并层417。自注意力模型410的各个组成部分的功能将在下面参考图5进行详细描述。
深度语义相似度模型400的相似度计算层420可以包括相似度计算层422和相似度损失函数确定层424。相似度计算层420的各个组成部分的功能将在下面参考图6进行详细描述。
深度语义相似度模型400的全连接分类层430可以包括第二全连接层432和类目分类损失函数确定层434。全连接分类层430的各个组成部分的功能将在下面参考图6进行详细描述。
图5示出了根据本发明实施例的利用训练数据对自注意力模型410进行训练的步骤120的流程图。
如图5中所示,步骤120可以包括子步骤121,其中在字符级词嵌入层411,计算设备20对每条训练数据的搜索词query、正样本positive_item和负样本negative_item分别执行字符级词嵌入以分别获得搜索词query、正样本positive_item和负样本negative_item的字符级词嵌入向量、和(以下统一表示为)。
其中表示输入文本(如输入的搜索词query、正样本positive_item和负样本negative_item)的字符级词嵌入向量(其是一个D*N矩阵),表示长度为N的输入文本中的第i个字符,表示第i个字符对应的字符级词嵌入,为D维实数向量,通过哈希查表确定。
在子步骤122,在位置编码层412,计算设备20对每条训练数据的搜索词query、正样本positive_item和负样本negative_item分别执行奇偶位置编码以分别获得搜索词query、正样本positive_item和负样本negative_item的位置编码向量、和(以下统一表示为)。例如,可以根据如下公式(2)确定位置编码向量:
其中,表示输入文本(如输入的搜索词query、正样本positive_item和负样本negative_item)的位置编码向量(其也是一个D*N矩阵),表示长度为N的输入文本中的第i个字符,表示D维实数向量的第d维,为第i个字符对应的D维位置编码向量P i 的第d维值。其中,在计算时,按照奇偶位置调用不同的位置编码函数,通过正弦(sin)和余弦(cos)函数的三角函数关系,可以获得不同位置间的相对位置编码向量。
虽然图5中将子步骤122显示为在子步骤121之后,但是本领域技术人员可以理解,子步骤122可以与子步骤121并行执行或者在子步骤121之前执行。
接下来,在子步骤123,在合并层413和归一化层414,计算设备20分别对搜索词query、正样本positive_item和负样本negative_item的字符级词嵌入向量和位置编码向量进行合并和归一化以分别得到搜索词query、正样本positive_item和负样本negative_item的归一化向量、和(以下统一表示为)。
其中,代表输入的合并向量的第i个向量(P i +C i )的第d维值,代表输入的合并向量的第d维值在长度N下的平均值,代表输入的合并向量的第d维值在长度N下的标准差。在自注意力模型410中,和是D维可训练参数。
接下来,在子步骤124,在每个自注意力头中的自注意力层415,计算设备20利用自注意力函数对搜索词query、正样本positive_item和负样本negative_item的归一化向量分别执行运算以获得搜索词query、正样本positive_item和负样本negative_item的自注意力向量、和(以下统一表示为)。
其中,Q、K、V代表输入x(即搜索词query、正样本positive_item和负样本negative_item各自的归一化向量)分别与可训练参数W q 、W k 、W v 点乘的结果,K T 代表K的转置,是输入x的维度D的开方(用于避免梯度消失)。的结果是自注意力权重,与V标乘后即为对于输入x的自注意力加权。
然后,在子步骤125,在每个自注意力头中的第一全连接层416,计算设备20利用非线性激活函数分别对搜索词query、正样本positive_item和负样本negative_item的自注意力向量进行操作以获得搜索词query、正样本positive_item和负样本negative_item的全连接向量、和(以下统一表示为)。
其中,W、b是可训练参数,ReLu为非线性激活函数。
通过在自注意力头中包含第一全连接层416,能够增加深度语义相似度模型400的非线性。
在自注意力模型410只包括一个自注意力头的情况下,子步骤125获得的全连接向量、和即为自注意力模型410输出的搜索词向量query_vec、正样本向量positive_item_vec和负样本向量negative_item_vec。
在自注意力模型410包括多个自注意力头的情况下,步骤120还可以包括子步骤126,其中在多头自注意力合并层417,计算设备20对多个自注意力头中获得的搜索词query、正样本positive_item和负样本negative_item的多个全连接向量、和分别进行平均以获得搜索词向量query_vec、正样本向量positive_item_vec和负样本向量negative_item_vec。
其中,代表J个自注意力头中的第j个自注意力头,代表D维实数向量的第d维,即为子步骤125中获得的全连接向量,运算是在J的维度上做平均,从而得到D维的多头自注意力向量作为相应的搜索词向量query_vec、正样本向量positive_item_vec和负样本向量negative_item_vec。
继续图2,在步骤130,计算设备20可以基于多条训练数据的搜索词向量query_vec、正样本向量positive_item_vec和负样本向量negative_item_vec确定深度语义相似度模型400的损失函数。在根据本发明的深度语义相似度模型400中,可以从相似度和产品类目两个方面来考虑模型的损失函数。
图6示出了根据本发明实施例的用于确定深度语义相似度模型400的损失函数的步骤130的流程图。以下结合图4和图6对步骤130的实现进行进一步描述。
如图6中所示,步骤130可以包括子步骤132,其中在相似度计算层422,计算设备20基于每条训练数据的搜索词向量query_vec、正样本向量positive_item_vec和负样本向量negative_item_vec分别确定搜索词向量query_vec和正样本向量positive_item_vec之间的第一相似度以及搜索词向量query_vec和负样本向量negative_item_vec之间的第二相似度。
即,搜索词Query与正样本positive_item或负样本negative_item之间的相似度定义为搜索词向量query_vec(Q)与正样本向量positive_item_vec(I + )或负样本向量negative_item_vec(I - )的点乘除以它们的模的标乘。
更具体地,在全连接分类层430的第二全连接层432,计算设备20可以按照与上述子步骤125中的公式(6)类似的方式确定搜索词向量query_vec的第二全连接向量FeedForward2。与上述子步骤125不同之处在于,对于第二全连接层432,W需要定义为[D,M]维,D是输入的搜索词向量query_vec的维度,M是标准商品数据库中的产品的总的类目(例如末级类目的父级类目)数量。在深度语义相似度模型400的训练过程中,例如在上述步骤110或子步骤114中确定正样本positive_item时,计算设备20可以确定正样本positive_item的类目Category(例如可以为末级类目的父级类目),并且将W中与所确定的类目Category对应的元素值(代表该正样本positive_item属于该类目Category的概率)设置为1,将其他元素值设置为0。
这样,在训练好的深度语义相似度模型400的使用阶段,当输入一个目标搜索词query的目标搜索词向量query_vec时,第二全连接层432可以输出一个M维的第二全连接向量FeedForward2,每一维对应于该目标搜索词query处于相应类目的概率。
这是一种二元交叉熵损失函数,其中,M是标准商品数据库中的产品的总的类目(例如末级类目的父级类目)数量,y i 代表第二全连接层432输出的第二全连接向量FeedForward2中对应于第i个类目的实数值,p()代表Sigmoid()激活函数操作,p(y i )代表第i个类目的类目分类概率。
例如,可以利用下列公式(12)来确定深度语义相似度模型400的损失函数L:
在深度语义相似度模型400中,使用三元组损失函数Triplet Loss代替原模型中的损失函数SoftMax Loss,能够更好地区分字符相似但语义不同的产品名称(如“安全帽”和“安全鞋”这两个产品名称,字符相似度高但是语义相似度很低),也帮助文本编码器能学习到更好的文本编码向量表达方式。同时,训练时使用多任务优化方式,添加了类目分类损失函数,辅助深度语义相似度模型400提高对于文本信息的编码能力。
在步骤120和130中利用多条训练数据对深度语义相似度模型400进行训练期间,可以使用随机梯度下降来不断优化深度语义相似度模型400的损失函数L,直至模型收敛。
利用如上构建的深度语义相似度模型400的自注意力模型410,能够将任意输入的搜索词转换为一个嵌入向量。为了确定与任意输入的搜索词对应的标准产品数据,还应当为所有标准产品建立标准产品词库索引以进行向量检索。
具体地,如图2中所示,方法100还包括步骤140,其中计算设备20基于自注意力模型410和标准产品数据库产生标准产品词库索引。
图7示出了根据本发明实施例的产生标准产品词库索引的步骤140的流程图。
如图7中所示,步骤140可以包括子步骤142,其中计算设备20获取该标准产品数据库。如前所述,标准产品数据库可以是用户执行检索的电商企业构建的产品数据库,其可以预先存储在该电商企业的服务器30或与其相连的外部存储器中。因此,在产生标准产品词库索引时,计算设备20应当首先获取(例如从服务器30或与其相连的外部存储器)该标准产品数据库中的所有产品数据。
在子步骤144,计算设备20将标准产品数据库中的每个标准产品名称(standard_item)输入训练后的自注意力模型410以产生该标准产品名称的名称向量(standard_item_vec)。
这里,产生标准产品名称standard_item的名称向量standard_item_vec的方法与上述步骤120所述的为搜索词query、正样本positive_item和负样本negative_item分别产生对应的搜索词向量query_vec、正样本向量positive_item_vec和负样本向量negative_item_vec的方法类似,因此这里不再赘述。
在子步骤146,计算设备20基于随机超平面的局部敏感哈希算法对标准产品数据库中的所有标准产品名称的名称向量standard_item_vec进行操作以产生该标准产品数据库中的所有标准产品名称的名称向量standard_item_vec的哈希索引树。
具体地,在一种实施方式中,对于所有名称向量standard_item_vec的集合(代表d维实数向量空间),可以通过d维高斯分布采样一个随机超平面,用将向量集合V分隔成两个空间。对于随机超平面,可以定义以下局部敏感哈希(LSH)函数:
重复执行上述LSH操作,得到所有标准产品名称的名称向量standard_item_vec的哈希索引树,其中该哈希索引树的深度等于上述LSH操作的重复次数。通过这样产生的哈希索引树获取一个向量的临近向量的复杂度为,N为向量集合大小。也就是说,在这样产生的哈希索引树中,临近的名称向量standard_item_vec的哈希索引也临近,因此这样的哈希索引树可以作为标准产品数据库的词库索引。
在构建了标准产品词库索引之后,在步骤150,对于用户输入的任何目标搜索词,计算设备20可以基于自注意力模型410和该标准产品词库索引召回与该目标搜索词相对应的目标标准产品。
图8示出了根据本发明实施例的召回目标标准产品的步骤150的流程图。
如图8中所示,步骤150可以包括子步骤152,其中计算设备20接收特定用户输入的目标搜索词query。
在子步骤154,计算设备20将目标搜索词query输入自注意力模型410以产生该目标搜索词query的目标搜索词向量query_vec。
这里,产生目标搜索词query的目标搜索词向量query_vec的方法与上述步骤120所述的为搜索词query、正样本positive_item和负样本negative_item分别产生对应的搜索词向量query_vec、正样本向量positive_item_vec和负样本向量negative_item_vec的方法类似,因此不再赘述。
接下来,在子步骤156中,计算设备20在标准产品词库索引中召回与该目标搜索词向量query_vec对应的目标名称向量standard_item_vec。
如前所述,该标准产品词库索引是使用LSH构建的,因此根据该目标搜索词向量query_vec从表中产品词库索引中找到的最临近的向量被认为是该目标搜索词向量query_vec对应的目标名称向量standard_item_vec,其对应着一个标准产品名称。
在子步骤158,计算设备20(例如可以基于标准产品名称standard_item及其名称向量standard_item_vec的对应关系)获取与该目标名称向量standard_item_vec对应的标准产品名称standard_item_vec作为该目标搜索词query的标准产品名称。
进一步地,计算设备20可以基于该标准产品名称执行检索以获得更加准确的检索结果。
图9示出了适合实现本发明的实施例的计算设备900的结构方框图。计算设备900例如可以是如上所述的计算设备20或服务器30。
如图9中所示,计算设备900可以包括一个或多个中央处理单元(CPU)910(图中仅示意性地示出了一个),其可以根据存储在只读存储器(ROM)920中的计算机程序指令或者从存储单元980加载到随机访问存储器(RAM)930中的计算机程序指令,来执行各种适当的动作和处理。在RAM 930中,还可存储计算设备900操作所需的各种程序和数据。CPU 910、ROM 920以及RAM 930通过总线940彼此相连。输入/输出(I/O)接口950也连接至总线940。
计算设备900中的多个部件连接至I/O接口950,包括:输入单元960,例如键盘、鼠标等;输出单元970,例如各种类型的显示器、扬声器等;存储单元980,例如磁盘、光盘等;以及通信单元990,例如网卡、调制解调器、无线通信收发机等。通信单元990允许计算设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的方法100例如可由计算设备900(如计算设备20或服务器30)的CPU910执行。例如,在一些实施例中,方法100可被实现为计算机软件程序,其被有形地包括于机器可读介质,例如存储单元980。在一些实施例中,计算机程序的部分或者全部可以经由ROM 920和/或通信单元990而被载入和/或安装到计算设备900上。当计算机程序被加载到RAM 930并由CPU 910执行时,可以执行上文描述的方法100的一个或多个操作。此外,通信单元990可以支持有线或无线通信功能。
本领域技术人员可以理解,图9所示的计算设备900仅是示意性的。在一些实施例中,计算设备20或服务器30可以包含比计算设备900更多或更少的部件。
以上结合附图对根据本发明的搜索词标准化方法100以及可用作计算设备20或服务器30的计算设备900进行了描述。然而本领域技术人员可以理解,方法100的步骤的执行并不局限于图中所示和以上所述的顺序,而是可以以任何其他合理的顺序来执行。此外,计算设备900也不必须包括图9中所示的所有组件,其可以仅仅包括执行本发明中所述的功能所必须的其中一些组件,并且这些组件的连接方式也不局限于图中所示的形式。
仿真结果:
下表示出了根据本发明的深度语义相似度模型400与传统的词嵌入模型的仿真结果对比:
对各种测试数据说明如下:
排序测试:人工筛选的<搜索词query,正样本,负样本>测试集,如<安全帽,头盔,安全鞋>。定义为深度语义相似度模型400输出的相似度得分,当时,记为正确项,否则为错误项。排序分=排序正确项数/排序总测试样本数。
同义词测试:基于本申请人积累的工业品同义词语料库,定义测试样本,其中A为产品名称,为产品名称的同义词,B为随机采样的产品名称,例如<调压阀,减压阀,断路器锁>。定义为深度语义相似度模型400输出的相似度得分,当时,记为正确项,否则为错误项。同义词分=同义词正确项数/同义词总测试样本数。
词法测试:词法测试分为四个模块,基于叠词词法的A、AB,和基于词缀词法的Prefix、Suffix。词法测试样本定义为<>,其中C,D为基础词汇短语,为基于词法规则以C,D为基础构造的拓展词,基础词汇短语集定义为V,对应的拓展词集定义为。下面为A、AB、Prefix、Suffix的示例。
A:基于“AA”,“A一A”,“A来A去”构造的拓展词对,例如<笑,笑笑>、<猜,猜一猜>,<跑,跑来跑去>。
AB:基于“AABB”、“A里AB”构造的拓展词对,例如<高兴,高高兴兴>、<慌张,慌里慌张>。
Prefix:基于“第”、“大”等中文前缀字构造的拓展词对,例如<二,第二>、<海,大海>。
Suffix:基于“子”、“者”等中文后缀字构造的拓展词对,例如<椅,椅子>、<生产,生产者>。
从上述仿真结果可以看出,利用本发明的深度语义相似度模型400,对于排序测试、同义词测试和词法测试,评测得分都远远高于传统的词嵌入模型的评测得分。
本发明可以是方法、装置、***和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本发明的各个方面的计算机可读程序指令。
在一个或多个示例性设计中,可以用硬件、软件、固件或它们的任意组合来实现本发明所述的功能。例如,如果用软件来实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上,或者作为计算机可读介质上的一个或多个指令或代码来传输。
本文公开的装置的各个单元可以使用分立硬件组件来实现,也可以集成地实现在一个硬件组件,如处理器上。例如,可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本发明所描述的各种示例性的逻辑块、模块和电路。
本领域普通技术人员还应当理解,结合本发明的实施例描述的各种示例性的逻辑块、模块、电路和算法步骤可以实现成电子硬件、计算机软件或二者的组合。
本发明的以上描述用于使本领域的任何普通技术人员能够实现或使用本发明。对于本领域普通技术人员来说,本发明的各种修改都是显而易见的,并且本文定义的一般性原理也可以在不脱离本发明的精神和保护范围的情况下应用于其它变形。因此,本发明并不限于本文所述的实例和设计,而是与本文公开的原理和新颖性特性的最广范围相一致。
Claims (10)
1.一种搜索词标准化方法,包括:
基于多个用户的历史数据构建多条训练数据,其中每条训练数据包括搜索词、正样本和负样本,其中所述正样本指示在基于所述搜索词的搜索结果中、所述用户执行了预定操作的产品数据,所述负样本指示与所述搜索结果无关的产品数据;
构建深度语义相似度模型的自注意力模型并利用所述多条训练数据对所述自注意力模型进行训练,其中对于每条训练数据,所述自注意力模型输出搜索词向量、正样本向量和负样本向量;
基于所述多条训练数据的搜索词向量、正样本向量和负样本向量确定所述深度语义相似度模型的损失函数;
基于所述自注意力模型和标准产品数据库产生标准产品词库索引;以及
基于所述自注意力模型和所述标准产品词库索引为特定用户输入的目标搜索词确定标准产品名称。
2.如权利要求1所述的方法,其中构建多条训练数据包括:
从所述多个用户的历史数据中确定一个搜索词;
确定输入所述搜索词的用户对搜索结果执行了所述预定操作的产品数据作为所述正样本,其中所述预定操作包括点击、加入购物车和购买中的至少一种;以及
基于所述标准产品数据库确定所述负样本。
3.如权利要求2所述的方法,其中所述负样本包括以下至少一种:
从所述标准产品数据库中随机选择的产品数据;以及
在所述标准产品数据库中与所述正样本具有相同父级类目的产品数据。
4.如权利要求1所述的方法,其中利用所述多条训练数据对所述自注意力模型进行训练包括:
对每条训练数据的搜索词、正样本和负样本分别执行字符级词嵌入以分别获得所述搜索词、所述正样本和所述负样本的字符级词嵌入向量;
对每条训练数据的搜索词、正样本和负样本分别执行奇偶位置编码以分别获得所述搜索词、所述正样本和所述负样本的位置编码向量;
分别对所述搜索词、所述正样本和所述负样本的字符级词嵌入向量和位置编码向量进行合并和归一化以得到所述搜索词、所述正样本和所述负样本的归一化向量;
在至少一个自注意力头中的每个自注意力头中,利用自注意力函数对所述搜索词、所述正样本和所述负样本的归一化向量分别执行运算以获得所述搜索词、所述正样本和所述负样本的自注意力向量;
在每个自注意力头中,利用非线性激活函数分别对所述搜索词、所述正样本和所述负样本的自注意力向量进行操作以获得所述搜索词、所述正样本和所述负样本的全连接向量;以及
对所述至少一个自注意力头中获得的所述搜索词、所述正样本和所述负样本的至少一个全连接向量分别进行平均以获得所述搜索词向量、所述正样本向量和所述负样本向量。
5.如权利要求1所述的方法,其中确定所述深度语义相似度模型的损失函数包括:
基于每条训练数据的搜索词向量、正样本向量和负样本向量分别确定所述搜索词向量和所述正样本向量之间的第一相似度以及所述搜索词向量和所述负样本向量之间的第二相似度;
基于所述第一相似度和所述第二相似度确定相似度损失函数;
基于所述多条训练数据的搜索词的类目和搜索词向量确定类目分类损失函数;
基于所述相似度损失函数和所述类目分类损失函数确定深度语义相似度模型的损失函数。
6.如权利要求5所述的方法,其中所述相似度损失函数包括三元组损失函数(TripletLoss)。
7.如权利要求1所述的方法,其中产生标准产品词库索引包括:
获取所述标准产品数据库;
将所述标准产品数据库中的每个标准产品名称输入所述自注意力模型以产生所述标准产品名称的名称向量;以及
基于随机超平面的局部敏感哈希算法对所述标准产品数据库中的所有标准产品名称的名称向量进行操作以产生所述标准产品数据库中的所有标准产品名称的名称向量的哈希索引树,
其中在所述哈希索引树中,临近的名称向量的哈希索引也临近。
8.如权利要求1所述的方法,其中基于所述自注意力模型和所述标准产品词库索引为特定用户输入的目标搜索词确定标准产品名称包括:
接收所述特定用户输入的目标搜索词;
将所述目标搜索词输入所述自注意力模型以产生所述目标搜索词的目标搜索词向量;
在所述标准产品词库索引中召回与所述目标搜索词向量对应的目标名称向量;以及
获取与所述目标名称向量对应的标准产品名称作为所述目标搜索词的标准产品名称。
9.一种计算设备,包括:
至少一个处理器;以及
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理器并且存储用于由所述至少一个处理器执行的指令,所述指令当由所述至少一个处理器执行时,使得所述计算设备执行根据权利要求1至8中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序代码,所述计算机程序代码在被运行时执行如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011374977.1A CN112182144B (zh) | 2020-12-01 | 2020-12-01 | 搜索词标准化方法、计算设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011374977.1A CN112182144B (zh) | 2020-12-01 | 2020-12-01 | 搜索词标准化方法、计算设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112182144A true CN112182144A (zh) | 2021-01-05 |
CN112182144B CN112182144B (zh) | 2021-03-05 |
Family
ID=73918289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011374977.1A Active CN112182144B (zh) | 2020-12-01 | 2020-12-01 | 搜索词标准化方法、计算设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112182144B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113221530A (zh) * | 2021-04-19 | 2021-08-06 | 杭州火石数智科技有限公司 | 一种基于circle loss的文本相似度匹配方法、装置、计算机设备和储存介质 |
CN116089729A (zh) * | 2023-03-31 | 2023-05-09 | 浙江口碑网络技术有限公司 | 搜索推荐方法、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120173547A1 (en) * | 2008-04-22 | 2012-07-05 | Uc4 Software Gmbh | Method Of Detecting A Reference Sequence Of Events In A Sample Sequence Of Events |
CN110795544A (zh) * | 2019-09-10 | 2020-02-14 | 腾讯科技(深圳)有限公司 | 内容搜索方法、装置、设备和存储介质 |
CN111078842A (zh) * | 2019-12-31 | 2020-04-28 | 北京每日优鲜电子商务有限公司 | 查询结果的确定方法、装置、服务器及存储介质 |
-
2020
- 2020-12-01 CN CN202011374977.1A patent/CN112182144B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120173547A1 (en) * | 2008-04-22 | 2012-07-05 | Uc4 Software Gmbh | Method Of Detecting A Reference Sequence Of Events In A Sample Sequence Of Events |
CN110795544A (zh) * | 2019-09-10 | 2020-02-14 | 腾讯科技(深圳)有限公司 | 内容搜索方法、装置、设备和存储介质 |
CN111078842A (zh) * | 2019-12-31 | 2020-04-28 | 北京每日优鲜电子商务有限公司 | 查询结果的确定方法、装置、服务器及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113221530A (zh) * | 2021-04-19 | 2021-08-06 | 杭州火石数智科技有限公司 | 一种基于circle loss的文本相似度匹配方法、装置、计算机设备和储存介质 |
CN113221530B (zh) * | 2021-04-19 | 2024-02-13 | 杭州火石数智科技有限公司 | 一种文本相似度匹配方法、装置、计算机设备和储存介质 |
CN116089729A (zh) * | 2023-03-31 | 2023-05-09 | 浙江口碑网络技术有限公司 | 搜索推荐方法、设备及存储介质 |
CN116089729B (zh) * | 2023-03-31 | 2023-07-18 | 浙江口碑网络技术有限公司 | 搜索推荐方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112182144B (zh) | 2021-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020182019A1 (zh) | 图像检索方法、装置、设备及计算机可读存储介质 | |
CN108959246B (zh) | 基于改进的注意力机制的答案选择方法、装置和电子设备 | |
CN108875074B (zh) | 基于交叉注意力神经网络的答案选择方法、装置和电子设备 | |
US8918348B2 (en) | Web-scale entity relationship extraction | |
Dey Sarkar et al. | A novel feature selection technique for text classification using Naive Bayes | |
CN110943981B (zh) | 基于层次学习的跨架构漏洞挖掘方法 | |
CN112395487B (zh) | 信息推荐方法、装置、计算机可读存储介质及电子设备 | |
CN111813930B (zh) | 相似文档检索方法及装置 | |
CN113434636B (zh) | 基于语义的近似文本搜索方法、装置、计算机设备及介质 | |
CN112182144B (zh) | 搜索词标准化方法、计算设备和计算机可读存储介质 | |
CN110427480B (zh) | 个性化文本智能推荐方法、装置及计算机可读存储介质 | |
CN112800344B (zh) | 一种基于深度神经网络的电影推荐方法 | |
CN111581923A (zh) | 文案生成方法、装置、设备和计算机可读存储介质 | |
CN113239071B (zh) | 面向科技资源学科及研究主题信息的检索查询方法及*** | |
CN111966886A (zh) | 对象推荐方法、对象推荐装置、电子设备及存储介质 | |
CN111400584A (zh) | 联想词的推荐方法、装置、计算机设备和存储介质 | |
CN112214623A (zh) | 一种面向图文样本的高效监督图嵌入跨媒体哈希检索方法 | |
CN113722512A (zh) | 基于语言模型的文本检索方法、装置、设备及存储介质 | |
CN112131453A (zh) | 一种基于bert的网络不良短文本检测方法、装置及存储介质 | |
Wang et al. | Multivariate time series similarity searching | |
US20220198149A1 (en) | Method and system for machine reading comprehension | |
Yin et al. | A Cross‐Modal Image and Text Retrieval Method Based on Efficient Feature Extraction and Interactive Learning CAE | |
CN117076636A (zh) | 一种智能客服的信息查询方法、***和设备 | |
Coviello et al. | Multivariate Autoregressive Mixture Models for Music Auto-Tagging. | |
CN110275957B (zh) | 姓名消歧方法、装置、电子设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CB03 | Change of inventor or designer information |
Inventor after: Yang Han Inventor after: Chen Guangshun Inventor after: Chen Hongli Inventor before: Yang Han Inventor before: Chen Guangshun |
|
CB03 | Change of inventor or designer information |