掌桥专利:专业的专利平台
掌桥专利
首页

度量集合间相似度的方法、装置、介质和电子设备

文献发布时间:2023-06-19 10:16:30


度量集合间相似度的方法、装置、介质和电子设备

技术领域

本公开涉及计算机技术,尤其是涉及一种度量集合间相似度的方法、度量集合间相似度的装置、存储介质以及电子设备。

背景技术

现有的度量集合间相似度的方式主要包括如下两种:

方式一、基于概率的度量方式。该方式需要先确定两个集合中的样本的概率分布,再基于两个集合中的样本的概率分布,确定两个集合之间的相似度。

方式二、基于空间的度量方式。该方式需要先将两个集合中的样本分别映射到空间中,然后,基于该空间确定两个集合中的典型样本,并将典型样本作为计算项,从而利用获得的计算项执行距离计算,基于计算获得的距离即可确定出两个集合之间的相似度。

基于低频交互等场景获得的样本,往往具有部分维度甚至所有维度的取值较小的特点,这样的样本所形成的概率分布的置信度往往较低,这会对两集合间的相似度的准确性产生影响。另外,在集合中的样本的维度较高时,方式一的计算量往往较高。再有,方式一无法实现对两集合之间的相似度的精度的控制。

方式二的实现复杂度(如计算量等)往往与集合中的样本数量强相关,在一些低精度应用场景中,方式二往往不能很好的适用于。再有,方式二同样无法实现对两集合之间的相似度的精度的控制。

如何在相似度精度可控的情况下,确定出两集合之间的相似度,是一个值得关注的技术问题。

发明内容

为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种度量集合间相似度的方法、度量集合间相似度的装置、存储介质以及电子设备。

根据本公开实施例的一个方面,提供了一种度量集合间相似度的方法,该方法包括:获取第一集合以及第二集合中的各样本的样本向量;将所述第一集合和所述第二集合中的所有样本作为待处理簇中的样本;根据所述样本向量的其中一维向量的取值,确定本次对所述待处理簇进行簇划分的区隔值;利用所述区隔值对所述待处理簇中的样本执行簇划分处理,获得至少一新簇;根据各新簇各自包含的各样本各自所属的集合,确定当前划分状态;若所述当前划分状态不符合预设划分停止状态,则根据所述新簇更新所述待处理簇,并返回所述根据所述样本向量的其中一维向量的取值,确定本次对所述待处理簇进行簇划分的区隔值的步骤;若所述当前划分状态符合预设划分停止状态,则根据当前已经执行的簇划分处理的次数,确定所述第一集合和第二集合的相似度。

在本公开一实施方式中,所述获取第一集合中的各样本的样本向量以及第二集合中的各样本的样本向量,包括:对所述第一集合和第二集合中的各样本的至少部分维向量,执行维度压缩处理,获得各样本的多维压缩向量;若所述样本中存在未执行压缩处理的至少一维向量,则将各样本的所述多维压缩向量分别与各样本中的未执行压缩处理的各维向量拼接,获得第一集合中的各样本的样本向量以及第二集合中的各样本的样本向量。

在本公开一实施方式中,所述获取第一集合中的各样本的样本向量以及第二集合中的各样本的样本向量,包括:对于所述第一集合和第二集合中的样本中的任一维枚举类型向量,将所述第一集合和第二集合中的各样本中的该维枚举类型向量分别转换为多维独热类型向量,并根据所述第一集合和第二集合中的各样本中的该维枚举类型向量的枚举值,设置各样本的所述多维独热类型向量的数值型取值。

在本公开一实施方式中,所述根据所述样本向量的其中一维向量的取值,确定本次对所述待处理簇进行簇划分的区隔值,包括:基于随机选择方式,从所述样本向量中选取一维向量,并确定选取出的该维向量的取值所形成的取值范围,基于随机选择方式从该取值范围中选取一个取值,并将选取出的该取值作为本次对待处理簇进行簇划分的区隔值;或者,基于随机选择方式,从所述样本向量中选取一维向量,并基于随机选择方式从该维向量的所有取值中选取一个取值,并将选取出的该取值作为本次对待处理簇进行簇划分的区隔值。

在本公开一实施方式中,所述利用所述区隔值对所述待处理簇中的样本执行簇划分处理,获得至少一新簇,包括:对于任一待处理簇中的任一样本,若该样本的相应维向量的取值和所述区隔值的大小关系满足预设大小关系,则确定该样本被划分在该待处理簇下的一个新簇中,否则,确定该样本被划分在该待处理簇下的另一个新簇中。

在本公开一实施方式中,所述根据各新簇各自包含的各样本各自所属的集合,确定当前划分状态,包括下述至少之一:在确定出各新簇中的其中一个新簇所包含的所有样本均属于同一个集合的情况下,则确定本次簇划分处理结果存在单类簇,并执行针对存在单类簇的累积计次操作,获得第一累积次数;在确定出各新簇中的其中一个新簇所包含的所有样本均属于同一个集合的情况下,则确定本次簇划分处理结果存在单类簇,并执行单类簇数量的累积计次操作,获得第二累积次数;在确定出各新簇中的其中一个新簇所包含的所有样本均属于同一个集合的情况下,则确定本次簇划分处理结果存在单类簇,并根据单类簇的数量和所述各新簇的数量的比值,获得单类簇占比;根据各新簇各自包含的所有样本各自所属的集合,确定各新簇各自的样本偏度值;其中,所述第一累积次数、第二累积次数、单类簇占比以及样本偏度值中的至少一个,用于形成所述当前划分状态。

在本公开一实施方式中,所述根据各新簇各自包含的各样本各自所属的集合,确定当前划分状态,还包括:对当前已经执行的簇划分处理进行计次操作,获得第三累积次数;其中,所述当前划分状态包括:第三累积次数。

在本公开一实施方式中,所述当前划分状态不符合预设划分停止状态,包括下述至少之一:所述第一累积次数和第一预定累积次数的大小关系,不符合第一预设大小关系,且所述第三累积次数未达到预定最大簇划分次数;所述第二累积次数和第二预定累积次数的大小关系,不符合第二预设大小关系,且所述第三累积次数未达到预定最大簇划分次数;所述单类簇占比和预定单类簇占比的大小关系不符合第三预设大小关系,且所述第三累积次数未达到预定最大簇划分次数;所述均值和预定偏度值的大小关系不符合第四预设大小关系,且所述第三累积次数未达到预定最大簇划分次数。

在本公开一实施方式中,所述根据各新簇更新所述待处理簇,包括:确定本次执行簇划分处理获得的所有新簇中的非单类簇,并将所有非单类簇分别作为待处理簇;其中,所述非单类簇为同时包含有第一集合中的样本和第二集合中的样本的新簇。

在本公开一实施方式中,所述根据当前已经执行的簇划分处理的次数,确定所述第一集合和第二集合的相似度,包括:将所述当前已经执行的簇划分处理的次数的倒数,作为所述第一集合和第二集合的相似度。

根据本公开实施例的另一个方面,提供了一种度量集合间相似度的装置,包括:获取样本向量模块,用于获取第一集合以及第二集合中的各样本的样本向量;确定待处理簇模块,用于将所述第一集合和所述第二集合中的所有样本作为待处理簇中的样本;确定区隔值模块,用于根据所述样本向量的其中一维向量的取值,确定本次对所述待处理簇进行簇划分的区隔值;簇划分处理模块,用于利用所述区隔值对所述待处理簇中的样本执行簇划分处理,获得至少一新簇;确定状态模块,用于根据各新簇各自包含的各样本各自所属的集合,确定当前划分状态;循环控制模块,用于若所述当前划分状态不符合预设划分停止状态,则根据所述新簇更新所述待处理簇,并触发所述确定区隔值模块执行根据所述样本向量的其中一维向量的取值,确定本次对所述待处理簇进行簇划分的区隔值的操作;确定相似度模块,用于若所述当前划分状态符合预设划分停止状态,则根据当前已经执行的簇划分处理的次数,确定所述第一集合和第二集合的相似度。

