向量检索

特征向量,目前被广泛运用于ML各种领域。特征向量的基本含义在此不再赘述,简单来说是通过数值的形式描述某个对象,主要用于处理处理图片、视频、语音、文本等非结构化数据。

向量检索的核心是通过某种评判标准来判定两个特征向量(两个对象)的相似程度。

随着智慧城市,短视频,商品个性化推荐,视觉商品搜索等新兴应用领域的出现,处理这些非结构化数据最主流的方法就是通过ML/DL算法,提取数据的特征向量,然后通过对这些特征向量的相似度对比来实现数据分析与检索。

向量检索使用的算法主要是KNN(K-NearestNeighbor)和ANN(Approximate Nearest Neighbor )两种,两者的算法实现与适用场景略有不同。随着海量数据处理的需求增加,ANN的方式逐渐成为主流。<meta charset="utf-8">

专注向量搜索的引擎似乎还没有完全成熟的解决方案,但是也有很多优秀的开源项目:

  1. Facebook AI 的 FAISS Github
  2. Microsoft AI lab 的 SPTAG Github
  3. 拿来快速入手还是推荐国人开发的 Milvus:Github
  4. ...... etc

还有很多ANN的benchmark也值得参考Github

两种算法 适用场景
KNN 数据量小(单分片100w以下);
先过滤其他条件,只剩少量数据,再向量召回的场景;
召回率100%
ANN 数据量大(千万级以上);
先向量过滤再其他过滤;
召回率不需要100%
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。