一张大矩阵,能不能用少数几个方向表达主要结构?

矩阵分解入门

约 11 分钟1 个动手实验4 道小题

学完你能说清楚矩阵分解能压缩共同结构,但低维方向不自动等于可交易因子。

01学完这一课,你能做到什么

学完这一课,你应该能:

  1. 检查矩阵乘法的维度,并用低秩矩阵表达主要结构;
  2. 区分“未知数据”和“已知的 0”,只在真正观察到的答案上计算损失;
  3. 解释 L1、L2 正则和交替最小二乘 ALS 在做什么;
  4. 读懂 SVD 的三个矩阵、奇异值和截断重构;
  5. 把矩阵分解迁移到金融数据时,先定义行、列、单元格和验证方式。

这节课的核心不是背一个分解公式,而是知道:模型保留了什么、丢掉了什么,以及这个结果能不能支持你的下一步判断。

一句话记住低维表示是压缩,不是自动解释。

02为什么要用少数维度表示大矩阵

股票与、用户与电影、像素与位置,都可以整理成矩阵。矩阵很大时,逐格观察很难发现共同结构。低秩近似的想法是:用少数几个潜在维度,表达数据里最主要的变化,同时接受一部分重构误差。

“低秩”可以先理解为“真正起作用的方向比表格的行列数少”。它可以用于推荐、图像表达、金融风险分析,也常出现在模型参数压缩中。但这些场景共享的是低维表达思想,不代表使用同一个算法。

例如,LoRA 通常学习一个低秩的权重更新分支,不等于把原模型权重直接做一次 SVD。常见图片压缩也不能一概说成 SVD。所谓“只用很少数据还原大部分信息”是帮助理解的比喻,不是对任意数据的保证。

一句话记住压缩保留主要结构,也会舍弃细节。

03用户—电影矩阵:未知不等于不喜欢

假设 R 有 12 个用户、9 部电影,共有 12×9=108 个格子。某个用户给《红海行动》和《战狼2》点赞,其他电影没有记录。这里的空白表示未知,不是“不喜欢”。

把 R 近似写成 P×Q:

  • P 是 12×3,表示每个用户在 3 个潜在维度上的表示;
  • Q 是 3×9,表示每部电影在同一套 3 维空间里的表示;
  • P×Q 的结果仍是 12×9,可以为每个用户—电影组合给出预测分。

存储的数字量从 108 个变成 12×3+3×9=63 个,实际系统还要保存索引和其他元数据。3 个维度可以用动作、动画、爱情来帮助理解,但模型自动学出的维度不一定真的叫这些名字,也不要求类别互斥。

潜在向量里的数值可以为负。例如某个分量是 0.93、−0.08、0.07,它不是概率,也不是三个比例。只有和另一侧的表示一起相乘,才有完整含义。

重构后,原来已知的点赞值 1 可能变成 0.92 或 0.94,这说明模型有近似误差。把空白格填满,是模型的推断,不是用户真实反馈。新用户、新电影和兴趣变化,都可能让推荐失准。

从反馈到推荐分
  1. 1已观察反馈只记录真实发生的交互
  2. 2低维表示P 与 Q
  3. 3矩阵相乘得到预测分
  4. 4排序推荐仍需验证效果

一句话记住空白格是未知,不能直接当作 0。

04只在已观察数据上计算损失

设 Ω 表示已经观察到的用户—电影组合。一个带 L2 正则的目标函数可以写成:

L = Σ_(u,i∈Ω)(R_ui−p_uᵀq_i)² + λ(Σ_u‖p_u‖² + Σ_i‖q_i‖²)

前半部分比较已知反馈和模型预测。未观察的位置没有真实答案,所以不能直接拿它和 0 比较。某些隐式反馈模型会给未观察行为较低置信度,但那必须是另一个明确写出的建模选择。

平方误差求和是 SSE。若再除以样本数,才是 MSE。两者的数值和解读不同,报告里要写清口径。

