首页 / 专利库 / 人工智能 / 相似性得分 / 用AIR树解决SKQwhy-not问题的方法及系统

用AIR树解决SKQwhy-not问题的方法及系统

阅读:156发布:2020-05-11

专利汇可以提供用AIR树解决SKQwhy-not问题的方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种用AIR树解决SKQwhy-not问题的方法及系统,涉及空间关键字查询技术领域,本发明通过将对象的数字属性以布尔表达式的形式表示,更接近现实应用场景;并设计AIR树来巧妙的组织对象信息,同时设计出相应的查询策略,实现通过 修改 查询q',用最小的修改代价,满足在查询结果中所有缺失对象均出现,进而解决空间关键字查询中why-not问题的方法及系统。,下面是用AIR树解决SKQwhy-not问题的方法及系统专利的具体信息内容。

1.一种用AIR树解决SKQwhy-not问题的方法,其特征在于,包括以下步骤:
获取所有对象o,构建AIR树索引;
获取初始查询q=(q.loc,q.doc0,q.B,k,α)和缺失对象集M;根据缺失对象的关键字的频率递减的顺序构建候选关键字列表CKS、根据缺失对象的相似性得分递减的顺序构建候选属性值对列表CAS;将精炼查询q'的关键字集q'.doc和属性值对q'.B'分别设置为q.doc0和q.B;
有序地抽取CKS中的关键字和CAS中的属性值对,分别添加至查询q'的关键字集q'.doc和查询q'的属性值对q'.B'中,形成新的精炼查询q';分别对各个精炼查询q'进行处理以找出最佳精炼查询,直至CKS和CAS都为空;
分别对各个精炼查询q'进行处理,具体包括:
计算q'的修改代价p',过滤掉p'≥pc的查询q',pc为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中的查询qb的修改代价;
对于p'将符合条件的叶子结点指向的对象添加到满足查询q'要求的对象中,并计算查询q'和对象之间的相似性得分;
对满足查询q'要求的对象中的所有对象均根据其相似性得分从高至低排序,直到所有原始结果对象和所有缺失对象均出现,获得k'个对象;
如果k'≤km,km为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中时结果集的大小,则计算q'的修改代价p',如果p'2.如权利要求1所述的方法,其特征在于:获取所有对象o,构建AIR树索引,具体包括以下步骤:
AIR树的每一个非叶子结点Ri包含四个属性:
<Ri.id,Ri.MBR,Ri.S,Ri.Address>,其中Ri.id是结点的id,Ri.MBR是包含结点Ri中所有对象的最小边界矩形,Ri.Address是Ri的所有子结点的地址列表,Ri.S是Ri中所有子结点的属性值对的并集;每一个非叶子结点Ri与一个倒排文件相关联,所述倒排文件由关键字列表组成,每个关键字都指向包含该关键字的Ri的子节点的ID的列表;
AIR树的每一个叶子结点Ri中每个对象oj的信息包含三个属性:(oj.id,oj.loc,oj.S),其中oj.id是对象id,oj.loc是oj的空间位置,oj.S是oj的属性值对。
3.如权利要求1所述的方法,其特征在于:B为布尔表达式:
为一个谓词集合,其中i∈[1,n],i∈N*。
4.如权利要求1所述的方法,其特征在于:计算q'的修改代价p',计算公式为:
其中,β1,β2,β3,β4分别表示是cost函数中k值、关键字、属性种类、属性值的权重;βi≥0且 k'是精炼查询q'的查询结果集的大小,k0是初始查询q的结果集的大小,km是保留初始查询关键字和属性,且所有的缺失对象都出现在查询结果中时结果集的大小,用km-k0规范化k'-k0;Δdoc是从q.doc0调整到q'.doc所需改变的关键字的数量,其中缺失对象集M={m1,m2,...,mj},通过|q.doc0∪M.doc|来规范化Δ
doc;ΔAn是从初始查询调整到精炼查询所需改变的属性种类的数量,通过|q.B∪M.B|来规范化ΔAn; n是q.B和M.B所包含的属性的总和;Δvi是包含属性Ai的所有对
象关于该属性的属性值的最大差值;|vi'-vi|是属性Ai中当前查询属性值vi'与初始查询属性值vi之间的差值的绝对值,且|vi'-vi|≤Δvi,通过Δvi来规范化|vi'-vi|。
5.如权利要求1所述的方法,其特征在于:计算查询q和对象o之间的相似性得分,计算公式为:
其中α是0到1之间的一个变量,用来定义距离邻近度与文本相关性之间的相对重要性,d(q.loc,o.loc)表示的是查询q与对象o之间的欧氏距离,dmax(q.loc,O.loc)表示的是查询点q到对象集合O中的所有对象的最大距离,用对象集O中所有对象间距离的最大值表示。
6.如权利要求2所述的方法,其特征在于:根据预设的非叶子结点筛选规则选出符合条件的AIR树的非叶子结点,得出待筛选的叶子结点的集合;根据预设的叶子结点筛选规则选出符合条件的AIR树的叶子结点,具体包括以下步骤:
将AIR树的非叶子结点加入待处理的非叶子结点集合;
判断待处理的非叶子结点集合中当前结点是否满足非叶子结点筛选规则;
若不满足,过滤掉该结点;若满足,则该结点是符合条件AIR树的非叶子结点,读取该非叶子结点的所有子结点,若其子结点为非叶子结点,将其子结点加入待处理的非叶子结点集合,若其子结点为叶子结点,将其子结点加入待筛选的叶子结点的集合;
判断待筛选的叶子结点中当前节点是否满足叶子结点筛选规则;若满足,记录为符合条件的AIR树的叶子结点,否则,过滤掉该结点。
7.如权利要求6所述的方法,其特征在于:所述非叶子结点筛选规则为:
a)是AIR树的非叶子结点;
b)在该结点上具有查询q'的所有属性类别;
c)查询q'的每一个属性值范围与该结点的对应属性值范围有交集;
d)查询q'的关键字与该结点的倒排文件关键字符合关键字匹配;
e)满足关于q'和结点的之间空间距离的不等式:
8.如权利要求6所述的方法,其特征在于:所述叶子结点筛选规则为:
a)查询q'与该结点满足综合匹配;
b)查询q'和该结点之间的空间距离满足以下不等式:
9.一种用AIR树解决SKQwhy-not问题的系统,其特征在于,包括:
AIR树索引构建模,其用于:获取所有对象o,构建AIR树索引;
候选列表构建模块,其用于:获取初始查询q=(q.loc,q.doc0,q.B,k,α)和缺失对象集M;根据缺失对象的关键字的频率递减的顺序构建候选关键字列表CKS、根据缺失对象的相似性得分递减的顺序构建候选属性值对列表CAS;将精炼查询q'的关键字集q'.doc和属性值对q'.B'分别设置为q.doc0和q.B;
精炼查询模块,其用于:有序地抽取CKS中的关键字和CAS中的属性值对,分别添加至查询q'的关键字集q'.doc和查询q'的属性值对q'.B'中,形成新的精炼查询q';分别对各个精炼查询q'进行处理以找出最佳精炼查询,直至CKS和CAS都为空;分别对各个精炼查询q'进行处理,具体包括:
计算q'的修改代价p',过滤掉p'≥pc的查询q',pc为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中的查询qb的修改代价;
对于p'将符合条件的叶子结点指向的对象添加到满足查询q'要求的对象集中,并计算查询q'和对象之间的相似性得分;
对满足查询q'要求的对象集中的所有对象均根据其相似性得分从高至低排序,直到所有原始结果对象和所有缺失对象均出现,获得k'个对象;
如果k'≤km,km为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中时结果集的大小,则计算q'的修改代价p',如果p'10.如权利要求9所述的系统,其特征在于:AIR树索引构建模块具体用于:
获取所有对象o,构建AIR树索引;
AIR树的每一个非叶子结点Ri包含四个属性:<Ri.id,Ri.MBR,Ri.S,Ri.Address>,其中Ri.id是结点的id,Ri.MBR是包含结点Ri中所有对象的最小边界矩形,Ri.Address是Ri的所有子结点的地址列表,Ri.S是Ri中所有子结点的属性值对的并集;每一个非叶子结点Ri与一个倒排文件相关联,所述倒排文件由关键字列表组成,每个关键字都指向包含该关键字的Ri的子节点的ID的列表;
AIR树的每一个叶子结点Ri中每个对象oj的信息包含三个属性:(oj.id,oj.loc,oj.S),其中oj.id是对象id,oj.loc是oj的空间位置,oj.S是oj的属性值对。
11.如权利要求10所述的系统,其特征在于:B为布尔表达式:
为一个谓词集合,其中i∈[1,n],i∈N*。
12.如权利要求10所述的系统,其特征在于:所述精炼查询模块具体用于:
将AIR树的非叶子结点加入待处理的非叶子结点集合;
判断待处理的非叶子结点集合中当前结点是否满足非叶子结点筛选规则;
若不满足,过滤掉该结点;若满足,则该结点是符合条件AIR树的非叶子结点,读取该非叶子结点的所有子结点,若其子结点为非叶子结点,将其子结点加入待处理的非叶子结点集合,若其子结点为叶子结点,将其子结点加入待筛选的叶子结点的集合;
判断待筛选的叶子结点中当前节点是否满足叶子结点筛选规则;若满足,记录为符合条件的AIR树的叶子结点,否则,过滤掉该结点。
13.如权利要求12所述的系统,其特征在于:所述非叶子结点筛选规则为:
a)是AIR树的非叶子结点;
b)在该结点上具有查询q'的所有属性类别;
c)查询q'的每一个属性值范围与该结点的对应属性值范围有交集;
d)查询q'的关键字与该结点的倒排文件关键字符合关键字匹配;
e)满足关于q'和结点的之间空间距离的不等式:
14.如权利要求12所述的系统,其特征在于:所述叶子结点筛选规则为:
a)查询q'与该结点满足综合匹配;
b)查询q'和该结点之间的空间距离满足以下不等式:

