编码与向量化的介绍

Wings Lv2

写在前面

在上一篇中,我们从总体上介绍了大规模参数的深度学习模型的框架。接下来,我们很快就遇到了一个问题,大量地原初采样数据是如何输入到模型内部的,是直接原始数据就丢进去,还是中间需要做一些额外的操作呢?

事实上,哪怕不是现代的大规模参数模型,在之前的机器学习,深度学习模型,针对原始数据的“处理”一直都是不可绕开的一个话题。所以,本身主要是探讨数据处理的缘由,以及一些发展历程。

正如最近经常会出现的一个词——词元(Token),这本身是针对文字处理到深度学习模型操作的一个中间状态,将文字转换成一串串数字编码,而模型则是处理这些数字所对应的向量,这就是向量化(Vectorization)

那么,是否有不对原始数据进行转化而直接处理的情况呢?其实也是有的,比如时间序列下的数值预测,输入是数值,输出是数值,此时模型所承担的就是理解数值上的变化,而非某一些离散实体的理解。

不过,在大多数的场景下,文字,图像,音频(甚至未来会扩展到其他不同的数据形式)等类型的数据是无法直接被“利用”的,所以需要有一个转换,将其转换成深度学习模型能够直观识别的状态,

所以这一篇针对数据输入的编码,向量化的问题进行讨论,理解当前数据在深度学习模型视角来看应该是什么状态。

信息化数据形态描述

从根本来说,深度学习模型是建立在当前信息计算机下的一个产物,所以本质上深度学习模型所接触的数据是来自对现实世界相关内容的“采样”,“仿真”和“数字化”。毕竟有初中甚至小学的认知应该都能够理解,现实的物理世界主要是由原子,分子这些概念所构成的,但是在信息化的世界里面,则由01数字构建的,所以为了能够让信息世界理解现实世界的内容,就需要对相关的内容进行转换。

所以一个肉眼能够看到的场景,其物理大抵是首先通过物体对光的反射进入到人的肉眼再进行生物信号的转化,而数字世界则是通过感光仪器,将其转换成数字信号读取,虽然很难说谁能够看得更清晰更仔细,但这两个肯定都不是这个场景本身,而是这个场景的光的记录。

虽然对人肉眼所接触的信息和处理不清晰,但是在信息领域,这一块还是相对比较清楚,一般会采用矩阵的形式对数字化后的照片进行存储:

$$
A_\text{Photo} = \begin{bmatrix}
a_{11} & \dots & a_{1n} \\
\vdots & \ddots & \vdots \\
a_{n1} & \dots & a_{nn}
\end{bmatrix},
$$

其中$a_{ij}$为照片所存储的像素,这个矩阵可以有多种形式存储,这取决于用什么技术存储该相片的信息。

类似地,在物理世界,文字本质上是“图片”,首先文字本身并没有一个“物体”是文字,所以自然也无法将其通过很直接的方法触碰和拿到,文字类似一种作画,在物理层面上是一些可染色颜料所构成的图案,可以代表某一符号,所以对于人类来说,是先看到这些图案,才理解到他们是什么字体;而在信息领域,则刚好相反,计算机本身看不到文字图案也不需要看到文字图案,在信息领域中,是通过符号编码,比如ASCII码,Unicode编码对相关符号存储,而只是在需要展示的时候才将其从“字体库”中找到对应的图片展示在界面上。

实际上,这两个方面就已经是当前物理世界信息转换成数字世界信息的两种范式:前者通过仪器数字化表示物理信息,后者通过设定好的编码(前提是内容相对固定),在需要交互的时候进行展示已经存储好的内容。

所以,在这个基础上,音频、视频等内容是前者,音频可以先假设是一种正弦余弦函数组合,通过现实世界对声音震动的采样拟合对应的待定系数;而视频则是音频加多帧视频的组合。

PS:在这里想额外说一下中英文,或者说语素文字和音素文字在计算机中的区别,而且我认为这个区别是导致后续深度学习下的问题。

语素文字和音素文字的表示阐述

首先,这两者最大的区别就是,在语素文字下,一个字就具有丰富地含义,而且一个字里面是有一个二维结构,比如“林”和“森”,单纯从字形上就能够判断这两者的含义比较接近,但是在编码中,就是一些数字,无法直观看出里面的内容

而音素文字,本身只是字母或者一些单体字符,需要组合成特定的单词(word)才有具体含义。但从编码上来看,两个相近比如英语中常用的词根构词,这两个词中间有很大部分是重复的,反而能够看得出里面是接近的。

从这个角度来看,对于中文这类语素文字,要想其与音素文字在计算机领域上有类似的表示,实际上应该是采用内部结构进行表示,这也必然影响后续中英文的处理结果。

深度学习模型背景下的信息处理

