面向大规模向量空间路径约束连接查询方法

文档序号:30835464发布日期:2022-07-22 22:56阅读:82来源:国知局
面向大规模向量空间路径约束连接查询方法

1.本发明属于大数据应用领域,具体涉及一种基于面向大规模向量空间路径约束连接查询方法。


背景技术:

2.近年来,随着交通路网、社交网络等与空间位置有关的新型服务逐渐增多,向量空间数据规模正以极快的速度增长和累积,传统数据处理技术在大规模向量空间数据上的执行效率及结果集优化等方面面临着巨大的挑战。约束连接查询是处理大规模向量数据时一种比较常见的操作,在许多应用程序中,都是数据分析的重要载体。约束连接查询将两个不同的关系连接成为一个关系,在新的关系中包含两个原关系。在约束连接查询中,自连接是一种比较特殊的连接,自连接将自身关系看作是一个镜像,即另一个自身关系,在操作时将自身关系的属性进行对比,根据属性对比结果进行连接,也可以说是利用自身相似性进行连接,它的本质是基于相似关系分析处理输入数据。自相似性连接技术在清洗数据方面起到了非常重要的作用,这种特殊类型的连接在数据分析中有非常好的应用效果,如重复检测、文档相似性分析、数据挖掘任务和聚类等,合理应用相似性将能使算法具有高可利用性和伸缩性。
3.现有的约束连接查询方法主要有两方面的不足:首先,一些连接方法,比如基于编辑距离的字符串相似连接、空间top-k相似连接等方法,多是基于某些空间索引(如r树)进行连接,此类方法在数据规模较小、维度较低的数据集中具有很好的执行效率,但在大规模向量空间中,由于数据集的海量性及高维性,现有方法已经越来越无法满足实际需求;第二,在高维数据空间上和大规模矢量数据集上进行算法设计时,算法通常设计在一个计算节点上,难以处理数百万或数十亿的大数据集,计算能力和伸缩性较差,不能满足用户实时查询的需求。因此,设计一种大规模向量空间中数据集的约束连接路径查询方法是非常必要的。


技术实现要素:

