中文

基于 MPI 的分布式太字节级相似度搜索:无需一次距离计算即可证明高效检索十亿级数据

数据库 2020-08-19 v2 分布式、并行与集群计算 信息检索 机器学习

摘要

我们提出 SLASH(Sketched LocAlity Sensitive Hashing),一个基于 MPI(Message Passing Interface,消息传递接口)的分布式系统,用于太字节级数据集上的近似相似度搜索。SLASH 提供了流行的 LSH(locality sensitive hashing,局部敏感哈希)算法的多节点实现,而该算法通常在单机上实现。我们展示了如何为 LSH 算法附加重命中者草图(heavy hitters sketches),从而可证明地解决(高)相似度搜索问题而无需一次距离计算。总体而言,我们从数学上证明,在现实数据假设下,仅通过亚线性(O(n)\ll O(n))数量的简单草图聚合操作即可识别给定查询 qq 的近邻。为使该系统实用,我们提出了一种新颖的设计与草图方案,将机器间通信开销指数级降低。在同等硬件上的直接对比中,SLASH 比 PySpark 中流行的 LSH 包快 10000 倍以上。PySpark 是广泛采用的用于大型数据集的 LSH 算法分布式实现,并部署于商业平台。最后,我们展示了我们的系统如何扩展到具有超过 40 亿样本的太字节级 Criteo 数据集。SLASH 可在不到一小时内于 20 个节点上对这 2.3 太字节数据建立索引,查询时间仅为毫秒级的一小部分。据我们所知,目前没有开源系统能够用商用集群对 Criteo 建立索引并执行相似度搜索。

关键词

引用

@article{arxiv.2008.03260,
  title  = {Distributed Tera-Scale Similarity Search with MPI: Provably Efficient Similarity Search over billions without a Single Distance Computation},
  author = {Nicholas Meisburger and Anshumali Shrivastava},
  journal= {arXiv preprint arXiv:2008.03260},
  year   = {2020}
}