什么是矢量嵌入?

作者

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

什么是向量嵌入?

矢量嵌入是数据点的数字表示,可将各种类型的数据(包括文字或图像等非数学数据)表示为机器学习 (ML) 模型可以处理的数字数组。

人工智能 (AI) 模型,从简单的线性回归算法到深度学习 中使用的复杂神经网络,都是通过数学逻辑运行的。 AI 模型运行的任何数据,包括文本、音频或图像等非结构化数据,都必须以数字表示。矢量嵌入是将非结构化数据点转换为仍然表达该数据原始含义的数字数组的方法。

训练模型输出与其实际特征有意义对应的数据点的矢量表示,这样,我们将能够对矢量嵌入如何相互关联做出有用的假设。非常直观的是,两个真实世界中的数据点越相似,它们各自的向量嵌入也应该越相似。两个数据点共有的特征或品质应反映在相应的两个向量嵌入中。不同的数据点应该具有不同的向量嵌入。

有了这样的逻辑假设,矢量嵌入可以用作模型的输入,通过比较、转换、组合、排序或以其他方式操纵这些数字表示的数学运算来执行有用的现实世界任务。

将数据点表示为向量还可以实现不同类型数据的互操作性,通过在同一个嵌入空间中表示不同数据格式,来充当不同数据格式之间的“通用语言”。例如,智能手机语音助手可将用户的音频输入“翻译”成向量嵌入,进而使用向量嵌入对该输入进行自然语言处理 (NLP)

因此,向量嵌入是几乎所有现代机器学习的基础,为 NLP 和计算机视觉领域使用的模型提供支持,并作为生成式 AI 的基本构建块。

专家为您带来最新的 AI 趋势

获取有关最重要且最有趣的 AI 新闻的精选洞察分析。订阅我们的每周 Think 时事通讯。请参阅 IBM 隐私声明

谢谢!您已订阅。

您的订阅将以英语提供。您会在每份时事通讯中找到一个取消订阅链接。您可以在此处管理您的订阅或取消订阅。有关更多信息,请参阅我们的 IBM 隐私声明

什么是向量?

向量属于较大的张量类别。在机器学习 (ML) 中,“张量”是一个通用术语,指 n 维空间中的一个数字数组或一组数字数组,其功能类似于数据的数学记账工具。

请注意,某些单词在 ML 上下文中的使用方式与在日常语言中或其他数学背景下的使用方式不同。例如,“向量”本身在物理学中具有比在 ML 中更具体的内涵 – 通常指具有大小和方向的量。

同样,“维度”一词在机器学习中具有不同的含义,具体取决于其上下文。描述张量时,它指的是张量包含多少个数组。描述向量时,它指的是该向量包含多少个分量和单个数字。诸如“阶”或“度”之类的类似术语可以帮助减少歧义。

  • 标量是一种零维张量,包含一个数字。例如,天气数据建模系统可能会将单日的最高气温(摄氏度)以标量形式表示为

    33
    .

  • 向量是一维(或者一次一阶)张量,包含同一类型数据的多个标量。例如,天气模型可能会以如下向量形式表示单日的最低气温、平均气温和最高气温为 (25, 30, 33) 每个标量分量都是该向量的一个特征(即维度),对应于该日天气的一个特征。

  • 元组 是一阶张量,包含一种以上数据类型的标量。例如,一个人的姓名、年龄和身高(以英寸为单位)可以元组的形式表示为 (Jane, Smith, 31, 65) .

  • 矩阵是一个二维 (或二阶二阶)张量,包含多个同类数据向量。它可以直观地可视化为一个二维标量网格,其中每一行或每一列都是一个向量。例如,天气模型可以用一个 3x30 矩阵来表示整个 6 月份,其中每一行都是一个特征向量,描述单日的最低气温、平均气温和最高气温。

  • 三维或三维以上的张量,如计算机视觉算法中用于表示彩色图像的三维张量,被称为多维数组N 维张量。

还可以对矩阵或其他 n 维张量进行各种直接变换,以向量形式表示它们所包含的数据。例如,一个 4x4 矩阵可展平为一个 16 维向量;一个 4x4 像素图像的 3 维张量可以展平为一个 48 维向量。 现代 ML 中的嵌入主要采用向量形式。