在本公开一实施方式中,所述获取样本向量模块,包括:第一子模块,用于对所述第一集合和第二集合中的各样本的至少部分维向量,执行维度压缩处理,获得各样本的多维压缩向量,若所述样本中存在未执行压缩处理的至少一维向量,则将各样本的所述多维压缩向量分别与各样本中的未执行压缩处理的各维向量拼接,获得第一集合中的各样本的样本向量以及第二集合中的各样本的样本向量。

在本公开一实施方式中,所述获取样本向量模块,包括:第二子模块,用于对于所述第一集合和第二集合中的样本中的任一维枚举类型向量,将所述第一集合和第二集合中的各样本中的该维枚举类型向量分别转换为多维独热类型向量,并根据所述第一集合和第二集合中的各样本中的该维枚举类型向量的枚举值,设置各样本的所述多维独热类型向量的数值型取值。

在本公开一实施方式中,所述确定区隔值模块,包括:第三子模块,用于基于随机选择方式,从所述样本向量中选取一维向量,并确定选取出的该维向量的取值所形成的取值范围,基于随机选择方式从该取值范围中选取一个取值,并将选取出的该取值作为本次对待处理簇进行簇划分的区隔值;或者,第四子模块,用于基于随机选择方式,从所述样本向量中选取一维向量,并基于随机选择方式从该维向量的所有取值中选取一个取值,并将选取出的该取值作为本次对待处理簇进行簇划分的区隔值。

在本公开一实施方式中,所述簇划分处理模块进一步用于:对于任一待处理簇中的任一样本,若该样本的相应维向量的取值和所述区隔值的大小关系满足预设大小关系,则确定该样本被划分在该待处理簇下的一个新簇中,否则,确定该样本被划分在该待处理簇下的另一个新簇中。

在本公开一实施方式中,所述确定状态模块,包括下述至少之一:第五子模块,用于在确定出各新簇中的其中一个新簇所包含的所有样本均属于同一个集合的情况下,则确定本次簇划分处理结果存在单类簇,并执行针对存在单类簇的累积计次操作,获得第一累积次数;第六子模块,用于在确定出各新簇中的其中一个新簇所包含的所有样本均属于同一个集合的情况下,则确定本次簇划分处理结果存在单类簇,并执行单类簇数量的累积计次操作,获得第二累积次数;第七子模块,用于在确定出各新簇中的其中一个新簇所包含的所有样本均属于同一个集合的情况下,则确定本次簇划分处理结果存在单类簇,并根据单类簇的数量和所述各新簇的数量的比值,获得单类簇占比;第八子模块,用于根据各新簇各自包含的所有样本各自所属的集合,确定各新簇各自的样本偏度值;其中,所述第一累积次数、第二累积次数、单类簇占比以及样本偏度值中的至少一个,用于形成所述当前划分状态。

在本公开一实施方式中,所述确定状态模块,还包括:第九子模块,用于对当前已经执行的簇划分处理进行计次操作,获得第三累积次数;其中,所述当前划分状态包括:第三累积次数。

在本公开一实施方式中,所述当前划分状态不符合预设划分停止状态,包括下述至少之一:所述第一累积次数和第一预定累积次数的大小关系,不符合第一预设大小关系,且所述第三累积次数未达到预定最大簇划分次数;所述第二累积次数和第二预定累积次数的大小关系,不符合第二预设大小关系,且所述第三累积次数未达到预定最大簇划分次数;所述单类簇占比和预定单类簇占比的大小关系不符合第三预设大小关系,且所述第三累积次数未达到预定最大簇划分次数;所述均值和预定偏度值的大小关系不符合第四预设大小关系,且所述第三累积次数未达到预定最大簇划分次数。

在本公开一实施方式中,所述循环控制模块进一步用于:确定本次执行簇划分处理获得的所有新簇中的非单类簇,并将所有非单类簇分别作为待处理簇;其中,所述非单类簇为同时包含有第一集合中的样本和第二集合中的样本的新簇。

在本公开一实施方式中,所述确定相似度模块进一步用于:将所述当前已经执行的簇划分处理的次数的倒数,作为所述第一集合和第二集合的相似度。

根据本公开实施例的再一方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述度量集合间相似度的方法。

根据本公开实施例的又一方面,提供一种电子设备,该电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述度量集合间相似度的方法。

基于本公开上述实施例提供的一种度量集合间相似度的方法和装置,由于本公开利用样本向量的其中一维向量的取值,来对第一集合和第二集合中的所有样本进行簇划分处理,如果第一集合和第二集合中的样本越相似,则簇划分处理所获得的每一新簇中所包含的来自不同集合的样本的数量越相近,而随着每一次簇划分处理所产生的新簇包含的样本的数量的逐渐减少,新簇包含来自同一集合的样本的概率越来越高,因此,本公开通过各新簇各自包含的各样本各自所属的集合形成当前划分状态,并通过设置预设划分停止状态,可以使本公开反复执行簇划分处理的次数得到控制;由于第一集合和第二集合的相似度与执行簇划分处理的次数相关,因此,本公开可以通过预设划分停止状态来控制簇划分处理的执行次数,使度量集合间相似度的精度得到控制;另外,由于簇划分处理等过程所消耗的计算资源非常有限,因此,本公开可以在实现集合间的相似度的精度可控的情况下,低成本的实现对集合间的相似度的度量。由此可知,本公开提供的技术方案有利于提高度量集合间相似度的灵活性,并有利于降低度量集合间相似度的实现成本,从而有利于提高度量集合间相似度的易用性。

下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。

附图说明

构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:

图1为本公开的度量集合间相似度的方法一个实施例的流程图;

图2A-图2C为本公开的度量集合间相似度一实施例的示意图;

图3为本公开的度量集合间相似度的装置一个实施例的结构示意图;

图4为本公开一示例性实施例提供的电子设备的结构图。

具体实施方式

下面将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。

应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。

还应理解,在本公开实施例中,“多个”可以指两个或者两个以上,“至少一个”可以指一个、两个或两个以上。

还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。

另外,本公开中术语“和/或”,仅是一种描述关联对象的关联关系,表示可以存在三种关系,如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。

还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本公开的实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或者专用计算系统环境或配置一起操作。适于与终端设备、计算机系统或者服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境等等。

终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施。在分布式云计算环境中,任务可以是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

在实现本公开的过程中,发明人发现,在一些应用场景中,需要非常准确的获得不同集合之间的相似度,而在另一些应用场景中,往往只是需要对不同集合之间的相似度进行比较即可,在该应用场景中,非常准确的获得不同集合之间的相似度似乎并无必要。

现有的度量集合间相似度的技术方案,由于无法对不同集合之间的相似度的精度进行控制,且高精度往往伴随着高计算量,因此,现有的度量集合间相似度的技术方案往往无法较好的适用于一些应用场景中。

如果能够在度量集合间的相似度的过程中,实现相似度的精度可控,则无论是针对需要非常准确的获得不同集合之间的相似度的应用场景,还是针对需要对不同集合之间的相似度进行比较的应用场景,均能够较好的适用。

本公开提供的度量集合间相似度的技术的应用场景的一个例子如下:

假设系统中存在n个用户,即用户1、用户2、……以及用户n。这n个用户的用户样本的样本向量均包括m维向量,即向量1、向量2……以及向量m。

假设上述n个用户分别属于三个不同用户集合,例如,用户1、用户2、……以及用户n1属于第一用户集合,用户n1+1、用户n1+2、……以及用户n2属于第二用户集合,用户n2+1、用户n2+2、……以及用户n属于第三用户集合。

在需要确定出第一用户集合与第二用户集合更加相似,还是第一用户集合与第三用户集合更加相似的应用场景中,本公开通过对预设划分停止状态进行设置,并基于n个用户的样本向量各自包含的m维向量,利用本公开提供的技术方案可以较为粗略的获得第一用户集合和第二用户集合之间的相似度、以及第一用户集合和第三用户集合之间的相似度,从而通过对两个相似度进行比较,可以快速的确定出第一用户集合与第二用户集合更加相似,还是第一用户集合与第三用户集合更加相似。

