机器学习项目中,很多数据天然是高维的。文本可以有成千上万个词,图像可以有数百万像素,用户行为可以由大量事件组成,商品可以有复杂属性。高维数据直接建模容易遇到计算成本高、噪声多、距离失效和可视化困难等问题。

降维和表示学习的目的,是把复杂对象转成更紧凑、更稳定、更有语义的向量表达。

一、为什么需要降维

高维数据常见问题包括:

  • 特征维度远大于样本数量,模型容易过拟合。
  • 特征之间相关性强,存在冗余信息。
  • 距离度量变得不稳定,样本之间看起来都差不多。
  • 可视化困难,无法直观看出数据结构。
  • 训练、存储和检索成本变高。

降维不是简单“减少列数”,而是在尽量保留关键信息的前提下,减少噪声和冗余。

二、PCA:经典线性降维

PCA 的目标是找到一组新的正交方向,让数据在这些方向上的方差尽可能大。它适合处理连续数值特征,并常用于建模前的压缩、去噪和可视化。

PCA 的优点是稳定、快速、可解释性相对较强。你可以查看主成分解释的方差比例,判断保留多少维度比较合适。

局限也很明显:

  • 只能捕捉线性结构。
  • 对特征缩放敏感。
  • 主成分不一定有直接业务含义。

工程上,PCA 更适合做基线和预处理,而不是所有表示学习问题的最终方案。

三、t-SNE 与 UMAP:用于可视化的非线性降维

t-SNE 和 UMAP 常用于把高维向量投影到二维或三维,观察聚类结构、异常点和类别边界。

使用时要注意:

  • 它们主要用于可视化,不适合直接作为唯一评估依据。
  • 参数会显著影响图形形态。
  • 图上距离和真实高维距离不完全等价。
  • 不同运行可能得到不同布局。

如果你看到一个二维图中出现多个团块,它说明数据可能存在结构,但不等于业务上天然存在这些类别。仍然需要结合标签、样本抽查和指标验证。

四、Embedding:把对象变成语义向量

Embedding 是现代机器学习和大模型应用中的核心概念。它把文本、图片、用户、商品、音频等对象映射到向量空间,让相似对象在向量空间中距离更近。

常见用途:

对象 Embedding 用途
文本 语义搜索、文本分类、聚类、RAG
商品 相似商品、召回、个性化推荐
用户 用户画像、兴趣匹配、分群
图片 以图搜图、风格检索、内容审核
日志 异常检测、事件聚类

Embedding 的价值在于,它把复杂对象转换成统一的数值接口。后续可以做相似度计算、聚类、分类、排序或检索。

五、相似度和距离度量

向量常用相似度包括:

  • 余弦相似度:关注方向,常用于文本和语义向量。
  • 欧氏距离:关注绝对距离,适合尺度有意义的数值空间。
  • 内积:常用于召回和深度推荐系统。

不同模型训练目标不同,适合的距离也不同。不要在不了解向量含义的情况下随意混用距离度量。

六、向量检索的工程注意事项

当向量数量变大时,暴力计算所有相似度成本很高,需要使用近似最近邻检索。常见方案包括 HNSW、IVF、PQ 等索引结构,也可以使用向量数据库。

落地时需要关注:

  • 向量维度和存储成本。
  • 索引构建时间和更新频率。
  • 召回率与查询延迟的平衡。
  • 原始对象、向量版本和元数据的对应关系。
  • Embedding 模型升级后的重建策略。

向量系统不是“把向量塞进数据库”这么简单,核心是让表示、检索和业务反馈形成闭环。

七、实践建议

做降维和 Embedding 时,要先明确目标:是为了可视化、压缩、去噪、检索,还是作为下游模型特征。不同目标对应不同方法。

如果只是探索数据结构,可以从 PCA、UMAP 开始。如果要做语义搜索或推荐召回,应重点关注 Embedding 模型质量、相似度定义和检索系统稳定性。表示学习的最终价值,不在于向量本身,而在于它能否让业务对象被更准确地理解、匹配和使用。