一、概述
Facebook AI Similarity Search (Faiss)是高效相似性搜索最受欢迎的轮子之一。给定一组向量,我们可以使用 Faiss 对它们进行索引——然后使用另一个向量(查询向量),我们在索引中搜索最相似的向量。
它包含搜索任何大小的向量集的算法,除非超出RAM的大小。它还包含用于评估和参数优化的支持代码。Faiss 是用 C++ 编写的,带有 Python/numpy 的完整包装器。一些最有用的算法是在 GPU 上实现的。它主要由 Meta 的基础 AI 研究小组开发。
Faiss可以让我们构建索引和搜索,而且搜索时间还飞快。Faiss 已经为十亿级数据集构建了最近邻搜索实现,并且在1亿个高维向量上构建了k最近邻图。
1、词嵌入或向量
向量或嵌入是文本数据的数值表示形式。例如,使用嵌入框架,像“name”这样的文本可以转换为数字表示,如下所示:
[-1.12725616e-01 -5.19371144e-02 -6.94938377e-02 2.93748770e-02-7.56825879e-02 8.83060396e-02 -5.42510450e-02 -1.52141722e-02]
作为人类,我们理解“name”等词的上下文含义,但我们需要一种方法来向机器学习(ML