在需要精确获得三个不同用户集合之间的相似度的应用场景中,本公开通过对预设划分停止状态进行设置,并基于上述n个用户的样本向量各自包含的m维向量,利用本公开提供的技术方案可以获得具有相应精确度的第一用户集合和第二用户集合之间的相似度、第一用户集合和第三用户集合之间的相似度、以及第二用户集合和第三用户集合之间的相似度,从而使集合之间的相似度的精确程度尽可能的满足实际应用场景的需求。

图1为本公开的度量集合间相似度的方法一个实施例的流程图。

图1所示的实施例的方法包括步骤:S100、S101、S102、S103、S104、S105以及S106。下面对上述各步骤分别进行说明。

S100、获取第一集合以及第二集合中的各样本的样本向量。

本公开中的样本可以认为是用于从多个维度来描述目标对象的记录。这里的目标对象可以为用户或者房源或者商品等。本公开中的样本的样本向量通常包括多维向量。本公开可以通过从数据仓库等存储位置处读取信息的方式,获得第一集合中的各样本的样本向量以及第二集合中的各样本的样本向量。本公开中的第一集合和第二集合中的各样本的样本向量可以是原始样本的样本向量,也可以是对原始样本的样本向量进行预处理后获得的样本向量。

本公开中的每一个样本可以均具有相应的集合标识,以表示该样本是属于第一集合的样本,还是属于第二集合的样本。

S101、将第一集合和第二集合中的所有样本作为待处理簇中的样本。

本公开中的待处理簇也可以称为当前待划分簇。第一集合中的所有样本和第二集合中的所有样本所形成的待处理簇可以称为初始待处理簇。在后续的流程中会再次形成待处理簇,再次形成的待处理簇所包含的所有样本通常为初始待处理簇所包含的所有样本中的一部分。

S102、根据样本向量的其中一维向量的取值,确定本次对待处理簇进行簇划分的区隔值。

本公开中的样本向量中的所有维度向量通常为数值型向量。本公开可以根据预定选取规则从样本向量中选取一维向量,并根据待处理簇中的所有样本中的该选取出的向量的取值,来确定本次对待处理簇进行簇划分的区隔值。即本公开可以根据待处理簇中的所有样本中的该选取出的向量的取值,获得一个数值,并将该数值作为本次对待处理簇进行簇划分的区隔值。另外,预定选取规则可以根据实际需求设置。本公开中的样本向量的其中一维向量的取值可以是属于该维向量的所有取值所形成的取值区间中的一个数值。

本公开中的区隔值通常为一个具体的数值,且该数值用于对所有待处理簇进行簇划分,使每一个待处理簇均被划分为一个或者两个新簇。本公开中的簇划分也可以认为是对待处理簇中的所有样本进行分组,且分组的依据是区隔值的大小以及待处理簇中的所有样本中的相应维的向量的取值。

S103、利用上述区隔值对待处理簇中的样本执行簇划分处理,获得至少一新簇。

本公开中的任一个新簇通常均为相应的待处理簇的子集合。例如,一个新簇所包含的所有样本通常是相应的待处理簇中的部分样本。再例如,一个新簇所包含的所有样本可以是相应的待处理簇中的所有样本。

对于任一个待处理簇而言,本公开通过比较区隔值和该待处理簇所包含的所有样本中的相应维的向量的取值,可以将该待处理簇划分为两部分,且每一部分均为一个新簇。当然,本公开通过比较区隔值和该待处理簇所包含的所有样本中的相应维的向量的取值,也存在待处理簇中的所有样本均属于同一个新簇的情况,即该待处理簇即为本次执行簇划分处理后所获得的新簇。

本公开的簇划分处理的结果可以通过对样本进行相应的标记方式实现,例如,对于任一样本而言,在该样本属于一新簇的情况下,可以为该样本设置该新簇的簇标识。另外,本公开还可以为该样本设置其所经历的簇划分处理的次数。

S104、根据各新簇各自包含的各样本各自所属的集合,确定当前划分状态。

本公开中的当前划分状态可以是指用于表示针对第一集合和第二集合所形成的待处理簇,已经执行过的簇划分处理的情况的信息。本公开可以从至少一个指标来表示当前划分状态,在一个例子中,本公开通常会使用两个指标或者更多指标来表示当前划分状态。

对于本公开中的任一新簇而言,如果该新簇所包含的所有样本均属于第一集合或者均属于第二集合,则本公开可以认为该新簇为单类簇;如果该新簇所包含的所有样本中的一部分属于第一集合,而另一部分属于第二集合,则本公开可以认为该新簇为非单类簇。本公开可以针对新簇所包含的样本所属的集合,执行多种形式的统计,并根据统计的结果获得本次簇划分处理后的当前划分状态。本公开还可以为每一个新簇中的所有样本分别设置样本属于单类簇的标识或者样本属于非单类簇的标识。

S105、若上述确定出的当前划分状态不符合预设划分停止状态,则根据各新簇更新待处理簇,并返回步骤S102。

本公开中的预设划分停止状态可以是指用于控制是否继续执行簇划分处理的信息,且预设划分停止状态可以认为是用于控制度量集合间的相似度精度的信息。本公开可以根据实际应用场景对集合间的相似度的精度要求,设置相应的预设划分停止状态,从而使本公开最终获得的第一集合和第二集合的相似度的精度能够尽可能的满足实际应用场景对集合间的相似度的精度要求。

本公开中的当前划分状态不符合预设划分停止状态可以认为是当前划分状态不满足停止执行簇划分对当前划分状态的要求。本公开在利用各新簇更新待处理簇时,可以将所有新簇分别作为待处理簇,也可以将所有新簇中的部分新簇作为待处理簇。

S106、若上述确定出的当前划分状态符合预设划分停止状态,则根据当前已经执行的簇划分处理的次数,确定第一集合和第二集合的相似度。

本公开中的当前划分状态符合预设划分停止状态可以认为是当前划分状态满足停止执行簇划分对当前划分状态的要求。本公开可以针对当前已经执行的簇划分处理的次数执行相应的运算处理,并将运算处理的结果作为第一集合和第二集合的相似度。

由于本公开利用样本向量的其中一维向量的取值,来对第一集合和第二集合中的所有样本进行簇划分处理,如果第一集合和第二集合中的样本越相似,则簇划分处理所获得的每一个新簇中所包含的来自不同集合的样本的数量越相近,而随着每一次簇划分处理所产生的新簇包含的样本的数量的逐渐减少,新簇包含来自同一集合的样本的概率越来越高,因此,本公开通过各新簇各自包含的各样本各自所属的集合形成当前划分状态,并通过设置预设划分停止状态,可以使本公开反复执行簇划分处理的次数得到控制;由于第一集合和第二集合的相似度与执行簇划分处理的次数相关,因此,本公开可以通过预设划分停止状态来控制簇划分处理的执行次数,使度量集合间相似度的精度得到控制;另外,由于簇划分处理等过程所消耗的计算资源非常有限,因此,本公开可以在实现集合间的相似度的精度可控的情况下,低成本的实现对集合间的相似度的度量。由此可知,本公开提供的技术方案有利于提高度量集合间相似度的灵活性,并有利于降低度量集合间相似度的实现成本,从而有利于提高度量集合间相似度的易用性。

在一个可选示例中,本公开从第一集合和第二集合中获取到的所有样本可以为执行过维度压缩处理后的样本。也就是说,本公开最终从第一集合和第二中获取到的所有样本中的至少部分维度向量是维度压缩处理后获得的向量。

