个人博客:www.mzwang.top
论文题目
Efficient K-Nearest Neighbor Graph Construction for Generic Similarity Measures
相关信息
作者与单位
Wei Dong(wdong@cs.princeton.edu);
Moses Charikar(moses@cs.princeton.edu);
Kai Li(li@cs.princeton.edu).
Department of Computer Science, Princeton University
出处与时间
In Proceedings of the 20th international conference on World wide web; 2011
作者拟解决的主要问题
K近邻图的构建在很多基于Web的应用上是一个重要的操作,比如协同过滤(基于用户的邻居作推荐)、相似性搜索等。一个有效地构建方法将使K近邻图的应用更加广泛。
暴力构建K近邻图的时间复杂度为O(n2)O(n^2)O(n2),为了能更高效的构建K近邻图,现存的工作扩展性都不太好,而且一般都特定于具体的相似性度量。
有效的K近邻图构建仍然是一个开放的问题,解决该问题的已知方案中没有一个是通用、有效和可扩展的。因此,本文提出了NN-Descent方法,该方法具有以下优点:
-
通用。适用于任意的相似性度量准则。
-
可扩展。随着数据集尺寸的增加,Recall仅有很小的下降。由于对每一个数据点的局部信息进行操作,因此适用于分布式计算环境(MapReduce).
-
节省空间。整个构建过程仅涉及到一种数据结构——近邻图。
-
快速、精确。百分之几的相似性比较便可实现90%以上的召回率。
-
容易实施。主要代码不超过200行(C++)。
论文主要研究内容
如何有效地构建一个K近邻图,具体如下:
- 适用任意相似性度量的K近邻图构建方法。
- 在较短的时间内快速构建K近邻图的方法。
- 构建一个在其上能快速、精确执行搜索的K近邻图。
- 适用于MapReduce框架的K近邻图构建方案。
论文使用的方法
抽象描述注解
VVV表示数据集,数据集尺寸为N=∣V∣N=|V|N=∣V∣,相似性度量σ\sigmaσ:V×V→RV \times V \rightarrow RV×V→R。∀v∈V\forall v \in V∀v∈V,BK(v)B_K(v)BK(v)表示vvv的KKK个最近邻,RK(v)={ u∈V∣v∈BK(u)}R_K(v)= \lbrace u \in V | v \in B_K(u) \rbraceRK(v)={ u∈V∣v∈BK(u)}表示vvv的反向K个最近邻。B[v]B[v]B[v]和R[v]R[v]R[v]分别表示BK(v)B_K(v)BK(v)和RK(v)R_K(v)RK(v)的近似。B‾[v]=B[v]∪R[v]\overline{B}[v]=B[v] \cup R[v]B[v]=B[v]∪R[v]表示vvv的一般邻居。
当在VVV上的度量方式为距离度量时,即ddd:V×V→[0, +∞]V \times V \rightarrow [0,\ +\infty]V×V→[0, +∞]。∀r∈[0, +∞]\forall r \in [0,\ +\infty]∀r∈[0, +∞],以vvv为球心的r-球定义为:Br(v)={ u∈V∣d(u, v)≤r}B_r(v)=\lbrace u \in V | d(u, \ v) \leq r\rbraceBr(v)={ u∈V∣d(u, v)≤r}。
如果∃c\exists c∃c满足:
∣B2r(v)∣≤c∣Br(v)∣, ∀v∈V(1) |B_{2r}(v)| \leq c|B_{r}(v)|, \ \forall v \in V \tag{1} ∣B2r(v)∣≤c∣Br(v)∣, ∀v∈V(1)
则称度量空间V增长受限,ccc是增长常量。
基础算法注解
基本思想:邻居的邻居更可能是邻居。
理论推导
我们可以从VVV中每一个点的现有的近似K近邻出发,通过探索该点邻居的邻居(在当前近似K近邻中)而不断完善该点的K近邻。换句话说,可从粗略的K近邻图出发通过改进而不断完善它。对这一观点的量化表达如下:
让K=c3K=c^3K=c3(后面公式推导要用到,KKK取此值是方便推导),假定已有的近似K近邻图(可以随机给每个点选邻居构建,也可通过其它数据结构辅助构建,如哈希,树等)为BBB。∀v∈V\forall v \in V∀v∈V,B′[v]=⋃v′∈B[v]B[v′]B^\prime[v]=\bigcup _{v^\prime \in B[v]} B[v^\prime]B′[v]=⋃v′∈B[v]B[v′]表示vvv所有邻居的邻居集合,它也是在完善vvv的K近邻时的候选点集。当B的精度比较高时(迭代完善了一定次数或通过某种更好的方式初始化B),高到什么程度呢?就是给定一个固定的半径rrr,对∀v∈V\forall v \in V∀v∈V,B[v]B[v]B[v]包含的K个邻居均匀地分布在Br(v)B_r(v)Br(v)中。这样的话,当各事件相互独立且K<<∣Br/2(v)∣K<< |B_{r/2}(v)|K<<∣Br/2(v)∣时,B′[v]B^\prime [v]B′[v]很可能包含在Br/2(v)B_{r/2}(v)Br/2(v)中的K个邻居。换句话说,对∀v∈V\forall v \in V∀v∈V,通过探索B′[v]B^\prime [v]B′[v]来使vvv到它的近似K近邻的距离减半。
对Br/2(v)B_{r/2}(v)Br/2(v)中的一点uuu,要从B′[v]B^\prime[v]B′[v]里面找到,则至少存在一点v′v^\primev′,使得v′∈B[v]v^\prime \in B[v]v

提出了一种名为NN-Descent的K近邻图构建方法,适用于任意相似性度量,具有可扩展性、节省空间、快速精确及易实施的特点。通过迭代改进随机初始K近邻图,最终构建高质量近似K近邻图。
最低0.47元/天 解锁文章
2012

被折叠的 条评论
为什么被折叠?



