我一直在寻找您所描述的问题(包括相同的应用程序域),但找不到太多。
最明显、数学上“正确”的解决方案是简单地将标准强化学习更新规则(您选择实施的任何算法)延迟 45 天;如果它仍然没有被报告为欺诈,那么假设它是真实的。但是,这会导致一些问题;
- 需要大量内存来存储尚未用于更新的体验
- 学习只有在显着延迟后才开始,此时您还没有学到任何东西,因此很可能会长时间运行次优策略
- 适应欺诈者的新策略非常缓慢
- 对已经提前报告欺诈案件的人(例如 10 天后)怎么办?还是将它们延迟整整 45 天,还是立即触发更新(并可能打乱实际发生体验的顺序)?
以下是一个快速而肮脏的“解决方案”;
- 当交易发生时,在假设它是真实交易的情况下立即触发学习更新(例如,奖励为
R = +1
)。
- 如果该交易后来被报告为欺诈,则触发额外的更新(使用同一对),但在欺诈案件的正常负奖励之上,
(state, action)
先前错误分配的奖励被否定。例如,如果您通常会为真品和欺诈行为捐款,请立即给予奖励。此奖励不会以完全正确的方式纠正先前分配的错误奖励(更新序列中的潜在错误位置,由于使用的算法而导致的折扣等),但它应该有点接近(尤其是如果并且是接近)。R = +1
R = -100
R = -101
gamma
lambda
gamma
lambda
1.0
这当然不理想,理论基础很少,可能会破坏很多强化学习理论,但至少它在计算和记忆方面是有效的,而且根据我的经验,它在实践中运行良好。
如果您使用的是非策略RL 算法,您可以使用体验重放缓冲区(这些天在深度 RL 中非常流行的 DQN 风格的东西,但也可以用于表格 RL / RL 与线性函数逼近等)。如果您过去已经有通过某些非 RL 策略生成的历史数据(这通常是欺诈检测/银行应用程序中的情况,即使它们并不总是共享这些数据,它们也确实有大量数据),您可以使用它填充您的体验重播缓冲区。在第一个解决方案的情况下(在这个答案的顶部),这可以用于在 45 天的初始延迟期间进行训练。
由于您预计会有概念漂移(欺诈者会随着时间的推移调整他们的行为),因此您需要小心重放体验。旧数据将变得不那么有用。
一种非常不同的解决方案是假设您有一个可用的人类专家团队,他们可以相对快速地调查一小部分传入交易。这对于实践中的大公司来说往往是正确的(“调查”通常意味着给持卡人打电话)。这使您能够更快地为一小部分数据生成准确的反馈,因此您还可以在更短的延迟下进行强化学习(尽管仅针对您的一小部分经验)。
您可以在以下论文中阅读更多关于这个想法的信息(免责声明:我是它的作者):
- Dennis JNJ Soemers、Tim Brys、Kurt Driessens、Mark HM Winands 和 Ann Nowé(2018 年)。“使用上下文强盗和决策树适应信用卡交易数据流中的概念漂移”。在第三十届人工智能创新应用年会 (IAAI-18),第 7831-7836 页。AAAI 出版社。
除了这个想法之外,您可能还会发现对其他相关工作的引用、指向您可以使用的数据的链接等很有趣。
我觉得应该可以用适当的算法来扩展现有的强化学习理论;
- 立即采取具有假定的、默认的、可能不正确的奖励的学习步骤,并且
- 如果奖励结果与之前事后认为的不同,则追溯纠正之前的错误更新。
不过,我不知道现有的文献中有这样做的,而且这当然不是微不足道的;它需要从“第一原则”(例如,贝尔曼操作员)开始。
直观地说,我还希望完全正确地执行此操作将始终需要大量内存(持卡人所有先前交易的内存,以便在必要时可以重新生成状态-动作对)。无论如何,银行可能已经为每个客户存储了此类数据,因此在实践中这可能不是问题。
如果有人打算在这方面工作,请随时与我联系,我很可能很乐意合作:D