在一个例子中,第一集合和第二集合中的样本中的部分维度向量属于高维稀疏向量(如部分维度向量符合预先设置的高维稀疏向量条件),本公开可以对每一样本中的这部分高维稀疏向量分别执行维度压缩处理(即低维稠密向量转化处理),并将维度压缩处理后获得的低维稠密向量与相应样本中的未执行维度压缩处理的维度向量(如不符合预先设置的高维稀疏向量条件的部分维度向量)进行拼接,从而获得从第一集合中获取到的各样本的样本向量以及从第二集合中获取到的各样本的样本向量。一个更具体例子,第一集合和第二集合中的样本的样本向量均为a维向量,其中的第一维向量至第a1(a1为小于a的整数)维向量符合预先设置的高维稀疏向量条件,从而被认为是高维稀疏向量,而第a1+1维向量至第a维向量不符合预先设置的高维稀疏向量条件,从而被认为是低维稀疏向量(如表示用户行为量特征的向量等),针对任一样本,本公开可以对该样本中的第一维向量至第a1维向量执行维度压缩处理,获得a2(a2小于a1)维向量,并将该a2维向量与该样本的第a1+1维向量至第a维向量进行拼接,获得(a2+a1+1)维向量,该(a2+a1+1)维向量即可被作为本公开最终从集合中获得的一样本的样本向量。

在另一个例子中,第一集合和第二集合中的样本中的所有维度向量均属于高维稀疏向量(如所有维度向量均符合预先设置的高维稀疏向量条件),本公开可以对每一样本中的所有维度向量均执行维度压缩处理,并将维度压缩处理后获得的所有样本的低维稠密向量作为本公开最终从集合中获取到的各样本的样本向量。更具体的,第一集合和第二集合中的样本的样本向量均为a维向量,且a维向量均符合预先设置的高维稀疏向量条件,从而均被认为是高维稀疏向量,针对任一样本,本公开可以对该样本中的a维向量执行维度压缩处理,获得a3(a3小于a)维向量,该a3维向量即可被作为本公开最终从集合中获得的一样本的样本向量。

可选的,本公开可以采用神经网络等技术实现维度压缩处理。例如,本公开可以将样本的高维稀疏向量提供给一编码器,并根据该编码器的输出获得维度压缩处理结果,即低维稠密向量。再例如,本公开可以将样本的高维稀疏向量提供给一MLP(Multi-LayerPerceptron,多层感知器),并根据该MLP中的一隐层的输出获得维度压缩处理结果。本公开不限制实现维度压缩处理的具体实现方式。

可选的,本公开可以利用执行维度压缩及拼接处理后获得的样本,来更新第一集合中的样本和第二集合中的样本,即更新后的第一集合和第二集合中的样本是可以直接用于后续流程的样本。

本公开通过对样本中的至少维度的向量进行维度压缩处理,有利于避免样本中存在高维稀疏向量的现象,从而有利于避免样本中的高维稀疏向量对后续处理流程的影响,进而有利于提高度量集合间相似度的效率。

在一个可选示例中,本公开从第一集合和第二集合中获取到的各样本的部分维向量可以为类型转换后向量。在一个例子中,本公开从第一集合和第二集合中获取到的各样本的所有维度的向量均为预设类型的向量,如果第一集合和第二集合中的样本的样本向量包含有非预设类型的向量,则应将这样的向量转换为预设类型的向量。更具体的,上述非预设类型可以包括枚举类型等,上述预设类型可以包括独热类型等,且独热类型也可以认为是数值类型,在一个例子中,本公开可以将样本中的各枚举类型向量均转换为独热类型向量。

可选的,本公开中的样本的样本向量中的数值类型的向量的一个例子:一样本的样本向量至少包括:房源的居室数量、房源的价格以及房源的面积,这三维向量,其中的房源的居室数量的取值可以为1、2、3、4、5、6或7等,其中的房源的价格的取值可以为100、110、120、150、170、200、250、300或者400等(单位为万),其中的房源的面积的取值可以为56、60、75、80、92或100等(单位为平方米)。

可选的,对于第一集合和第二集合中的样本中的任一维枚举类型向量,本公开可以将第一集合和第二集合中的各样本中的该维枚举类型向量分别转换为多维独热类型向量,并根据第一集合和第二集合中的各样本中的该维枚举类型向量的枚举值,设置各样本的多维独热类型向量的数值型取值。例如,假设样本中的第i(i为大于0的整数)维向量为枚举类型向量,且第i维向量的枚举值的数量为k(k为大于1的整数),本公开可以将每一样本中的第i维向量均转换为k维独热类型向量,对于任一样本中的这k维独热类型向量而言,本公开根据该样本中的第i维向量的枚举值,将上述k维独热类型向量中的其中一维向量的取值设置为第一值(如1),而将上述k维独热类型向量中的其他维向量的取值设置为第二值(如0)。

一个具体的例子,假设一基于房源的样本的样本向量中的其中一维向量为房源环线向量,该房源环线向量为枚举类型向量,且该房源环线向量的枚举值可以包括:一环内、一环外二环内、二环外三环内、三环外四环内、四环外五环内以及五环外六环内,这六个枚举值;那么,本公开可以将该房源环线向量转换为六个维度的独热类型向量,且这六个维度的独热类型向量为:是否一环内向量、是否一环外二环内向量、是否二环外三环内向量、是否三环外四环内向量、是否四环外五环内向量以及是否五环外六环内向量;对于任一样本而言,如果该样本的房源环线向量的枚举值为一环内,则本公开在将该样本的房源环线向量替换为上述六个维度的独热向量时,可以将一环内向量的取值设置为1,并将其他五个维度独热向量的取值分别设置为0。

可选的,本公开可以先将第一集合和第二集合中的所有样本的样本向量中的所有枚举类型的向量均转换为独热类型的向量,然后,再对所有样本中的高维稀疏稀疏向量进行维度压缩处理,且本公开可以利用执行维度压缩及拼接处理后获得的样本,来更新第一集合中的样本和第二集合中的样本,即更新后的第一集合和第二集合中的样本是可以直接用于后续流程的样本。

本公开通过对样本中的枚举类型向量进行类型转换处理,有利于简化后续流程的处理过程,从而有利于提高度量集合间相似度的效率。

在一个可选示例中,本公开会执行至少一次簇划分处理,在每一次簇划分处理过程中,本公开均可以根据预先设置的一种选择方式,从样本向量中选取一维向量,并根据预先设置的另一种选择方式,基于选取出的该维向量的取值,获得一取值,并将该维向量的该取值作为本次对待处理簇进行簇划分的区隔值。

可选的,针对每一次簇划分处理,本公开均可以基于随机选择方式,从样本向量中随机选取一维向量,并利用选取出的该维向量的取值形成一取值范围,之后,可以从该取值范围中随机选取一个取值,作为本次对待处理簇进行簇划分的区隔值。一个例子,假设在一次执行簇划分处理过程中,随机选取出的一维向量为样本的样本向量中的第j维向量,且第一集合和第二集合中的所有样本的样本向量中的第j维向量的最小值为j1,最大值为j2,则第j维向量的取值形成的取值范围可以表示为(j1,j2),之后,本公开可以从(j1,j2)中随机选取一个数值,作为该次对待处理簇进行簇划分处理的区隔值。例如,随机选取出的向量为房源的居室数量,该向量的取值范围为(1,6),从该取值范围中随机选取出的区隔值为2.5。再例如,随机选取出的向量为房源的价格,该向量的取值范围为(50,200),从该取值范围中随机选取出的区隔值为150.6。

可选的,针对每一次簇划分处理,本公开均可以基于随机选择方式,从样本向量中随机选取一维向量,并基于随机选择方式,从选取出的该维向量的所有取值中选取出一个取值,作为本次对待处理簇进行簇划分的区隔值。一个例子,假设在一次执行簇划分处理过程中,随机选取出的一维向量为样本的样本向量中的第j维向量,且第一集合和第二集合中的所有样本(即z个样本)的样本向量中的第j维向量的取值分别为j1、j2、j3、……和jz,则本公开可以从上述z个取值中随机选取一个取值,作为该次对待处理簇进行簇划分处理的区隔值。例如,在一次簇划分处理中,随机选取出的向量为房源的居室数量,该向量的取值集合为{1,2,3,4,5,6},从该取值集合中随机选取出的区隔值为3。再例如,在一次簇划分处理过程中,随机选取出的向量为房源的价格,该向量的取值集合为{56,58,62,68.5,72.6,……,200},从该取值集合中随机选取出的区隔值为72.6。需要说明的是,在任一次簇划分处理的过程中,本公开通常不建议将随机选取出的一维向量的所有取值中的最大值和最小值作为区隔值。

