type
status
date
slug
summary
tags
category
icon
password
comment
Victor的魔鬼训练进入第二周。从特征值的”主轴”直觉到矩阵分解三剑客,从推荐系统的矩阵魔法到投资组合的数学优化,这不仅是技术的深入,更是理论与实战的完美融合。当Carol亲手实现SVD压缩,当Bob用PCA提取因子,SigmaX的团队终于开始理解:为什么数学是量化的灵魂。
本期关键词:特征值、特征向量、SVD奇异值分解、PCA主成分分析、LU/QR分解、推荐系统、投资组合优化、数值稳定性
🎯寻找变换的”主轴”
周一下午,Victor准时出现在培训室。
他环顾四周,发现每个人的眼神都比上周更加专注。一周的高强度训练,已经让这群”代码猴子”开始有了一些数学觉悟。
“上周我们学了矩阵是变换机器。今天,我要教你们找到变换的灵魂。”
Victor在白板上画了一个椭圆:

“这个椭圆是由单位圆经过某个矩阵变换得到的。问题是:这个变换最重要的方向是什么?”
Alice举手:“长轴和短轴的方向?”
Victor难得露出赞许的表情:
“对!长轴和短轴就是这个变换的特征方向。沿着这些方向,向量只会被拉伸或压缩,不会被旋转!”
他在白板上写下核心定义:
特征值与特征向量:
给定矩阵A,如果存在非零向量v和标量λ,使得:
Av = λv
则v是A的特征向量,λ是对应的特征值。
几何意义:
- 特征向量v:变换后方向不变的向量
- 特征值λ:沿该方向的拉伸倍数
Bob皱眉:“等等,Av应该是矩阵乘向量,结果是另一个向量。怎么会等于λv这种标量乘向量?”
“这正是特征向量的特殊之处!”
Victor用力在白板上画:

“大多数向量经过矩阵变换后,方向会改变。但特征向量是那些只被拉伸不被旋转的特殊向量。找到它们,你就找到了变换的本质!”
Carol问:“那怎么计算特征值和特征向量?”
Victor写下推导:
他用一个具体例子演示:
Eric问:“这在量化中有什么用?”
Victor推了推眼镜,声音变得严肃:
“用处大了。还记得上周那个让你们亏1000万的协方差矩阵吗?协方差矩阵的特征值和特征向量告诉你:投资组合风险的主要来源是什么!”
他在白板上快速写:

Alice恍然大悟:“所以如果协方差矩阵的最大特征值特别大,说明所有资产都暴露在同一个风险因子上?”
“孺子可教。”Victor难得夸奖,“这就是为什么2008年金融危机时,所有资产同时崩溃。它们看似分散,但都暴露在同一个系统性风险上。特征分解能提前发现这个隐患。”
🔬PageRank:特征向量的商业奇迹
第二天,Victor一进门就在白板上写了一个名字:
“你们知道Google怎么给网页排名的吗?”
Bob举手:“根据链接数量?链接越多的网页越重要?”
“太天真了。”Victor冷笑,“如果只看链接数量,任何人都可以创建一万个垃圾网页互相链接,刷上排名。Google的天才之处在于:不仅看链接数量,还看链接的质量。”
他在白板上画了一个网页链接图:

“假设有四个网页ABCD。A被B和C链接,B被D链接,C被A链接,D被B和C链接。问题是:哪个网页最重要?”
Victor写下PageRank的核心思想:
“这个方程有个问题:PR(A)的计算需要PR(B)和PR(C),而PR(B)的计算又需要PR(D),PR(D)的计算需要PR(B)和PR(C)…这是个循环依赖!”
Carol问:“那怎么解?”
Victor露出得意的笑容:
“把它写成矩阵形式!”
全场惊叹。
Victor继续说:
“Google每天要对数十亿网页计算PageRank。他们使用的是幂迭代法:从任意初始向量开始,不断乘以M,最终会收敛到主特征向量。”

