什么是 随机投影(Random Projection)?
随机投影(Random Projection)是把向量乘以经过适当缩放的随机矩阵,并以高概率近似保留欧氏距离的随机化线性降维方法。
快速了解
| 创建时间 | 1984 年由 Johnson-Lindenstrauss 引理奠定理论基础,后续发展出实用稀疏构造 |
|---|---|
| 规范文档 | 官方规范 |
工作原理
正确解释 Johnson-Lindenstrauss 保证
Johnson-Lindenstrauss 结果表明,可把 n 个点嵌入到与 log(n) / epsilon^2 同阶的目标维度,并以高概率让全部欧氏距离平方保持在一个乘法失真区间内。目标维度取决于点数、可接受误差和置信度,而不直接取决于原始特征数。
这是最坏情况存在性与概率陈述,不保证任意一次 Seed 产生的极小维投影都有效。当前 scikit-learn 文档也指出,自动计算的 JL Bound 没有使用数据结构先验,因此通常较保守。
把稠密或稀疏映射作为运行取舍
Gaussian Map 使用经过缩放的正态随机数,Sparse Construction 则用带符号的少量非零项替代多数乘法。Achlioptas 的随机矩阵分析说明,精心选择的离散矩阵也能保持距离性质,并减少计算成本。
稀疏映射可能更快,也更容易保留 Sparse Operation,但实际内存与延迟仍取决于 Density、Dtype、Scaling 和实现。应保存已采样矩阵或完整可复现 Generator Contract;如果 Library 或随机数算法变化,只有 Seed 并不足以重建同一投影。
测量实际失真与下游质量
在有代表性的精确子集上估计两两失真,重点检查最近邻、Hard Negative、稀有切片与阈值边界。重复多个 Seed,报告分位数与最坏相关样本,并将下游检索、聚类或预测结果和未降维基线比较。
Random Projection 不从数据学习统计量,因此 Fitting 本身不会泄漏特征分布;但根据最终测试结果挑选维度或 Seed 仍会泄漏评测证据。投影还会移除坐标可解释性,Pseudo-inverse 只能给出近似,而不能恢复被丢弃的信息。
主要特点
- 使用采样线性映射而不是数据依赖主方向
- 对固定有限点集提供概率性的欧氏距离保持
- 目标维度上界随样本数对数增长
- 同时支持稠密 Gaussian 与计算更省的稀疏构造
- 可在相同特征契约下复用于新向量
- 不保证精确近邻、语义、坐标可解释性或可逆性
常见用途
- 在近似距离处理前压缩超高维向量
- 为 Embedding 压缩建立快速且数据无关的基线
- 降低大型稀疏特征矩阵的内存与计算量
- 验证下游方法是否真的需要学习型方向
- 为分布式或流式计算构建可重复 Sketch
示例
Loading code...常见问题
Random Projection 会保留什么?
当构造满足 Johnson-Lindenstrauss 条件且目标维度足够时,它会以高概率近似保留固定有限点集的全部欧氏两两距离。它不保证语义、密度或标签保持不变。
Random Projection 与 PCA 有什么区别?
PCA 从训练数据学习最大方差方向,Random Projection 则采样数据无关矩阵。后者通常更便宜、更适合流式处理;当方差集中在学习型低秩子空间时,PCA 可能用更少维度获得更好压缩。
随机投影的目标维度应该如何选择?
先用点数、可接受失真与失败概率得到保守 Bound,再在实际距离失真和下游指标上比较更小与更大的候选维度。不能根据最终测试集表现反向挑选维度。
稀疏随机投影与 Gaussian Projection 哪个更准确?
两者都有满足保证的构造,实际质量和速度取决于稀疏度、缩放、数据、目标维度与实现。应比较多个 Seed 和关键距离切片,不能预设某种分布在所有任务中更优。
Random Projection 可以逆向恢复吗?
降维丢弃信息后不能精确恢复。Pseudo-inverse 可以产生一个与投影坐标兼容的近似高维向量,但多个原始向量会共享同一低维坐标。需要恢复时应保留源数据或单独训练重构模型。