一种确定用户购物需求的方法
文献发布时间:2023-06-19 12:13:22
技术领域
本说明书一个或多个实施例涉及信息技术领域,尤其涉及一种确定用户购物需求的方法。
背景技术
在实际应用中,用户很多时候并不是抱着明确购买某件具体商品的目的而使用电商平台。用户通常会向电商平台输入检索语句,例如“如何驱虫”、“厨房清洁需要使用哪些东西”等,这些检索语句通常仅仅能表明用户的某种购物需求,如驱虫、厨房清洁等,却不能具体指向某个类型的商品。
然而,用户有时输入的检索语句的可读性不强(例如有语病、缺乏条理性等),导致很难根据检索语句确定出准确的购物需求。
发明内容
为克服相关技术中存在的问题,本公开提供一种确定用户购物需求的方法、一种为购物需求确定需求表征词的方法、一种确定需求关键词之间相似度的方法、及装置、电子设备和存储介质。
根据本公开实施例的第一方面,提供一种确定用户购物需求的方法,应用于电商平台,所述方法包括:
获取用户输入的检索语句;
将所述检索语句输入到需求关键词识别模型,识别出需求关键词;其中,所述需求关键词识别模型的训练方法包括:获取多个检索语句样本,以每个检索语句样本包含的需求关键词为命名实体,基于命名实体识别NER算法,进行模型训练;
根据识别出的需求关键词,确定匹配的购物需求。
根据本公开的第二方面,公开了一种为购物需求确定需求表征词的方法,包括:
获取多个历史检索语句;
针对每个历史检索语句,将该历史检索语句输入到需求关键词识别模型中,识别出需求关键词;所述关键词识别模型,是第一方面方法中所述的关键词识别模型;
将识别出的每个需求关键词加入到需求表征词备选集合中;
根据所述集合中各需求关键词之间的相似度,将所述集合划分为多个子集合;同一子集合中的各需求关键词之间的相似度大于指定阈值;
基于不同的子集合,确定不同的需求表征词。
根据本公开的第三方面,公开了一种确定需求关键词之间相似度的方法,应用于第二方面的方法中,所述确定需求关键词之间相似度的方法包括:
基于第一需求关键词,在电商平台上进行商品检索,并将检索到的至少部分商品中每个商品的商品名称,拼接成所述第一需求关键词对应的第一商品名称文本;
基于第二需求关键词,在电商平台上进行商品检索,并将检索到的至少部分商品中每个商品的商品名称,拼接成所述第二需求关键词对应的第二商品名称文本;
基于文本编码模型,获取所述第一商品名称文本对应的第一文本矩阵与所述第二商品名称文本对应的第二文本矩阵,并将所述第一文本矩阵与所述第二文本矩阵拼接成的组合矩阵输入到预先训练的文本分类模型,得到属于正分类的概率;其中,在训练所述文本分类模型时,以标记为相似的两个需求关键词分别对应的商品名称文本的文本矩阵所拼接成的组合矩阵,为正分类对应的输入;以标记为不相似的两个需求关键词分别对应的商品名称文本的文本矩阵所拼接成的组合矩阵,为负分类对应的输入;
将得到的概率确定为所述第一需求关键词与所述第二需求关键之间的相似度。
根据本公开的第四方面,公开了一种确定用户购物需求的装置,应用于电商平台,所述装置包括:
获取模块,获取用户输入的检索语句;
识别模块,将所述检索语句输入到需求关键词识别模型,识别出需求关键词;其中,所述需求关键词识别模型的训练方法包括:获取多个检索语句样本,以每个检索语句样本包含的需求关键词为命名实体,基于命名实体识别NER算法,进行模型训练;
确定模块,根据识别出的需求关键词,确定匹配的购物需求。
根据本公开的第五方面,公开了一种为购物需求确定需求表征词的装置,包括:
获取模块,获取多个历史检索语句;
识别模块,针对每个历史检索语句,将该历史检索语句输入到需求关键词识别模型中,识别出需求关键词;所述关键词识别模型,是第一方面的方法中的关键词识别模型;
添加模块,将识别出的每个需求关键词加入到需求表征词备选集合中;
划分模块,根据所述集合中各需求关键词之间的相似度,将所述集合划分为多个子集合;同一子集合中的各需求关键词之间的相似度大于指定阈值;
确定模块,基于不同的子集合,确定不同的需求表征词。
根据本公开的第六方面,公开了一种确定需求关键词之间相似度的装置,应用于第二方面的方法中,所述装置包括:
第一获取模块,基于第一需求关键词,在电商平台上进行商品检索,并将检索到的至少部分商品中每个商品的商品名称,拼接成所述第一需求关键词对应的第一商品名称文本;
第二获取模块,基于第二需求关键词,在电商平台上进行商品检索,并将检索到的至少部分商品中每个商品的商品名称,拼接成所述第二需求关键词对应的第二商品名称文本;
计算模块,基于文本编码模型,获取所述第一商品名称文本对应的第一文本矩阵与所述第二商品名称文本对应的第二文本矩阵,并将所述第一文本矩阵与所述第二文本矩阵拼接成的组合矩阵输入到预先训练的文本分类模型,得到属于正分类的概率;其中,在训练所述文本分类模型时,以标记为相似的两个需求关键词分别对应的商品名称文本的文本矩阵所拼接成的组合矩阵,为正分类对应的输入;以标记为不相似的两个需求关键词分别对应的商品名称文本的文本矩阵所拼接成的组合矩阵,为负分类对应的输入;将得到的概率确定为所述第一需求关键词与所述第二需求关键之间的相似度。
在上述技术方案中,将“如何根据检索语句确定购物需求”的问题,转换成“如何从检索语句中提取需求关键词”的问题,需求关键词可以准确反映购物需求。并且,将“如何从检索语句中提取需求关键词”的问题,转换成“如何从检索语句中识别命名实体(将检索语句中的需求关键词定义为命名实体)”的问题。
如此,可以获取多个检索语句样本,以每个检索语句样本包含的需求关键词为命名实体,基于命名实体识别NER算法,进行模型训练,得到需求关键词识别模型。从而可以利用需求关键词识别模型,从用户输入的检索语句中识别出需求关键词,基于识别出的需求关键词,准确匹配购物需求。
附图说明
图1是本说明书提供的一种用户使用电商平台进行检索的示意图。
图2是本说明书实施例提供的一种确定用户购物需求的方法的流程示意图。
图3是本说明书提供的一种需求关键词识别模型的结构示意图。
图4是本说明书实施例提供的一种整合模型的架构示意图。
图5是本说明书实施例提供的一种为商品关联购物需求的方法的流程示意图。
图6是本说明书提供的一种确定用户购物需求的装置的结构示意图。
图7是本说明书提供的一种为购物需求确定需求表征词的装置的结构示意图。
图8是本说明提供的一种确定需求关键词之间相似度的装置的结构示意图。
图9是本说明书提供的一种为商品关联购物需求的装置的结构示意图。
图10是本说明书提供的一种为用户推荐商品的装置的结构示意图。
图11是根据一示例性实施例示出的一种电子设备1500的结构示意图。
图12是根据一示例性实施例示出的另一种电子设备1600的一结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在实际应用中,用户很多时候并不是抱着明确购买某件具体商品的目的而使用电商平台。用户通常会向电商平台输入检索语句,例如“如何驱虫”、“厨房清洁需要使用哪些东西”等,这些检索语句通常仅仅能表明用户的某种购物需求,如驱虫、厨房清洁等,却不能具体指向某个类型的商品。
对于电商平台而言,其首先需要根据用户输入的检索语句,确定用户的购物需求,然后,再根据用户的购物需求,为用户推荐能够满足该购物需求的若干商品。可以理解,电商平台往往希望根据检索语句确定的购物需求是准确的,同时也希望根据推荐给用户商品与用户的购物需求匹配度较高,且尽可能全面(即覆盖尽可能多的商品种类)。
本公开针对如何根据检索语句确定购物需求,提出技术方案,具体而言:
将“如何根据检索语句确定购物需求”的问题,转换成“如何从检索语句中提取需求关键词”的问题,需求关键词可以准确反映购物需求。并且,将“如何从检索语句中提取需求关键词”的问题,转换成“如何从检索语句中识别命名实体(将检索语句中的需求关键词定义为命名实体)”的问题。
如此,可以获取多个检索语句样本,以每个检索语句样本包含的需求关键词为命名实体,基于命名实体识别NER算法,进行模型训练,得到需求关键词识别模型。从而可以利用需求关键词识别模型,从用户输入的检索语句中识别出需求关键词,基于识别出的需求关键词,准确匹配购物需求。
图1是本说明书提供的一种用户使用电商平台进行检索的示意图。如图1所示,用户向页面中的搜索框中输入“家居清洁”的检索语句,电商平台为用户展示推荐若干符合检索语句所表达的购物需求的商品。
图2是本说明书实施例提供的一种确定用户购物需求的方法的流程示意图,包括如下步骤:
S200:获取用户输入的检索语句。
图2所示方法应用于电商平台的系统。图2所示方法流程是针对任一用户输入的任一检索语句而言的。
本文所述的检索语句,是指用户使用电商平台进行购物时,向电商平台提供的页面中输入的语句,电商平台基于检索语句检索商品并推荐给用户。
S202:将所述检索语句输入到需求关键词识别模型,识别出需求关键词。
其中,需求关键词识别模型的训练方法包括:获取多个检索语句样本,以每个检索语句样本包含的需求关键词为命名实体,基于命名实体识别NER算法,进行模型训练。
换言之,模型的输入为,每个检索语句样本,输出为语句样本中需求关键词的命名实体标签。
NER算法有多种。在有些实施例中,可以结合BERT算法、BiLSTM算法与CRF算法,构建一个包括依次连接的BERT算法层、BiLSTM算法层与CRF算法层的模型进行训练。
在有些实施例中,也可以结合word2vec算法、BiLSTM算法与CRF算法,构建一个包括依次连接的word2vec算法层、BiLSTM算法层与CRF算法层的模型进行训练。
需要说明的是,在上述的两种模型中,模型的第一层通常是用于对输入的检索语句中每个汉字进行向量化(或称编码),以便于向量表示的检索语句进入BiLSTM算法层进行训练或识别。BiLSTM算法层在训练过程中可以学习到记忆哪些信息和遗忘哪些信息,因此可以更好地捕捉到较长距离的依赖关系,BiLSTM算法层则可以学习到句子前后两个方向的语义信息。
而由于在模型应用阶段,BiLSTM算法层的输出是语句中每个字是否为命名实体的概率,每个字分别对应的概率之间缺乏联系(以单个字为粒度考虑属于命名实体中一部分的概率),没有以词为粒度,考虑属于命名实体的概率。这容易导致,仅仅根据BiLSTM算法层的输出识别出属于命名实体一部分的每个字组成的命名实体,并不是所要得到的需求关键词。
因此,将BiLSTM算法层的输出进一步输入到CRF算法层,CRF算法可以考虑单个字之间联系,可以分析各种可能组合属于命名实体的概率,根据CRF算法层输出可以确定属于命名实体概率最大的字组合(即词),这个词就是需求关键词。
另外还需要说明的是,在训练需求关键词模型时,通常是采用B、I、O三种标签,对检索语句样本中的需求关键词进行命名实体标注。用B标注需求关键词的第一个字,用I标注需求关键词的其他字,用O标注检索语句中与需求关键词无关的部分。一个检索语句可能包含不止一个需求关键词。在实际进行标注时,标签后跟命名实体类型,如B-S(S表示命名实体类型),I-S。而图1所示的方法流程中,命名实体类型其实只有1个,就是需求关键词。
图3是本说明书提供的一种需求关键词识别模型的结构示意图。如图3所示,输入的检索语句(Query)为“户外骑行要买什么”,首先将该检索语句输入到BERT层,然后BERT层输出的检索语句的编码输入到BiLSTM(双向LSTM)神经网络层,输出的识别结果再进入CRF层进行修正,CRF层最终输出修正后的识别结果,由于是训练阶段,因此CRF层的输出是指定好的,指定了“户外骑行”为需求关键词,是要求模型通过学习而识别出的命名实体。
S204:根据识别出的需求关键词,确定匹配的购物需求。
此处需要说明,如何根据需求关键词,找到匹配的购物需求,可以通过“寻找与需求关键词含义相近的需求表证词”的思路实现,需求表证词用于表征购物需求。
在有些实施例中,可以将识别出的需求关键词,定义为一种购物需求的需求表证词。一种购物需求可以有多个需求表证词。
此外,在有些实施例中,预先为每种购物需求分配相应的一个需求表征词。若存在与识别出的需求关键词相同的需求表征词,则将该需求表征词对应的购物需求,确定为匹配的购物需求。若不存在与识别出的需求关键词相同的需求表征词,则确定与提取的需求关键词的含义最接近的需求表征词,并将该需求表征词对应的购物需求,确定为匹配的购物需求。
另外,本说明书还提供了一种为购物需求确定需求表征词的方法。具体而言,可以获取多个历史检索语句。针对每个历史检索语句,将该历史检索语句输入到需求关键词识别模型中,识别出需求关键词。将识别出的每个需求关键词加入到需求表征词备选集合中。计算所述集合中各需求关键词之间的相似度,并基于计算结果,将所述集合划分为多个子集合,同一子集合中的各需求关键词满足同一购物需求,不同子集合对应于不同购物需求。基于每个子集合,确定该子集合对应的需求表征词。
上述确定需求表征词的方法,实际上是将含义相近的多个需求关键词统一到一种购物需求,并且,将这含义相近的多个需求关键词总结成一个需求关键词。在有些实施例中,可以从子集合中选择一个需求关键词作为代表这种购物需求的需求表证词,也可以基于子集合中的各个需求关键词,创建一个新词,作为需求表证词。
在有些实施例中,在计算所述集合中各需求关键词之间的相似度之前,还可以获取用于训练所述需求关键词识别模型的若干检索语句样本,并将获取的每个检索语句样本中的需求关键词加入到所述集合中。如此,可以将尽可能多的需求关键词纳入考虑。
对于如何确定集合中各需求关键词之间的相似度,可以采用已知各种用于计算两个词之间的含义相似度的算法实现。
本公开提供了一种综合多种相似度确定方法的技术方案,如下:
针对所述集合中任意两个需求关键词,采用至少两种不同的相似度确定方法,分别确定这两个需求关键词之间的相似度。根据得到的至少两个相似度,进行加权计算,将计算结果重新作为这两个需求关键词之间的相似度。
上述的加权计算是指,为不同相似度确定方法分配不同的权重,将各种相似度确定方法的结果乘以权重并相加。这种方法可以综合多种不同原理的相似度确定方法,从多个角度分析两个需求关键词之间的相似度。
本公开使用的一种相似度确定方法为,计算两个需求关键词的Jaro距离。Jaro距离侧重关注两个需求关键词的字面意思的相似度,关注两个需求关键词包含的相同的字有哪些。字面意思越接近,Jaro距离越小。Jaro距离计算公式如下:
其中,s1与s2分别表示一个需求关键词,m表示两个需求关键词包含的重复字符的个数,t表示一个需求关键词转换成另一个需求关键词的过程中,需要修改的字符的数量。
进一步地,还可以采用Jaro-Winkler距离方法进行计算,公式如下:
Jaro-Winkler距离是在计算得到Jaro距离后进一步得到的,其还考虑了两个需求关键词的相同前缀对应的字符数量p,即,两个需求关键词从第1个字开始连续p个字符是相同的。
本公开使用的另一种相似度确定方法为,计算两个需求关键词的余弦距离。首先基于电商平台上的商品标题训练word2vec(一种词向量映射算法)模型,然后采用训练好的word2vec模型,将需要计算相似度的两个需求关键词分别映射成词向量,比较这两个词向量之间的余弦距离,作为相似度表征。
在训练word2vec模型前,可以对word2vec模型进行如下设置:
另外,计算各需求关键词之间的余弦距离之前,可以先计算各需求关键词之间的编辑距离,即计算两个需求关键词之间,由一个转成另一个所需要的最少编辑操作次数。将编辑距离小于指定距离的若干需求关键词分为一组,然后在每个组内,再计算需求关键词之间的余弦距离,可以有效降低余弦距离的计算量。
此外,本公开还提供了一种确定需求关键词之间相似度的方法。需要说明的是,该确定需求关键词之间相似度的方法可以应用于前文所述的实施例中以确定两个需求关键词之间的相似度,也可以不应用于前文所述的实施例中,换言之,该确定需求关键词之间相似度的方法中所述的需求关键词,可以是前文所述实施例中从检索语句中识别出的需求关键词,也可以不是从检索语句中识别出的需求关键词,而是从其他途径(例如来自于对一批用户的问卷调查)获取的与用户购物需求有关的关键词,又或者是基于某种需求关键词生成规则,生成的需求关键词。
该确定需求关键词之间相似度的方法具体为:
基于第一需求关键词,在电商平台上进行商品检索,并将检索到的至少部分商品中每个商品的商品名称,拼接成所述第一需求关键词对应的第一商品名称文本;
基于第二需求关键词,在电商平台上进行商品检索,并将检索到的至少部分商品中每个商品的商品名称,拼接成所述第二需求关键词对应的第二商品名称文本;
基于文本编码模型,获取所述第一商品名称文本对应的第一文本矩阵与所述第二商品名称文本对应的第二文本矩阵,并将所述第一文本矩阵与所述第二文本矩阵拼接成的组合矩阵输入到预先训练的文本分类模型,得到属于正分类的概率;其中,在训练所述文本分类模型时,以标记为相似的两个需求关键词分别对应的商品名称文本的文本矩阵所拼接成的组合矩阵,为正分类对应的输入;以标记为不相似的两个需求关键词分别对应的商品名称文本的文本矩阵所拼接成的组合矩阵,为负分类对应的输入;
将得到的概率确定为所述第一需求关键词与所述第二需求关键之间的相似度。
上述方法实际上是将两个需求关键词之间的相似度计算问题,转换成了文本分类问题,使用文本分类的方法间接解决相似度计算的问题。
上述方法的关键点在于,一方面,利用需求关键词在电商平台上检索,将检索结果中商品名称组成名称文本,该名称文本可以作为需求关键词的特征。另一方面,将两个不同的名称文本拼接成一个文本,定义分类为正分类(标签可以是1)与负分类(标签可以是0),正分类表示这个文本的两部分是相似的,负分类表示这个文本的两部分是不相似的。
在模型训练阶段,让文本分类模型学习拼接成的文本所蕴含的两个部分之间的相似规律,从而在模型应用阶段,将需要进行相似度计算的两个名称文本拼接成的文本输入到文本分类模型中之后,输出的属于正分类的概率,就可以表征这两个名称文本的相似度,也就是这两个名称文本分别对应的需求关键词之间的相似度。
而文本编码模型的作用是,将商品名称文本映射成文本矩阵,文本矩阵中每一行代表文本中的一个字对应的向量,或者每一列代表文本中的一个字对应的向量。
在上述确定需求关键词之间相似度的方法,文本分类模型所采用的分类算法可以有多种,文本编码模型所采用的编码算法也可以有多种。
在有些实施例中,文本分类模型可以包括:一个全连接层,或者至少两个相连的全连接层,其中,每个全连接层用于进行向量压缩(文本矩阵中每一行的向量全连接,然后进行压缩),最后一个全连接层包含激活函数,所述激活函数用于将对应的全连接层输出的向量映射为,属于正分类的概率与属于负分类的概率。
在有些实施例中,文本编码模型可以包括:依次连接的Bert算法层、BiLSTM算法层、自注意力机制self-attention算法层。文本编码模型还可以进一步包括连接于self-attention算法层之后的最大池化层。
引入self-attention算法层的原因是,一方面,商品名称文本中不同的词语在表征购物需求上的重要性有高低之分,self-attention算法可以赋予文本中不同词语不同的注意力权重。另一方面,self-attention算法可以捕捉到文本中词语之间的长距离依赖,从而提升文本编码模型的编码效果。
最大池化层的作用是,减少编码数据量与防止过拟合。
在有些实施例中,可以构建整合模型,通过训练整合模型的过程,一并完成对于文本编码模型与文本分类模型的训练。
具体而言,整合模型可以包括文本分类模型、矩阵拼接层、两个文本编码模型。所述文本分类模型以所述矩阵拼接层输出的组合矩阵为输入;所述矩阵拼接层以每个文本编码模型输出的文本矩阵为输入;两个文本编码模型分别以不同的商品名称文本为输入。
图4是本说明书实施例提供的一种整合模型的架构示意图。如图4所示,整合模型包括文本分类模型(即一个全连接层)、矩阵品阶层、文本编码模型1、文本编码模型2。其中,文本编码模型又进一步包括BERT算法层、BiLSTM算法层、self-attention算法层与最大池化层。
在组合模型的训练阶段,获取若干正样本与负样本。每个正样本可以是,标记为相似的两个需求关键词分别对应的商品名称文本;每个负样本可以是标记为不相似的两个需求关键词分别对应的商品名称文本。可以理解,正样本属于正分类的概率为1,负样本属于正分类的概率为0。
在训练完成组合模型之后,在组合模型的应用阶段,对于需要进行相似度计算的第一需求关键词与第二需求关键词,获取第一需求关键词对应的第一商品名称文本,以及获取第二需求关键词对应的第二商品名称文本。将所述第一商品名称文本与所述第二商品名称文本输入到训练好的所述整合模型,输出得到属于正分类的概率,可以作为第一需求关键词与第二需求关键词之间的相似度表征。
需要说明的是,在将至少一个全连接层(例如可以是2个)作为文本分类模型时,训练文本分类模型的过程,实际上是迭代调整全连接层中参数的过程。可以将迭代调整的目标定义为目标函数:
L(sim,g)=glog(sim)+(1-g)log(1-sim);
其中,sim表示属于正分类的概率,g表示样本属于正分类(1)或属于负分类(0)。可以理解,以最大化上述目标函数的值为目标,迭代调整全连接层中的参数,可以训练得到效果较好的文本分类模型。
此外,在实际应用中,即便电商平台可以根据用户输入的检索语句确定用户的购物需求,而如何将能够满足该购物需求的商品尽可能全面、尽可能匹配地推荐给用户,也是难题。目前的电商平台的做法往往是,从检索语句中提取商品名称,然后将具有该商品名称的商品以及其他类似商品推荐给用户。然而,很多时候用户的检索语句中并不会包含商品名称,即便可以提取到商品名称,根据商品名称推荐的商品往往也不够全面。
为此,本说明书还提供了如下技术方案:
将“已知用户的购物需求,如何为用户推荐商品”的问题,转换成“为商品关联购物需求”的问题。并且,将“如何为商品关联购物需求”的问题,进一步转换成“如何从商品标题中识别命名实体(将商品标题中的商品名称定义为命名实体)”的问题。
如此,可以获取多个商品标题样本,以每个商品标题样本包含的各商品名称为命名实体,以每个商品标题样本中各商品名称所满足的购物需求为命名实体类型,基于命名实体类型识别NER算法,进行模型训练,得到购物需求识别模型。从而可以利用购物需求识别模型,将电商平台的商品关联至各种购物需求,也就可以利用这种关联关系,在已知用户的购物需求的前提下,为用户推荐购物需求关联的商品,并且,推荐给用户的各个商品可以尽可能全面地满足用户的购物需求。
图5是本说明书实施例提供的一种为商品关联购物需求的方法的流程示意图,包括如下步骤:
S500:对于电商平台的待关联购物需求的商品,获取该商品对应的商品标题。
在电商领域,商家通常会在商品购买页面的标题(即商品标题)中写入商品名称。有时,商家为了提升自己的商品被检索到的概率,会在商品标题中罗列多个不同表述方式的商品名称。例如,电热壶、烧水壶、电水壶等商品名称,都对应于一个商品。
S502:将获取的商品标题输入到购物需求识别模型,识别出获取的商品标题中每个商品名称所满足的购物需求。
当需要将某个商品关联至匹配的购物需求时,将该商品的标题输入到购物需求识别模型。
购物需求识别模型的训练方法可以包括:获取商品标题样本,以所述商品标题样本包含的商品名称为命名实体,以所述商品标题样本中的商品名称所满足的购物需求为命名实体类型,基于命名实体类型识别NER算法,进行模型训练。在实际应用中,获取商品标题样本通常有多个,以每个商品标题样本包含的各商品名称为命名实体,以每个商品标题样本中各商品名称所满足的购物需求为命名实体类型,基于命名实体类型识别NER算法,进行模型训练。
换言之,模型的输入可以为,每个商品标题样本,输出可以为,商品标题样本中每个商品名称对应的命名实体标签。
NER算法有多种。在有些实施例中,可以结合BERT算法、BiLSTM算法与CRF算法,构建一个包括依次连接的BERT算法层、BiLSTM算法层与CRF算法层的模型进行训练。
在有些实施例中,也可以结合word2vec算法、BiLSTM算法与CRF算法,构建一个包括依次连接的word2vec算法层、BiLSTM算法层与CRF算法层的模型进行训练。
需要说明的是,在上述的两种模型中,模型的第一层通常是用于对输入的商品标题样本中每个汉字进行向量化(或称编码),以便于向量表示的商品标题样本进入BiLSTM算法层进行训练或识别。BiLSTM算法层在训练过程中可以学习到记忆哪些信息和遗忘哪些信息,因此可以更好地捕捉到较长距离的依赖关系,BiLSTM算法层则可以学习到句子前后两个方向的语义信息。
由于在模型应用阶段,BiLSTM算法层的输出是语句中每个字为各个类型的命名实体的概率,每个字分别对应的概率之间缺乏联系(以单个字为粒度考虑属于命名实体中一部分的概率),没有以词为粒度,考虑属于命名实体的概率。这容易导致,仅仅根据BiLSTM算法层的输出识别出属于命名实体一部分的每个字组成的命名实体,并不是所要得到的商品名称。
因此,将BiLSTM算法层的输出进一步输入到CRF算法层,CRF算法可以考虑单个字之间联系,可以分析各种可能组合属于命名实体的概率,根据CRF算法层输出可以确定属于每个类型的命名实体的概率最大的字组合(即词),而这些概率中,最大的概率对应的命名实体类型,就代表商品名称所满足的购物需求。
另外还需要说明的是,在训练购物需求识别模型时,通常是采用B、I、O三种标签,对检索语句样本中的商品名称进行命名实体标注。用B标注需求关键词的第一个字,用I标注需求关键词的其他字,用O标注检索语句中与需求关键词无关的部分。一个检索语句可能包含不止一个需求关键词。在实际进行标注时,标签后跟命名实体类型,如B-S(S表示命名实体类型),I-S。而图3所示的方法流程中,命名实体类型有多个(分别对应于多种购物需求)。
此外,在训练购物需求识别模型的过程中,可以获取实际商品标题,根据所述实际商品标题中的商品名称所满足的购物需求,确定满足所述购物需求的至少一个其他商品名称,并将所述至少一个其他商品名称添加到所述实际商品标题中,得到所述商品标题样本。
在实际应用中,通常可以从电商平台的数据库中获取多个实际商品标题。针对每个实际商品标题,根据该实际商品标题中各商品名称所满足的购物需求,确定满足该购物需求的至少一个其他商品名称,并将所述至少一个其他商品名称添加到该实际商品标题中,得到一个商品标题样本。由于获取的实际商品标题有多个,针对每个实际商品标题都能得到一个商品标题样本,因此,可以得到多个商品标题样本。
这样一来,不仅可以在标注人力有限的情况下扩充数据量,还可以让模型更针对性地学习希望它识别出的购物需求。
S504:建立识别出的购物需求与该商品之间的关联。
如此,在应用阶段,可以获取用户输入的检索语句,并根据所述检索语句,确定匹配的购物需求。然后,将确定的购物需求所关联的至少部分商品推荐给用户。
此外,在有些实施例中,根据所述检索语句,确定匹配的购物需求,具体可以是从所述检索语句中提取出需求关键词,并根据提取的需求关键词,确定匹配的购物需求。此处需要说明,如何根据需求关键词,找到匹配的购物需求,可以通过“寻找与需求关键词含义相近的需求表证词”的思路实现,需求表证词用于表征购物需求。
在有些实施例中,可以预先为每种购物需求分配相应的需求表征词。如此,若存在与提取的需求关键词相同的需求表征词,则将该需求表征词对应的购物需求,确定为匹配的购物需求。若不存在与提取的需求关键词相同的需求表征词,则确定与提取的需求关键词的含义最接近的需求表征词,并将该需求表征词对应的购物需求,确定为匹配的购物需求。
需要说明的是,在确定与提取的需求关键词的含义最接近的需求表征词时,实际上是将提取的需求关键词与各需求表证词逐一进行相似度计算,将计算得到的最大相似度对应的需求表证词作为与提取的需求关键词的含义最接近的需求表征词。此处使用的用于计算两个词之间含义上的相似度的方法,可以是本领域技术人员熟知的方法,也可以是本文给出的相似度计算方法。
在有些实施例中,电商平台在确定检索语句对应的需求表征词之后,如果发现需求表征词与用户输入的检索语句中的需求关键词不一致,则可以向用户提示该需求表征词,用户点击该需求表征词之后,电商平台将该需求表征词所关联的商品推荐给用户进行购买。
需要说明的是,此处提取需求关键词的方法,可以利用前文所述的需求关键词识别模型实现,也可以采用其他方法实现。例如,可以采用如下方法提取需求关键词:
对所述检索语句进行分词,并将每个分词输入到词分类模型。根据分类为需求关键词的分词,确定匹配的购物需求。
所述词分类模型的训练方法包括:获取多个检索语句样本,并从每个检索语句样本中提取需求关键词。以提取的每个需求关键词为白样本,采用分类算法,进行模型训练。黑样本可以根据实际情况进行指定。
如果通过上述的词分类模型来从检索语句中提取需求关键词,则需要先将用户输入的检索语句进行分词,将每个分词逐个输入到词分类模型中,判断每个分词是否为需求关键词。
此外,上述的词分类模型可以包括依次连接的BERT算法层、BiLSTM算法层与全连接层。其中,BERT算法层也可以替换成其他用于将词中的汉字向量化的算法层,如word2vec算法层。
在词分类模型包括BERT算法层的实施例中,由于属于分类任务,因此,可以利用BERT输出的文本分类表示CLS对应的向量表示,可以更加“公平”地融合词中各个字的语义信息。将CLS对应的向量表示也输入到全连接层,使得全连接层综合待识别的词在整体上的文本表示与BiLSTM的输出,确定分类。
上述的基于词分类模型从检索语句中提取需求关键词的方案,实际上是将从检索语句中提取需求关键词的任务,转换成逐一判断检索语句中每个词是否属于需求关键词的问题。将检索语句中每个词输入到词分类模型,可以判断出检索语句中每个词是否属于需求关键词,也就实现了从检索语句中识别出需求关键词的目的。之后,可以根据识别出的需求关键词,确定用户的购物需求,进而为用户推荐满足该购物需求的商品。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。
其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
与前述应用功能实现方法实施例相对应,本公开还提供了应用功能实现装置及相应的终端的实施例。
图6是本说明书提供的一种确定用户购物需求的装置的结构示意图,应用于电商平台,所述装置包括:
获取模块601,获取用户输入的检索语句;
识别模块602,将所述检索语句输入到需求关键词识别模型,识别出需求关键词;其中,所述需求关键词识别模型的训练方法包括:获取多个检索语句样本,以每个检索语句样本包含的需求关键词为命名实体,基于命名实体识别NER算法,进行模型训练;
确定模块603,根据识别出的需求关键词,确定匹配的购物需求。
图7是本说明书提供的一种为购物需求确定需求表征词的装置的结构示意图,包括:
获取模块701,获取多个历史检索语句;
识别模块702,针对每个历史检索语句,将该历史检索语句输入到需求关键词识别模型中,识别出需求关键词;
添加模块703,将识别出的每个需求关键词加入到需求表征词备选集合中;
划分模块704,根据所述集合中各需求关键词之间的相似度,将所述集合划分为多个子集合;同一子集合中的各需求关键词之间的相似度大于指定阈值;
确定模块705,基于不同的子集合,确定不同的需求表征词。
图8是本说明提供的一种确定需求关键词之间相似度的装置,所述装置包括:
第一获取模块801,基于第一需求关键词,在电商平台上进行商品检索,并将检索到的至少部分商品中每个商品的商品名称,拼接成所述第一需求关键词对应的第一商品名称文本;
第二获取模块802,基于第二需求关键词,在电商平台上进行商品检索,并将检索到的至少部分商品中每个商品的商品名称,拼接成所述第二需求关键词对应的第二商品名称文本;
计算模块803,基于文本编码模型,获取所述第一商品名称文本对应的第一文本矩阵与所述第二商品名称文本对应的第二文本矩阵,并将所述第一文本矩阵与所述第二文本矩阵拼接成的组合矩阵输入到预先训练的文本分类模型,得到属于正分类的概率;其中,在训练所述文本分类模型时,以同一需求关键词对应的两个不同的商品名称文本的文本矩阵所拼接成的组合矩阵,为正分类对应的输入;以两个不同需求关键词分别对应的商品名称文本的文本矩阵所拼接成的组合矩阵,为负分类对应的输入;将得到的概率确定为所述第一需求关键词与所述第二需求关键之间的相似度。
图9是本说明书提供的一种为商品关联购物需求的装置的结构示意图,包括:
获取模块901,对于电商平台的待关联购物需求的商品,获取所述商品对应的商品标题;
识别模块902,将获取的所述商品标题输入到购物需求识别模型,识别出获取的所述商品标题中的商品名称所满足的购物需求;
关联模块903,建立识别出的所述购物需求与所述商品之间的关联;
其中,所述购物需求识别模型的训练方法包括:获取商品标题样本,以所述商品标题样本包含的商品名称为命名实体,以所述商品标题样本中的商品名称所满足的购物需求为命名实体类型,基于命名实体类型识别NER算法,进行模型训练。
图10是本说明书提供的一种为用户推荐商品的装置的结构示意图,应用于电商平台,所述装置包括:
获取模块1001,获取用户输入的检索语句,并根据所述检索语句,确定匹配的购物需求;
推荐模块1002,将确定的所述购物需求所关联的至少部分商品推荐给所述用户。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
图11是根据一示例性实施例示出的一种电子设备1500的结构示意图。例如,设备1500可以是用户设备,可以具体为移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理,可穿戴设备如智能手表、智能眼镜、智能手环、智能跑鞋等。
参照图11,设备1500可以包括以下一个或多个组件:处理组件1502,存储器1504,电源组件1506,多媒体组件1508,音频组件1510,输入/输出(I/O)的接口1512,传感器组件1514,以及通信组件1516。
处理组件1502通常控制设备1500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1502可以包括一个或多个处理器1520来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1502可以包括一个或多个模块,便于处理组件1502和其他组件之间的交互。例如,处理组件1502可以包括多媒体模块,以方便多媒体组件1508和处理组件1502之间的交互。
存储器1504被配置为存储各种类型的数据以支持在设备1500的操作。这些数据的示例包括用于在设备1500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1506为设备1500的各种组件提供电力。电源组件1506可以包括电源管理系统,一个或多个电源,及其他与为设备1500生成、管理和分配电力相关联的组件。
多媒体组件1508包括在上述设备1500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。上述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与上述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1508包括一个前置摄像头和/或后置摄像头。当设备1500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1510被配置为输出和/或输入音频信号。例如,音频组件1510包括一个麦克风(MIC),当设备1500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1504或经由通信组件1516发送。在一些实施例中,音频组件1510还包括一个扬声器,用于输出音频信号。
I/O接口1512为处理组件1502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1514包括一个或多个传感器,用于为设备1500提供各个方面的状态评估。例如,传感器组件1514可以检测到设备1500的打开/关闭状态,组件的相对定位,例如上述组件为设备1500的显示器和小键盘,传感器组件1514还可以检测设备1500或设备1500一个组件的位置改变,用户与设备1500接触的存在或不存在,设备1500方位或加速/减速和设备1500的温度变化。传感器组件1514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1516被配置为便于设备1500和其他设备之间有线或无线方式的通信。设备1500可以接入基于通信标准的无线网络,如WiFi,2G或3G,4G LTE、5G NR或它们的组合。在一个示例性实施例中,通信组件1516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,上述通信组件1516还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,设备1500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,例如包括指令的存储器1504,当存储介质中的指令由设备1500的处理器1520执行时,使得设备1500能够执行本说明书各实施例的方法。
所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
如图12所示,图12是根据一示例性实施例示出的另一种电子设备1600的一结构示意图。例如,设备1600可以被提供为一应用服务器。参照图7,设备1600包括处理组件1622,其进一步包括一个或多个处理器,以及由存储器1616所代表的存储器资源,用于存储可由处理部件1622的执行的指令,例如应用程序。存储器1616中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1622被配置为执行指令,以执行上述方法。
设备1600还可以包括一个电源组件1626被配置为执行设备1600的电源管理,一个有线或无线网络接口1650被配置为将设备1600连接到网络,和一个输入输出(I/O)接口1658。设备1600可以操作基于存储在存储器1616的操作系统,例如Android、iOS、WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1616,上述指令可由设备1600的处理组件1622执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
其中,当所述存储器1616中的指令由所述处理组件1622执行时,使得设备1600能够执行本说明书各实施例的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
- 一种确定用户购物需求的方法
- 一种目标用户确定方法、装置和用于确定目标用户的装置