因子挖掘是量化交易中最核心也最耗时的环节。传统手工挖因子依赖研究员的人肉经验和灵感,效率天花板极低。随着算力成本持续下降,自动化因子挖掘已经从”锦上添花”变成了”兵家必争之地”。本文将深入对比遗传规划与深度学习两条技术路线,探讨各自的优势边界与未来演进方向。
因子挖掘的本质:一个搜索问题#
在讨论具体方法之前,需要先澄清一个基本认知:因子挖掘本质上是一个大规模搜索问题。
传统量化研究员的挖因子流程大概是:读论文→获取灵感→写代码实现→回测验证→(大概率失败)→调整参数→再试。这个流程的人类瓶颈极其明显——一个研究员一年能认真测试的因子数量可能不超过100个。
而自动化因子挖掘的目标是将这个搜索过程规模化:用算法替代人类的”假设生成”和”初步筛选”环节,让人类研究员专注于更高级别的策略设计和风险判断。
这个搜索空间有多大?以常见因子库为例:基础运算符20个(加减乘除、log、rank、delay等),基础数据项50个(价格、成交量、财务指标等),组合深度3层。有效组合数就已经是天文数字——远超人力的覆盖范围。
遗传规划路线:自然选择的启示#
遗传规划(Genetic Programming, GP)是自动化因子挖掘的开山鼻祖,WorldQuant的成名很大程度上就归功于这套方法论。
工作原理#
GP将因子表达式编码为树形结构(语法树),每个叶子节点是原始数据项,中间节点是运算符。然后模拟自然选择过程:
- 初始化:随机生成一个因子种群(通常1000-10000个表达式)
- 评估:对每个因子计算适应度(如IC均值、夏普比率、回撤控制等复合指标)
- 选择:按适应度概率选出”优秀”因子进入下一代
- 交叉:两个因子表达式随机交换子树
- 变异:随机替换子树或参数
- 迭代:重复2-5步,运行50-200代
核心优势#
GP最大的优点是解释性强。产出的因子是显式的数学表达式——你可以精确知道它是如何计算的,这符合金融行业对透明性的要求。一个表达式如(close/ma(close,20)-1)/std(return,60)的因子,研究员可以直观理解其经济学含义。
其次,GP天然具备组合创新能力。交叉操作可以把两个有效因子的”优秀基因”组合起来,产生新的有效因子。这种能力在手工挖因子中几乎无法实现。
还有一个常被忽略的优势:GP的探索广度优于大多数深度学习方法。因为种群多样性维护得好,GP不太容易陷入局部最优。
主要弱点#
GP最大的问题是计算成本极高。每代评估1000个因子,每个因子回测10年日线数据,跑100代——这在合理的时间内需要相当规模的算力集群。即使做了大量优化(增量评估、早停、缓存中间结果),单个GP实验跑几天是常事。
另一个隐忧是过度拟合的隐蔽性。GP经过上百代筛选出的”最优”因子,其优异回测表现有多大成分是过拟合?由于GP的搜索空间太大,总会有一个表达式在回测中表现极好,即使它在样本外毫无预测能力。区分”真正有效的模式”和”巧合匹配”是GP应用中的核心难题。
深度学习路线:表征学习的范式#
深度学习在因子挖掘中的应用是近5年兴起的新范式。与传统GP直接搜索表达式不同,深度学习走的是”表征学习”路线。
工作原理#
深度学习的核心思路是:不直接告诉你因子怎么算,而是让神经网络从原始数据中自动学习出有用的中间表征。
典型架构包括:
自编码器因子提取:用自编码器压缩高维输入(如数百只股票的日频数据),将压缩后的隐变量作为因子。这种方法的优势在于,自编码器天然倾向于保留数据中最”重要”的变异方向,而这往往恰好是定价因子所在的方向。
注意力机制时序建模:用Transformer处理时序数据,Attention权重可以揭示哪些时间点和哪些特征对预测最有效。2023年后,大量研究尝试将预训练的时序Transformer微调到具体的量化预测任务上,效果普遍优于传统的LSTM架构。
对比学习预训练:借鉴SimCLR的思路,将同一资产不同时间窗口的数据视为”正样本对”,不同资产的数据视为”负样本对”,通过对比学习预训练一个”通用金融表征器”。然后在具体预测任务上微调,在样本量不足时效果尤其突出。
核心优势#
深度学习的最大优势是表征能力的上限远高于手工设计。人脑只能处理少数维度之间的关系,而神经网络可以在数百维空间中发现高度非线性的交互效应。这种能力在小市值、高波动的市场环境中尤为宝贵——这些市场中传统线性因子往往失效,而深度模型可以捕捉更精细的信号。
其次,深度模型更适合高维输入场景。当输入是1000只股票的日内tick数据时,GP基本无能为力,而神经网络可以通过注意力机制和层次化结构高效处理。
还有一个优势:深度模型可以端到端优化。传统GP挖出来的因子,在组合和权重分配上还需要额外处理。深度学习可以直接以最终投资组合的收益为目标来训练,减少了信息损失。
主要弱点#
深度学习的”黑箱”问题在金融领域被放大。当你向PM(投资组合经理)解释一个因子时说”这是一个3层Transformer输出的注意力权重”,PM的反应通常不会很好。金融行业对”可以解释的Alpha”有天然的偏好。
过拟合问题同样严峻,而且比GP更难检测。神经网络有数百万参数,在金融数据这种信噪比极低的数据上训练,过拟合几乎是必然。需要极其严格的样本外测试设计:滚动训练、Purged K-Fold、时间序列交叉验证等。
实战对比:不只是学术问题#
在实际量化交易系统中,两条路线的表现差异值得深入分析:
IC(信息系数)表现:在A股中证500成分股的月度预测任务上,深度学习模型(如GRU+Attention架构)的IC均值约为0.045-0.055,而GP产出的因子组合的IC均值约为0.035-0.045。深度学习略占优势,但差距并不是压倒性的。
IC衰减速度:这是GP的一大痛点。GP产出的因子IC衰减通常更快——一个在训练区间IC=0.06的GP因子,滚动到新的12个月后IC可能降到0.02。深度学习模型虽然也会衰减,但速度相对温和,这可能因为深度模型学到的是一种”适应性表征”而非固定的数值关系。
极端行情表现:在2024年初的市场极端波动中,两种方法的因子都出现了大幅失效。但深度模型的失效模式更”平滑”——IC逐渐下降,而GP因子可能出现突然的符号反转(预测方向直接从正变负)。这种突然的反转在实际交易中更致命,因为没有给风控足够的反应时间。
计算成本:一条深度模型的训练和推理时间通常远小于一个完整的GP搜索。但深度模型需要持续的重训练(至少每周更新),而GP挖出的因子表达式可以”固化”使用较长时间。从TCO(总拥有成本)角度看,两者的差距不大。
融合路线:GP筛选 + DL精炼#
业内人士越来越形成共识:遗传规划和深度学习不是互斥关系,而是互补的。
一个有效的融合方案是:
- GP粗筛:用GP在大范围搜索空间中快速扫描,产出候选因子池。这一步可以利用GP的探索广度和表达式可解释性。
- DL精炼:用深度模型(通常是带有注意力机制的时序模型)在GP产出候选因子池的基础上,学习因子的非线性组合和动态权重。这一步利用DL的表征学习能力。
- 融合输出:将精炼后的信号与传统风控因子结合,产生最终的投资组合权重。
这种架构已经在几家头部量化私募的实际生产系统中运行。某家上海量化私募的公开分享显示:采用GP+DL双引擎架构后,策略的样本外夏普比率提升了约0.3-0.5,最大回撤降低了约15%。
未来的挑战#
自动化因子挖掘的下一个前沿,可能是将LLM引入因子搜索过程。传统GP的搜索空间限制在预定义的运算符和数据项上,而LLM有可能突破这个限制——它可以理解并生成新的运算符类型,比如”计算成交量的结构断点”、“识别趋势加速的K线形态”等描述性因子。
但这又回到了上一篇文章讨论的幻觉问题。LLM生成的因子需要经过严格的统计验证才能进入实盘,而验证的成本可能比因子生成本身更高。这是”auto-alpha”之路上的下一个待解难题。
无论选择哪条路线,自动化因子挖掘的本质都没有变:它是人类研究员能力的杠杆,不是替代品。最好的自动化系统是由深刻理解市场的量化研究员设计、由持续迭代的工程系统支撑、由严谨的风控框架约束的系统。机器帮你挖出石头,但辨认哪块是玉、哪块是普通石头的,仍然是那个在深夜盯着屏幕、在Excel和Python之间来回切换的量化研究员。

