将VGDL编译为因果模型

arXiv cs.AI 论文

摘要

该论文提出了一种确定性框架,可将VGDL规范的游戏编译为Dynamic Structural Causal Models,以确保因果保真度,为反事实推理和因果强化学习提供透明的因果路径。

arXiv:2609.05459v1 Announce Type: new Abstract: 强化学习和大语言模型通常难以准确捕捉游戏环境的因果机制。标准强化学习智能体往往依赖虚假相关性,而大语言模型容易产生游戏规则的幻觉。尽管因果强化学习提高了可解释性,但目前尚无正式方法将复杂游戏机制直接映射到因果模型。为此,我们提出了一种确定性框架,可将Video Game Description Language规范的游戏编译为Dynamic Structural Causal Models。我们的方法不是从游戏轨迹或噪声大的大语言模型输出中推断因果结构,而是直接将游戏组件(包括精灵动态、交互规则和终止条件)转换为显式结构方程。每个游戏刻度代表从时间 $t$ 到 $t+1$ 的状态变量的因果转换。通过建立这种基于事实的映射,该方法保证了绝对因果保真度,符合真实游戏机制。所得模型提供透明的因果路径,支持反事实推理、因果强化学习智能体训练和程序化内容验证。该框架为符号化游戏描述和基于因果的游戏AI之间提供了有原则的桥梁。
查看原文
查看缓存全文

缓存时间: 2026/09/10 08:35

# 将VGDL编译为因果模型
来源:https://arxiv.org/html/2609.05459
###### 摘要

强化学习和大语言模型通常难以准确捕捉游戏环境的因果机制。标准强化学习智能体倾向于依赖虚假关联,而大语言模型则容易产生游戏规则的幻觉。尽管因果强化学习提高了可解释性,但目前尚无正式方法能将复杂游戏机制直接映射为因果模型。为此,我们提出一个确定性框架,将视频游戏描述语言指定的游戏编译为动态结构因果模型。我们的方法并非从游戏轨迹或噪声大语言模型输出中推断因果结构,而是直接将游戏组件(包括精灵动态、交互规则和终止条件)转化为显式结构方程。每个游戏刻度代表从时间步t到t+1的状态变量的因果转移。通过建立这种基于事实的映射,该方法保证对真实游戏机制具有绝对因果保真度。所生成模型提供了透明的因果路径,支持反事实推理、因果强化学习智能体训练以及过程内容验证。该框架为符号游戏描述与基于因果的游戏AI之间架起了原则性的桥梁。

## I 引言

强化学习在现代游戏AI中应用广泛,但标准方法难以理解底层因果游戏机制。RL中使用的深度学习模型通常不透明,这限制了其决策的可解释性[3]。游戏常涉及隐藏规则或变化环境(如新敌人或游戏阶段),这对朴素学习者构成了适应挑战[8]。为使此类规则对智能体显式化,Apeldoorn等人[1]使用了在游戏过程中更新的分层知识库。由于这些知识库是通过观察学习的,可能包含虚假关联,因此不能代表底层环境的真实规则。因果RL通过过滤虚假关联并聚焦因果相关信息解决了这些核心问题,同时保持可解释性[3]。近期研究[10]进一步证明,RL智能体的因果解释显著提升了用户的理解和信任。

尽管前景可期,现有游戏基准测试和智能体很少明确纳入因果性,且目前不存在将游戏机制映射为因果模型的正式框架。虽然基于逻辑的游戏描述语言(如GDL和Ludocore等系统[13])支持策略分析和逻辑形式的因果推理[4],但它们并未提供本文所针对的结构化因果模型。类似地,应用于游戏推理的大语言模型存在幻觉、误解空间关系,且游戏表现往往欠佳[9,7]。虽然纳入因果模型可以改善LLM对游戏机制的理解[6],但LLM仍可能错误识别此类模型,且在没有真实基准的情况下,验证往往难以实现。我们通过引入一个正式的映射框架来填补这一空白,该框架为AI智能体提供确定性因果模型,通过基于事实的因果信息实现更高效的学习。

## II 背景与相关工作

### II-A 因果性

因果性研究原因与结果之间的关系,使模型能够预测结果而不仅仅是关联[11]。Pearl的因果阶梯定义了三个层次:关联(统计相关性)、干预(主动设置变量,独立于其原因)和反事实(针对观察事件对备选结果进行推理)[11]。

结构因果模型是一个三元组(U,V,F),其中U是一组外生变量,V是一组内生变量,F={fv}v∈V是一组函数,将每个v∈V从其父节点Pa(v)⊆V及其对应的噪声变量Uv推导出来。SCM允许系统性地推导干预效应,从而促进设计在复杂领域中利用因果结构的算法[11]。此外,动态结构因果模型将此框架扩展到时间序列,通过离散时间步t∈T对变量进行索引[11]。在DSCM中,函数F确定了时刻t的状态vt∈Vt,基于其在当前和前一时间步的父节点Pa(vt)≤t⊆V≤t,从而捕捉随时间变化的因果依赖关系[11]。图1展示了DSCM的示例。Madumal等人[10]使用SCM解释RL智能体行为,通过分析反事实生成因果解释。Hammond等人[5]将因果建模扩展到游戏,提出了“因果博弈”,在一个统一框架中编码智能体的策略和依赖关系。这些工作阐明了因果模型如何提供超越相关性的决策和预测洞见。