说明书全文

用AIR树解决SKQwhy-not问题的方法及系统

技术领域

[0001] 本发明涉及空间关键字查询技术领域,具体涉及一种用AIR树解决SKQwhy-not问题的方法及系统。

背景技术

[0002] 随着越来越多的对象与地理位置和文本描述相关联,空间关键字查询(SKQ)已经被提出且被广泛的研究。在现实生活中,对象一般具有其他的数字属性,例如平均价格、比率、流行度等。如果在查询中没有考虑到这些限制的条件,通常不可能或者很难得到用户所要的结果。因此,为了满足查询用户在这些属性上的限制条件和精炼查询过程,空间关键字查询需要考虑到数字属性。
[0003] 本文主要针对top-k增强型空间关键字查询。在检索top-k对象时,该类查询首先检索满足q查询中的数字属性要求的对象,然后根据查询点与对象之间的空间距离和文本相似性的综合得分进行排名。图1给出的是一个增强型空间关键字查询的一个示例,表1给出的是对象的文本信息和相关属性信息
[0004] 表1:图1中对象的相关信息
[0005]
[0006]
[0007] 如图1所示,用户发起一个关于关键字cafe的查询,其中平均价格不超过42美元、评分高于4.3分、流行度大于700。然后这些增强性的需求可以用一个布尔表达式来表示:(avg-price<42∧Rating>4.3∧Popularity>700)。首先,对象o3、o5、o8满足以上增强性查询需求,然后根据对象o3、o5、o8与查询q之间的文本匹配和空间匹配程度,可以使用所选择的排序函数返回排序在前的前三个对象。除此之外,由于o1与q没有相同的关键字,所以o1被忽略;o2、o4、o6、o7也被忽略,因为它们都不满足查询属性要求。
[0008] 然而,在某些情况下,当用户想要的对象没有出现在查询结果集中,用户可能会思考为什么这些想要的对象没有出现在查询结果集中,如何将他们想要的对象添加到查询结果集中。例如,在用户发起一个查询并且得到包含o3、o5、o8的查询结果后,他或许想知道为什么他们熟悉的对象o1、o6没有出现在查询结果集中,o3、o5、o8难道真的比o1、o6好吗?他们如何才能使他们熟悉的对象o1、o6出现在查询结果集中?
[0009] 在获取查询结果后,用户可能发现他们想要某些对象不在查询结果集中,从而他们就会质疑整个查询结果。解决为什么这些想要的对象缺失以及如何高效地检索出用户想要的查询对象的问题就称为why-not问题。然而,目前尚未有解决增强型的空间关键字top-k查询中why-not问题的相关技术。因此,亟需一种能够解决增强型空间关键字top-k查询中why-not问题的技术方案。