L2 正则惩罚参数过大;L1 正则则使用参数绝对值之和。假设两套模型对已知评分拟合得一样,一套用了特别大的参数,另一套参数更克制,正则项会更偏向后一套。λ 太小可能,太大可能欠拟合,应该用验证数据选择。

L1 更容易产生稀疏解,但不代表一定更好。正则化是在拟合数据和控制复杂度之间做取舍。

损失函数的两部分
拟合项

解释已知答案

比较观察到的 R_ui 与 p_uᵀq_i。

正则项

控制模型复杂度

惩罚过大的 P、Q 参数。

一句话记住损失只比较已知答案,正则用来控制复杂度。

05ALS:固定一边,再优化另一边

P 和 Q 同时优化不容易。ALS(交替最小二乘)先固定 Q,求每个用户向量 p_u;再固定 P,求每个电影向量 q_i;如此交替进行。

基本流程是:

  1. 初始化两个较小的矩阵 P 和 Q;
  2. 固定 Q,优化 P;
  3. 固定 P,优化 Q;
  4. 重复,直到损失改善很小,或达到预先设定的次数上限。

固定 Q 后,用户向量可以放进一个带正则的最小二乘问题。设 Q_Ω 是该用户实际看过的电影向量,r_u 是对应反馈,可以写成:

(Q_ΩQ_Ωᵀ+λI)p_u = Q_Ωr_u

比如潜在维度为 3,Q_Ω 有 3 行,那么 Q_ΩQ_Ωᵀ 是 3×3,p_u 也是 3 维,等式两边的维度才能对上。实际计算通常是解线性方程,不是直接求矩阵逆。

固定一侧后的二次子问题,可以通过令梯度为 0 求解;这不等于整个非凸交替问题一定找到唯一的全局最优。初始化、秩和正则强度都会影响结果。梯度下降则沿着损失下降方向更新参数,不能笼统断言 ALS 或梯度下降永远更快。

ALS 的交替过程
  1. 1初始化 P、Q设定潜在维度
  2. 2固定 Q求 P
  3. 3固定 P求 Q
  4. 4检查损失继续或停止

一句话记住固定一边,另一边就变成较容易的最小二乘问题。

动手试试

矩阵分解参数探索

调节保留维度 k,观察重构误差和信息保留比例。

动手试试

调整保留维度 k,观察重构误差和信息保留比例

教学样本
重构误差11.0%
保留信息比例89.0%
维度与重构误差
30176.25322.5468.75615
完成条件
先用 k=1,看到只保留约一半信息
再把 k 调到 4,看到误差明显下降

奇异值能量比例为教学样本设定,用来演示截断重构的取舍。

06SVD:把完整矩阵拆成三个部分

对一个 m×n 的完整矩阵 A,SVD 写成:

A = UΣVᵀ

Σ 对角线上是非负奇异值,并按 σ₁≥σ₂≥… 排序;U 和 V 包含左右奇异向量。奇异值不是一般意义上矩阵 A 的特征值,二者不能混称。

也可以写成秩一矩阵的叠加:

A = Σ_j σ_j u_jv_jᵀ

保留前 k 项,就得到低秩近似 A_k。奇异值越大,代表这个方向对矩阵的能量贡献通常越大,但它不自动代表更高收益、更强预测力或更好的交易机会。

SVD 和稀疏反馈的矩阵分解要区分:标准 SVD 面向已经给定数值的完整矩阵;不能把缺失反馈随手填成 0,再把它当成真实数据交给 SVD。ALS 可以围绕已观察项和正则化目标建模,问题设置不同。

SVD 的三部分

A = UΣVᵀ = Σⱼ σⱼuⱼvⱼᵀ

前 k 个秩一分量组成截断重构。

一句话记住奇异值排序表达能量,不自动表达经济意义。

07用图像理解截断重构

把一张 1440×1080 的灰度图看成矩阵,每个像素值在 0 到 255 之间。矩阵最多有 1080 个奇异分量。保留 k=5、50、500 个分量时,通常会从粗结构逐步恢复到更多细节,但具体视觉差异取决于图像。

