2025年基于可微RankIC损失函数的深度学习选股策略——机器学习选股系列研究之一

  • 来源:方正证券
  • 发布时间:2025/12/13
  • 浏览次数:195
  • 举报
相关深度报告REPORTS

基于可微RankIC损失函数的深度学习选股策略——机器学习选股系列研究之一.pdf

基于可微RankIC损失函数的深度学习选股策略——机器学习选股系列研究之一。深度学习是机器学习的一个分支,它通过模拟人脑神经网络的复杂结构,让机器能从海量数据中自动学习和提取高层次的规律特征。金融时间序列,尤其是股票市场数据,以其高噪声、非平稳、非线性的复杂特性而著称,这恰好对传统量化模型的预测能力构成了严峻挑战。深度学习凭借深层神经网络对高噪声、非平稳、非线性金融时序数据的强大拟合能力,实现了从海量原始数据中进行端到端的特征提取与模式识别,为超越传统策略的绩效边界提供了可能。传统量化将RankIC作为因子的主要评价指标。在量化选股中,最终的决策是横截面上的排序,而非对...

1 模型训练的理论基础与技术基础

近年来,以深度学习为代表的人工智能技术正以前所未有的力量推动着各个领 域的范式变革。作为机器学习的一个重要分支,深度学习通过构建具有多个隐 藏层的神经网络模型,模拟人脑的层次化认知机制,从而具备了对海量原始数 据进行端到端特征学习的卓越能力。与依赖人工特征工程的传统机器学习方法 不同,深度学习能够自动从数据中挖掘出从低级到高级的复杂、非线性规律, 在计算机视觉、自然语言处理等领域取得了里程碑式的成就。 金融时间序列数据,尤其是股票市场数据,以其高噪声、非平稳、非线性的复 杂特性而著称,这恰好对传统量化模型的预测能力构成了严峻挑战。而深度学 习的强大表征学习与动态模式捕捉能力,为解决这一难题提供了崭新的视角和 有力的工具。诸如循环神经网络(RNN/LSTM/GRU) 对时序依赖关系的有效建 模、卷积神经网络(CNN) 对局部形态特征的敏锐提取,以及 Transformer 架 构对长程全局关联的精准捕捉,都使得直接从历史价格、行情快照乃至宏观新 闻、社交媒体舆情等多模态数据中,预测股票价格的未来走势成为可能。 传统的深度学习选股模型通常将预测问题构建为回归(如预测收益率)或分类 (如预测涨跌方向)任务,并相应地采用均方误差(MSE)或交叉熵损失函数作 为模型的优化目标。在这一范式下,模型的训练过程依赖于一个关键的超参数 ——batch_size,即以固定的样本数量随机切割训练数据,形成一个 minibatch 进行梯度下降。

然而,这种以固定 batch_size 和 MSE 损失为核心的经典训练组合,在面向以 “排序”为核心的选股任务时,暴露出了较为明显的局限性。在投资实践中, 投资的最终收益往往不依赖于对股票绝对值的精准预测,而更依赖于股票间的 相对排名顺序。一个理想的选股模型,其预测得分应与股票的未来表现(如收 益率)具有较高的秩相关性,即拥有较高的 Spearman 相关系数。尽管 MSE 损失 能够优化预测值的绝对误差,但它与最终的排序指标之间存在显著的“目标不 一致性”——对于一个 MSE 更小的预测,其秩相关性未必更高。 这一“目标不一致”问题,自然催生了一个更为直接的思路:能否将 Spearman 相关系数本身作为损失函数,来引导模型直接学习正确的股票排序?尽管这一 想法直观且诱人,但其实现面临着两大核心困难:其一是排序的不可微性, Spearman 相关系数的计算核心在于排序操作,而排序函数本身是一个离散、非 平滑的运算,其梯度几乎处处为零或不存在,无法直接嵌入基于梯度下降的深 度学习框架中进行端到端训练;其二是批量数据的无关性,以固定 batch_size 随机采样构成的 mini-batch,其内部包含的股票可能来自不同的交易日、不同 的市场环境,在这种混杂的背景下计算出的单个 mini-batch 的排名,与我们在 每个同一交易截面内所关心的股票截面排名在金融逻辑上是不完全匹配的。 为实现以 Rank IC 为损失函数的深度学习训练,我们采用了两种可微排序技术 去近似逼近计算排序过程,从而将 Spearman 相关系数这一非平滑的排序指标转 化为一个可微的损失函数。同时,我们采用了按交易日切割的 mini-batch 策 略,确保了每个批次内进行排序的股票处于同一时间截面,更加符合金融逻 辑。

