摘要
子图查询通常用于搜索富属性图中的实体,例如社交网络和知识图。由于对底层数据知之甚少,用户通常需要多次重写查询才能得到理想的答案。研究为什么问题是为了澄清缺失或意外的查询结果。本文首先回答了属性图中实体搜索的“为什么”问题。我们考虑了三种常见类型的Why-question: Why-not、Why- and Why-rank,它们分别建议对用户指定的缺失、意外和不希望排名的实体负责的查询操作。(1)我们采用了一种通用的查询重写范式,该范式建议识别由Why-questions指定的所需实体。我们通过结合查询编辑成本和答案接近度来引入表征良好查询重写的度量。(2)虽然计算最优查询重写是棘手的,但我们开发了可行的算法,从近似到快速启发式,并在可能的情况下为Why, Why-not和Why-rank问题提供查询重写(接近)最优性保证。我们进一步表明,通过提供匹配算法,对于Why问题(1)请求重写单个查询以澄清多种类型的实体,以及(2)诸如Why-empty和Why-so-many之类的变体,我们的结果保持不变。使用真实世界的图,我们实验验证了我们的算法对于大图是有效和可行的。我们的案例研究也验证了它们在知识探索等方面的应用。
一、介绍
子图查询已被应用于搜索富属性图中的实体,例如知识库[1]和社交网络[2]。子图查询Q是具有指定“焦点”实体uo的图模式,用于指定感兴趣的实体。给定一个图G,它返回G (w.r.t)中的(top k)个实体Q(G)。一种排序函数,它与理想的属性值相匹配,并满足拓扑约束。
对子图查询的查询处理进行了广泛的研究[3]。然而,对于最终用户来说,编写这样的查询是一项重要的任务。由于对数据的先验知识很少,用户通常必须多次修改查询才能找到理想的答案。因此,查询重写所支持的解释功能有助于他们将查询调优到理想的答案。具体来说,人们经常想问以下为什么问题:
- why:“为什么有一些意想不到的实体?”;
- why -not:“为什么某些实体缺失?”;和
- why -rank:“为什么有些实体没有按预期排名?”
例1:
图1显示了在线商店等产品的知识图G的一小部分[4]。每个实体都带有一个类型(例如,手机)和带有相应值(例如,“$250”)的属性(例如,价格)。用户提出一个带有标记节点“手机?”搜索三星(Samsung)的粉色手机和AT&T运营商的手机,价格不超过650美元。答案Q(G)包含三星S5、A5、S6三款机型。为了进一步探索想要的手机,用户会问以下问题。
图1:Why, Why-not和Why-rank:产品推荐。
(1)“Why?”她观察到两款出人意料的老款手机S5和A5,可能会问一个后续问题“为什么S5和A5在Q(G)里?””。这种问题的答案可以是修改后的查询Q1,它适当地“收紧”Q中的约束以排除
Q1和Q之间的差异(标记为红色)向用户表明了一种新的偏好,而不是系列a(用指定“系列S”的边缘代替)和系列S的旧版本(更便宜)(通过增加120美元的底价)。
(2)“Why not?”她还想知道为什么两款新型号S8和S9没有被包括在Q(G)中,并问道:“为什么S8或S9没有被返回?”一个新的查询Q2恰当地澄清了这个问题,“妥协”了Q中的需求,以包含这两个实体。Q2和Q之间的差异表明,1)两款理想的机型都比预期的贵(因为价格放宽到790美元)2)没有粉色的S9型号,也没有证据表明它们得到AT&T的支持(这两个限制在Q2被删除,以表明必要的权衡)。
(3)Why Rank?假设匹配Q(G)由一个函数排序,该函数量化了Q中手机与手机谓词之间的接近程度。用户还想知道为什么旧型号S5在Q(G)中排名最高,并提出了一个why -rank问题:“为什么型号S5排名高于S6?”可以提出第三个问题Q3,这确保了答案将手机重新排序为{}S6;S5;A5}。Q和Q3之间的差异表明,可以调整属性OS来操纵排名:具有更高级操作系统版本的型号S6因此排名更高。
回答这些“为什么”问题有助于用户通过查询自动完成等方式澄清和探索他们的需求[5],也有助于供应商推广畅销品[6]。
这激发了开发有效的查询重写技术来回答子图查询中的“为什么”问题的需求。给定一个图G,一个子图查询Q和答案Q(G),一组缺失实体 (p. 1)。Q(G)中的一组意想不到的实体
),回答Why-not的问题(参见。为什么)问题是将Q修改为“查询重写”Q',使Q'(G)包含=
(resp中的实体。尽可能地排除
中的实体)。类似地,给定有序实体对的集合I,回答Why-rank问题就是计算排序函数Q' w.r.t.,使得排名前k的列表Q' (G)满足I所强制的顺序。
图2:通过Why-questions进行探索性图搜索。
回答“为什么”问题还可以实现探索性图搜索(如图2所示)。(1)根据用户对不希望得到的答案的反馈,可以很容易地建议查询重写Q',从而实现交互式搜索。(2) Q'与原Q的差异融合了视觉查询和对大G的近似搜索[7]。(3)查询重写通过建议与缺失和意外实体相关的实体来支持图探索[8]
贡献
本文通过引入新的Why/Why- not优化,一类新的Why-rank问题的解,以及它们的变体,包括Multi-Why, Why-empty和Why-so-many,对[9]进行了非平凡的扩展。
(1)我们根据图查询重写形式化了why -question(第3.1节)。给定子图查询Q,图G和答案Q(G), (a)一个Why-not问题旨在找到一个查询重写Q',其答案涵盖不在Q(G)中的缺失但理想的实体;(b)why问题找到Q',其答案将不需要的实体从Q(G)中排除;(c)一类新的Why-rank问题计算Q',它可以按照期望的顺序对实体进行重新排序。
(2)为了表征“好”的查询重写,我们将[9]中的答案亲密度和查询编辑成本一般化来分别量化的改写了的Q'查询新答案和期望的答案,以及Q'到原始查询之间的紧密性(章节3.3)。问题是计算一个查询重写Q',在有限的查询编辑成本下使答案接近度最大化。我们表明,问题仍然是NP-hard的对于为什么,为什么不是和为什么排名问题。
(3)尽管困难重重,我们提出了计算查询重写的近似算法,并提供了质量保证,以及在线数据探索的更快替代方案。其思想是快速识别和验证一组“挑剔”操作符,这些操作符可以区分不需要的匹配和需要的对应。
(a)对于Why问题,我们展示了一种近似算法(第4.1节),可以实现保证,其中
是由查询重写质量的估计误差
决定的函数。
(b)对于Why-not问题(第4.2节),我们引入了一种快速启发式算法,该算法可以计算高质量的查询重写,而无需昂贵的子图同构验证。
我们使用一种新的策略进一步优化这些算法,该策略增量估计查询重写的质量,并在没有枚举的情况下修剪不受欢迎的操作符。这提高了回答“为什么”问题的效率[9]中Why-not问题的比例为23.2%。12%),在实验研究中得到了验证。
(c)此外,我们分别在章节5.1和5.2中研究了Why-questions的三种变体,包括:Multi-Why(多个搜索“焦点”),以及Why-so-many(“为什么返回这么多实体?”)和Why-empty(“为什么没有返回答案?”)。我们表明,我们的方法和修剪策略很容易扩展到这些情况下完整的性能保证,通过提出详细的规范。这些在[9]中没有讨论。
(d)对于Why-rank问题,我们进一步开发了一种快速启发式。该算法动态跟踪适用查询操纵符与实体排名影响之间的映射关系,并相应地进行在线修剪,以降低验证成本。所有这些算法产生的成本仅由Q及其答案、所需实体的大小(如果指定)和编辑预算决定,这些成本在实践中都很小
(5)使用真实世界的图,我们实验验证了我们的算法和新的修剪策略的有效性和效率(第7节)。这些算法对于大型图是可行的。例如,近似(resp。启发式)算法为12。7倍(resp.19.5倍),与精确算法相比,速度更快,高达12% (resp.16%)质量下降。这些算法还建议来源信息来“解释”查询重写和新的答案,正如我们的案例研究所验证的那样
二、图和子图查询
我们从图和子图查询的概念开始。
图。我们考虑一个有向图和一个有限的节点集
,
为一个边集。每个节点
(相应地
)带有一个标签
(resp。
)。
是一个元组,
其中
为节点属性,常数
是属性
的值。 其中
是
的有限活动域,其范围为
。它包含了
中节点
范围大于
的所有
。在实践中,节点和边标签可以分别表示类型和关系(谓词),而
可以编码节点属性,例如社交网络和知识库。
接下来,我们引入带有输出节点的子图查询来表达图中实际的实体搜索。
查询。子图查询Q是一个有向连通图,其中(1)
(相应地,
)是一个查询节点(相应地,查询边)的集合;(2)对于标签为
的每个属于
的节点
,
是包含一组文字的谓词。每个字面值的形式为
,其中
是集合
中的比较符,c是常数。(3)具体来说,有一个指定的输出节点
。
在实践中,Q中的输出节点表示“搜索焦点”,匹配的实体作为Q的答案返回。这种查询通常用于,如社交网络[10]和知识图谱[11] 中搜索实体。为简单起见,我们将子图查询称为“查询”。
我们使用以下约定。(1)对于任意在中的文字
,
。事实上,强制执行“活动域外”常量的字面量要么微不足道地失败(例如,' = ',> max D(A), < min D(A)),要么等同于将c替换为min D(A)(对于' > ','≥')或max D(A)(对于' < ','≤')。(2)查询Q的大小(记为
)是指
的节点、字面值和边的总数。我们关注的是带有单个uo的查询。我们的技术适用于具有多个输出节点的查询(第5.1节)。
查询的答案。考虑查询Q中的查询节点u,其标签为LQ(u),谓词为FQ(u)。G中的节点v是u的候选节点,如果(1)L(v)=LQ(u),(2)对于每个字面量,形式为
op
,
并且
op
。例如,给定字面量
,则
且
,对于节点u任意候选v。
给定查询Q = 和一个图G,则从Q到G的映射是一个
上的单射函数h,使得(1)对于每个节点
,
是
的候选项,(2)对于每个边
在Q中,
是G中的一条边,并且
。u的匹配,记为
,表示G中节点
的集合,h的值域覆盖从Q到G的所有映射。G中Q的答案,记为
,表示Q中输出节点
在G中的匹配。
匹配。接下来我们考虑总订单为
由排序函数
排序后, 在top-k选择查询[12]后,函数
映射每个匹配
通过聚合元组
谓词
的分数来获得排名分数:
其中是一个多项式时间可计算函数,它计算谓词
与属性值
之间的“接近”分数。例如,
可以用常数c和属性值
的数值属性之间的归一化欧氏距离来定义。或字符串属性的文本相似度[13]。
给定排序函数R,查询Q在G中的top-k匹配,记为,指在
在
中由
排序的top-k 的匹配结果。
表1:注释
示例2:
图1所示的查询指定一个标签为手机的输出节点
来搜索手机。假设闭合函数
定义为l中的常数c与
之间的差,通过G中A的活动域范围归一化,可以验证前3个匹配
,其中
的评分为
;同样,
和
的排名分数分别为0.556和0.5.
3 子图查询的“为什么”问题
3.1为什么问题的分类
给定图,查询
,回答
,我们研究了三类“为什么”问题,即“为什么”、“为什么不”和“为什么排名”。这些问题对应于关系查询[14]-[19],并且专门用于图搜索。
Why-not。Why-not问题是一对,其中(1)
为Q的指定输出节点;(2)
是
的一组“缺失匹配”。它澄清了
中缺失的答案通过问“为什么
中的节点不匹配
中的
?”在实践中,
可以指定为示例[20],也可以指定为关键字搜索[8]。
Why。why问题的定义与此类似,但基于一组“意想不到的答案”。它问“为什么
中的节点是
在G中的匹配 ?”
Why-rank。Why-rank问题定义为一对,其中
是有序对的集合。每对
,
和
在
, 并且
。这个
对表示用户期望vi的排名至少和vj一样高,这在当前排名前k的答案
中不成立.问题是“为什么
中的节点对
在
中不是预期的排名?”
备注。我们澄清了一个实际假设,即中的节点也在
中.实际上,对于
中的任何不匹配,可以先处理一个Why-not问题,得到答案尽可能多地包含
中的节点的
。然后,可以将Q和I提炼为后续的Why-rank问题。
例3:
例1中的三个问题可以分别用一个Why问句(手机,)(图1),一个Why-not问题(手机,
)和一个Why-rank问题(手机;
)表示。
3.2为什么问题的答案
我们使用查询重写来回答图搜索中的Why-questions问题。该技术已被用于解释关系查询处理中的意外答案[19]。
查询重写。我们使用六类基本查询编辑操作符。对于任意图,这些运算符放松或改进给定查询Q的搜索约束。
放松的操作符。包括
:将字面量
放宽为
;
从
中删除文字
;
移除
中的一条边
;
细化操作符。包括
细化字面量
到
,这样u有 更 少的候选;
: 将字面量
加入到
中
添加一条新边
。更具体地说,(a)如果节点
和
都在
中,
添加带有边缘标签的新边;(b)假设w.l.o.g.节点
不在
内,则
用特定的标签/文字创建
我们将参考RxL、RfL、RmL和AddL作为节点操作符,同样得RmE和AddE作为边缘操作符,因为它们涉及单个查询节点(resp。查询边缘)。
的查询重写
是将运算符
应用于
得到的查询(记为
),注意查询重写保留了
的输出节点,因为在后续的Why-questions中用户的搜索焦点不太可能发生变化。
回答Why 问题。给定和
,重写查询
是一个答案
对于一个Why-not 问题,如果
;即至少有一个缺失匹配被
引入。
对于一个Why问题,如果
;,即至少从匹配列表中删除一个不需要的匹配,
对于一个Why-rank问题,有一对
,使得
,即
和
的顺序按要求“颠倒”。
查询重写提供了一种解释答案的自然方式。将修改为
的建议编辑操作符对“缺失”、“意外”或“不受欢迎的”匹配负责的查询操作。
查询操作符的能力及其对匹配的影响已通过以下属性加以说明。
引理1:给定一个输出节点为的查询
,对于任意重写的查询
和任意图
,
(分别地
),如果O只包含松弛(分别地,细化)操作符。
我们将使用松弛(细化)操作符回答Why-not(相应的,Why)问题。对于Why-rank问题,我们同时使用松弛算子和细化算子。
3.3查询重写质量指标
一个“好的”查询重写应该识别出Why-questions所要求的理想答案,与原始查询
相比差异很小。我们扩展了[9]中top-k查询的接近度度量
查询编辑成本。我们的直觉是,对的更“重要”的分数(更接近
)的修改应该更“昂贵”。给定输出节点为
的
,将
的直径记为
,则
中节点
的输出中心性[9]记为
,计算为
其中表示从
到输出节点
的距离。输出中心性是以
表示的归一化的接近中心性。直观地看,
与
越“接近”,
在
中就越“重要”(概念贴近度[21])。
给定查询重写,对于给定
,
的代价被定义为
单个操作符的单位成本定义如下:(1)若
是节点
上的节点算子,则
。(2)如果
是在边
上的边算子,
。(3)对于作为RxL或RfL的运算符o,可以处理为“删除一个文字”(有单位成本)和“添加一个新的文字”(说明值的差异)。因此
并且
,由
的范围归一化。
如果操作符“更接近”输出节点,或者在文字常量上引入较大的值差异,则编辑成本会降低。越小越好。我们的一般成本模型和技术也适用于断开连接的查询重写(由于RmE;参见第4节)。
答案接近度。接下来,我们将答案接近度[9]扩展到top-k查询。我们对Why和Why-not问题采取了类似的处理方法,并为Why-rank问题引入了一种新的接近度度量。鉴于和一个Why-question,重写查询
的答案接近度,简称为
,定义如下
(1)对于why问题
它测量被排除在之外的
的比例;越大越好。
(2)对于Why-not问题;
测量在中引入的
中新匹配的比例;越多越好。
量化“过头”。对于Why问题,查询可能“过度”细化,因此不必要地排除了)中的许多;不属于
的匹配。同样地,在
中引入许多不属于
的匹配也可能过于放松。为了描述这种过度的容忍度,我们定义了一组更新
的保护比率保护。具体来说,对于Why问题
同样,对于Why-not问题
保护比率量化了从原始答案中“不必要”添加或删除的实体的比例;,越小越好。对于用户指定的保护阈值δ,我们将使用一个保护条件来识别
且
的查询重写。
示例4:
查询(图1)使用操作符
回答了Why问题,其中答案接近度
。给定
,输出节点为手机,则总成本
)为4。类似地,我们可以用运算符
的查询
来回答Why-not 问题,成本
,答案接近度
(3)对于Why-rank,重写查询时应该保证排序与所强制的有序对一致。接近度可以自然定义为
,其中
。直观地说,它量化了
中在
识别的匹配中一致排列的有序对的比例。
示例5:
查询(图1)用运算符
回答了Why-rank问题。
我们可以验证和
。
3.4回答为什么的问题
给定一个问题,回答
或
,图
,一个为什么问题W,和一个编辑预算B,回答为什么问题的问题是计算一个算子集
:
其中,set∆分别表示缺失匹配、不希望匹配
或W强制执行的排名配对I作为Why-not、Why或Why-rank问题。也就是说,它要计算一个查询重写
,以确保答案最接近W指定的期望答案,并产生有限的编辑成本。
即使只考虑边缘算子,这些问题也已经是非平凡的了。
定理2:当只涉及边缘移除(RmE)或边缘插入(AddE)时,回答Why, Why-not和Why-rank问题已经是NP-hard了。
证明:给定代价边界B和接近度阈值θ,判定问题是判定是否存在一个算子集O∗,使得具有在B内的编辑代价且答案接近度至少为θ。
(1)与[9]相比,我们展示了一个更严格的Why-not下界:当只涉及边缘移除并且查询具有树模式时,它已经是NP-hard。我们从树和一般图(已知为NP-hard)之间的子图同构构造了一个约简。
给定树和一般图
,我们构造了一个新的树查询
,它包含(a)两个与
同构的子树
和
,以及(b)一个桥
连接
的根和
的根,有一个特殊的标签r不在G中,其中
中的
被设为
的输出节点
,可以验证Q有一个树模式。我们构造了一个有两个不连接的子图
和
的图
,其中
与
同构。显然,
;接下来,我们设置以单位成本移除边的约束算子,预算B = 1,
;,
和
。要回答定义在
和
上的Why-not 问题,必须应用一个RmE来去除
中的边缘
。我们可以验证
去掉边
回答W的接近度至少为θ,当且仅当从
到
至少存在子图同构时.
(2)为了了解回答Why问题的难度,我们构造了一个k-团问题的约简。下面的证明是针对不存在保护条件的一般情况。
给定图, k-clique问题是判断是否存在一个包含k个节点的clique。(a)我们构造了一个查询
,它包含一个独立的输出节点
,具有唯一不在
中的标签
,并且构造了一个子查询
作为一个k-clique,其中所有的查询节点与一个可以匹配G中的任何节点的标签''_"相关联。(b)构造一个图
,其中包含一个标记为
不在
中的节点
,图
,以及从
到
中的每个节点的一条边。(c)我们设置
, 以及一个只插入边的约束算子。对于
,在给定
的情况下,它必须是从
到
中的任意节点的单边插入。我们可以验证是否存在一个重写的查询
,它回答了Why问题
当且仅当
不包含k团。由于已知k-团问题是NP-hard和APX-hard,所以回答Why问题也是NP-hard和APX-hard。
(3)我们观察到,Why-not问题是Why-rank的一种特殊情况,其中强制
中的一个节点排名至少高于
中的一个节点。具体来说,给定一个Why-not问题
定义在
回答上,具有接近阈值θ的
,我们构造了一个Why-rank问题
,阈值
,初始查询
,应答
如下。(a)
,
并且
。(b)在节点
的辅助属性上设置排序函数R,使得
中的节点不高于
中的任何节点。(c)
, 并且
。
假设存在一个为Why-rnak问题的查询重写为,其接近度至少为
。当
时,至少有
对按照
的顺序重新排序。给定
的定义,在
中至少有
个节点的排名高于中
中
匹配至少一个节点的排名。设
。由此可见,
是
的解,它保证了接近度至少为
。类似地,
的解决方案也简化为
的对应方案。“Why”等级之难由此而来。
4 回答Why和Why-noy的问题
4.1近似回答Why
我们在下面给出了“Why”问题的主要结果
定理3:有一种算法用于回答Why问题(指最优集合),
在代价B内计算一个算子集O,使得
并且◦仅由Q, 和B决定的成本。其中
为估计cl(·)时的绝对误差
也就是说,该算法保证了一个相对近似比,以误差对于任何查询重写,在估计的、多项式时间可计算的接近度和它的精确对应物之间。如果
,它是常数因子近似值。此外,由于
通常较小,因此该算法对于较大的
是可行的。
为了证明定理3,我们接下来展示了回答Why问题与预算次模最大化问题之间的联系[22]。
Submodularity。给定细化算子O,我们定义细化算子o到O的边际增益为mg(O;o) = 。我们首先展示了下面的结果,它可以很容易地由引理1验证。如果一个算子至少有可能修剪
中的一个节点,我们就说它是挑剔的。
引理4:函数cl(·)在挑剔集合上是子模的,即对于任意集合O1和O2,使得
,以及一个算子
,
。
证明:集函数f在集 上是子模,如果对
并且
其中表示
中从
中移除的
的节点数目,给定算子集
表示从给定算子
的匹配集中移除的
中节点的归一化数。为了表示子模块性,足以表明如果
中的一个节点从
中移除;在给定的相同操作符
它也会从
中移除。这里
,
可以是一个断开的查询。
然后用反证法证明了子模性。如果给定算子,节点
已从
)中移除
,即但是
。假设
未从给定算子
下的
中移除;那我们就有
并且
根据引理1,如果
则
。根据引理1,上述讨论适用于连接查询和断开连接查询。有了这些,引理4就出来了。
子模块性表明,我们可以通过解决一个预算子模块最大化问题的实例来近似最优查询重写[9],[22]。给定挑剔集和集
,计算一个集
,使
,并且
被最大化。贪婪算法通过贪婪地选择具有最大mg的算子来确保
逼近[23]。然而,这需要
子图同构测试,并且对于大G是不可行的。
我们可以做得更好:我们的算法通过(1)估计当前选择和验证的挑剔算子的cl(·),以及(2)动态决定和修剪不希望的算子,减少了不必要的算子验证。
算法。该算法表示为ApproxWhy,如图3所示,它有以下步骤。
(1)调用过程GenPicky生成一组细化挑剔操作符(第1行),然后初始化集合
和
(第2-3行), 其中
包含一个由Match验证的最大cl(·)的单个操作符。
(2)然后,它迭代地从中选择一个细化算子
,使成本
与估计的边际增益
之比最大化(第4-8行)。后者指的是
中由于
而被删除的匹配的估计数量,由过程EstMatch估计。如果查询编辑成本为B,则选择操作符o *,并且保护条件保持不变(第8行)。
在此过程中,ApproxWhy应用以下修剪策略(第9-11行;(a)如果选择一个算子,它从候选集合中剔除所有导致空答案的冲突集(Confl),;(b)如果
因违反保护条件而被丢弃,则它修剪所有也违反保护条件的约束集(Const)。这个过程不断重复,直到处理完所有挑剔的操作符。
(3)然后设置并返回作为估计答案接近度较大的
或
的集合(第13-14行)。
图3:算法ApproxWhy
过程GenPicky。给定,单个细化算子
是挑剔的,如果
可能将
中的一个节点从
中排除,通过减少候选人。为了保证完整性,gGenPicky首先生成AddE,然后是AddL和RfL。它使用了以下概念。(1)令Nd(VNu) (p。Nd(VNu))表示VNu (resp)中节点的d-hop邻居。问(uo;G) n VNu)在G中,即与VNu中某些节点的距离为d的节点。给定Q中的节点u 0,距离为d(u 0;uo)到输出节点uo,我们定义一个集合N(VNu;[au:]N (VNu;为Nd(u0;uo)(VNu)中的节点。Nd(u0;uo)(VNu))具有与u0相同的标签。(2)给定节点u 0和文字l = u 0: a op c 2 FQ(u 0),属性u 0: a是公共的(见图2)。如果它在节点v 2n (VNu;U0),并且是在一个(不一定相同的)节点v00的字面量中。从N(VNu;情况)。(3)属性A的活动域。节点集V,记为dom(A;V),是V: a中V取值范围大于V的所有不同值的集合。