首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >AI学习笔记——向量数据库

AI学习笔记——向量数据库

原创
作者头像
参谋带个长
发布2025-09-19 09:21:05
发布2025-09-19 09:21:05
2630
举报

向量数据库

向量数据库(Vector Database),也叫矢量数据库,是专为处理高维向量数据而设计的数据库系统,它能高效存储和查询由文本、图像、音频、视频等非结构化数据通过嵌入(Embedding)技术转换得到的向量。其核心价值在于能快速进行相似性搜索,非常适合人工智能时代的各种应用。

关键概念

  • 向量(Vector):一组有序的数值,代表在高维空间中的点或方向,用于表示文本、图像等复杂对象的特征。
  • 向量嵌入(Embedding):将非结构化数据(如文本、图像)通过模型(如 Word2Vec、BERT、CLIP)转化为向量的过程。嵌入向量能够捕捉数据的语义信息。
  • 近似最近邻搜索(ANN, Approximate Nearest Neighbor):高维向量的精确搜索(如 KNN)计算成本高,向量数据库通过索引算法(如 HNSW、IVF、LSH)实现快速近似搜索,在精度和效率之间取得平衡。

工作流程

  1. 向量化:利用嵌入模型将原始数据(文本、图像等)转换为向量。
  2. 索引构建:为存储的向量集合构建专门的索引结构(如 HNSW、IVF-PQ),这是实现高速查询的关键。
  3. 查询处理:将查询输入(例如一段文字或一张图片)同样转化为向量,然后通过索引快速找到与查询向量最相似的 Top-K 个结果。
  4. 后处理:有些系统会对初步结果进行重新排序或过滤,以提升结果的相关性和准确性。

核心用途与应用场景

向量数据库的核心用途是进行相似性搜索,从而解锁了多种应用场景:

  • 检索增强生成(RAG):这是当前大模型领域的杀手级应用。向量数据库为 LLM 提供外部知识库,使其生成的内容更准确、更相关。
  • 语义搜索:实现“意思”上的搜索,而不仅仅是关键词匹配。例如,搜索“快乐的动物”,可能会返回包含“嬉笑的小狗”的图片或文档。
  • 推荐系统:用户和物品(商品、电影等)都被表示为向量。通过计算用户向量与所有物品向量的相似度,为其推荐最感兴趣的物品。
  • 内容检索与去重:包括以图搜图、以音搜音、人脸识别等。系统通过比较特征向量来找到相似的内容。
  • 异常检测:在金融风控或工业质检中,正常操作的数据向量会聚集在特定区域。一个与正常向量距离很远的向量,很可能意味着异常事件的发生。

与传统数据库查询方面的区别

  • 传统数据库的查询核心是 “精确匹配” 。它回答的是“有没有?”(是否存在某条记录)和“是多少?”(某条记录的具体值)这类问题。其价值在于保证数据的准确性和一致性
  • 向量数据库的查询核心是 “相似搜索” 。它回答的是“像什么?”(哪些内容与查询目标在语义或特征上接近)和“有多像?”(用相似度分数量化)这类问题。其价值在于理解和挖掘非结构化数据的内涵

假设有一个电商平台:

  • 传统数据库(MySQL)负责存储:用户ID、订单号、商品SKU、价格、创建时间
    • 查询:“查询用户 ID 为 12345 的所有订单” -> 快速返回精确结果。
  • 向量数据库(Milvus)负责存储:商品图片的特征向量、商品描述文本的特征向量
    • 查询:“找一张沙发图片” -> 返回 visually similar(视觉上相似)的家具,如扶手椅、躺椅,并可按风格(北欧、中式)过滤。

向量 Vector

向量(Vector),也称为矢量,是数学、物理学和工程科学等多个学科中的基本概念。它本质上是一个同时具有大小(长度)和方向,且满足平行四边形法则的几何对象

向量数据库中的“向量”,远不止是简单的数字列表。它是将文本、图像、音频等非结构化数据,通过深度学习模型转换后得到的数值化表示,旨在捕捉数据的深层特征和语义信息

方面

说明

示例或备注

本质

一组有序的数值(通常是浮点数),代表对象在高维空间中的位置和特征。

在二维/三维空间中,可以直观理解为点或箭头;在高维空间中是抽象概念。

来源(嵌入)