本章旨在介绍后续训练需要用到的关键组件,包括从代码的角度介绍 TensorFlow 的训练逻辑、Mini-Batch 的思想及其意义、如何借助 tfrecord 处 理股票训练数据、以交易日切割股票数据集的意义、以及 reshuffle 技术。

1.1 训练循环逻辑

TensorFlow 是一个由 Google Brain 团队开发并维护的、开源的端到端机器学 习平台。它的名字源于其核心操作——“张量(Tensor)”在多维数据流图 (Flow)中的流动与计算。它提供了一个全面、灵活的工具生态系统,从底层 的数学运算到高级的模型构建,支持从研究原型到生产部署的整个机器学习工 作流。Keras 最初是一个独立的高级神经网络 API,2019 年随着 TensorFlow2.0 的发布,被直接集成到 TensorFlow 中,成为其官方的高阶 API,用于构建和训 练模型。 Keras 作为一个高级、用户友好的接口,它封装了底层的复杂操作, 让用户能够用更简洁、更直观的代码来快速构建和实验模型。

TensorFlow 为自动微分提供了 tf.GradientTape API,即计算某模型网络相对 于某输入项的梯度。TensorFlow 会将在 tf.GradientTape 上下文内执行的相关 运算记录到“条带(Tape)”上。TensorFlow 随后会使用该条带通过反向模式 计算记录的模型网络的梯度,并通过优化器 optimizer 进行模型的权重更新, 以此实现反向传播。 如果需要自定义训练算法,又想使用 fit 函数的便捷功能(例如回调、内置分 布支持或步骤融合),可重写上述单步训练函数 train_step。在主训练函数 fit 中,会针对每批次数据调用该函数。

1) 在上述训练函数中,我们创建了两个嵌套循环,一个用于轮次,一个用于 轮次内的批数据处理。 2) 在每个轮次开始之前,对 loss 计算器和 metric 计算器作初始化。 3) 从训练集中抽取一个批数据后,在 tf.GradientTape 代码块中对该数据进 行预测并计算损失。 4) 通过 tape 针对每个可训练变量计算针对损失的梯度,然后用优化器来执行 梯度下降步骤,并更新模型权重以及 loss 和 metric 计算器数据。

1.2 小批量梯度下降

在深度学习中,Batch(批次) 指的是在模型训练的一次迭代中,同时用于计 算梯度并更新模型权重的一组样本(又称 mini-batch)。在 TensorFLow 框架 中,tape 往往会记录一个 mini-batch 内的运算,并生成对应的一组梯度,其可 被视为全数据集真实梯度的一个带噪声的无偏估计。尽管单个 mini-batch 梯度 是嘈杂的,但从长期看,它的平均方向与真实梯度完全一致,这保证了小批量 梯度下降的收敛性,并且,其固有的噪声更在优化过程中起到了积极的正则化 作用,有助于提升模型的泛化能力(Bottou,1991)。 Batch 是深度学习训练中协调效率(速度、内存)与效果(稳定性、泛化能 力)的核心机制,Batch 存在的目的就是为了让算法可以又快又准,或者说是追 求速度与避免局部最优值之间的一个权衡。Batch Size 指的是每个 mini-batch 内的样本数量。选择合适的 Batch Size 是一项艺术,它需要在多个方面进行权 衡,Batch Size 的大小可能对模型的性能和训练时间产生重大影响。

