想象你走进重案组办公室,墙上钉着一块巨大的软木板。上面贴着人物照片、事件便签,红色丝线从一张卡片连到另一张卡片,旁边标注“动机”“案发后”等字样。侦探们靠这面“关系墙”把零散情报织成一张网,一眼看出谁是因、谁是果。因果图谱构建,就是把这种“关系墙”搬进计算机:从口供里抽取“因为A所以B”,从监控数据里发现“先变的是因,后变的是果”,再请老侦探补上经验盲区,最后把所有线索统一成一张机器能读的“因果地图”。 这张地图只要错一条线,下游所有推理、预测、解释都会跟着跑偏。对 AI 从业者而言,掌握因果图谱构建,就掌握了让模型从“记住相关”走向“理解因果”的地基工程,这是可解释 AI 与大模型增强落地的关键能力。

岗位关联

需要学习因果图谱构建,因果图谱构建从文本、数据与专家知识中抽取因果三元组并融合为统一图谱,涉及因果关系识别、方向判定与冲突消解等步骤,为下游因果推理与知识增强提供结构化基础,是因果知识工程的核心任务,在构建可推理因果知识基这一知识点在因果与大模型 > 因果知识嵌入中承上启下,连接基础理论与工程实践。

目录
  1. 可视化演示
  2. 因果三元组
  3. 文本抽取
  4. 数据发现
  5. 专家知识
  6. 方向判定
  7. 冲突消解
  8. 图谱应用
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

本节配有交互动效(进入视口后自动加载,约 3KB)。

因果三元组

重案组的关系墙上,最小的单位不是整张墙,而是一张便签和一根红线的组合。便签上写着“熬夜”,旁边一张写着“健康受损”,中间的红线标注“导致”。有了这个最小单位,侦探才能继续扩展:熬夜导致健康受损,健康受损导致请假,请假导致项目延期。因果图谱里,这个最小单位就是“因果三元组”。

在计算机眼中,因果三元组写作 (头实体, 因果谓词, 尾实体)。头实体是因果链的起点,尾实体是终点,因果谓词则回答“这两个实体之间是什么因果关系”。因果图谱与普通知识图谱的区别在于:普通图谱记录“A 认识 B”“A 位于 B”,因果图谱记录“A 导致 B”这类可以被追问“为什么”的边。

这种三元组可以容纳实例,也可以容纳类型。头实体可以是“张三熬夜”这个具体事件,尾实体可以是“张三免疫力下降”这个具体状态;再往上抽象,还可以说“熬夜行为”属于“风险行为”这一类。这样,关系墙上的每一条线都有了身份和类型,方便后续统计与推理。

关系墙再大,也是一根根红线接起来的。因果图谱再复杂,也离不开一个个三元组。抓住这个最小单元,后面的抽取、融合、推理才有立足点。

(头实体,causes,尾实体)(\text{头实体}, \text{causes}, \text{尾实体})
因果三元组就是关系墙上的“便签+红线+便签”:左边是因,右边是果,中间那根线叫 causes。
  1. 头实体因果链条的起点,通常是一个事件、行为或状态,例如“熬夜”。
    head=熬夜\text{head} = \text{熬夜}
  2. 因果谓词连接头尾实体的关系,默认是“导致”,写作 causes。
    relation=causes\text{relation} = \text{causes}
  3. 尾实体因果链条的终点,代表被影响的结果,例如“免疫力下降”。
    tail=免疫力下降\text{tail} = \text{免疫力下降}
  4. 实例与类型同一个三元组可以落在具体实例层,也可以提升到类型层,用于抽象归纳。
    subclass(熬夜,行为)\text{subclass}(\text{熬夜}, \text{行为})

文本抽取

侦探们最常做的事,是坐在证人面前听口供。证人说“因为加班,所以我今天没精神”,这就是一句活生生的因果线索。可证人不一定说“因为”“所以”;有时候说“加班导致我累了”,有时候说“多亏了这场雨,不然比赛早取消了”。如何从五花八门的自然语言里把因果三元组捞出来,就是文本抽取的任务。