Alice问:“为什么幂迭代一定会收敛到主特征向量?”
“好问题!”Victor在白板上快速推导:
“这就是幂法的数学原理。Google每天就是在做这个计算,只不过矩阵规模是数十亿×数十亿。”
🗡矩阵分解三剑客

周三,Victor宣布进入本周的重头戏:
“今天开始,我们学习矩阵分解。这是线性代数最强大的工具,也是机器学习和量化金融的核心技术。”
他在白板上写下三个名字:
SVD:万能的分解器
“SVD是线性代数的瑞士军刀。任何矩阵,不管是方阵还是长方形,不管是满秩还是降秩,都可以做SVD分解。”
Victor写下SVD的定义:
Bob问:“SVD和特征分解有什么区别?”
“好问题。特征分解只能用于方阵,而且必须是可对角化的。SVD适用于任意矩阵,这才是它强大的地方。”
Victor展示了SVD的一个经典应用——图像压缩:

“奇异值从大到小排列,前面几个奇异值包含了图像的主要信息,后面的只是噪声和细节。保留前k个奇异值,就能用很少的数据重建图像!”
Alice问:“在量化中,SVD怎么用?”
Victor露出神秘的笑容:
“推荐系统。Netflix用SVD来预测用户对电影的评分。用户-电影评分矩阵做SVD分解,低秩近似就能填补缺失的评分,这就是协同过滤的核心!”

PCA:降维的艺术
“PCA和SVD关系密切,但目的不同。SVD是分解矩阵,PCA是降维。”
Victor在白板上画了一个点云:

“给定一堆高维数据点,PCA找到方差最大的方向作为第一主成分,然后找垂直于它且方差第二大的方向作为第二主成分…以此类推。”

Eric问:“PCA在量化中怎么用?”
“因子模型!”Victor提高了音量,“假设你有100只股票的收益率序列,直接分析100维太复杂。用PCA降到5维,这5个主成分就是隐含的风险因子——可能对应市场因子、行业因子、规模因子等。”
Carol若有所思:“所以上周说的协方差矩阵降秩问题,也可以用PCA来解决?”
“对!”Victor赞许地点头,“如果你的100×100协方差矩阵秩只有50,可以用PCA提取前50个主成分,在这个低维空间做风险分析,既稳定又有意义。”
LU/QR分解:效率之选
“最后说说LU和QR分解。这两个在理论上不如SVD优雅,但在数值计算中至关重要。”


Bob问:“什么时候用LU,什么时候用QR?”
“规则很简单:解方程组用LU,最小二乘用QR,一般分析用SVD。记住这三个就够了, 你还没能耐研究它们底层原理呢。”
💼实战专题1:推荐系统
周四,Victor宣布进入实战环节:
“今天我们用矩阵分解实现一个推荐系统。别只会调库,要理解底层原理!”

他在白板上画了一个用户-商品评分矩阵:

“这个矩阵是稀疏的,大部分位置是空的。我们假设这个矩阵是低秩的——用户的喜好可以用少数几个隐含因子来描述。”
Victor写下矩阵分解的目标:
设评分矩阵 R ≈ P × Qᵀ
其中:
- R:m×n 评分矩阵(m个用户,n个商品)
- P:m×k 用户因子矩阵
- Q:n×k 商品因子矩阵
- k:隐含因子数量(通常很小,如10-50)
预测评分:r̂ᵢⱼ = pᵢ · qⱼ(用户i的向量与商品j的向量的点积)
“这就是为什么上周我们要学点积!推荐系统的核心就是:找到用户和商品的隐含向量表示,用点积计算相似度。”
Alice问:“怎么训练P和Q?”
Victor写下优化目标:
“训练方法有很多:梯度下降、交替最小二乘(ALS)、随机梯度下降(SGD)…Netflix Prize比赛的冠军方案就是基于矩阵分解的。”
他给出了一个简化的实现:
Bob兴奋地说:“所以Netflix知道我喜欢什么电影,是因为它把我和电影都映射到了同一个向量空间?”