通过嵌入模型(如 BERT 用于文本、ResNet 用于图像)将非结构化数据(文本、图像、音频等)转换而来。

单词 "apple" 可能被表示为 0.12, -0.45, 0.88, ... 这样的数百维向量。

核心思想

语义相近的数据,其向量在空间中的距离也更近

"猫" 和 "狗" 的向量距离,会比 "猫" 和 "汽车" 的向量距离更近。

相似性度量(用途)

通过计算向量间的“距离”或“相似度”来衡量数据的相关性。常用方法包括:

∟ 余弦相似度

衡量向量方向的差异,忽略其大小(模长)。范围-1, 1,值越大越相似。

适用于文本等场景,关注语义而非出现频率。

∟ 欧几里得距离 (L2)

衡量向量间的直线距离。距离越小越相似。

适用于需要考虑绝对数值差异的场景,如某些推荐系统。

∟ 点积相似度

计算结果对向量长度敏感。值越大越相似,但需注意向量归一化处理。

向量在数据库中的组织与检索

  1. 索引(Indexing):为了在海量向量中快速找到相似项,数据库会为向量集合构建索引。这就像是给书籍编目,常见的索引算法有HNSW(基于图)IVF(基于聚类)PQ(乘积量化) 等。它们通过牺牲少量精度来极大提升检索速度。
  2. 检索(Retrieval):用户提供一个查询向量(例如由问题文本生成),数据库通过索引快速找到最相似的向量,并返回其对应的原始数据。

向量嵌入

向量嵌入(Vector Embeddings)是现代机器学习,特别是处理文本、图像、音频等非结构化数据的核心概念。它通过一种巧妙的方式,将复杂信息转换为计算机能够理解和处理的数值形式。核心在于, 它将人类理解的“含义”或“语义相似性”转换成了计算机可以计算的“空间距离”。

嵌入类型

描述

示例与应用

词嵌入

将单个词语表示为向量,捕获语义关系和上下文信息

Word2Vec, GloVe。用于机器翻译、文本分类基础

句子嵌入

将整个句子表示为向量,捕获句子的整体含义和上下文

Universal Sentence Encoder (USE)。用于语义相似度计算、智能问答

文档嵌入

将整个文档(如文章、论文)表示为向量,捕获文档的语义信息和上下文

Doc2Vec, 段落向量。用于文档检索、内容分析

图像嵌入

将图像转换为向量表示,捕获不同的视觉特征

ResNet, VGG。用于图像分类、以图搜图、图像相似性

用户嵌入

将用户表示为向量,捕获用户偏好、行为和特征

用于个性化推荐、用户细分

产品嵌入

将产品表示为向量,捕获产品属性、功能和语义信息

用于电商推荐、产品比较

多模态嵌入

将不同模态(如文本和图像)的数据映射到同一向量空间,实现跨模态语义对齐

CLIP, BGE-M3。用于图文互搜、跨模态检索

近似最近邻搜索

近似最近邻搜索(ANN, Approximate Nearest Neighbor Search)是一种用于在高维空间中快速查找与查询点“足够接近”而非绝对最近的数据点的技术。它通过在可接受的精度范围内牺牲少量准确性,来极大提升检索效率,特别适用于处理海量高维数据。

在电商领域,ANN 能帮助用户更快发现心仪商品。

  • "猜你喜欢"与个性化推荐:电商平台会将每个用户的行为(浏览、收藏、购买)和属性,以及每个商品的信息(标题、描述、图片)转换为向量。当你想获取个性化推荐时,系统并非遍历所有商品,而是将你的用户向量作为查询点,通过 ANN 快速在海量商品向量中查找最相似的几十个,从而生成你的“专属推荐”。这种基于向量相似度的推荐,比传统基于规则的推荐更能理解你的潜在偏好。
  • "以图搜图":看到心仪商品图片却不知如何描述?上传图片,系统通过深度学习模型提取图片特征并转换为向量,然后通过 ANN 在商品图片向量库中快速搜索视觉上最相似的图片及其对应商品。这背后就是 ANN 在支持毫秒级的相似图片检索。

相似性度量

相似性度量是机器学习和数据挖掘中的一个核心概念,它用数学方式量化对象、数据点或向量之间的相似性。理解并选择合适的相似性度量,对解决许多现实世界问题非常关键