XtXtZtZtYtYtXt+1Xt+1Zt+1Zt+1Yt+1Yt+1时刻t时刻t+1UtXUtXUtZUtZUtYUtYUnXUnXUnZUnZUnYUnYXt+1=fX(Xt,Ut+1X)Xt+1=fX(Xt,Ut+1X)Zt+1=fZ(Zt,Xt,Xt+1,Ut+1Z)Zt+1=fZ(Zt,Xt,Xt+1,Ut+1Z)Yt+1=fY(Yt,Zt,Zt+1,Ut+1Y)Yt+1=fY(Yt,Zt,Zt+1,Ut+1Y)图1:动态SCM:左图展示因果依赖关系,右图展示定义递归赋值的结构方程。

### II-B 通用视频游戏AI与视频游戏描述语言

GVGAI框架[12]允许在统一接口下比较AI智能体在大量街机类电子游戏中的表现。每款游戏使用VGDL定义,这是一种轻量级、人类可读的语言格式,包含精灵集、关卡映射、终止集和交互集。精灵集描述游戏的所有组件,而终止集和交互集描述游戏逻辑。后者通过因果关系描述碰撞事件的结果来实现,有效表征了高层SCM。

我们将视频游戏建模为一个动态SCM:一个双时间切片图,其中时刻t的变量影响时刻t+1的变量。Jiwatode等人[6]和Chen等人[2]先前工作将SCM与LLM结合用于不同环境的因果归纳。我们采用互补路径:不提示LLM预测规则,而是将已知的VGDL规则确定性地编译为SCM。这保证了因果保真性(模型匹配真实游戏机制),无需依赖噪声的语言模型推断。

## III 游戏的动态因果模型

我们将VGDL游戏建模为动态SCM,专注于直接将VGDL映射到SCM组件,而非从轨迹学习关联[6]。虽然VGDL紧凑地编码了这些元素,但将其形式化为SCM可实现因果RL、干预和反事实分析,而仅凭VGDL无法支持决策。每个游戏刻度被视为从状态t到t+1的因果转移,其中精灵动态、布局、交互和终止规则定义了因果结构。

精灵被映射到由所选游戏动态定义的状态表示。我们根据VGDL的SpriteSet中精灵的可能描述提出以下标签:位置、朝向、速度、是否存活、资源、生命值和时间。并非每个选定游戏都使用所有属性。例如,basicgame(见图2)使用位置、朝向、速度、存活状态、存活实例计数和终止状态变量,而资源和生命值变量仅在VGDL动态包含收集、库存、伤害或基于生命值的交互的游戏中需要。对于时刻t的游戏刻度,一般内生状态可写为

Vt=Vt={Pst,Ost,Velst,Ast,Rst,Hst,Tt,Ps t,Os t,Vels t,As t,Rs t,Hs t,Tt,(1)Countst,Terminalkt|s∈S,k∈K}.Counts t,Terminalkt | s∈S, k∈K}.

其中S是精灵类型和实例的集合,K是终止条件的集合。这里,Pst表示精灵s的位置,Ost其朝向,Velst其速度,Ast精灵是否存活或活跃,Rst其资源状态,Hst其生命值状态,Tt当前游戏时间或刻度。变量Countst表示精灵类型的存活实例数量,Terminalkt表示是否达到胜利或失败条件。在表I中,这些变量被缩写为P、O、V、A、Count和Terminal以保持映射可读性。

外生变量包括玩家动作、随机选择和初始布局:

Ut={Uactiont,Urngt,Initc0}.Ut={Uactiont,Urngt,Initc0}.(2)变量Uactiont表示玩家或智能体选择的动作。变量Urngt表示随机精灵类(如RandomNPC)使用的随机性。变量Initc0表示初始化时的关卡布局符号。布局是外生的,因为它在游戏开始前给定,并确定哪些精灵实例存在以及它们的位置。basicgame的VGDL和关卡布局如图2所示,其相应的SCM映射见表I。