最直接的方法是模式匹配:先整理一批高频因果句式,比如“因为X,所以Y”“X导致Y”“X引发Y”,再把符合句式的部分切成头实体和尾实体。更精细的方法是用依存句法分析,让计算机看懂“真正的主语是谁、结果落在哪个分句”,从而不被长句干扰。真实文本里还有“他”这类代词,需要共指消解把“他”还原成“运维工程师”,否则抽取出的节点就是一堆无主信息。远程监督则是一种巧妙的偷懒方法:用已有的知识库去自动标注大量语料,省去人工标注之苦。

不能忽视的是,每一条抽取结果都该带上置信度。因为同一个模式不一定总表示因果关系,比如“他因为小失误被表扬”里,“因为”后面的“小失误”并不是原因,而是被评价的对象。用历史命中率给模式打分,比见一次收一条更靠谱。

口供里的线索往往杂乱且带情绪,文本抽取就是那个坐在证人面前、不断追问“然后呢”的年轻侦探。模式是耳朵,句法是逻辑,置信度则是鉴别谎言的直觉。

Score(h→t∣s)=max⁡p∈P  1p(s)×Conf(p)\text{Score}(h \to t \mid s) = \max_{p \in \mathcal{P}} \; \mathbf{1}_{p}(s) \times \text{Conf}(p)
这句话的意思是:对一句证词,我们先看所有因果模式里哪个命中了,再取该模式的历史可信度作为这条因果线索的分数。
  1. 候选模式集合把“因为……所以……”“……导致……”等句式放进集合 P。
    P={因为_所以,导致,引发}\mathcal{P} = \{ \text{因为}\_{}\text{所以}, \text{导致}, \text{引发} \}
  2. 命中的指示函数如果句子 s 匹配模式 p,指示函数取 1,否则取 0。
    1p(s)∈{0,1}\mathbf{1}_{p}(s) \in \{0, 1\}
  3. 模式置信度Conf(p) 是这个模式在历史语料中真的表达因果关系的比例。
    Conf(p)=命中且为因果的次数命中总次数\text{Conf}(p) = \frac{\text{命中且为因果的次数}}{\text{命中总次数}}
  4. 最大分数在所有命中的模式里挑分数最高的,作为当前文本的抽取证据。
    Score=max⁡p(命中与否×可信度)\text{Score} = \max_{p} (\text{命中与否} \times \text{可信度})

数据发现

有些案子没有目击证人,只有一整箱监控录像。没有人口头告诉你“A 导致 B”,但录像里反复出现同一个规律:先是 A 变化,紧接着 B 变化。现实中,很多因果知识藏在数据里,因果图谱构建者要学会从数据中“发现”线索,而不是等着别人喂过来。

数据发现的第一条线索是时序先行:原因通常先发生,结果随后发生。如果观测到 X 在今天上升,Y 在明天上升,反向却不成立,那么“X 导致 Y”就比“Y 导致 X”更有说服力。第二条线索是协变关系:X 变,Y 也跟着变;但“一起变”还不够,因为可能是某个隐藏的 Z 在同时驱动两者,这就是常见的混淆变量。更有力的证据来自干预实验:主动改变 X,观察 Y 是否跟着改变。最后别忘了噪音过滤,数据里的异常点、采集误差、季节波动都必须处理,否则会把假相关当因果关系。

监控录像不会说谎,但它只会呈现表面顺序。数据发现给侦探提供嫌疑方向,而真正的定案还需要其他证据。没有干预实验和混杂控制,时序线索只是嫌疑人,不是定罪书。

Xt→Yt+1,Corr⁡(Xt,Yt+1)≫Corr⁡(Yt,Xt+1)X_t \to Y_{t+1}, \quad \operatorname{Corr}(X_t, Y_{t+1}) \gg \operatorname{Corr}(Y_t, X_{t+1})
这条公式是说:如果过去的 X 能明显预测未来的 Y,而过去的 Y 不能预测未来的 X,我们就有理由把箭头指向“X 到 Y”。
  1. 时间下标t 表示当前时刻,t+1 表示下一个时刻,区分谁先谁后。
    t∈{1,2,…,T}t \in \{1, 2, \dots, T\}
  2. 前因后果X 在 t 时刻的取值,与 Y 在 t+1 时刻的取值建立关联。
    Xt→Yt+1X_t \to Y_{t+1}
  3. 协方差标准化Corr 表示相关系数,用来衡量两个变量一起变化的强度。
    Corr⁡(X,Y)=Cov⁡(X,Y)σXσY\operatorname{Corr}(X,Y) = \frac{\operatorname{Cov}(X,Y)}{\sigma_X \sigma_Y}
  4. 方向不对称正向相关性远大于反向相关性,说明箭头更可能从 X 指向 Y。
    Corr⁡(Xt,Yt+1)≫Corr⁡(Yt,Xt+1)\operatorname{Corr}(X_t, Y_{t+1}) \gg \operatorname{Corr}(Y_t, X_{t+1})

