深度学习直接优化组合 (End-to-End Deep Learning for Portfolio Optimization)

一句话定义:用神经网络直接输出组合权重、把 Sharpe 比率本身当损失函数做梯度上升,完全跳过预期收益 \mu 的预测——这是「先预测后优化」路线的最彻底的反面。 来源:Zhang, Zohren & Roberts (2021), arXiv:2005.13665。

它是什么

传统组合优化是两步:先估 \hat\mu、\hat\Sigma,再解

\max_w \frac{w^\top\mu}{\sqrt{w^\top\Sigma w}} 两步之间有缝隙:预测阶段最小化的是 MSE,而 MSE 对所有资产的误差一视同仁;组合目标对各资产的敏感度却由 \Sigma^{-1} 加权。 深度学习直接优化组合的做法是:让网络 f_\theta 直接输出权重 w_{i,t}=f_\theta(x_t)_i,\qquad \text{用 softmax 保证 } w_i\ge 0,\ \sum_i w_i=1

然后把实现收益 R_{p,t}=\sum_i w_{i,t-1}r_{i,t} 代进去,直接对 Sharpe 比率做梯度上升:

L_T=\frac{E(R_{p,t})}{\sqrt{E(R_{p,t}^2)-E(R_{p,t})^2}},\qquad \theta_{\text{new}}:=\theta_{\text{old}}+\alpha\,\frac{\partial L_T}{\partial\theta} 网络结构只有三块:把 n 个资产的 k 天价格与收益拼接成输入;一层 LSTM 提取时序模式;softmax 输出权重。Zhang 等取 k=50、n=4、64 个 LSTM 单元。 ## 可微性从哪来 关键点:softmax 把单纯形约束 w\in\Delta^{n-1} 变成了无约束的 softmax 映射,于是整个"网络 → 权重 → 实现收益 → Sharpe"是一个复合的标量函数,梯度可以直接链式求导,不需要可微优化求解器(与 OptNet / CvxpyLayers 那条路不同)。 这也解释了为什么这个范式只在权重结构简单时好用:一旦要在权重上施加复杂约束(基数约束、跟踪误差约束、权重上下限),单纯形约束就不再是唯一约束,可微化就困难了——那正是 决策聚焦稀疏切点组合 用 Cholesky 分解 + 可微 top-k 解决的问题。 ## 为什么选 ETF 而非个股 Zhang 等 §1 的论证值得单独记住,因为它决定了这类方法的适用边界: - 不同资产类别的指数之间相关性稳健,甚至为负;而同一资产类别内部高度正相关——美股超过 75% 的股票与市场指数高度相关,把它们加进组合对分散化的贡献极小。 - 交易指数 ETF 把可选池从数千只压缩到四只(VTI / AGG / DBC / VIX),且这些 ETF 流动性高、费率低。 - 作者明确放弃寻找最优行业的想法:目标是"每单位风险的收益",更高收益诉求交给波动率缩放实现。 > 推论:这个范式天然适合资产配置层(几个大的类别),不适合横截面选股(几百上千只股票)——不是因为技术做不到,而是因为收益来源不同:配置层的收益来自类别间的风险溢价与相关性结构,选股层的收益来自个股定价误差,而后者需要估计 \mu 的横截面信息。 ## 损失函数与训练配置 | 项 | 设定 | |---|---| | 目标 | 样本内 Sharpe 比率(Eq. 2) | | 输入 | 每资产过去 50 天的收盘价 + 日收益,共 400 个特征 | | 网络 | 单层 LSTM,64 单元;softmax 输出层 | | 优化 | Adam,mini-batch 64,≤100 epoch;10% 数据作验证集 | | 架构对比 | FCN 过拟合(每特征一组参数);CNN 大滤波器平滑而欠拟合;LSTM 最好 | | 交易成本 | 按成交额变动的比例费率 C(1bp 与 10bp 两档) | | 波动率缩放 | 用 50 日指数加权标准差 \sigma_{i,t-1} 把组合调到目标波动 \sigma_{\text{tgt}} | 波动率缩放后的收益写法(论文 Eq. 7): R_{p,t}=\sum_i \frac{\sigma_{\text{tgt}}}{\sigma_{i,t-1}}w_{i,t-1}r_{i,t} - C\sum_i\left|\frac{\sigma_{\text{tgt}}}{\sigma_{i,t-1}}w_{i,t-1}-\frac{\sigma_{\text{tgt}}}{\sigma_{i,t-2}}w_{i,t-2}\right|