发明内容

[0010] 针对现有技术中存在的缺陷,本发明的目的在于提供一种用AIR树解决SKQwhy-not问题的方法及系统,有效解决空间关键字查询中why-not问题。
[0011] 为达到以上目的,本发明采取的技术方案是:一种用AIR树解决SKQwhy-not问题的方法,包括以下步骤:
[0012] 获取所有对象o,构建AIR树索引;
[0013] 获取初始查询q=(q.loc,q.doc0,q.B,k,α)和缺失对象集M;根据缺失对象的关键字的频率递减的顺序构建候选关键字列表CKS、根据缺失对象的相似性得分递减的顺序构建候选属性值对列表CAS;将精炼查询q'的关键字集q'.doc和属性值对q'.B'分别设置为q.doc0和q.B;
[0014] 有序地抽取CKS中的关键字和CAS中的属性值对,分别添加至查询q'的关键字集q'.doc和查询q'的属性值对q'.B'中,形成新的精炼查询q';分别对各个精炼查询q'进行处理以找出最佳精炼查询,直至CKS和CAS都为空;
[0015] 分别对各个精炼查询q'进行处理,具体包括:
[0016] 计算q'的修改代价p',过滤掉p'≥pc的查询q',pc为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中的查询qb的修改代价;
[0017] 对于p'
[0018] 将符合条件的叶子结点指向的对象添加到满足查询q'要求的对象中,并计算查询q'和对象之间的相似性得分;
[0019] 对满足查询q'要求的对象中的所有对象均根据其相似性得分从高至低排序,直到所有原始结果对象和所有缺失对象均出现,获得k'个对象;
[0020] 如果k'≤km,km为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中时结果集的大小,则计算q'的修改代价p',如果p'
[0021] 在上述方案的基础上,获取所有对象o,构建AIR树索引,具体包括以下步骤:
[0022] AIR树的每一个非叶子结点Ri包含四个属性:
[0023] <Ri.id,Ri.MBR,Ri.S,Ri.Address>,其中Ri.id是结点的id,Ri.MBR是包含结点Ri中所有对象的最小边界矩形,Ri.Address是Ri的所有子结点的地址列表,Ri.S是Ri中所有子结点的属性值对的并集;每一个非叶子结点Ri与一个倒排文件相关联,所述倒排文件由关键字列表组成,每个关键字都指向包含该关键字的Ri的子节点的ID的列表;
[0024] AIR树的每一个叶子结点Ri中每个对象oj的信息包含三个属性:(oj.id,oj.loc,oj.S),其中oj.id是对象id,oj.loc是oj的空间位置,oj.S是oj的属性值对。
[0025] 在上述方案的基础上,B为布尔表达式:
[0026]
[0027] 为一个谓词集合,其中i∈[1,n],i∈N*。
[0028] 在上述方案的基础上,计算q'的修改代价p',计算公式为:
[0029]
[0030] 其中,β1,β2,β3,β4分别表示是cost函数中k值、关键字、属性种类、属性值的权重;βi≥0且 k'是精炼查询q'的查询结果集的大小,k0是初始查询q的结果集的大小,km是保留初始查询关键字和属性,且所有的缺失对象都出现在查询结果中时结果集的大小,用km-k0规范化k'-k0;Δdoc是从q.doc0调整到q'.doc所需改变的关键字的数量,其中缺失对象集M={m1,m2,...,mj},通过|q.doc0∪M.doc|来规范化Δdoc;ΔAn是从初始查询调整到精炼查询所需改变的属性种类的数量,通过|q.B∪M.B|来规范化ΔAn; n是q.B和M.B所包含的属性的总和;Δvi是包含属性Ai的所有对
象关于该属性的属性值的最大差值;|vi'-vi|是属性Ai中当前查询属性值vi'与初始查询属性值vi之间的差值的绝对值,且|vi'-vi|≤Δvi,通过Δvi来规范化|vi'-vi|。
[0031] 在上述方案的基础上,计算查询q和对象o之间的相似性得分,计算公式为:
[0032]
[0033] 其中α是0到1之间的一个变量,用来定义距离邻近度与文本相关性之间的相对重要性,d(q.loc,o.loc)表示的是查询q与对象o之间的欧氏距离,dmax(q.loc,O.loc)表示的是查询点q到对象集合O中的所有对象的最大距离,用对象集O中所有对象间距离的最大值表示。
[0034] 在上述方案的基础上,根据预设的非叶子结点筛选规则选出符合条件的AIR树的非叶子结点,得出待筛选的叶子结点的集合;根据预设的叶子结点筛选规则选出符合条件的AIR树的叶子结点,具体包括以下步骤:
[0035] 将AIR树的非叶子结点加入待处理的非叶子结点集合;
[0036] 判断待处理的非叶子结点集合中当前结点是否满足非叶子结点筛选规则;
[0037] 若不满足,过滤掉该结点;若满足,则该结点是符合条件AIR树的非叶子结点,读取该非叶子结点的所有子结点,若其子结点为非叶子结点,将其子结点加入待处理的非叶子结点集合,若其子结点为叶子结点,将其子结点加入待筛选的叶子结点的集合;
[0038] 判断待筛选的叶子结点中当前节点是否满足叶子结点筛选规则;若满足,记录为符合条件的AIR树的叶子结点,否则,过滤掉该结点。
[0039] 在上述方案的基础上,所述非叶子结点筛选规则为:
[0040] a)是AIR树的非叶子结点;
[0041] b)在该结点上具有查询q'的所有属性类别;
[0042] c)查询q'的每一个属性值范围与该结点的对应属性值范围有交集;
[0043] d)查询q'的关键字与该结点的倒排文件关键字符合关键字匹配;
[0044] e)满足关于q'和结点的之间空间距离的不等式:
[0045]
[0046] 在上述方案的基础上,所述叶子结点筛选规则为:
[0047] a)查询q'与该结点满足综合匹配;
[0048] b)查询q'和该结点之间的空间距离满足以下不等式:
[0049]
[0050] 本发明提供一种用AIR树解决SKQwhy-not问题的系统,包括:
[0051] AIR树索引构建模,其用于:获取所有对象o,构建AIR树索引;
[0052] 候选列表构建模块,其用于:获取初始查询q=(q.loc,q.doc0,q.B,k,α)和缺失对象集M;根据缺失对象的关键字的频率递减的顺序构建候选关键字列表CKS、根据缺失对象的相似性得分递减的顺序构建候选属性值对列表CAS;将精炼查询q'的关键字集q'.doc和属性值对q'.B'分别设置为q.doc0和q.B;
[0053] 精炼查询模块,其用于:有序地抽取CKS中的关键字和CAS中的属性值对,分别添加至查询q'的关键字集q'.doc和查询q'的属性值对q'.B'中,形成新的精炼查询q';分别对各个精炼查询q'进行处理以找出最佳精炼查询,直至CKS和CAS都为空;分别对各个精炼查询q'进行处理,具体包括:
[0054] 计算q'的修改代价p',过滤掉p'≥pc的查询q',pc为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中的查询qb的修改代价;
[0055] 对于p'
[0056] 将符合条件的叶子结点指向的对象添加到满足查询q'要求的对象集中,并计算查询q'和对象之间的相似性得分;
[0057] 对满足查询q'要求的对象集中的所有对象均根据其相似性得分从高至低排序,直到所有原始结果对象和所有缺失对象均出现,获得k'个对象;
[0058] 如果k'≤km,km为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中时结果集的大小,则计算q'的修改代价p',如果p'
[0059] 在上述方案的基础上,AIR树索引构建模块具体用于:
[0060] 获取所有对象o,构建AIR树索引;
[0061] AIR树的每一个非叶子结点Ri包含四个属性:<Ri.id,Ri.MBR,Ri.S,Ri.Address>,其中Ri.id是结点的id,Ri.MBR是包含结点Ri中所有对象的最小边界矩形,Ri.Address是Ri的所有子结点的地址列表,Ri.S是Ri中所有子结点的属性值对的并集;每一个非叶子结点Ri与一个倒排文件相关联,所述倒排文件由关键字列表组成,每个关键字都指向包含该关键字的Ri的子节点的ID的列表;
[0062] AIR树的每一个叶子结点Ri中每个对象oj的信息包含三个属性:(oj.id,oj.loc,oj.S),其中oj.id是对象id,oj.loc是oj的空间位置,oj.S是oj的属性值对。
[0063] 在上述方案的基础上,B为布尔表达式:
[0064]
[0065] 为一个谓词集合,其中i∈[1,n],i∈N*。
[0066] 在上述方案的基础上,所述精炼查询模块具体用于:
[0067] 将AIR树的非叶子结点加入待处理的非叶子结点集合;
[0068] 判断待处理的非叶子结点集合中当前结点是否满足非叶子结点筛选规则;
[0069] 若不满足,过滤掉该结点;若满足,则该结点是符合条件AIR树的非叶子结点,读取该非叶子结点的所有子结点,若其子结点为非叶子结点,将其子结点加入待处理的非叶子结点集合,若其子结点为叶子结点,将其子结点加入待筛选的叶子结点的集合;
[0070] 判断待筛选的叶子结点中当前节点是否满足叶子结点筛选规则;若满足,记录为符合条件的AIR树的叶子结点,否则,过滤掉该结点。
[0071] 在上述方案的基础上,所述非叶子结点筛选规则为:
[0072] a)是AIR树的非叶子结点;
[0073] b)在该结点上具有查询q'的所有属性类别;
[0074] c)查询q'的每一个属性值范围与该结点的对应属性值范围有交集;
[0075] d)查询q'的关键字与该结点的倒排文件关键字符合关键字匹配;
[0076] e)满足关于q'和结点的之间空间距离的不等式:
[0077]
[0078] 在上述方案的基础上,所述叶子结点筛选规则为:
[0079] a)查询q'与该结点满足综合匹配;
[0080] b)查询q'和该结点之间的空间距离满足以下不等式:
[0081]
[0082] 与现有技术相比,本发明的优点在于:
[0083] 本发明通过将对象的数字属性以布尔表达式的形式表示,更接近现实应用场景;并设计AIR树来巧妙的组织对象信息,同时设计出相应的查询策略,AIR树充分利用了空间修剪和文本修剪功能,以尽早减少不合格的索引树分支。本发明通过修改查询q',用最小的修改代价,满足在查询结果中所有缺失对象均出现,进而实现解决空间关键字查询中why-not问题。
附图说明
[0084] 图1为背景技术的对象集实例示意图;
[0085] 图2为本发明实施例的用AIR树对对象进行划分的示意图;
[0086] 图3为本发明实施例的AIR树索引的一个实例的结构示意图;
[0087] 图4为本发明实施例的基于AIR树索引的算法示意图。