[⬇](data:text/plain;base64,QmFzaWNHYW1lCiAgICBTcHJpdGVTZXQKICAgICAgICBhdmF0YXIgPiBNb3ZpbmdBdmF0YXIKICAgICAgICB3YWxsICAgPiBJbW1vdmFibGUKICAgICAgICBnb2FsICAgPiBJbW1vdmFibGUKICAgICAgICBlbmVteSAgPiBSYW5kb21OUEMKICAgIEludGVyYWN0aW9uU2V0CiAgICAgICAgYXZhdGFyIHdhbGwgID4gc3RlcEJhY2sKICAgICAgICBnb2FsIGF2YXRhciAgPiBraWxsU3ByaXRlCiAgICAgICAgYXZhdGFyIGVuZW15ID4ga2lsbFNwcml0ZQogICAgTGV2ZWxNYXBwaW5nCiAgICAgICAgQSA+IGF2YXRhcgogICAgICAgIHcgPiB3YWxsCiAgICAgICAgZyA+IGdvYWwKICAgICAgICBlID4gZW5lbXkKICAgIFRlcm1pbmF0aW9uU2V0CiAgICAgICAgU3ByaXRlQ291bnRlciBzdHlwZT1nb2FsIGxpbWl0PTAgd2luPVRydWUKICAgICAgICBTcHJpdGVDb3VudGVyIHN0eXBlPWF2YXRhciBsaW1pdD0wIHdpbj1GYWxzZQ==)BasicGame
    SpriteSet
        avatar > MovingAvatar
        wall > Immovable
        goal > Immovable
        enemy > RandomNPC
    InteractionSet
        avatar wall > stepBack
        goal avatar > killSprite
        avatar enemy > killSprite
    LevelMapping
        A > avatar
        w > wall
        g > goal
        e > enemy
    TerminationSet
        SpriteCounter type=goal limit=0 win=True
        SpriteCounter type=avatar limit=0 win=False

(a) VGDL规范

[⬇](data:text/plain;base64,ICAgIHd3d3d3CiAgICB3QWVndwogICAgd3d3d3c=)wwwwwwAegwwwwww

(b) 关卡布局

图2:BasicGame定义和示例关卡布局

表I:BasicGame的具体映射(见图2)。符号说明:P=位置,O=朝向,V=速度,A=存活,Count=存活实例计数,Terminal=胜利/失败节点,U=外生输入,RNG=随机输入。

| VGDL元素 | SCM节点 | SCM边 | 结构方程 |
|---------|--------|-------|---------|
| SpriteSet: avatar > MovingAvatar | Uactiont, Pavatart, Oavatart, Vavatart, Avatart, Pavatart+1, Oavatart+1, Vavatart+1, Avatart+1 | Uactiont→Pavatart+1, Uactiont→Oavatart+1, Uactiont→Vavatart+1, Pavatart→Pavatart+1, Oavatart→Pavatart+1, Vavatart→Pavatart+1, Avatart→Avatart+1 | Pavatart+1:=fpos(Pavatart,Oavatart,Vavatart,Uactiont)<br>Oavatart+1:=fori(Oavatart,Uactiont)<br>Vavatart+1:=fvel(Vavatart,Uactiont) |
| SpriteSet: wall > Immovable | Pwallt, Awallt, Pwallt+1, Awallt+1 | Pwallt→Pwallt+1, Awallt→Awallt+1 | Pwallt+1:=Pwallt<br>Awallt+1:=Awallt |
| SpriteSet: goal > Immovable | Pgoalt, Agoalt, Pgoalt+1, Agoalt+1, Countgoalt+1 | Pgoalt→Pgoalt+1, Agoalt→Agoalt+1, Agoalt+1→Countgoalt+1 | Pgoalt+1:=Pgoalt<br>Agoalt+1:=Agoalt<br>Countgoalt+1:=fcount(Agoalt+1) |
| SpriteSet: enemy > RandomNPC | Uenemy_rngt, Penemyt, Oenemyt, Velenemyt, Aenemyt, Penemyt+1, Oenemyt+1, Velenemyt+1, Aenemyt+1 | Uenemy_rngt→Penemyt+1, Uenemy_rngt→Oenemyt+1, Uenemy_rngt→Velenemyt+1, Penemyt→Penemyt+1, Oenemyt→Penemyt+1, Velenemyt→Penemyt+1, Aenemyt→Aenemyt+1 | Penemyt+1:=fpos(Penemyt,Oenemyt,Velenemyt,Uenemy_rngt)<br>Oenemyt+1:=fori(Oenemyt,Uenemy_rngt)<br>Velenemyt+1:=fvel(Velenemyt,Uenemy_rngt) |
| TerminationSet: SpriteCounter type=goal limit=0 win=True | Countgoalt+1, Terminalwint+1 | Countgoalt+1→Terminalwint+1 | Terminalwint+1:=fwin(Countgoalt+1) |
| TerminationSet: SpriteCounter type=avatar limit=0 win=False | Countavatart+1, Terminallosst+1 | Countavatart+1→Terminallosst+1 | Terminallosst+1:=floss(Countavatart+1) |

[此处内容省略,保持原文格式]

相似文章

基于二部图因果模型的因果推理

arXiv cs.AI

本文提出二部图因果模型(BGCMs),以解决在具有循环依赖的平衡系统中因果干预的歧义性,推广了现有的框架,如 Causal Bayesian Networks 和 Structural Causal Models。

YoCausal: 视频生成距离世界模型有多远?因果视角

Hugging Face Daily Papers

本文介绍了YoCausal,一个基于认知科学中的违反预期(Violation of Expectation)范式的基准,用于评估视频扩散模型是否真正理解因果关系,还是仅仅过拟合于时间模式。对13个最先进模型的评估显示,与人类级别的因果认知相比,存在显著差距。