CN108052485B - 向量相似度的分布式计算方法和装置,存储介质和节点 - Google Patents

向量相似度的分布式计算方法和装置,存储介质和节点 Download PDF

Info

Publication number
CN108052485B
CN108052485B CN201711350997.3A CN201711350997A CN108052485B CN 108052485 B CN108052485 B CN 108052485B CN 201711350997 A CN201711350997 A CN 201711350997A CN 108052485 B CN108052485 B CN 108052485B
Authority
CN
China
Prior art keywords
vector
matrix
row
target matrix
column
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.)
Active
Application number
CN201711350997.3A
Other languages
English (en)
Other versions
CN108052485A (zh
Inventor
史书源
赵影
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Neusoft Corp
Original Assignee
Neusoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Neusoft Corp filed Critical Neusoft Corp
Priority to CN201711350997.3A priority Critical patent/CN108052485B/zh
Publication of CN108052485A publication Critical patent/CN108052485A/zh
Application granted granted Critical
Publication of CN108052485B publication Critical patent/CN108052485B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Abstract

本公开涉及一种向量相似度的分布式计算方法和装置,存储介质和节点,以解决相关技术中向量相似度计算效率低下的问题。所述方法应用于任一计算节点,包括:该计算节点接收其他计算节点分发的与该计算节点存储的元素同一行的元素,得到所述目标矩阵中所述元素所在的行向量;计算该行向量的转置向量与该行向量的乘积,得到中间矩阵;并将自身计算得到的每一中间矩阵广播到其他计算节点上;该计算节点在接收到其他计算节点发送的其他行向量对应的中间矩阵后,将接收到的所述中间矩阵与自身计算得到的每一中间矩阵相加,得到内积矩阵;根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的相似度。

Description

向量相似度的分布式计算方法和装置,存储介质和节点
技术领域
本公开涉及数据处理技术领域,具体地,涉及一种向量相似度的分布式计算方法和装置,存储介质和节点。
背景技术
相似度计算是大数据中常见问题,在聚类分群,搜索引擎,推荐算法等领域都有应用。现有技术中,海量向量数据是在多个计算节点上存储的,在节点分布式计算向量两两相似度前,各计算节点之间需要互相分发数据,每一计算节点获取到所有的向量之后,才能进行两两相似度计算。
但是,在大数据场景中动辄千万至亿级别的向量,计算向量两两之间的相似度的复杂度为O(m*n2),其中n是向量的个数,m为向量长度,各节点之间分发数据的代价巨大,导致计算时间过长。
发明内容
本公开的主要目的是提供一种向量相似度的分布式计算方法和装置,存储介质和节点,以解决相关技术中向量相似度计算效率低下的问题。
为了实现上述目的,本公开第一方面提供一种向量相似度的分布式计算方法,所述方法用于对目标矩阵中列向量的两两相似度进行计算,其中,所述目标矩阵中的元素分布在多个计算节点上,所述方法应用于任一所述计算节点,包括:
该计算节点接收其他计算节点分发的与该计算节点存储的元素同一行的元素,得到所述目标矩阵中所述元素所在的行向量;
计算该行向量的转置向量与该行向量的乘积,得到中间矩阵;并
将自身计算得到的每一中间矩阵广播到其他计算节点上;
该计算节点在接收到其他计算节点发送的其他行向量对应的中间矩阵后,将接收到的所述中间矩阵与自身计算得到的每一中间矩阵相加,得到内积矩阵,其中,所述内积矩阵中的第i行第j列元素表示所述目标矩阵中第i列向量和第j列向量的内积;
根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的相似度。
可选地,所述方法还包括:该计算节点将自身存储的元素分发到其他计算节点。
可选地,所述计算该行向量的转置向量与该行向量的乘积,得到中间矩阵,包括:
针对任一行向量a1=[k1,k2……kn],通过如下方式计算得到所述中间矩阵V1中的第i行第j列元素:
Figure BDA0001510235200000021
可选地,所述方法还包括:
获取同一类别的每一网络对象的列向量,得到向量集合;
对所述向量集合中的所有列向量进行聚类,得到多个类簇;
所述目标矩阵是任一所述类簇中的列向量组成的矩阵。
可选地,所述对所述向量集合中的所有列向量进行聚类,得到多个类簇,包括:
根据第一定义方式定义的向量距离对所述向量集合中的所有列向量进行聚类;
所述根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的相似度,包括:
根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的所述第一定义方式定义的相似度。
本公开第二方面提供一种向量相似度的分布式计算方法,所述方法应用于计算第一目标矩阵中的每一列向量与第二目标矩阵中的每一列向量的相似度,所述第一目标矩阵中的元素分布在多个计算节点上,所述第二目标矩阵中的元素分布在所述多个计算节点上,所述方法应用于任一所述计算节点,包括:
该计算节点接收其他计算节点分发的与该计算节点存储的元素相同行号的所述第一目标矩阵中的元素和所述第二目标矩阵中的元素,得到所述第一目标矩阵中与所述第二目标矩阵中所述行号的行向量对;
针对每一行向量对,计算该行向量对中属于所述第二目标矩阵的第一行向量的转置向量与该行向量对中属于所述第一目标矩阵的第二行向量的乘积,得到中间矩阵;
将自身计算得到的每一中间矩阵广播到其他计算节点上。
该计算节点在接收到其他计算节点发送的其他行向量对的中间矩阵后,将接收到的所述中间矩阵与自身计算得到的每一中间矩阵相加,得到内积矩阵,其中,所述内积矩阵中的第i行第j列元素表示所述第一目标矩阵中第j列向量和所述第二目标矩阵中的第i列向量的内积;
根据所述内积矩阵中的每一元素计算所述第一目标矩阵中的每一列向量与所述第二目标矩阵中的每一列向量的相似度。
可选地,所述方法还包括:
该计算节点将自身存储的所述第一目标矩阵中的元素以及所述第二目标矩阵中的元素分发给其他计算节点。
可选地,所述方法还包括:
获取第一类别的每一网络对象的列向量,得到第一向量集合;
获取第二类别的每一网络对象的列向量,得到第二向量集合;
分别对所述第一向量集合与所述第二向量集合进行聚类,得到所述第一类别的网络对象的多个类簇以及所述第二类别的网络对象的多个类簇;
其中,所述第一目标矩阵是所述第一类别的网络对象的任一类簇中的列向量组成的矩阵,所述第二目标矩阵是所述第二类别的网络对象的任一类簇中的列向量组成的矩阵。
可选地,所述分别对所述第一向量集合与所述第二向量集合进行聚类,得到所述第一类别的网络对象的多个类簇以及所述第二类别的网络对象的多个类簇,包括:
根据第一定义方式定义的向量距离分别对所述第一向量集合与所述第二向量集合进行聚类,得到所述第一类别的网络对象的多个类簇以及所述第二类别的网络对象的多个类簇;
所述根据所述内积矩阵中的每一元素计算所述第一目标矩阵中的每一列向量与所述第二目标矩阵中的每一列向量的相似度,包括:
根据所述内积矩阵中的每一元素计算所述第一目标矩阵中的每一列向量与所述第二目标矩阵中的每一列向量之间的所述第一定义方式的相似度。
本公开第三方面提供一种向量相似度的分布式计算装置,所述装置用于对目标矩阵中列向量的两两相似度进行计算,其中,所述目标矩阵中的元素分布在多个计算节点上,所述装置应用于任一所述计算节点,包括:
接收模块,用于接收其他计算节点分发的与该计算节点存储的元素同一行的元素,得到所述目标矩阵中所述元素所在的行向量;
第一计算模块,用于计算该行向量的转置向量与该行向量的乘积,得到中间矩阵;
广播分发模块,用于将该计算节点自身计算得到的每一中间矩阵广播到其他计算节点上;
第二计算模块,用于在该计算节点接收到其他计算节点发送的其他行向量对应的中间矩阵后,将接收到的所述中间矩阵与自身计算得到的每一中间矩阵相加,得到内积矩阵,其中,所述内积矩阵中的第i行第j列元素表示所述目标矩阵中第i列向量和第j列向量的内积;
相似度计算模块,用于根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的相似度。
本公开第四方面提供一种向量相似度的分布式计算装置,所述装置应用于计算第一目标矩阵中的每一列向量与第二目标矩阵中的每一列向量的相似度,所述第一目标矩阵中的元素分布在多个计算节点上,所述第二目标矩阵中的元素分布在所述多个计算节点上,所述装置应用于任一所述计算节点,包括:
接收模块,用于接收其他计算节点分发的与该计算节点存储的元素相同行号的所述第一目标矩阵中的元素和所述第二目标矩阵中的元素,得到所述第一目标矩阵中与所述第二目标矩阵中所述行号的行向量对;
第一计算模块,用于针对每一行向量对,计算该行向量对中属于所述第二目标矩阵的第一行向量的转置向量与该行向量对中属于所述第一目标矩阵的第二行向量的乘积,得到中间矩阵;
广播分发模块,用于将自身计算得到的每一中间矩阵广播到其他计算节点上。
第二计算模块,用于在该计算节点接收到其他计算节点发送的其他行向量对的中间矩阵后,将接收到的所述中间矩阵与自身计算得到的每一中间矩阵相加,得到内积矩阵,其中,所述内积矩阵中的第i行第j列元素表示所述第一目标矩阵中第j列向量和所述第二目标矩阵中的第i列向量的内积;
相似度计算模块,用于根据所述内积矩阵中的每一元素计算所述第一目标矩阵中的每一列向量与所述第二目标矩阵中的每一列向量的相似度。
本公开第五方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述方法的步骤。
本公开第六方面提供一种计算节点,包括:
第五方面所述的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
本公开第七方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第二方面所述方法的步骤。
本公开第八方面提供一种计算节点,包括:
第七方面所述的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
值得说明的是,计算两个向量的内积是计算两个向量间相似度的核心步骤,基于两个向量之间的内积即可进一步计算得到该两个向量之间的相似度。本公开通过上述技术方案,每一计算节点在计算向量两两之间的相似度之前,无需从其他节点获取到所有向量,可以只获取与该计算节点自身存储的元素同行号的元素,即可计算得到一中间矩阵,各节点之间通过分发中间矩阵即可计算得到所有向量两两之间的内积,从而基于两两向量之间的内积可进一步计算得到两两向量之间的相似度。这样,由于节点之间无需分发每一向量元素,减少了分发量,从而提高了计算效率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是本公开一实施例提供的一种向量相似度的分布式计算方法的流程示意图;
图2是本公开一实施例提供的一种获取目标矩阵的方法的流程示意图;
图3是本公开一实施例提供的另一种向量相似度的分布式计算方法的流程示意图;
图4是本公开一实施例提供的另一种获取目标矩阵的方法的流程示意图;
图5是本公开一实施例提供的一种向量相似度的分布式计算装置的结构示意图;
图6是本公开一实施例提供的另一种向量相似度的分布式计算装置的结构示意图;
图7是本公开一实施例提供的一种计算节点的结构示意图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
为了使本领域技术人员能够更容易理解本公开实施例提供的技术方案,下面首先对本公开实施例的一种可能的应用场景进行简单介绍。
例如,本公开实施例提供的向量相似度的分布式计算方法可以应用在个性化推荐系统中,个性化推荐系统现在已经广泛应用于各种领域,其能够找到和目标用户兴趣相似的用户集合,也就是说通过向量表达各个用户的兴趣,再通过计算向量之间的相似度,可求得与某一用户兴趣相似的用户集合。或者,个性化推荐系统能够找到与目标用户相似的网络对象集合,以便为用户推荐可能感兴趣的网络对象。例如,在网上购物的场景下,网络对象可以是指网上出售的商品,在社交的场景下,网络对象可以是指其他用户发布的状态。
下面举例说明网络对象的向量表达,例如,在新闻类推荐系统中用户对物品的行为一般包括:浏览,评论,分享,收藏,点赞。在此种情况下,用户行为向量可以表示为a=(x1,x2,x3,x4,x5),其中,行为向量中的每一个元素对应一种行为,例如,x1对应浏览,x2对应评论,x3对应分享,x4对应收藏,x5对应点赞。行为向量每一个元素的值可以表示用户是否对物品进行过该行为,例如,0表示未进行,1表示已经进行,则
Figure BDA0001510235200000081
Figure BDA0001510235200000082
表示用户v对物品t有过浏览,评论和分享的行为,
Figure BDA0001510235200000083
Figure BDA0001510235200000084
则表示用户u对物品t有过评论,分享和点赞的行为。
上述只是举例说明,在具体应用场景中,各个网络对象可以有不同的向量表达方式,本公开对此不做限定。
本公开实施例提供一种向量相似度的分布式计算方法,所述方法用于对目标矩阵中列向量的两两相似度进行计算,该目标矩阵例如可以是网络中所有用户的向量表达集合,每一列向量即为一用户的向量,又例如该目标矩阵还可以是购物网站上每一商品的向量表达集合。
值得说明的是,海量向量的存储通常采用分布式集群存储,即同一网络对象的向量的不同元素可能存储在不同计算节点上,也就是说,上述目标矩阵中的元素分布在多个计算节点上,其中,计算节点对每一元素的存储包括该元素在目标矩阵中的行号,列号以及该元素具体的数值。
具体地,本公开实施例提供的向量相似度的分布式计算方法应用于任一所述计算节点,如图1所示,包括:
S101、计算节点接收其他计算节点分发的与该计算节点存储的元素同一行的元素,得到所述目标矩阵中所述元素所在的行向量。
示例地,目标矩阵的向量个数为n,向量维度为m,则目标矩阵Am*n为:
Figure BDA0001510235200000085
基于上述Am*n,例如,列向量[a11,a21,……,am1]T中的元素分布式存储在各个计算节点上,其中,第一计算节点存储元素a11和a21,第二计算节点储存am1,则在上述步骤S101中,第一计算节点只需获取其他节点上储存的第一行的其他元素a12,a13,……,a1n,以及第二行的其他元素a22,a23,……,a2n,从而得到目标矩阵中的第一行的行向量以及第二行的行向量,同理,第二计算节点只需获取其他节点上储存的第m行的其他元素am2,am3,……,amn。
值得说明的是,各计算节点在分发元素时是将元素的值以及该元素在目标矩阵中的行列号一起分发,这样,计算节点即可根据元素的行列号确定该元素是否为自身需要的元素。
另外,在一种可能的实现方式中,该计算节点还可以将自身存储的元素分发到其他计算节点,以便其他计算节点可以获取到目标矩阵中一完整的行向量。
S102、计算该行向量的转置向量与该行向量的乘积,得到中间矩阵。
仍然以上述Am*n进行举例说明,计算节点根据自身存储的元素以及接收到的其他节点发送的元素得到目标矩阵中完整的行向量a1=[a11,a12,……,a1n]后,针对该行向量进行如下计算得到中间矩阵V1:
V1=a1T*a1=[a11,a12,……,a1n]T*[a11,a12,……,a1n]。
S103、将自身计算得到的每一中间矩阵广播到其他计算节点上。
S104、该计算节点在接收到其他计算节点发送的其他行向量对应的中间矩阵后,将接收到的所述中间矩阵与自身计算得到的每一中间矩阵相加,得到内积矩阵。
也就是说,内积矩阵V为:
V=a1T*a1+a2T*a2+……+amT*am=Am*n T*Am*n
这样,所述内积矩阵中的第i行第j列元素表示所述目标矩阵中第i列向量和第j列向量的内积。
为了避免重复计算,该计算节点可以判断其他节点发送的中间矩阵是否为自身存储的同一行向量的中间矩阵,在确定其他节点发送的中间矩阵为与自身存储的同一行向量的中间矩阵时,拒绝接收,从而避免了在对中间矩阵相加得到内积矩阵过程中,重复计算同一行向量对应的中间矩阵。
S105、根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的相似度。
值得说明的是,向量之间的相似度的定义有多种,例如余弦相似度、Jaccard相似度、皮尔逊相关系数等。其中,每一种定义的相似度计算的核心均包括对向量之间内积的计算。因此,在得到两两向量之间的内积之后,通过进一步的计算可以得到两两向量之间的需求的相似度。
相比直接计算Am*n T*Am*n,各计算节点获取到Am*n中的所有元素,采用上述方法,每一计算节点在计算向量两两之间的相似度之前,无需从其他节点获取到所有向量,可以只获取与该计算节点自身存储的元素同行号的元素,即可计算得到一中间矩阵,各节点之间通过分发中间矩阵即可计算得到所有向量两两之间的内积,从而基于两两向量之间的内积可进一步计算得到两两向量之间的相似度。这样,由于节点之间无需分发每一向量元素,减少了分发量,从而提高了计算效率。
由于内积矩阵中的第i行第j列元素表示目标矩阵中第i列向量和第j列向量的内积,又由于列向量i与列向量j之间的相似度,与列向量j与列向量i的相似度相同,因此在计算向量之间的内积时,无需重复计算,也就是说,在本公开实施例的一种可能的实现方式中,上述步骤S102计算该行向量的转置向量与该行向量的乘积,得到中间矩阵,可以包括:
针对任一行向量a1=[k1,k2……kn],通过如下方式计算得到所述中间矩阵V1中的第i行第j列元素:
Figure BDA0001510235200000111
这样,最终计算得到的内积矩阵V中,在i小于等于j的情况下,第i行第j列元素表示目标矩阵中第i列向量和第j列向量的内积,第j行第i列元素为0,为无效值。这样,采用该实现方式,由于每一计算节点在计算中间矩阵时,无需对行向量中的每一元素进行计算,进一步减少了计算量,提高了向量相似度的计算效率。
在一种可能的实现方式中,图1中所述的目标矩阵可以是通过如下方法步骤得到的,如图2所示,包括:
S201、获取同一类别的每一网络对象的列向量,得到向量集合。
例如,该类别为网络用户,则获取每一网络用户的列向量,得到所有用户列向量的集合,以计算所有用户的列向量两两之间的相似度。
S202、对所述向量集合中的所有列向量进行聚类,得到多个类簇。
值得说明的是,每一类簇中的向量之间具备相似度,不同类簇中的向量之间不考虑其相似度,例如,对于聚类后得到的多个类簇A1,A2,A3……,只需计算每一类簇内部的向量两两之间的相似度,簇间向量不进行相似度计算。另外,本公开实施例对于聚类方法不做限定,例如可以是K-means聚类方法。
S203、将任一所述类簇中的列向量组成的所述目标矩阵。
也就是说,图1中所述的目标矩阵中的列向量均为同一类簇内部的向量,这样,为了计算所有用户之间的相似度,则可以分别将每一类簇的列向量依次组成目标矩阵并执行图1所示的方法步骤,即可得到每一类簇内部的向量两两之间的相似度,簇间向量之间的相似度默认为0。这样,由于簇间向量之间的两两相似度无需额外计算,降低了复杂度,进一步减少了计算量,提高了计算效率。
在一种可能的实现方式中,步骤S202对所述向量集合中的所有列向量进行聚类,得到多个类簇,可以包括:
根据第一定义方式定义的向量距离对所述向量集合中的所有列向量进行聚类,在此种情况下,图1中的步骤S105,根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的相似度可以包括:根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的所述第一定义方式定义的相似度。
对向量进行聚类过程中,需要迭代计算向量与类簇中心点之间的向量距离,采用上述可能的实现方式是指聚类采用的距离度量方法与所需的相似度算法相对应。例如,所需相似度为余弦相似度,则聚类时采用的距离度量方法即可以是余弦距离,所需相似度为Jaccard相似度,则聚类时采用的距离度量方法即可以是Jaccard距离,使得最终计算得到的向量两两相似度更加准确,更加符合需求。
本公开实施例还提供另一种向量相似度的分布式计算方法,所述方法应用于计算第一目标矩阵中的每一列向量与第二目标矩阵中的每一列向量的相似度,例如,该第一目标矩阵可以是网络中所有用户的向量表达集合,每一列向量即为一用户的向量,该第二目标矩阵可以是购物网站上每一商品的向量表达集合,这样,通过计算每一商品向量与每一用户向量之间的相似度,可以为每一用户推荐合适的商品。
其中,该第一目标矩阵中的元素分布在多个计算节点上,该第二目标矩阵中的元素分布在所述多个计算节点上,所述方法应用于任一所述计算节点,如图3所示,包括:
S301、计算节点接收其他计算节点分发的与该计算节点存储的元素相同行号的所述第一目标矩阵中的元素和所述第二目标矩阵中的元素,得到所述第一目标矩阵中与所述第二目标矩阵中所述行号的行向量对。
其中,第一目标矩阵与第二目标矩阵中列向量的维度相同,示例地,第一目标矩阵列向量个数为n,第二目标矩阵列向量个数为m,第一目标矩阵和第二目标矩阵的列向量维度为k,则第一目标矩阵Ak*n为:
Figure BDA0001510235200000131
第二目标矩阵Bk*m为:
Figure BDA0001510235200000132
基于上述Ak*n和Bk*m,例如,第一计算节点存储的元素包括第一目标矩阵中的a11和第二目标矩阵中的b21,则在上述步骤S301中,第一计算节点只需获取其他节点上储存的第一目标矩阵的第一行除a11以外的其他元素a12,a13,……,a1n,以及第二目标矩阵中的第一行的元素b11,b12,b13,……,b1m,以及第二目标矩阵的第二行除b21以外的其他元素b22,b23,……,b2m,以及第一目标矩阵中第二行的元素a21,a22,a23,……,a2n,这样,第一计算节点即可得到第一目标矩阵和第二目标矩阵中第一行的行向量对,以及第二行的行向量对。
值得说明的是,各计算节点在分发元素时是将元素的值以及该元素在目标矩阵中的行列号一起分发,这样,计算节点即可根据元素的行列号确定该元素是否为自身需要的元素。
可选地,该计算节点还可以将自身存储的所述第一目标矩阵中的元素以及所述第二目标矩阵中的元素分发给其他计算节点,以便其他计算节点可以获取到第一目标矩阵和第二目标矩阵中同一行号的行向量对。
S302、针对每一行向量对,计算该行向量对中属于所述第二目标矩阵的第一行向量的转置向量与该行向量对中属于所述第一目标矩阵的第二行向量的乘积,得到中间矩阵。
仍以上述Ak*n和Bk*m举例说明,若该计算节点获取到的行向量对为a1=[a11,a12,……,a1n]以及b1=[b11,b12,b13,……,b1m],则针对该行向量对进行如下计算得到中间矩阵V1:
V1=b1T*a1
=[b11,b12,b13,……,b1m]T*[a11,a12,……,a1n]。
S303、将自身计算得到的每一中间矩阵广播到其他计算节点上。
S304、该计算节点在接收到其他计算节点发送的其他行向量对的中间矩阵后,将接收到的所述中间矩阵与自身计算得到的每一中间矩阵相加,得到内积矩阵。
也就是说,内积矩阵V为:
V=b1T*a1+b2T*a2+……+bkT*ak=Bk*m T*Ak*n
这样,所述内积矩阵中的第i行第j列元素表示所述第一目标矩阵中第j列向量和所述第二目标矩阵中的第i列向量的内积。
S305、根据所述内积矩阵中的每一元素计算所述第一目标矩阵中的每一列向量与所述第二目标矩阵中的每一列向量的相似度。
相比直接计算Bk*m T*Ak*n,需要将Ak*n中所有元素分发到每一计算节点上,采用上述方法,每一计算节点在计算向量两两之间的相似度之前,只需获得与自身存储的元素相同行号的第一目标矩阵中的元素以及第二目标矩阵中的元素,即可计算得到一中间矩阵,各节点之间通过分发中间矩阵即可计算得到所有向量两两之间的内积,从而基于两两向量之间的内积可进一步计算得到两两向量之间的相似度。这样,由于节点之间无需分发每一向量元素,减少了分发量,从而提高了计算效率。
在一种可能的实现方式中,图3中所述的第一目标矩阵和第二目标矩阵可以是通过如下方法步骤得到的,如图4所示,包括:
S401、获取第一类别的每一网络对象的列向量,得到第一向量集合。
S402、获取第二类别的每一网络对象的列向量,得到第二向量集合。
例如,该第一类别为网络用户,第二类别为商品,通过计算每一商品的向量与每一用户向量的相似度可以为用户推荐感兴趣的商品。
S403、分别对所述第一向量集合与所述第二向量集合进行聚类,得到所述第一类别的网络对象的多个类簇以及所述第二类别的网络对象的多个类簇。
S404、根据每一所述类簇的中心点,确定所述第一类别的网络对象的多个类簇与所述第二类别的网络对象的多个类簇中,相似度大于阈值的类簇对。
S405、将所述类簇对中所述第一类别的网络对象的类簇的列向量组成第一目标矩阵,将所述类簇对中所述第二类别的网络对象的类簇的列向量组成第二目标矩阵。
这样,为了计算每一商品与每一用户之间的相似度,则可以将每一类簇对中的两个类簇分别作为第一目标矩阵和第二目标矩阵执行图3所示的方法步骤,求得具备相似性的类簇对之间的两两向量的相似度,而不属于同一类簇对中的第一类别的网络对象与第二类别的网络对象之间的相似度无需进行计算,例如可默认为0。从而降低了复杂度,进一步减少了计算量,提高了计算效率。
在一种可能的实现方式中,步骤S403分别对所述第一向量集合与所述第二向量集合进行聚类,得到所述第一类别的网络对象的多个类簇以及所述第二类别的网络对象的多个类簇,可以包括:
根据第一定义方式定义的向量距离分别对所述第一向量集合与所述第二向量集合进行聚类,得到所述第一类别的网络对象的多个类簇以及所述第二类别的网络对象的多个类簇,在此种情况下,图3中根据所述内积矩阵中的每一元素计算所述第一目标矩阵中的每一列向量与所述第二目标矩阵中的每一列向量的相似度,可以包括:根据所述内积矩阵中的每一元素计算所述第一目标矩阵中的每一列向量与所述第二目标矩阵中的每一列向量之间的所述第一定义方式的相似度。使得最终计算得到的向量两两相似度更加准确,更加符合需求。
本公开实施例提供一种向量相似度的分布式计算装置50,所述装置50用于对目标矩阵中列向量的两两相似度进行计算,其中,所述目标矩阵中的元素分布在多个计算节点上,所述装置50应用于任一所述计算节点,如图5所示,该装置50包括:
接收模块501,用于接收其他计算节点分发的与该计算节点存储的元素同一行的元素,得到所述目标矩阵中所述元素所在的行向量;
第一计算模块502,用于计算该行向量的转置向量与该行向量的乘积,得到中间矩阵;
广播分发模块503,用于将该计算节点自身计算得到的每一中间矩阵广播到其他计算节点上;
第二计算模块504,用于在该计算节点接收到其他计算节点发送的其他行向量对应的中间矩阵后,将接收到的所述中间矩阵与自身计算得到的每一中间矩阵相加,得到内积矩阵,其中,所述内积矩阵中的第i行第j列元素表示所述目标矩阵中第i列向量和第j列向量的内积;
相似度计算模块505,用于根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的相似度。
可选地,第一计算模块502用于:
针对任一行向量a1=[k1,k2……kn],通过如下方式计算得到所述中间矩阵V1中的第i行第j列元素:
Figure BDA0001510235200000171
可选地,所述装置还可以包括:获取模块,用于获取同一类别的每一网络对象的列向量,得到向量集合;聚类模块,用于对所述向量集合中的所有列向量进行聚类,得到多个类簇。则上述目标矩阵是任一所述类簇中的列向量组成的矩阵。
可选地,所述聚类模块用于:
根据第一定义方式定义的向量距离对所述向量集合中的所有列向量进行聚类;所述相似度计算模块505用于,根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的所述第一定义方式定义的相似度。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
采用上述装置,每一计算节点在计算向量两两之间的相似度之前,无需从其他节点获取到所有向量,可以只获取与该计算节点自身存储的元素同行号的元素,即可计算得到一中间矩阵,各节点之间通过分发中间矩阵即可计算得到所有向量两两之间的内积,从而基于两两向量之间的内积可进一步计算得到两两向量之间的相似度。这样,由于节点之间无需分发每一向量元素,减少了分发量,从而提高了计算效率。
本公开实施例还提供另一种向量相似度的分布式计算装置60,所述装置60应用于计算第一目标矩阵中的每一列向量与第二目标矩阵中的每一列向量的相似度,所述第一目标矩阵中的元素分布在多个计算节点上,所述第二目标矩阵中的元素分布在所述多个计算节点上,所述装置60应用于任一所述计算节点,包括:
接收模块601,用于接收其他计算节点分发的与该计算节点存储的元素相同行号的所述第一目标矩阵中的元素和所述第二目标矩阵中的元素,得到所述第一目标矩阵中与所述第二目标矩阵中所述行号的行向量对;
第一计算模块602,用于针对每一行向量对,计算该行向量对中属于所述第二目标矩阵的第一行向量的转置向量与该行向量对中属于所述第一目标矩阵的第二行向量的乘积,得到中间矩阵;
广播分发模块603,用于将自身计算得到的每一中间矩阵广播到其他计算节点上;
第二计算模块604,用于在该计算节点接收到其他计算节点发送的其他行向量对的中间矩阵后,将接收到的所述中间矩阵与自身计算得到的每一中间矩阵相加,得到内积矩阵,其中,所述内积矩阵中的第i行第j列元素表示所述第一目标矩阵中第j列向量和所述第二目标矩阵中的第i列向量的内积;
相似度计算模块605,用于根据所述内积矩阵中的每一元素计算所述第一目标矩阵中的每一列向量与所述第二目标矩阵中的每一列向量的相似度。
可选地,所述装置60还可以包括:
获取模块,用于获取第一类别的每一网络对象的列向量,得到第一向量集合,获取第二类别的每一网络对象的列向量,得到第二向量集合;
聚类模块,用于分别对所述第一向量集合与所述第二向量集合进行聚类,得到所述第一类别的网络对象的多个类簇以及所述第二类别的网络对象的多个类簇;
类簇配对模块,用于根据每一所述类簇的中心点,确定所述第一类别的网络对象的多个类簇与所述第二类别的网络对象的多个类簇中,相似度大于阈值的类簇对;
其中,所述第一目标矩阵是所述类簇对中所述第一类别的网络对象的类簇的列向量组成的矩阵,所述第二目标矩阵是所述类簇对中所述第二类别的网络对象的类簇的列向量组成的矩阵。
可选地,所述聚类模块用于:根据第一定义方式定义的向量距离分别对所述第一向量集合与所述第二向量集合进行聚类,得到所述第一类别的网络对象的多个类簇以及所述第二类别的网络对象的多个类簇;所述相似度计算模块605用于:根据所述内积矩阵中的每一元素计算所述第一目标矩阵中的每一列向量与所述第二目标矩阵中的每一列向量之间的所述第一定义方式的相似度。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
采用上述装置,每一计算节点在计算向量两两之间的相似度之前,只需获得与自身存储的元素相同行号的第一目标矩阵中的元素以及第二目标矩阵中的元素,即可计算得到一中间矩阵,各节点之间通过分发中间矩阵即可计算得到所有向量两两之间的内积,从而基于两两向量之间的内积可进一步计算得到两两向量之间的相似度。这样,由于节点之间无需分发每一向量元素,减少了分发量,从而提高了计算效率。
本公开实施例提供一种计算机可读存储介质1,其上存储有计算机程序,该程序被处理器执行时实现图1所示的向量相似度的分布式计算方法的步骤。
本公开实施例提供一种计算节点1,包括:所述的计算机可读存储介质1,以及一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
本公开实施例提供一种计算机可读存储介质2,其上存储有计算机程序,该程序被处理器执行时实现图3所示的向量相似度的分布式计算方法的步骤。
本公开实施例提供一种计算节点2,包括:所述的计算机可读存储介质2,以及一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
图7是本公开实施例提供的一种计算节点70的框图。如图7所示,该计算节点70可以包括:处理器701,存储器702,多媒体组件703,输入/输出(I/O)接口704,以及通信组件705。
其中,处理器701用于控制该计算节点70的整体操作,以完成上述图1或图3所示的向量相似度的分布式计算方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该计算节点70的操作,这些数据例如可以包括用于在该计算节点70上操作的任何应用程序或方法的指令,以及应用程序相关的数据。
存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
多媒体组件703可以包括屏幕和音频组件,其中,屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。
I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以为键盘,按钮等。这些按钮可以为虚拟按钮或者实体按钮。
通信组件705用于该计算节点70与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,计算节点70可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述图1或图3所示的向量相似度的分布式计算方法。
本公开实施例提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器702,其上存储有一个或者多个计算机程序,上述计算机程序可由计算节点70的处理器701执行以完成图1或图3所示的向量相似度的分布式计算方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (11)

1.一种向量相似度的分布式计算方法,其特征在于,所述方法用于对目标矩阵中列向量的两两相似度进行计算,其中,所述目标矩阵中的元素分布在多个计算节点上,所述方法应用于任一所述计算节点,包括:
该计算节点接收其他计算节点分发的与该计算节点存储的元素同一行的元素,得到所述目标矩阵中所述元素所在的行向量;
计算该行向量的转置向量与该行向量的乘积,得到中间矩阵;并
将自身计算得到的每一中间矩阵广播到其他计算节点上;
该计算节点在接收到其他计算节点发送的其他行向量对应的中间矩阵后,将接收到的所述中间矩阵与自身计算得到的每一中间矩阵相加,得到内积矩阵,其中,所述内积矩阵中的第i行第j列元素表示所述目标矩阵中第i列向量和第j列向量的内积;
根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的相似度。
2.根据权利要求1所述的方法,其特征在于,所述计算该行向量的转置向量与该行向量的乘积,得到中间矩阵,包括:
针对任一行向量a1=[k1,k2……kn],通过如下方式计算得到所述中间矩阵V1中的第i行第j列元素:
Figure FDA0002938484850000011
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
获取同一类别的每一网络对象的列向量,得到向量集合;
对所述向量集合中的所有列向量进行聚类,得到多个类簇;
所述目标矩阵是任一所述类簇中的列向量组成的矩阵。
4.根据权利要求3所述的方法,其特征在于,所述对所述向量集合中的所有列向量进行聚类,得到多个类簇,包括:
根据第一定义方式定义的向量距离对所述向量集合中的所有列向量进行聚类;
所述根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的相似度,包括:
根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的所述第一定义方式定义的相似度。
5.一种向量相似度的分布式计算方法,其特征在于,所述方法应用于计算第一目标矩阵中的每一列向量与第二目标矩阵中的每一列向量的相似度,所述第一目标矩阵中的元素分布在多个计算节点上,所述第二目标矩阵中的元素分布在所述多个计算节点上,所述方法应用于任一所述计算节点,包括:
该计算节点接收其他计算节点分发的与该计算节点存储的元素具有相同行号的所述第一目标矩阵中的元素和与该计算节点存储的元素具有相同行号的所述第二目标矩阵中的元素,得到所述第一目标矩阵中与所述第二目标矩阵中所述行号的行向量对;
针对每一行向量对,计算该行向量对中属于所述第二目标矩阵的第一行向量的转置向量与该行向量对中属于所述第一目标矩阵的第二行向量的乘积,得到中间矩阵;
将自身计算得到的每一中间矩阵广播到其他计算节点上;
该计算节点在接收到其他计算节点发送的其他行向量对的中间矩阵后,将接收到的所述中间矩阵与自身计算得到的每一中间矩阵相加,得到内积矩阵,其中,所述内积矩阵中的第i行第j列元素表示所述第一目标矩阵中第j列向量和所述第二目标矩阵中的第i列向量的内积;
根据所述内积矩阵中的每一元素计算所述第一目标矩阵中的每一列向量与所述第二目标矩阵中的每一列向量的相似度。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取第一类别的每一网络对象的列向量,得到第一向量集合;
获取第二类别的每一网络对象的列向量,得到第二向量集合;
分别对所述第一向量集合与所述第二向量集合进行聚类,得到所述第一类别的网络对象的多个类簇以及所述第二类别的网络对象的多个类簇;
根据每一所述类簇的中心点,确定所述第一类别的网络对象的多个类簇与所述第二类别的网络对象的多个类簇中,相似度大于阈值的类簇对;
其中,所述第一目标矩阵是所述类簇对中所述第一类别的网络对象的类簇的列向量组成的矩阵,所述第二目标矩阵是所述类簇对中所述第二类别的网络对象的类簇的列向量组成的矩阵。
7.根据权利要求6所述的方法,其特征在于,所述分别对所述第一向量集合与所述第二向量集合进行聚类,得到所述第一类别的网络对象的多个类簇以及所述第二类别的网络对象的多个类簇,包括:
根据第一定义方式定义的向量距离分别对所述第一向量集合与所述第二向量集合进行聚类,得到所述第一类别的网络对象的多个类簇以及所述第二类别的网络对象的多个类簇;
所述根据所述内积矩阵中的每一元素计算所述第一目标矩阵中的每一列向量与所述第二目标矩阵中的每一列向量的相似度,包括:
根据所述内积矩阵中的每一元素计算所述第一目标矩阵中的每一列向量与所述第二目标矩阵中的每一列向量之间的所述第一定义方式的相似度。
8.一种向量相似度的分布式计算装置,其特征在于,所述装置用于对目标矩阵中列向量的两两相似度进行计算,其中,所述目标矩阵中的元素分布在多个计算节点上,所述装置应用于任一所述计算节点,包括:
接收模块,用于接收其他计算节点分发的与该计算节点存储的元素同一行的元素,得到所述目标矩阵中所述元素所在的行向量;
第一计算模块,用于计算该行向量的转置向量与该行向量的乘积,得到中间矩阵;
广播分发模块,用于将该计算节点自身计算得到的每一中间矩阵广播到其他计算节点上;
第二计算模块,用于在该计算节点接收到其他计算节点发送的其他行向量对应的中间矩阵后,将接收到的所述中间矩阵与自身计算得到的每一中间矩阵相加,得到内积矩阵,其中,所述内积矩阵中的第i行第j列元素表示所述目标矩阵中第i列向量和第j列向量的内积;
相似度计算模块,用于根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的相似度。
9.一种向量相似度的分布式计算装置,其特征在于,所述装置应用于计算第一目标矩阵中的每一列向量与第二目标矩阵中的每一列向量的相似度,所述第一目标矩阵中的元素分布在多个计算节点上,所述第二目标矩阵中的元素分布在所述多个计算节点上,所述装置应用于任一所述计算节点,包括:
接收模块,用于接收其他计算节点分发的与该计算节点存储的元素具有相同行号的所述第一目标矩阵中的元素和与该计算节点存储的元素具有相同行号的所述第二目标矩阵中的元素,得到所述第一目标矩阵中与所述第二目标矩阵中所述行号的行向量对;
第一计算模块,用于针对每一行向量对,计算该行向量对中属于所述第二目标矩阵的第一行向量的转置向量与该行向量对中属于所述第一目标矩阵的第二行向量的乘积,得到中间矩阵;
广播分发模块,用于将自身计算得到的每一中间矩阵广播到其他计算节点上;
第二计算模块,用于在该计算节点接收到其他计算节点发送的其他行向量对的中间矩阵后,将接收到的所述中间矩阵与自身计算得到的每一中间矩阵相加,得到内积矩阵,其中,所述内积矩阵中的第i行第j列元素表示所述第一目标矩阵中第j列向量和所述第二目标矩阵中的第i列向量的内积;
相似度计算模块,用于根据所述内积矩阵中的每一元素计算所述第一目标矩阵中的每一列向量与所述第二目标矩阵中的每一列向量的相似度。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
11.一种计算节点,其特征在于,包括:
权利要求10中所述的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
CN201711350997.3A 2017-12-15 2017-12-15 向量相似度的分布式计算方法和装置,存储介质和节点 Active CN108052485B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711350997.3A CN108052485B (zh) 2017-12-15 2017-12-15 向量相似度的分布式计算方法和装置,存储介质和节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711350997.3A CN108052485B (zh) 2017-12-15 2017-12-15 向量相似度的分布式计算方法和装置,存储介质和节点

Publications (2)

Publication Number Publication Date
CN108052485A CN108052485A (zh) 2018-05-18
CN108052485B true CN108052485B (zh) 2021-05-07

Family

ID=62133067

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711350997.3A Active CN108052485B (zh) 2017-12-15 2017-12-15 向量相似度的分布式计算方法和装置,存储介质和节点

Country Status (1)

Country Link
CN (1) CN108052485B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112446361A (zh) * 2020-12-16 2021-03-05 上海芯翌智能科技有限公司 一种训练数据的清洗方法及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605718A (zh) * 2013-11-15 2014-02-26 南京大学 一种基于hadoop的改进的物品推荐方法
CN104881395A (zh) * 2015-06-25 2015-09-02 Tcl集团股份有限公司 一种获取矩阵中向量相似度的方法和系统
CN104933143A (zh) * 2015-06-18 2015-09-23 北京京东尚科信息技术有限公司 获取推荐对象的方法及装置
CN105989154A (zh) * 2015-03-03 2016-10-05 华为技术有限公司 相似性度量的方法及设备
CN106844665A (zh) * 2017-01-20 2017-06-13 中山大学 一种基于引用关系分布式表达的论文推荐方法
CN106971005A (zh) * 2017-04-27 2017-07-21 杭州杨帆科技有限公司 一种云计算环境下基于MapReduce的分布式并行文本聚类方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9898458B2 (en) * 2015-05-08 2018-02-20 International Business Machines Corporation Generating distributed word embeddings using structured information

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605718A (zh) * 2013-11-15 2014-02-26 南京大学 一种基于hadoop的改进的物品推荐方法
CN105989154A (zh) * 2015-03-03 2016-10-05 华为技术有限公司 相似性度量的方法及设备
CN104933143A (zh) * 2015-06-18 2015-09-23 北京京东尚科信息技术有限公司 获取推荐对象的方法及装置
CN104881395A (zh) * 2015-06-25 2015-09-02 Tcl集团股份有限公司 一种获取矩阵中向量相似度的方法和系统
CN106844665A (zh) * 2017-01-20 2017-06-13 中山大学 一种基于引用关系分布式表达的论文推荐方法
CN106971005A (zh) * 2017-04-27 2017-07-21 杭州杨帆科技有限公司 一种云计算环境下基于MapReduce的分布式并行文本聚类方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Efficient string similarity join in multi-core and distributed systems;Cairong Yan;《PLoS ONE》;20170309;第12卷(第3期);1-16 *
基于Hadoop的科技项目相似度计算研究;刘红娜;《中国优秀硕士学位论文全文数据库信息科技辑》;20160315(第3期);I138-7945 *
文本相似度计算核函数的构造及其在分布式信息检索中的应用研究;王秀红;《中国博士学位论文全文数据库信息科技辑》;20130315(第3期);I138-50 *

Also Published As

Publication number Publication date
CN108052485A (zh) 2018-05-18

Similar Documents

Publication Publication Date Title
CN107657015B (zh) 一种兴趣点推荐方法、装置、电子设备及存储介质
US20180210898A1 (en) Image-based faceted system and method
CN109872242B (zh) 信息推送方法和装置
JP6508661B2 (ja) データ処理システム、計算ノードおよびデータ処理方法
US20140351564A1 (en) Simplification of large networks and graphs
US9659214B1 (en) Locally optimized feature space encoding of digital data and retrieval using such encoding
CN109214543B (zh) 数据处理方法及装置
Yu et al. Robust stability analysis of uncertain switched linear systems with unstable subsystems
CN108052485B (zh) 向量相似度的分布式计算方法和装置,存储介质和节点
CN111291217B (zh) 一种内容推荐方法、装置、电子设备以及计算机可读介质
KR20170022138A (ko) 컨텐츠 공유 서비스 제공 방법, 장치 및 컴퓨터 프로그램
CN116827774A (zh) 一种业务分析方法、装置、设备及存储介质
CN110598949A (zh) 一种用户兴趣度分析方法、装置、电子设备及存储介质
CN105989154B (zh) 相似性度量的方法及设备
Abdellaoui et al. New existence results for a coupled system of nonlinear differential equations of arbitrary order
CN107644352B (zh) 多渠道数据的处理方法、装置、存储介质和计算机设备
CN111178024A (zh) 数据表拼接方法、装置、计算机设备和存储介质
Georgiadis et al. Nonparametric estimation of the stationary distribution of a discrete-time semi-Markov process
Zhang et al. Role of subgraphs in epidemics over finite-size networks under the scaled SIS process
CN107977378B (zh) 一种分布式数据聚合方法和装置
CN114549945A (zh) 遥感影像变化检测方法及相关装置
Barreto-Souza et al. A likelihood ratio test to discriminate exponential–Poisson and gamma distributions
Barreira et al. On two notions of exponential dichotomy
Gan TAFFY: incorporating tag information into a diffusion process for personalized recommendations
CN113360745A (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