【Machine Learning Q and AI 读书笔记】- 01 嵌入、潜空间和表征
Machine Learning Q and AI
中文译名 大模型技术30讲,主要总结了大模型相关的技术要点,结合学术和工程化,对LLM从业者来说,是一份非常好的学习实践技术地图.
本文是Machine Learning Q and AI
读书笔记的第1篇,对应原书第一章 《嵌入、潜空间和表征》.
TL;DR
本文介绍嵌入向量,表征,和潜空间这些概念, 核心是嵌入向量.
术语
- 嵌入向量(Embedding Vector)
- 表征 (Representations)
- 潜空间 (Latent Space)
嵌入向量 (Embeddings)
Embedding vectors, or embeddings for short, encode relatively high-dimensional data into relatively low-dimensional vectors.
嵌入向量,是把高维的数据通过encode的方法,转换成低维的向量. 如果有BERT
使用经验,会第一反应,embedding vector算是低维吗,BERT输出的向量是有768维的. 弄清这个问题,我们可以借助AI
实际上,高维和低维的转换取决于具体的应用场景和目标。下面我来详细解释一下为什么会有这种“低维嵌入”的说法,以及它和高维映射的区别。
1. 为什么要把数据编码成低维向量?
在机器学习和数据处理中,数据往往具有很高的维度。例如,一张图片可能有数百万个像素,每个像素是一个维度;一个文本数据可能包含成千上万个单词或字符,每个单词或字符也可以看作一个维度。这种高维数据在实际处理中会面临很多问题:
- 计算复杂度高:高维数据的处理需要大量的计算资源,尤其是在进行复杂的数学运算(如矩阵乘法、优化算法等)时。
- 存储成本高:高维数据需要占用大量的存储空间。
- “维度灾难”:随着维度的增加,数据的稀疏性会变得非常严重,即数据点在高维空间中变得非常分散,很难找到有效的模式或规律。
为了解决这些问题,我们通常会将高维数据映射到低维空间,这就是所谓的“嵌入”(embedding)。通过嵌入,我们可以保留数据的重要特征,同时减少计算和存储成本,并且更容易发现数据中的模式。
2. 嵌入是如何工作的?
嵌入的目的是将数据从一个高维空间映射到一个低维空间,同时尽量保留原始数据的结构和语义信息。例如:
- 文本嵌入:在自然语言处理中,每个单词可以被表示为一个高维的独热编码(one-hot encoding),其维度等于词汇表的大小。但这种表示方式维度很高且稀疏。通过嵌入技术(如Word2Vec、GloVe等),可以将每个单词映射到一个低维的稠密向量空间中,这些低维向量能够更好地捕捉单词之间的语义关系。
- 图像嵌入:在计算机视觉中,一张图片可以被表示为一个高维的像素矩阵。通过卷积神经网络(CNN)等技术,可以将图片映射到一个低维的特征空间,这些特征向量能够更好地表示图片的语义内容(如物体类别、场景等)。
3. 为什么不是映射到高维空间?
你提到的“映射到高维空间”也有其应用场景,比如在某些核方法(kernel methods)中,会将数据映射到一个更高维的特征空间,以便更好地处理非线性关系。但这种高维映射通常是为了找到更好的特征表示,而不是为了减少维度。例如:
- 核方法:通过核函数将数据映射到一个高维的希尔伯特空间,在这个空间中,数据可能更容易被线性分割。但这种高维空间通常是隐式的,我们并不直接计算高维空间中的坐标,而是通过核函数来计算高维空间中的内积,从而避免了高维空间带来的计算复杂度问题。
4. 总结
- 低维嵌入:是为了减少数据的维度,降低计算和存储成本,同时保留数据的重要特征和语义信息。这是数据预处理和特征工程中的一个重要步骤,广泛应用于自然语言处理、计算机视觉等领域。
- 高维映射(如核方法):是为了更好地处理非线性关系,通过映射到高维空间来找到更好的特征表示,但这种高维空间通常是隐式的,不会直接计算高维坐标。
潜空间
潜空间和嵌入空间是同义词
表征
原文的表征表述太简洁了,这里做一下补充。
在机器学习领域,“表征”(Representation)是指数据的表示形式或编码方式。它描述了如何将原始数据转换为机器学习模型可以理解和处理的形式。表征的质量直接影响模型的性能,因为好的表征能够更好地捕捉数据中的关键特征和模式。
1. 表征的重要性
在机器学习中,数据的表征决定了模型能够学习到的信息。如果表征能够有效地捕捉数据中的重要特征,模型就更容易学习到有用的模式;反之,如果表征不佳,即使模型再复杂,也可能无法取得好的效果。因此,表征学习(Representation Learning)是机器学习中的一个重要研究方向。
2. 表征的类型
表征可以有不同的形式,具体取决于数据的类型和应用场景。以下是一些常见的表征方式:
(1)数值表征
- 连续数值:对于数值型数据(如温度、价格等),可以直接使用其原始数值作为表征。
- 离散数值:对于离散型数据(如类别标签),可以使用独热编码(One-Hot Encoding)或整数编码(Integer Encoding)等方式将其转换为数值形式。
(2)文本表征
- 词嵌入(Word Embedding):将单词或短语映射到低维向量空间中,常见的方法有Word2Vec、GloVe和BERT等。这些嵌入向量能够捕捉单词之间的语义关系。
- 文本序列:将文本表示为单词或字符的序列,例如在自然语言处理中,可以将句子表示为单词的序列,或者将文档表示为句子的序列。
(3)图像表征
- 像素表征:将图像表示为像素矩阵,每个像素的值可以是灰度值或RGB值。
- 特征提取:通过卷积神经网络(CNN)等方法提取图像的高级特征,将图像表示为特征向量。这些特征向量能够更好地捕捉图像的语义内容。
(4)图结构表征
- 节点嵌入(Node Embedding):将图中的节点映射到低维向量空间中,常见的方法有Node2Vec、DeepWalk等。这些嵌入向量能够捕捉节点之间的结构关系。
- 图嵌入(Graph Embedding):将整个图映射到低维向量空间中,用于图分类、图匹配等任务。
3. 表征学习
表征学习是指自动学习数据的有效表征,而不是手动设计表征。这是深度学习的核心思想之一。例如:
- 自编码器(Autoencoder):通过编码器将输入数据压缩为低维表征,然后通过解码器重建输入数据。编码器的输出就是数据的低维表征。
- 卷积神经网络(CNN):通过卷积层和池化层提取图像的特征,这些特征就是图像的表征。
- Transformer架构:通过自注意力机制学习文本的上下文表征,BERT和GPT等模型都是基于Transformer架构的。
4. 好的表征应该具备哪些特性?
好的表征应该能够满足以下条件:
- 信息保留:能够保留原始数据中的关键信息。
- 低冗余:表征中的特征应该是独立的,避免冗余信息。
- 可解释性:表征的含义应该是可解释的,便于理解和分析。
- 泛化能力:表征应该能够泛化到新的数据上,而不仅仅是拟合训练数据。
5. 总结
表征是机器学习中的一个核心概念,它决定了数据如何被模型理解和处理。通过有效的表征学习,我们可以将复杂的数据转换为模型更容易处理的形式,从而提高模型的性能。