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

采用AkC解决SKQwhy-not问题的方法及系统

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

专利汇可以提供采用AkC解决SKQwhy-not问题的方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种采用AkC解决SKQwhy-not问题的方法及系统,涉及空间关键字查询技术领域,本发明通过将对象的数字属性以布尔表达式的形式表示,更接近现实应用场景;设计AkC索引来巧妙的组织对象信息,同时设计出相应的查询策略,并通过 修改 查询q',用最小的修改代价,满足在查询结果中所有缺失对象均出现,解决空间关键字查询中why-not问题。本发明所采用的AkC索引,根据对象与其集群质心之间的距离将空间划分为多个集群,具有良好的空间过滤能 力 ;在每个集群中建立了关键词倒排文件,具有很好的文本过滤能力;在每个集群中创建属性倒排文件,并将每个群集的属性 摘要 信息存储在查找表中,具有良好的属性过滤能力。,下面是采用AkC解决SKQwhy-not问题的方法及系统专利的具体信息内容。

1.一种采用AkC解决SKQwhy-not问题的方法,其特征在于,包括以下步骤:
获取所有对象o,将对象o划分为k个集群,构建AkC索引;
获取初始查询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'剪枝策略删减掉不符合条件的集群,得出待处理的集群;
对于待处理的集群,根据AkC索引和预设的筛选条件筛出符合条件的集群;
将符合条件的集群包含的对象添加到满足查询q'要求的对象集中,并计算查询q'和对象之间的相似性得分;
对满足查询q'要求的对象集中的所有对象均根据其相似性得分从高至低排序,直到所有原始结果对象和所有缺失对象均出现,获得k'个对象;
如果k'≤km,km为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中时结果集的大小,则计算q'的修改代价p',如果p'2.如权利要求1所述的方法,其特征在于:获取所有对象o,将对象o划分为k个集群,构建AkC索引,具体包括以下步骤:
通过使用k均值聚类法将所有对象o划分为k个集群;
采用查找表来保存每个集群的集群ID和属性摘要信息,集群的属性摘要信息是该集群所有对象的属性值对的并集;
每个集群对应该集群的一个关键字倒排文件和一个属性倒排文件。
3.如权利要求2所述的方法,其特征在于:对于p'判断查询q'和集群Ci之间的空间距离是否满足以下不等式:
若满足,作为待处理的集群,若不满足,过滤掉该集群。
4.如权利要求3所述的方法,其特征在于:对于待处理的集群,根据AkC索引和预设的筛选条件筛出符合条件的集群,具体包括以下步骤:
如果查询属性q'.B'和集群所链接项的摘要信息满足属性匹配,则将访问该集群;否则,忽略该集群;
对于被访问的集群,如果查询属性q'.B'与集群的属性倒排文件的属性信息满足属性匹配,且精炼查询的关键字q'.doc'与集群的关键字倒排文件的关键字满足关键字匹配,则该集群为符合条件的集群;否则,忽略该集群。
5.如权利要求1所述的方法,其特征在于:B为布尔表达式:
为一个谓词集合,其中i∈[1,n],i∈N*。
6.如权利要求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|。
7.如权利要求1所述的方法,其特征在于:计算查询q和对象o之间的相似性得分,计算公式为:
其中α是0到1之间的一个变量,用来定义距离邻近度与文本相关性之间的相对重要性,d(q.loc,o.loc)表示的是查询q与对象o之间的欧氏距离,dmax(q.loc,O.loc)表示的是查询点q到对象集合O中的所有对象的最大距离,用对象集O中所有对象间距离的最大值表示。
8.一种采用AkC解决SKQwhy-not问题的系统,其特征在于,包括:
AkC索引构建模,其用于:获取所有对象o,将对象o划分为k个集群,构建AkC索引;
候选列表构建模块,其用于:获取初始查询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'对于待处理的集群,根据AkC索引和预设的筛选条件筛出符合条件的集群;
将符合条件的集群包含的对象添加到满足查询q'要求的对象集中,并计算查询q'和对象之间的相似性得分;
对满足查询q'要求的对象集中的所有对象均根据其相似性得分从高至低排序,直到所有原始结果对象和所有缺失对象均出现,获得k'个对象;
如果k'≤km,km为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中时结果集的大小,则计算q'的修改代价p',如果p'9.如权利要求8所述的系统,其特征在于:所述AkC索引构建模块具体用于:
获取所有对象o,通过使用k均值聚类法将所有对象o划分为k个集群;
采用查找表来保存每个集群的集群ID和属性摘要信息,集群的属性摘要信息是该集群所有对象的属性值对的并集;
每个集群对应该集群的一个关键字倒排文件和一个属性倒排文件。
10.如权利要求9所述的系统,其特征在于:所述精炼查询模块对于p'判断查询q'和集群Ci之间的空间距离是否满足以下不等式:
若满足,作为待处理的集群,若不满足,过滤掉该集群。
11.如权利要求10所述的系统,其特征在于:所述精炼查询模块对于待处理的集群,根据AkC索引和预设的筛选条件筛出符合条件的集群,具体包括以下步骤:
如果查询属性q'.B'和集群所链接项的摘要信息满足属性匹配,则将访问该集群;否则,忽略该集群;
对于被访问的集群,如果查询属性q'.B'与集群的属性倒排文件的属性信息满足属性匹配,且精炼查询的关键字q'.doc'与集群的关键字倒排文件的关键字满足关键字匹配,则该集群为符合条件的集群;否则,忽略该集群。
12.如权利要求8所述的系统,其特征在于:B为布尔表达式:
为一个谓词集合,其中i∈[1,n],i∈N*。