专家知识

老侦探的经验有时比录像更值钱。他知道某条街的帮派标记意味着什么,知道某些案件看似独立却共用同一套作案手法。因果图谱构建也一样,纯文本和纯数据可能遗漏大量隐性知识,需要专家站出来补盲区。

专家知识的常见形式是领域本体:比如医药领域规定“药物”可以有一级副作用、二级副作用,“疾病”不能直接“导致”另一种疾病,只能“诱发并发症”。这类约束能让图谱不违背常识。另一种形式是规则库,专家写出“如果体温长期超过 38.5℃,则考虑感染风险”这类带条件的因果规则。规则进入图谱前通常要经过人工校验,校验后的规则会得到一个置信权重,代表这条专家知识有多值得信任。

技术实现上,专家知识不是简单粗暴地覆盖数据结论,而是和数据发现结果做加权融合。如果专家经验很强,就给它更高权重;如果数据证据充分,则适当调低专家权重的比例。

好的侦探团队不会只靠新人冲在第一线,也不会让老侦探的一句话说死案件。专家知识和数据证据相互校准,图谱才不会只看见“数据想让你看见的东西”。

Scorefinal(h,t)=β⋅sexpert(h,t)+(1−β)⋅sdata(h,t)\text{Score}_{\text{final}}(h,t) = \beta \cdot s_{\text{expert}}(h,t) + (1 - \beta) \cdot s_{\text{data}}(h,t)
最终分数是专家打分和数据打分的加权平均。β 越大,越相信老侦探;β 越小,越相信监控数据。
  1. 专家分数s_expert 表示领域知识对因果边 (h,t) 的认可程度。
    sexpert(h,t)∈[0,1]s_{\text{expert}}(h,t) \in [0,1]
  2. 数据分数s_data 表示统计模型或文本抽取对该边的支持程度。
    sdata(h,t)∈[0,1]s_{\text{data}}(h,t) \in [0,1]
  3. 权重系数β 控制专家知识在最终决策中的比重。
    β∈[0,1]\beta \in [0,1]
  4. 加权求和两种分数各乘权重再相加,得到融合后的因果可信度。
    Scorefinal=βsexpert+(1−β)sdata\text{Score}_{\text{final}} = \beta s_{\text{expert}} + (1 - \beta) s_{\text{data}}

方向判定

如果你每天早晨听到公鸡打鸣,然后太阳升起,你会认为是公鸡叫醒了太阳吗?显然不会。但数据不会自动分辩“公鸡打鸣”和“太阳升起”谁是因谁是果,它们只是高度相关。因果图谱构建最危险的一步,就是方向判定。

在这一步,我们面对的最大敌人是“相关混淆”:X 和 Y 有关系,但这种关系可能来自共同原因 Z。比如冰淇淋销量和溺水人数同时上升,共性原因是天气炎热,而不是“冰淇淋导致溺水”。后门准则提供了一个系统的排除方法:找到可能的混杂变量 Z,在固定 Z 的条件下重新考察 X 对 Y 的影响。如果控制 Z 后效应消失,说明原来的因果方向是假的;如果效应依然存在,因果箭头才站得住脚。

方向判定还可以借助反事实检验:假设把 X 换成另一个值,Y 是否真的会变?如果不管怎么假设,Y 都纹丝不动,那 X 就不是 Y 的原因。最终,每一对候选因果边都会得到一个方向评分,只有评分达标的边才被允许进入图谱。

