【量化交易】特征存储与时间对齐:point-in-time 正确性
内容提要
本文讨论了量化特征仓库的构建,强调时间正确性(PIT)和版本管理的重要性。特征存储需解决复用、版本化和训练-服务一致性的问题,避免数据修订导致的回测失效。采用双时间维度模型,确保在任意历史时刻能准确还原特征值。文章还介绍了特征存储的技术选型及工程实现,强调监控和回填机制的重要性,以确保数据的可靠性和一致性。
关键要点
-
量化特征仓库的构建需要解决复用、版本化和训练-服务一致性的问题。
-
特征存储采用双时间维度模型,确保在任意历史时刻能准确还原特征值。
-
时间正确性(PIT)约束要求模型在时间t上只能看到t之前的真实信息。
-
特征存储不是新数据库,而是一层契约,显式管理特征的定义、版本和依赖。
-
量化特征仓库与通用ML特征存储的区别在于时间维度和数据修订的处理。
-
bitemporal数据模型结合内容寻址的版本化和as-of join查询接口是量化特征仓库的核心。
-
特征的时间维度包括事件时间、特征时间和生效时间,需明确区分。
-
存储后端的选择应考虑数据量、读写比和查询模式,常见选择包括Parquet + DuckDB和ClickHouse。
-
特征版本化是为了确保旧策略的回测复现和新旧策略的对比一致性。
-
监控特征仓库的可观测性包括新鲜度、行数/分布漂移、版本漂移等。
-
回填和重算的区别在于回填是补充缺失数据,重算是因为代码或上游变更而重新计算。
-
特征仓库的接口应尽量窄,以减少研究员绕过约束的可能性。
-
在上线前应进行shadow trading以验证在线和离线特征的一致性。
-
bitemporal模型的实施需要研究员时刻意识到两个时间维度的存在。
延伸解读
时间正确性的重要性
时间正确性(PIT)是量化特征仓库的核心要求,确保模型在任意历史时刻只能访问到该时刻之前的真实信息。这一约束对于避免数据泄漏至关重要,尤其是在量化交易中,任何微小的时间错误都可能导致策略的失效或虚假的盈利表现。
特征存储的工程实现
特征存储不仅仅是一个数据库,而是一层契约,明确管理特征的定义、版本和依赖关系。通过采用双时间维度模型,特征存储能够有效解决复用、版本化和训练-服务一致性的问题,确保在回测和实盘中数据的一致性和可靠性。
监控与回填机制的必要性
监控特征仓库的可观测性是确保数据质量的关键,包括新鲜度、行数漂移和版本一致性等指标。同时,回填机制必须严格遵循版本管理原则,避免直接覆盖旧数据,以确保历史回测的可复现性和数据的完整性。
延伸问答
量化特征仓库的构建需要解决哪些问题?
量化特征仓库的构建需要解决复用、版本化和训练-服务一致性的问题。
什么是时间正确性(PIT)?
时间正确性(PIT)要求模型在时间t上只能看到t之前的真实信息,以避免数据泄漏。
双时间维度模型在特征存储中有什么作用?
双时间维度模型确保在任意历史时刻能准确还原特征值,避免因数据修订导致的回测失效。
特征版本化的目的是什么?
特征版本化是为了确保旧策略的回测复现和新旧策略的对比一致性。
如何监控特征仓库的可观测性?
监控特征仓库的可观测性包括新鲜度、行数/分布漂移、版本漂移等。
回填和重算有什么区别?
回填是补充缺失数据,重算是因为代码或上游变更而重新计算。