向量与嵌入:

尽管这两个术语在 ML 中经常可以互换使用,但“向量”和“嵌入”并不一定相同。

嵌入 是数据的任何数字表示,它能以 ML 算法可以处理的方式捕捉数据的相关特征。数据嵌入n 维空间中。

理论上,数据不需要作为向量特别嵌入。例如,某些类型的数据可以嵌入到元组形式中。1 但在实践中,现代 ML 中的嵌入主要采用向量形式。

相反,在物理学等其他语境中,向量并不一定是嵌入向量。但在 ML 中,向量通常是嵌入式,而嵌入式通常是向量。

Mixture of Experts | 12 月 12 日,第 85 集

解码 AI:每周新闻摘要

加入我们世界级的专家小组——工程师、研究人员、产品负责人等将为您甄别 AI 领域的真知灼见,带来最新的 AI 资讯与深度解析。

矢量嵌入的工作原理

向量嵌入将一个数据点(例如单词、句子或图像)转换为表示该数据点的特征(其特征)的n维数字数组。这可以通过在与当前任务相关的大型数据集上训练嵌入模型或使用预训练模型来实现。

要理解矢量嵌入,需要解释几个关键概念:

  • 矢量嵌入如何表示数据。

  • 如何比较矢量嵌入

  • 如何使用模型生成向量嵌入。

矢量嵌入如何表示数据

在机器学习中,数据的“维度”并不是指我们熟悉和直观的物理空间维度。在向量空间中,每个维度都对应数据的一个单独特征,就像物理空间中物体的长度、宽度和深度特征一样。

向量嵌入通常用于处理高维数据。实际上,大多数非数值信息都是高维的。例如,即使是 MNIST 数据集中一个非常小、非常简单的 28x28 像素手写数字黑白图像,也可以表示为一个 784 维向量,其中每个维度对应一个单独的像素,其灰度值介于 0(表示黑色)到 1(表示白色)之间。

但是,并非数据的所有维度都包含有用的信息在我们的 MNIST 示例中,实际数字本身只代表图像的一小部分:其余部分是空白背景或“噪声”。因此,“在 784 维空间中嵌入图像的表示”比“表示图像的 784 个不同特征”更准确。

因此,高维数据的高效向量嵌入往往需要一定程度的降维:将高维数据压缩到维度较低的空间,省略掉不相关或冗余的信息

降维可以提高模型的速度和效率,但可能会损害准确性或精度,因为较小的向量需要较少的计算资源来进行数学运算。 它还可以帮助降低过拟合训练数据的风险。不同的降维方法,例如 自动编码器卷积主成分分析和 T 分布式随机邻域嵌入 (t-SNE),最适合不同的数据类型和任务。

虽然图像向量数据的维度相对客观和直观,但确定某些数据模态的相关特征,如语言的语义和上下文关系,则更加抽象或主观。在这种情况下,向量嵌入的维度所表示的具体特征可以通过手动特征工程来建立,或者,在深度学习时代更常见的是,通过训练模型来做出准确预测的过程隐式确定。

如何进行向量嵌入的对比

向量嵌入的核心逻辑在于,相似数据点的 n 维嵌入应在 n 维空间中紧密地组合在一起。但是,嵌入可能有数十、数百甚至数千个维度。这远远超出了我们的大脑可以直观想象事物彼此“靠近”的二维或三维空间。

取而代之的是,使用多个数学度量来推断不同向量嵌入的相对相似性或接近性。对于特定情况,相似性的最佳衡量标准在很大程度上取决于数据的性质以及比较的用途。

  • 欧几里得距离用于衡量不同向量的对应点之间的平均直线距离。要计算两个 n 维向量 a b 之间的差,首先将其对应分量之间差的平方相加,(a1–b1)2 + (a2–b2)2 + ... (an–bn)2 然后求该总和的平方根。由于欧几里得距离对大小敏感,因此它对于反映大小或计数等的数据非常有用。其值介于 0(表示两个向量完全相同)到 ∞ 之间。
     

  • 余弦距离又称余弦相似度,是两个向量之间角度余弦的归一化度量。余弦距离介于 -1 到 1 之间,其中 1 表示两个向量完全相同,0 表示两个向量正交(或不相关),-1 表示两个向量完全相反。余弦相似度广泛用于 NLP 任务,因为它能自然地对向量大小进行归一化处理,而且与欧几里得距离相比,它对训练数据中词语的相对频率不那么敏感。
     

  • 从代数角度来说,点积是每个矢量相应分量的乘积之和。从几何角度来说,它是余弦距离的非归一化版本,也反映了频率或幅度。

