1 / 27

Superseding Nearest Neighbor Search on Uncertain Spatial Databases

Superseding Nearest Neighbor Search on Uncertain Spatial Databases. 何翊宇. Abstract :. 这篇论文提出一个新的论题,叫做 superseding nearest neighbor search .

dasan
Download Presentation

Superseding Nearest Neighbor Search on Uncertain Spatial Databases

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Superseding Nearest Neighbor Search on Uncertain Spatial Databases 何翊宇

  2. Abstract: • 这篇论文提出一个新的论题,叫做superseding nearest neighbor search. • 在不确定性数据集中,每一个事件都是用一个多维的概率密度函数描述的。给定一个查询点q,一个object如果有非0的概率是q的NN,则这个object就是q的一个NN候选者。给定两个NN候选者 o1 和 o2,如果o1比o2点靠近q的概率大,则o1点取代o2点。一个object如果可以取代所有其他的NN候选者,它就是q的一个SNN。有时候我们不能找到一个NN可以替代其他所有的NN候选者,在这种情况下,我们返回SNN—core,包含了所有能够替代其他NN候选者的最小集合。

  3. NN search on precise data: 此处用到的方法叫best-first(BF)-algorithm。图中有9个点,q点是查询点,剩下还有8个点A~H是数据集。我们用面积最小的矩形将每两个点包围住。然后将矩形和q点到这些矩形的距离记录到R-tree中。然后我们可以根据此求出这些点到q的距离。 A~H按距离的排序:C,E,B,D,G,A,F,H

  4. BF算法: • BF算法用到了一个min-heap H。 H = {N5,N6} • H={N2,N6,N1} • H={C,N6,N1,D} C就是要求的Nearest Neighbor。

  5. BF算法: BF算法继续进行下去,将会把所有的点按照同q点的距离升序输出。 继续上图: • H={N1,N6,D} • H={N3,N1,D,N4} • H={E,N1,D,N4,F} 此时就求得了第二近的点E。

  6. BF算法疑问! BF算法如果再继续进行下去(论文没有写了) 继续上页: • H={N1,D,N4,F} • H={B,D,N4,F,A} B、D是第三个和第四个。 • H={N4,F,A} • H={G,F,A,H} 得到最终结果为C,E,B,D,G,F,A,H 而从图中可以看出结果应该为C,E,B,D,G,A,F,H

  7. NN Search on Uncertain Data: 定义:O.pdf(x) 是o出现在x点的概率。 • Expected-distance Principle:求得距离到q点的期望值最小的点。(可能会有极端情况出现) • PR-principle:求得成为NN的概率最大的点。 PR-principle可以看做是在求解top-1。PR-principle和SNN互补。PR-principle求出NN点,而SNN求出一个最佳NN候选者的集合SNN-core。

  8. 两种uncertain data: • 这两种算法(还有这篇论文的SNN算法)都是求的第一种uncertain data:数据确定,出现地点不确定。 • 除此之外还有一种不同的uncertain data:数据不确定是否出现,但是一旦出现地点确定。

  9. 问题描述及基础特性: • maxdist是o点到q点所有实例中最远的那个距离 • Minmax是Data中所有的object的maxdist中最小的那个

  10. 问题描述及基础特性: • 如果O有任意一个实例小于minmax, 说明当其他点都取maxdist的时候,O将成为NN,所以O是NN候选者。 • 所以以minmax为半径,q点为圆心做一个圆,在圆内部有实例的object就是NN候选者,没有的就不是。 • RI-list是所有NN候选者的实例按距离排序的一个集合。 • O<O’的定义:o比o’离p近.

  11. 问题描述及基础特性: • O出现在O[i]时比O’更接近p的概率,可以看做是O’的实例在RI-list内排在O[i]后面的概率。O取代O’则有边从O指向O’。 • 取代关系可以用图形来表示。(如前例) • SNN-core的决定条件: SNN-core内每一点都能够取代SNN-core以外的点 其真子集不能成为SNN-core

  12. the full-graph approach: • 先计算得出superseding graph,然后推算出SNN-core。(要将所有的Object画出来) • First step: 通过minmax判定NN候选者。然后将每一个NN候选者的实例选出来。用BF算法实现。(本质上是求得RI-list) • Second step: 将其表示到superseding graph,再确定SNN,方法如下: 在superseding graph中,有最少的in-degree的点是SNN-core。所有能取代SNN-core成员的点属于SNN-core。(可以反证法证明)

  13. The Pipeline Approach: • Full-graph 算法是一种低效的算法,因为它必须要遍历所有NN候选者的所有的实例,而在某些特定的情况下,这样会导致效率很低。如图。因此我们 需要找到一个更加高效 的方法。

  14. The Pipeline Approach: Pipeline算法要管理一个集合G*(与SNN-core关联): • 先将一个unseen点加入到G*中。然后从RI-list中从前往后取。将取到的点O加入到G*中(符合以下条件:1、O以前不在G*中。2、O没有被剪枝。3、unseen点仍在G*中(说明尚有点未加入))。 • 当minmax-moment(每一个object的maxdist点都出现,得到了minmax)出现以后,就将unseen点移走。(如果已经出现的每一个点都取代了unseen,也将unseen移走) • 尽可能多的给出G*中点的关系。(每当一个点被G*中其他点取代,就将其移走) • 当得出了SNN-core后,算法停止。 (unseen代表还有未出现的点可能可以出现到G*中)

  15. The Pipeline Approach: • Edge Phase: • 这个步骤的目的是将所有能够添加进G*的边添加进去。 • 这个步骤使用了一个矩阵low[i,j]和一个数组cnt[i]。 • Low[i,j]是一个m*m的方阵。随着实例的加入,low在不停的更新。m是object的总数。Low[i,j]储存当前Oi取代Oj的几率。 • i=j时Low[i,j]=0;(不能取代本身) • 因为O1代表的是unseen,第一行全部是0,第一列代表了出现过的O取代未出现过的点的最低的概率。 • 随着m的增加,更新low,当low[i,j]>0.5的时候,在G*中增加一条从Oi到Oj的边。

  16. The Pipeline Approach: • Cnt[m]记录了Oi至今为止有多少实例已经被遍历了(在此例中,后面的通用版此处会被修改).O1是unseen所以cnt[1]=0。 • 每次新增一个实例,将对应的cnt[i]加1,如果此实例以前未出现过,就将cnt扩大1,然后赋值为1。对应的在low中新建一行和一列,新建行的前m-1列用low[i,1]对应初始化,新建列用0初始化。然后在low中更新对应的列,采取以下公式):

  17. The Pipeline Approach: • Pruning Phase: • identify the smallest set Sret of vertices such that, for any vertex o ∈ Sret and o_ ∈ V∗ −Sret, G∗ has an edge from o to o_. We call Sret the retention-set; all the vertices in V∗ − Sret can be discarded. • Sret可以通过像在full superseding graph中计算SNN-core的方式计算获得: 先添加有最少的indgree的点,然后将可以取代它的点添加进去,然后将所有与它没有联系的点添加进去,直到无法再添加点。将不在Sret中的点移除。

  18. The Pipeline Approach: • Validating Phase: • 这个步骤决定G*是否还可以缩小。(当无法缩小的时候,G*就是SNN-core的S-graph,算法结束) • 当且仅当G*是强连通的时候,G*是不可缩小的。

  19. (前文提到的要修改处)如果将情况一般化。所有Object的实例不确定,出现几率不确定。Full-graph算法不用变。Pipeline算法的edge phase中 cnt数组改变,变成cnt[i]存放Oi的出现了的实例的出现几率,更改low的时候的算法改成: 其中表示O出现在Oi处的概率。

  20. Pipeline与full-graph比较: 1: P不需要输入全部的O和实例。 2: 计算时,F的时间复杂度是o(n2),P的时间复杂度在没有剪枝情况下是o(n3),然而剪枝的时候要好很多。 3:Full-graph需要较多的I/O时间,而CPU时间比较少。 4:Full-graph更简单实现 5:Full-graph在特定情况下(R-tree可以快速有效的遍历的时候(例如:内存数库))效率更高。

  21. Pipeline与full-graph比较:

  22. 论文总结: • SNN search是解决不确定性问题的一种可行方法,这篇文章通过两种算法得出SNN-core,并对其效率进行了比较。

  23. The end!

More Related