⚙️ AutoML 与因子挖掘自动化

贝叶斯优化的金融改造(试验预算=多重检验次数)、遗传规划挖因子的工程要点与适应度惩罚、挖掘通货膨胀的统计必然、「预算制」的四条对策——自动化的代价与纪律。

自动化的许诺诱人:机器不知疲倦地搜索因子、调参、验证,研究员只做最后裁决。本篇讲三类自动化技术的原理与工程,然后直面它的终极问题——挖掘能力越强,「发现的通货膨胀」越严重,多重检验的代价随自动化指数上升。

技术一:超参数优化(HPO)

网格/随机搜索的效率太低,主流是贝叶斯优化:用代理模型(高斯过程/TPE)拟合「参数 → 绩效」的黑盒,按「期望改进」智能采样下一组参数——比网格省一个数量级的试验次数(Optuna 是事实标准)。

金融场景的三个改造:

  1. 评估函数本身就是过拟合入口:HPO 的目标值(如验证集 IC)被反复查询 → 对验证集的隐性过拟合——缓解:目标值用「多折 purged CV 的均值」(见机器学习策略 )+ 保留最终测试区一次开箱;
  2. 试验预算 = 多重检验次数:100 次试验挑最优,与「检验 100 个策略挑最好」统计上同罪——最终绩效要按试验次数做 deflated 校正(见统计推断 ),且记录完整的试验日志(Optuna 的 storage 持久化);
  3. 参数空间的先验:不要给「年化调仓 1 次到 1000 次」这种无先验空间——用领域知识框定合理区间(缩小搜索空间 = 减少假发现,见因子检验 的参数敏感性)。

技术二:公式因子的自动搜索(遗传规划)

**遗传规划(Genetic Programming, GP)**是因子挖掘自动化的经典方案:把因子表示为算子树(rank(close/open) − rank(volume/ma20) 这类表达式),用「选择 → 交叉 → 变异」的进化循环搜索高适应度(高 IC)的表达式。gplearn/自研框架的工程要点:

  • 算子集即先验:提供哪些算子(rank、ts_mean、延迟、四则、布尔)决定搜索空间的形状——算子集越窄越不容易挖出「数学上成立、经济上荒谬」的因子;
  • 适应度的多重惩罚:fitness = IC均值 − λ1×|IC波动| − λ2×表达式复杂度 − λ3×与现有因子库的相关性——复杂度惩罚(parsimony pressure)是对抗 GP 过拟合的生命线(无惩罚时表达式会进化成天文复杂度的噪声拟合器);
  • 淘汰诚实度:GP 挖出的因子 99% 是过拟合品——入库标准与人工因子完全一致(完整检验 + 经济学解释 + 样本外确认,见Alpha 研究流程 ),自动挖掘不降低入库门槛。

GP 的现实定位:它是「候选因子的生成器」——把研究员从「想表达式」中解放,但把「审表达式」的工作量等量齐来(甚至更多)。产出的可用率低(<1%)但边际成本低,作为因子流水线的一环有其价值。

技术三:神经架构搜索与表征学习因子

NAS(自动搜索网络结构)在金融的应用受限于算力与样本(三重诅咒,见ML 定位 ),更务实的自动化路线是表征学习的因子化:自编码器/对比学习学出的隐含表征,逐维检验其截面预测力——「数据驱动的因子发现」(与非监督学习 的降维一脉)。产出同样是「候选池」,入库门槛不豁免。

终极问题:挖掘的通货膨胀

自动化改变的最重要的量不是效率,而是尝试次数的分布:

1
2
人工研究:一年 50 次尝试,研究员的直觉是天然过滤器
自动挖掘:一周 50000 次尝试,过滤只剩统计标准

若 alpha 在市场中的总供给大致恒定,尝试次数暴增的结果必然是:每个「显著」发现的含金量下降(多重检验的数学必然,见统计推断 );挖出的因子衰减更快(同质化的自动化挖掘让拥挤加速);以及解释的通胀(为机器挖出的因子编故事的速度跟不上)。

对策不是放弃自动化,而是把「预算制」引入挖掘:

  1. 算力预算与记账:每次自动搜索登记(搜索空间、试验数、种子、算力)——与 git 记录代码同构,让「我们试过多少」可审计(见Alpha 研究流程 的纪律 2);
  2. 显著性阈值的自动化校正:入库门槛随试验次数自动上调(Bonferroni/FDR 的机械化)——让统计纪律不依赖人的自觉;
  3. 经济先验的自动化表达:把「算子集」「参数空间」「复杂度惩罚」作为先验的载体——领域知识的编码位置从「挑结果」前移到「框空间」,这是自动化时代研究员的核心工作位移;
  4. 保留区的绝对权威:一切自动挖掘的产物,最终在封存样本上一次性裁决(见Walk-Forward )——机器可以挖一万次,市场只给一次开箱机会。

关联阅读:HPO 的技术细节与贝叶斯思维概率论基础 ;GP 产出的检验因子检验 ;挖掘纪律的模板研究 checklist 。