Zhang, Zohren & Roberts (2021) — 深度学习直接优化组合
Zihao Zhang · Stefan Zohren · Stephen Roberts(Oxford-Man Institute of Quantitative Finance, 牛津大学)· arXiv:2005.13665(2021-01-26)· 12 页
本次归档:
raw/papers/202101-deep-learning-for-portfolio-optimization/(paper.pdf 1.45 MB + extracted.md)
一句话核心
这篇论文做了一件在组合优化里很少见的事:完全不预测预期收益 \mu,而是让一个 LSTM 直接输出组合权重,用梯度上升把训练期内的 Sharpe 比率推到最大。作者称之为 end-to-end 训练:输入是四个指数 ETF 的过去 50 天价格与收益,输出是四个权重,中间没有任何 \mu 或 \Sigma 的估计步骤。交易标的是 VTI / AGG / DBC / VIX 四只 ETF,不是个股。测试期 2011 年至 2020 年 4 月底(含 2020 年一季度崩盘),在含交易成本的设定下 DLS 模型的 Sharpe 与 Sortino 均高于四种固定再平衡策略、均值-方差、最大分散化与随机组合理论基准。
问题与关键结构
经典做法是两步:先预测 \hat\mu,再解均值-方差。论文指出这一步的损失函数(MSE)与最终目标(组合的风险调整收益)不对齐——预测误差被一视同仁地最小化,但对组合目标的贡献各不相同。
模型结构只有三块:
- 输入层:把 n 个资产的 k 天价格与收益拼接,输入维度 (k, 2\times n)。论文取 k=50、n=4,共 400 个特征。
- 隐藏层:单层 LSTM,64 个单元。作者比较过 FCN / CNN / LSTM——FCN 过拟合严重(每个特征各配一组参数),CNN 用大滤波器平滑而欠拟合("overfilter"),LSTM 泛化最好。
- 输出层:softmax,把权重限制在 w_i\ge 0、\sum_i w_i=1 的单纯形内。
优化目标(论文 Eq. 2):
L_T=\frac{E(R_{p,t})}{\sqrt{E(R_{p,t}^2)-E(R_{p,t})^2}},\qquad R_{p,t}=\sum_{i=1}^n w_{i,t-1}\,r_{i,t}
参数更新就是朴素的梯度上升:\theta_{\text{new}}:=\theta_{\text{old}}+\alpha\,\partial L_T/\partial\theta。用 Adam 优化器,mini-batch 64,训练至多 100 epoch,10% 数据作验证集。
关键发现
为什么选 ETF 而不选个股
论文 §1 的论证:不同资产类别的指数之间相关性稳健甚至为负,而同一资产类别内部高度正相关——美股超过 75% 的股票与市场指数高度相关,加进组合对分散化贡献很小。所以直接交易四类指数 ETF,把可选资产池从数千只压缩到四只,目标是"每单位风险的收益",更高的收益诉求交给波动率缩放去实现。
实证结果(Table 1,年化)
三种设定下的 Sharpe:
| 方法 | 无波动率缩放 C=0.01% | 缩放 \sigma_{\text{tgt}}=0.10, C=0.01% | 缩放 C=0.1% |
|---|---|---|---|
| Allocation 1(各 25%) | 0.929 | 1.526 | 1.274 |
| Allocation 2(股 50/债 10/商 20/VIX 20) | 1.173 | 1.146 | 0.986 |
| Allocation 3(股 10/债 50/商 20/VIX 20) | 0.890 | 1.383 | 1.110 |
| Allocation 4(股 40/债 40/商 10/VIX 10) | 1.228 | 1.579 | 1.299 |
| MV(均值-方差,50 日滚动) | 0.759 | 1.120 | 0.191 |
| MD(最大分散化) | 0.882 | 1.484 | 0.899 |
| DWP(随机组合理论) | 0.493 | 0.818 | -0.753 |
| DLS(本文) | 1.858 | 1.962 | 1.403 |
波动率缩放设定下 DLS 的 E(R) = 0.206、Std = 0.105、DD = 0.062、Sortino = 3.322、MDD = 0.123。
交易成本敏感性
成本从 1bp 提到 10bp,DLS 的 Sharpe 从 1.962 降到 1.403,但仍高于所有基准;DWP 则从 0.818 掉到 -0.753(转负)。论文用箱线图解释:DLS 的实现收益更高,但因每日调仓(turnover 远高)累积成本也更大;在高成本档位,固定再平衡策略的相对优势上升,Allocation 3/4 与 DLS 接近。
2020 年一季度崩盘中的行为
2 月初股市小跌后,模型几乎清空股票、几乎全持债券;2 月 24 日崩盘开始时持仓集中在债券指数。债券在 3 月中旬也下跌,但模型未大幅调仓,因波动率飙升导致缩放后的债券仓位自动下降,回撤因此可控。
敏感性分析
400 个特征的时变归一化敏感度显示:最近的观测点权重最高,越久远越低——与时间序列的直觉一致,作者据此提出可用更短的回看窗口。
重要 caveat
- 标的池只有 4 只 ETF,且是美股指数级产品。这不是个股选股,结论无法直接外推到几百只股票的横截面。
- 测试期 2011–2020.4 约九年,且每两年重训一次模型(用当时全部可用数据),样本量偏小。
- 成本模型是线性的(按成交额变动的比例费率 C),未建模市场冲击与滑点。
- 波动率估计是滞后的(50 日指数加权标准差),论文自己在结论里承认它未必代表当前波动率,把"让网络顺便预测未来波动率"列为未来工作。
- 作者明说保持网络简单以展示管线本身有效,不做超参精细调优——所以表 1 的绝对数值不能当作该架构的上限。
- DLS 与 Allocation 4 在无缩放档的 Sortino 上互有胜负(DLS 3.135 vs Allocation 4 2.932),优势幅度依设定而变。
对 quant wiki 的意义
- 这是 Predict-then-Optimize 谱系里最彻底的一端:DFL 类工作仍然要预测 \mu,只是改梯度;Zhang 等 2021 连 \mu 都不预测,直接把决策目标本身当损失函数。详见 concepts/models-theory/深度学习直接优化组合 (End-to-End Deep Learning for Portfolio Optimization)。
- 与 Decision-Focused Learning for MVO 的对照很清楚:DFL 的梯度被 \Sigma^{-1} 倾斜,Zhang 等的梯度里根本没有 \Sigma,只有实现收益的均值与标准差。
- 论文对波动率缩放的处理(用滞后的 50 日波动率把组合调到目标波动)是 波动率管理 的实盘化写法,值得作为"深度学习组合 + 风险预算"的参考实现。
- 三位作者此前做的 DeepLOB 属于市场微观结构,这篇属于资产配置——同一组人把"端到端"的思路从订单簿搬到了组合层。
相关概念
- 深度学习直接优化组合 — 本文的主概念页
- Predict-then-Optimize — 本文绕过的那条两步路线
- Decision-Focused Learning for MVO — 同属决策层改造,但保留 \mu 预测
- 波动率管理 — 论文用来对齐不同策略风险水平的手段
- Sharpe 比率 — 训练目标本身就是它
- Zhang-Zohren-Roberts 2021 论文页