top‑m反近邻空间关键字查询方法与流程

文档序号:13004840阅读:223来源:国知局
top‑m反近邻空间关键字查询方法与流程
本发明涉及关键字查询方法,尤其涉及一种top-m反近邻空间关键字查询方法。
背景技术
:这些年,近邻空间关键字查询技术不断地发展,其已经被广泛地应用到实际生活中用于帮助用户搜索到合适商品或者地点等(比如,利用百度地图搜索附近酒店)。不同于近邻空间关键字查询技术,反k近邻空间关键字(rskknn)查询可以帮助商家找到潜在的客户。近几年,人们对rskknn查询也做出了研究,且该查询部分成果目前已经被应用到实际商业领域中,比如帮助商家进行市场分析、决策支持等。不同于knn查询,rknn查询要求返回的查询用户都将输入的查询对象作为k近邻之一。随着移动互联网技术的飞速发展,人们希望在进行rknn查询的时候同时考虑文本信息。因此,lu等人首次提出了反空间文本k近邻(rstknn)查询算法,并提出了iur-tree索引和相应的查询算法。iur-tree中每个树结点都包含一个最小边界矩阵(mbr)和两个文本向量(并向量和交向量)。choudhury等人首次提出了最大化双射反k近邻空间文本(maxbrstknn)查询。maxbrstknn查询的目的在于在一些候选地点集合和候选关键字集合中,选出一个地点和若干关键字的组合使得tstknn查询的结果基数最大。maxbrstknn查询可以应用到实际应用场景,比如,现在有个商家想在某商业区开一家餐馆,maxbrstknn查询可以帮助其发现在某个地址开什么样主题的餐馆,能够使得预期吸引的消费者最多。我们在研究现有的研究工作时发现,rstknn查询每次只能为一个对象查询所有将该对象作为k近邻之一的用户,而maxbrstknn则是选择一个地点和若干关键字组合使其rstknn查询结果基数最大。然而现实生活中,人们往往会同时对多个产品/或者对象进行查询然后从中选出最受欢迎的若干个产品。而且,在生活中产品关键字往往是并不是随机组合的(比如自助餐馆一般不会出现“点菜”这样的属性,而咖啡店则不会出现“自助烤肉”),这一点不同于maxbrstknn查询。反近邻空间关键字查询返回的结果不是空间文本对象而是包含在其他数据对象k近邻之一的查询对象q,因此其相应的查询算法也随之变化。近几年有不少这方面的研究工作,rskknn已然成为空间关键字查询主流的查询类型之一。yang等人对现有的rknn(reverseknearestneighbors)查询研究工作(如tpl技术、infzone和finch等)进行了总结,并通过实验对其进行对比分析。yang对tpl剪枝技术做出了优化工作,提出tpl++技术处理rknn查询。vlachou等人首次从产品制造商的角度研究reversetop-k查询,以发现最具吸引力的产品。vlachou等人提出了反top-k阈值算法(reversetop-kthresholdalgorithm,简称rta)和基于网格查询算法(grid-basedreversetop-kalgorithm,简称grta)。由于上述工作不支持同时满足空间位置邻近和文本内容相关性的约束,lu等人首次提出反空间文本k近邻查询(reversespatialandtextualkneighborquery,简称rstknn查询)问题,并且提出一个高效的混合索引iur-tree(intersection-unionr-tree)。iur-tree的特点是将文本向量和r-tree结合起来。每个iur-tree结点同时包含空间位置信息和文本信息,其中空间位置信息用最小边界矩阵(mbr)表示,文本信息则用两个文本向量(交集向量和并集向量)表示。随后,lu等人对双色反近邻空间关键字查询(bichromaticreversespatialkeywordknearestneighborquery,简称brskknn查询)做了相应的研究,并设计了一个基于新的搜索策略的高效搜索算法以及新的评估结点之间的相关性边界的方法。由于并不是所有空间文本数据对象的rstknn查询都得到查询结果,zhang等人针对该问题提出了reversek-ranks查询,在考虑用户偏好和查询产品属性之间的权重得分的同时,保证每个查询都能找到k个符合条件的对象。choudhury等人首次提出了最大化双色反k近邻空间文本查询(maximizingbichromaticreversespatialandtextualknearestneighborquery,简称maxbrstknn查询)。fang等人提出了randedrstknn查询,确保最终返回结果个数等于预定义的结果个数。在对top-mrstknn查询进行问题分析与定义之前,先介绍一下rstknn查询。接下来,先通过一个例子来说明rstknn查询。图1(a)和图1(b)为rstknn查询示例,其中图1(a)和图1(b)分别表示数据集的空间分布和文本信息。根据top-k空间关键字查询的定义,在k=1时,可以算出:top-k(u1)={p1},top-k(u2)={p1},top-k(u3)={p2}。而由于rstknn查询的目的在于所有将查询对象作为top-k结果之一的用户,故可以算出p1和p2的rstknn查询的结果:rstknn(p1)={u1,u2},rstknn(p2)={u3}。rstknn查询返回的结果个数是不确定的。rstknn查询的定义如下:给定一个包含用户集合u和空间文本对象集合p的数据集d,对于一个目标查询对象q,rstknn查询搜索所有将查询对象q作为其top-k结果(topk(u))之一的用户u′(有u∈u)。可以用以下公式表示:由上可知,rstknn查询是针对某个查询对象q,检索出所有将q作为top-k结果之一的用户。如果每次查询的时候,查询输入不再是某个对象q,而是一些候选地点集合和关键字组集合,要求输出结果是若干地点和关键字组组合新对象,且要求这些对象预期影响力最大,即将这些对象作为top-k结果之一的非重复的用户最多。由于现有的工作不能很好地解决此问题,故本发明提出一种新的反近邻空间关键字查询,命名为top-m反k近邻空间关键字查询(top-mrstknn查询)。技术实现要素:针对上述技术问题,本发明设计开发了一种top-m反近邻空间关键字查询方法,在给定一个包含用户u和空间文本对象p的数据集d的情况下,对于一些候选地点集合l和关键字组集合w,查询搜索m个候选地点和关键字组组成的新对象,它们做rstknn查询返回的非重复的用户集合u'基数最大。本发明提供的技术方案为:一种top-m反近邻空间关键字查询方法,包括以下步骤:步骤一、给定一个包含用户u和空间文本对象p的数据集d,对于候选地点集合l和关键字组集合w,从l中选择一个候选地点l以及w中选择一个关键字组w,组成一个第i个新的查询对象q=<l,w>作为一个候选组合对象,从而组合出m个候选组合对象;步骤二、为每一个候选组合对象进行一次rstknn查询,从而得到一个rstknn查询结果集合;根据每一个候选组合对象的rstknn查询结果集合,从m个候选组合对象中选择出基数最大的候选组合对象。优选的是,所述的top-m反近邻空间关键字查询方法中,所述步骤二中,其具体过程包括:步骤(1)构建mir-tree索引:根据空间文本对象数据集p建立r-tree,保存数据的地理位置信息;每个数据对象p以从下往上的方式将文本信息更新到r-tree中,保存到各树节点的倒排列表中,从而构建mir-tree;其中,在mir-tree中,每个关键字k所对应的倒排列表为一个三元组序列<p,maxwp,k,minwp,k>,其中p为对象id,maxwp,k为最大权重而minwp,k为最小权重;步骤(2)利用mir-tree索引为u中的每个用户u进行单独的top-k查询,返回top-k查询结果;步骤(3)计算候选组合对象的rstknn查询结果,选出基数最大的m个候选组合对象。优选的是,所述的top-m反近邻空间关键字查询方法中,所述步骤二的步骤(2)中,利用mir-tree索引为u中的每个用户u进行单独的top-k查询,返回top-k查询结果,其具体过程包括:步骤a)给出聚合用户、上界相关性得分以及下界相关性得分的定义:聚合用户是将所有用户u聚合形成的一个超级抽象用户,表示为us,us的地理位置信息us.l为将所有用户包含的最小边界矩阵,而us的文本信息用两个关键字词向量表示,分别为聚合用户-并向量us.unit和聚合用户-交向量us.intt;us和mir-tree中树结点n之间的上界相关性得分为us和结点n最短距离得分和最大文本相似得分的综合聚合得分,公式表示如下:ub(n,us)=α·mindists(n.l,us.l)+(1-α)·maxtexts(n.t,us.unit),其中,mindists(n.l,us.l)表示在空间维度上,结点n和聚合用户us之间最短距离得分,而maxtexts(n.t,us.unit)则表示在文本维度上,n和us的最大可能文本相似度得分,两个得分通过平滑因子α来表示用户对空间维度的偏好;us和mir-tree中树结点n之间的上界相关性得分,其公式表示如下:lb(n,us)=α·maxdists(n.l,us.l)+(1-α)·mintexts(n.t,us.intt),其中,maxdists(n.l,us.l)表示在空间维度上,n和us之间最长距离得分,而n和us的最小文本相似度得分则用mintexts(n.t,us.intt)表示;步骤b)利用mir-tree索引对聚合用户us进行聚合top-k查询,其具体过程包括:将所有用户u聚合形成的一个超级抽象用户,表示为us;然后,用us去遍历mir-tree检索所有可能成为u中任一个用户u的top-k结果之一的对象p,记为p′,同时还记录us的第k个下界相关性得分;最后,基于p′为u中的每个用户u进行单独的top-k查询,返回top-k查询结果。优选的是,所述的top-m反近邻空间关键字查询方法中,所述步骤二的所述步骤(1)中,在构建mir-tree索引过程中,如果当前更新的树结点n是叶子结点时,直接保存当前遍历对象p且将其包含关键字k的最大权重值和最小权重值设置为同一值;如果树结点n是非叶子结点,那么在关键字k的倒排列表中最大权重选择所有对象或者子结点中最大的最大权重,最小权重为所有对象或者子结点中最小的最小权重;如果任一个对象或者结点不包含关键字k,其最小权重默认为0。优选的是,所述的top-m反近邻空间关键字查询方法中,所述步骤二的步骤(3)中,计算候选组合对象的rstknn查询结果,选出基数最大的m个候选组合对象,其具体过程为:对候选地点进行筛选,排除rstknn查询结果为空集的候选地点;再从由剩下的候选地点构成的l中选择一个候选地点l以及w中选择一个关键字组w,组成一个第i个新的查询对象q=<l,w>作为一个候选组合对象,获得相应的rstknn查询结果集合;以穷尽的方式选择基数最大的m个rstknn查询结果集合。优选的是,所述的top-m反近邻空间关键字查询方法中,所述步骤二的步骤(3)中,计算候选组合对象的rstknn查询结果,选出基数最大的m个候选组合对象,其具体过程为:对候选地点进行筛选,排除rstknn查询结果为空集的候选地点;进行迭代查询操作,在每次迭代过程中,从去除当前已经选择的用户的rstknn查询结果集合队列中选择rstknn查询结果最大的,直到选择了m个rstknn查询结果或者队列个数不够。优选的是,所述的top-m反近邻空间关键字查询方法中,在每次迭代过程中,首先,函数computecurrentresult利用当前最优组合currentbest去更新ql,计算其在ql中的精确的rstknn查询结果,ql为最大优先查询队列;然后,将更新队列ql后的最新的最优组合记为newbest;如果上一次迭代保存的最佳组合currentbest与当前迭代计算得到的最优组合newbest相同,则迭代查询结束;否则,将最新最优组合赋给currentbest,继续迭代查询步骤。本发明所述的top-m反近邻空间关键字查询方法在给定一个包含用户u和空间文本对象p的数据集d的情况下,对于一些候选地点集合l和关键字组集合w,查询搜索m个候选地点和关键字组组成的新对象,它们做rstknn查询返回的非重复的用户集合u'基数最大。本发明是从商家或者产品的角度出发,找到m个不同产品对象使其预期吸引不同的客户数最多。通过此类查询,可以帮助商家进行资源分配以及决策支持等。附图说明图1(a)和图1(b)为现有技术中rstknn查询示例图,其中,图1(a)和图1(b)分别表示数据集的空间分布和文本信息;图2为本发明所述的top-m反近邻空间关键字查询方法的流程图;图3为本发明所述的mir-tree的对象分布以及mbr划分图;图4为本发明所述的mir-tree索引结构示意图;图5为本发明中k的变化对查询处理响应时间的影响的示意图;图6为本发明中|w|的变化对查询处理响应时间的影响的示意图;图7为本发明中|w|的变化对查询处理响应时间的影响的示意图;图8为本发明中m的变化对查询处理响应时间的影响的示意图;图9为本发明中|l|的变化对查询处理响应时间的影响的示意图;图10为本发明中参数|u|的变化对查询处理响应时间的影响的示意图;图11为本发明中参数|p|的变化对查询处理响应时间的影响的示意图;图12为本发明中不同数据集中k的变化对查询处理响应时间的影响的示意图。具体实施方式下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。如图2所示,本发明提供一种top-m反近邻空间关键字查询方法,包括以下步骤:步骤一、给定一个包含用户u和空间文本对象p的数据集d,对于候选地点集合l和关键字组集合w,从l中选择一个候选地点l以及w中选择一个关键字组w,组成一个第i个新的查询对象q=<l,w>作为一个候选组合对象,从而组合出m个候选组合对象;步骤二、为每一个候选组合对象进行一次rstknn查询,从而得到一个rstknn查询结果集合;根据每一个候选组合对象的rstknn查询结果集合,从m个候选组合对象中选择出基数最大的候选组合对象。在一个优选的实施例中,所述的top-m反近邻空间关键字查询方法中,所述步骤二中,其具体过程包括:步骤(1)构建mir-tree索引:根据空间文本对象数据集p建立r-tree,保存数据的地理位置信息;每个数据对象p以从下往上的方式将文本信息更新到r-tree中,保存到各树节点的倒排列表中,从而构建mir-tree;其中,在mir-tree中,每个关键字k所对应的倒排列表为一个三元组序列<p,maxwp,k,minwp,k>,其中p为对象id,maxwp,k为最大权重而minwp,k为最小权重;步骤(2)利用mir-tree索引为u中的每个用户u进行单独的top-k查询,返回top-k查询结果;步骤(3)计算候选组合对象的rstknn查询结果,选出基数最大的m个候选组合对象。在一个优选的实施例中,所述的top-m反近邻空间关键字查询方法中,所述步骤二的步骤(2)中,利用mir-tree索引为u中的每个用户u进行单独的top-k查询,返回top-k查询结果,其具体过程包括:步骤a)给出聚合用户、上界相关性得分以及下界相关性得分的定义:聚合用户是将所有用户u聚合形成的一个超级抽象用户,表示为us,us的地理位置信息us.l为将所有用户包含的最小边界矩阵,而us的文本信息用两个关键字词向量表示,分别为聚合用户-并向量us.unit和聚合用户-交向量us.intt;us和mir-tree中树结点n之间的上界相关性得分为us和结点n最短距离得分和最大文本相似得分的综合聚合得分,公式表示如下:ub(n,us)=α·mindists(n.l,us.l)+(1-α)·maxtexts(n.t,us.unit),其中,mindists(n.l,us.l)表示在空间维度上,结点n和聚合用户us之间最短距离得分,而maxtexts(n.t,us.unit)则表示在文本维度上,n和us的最大可能文本相似度得分,两个得分通过平滑因子α来表示用户对空间维度的偏好;us和mir-tree中树结点n之间的上界相关性得分,其公式表示如下:lb(n,us)=α·maxdists(n.l,us.l)+(1-α)·mintexts(n.t,us.intt),其中,maxdists(n.l,us.l)表示在空间维度上,n和us之间最长距离得分,而n和us的最小文本相似度得分则用mintexts(n.t,us.intt)表示;步骤b)利用mir-tree索引对聚合用户us进行聚合top-k查询,其具体过程包括:将所有用户u聚合形成的一个超级抽象用户,表示为us;然后,用us去遍历mir-tree检索所有可能成为u中任一个用户u的top-k结果之一的对象p,记为p′,同时还记录us的第k个下界相关性得分;最后,基于p′为u中的每个用户u进行单独的top-k查询,返回top-k查询结果。在一个优选的实施例中,所述的top-m反近邻空间关键字查询方法中,所述步骤二的所述步骤(1)中,在构建mir-tree索引过程中,如果当前更新的树结点n是叶子结点时,直接保存当前遍历对象p且将其包含关键字k的最大权重值和最小权重值设置为同一值;如果树结点n是非叶子结点,那么在关键字k的倒排列表中最大权重选择所有对象或者子结点中最大的最大权重,最小权重为所有对象或者子结点中最小的最小权重;如果任一个对象或者结点不包含关键字k,其最小权重默认为0。在一个优选的实施例中,所述的top-m反近邻空间关键字查询方法中,所述步骤二的步骤(3)中,计算候选组合对象的rstknn查询结果,选出基数最大的m个候选组合对象,其具体过程为:对候选地点进行筛选,排除rstknn查询结果为空集的候选地点;再从由剩下的候选地点构成的l中选择一个候选地点l以及w中选择一个关键字组w,组成一个第i个新的查询对象q=<l,w>作为一个候选组合对象,获得相应的rstknn查询结果集合;以穷尽的方式选择基数最大的m个rstknn查询结果集合。在一个优选的实施例中,所述的top-m反近邻空间关键字查询方法中,所述步骤二的步骤(3)中,计算候选组合对象的rstknn查询结果,选出基数最大的m个候选组合对象,其具体过程为:对候选地点进行筛选,排除rstknn查询结果为空集的候选地点;进行迭代查询操作,在每次迭代过程中,从去除当前已经选择的用户的rstknn查询结果集合队列中选择rstknn查询结果最大的,直到选择了m个rstknn查询结果或者队列个数不够。在一个优选的实施例中,所述的top-m反近邻空间关键字查询方法中,在每次迭代过程中,首先,函数computecurrentresult利用当前最优组合currentbest去更新ql,计算其在ql中的精确的rstknn查询结果,ql为最大优先查询队列;然后,将更新队列ql后的最新的最优组合记为newbest;如果上一次迭代保存的最佳组合currentbest与当前迭代计算得到的最优组合newbest相同,则迭代查询结束;否则,将最新最优组合赋给currentbest,继续迭代查询步骤。具体地,本发明提出一种新的反近邻空间关键字查询,命名为top-m反k近邻空间关键字查询(top-mrstknn查询),具体定义如下:定义(top-mrstknn查询)给定一个包含用户u和空间文本对象p的数据集d,对于一些候选地点集合l和关键字组集合w,top-mrstknn查询搜索m个候选地点和关键字组组成的新对象,它们做rstknn查询返回的非重复的用户集合u'基数最大。其形式化表示如下:其中rstknn(l,w,i)表示从l中选择一个地点l以及w中选择一个关键字组w,组成一个第i个新的查询对象q=<l,w>,进行rstknn查询。而则表示选择m个组合不同的组合进行rstknn查询的结果结合。通过上述的定义,可以进一步发现本发明要研究的工作与现有的研究工作不同之处,top-mrstknn查询是从商家或者产品的角度出发,找到m个不同产品对象使其预期吸引不同的客户数最多。通过此类查询,可以帮助商家进行资源分配以及决策支持等。一、baseline方案以下介绍一个基于rstknn查询的baseline方案支持top-mrstknn查询。baseline方案的策略是首先为每个候选组合对象(地点和关键字组组成的对象)进行一次rstknn查询;然后遍历所有的m-组合(m个组合对象的rstknn查询结果集合);最后从中选择出集合基数最大的m-组合。显然,这种方法需要消耗许多重复的i/o操作以及重复的top-k查询计算,从而使top-mrstknn查询总体的查询时间过长,处理效率较差。因此,本节提出了基于mir-tree索引的精确求解查询方案,减少不必要的i/o操作以及重复的top-k查询计算,从而缩短查询时间,提高处理效率。为了进一步优化查询效率,本发明基于结合覆盖贪心算法,提出了基于mir-tree索引的贪心近似求解查询方案。接下来,本发明首先简单介绍一下mir-tree索引,然后对查询算法进行相应的描述分析。二、mir-tree索引mir-tree可以说是ir-tree的一种变种,用于保存对象信息。建立mir-tree索引主要分为两步:(1)根据空间文本对象数据集p建立r-tree,保存数据的地理位置信息;(2)对于每个数据对象p以从下往上的方式将文本信息更新到r-tree中,保存到相应的倒排列表中,从而构建mir-tree。由于步骤一比较简单,这里不多介绍,这里主要介绍一下步骤二。不同于ir-tree,在mir-tree中,每个树结点中的倒排列表将保存每个关键字最大权重和最小权重,其中p代表对象(比如产品),而k则表示某个关键字。每个关键字k所对应的列表都是一个三元组序列<p,maxwp,k,minwp,k>,其中p为对象id,maxwp,k为最大权重而minwp,k为最小权重。在建立mir-tree索引过程中,如果当前更新的树结点n是叶子结点时,直接保存当前遍历对象p且将其包含关键字k的最大权重值和最小权重值设置为同一值。如果树结点n是非叶子结点,那么在关键字k的倒排列表中最大权重选择所有对象或者子结点中最大的,类似地,最小权重为所有对象或者子结点中最小的最小权重得分。如果某个对象或者结点不包含关键字k,其最小权重默认为0。接下来,本发明用一个例子来描述一下mir-tree索引结构。图3表示空间文本对象数据集p={p1,p2,…,p8}的分布以及mbr划分,而表1则为p中对象的文本信息。图3中每个矩形框代表着r-tree上的一个结点。表1中每个关键字元组中的数字表示其权重,比如{p2:<sushi,3>}中“sushi”后面的数字“3”表示关键字“sushi”在对象p2中的权重为3。根据上文中步骤二的构建索引思想以及集合数据p,创建的mir-tree索引结构示例如图4所示。表2为其所关联的倒排文件(ifile)信息,其中每个元组的结构为<结点pi或者对象ni,最大权重,最小权重>。表1数据集文本信息表2mir-tree关联倒排文件信息三、基于mir-tree索引的查询算法描述在对算法描述之前,先简要介绍一下算法查询过程中几个重要的概念。定义(聚合用户)聚合用户是将所有用户u聚合形成的一个超级抽象用户,表示为us。us的地理位置信息us.l为将所有用户包含的最小边界矩阵,而us的文本信息用两个关键字词向量表示,分别为聚合用户-并向量(us.unit)和聚合用户-交向量(us.intt)。下面本发明用一个例子来描述聚合us的文本信息。假设现在有5个用户u={u1,u2,u3,u4,u5},其文本信息如表3所示。us的并向量us.unit则表示为“1111”,而us.intt则表示为“1000”。表3用户文本信息描述定义(top-mrstknn上界得分评估)us和mir-tree中树结点n之间的最大可能综合得分(上界得分)为us和结点n最短距离得分和最大文本相似得分的综合聚合得分,公式表示如下:ub(n,us)=α·mindists(n.l,us.l)+(1-α)·maxtexts(n.t,us.unit)(2)其中,mindists(n.l,us.l)表示在空间维度上,结点n和聚合用户us之间最短距离得分,而maxtexts(n.t,us.unit)则表示在文本维度上,n和us的最大可能文本相似度得分,两个得分通过平滑因子α来表示用户对空间维度的偏好。根据上述定义,本发明可以推出如下性质:性质1ub(n,us)为n与us之间的上界得分,那么对于n和u中的任何用户u,它们的得分dts(n,u)≤ub(n,us)。类似地,本发明可以得出下界得分评估,其公式表示如下:lb(n,us)=α·maxdists(n.l,us.l)+(1-α)·mintexts(n.t,us.intt)(3)其中,maxdists(n.l,us.l)表示在空间维度上,n和us之间最长距离得分,而n和us的最小文本相似度得分则用mintexts(n.t,us.intt)表示。本发明提出的基于mir-tree的查询算法主要分为两步:第一步,利用mir-tree索引对聚合用户us进行聚合top-k查询,为u选出可能成为某个用户u的top-k结果的候选对象集合p′并且为每个u进行单独的top-k查询计算其第k个得分;第二步,对候选地点进行筛选并计算候选组合的rstknn查询结果,选出m个预期吸引用最多的组合。算法1为步骤一聚合top-k查询处理算法。算法1中,聚合用户us一次遍历mir-tree代替单个用户u对mir-tree遍历进行top-k查询。首先,将u抽象成一个聚合用户us(行1)。然后,用us去遍历mir-tree检索所有可能成为u中某个用户u的top-k结果之一的对象p,记为p′,同时还记录us的第k个下界相关性得分(行5-17)。其中,lo最小优先队列用于保存最多k个us的最佳top-k结果,而ro则保存来自lo中溢出的候选空间文本对象。最后,基于p′为u中的每个用户u进行单独的top-k查询,返回结果(行18-20)。至此,查询步骤一完成。由于每个候选地点和候选关键字组组成的新对象,其做rstknn查询返回的结果是一个集合,假如有a个候选地点和b和候选关键字组,则最后会有a×b个rstknn查询结果集合。那么,就需要在这a×b个集合中选择m个集合,使这m个集合的并集基数最大。可以发现,这其实是一个集合覆盖问题,是一个np-hard问题。鉴于此,本发明提出两种解决方案,分别为基于mir-tree的精确求解方案(mtb-exact方案)和基于mir-tree的近似求解方案(mtb-greedy方案)。1.mtb-exact方案mtb-exact方案的主要思想就是在减少候选组合后,计算所有组合的rstknn查询然后选出rstknn查询结果并集基数最大的m-组合(m个rstknn查询结果集合的组合)。算法2为mtb-exact方案查询处理算法。算法2中,首先,初始化一个最大优先查询队列ql,其用于保存候选地点的相关信息。然后,调用算法1,进行步骤一查询操作(行1)。接着,对候选地点进行筛选,排除那些其rstknn查询结果为空集的候选地点,在一定程度上减少候选地点和候选关键字组的组合数量,从而减少计算时间(行2-7)。接下来,针对所有可能组合新对象进行rstknn查询,获得相应的rstknn查询结果集合(行12)。最后,以穷尽的方式选择m个集合,其并集基数最大,即这些集合所对应的候选地点和候选关键字组组合就是所求结果组合(行13-14)。2.mtb-greedy方案mtb-greedy方案的主要思想就是在减少候选组合后,利用集合覆盖贪心算法选出最佳的m个组合。mtb-greedy方案中采用feige等人提出的集合覆盖贪心算法。算法3为mtb-greedy方案查询处理算法。算法3中的1-7行和算法2相同,都是先对聚合用户us进行聚合top-k查询,并计算出单个用户的top-k查询结果;然后初步过滤候选地点,减少不必要的i/o操作和减少候选地点和候选关键字组的组合数量,从而减少计算时间(行1-7)。利用方法findtopmset方法计算当前最优m组合记为currentbest(行8)。其中findtopmset方法的处理思想是:在每次迭代过程中,从去除当前已经选择的用户的rstknn查询结果集合队列中选择rstknn查询结果最大的,直到选择了m个rstknn查询结果或者队列个数不够。接下来,针对ql进行迭代查询操作。在每次迭代过程中,首先,函数computecurrentresult利用当前最优组合currentbest去更新ql,计算其在ql中的精确的rstknn查询结果(行10)。然后,将更新队列ql后的最新的最优组合记为newbest。如果上一次迭代保存的最佳组合currentbest与当前迭代计算得到的最优组合newbest相同,则算法结束。否则,将最新最优组合赋给currentbest,继续迭代查询步骤(行9-15)。四、实验及结果分析本实验所用的数据均为真实数据,所有实验均用java语言实现,实验环境为:16gb内存,3.20ghz处理器以及windows764位操作系统。本实验将从不同的角度对本发明提出的方法进行实验评估。1、数据集与实验参数本发明所使用的实验数据为雅虎i3flickr数据集和yelp数据集,如表4所示,其下载链接分别为http://webscope.sandbox.yahoo.com/catalog.php?datatype=i&did=67和http://www.yelp.com.au/dataset_challenge。flickr数据集中包含100万张图片,每张图片都标有地理位置信息以及至少一个用户的指定标记信息。本发明将这100万张图片的地理位置以及其标记信息(作为关键字)作为本发明实验的实验数据。而对于yelp数据集,由于其包含商家的属性和地理位置以及用户的评论。每个商家的属性和用户评论将处理成商家的文本信息描述(即关键字)。表5对实验参数进行相应的描述,而实验中参数设置如表6所示。在没有特别地声明情况下,表6中的粗体部分将作为实验中使用的默认值。表4数据集信息属性flickryelp对象总个数100000061185去重关键字总个数166,317266869关键字总个数693638577838026表5实验参数说明参数描述ktop-k查询最多返回对象个数u用户数据集w候选关键字组集合ww中的一个关键字组l候选地点集合m返回最优候选地点和关键字组组合的个数p对象数据集表6实验参数取值参数取值k5,10,20,30|w|5,10,20,50,100|w|1,2,3,4,5|l|5,10,20,50,100|u|100,500,1k,2k,5km1,5,10,20,30|p|100k,200k,400k,800k,1mpflickr,yelp2、实验结果分析本实验将从各个方面对本发明提出的查询方案进行性能评估。本次实验将根据表3-6中参数进行相应的实验评估。实验中mtb-greedy方案的查询结果的准确率有相应的理论支撑。此外,通过对本发明所有实验结果进行统计,发现mtb-greedy方案的查询结果平均准确率85.7%。接下来,本发明将对具体的实验分析进行介绍,具体内容如下:(1)参数k的变化对查询处理响应时间的影响。该实验中,观察参数k的变化对查询处理时间的影响(k的取值分别为5、10、20、30)。实验结果如图5所示。图5可以看出,mtb-exact方案和mtb-greedy方案中由于使用联合top-k查询算法,减少了大量的i/o操作以及一些不必要的计算,从而缩短查询处理响应的时间。由于该实验中候选地点数量和候选关键字组的数量比较少,以及m取值比较小,mtb-exact方案只需穷尽少量的组合,故而mtb-exact方案和mtb-greedy方案的查询时间相差不是很大。当k取值越来越大时,在baseline中,每个用户u进行top-k查询需要消耗越来越多的i/o操作和计算时间,而其他两种方案只需要对mir-tree索引遍历查询一次。故图5中baseline方案查询时间随着k的变大而增加,而其他两种方案表现相对平稳。(2)关键字组个数|w|的变化对查询处理响应时间的影响。在本次实验中,观察候选关键字组个数的变化对查询时间的影响。当候选关键字组个数|w|变大时,候选关键字组与候选地点组合成的新对象数量也随之变大,在这些新对象中选择m-组合的数目也变大,即计算时间变大。因此,图6中需要穷尽组合数的baseline方案和mtb-exact方案在进行查询时,其查询时间随着|w|的变大,查询时间也快速增长。当组合数较大时,穷尽所有m-组合所消耗的时间远高于rstknn的查询处理响应时间,这也解释了|w|=100时,图6中baseline方案和mtb-exact方案的折线显示几乎重叠。图6中,mtb-greedy方案则表现优秀,这是因为在其每次迭代过程中更新当前队列,从最大优先队列中选择最大的候选,直到连续两次选择的最优m组合相同时结束查询算法,减少了大量不一样的组合计算。(3)关键字个数|w|的变化对查询响应时间的影响。在本次实验中,通过改变关键字组中关键字个数|w|来评估其对查询时间的影响。通过图7可以看出|w|的变化对总体查询处理响应时间的影响并不大。随着|w|的不断变大,在理论上每个用户和对象在计算相关性得分时候其计算时间应该是有所增加的,但是该部分时间与i/o访问时间相比就显得微不足道。故而,可以看到图7中,三种方案表现平稳。(4)参数m的变化对查询处理响应时间的影响。本实验通过改变参数m的取值观察其对查询响应时间的影响。实验结果如图8所示。根据组合原理,当m取值越接近(|w|×|l|)/2时,m-组合数量越多。故图8显示mtb-exact方法查询时间先随着m的变大而增加,随后减少,即随着m-组合数量的增加,花费在组合计算上的时间随之增加。尽管baseline同样需要穷尽所有的m-组合,而由于此时其穷尽所有m-组合消耗的时间远远低于对所有用户进行rstknn查询所消耗的时间,故baseline的查询处理响应时间变化不大。mtb-greedy方案则由于采用贪心算法,每次迭代过程不太受m的影响,故其依然表现平稳。(5)候选地点个数|l|的变化对查询处理响应时间的影响。在该实验中,通过改变候选地点个数|l|对查询处理时间的影响来对三种方案进行评估,实验结果如图9所示。改变候选地点个数|l|和改变候选关键字组个数|w|对实验影响的原理相同,都是改变了候选组合对象的数量。在m一定的情况下,候选组合对象对象随着候选地点个数的增加快速增加。因此,baseline方案和mtb-exact方案在候选组合对象数目比较大时,查询时间也相对变大,且时间增加的速度变快。(6)用户个数|u|的变化对查询响应时间的影响。在该实验中,通过改变候选地点个数|u|对查询处理时间的影响进行实验评估。图10中当用户数量增加时,三种方案的查询时间都随之增加。因为当查询用户数目增多时,为用户进行rstknn查询时间也随之增加。由于baseline需要为所有用户进行rstknn查询,故其查询时间增长速度较快。随之用户数量的增加,tb-exact方案在为穷尽组合计算rstknn查询时,时间也随之增加。这可以解释图10中,mtb-exact方案中|u|增加到足够大时,其查询处理响应时间增幅与mtb-greedy的查询处理响应时间增幅大。(7)不同规模数据集对查询处理响应时间的影响。在本次实验中,观察不同规模数据集下查询时间的变化,实验结果如图11所示。随着数据集规模的扩展(数据量分别为100k、200k、400k、800k、1m),满足用户top-k查询条件的对象数量随之增加,从而需要消耗更多的时间计算用户的top-k查询处理,这导致对象进行rstknn查询所消耗的时间也随之增加,故图11显示三种方案的查询处理响应时间都随|p|的增加而增加。由于baseline方案需要为每个组合进行一次rstknn查询,而mtb-exact方案和mtb-greedy方案只为用户同时进行一次聚合top-k查询,故baseline方案的查询响应时间增加速度相对较快。(8)不同类型数据集对查询处理响应时间的影响。在本次实验中,观察不同类型数据集下查询时间的变化,并与flickr数据集上的实验结果进行对比。由于baseline方案在yelp数据集下中的表现比在flickr数据集中的表现更差,故本次实验结果不将其纳入评估范围内。由于yelp数据集数据量没有到达1,000,000,本实验通过对原始数据中坐标范围和文本描述随机生成模拟数据直到和flickr数据的数据量相同。yelp数据集与flickr数据集不同之处在于yelp数据集中每个对象平均包含的关键字个数比较多,yelp数据集中平均每个对象包含的关键字个数是flickr数据集中对象的184倍。由于yelp数据集和flickr数据集两个数据集中对象包含关键字数的差异,其对实验的主要影响是对top-k查询部分影响。因此,本次实验主要观察在不同k取值下查询响应时间的变化,由于yelp数据集中对象包含的关键字个数增多,满足用户查询的对象的个数也随之增多,用于rstknn查询中的top-k查询计算和聚合top-k计算的时间也随之增加,并在一定程度上增加了穷尽m-组合所消耗的时间。实验结果如图12所示,其中e_y和g_y分别代表在yelp数据集上进行mtb-exact和mtb-greedy查询,而e_f和g_f则分别代表在flickr数据集上进行mtb-exact和mtb-greedy查询。从图12可以看出,yelp数据集上各算法的查询响应时间相对较长。尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1