说明书全文

采用AkC解决SKQwhy-not问题的方法及系统

技术领域

[0001] 本发明涉及空间关键字查询技术领域,具体涉及一种采用AkC解决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] 针对现有技术中存在的缺陷,本发明的目的在于提供一种采用AkC解决SKQwhy-not问题的方法及系统,有效解决空间关键字查询中why-not问题。
[0011] 为达到以上目的,本发明采取的技术方案是:一种采用AkC解决SKQwhy-not问题的方法,包括以下步骤:
[0012] 获取所有对象o,将对象o划分为k个集群,构建AkC索引;
[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] 对于待处理的集群,根据AkC索引和预设的筛选条件筛出符合条件的集群;
[0019] 将符合条件的集群包含的对象添加到满足查询q'要求的对象集中,并计算查询q'和对象之间的相似性得分;
[0020] 对满足查询q'要求的对象集中的所有对象均根据其相似性得分从高至低排序,直到所有原始结果对象和所有缺失对象均出现,获得k'个对象;
[0021] 如果k'≤km,km为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中时结果集的大小,则计算q'的修改代价p',如果p'
[0022] 在上述方法的基础上,获取所有对象o,将对象o划分为k个集群,构建AkC索引,具体包括以下步骤:
[0023] 通过使用k均值聚类法将所有对象o划分为k个集群;
[0024] 采用查找表来保存每个集群的集群ID和属性摘要信息,集群的属性摘要信息是该集群所有对象的属性值对的并集;
[0025] 每个集群对应该集群的一个关键字倒排文件和一个属性倒排文件。
[0026] 在上述方法的基础上,对于p'
[0027] 判断查询q'和集群Ci之间的空间距离是否满足以下不等式:
[0028]
[0029] 若满足,作为待处理的集群,若不满足,过滤掉该集群。
[0030] 在上述方法的基础上,对于待处理的集群,根据AkC索引和预设的筛选条件筛出符合条件的集群,具体包括以下步骤:
[0031] 如果查询属性q'.B'和集群所链接项的摘要信息满足属性匹配,则将访问该集群;否则,忽略该集群;
[0032] 对于被访问的集群,如果查询属性q'.B'与集群的属性倒排文件的属性信息满足属性匹配,且精炼查询的关键字q'.doc'与集群的关键字倒排文件的关键字满足关键字匹配,则该集群为符合条件的集群;否则,忽略该集群。
[0033] 在上述方法的基础上,B为布尔表达式:
[0034]
[0035] 为一个谓词集合,其中i∈[1,n],i∈N*。
[0036] 在上述方法的基础上,计算q'的修改代价p',计算公式为:
[0037]
[0038] 其中,β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|。
[0039] 在上述方法的基础上,计算查询q和对象o之间的相似性得分,计算公式为:
[0040]
[0041] 其中α是0到1之间的一个变量,用来定义距离邻近度与文本相关性之间的相对重要性,d(q.loc,o.loc)表示的是查询q与对象o之间的欧氏距离,dmax(q.loc,O.loc)表示的是查询点q到对象集合O中的所有对象的最大距离,用对象集O中所有对象间距离的最大值表示。
[0042] 本发明还提供一种采用AkC解决SKQwhy-not问题的系统,包括:
[0043] AkC索引构建模,其用于:获取所有对象o,将对象o划分为k个集群,构建AkC索引;
[0044] 候选列表构建模块,其用于:获取初始查询q=(q.loc,q.doc0,q.B,k,α)和缺失对象集M;根据缺失对象的关键字的频率递减的顺序构建候选关键字列表CKS、根据缺失对象的相似性得分递减的顺序构建候选属性值对列表CAS;将精炼查询q'的关键字集q'.doc和属性值对q'.B'分别设置为q.doc0和q.B;
[0045] 精炼查询模块,其用于:有序地抽取CKS中的关键字和CAS中的属性值对,分别添加至查询q'的关键字集q'.doc和查询q'的属性值对q'.B'中,形成新的精炼查询q';分别对各个精炼查询q'进行处理以找出最佳精炼查询,直至CKS和CAS都为空;分别对各个精炼查询q'进行处理,具体包括:
[0046] 计算q'的修改代价p',过滤掉p'≥pc的查询q',pc为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中的查询qb的修改代价;
[0047] 对于p'
[0048] 对于待处理的集群,根据AkC索引和预设的筛选条件筛出符合条件的集群;
[0049] 将符合条件的集群包含的对象添加到满足查询q'要求的对象集中,并计算查询q'和对象之间的相似性得分;
[0050] 对满足查询q'要求的对象集中的所有对象均根据其相似性得分从高至低排序,直到所有原始结果对象和所有缺失对象均出现,获得k'个对象;
[0051] 如果k'≤km,km为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中时结果集的大小,则计算q'的修改代价p',如果p'
[0052] 在上述方法的基础上,所述AkC索引构建模块具体用于:
[0053] 获取所有对象o,通过使用k均值聚类法将所有对象o划分为k个集群;
[0054] 采用查找表来保存每个集群的集群ID和属性摘要信息,集群的属性摘要信息是该集群所有对象的属性值对的并集;
[0055] 每个集群对应该集群的一个关键字倒排文件和一个属性倒排文件。
[0056] 在上述方法的基础上,所述精炼查询模块对于p'
[0057] 判断查询q'和集群Ci之间的空间距离是否满足以下不等式:
[0058]
[0059] 若满足,作为待处理的集群,若不满足,过滤掉该集群。
[0060] 在上述方法的基础上,所述精炼查询模块对于待处理的集群,根据AkC索引和预设的筛选条件筛出符合条件的集群,具体包括以下步骤:
[0061] 如果查询属性q'.B'和集群所链接项的摘要信息满足属性匹配,则将访问该集群;否则,忽略该集群;
[0062] 对于被访问的集群,如果查询属性q'.B'与集群的属性倒排文件的属性信息满足属性匹配,且精炼查询的关键字q'.doc'与集群的关键字倒排文件的关键字满足关键字匹配,则该集群为符合条件的集群;否则,忽略该集群。
[0063] 在上述方法的基础上,B为布尔表达式:
[0064]
[0065] 为一个谓词集合,其中i∈[1,n],i∈N*。
[0066] 与现有技术相比,本发明的优点在于:
[0067] 本发明通过将对象的数字属性以布尔表达式的形式表示,更接近现实应用场景;设计AkC索引来巧妙的组织对象信息,同时设计出相应的查询策略,并通过修改查询q',用最小的修改代价,满足在查询结果中所有缺失对象均出现,进而实现解决空间关键字查询中why-not问题。
[0068] 进一步的,本发明所采用的AkC索引,根据对象与其集群质心之间的距离将空间划分为多个集群,具有良好的空间过滤能;在每个集群中建立了关键词倒排文件,具有很好的文本过滤能力;不仅在每个集群中创建属性倒排文件,而且还将每个群集的属性摘要信息存储在查找表中,具有良好的属性过滤能力。附图说明
[0069] 图1为背景技术的对象集实例示意图;
[0070] 图2为本发明实施例的AkC的实例的示意图;
[0071] 图3为本发明实施例的用AkC索引获得的查询集群序列的示意图;
[0072] 图4为本发明实施例的基于AkC索引的算法示意图。