大 Batch 带来更高的计算效率,更稳定的计算过程,但是泛化能力不足,硬件 要求高。使用大批量的情形下,算法每秒会看到更多的实例,GPU 能更好地利用 其大规模并行计算能力,理论上计算效率更高。由于梯度是基于大量样本的平 均值,所以方向更准确,收敛路径更平滑。但是,经验表明,使用大 Batch 训 练的模型,其在新数据上的表现(即泛化能力)往往不如小 Batch 训练的模 型。同样是因为算法会看到更多实例,更多的计算过程需要被记录,这导致需 要更多的显存来同时存储这些样本的中间计算结果。反之,使用小 Batch 的情 形下,显存占用小,泛化能力可能更好,但是梯度噪声大,损失曲线震荡剧 烈,需要调整合适的学习率。 Mini-Batch 策略是一个经典的工程学折衷,完美地协调了矛盾的需求。对于 Batch Size=1 的随机梯度下降,虽然其更新极其频繁,初期收敛快,但是缺点 是梯度噪声巨大,优化路径震荡剧烈,难以稳定收敛,且无法利用硬件并行计 算优势。对于 Batch Size 取全体训练集的全梯度下降,虽然其梯度方向最稳 定、最准确,但是缺点是计算缓慢,无法在线学习,且容易陷入尖锐的极小值 (Keskar,2016)。Mini-Batch 策略它选择了一个适中的 Batch Size 大小,使 得一次计算可以处理多个样本,极大地利用了现代 GPU 的并行计算能力,计算 吞吐量远高于逐个样本处理;通过对一个批次的样本求平均梯度,它平滑了单 个样本带来的极端噪声,使得每次更新的方向都比单样本更具代表性,收敛路 径更稳定可控。

1.3 大规模数据集存储格式 TFRecord

为优化大规模数据集下的训练效率,本研究利用 TensorFlow 原生的 TFRecord 数据格式构建数据管道。 TFRecord 是 TensorFlow 的首选数据存储格式,它是一个为高效处理大规模数据 集而设计的二进制文件格式。它将大量零散的数据样本(如图像、文本、数值特征)转换成一个连续的、二进制的数据流,序列化后打包进一个或几个大文 件中,以实现高效、连续的读取。 TFRecord 的提升效率主要体现在 I/O 性能和训练流水线效率上。其核心原理 在于,将每个数据样本(如图像、标签及关联特征)封装并序列化为 tf.train.Example 协议缓冲区消息,最终将整个数据集整合为若干个连续的二 进制大文件。此举在存储层面,通过合并海量小文件,将低效的随机 I/O 转化 为高效的顺序 I/O,极大提升了磁盘读写吞吐量并减少了寻道开销。在读取与 训练层面,TFRecord 与 tf.data API 无缝协作,支持数据的并行解码与流水 线预取,使得繁琐的数据预处理过程得以与 GPU 计算并行执行,有效消除了 I/O 瓶颈,确保了训练过程中计算资源的持续饱和利用。 由于 TFRecord 与 tf.data API 协同工作所带来的数据流水线优化,使用 TFRecord 数据集会导致模型训练过程中的显存占用量显著下降。该方案将数据 解码等预处理操作从 Python 端移至 TensorFlow 计算图内部,消除了系统主内 存中的冗余中间副本,从源头降低了内存压力。这种主机内存的稳定与高效, 进而为 GPU 显存分配器创造了稳定的工作环境,使其无需因 I/O 瓶颈和数据延 迟而保留过多冗余显存。

1.4 以交易日切割股票批数据集的合理性