通常情况下,第一集合中的样本和第二集合中的样本的概率分布越相似,则采用随机选取的向量以及随机选取的数值,对第一集合中的所有样本和第二集合中的所有样本进行随机簇划分,所获得的两个新簇中的所有样本属于同一个集合的可能性越小,由此可知,随着簇划分处理次数的增加,每次采用随机选取的向量以及随机选取的数值执行簇划分处理所获得的新簇中的所有样本属于同一个集合的可能性越大,从而使簇划分处理次数与第一集合和第二集合的相似度密切相关。也就是说,本公开通过在每次进行簇划分处理的过程中,采用随机方式获得用于进行簇划分的区隔值,有利于提高度量集合间相似度的准确性。

在一个可选示例中,对于任一待处理簇而言,本公开利用区隔值对该待处理簇中的样本执行簇划分处理的过程可以为:分别判断该待处理簇中的每一个样本的相应维向量的取值和本次簇划分处理的区隔值的大小关系是否满足预设大小关系,则将待处理簇中的所有满足预设大小关系(如大于预设阈值等)的样本划分在该待处理簇下的一个新簇中,将该待处理簇中的所有不满足预设大小关系(如不大于预设值等)的样本划分在该待处理簇下的另一个新簇中。

可选的,在任一簇划分处理过程中,本公开的簇划分处理结果可以包括:对于一待处理簇而言,该待处理簇被划分为两个新簇。一个例子,假设在一次簇划分处理过程中,一个待处理簇包括b(b为整数,如b为100等)个样本,即第一个样本、第二个样本、第三个样本……以及第b个样本,假设本次簇划分处理随机选取出的向量为第j维向量,假设本次簇划分处理通过随机选取方式所获得的区隔值为j3,那么,如果b个样本中的前b1(b1为小于b的整数)个样本的第j维向量的取值均小于等于j3,而b个样本中的第b1+1个样本至第b个样本的第j维向量的取值均大于j3,则b个样本中的前b1个样本属于第一个新簇,b个样本中的第b1+1个样本至第b个样本属于第二个新簇,即该待处理簇被划分为两个新簇。

可选的,在任一簇划分处理过程中,本公开的簇划分处理结果可以包括:对于一待处理簇而言,该待处理簇未被划分为两个新簇。另一个例子,假设在一次簇划分处理过程中,一个待处理簇包括b(b为整数,如b为100)个样本,即第一个样本、第二个样本、第三个样本……以及第b个样本,假设本次簇划分处理随机选取出的向量为第j维向量,假设本次簇划分处理通过随机选取方式所获得的区隔值为j3,那么,如果b个样本中的所有样本的第j维向量的取值均小于等于j3,则b个样本中的所有样本均属于同一个新簇,即该待处理簇仍然为一个簇。

本公开通过判断待处理簇中的所有样本的相应维向量的取值与区隔值的大小关系是否满足预设大小关系,可以在占用较少计算资源的情况下,快速的实现对待处理簇的簇划分处理,从而有利于提高度量集合间相似度的效率。

在一个可选示例中,本公开中的当前划分状态可以利用一个或者多个指标来表示。然而,不同指标均是基于各新簇各自包含的各样本各自所属的集合形成的。

可选的,在任一次簇划分处理过程中,本公开在利用本次的区隔值对所有待处理簇中的所有样本分别进行大小关系比对后,可以获得多个新簇,如果所有新簇中的其中一个新簇所包含的所有样本均属于同一个集合(即一个新簇所包含的所有样本均属于第一集合或者均属于第二集合,下述将这样的簇简称为非单类簇),则本公开确定本次簇划分处理结果存在单类簇,并执行针对存在单类簇的累积计次操作,获得第一累积次数。

在一个具体的例子中,假设第一累积次数的初始值为0;

第一次簇划分处理:将第一集合和第二集合中的所有样本形成待处理簇,对该待处理簇进行一次簇划分处理。在一个例子中,如果本次获得两个新簇,即第一个新簇和第二个新簇,且假设第一个新簇为非单类簇,而且假设第二个新簇也为非单类簇,则累计次数的当前值记为0。在另一个例子中,如果本次获得两个新簇,且假设第一个新簇为单类簇,而且假设第二个新簇为非单类簇,则累计次数的当前值记为1。

第二次簇划分处理:将前一次获得的所有非单类簇分别作为待处理簇,对所有待处理簇分别进行簇划分处理,在一个例子中,如果本次获得四个新簇,即第一个新簇、第二个新簇、第三个新簇和第四个新簇,且假设第一个新簇、第二个新簇、第三个新簇和第四个新簇均为非单类簇,则累计次数的当前值仍与前一次相同,不发生变化。在另一个例子中,如果本次获得四个新簇,且假设第一个新簇为单类簇,而且假设第二个新簇、第三个新簇和第四个新簇均为非单类簇,则累计次数的当前值记为2。

第一累积次数的当前值在后续簇划分处理过程中的变化情况,与第一累积次数的当前值在上述前两次簇划分处理过程中的变化情况基本类似,在此不再一一详细说明。

可选的,在任一次簇划分处理过程中,本公开在利用本次的区隔值对所有待处理簇中的所有样本分别进行大小关系比对后,可以获得多个新簇,如果所有新簇中存在单类簇,则本公开可以统计当前出现的所有单类簇的累积数量,获得第二累积次数。

在一个具体的例子中,假设第二累积次数的初始值为0;

第一次簇划分处理:将第一集合和第二集合中的所有样本形成待处理簇,对该待处理簇进行一次簇划分处理。在一个例子中,如果本次获得两个新簇,即第一个新簇和第二个新簇,且假设第一个新簇和第二个新簇均为非单类簇,则第二累积次数的当前值记为0。在另一个例子中,如果本次获得两个新簇,即第一个新簇和第二个新簇,且假设第一个新簇为单类簇,第二个新簇为非单类簇,则第二累积次数的当前值记为1。

第二次簇划分处理:将前一次获得的所有非单类簇分别作为待处理簇,对所有待处理簇分别进行簇划分处理,在一个例子中,如果本次获得四个新簇,即第一个新簇、第二个新簇、第三个新簇和第四个新簇,且假设第一个新簇、第二个新簇、第三个新簇和第四个新簇均为非单类簇,则第二累积次数的当前值仍然记为0。在另一例子中,如果本次获得四个新簇,即第一个新簇、第二个新簇、第三个新簇和第四个新簇,且假设第一个新簇为单类簇,假设第二个新簇、第三个新簇和第四个新簇均为非单类簇,则第二累积次数的当前值记为1。在再一个例子中,如果第一次簇划分处理获得的两个新簇中有一个新簇为单类簇,本次针对非单类簇进行簇划分处理获得两个新簇,即第一个新簇和第二个新簇,且假设这两个新簇中的第一个新簇为单类簇,第二个新簇为非单类簇,则第二累积次数的当前值记为2。在又一个例子中,如果第一次簇划分处理获得的两个新簇中有一个新簇为单类簇,本次针对非单类簇进行簇划分处理获得两个新簇,即第一个新簇和第二个新簇,且假设这两个新簇均为非单类簇,则单类簇占比的当前值记为1。

第二累积次数的当前值在后续簇划分处理过程中的变化情况,与第二累积次数的当前值在上述例举的前两次簇划分处理过程中的变化情况类似,在此不再一一详细说明。

可选的,在任一次簇划分处理过程中,本公开在利用本次的区隔值对所有待处理簇中的所有样本分别进行大小关系比对后,可以获得多个新簇,如果所有新簇中存在单类簇,则本公开可以统计当前单类簇的数量,并根据当前单类簇的数量和当前所有簇的数量的比值,获得单类簇占比。

在一个具体的例子中,假设单类簇占比的初始值为0;

