来源:市场资讯
(来源:量化智投)
一、GFlowNet(生成流网络)原理介绍
1.1 为什么需要GFlowNet?
1.2 AlphaSAGE: GFlowNet结合RGCN与多维度奖励用于因子挖掘
1.3 什么是GFlowNet(Generative Flow Networks,生成流网络)?
二、基于日频数据的因子挖掘与RL比较
2.1 训练目标与过程
2.2 状态表示、表达式与算子设计
2.3 特征、奖励设计与其它设定
2.4 与PPO强化学习的对比:低相关性优势显著
2.5 日频数据GFlowNet因子挖掘效果
三、基于分钟频数据的因子挖掘
3.1 分钟频数据GFlowNet因子挖掘效果
3.2 GFlowNet挖掘因子等权合成效果
四、对现有AI模型的提升与指增策略
总结
■ 投资逻辑
GFlowNet(生成流网络)原理介绍
因子挖掘一般指从行情、财务、另类数据里构造能解释或预测收益的特征(因子),再经检验、组合与风控后用于选股或择时;自动化因子挖掘则是在人工提出假设与写公式之外,用程序在大规模搜索空间里系统生成、变异、筛选因子,并与回测、稳健性检验流水线结合,减轻“拍脑袋”与重复劳动。
GFlowNet 是由 Yoshua Bengio 团队于 2023 年提出的新型生成模型,其核心是将对象生成过程建模为有向无环图中的“水流”过程,训练目标满足流量守恒定律,最终实现生成对象的概率与其奖励成正比。不同于遗传规划、强化学习等自动化因子挖掘的代表方法,它以“生成一群优秀的多元化公式”为核心目标,通过结构化学习实现“有策略的高效探索”,展现出优良的性质。
基于日频数据的因子挖掘与RL比较
我们基于日频量价数据,构建GFlowNet因子挖掘系统,训练采用更稳定的Trajectory Balance(TB)目标,通过采样轨迹、计算奖励与TB损失并反向传播更新模型参数完成训练。状态表示包含动作历史序列的Transformer编码及3个手工状态特征,动作空间涵盖算子、窗口、特征三类操作,表达式以ExprNode树结构组织并进行简化以降低重复。
针对日频量价数据,我们给GFlowNet输入两套特征,第一套是原始OHLCV(后复权)数据,第二套是对原始OHLCV进行无量纲相对特征处理后的数据,奖励设定为市值中性化后的abs(IC)。
将其与基于Transformer Actor-Critic结构、PPO算法的强化学习(RL)系统对比,发现RL虽训练初期batch平均奖励上升更快,但存在明显模式崩溃,batch内因子相关性中位数升至1,而GFlowNet batch内相关性中位数不到0.04,多样性优势显著。
以2018-2025年为因子检验区间,观察基于原始OHLCV挖掘单因子表现,其整体表现良好,IC均值的中位数达到4.54%,最大值达到8.56%,多头超额表现尚可,中位数为3.47%;基于相对特征挖掘的因子表现更优,IC均值中位数达6.17%,最大值也达到了9.40%,两类因子相关性均较低、复杂度可控,具备良好可解释性与应用价值。
基于分钟频数据的因子挖掘
对于分钟数据挖掘因子,我们采取简易处理方法:首先主要基于价格动量、波动、价位关系等40个指标,将日内分钟数据降为日频特征;后续复用日频挖掘框架,基于该40个特征进行搜索。
基于分钟频构造特征挖掘的单因子表现优异,IC 均值中位数达 5.83%,最大值 9.46%,多头超额收益中位数为 7.43%,较日频挖掘因子显著提升,因子相关性与复杂度均维持在较低水平。
将挖掘出的因子按照因子方向等权合成,基于相对特征挖掘出的因子收益情况比较一般,基于分钟频数据构造特征挖掘的因子IC和多空收益较好。风险暴露方面,单因子为对市值进行中性化后的因子值,合成之后,小市值和低波风格暴露依旧比较明显,基于相对特征挖掘的因子小市值暴露较低。多头暴露方面,中小市值的多头暴露比较明显,同时等权合成因子具有明显的价值风格暴露。
对现有AI模型的提升与指增策略
在前期工作《基于Mamba2模型的端到端选股框架》中,我们引入了新的Mamba模型进行深度学习建模,本报告在GRU和Mamba的基础上,添加GFlowNet挖掘出的150个因子,可以发现几乎所有指标都有一定的提升。
1、以上结果通过历史数据统计、建模和测算完成,在政策、市场环境发生变化时模型存在时效的风险;
2、策略通过一定的假设通过历史数据回测得到,当交易成本提高或其他条件改变时,可能导致策略收益下降甚至出现亏损。
一、GFlowNet(生成流网络)原理介绍
因子挖掘(Factor Mining)一般指从行情、财务、另类数据里构造能解释或预测收益的特征(因子),再经检验、组合与风控后用于选股或择时;自动化因子挖掘则是在人工提出假设与写公式之外,用程序在大规模搜索空间里系统生成、变异、筛选因子,并与回测、稳健性检验流水线结合,减轻“拍脑袋”与重复劳动。作为自动化因子挖掘的代表方法,遗传规划把因子表达式当作可进化的“程序树”,通过选择、交叉、变异在函数集与变量集上迭代,使适应度(如夏普、IC)较优的公式存活下来,适合探索非线性与复合结构。强化学习则把“造因子或调参”建模为序贯决策:智能体根据状态(如当前因子池、市场片段)采取动作(改公式、换参数、增删特征),环境用回测或代理目标给出奖励,从而在长期优化下学到策略或因子生成策略。
1.1 为什么需要GFlowNet?
GFlowNet(Generative Flow Network,生成流网络)是最新提出的一种生成模型,其原理本文将在后续小节详细介绍,本节主要介绍它的特性,以及为什么天然适合于因子挖掘。
在目标导向上,不同于强化学习(RL)聚焦单一最优解的探索,它以“生成一群优秀的多元化公式”为核心目标,核心任务是生成组合型对象(例如分子结构、图、代码等),并使得生成某个对象的概率与其对应的奖励(Reward)成正比。这极其契合多因子选股模型需要低相关性、高多样性 Alpha 池子的根本诉求。
在搜索效率上,相比遗传规划(GP)“盲目的演化搜索”模式,GFlowNet通过结构化学习实现“有策略的高效探索”,大幅降低了庞大搜索空间中的无效消耗,提升了规律挖掘的精准度与效率。
1.2 AlphaSAGE: GFlowNet结合RGCN与多维度奖励用于因子挖掘
AlphaSAGE(全称:Structure-Aware Alpha Mining via Generative Flow Networks for Robust Exploration)是计算机顶会ICLR2026 Poster最新收录的前沿工作,由北京大学和正仁量化联合完成。GFlowNet是AlphaSAGE的底层生成逻辑,在其基础上,加入了关系图卷积网络 (Relational Graph Convolutional Network, RGCN)捕捉因子结构信息,并且设计了一个密集且多维度的奖励函数,不再仅仅依赖于最终的预测表现。
本报告将专注于GFlowNet原理,对GFlowNet模型本身进行改进,探究其基于日频和分钟频量价数据对A股因子挖掘效果。
1.3 什么是GFlowNet(Generative Flow Networks,生成流网络)?
GFlowNet 是由深度学习先驱,图灵奖与诺奖得主 Yoshua Bengio 团队于2023年在计算机顶刊JMLR上发表的新型生成模型。它的核心思想是将对象的生成过程建模为图网络中的“水流”(Flow)过程。
GFlowNet 将生成对象的步骤映射到一个有向无环图(DAG)中:
· 状态(State, s):代表生成过程中的中间状态(例如:当前搭建了一半的分子)。
· 动作(Action):图中的有向边。从状态 s 转移到状态 s' 表示执行了一个动作(例如:给分子添加一个碳原子)。
· 源点(Source, s_0):所有生成的起点(例如:空图或空序列)。
· 汇点(Sinks/Terminal states, x):最终生成的完整对象。在这里会计算对象的奖励 R(x)。
· 流(Flow, F):可以将其想象为管道中的水流。F(s) 表示流经状态 s 的总水量,F(s→s')表示沿着边流动的量。
与传统强化学习为了找到单一的最优解(最大化预期回报)不同,GFlowNet 的目标是进行多样化采样。它的核心任务是生成组合型对象(例如分子结构、图、代码等),并使得生成某个特定对象 x 的概率与其对应的奖励(Reward)成正比。
数学原理:流匹配(Flow Matching)。GFlowNet 的训练目标是让网络中的流量分布满足守恒定律(类似基尔霍夫电流定律)。如果要保证最终到达终止状态x的流量等于它的奖励 R(x),网络中的每一个中间节点都必须满足流匹配条件(Flow Matching Condition):
对于任意中间状态 ,流入它的总流量必须等于流出它的总流量:
对于终止状态x(汇点),流入它的总流量等于环境赋予它的奖励:
如果整个图的流量严格满足上述等式,那么从源点s0出发的总流量(即配分函数 )就等于所有终止状态奖励的总和:
策略提取。一旦我们通过神经网络学习到了每一条边上的流(或者类似的能量函数),我们就可以定义一个前向生成策略(Forward Policy) 。
在状态s 下,选择动作前往s' 的概率就是分配到那条边上的流量占流出总流量的比例:
按照这个概率策略一步步从源点走到终止状态,最终生成状态x的概率P(x)就会被数学证明严格等于R(x)/Z。
训练方法。由于真实环境中的状态空间呈指数级爆炸,我们无法精确计算所有的流。因此,GFlowNet 会使用神经网络来参数化流 F 或策略 P_F,并通过设定损失函数(Loss Function)来进行训练。常见的训练目标包括:
· Flow Matching (FM) Objective:直接使得流入和流出的差值的平方最小化。为了计算这个 Loss,你必须在训练的每一步都找出 s 的所有父节点和子节点,并对它们的流进行求和。这在复杂的图结构中计算量巨大,甚至在某些动态空间中是不可行的。
· Detailed Balance (DB) Objective:通过引入后向策略(Backward Policy),将流匹配条件转化为针对单条边的更严格但更容易局部优化的平衡条件。
· Trajectory Balance (TB) Objective:这是目前最常用且最稳定的损失函数。它不关注单个节点,而是关注一条完整轨迹。它要求整条从源点到终点的路径的前向概率乘积、总流 Z 与该路径的后向概率乘积、最终奖励 R(x) 之间保持平衡。
二、基于日频数据的因子挖掘与RL比较
2.1 训练目标与过程
结合实际与经过实验比较,我们在训练中不直接优化流守恒,而是用更稳定的Trajectory Balance (TB)目标:
其中,Z是一个可学习的标量参数,代表总流量(即所有可能状态奖励之和的估计值);PF是前向策略,代表在状态 _ 选择动作的概率(需要学习的神经网络);PB是后向策略,代表反向拆解的概率(可学习或固定均匀);R(x)是终止状态的奖励。
具体训练过程如下:
· 用当前前向策略 采样一条轨迹 _0→_1→⋯→
· 计算 ()(评估因子reward指标)
· 计算 TB loss,反向传播更新 _ 和
· 重复
2.2 状态表示、表达式与算子设计
在状态表示与动作空间的设计上,状态表示由两部分构成,一是动作历史序列,对由operator/window/feature构成的表达式进行Transformer encoding处理;二是3个手工状态特征,分别为当前深度、已用算子比例、已用节点比例。
动作空间定义为扁平离散空间,具体包含三类可选操作:1)operator为选算子,共设置51个,涵盖一元、时序一元、二元、时序二元以及截面算子;2)window为给时序算子选窗口,共设置5个可选窗口;3)feature为选叶子特征,数量根据具体设计灵活变化,动作空间总大小为三类操作数量之和。
同时,在每一步仅允许执行“语法合法+不超复杂度上限”的动作,其中初始步强制选择op,不允许纯特征根;若当前节点等待窗口,则只能选择window;其他情况下可选择feature,且在不超限时可继续选择op。
表达式以ExprNode树结构进行组织,同时构建交换律排序、双重neg折叠等简化方法,使得等价表达式更容易归一为同一字符串,有效降低缓存重复。
2.3 特征、奖励设计与其它设定
针对日频量价数据,我们给GFlowNet输入两套特征,第一套是原始OHLCV(后复权)数据,第二套是对原始OHLCV进行无量纲相对特征处理后的数据,以此降低价格交易量水平与拆分复权尺度差异带来的干扰。
奖励设计方面,我们观察到一个现象,如果直接根据原始因子的abs(IC)或者多头收益作为模型训练的reward,会造成最终筛选出的因子过分暴露在小市值风格上,从而导致对现有因子体系提升不大。因此,我们将因子的reward设定为市值中性化后的abs(IC)。
在数据集划分上,训练集为2005年1月1日至2017年12月31日,测试集即模型样本外数据为2018年1月1日至2025年12月31日,因子评估调仓周期为10日,评估范围为全A市场,最终基于测试集进行因子筛选时,我们会限定入选因子与已入选因子spearman相关性低于0.4。
2.4 与PPO强化学习的对比:低相关性优势显著
为了充分说明GFlowNet的优越性,我们也基于几乎相同的环境、状态空间与网络架构,实现了一个强化学习因子挖掘系统。该模型的网络架构为基于Transformer的Actor-Critic结构,其中Actor头即策略网络是一个多层感知机(MLP),用于输出下一步选择各个动作(算子、特征、窗口)的概率分布(Logits);Critic头即价值网络是一个平行的MLP,输出一个标量值,用于预测“按照当前已经构建的公式骨架,最终能得到多高的Alpha收益”。
模型的核心算法为PPO(Proximal Policy Optimization),其中价值损失(Value Loss)使用均方误差(MSE)来衡量Critic预测的状态价值V(s)与实际回报(Returns)之间的差距,有助于Critic更准确地评估当前公式的潜力;熵奖励(Entropy Bonus)通过引入策略的熵作为奖励项,鼓励模型在早期探索不同的数学符号和特征,防止过早收敛到次优的公式上。
从训练过程的对比来看,强化学习的batch平均reward上升更快,GFlowNet则呈现缓慢波动上升的态势,从表面上看似乎RL更具优势;在损失函数方面,强化学习呈现上升趋势,主要是因为熵项与轨迹长度的上升导致,并非训练出现问题。
从batch内因子相关性角度出发,强化学习出现了非常明显的问题,因子对之间spearman相关性的中位数急速上升为1,也就是说最后生成的因子有一大半都是完全相同的,模型失去实用价值;反观GFlowNet,batch内相关性水平一直保持稳定,没有明显的上升趋势,中位数仅不到0.04,多样性优势显著。
针对熵奖励为何不能使RL找到多样性的解这一问题,我们进一步分析,熵奖励(Entropy Bonus)通过引入策略的熵作为奖励项,鼓励模型在早期探索不同的数学符号和特征,防止过早收敛到次优的公式上,类似的Epsilon-greedy同样也是引入了探索机制。
但对于RL来说,探索机制的引入只是为了防止模型塌缩在局部最优解,只是一个训练的手段,它的核心目标还是要找到最好的那个因子,模型一旦开始收敛,就会塌缩在一个核心解;而GFlowNet的目标本身就是要学会整个好解的分布,多样性就是它的目标,收敛后策略仍然会保持多样性。
2.5 日频数据GFlowNet因子挖掘效果
以2018-2025年为因子检验区间,观察基于原始OHLCV挖掘单因子表现,其整体表现良好,IC均值的中位数达到4.54%,最大值达到8.56%,多头超额表现尚可,中位数为3.47%。
对因子之间相关性的绝对值进行统计,发现相关性不高,截面和时序的均值均在20%以下,后续进行因子合成,增益会比较明显。
因子长度与复杂度控制在较小水平,平均长度为7.22,较长的因子占比不高,因此相对是具有一定可解释意义的。
基于相对特征挖掘的单因子表现相对原始特征更好,IC均值的中位数达到6.17%,最大值也达到了9.40%,多头超额表现也更好,中位数为4.75%,因子相关性和复杂度受同样的规则约束,因此也都保持在较低的水平。
三、基于分钟频数据的因子挖掘
3.1 分钟频数据GFlowNet因子挖掘效果
对于分钟数据挖掘因子,本报告采取简易处理方法:首先主要基于价格动量、波动、价位关系等40个指标,将日内分钟数据降为日频特征,;后续复用日频挖掘框架,基于该40个特征进行搜索。
基于分钟频构造特征挖掘的单因子表现较好,IC均值的中位数达到5.83%,最大值达到9.46%。多头超额表现相较日频挖掘因子有明显提升,中位数为7.43%。因子相关性和复杂度受同样的规则约束,因此也都保持在较低的水平。
3.2 GFlowNet挖掘因子等权合成效果
将挖掘出的因子按照因子方向等权合成,基于相对特征挖掘出的因子收益情况比较一般,基于分钟频数据构造特征挖掘的因子IC和多空收益较好。
在风险暴露方面,单因子为对市值进行中性化后的因子值,合成之后,小市值和低波风格暴露依旧比较明显,基于相对特征挖掘的因子小市值暴露较低。
从多头暴露来看,中小市值的多头暴露比较明显,同时等权合成因子具有明显的价值风格暴露。
四、对现有AI模型的提升与指增策略
在前期工作《基于Mamba2模型的端到端选股框架》中,我们引入了新的Mamba模型进行深度学习建模,本报告在GRU和Mamba的基础上,添加GFlowNet挖掘出的150个因子,可以发现几乎所有指标都有一定的提升。
总结
本报告系统验证了GFlowNet在自动化因子挖掘中的有效性与实用性。相比传统遗传规划和强化学习方法,GFlowNet以流量守恒为训练目标,能够在搜索空间中生成与奖励成正比的多样化因子集合。实验表明,基于PPO的强化学习虽然训练初期收敛较快,但很快出现模式崩溃,batch内因子相关性中位数升至1;而GFlowNet生成的因子相关性中位数低于0.04,多样性优势显著。在日频量价数据上,基于原始OHLCV挖掘的单因子IC均值中位数为4.54%,基于相对特征处理后的因子IC均值中位数提升至6.17%,且多头超额收益稳定。进一步将分钟数据降维为40个日内特征后,挖掘出的因子IC均值中位数达5.83%,多头超额收益中位数达7.43%,较日频因子显著改善。合成因子呈现合理的中小市值与价值风格暴露,并成功融入既有Mamba2与GRU选股框架,各项评价指标均获得一致提升。综上,GFlowNet为量化因子挖掘提供了一种高效、稳健且可解释的自动化解决方案。
1、以上结果通过历史数据统计、建模和测算完成,在政策、市场环境发生变化时模型存在时效的风险。
2、策略通过一定的假设通过历史数据回测得到,当交易成本提高或其他条件改变时,可能导致策略收益下降甚至出现亏损。
报告信息
证券研究报告:《Alpha掘金系列之二十二:基于GFlowNet生成流网络的低相关性量价因子挖掘策略》
对外发布时间:2025年4月10日
报告发布机构:国金证券股份有限公司
证券分析师:高智威
SAC执业编号:S1130522110003
邮箱:gaozhiw@gjzq.com.cn
热门跟贴