具体实施方式

[0073] 本发明实施例提供一种采用AkC解决SKQwhy-not问题的方法,包括以下步骤:
[0074] 获取所有对象o,将对象o划分为k个集群,构建AkC索引;
[0075] 获取初始查询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;
[0076] 有序地抽取CKS中的关键字和CAS中的属性值对,分别添加至查询q'的关键字集q'.doc和查询q'的属性值对q'.B'中,形成新的精炼查询q';分别对各个精炼查询q'进行处理以找出最佳精炼查询,直至CKS和CAS都为空;
[0077] 分别对各个精炼查询q'进行处理,具体包括:
[0078] 计算q'的修改代价p',过滤掉p'≥pc的查询q',pc为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中的查询qb的修改代价;
[0079] 对于p'
[0080] 对于待处理的集群,根据AkC索引和预设的筛选条件筛出符合条件的集群;
[0081] 将符合条件的集群包含的对象添加到满足查询q'要求的对象集中,并计算查询q'和对象之间的相似性得分;
[0082] 对满足查询q'要求的对象集中的所有对象均根据其相似性得分从高至低排序,直到所有原始结果对象和所有缺失对象均出现,获得k'个对象;
[0083] 如果k'≤km,km为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中时结果集的大小,则计算q'的修改代价p',如果p'
[0084] 以下结合附图对本发明的实施例作进一步详细说明。
[0085] 一、增强型空间关键字top-k查询的定义
[0086] 谓词是构成布尔表达式的基本组件。给定四元组(A,fopt,fopd,x),其中A是属性,fopt是操作数,fopd是操作符,x是输入的值,可以更方便地定义谓词。
[0087] 定义1:谓词。
[0088] 如果一个映射函数p满足 那么 就是一个谓词。其中,若输入值x在谓词规定范围内,那么映射函数将返回1,否则就返回0。
[0089] 定义2:布尔表达式。
[0090] 已知一个谓词集合 其中i∈[1,n],i∈N*,那么布尔表达式B可以定义如下:
[0091]
[0092] 定义3:文本-空间对象。
[0093] 已知一个空间点o.loc,一组关键字集合o.doc和一组属性-值对{,...,,...,},文本空间对象o可以表示如下:
[0094] o=<o.loc,o.doc,o.S>,其中o.S={(A1=v1)∩(A1=v1)∩…∩(An=vn)}[0095] 定义4:增强型空间关键字查询。
[0096] 已知一个空间点q.loc,一个关键字集合q.doc0和一个布尔表达式q.B,那么一个增强型空间关键字查询q可以表达为:
[0097] q=<q.loc,q.doc0,q.B>
[0098] 定义5:关键字匹配。
[0099] 对于查询q和对象o,当且仅当q.doc和o.doc包含相同的关键字时,查询q和对象o才称为关键字匹配,也即:q.doc∩o.doc≠φ
[0100] 这里使用 表示关键字匹配
[0101] 定义6:属性匹配。
[0102] 对于查询q和对象o,当且仅当满足以下两个条件:a)q.B中的所有属性都包含在o.S中;b) (假设属性q.B中的属性Ai与o.S中的属性Ai'相等),其中: (Ai'=vi')∈o.S,那么查询q和
对象o就是属性匹配。
[0103] 使用 表示属性匹配
[0104] 定义7:综合匹配。
[0105] 当且仅当增强型空间关键字查询q和文本空间对象o同时满足关键字匹配和属性匹配时,q和o就是综合匹配,也即:
[0106]
[0107] 这里使用 表示综合匹配
[0108] 现在定义一个Rank函数来度量查询q和对象o之间的相似性得分:
[0109]
[0110] 其中α是0到1之间的一个变量,用来定义距离邻近度与文本相关性之间的相对重要性,d(q.loc,o.loc)表示的是查询q与对象o之间的欧氏距离,dmax(q.loc,O.loc)表示的是查询点q到对象集O中的所有对象的最大距离,具体用对象集O中所有对象间距离的最大值表示。
[0111] 定义8:增强型空间关键字top-k查询。
[0112] 已知一个对象集合O,增强型空间关键字top-k查询q=(loc,doc0,B,k,α)检索一个对象集合O’, 它满足:|O’|=k,且 o’∈O-O’,Rank(q,o)>Rank(q,o’).[0113] 二、增强型空间关键字top-k查询中的why-not问题
[0114] 当用户发起一个增强型Top-k空间关键字查询
[0115] q=(loc,doc0,B,k,α),如果查询参数,例如文本描述、查询属性、k值和α设置不合理,这就会导致一个或者多个用户期望的对象可能意外缺失了,这种对象就称为缺失对象,用M={m1,m2,...,mj}表示。从而用户将会提出一个关于缺失对象集M={m1,m2,...,mj}的why-not问题,来询问为什么这些期望的对象会缺失,并寻求一个完善的、能够包含所有缺失对象的结果集的精炼查询q'=(loc,doc,B',k',α)。由于查询的位置通常是确定的,所以可以通过改变查询关键字集合、布尔表达式、k值和α值来改善初始查询。
[0116] 考虑到精炼查询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的属性值对,我们可以得到:
[0117] q'.B'=q.B∪Out_List(CAS)=q.B∪o4.B
[0118]      =(avg-price≤42)∧(Rating>4.3)∧Popularity>700)
[0119] 其中,q.B=(avg-price<42∧Rating>4.3∧Popularity>700),o4.S=(avg-price=42∧Rating=4.4∧Popularity=900)。
[0120] 由于o6仍然不满足此精炼查询,因此考虑其属性值对,即,o6.S=(avg-price=35∧Rating=4.6∧Popularity=NULL),因而使得q'.B'=(avg-price≤42)∧(Rating>4.3)。
[0121] 考虑到改变不同查询参数的值会对查询的优化产生不同的影响,精炼查询q'与初始查询q之间的修改代价可以定义如下:
[0122]
[0123] 其中,β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|。
[0124] ΔAn和Δdoc可以通过编辑距离来计算。在图1的例子中,将初始查询q修改成精炼查询q',其中q'.doc="{cat},{cafe}",q'.A=(avg-price<42)∪(Rating>4.5)∪(Popularity>700),则ΔAn=1,Δdoc=1。
[0125] 三、采用AkC索引的解决空间关键字查询中why-not问题的方法
[0126] k均值聚类是一种代表性的基于距离的聚类方法。基于这样的思想,两个对象的相似度和它们之间的距离是正相关的。对象被均匀地划分为k个群集,每个群集具有一个质心。与系统中的其他群集质心相比,群集中的对象与其质心之间的平均距离最小。本发明实施例提出一种基于k均值聚类的索引AkC,AkC是一个两层结构,第一层包括一个查找表和一个群集文件,第二层包括各集群的关键字倒排文件和属性倒排文件。
[0127] 如图2所示,AkC使用两层划分模式。在第一层中,首先通过使用k均值聚类方法将图1的所有对象划分为三个集群,并采用聚类文件来存放划分结果。其次,采用查找表来保存每个集群的集群ID和属性摘要信息,从而帮助用户过滤掉大量不满足查询属性要求的集群。集群的属性信息是该集群所有对象的属性值对的并集。例如,在图2中集群C3中包括对象o1和o4,其中o1.S=(avg-price=42∧Rating=4.5∧Popularity=1000),o4.S=(avg-price=42∧Rating=4.4)∧Popularity=900),则集群C3的属性摘要信息为C3.S=Cover(o1.S,o4.S)=(avg-price∈[42,43])∧(Rating∈[4.4,4.5])∧(Popularity∈[900,1000])。
[0128] 在第二层中,设计了各集群的关键字倒排文件和属性倒排文件,以方便检索集群中的对象。对于一个集群,某关键字的关键字倒排文件包括含有该关键字的集群对象的id,并按对象id的升序排列。属性的属性倒排文件以(attribute_value,object_id)的形式包括含有该属性的对象的id及其属性值,该倒排文件是以属性值的升序排列,若有两个对象的属性值相同,则具有较小id的对象优先。通过将查询关键字和查询属性分别与集群的关键字倒排文件和属性倒排文件进行比较,可以搜索到满足查询条件的集群对象。
[0129] 表2:图2的Look up表
[0130]
[0131] 查找表的详细信息如表2所示。通过比较查找表中的查询属性和属性值对,可以修剪一些不相关的集群以提高查询效率。例如,位于集群C1上的对象包括o2,o3和o5。由于C1的属性摘要信息为(avg-price∈[37,40])∧(Rating∈[4.4,4.5])∧(Popularity∈[800,1400]),满足图1中的查询属性要求,那么就访问这个集群。
[0132] 图3分别显示了使用AkC的初始查询和精炼查询的查询集群序列。由于在初始查询中,每个集群只能访问一次,因此可以根据访问集群的顺序来建立初始查询集群序列。初始查询集群序列以查询点与集群质心之间的距离的升序排列,并且优先访问其质心离查询点更近的集群。在初始查询中,满足查询要求的对象及其集群id将作为初始查询结果返回。根据初始查询结果和初始查询集群序列,可以构建精炼查询集群序列。具体来说,如图3所示,一个精炼查询集群序列包括两个部分:第1部分由所有包含初始查询结果对象的集群组成,按照这些集群中结果对象的最高相似性得分的降序排列;第2部分由除出在第1部分中已经出现的、初始查询集群序列中的集群组成。注意,无论在初始查询集群序列中还是在精炼查询集群序列中,每个集群只能出现一次。例如,如果对象o3、o6和o5按照相似性得分以降序的顺序出现在初始查询结果集中,且这些对象的对应集群序列为(C1,C2,C1)。那么精炼查询集群序列的第1部分为(C1,C2)。
[0133] 基于AkC的增强型空间关键字top-k查询why-not问题处理方法的详细步骤参见图4所示。将AkC索引和优化的查询集群序列NSeq()作为该算法的输入。
[0134] 将指针Ci、集合RRS初始化为空,分别用来指向正在访问的集群和存储满足精炼查询要求的对象。令q'.doc和q'.B'分别等于q.doc0和q.B(第4行)。接着,有序地取出CKS中的关键字和CAS中的属性值对,并将它们分别添加到q'.doc和q'.B'中,从而形成新的精炼查询,然后对这些精炼查询进行处理以找出最佳的精炼查询,直到CKS和CAS都为空。
[0135] 第5-19行给出了每个精炼查询q'的处理步骤。首先,通过参数修改获得精炼查询q'。具体而言,将CKS中的第一个关键字和CAS中的第一个属性值对取出,分别添加到q'.doc和q'.B'中(第6-7行);令k'=k0(第8行)。在这里,函数Out_List(CKS)取出其第一个关键字并返回此关键字,而函数Out_List(CAS)的作用类似于Out_List(CKS)。根据式(2)计算q'的成本p',以尽早过滤比qb代价高的精炼查询。如果p'≥pc,则终止循环(10-11行)。否则,将通过访问NSeq()中的集群来继续q'的处理过程。
[0136] 当NSeq()不为空时,NSeq()中的集群按照以下顺序处理:
[0137] 1)将NSeq()中的第一个集群弹出,并由Ci指向它(第13行);
[0138] 2)如果q和集群Ci之间的空间距离满足以下不等式:
[0139]
[0140] 那么集群Ci可能包含结果对象,继续后续的判断,否则Ci被忽略掉(第14行)。
[0141] 上述过程中,式3的正确性由引理1保证。
[0142] 引理1:已知AkC集群Ci、精炼查询q'=(loc,doc,B',k',α)和qb结果集中所有对象的最低相似性得分排名Rm,即qb.RRS,如果 那么集群Ci将被过滤掉。
[0143] 证明:假设 Ci包含结果对象o’,那么就有然后,根据式2,有
[0144]
[0145] 因此,o'不能成为结果对象,这与假设矛盾的。故引理1成立。
[0146] 3)如果精炼查询属性q'.B'和Ci所链接项的摘要信息满足属性匹配,继续后续的判断;否则,忽略该集群。接下来,对于剩下的集群,如果精炼查询属性q'.B'与集群的属性倒排文件的属性信息满足属性匹配,且精炼查询的关键字q'.doc'与集群的关键字倒排文件的关键字满足关键字匹配,那么可以通过式(1)计算出满足这些要求的对象的相似性得分,并将这些对象和他们的相似性得分添加到RRS中(第15-17行)。
[0147] 接下来,对RRS中的所有对象根据它们的相似性得分进行排序(第18行)。如果k'≤km,则计算出q'的成本(第20行);如果p'
[0148] 本发明实施例还提供一种采用AkC解决SKQwhy-not问题的系统,包括:
[0149] AkC索引构建模块,其用于:获取所有对象o,将对象o划分为k个集群,构建AkC索引;
[0150] 候选列表构建模块,其用于:获取初始查询q=(q.loc,q.doc0,q.B,k,α)和缺失对象集M;根据缺失对象的关键字的频率递减的顺序构建候选关键字列表CKS、根据缺失对象的相似性得分递减的顺序构建候选属性值对列表CAS;将精炼查询q'的关键字集q'.doc和属性值对q'.B'分别设置为q.doc0和q.B;
[0151] 精炼查询模块,其用于:有序地抽取CKS中的关键字和CAS中的属性值对,分别添加至查询q'的关键字集q'.doc和查询q'的属性值对q'.B'中,形成新的精炼查询q';分别对各个精炼查询q'进行处理以找出最佳精炼查询,直至CKS和CAS都为空;分别对各个精炼查询q'进行处理,具体包括:
[0152] 计算q'的修改代价p',过滤掉p'≥pc的查询q',pc为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中的查询qb的修改代价;
[0153] 对于p'
[0154] 对于待处理的集群,根据AkC索引和预设的筛选条件筛出符合条件的集群;
[0155] 将符合条件的集群包含的对象添加到满足查询q'要求的对象集中,并计算查询q'和对象之间的相似性得分;
[0156] 对满足查询q'要求的对象集中的所有对象均根据其相似性得分从高至低排序,直到所有原始结果对象和所有缺失对象均出现,获得k'个对象;
[0157] 如果k'≤km,km为保留初始查询关键字和属性、且所有的缺失对象都出现在查询结果中时结果集的大小,则计算q'的修改代价p',如果p'
[0158] 作为优选的实施方式,所述AkC索引构建模块具体用于:
[0159] 获取所有对象o,通过使用k均值聚类法将所有对象o划分为k个集群;
[0160] 采用查找表来保存每个集群的集群ID和属性摘要信息,集群的属性摘要信息是该集群所有对象的属性值对的并集;
[0161] 每个集群对应该集群的一个关键字倒排文件和一个属性倒排文件。
[0162] 作为优选的实施方式,所述精炼查询模块对于满足p'
[0163] 判断查询q'和集群Ci之间的空间距离是否满足以下不等式:
[0164]
[0165] 若满足,作为待处理的集群,若不满足,过滤掉该集群。
[0166] 作为优选的实施方式,所述精炼查询模块对于待处理的集群,根据AkC索引和预设的筛选条件筛出符合条件的集群,具体包括以下步骤:
[0167] 如果查询属性q'.B'和集群所链接项的摘要信息满足属性匹配,则将访问该集群;否则,忽略该集群;
[0168] 对于被访问的集群,如果查询属性q'.B'与集群的属性倒排文件的属性信息满足属性匹配,且精炼查询的关键字q'.doc'与集群的关键字倒排文件的关键字满足关键字匹配,则该集群为符合条件的集群;否则,忽略该集群。
[0169] 作为优选的实施方式,B为布尔表达式:
[0170]
[0171] 为一个谓词集合,其中i∈[1,n],i∈N*。
[0172] 本发明实施例所采用的AkC索引,根据对象与其集群质心之间的距离将空间对象划分为多个集群,具有良好的空间过滤能力;在每个集群中建立了关键词倒排文件,具有很好的文本过滤能力;不仅在每个集群中创建属性倒排文件,而且还将每个群集的属性摘要信息存储在查找表中,具有良好的属性过滤能力。
[0173] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