向量嵌入的相似性指标 常用向量相似性指标的数学公式和可视化。

嵌入模型

独立嵌入模型可能是预先训练的产品,或者针对特定任务或训练数据从头开始训练。每种形式的数据通常都会从特定的神经网络架构中受益,但针对特定任务使用特定算法通常是最佳实践,而不是明确的规则。

在某些情况下,嵌入过程是更大的神经网络中的组成部分。例如,在用于图像分割等任务的编码器-解码器卷积神经网络 (CNN) 中,要想优化整个网络以做出准确预测,就需要训练编码器层以输出有效的输入图像向量嵌入。

预训练模型
对于许多用例和研究领域来说,预训练模型可以提供有用的嵌入,作为自定义模型或向量数据库的输入。这些开源模型通常在大量、广泛的训练数据集上进行训练,以学习对许多下游任务有用的嵌入式数据,如少样本学习零样本学习

对于文本数据,可以从头开始训练基础的开源词嵌入模型(例如 Google 的 Word2Vec 或斯坦福大学的 Global Vectors (GloVe)),也可以获得使用公共文本数据(例如 Wikipedia 和 Common Crawl)预训练的此类模型变体。同样,常用于嵌入的编码器-解码器大型语言模型 (LLM)(例如 BERT 及其众多变体)也使用了大量文本数据进行预训练。

对于计算机视觉任务,可通过简单地移除最终的全连接预测层,对预训练图像分类模型(例如 ImageNet、ResNet 或 VGG)进行调整,以适应输出嵌入。

自定义嵌入模型
预训练模型的微调或是完全自定义嵌入模型的训练能让一些用例获益,尤其是那些涉及深奥概念或全新数据类别的用例。

法律和医学领域是突出的例子:这两个领域往往依赖于深奥且高度专业化的词汇、知识库或图像,而这些数据不太可能包含在一般性模型的训练数据中。通过使用特定领域的示例进行进一步训练来补充预训练模型的基础知识,可以帮助模型输出更有效的嵌入。

虽然这也可以通过设计定制的神经网络架构或从头开始训练已知架构来实现,但这样做需要大多数组织或业余爱好者可能无法获得的资源和经验知识。

图像的向量嵌入

图像嵌入通过使用图像的像素值来对应矢量分量,将视觉信息转换为数字矢量。图像嵌入通常依赖于 CNN,不过,近年来越来越多的计算机视觉模型采用基于转换器的神经网络。2

采用典型 RGB 配色方案的图像以数值形式表示为三维矩阵,其中三个矩阵分别对应于每个像素的红色、绿色和蓝色值。RGB 图像通常为 8 位,意味着像素的每个颜色值介于 0 到 256(或 28)之间。如前所述,黑白图像以数值形式表示为二维像素矩阵,其中每个像素的值都介于 0 到 1 之间。

用像素矩阵表示图像的示意图 以三维像素矩阵表示的图像

卷积使用二维数值过滤器(称为内核)从图像中提取特征。最有利于提取相关特征的内核的权重本身就是模型训练期间的可学习参数。这些卷积生成图像的特征图。

必要时,可使用填充来保持输入的原始大小,即在数组的外侧行和列中添加额外零层。反之,池化 技术可用于进一步降维,它主要是通过只取视觉特征的最小值、最大值或平均值来概括视觉特征。

最后,压缩后的表示形式将被展平为一个向量。

图像搜索

图像嵌入的一个直观应用是图像搜索:一种将图像数据作为输入并返回具有类似向量嵌入的其他图像的系统,例如,从照片中识别植物种类的智能手机应用程序。

更复杂的执行方式是多模态图像搜索,它将文本作为输入并返回与该文本相关的图像。这种执行无法通过从语言模型中获取文本嵌入,并将其用作另一计算机视觉模型的输入来实现。相反,两个嵌入模型必须经过明确训练才能相互关联。

