《 Scaling Up All Pairs Similarity Search》

来源:互联网 发布:江苏昆山华道数据 编辑:程序博客网 时间:2024/05/19 18:39

 

 ScalingUp All Pairs Similarity Search

扩展所有pair的相似性搜索。

摘要:

给定一个高维稀疏向量集合,我们研究找出所有pair的相似性分数(例如定义为余弦分数)的问题,并在这些pair高于给定阈值。我们提出一个简单算法:基于一种新颖的索引和优化策略,不需要近似算法和参数调优来解决这个问题。我们展示这种方法能够有效的处理多种数据集合,通过广泛调整相似性分数,并且对之前最好的方法都能得到更快的速度。

介绍:

需要计算相似性的地方。

互联网搜索的关键词提炼:可以用于相似query的发现、关键词推荐。目的是得到高质量的推荐,我们只需要计算所有querypair的相似性分数。

协调过滤:

需要计算相似用户的相关性。

重复网页的检测和去除:

  对于文档索引非常重要。

共同引用检测:

       用于点击作弊的识别。

这些都不是新的应用,但是目前由于web的规模很大,因此大量的应用都要计算上千万的query,上千万的用户的相关性分数。

(从以上几点可以看出,作者对搜索引擎相关应用了解比较多,作者是google工作阶段完成的论文)

一个算法是使用近似算法。(按:我们经常使用一些方法只计算部分query直接的相关性,而不是计算一个query和其他所有n个query之间的相关性)。

即使在理论上,很多近似算法通过调整参数得到一个很小的错误率,但是在实际算法应用中,可能会造成较大的错误。最近数据库社区的工作发现所有相似性的pairs已经被替换为精确的解决问题,以及在数据库管理系统的环境中。我们提出一个精确的解决方法。我们证明一个吝啬的并结合一些细微并且简单的优化可以带来性能上巨大的提升。

 

 

问题定义:

 

Given a set of real-valued vectors V={v1,v2…vn}of fixed dimensionality m, a similarity function sim(x,y), and a similaritythreshold t, we wish to compute the set of all pairs(x,y) and theirsimilarity values sim(x,y) such that x,yV and sim(x,y)≥t.We assume the similarity function iscommutative. Thus, if the pair (x,y) meetsthe threshold, so does (y,x), and we need only include one in the result. Wealso assume vector values are non-negative.

 

 

 对向量先归一化,那么向量距离只需要算两个向量内积,不需要分母。

针对特征维度:对特征维度的数据做倒排。