方向判定像侦探区分“巧合”和“必然”。公鸡打鸣的故事告诉我们,相关性永远只能提出问题,不能回答“谁造成谁”。因果方向一旦标反,后续一切推理都会顺着错误箭头跑偏。

P(Y∣do⁡(X=x))=∑zP(Y∣X=x,Z=z) P(Z=z)P(Y \mid \operatorname{do}(X=x)) = \sum_{z} P(Y \mid X=x, Z=z) \, P(Z=z)
这个公式叫后门调整:把混杂变量 Z 把所有取值都固定住,再平均地看 X 对 Y 的真实影响,避免被“公鸡打鸣”式的假相关骗到。
  1. 干预记号 do(X=x)表示我们主动把 X 设为 x,而不是旁观 X 自然取到 x。
    do⁡(X=x)\operatorname{do}(X=x)
  2. 混杂变量 Z既影响 X 又影响 Y 的第三个变量,例如天气炎热。
    X←Z→YX \leftarrow Z \to Y
  3. 条件概率在给定 X 和 Z 时,Y 发生的概率。
    P(Y∣X=x,Z=z)P(Y \mid X=x, Z=z)
  4. 按 Z 分布求和把 Z 的所有可能取值按概率加权平均,得到总因果效应。
    ∑zP(Z=z)\sum_{z} P(Z=z)

冲突消解

假设三个证人给出三种说法:A 说“熬夜导致效率下降”,B 说“效率下降导致加班变多”,C 说“任务量大导致效率下降”。三根红线同时指向同一张关系墙,撕扯在一起,这就是冲突。多源信息融合时,冲突几乎是必然的,关键是怎么让它们各归其位。

冲突消解的第一步是可信度评估。来自高质量论文、通过人工校验的专家规则,权重自然高于一条随手抓取的网络文本。数据样本量大的统计结论,权重也会更高。第二步是对齐合并:不同来源可能把同一个实体写成“熬夜”“睡眠不足”“熬夜加班”,需要先做实体对齐,否则冲突清单里会混进大量伪冲突。第三步是去重更新:旧数据如果与新数据冲突,不是简单把旧的删掉,而是比较新旧证据的可信度,保留更可靠的一方,必要时定期重算。

加权投票是解决多源冲突的常见思路。每个来源投出自己支持的因果方向,并附上各自的权重;得票加权后最高的候选方向胜出。这样可以避免“一人一票”的弊端,毕竟小报证词和法医报告不该有同样的分量。

冲突消解不是和稀泥,而是像法官一样把每份证据放上天平。关系墙上的红线不该越扯越乱,而应在可信度校准后越缠越牢。

r^=arg⁡max⁡r∈R  ∑i=1nwi⋅1[ri=r]\hat{r} = \arg\max_{r \in \mathcal{R}} \; \sum_{i=1}^{n} w_i \cdot \mathbb{1}[r_i = r]
这段公式是“按可信度投票”:每个来源投出候选关系 r_i 并带权重 w_i,最后统计哪个关系得到的加权票数最多。
  1. 候选关系集合所有来源对同一对实体给出的候选因果方向,例如 A 致 B 或 B 致 A。
    R={r1,r2,…,rm}\mathcal{R} = \{ r_1, r_2, \dots, r_m \}
  2. 来源权重每个来源 i 都有一个可信度权重 w_i。
    wi∈[0,1]w_i \in [0,1]
  3. 投票指示函数如果来源 i 投给候选关系 r,就记 1,否则记 0。
    1[ri=r]\mathbb{1}[r_i = r]
  4. 加权求和与 argmax对每个候选关系累加权重,选总分最高者作为最终定案。
    r^=arg⁡max⁡r∑iwi⋅[ri=r]\hat{r} = \arg\max_{r} \sum_{i} w_i \cdot [r_i = r]

图谱应用

关系墙整理完毕,侦探团队要做的第一件事是退后一步,整体看一遍:有没有重名的便签?有没有互相矛盾的环路?统一图谱要求在融合时做 schema 对齐、实体对齐和全局一致性检查,保证整张图不是一堆游离小岛的拼盘。