标准深度学习理论建立在数据独立同分布的假设上。而金融时间序列数据具有 显著的序列相关性、非平稳性和异方差性,严格违反了独立同分布假设。因 此,直接套用独立同分布数据设计的理论是不合理的。但我们希望通过构建以 交易日切割批次的方式,在批次内部尽可能满足独立同分布的假设,从而为深 度学习理论的应用提供一个合理的近似。 跨越长时间段的金融时间序列数据是非平稳的,然而在足够短的时间窗口内 (例如,一个交易日),市场的基本结构和驱动机制是相对稳定的,其可以被近 似地看作一个平稳过程(Dahlhaus,1997)。因此,在一个交易日内产生的横截 面数据,可以近似地被视为来自于同一个数据分布。对于按交易日切割的 MiniBatch,单个 Mini-Batch 内每个样本都是从当天的局部数据分布中独立抽样得 到的,其内部数据可以近似满足独立同分布假设。整个训练过程于是可以理解 为,模型学习一系列短期、局部平稳的数据分布,并期望模型能够捕捉到这些 局部分布中存在的共性规律。 此外,从金融理论视角看,同一交易日内的股票在统一的市场微观结构 (Hasbrouck,2007)和因子暴露体系(Ang,2014)下交易,这为局部独立同分 布假设提供了经济学支撑。通过这种方式,我们将一个全局非平稳的优化问 题,转化为一系列局部平稳的学习任务,使模型能够更稳健地捕捉市场规律。

1.5 数据洗牌 Reshuffle

Reshuffle(重新洗牌) 指的是在数据集的不同训练轮次(Epoch)之间,重新 打乱数据顺序的行为。如果每个训练轮次都使用相同的数据次序,模型会学习 到这种固定的数据出现模式,这不利于真正的泛化,reshuffle 确保了每个训 练轮次的数据顺序都是全新的、随机的,这对于模型收敛和防止过拟合至关重 要。 市场的运行并非简单的重复。如果模型按时间顺序学习,它可能会过度拟合训 练期末尾的特定市场规律。当市场状态发生变化时,模型将表现不佳。 reshuffle 确保了模型在单个 Epoch 内接触到分散在不同时期的、多样化的市 场环境。这种跳跃式的学习迫使模型参数更新必须兼顾各种不同的市场条件, 从而找到一个在所有环境下都相对稳健的平衡点,极大地提升了模型的鲁棒性 和样本外表现。 TensorFlow 将洗牌功能集成于 tf.data.Dataset.shuffle 中。其关键参数为 buffer_size,用于定义洗牌缓冲区的大小。数据集初始化时,会预先顺序加载 buffer_size 条记录到缓冲区,每次从缓冲区中随机抽取一条记录作为输出, 随后从原始数据集中补充一条新记录到缓冲区,保持缓冲区大小不变,重复上 述操作直到遍历完所有数据,形成一个全新的训练次序。 reshuffle_each_iteration 参数控制在不同 epoch 之间是否重新洗牌。

2 构建可微 Rank IC 作为深度学习训练的损失函数

传统因子量化将 Rank IC 作为主要评价指标。在量化选股中,最终的决策是横 截面上的排序,而非对个股收益的精确预测。传统的 MSE 或交叉熵损失是代理 损失,它们优化了一个与最终排序目标并不完全一致的中介目标。直接使用 Rank IC 作为损失函数,遵循了决策一致性原则,使模型的优化方向与我们的投 资目标直接对齐,从而避免了代理损失可能带来的目标偏离。

2.1 构建 Pearson 相关系数的损失函数

在以交易日切割 Mini-batch 的数据集中,构建 Pearson 相关系数作为损失函数 是非常简单的。在某一轮次(Epoch)内的批数据中,其输入项 x 为样本数为当 日有效股票数量的多维张量,代入单神经元输出层的网络模型后,将返回与预 测目标 y_true 相同形状的形如【当日有效股票数量*1】的二维张量 y_pred。

2.2 基于可微排序构建 RankIC 损失函数

在深度学习框架中构建基于排名的损失函数(如 Spearman 相关系数)面临的根 本性挑战源于排名操作本身的不可导性。排名函数本质上是将连续预测值映射 为离散整数序列的阶跃函数。该函数在绝大多数区域内对输入的微小变化不敏 感,只要预测值的相对顺序保持不变,梯度便恒为零;仅在预测值大小关系发 生反转的孤立点上,函数输出产生突变导致导数不存在。这种几乎处处为零梯 度、关键点不可导的特性彻底阻断了反向传播的路径,使得基于梯度的优化算 法无法直接应用于以排名为基础的评价指标。 可微排序是一个连接离散排序操作与连续神经网络的重要桥梁,它允许模型在 反向传播中通过排序操作进行梯度优化。本章节将介绍基于 Sigmoid 的软排序 (Sigmoid Ranking)与神经排序(Neural Sort)两种可微排序法,作为构建 Rank IC 损失函数的关键组件。