这一步是实盘化的关键:不缩放的话,不同策略的波动率差异巨大,收益数字没法比;缩放之后"业绩主要由策略而非市场驱动"。论文也承认缩放用的波动率是滞后的,未必代表当期波动。

实证结果(2011–2020.4,含 2020 一季度崩盘)

方法 Sharpe(无缩放,C=1bp) Sharpe(缩放,C=1bp) Sharpe(缩放,C=10bp)
DLS(本文) 1.858 1.962 1.403
Allocation 4(股40/债40/商10/VIX10) 1.228 1.579 1.299
Allocation 1(各 25%) 0.929 1.526 1.274
MD(最大分散化) 0.882 1.484 0.899
MV(均值-方差,50 日滚动) 0.759 1.120 0.191
DWP(随机组合理论) 0.493 0.818 -0.753

成本敏感性是最有信息量的一栏:DLS 在 10bp 档仍居首但优势收窄(1.962 → 1.403),而 DWP 转负。原因在论文的箱线图里:DLS 实现收益更高,但每日调仓导致换手远高于年度再平衡的固定配置策略,成本吃掉了优势。

崩盘期的行为:2020 年 2 月初小跌后模型几乎清空股票、几乎全持债券;2 月 24 日崩盘开始时持仓集中在债券。债券 3 月中旬也跌,但模型未大幅调仓,因波动率飙升使缩放后的债券仓位自动下降,回撤因此可控。

敏感性分析:400 个特征的时变归一化敏感度显示最近观测点权重最高,越久远越低。作者据此提出可用更短回看窗口。

与「先预测后优化」和 DFL 的对照

先预测后优化 (PtO) 决策聚焦学习 (DFL) 深度学习直接优化组合
是否预测 \mu 是 是 否
损失函数 MSE \alpha L_\text{MVO}+(1-\alpha)L_\text{MSE} Sharpe 比率本身
\Sigma 是否进入梯度 否 是,通过 \Sigma^{-1} 倾斜 MSE 梯度 否(实现收益的时序标准差隐含)
权重约束怎么满足 求解优化问题 求解优化问题 softmax(单纯形)
决策层是否可微 — 需二阶梯度 / 可微优化层 不需要(链式法则即可)

DFL 的核心机制是把 MSE 梯度按 \Sigma^{-1} 的行向量倾斜(见 Decision-Focused Learning for MVO);直接优化组合则连 \mu 与 \Sigma 都不出现,梯度只通过实现收益序列的均值与标准差流动。

局限与开放问题

  • 资产池只有 4 只 ETF,测试期约九年,每两年重训一次。结论不能外推到几百只股票的横截面。
  • 成本模型是线性的,未建模市场冲击与滑点。
  • 波动率估计滞后——论文自陈,把"让网络顺便学未来波动率"列为未来工作。
  • Sharpe 作为损失函数对样本期敏感:训练期 Sharpe 会被少数极端收益主导,且 \mathrm{Std} 在样本内估计有偏。
  • 只能做单纯形约束:加基数约束、跟踪误差约束、权重上下限就需要可微优化层,这条路见 决策聚焦稀疏切点组合。
  • 目标函数可换但论文未做:结论里提到可以改成 Sortino 或分散化程度——只要可微。

与其他概念的关系

来源