今天读 Bengio、Courville、Vincent 那篇 Representation Learning: A Review and New Perspectives,本来以为只是补一篇深度学习老综述,结果读着读着,突然对“为什么金融量化里用深度学习这么别扭”有了一点新的理解。
论文最核心的意思其实很简单:
> 机器学习效果很大程度上取决于数据表示。好的表示,会把原始数据里混在一起的底层因素拆开,让后面的预测任务变容易。
在图像里,这个说法很直观。
一张猫的照片,原始像素很复杂,有光照、姿态、背景、角度、遮挡。但“猫”这个结构是稳定存在的。深度学习的厉害之处,就是能从像素里逐层学出边缘、纹理、部件、形状,最后形成比较抽象的“猫”的表示。
所以它可以忽略一些无关变化,比如光照和背景。
但读到这里我突然意识到:金融量化不是这么回事。
金融里的表示学习,学的不是稳定自然结构,而是:
> 低信噪比、非平稳、带反馈的社会博弈结构。
在金融里,我们经常说因子,比如 value、momentum、quality、low volatility。现在回头看,这些因子本质上就是人类手工设计的representation。
原始数据是价格、成交量、财报、资产负债表、现金流量表。研究者把它们加工成估值、盈利质量、成长性、动量、风险暴露。这不是纯客观发现,而是带着很强的经济先验和归纳偏置。
换句话说,传统因子研究就是一种“人工表示学习”。
而深度学习想做的是:能不能别靠人肉矿机一点点挖因子,让模型从数据里自动学出更好的表示?
这个想法当然很诱人。但金融数据跟图像、语言最大的不同在于:标签太吵了。
比如一个因子的月度 alpha 可能只有 0.2%,但单月波动可能有 8% 甚至 20%。这意味着什么?
意味着真实信号很小,而噪声巨大。(这个因子只能能解释 0.2% 的价格变动)
当面临一个低信噪比系统时,执行系统时那种反复打脸、反复怀疑自己的痛苦是注定的。当你兴奋的发现资金费、OI 和走势之间“兴奋的规律”时,人工的能力给很难统计出这种指标效率的波动。导致坚持一两次后自我怀疑。
在这种系统里,短期结果本来就非常像随机游走。一个长期有正期望的策略,完全可能连续几个月甚至几年表现很差。问题在于,你很难判断:
这是正常噪声?
还是策略真的失效?
买基金的时候你总能看到一句话:“过去业绩不代表未来走势”。反映的就是金融系统的非平稳性。
为什么金融里不能简单复制图像和 NLP 的大模型路线。
因为图像和语言里有大量稳定结构。比如光照通常是 nuisance variable。猫在亮处是猫,在暗处还是猫。模型可以学会对光照不敏感。
但在金融里,所谓 regime 不是简单的“光照”。利率环境、流动性、拥挤度、风险偏好、政策状态,本身就会改变收益生成机制。
也就是说,市场状态不是可以被忽略的噪声,它本身就是决定因子是否有效的结构变量。
所以如果一个 value 因子某段时间失效,复杂模型当然有可能学会忽略它。但问题是:
1. 模型是否看到了真正导致失效的状态变量?
2. 历史上这种状态出现过足够多次吗?
3. 未来的机制会和过去一样吗?
4. 模型是在学条件规律,还是在记历史噪声?
这几个问题不解决,模型越复杂,越可能把偶然性包装成结构。
发布于 上海