2.2.1 基于 Sigmoid 的软排序

为了解决排序指标不可微的问题,研究者们提出了多种连续松弛方法。其中, Qin 等人(2010)提出了一个基于 sigmoid 的排序逼近框架。他们利用 sigmoid 函数来近似排序操作,从而可以直接对信息检索指标进行基于梯度的优化。文 章指出,全局排序由所有两两比较结果决定,那么通过松弛每一对元素之间的 比较操作,即可松弛整个排序。

2.2.2 神经排序 Neural Sort

尽管 Qin 等人 (2010) 的开创性工作为直接优化信息检索指标提供了可行的路 径,但其方法本质上是通过构造代理函数来近似最终的排序指标。这种“近似 指标”的范式虽然有效,但在计算效率和通用性上仍面临挑战。它通常需要复 杂的 pairwise 计算,并且为不同指标设计特定的松弛策略也非易事。 沿着“使排序可微”这一研究方向,后续工作开始探索更根本、更通用的解决 方案。其中,Grover 等人 (2019) 提出的 Neural Sort 代表了一种范式的转 变。它不再间接地近似排序指标,而是选择直接对排序操作本身进行连续松 弛,从而为实现可微排序提供了一个更为优雅和强大的基础算子。

3 以深度网络进行线性模型的优化

3.1 参数设定情况

