LLM驱动的因果发现

概述

因果发现(Causal Discovery)旨在从观测数据中推断变量间的因果关系,是科学发现和决策制定的核心技术。传统方法主要依赖统计检验和机器学习算法,难以利用丰富的领域知识和文本信息。大型语言模型(LLM)的引入为因果发现带来了革命性的变化。1


背景:传统因果发现

主要方法分类

方法类型代表算法核心思想
约束基方法PC算法条件独立性检验
评分搜索方法GES基于评分函数搜索
函数因果模型LiNGAM非线性独立成分分析
混合方法FCI处理潜在混杂

详见:因果发现基础

传统方法的局限

  1. 数据依赖:需要大量高质量观测数据
  2. 计算复杂:搜索空间随变量数指数增长
  3. 领域知识缺失:难以融入专家知识
  4. 文本信息利用不足:忽略自然语言描述

LLM驱动的因果发现框架

三种整合范式

1. 直接因果提取

直接从文本中提取因果关系:

文本输入 → LLM因果解析 → 因果图结构
   ↓
"吸烟导致肺癌" → Smoking → Lung Cancer

优点:无需数据,利用LLM知识
缺点:受幻觉影响,可能不准确

2. 知识注入方法

将LLM知识注入传统算法:

传统因果发现 → LLM先验 → 改进的后验
    ↓
PC算法(数据) + LLM(知识) → 更准确的图

优点:结合数据驱动和知识驱动
缺点:需要设计融合机制

3. 结构改进方法

使用LLM改进因果图的特定组件:

  • 边方向判断
  • v-结构识别
  • 因果强度排序

代表性方法

Causal-LLM:统一一步式框架

Causal-LLM2是EMNLP 2025的工作:

核心贡献

  1. 一步式发现:直接从数据+元数据推断完整因果图
  2. 双重模式:Prompt驱动(有时 metadata) + 数据驱动
  3. 跨域泛化:从医疗到法律的多领域验证

方法架构

┌─────────────────────────────────────────────────┐
│                   Causal-LLM                     │
├─────────────────────────────────────────────────┤
│                                                  │
│  ┌──────────────┐     ┌──────────────┐         │
│  │  Prompt驱动  │     │   数据驱动    │         │
│  │   模式       │     │    模式       │         │
│  └──────┬───────┘     └──────┬───────┘         │
│         │                    │                  │
│         ▼                    ▼                  │
│  ┌────────────────────────────────────┐         │
│  │        一致性融合模块                │         │
│  │  w₁·P(predictions) + w₂·D(pred)   │         │
│  └────────────────────────────────────┘         │
│                    │                             │
│                    ▼                            │
│             因果DAG输出                          │
│                                                  │
└─────────────────────────────────────────────────┘

Prompt驱动模式

PROMPT_TEMPLATE = """
给定以下变量的描述和关系,请推断它们之间的因果结构。
 
变量列表:
{variable_descriptions}
 
可能的因果关系:
{candidate_edges}
 
请判断每对变量之间是否存在因果关系,
以及因果关系的方向(X→Y 或 Y→X)。
 
输出格式:
1. X → Y: [存在/不存在/不确定]
2. ...
 
注意:
- 因果关系意味着X的变化会导致Y的变化
- 相关性不等于因果性
- 考虑潜在的混杂因素
"""

数据驱动模式

当没有metadata时,使用结构化数据:

def data_driven_causal_llm(data, llm):
    """数据驱动的因果发现"""
    # 1. 统计检验
    ci_results = perform_ci_tests(data)
    
    # 2. 相关性分析
    correlations = compute_correlations(data)
    
    # 3. LLM推理
    prompt = f"""
    基于以下条件独立性检验结果和相关性矩阵,
    推断变量间的因果结构。
    
    条件独立性结果:
    {ci_results}
    
    相关性矩阵:
    {correlations}
    """
    
    causal_graph = llm.generate(prompt)
    return causal_graph

实验结果

数据集方法边精度SHD
AsiaPrompt (Causal-LLM)89.2%2.3
AsiaGranDAG76.5%5.1
AlarmPrompt (Causal-LLM)82.7%8.2
AlarmGES71.2%14.3

MosaCD:鲁棒因果发现

MosaCD3解决LLM幻觉问题:

核心思想

利用Shuffled Queries检测和过滤幻觉:

def detect_hallucination(llm, query, variable_pairs):
    """检测LLM输出中的幻觉"""
    results = []
    
    for (X, Y) in variable_pairs:
        # 原始查询
        orig_response = llm.ask(f"Is X → Y?")
        
        # 打乱查询(利用位置偏差)
        shuffled_response = llm.ask(f"Is Y → X?")
        
        # 检测不一致
        if orig_response.conflicts(shuffled_response):
            # 可能是幻觉,标记为低置信度
            results.append((X, Y, confidence=0.3))
        else:
            # 一致,使用原响应
            results.append((X, Y, confidence=orig_response.confidence))
    
    return results

置信度传播

高置信度种子 → 传播方向 → 低置信度区域
     │
     ▼
置信度低的边获得来自高置信度邻居的信息

MAC:多智能体因果发现