统一之后,图谱要进入计算机能高效计算的世界,这就需要“知识嵌入”。把每个实体表示成一个固定维度的向量,把因果谓词表示成向量空间中的平移操作。这样一来,机器不必逐条遍历图结构,就能通过向量运算快速回答类似“A 和 B 之间有没有因果路径”这样的问题。最后,这份因果图谱可以注入大模型:在问答或推理时,模型先从图里检索到相关因果链,再作为外部证据生成答案,减少一本正经地胡说八道。

关系墙最终变成了一张可计算的数字地图。侦探可以用它在脑内推演“如果昨晚没加班,今天是否还会出错”,大模型也能借助它回答“如果增加睡眠,工作效率会怎样变化”这类因果问题。图谱构建的意义,正在于把散落的因果直觉变成可复用、可计算的基础设施。

min⁡h,r,t∑(h,r,t)∈G∥h+r−t∥2\min_{\mathbf{h}, \mathbf{r}, \mathbf{t}} \sum_{(h,r,t) \in G} \left\| \mathbf{h} + \mathbf{r} - \mathbf{t} \right\|_{2}
嵌入的目标是让“头实体向量 + 因果谓词向量”约等于“尾实体向量”。就像关系墙上“熬夜”加“导致”应该正好走到“健康受损”。
  1. 实体向量把每个头实体和尾实体映射成低维稠密向量。
    h,t∈Rd\mathbf{h}, \mathbf{t} \in \mathbb{R}^{d}
  2. 关系向量把因果谓词也表示成向量,它在向量空间里扮演“平移箭头”。
    r∈Rd\mathbf{r} \in \mathbb{R}^{d}
  3. 平移目标希望 h 加上 r 之后,近似等于 t。
    h+r≈t\mathbf{h} + \mathbf{r} \approx \mathbf{t}
  4. 最小化误差遍历图谱 G 中所有三元组,让总误差尽量小。
    min⁡∑(h,r,t)∈G∥h+r−t∥2\min \sum_{(h,r,t) \in G} \| \mathbf{h} + \mathbf{r} - \mathbf{t} \|_2

AI 应用场景

智能风控因果图谱

阶段:数据准备与知识工程

解决的问题:传统风控模型只能判断“逾期概率高”,却说不清“为什么逾期”。风控专家需要从大量申请材料、还款流水和征信报告中找出真实因果链。AI 通过文本抽取和数据发现,把“收入波动导致还款压力增大,进而导致逾期”这类因果路径自动构建成图谱,再用专家规则校准方向。

具体案例:某消费金融公司从 50 万份客服会话中抽取因果关键词,与还款时序数据融合,构建用户逾期因果图谱。当新用户出现“收入下降”信号时,模型能沿着因果边提前预警,而不是只给出一个冷冰冰的分数。

故障根因定位

阶段:推理与诊断

解决的问题:大型系统出现故障时,报警日志数千条,运维人员容易在相关但非因果的告警中迷失。AI 从历史故障工单中抽取因果三元组,结合监控数据的时序关系,构建故障因果图谱。发生新报警时,系统沿着因果图反向搜索,定位最可能的根因。

具体案例:某云厂商把“CPU 飙升导致接口超时,接口超时导致用户投诉”这类因果边录入图谱,把根因定位时间从 40 分钟缩短到 6 分钟。

大模型医疗知识增强

阶段:生成与知识增强

解决的问题:大模型回答“为什么这个药物会引起嗜睡”时,容易编造机制。通过因果图谱,模型能检索到“药物作用于中枢神经,抑制觉醒通路,导致嗜睡”的因果链,用结构化知识约束生成内容,降低幻觉。

具体案例:某医疗问答系统将医学指南中的因果规则构建为图谱,并把图谱嵌入向量库。用户提问时,系统先召回因果链,再让大模型基于因果链组织回答,显著提升回答的可信度。

Python 演示

