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

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


                 的二值化编码等, 在牺牲一定精度的情况下获得了极高的存储和计算效率, 通过异或和                           popcnt 指令可以实现硬件
                 级别的加速, 特别适合大规模快速检索场景, 为了弥补信息损失, 通常采用更高的维度来保持足够的区分度. (4) 属
                 性数据作为向量的补充, 提供了额外的结构化信息维度. 在实际检索中, 通过属性过滤与向量相似度的联合查询,
                 可以实现更精准的检索需求, 弥补单一向量表达在某些特定维度上的不足.
                  1.3   相似度度量
                    相似度函数被用于衡量两个向量之间的相似程度. 不同的相似度函数适用于不同的数据类型和应用场景, 下
                 面介绍向量数据库中使用的基本相似度函数. 表               2  是相关内容总览. 更多函数可以参考文献           [26].

                                                   表 2 不同的相似度比较

                    相似度量函数           值域          常用数据类型          复杂度           优点              缺点
                     欧氏距离           [0,+∞)        稠密向量            O(d)      几何意义直观           计算效率低
                     余弦相似度          [−1,+1]       稠密向量            O(d)      关注向量方向          异常值不敏感
                       内积          (−∞,+∞)      稠密、稀疏向量           O(d)       计算速度高          不是度量空间
                     汉明距离            [0,d]        二值向量           O(d/64)     位运算高效           信息损失大
                    Jaccard相似度       [0,1]        稀疏向量           O(m+n)      可解释性强           计算速度慢

                    (1) 欧氏距离
                    欧氏距离是最常用的相似度函数之一. 它定义为两个向量之间的平方差之和的平方根. 在实际中, 一般用平方

                 欧氏距离来避免开方运算. 对于两个向量             p 和  q, 其平方欧氏距离计算公式如下:

                                                            d ∑
                                                                   2
                                                     δ(p,q) =  (p i −q i ) .
                                                            i
                    欧氏距离几何意义明确, 具有平移不变性, 广泛用于向量之间的相似性度量.
                    (2) 余弦相似度
                    余弦相似度是计算两个归一化后的向量的内积, 代表两个向量之间的角度, 对向量的幅度不敏感. 余弦相似度
                 计算公式如下:

                                                               pq
                                                     sim(p,q) =    .
                                                              ∥p∥∥q∥
                    余弦相似度在文本向量中应用广泛. 它与欧氏距离可在归一化后进行转换, 公式如下:                         δ(p,q) = 2·(1− sim(p,q)).
                    (3) 内积
                                                             δ(p,q) = p·q. 内积的几何意义为两个向量之间的夹角余
                    内积是向量空间中最基本的相似度函数, 计算公式为
                 弦值与向量模长的乘积, 不满足度量空间要求.
                    (4) 汉明距离
                    汉明距离是用于计算两个二进制向量之间的相似度函数, 对于两个二值向量                         p 和  q, 汉明距离计算公式为:

                                                             d ∑
                                                     H(p,q) =  p i ⊕q i ,
                                                             i=1
                 其中,  ⊕ 表示异或操作. 汉明距离定义为两个等长向量中对应位置元素不同的个数. 其几何意义可以直观地理解为
                 两点在超立方体坐标上相异维度的数量. 两个向量之间的汉明距离可以通过异或和                           popcnt 实现快速计算.

                    (5) Jaccard  相似度
                    Jaccard  相似度是用于计算两个集合之间相似度的函数. 对于两个集合                 p 和  q, Jaccard  相似度计算公式为:

                                                             |p∩q|
                                                       J(p,q) =   .
                                                             |p∪q|
                    Jaccard  相似度的几何意义为两个集合的交集与并集的比值. 两个向量的相似度可以直接通过分别计算集合
   6   7   8   9   10   11   12   13   14   15   16