发明内容
本说明书一个或多个实施例描述了一种样本聚类方法及装置,可以提高样本聚类结果的准确度。
根据第一方面,提供了一种样本聚类方法,所述方法包括:
获取多个样本的属性特征构成的特征向量;
基于所述多个样本的特征向量,确定所述多个样本的两两样本间相似度;
基于所述多个样本的两两样本间相似度,确定所述多个样本的网络结构;其中,所述多个样本作为所述网络结构中的节点,两两节点之间的连接边信息基于该两两节点所对应的两两样本间相似度而确定;
基于所述网络结构,采用无监督嵌入处理,得到所述多个样本各自的图节点向量;
基于所述多个样本的图节点向量,对所述多个样本进行聚类。
在一个实施例中,所述样本包括用户样本,所述属性特征包括用户样本的注册信息和/或行为信息。
在一个实施例中,所述基于所述多个样本的特征向量,确定所述多个样本的两两样本间相似度,包括:
对所述多个样本的特征向量进行归一化处理;
基于归一化处理后的所述多个样本的特征向量,计算所述多个样本的两两样本间余弦相似度或欧式距离,获得所述多个样本的两两样本间相似度。
在一个实施例中,所述基于所述多个样本的两两样本间相似度,确定所述多个样本的网络结构,包括:
按照从大到小的顺序,对所述多个样本的两两样本间相似度进行排序;
在排序结果中前M个或前百分之M’的两两样本间相似度对应的样本之间构建连接边,以得到所述多个样本的网络结构;其中,所述前M个或前百分之M’的两两样本间相似度作为各自对应的连接边的权值。
在一个实施例中,所述基于所述多个样本的两两样本间相似度,确定所述多个样本的网络结构,包括:
从所述多个样本的两两样本间相似度中确定出第一两两样本间相似度,所述第一两两样本间相似度大于预设阈值;
在所述第一两两样本间相似度对应的样本之间构建连接边,以得到所述多个样本的网络结构;其中,所述第一两两样本间相似度作为对应的连接边的权值。
在一个示例中,所述基于所述网络结构,采用无监督嵌入处理,得到所述多个样本各自的图节点向量,包括:
对于所述多个样本中的第一样本,基于第一样本和其邻居样本各自的特征向量,分别确定第一样本和其邻居样本各自的初次迭代的图节点向量;
对于第一样本,执行多级向量迭代,将多级向量迭代的结果作为该第一样本的图节点向量;其中所述多级向量迭代中的每级向量迭代包括,基于第一样本的上一级迭代的图节点向量和第一样本的邻居样本的上一级迭代的图节点向量,确定第一样本的本次迭代的图节点向量。
在一个示例中,所述基于所述网络结构,采用无监督嵌入处理,得到所述多个样本各自的图节点向量,包括:
对于所述多个样本中的第一样本,基于第一样本和其邻居样本各自的特征向量,分别确定第一样本和其邻居样本各自的初次迭代的图节点向量;
对于所述第一样本,执行多级向量迭代,将多级向量迭代的结果作为该第一样本的图节点向量;其中所述多级向量迭代中的每级向量迭代包括,基于第一样本的邻居样本的上一级迭代的图节点向量,确定第一样本的本次迭代的图节点向量。
在一个实施例中,所述基于所述网络结构,采用无监督嵌入处理,得到所述多个样本各自的图节点向量,包括:
采用deepwalk图嵌入算法或GraRep图嵌入算法,进行嵌入处理,得到所述多个样本各自的图节点向量。
根据第二方面,提供了一种样本聚类装置,所述装置包括:
获取单元,配置为获取多个样本的属性特征构成的特征向量;
第一确定单元,配置为基于所述多个样本的特征向量,确定所述多个样本的两两样本间相似度;
第二确定单元,配置为基于所述多个样本的两两样本间相似度,确定所述多个样本的网络结构;其中,所述多个样本作为所述网络结构中的节点,两两节点之间的连接边信息基于该两两节点所对应的两两样本间相似度而确定;
处理单元,配置为基于所述网络结构,采用无监督嵌入处理,得到所述多个样本各自的图节点向量;
聚类单元,配置为基于所述多个样本的图节点向量,对所述多个样本进行聚类。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
根据本说明书实施例提供的方法和装置,通过本说明书实施例的方案,可以基于多个样本的图节点向量,对多个样本进行聚类;样本的图节点向量刻画了样本在整个网络中的拓扑性质,反映了样本之间的间接相似度,因此,提高了聚类结果的准确性。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
如前所述,在很多场景中,都需要对样本进行聚类,例如,对用户进行聚类,从而将用户划分到不同人群。对于用户样本而言,可以基于用户之间的通信关系、设备共用关系、转账关系等交互关系,对用户样本进行聚类。例如,可以根据样本间的有无交互关系以及交互的频次构建关系网络图。关系网络图中的节点表示样本,关系网络图中的连接边表示样本之间具有交互关系,连接边的长短表示交互的频次。然后,可以采用某种聚类算法,对关系网络图中的节点进行合并,从而实现对样本的聚类。基于这种聚类方案,可以把交互频次较高的样本聚到一个样本类簇中。例如,在这种聚类方案下,往往会将一个家庭的成员聚为一个样本类簇。而很多情况下,在某一方面,例如兴趣爱好、消费习惯等,一个家庭的各成员之间的并不必然相似。因此,基于样本之间的交互关系进行聚类,并不直接反映出样本之间的相似度。甚至在同一样本类簇中,两个样本之间的相似度很低。
而在很多应用场景中,将相似度较高的样本聚到同一样本类簇中,具有重要意义。例如,对于电商而言,将相似度较高的用户划分到同一个用户群体,进而可以为该用户群体,提供相同或相似的服务,从而可以提高用户的体验。
根据一种方案,可以基于样本的属性特征,得到样本两两间的相似度,对样本进行聚类。样本一般具有多个属性特征。以用户样本为例,属性特征可以包括注册信息和/或行为信息;其中,注册信息具体可以包括年龄、性别、教育程度、职业,行为信息可以包括购物信息、娱乐信息等,购物信息可以包括购买的商品类型、对商品的评价等,运动信息可以包括娱乐的类型、娱乐的时间等。以商品样本为例,属性特征可以包括商品的名称、类别、价格、上架时间等等。
但在很多情况下,样本的属性特征并不全面。一般的做法是,简单的利用平均值或0填充缺失的属性特征。因此,在样本的属性特征缺失比较严重的情况下,识别样本两两间的相似度的结果可能并不准确。以A、B、C三个样本为例,可以设定,每个样本应有20个属性特征,但对于A样本,只获得了其前10个属性特征;对于B样本,只获得了其后10个属性特征;对于C样本,获得了其20个属性特征。A样本和C样本的前10个属性特征很接近,因此,两者具有很高的相似度。B样本和C样本的后10个属性特征很接近,因此,两者具有很高的相似度。但A样本和B样本之间,由于信息的缺失,导致两者的相似度较低,使得在聚类时,A样本和B样本可能不被聚在一个样本类簇中。然而,实际上,A、B样本通过样本C存在一定的间接相似性,而直接基于属性特征计算相似度的方案并不能考虑到这样的间接相似性。
在本申请说明书实施例中,可以先基于两两样本间的相似度构建网络结构,基于各样本的邻居样本,得到刻画了各样本在网络结构中的拓扑性质的图节点向量。样本的图节点向量可以反映样本与其高阶邻居之间的间接相似度;基于多个样本的图节点向量,对多个样本进行聚类,提高了聚类结果的准确性。
接下来,参考图1,对本说明书实施例提供的样本聚类方法进行具体介绍。所述方法可以由任何具有计算、处理能力的装置、设备、平台、设备集群执行。如图1所示,所述方法包括如下步骤。步骤100,获取多个样本的属性特征构成的特征向量;步骤102,基于所述多个样本的特征向量,确定所述多个样本的两两样本间相似度;步骤104,基于所述多个样本的两两样本间相似度,确定所述多个样本的网络结构,其中,所述多个样本作为所述网络结构中的节点,两两节点之间的连接边信息基于该两两节点所对应的两两样本间相似度而确定;步骤106,基于所述网络结构,采用无监督嵌入处理,得到所述多个样本各自的图节点向量;步骤108,基于所述多个样本的图节点向量,对所述多个样本进行聚类。
接下来,结合具体例子,对上述步骤进行具体描述。
首先,在步骤100中,获取多个样本的属性特征构成的特征向量。
样本的属性特征是指可用于描述样本特性的信息。可以理解,样本可以有多个属性特征。在一个例子中,样本具体为用户样本,其属性特征信息可以包括注册信息和/或行为信息。注册信息是指用户在注册帐户时,填写的信息,可以包括年龄、性别、教育程度、职业等。行为信息是指用户在相应网站上发生的行为的信息,例如,购物信息、信息行为等。购物信息购买的商品类型、对商品的评价等,运动信息可以包括娱乐的类型、娱乐的时间等。
在一个例子中,样本具体为商品样本,属性特征可以包括商品的名称、类别、价格、上架时间、购买人群、评价数量、好评率等等。
可以将样本的多个属性特征映射为特征向量,以用于后续样本分析。
接着,在步骤102中,基于所述多个样本的特征向量,确定所述多个样本的两两样本间相似度。
如上所述,特征向量为将样本的属性特征进行映射得到的向量,而样本的属性特征为可用于描述样本特性的信息。容易理解,对于多个样本中的任意两个样本,可以基于这两个样本的特征向量,计算这两个样本间的相似度。
在本说明书实施例中,样本间的相似度,是指两个样本在一方面或多方面的的相似程度,例如,消费偏好的相似程度、理财投资的相似程度、兴趣爱好的相似程度等等。容易理解,为了得到两个样本在某一方面或多方面的相似度,可以选择相应的属性特征进行计算分析。
在一个实施例中,可对所述多个样本的特征向量进行归一化处理。然后,对于所述多个样本中的任意两个样本,计算两者特征向量夹角的余弦值,得到两者的余弦相似度,得到的余弦相似度用作两者间相似度。采用此种方式,可以得到所述多个样本中各个两两样本间相似度。
在一个实施例中,可对所述多个样本的特征向量进行归一化处理。然后,对于所述多个样本中的任意两个样本,基于两者的特征向量计算欧式距离,得到的欧式距离用作两者间相似度。采用此种方式,可以得到所述多个样本中各个两两样本间相似度。
其次,在步骤104中,基于所述多个样本的两两样本间相似度,确定所述多个样本的网络结构。
所述网络结构也可以称为拓扑结构,其描述了多个样本之间的关系。多个样本作为网络结构中的节点,两两节点之间的连接边信息是基于该两两节点所对应的两两样本间相似度而确定。连接边信息可以包括连接边的权值。可以设定样本与其自身的相似度为1,样本与任一个其他样本之间的相似度介于0和1之间。
在一个实施例中,可以不对所述多个样本的两两样本间相似度进行过滤,即在所述网络结构中,任意两个节点之间存在连接边。任意两个节点之间的连接边的权重基于其对应的两个样本的样本间相似度而确定。
在一个实施例中,可以在样本间相似度较高的两个样本之间构建连接边,以用于后续的聚类分析。具体的,可以对所述多个样本的两两样本间相似度进行过滤。然后,基于过滤结果,确定所述网络结构。在该实施例中,对于任意两两样本,当其相似度满足预设条件时,在其对应的两两节点之间构建连接边,并将其相似度作为构建的连接边的权重。
在该实施例的一个示例中,按照从大到小的顺序,对所述多个样本的两两样本间相似度进行排序;在排序结果中前M个的两两样本间相似度对应的样本之间构建连接边,以得到所述多个样本的网络结构;其中,所述前M个两两样本间相似度作为各自对应的连接边的权值。
M的具体值为预先设定,具体可以根据经验确定M的具体值,也可以根据试验确定出的M的具体值。对于不同的网络结构,M的取值可以不同。
在一个实施例中,按照从大到小的顺序,按照从大到小的顺序,对所述多个样本的两两样本间相似度进行排序;在排序结果中前百分之M’的两两样本间相似度对应的样本之间构建连接边,以得到所述多个样本的网络结构;其中,所述前百分之M’的两两样本间相似度作为各自对应的连接边的权值。
M’的具体值为预先设定,具体可以根据经验确定M’的具体值,也可以根据试验确定出的M’的具体值。对于不同的网络结构,M’的取值可以不同。
在一个实施例中,对于任意两个样本,可以将其样本间相似度和预设阈值比较,如果大于预设阈值,则在这两个样本间构建连接边,并将该两个样本间的样本间相似度作为构建的连接边的权值。如此,可以在各个样本间相似度大于预设阈值的两两样本间构建连接边,以确定所述网络结构。换言之,可以从所述多个样本的两两样本间相似度中确定出第一两两样本间相似度,所述第一两两样本间相似度大于预设阈值;在所述第一两两样本间相似度对应的样本之间构建连接边,以得到所述多个样本的网络结构;其中,所述第一两两样本间相似度作为对应的连接边的权值。
在该实施例中,以包括上述A、B、C三个样本的多个样本为例。假定A、C样本的样本间相似度为0.5,B、C样本的样本间相似度为0.5,以及预设阈值为0.3。容易理解,A、B样本的样本间相似度低于0.3。因此,通过该实施例的方案,可以构建如图2所示的网络结构。如图2所示,A、C样本之间具有连接边,权值为0.5;B、C样本之间具有连接边,权值为0.5;而A、B样本之间没有连接边。
然后,在步骤106中,基于所述网络结构,采用无监督嵌入处理,得到所述多个样本各自的图节点向量。
在一个实施例中,对于所述多个样本中的任一样本,例如,第一样本,可以基于第一样本的邻居样本,来确定第一样本的图节点向量。第一样本的邻居样本是指与第一样本直接相连的样本。
在该实施例的一个示例中,如前所述对所述多个样本的两两样本间相似度进行过滤以得到网络结构。如此得到的网络结构中,样本间相似度较高的两两样本之间具有连接边,而样本间相似度较低的两两样本之间没有连接边。此时,对于所述多个样本中的任一样本,例如样本i,可以先基于样本i和其邻居样本各自的特征向量,分别确定样本i和其邻居样本各自的初次迭代的图节点向量。具体的,可以将特征向量作归一化处理,然后作为初次迭代的图节点向量。也可以将特征向量作归一化处理后,乘以非线性变换函数,以得到初次迭代的图节点向量。上述非线性变换函数可以使用Relu函数,Sigmoid函数,Tanh函数等等。然后,对于样本i,执行多级向量迭代。对于所述多级向量迭代中的每级向量迭代,基于样本i的邻居样本的上一级迭代的图节点向量,确定样本i的本次迭代的图节点向量。将所述多级向量迭代中的最后一级向量迭代得到的图节点向量作为最终的图节点向量,并用于后续的分析。
需要说明的是,如果样本的属性特征很多(例如,一万多个属性特征),则可以使用主成分分析法(Principal Component Analysis,PCA)等,提取主要属性特征。然后,基于主要属性特征构成的特征向量,确定初次迭代的图节点向量。
对于样本i,其可以具有多个邻居样本。可以设定Ni为样本i的邻居样本构成的集合,样本j为Ni中的任一个元素,即样本j为样本i的一个邻居样本。
在该实施例的一个示例中,样本i的t级迭代的图节点向量
通过下式计算:
即,对样本i各个邻居样本的上一级迭代(t-1级迭代)的图节点向量
进行求和,得到样本i本次迭代(t级迭代)的图节点向量
在该实施例的一个示例中,样本i的t级迭代的图节点向量
通过下式计算:
式(2)在式(1)的基础上,在样本i各个邻居样本的上一级迭代的图节点向量
进行求和时,引入权重因子a
ij。a
ij可以为样本i和样本j之间的样本间相似度,或者,样本i和样本j之间连接边的权值。
在该实施例的另一个示例中,在执行多级向量迭代中的每级向量迭代时,基于样本i的上一级迭代的图节点向量和样本i的邻居样本的上一级迭代的图节点向量,确定样本i的本次迭代的图节点向量。将所述多级向量迭代中的最后一级向量迭代得到的图节点向量作为最终的图节点向量,并用于后续的分析。
在该实施例的又一个示例中,样本i的t级迭代的图节点向量
通过下式计算:
即,对样本i上一级迭代的图节点向量
以及样本i各个邻居样本的上一级迭代的图节点向量
进行求和,得到样本i本次迭代(t级迭代)的图节点向量
在该实施例的一个示例中,样本i的t级迭代的图节点向量
通过下式计算:
式(4)在式(3)的基础上,在本i各个邻居样本的上一级迭代的图节点向量
进行求和时,引入权重因子a
ij。a
ij介于0和1之间,具体可以为样本i和样本j之间的样本间相似度。
在该实施例中,继续参考图2,C样本为A样本的邻居样本,因此,A样本的图节点向量反映了C样本的特征向量。C样本为B样本的邻居样本,因此,B样本的图节点向量也反映了C样本的特征向量。因此,通过样本C可以建立了A样本和B样本间的间接相似度,而这种间接相似度通过A样本的图节点向量和B样本的图节点向量来反映。
在一个实施例中,可以采用deepwalk图嵌入算法或GraRep图嵌入算法,对网络结构上的各个节点进行嵌入处理,得到所述多个样本各自的图节点向量。
通过上述实施例得到的样本的图节点向量,刻画了样本在整个网络中的拓扑性质,这种拓扑性质反应了样本之间的间接相似度,例如,样本与邻居的邻居之间的相似度。
之后,在步骤108中,基于所述多个样本的图节点向量,对所述多个样本进行聚类。
可以把各个样本的图节点向量,看作各个样本的新的特征向量。利用各个样本的新的特征向量,利用聚类算法(例如,k-means)对各个样本进行聚类。
综上,本说明书实施例的方案,可以基于多个样本的图节点向量,对多个样本进行聚类;样本的图节点向量刻画了样本在整个网络中的拓扑性质,反映了样本之间的间接相似度,因此,提高了聚类结果的准确性。
仍以上述A、B、C三个样本为例,通过本说明实施例的方案,可以得到A、B、C三个样本各自的图节点向量。其中,A样本的图节点向量反映了A样本和B样本之间的间接相似度,B样本的图节点向量反映了B样本和A样本之间的间接相似度。在采用包括了A、B、C三个样本的多个样本的图节点向量进行聚类时,考虑了A样本和B样本之间的间接相似度,从而可以提高聚类结果的准确性。
根据第二方面,提供了一种样本聚类装置300。参考图3,所述装置300包括:
获取单元310,配置为获取多个样本的属性特征构成的特征向量;
第一确定单元320,配置为基于所述多个样本的特征向量,确定所述多个样本的两两样本间相似度;
第二确定单元330,配置为基于所述多个样本的两两样本间相似度,确定所述多个样本的网络结构;其中,所述多个样本作为所述网络结构中的节点,两两节点之间的连接边信息基于该两两节点所对应的两两样本间相似度而确定;
处理单元340,配置为基于所述网络结构,采用无监督嵌入处理,得到所述多个样本各自的图节点向量;
聚类单元350,配置为基于所述多个样本的图节点向量,对所述多个样本进行聚类。
在一个实施例中,所述样本包括用户样本,所述属性特征包括用户样本的注册信息和/或行为信息。
在一个实施例中,所述第一确定单元320包括归一化子单元321和计算子单元322;
所述归一化子单元321配置为对所述多个样本的特征向量进行归一化处理;
所述计算子单元322配置为基于归一化处理后的所述多个样本的特征向量,计算所述多个样本的两两样本间余弦相似度或欧式距离,获得所述多个样本的两两样本间相似度。
在一个实施例中,所述第二确定单元330包括排序子单元331和构建子单元332;
所述排序子单元331配置为按照从大到小的顺序,对所述多个样本的两两样本间相似度进行排序;
所述构建子单元332配置为在排序结果中前M个或前百分之M’的两两样本间相似度对应的样本之间构建连接边,以得到所述多个样本的网络结构;其中,所述前M个或前百分之M’的两两样本间相似度作为各自对应的连接边的权值。
在一个实施例中,所述第二确定单元330包括第三确定子单元333和构建子单元332;
所述第三确定子单元333配置为从所述多个样本的两两样本间相似度中确定出第一两两样本间相似度,所述第一两两样本间相似度大于预设阈值;
所述构建子单元332配置为在所述第一两两样本间相似度对应的样本之间构建连接边,以得到所述多个样本的网络结构;其中,所述第一两两样本间相似度作为对应的连接边的权值。
在一个示例中,所述处理单元340包括第四确定子单元341和执行子单元342;
所述第四确定子单元341配置为对于所述多个样本中的第一样本,基于第一样本和其邻居样本各自的特征向量,分别确定第一样本和其邻居样本各自的初次迭代的图节点向量;
所述执行子单元342配置为对于第一样本,执行多级向量迭代,将多级向量迭代的结果作为该第一样本的图节点向量;其中所述多级向量迭代中的每级向量迭代包括,基于第一样本的上一级迭代的图节点向量和第一样本的邻居样本的上一级迭代的图节点向量,确定第一样本的本次迭代的图节点向量。
在一个示例中,所述处理单元340包括第四确定子单元341和执行子单元342;
所述第四确定子单元341配置为对于所述多个样本中的第一样本,基于第一样本和其邻居样本各自的特征向量,分别确定第一样本和其邻居样本各自的初次迭代的图节点向量;
所述执行子单元342配置为对于所述第一样本,执行多级向量迭代,将多级向量迭代的结果作为该第一样本的图节点向量;其中所述多级向量迭代中的每级向量迭代包括,基于第一样本的邻居样本的上一级迭代的图节点向量,确定第一样本的本次迭代的图节点向量。
在一个实施例中,所述处理单元340还配置为采用deepwalk图嵌入算法或GraRep图嵌入算法,进行嵌入处理,得到所述多个样本各自的图节点向量。
装置300的各功能单元可以参考图1所示的方法实施例实现,在此不再赘述。
另一方面,本说明书的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行图1所示的方法。
另一方面,本说明书的实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现图1所示的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。