[发明专利]向量相似度的分布式计算方法和装置,存储介质和节点有效
申请号: | 201711350997.3 | 申请日: | 2017-12-15 |
公开(公告)号: | CN108052485B | 公开(公告)日: | 2021-05-07 |
发明(设计)人: | 史书源;赵影 | 申请(专利权)人: | 东软集团股份有限公司 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 北京英创嘉友知识产权代理事务所(普通合伙) 11447 | 代理人: | 魏嘉熹;南毅宁 |
地址: | 110179 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 向量 相似 分布式 计算方法 装置 存储 介质 节点 | ||
本公开涉及一种向量相似度的分布式计算方法和装置,存储介质和节点,以解决相关技术中向量相似度计算效率低下的问题。所述方法应用于任一计算节点,包括:该计算节点接收其他计算节点分发的与该计算节点存储的元素同一行的元素,得到所述目标矩阵中所述元素所在的行向量;计算该行向量的转置向量与该行向量的乘积,得到中间矩阵;并将自身计算得到的每一中间矩阵广播到其他计算节点上;该计算节点在接收到其他计算节点发送的其他行向量对应的中间矩阵后,将接收到的所述中间矩阵与自身计算得到的每一中间矩阵相加,得到内积矩阵;根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的相似度。
技术领域
本公开涉及数据处理技术领域,具体地,涉及一种向量相似度的分布式计算方法和装置,存储介质和节点。
背景技术
相似度计算是大数据中常见问题,在聚类分群,搜索引擎,推荐算法等领域都有应用。现有技术中,海量向量数据是在多个计算节点上存储的,在节点分布式计算向量两两相似度前,各计算节点之间需要互相分发数据,每一计算节点获取到所有的向量之后,才能进行两两相似度计算。
但是,在大数据场景中动辄千万至亿级别的向量,计算向量两两之间的相似度的复杂度为O(m*n2),其中n是向量的个数,m为向量长度,各节点之间分发数据的代价巨大,导致计算时间过长。
发明内容
本公开的主要目的是提供一种向量相似度的分布式计算方法和装置,存储介质和节点,以解决相关技术中向量相似度计算效率低下的问题。
为了实现上述目的,本公开第一方面提供一种向量相似度的分布式计算方法,所述方法用于对目标矩阵中列向量的两两相似度进行计算,其中,所述目标矩阵中的元素分布在多个计算节点上,所述方法应用于任一所述计算节点,包括:
该计算节点接收其他计算节点分发的与该计算节点存储的元素同一行的元素,得到所述目标矩阵中所述元素所在的行向量;
计算该行向量的转置向量与该行向量的乘积,得到中间矩阵;并
将自身计算得到的每一中间矩阵广播到其他计算节点上;
该计算节点在接收到其他计算节点发送的其他行向量对应的中间矩阵后,将接收到的所述中间矩阵与自身计算得到的每一中间矩阵相加,得到内积矩阵,其中,所述内积矩阵中的第i行第j列元素表示所述目标矩阵中第i列向量和第j列向量的内积;
根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的相似度。
可选地,所述方法还包括:该计算节点将自身存储的元素分发到其他计算节点。
可选地,所述计算该行向量的转置向量与该行向量的乘积,得到中间矩阵,包括:
针对任一行向量a1=[k1,k2……kn],通过如下方式计算得到所述中间矩阵V1中的第i行第j列元素:
可选地,所述方法还包括:
获取同一类别的每一网络对象的列向量,得到向量集合;
对所述向量集合中的所有列向量进行聚类,得到多个类簇;
所述目标矩阵是任一所述类簇中的列向量组成的矩阵。
可选地,所述对所述向量集合中的所有列向量进行聚类,得到多个类簇,包括:
根据第一定义方式定义的向量距离对所述向量集合中的所有列向量进行聚类;
所述根据所述内积矩阵中的每一元素计算所述目标矩阵中两两列向量之间的相似度,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东软集团股份有限公司,未经东软集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711350997.3/2.html,转载请声明来源钻瓜专利网。