对比语言-图像预训练 (CLIP) 是一种用于图像和文本嵌入的著名算法,最初由 OpenAI 开发。CLIP 是在一个巨大的未标注数据集上训练的,该数据集包含从互联网上获取的超过 4 亿个图像标题对。这些配对可用于从头开始联合训练图像编码器和文本编码器,方法是使用对比损失 来最大限度地提高图像嵌入与其对应标题的嵌入之间的余弦相似度。

图像生成

图像嵌入的另一个重要应用是图像生成:创建新图像。

从图像嵌入生成新图像的一种方法是使用变分自编码器 (VAE)。VAE 对输入数据进行两种不同的向量嵌入编码:均值向量和标准差向量。通过从这些向量嵌入所代表的概率分布中随机抽样,VAE 可以使用其解码器网络来生成该输入数据的变体。

尤其是在最近几年,一种更为突出的基于嵌入的图像生成方法是使用前面提到的 CLIP 算法。DALL-E、Midjourney 和 Stable Diffusion 等图像合成模型将文本提示作为输入,使用 CLIP 嵌入文本的向量表示;反过来,相同的向量嵌入基本上被扩散模型用于重建新图像。

向量嵌入用于 NLP

文本嵌入不那么简单。它们必须用数字表示抽象概念,如语义、变量内涵以及单词和短语之间的上下文关系。 简单地用字母来表示单词,就像图像嵌入用像素值来表示视觉效果一样,不会产生有意义的嵌入。

虽然大多数计算机视觉模型采用传统的监督学习进行训练,但 NLP 的嵌入模型需要在海量的训练数据上进行 监督学习,以充分捕捉语言在不同上下文中的许多潜在含义。

由此生成的嵌入能为许多通常与生成式 AI 相关的任务提供支持,从语言翻译到会话式聊天机器人,从文档摘要到问答服务,都在其中。

文本嵌入模型

用于为文本数据生成向量嵌入的模型往往与用于生成实际文本的模型不同。

通常用于文本生成和其他生成式 AI 任务(例如 OpenAI 的 GPT 模型或 Meta 的 Llama)的流行 LLM 是仅解码器的自回归 模型,也称为因果语言模型。在训练中,它们会看到特定文本样本开头的第一个单词,并负责持续预测下一个单词,直到序列结束。虽然这很适合学习生成连贯的文本,但对于学习有用的独立向量嵌入来说并不是最佳选择。

相反,文本嵌入通常依赖于屏蔽语言模型,例如于 2018 年首次发布的来自转换器的双向编码器表示 (BERT)。在训练中,这些编码器-解码器模型会获得文本序列,其中某些单词被屏蔽或隐藏,并负责填补空白。此练习奖励能够更好地捕获有关特定单词或句子的信息以及它与上下文的关系的嵌入。Word2vec 也执行类似的训练任务,只是采用了更简单的 2 层神经网络架构。

截至 2024 年 6 月,BERT 仍然是 Hugging Face 上最受欢迎的语言模型,上个月的下载次数超过 6000 万次。3几种著名的 BERT 变体已经适应特定类型的语言嵌入和场景:

  • SBERT:也称为句子 BERT 和句子转换器,是 BERT 的一种变体,采用了经调整的孪生神经网络结构,可对句子对进行微调,以提高对句子嵌入进行编码的能力。

  • DistilBERT:一种轻量化的 BERT 变体,通过对 BERT 基础模型进行知识提炼来创建更小的模型,并将运行速度提高了 60%,同时将 BERT 的部分性能指标保留了 95% 以上。4

  • RoBERTa:是经过稳健优化的 BERT 预训练方法的缩写,它改进了 BERT 训练程序以优化其性能。

文本嵌入类型

矢量嵌入可用于表示各种自然语言数据。

词嵌入
词嵌入的目标不仅是捕获单个单词的语义,还要捕获它们与经常同时出现的其他单词的上下文关系。这样,词嵌入就可以很好地推广到新的上下文,甚至是罕见或以前未见过的单词。