具体实施方式

[0088] 本发明实施例提供一种用AIR树解决SKQwhy-not问题的方法,包括以下步骤:
[0089] 获取所有对象o,构建AIR树索引;
[0090] 获取初始查询q=(q.loc,q.doc0,q.B,k,α)和缺失对象集M,q.loc表示查询q所在位置,q.doc0表示查询q关键字集,q.B为布尔表达式,用来表示属性值对,k表示取查询结果排名的前k位,a为0到1之间的一个变量,用来定义距离邻近度与文本相关性之间的相对重要性;根据缺失对象的关键字的频率递减的顺序构建候选关键字列表CKS、根据缺失对象的相似性得分递减的顺序构建候选属性值对列表CAS;将精炼查询q'的关键字集q'.doc和属性值对q'.B'分别设置为q.doc0和q.B;
[0091] 有序地抽取CKS中的关键字和CAS中的属性值对,分别添加至查询q'的关键字集q'.doc和查询q'的属性值对q'.B'中,形成新的精炼查询q';分别对各个精炼查询q'进行处理以找出最佳精炼查询,直至CKS和CAS都为空;
[0092] 分别对各个精炼查询q'进行处理,具体包括:
[0093] 计算q'的修改代价p',过滤掉p'≥pc的查询q',pc为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中的查询qb的修改代价;
[0094] 对于p'
[0095] 将符合条件的叶子结点指向的对象添加到满足查询q'要求的对象集中,并计算查询q'和对象之间的相似性得分;
[0096] 对满足查询q'要求的对象集中的所有对象均根据其相似性得分从高至低排序,直到所有原始结果对象和所有缺失对象均出现,获得k'个对象;
[0097] 如果k'≤km,km为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中时结果集的大小,则计算q'的修改代价p',如果p'
[0098] 以下结合附图对本发明的实施例作进一步详细说明。
[0099] 一、增强型空间关键字top-k查询的定义
[0100] 谓词是构成布尔表达式的基本组件。给定四元组(A,fopt,fopd,x),其中A是属性,fopt是操作数,fopd是操作符,x是输入的值,可以更方便地定义谓词。
[0101] 定义1:谓词。
[0102] 如果一个映射函数p满足 那么 就是一个谓词。其中,若输入值x在谓词规定范围内,那么映射函数将返回1,否则就返回0。
[0103] 定义2:布尔表达式。
[0104] 已知一个谓词集合 其中i∈[1,n],i∈N*,那么布尔表达式B可以定义如下:
[0105]
[0106] 定义3:文本-空间对象。
[0107] 已知一个空间点o.loc,一组关键字集合o.doc和一组属性-值对{,...,,...,},文本空间对象o可以表示如下:
[0108] o=<o.loc,o.doc,o.S>,其中o.S={(A1=v1)∩(A1=v1)∩…∩(An=vn)}[0109] 定义4:增强型空间关键字查询。
[0110] 已知一个空间点q.loc,一个关键字集合q.doc0和一个布尔表达式q.B,那么一个增强型空间关键字查询q可以表达为:
[0111] q=<q.loc,q.doc0,q.B>
[0112] 定义5:关键字匹配。
[0113] 对于查询q和对象o,当且仅当q.doc和o.doc包含相同的关键字时,查询q和对象o才称为关键字匹配,也即:q.doc∩o.doc≠φ
[0114] 这里使用 表示关键字匹配
[0115] 定义6:属性匹配。
[0116] 对于查询q和对象o,当且仅当满足以下两个条件:a)q.B中的所有属性都包含在o.S中;b) (假设属性q.B中的属性Ai与o.S中的属性Ai'相等),其中: (Ai'=vi')∈o.S,那么查询q和
对象o就是属性匹配。
[0117] 使用 表示属性匹配
[0118] 定义7:综合匹配。
[0119] 当且仅当增强型空间关键字查询q和文本空间对象o同时满足关键字匹配和属性匹配时,q和o就是综合匹配,也即:
[0120]
[0121] 这里使用 表示综合匹配
[0122] 现在定义一个Rank函数来度量查询q和对象o之间的相似性得分:
[0123]
[0124] 其中α是0到1之间的一个变量,用来定义距离邻近度与文本相关性之间的相对重要性,d(q.loc,o.loc)表示的是查询q与对象o之间的欧氏距离,dmax(q.loc,O.loc)表示的是查询点q到对象集O中的所有对象的最大距离,具体用对象集O中所有对象间距离的最大值表示。
[0125] 定义8:增强型空间关键字top-k查询。
[0126] 已知一个对象集合O,增强型空间关键字top-k查询q=(loc,doc0,B,k,α)检索一个对象集合O’, 它满足:|O’|=k,且 o’∈O-O’,Rank(q,o)>Rank(q,o’).[0127] 二、增强型空间关键字top-k查询中的why-not问题
[0128] 当用户发起一个增强型Top-k空间关键字查询q=(loc,doc0,B,k,α),如果查询参数,例如文本描述、查询属性、k值和α设置不合理,这就会导致一个或者多个用户期望的对象可能意外缺失了,这种对象就称为缺失对象,用M={m1,m2,...,mj}表示。从而用户将会提出一个关于缺失对象集M={m1,m2,...,mj}的why-not问题,来询问为什么这些期望的对象会缺失,并寻求一个完善的、能够包含所有缺失对象的结果集的精炼查询q'=(loc,doc,B',k',α)。由于查询的位置通常是确定的,所以可以通过改变查询关键字集合、布尔表达式、k值和α值来改善初始查询。
[0129] 考虑到精炼查询q'的结果集包含所有的缺失对象,使q'.doc除了包含原始关键字集,也将部分或者所有的缺失对象的关键字包含进去,即,CKS是一个按照关键字频率排序的缺失对象的有序关键字列表,函数Out_List(CKS)表示从CKS中取出第一个关键字,并返回该关键字。例如在例1中通过查询q筛选掉o1,o2,o4,o6,o7,假如o4和o6是缺失的对象,关键字“center”的频率高于关键字“Cosmic”,那么在CKS中“center”就排在“Cosmic”的前面,此时CKS={“center”,“Comic”}。类似的,让q'.B'满足除原始属性值对集之外的、所有缺失对象的每个属性值对的要求,即,CAS表示的是按照对象相似性得分排序的、缺失对象的有序属性值对列表。函数Out_List(CAS)表示从CAS中取出、并返回第一个属性值对。综合以上例子,假设o4的相似性得分排名比o6的高,因此o4的属性值对就排在o6的属性值对前面。这是因为高得分对象一般是用户更加期望得到的,所以他们的属性值更符合用户的需求。因此,优先考虑o4的属性值对,我们可以得到:
[0130] q′.B′=q.B∪Out_List(CAS)=q.B∪o4.B=(avg-price≤42)∧(Rating>4.3)∧Popularity>700)
[0131] 其中,q.B=(avg-price<42∧Rating>4.3∧Popularity>700),o4.S=(avg-price=42∧Rating=4.4∧Popularity=900)。
[0132] 由于o6仍然不满足此精炼查询,因此考虑其属性值对,即,o6.S=(avg-price=35∧Rating=4.6∧Popularity=NULL),因而使得q′.B′=(avg-price≤42)∧(Rating>4.3)。
[0133] 考虑到改变不同查询参数的值会对查询的优化产生不同的影响,精炼查询q'与初始查询q之间的修改代价可以定义如下:
[0134]
[0135] 其中,β1,β2,β3,β4分别表示是cost函数中k值、关键字、属性种类、属性值的权重。βi≥0且 k'是精炼查询q'的查询结果集的大小,k0是初始查询q的结果集的大小,用km-k0规范化k'-k0。这是因为在许多前人的研究中,是通过保留初始查询关键字和属性,增大k0到km直到所有的缺失对象都出现在查询结果集中的方法来获取基本的精炼查询qb。
与之相反,较佳的精炼查询可以通过修改k值、关键字、属性种类和属性值来使得查询修改代价降低。其中k'-k0小于或等于km-k0。Δdoc是从q.doc0调整到q'.doc所需改变关键字的数量, 其中缺失对象集M={m1,m2,...,mj}。这里通过|q.doc0∪M.doc|
来规范化Δdoc;ΔAn是从初始查询调整到精炼查询所需改变的属性种类的数量,这里通过|q.B∪M.B|来规范化ΔAn;然后 n是q.B和M.B所包含的属性的总和。Δvi是
包含属性Ai的所有对象关于该属性的属性值的最大差值。|vi'-vi|是属性Ai中当前查询属性值vi'与初始查询属性值vi之间的差值的绝对值,且|vi'-vi|≤Δvi。这里通过Δvi来规范化|vi'-vi|。
[0136] ΔAn和Δdoc可以通过编辑距离来计算。在图1的例子中,将初始查询q修改成精炼查询q',其中q'.doc="{cat},{cafe}",q'.A=(avg-price<42)∪(Rating>4.5)∪(Popularity>700),则ΔAn=1,Δdoc=1。
[0137] 三、采用AIR树索引的解决空间关键字查询中why-not问题的方法
[0138] IR树是R-树的变种,它是一棵将倒排文件与R-tree的一些结点组合而形成的混合索引。对于同时包含空间信息和文本信息的数据,它具有很高的检索和查询效率。本发明实施例设计了一种将数值属性引入到IR树中的索引,称为AIR树,用于解决增强型空间关键字top-k查询的why-not问题。
[0139] AIR树的每一个非叶子结点Ri都包含了四个属性<Ri.id,Ri.MBR,Ri.S,Ri.Address>,其中Ri.id是结点的id,Ri.MBR是包含结点Ri中所有对象的最小边界矩形,Ri.Address是Ri的所有子结点的地址列表,Ri.S是Ri中所有子结点的属性值对的并集。例如在图1中,o1.S=(avg.price=43∧Rating=4.5∧Popularity=1000),o4.S=(avg-price=42∧Rating=4.4∧popularity=900),正如图2所示R4包含对象o1、o4,因此:
[0140] R4.S=Cover(o1.S,o4.S)
[0141] =(avg-price∈[42,43])∧(Rating∈[4.4,4.5])∧(Popularity∈[900,1000])[0142] 在这里,函数Cover(oi.S,oj.S)返回的是一个值区间的列表,其中对每个属性Ak,Ak∈oi.S∪oj.S,其对应的值区间都覆盖oi.S.Ak和oj.S.Ak之间的范围。其中Cover()函数也适用于两个非叶子结点Ri和Rj,同时适用于多个参数的情形。同理,R5.S=(avg-price=40)∧(Rating∈[4.4,4.4])∧(Popularity∈[800,1000])。
[0143] 除此之外,每一个非叶子结点Ri与一个倒排文件相关联,所述倒排文件由关键字列表组成,每个关键字都指向包含该关键字的Ri的子节点的ID的列表。
[0144] 对于AIR树的每一个叶子结点Ri,它将Ri中每个对象oj的信息包存为三元组(oj.id,oj.loc,oj.S)。其中oj.id是对象id,oj.loc是oj的空间位置,oj.S是oj的属性值对。
[0145] 表2:图3的Inverted file 2
[0146] keyword Child nodes which satisfy keyword matching with query qStarbucks R4
Caf R4,R5
Cat R5
Central R4
[0147] 图2给出图1中文本空间对象的划分结果。图3给出对图2中对象构造的AIR树索引。表2显示了图3中的倒排文件2的相关信息。在图3中,AIR树的每个非叶结点都链接一个唯一的倒排文件。在查询处理过程中,可以根据结点的倒排文件和属性摘要对结点的子树进行修剪,以提高查询处理效率。例如,根据链接到结点R2的倒排文件2,当查询关键字为“StarBucks”时,可以直接确定R2的子结点R4被访问,而另一个子结点R5被安全地忽略。这是因为,正如表2所示R4包含关键字“StarBucks”的对象,而R5不包含这样的对象。此外,每个AIR树结点n包含唯一的属性摘要。结点n的属性摘要是通过调用函数Cover(),将其所有子结点的属性摘要作为函数参数而获得的。通过比较查询属性和结点属性摘要,可以确定树结点的某些子树是否被修剪。例如,R6.Rating的属性值范围为[4.5,4.6],这是由于o5.Rating=4.5和o6.Rating=4.6。类似地,R7.Rating的值范围也为[4.3,4.6],因而R3.Rating的值范围也为[4.3,4.6]。如果查询属性q.Rating要求为“>4.6”,则可以安全地修剪R3的子树。
[0148] 参见图4所示,算法1阐述了基于AIR树的增强型空间关键字top-k查询why-not问题处理的详细步骤。在处理初始查询之后,某些用户期望的对象可能会从查询结果集中缺失。解决why-not问题主要目标是找到具有最低代价的精炼查询,其结果集既包含初始查询结果集中的对象,又包含用户所需的缺失对象。
[0149] 基于AIR树的方法以AIR树索引、初始查询q,缺失对象集M、候选关键字列表CKS、候选属性值对列表CAS、基本精炼查询qb中的修改代价pc、qb中查询结果对象的数量km、qb的结果集中的对象的最低相似性得分Rm作为算法的输入,并输出最佳的精炼查询q'。具体而言,CKS是根据关键字的频率递减的顺序排列的缺失对象的关键字有序列表,而CAS是根据缺失对象的相似性得分递减的顺序排列的缺失对象的属性值对有序列表。这两个列表是预先构建的,候选关键字和候选属性值对的处理顺序在获取精炼查询中起着重要作用。对于Pc,其值等于使用式(2)计算所得的cost(q,qb)。qb是之前讨论过的基本精炼查询。将队列D、队列D’、指针TNode、集合RRS初始化为空,分别用来存储符合条件的AIR树结点、符合条件的AIR树的叶子结点、正在访问的AIR树结点和满足精炼查询要求的对象(算法1第4行)。接下来,将精炼查询q'的关键字集q'.doc和属性值对q'.B'分别设置为q.doc0和q.B(第5行)。
[0150] 下面,将有序地抽取CKS中的关键字和CAS中的属性值对,并分别将它们添加到q'.doc和q'.B'中形成新的精炼查询,对这些精炼查询进行处理以找出最佳的精炼查询,直到CKS和CAS都为空。
[0151] 第7-30行给出的是每一个精炼查询q'的处理步骤。首先,通过参数修改获得查询q'。特别是,将CKS中的第一个关键字和CAS中的第一个属性值对取出,并分别添加到q'.doc和q'.B'中(第7-8行)。令k'等于k0(第9行)。在这里,函数Out_List(CKS)取出其第一个关键字并返回此关键字,而函数Out_List(CAS)的作用类似于Out_List(CKS)。然后,可以根据式(2)计算q'的修改代价p',以尽早过滤比qb修改代价高的精炼查询。当p'≥pc时,循环终止(第10-12行)。否则,将继续对q'的处理过程:将AIR树的根结点入队到队列D(第13行),然后依次将AIR树的合格非叶子结点入队到队列D进行处理,其处理结果是得到用来存储合格的叶子结点的队列D'(第14-21行)。
[0152] 当队列D不为空时,按如下顺序处理队列D中的元素:1)弹出队列D的头元素(结点)并让指针TNode指向该结点(第15行);2)如果指针TNode指向的结点满足以下要求:a)是AIR树的非叶子结点;b)可以在TNode.S上找到精炼查询q'的所有属性类别;c)q'的每一个属性值范围与TNode的对应属性值范围有交集;d)精炼查询关键字与TNode的倒排文件关键字符合关键字匹配;e)满足以下关于q'和TNode之间空间距离的不等式(式(3)):
[0153]
[0154] 那么TNode可能包含结果对象,并被称为“合格”,需要被处理(第16行)。
[0155] 上述过程中,式3的正确性由引理1保证。
[0156] 引理1:已知AIR树的一个结点Ri,精炼查询q'=(loc,doc,B',k',α),qb的结果集(也即qb.RRS)中的所有对象的最低相似性得分Rm,如果那么结点Ri将被忽略。
[0157] 证明:假设 TNode包含结果对象o’,那么就有 然后,根据式2,有
[0158]
[0159] 因此,o'不能成为结果对象,这与假设矛盾的。故引理1成立。
[0160] 对于TNode的每个合格子结点ns,如果ns是非叶子结点,则将ns入队到队列D中。否则,将ns入队到队列D'(第17-21行)。当队列D的处理完成后,AIR树的所有合格叶结点都已添加到队列D'中。
[0161] 接下来,处理队列D'以获得查询结果q'.RRS。特别地,当队列D'不为空时,按如下顺序处理D'的元素:1)弹出D'的头元素(结点)并由TNode指向该元素(第23行);2)如果TNode指向的结点满足以下要求:a)精炼查询q'与TNode满足综合匹配;b)q'和TNode之间的空间距离满足以下不等式(式(4)):
[0162] 式4的正确性证明与式3类似。
[0163] 那么TNode的相似性得分可以根据式(1)计算出来,并将TNode指向的对象添加到RRS中(第24-25行)。
[0164] 接下来,对RRS中的所有对象均根据其相似性得分进行排序。直到所有原始结果对象和所有缺失对象均出现,可以获得得分最高的前k'个对象(第26行)。如果k'≤km,则计算出q'的成本(第28行);如果p'
[0165] 本发明实施例还提供一种用AIR树解决SKQwhy-not问题的系统,包括:
[0166] AIR树索引构建模块,其用于:获取所有对象o,构建AIR树索引;
[0167] 候选列表构建模块,其用于:获取初始查询q=(q.loc,q.doc0,q.B,k,α)和缺失对象集M;根据缺失对象的关键字的频率递减的顺序构建候选关键字列表CKS、根据缺失对象的相似性得分递减的顺序构建候选属性值对列表CAS;将精炼查询q'的关键字集q'.doc和属性值对q'.B'分别设置为q.doc0和q.B;
[0168] 精炼查询模块,其用于:有序地抽取CKS中的关键字和CAS中的属性值对,分别添加至查询q'的关键字集q'.doc和查询q'的属性值对q'.B'中,形成新的精炼查询q';分别对各个精炼查询q'进行处理以找出最佳精炼查询,直至CKS和CAS都为空;分别对各个精炼查询q'进行处理,具体包括:
[0169] 计算q'的修改代价p',过滤掉p'≥pc的查询q',pc为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中的查询qb的修改代价;
[0170] 对于p'
[0171] 将符合条件的叶子结点指向的对象添加到满足查询q'要求的对象集中,并计算查询q'和对象之间的相似性得分;
[0172] 对满足查询q'要求的对象集中的所有对象均根据其相似性得分从高至低排序,直到所有原始结果对象和所有缺失对象均出现,获得k'个对象;
[0173] 如果k'≤km,km为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中时结果集的大小,则计算q'的修改代价p',如果p'
[0174] 作为优选的实施方式,AIR树索引构建模块具体用于:
[0175] 获取所有对象o,构建AIR树索引;
[0176] AIR树的每一个非叶子结点Ri包含四个属性:
[0177] <Ri.id,Ri.MBR,Ri.S,Ri.Address>,其中Ri.id是结点的id,Ri.MBR是包含结点Ri中所有对象的最小边界矩形,Ri.Address是Ri的所有子结点的地址列表,Ri.S是Ri中所有子结点的属性值对的并集;每一个非叶子结点Ri与一个倒排文件相关联,所述倒排文件由关键字列表组成,每个关键字都指向包含该关键字的Ri的子节点的ID的列表;
[0178] AIR树的每一个叶子结点Ri中每个对象oj的信息包含三个属性:(oj.id,oj.loc,oj.S),其中oj.id是对象id,oj.loc是oj的空间位置,oj.S是oj的属性值对。
[0179] 作为优选的实施方式,B为布尔表达式:
[0180]
[0181] 为一个谓词集合,其中i∈[1,n],i∈N*。
[0182] 作为优选的实施方式,所述精炼查询模块具体用于:
[0183] 将AIR树的非叶子结点加入待处理的非叶子结点集合;
[0184] 判断待处理的非叶子结点集合中当前结点是否满足非叶子结点筛选规则;
[0185] 若不满足,过滤掉该结点;若满足,则该结点是符合条件AIR树的非叶子结点,读取该非叶子结点的所有子结点,若其子结点为非叶子结点,将其子结点加入待处理的非叶子结点集合,若其子结点为叶子结点,将其子结点加入待筛选的叶子结点的集合;
[0186] 判断待筛选的叶子结点中当前结点是否满足叶子结点筛选规则;若满足,记录为符合条件的AIR树的叶子结点,否则,过滤掉该结点。
[0187] 作为优选的实施方式,所述非叶子结点筛选规则为:
[0188] a)是AIR树的非叶子结点;
[0189] b)在该结点上具有查询q'的所有属性类别;
[0190] c)查询q'的每一个属性值范围与该结点的对应属性值范围有交集;
[0191] d)查询q'的关键字与该结点的倒排文件关键字符合关键字匹配;
[0192] e)满足关于q'和结点的之间空间距离的不等式:
[0193]
[0194] 作为优选的实施方式,所述叶子结点筛选规则为:
[0195] a)查询q'与该结点满足综合匹配;
[0196] b)查询q'和该结点之间的空间距离满足以下不等式:
[0197]
[0198] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