跳到正文
Alpha Bench
动态

为什么每个任务都必须“时点一致”

未来信息偏差是金融评测自欺欺人最常见的方式。本文介绍我们如何从设计上杜绝它。

发布日期
分类
评测方法
阅读时长
约 5 分钟

每一次回测,讲的都是一个关于过去的故事,而讲述者早已知道结局。金融评测真正的难点,在于不让“已知结局”混进故事里。来自未来的信息哪怕只渗入决策一点点,结果也会好于任何真实投资者所能取得的水平,评测衡量的也就不再是能力。

对 AI 评测而言,问题更加突出:任务设定在某个历史时点,而对那之后发生的事情,大模型很可能早已读过大量相关内容。因此,Alpha Bench 把“时点一致”当作一条硬性规则,而不是一种偏好:每个任务只能看到决策当时可以获得的信息。

两种“无意中看到未来”的方式

前视偏差,也称未来信息偏差,是指在决策中使用了当时尚无法获得的信息。它很少是有意为之,通常是通过事后被清洗、修正或重新整理过的数据悄悄混进来的。

幸存者偏差与它关系密切:研究对象的集合,已经被后来发生的事情筛选过一遍。如果只看今天仍然存在的公司,你研究的其实是赢家,却把它们当成了样本。

这两种偏差会朝同一个方向美化结果:让策略看起来比实际更赚钱、风险更低;让依靠事后之明做模式匹配的系统,比依据证据推理的系统得分更高。

未来信息从哪里渗进来

渗漏的途径往往平淡无奇。以下是最常见的几种。

被重述的财务数据

公司有时会修订已经披露的财务数据,而不少数据库只保留最新版本。用今天的数据回测过去某个季度,看到的是修订后的数字,而不是投资者当时真正看到的数字。此外,季度业绩通常在季度结束数周之后才会披露,如果在季度最后一天就使用这些数据,就等于悄悄借用了未来。

指数成分股

用今天的指数成分股去回测过去十年的策略,等于只在那些后来成长到足够大、足够成功而被纳入指数的公司上做检验。其中很多公司,正是因为已经表现出色才被纳入。检验还没开始,成功就已经写进了样本。

退市公司

破产、被收购或退市的公司,常常会从数据集中消失。把它们排除在外,就去掉了许多最糟糕的结局,也去掉了一部分收购溢价,收益和风险因此同时失真。一个买入低估值股票的价值策略,如果数据里缺少那些最终失败的便宜股票,看上去就会安全得多。

新闻时间戳与价格

一条只标注了日期的新闻,可能是在收盘之后才发布的。把它与当天的收盘价配对,就等于假设交易发生在消息公开之前。时区、交易时段与发布时间都会产生影响,几个小时的偏差,就足以把一个普通信号变成一个现实中不可能实现的信号。

训练截止日期与数据污染

这种渗漏是 AI 评测所特有的。让一个模型站在过去某个时点做决策,它可能已经知道之后几个月发生了什么:哪些公司脱颖而出,出现了哪些危机,一宗并购最终如何收场。隐去公司名称的作用往往不如预期,因为模型常常能从财务数字或公司经历中认出它是谁。仅凭历史任务,永远无法完全证明模型没有见过答案。

Alpha Bench 如何从设计上杜绝

事后再小心,也无法堵住所有漏洞。所以我们力求在构建任务时,就让渗漏无从发生:

  1. 每一条输入数据都记录它被公开的时间,而不只是它所描述的时期;任务只能看到在决策时点或之前已经公开的数据。
  2. 按每个日期重建标的池:采用当时的指数成分、原始而非重述后的财务数据,并保留后来退市的公司。
  3. 发布时间不确定时,采用保守的发布时滞,确保信息到达系统的时间,不早于投资者实际能够据此行动的时间。
  4. 订单最早只能以决策之后的下一个可得价格成交,绝不按产生信号的那个价格成交。
  5. 历史任务滚动更新,另有一部分任务作为保留测试集,始终不公开。

最有力的保护,是去问那些答案尚不存在的问题。在实时前瞻赛道中,系统基于当前数据提交决策与预测,待结果逐步发生后再进行评分。没有任何模型能在训练数据中读到这样的未来,因为它还没有发生。

代价,以及为什么值得

时点一致的评测构建起来更慢,成本也更高:它需要能够记录自身历史的数据,还需要在时滞和时间戳上做大量繁琐却必须做对的取舍。它得出的结果,通常也不如简单回测那样亮眼。实时前瞻赛道还需要耐心:前瞻结果只能随着市场推进而逐步积累,必须经历足够多的决策和不同的市场环境,才能把能力与运气区分开来。

我们认为这个代价值得付出。放任未来信息渗入的评测,衡量的是记忆和事后之明;杜绝了渗漏的评测,衡量的才是人们在金融领域真正需要 AI 具备的能力:在不确定之中,只依据当时可得的信息做出判断。