第一次簇划分处理:将第一集合和第二集合中的所有样本形成待处理簇,对该待处理簇进行一次簇划分处理。在一个例子中,如果本次获得两个新簇,即第一个新簇和第二个新簇,且假设第一个新簇和第二个新簇均为非单类簇,则单类簇占比的当前值记为0。在另一个例子中,如果本次获得两个新簇,即第一个新簇和第二个新簇,且假设第一个新簇为单类簇,假设第二个新簇为非单类簇,则单类簇占比的当前值记为1/2。

第二次簇划分处理:将前一次获得的所有非单类簇分别作为待处理簇,对所有待处理簇分别进行簇划分处理,在一个例子中,如果本次获得四个新簇,即第一个新簇、第二个新簇、第三个新簇和第四个新簇,且假设第一个新簇、第二个新簇、第三个新簇和第四个新簇均为非单类簇,则单类簇占比的当前值仍然记为0。在另一个例子中,如果本次获得四个新簇,即第一个新簇、第二个新簇、第三个新簇和第四个新簇,且假设第一个新簇为单类簇,而且假设第二个新簇、第三个新簇和第四个新簇均为非单类簇,则单类簇占比的当前值记为1/4。在再一个例子中,如果第一次簇划分处理获得的两个新簇中有一个新簇为单类簇,本次针对非单类簇进行簇划分处理获得两个新簇,即第一个新簇和第二个新簇,且假设这两个新簇中的第一个新簇为单类簇,第二个新簇为非单类簇,则单类簇占比的当前值记为2/3。在又一个例子中,如果第一次簇划分处理获得的两个新簇中有一个新簇为单类簇,本次针对非单类簇进行簇划分处理获得两个新簇,即第一个新簇和第二个新簇,且假设这两个新簇均为非单类簇,则单类簇占比的当前值记为1/3。也就是说,之前执行的簇划分处理过程中所获得的单类簇虽然不被作为待处理簇(即不参与后续的簇划分处理),但是在本次执行簇划分处理而进行单类簇占比统计时,会被分别记入分子和分母中。

单类簇占比的当前值在后续簇划分处理过程中的变化情况,与单类簇占比的当前值在上述例举的前两次簇划分处理过程中的变化情况类似,在此不再一一详细说明。

可选的,在任一次簇划分处理过程中,本公开在利用本次的区隔值对所有待处理簇中的所有样本分别进行大小关系比对后,可以获得多个新簇,本公开可以根据各新簇各自包含的所有样本各自所属的集合,计算出各新簇各自的样本偏度值,并计算本次获得的所有的样本偏度值的均值。任一新簇的样本偏度值的最大值可以为0.5,最小值可以为无限接近零的数值。一个具体的例子,如下:

第一次簇划分处理:将第一集合和第二集合中的所有样本形成待处理簇,对该待处理簇进行一次簇划分处理。在一个例子中,如果本次获得两个新簇,即第一个新簇和第二个新簇,且假设第一个新簇和第二个新簇均为非单类簇,第一个新簇包括c11个样本,其中c111个样本属于第一集合,其中c112个样本属于第二集合,第二个新簇包括c12个样本,其中c121个样本属于第一集合,其中c122个样本属于第二集合,则第一个新簇的样本偏度值为或者(这两个计算结果是相同的),第二个新簇的样本偏度值为或者(同样的,这两个计算结果是相同的),本次簇划分处理获得的所有簇的样本偏度值的均值为。在另一个例子中,如果本次获得两个新簇,即第一个新簇和第二个新簇,且假设第一个新簇为单类簇,假设第二个新簇为非单类簇,第一个新簇包括c11个样本,第二个新簇包括c12个样本,其中c121个样本属于第一集合,其中c122个样本属于第二集合,则第一个新簇的样本偏度值为,第二个新簇的样本偏度值为或者,本次簇划分处理获得的所有簇的样本偏度值的均值为。

第二次簇划分处理:将前一次获得的所有非单类簇分别作为待处理簇,对所有待处理簇分别进行簇划分处理;

在一例子中,如果第二次簇划分处理获得四个新簇,即第一个新簇、第二个新簇、第三个新簇和第四个新簇,假设第一个新簇、第二个新簇、第三个新簇和第四个新簇均为非单类簇,第一个新簇包括c21个样本,其中c211个样本属于第一集合,其中c212个样本属于第二集合,第二个新簇包括c22个样本,其中c221个样本属于第一集合,其中c222个样本属于第二集合,第三个新簇包括c23个样本,其中c231个样本属于第一集合,其中c232个样本属于第二集合,第四个新簇包括c24个样本,其中c241个样本属于第一集合,其中c242个样本属于第二集合;则第一个新簇的样本偏度值为或者(这两个计算结果是相同的),第二个新簇的样本偏度值为或者(这两个计算结果是相同的),第三个新簇的样本偏度值为或者(这两个计算结果是相同的),第四个新簇的样本偏度值为或者(这两个计算结果是相同的),本次获得的所有的样本偏度值的均值为上述四个新簇的样本偏度值的均值。

在另一例子中,如果第二次簇划分处理获得四个新簇,即第一个新簇、第二个新簇、第三个新簇和第四个新簇,假设第一个新簇为单类簇,且假设第二个新簇、第三个新簇和第四个新簇均为非单类簇,第一个新簇包括c21个样本,其中c21个样本均属于第一集合或均属于第二集合,第二个新簇包括c22个样本,其中c221个样本属于第一集合,其中c222个样本属于第二集合,第三个新簇包括c23个样本,其中c231个样本属于第一集合,其中c232个样本属于第二集合,第四个新簇包括c24个样本,其中c241个样本属于第一集合,其中c242个样本属于第二集合;则第一个新簇的样本偏度值为,第二个新簇的样本偏度值为或者(这两个计算结果是相同的),第三个新簇的样本偏度值为或者(这两个计算结果是相同的),第四个新簇的样本偏度值为或者(这两个计算结果是相同的),本次获得的所有的样本偏度值的均值为上述四个新簇的样本偏度值的均值。

在再一例子中,如果第一次簇划分处理获得的两个新簇中有一个新簇为单类簇,且第二次针对该非单类簇执行簇划分处理同样获得两个新簇,即第一个新簇和第二个新簇,假设这两个新簇中的第一个新簇为单类簇,第二个新簇为非单类簇,第一个新簇包括c21个样本,其中c21个样本均属于第一集合或均属于第二集合,第二个新簇包括c22个样本,其中c221个样本属于第一集合,其中c222个样本属于第二集合;则第一个新簇的样本偏度值为,第二个新簇的样本偏度值为或者,本次获得的所有的样本偏度值的均值为上述两个新簇的样本偏度值的均值。

在又一例子中,如果第一次簇划分处理获得的两个新簇中有一个新簇为单类簇,且第二次针对该非单类簇执行簇划分处理同样获得两个新簇,即第一个新簇和第二个新簇,假设这两个新簇均为非单类簇,第一个新簇包括c21个样本,其中c211个样本属于第一集合,其中c212个样本属于第二集合,第二个新簇包括c22个样本,其中c221个样本属于第一集合,其中c222个样本属于第二集合;则第一个新簇的样本偏度值为或者,第二个新簇的样本偏度值为或者,本次获得的所有的样本偏度值的均值为上述两个新簇的样本偏度值的均值。

每次簇划分处理获得所有的样本偏度值的均值的过程,与前两次簇划分处理获得所有的样本偏度值的均值的过程类似,在此不再一一详细说明。

可选的,本公开可以将上述第一累积次数、第二累积次数、单类簇占比以及样本偏度值的均值中的至少一个,作为当前划分状态。即本公开中的当前划分状态包括:第一累积次数、第二累积次数、单类簇占比以及样本偏度值的均值中的至少一个。

可选的,本公开在每次执行了簇划分处理后,还可以对当前已经执行的簇划分处理进行计次操作,从而获得第三累积次数。本公开可以将第三累积次数作为当前划分状态的一部分。即在本公开的当前划分状态包括:第一累积次数、第二累积次数、单类簇占比以及样本偏度值的均值中的至少一个的基础上,当前划分状态还可以包括:第三累积次数。

