强化学习 / 04
离线 RL、安全约束与反事实评估
工业系统很少允许算法随意在线探索。广告、推荐、调度、补贴都涉及真实用户和真实成本。因此离线 RL 和反事实评估很重要。
什么是离线 RL
离线 RL 使用历史日志学习策略,不直接在线探索。
数据形式通常是:
state, action, reward, next_state
但历史数据来自旧策略,只覆盖旧策略选过的动作。这会带来分布偏差。
Off-policy Evaluation
OPE 试图回答:如果当时用新策略,结果会怎样。
常见方法:
- IPS。
- SNIPS。
- Doubly Robust。
- Fitted Q Evaluation。
- 仿真回放。
OPE 的难点是需要知道或估计旧策略选择动作的概率。
Propensity 为什么重要
如果日志里记录了某个动作被选择的概率,就可以更好地做反事实评估。没有 propensity,很多评估只能依赖强假设。
业务系统应该记录:
- 候选动作。
- 每个动作分数。
- 选择概率。
- 最终动作。
- 反馈。
- 过滤和约束原因。
安全约束
离线学到的新策略不能直接上线。
需要约束:
- 不超过预算。
- 不显著增加投诉。
- 不违反合规。
- 不让延迟超标。
- 不对某类用户或骑手不公平。
可以先让新策略只在旧策略附近小范围变化,避免分布外动作。
仿真环境
仿真可以降低试错成本。物流调度、广告竞价、推荐列表都可以构建仿真器。
但仿真器本身也有误差。它适合筛掉明显差的策略,不适合替代线上实验。
上线流程
推荐流程:
- 离线训练。
- 离线回放。
- OPE 或仿真评估。
- 规则约束检查。
- shadow test。
- 小流量灰度。
- 分阶段放量。
- 监控和回滚。
面试题:为什么不能直接上线 RL 策略
理想回答:
因为 RL 策略可能选择历史上很少出现的动作,离线评估不可靠;同时在线探索会影响用户体验、成本和安全。工业落地需要先做离线评估、仿真和小流量灰度,并加入预算、体验、合规等约束。
总结
离线 RL 的核心不是“更高级”,而是如何在不能随便探索的业务环境下安全评估和迭代策略。面试里要重点讲日志、propensity、OPE、安全约束和灰度上线。