GloVe 是一种广泛使用的词嵌入模型,使用“全局词-词共现矩阵”进行训练,能根据特定词语彼此靠近使用的频率来推断语义含义和语义关系。例如,“冰”和“蒸汽”与“水”同时出现的频率大致相同,但与“固体”和“气体”同时出现的频率却大相径庭,由此可以推导出其中的含义。5

利用词嵌入矢量的维度隐式捕获这些关系的方式,将能够以有用和直观的方式对它们进行数学操作。在配置良好的词嵌入方案中,从 "king" 的矢量中减去 "man" 的矢量,再加上 "woman" 的矢量,基本上应能得到 "queen" 的矢量。

句子嵌入
句子嵌入会嵌入整个短语或句子的语义,而不是单个单词。它们通常由 SBERT 或句子转换器的其他变体生成。

  • 句子嵌入可以嵌入用户查询的表示形式,用于搜索引擎或问答应用程序。

  • 在机器翻译中,一种语言的句子的矢量嵌入可以用来输出具有类似矢量嵌入的不同语言的句子。

  • 句子嵌入经常用于情感分析。分类器可以在每个情感类别的标注示例上进行训练,也可以使用监督式学习,然后通过将新样本的向量嵌入与所学的每个类别的嵌入相匹配来进行分类。通过零样本学习也可以进行情感分析,即把特定句子的嵌入与特定分类的词嵌入进行比较。

文档嵌入
文档嵌入通常用于对文档或网页进行分类,以便在搜索引擎或矢量数据库中建立索引。文档嵌入的典型模型包括 BERT 变体、Doc2vec(Word2vec 模型的扩展)或其他开源嵌入模型,如 Instructor(ibm.com 外部链接)。

其他类型的矢量嵌入

尽管图像和文本数据往往最受关注,尤其是对于生成式 AI 用例,但各种数据模态都可以从向量嵌入中获益。

  • 音频嵌入可用于各种应用程序,包括语音助手、歌曲推荐系统和音乐识别系统(例如 Shazam)。它们通过波形数据的数字特性来表示声音。可以使用循环神经网络 (RNN)、CNN 或基于转换器的架构来嵌入音频。

  • 产品嵌入通常用于为电子商务平台的推荐系统提供支持。它们通常使用无监督学习算法生成。

  • 图嵌入可用于对复杂的关系结构(例如社交网络或生物系统)进行建模和表示。图嵌入向量的维度表示系统的各个节点和边缘的连接方式。

矢量数据库

传统数据库很少经过优化来处理向量嵌入常见的高维数据。向量数据库,例如 IBM® watsonx.data是专为组织和检索高维向量空间中的数据对象而设计的先进解决方案。

矢量搜索

有效的矢量数据库解决方案的主要优势在于优化矢量搜索 操作的效率和准确性:通过各自矢量嵌入与搜索条件的语义相似性来查找、排序和检索相关数据和文档。

此类相似性搜索通常通过直接的最近邻算法进行,该算法可根据数据点在高维向量空间中的接近度来推断数据点之间的联系。

语义搜索
语义搜索使用向量嵌入为超越简单关键字匹配的搜索提供支持。例如,虽然原始查询是“水果”,但返回的结果是“苹果”和“橙子”。

检索增强生成 (RAG)

这种类型的语义搜索还用于实现检索增强生成 (RAG),这是一种用于补充 LLM 知识库的框架,无需进行更多微调。

在 RAG 中,矢量搜索用于调查外部数据源,例如不属于基础模型训练数据的数据源,因此,其信息无法以其他方式反映在 LLM 的输出中,用于检索 相关信息,然后使用该信息以增强 LLM 生成 的响应。

相关解决方案
IBM watsonx Orchestrate

使用 IBM® watsonx Orchestrate 轻松设计可扩展的 AI 助手和代理、自动执行重复任务并简化复杂流程。

探索 watsonx Orchestrate
自然语言处理工具和 API

通过强大灵活的库、服务和应用组合,加速实现人工智能的商业价值。

深入了解 NLP 解决方案
AI 咨询与服务

通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。

深入了解人工智能服务
采取后续步骤

使用 IBM® watsonx Orchestrate 轻松设计可扩展的 AI 助手和代理、自动执行重复任务并简化复杂流程。

探索 watsonx Orchestrate 深入了解 NLP 解决方案