AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


谈一谈向量嵌入(Vector Embeddings)
发布日期:2024-09-13 06:42:02 浏览次数: 1710 来源:黄家润研究院


对于只能处理数字的计算机或者机器来说,区分苹果和梨并不是一件简单的事情。

这时候就需要用到向量嵌入(Vector Embeddings)。它可以将文字、图像等数据转化为计算机可以理解和操作的数值表示形式。

在有关于 Transformer 工作原理的文章中,我也有提到过向量嵌入的概念,我对它做过一些较为简单的解释。感兴趣可以点击阅读:你知道 GPT 代表什么意思吗?Transformer 架构深度解析

什么是向量嵌入

可以把向量嵌入看作是单词或者其他数据片段的数字指纹。就像是有序的数值列表一样,向量嵌入通过一种叫做向量的特定结构来排列数字。

可以把每个向量想象成多维空间里的一个点,这个点的位置就携带了关于所代表的单词或者数据的重要信息。

我们上学的时候就在数学课上学到过有关于向量的概念,它们有方向和大小。同理,向量嵌入也共享这一个基本概念,但是,向量嵌入所运行的空间的维度更多。

比如在上一篇文章RAG 入门指南:从零开始构建一个 RAG 系统(2)中提到的 all-MiniLM-L6-v2 这个 Sentence Transformer 模型,它可以将句子和段落映射到一个 384 维的稠密向量空间。

极高的维度对于捕捉自然语言中的复杂和细微的差别来说非常重要,这里面包含了诸如语气、语境和语法特征等等。也就是说,一个向量不仅能够区分一段文字的字面含义,还能够捕捉到文字的情感。

通过将高维和分类数据转换为低维、连续的表示形式,向量嵌入能够将复杂的数据转换为适合机器学习算法处理的格式。这样的处理不仅能够提高模型的性能和计算效率,还能够保留数据的内在模式。

下面是一张展示了 8 个示例维度的数值范围的表格。

特征描述范围
具体性(Concreteness)测量单词的具体或抽象程度0 到 1
情感(Emotional Valence)单词所关联的正面或负面情感-1 到 1
频率(Frequency)单词在语料库中出现的频率0 到 1
长度(Length)单词中的字符数0 到 1
词性(Part of Speech)以 one-hot 编码的名词、动词、形容词等4x [0,1]
正式程度(Formality)单词所关联的正式程度0 到 1
特异性(Specificity)单词的具体程度或一般程度0 到 1
感官关联(Sensory Association)单词与感官体验的关联程度0 到 1

表格中提到的 One-hot 编码是一种将分类数据转换为二进制表示的方法,广泛用于机器学习和深度学习中。

其核心思想是:将一个具有 nnn 个类别的分类变量表示为一个长度为 nnn 的向量,其中只有一个位置的值为 1,其余位置的值为 0。

举个例子,假设我们有三个类别: 和 ,我们可以用以下 one-hot 编码表示它们:

  • • :1, 0, 0

  • • :0, 1, 0

  • • :0, 0, 1

每个类别都有自己唯一的向量表示,1 的位置指示当前类别,其余位置为 0。这种编码方式不会赋予类别任何顺序或大小,适用于不具备数值意义的分类数据。

比如按照以上的表格,单词 cat 可能会是以下的向量表示:

[0.9, 0.2, 0.7, 0.3, 1, 0, 0, 0, 0.4, 0.8, 0.9]

而单词 freedom 可能是:

[0.1, 0.8, 0.6, 0.7, 1, 0, 0, 0, 0.7, 0.3, 0.2]

词汇关系

每一个向量就像是独特的标识符,不仅包含了单词的含义,还反映了当前单词与其他单词之间的关系。

含义相似的单词在数值空间中的向量就像是地图上的相邻点一样也会靠的越近。

下面这张散点图很形象的展示了单词的向量嵌入概念。空间中的每一个点都代表一个单词,它的位置由单词的向量嵌入决定。

聚集在一起的蓝色点表示的是与动物相关的单词:cat dog pet animal,而红色的点表示的是与车辆相关的单词:car vehicle

向量嵌入如何捕捉含义

使用 Word2Vec 进行自然语言处理

Word2Vec 是一种可以用于为单词分配向量的 NLP 技术。

它自身是一种机器学习模型,可以基于单词在大规模的语料库中的上下文来学习单词之间的关联。这些学习到的关系会被编码为数值向量,随后就可以应用于各种 NLP 任务。

Word2Vec 通过两种主要架构来捕捉单词关系:CBOW 和 Skip-gram,下面表格展示了它们之间的区别。

架构过程计算效率捕捉的关系对频繁单词的敏感度
CBOW根据上下文单词预测目标单词训练速度较快更擅长捕捉句法关系(语法规则)对频繁单词更敏感
Skip-gram根据目标单词预测周围的上下文单词训练速度较慢更擅长捕捉语义关系(文本含义)对频繁单词的敏感度较低

句子嵌入

嵌入技术的多样性不仅限于单个单词的领域,句子嵌入能够捕捉整个句子的整体含义。将句子表示为密集向量,我们可以衡量不同文本之间的语义相似性。

与单词嵌入是高维空间中的点一样,句子嵌入也是向量。只是说它们通常具有更高的维度,这样才能适应句子级信息的复杂性。

我们可以对这些结果向量进行数学运算,以衡量语义相似性,从而可以执行更复杂的任务,比如信息检索、文本分类和情感分析。

一种简单的方法是对句子中所有单词的嵌入取平均值。虽然这种方法比较基础,但一般能够提供一个不错的基线结果。

为了捕捉更复杂的语义和句法信息,更高级的技术如循环神经网络(RNNs)和基于 Transformer 的模型被广泛应用。

下面这张表格展示了它们的区别。

架构处理方式上下文理解计算效率
RNNs顺序处理侧重局部上下文对于长序列效率较低
基于 Transformer 的模型并行处理能够捕捉长距离依赖对长序列也具备高效性

尽管 RNN 曾在很长一段时间内占据主导地位,但在许多自然语言处理任务中,包括生成句子嵌入,Transformer 模型已经在性能和效率上超越了 RNN。不过,RNN 仍在某些需要顺序处理的特定应用中发挥作用。

向量嵌入的应用

除了文本以外,向量嵌入还可以应用到以下这些领域。

  • • 图像也可以转化为数值表示,可以应用在图像搜索、物体识别和图像生成等领域。

  • • 产品嵌入通过根据用户偏好和购买历史找到相似产品,在电商领域推动个性化推荐。

  • • 音频数据可以转化为嵌入,发展音乐发现和语音识别技术。

  • • 时间序列数据(如股票价格或传感器读数)可以转换为嵌入,从而揭示隐藏的模式(如果真的有的话)并作出准确预测。

  • • 图数据(如社交网络或知识库)可以表示为向量,用于分析复杂的关系并提取有价值的见解。

  • • 文档可以被转化为嵌入,可以辅助开发出高效的搜索引擎和智能文档管理的应用。

  • • 代码片段可以表示为嵌入,支持高级代码搜索和推荐系统,比如 GitHub Copilot、Cursor 等。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询