相似性度量的核心在于以数学方式量化对象、数据点或向量之间的相似性。其基本思想是,两个对象越接近,它们的相似性度量值就越大(对于相似系数)或越小(对于距离函数)。

在机器学习中,我们通常将数据对象(如用户、商品、图片、文本)表示为特征向量。这些向量可以是数字、二进制值或其他形式的表示。相似性度量通过计算这些向量之间的某种“距离”或“相似系数”来评估其相似程度

余弦相似度

余弦相似度是一种用于衡量两个向量在方向上相似程度的指标,它广泛应用于文本分析、推荐系统、图像识别等领域,它通过忽略向量的长度,只关注其方向来衡量相似性。这使得它在文本分析、推荐系统等需要比较高维数据“形状”或“主题”而非绝对数值的领域尤为有效。

关键思路

方面

说明

核心思想

衡量两个向量的方向差异,而非它们的绝对距离或长度。只关心方向是否一致,对幅度不敏感。

取值范围

-1 到 1

1: 向量方向完全相同 • 0: 向量垂直(正交),无相关性 • -1: 向量方向完全相反

计算公式

( \text{cos}\theta = \frac{A \cdot B}{|A| |B|} ) (其中 ( A \cdot B ) 表示点积,( |A| ) 和 ( |B| ) 分别表示向量的模(长度))

对向量长度的态度

不敏感。只要方向一致,无论向量长度差异多大,余弦相似度都接近 1。

主要应用领域

文本相似度分析、推荐系统、自然语言处理(NLP)、图像识别等。

应用场景

  • 文本分析与自然语言处理 (NLP):这是余弦相似度最经典的应用领域。文档被表示为高维空间中的向量(如词频向量或 TF-IDF 向量),通过计算这些向量的余弦相似度,可以判断文档主题的相似性。
  • 推荐系统:用于计算用户之间的兴趣相似度(基于用户的行为或评分向量)或物品之间的相似度(基于喜欢该物品的用户向量),从而进行基于用户的协同过滤或基于物品的协同过滤推荐。
  • 图像识别:图像特征可以被编码为特征向量。通过计算这些特征向量之间的余弦相似度,可以衡量图像的相似性,用于图像检索或分类。
  • 异常检测:通过计算一个数据点的特征向量与大部分数据点整体方向之间的余弦相似度,可以帮助识别出方向显著不同的异常点。

欧几里得距离

欧几里得距离(Euclidean Distance),也称欧氏距离,是衡量多维空间中两点之间直线距离的一种方法。它源于勾股定理,是我们最直观理解的距离概念,广泛应用于数学、物理学、计算机科学和人工智能等领域

方面

说明

核心思想

计算两点之间的直线距离(最短路径)

取值范围

[0, +∞),值越小表示两点越接近

计算公式(n 维)

$d = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2}$ (其中 $x_i$ 和 $y_i$ 分别是两点在第 i 个维度上的坐标)

主要优点

计算简单、直观易懂

主要缺点

对数据尺度敏感、对异常值敏感、高维数据下效果可能下降

点积相似度

点积相似度(Dot Product Similarity)是一种通过计算两个向量点积(内积)来衡量它们相似性的方法。它通过将两个向量对应元素相乘后求和,得到一个标量值。这个值越大,通常表示两个向量越相似

方面

说明

核心思想

通过计算两向量点积(对应元素相乘再求和)来衡量相似性,结果同时受向量长度和方向影响

取值范围

(-∞, +∞)

值越大

表示向量越相似(尤其在向量各元素值非负时)

计算公式(n 维)

$A \cdot B = \sum_{i=1}^{n} a_i b_i$ (其中 $a_i$ 和 $b_i$ 分别是向量 A 和 B 在第 i 个维度上的值)

主要特点

计算简单、未归一化(对向量长度敏感)

与余弦相似度关系

余弦相似度是点积的归一化形式(除以模长),只关注方向,忽略长度。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 向量数据库
    • 关键概念
    • 工作流程
    • 核心用途与应用场景
    • 与传统数据库查询方面的区别
  • 向量 Vector
    • 向量在数据库中的组织与检索
  • 向量嵌入
  • 近似最近邻搜索
  • 相似性度量
    • 余弦相似度
    • 欧几里得距离
    • 点积相似度
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档