k=50 时,需要保存 U 的前 50 列、50 个奇异值和 Vᵀ 的前 50 行,数字数量是:

  • U:1440×50;
  • Σ:50;
  • Vᵀ:50×1080;
  • 合计:1440×50+50+50×1080=126050。

原始像素数是 1440×1080=1555200,所以数字数量约为 8.1%。这不等于最终图片文件一定只有原来的 8.1%,因为数据类型、编码和文件格式也会影响文件大小。

可以用能量比例选择 k:

保留能量比例 = Σ_(j≤k)σ_j² ÷ Σ_jσ_j²

能量比例高,说明样本矩阵的重构变化保留得多;细小但重要的内容仍可能落在较弱分量里。

保留更多分量会怎样
小 k

更省存储

主要轮廓还在,细节和局部变化更容易丢失。

大 k

误差更小

重构更接近原矩阵,但存储和计算成本更高。

一句话记住数字数量变少,不等于文件大小按同样比例变小。

08迁移到金融数据,先定义矩阵

金融应用的第一步不是急着分解,而是把矩阵定义清楚:

  • 行可以是股票,列可以是交易日,单元格是日收益;
  • 行也可以是股票,列是因子,单元格是因子暴露;
  • 还可以让行是样本、列是特征。

同样是“降到 3 维”,不同的行列定义会得到完全不同的含义。低维方向通常是原变量的组合,不代表自动找到了三项原来的指标。

动手时,可以先构造一个 12×9 的部分已知评分表,记录掩码 Ω,验证 P(12×3)和 Q(3×9)相乘后仍是 12×9。留出一部分已观察评分比较训练误差和验证误差,确认未知值没有被当成 0。

再对一个完整小矩阵做 SVD,分别保留 1、2 和全部分量,检查重构形状、奇异值顺序、重构误差和能量比例。k 越大,训练重构通常越准,但不代表对未来数据的预测一定更好。

把结果迁移到股票收益、因子或图片时,都要记录数据定义、缺失处理、参数 k、验证切分和误差口径。

一句话记住先写清矩阵含义,再谈分解结果。

检验
检验一下

4 道小题

全部答对,这一课就算真正读懂了。答错了会告诉你为什么。

01P 是 12×3、Q 是 3×9,P×Q 的结果是什么形状?
02用户没有给某部电影评分,最稳妥的处理是什么?
03ALS 中“固定 Q 优化 P”是什么意思?
04奇异值平方占比主要表示什么?
知识卡

这一课,浓缩成一张卡

学完可以保存或分享给朋友。保存成图片的功能会在下一版加上。

AI+金融投资训练营 · 矩阵分解入门矩阵分解最容易被误解的地方是什么?

它能压缩共同结构,却不能自动把低维方向变成真实因子或交易信号。

  • 未知不等于0
  • ALS固定一侧优化
  • SVD能量不等于收益
quant.jtxaionline.com
这一课的要点

记住这 5 句话

  1. 01低秩近似用少数潜在维度表达主要结构,但会舍弃部分细节,不能把低维方向自动命名为经济因子。
  2. 02推荐矩阵里的空白通常是未知,不是 0;损失应先限定在已观察集合 Ω 上。
  3. 03L2 控制参数大小,L1 更容易得到稀疏解;λ 需要用验证数据选择,过大或过小都可能有问题。
  4. 04ALS 交替固定一侧求另一侧;SVD 则把完整矩阵拆为 U、Σ、Vᵀ,并可用前 k 项做截断重构。
  5. 05金融应用必须先定义矩阵、缺失和验证口径;保留方差或重构更好,不等于未来预测或交易更好。
完成这一课

完成这一课

读完讲义、动手做一次实验、答对小题,这一课就算学完了。

  • 读完讲义
  • 完成一次矩阵分解参数探索
  • 通过随堂自测

实验数据AI+金融投资训练营教学样本。固定教学样本

固定教学样本只用于解释量化研究方法,不代表任何真实标的未来表现,也不构成投资建议。