简体中文
Appearance
简体中文
Appearance
向量检索是一种在非结构化数据中进行快速近似搜索的技术。常见的非结构化数据,例如文档、图像、音频、视频等数据,作为向量嵌入(Vector Embedding)存储在数据库中。用户使用向量检索技术,在数据库中查找与给定的目标向量最相似的数条向量,以及这些向量所对应的元信息,最终交给上层应用执行业务操作。
以电商搜索引擎业务为例,业务方使用嵌入模型(Embedding Model)将商品的名字、标签、描述、图片等统一转换为向量嵌入,存储到 Datalayers 等原生提供向量存储、向量检索的数据库中。用户在软件中搜索商品时,搜索词或图片被同一个嵌入模型转换为向量嵌入。软件后端将其作为目标向量,在数据库中进行检索。最终查找出与搜索词或图片最近似的一系列商品。
与传统的全文搜索不同,向量检索并不使用关键词进行精确或模糊匹配,而是用向量距离近似度量语义相似度,从而实现高效的近似检索。
数学意义上的向量是一个浮点数数组,形似 [1.0, 2.0, 3.0]
。在向量检索领域,一个向量是一个物体在高维空间的嵌入表征(Embedding)。例如在一个由若干个图片构成的高维空间中,每个向量代表一张图片。
为了得到一个物体在某个高维空间的嵌入表征,我们使用嵌入模型(Embedding Model)对物体进行转换,得到一个高维向量。 常用的嵌入模型类型包括图像嵌入模型、文本嵌入模型等,分别可以将图像、文本转换为高维向量。
向量距离是两个向量在高维空间的距离。在向量检索应用中,它用来近似度量两个向量的语义相似度。例如给定三张图片,分别表示“游泳”、“太阳”、“水”。 从语义上来说,“游泳”与“水”在语义上更接近,因此它们所对应的向量的距离更小。
增强生成(Retrieval-Augmented Generation,RAG)是一个用来优化大语言模型(LLM)输出效果的框架。RAG 将知识输入到嵌入模型中,得到知识的向量表征,再将它们存储到向量数据库中。在大语言模型根据用户输入的提示词(Prompt)生成提示时,RAG 将提示词转换为向量表征,在向量数据库中执行近似搜索,得到与提示词语义相近的文档。这些文档可以用来提升模型输出的效果,使得响应更准确。
通过使用合适的嵌入模型,任意非结构化数据均可以转换为统一的向量表征。因此向量搜索原生支持跨语言、跨模态(文本、图像、音频等)的搜索,支持基于语义的匹配。
推荐系统一方面将内容、商品等转换为向量表征,存储到向量数据库中。另一方面,在用户搜索内容或商品时,推荐系统将用户的历史行为、偏好、标签、好友关系、关注列表等信息转换为向量表征,在向量数据库中查找与之相似的一系列内容或商品,从而提供用户可能更感兴趣的内容或商品。