4.为了解决传统数据处理技术在大规模向量空间数据上的执行效率及结果集优化的问题,本发明提供一种面向大规模向量空间路径约束连接查询方法。其目的在于解决现有的向量数据处理过程中计算节点的数量过多、优化效果不明显的技术问题以及无法处理海量数据的技术问题。
5.本发明的目的是通过下述技术方案实现的:面向大规模向量空间路径约束连接查询方法,在大规模向量空间上的数据处理方法包括以下步骤:
6.步骤1基于多节点的分布式集群系统构建整体网络,制定整体网格划分策略;
7.步骤2在分布式集群系统中引入map-reduce处理框架,设计基于网格的距离计算优化方法;
8.步骤3在map阶段中设计四阶段筛选策略,根据计算结果进行减枝操作,找到所有
满足四阶段筛选策略的备选节点,产生的结果集缓存在分布式系统中各机器节点的内存中;
9.步骤4在reduce阶段进行结果路径选取,调用map阶段输出的最终结果集并写入主计算节点中进行计算,不断删掉起点进行递归扩展遍历,最终得到查询路径;
10.步骤1中所述的基于多节点的分布式集群系统构建整体网络,制定整体网格划分策略,具体包括如下步骤:
11.步骤1-1基于多节点的分布式集群系统构建整体网络
12.基于分布式集群系统构建整体网络g=(v,e),整体网络是全部查询点和单向边的总和,即包含全部查询点集合e和单向边集合v。查询点的含义为分布式集群系统中的各机器节点,单向边为个机器节点间的局域网单向连接,若两个查询点对不在单向边集合v中,则默认这两个查询点之间是可以双向抵达的;
13.步骤1-2网格划分策略
14.将向量空间中的节点投影到网格中,以约束距离ε进行等宽网格划分,将全部备选节点划分至对应的单元格内,创建网格索引,设置出发节点p及约束距离ε,计算到出发节点p的其他所有不超过给定约束距离ε的备选节点,表示为p-ε近邻节点查询。查询某一出发节点的最近邻居节点需要以全部节点作为代表,考虑每一节点时必须要计算整体网络g内全部节点到所考虑节点的距离。
15.步骤2中所述在分布式集群系统中引入map-reduce处理框架,设计基于网格的距离计算优化方法,具体包括如下步骤:
16.步骤2-1查询点到单元格的距离计算
17.查询点到单元格的距离。在计算查询点到邻居单元格的距离的时候分为两种不同的情况。第一种情况,查询点所在的单元格与对应需要计算的邻居单元格在某一维度上是相同的,在这种情况下,只计算不同维度上的距离,相同那一维度上的距离默认为0。第二种情况,查询点所在的单元格与对应需要计算的邻居单元格在两个维度上都不相同,在这种情况下需要同时考虑两个不同维度的距离,计算实际距离。查询点到单元格的距离计算公式为;
[0018][0019]
其中,c是一个邻居单元格,q为主单元格内的一个查询点,lbc[i]为c单元格下界,ubc[i]是c单元格上界,p为向量空间总维度数,q[i]为主单元格内选定的查询点,当查询点q位于上下界范围内时,默认该维度的距离为0,反之,则需要具体计算距离;
[0020]
步骤2-2查询点间的距离计算
[0021]
查询点之间的距离为空间上的节点之间的实际距离,查询点间的距离计算公式为:
[0022][0023]
公式(ⅱ)中q点及o点是整体网络g中的两个查询点,i为的含义为向量空间节点累
加的下界,p的含义是向量空间的总维度数,qi和oi是具体到某一维度上的实际距离;
[0024]
步骤3中所述在map过程中设计四阶段筛选策略,根据计算结果进行减枝操作,找到所有满足四阶段筛选策略的备选节点,产生的结果集缓存在分布式系统中各机器节点的内存中,具体按照如下步骤进行:
[0025]
四阶段筛选策略实现由单元格粒度到节点粒度的逐级细化删减方式,分为出发节点到单元格距离筛选、出发节点所在约束区域筛选、单向边筛选以及出发点备选点实际距离筛选。
[0026]
步骤3-1设计筛选满足条件的备选节点方法
[0027]
在map阶段,计算出发节点到单元格的距离、出发节点所有的约束区域、单向边的删选以及出发点到备选点之间的距离,根据所得到的计算结果进行删选操作,每一个map最终得到下一步可以前进的一个结果子集:{
……
;出发节点;
……
}。即在map阶段,找到所有到出发节点距离小于给定约束距离ε的备选节点的集合,将结果集缓存在分布式系统中各机器节点的内存中。
[0028]
步骤3-2出发节点到单元格距离筛选策略
[0029]
在这一阶段计算出发节点到单元格的距离,设置出发节点q,根据步骤2-1中的公式(ⅰ)计算出发节点q到不同维度的邻居单元格的距离,根据步骤3-1设定的备选节点筛选方案判定计算值是否超过给定约束距离阈值ε,若超过给定约束距离阈值ε,则该单元格内所有备选节点的距离计算都不需要再执行,可以全部删减。计算结束后,将所有满足筛选条件的单元格内的备选节点作为结果子集输出。
[0030]
步骤3-3出发节点所在约束区域筛选策略
[0031]
针对步骤3-2输出的结果子集,在符合出发节点到邻居单元格距离约束的情况下,查询到出发节点距离为给定阈值ε的约束区域,出发节点的约束区域为四条直线构成的正方形区域,出发节点位于约束区域的中心位置,四条直线到出发节点的直线距离为给定阈值ε。若备选节点位于约束区域外,可以直接删除,筛选结束后,得到满足符合约束区域筛选策略的输出结果子集;
[0032]
步骤3-4单向边筛选策略
[0033]
针对步骤3-3的处理结果,在余下的全部可能节点中,调用单向边数据集合进行查找,若备选节点到出发节点为单向,且方向设置为备选节点到出发节点,则该备选节点不满足单向边筛选策略,将该节点删除。若备选节点到出发节点为双向抵达,则将节点归纳至结果子集中,经过单向边筛选后,输出结果子集;
[0034]
步骤3-5出发点备选点实际距离筛选策略
[0035]
在剩余结果子集中进行最后一步的具体计算,由步骤2-2的公式(ⅱ),计算备选节点到出发节点之间的实际距离,判断计算结果是否大于给定阈值ε,若计算结果大于给定阈值ε,判定为该备选节点不符合最终输出路径要求,可以将该点直接删除,若计算结果小于给定阈值ε,判定为该备选节点符合最终输出路径要求,保留在结果子集中,计算结束后,输出最终的结果集,并将结果集缓存到内存中。
[0036]
步骤4中所述的在reduce阶段进行结果路径选取,调用步骤3中的map阶段输出的最终结果集并写入分布式系统的主计算节点中进行计算,不断删掉起点进行递归扩展遍历,得到查询路径,具体过程如下:
[0037]
步骤4-1结果路径筛选策略
[0038]
在reduce阶段,调用缓存在各机器节点内存中的map阶段的最终结果集,由步骤3中的四阶段筛选策略得到的最终结果集可知,距离出发节点的距离小于约束距离ε的全部符合条件的备选节点已经找到,由第一个节点所对应的map计算结果开始,依次向下调用map计算结果,在删除起点并更新路径后,继续不断向下调用,重复上述步骤,不断递归拓展所得到的路径,最终找到满足约束条件的路径,或者判定并不存在满足约束条件的结果路径。
[0039]
本发明的有益效果:本发明采用上述方案,设计并实现了一种面向大规模向量空间路径约束连接查询方法。首先,基于多节点的分布式集群系统提出整体网格划分策略,在向量空间中以约束距离ε进行等宽网格划分,实现在单元格内进行距离计算的方法;其次,在分布式集群系统中引入map-reduce处理框架,提出基于网格的距离计算优化方法。再次在map阶段中,对计算过程进行出发点到单元格距离筛选、出发节点所在约束区域筛选、单向边筛选以及出发点备选点实际距离筛选的四阶段筛选策略,找到所有满足四阶段筛选策略的备选节点,产生的结果集缓存在分布式系统中各机器节点的内存中。最后在reduce阶段调用map阶段输出的最终结果集并写入分布式系统的主计算节点中进行路径连接计算。采用本发明技术方案,极大程度减少了中间计算节点的数量,可以有效解决现有向量空间约束路径查询方法中存在的中间计算节点的数量过多、结果集优化效果不佳的技术问题以及用户无法在大规模向量空间中处理海量数据的技术问题。
附图说明
[0040]
图1为本发明面向大规模向量空间路径约束连接查询方法的流程图。
[0041]
图2为本发明中查询点到邻居单元格的最小距离示意图。
[0042]
图3为本发明中出发节点到单元格距离筛选策略中点到单元格距离示意图。
[0043]
图4为本发明中出发节点所在约束区域筛选策略中约束区域筛选节点示意图。
[0044]
图5为本发明中结果路径筛选策略中c点路径筛选示意图。
[0045]
图6为本发明中结果路径筛选策略中d点路径筛选示意图。
[0046]
图7为本发明方法与mr-dsj方法时间效率对比图。
[0047]
图8为本发明方法与mr-dsj方法结果集大小对比图。
[0048]
图9为本发明方法与mr-dsj方法计算距离次数对比图。
具体实施方式
[0049]
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
[0050]
本发明步骤如下:
[0051]
步骤1基于多节点的分布式集群系统构建整体网络,制定整体网格划分策略。
[0052]
步骤1-1基于多节点的分布式集群系统构建整体网络
[0053]
基于分布式集群系统构建整体网络g=(v,e),整体网络是全部查询点和单向边的总和,即包含全部查询点集合e和单向边集合v。查询点的含义为分布式集群系统中的各机器节点,单向边为个机器节点间的局域网单向连接,若两个查询点对不在单向边集合v中,
则默认这两个查询点之间是可以双向抵达的;
[0054]
步骤1-2网格划分策略
[0055]
将向量空间中的节点投影到网格中,以约束距离ε进行等宽网格划分,将全部备选节点划分至对应的单元格内,创建网格索引,设置出发节点p及约束距离ε,计算到出发节点p的其他所有不超过给定约束距离ε的备选节点,表示为p-ε近邻节点查询。查询某一出发节点的最近邻居节点需要以全部节点作为代表,考虑每一节点时必须要计算整体网络g内全部节点到所考虑节点的距离;
[0056]
步骤2在分布式集群系统中引入map-reduce处理框架,设计基于网格的距离计算优化方法。
[0057]
步骤2-1查询点到单元格的距离计算
[0058]
查询点到单元格的距离与主单元格维度相同的邻居单元格,默认在这一维度上,查询点到单元格的距离为0。图2为查询点到邻居单元格的距离计算实例,查询点q位于主单元格c11中,计算查询点q到邻居单元格c10时,由于主单元格c11和邻居单元格c10的维度在二维上是相同的,因此,只考虑查询点与邻居单元格一维上的距离即可。而当计算查询点q到邻居单元格c00的距离时,由于主单元格c11和邻居单元格c00的两个维度都不相同,此时,需要考虑查询点q和单元格c00在两个维度距离的总和。查询点到单元格的距离计算公式为;
[0059][0060]
其中,c是一个邻居单元格,q为主单元格内的一个查询点,lbc[i]为c单元格下界,ubc[i]是c单元格上界,p为向量空间总维度数,q[i]为主单元格内选定的查询点,当查询点q位于上下界范围内时,默认该维度的距离为0,反之,则需要具体计算距离。
[0061]
步骤2-2查询点间的距离计算
[0062]
查询点之间的距离为空间上的节点之间的实际距离,查询点间的距离计算公式为:
[0063][0064]
公式(ⅱ)中q点及o点是整体网络g中的两个查询点,i为的含义为向量空间节点累加的下界,p的含义是向量空间的总维度数,qi和oi是具体到某一维度上的实际距离。
[0065]
步骤3在map过程中设计四阶段筛选策略,四阶段筛选策略实现由单元格粒度到节点粒度的逐级细化删减方式,分为出发节点到单元格距离筛选、出发节点所在约束区域筛选、单向边筛选以及出发点备选点实际距离筛选,根据计算结果进行减枝操作,找到所有到出发点满足条件的所有下一备选节点,产生的结果集缓存在分布式系统中各机器节点的内存中。
[0066]
步骤3-1设计筛选满足条件的备选节点方法
[0067]
map阶段首先找到点p所在主单元格的邻居单元格,经过邻居单元格整体筛选,可行封闭区域筛选,单向集合筛选,点到点距离筛选,最终得到所有候选点根据计算结果进行
减枝操作。每一个map最终得到下一步可以前进的一个结果子集{

;a;

},即在map阶段,找到所有到出发节点距离小于给定约束距离ε的备选节点的集合,产生的结果集缓存在分布式系统中各机器节点的内存中。
[0068]
步骤3-2出发节点到单元格距离筛选策略
[0069]
计算出发节点到单元格的距离,如图3所示,点q位于c11中,根据公式(ⅰ),计算点q到两个维度均不同的邻居单元格的距离:
[0070]
mindistcell(a,c00)=x2;
[0071]
mindistcell(a,c20)=x2;
[0072]
mindistcell(a,c02)=x3;
[0073]
mindistcell(a,c22)=x4;
[0074]
设x1,x2,x3,x4中的某一个值x2超过给定的阈值ε,对应单元格c20中的所有节点,都不需要再参与考虑,其内的所有点到点q的距离必然大于ε,具体的距离计算全部省略,首次删减后的输出结果子集为:{b,c,d,i,f;a}。
[0075]
步骤3-3出发节点所在约束区域筛选策略
[0076]
针对步骤3-2输出的结果子集,在符合点到邻居单元格距离约束条件的情况下,查询到点a距离为给定阈值ε的约束区域,如图4所示,点a到约束区域外的节点的距离一定大于给定阈值ε,可以直接将约束区域外的节点进行备选删除。则图中f不满足暂时的输出条件,引入约束区域筛选后的输出结果子集为{b,c,d,i;a},表明由a点出发,暂时满足条件可以进行下一步考虑的点为b、c、d、i。
[0077]
步骤3-4单向边筛选策略
[0078]
针对步骤3-3的处理结果,在余下的全部可能节点中,调用单向边数据集合进行查找,若ai两个节点中间设定为单向抵达,且方向设置为由i到a,则a点被判定不能到达i点,将最终结果集中的i点删除,经过单向边的筛选后输出的结果子集为{b,c,d;a}。
[0079]
步骤3-5出发点备选点实际距离筛选策略
[0080]
在剩余结果子集上进行最后一步的具体计算,由步骤2-2的公式(ⅱ),计算出具体mindistpair(a,b)、mindistpair(a,c)和mindistpair(a,d),若mindistpair(a,b)>ε,,即所计算的距离结果大于给定的阈值ε,则判定不符合最终输出路径,结果子集删掉b节点,最终的输出结果子集为{c,d;a},并将结果子集缓存到内存中。
[0081]
步骤4在reduce阶段进行结果路径选取,调用步骤3中的map阶段输出的最终结果集写入分布式系统的主计算节点中进行计算,不断删掉起点进行递归扩展遍历,最终得到查询路径。
[0082]
步骤4-1结果路径筛选策略
[0083]
reduce阶段调用缓存在各机器节点内存中的map阶段结果集,由步骤3中的四阶段筛选策略得到的结果集可得,a点全部符合条件的路径已经找到。在结果集中,进行reduce阶段处理。当计算到达点c和点d,接下来c、d两点继续重复上述步骤进行下一步的连接操作。可能情况如图5、图6所示。删掉起点后得到{g,b;a,c}、{f;a,d},继续向下进行迭代,最终得到结果路径。重复上述步骤,不断递归拓展所得到的路径,最终得到查询路径。
[0084]
查询结果判断如下:
[0085]
1)若得到结果{x;a,c

}(x为最终想要到达的点),则找到到达的约束连接路径,
路径为a
→c→…→
x;
[0086]
2)若得到结果集为{;a,c

},即没有继续候选的路径,说明该路径无法到达终点;
[0087]
3)若全部输出结果均为{;a

},则说明不存在从点a出发到达点x的路径。
[0088]
实施实验例1:
[0089]
为了能够更好的测试本发明面向大规模向量空间路径约束连接查询方法的性能,作为本发明的一个实例,采用hadoop平台进行实验,将一台计算机作为hadoop的主计算节点,其余四个节点作为从节点,每个节点的配置如下:
[0090]
(1)硬件环境
[0091]
处理器:corei53.2ghz6m缓存
[0092]
内存:4gbddriii1600
[0093]
硬盘:sata500gb,7200转/分
[0094]
(2)软件环境
[0095]
操作系统:ubuntu
[0096]
编程环境:hadoop2.6.0
[0097]
编程语言:java
[0098]
将计算节点通过局域网进行连接,在两类真实数据集上运行,根据实验的运行结果和数据,与mr-dsj算法进行对比,所有距离计算都是算法执行过程中实际测量的,如果八个小时实验依然没有执行结束,则自动终止实验。通过真实数据集上的实验数据,对比三种算法的时间效率、结果集大小和距离计算次数,评估算法的执行效率。整个实验结果及分析主要分为以下几个部分:
[0099]
(1)方法时间效率对比:实验选取网格宽度分别为小于ε、大于ε以及等于ε三种情况,对比数据为mr-dsj方法。如图7所示,对比mr-dsj方法,本发明方法直接找到最近节点进行路径查找,计算过程中的删减操作和定向查找节省了大量的时间,在找约束条件下的连接对有更高的效率。另实验表明,在网格宽度r的选取上,当r=ε是最合适进行删减操作和距离计算的设定数值。
[0100]
(2)方法的结果集大小对比:在实验中将宽度设置为大于ε,小于ε以及等于ε三种不同网格划分与方法mr-dsj进行结果子集大小的比较。如图8所示,mr-dsj方法最终是找到整个网络上全部符合条件的结果对,本发明方法找到的下一个路径节点集合,经过单向边删减,只是连接路径上的所有结果,因此mr-dsj方法需要更多的文本复制花费。实验表明,三种不同网格划分方法得到的结果都是正确路径的备选结果,所以得到的数据集大小一定是一样的。
[0101]
(3)方法计算距离次数对比:对比数据为mr-dsj方法,同时,设定不同的网格宽度进行对比。如图9所示,由于本发明方法运行过程中的网格划分单元格间删减操作和单向边删减操作,比较次数和距离计算花费都得到一定程度的减少和降低,不需要计算全部距离满足约束条件的结果对,本发明方法的比较次数要小于mr-dsj方法,同时实验数据也可以表明网格宽度设定为ε是较好的选择。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1