向量数据库(Vector Database),也叫矢量数据库,是专为处理高维向量数据而设计的数据库系统,它能高效存储和查询由文本、图像、音频、视频等非结构化数据通过嵌入(Embedding)技术转换得到的向量。其核心价值在于能快速进行相似性搜索,非常适合人工智能时代的各种应用。
向量数据库的核心用途是进行相似性搜索,从而解锁了多种应用场景:
假设有一个电商平台:
用户ID、订单号、商品SKU、价格、创建时间
。商品图片的特征向量、商品描述文本的特征向量
。向量(Vector),也称为矢量,是数学、物理学和工程科学等多个学科中的基本概念。它本质上是一个同时具有大小(长度)和方向,且满足平行四边形法则的几何对象
向量数据库中的“向量”,远不止是简单的数字列表。它是将文本、图像、音频等非结构化数据,通过深度学习模型转换后得到的数值化表示,旨在捕捉数据的深层特征和语义信息
方面 | 说明 | 示例或备注 |
---|---|---|
本质 | 一组有序的数值(通常是浮点数),代表对象在高维空间中的位置和特征。 | 在二维/三维空间中,可以直观理解为点或箭头;在高维空间中是抽象概念。 |
来源(嵌入) | 通过嵌入模型(如 BERT 用于文本、ResNet 用于图像)将非结构化数据(文本、图像、音频等)转换而来。 | 单词 "apple" 可能被表示为 0.12, -0.45, 0.88, ... 这样的数百维向量。 |
核心思想 | 语义相近的数据,其向量在空间中的距离也更近。 | "猫" 和 "狗" 的向量距离,会比 "猫" 和 "汽车" 的向量距离更近。 |
相似性度量(用途) | 通过计算向量间的“距离”或“相似度”来衡量数据的相关性。常用方法包括: | |
∟ 余弦相似度 | 衡量向量方向的差异,忽略其大小(模长)。范围-1, 1,值越大越相似。 | 适用于文本等场景,关注语义而非出现频率。 |
∟ 欧几里得距离 (L2) | 衡量向量间的直线距离。距离越小越相似。 | 适用于需要考虑绝对数值差异的场景,如某些推荐系统。 |
∟ 点积相似度 | 计算结果对向量长度敏感。值越大越相似,但需注意向量归一化处理。 |
向量嵌入(Vector Embeddings)是现代机器学习,特别是处理文本、图像、音频等非结构化数据的核心概念。它通过一种巧妙的方式,将复杂信息转换为计算机能够理解和处理的数值形式。核心在于, 它将人类理解的“含义”或“语义相似性”转换成了计算机可以计算的“空间距离”。
嵌入类型 | 描述 | 示例与应用 |
---|---|---|
词嵌入 | 将单个词语表示为向量,捕获语义关系和上下文信息 | Word2Vec, GloVe。用于机器翻译、文本分类基础 |
句子嵌入 | 将整个句子表示为向量,捕获句子的整体含义和上下文 | Universal Sentence Encoder (USE)。用于语义相似度计算、智能问答 |
文档嵌入 | 将整个文档(如文章、论文)表示为向量,捕获文档的语义信息和上下文 | Doc2Vec, 段落向量。用于文档检索、内容分析 |
图像嵌入 | 将图像转换为向量表示,捕获不同的视觉特征 | ResNet, VGG。用于图像分类、以图搜图、图像相似性 |
用户嵌入 | 将用户表示为向量,捕获用户偏好、行为和特征 | 用于个性化推荐、用户细分 |
产品嵌入 | 将产品表示为向量,捕获产品属性、功能和语义信息 | 用于电商推荐、产品比较 |
多模态嵌入 | 将不同模态(如文本和图像)的数据映射到同一向量空间,实现跨模态语义对齐 | CLIP, BGE-M3。用于图文互搜、跨模态检索 |
近似最近邻搜索(ANN, Approximate Nearest Neighbor Search)是一种用于在高维空间中快速查找与查询点“足够接近”而非绝对最近的数据点的技术。它通过在可接受的精度范围内牺牲少量准确性,来极大提升检索效率,特别适用于处理海量高维数据。
在电商领域,ANN 能帮助用户更快发现心仪商品。
相似性度量是机器学习和数据挖掘中的一个核心概念,它用数学方式量化对象、数据点或向量之间的相似性。理解并选择合适的相似性度量,对解决许多现实世界问题非常关键
相似性度量的核心在于以数学方式量化对象、数据点或向量之间的相似性。其基本思想是,两个对象越接近,它们的相似性度量值就越大(对于相似系数)或越小(对于距离函数)。
在机器学习中,我们通常将数据对象(如用户、商品、图片、文本)表示为特征向量。这些向量可以是数字、二进制值或其他形式的表示。相似性度量通过计算这些向量之间的某种“距离”或“相似系数”来评估其相似程度
余弦相似度是一种用于衡量两个向量在方向上相似程度的指标,它广泛应用于文本分析、推荐系统、图像识别等领域,它通过忽略向量的长度,只关注其方向来衡量相似性。这使得它在文本分析、推荐系统等需要比较高维数据“形状”或“主题”而非绝对数值的领域尤为有效。
关键思路
方面 | 说明 |
---|---|
核心思想 | 衡量两个向量的方向差异,而非它们的绝对距离或长度。只关心方向是否一致,对幅度不敏感。 |
取值范围 | -1 到 1 |
• 1: 向量方向完全相同 • 0: 向量垂直(正交),无相关性 • -1: 向量方向完全相反 | |
计算公式 | ( \text{cos}\theta = \frac{A \cdot B}{|A| |B|} ) (其中 ( A \cdot B ) 表示点积,( |A| ) 和 ( |B| ) 分别表示向量的模(长度)) |
对向量长度的态度 | 不敏感。只要方向一致,无论向量长度差异多大,余弦相似度都接近 1。 |
主要应用领域 | 文本相似度分析、推荐系统、自然语言处理(NLP)、图像识别等。 |
应用场景
欧几里得距离(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 删除。