随笔--向量数据库的检索算法

文章目录

  • 暴力搜索(Flat)
  • 聚类
  • 近似最近邻算法:ANN
  • 局部敏感哈希索引:LSH
  • 存储优化:(量化)聚类码本
    • 乘积量化索引:PQ
    • 层次导航小世界:HNSW

暴力搜索(Flat)

  • 原理: 让待查寻向量和每一个备选向量都计算相似度, 选取topk, 召回率是100%。
  • 计算相似度的方法:
    • 欧式距离(Euclidean Distance)
    • 曼哈顿距离(Manhattan Distance)
    • 夹角余弦(Cosine)
    • 皮尔逊相关系数(Pearson Correlation Coefficient)
    • 内积

聚类

  • 原理:随机选择一些样本作为聚类中心点,叫做质心,计算相似性或距离,将样本分配到最近的簇中,重新计算每个簇中的均值或中心点,作为新的聚类中心,重复以上两个步骤,直到满足停止条件。
    随笔--向量数据库的检索算法_第1张图片

近似最近邻算法:ANN

局部敏感哈希索引:LSH

  • 原理步骤
    • 哈希函数可以将不同数据转化为统一长度的二进制编码


- 利用哈希碰撞,让尽可能相似的数据碰撞到同一个桶中

  • 如何找到哈希函数,让尽可能相似的向量分到一个桶中

    • 以二维举例,随即生成线,高维可以是超平面,分割之后一面为0 一面为1,计算二进制编码,最后对比相同的编码为一组。



    随笔--向量数据库的检索算法_第2张图片

    • 如果数据太密集误差较大,可以做优化,将二进制编码再进行分组。

存储优化:(量化)聚类码本

  • 原理:存储的时候可以对向量进行量化处理,减少内存占用、提高查询速度

乘积量化索引:PQ

  • 原理:对于高维数据,直接存储内存占用个太多,可以进行分段存储,每段有自己的码本,可以降较少内存的消耗

    随笔--向量数据库的检索算法_第3张图片

    随笔--向量数据库的检索算法_第4张图片

    随笔--向量数据库的检索算法_第5张图片
    随笔--向量数据库的检索算法_第6张图片
    随笔--向量数据库的检索算法_第7张图片

层次导航小世界:HNSW

  • 6人原理,每6个人引荐就能找到另一个人。
    随笔--向量数据库的检索算法_第8张图片



随笔--向量数据库的检索算法_第9张图片

你可能感兴趣的:(机器学习基础算法,算法,数据库)