详见:MAC框架详解

Direct LLM Discovery

微软研究院的Causal Inference Using LLM-Guided Discovery4

关键发现

  1. 因果顺序(Causal Order) 足以进行因果效应推断
  2. LLM可以可靠地获取因果顺序
  3. 因果顺序比完整因果图更易获取

方法流程

1. 获取因果顺序:LLM询问"X和Y,谁更可能是原因?"
        ↓
2. 验证顺序:使用CI测试验证LLM的判断
        ↓
3. 构建因果图:基于顺序约束
        ↓
4. 估计因果效应:do-calculus或后门调整

评估基准

CausalGraphBench

ACL 2025 Student Research Workshop5

  • 35个因果图,涵盖不同规模和复杂度
  • 评估LLM构建因果图的能力
  • 分析图大小对性能的影响

关键发现:

  • 全图上下文方法优于穷举方法
  • 性能随图规模增大而下降

CauSciBench

科学因果推理基准:

  • 367个评估任务,来自100+真实科研论文
  • 覆盖9个学科领域
  • 完整因果分析流程评估

CausalBench

OpenReview 20256

四维度评估框架:

维度问题类型示例
因→果干预效果X增加会导致Y如何变化?
果→因原因推断观察到Y,可能的原因是什么?
因→果+干预条件因果干预Z后,X→Y关系如何?
果→因+干预反事实如果X不同,Y会怎样?

挑战与局限

Hallucination问题

LLM可能生成不存在的因果关系

幻觉类型示例影响
虚假因果”月亮导致潮汐”(技术上正确但忽略物理机制)误导性
方向错误”肥胖导致久坐”(实际相反)错误因果方向
强度夸大”咖啡导致心脏病”(统计上显著但效应微弱)夸大因果强度

上下文依赖性

LLM对输入格式敏感:

查询方式1: "X和Y有因果关系吗?"
查询方式2: "X导致Y吗?"
查询方式3: "如果X变化,Y会变化吗?"

不同表述 → 不同响应(需要Shuffled Queries检测)

知识时效性

  • LLM知识截止于训练数据
  • 新发现的因果机制可能未知
  • 领域特定知识可能缺失

实践指南

方法选择

场景推荐方法原因
有丰富metadataCausal-LLM Prompt模式利用结构化信息
无metadata,有数据Causal-LLM Data模式数据驱动发现
担心幻觉MosaCD鲁棒性设计
多领域协作MAC综合多种方法

Prompt设计建议

  1. 明确因果定义:在prompt中解释因果关系
  2. 提供领域约束:减少无关搜索空间
  3. 要求置信度:不仅返回关系,还要求置信度
  4. 验证一致性:使用Shuffled Queries检测
# 鲁棒Prompt设计示例
ROBUST_CAUSAL_PROMPT = """
分析变量A和B之间的因果关系。
 
背景:A和B是在{domain}领域观察到的变量。
 
因果定义:
- 因果关系意味着A的变化会导致B的变化
- 相关性不等于因果性
 
请判断:
1. A → B 是否存在?置信度:[0-1]
2. B → A 是否存在?置信度:[0-1]
3. 混杂因素可能性:[0-1]
 
证据摘要:{reasoning}
"""

未来方向

多模态因果发现

结合视觉、文本、表格数据:

# 未来可能:多模态因果发现
def multimodal_causal_discovery(image, text, table, llm):
    """利用图像、文本和表格数据进行因果发现"""
    
    # 图像因果
    visual_causal = extract_visual_relations(image)
    
    # 文本因果
    textual_causal = extract_textual_relations(text)
    
    # 数值因果
    numeric_causal = analyze_table(table)
    
    # LLM融合
    final_graph = llm.fuse(
        visual=visual_causal,
        textual=textual_causal,
        numeric=numeric_causal
    )
    
    return final_graph

因果LLM微调

针对因果推理任务微调专用LLM:

  • 因果链推理
  • 反事实生成
  • 干预效果预测

可解释因果AI

LLM生成可解释的因果报告

分析结论:
基于数据和领域知识,我们推断X→Y存在因果关系。

证据:
1. 统计证据:条件独立性检验p<0.01
2. 领域知识:文献[X]报告了类似机制
3. 一致性:LLM在5个不同表述中保持一致

置信度:0.85

限制:
- 可能存在未观察到的混杂因素
- 线性假设可能过于简化

相关内容


参考文献

Footnotes

  1. IJCAI 2025, “Large Language Models for Causal Discovery: Current Landscape and Future”

  2. EMNLP 2025 Findings, “Causal-LLM: A Unified One-Shot Framework for Prompt- and Data-Driven Causal Graph Discovery”

  3. arXiv:2509.23570, “Improving constraint-based discovery with robust propagation and reliable LLM priors”

  4. Microsoft Research, “Causal Inference Using LLM-Guided Discovery”

  5. ACL 2025 SRW, “CausalGraphBench: A Benchmark for Evaluating LLM Capabilities of Causal Graph Discovery”

  6. OpenReview 2025, “CausalBench: A Comprehensive Benchmark for Evaluating Causal Reasoning Capabilities of LLMs”