“对!如果你喜欢科幻片,你的用户向量在’科幻’这个维度上的值就会很高。如果一部电影是科幻片,它的商品向量在’科幻’维度上也很高。点积大,推荐概率就高。”
💰实战专题2:投资组合优化
同一天下午,Victor切换到金融主题:
“现在我们用线性代数解决一个真正的金融问题:Markowitz投资组合优化。”
他在白板上写下问题定义:
给定n只股票:
- 预期收益向量 μ = (μ₁, μ₂, ..., μₙ)
- 协方差矩阵 Σ(n×n)
投资组合权重向量 w = (w₁, w₂, ..., wₙ)
约束:Σwᵢ = 1(权重之和为1)
目标:在给定收益水平下,最小化风险
组合收益:E[r] = wᵀμ
组合风险(方差):Var[r] = wᵀΣw
“这是一个二次规划问题。用拉格朗日乘数法可以得到解析解,但关键是理解里面的矩阵运算。”
Carol问:“wᵀΣw这个形式代表什么?”
Victor详细解释:
wᵀΣw 叫做二次型(quadratic form)
展开:
wᵀΣw = Σᵢ Σⱼ wᵢ wⱼ σᵢⱼ
其中σᵢⱼ是资产i和j的协方差
几何意义:
- 权重向量w定义了一个方向
- Σw是协方差矩阵对w的变换
- wᵀΣw是w和Σw的点积
- 结果是一个标量,表示该方向上的"风险强度"
“还记得特征分解吗?协方差矩阵的特征向量就是风险的主轴。如果你的投资组合权重w正好等于最大特征值对应的特征向量,那你承担的风险最大!”
Alice问:“那最小方差组合怎么求?”
Victor写下推导:
“看到了吗?最小方差组合的权重与协方差矩阵的逆有关。这就是为什么我们上周强调矩阵可逆性——如果协方差矩阵奇异,这个公式就失效了!”
他给出Python实现:

Eric感叹:“原来投资组合优化就是在协方差矩阵定义的’风险空间’里找最优方向…”
“现在你开始理解了。”Victor难得露出满意的表情,“数学不是抽象的符号游戏,它描述的是真实世界的结构。投资组合优化、推荐系统、图像压缩…本质上都是在高维空间里找最优方向。”
⚠️数值稳定性:工程师的必修课
周五,最后一天的课程。
Victor表情严肃:
“今天讲的内容,可能会救你们的命——至少会救你们的钱。”
他在白板上写下:
“你们的代码里,我看到大量的np.linalg.inv()调用。这是危险的。”
Bob不服:“求逆有什么问题?数学上不是很自然吗?”
Victor冷笑:
“数学上自然,数值上灾难。来,我给你们演示。”
“看,b只变了0.0001,结果却变了几个数量级!这就是条件数的问题。”
Victor解释条件数:
条件数(Condition Number):
κ(A) = ||A|| × ||A⁻¹||
对于对称矩阵:
κ(A) = |λmax| / |λmin|
条件数的意义:
- κ ≈ 1:矩阵良态(well-conditioned),数值稳定
- κ >> 1:矩阵病态(ill-conditioned),误差会被放大
- κ = ∞:矩阵奇异,不可逆
经验法则:
如果κ(A) ≈ 10ᵏ,结果会损失约k位有效数字
“那个接近奇异的矩阵,条件数大约是10⁴。这意味着输入误差会被放大一万倍!”
Carol问:“那怎么避免这个问题?”
Victor给出规则:

最后,Victor讲解了稀疏矩阵:
“大规模数据分析中,矩阵往往是稀疏的——大部分元素是0。如果你用稠密矩阵存储,浪费内存不说,计算也慢得要死。”

