不确定数据上的概率排名查询
在处理不确定数据时,概率排名查询是一个重要的问题。传统的方法是枚举所有可能的世界并对每个可能的世界应用查询,但这种方法在处理大规模不确定数据集时效率极低。接下来,我们将探讨高效的 top-k 概率计算方法、精确查询回答方法以及如何通过前缀共享减少扫描次数。
1. top-k 概率计算
top-k 概率和 p-rank 可以直接从 rank-k 概率推导得出,下面我们详细介绍计算 rank-k 概率的方法。
1.1 优势集属性
考虑一个在不确定表 T 上的 top-k 选择查询 $Q_{k}^{P,f}$,$P(T)$ 是满足查询谓词的元组集合,它也是一个不确定表,其中每个元组的成员概率与 T 中相同。对于一个元组 $t \in T$ 和一个可能世界 $W$,$t$ 是否在 $W_{f}(k)$ 中仅取决于 T 中排名高于 $t$ 的其他元组在 $W$ 中出现的数量。
定义 1(优势集) :给定一个概率表 T 上的评分函数 $f$,对于一个元组 $t \in T$,$t$ 的优势集是 T 中排名高于 $t$ 的元组的子集,即 $S_{t} = {t’|t’ \in T \land t’ \prec_{f} t}$。
定理 1(优势集属性) :对于一个元组 $t \in T$,$Pr_{k}^{Q,T}(t) = Pr_{k}^{Q,S_{t}}(t)$,其中 $Pr_{k}^{Q,T}(t)$ 和 $Pr_{k}^{Q,S_{t}}(t)$ 分别是使用 T 中的元组和 $S_{t}$ 中的元组计算的 $t$ 的 to