MCTS 通常被认为是解决具有大分支因素的问题的好选择......但这种情绪的背景是它最初流行于玩围棋游戏,作为旧游戏玩法的替代品,例如α-β修剪。围棋的分支因子更像是 250-300,这通常被视为棋盘游戏的一个大分支因子。与您的分支因子相比,它不再是一个令人印象深刻的分支因子6,000,000...
当您在每一步都有 600 万个选择时,我认为 MCTS 不能开箱即用。如果你有一个非常有效的 MDP 实现(例如,如果你可以模拟每秒数百万次的推出),并且如果你有大量的“思考时间”(可能以小时或天)可用。
为了有机会在如此庞大的分支因子上做得更好,您确实需要跨动作进行泛化。你的 600 万个动作真的都是完全不同的动作吗?还是它们中的许多以某种方式相互关联?如果您收集了一些经验(MCTS 中的模拟,或者只是使用强化学习方法的轨迹),您能否将结果推广到您尚未收集经验的其他行动?
如果有某种方法可以将不同的操作视为“相似”(在给定状态下),您可以使用单个观察来一次更新多个不同操作的统计信息。最明显的方法是您可以为动作(或状态-动作对)定义有意义的特征。标准强化学习方法(使用函数逼近,可能是线性的,也可能是深度神经网络)然后可以相对“轻松”地以有意义的方式泛化许多动作。它们还可以以各种方式与 MCTS 结合(参见例如 AlphaGo Zero / Alpha Zero)。
尽管如此,600 万的分支因子仍然很大......但是跨动作的泛化可能是你最好的选择(这可能在 MCTS 内部完成,但确实需要在标准之上进行大量的花里胡哨方法)。