python63 行
import refrom collections import defaultdict  class CausalGraphBuilder:    def __init__(self):        self.graph = defaultdict(float)        self._seen = set()     def extract_text(self, text):        patterns = [            (r"因为(.+?),所以(.+?)", 0.9),            (r"(.+?)导致(.+?)", 0.8),            (r"(.+?)引发(.+?)", 0.7),        ]        results = []        for pattern, conf in patterns:            for match in re.finditer(pattern, text):                head = match.group(1).strip()                tail = match.group(2).strip()                results.append((head, tail, conf, pattern))        return results     def add_text(self, text, source_weight=1.0):        for head, tail, conf, pattern in self.extract_text(text):            self._merge(head, tail, "causes", source_weight * conf)     def add_expert(self, head, tail, confidence):        self._merge(head, tail, "causes", confidence)     def _merge(self, head, tail, relation, weight):        key = (head, relation, tail)        if key not in self._seen:            self._seen.add(key)            self.graph[key] = weight        else:            old = self.graph[key]            self.graph[key] = max(old, weight)     def resolve(self):        resolved = {}        keys = list(self.graph.keys())        for head, rel, tail in keys:            reverse = (tail, rel, head)            if reverse in self.graph:                if self.graph[(head, rel, tail)] >= self.graph[reverse]:                    resolved[(head, rel, tail)] = self.graph[(head, rel, tail)]            else:                resolved[(head, rel, tail)] = self.graph[(head, rel, tail)]        return resolved  def main():    builder = CausalGraphBuilder()    builder.add_text("因为熬夜,所以免疫力下降")    builder.add_text("睡眠不足导致工作效率下降")    builder.add_expert("熬夜", "工作效率下降", 0.95)    for k, v in sorted(builder.resolve().items()):        print(k, "weight:", round(v, 2))  if __name__ == "__main__":    main()
目的:演示一个最小可用的因果图谱构建流程,从文本中抽取因果三元组,叠加专家置信度,再消解可能出现的反向冲突。
  1. results.append((head, tail, conf, pattern))把每个模式命中的因果线索连同置信度一起记入候选列表。
  2. self._merge(head, tail, "causes", source_weight * conf)把文本证据合并进统一的因果图,权重由来源可信度和模式置信度共同决定。
  3. key = (head, relation, tail)用三元组作为去重和冲突消解的唯一标识。
  4. self.graph[key] = max(old, weight)如果同一三元组再次出现,只保留更高的置信度,避免低质量证据拉低分数。
  5. reverse = (tail, rel, head)检查是否存在反向因果边,用于发现方向冲突。
  6. builder.add_text("因为熬夜,所以免疫力下降")输入一句自然语言,让规则模式自动抽出因果三元组。
  7. builder.add_expert("熬夜", "工作效率下降", 0.95)专家直接补充一条高置信度因果边,用于覆盖文本没提到的场景。

常见误区

误区我看到两个变量一起变化,时间上也有先后顺序,那它们一定是因果关系,直接把这个关系写进因果图谱就行。

正解一起变化只是候选线索。可能存在共同原因让两个变量“假同步”,比如冰淇淋销量和溺水人数都受天气影响。必须先做混杂控制、后门调整或反事实检验,再决定是否把这条边标成因果。

为何常见:人的大脑天生擅长找模式,看到“先 A 后 B”就忍不住脑补因果箭头,这是认知捷径在作怪。

误区自然语言里有大量因果表达,只要使劲从文本里抽模式,把句子攒得足够多,因果图谱就会自动完整。

正解文本只能覆盖人类写下来的那部分因果,而且语言表达充满歧义和省略。真实工程里必须把文本抽取的结果与统计数据、专家规则做多源融合,才能补上文本看不见的暗区。

为何常见:文本是最容易获取、最容易演示的数据源,初学者容易把“最容易”误当成“最充分”。

误区多个来源对同一对实体给出不同因果方向,那就投票,票多的一方胜出。

正解来源的质量差异巨大。一篇经过双盲评审的论文和一条匿名网络评论,权重不该相同。冲突消解要先评估可信度,再做实体对齐和去重,最后按权重合并,而不是简单数人头。

为何常见:“少数服从多数”是日常生活里最熟悉的决策方式,但知识工程关心的是证据质量,不是民主选举。

误区图谱规模够大,看起来才有竞争力,所以加边越快越好,节点越多越好。

正解因果图谱的价值在边是否正确。一条方向错误的因果边会污染下游所有推理;错误边多的大图谱,比稀疏但准确的图谱更危险。工程上应该优先保证正确率,再追求覆盖度。

为何常见:KPI 文化让人习惯用节点数、边数这种显眼数字衡量工作成果,忽视了错误边带来的隐性成本。