在一个可选示例中,由于上述四个指标均可以被单独作为当前划分状态,也可以将四个指标中的任一指标与第三累积次数一起作为当前划分状态,还可以将四个指标中的任意两个或者任意三个作为当前划分状态,还可以将四个指标中的任意两个或者任意三个与第三累积次数一起作为当前划分状态,还可以将上述四个一起作为当前划分状态,还可以将上述四个指标与第三累积次数一起作为当前划分状态,因此,本公开可以通过多种方式判断当前划分状态是否符合预设划分停止状态。下面仅举几个具体的例子进行说明:

第一个例子,本公开可以在第一累积次数和第一预定累积次数(如1或者大于1的整数)的大小关系不符合第一预设大小关系(如第一累积次数未达到第一预定累积次数)的情况下,确定当前划分状态不符合预设划分停止状态,此时需要继续执行下一次的簇划分处理;在第一累积次数和第一预定累积次数的大小关系符合第一预设大小关系(如第一累积次数达到第一预定累积次数)的情况下,确定当前划分状态符合预设划分停止状态,此时可以不再继续执行下一次的簇划分处理。

第二个例子,本公开可以在第一累积次数和第一预定累积次数(如1或者大于1的整数)的大小关系不符合第一预设大小关系(如第一累积次数未达到第一预定累积次数),且第三累积次数未达到最大簇划分次数的情况下,确定当前划分状态不符合预设划分停止状态,此时需要继续执行下一次的簇划分处理;在第一累积次数和第一预定累积次数的大小关系符合第一预设大小关系(如第一累积次数达到第一预定累积次数)或者第三累积次数达到最大簇划分次数的情况下,确定当前划分状态符合预设划分停止状态,此时可以不再继续执行下一次的簇划分处理。

第三个例子,本公开可以在第二累积次数和第二预定累积次数(如1或者大于1的整数)的大小关系不符合第二预设大小关系(如第二累积次数未达到第二预定累积次数)的情况下,确定当前划分状态不符合预设划分停止状态,此时需要继续执行下一次的簇划分处理;在第二累积次数和第二预定累积次数的大小关系符合第二预设大小关系(如第二累积次数达到第二预定累积次数)的情况下,确定当前划分状态符合预设划分停止状态,此时可以不再继续执行下一次的簇划分处理。

第四个例子,本公开可以在第二累积次数和第二预定累积次数(如1或者大于1的整数)的大小关系不符合第二预设大小关系(如第二累积次数未达到第二预定累积次数),且第三累积次数未达到最大簇划分次数的情况下,确定当前划分状态不符合预设划分停止状态,此时需要继续执行下一次的簇划分处理;在第二累积次数和第二预定累积次数的大小关系符合第二预设大小关系(如第二累积次数达到第二预定累积次数)或者第三累积次数达到最大簇划分次数的情况下,确定当前划分状态符合预设划分停止状态,此时可以不再继续执行下一次的簇划分处理。

第五个例子,本公开可以在单类簇占比和预定单类簇占比的大小关系不符合第三预设大小关系(如单类簇占比未达到预定单类簇占比)的情况下,确定当前划分状态不符合预设划分停止状态,此时需要继续执行下一次的簇划分处理;在单类簇占比和预定单类簇占比的大小关系符合第三预设大小关系(如单类簇占比达到预定单类簇占比)的情况下,确定当前划分状态符合预设划分停止状态,此时可以不再继续执行下一次的簇划分处理。

第六个例子,本公开可以在单类簇占比和预定单类簇占比的大小关系不符合第三预设大小关系(如单类簇占比未达到预定单类簇占比)且第三累积次数未达到最大簇划分次数的情况下,确定当前划分状态不符合预设划分停止状态,此时需要继续执行下一次的簇划分处理;在单类簇占比和预定单类簇占比的大小关系符合第三预设大小关系(如单类簇占比达到预定单类簇占比)或者第三累积次数达到最大簇划分次数的情况下,确定当前划分状态符合预设划分停止状态,此时可以不再继续执行下一次的簇划分处理。

第七个例子,本公开可以在样本偏度值的均值和预定偏度值的大小关系不符合第四预设大小关系(如样本偏度值的均值未达到预定偏度值)的情况下,确定当前划分状态不符合预设划分停止状态,此时需要继续执行下一次的簇划分处理。在样本偏度值的均值和预定偏度值的大小关系符合第四预设大小关系(如样本偏度值的均值达到预定偏度值)的情况下,确定当前划分状态符合预设划分停止状态,此时可以不再继续执行下一次的簇划分处理。

第八个例子,本公开可以在样本偏度值的均值和预定偏度值的大小关系不符合第四预设大小关系(如样本偏度值的均值未达到预定偏度值)且第三累积次数未达到最大簇划分次数的情况下,确定当前划分状态不符合预设划分停止状态,此时需要继续执行下一次的簇划分处理。在样本偏度值的均值和预定偏度值的大小关系符合第四预设大小关系(如样本偏度值的均值达到预定偏度值)或者第三累积次数达到最大簇划分次数的情况下,确定当前划分状态符合预设划分停止状态,此时可以不再继续执行下一次的簇划分处理。

本公开不仅可以根据实际需求选取相应的指标,灵活的控制度量集合间相似度的精度,还可以通过最大簇划分次数,控制度量集合间相似度的处理速度,从而本公开有利于提高度量集合间相似度的技术的可适用性。

在一个可选示例中,本公开中的每一个待处理簇均为非单类簇,因此,在一次簇划分处理后,在根据本次簇划分处理获得的新簇来更新待处理簇时,应避免新簇中的单类簇被作为待处理簇,也就是说,本公开应确定本次执行簇划分处理所获得的所有新簇中的非单类簇,并将所有非单类簇分别作为待处理簇。

由于单类簇可以表示出一个簇中的所有样本具有一定的相似性,因此,本公开通过针对非单类簇进行簇划分处理,可以避免对具有相似性的样本再次进行簇划分处理的过程,有利于快速的度量出集合间的相似度。

在一个可选示例中,在确定出当前划分状态符合预设划分停止状态时,本公开可以对当前已经执行的簇划分处理的次数进行相应的运算,并将运算结果作为第一集合和第二集合的相似度,例如,本公开可以将当前已经执行的簇划分处理的次数的倒数,作为第一集合和第二集合的相似度。

由于当前已经执行的簇划分处理的次数越多,表示越难出现单类簇,从而表示待处理簇中的所有的样本比较近似,因此,本公开通过将当前已经执行的簇划分处理的次数的倒数作为第一集合和第二集合的相似度,有利于便捷且准确的度量集合间的相似度。

一个例子如图2A至图2C所示,在图2A至图2C中,每一个白色的圆圈表示第一集合中的一个样本,每一个灰色的圆圈表示第二集合中的一个样本。

从样本的分布来看,图2A中第一集合中的样本和第二集合中的样本相似度较低,很可能通过一次簇划分处理即可获得单类簇,如图2A中的直线200表示一区隔值,该区隔值将所有样本划分为两部分,即两个新簇,直线200右侧的样本属于一个新簇,直线200左侧的样本属于另一个新簇,且直线200右侧的所有样本均为属于第二集合的样本,而直线200左侧的所有样本包括第一集合中的样本和第二集合中的样本。如果出现一次单类簇即停止后续的簇划分处理,则本公开可以在执行一次簇划分处理后,即可快速的获得第一集合和第二集合间的相似度,如相似度为1。两集合间的相似度的最大值可以为1,且相似度数值越小表示越相似,即相似度数值越小表示相似度越高。

从样本的分布来看,图2B中第一集合中的样本和第二集合中的样本相似度高于图2A中的相似度,很可能需要通过两次簇划分处理才会出现单类簇,如图2B中的直线201和直线202分别表示一区隔值,直线201表示的区隔值将所有样本划分为两部分,即两个新簇,直线201右侧的样本属于一个新簇,直线201左侧的样本属于另一个新簇,且直线201左侧和右侧的所有样本均包括第一集合中的样本和第二集合中的样本。直线202表示的区隔值将直线201左侧的所有样本划分为两部分,即两个新簇,直线202左侧的样本属于一个新簇,直线202的右侧到直线201的左侧的所有样本属于另一个新簇,由于执行202左侧的所有样本均为属于第二集合的样本,如果出现一次单类簇即停止后续的簇划分处理,则本公开可以在执行两次簇划分处理后,即可快速的获得第一集合和第二集合间的相似度,如相似度为0.5。

