回答子图查询的为什么问题

摘要

        子图查询通常用于搜索富属性图中的实体,例如社交网络和知识图。由于对底层数据知之甚少,用户通常需要多次重写查询才能得到理想的答案。研究为什么问题是为了澄清缺失或意外的查询结果。本文首先回答了属性图中实体搜索的“为什么”问题。我们考虑了三种常见类型的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]。然而,对于最终用户来说,编写这样的查询是一项重要的任务。由于对数据的先验知识很少,用户通常必须多次修改查询才能找到理想的答案。因此,查询重写所支持的解释功能有助于他们将查询调优到理想的答案。具体来说,人们经常想问以下为什么问题:

  1. why:“为什么有一些意想不到的实体?”;
  2. why -not:“为什么某些实体缺失?”;和
  3. 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中的约束以排除\left \{ A5,S5\right \}

        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),一组缺失实体V_{C} (p. 1)。Q(G)中的一组意想不到的实体V_{N}),回答Why-not的问题(参见。为什么)问题是将Q修改为“查询重写”Q',使Q'(G)包含= V_{C}(resp中的实体。尽可能地排除V_{N}中的实体)。类似地,给定有序实体对的集合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节),可以实现保证\frac{1}{2}\left ( 1-\frac{1}{e} \right )-f\left ( \epsilon \right ),其中f\left ( \epsilon \right )是由查询重写质量的估计误差\epsilon决定的函数。

                (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%)质量下降。这些算法还建议来源信息来“解释”查询重写和新的答案,正如我们的案例研究所验证的那样

 二、图和子图查询

        我们从图和子图查询的概念开始。

        图。我们考虑一个有向图G=\left ( V,E,L,F_{A} \right )和一个有限的节点集V, E\subseteq V \times V为一个边集。每个节点v\epsilon V(相应地e\epsilon E)带有一个标签L\left ( v \right ) (resp。L\left ( e \right ))。F_{A}\left ( v \right )是一个元组,< \left ( A_{1} ,a_{1} \right ),\cdots, \left ( A_{n} ,a_{n} \right )>其中A_{i}为节点属性,常数a_{i}\epsilon D\left ( A_{i} \right )是属性v.A_{i}的值。 其中D\left ( A_{i} \right )A_{i}的有限活动域,其范围为\left [ min D\left (A_{i} \right ) , maxD\left (A_{i} \right ) \right ]。它包含了G中节点v范围大于V的所有v.A_{i}。在实践中,节点和边标签可以分别表示类型和关系(谓词),而F_{A}\left ( v \right )可以编码节点属性,例如社交网络和知识库。

        接下来,我们引入带有输出节点的子图查询来表达图中实际的实体搜索。

        查询。子图查询Q是一个有向连通图\left ( V_{Q},E_{Q},L_{Q},F_{Q},u_{o}\right ),其中(1)V_{Q}(相应地,E_{Q}\subseteq V_{Q}\times V_{Q})是一个查询节点(相应地,查询边)的集合;(2)对于标签为L_{Q}\left ( u \right )的每个属于V_{Q}的节点uF_{Q}\left ( u \right ) 是包含一组文字的谓词。每个字面值的形式为u.A \, op\, c,其中op是集合\left \{ > , \geqslant ,= ,\leqslant ,> \right \}中的比较符,c是常数。(3)具体来说,有一个指定的输出节点u_{o}\in V_{Q}

        在实践中,Q中的输出节点表示“搜索焦点”,匹配的实体作为Q的答案返回。这种查询通常用于,如社交网络[10]和知识图谱[11] 中搜索实体。为简单起见,我们将子图查询称为“查询”。

        我们使用以下约定。(1)对于任意在Q中的文字u.A \, op\, c ,c\in \left [ min D\left ( A \right ) , max D\left ( A \right )\right ]。事实上,强制执行“活动域外”常量的字面量要么微不足道地失败(例如,' = ',> max D(A), < min D(A)),要么等同于将c替换为min D(A)(对于' > ','≥')或max D(A)(对于' < ','≤')。(2)查询Q的大小(记为\left | Q \right |)是指Q的节点、字面值和边的总数。我们关注的是带有单个uo的查询。我们的技术适用于具有多个输出节点的查询(第5.1节)。

        查询的答案。考虑查询Q中的查询节点u,其标签为LQ(u),谓词为FQ(u)。G中的节点v是u的候选节点,如果(1)L(v)=LQ(u),(2)对于每个字面量l \in F_{Q}\left ( u \right ),形式为u.A_{i} op c\left ( v.A_{i},a_{i} \right )\in F_{A}\left ( v \right )并且a_{i}op c。例如,给定字面量u.A_{i}\leq c^{'},则\left ( A_{i},c \right )\in F_{A}\left ( v \right )c\leq c^{'},对于节点u任意候选v。

        给定查询Q = \left ( V_{Q},E_{Q},L_{Q},F_{Q},u_{o}\right )和一个图G,则从Q到G的映射是一个V_{Q}\times V上的单射函数h,使得(1)对于每个节点u\in V_{Q}, h\left ( u \right )u的候选项,(2)对于每个边e=\left ( u,u^{'} \right )在Q中,e^{'}=\left ( h\left ( u \right ),h\left ( u^{'} \right ) \right )是G中的一条边,并且L \left ( e \right )=L\left ( e^{'} \right )。u的匹配,记为Q\left ( u,G \right ),表示G中节点h\left ( u \right )的集合,h的值域覆盖从Q到G的所有映射。G中Q的答案,记为Q\left ( u_{o} , G\right ),表示Q中输出节点u_{o}在G中的匹配。Q\left ( u_{o} ,G\right )\subseteq V

        Top-k匹配。接下来我们考虑总订单为Q\left ( u_{o} ,G\right )由排序函数R\left ( Q,v \right )排序后, 在top-k选择查询[12]后,函数R\left ( Q,v \right )映射每个匹配v\in Q\left ( u_{o} ,G\right )通过聚合元组F_{A}\left ( v \right ) w.r.t谓词F_{Q}\left ( u_{o} \right )的分数来获得排名分数:

R\left ( Q,v \right ) =\frac{1}{\left | F_{Q} \left ( u_{o} \right )\right |}\sum_{l\in F_{Q}\left ( u_{o} \right )}^{} \, r\left ( l,v.A \right )

        其中r\left ( l,v.A \right )是一个多项式时间可计算函数,它计算谓词l =u_{o}.A\, op\, c与属性值v.A之间的“接近”分数。例如,r\left ( l,v.A \right )可以用常数c和属性值v.A的数值属性之间的归一化欧氏距离来定义。或字符串属性的文本相似度[13]。

        给定排序函数R,查询Q在G中的top-k匹配,记为Q_{k}\left ( u_{o} , G\right ),指在u_{o}G中由R\left ( Q_{k}\left ( u_{o},G \right ) \right ) \subseteq Q\left ( u_{o} ,G\right ) 排序的top-k 的匹配结果。

  表1:注释

        示例2:

        图1所示的查询QQ指定一个标签为手机的输出节点u_{o}来搜索手机。假设闭合函数r\left ( l,v.A \right )定义为l中的常数c与v.A之间的差,通过G中A的活动域范围归一化,可以验证前3个匹配Q_{3}\left ( S5,A5,S6 \right ),其中S5的评分为\frac{650-120}{839-120}=0.737;同样,A5S6的排名分数分别为0.556和0.5.

3 子图查询的“为什么”问题

3.1为什么问题的分类

        给定图G=\left ( V,E,L,F_{A} \right ),查询Q=\left ( V_{Q},E_{Q},L_{Q},F_{Q},u_{o}\right ),回答Q\left ( u_{o} ,G\right ),我们研究了三类“为什么”问题,即“为什么”、“为什么不”和“为什么排名”。这些问题对应于关系查询[14]-[19],并且专门用于图搜索。

       Why-not。Why-not问题是一对\left ( u_{o} ,V_{C_{u}}\right ),其中(1)u_{o}为Q的指定输出节点;(2)V_{C_{u}}\subseteq V\setminus Q\left ( u_{o} ,G\right )u_{o}的一组“缺失匹配”。它澄清了Q\left ( u_{o},G \right )中缺失的答案通过问“为什么V_{C_{u}}中的节点不匹配Q中的u ?”在实践中,V_{C_{u}}可以指定为示例[20],也可以指定为关键字搜索[8]。

        Why。why问题\left ( u_{o} ,V_{N_{u}}\right )的定义与此类似,但基于一组“意想不到的答案”。它问“为什么V_{N_{u}}中的节点是u_{o}在G中的匹配 ?”

        Why-rank。Why-rank问题定义为一对\left ( u_{o},I \right ),其中I是有序对的集合。每对\left \langle v_{i} ,v_{j}\right \rangle \in I,v_{i}v_{j}Q_{k}\left ( u_{o} ,G\right ), 并且R\left (Q,v_{i} \right )< R\left (Q,v_{j} \right )。这个\left \langle v_{i} ,v_{j}\right \rangle对表示用户期望vi的排名至少和vj一样高,这在当前排名前k的答案Q_{k}\left ( u_{o} ,G\right )中不成立.问题是“为什么中的节点对IQ_{k}\left ( u_{o} ,G\right )中不是预期的排名?”

     备注。我们澄清了一个实际假设,即I中的节点也在Q\left ( u_{o} ,G\right )中.实际上,对于I中的任何不匹配,可以先处理一个Why-not问题,得到答案尽可能多地包含I中的节点的Q^{'}。然后,可以将Q和I提炼为后续的Why-rank问题。

         例3:

        例1中的三个问题可以分别用一个Why问句(手机,\left \{ A5,S5 \right \})(图1),一个Why-not问题(手机,\left \{ S8,S9 \right \})和一个Why-rank问题(手机;\left \{ \left \langle S6,S5 \right \rangle \right \})表示。

        

3.2为什么问题的答案

        我们使用查询重写来回答图搜索中的Why-questions问题。该技术已被用于解释关系查询处理中的意外答案[19]。

        查询重写。我们使用六类基本查询编辑操作符。对于任意图,这些运算符放松或改进给定查询Q的搜索约束。

        放松的操作符。包括

        RxL (u.A\, op\, c,u.A \, op^{'} \, c^{'})::将字面量(u.A\, op \, c) \in F_{Q}\left ( u \right )放宽为\left ( u.A \, op^{'} \, c^{'}\right );

        RmL \left ( u,l \right ):F_{Q}\left ( u \right )中删除文字l;

        RmE\left ( u,u^{'} \right )移除Q中的一条边e=\left ( u,u^{'} \right );

        细化操作符。包括

        RfL\left ( u.A\, op \, c,u.A \, op^{'} \, c^{'}\right )细化字面量(u.A\, op \, c) \in F_{Q}\left ( u \right )\left ( u.A \, op^{'} \, c^{'}\right ),这样u有              更 少的候选;

       AddL\left ( u.A\, op \, c \right ): 将字面量(u.A\, op \, c)加入到F_{Q}\left ( u \right )

       AddE\left ( u,u^{'} \right )添加一条新边e=\left ( u,u^{'} \right )。更具体地说,(a)如果节点uu^{'}都在Q中,AddE\left ( u,u^{'} \right )添加带有边缘标签的新边;(b)假设w.l.o.g.节点u^{'}不在Q内,则AddE\left ( u,u^{'} \right )用特定的标签/文字创建u^{'}

        我们将参考RxL、RfL、RmL和AddL作为节点操作符,同样得RmE和AddE作为边缘操作符,因为它们涉及单个查询节点(resp。查询边缘)。

        Q的查询重写Q^{'}是将运算符O应用于得到的查询(记为Q^{'}=Q\bigoplus O),注意查询重写保留了Q的输出节点,因为在后续的Why-questions中用户的搜索焦点不太可能发生变化。

        回答Why 问题。给定Q,Q(u_{o},G)G,重写查询Q^{'}=Q\bigoplus O是一个答案

        对于一个Why-not 问题\left ( u_{o} ,V_{C_{u}}\right ),如果Q^{'}\left ( u_{o},G \right )\bigcap V_{C_{u}}\neq \oslash;即至少有一个缺失匹配被   Q^{'}引入。

        对于一个Why问题\left ( u_{o} ,V_{N_{u}}\right ),如果V_{N_{u}}\setminus Q^{'}\left ( u_{o},G \right )\neq \oslash;,即至少从匹配列表中删除一个不需要的匹配,

        对于一个Why-rank问题\left ( u_{o} ,I\right ),有一对\left \langle v_{i} ,v_{j}\right \rangle \in I,使得R\left ( Q^{'},v_{i} \right )\geq R\left ( Q^{'},v_{j} \right ),即v_{i}v_{j}的顺序按要求“颠倒”。

        查询重写提供了一种解释答案的自然方式。将Q修改为Q^{'}的建议编辑操作符对“缺失”、“意外”或“不受欢迎的”匹配负责的查询操作。

        查询操作符的能力及其对匹配的影响已通过以下属性加以说明。

       引理1:给定一个输出节点为u_{o}的查询Q,对于任意重写的查询Q^{'}=Q\bigoplus O和任意图G, Q\left ( u_{o},G \right ) \subseteq Q^{'}\left ( u_{o},G \right )(分别地Q^{'}\left ( u_{o},G \right ) \subseteq Q\left ( u_{o},G \right )),如果O只包含松弛(分别地,细化)操作符。

        我们将使用松弛(细化)操作符回答Why-not(相应的,Why)问题。对于Why-rank问题,我们同时使用松弛算子和细化算子。

3.3查询重写质量指标

        一个“好的”查询重写Q^{'}应该识别出Why-questions所要求的理想答案,与原始查询Q相比差异很小。我们扩展了[9]中top-k查询的接近度度量

        查询编辑成本。我们的直觉是,对Q的更“重要”的分数(更接近u_{o})的修改应该更“昂贵”。给定输出节点为u_{o}Q,将Q的直径记为d_{Q},则Q中节点u^{'}的输出中心性[9]记为oc(u^{'}),计算为

        oc\left ( u^{'} ,u_{o}\right ) = \frac{d_{Q}}{d\left ( u^{'} ,u_{o}\right )+1}

        其中d\left ( u^{'} ,u_{o}\right )表示从u^{'}到输出节点u_{o}的距离。输出中心性是以u_{o}表示的归一化的接近中心性。直观地看,u^{'}u_{o}越“接近”,u^{'}Q中就越“重要”(概念贴近度[21])。

        给定查询重写Q^{'}=Q\bigoplus O,对于给定Q, O的代价被定义为c\left ( O \right )

c\left ( O \right )= \sum_{o\in O}^{} \, c\left ( o \right )

        单个操作符的单位成本c\left ( o \right )定义如下:(1)若o是节点u上的节点算子,则c\left ( o \right )=oc\left ( u,u_{o} \right )。(2)如果o是在边e=\left ( u,u^{'} \right )上的边算子, c\left ( o \right )=min\left ( oc\left ( u,u_{o} \right ) ,oc\left ( u^{'},u_{o} \right ) \right)。(3)对于作为RxL或RfL的运算符o,可以处理为“删除一个文字”(有单位成本)和“添加一个新的文字”(说明值的差异)。因此c\left ( o \right ) =w\left ( o \right )\cdot oc\left ( u,u_{o} \right )并且w\left ( o\right )=1+\frac{\left | c^{'}-c \right |}{maxD\left ( A \right )-minD\left ( A \right )},由D\left ( A \right )的范围归一化。

        如果操作符“更接近”输出节点,或者在文字常量上引入较大的值差异,则编辑成本会降低。c\left ( o \right )越小越好。我们的一般成本模型和技术也适用于断开连接的查询重写(由于RmE;参见第4节)。

        答案接近度。接下来,我们将答案接近度[9]扩展到top-k查询。我们对Why和Why-not问题采取了类似的处理方法,并为Why-rank问题引入了一种新的接近度度量。鉴于Q\left ( u_{o} ,G\right )和一个Why-question,重写查询Q^{'}=Q\bigoplus O的答案接近度,简称为cl\left ( O \right ),定义如下

        (1)对于why问题\left ( u_{o} ,V_{N_{u}}\right )

        cl\left ( O,V_{N_{u}} \right )= \frac{\left | \left ( Q\left ( u_{o},G \right ) \setminus Q^{'}\left ( u_{o} ,G\right )\right ) \cap V_{N_{u}}\right |}{\left | V_{N_{u}} \right |}

        它测量被排除在Q^{'}\left ( u_{o} ,G\right )之外的V_{N_{u}}的比例;越大越好。

        (2)对于Why-not问题;\left ( u_{o} ,V_{C_{u}}\right )

cl\left ( O,V_{C_{u}} \right ) = \frac{\left | Q^{'} \left ( u_{o} ,G\right )\bigcap V_{C_{u}}\right |}{\left | V_{C_{u}} \right |}

        测量在Q^{'}\left ( u_{o} ,G\right )中引入的V_{C_{u}}中新匹配的比例;越多越好。

        量化“过头”。对于Why问题,查询可能“过度”细化,因此不必要地排除了Q\left ( u_{o},G \right ))中的许多;不属于V_{N_{u}}的匹配。同样地,在Q\left ( u_{o},G \right )中引入许多不属于V_{C_{u}}的匹配也可能过于放松。为了描述这种过度的容忍度,我们定义了一组更新O的保护比率保护。具体来说,对于Why问题\left ( u_{o} ,V_{N_{u}}\right )

guard\left ( O \right )= \frac{\left | \left ( Q \left ( u_{o},G \right ) \setminus Q^{'} \left ( u_{o},G \right )\right ) \bigcap \left ( Q \left ( u_{o},G \right ) \cap \setminus V_{N_{u}}\right )\right |}{\left | Q \left ( u_{o},G \right ) \cap \setminus V_{N_{u}}\right |}

        同样,对于Why-not问题\left ( u_{o} ,V_{C_{u}}\right )

        guard\left ( O \right )=\frac{\left | Q^{'}\left ( u_{o} ,G\right )\setminus \left ( Q\left ( u_{o} ,G\right ) \cup V_{N_{u}} \right ) \right |}{\left | Q\left ( u_{o} ,G\right ) \right |}

        保护比率量化了从原始答案Q\left ( u_{o} ,G\right )中“不必要”添加或删除的实体的比例;,越小越好。对于用户指定的保护阈值δ,我们将使用一个保护条件来识别Q^{'}=Q\bigoplus Oguard\left ( O \right )\leq \delta的查询重写。

        示例4:

        查询Q_{1}(图1)使用操作符O_{1}= \left \{ AddL\left ( Cellphone.Price > 120 \right ),AddE\left ( Cellphone.Series \right ),AddL\left ( Series.Serie= S \right ) \right \}回答了Why问题,其中答案接近度cl\left ( O_{1} ,\left \{ A5,S5 \right \}\right ) =1。给定d_{Q}=2,输出节点为手机,则总成本c\left ( O_{1} \right ))为4。类似地,我们可以用运算符O_{2}= \left \{ RmE(Cellphone,Color) ,RxL(Cellphone.price,799)\right \}的查询Q_{2}来回答Why-not 问题,成本c(O_{2})=4.2,答案接近度cl(O_{2},{S8,S9}) =1

        (3)对于Why-rank,重写查询时应该保证排序与I所强制的有序对一致。接近度可以自然定义为cl(O,I)=\frac{\left | L^{'} \right |}{\left | L \right |},其中L^{'}=\left \{ \left \langle v_{i},v_{j} \right \rangle \in L\, | \, R(Q^{'},v_{i})\geq R(Q^{'},v_{j})\right \}。直观地说,它量化了L中在Q^{'}识别的匹配中一致排列的有序对的比例。

        示例5:

        查询Q_{3}(图1)用运算符O_{3}=\left \{ AddL(Cellphone.OS >4.4) \right \}回答了Why-rank问题。

我们可以验证c(O_{3})=2cl\left ( O_{3} ,\left \{ \left \langle S6,S5 \right \rangle \right \}\right )=1

3.4回答为什么的问题

        给定一个问题Q,回答Q\left ( u_{o},G \right )Q_{k}(u_{o},G),图G,一个为什么问题W,和一个编辑预算B,回答为什么问题的问题是计算一个算子集O^{*}:

         其中,set∆分别表示缺失匹配V_{C_{u}}、不希望匹配V_{N_{u}}或W强制执行的排名配对I作为Why-not、Why或Why-rank问题。也就是说,它要计算一个查询重写Q^{'},以确保答案最接近W指定的期望答案,并产生有限的编辑成本。

        即使只考虑边缘算子,这些问题也已经是非平凡的了。

       定理2:当只涉及边缘移除(RmE)或边缘插入(AddE)时,回答Why, Why-not和Why-rank问题已经是NP-hard了。

        证明:给定代价边界B和接近度阈值θ,判定问题是判定是否存在一个算子集O∗,使得Q^{'}=Q\oplus O^{*}具有在B内的编辑代价且答案接近度至少为θ。

        (1)与[9]相比,我们展示了一个更严格的Why-not下界:当只涉及边缘移除并且查询具有树模式时,它已经是NP-hard。我们从树和一般图(已知为NP-hard)之间的子图同构构造了一个约简。

        给定树Q_{0}和一般图G_{0}=\left ( V_{0},E_{0} ,L\right ),我们构造了一个新的树查询Q,它包含(a)两个与Q_{0}同构的子树Q_{1}Q_{2},以及(b)一个桥\left ( u_{1} ,u_{2}\right )连接Q_{1}的根和Q_{2}的根,有一个特殊的标签r不在G中,其中Q_{1}中的u_{1}被设为Q的输出节点u_{o},可以验证Q有一个树模式。我们构造了一个有两个不连接的子图G_{0}G_{1}的图G^{'},其中G_{1}G_{0}同构。显然,Q(u_{o},G)=\oslash;接下来,我们设置以单位成本移除边的约束算子,预算B = 1, C=\oslash;, V_{C_{u}}=V_{0}\delta = \frac{1}{\left | V_{C_{u}} \right |}。要回答定义在Q,GV_{C_{u}}上的Why-not 问题,必须应用一个RmE来去除Q中的边缘\left ( u_{1},u_{2} \right )。我们可以验证Q^{'}去掉边\left ( u_{1},u_{2} \right )回答W的接近度至少为θ,当且仅当从Q_{0}G_{0}至少存在子图同构时.

        (2)为了了解回答Why问题的难度,我们构造了一个k-团问题的约简。下面的证明是针对不存在保护条件的一般情况。

        给定图G=(V,E,L), k-clique问题是判断是否存在一个包含k个节点的clique。(a)我们构造了一个查询Q_{0},它包含一个独立的输出节点u_{o},具有唯一不在G中的标签l_{o},并且构造了一个子查询Q_{c}作为一个k-clique,其中所有的查询节点与一个可以匹配G中的任何节点的标签''_"相关联。(b)构造一个图G^{'},其中包含一个标记为l_{o}不在G中的节点v_{o},图G,以及从v_{o}G中的每个节点的一条边。(c)我们设置B=1,V_{N_{u}}=\left \{ v_{o} \right \},\delta =1, 以及一个只插入边的约束算子。对于Q_{0},在给定B=1的情况下,它必须是从u_{o}Q_{c}中的任意节点的单边插入。我们可以验证是否存在一个重写的查询Q^{'},它回答了Why问题\left ( u_{o} ,\left \{ v_{o} \right \}\right )当且仅当G不包含k团。由于已知k-团问题是NP-hard和APX-hard,所以回答Why问题也是NP-hard和APX-hard。

        (3)我们观察到,Why-not问题是Why-rank的一种特殊情况,其中I强制V_{C_{u}}中的一个节点排名至少高于Q\left ( G \right )中的一个节点。具体来说,给定一个Why-not问题W_{1}=\left ( u_{o} ,V_{C_{u}}\right )定义在Q(G)回答上,具有接近阈值θ的V_{C_{u}},我们构造了一个Why-rank问题W_{2}=(u_{o},I),阈值\delta ^{'},初始查询Q_{r},应答Q_{r}\left ( G_{r} \right )如下。(a) k=\left | Q(G) \right |+\left | V_{C_{u}} \right |,Q_{r} =Q并且G_{r}=G。(b)在节点Q(G)\cup V_{C_{u}}的辅助属性上设置排序函数R,使得Q(G)中的节点不高于V_{C_{u}}中的任何节点。(c)\theta ^{'}=\frac{\theta }{\left | Q(G) \right |^{}}, 并且I=\left \{ \left ( v,v^{'} \right )|v\in V_{C_{u}},v^{'}\in Q(G)_{} \right \}

        假设存在一个为Why-rnak问题的查询重写为Q_{r}^{'},其接近度至少为\theta ^{'}=\frac{\theta }{\left | Q(G) \right |^{}}。当\left | I \right |=\left | Q(G) \right |\left | V_{C_{u}} \right |时,至少有\theta ^{'}\left | I \right |=\theta \left | V_{C_{u}} \right |对按照I的顺序重新排序。给定I的定义,在V_{C_{u}}中至少有\theta \left | V_{C_{u}} \right |个节点的排名高于中Q(G)top \, k=\left | Q(G) \right |+\left | V_{C_{u}} \right |匹配至少一个节点的排名。设Q_{r}^{'}=Q^{'}。由此可见,Q^{'}W_{1}的解,它保证了接近度至少为\frac{\theta \left | V_{C_{u}} \right |}{\left | V_{C_{u}} \right |}= \theta。类似地,W_{1}的解决方案也简化为W_{2}的对应方案。“Why”等级之难由此而来。

4 回答Why和Why-noy的问题

4.1近似回答Why

        我们在下面给出了“Why”问题的主要结果

        定理3:有一种算法用于回答Why问题(O^{*}指最优集合),

        在代价B内计算一个算子集O,使得

        并且◦仅由Q, V_{N_{u}}和B决定的成本。其中\epsilon为估计cl(·)时的绝对误差

        也就是说,该算法保证了一个相对近似比,以误差\epsilon \in \left [ 0,1 \right ]对于任何查询重写,在估计的、多项式时间可计算的接近度和它的精确对应物之间。如果\epsilon = 0,它是常数因子近似值。此外,由于Q,\left | V_{N_{u}} \right |,B通常较小,因此该算法对于较大的G是可行的。

        为了证明定理3,我们接下来展示了回答Why问题与预算次模最大化问题之间的联系[22]。

        Submodularity。给定细化算子O,我们定义细化算子o到O的边际增益为mg(O;o) = cl(O\bigoplus \left \{ o \right \})-cl(O)。我们首先展示了下面的结果,它可以很容易地由引理1验证。如果一个算子至少有可能修剪V_{N_{u}}中的一个节点,我们就说它是挑剔的。

        引理4:函数cl(·)在挑剔集合O_{s}上是子模的,即对于任意集合O1和O2,使得O_{1 }\subset O_{2}\subset O_{s},以及一个算子o\in O_{s}\left ( o\notin O_{2} \right )mg(O_{1},o)> mg(O_{2},o)

        证明:集函数f在集O 上是子模,如果对O_{1 }\subseteq O_{2}\subseteq O并且o\in O

        其中表示中从Q(u_{o},G)中移除的V_{N_{u}}的节点数目,给定算子集表示从给定算子o的匹配集中移除的V_{N_{u}}中节点的归一化数。为了表示子模块性,足以表明如果V_{N_{u}}中的一个节点从Q_{O_{2}}(u_{o},G)中移除;在给定的相同操作符o它也会从Q_{O_{1}}(u_{o},G)中移除。这里Q_{O_{i}}=Q\bigoplus O_{i}, Q_{O_{i}}可以是一个断开的查询。

        然后用反证法证明了子模性。如果给定算子o,节点v已从Q_{R}\left ( u_{o},G \right ))中移除

,即v\in Q_{O_{2}}(u_{o},G)但是v\notin Q_{O_{2}\cup \left \{ o \right \}}\left ( u_{o},G \right )。假设v未从给定算子o下的Q_{O_{1}}(u_{o},G)中移除;那我们就有v \in Q_{O_{1}}(u_{o},G)并且v\in Q_{O_{1}\cup \left \{ o \right \}}\left ( u_{o},G \right )根据引理1,如果v\notin Q_{O_{2}\cup \left \{ o \right \}}\left ( u_{o},G \right )v\notin Q_{O_{1}\cup \left \{ o \right \}}\left ( u_{o},G \right )。根据引理1,上述讨论适用于连接查询和断开连接查询。有了这些,引理4就出来了。

        子模块性表明,我们可以通过解决一个预算子模块最大化问题的实例来近似最优查询重写[9],[22]。给定挑剔集O_{s}和集V_{N_{u}},计算一个集O\subseteq \Theta,使c(O)<B,并且 cl(O,V_{N_{u}})被最大化。贪婪算法通过贪婪地选择具有最大mg的算子来确保1-\frac{1}{e}逼近[23]。然而,这需要O(\left | O_{s}^{2}\right |)子图同构测试,并且对于大G是不可行的。

        我们可以做得更好:我们的算法通过(1)估计当前选择和验证的挑剔算子的cl(·),以及(2)动态决定和修剪不希望的算子,减少了不必要的算子验证。

        算法。该算法表示为ApproxWhy,如图3所示,它有以下步骤。

        (1)调用过程GenPicky生成一组细化挑剔操作符O_{s}(第1行),然后初始化集合O_{1}O_{2}(第2-3行),  其中O_{1}包含一个由Match验证的最大cl(·)的单个操作符。

        (2)然后,它迭代地从O中选择一个细化算子o^{*},使成本c(o^{*})与估计的边际增益\widehat{mg}\left ( o^{*} \right )之比最大化(第4-8行)。后者指的是V_{N_{u}}中由于o^{*}而被删除的匹配的估计数量,由过程EstMatch估计。如果查询编辑成本为B,则选择操作符o *,并且保护条件保持不变(第8行)。

        在此过程中,ApproxWhy应用以下修剪策略(第9-11行;(a)如果选择一个算子o^{*},它从候选集合中剔除所有导致空答案的冲突集(Confl),;(b)如果o^{*}因违反保护条件而被丢弃,则它修剪所有也违反保护条件的约束集(Const)。这个过程不断重复,直到处理完所有挑剔的操作符。

        (3)然后设置并返回O^{'}作为估计答案接近度较大的O_{1}O_{2}的集合(第13-14行)。

图3:算法ApproxWhy

        过程GenPicky。给定V_{N_{u}},单个细化算子o是挑剔的,如果Q\bigoplus \left \{ o \right \}可能将V_{N_{u}}中的一个节点从Q(u_{o},G)中排除,通过减少候选人。为了保证完整性,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的所有不同值的集合。        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值