而机器学习,深度学习正是在这样的基础下构建的,在早期算力不够充分的背景下,首先想到的是对数据进行压缩,这也是一个相对自然的方式,是因为,从人类视角来看,人类实际上并不关心很多边缘化的数值,而更多聚焦于数据上的重点信息,比如,人类针对超高精度的图像(几百万像素),也能够很快地提取其对应的信息和理解其要表达的概念,而从数字世界理解,则无法理解,但这必然存在某种利用这些信息的路径。

特征提取

所以,早期的机器学习,所需要做的就是,针对这些原初数据进行特征提取,这些特征提取从数学的角度来说就是,存在一个人类可理解的低维空间,将数据投影到这些可理解的空间上进行处理,一方面能够减少计算量(比起百万数据低维空间的内容就少很多),另一方面,这些出来的内容相对是容易理解的,比如图像中的某些边缘特征提取,批量数据的数据特征提取(均值,方差等指标)。在有了这些特征以后,再利用这些特征去做下游任务,比如分类,回归预测等内容。

自动化特征提取

早期深度学习,也必然参考了需要特征提取的思想,但它并不人工去进行特征提取,而是让模型自主提取特征,此时的深度学习模型的设计,就从如何设计提取特征,转向信息行为建模,大抵可以理解为,信息从一层网络到下一层网络发生了什么变化。

比如卷积神经网络(Convolutional Neural Network, CNN),则是这一时期的代表性结构,其核心观点是,由模型通过观察某像素周围的像素关系,通过任务导向来自主选择合适的特征以更好地完成任务。

换言之,这一时期,在任务上仍然是传统的“分类,回归,预测”等任务,而在这些任务下,如何更好地利用原始数据信息,则是从手工特征提取转向自动化提前,所以相关模型的设计,从原先的需要去理解这些特征如何更好地作用在任务下,转换成,什么结构下,模型能够自主针对所需要的任务提取对应的信息。

这样的设计在一定程度上具有通用性,换句话说,不管什么领域的图像数据,只需要给定任务,这一套就能够比较精准地干下来,其应用的难点就转换成,数据根据任务复杂度要标定多少,什么范围,采样的丰富度等问题,这些大概会有一个经验上的感知。

而在这里,这些特征从数字领域来看,就是一串串向量,可以针对图像和经过一层CNN来看,图像在CNN处理后,就变成了向量,这些向量就提供给任务所需要的信息,从而完成相应的任务。

在这里不再赘述其他同期的模型结构,诸如RNN,Attention,GNN,以及一些对比学习,蒸馏学习等学习范式,相关的结构和学习范式都可以被还原到一个问题——采用什么信息传输行为如何更好地从数据中提取所需要的信息

针对特征的统一处理

正如之前一篇文章所介绍NLP发展的那样,早期深度学习针对不同的任务,都需要从数据中自动提取特征,再做下游任务,如果上游任务是一类任务,能不能统一把这一部分进行处理,这就是“预训练”的由来,将一系列下游任务的统一前置内容做好了以后,下游任务只需要在这个基础上微调或者迁移学习就比较高效地完成相关的任务。

那么在这里,实际上要完成的事情就是,在深度学习模型下,大家能够更方便使用的形式是什么,就是向量,反过来深度学习地大量地操作本身也是向量、矩阵操作。

按照上述的一个简易分类:

  • 通过矩阵形式存储的内容——图像,音频等。
  • 通过自带编码存储的内容——文本。

对这两个分别有不同的处理。对于前者,从本质上来说,其已经是矩阵(向量)形式,所以针对这类数据的处理,主要在提取信息;而针对文本,在计算机视角只是编码,所以首先需要将其处理成向量,再对向量进行额外处理。

如何训练这些向量,实际上就是针对这些数据本身进行思考,可以从任务的视角出发,因为一开始就是统一上游的向量,所以可以把相关的任务都整合起来,利用多任务学习形式去训练这些代表含义的向量,也可以观察数据本身的属性,定义数据的行为,符合按照这个行为进行向量的训练,比如文本的序列行为,图像的旋转不变性的行为等。

在这里还可以注意到,不同形式下的数据可能代表同一个事情,比如针对一个场景,可以由文字进行描述,也可以由图片直接记录,亦或是有语音描述,在上述的过程中,不同的形态都会有一个向量表示,此时就可以让这个向量进行统一(对齐),使得内容能够在不同数据形态上发生变化,这也是当前生成式模型的一个基本使用方式之一,不同数据形态的转换。

总结

特征处理,实际上是从机器学习到现代深度学习都仍然无法绕开的一个环节,其根本关键在于对于实际所对应的现实物理世界的数据形式并不能被深度学习模型直接利用,所以需要专门有这么一块进行处理。

  • 标题: 编码与向量化的介绍
  • 作者: Wings
  • 创建于 : 2026-04-10 10:00:00
  • 更新于 : 2026-04-11 16:11:51
  • 链接: https://www.wingslab.top/深度学习/编码与向量化的介绍/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。