从样本的分布来看,图2C中第一集合中的样本和第二集合中的样本相似度高于图2B中的相似度,很可能需要通过五次簇划分处理才会出现单类簇,如果出现一次单类簇即停止后续的簇划分处理,则本公开可以在执行五次簇划分处理后,获得第一集合和第二集合间的相似度,如相似度为0.2。

图3为本公开的度量集合间相似度的装置一个实施例的结构示意图。该实施例的装置可用于优化本公开上述各方法实施例。如图3所示,本实施例的装置包括:获取样本向量模块300、确定待处理簇模块301、确定区隔值模块302、簇划分处理模块303、确定状态模块304、循环控制模块305以及确定相似度模块306。

获取样本向量模块300用于获取第一集合中的各样本的样本向量以及第二集合中的各样本的样本向量。

确定待处理簇模块301用于将获取样本向量模块300获取到的第一集合和第二集合中的所有样本作为待处理簇中的样本。

确定区隔值模块302用于根据样本向量的其中一维向量的取值,确定本次对待处理簇进行簇划分的区隔值。

簇划分处理模块303用于利用确定区隔值模块302获得的区隔值对确定待处理簇模块301获得的待处理簇中的样本执行簇划分处理,获得至少一新簇。

确定状态模块304用于根据簇划分处理模块303获得的各新簇各自包含的各样本各自所属的集合,确定当前划分状态。

循环控制模块305用于若确定状态模块304获得的当前划分状态不符合预设划分停止状态,则根据簇划分处理模块303获得的新簇更新待处理簇,并触发确定区隔值模块302执行根据样本向量的其中一维向量的取值,确定本次对待处理簇进行簇划分的区隔值的操作。

确定相似度模块306用于若确定状态模块304获得的当前划分状态符合预设划分停止状态,则根据当前已经执行的簇划分处理的次数,确定第一集合和第二集合的相似度。

可选的,获取样本向量模块300可以包括:第一子模块3001和第二子模块3002中的至少一个。其中的第一子模块3001用于对第一集合和第二集合中的各样本的至少部分维向量,执行维度压缩处理,获得各样本的多维压缩向量,若样本中存在未执行压缩处理的至少一维向量,则第一子模块3001将各样本的所述多维压缩向量分别与各样本中的未执行压缩处理的各维向量拼接,获得第一集合中的各样本的样本向量以及第二集合中的各样本的样本向量。其中的第二子模块3002用于:对于第一集合和第二集合中的样本中的任一维枚举类型向量,将第一集合和第二集合中的各样本中的该维枚举类型向量分别转换为多维独热类型向量,并根据第一集合和第二集合中的各样本中的该维枚举类型向量的枚举值,设置各样本的多维独热类型向量的数值型取值。在获取样本向量模块300同时包括第一子模块3001和第二子模块3002的情况下,可以先由第二子模块3002对各样本中的相应维度的向量进行类型转换处理,然后,再由第一子模块3001执行维度压缩处理。

可选的,确定区隔值模块302可以包括:第三子模块3021或者第四子模块3022。其中的第三子模块3021用于基于随机选择方式,从样本向量中选取一维向量,并确定选取出的该维向量的取值所形成的取值范围,基于随机选择方式从该取值范围中选取一个取值,并将选取出的该取值作为本次对待处理簇进行簇划分的区隔值。其中的第四子模块3022用于基于随机选择方式,从样本向量中选取一维向量,并基于随机选择方式从该维向量的所有取值中选取一个取值,并将选取出的该取值作为本次对待处理簇进行簇划分的区隔值。

可选的,簇划分处理模块303可以进一步用于,对于任一待处理簇中的任一样本,若该样本的相应维向量的取值和区隔值的大小关系满足预设大小关系,则确定该样本被划分在该待处理簇下的一个新簇中,否则,确定该样本被划分在该待处理簇下的另一个新簇中。

可选的,确定状态模块304包括:第五子模块3041、第六子模块3042、第七子模块3043以及第八子模块3044中的至少一个。

第五子模块3041用于在确定出各新簇中的其中一个新簇所包含的所有样本均属于同一个集合的情况下,则确定本次簇划分处理结果存在单类簇,并执行针对存在单类簇的累积计次操作,获得第一累积次数。

第六子模块3042用于在确定出各新簇中的其中一个新簇所包含的所有样本均属于同一个集合的情况下,则确定本次簇划分处理结果存在单类簇,并执行单类簇数量的累积计次操作,获得第二累积次数。

第七子模块3043用于在确定出各新簇中的其中一个新簇所包含的所有样本均属于同一个集合的情况下,则确定本次簇划分处理结果存在单类簇,并根据单类簇的数量和各新簇的数量的比值,获得单类簇占比。

第八子模块3044用于根据各新簇各自包含的所有样本各自所属的集合,确定各新簇各自的样本偏度值。

其中的第一累积次数、第二累积次数、单类簇占比以及样本偏度值中的至少一个,用于形成当前划分状态。

可选的,确定状态模块304还可以包括:第九子模块3045,用于对当前已经执行的簇划分处理进行计次操作,获得第三累积次数,且当前划分状态包括:第三累积次数。

可选的,本公开中的当前划分状态不符合预设划分停止状态,包括下述至少之一:第一累积次数和第一预定累积次数的大小关系,不符合第一预设大小关系,且第三累积次数未达到预定最大簇划分次数;第二累积次数和第二预定累积次数的大小关系,不符合第二预设大小关系,且第三累积次数未达到预定最大簇划分次数;单类簇占比和预定单类簇占比的大小关系不符合第三预设大小关系,且第三累积次数未达到预定最大簇划分次数;均值和预定偏度值的大小关系不符合第四预设大小关系,且第三累积次数未达到预定最大簇划分次数。

可选的,循环控制模块305在更新待处理簇时,可以确定本次执行簇划分处理获得的所有新簇中的非单类簇,并将所有非单类簇分别作为待处理簇。其中的非单类簇为同时包含有第一集合中的样本和第二集合中的样本的新簇。

可选的,确定相似度模块306可以进一步用于:将当前已经执行的簇划分处理的次数的倒数,作为第一集合和第二集合的相似度。

上述各模块及其包括的子模块和单元具体执行的操作可以参见上述方法实施例中针对图1-图2的描述,在此不再详细说明。

下面参考图4来描述根据本公开实施例的电子设备。图4示出了根据本公开实施例的电子设备的框图。如图4所示,电子设备41包括一个或多个处理器411和存储器412。

处理器411可以是中央处理单元(CPU)或者具有度量集合间相似度的能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备41中的其他组件以执行期望的功能。

存储器412可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器,例如,可以包括:随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器,例如,可以包括:只读存储器(ROM)、硬盘以及闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器411可以运行所述程序指令,以实现上文所述的本公开的各个实施例的度量集合间相似度的方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。

在一个示例中,电子设备41还可以包括:输入装置413以及输出装置414等,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。此外,该输入设备413还可以包括例如键盘、鼠标等等。该输出装置414可以向外部输出各种信息。该输出设备414可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。

当然,为了简化,图4中仅示出了该电子设备41中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备41还可以包括任何其他适当的组件。

除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的度量集合间相似度的方法中的步骤。

所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的度量集合间相似度的方法中的步骤。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列举)可以包括:具有一个或者多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势以及效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备以及系统。诸如“包括”、“包含、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。

可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于优化根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。

还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。

提供所公开的方面的以上描述,以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改等对于本领域技术人员而言,是非常显而易见的,并且在此定义的一般原理可以应用于其他方面,而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。

为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式中。尽管以上已经讨论了多个示例方面以及实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

相关技术
  • 度量集合间相似度的方法、装置、介质和电子设备
  • 文本间相似度计算方法、装置、存储介质及电子设备
技术分类

06120112480113