Page 17 - 《软件学报》2026年第3期
P. 17

980                                                        软件学报  2026  年第  37  卷第  3  期


                 写时复制技术实现秒级数据回滚. 实验结果表明, 在处理                 10  亿级  SIFT  数据集时, SPFresh  在  15  核单  NVMe SSD
                 环境下同时支撑      4k QPS  搜索吞吐和  2k QPS  更新吞吐. 相较于仅支持追加更新的          SPANN+, 其查询准确率提升超
                 过  15  个百分点且尾部延迟稳定在       4 ms 左右, 验证了动态再平衡机制对索引质量的持续维护能力.

                            B                                       B                       B
                                       合并     A 1      A 2                     分裂
                                A 2
                                                                                             A 2
                                                               A                     A 1
                      A 1
                                    (a) 合并操作                               (b) 分裂操作

                                      B                       B                     B
                                                                                          A 2
                                                分裂                     重新分配

                                                             A 2
                                                                             A 1
                             A                       A 1
                                                        (c) 重分配
                                               图 3 SPFresh  的基本更新操作     [67]

                  2.3   基于哈希的数据组织方法
                    基于哈希的方法是一种高效的索引组织方法. 它将数据点映射到一个低维空间中或者由一系列比特组成的二
                 进制编码中成为哈希码, 从而可以通过哈希值来快速定位数据点. 基于哈希的索引组织方法主要分为两类: 局部敏
                 感哈希 (locality sensitive hashing, LSH) 和学习型哈希 (learning to hash). LSH  通过随机投影等方式将相似的数据点
                 映射到相同的桶中来实现近似最近邻搜索. LSH              一般是与数据无关的. 学习型哈希则是将数据点映射到一个二进
                 制编码中, 从而可以通过汉明距离来计算相似度. 它考虑了数据分布的特点. 本文依据其哈希后的结果是二进制形
                 式而称学习型哈希为二进制哈希. 关于哈希的相关工作在综述文献                      [13,14,68] 中有详细的介绍. 在此, 我们从局部
                 敏感哈希和学习型哈希两个方面进行简要介绍, 主要介绍在利用哈希函数对数据进行哈希之后如何进行组织检
                 索, 更多更详细的介绍可以参考相关的综述.
                  2.3.1    局部敏感哈希
                    局部敏感哈希在文献         [9] 中被首次提出, 此后一系列以此为基础的研究工作取得了更好的搜索性能. 在
                 LSH  中, (r 1 , r 2 , p 1 , p 2 )-敏感哈希函数是其中的关键. 要找到一个哈希函数族满足如下的性质.
                    定义  3 (局部敏感哈希函数)     [69] . 一个哈希函数族  H 被称为   (r 1 , r 2 , p 1 , p 2 )-敏感 (其中,  r 1 <r 2 p 1 >p 2 ), 如果对于任
                                                                                        ,
                 意两个数据点     x 和  y, 满足以下条件.
                    (1) 如果  d(x,y) ⩽ r 1  (即两点距离不超过  ), 则它们被哈希到同一桶的概率至少为           p 1 :
                                                   r 1

                                                     Pr [h(x) = h(y)] ⩾ p 1 .
                                                     h∈H
                    (2) 如果                                                         p 2 :
                                                   r 2
                           d(x,y) ⩾ r 2  (即两点距离至少为  ), 则它们被哈希到同一桶的概率最多为
                                                     Pr [h(x) = h(y)] ⩽ p 2 .
                                                     h∈H
                    一个经典的方法是基于         p-stable 分布来设计  LSH  函数族. 其定义如下.
                    定义  4 (p-stable 分布) [69] . 一个分布  D 被称为  p-stable (其中  p ⩾ 0), 如果对于任意  n  个实数  v 1 ,v 2 ,...,v n  以及独
                                                                                           n ∑
                 立同分布 (independent and identically distributed, i.i.d.) 的随机变量  X 1 ,X 2 ,...,X n ∼ D, 随机变量   v i X i  的分布等同
                                                                                          i=1
                     n   1/p
                   ∑    
                      p 
                 于     |v i |    · X, 其中  X ∼ D.
                        
                    i=1
                    高斯分布是一个       p-stable 分布. 文献  [69] 中提出利用高斯分布设计随机投影向量, 将高维数据映射到低维空
   12   13   14   15   16   17   18   19   20   21   22