发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种商品分类方法、装置、电子设备及存储介质。
第一方面,本申请提供了一种商品分类方法,包括:
获取预设时间段内的商品交易数据;
根据所述交易数据生成以商品为节点,以商品之间的关联关系为边的商品关联图;
根据所述商品关联图生成各商品的词向量;
采用预设的聚类算法,对商品的词向量进行聚类,得到各个商品对应的类别。
在一种可能的实现方式中,所述交易数据包括商品信息、商品购买时间和客户信息;
根据所述交易数据生成以商品为节点,以商品之间的关联关系为边的商品关联图,包括:
根据所述交易数据生成多个商品购买序列,一个商品购买序列包含一个客户在一个预设的购买周期内购买的所有商品的信息;
分别对各个商品购买序列中的商品购买时间进行聚类,得到聚类结果;
根据所述聚类结果生成以商品为节点,以商品之间的关联关系为边的商品关联图。
在一种可能的实现方式中,根据所述聚类结果生成以商品为节点,以商品之间的关联关系为边的商品关联图,包括:
根据所述聚类结果将商品购买时间属于同一个类的商品按照购买时间的先后顺序采用有向连接线进行有向连接,所述有向连接线表示商品之间的关联关系;
生成以商品为节点、以商品之间的有向连接线为边、以任意两件商品之间的同一种有向连接线出现的次数为与所述有向连接线对应的边的权重的有向带权图;
将所述有向带权图作为商品关联图。
在一种可能的实现方式中,对商品购买序列中的商品购买时间进行聚类,得到聚类结果,包括:
确定购买时段个数的多个候选值;
分别根据各个候选值,对商品购买序列中的商品购买时间采用重心法进行聚类;
根据聚类结果按照预设的第一公式计算各个候选值对应的sim值;
确定对应的sim值最大的候选值作为购买时段个数的预设值;
将根据所述预设值对商品购买序列中的商品购买时间采用重心法进行聚类得到的聚类结果,作为最终的聚类结果。
在一种可能的实现方式中,所述第一公式如下所示;
其中,m表示购买时段个数的候选值,μi表示聚类结果中商品购买时间属于第i类的商品的相似度,Ni表示聚类结果中商品购买时间属于第i类的商品的数量,di表示聚类结果中商品购买时间属于第i类的商品间的购买时间距离。
在一种可能的实现方式中,根据所述商品关联图生成各商品的词向量,包括:
对所述商品关联图执行随机游走,得到随机游走序列;
选取任意一条随机游走序列中的任一商品作为第一商品;
根据所述交易数据,选取购买过所述第一商品的任一客户作为第一客户;
获取所述第一客户的画像特征;
抽取所述交易数据中除了所述第一商品外的多个商品分别作为第二商品;
根据所述第一商品、第一客户的画像特征和第二商品训练所述第一商品的词向量。
在一种可能的实现方式中,对所述商品关联图执行随机游走,得到随机游走序列,包括:
分别采用深度优先搜索算法和广度优先搜索算法对所述商品关联图执行随机游走,得到随机游走序列。
在一种可能的实现方式中,根据所述第一商品、第一客户的画像特征和第二商品训练所述第一商品的词向量,包括:
确定下式中L(u,u_o)最大时对应的u,作为第一商品的词向量;
其中,u表示第一商品的词向量,u_o表示第二商品的词向量,c表示第一客户的特征向量,k表示一个超参数,pn(u)表示第一商品被购买的概率,m表示抽取的第二商品的个数,yi表示抽取的m个第二商品中属于第一客户购买的且在第一商品所在的随机游走序列中的商品所占的比例。
在一种可能的实现方式中,抽取所述交易数据中除了所述第一商品外的多个商品分别作为第二商品,包括:
根据所述交易数据,计算所述交易数据中包含的各商品的总销量;
根据各商品的总销量和所述交易数据中所有商品的总销量,计算各商品的销量占比,将各商品的销量占比作为各商品的抽样概率;
按照所述抽样概率对所述交易数据中除了所述第一商品外的商品进行抽样,将抽样得到的商品作为第二商品。
在一种可能的实现方式中,确定L(u,u_o)最大时对应的c,作为第一客户的特征向量,所述方法还包括:
对交易数据中的客户的特征向量进行聚类,得到各个客户对应的客群;
将各个客群中包含的客户的特征向量分别与商品的词向量客户进行点乘,得到各个客群对应的商品词向量;
分别对各个客群对应的商品词向量进行聚类,得到各个客群对应的商品分类方案。
在一种可能的实现方式中,所述方法还包括:
若出现未分类的新商品,则确定所述新商品与所述商品关联图中包含的商品的关联关系和权重;
根据所述权重按照预设的第二公式计算所述商品关联图中与所述新商品有关联关系的商品的采样概率;
根据所述采样概率对与所述新商品有关联关系的商品进行预设次数的有放回采样;
根据采样结果确定所述新商品的词向量;
分别计算所述新商品的词向量与各个分类中所有商品的词向量的均值的余弦相似度;
确定对应的余弦相似度最大的分类为所述新商品所属的分类。
在一种可能的实现方式中,所述第二公式如下:
其中wi为新商品与商品i的关联权重,pi为商品i的采样概率。
在一种可能的实现方式中,根据采样结果确定所述新商品的词向量,包括:
采用平均聚合算法,计算所述采样结果中包含的所有商品的词向量的均值,将所述均值作为所述新商品的词向量。
第二方面,本发明实施例还提供了一种商品分类装置,包括:
获取模块,用于获取预设时间段内的商品交易数据;
图生成模块,用于根据所述商品交易数据生成以商品为节点,以商品之间的关联关系为边的商品关联图;
词向量生成模块,用于根据所述商品关联图生成各商品的词向量;
分类模块,用于采用预设的聚类算法,对商品的词向量进行聚类,得到各个商品对应的类别。
在一种可能的实现方式中,所述交易数据包括商品信息、商品购买时间和客户信息;
所述图生成模块包括:
序列生成子模块,用于根据所述交易数据生成多个商品购买序列,一个商品购买序列包含一个客户在一个预设的购买周期内购买的所有商品的信息;
时间聚类子模块,用于分别对各个商品购买序列中的商品购买时间进行聚类,得到聚类结果;
生成子模块,用于根据所述聚类结果生成以商品为节点,以商品之间的关联关系为边的商品关联图。
在一种可能的实现方式中,生成子模块具体用于:
根据所述聚类结果将商品购买时间属于同一个类的商品按照购买时间的先后顺序采用有向连接线进行有向连接,所述有向连接线表示商品之间的关联关系;
生成以商品为节点、以商品之间的有向连接线为边、以任意两件商品之间的同一种有向连接线出现的次数为与所述有向连接线对应的边的权重的有向带权图;
将所述有向带权图作为商品关联图。
在一种可能的实现方式中,所述时间聚类子模块具体用于:
确定购买时段个数的多个候选值;
分别根据各个候选值,对商品购买序列中的商品购买时间采用重心法进行聚类;
根据聚类结果按照预设的第一公式计算各个候选值对应的sim值;
确定对应的sim值最大的候选值作为购买时段个数的预设值;
将根据所述预设值对商品购买序列中的商品购买时间采用重心法进行聚类得到的聚类结果,作为最终的聚类结果。
在一种可能的实现方式中,所述第一公式如下所示;
其中,m表示购买时段个数的候选值,μi表示聚类结果中商品购买时间属于第i类的商品的相似度,Ni表示聚类结果中商品购买时间属于第i类的商品的数量,di表示聚类结果中商品购买时间属于第i类的商品间的购买时间距离。在一种可能的实现方式中,所述词向量生成模块包括:
随机游走子模块,用于对所述商品关联图执行随机游走,得到随机游走序列;
第一商品确定子模块,用于选取任意一条随机游走序列中的任一商品作为第一商品;
第一客户确定子模块,用于根据所述交易数据,选取购买过所述第一商品的任一客户作为第一客户;
客户特征获取子模块,用于获取所述第一客户的画像特征;
第二商品确定子模块,用于抽取所述交易数据中除了所述第一商品外的多个商品分别作为第二商品;
词向量训练子模块,用于根据所述第一商品、第一客户的画像特征和第二商品训练所述第一商品的词向量。
在一种可能的实现方式中,所述随机游走子模块具体用于:
分别采用深度优先搜索算法和广度优先搜索算法对所述商品关联图执行随机游走,得到随机游走序列。
在一种可能的实现方式中,所述词向量训练子模块具体用于:
确定下式中L(u,u_o)最大时对应的u,作为第一商品的词向量;
其中,u表示第一商品的词向量,u_o表示第二商品的词向量,c表示第一客户的特征向量,k表示一个超参数,pn(u)表示第一商品被购买的概率,m表示抽取的第二商品的个数,yi表示抽取的m个第二商品中属于第一客户购买的且在第一商品所在的随机游走序列中的商品所占的比例。
在一种可能的实现方式中,所述第二商品确定子模块具体用于:
根据所述交易数据,计算所述交易数据中包含的各商品的总销量;
根据各商品的总销量和所述交易数据中所有商品的总销量,计算各商品的销量占比,将各商品的销量占比作为各商品的抽样概率;
按照所述抽样概率对所述交易数据中除了所述第一商品外的商品进行抽样,将抽样得到的商品作为第二商品。
在一种可能的实现方式中,确定L(u,u_o)最大时对应的c,作为第一客户的特征向量,所述装置还包括:
客户聚类模块,用于对交易数据中的客户的特征向量进行聚类,得到各个客户对应的客群;
客群商品词向量生成模块,用于将各个客群中包含的客户的特征向量分别与商品的词向量客户进行点乘,得到各个客群对应的商品词向量;
客群商品分类模块,用于分别对各个客群对应的商品词向量进行聚类,得到各个客群对应的商品分类方案。
在一种可能的实现方式中,所述装置还包括新商品分类模块,所述新商品分类模块具体用于:
若出现未分类的新商品,则确定所述新商品与所述商品关联图中包含的商品的关联关系和权重;
根据所述权重按照预设的第二公式计算所述商品关联图中与所述新商品有关联关系的商品的采样概率;
根据所述采样概率对与所述新商品有关联关系的商品进行预设次数的有放回采样;
根据采样结果确定所述新商品的词向量;
分别计算所述新商品的词向量与各个分类中所有商品的词向量的均值的余弦相似度;
确定对应的余弦相似度最大的分类为所述新商品所属的分类。
在一种可能的实现方式中,所述第二公式如下:
其中wi为新商品与商品i的关联权重,pi为商品i的采样概率。
在一种可能的实现方式中,根据采样结果确定所述新商品的词向量,包括:
采用平均聚合算法,计算所述采样结果中包含的所有商品的词向量的均值,将所述均值作为所述新商品的词向量。
第三方面,本发明实施例还提供一种电子设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的数据处理程序,以实现第一方面所述的商品分类方法。
第四方面,本发明实施例还提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面所述的商品分类方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的一种商品分类方法,获取商品交易数据,根据商品交易数据生成表示商品之间关联关系的商品关联图,根据商品关联图得到各商品的词向量,可以量化商品之间的关系,采用预设的聚类算法,对商品的词向量进行聚类,得到各个商品对应的类别。采用本方案可以利用客户在电商平台产生的交易数据,自动完成对商品的分类,无需人为参与,与现有的专家分类相比,节约了人力。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
商品分类涉及到对各类商品的认知,而且经常变动,所以非常复杂,基于专家经验进行的商品分类因为无法考虑太多因素,所以会有下述技术问题:
(1)专家分类主要是以商品本身进行分类的,不会去考虑客户购买的习惯,所以有时候常见购买组合的商品会被分在不同的类别里,需要客户自己去查找。比如教辅和文具会被放在图书和办公两个大类别里,但是家长或者小朋友一般是在开学的时候购买教辅,这时候也需要购买一些文具。
(2)因为分类是专家定的,所以如果新的商品上线了,那么就需要人工进行分类,因为现在商品的迭代是比较快的,这就导致需要经常进行分类的补充,并且要通知到相关的团队。而且如果出现人员变动,则整个分类逻辑都可能变动。
(3)交易环节涉及到两个主体:商品和客户,商品分类解决的主要是商品和客户的匹配问题,通常不同的客群,对商品的需求不同,而现有的商品的分类通常是针对所有的客群分类都是一致的。
为解决上述技术问题或部分的解决上述技术问题,本发明实施例提供了一种商品分类方法。
图1为本发明实施例提供的一种商品分类方法的流程图,如图1所示,该方法包括如下步骤:
S11.获取预设时间段内的商品交易数据。
其中,预设时间段内的商品交易数据可以根据实际需求设定,例如可以为一个月内全量客户的商品交易数据。
S12.根据所述商品交易数据生成以商品为节点,以商品之间的关联关系为边的商品关联图。
其中商品关联图是可以表示商品之间的关联关系的图。
S13.根据所述商品关联图生成各商品的词向量。
例如可以根据商品关联图采用现有的node2vec算法生成商品的词向量。
S14.采用预设的聚类算法,对商品的词向量进行聚类,得到各个商品对应的类别。
其中,预设的聚类算法可以为现有的成熟聚类算法,例如K-means、层次聚类算法等。
本申请实施例提供的一种商品分类方法,获取商品交易数据,根据商品交易数据生成表示商品之间关联关系的商品关联图,根据商品关联图得到各商品的词向量,可以量化商品之间的关系,采用预设的聚类算法,对商品的词向量进行聚类,得到各个商品对应的类别。本方案整个过程利用客户在电商平台产生的交易数据,进行商品的分类,可以帮助客户更好地在电商平台购物,形成行为->计算->分类改造的闭环,减小商品分类的维护成本,提高分类效率和效果,而且采用本方案进行商品分类无需人为参与,与现有的专家分类相比,节约了人力。
在上述实施例的基础上,商品交易数据包括商品信息、商品购买时间和客户信息等数据,其中商品信息可以包括商品ID、商品的品牌、商品的名称和/或商品的型号等信息,例如A牌XX型号手机,客户信息可以为客户的ID。
S12根据所述商品交易数据生成以商品为节点,以商品之间的关联关系为边的商品关联图,可以包括如下步骤:
步骤1.根据所述商品交易数据生成多个商品购买序列,一个商品购买序列包含一个客户在一个预设的购买周期内购买的所有商品。
在一种可能的实现方式中,所述交易数据包括客户ID、商品ID和商品购买时间,根据需求将预设时间段划分为多个购买周期,根据商品购买时间,按照将一个客户在一个购买周期内购买的所有商品作为一个商品购买序列的规则,将所述交易数据划分为多个商品购买序列。
其中预设时间段和购买周期的划分规则根据需求自行设定,例如预设的时间段可以为2019年3月1号到2019年3月31号,可以以1天为一个购买周期,则可以将预设时间段划分为31个购买周期,根据上述购买周期的划分,则可以将客户A在2019年3月1日购买的所有商品作为一个商品购买序列,客户A在2019年3月2日购买的所有商品作为一个商品购买序列,客户B在2019年3月1日购买的所有商品作为一个商品购买序列,以此类推,可以将获取的交易数据划分为多条商品购买序列。
步骤2.分别对各个商品购买序列中的商品购买时间进行聚类,得到聚类结果。
对商品购买时间进行聚类,可以将同一个商品购买序列中的多件商品的购买时间按照时间接近程度划分为多个类,也就是将商品购买序列的购买周期划分为多个购买时段。
如图2所示,根据商品购买时间的接近程度将一个商品购买序列中包含的商品A-G的购买时间划分为3类,也就是将该商品购买序列的购买周期划分为3个购买时段,属于同一购买时段的商品购买时间属于同一类。
采用上述方式分别对各个商品购买序列中商品的购买时间进行聚类,可以得到多个类。
步骤3.根据所述聚类结果生成以商品为节点,以商品之间的关联关系为边的商品关联图。
根据聚类结果可以将购买时间在同一购买时段的商品先划分到一类中,根据以往经验,同一客户在同一购买时段购买的商品之间通常会具有一定的关联关系,因此可以根据聚类结果可以确定商品之间的关联,从而生成商品关联图。
在本实施例中,通过聚类可以对商品的购买时间进行划分,根据以往经验确定属于同一类中的商品具有关联关系,从而生成商品关联图。
在上述实施例的基础上,根据所述聚类结果生成以商品为节点,以商品之间的关联关系为边的商品关联图,可以包括如下步骤:
步骤1:根据聚类结果将商品购买时间属于同一个类的商品按照购买时间的先后顺序采用有向连接线进行有向连接,所述有向连接线表示商品之间的关联关系。
步骤2:生成以商品为节点、以商品之间的有向连接线为边、以任意两件商品之间的同一种有向连接线出现的次数作为与所述有向连接线对应的边的权重的有向带权图;
步骤3:将所述有向带权图作为商品关联图。
因为不同的客户可能购买过相同的商品,或同一客户在不同的购买周期购买过相同的商品,也就是说不同的商品购买序列中可能包含相同的商品,所以根据上述聚类结果得到的不同的类中可能会包含相同的商品,而由于聚类时是分别对各个商品购买序列进行聚类的,这就使得不同的类中可能存在同样的商品,进而有可能存在相同的关联关系,所以在交易数据中同一种关联关系可能会出现多次,同一种关联关系出现的次数越多,说明两件商品的关联性越强,因此在构建商品关联图时,将各关联关系(也就是各条有向连接线)出现的次数,作为各关联关系的权重也就是边的权重,从而使边的权重可以体现关联关系的强弱。
在本实施例中,通过上述方式构建的商品关联图可以直观的体现出商品之间的关联关系及商品之间关联关系的强弱。
在上述实施例的基础上,在S122中分别对各个商品购买序列中的商品购买时间采用下述方式进行聚类,分别得到各个商品购买序列中商品购买时间的聚类结果,可以包括:
确定购买时段个数的多个候选值,根据各个候选值,分别对商品购买序列中的商品购买时间采用重心法进行聚类,根据聚类结果按照预设的第一公式计算各个候选值对应的sim值,确定对应的sim值最大的候选值作为购买时段个数的预设值,将根据所述预设值对商品购买序列中包含的商品的购买时间采用重心法进行聚类得到的聚类结果,作为最终的聚类结果。
所述第一公式如下所示;
其中,m表示购买时段个数的候选值,μi表示聚类结果中商品购买时间属于第i类的商品的相似度,Ni表示聚类结果中商品购买时间属于第i类的商品的数量,di表示聚类结果中商品购买时间属于第i类的商品间的购买时间距离。
根据聚类结果将商品购买序列对应的购买周期划分为m个购买时段,每个购买时段对应一类,则第i类就表示第i个购买时段,μi就表示聚类结果中商品购买时间属于第i个购买时段的商品的相似度,Ni表示聚类结果中商品购买时间属于第i购买时段的商品的数量,di表示聚类结果中商品购买时间属于第i购买时段的商品间的购买时间距离。
例如,确定1~20这20个值为购买时段个数的候选值,依次设定m=1、m=2、……m=20,并在m=1、m=2、……m=20时分别采用重心法对商品购买序列进行聚类,得到聚类结果,根据聚类结果,按照第一公式,得到这20个值分别对应的sim,选择20个值中使得sim最大的值,作为购买时段个数的预设值,并将该值对应的聚类结果作为最终的聚类结果。
在本实施例中,通过上述方式得到的聚类结果可以保证各类中的商品的相似度最大。
在上述实施例的基础上,S13根据所述商品关联图生成各商品的词向量,可以包括:
对所述商品关联图执行随机游走,得到随机游走序列,选取任意一条随机游走序列中的任一商品作为第一商品,根据所述交易数据,选取购买过所述第一商品的任一客户作为第一客户,获取所述第一客户的画像特征,选取所述交易数据中除了所述第一商品外的多个商品分别作为第二商品,根据所述第一商品、第一客户的画像特征和第二商品训练所述第一商品的词向量。
其中,客户的画像特征可以为根据客户输入的画像特征(例如性别、职业、年龄、兴趣等)得到的,也可以为根据客户的购买习惯分析得到的画像特征。
对所述商品关联图执行随机游走,得到随机游走序列,包括:根据可变权重的广度优先搜索算法(BFS)和深度优先搜索算法(DFS)分别进行随机游走,得到不同特征侧重的随机游走序列。对于商品购买而言,如果不同的客户经常会按照相同的序列购买商品,那么对商品关联图进行DFS,随机游走出的序列可以反映商品之间的内在关系,即很可能是同品类、同属性或者经常一同购买的商品,因此这部分随机游走的序列可以反映商品的同质性。而如果某个商品能够被许多商品关联或者经常出现,则更容易被BFS加入随机游走序列,此时可以认为这一类随机游走序列反映了不同商品的结构性,即探查凑单商品和爆款的能力。
如图3所示为随机游走过程的示意图,其中v为当前节点,t为v的上一节点,x为v的下一节点,则在随机游走过程中,由v跳到x的概率按下式计算:
πvx=αpq(t,x)·ωvx
其中ωvx是边vx的权重,αpq(t,x)的定义如下:
其中dtx是节点t到节点x的距离,p和q分别代表返回参数和进出参数,用于控制BFS和DFS的倾向性。本实施例定义在BFS和DFS游走过程中,p分别为q的1/10和10倍,用于不同的特征倾向性。
本实施例在生成商品的词向量的过程中,加入客户的特征向量,对不同客户购买的相同商品进行词向量训练。
构建如图4所示的网络,其中商品u(即第一商品)是某随机游走序列中的任一商品,用户特征是购买商品u的客户的画像特征,商品u_o(即第二商品)是另外一个商品。
商品u_o有下述两种情况:
第一种情况:商品u_o由购买商品u的客户购买,且属于商品u所属的随机游走序列中。
其中商品u_o位于商品u所属的随机游走序列中的意思为:若上述的商品u所在的某随机游走序列为通过BFS算法得到的随机游走序列,则商品u_o属于通过BFS算法得到的包含商品u的随机游走序列,就确定商品u_o位于商品u所属的随机游走序列中,否则确定商品u_o不属于商品u所属的随机游走序列中,若上述的商品u所在的某随机游走序列为通过DFS算法得到的随机游走序列,则商品u_o属于通过DFS算法得到的包含商品u的随机游走序列,就确定商品u_o位于商品u所属的随机游走序列中,否则确定商品u_o不属于商品u所属的随机游走序列中。
第二种情况:商品u_o不是由购买商品u的客户购买,或商品u_o不属于商品u所属的随机游走序列中。
当商品u_o为第一种情况的时候,那么最终的目标变量的Y=1,也就是
其中c为购买商品u的客户的特征向量,pn(u)代表商品u被购买的概率,可以根据交易数据中商品u的总销量除以交易数据中所有商品的总销量得到,k是一个超参数,代表噪声采样的比例。上面的公式也就是客户c的随机游走序列中同时出现商品u和商品u_o的情况。
一般词向量训练需要进行负采样,因为一个随机游走序列中的样本点都是相关的,需要挑选一些不相关的商品作为负样本,即当商品u_o为第二种情况的时候,这种情况下的的预测公式可以表达如下:
另外在进行商品聚类的时候,商品的销售是有季节因素的,所以在选取第一商品和第二商品也就是选取商品u和商品u_o时,可以使用计算的预设时间段内各商品的销量信息进行采样,也就是训练某个随机游走序列样本时,使用预设时间段内各个商品的销量占比作为抽样概率,根据抽样概率选取商品u和商品u_o,这样能够保证负采样的商品和随机游走序列中商品的差异是来自于商品本身的特点。比如“冬靴”和“短裤”很少会出现在一个随机游走序列中是因为季节差异,“冬靴”和“冰激凌”很少出现在一个随机游走序列中是因为产品的差异。
其中各商品的销量占比等于交易数据中该商品的总销量除以交易数据中所有商品的总销量。
综上,根据第一商品、第一客户的特征向量和第二商品训练所述第一商品的词向量,包括:
计算下式中L(u,u_o)最大时对应的u作为第一商品的词向量;
其中,u表示第一商品的词向量,u_o表示第二商品的词向量,c表示第一客户的特征向量,m表示抽取的第二商品的个数,yi表示抽取的m个第二商品中属于第一客户购买的且在第一商品所在的随机游走序列中的商品所占的比例,即抽取的多个第二商品中属于第一种情况的占比。
上述函数为极大似然函数,L(u,u_o)最大也就是模型的参数要使真实数据出现的概率最大,使用常规的优化算法求解,得到第一客户的向量,和第一商品的词向量。
采用BFS和DFS分别进行随机游走,则商品u可能既属于采用BFS算法得到的随机游走序列,又属于采用DFS算法得到的随机游走序列,所以为了保证商品u的词向量的准确性,分别对商品u属于采用BFS算法得到的随机游走序列,和商品u属于采用DFS算法得到的随机游走序列这两种情况执行上述词向量训练的过程,在分别完成对BFS和DFS随机游走序列的词向量训练,并得到针对商品u的两个不同的词向量后,可以通过点乘的方式对两部分词向量进行融合,得到最终的融合词向量作为商品u的词向量也是该商品u的唯一标识。
在本实施例中,采用上述方式生成的商品的词向量融合了客户的特征向量,且考虑了商品的同质性和结构性,使得最终的词向量更准确。
在上述实施例的基础上,S14采用预设的聚类算法,对商品的词向量进行聚类,得到各个商品对应的类别,可以包括如下步骤:
步骤1.计算任意两个商品的词向量的余弦相似度。
余弦相似度(Cosine Similarity,简称CS)可以作为商品相似度,余弦相似度的取值范围是[-1,1],两个商品的词向量的余弦相似度约接近于1,则说明两个商品越相近。
步骤2.计算预设数值与所述余弦相似度的差值,将所述差值作为所述任意两个商品的距离值,所以预设数值大于1。
在这一种可能的实现方式中,预设数值可以为2,在聚类中可以用2-CS作为两个商品的距离值,这样就保证数值越小,距离越近。
步骤3.根据所述距离值,采用预设的层次聚类算法进行聚类,商品的词向量属于一类的商品属于同一类别。
在一种可能的实现方式中,如果是商品太多,可以先用K-means等比较快速的方法进行粗聚类,然后在用层次聚类算法进行聚类,聚类后的效果如图5所示,可以得到两级分类或多级分类。
本实施例中,采用层次聚类算法对商品的词向量进行分类,分类结果准确。
在上述实施例的基础上,所述商品分类方法还包括:
对交易数据中的客户的特征向量进行聚类,得到各个客户对应的客群,将各个客群中包含的客户的特征向量与商品的词向量进行点乘,得到各个客群对应的商品词向量,分别对各个客群对应的商品词向量进行聚类,得到各个客群对应的商品分类方案。
本实施例采用上述方法可以针对不同的客群得到不同的分类。
因为经常会有新商品推出,所以可以每间隔一定时间执行一次S11-S14,以保证商品分类的及时更新。
但是有时新商品出现时还未到下次更新的时间,为了保证可以及时为新商品分类,在上述实施例的基础上,所述商品分类方法还可以包括:
若有新商品,则确定所述新商品与所述商品关联图中包含的商品的关联关系和权重,根据所述权重按照预设的第二公式计算所述商品关联图中与所述新商品有关联关系的商品的采样概率,根据所述采样概率对与所述新商品有关联关系的商品进行预设次数的有放回采样,根据采样结果确定所述新商品的词向量,分别计算所述新商品的词向量与各个分类中所有商品的词向量的均值的余弦相似度,确定对应的余弦相似度最小的分类为所述新商品所属的分类。
在一种可能的实现方式中,所述第二公式如下:
其中wi为新商品与商品i的关联权重,pi为商品i的采样概率,权重较大的关联则获得较大的采样概率。
在一种可能的实现方式中,根据采样结果确定所述新商品的词向量,包括:采用平均聚合算法,计算所述采样结果中包含的所有商品的词向量的均值,将所述均值作为所述新商品的词向量,即新商品的词向量的每个维度都取与新商品有关联关系的商品的词向量相应维度的均值,对全部采样结果进行平均聚合,得到新商品的词向量。
具体流程为:新商品加入后,在进行词向量训练的时候,只优化新商品的词向量,保持旧的商品的词向量稳定,这样就可以得到新商品的词向量,同时原有商品的词向量和分类都保持稳定。然后计算每个末级分类词向量的均值,例如使用图5所示的H品牌睡裤、I品牌休闲裤和J品牌运动裤的均值作为末级分类男士裤子的词向量,然后计算新商品和每个末级分类词向量的余弦相似度,选取余弦相似度最大的末级分类作为新商品的分类。
在本实施例中,采用上述方式能完成对新上线的商品的自动分类,且分类是时不会影响已有的商品分类。
图6为本发明实施例提供的一种商品分类装置的框图,如图6所示,该装置可以包括:
获取模块601,用于获取预设时间段内的商品交易数据;
图生成模块602,用于根据所述商品交易数据生成以商品为节点,以商品之间的关联关系为边的商品关联图;
词向量生成模块603,用于根据所述商品关联图生成各商品的词向量;
分类模块604,用于采用预设的聚类算法,对商品的词向量进行聚类,得到各个商品对应的类别。
在一种可能的实现方式中,所述交易数据包括商品信息、商品购买时间和客户信息;
所述图生成模块602包括:
序列生成子模块,用于根据所述交易数据生成多个商品购买序列,一个商品购买序列包含一个客户在一个预设的购买周期内购买的所有商品的信息;
时间聚类子模块,用于分别对各个商品购买序列中的商品购买时间进行聚类,得到聚类结果;
生成子模块,用于根据所述聚类结果生成以商品为节点,以商品之间的关联关系为边的商品关联图。
所述生成子模块具体用于:
根据所述聚类结果将商品购买时间属于同一个类的商品按照购买时间的先后顺序采用有向连接线进行有向连接,所述有向连接线表示商品之间的关联关系,生成以商品为节点、以商品之间的有向连接线为边、以任意两件商品之间的同一种有向连接线出现的次数为与所述有向连接线对应的边的权重的有向带权图,将所述有向带权图作为商品关联图。
在一种可能的实现方式中,所述时间聚类子模块具体用于:
确定购买时段个数的多个候选值;
分别根据各个候选值,对商品购买序列中的商品购买时间采用重心法进行聚类;
根据聚类结果按照预设的第一公式计算各个候选值对应的sim值;
确定对应的sim值最大的候选值作为购买时段个数的预设值;
将根据所述预设值对商品购买序列中的商品购买时间采用重心法进行聚类得到的聚类结果,作为最终的聚类结果;
所述第一公式如下所示;
其中,m表示购买时段个数的候选值,μ表示聚类结果中商品购买时间属于同一类的商品的相似度,N表示聚类结果中商品购买时间属于同一类的商品的数量,d表示聚类结果中商品购买时间属于同一类的商品间的购买时间距离。
在一种可能的实现方式中,所述词向量生成模块603包括:
随机游走子模块,用于所述商品关联图执行随机游走,得到随机游走序列;
第一商品确定子模块,用于选取任意一条随机游走序列中的任一商品作为第一商品;
第一客户确定子模块,用于根据所述交易数据,选取购买过所述第一商品的任一客户作为第一客户;
客户特征获取子模块,用于获取所述第一客户的画像特征;
第二商品确定子模块,用于抽取所述交易数据中除了所述第一商品外的多个商品分别作为第二商品;
词向量训练子模块,用于根据所述第一商品、第一客户的画像特征和第二商品训练所述第一商品的词向量。
在一种可能的实现方式中,随机游走子模块具体用于:
分别采用深度优先搜索算法和广度优先搜索算法对所述商品关联图执行随机游走,得到随机游走序列。
在一种可能的实现方式中,所述词向量训练子模块具体用于:
确定下式中L(u,u_o)最大时对应的u,作为第一商品的词向量;
其中,u表示第一商品的词向量,u_o表示第二商品的词向量,c表示第一客户的特征向量,k表示一个超参数,pn(u)表示第一商品被购买的概率,m表示抽取的第二商品的个数,yi表示抽取的m个第二商品中属于第一客户购买的且在第一商品所在的随机游走序列中的商品所占的比例。
在一种可能的实现方式中,所述第二商品确定子模块具体用于:
根据所述交易数据,计算所述交易数据中包含的各商品的总销量;
根据各商品的总销量和所述交易数据中所有商品的总销量,计算各商品的销量占比,将各商品的销量占比作为各商品的抽样概率;
按照所述抽样概率对所述交易数据中除了所述第一商品外的商品进行抽样,将抽样得到的商品作为第二商品。
在一种可能的实现方式中,确定L(u,u_o)最大时对应的c,作为第一客户的特征向量,所述装置还包括:客户聚类模块,用于对交易数据中的客户的特征向量进行聚类,得到各个客户对应的客群;
客群商品词向量生成模块,用于将各个客群中包含的客户的特征向量分别与商品的词向量客户进行点乘,得到各个客群对应的商品词向量;
客群商品分类模块,用于分别对各个客群对应的商品词向量进行聚类,得到各个客群对应的商品分类方案。
在一种可能的实现方式中,所述装置还包括新商品分类模块,所述新商品分类模块具体用于:
若出现未分类的新商品,则确定所述新商品与所述商品关联图中包含的商品的关联关系和权重;
根据所述权重按照预设的第二公式计算所述商品关联图中与所述新商品有关联关系的商品的采样概率;
根据所述采样概率对与所述新商品有关联关系的商品进行预设次数的有放回采样;
根据采样结果确定所述新商品的词向量;
分别计算所述新商品的词向量与各个分类中所有商品的词向量的均值的余弦相似度;
确定对应的余弦相似度最大的分类为所述新商品所属的分类。
在一种可能的实现方式中,所述第二公式如下:
其中wi为新商品与商品i的关联权重,pi为商品i的采样概率。
在一种可能的实现方式中,根据采样结果确定所述新商品的词向量,包括:
采用平均聚合算法,计算所述采样结果中包含的所有商品的词向量的均值,将所述均值作为所述新商品的词向量。
在本申请另一实施例中,还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信;
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:
获取预设时间段内的商品交易数据;
根据所述商品交易数据生成以商品为节点,以商品之间的关联关系为边的商品关联图;
根据所述商品关联图生成各商品的词向量;
采用预设的聚类算法,对商品的词向量进行聚类,得到各个商品对应的类别。
上述电子设备提到的通信总线704可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandardArchitecture,简称EISA)总线等。该通信总线704可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口702用于上述电子设备与其他设备之间的通信。
存储器703可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器701可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable GateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请另一实施例中,还提供了一种存储介质,所述存储介质上存储有数据处理方法程序,所述数据处理方法程序被处理器执行时实现上述任一所述的商品分类方法的步骤。
本发明实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。