面试题

Q1. 因果三元组的基本形式是?

单选题 · easy

  • A.实体-因果-实体← 正确答案
  • B.主语-宾语-定语
  • C.案件-证词-结论
  • D.变量-误差-残差

答案:A。因果三元组由头实体、因果谓词、尾实体组成,对应“实体-因果-实体”。B、C、D 分别来自语法学、刑侦和统计回归,不是因果图谱的通用描述。

Q2. 文本抽取中处理“因为A,所以B”最适合先用哪种方法?

单选题 · easy

  • A.模式匹配抽取← 正确答案
  • B.深度强化学习
  • C.随机梯度下降
  • D.图卷积网络

答案:A。像“因为”“所以”这类固定句式结构清晰,用模式匹配就能低成本地抽取头尾实体。深度强化学习、随机梯度下降、图卷积网络都不是处理特定句式的首选。

Q3. 下列哪项对确认因果方向最有帮助?

单选题 · mid

  • A.先因后果时序
  • B.变量同步协变
  • C.后门准则排除混杂← 正确答案
  • D.词频统计相似

答案:C。时序和协变只能提供线索,不能排除共同原因。后门准则通过控制混杂变量来估计真实因果效应,是判断方向的关键工具。词频统计与因果方向无关。

Q4. 专家知识在因果图谱构建里的主要作用是?

单选题 · mid

  • A.提供规则补盲区← 正确答案
  • B.替代全部数据
  • C.删除所有冲突
  • D.自动生成随机

答案:A。专家知识用来补充文本和数据看不到的领域规则,并参与加权融合。它不能替代数据,也不能保证消除所有冲突,更不可能靠随机生成。

Q5. 反事实检验的核心思想是?

单选题 · mid

  • A.假设原因未发生结果是否改变← 正确答案
  • B.统计原因出现次数
  • C.比较文本长度
  • D.查看图表颜色

答案:A。反事实检验问的是“如果当初没有 X,Y 还会发生吗”。如果假设原因不发生时结果依然不变,说明该原因并非真正必要。次数、长度、颜色都不是反事实逻辑。

Q6. 在后门准则公式中,Z 代表什么?

单选题 · hard

  • A.需要控制的混杂变量← 正确答案
  • B.需要删除的错误样本
  • C.需要预测的未来值
  • D.需要嵌入的高维向量

答案:A。Z 是同时影响 X 和 Y 的混杂变量。后门调整要对 Z 的所有取值做加权平均,从而排除它对因果效应的干扰。Z 不是错误样本、未来值或向量。

Q7. 知识嵌入 TransE 的优化目标是?

单选题 · hard

  • A.h+r约等于t← 正确答案
  • B.h-r约等于t
  • C.h乘以r约等于t
  • D.h除以r约等于t

答案:A。TransE 把关系向量看成头实体向量到尾实体向量的平移,因此希望 h + r ≈ t。减、乘、除都不是该模型的平移语义。

Q8. 因果图谱构建的常见数据来源有哪些?

多选题 · mid

  • A.非结构化文本← 正确答案
  • B.观测数据← 正确答案
  • C.专家知识库← 正确答案
  • D.随机噪声

答案:ABC。文本提供语言证据,数据提供统计证据,专家知识库提供规则约束。随机噪声不是知识来源,而是需要在数据发现阶段过滤掉的对象。

Q9. 冲突消解通常包括哪些步骤?

多选题 · hard

  • A.可信度评估← 正确答案
  • B.实体对齐合并← 正确答案
  • C.更新去重← 正确答案
  • D.删除全部数据

答案:ABC。冲突消解要先评估来源可信度,再把不同写法但指向同一实体的结点对齐合并,最后对重复或过时信息做去重更新。删除全部数据等于放弃图谱,不是消解策略。

Q10. 因果三元组的构成部分包括?

单选题 · easy

  • A.头实体← 正确答案
  • B.因果谓词
  • C.尾实体
  • D.图形颜色

答案:A。因果三元组由头实体、因果谓词、尾实体三个部分组成。题干问的是“包括”时只有一个正确选项最容易引起迷惑,这里最佳答案就是 A 头实体,而 D 图形颜色显然不是知识成分。