(1) 因子选取与预处理:我们的待聚合因子池为方正金工团队前期研究所构 建的特色量价因子,包括“适度冒险”、“完整潮汐”、“勇攀高峰”、“球 队硬币”、“云开雾散”、“飞蛾扑火”、“草木皆兵”、“水中行舟”、“花隐 林间”、“待著而救”、“多空博弈”、“协同效应”、“一视同仁”、“暗流涌 动”、“激流勇进”等因子及其原始因子与构成因子,总共 47 个因子, 对每个因子剔除异常值、上市时间不足一年的数据、剔除 ST/PT/*ST 后,进行截面正态化处理。

(2) 预测目标:20 日收益率。我们将股票 20 日收益率剔除异常值、上市时 间不足一年的数据以及 ST/PT/*ST 后,顺序进行 winsor 化(阈值参数 1%)和截面正态化。

(3) 输入项切割:对于每个有效的预测目标,回溯该时点的股票过去 20 个 交易日的数据,将其上述(1)中的因子拼接成 20*47 的数据图片,并 对 nan 值进行 0 填充。将每个交易日的每对数据(数据图片+预测目 标)储存为一个 mini-batch。

(4) 网络结构的选择:以优化等权组合为目的,基于残差网络的思想,我们 构建了一个专门用于优化既有线性模型的残差网络架构。左侧为一个三层堆叠的 LSTM 时序网络架构,接收整个 20*47 的数 据切片,各层神经元数分别为 30/20/10,最后接一个单神经元全连接层 (Dense)作为输出,激活函数采用 tanh;右侧为一个单神经元全连接 层,激活函数同样采用 tanh,但只接收 15 个最新一期降频因子(即等 权组合的输入项),并根据因子方向赋值初值 1 或-1,用于表示等权组 合的初始权重;最后将上述两个网络块输出值 zscore 处理后进行加权 合成,线性网络权重以 sigmoid(α)表示,时序网络权重以 1-sigmoid(α)表示,其中参数α的初值为 2.2,即初始状态下等权组合贡 献度约为 90%。

(5) 损失函数的选择:基于前文论述的 sigmoid 软排序法,构建 Spearman 相关系数为损失函数,参数?选择 0.1。对于一个正态分布,当? = 0.1时 已经是一个比较好的硬排序的逼近。

(6) 数据洗牌:设定 buffer_size 为 100,在轮迭代前对训练集进行洗牌。

(7) 训练轮次与早停:设置最大训练轮次为 500,且当验证集损失在 10 轮之 内都没有提升时,我们认为此时模型的泛化能力开始下降,提前退出循 环。模型的最终权重由验证集的损失最低点决定。

(8) 训练模式:样本内范围 2018 年至 2021 年,基于 KFold 交叉验证划分训 练集与验证集,将各子模型的结果进行 zscore 处理 后等权合成最终的 alpha。

(9) 优化器与学习率:优化器选择 Adam,学习率选择 0.0001。

(10) MSE 对照组:以 MSE 为损失函数,采取 batch_size=5000 的原生批数据 切分方式,其他参数不变,用于验证损失函数与数据切割模式的改进效 果。

(11) 等权对照组:将(1)中提及的 15 个预处理后的降频因子根据 RankIC 的方向进行等权组合,用于对比经过深度网络训练后的 alpha 相对于等 权组合的提升程度。

关于学习率选择,找到一个合适的学习率非常重要,如果设置的太高,学习率 可能会发散,或是围绕最优解不停震荡,如果设置的太低,训练可能会花费很 长时间,并且模型可能会陷入局部最优解。为选择一个合适的学习率,我们在 训练集中抽取部分样本构建一个测试数据集,以上述三层 LSTM 网络作为模型结 构,以 sigmoid 软排序的 Spearman 相关系数为损失函数(参数?选择 0.1),设 定多个不同数量级的学习率,通过自定义循环观察监控每一个 mini-batch 更新 模型后的总体测试数据集上的平均损失情况(如图表 20 所示),对于单个 minibatch 来说,学习率取值 0.01 至 0.0001 皆为不错的选择,大的学习率能让算法 在前期尽快达到一个比较好的结果,后期采用更小的学习率能让算法去到一个 比较精细的结果,使用学习率调度的方法更佳。

3.2 因子聚合效果

由于数据洗牌、模型权重初始化等模块具有随机性,将上述训练重复进行多次 后,将各个训练的预测输出值进行截面 zscore 后等权组合,得出最终的训练结 果(下称 alpha),并统计其与对照组在样本外区间的表现(2022 年至 2025 年 10 月),并根据因子值打分作 1-10 档多空组合回测,间隔 20 交易日换仓。 在训练目标——20 日收益率的测度下,alpha 的 Rank IC 为 12.48%,Rank ICIR 为 5.41,相对于等权对照组的 Rank IC 11.46%以及 Rank ICIR 4.08 均有所提 升;MSE 对照组相对于等权对照组在 Rank ICIR 较等权对照组有所提升,但是不 及 alpha 的效果。 在多空组合的表现上,alpha 多空年化收益率为 42.97%,信息比率为 3.19,月 度胜率为 82.61%,最大回撤为 10.90%,相对于等权组合均得到了提升。MSE 对 照组虽然在 Rank IC 上不及等权对照组,但其多空年化收益率为 37.38%,信息 比率为 3.00,月度胜率为 80.43%,最大回撤为 11.39%,相对于等权组合均得到 了提升。

从分层测试表现来看,相比于等权组合,alpha 在头部和尾部票的分离能力大大 提升了,尤其是第一层和第十层的分离能力。从年度表现来看,各年度的 Rank IC 与 Rank ICIR 均强于等权组合;各年度的多空组合收益率、信息比率与月度 胜率均强于等权组合。从选股域来看,alpha 在各指数内的 Rank IC 不及等权组 合,算法的提升主要在于指数外的小票,这与损失函数未引入个股权重有关, 后续可通过引入市值加权的 Rank IC 损失函数以提高这方面的表现。

我们将两侧网络的输出结果单独作绩效统计与回测,计算方法与上文相同,同 样的为了剔除随机性的干扰,输出结果取值是多个训练的平均结果。线性侧在 Rank IC 上达到了 12.42%,Rank ICIR 也是达到了 4.22,较等权对照组均有提 升;非线性侧虽然在 Rank IC 和 Rank ICIR 的表现上并没有那么亮眼,但是在 多空组合的表现上非常优秀,多空年化收益达到了 34.54%,信息比率达到了 3.16,月度胜率达到了 89.13%。两侧网络的结果起到了互补的作用,合并后在 各个指标维度上都超越了等权对照组。

进一步的,我们将上述训练模式拓展至累积数据的滚动模式。在每年的年末, 我们回溯 2018 年至该年年末的数据作样本内,基于 KFold 交叉验证采用 4 等分 的模式划分训练集与验证集,将各子模型的结果进行 zscore 处理后等权合成最终的滚动预测输出,用于接下来一年的预测值。

我们将预测集输出拼接后作绩效统计与回测,计算方法与上文相同。累积滚动 训练在 Rank IC 维度上获得了进一步的提升,从等权对照组的 11.46%提升至 12.85%,超越了前文的固定时点的训练结果(alpha),然而其在 Rank ICIR 上 稍弱,在多空组合的相关数据上也不及前文的训练结果。究其原因可能在于在 后续的几个训练时点中加入了更多的小盘市场风格的数据,提升了整体解释度 的同时也加剧了 Rank ICIR 上以及组合上的波动。

4 总结与展望

本研究围绕如何将 Rank IC 这一核心业绩指标直接作为损失函数融入深度学习 训练流程,进行了一系列从工程基础到算法实现的探索,旨在为深度学习在量 化投资中的应用提供一套可行的技术解决方案。本文的主要工作与结论可归纳 为以下三点: (1) 构建了适配金融截面数据特性的训练流程:我们在 TensorFlow 框架 下,设计并实践了以交易日为单位切割 mini-batch 的关键技术。该方 法确保了每个训练批次内的数据处于同一时间截面,符合计算排名指标 的金融逻辑,为后续可微排序损失函数的正确计算提供了必要的数据基 础。 (2) 探索并实现了可微的 Spearman 相关系数损失函数:为克服排序操作的不 可微性,我们重点研究了 Sigmoid 软排序与神经排序(Neural Sort) 两 种技术路径,成功将 Rank IC 转化为可用于梯度下降优化的损失函数, 使模型能够直接以优化股票排名为目标进行端到端训练。 (3) 进行了将该方法应用于优化传统线性模型的实证检验:我们将所构建的 损失函数,应用于一个专门用于优化即有线性模型的深度网络结构。实 验结果表明,该深度网络能够有效地学习因子间的非线性组合关系,在 线性模型的基础上取得了更好的因子聚合效果,训练结果在 20 日收益 率的测度下取得了 12.48%的 Rank IC 与 5.41 的 Rank ICIR,验证了本 方法在提升现有模型性能方面的实用价值。

尽管本研究初步验证了所提框架的可行性,但仍有诸多方面值得在未来工作中 持续改进与探索: (1) 排序算法的优化:在可微排序领域,除了 Sigmoid 软排序与 Neural Sort 之外,还有诸如 SoftRank 等强大的可微排序算法有待探索;在关 键参数温度的选择上,可如部分优化器一样引入自适应调控技术,使模 型在训练初期能平滑收敛,在训练后期能逼近真实排序,以兼顾稳定性 与精确性。 (2) 损失函数的创新:基于可微 Rank IC 损失函数,分选股域、带权重的加 权 Rank IC 损失函数有待探索,例如分市值区间计算 Rank IC 后加权、分行业计算 Rank IC 后加权以及市值加权的 Rank IC 等;基于以交易日 为单位切割 mini-batch 的关键技术与可微排序技术,除 Rank IC 以外的 其他截面上的风险或收益指标(如多头加权收益率、多空加权收益率、 投资组合回撤等)亦有被纳入损失函数的可能。 (3) 从“精准预测”到“最优决策”:高 IC 是高收益的必要非充分条件,优 秀的 Rank IC 的预测并非最终目标,构建一个表现优异的投资组合才是 核心。未来的一个关键研究方向是,探索如何将整个投资组合的构建过 程纳入深度学习框架,进行端到端的组合优化训练。


(本文仅供参考,不代表我们的任何投资建议。如需使用相关信息,请参阅报告原文。)

相关报告
评论
  • 相关文档
  • 相关文章
  • 全部热门
  • 本年热门
  • 本季热门
  • 全部热门
  • 本年热门
  • 本季热门
  • 最新文档
  • 最新精读
分享至