“在推荐系统中,用户-商品评分矩阵通常99%都是0。用稀疏矩阵,千万级用户的系统才能跑得动。”
🎓结业与展望
课程结束后,黑犬把大家召集在一起。
“两周的培训结束了。张总,你觉得他们进步如何?”
Victor推了推眼镜,难得地露出了一丝笑意:
“从文盲进步到了小学生。”
全场哄笑。
“但是,”Victor话锋一转,“有几个人让我印象深刻。Alice对数学的直觉很好,已经能自己推导PCA和因子模型的关系了。Carol的工程能力配合数学思维,实现的SVD压缩代码效率很高。Bob虽然基础差,但学习速度快,从三层循环优化到矩阵运算只用了两天。”
黑犬满意地点头:“那Victor,你愿意继续留下来吗?”
Victor沉默了几秒:
“我考虑考虑。这群人虽然蠢,但比普林斯顿的学生有趣。他们会把数学用到真实的金融产品里,而不是发表论文后束之高阁。况且这里比起学校,工资高多了哈哈哈。”
他收拾东西准备离开,走到门口又回头:
“下周开始,我要测试你们能不能把这两周学的东西用到实际项目中。谁能用SVD把上个月的推荐系统效果提升10%,我请他吃饭。”
Bob喊道:“Victor,你请客的话是去哪里吃?”
“食堂。”
全场爆笑。
Victor离开后,Carol看着白板上密密麻麻的公式,对Alice说:
“这两周学的东西,比我大学四年学的都多。”
Alice点头:“因为Victor不只是在教公式,他在教思维方式。从几何直觉出发,理解每个公式背后的意义,然后才是计算。”
Bob插嘴:“我现在看到矩阵乘法,脑子里自动浮现的是空间变换,不再是行乘列了。”
Carol笑了:“这大概就是Victor说的’从代码猴子进化到量化研究员’的第一步吧。”
📒本周总结
本周是线性代数的进阶篇,也是最后一周的线代内容。文章任务虚拟且真实的量化工作人员也不会搞不懂文中的知识,这样写只是提供一种有趣的方式来理解线性代数的基本知识。
🚨一个重要说明:一些读者问我说原来week9-10不是C++模板编程的主题么,是不是搞错了。其实不是,因为我发现原来计划的是讲完模板编程,插入一个月的线代再讲STL的内容,然而STL库本身就需要模板编程的基础更好理解,把模板和STL放在一起讲反而连贯性会更好,因此在C++基础语法之后把线代提前了。
本周我们跟随Victor完成了线性代数的深入学习:
- 特征值与特征向量
- 核心概念:Av = λv,找到变换的”主轴”
- 几何意义:特征向量是只被拉伸不被旋转的方向
- 应用:PageRank、协方差矩阵分析、风险因子识别
- 矩阵分解三剑客
- SVD:万能分解,A = UΣVᵀ,用于降维、压缩、推荐系统
- PCA:找方差最大的方向,提取主成分和隐含因子
- LU/QR:高效解方程组,保证数值稳定性
- 实战应用
- 推荐系统:用户-商品矩阵分解,点积计算相似度
- 投资组合优化:Markowitz模型,最小方差组合
- 因子模型:用PCA提取风险因子
- 数值稳定性
- 条件数:衡量矩阵的”健康程度”
- 永远不要直接求逆,用solve或SVD
- 大规模数据必须用稀疏矩阵
正如Victor所说:数学不是抽象的符号游戏,它描述的是真实世界的结构。投资组合优化、推荐系统、图像压缩…本质上都是在高维空间里找最优方向。理解了这一点,你就不再是调用API的程序猿,而是真正可以着手做量化研究的人了。
本周的代码实现和练习已上传至Github仓库:https://github.com/shuheng-mo/qd-study-plan-104wk.git
下周预告:W11 - 线性代数进阶(上)
线性代数基本原理告一段落,下周我们将更深入的探讨线性代数在量化中的运用。
各位下周五见!👋
- Author:黑犬
- URL:https://www.shuheng-mo.com//article/qd104week010
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!

