假设你是一位电视剧导演,拍了一个遗憾收场的大结局。观众纷纷追问:“如果主角当初没签那份合同,结局会怎样?”你只回答了一个“如果”,观众却并不买账——他们还想知道:如果朋友没有背叛他呢?如果他早一年离开家乡呢?如果时间线的起点换一个变量呢?每一个“如果”都是一条独立的平行剧情线,回答了故事的不同侧面。只给一条,观众的疑惑只被解决了一小部分。 AI 的“反事实解释”与此惊人相似。当银行模型拒绝了一笔贷款,给出“把月收入提高 2 万元即可通过”是最直白的答案,但用户真正需要的是一组答案:提高收入、降低负债率、补充信用记录……每一种都改动不同的特征、沿着不同的因果路径,让用户从多个角度理解模型的决策边界。这就是反事实多样性——一组互不冗余、覆盖不同维度的替代方案。本文将带你从导演的视角,拆解这组“平行剧情线”如何生成、评估与应用。
理解反事实多样性,是构建高质量可解释 AI 系统的关键能力。掌握它,你就能在信贷风控、医疗建议、智能客服等场景中,为用户提供真正全面、可操作的决策依据,从“能解释”进阶到“解释得好”。
可视化演示
三模式展示反事实多样性:特征空间距离度量、因果路径独立性、DiCE联合优化多样性损失项。
本节配有交互动效(进入视口后自动加载,约 3KB)。
特征空间多样性 欧氏/马氏距离度量CF间分散度 距离越大多样性越高 Div = (2/k(k-1))Σ d(CFi,CFj) 马氏距离考虑协方差结构,消除量纲和特征相关性的影响。
反事实缘起
电视剧《人生岔路》结局播出后,观众最想知道的不是结局本身,而是每一个“如果”。导演若只剪辑一条“如果主角没跳槽”的平行结局,观众仍会追问:那如果他没结婚呢?如果行业没下行呢?一个问题,往往有多个不同的答案,每个答案都照亮故事的不同侧面。只答一条,无异于给迷宫只开一扇窗。
在机器学习中,这种“假如当初”的样本叫做反事实(Counterfactual)。当信贷模型拒绝用户时,我们问:样本 $\mathbf{x}'$ 长什么样,才能让模型给出“通过”?数学上看,这是求解一个最优化问题——在模型翻转分类的约束下,找一个与原始样本 $\mathbf{x}$ 距离最小的改动。它对应着导演的第一条平行剧情线:最小改动的“最省事结局”。
最小改动听起来完美,但它只是无数可行解中的一个。现实中用户可能无法立刻提高收入 2 万元,却能先清偿一笔小额负债;可能无法换工作,却能提前结清信用卡分期。不同人的资源约束不同,“最优”答案其实各不相同。因此,高质量的解释系统应当同时呈现这些答案,而不是假设所有人都走同一条“最省事”的路。
d(\mathbf{x}, \mathbf{x}')
回到导演的比喻:优秀的分镜师会为关键转折预留多套备选剧本,因为不同观众的生活经验不同,能“触动”他们的剧情线也不同。反事实多样性,正是要求这组备选剧本在内容上拉开差距,而不是同一个内核换了件衣服重新播放。
- 目标类 $y^*$用户期望模型给出的新标签。贷款场景中,$y^*$ 就是从“拒绝”翻转为“通过”。
2. 黑箱模型 $f$:被解释的分类器。约束 $f(\mathbf{x}')=y^*$ 要求反事实样本必须被模型判为目标类。$$f(\mathbf{x}') = y^* - 距离函数 $d$衡量原始样本与反事实的改动幅度,常用欧氏距离,值越小改动越“轻”。
4. 最小化操作:在满足分类翻转的前提下,不断搜索距离最小的那个点。$$\min_{\mathbf{x}'}\; d(\mathbf{x}, \mathbf{x}')
多样定义
假如导演向编剧组提出要求:“给我 5 条平行结局。”编剧交上来 5 条,全部是“主角没有遇到初恋”的微调版本——只是相遇时间、地点略有差异。这能叫多样化吗?不能。观众一眼就能看出:这些剧情线改动的是同一个变量,本质上是同一条线。真正多样的平行结局,应该分别改动事业、家庭、健康、时代背景等不同维度。
在反事实语境下,“不同维度”有两个层次。第一层是特征空间互不冗余:两条反事实改动特征集合的重叠越小,它们越多样。比如一条改“月收入”,另一条改“负债率”,就比两条都改“月收入”更互补。第二层是因果路径互不冗余:即使两条反事实在特征上有交集,只要它们沿着不同的因果链条驱动结局变化,也不算冗余。比如“降薪→离职”与“被裁员→离职”,特征相似但机制不同。
度量多样性最直接的方法是计算集合内所有样本的成对距离,见下方公式:它把所有反事实两两配对,求平均归一化距离。比值越接近 1,说明组内样本越“各有各的故事”;越接近 0,说明大家是“换汤不换药”的复读机。
d(\mathbf{x}_i, \mathbf{x}_j)
这套“互不冗余”的思想还有一个更高级的实现:行列式点过程(DPP)。它通过计算集合的核矩阵行列式 $\det(\mathbf{K}_\mathcal{C})$ 来评估子集多样性——如果集合中两条反事实高度相似,核矩阵的行列式会趋向 0;行列式越大,说明这套“演员阵容”越没有撞型。编剧选角时怕撞型,反事实选择时同理。
- 反事实集合 $\mathcal{C}$一组反事实样本,如同 5 条备选平行结局的剧本合集。
2. 组合数 $\binom{k}{2}$:从 $k$ 个样本中任选 2 个的配对总数,用来把总和变成"平均每对差异"。$$\binom{k}{2} = \frac{k(k-1)}{2} - 成对距离 $d(\mathbf{x}_i, \mathbf{x}_j)$两条反事实在特征空间的距离。距离越大,说明两条剧情线改动方向越不同。
4. 归一化 $d_{\max}$:集合内最大的成对距离,用它做分母把指标压到 $[0,1]$,方便跨场景比较。$$d_{\max} = \max_{i<j}\; d(\mathbf{x}_i, \mathbf{x}_j)
评估指标
剧评人评价一组平行结局,不会只数“有几条”就下结论。他们会看三件事:第一,这几条剧情线是否互不相同(多样性);第二,每条线的情节推进是否合情合理、不违背人物设定(可达性);第三,观众想要复现这条线所付出的“改剧本成本”高不高(可操作性)。DIVERSIFY 论文正是把这三条直觉变成了可计算的评估指标。
- 多样性(Diversity):由上一节的成对距离或 DPP 行列式度量,回答“这组反事实是不是在重复同一个套路”。
- 可达性(Proximity):每条反事实与原始样本的距离。距离太远,方案就像让穷人“先挣一个亿”一样不可执行。
- 可操作性(Sparsity):一组反事实需要改动特征的数量。改 1 个特征比改 5 个特征更容易被用户接受。
其中 加速评估(Accelerated Evaluation)是一个重要技巧:直接计算两两距离需要 $O(k^2)$ 次调用模型,非常昂贵。DIVERSIFY 提出了 ADP(平均成对距离)等代理指标,只依赖特征空间的几何关系,不必重新评估模型就能快速打分,像剧评人只看剧本大纲就能判断有没有撞梗,无需把每集拍完再评价。
d(\mathbf{x}_i, \mathbf{x}_j)
- 集合规模平方 $|\mathcal{C}|^2$全部有序对的数量。把它放在分母,得到的是“平均每对样本的距离”。
2. 双重求和:遍历 $i$ 和 $j$ 的所有组合,把每一对样本的差异都累加起来。$$\sum_{\mathbf{x}_i, \mathbf{x}_j \in \mathcal{C}} - 距离函数 $d(\cdot,\cdot)$与多样定义中一致,常用欧氏距离刻画特征层面的差异。
生成方法
\displaystyle \mathcal{L}(\mathcal{C}) = \frac{1}{k}\sum_{i=1}^{k} \left[ \mathcal{L}_{\text{cls}}\big(f(\mathbf{x}_i), y^*\big) + \lambda_1\, d(\mathbf{x}, \mathbf{x}_i)\right] - \lambda_2\, \mathrm{Div}(\mathcal{C})
- \lambda_2\, \mathrm{Div}(\mathcal{C})
编剧团的经验同样适用于这里:头脑风暴(采样)成本低但质量参差;主编拍板(贪心选取)质量可控但依赖好的候选池;全流程协同创作(集合优化)效果最好,但需要精心调节两三个“创作纪律”超参数。
> 这是一个"集合级"损失函数。它不再优化单条反事实,而是同时优化一组反事实,在有效性、稀疏性、多样性三者之间寻求平衡。1. 反事实数量 $k$:导演要求编剧组出几条平行结局,$k$ 就是剧集数。$$k- 分类损失 $\mathcal{L}_{\text{cls}}$将第 $i$ 条反事实输入模型,逼着输出目标类 $y^*$,保证结局确实翻转。
3. 距离正则 $\lambda_1 d(\mathbf{x}, \mathbf{x}_i)$:惩罚改动过大的方案,权重 $\lambda_1$ 控制"贴近原始剧情"的强度。$$\lambda_1\, d(\mathbf{x}, \mathbf{x}_i) - 多样性奖励 $\lambda_2\, \mathrm{Div}(\mathcal{C})$减去一个多样性打分,鼓励集合整体拉开差距,$\lambda_2$ 是放飞系数。
5. 集合平均:对 $k$ 条反事实取平均,避免某一条"一枝独秀"、其余全部摆烂。$$\frac{1}{k}\sum_{i=1}^{k}[\cdot]
性能平衡
如果编剧为了追求“每条剧情线都不同”,把主角写成外星人、把年代改到 3024 年,观众一定会抗议:“这不是原来那部剧!”多样性不是无限度的,它必须服从一个前提——方案要在现实世界可落地。
这就是稀疏性与多样性的矛盾:一条反事实要多样,往往需要改动更多特征、偏离原始样本更远;但代价越大,用户越难执行。优化理论给出了一种稳妥的折中方式——把“多样性至少达到多少”变成约束条件,而不是无限增大奖励。如下方公式:我们要求整组反事实的总改动特征数最小,同时强制每条反事实都在目标类中、集合的多样性不低于阈值 $\tau$。
公式中的 $\|\cdot\|_0$ 是 $L_0$ 范数,数的是向量里非零元素个数,也就是“一共改动了几个特征”。$\tau$ 是多样性下限,由业务方决定:信贷场景里 $\tau$ 可以设小一点,因为客户能执行的动作本来就不多;研究场景里 $\tau$ 可以设大,鼓励探索更广的因果空间。
f(\mathbf{x}_i) = y^*
$L_0$ 范数不可导,实际工程中常用 $L_1$ 范数近似,或用贪心搜索逐特征尝试。这就像导演给编剧组立规矩:可以脑洞大开,但每一条新剧情线必须能在现实拍摄条件下完成,且彼此差异至少达到合格线——这既保住了多样性的价值,也没让解释沦为天方夜谭。
- $L_0$ 范数 $\|\mathbf{x}_i - \mathbf{x}\|_0$统计向量中非零元素的个数,即第 $i$ 条反事实改动了几个特征。
2. 总改动求和:把所有反事实的改动特征数加起来,总改动越小,方案越便于用户执行。$$\sum_{i=1}^{k} \|\mathbf{x}_i - \mathbf{x}\|_0 - 翻转约束每条反事实都必须被模型判为目标类,缺一条整组方案作废。
4. 多样性阈值 $\tau$:$\mathrm{Div}(\mathcal{C}) \ge \tau$ 等价于"不允许编剧交 5 个大同小异的烂剧本"。$$\mathrm{Div}(\mathcal{C}) \ge \tau
落地场景
不同播出平台会放送不同的结局剪辑:电视台版本强调家庭线的改动,流媒体版本突出事业线的转折,海外版则改变时代背景。同一组原始剧情,针对观众群体的可操作性分发平行方案。这正是反事实多样性在真实业务中的姿态——按用户的能力和处境,分发一组可执行的方案。
信贷风控是最典型的场景。银行模型拒绝贷款后,智能助手一次性给出三条补全路径:“提高月收入至 2 万元”、“将信用卡负债率降至 30%”、“将贷款申请延后 6 个月(待征信记录更新)”。三条路径改动特征互不重叠、因果机制不同,用户在三条中总能找到一条自己够得着的。
医疗建议场景中,模型评估出患者的高血糖风险后,给出多维度反事实:“每周增加 150 分钟快走”、“主食替换为低 GI 食物”、“调整夜间用药时间”。它们分别作用于运动、饮食、用药三条因果路径,患者可以根据生活节奏选择执行。智能客服申诉场景同样受益:用户被拒后,系统给出多条“可申诉条件”,每条对应不同的规则维度。
评估一组反事实方案最终好不好用,要综合多样性、每条方案的可达性以及整体稀疏性,加权打一个总分。下方公式中的权重 $w_1, w_2, w_3$ 由业务方根据场景调节——信贷场景更看重 $w_3$(可操作性),研究探索场景更看重 $w_1$(多样性)。
\mathrm{spar}(\mathcal{C})
至此,导演的拍摄计划完整了:先理解单一反事实的局限(缘起),再定义什么是真正的“不同”(多样定义),用剧评人的眼光打分(评估指标),组织编剧团队产出多条线(生成方法),约束剧情不跑偏(性能平衡),最后按平台分发(落地场景)。一台可落地的多结局“放映机”就这样搭好了。
- 权重 $w_1, w_2, w_3$三个旋钮,决定业务方更在乎哪个目标,如同电视台决定结局剪辑的侧重点。
2. 可达性均值:对每条反事实与原始样本的距离取平均,衡量方案整体"够不够得着"。$$\frac{1}{k}\sum_{i=1}^{k} \mathrm{prox}(\mathbf{x}_i) - 稀疏性函数统计整组方案需要改动的特征总量,值越大用户操作成本越高。
4. 加权求和:把三个维度乘上权重后相加,得到一组方案的最终质量分。$$w_1\, \mathrm{Div}(\mathcal{C}) + w_2\, \mathrm{prox}(\mathcal{C}) + w_3\, \mathrm{spar}(\mathcal{C})
AI 应用场景
信贷风控中的多路径解释
阶段:模型解释与业务决策辅助
解决的问题:传统风控系统只返回“拒绝”或单一的“提额建议”,用户难以理解必须改哪个维度,申诉率居高不下。基于多样性的反事实集,可一次性给出多条互不冗余的改进路径,覆盖收入、负债、征信记录等不同特征,大幅提升解释的全面性和用户遵从度。
具体案例:某消费金融 App 上线“多方案信贷顾问”后,被拒用户会看到三条建议:“月收入增加 2000 元”、“信用卡负债率降至 30% 以下”、“6 个月后征信更新再申请”。系统记录到:用户选择其中至少一条方案的比例从 18% 提升至 54%,二次申请通过率提高 21%。
慢病管理的多维度生活方式干预
阶段:预测结果解释与个性化干预推荐
解决的问题:传统健康管理只给一个“管住嘴迈开腿”的模糊建议,执行率低。利用反事实多样性,为每位患者生成覆盖饮食、运动、睡眠、用药四条因果路径的干预方案,患者按自身条件选择最容易执行的一条,提升依从性。
具体案例:某三甲医院糖尿病管理项目接入多样反事实引擎后,根据患者血糖预测模型生成三组平行干预方案:替换早餐主食、每周 3 次快走、调整晚餐进食顺序。随访 3 个月,患者方案选择率从 32% 提升至 67%,血糖达标率提升 15%。
智能客服申诉的多规则匹配
阶段:自动决策后的用户沟通
解决的问题:传统客服系统对“驳回类”结果只能复读政策原文,用户体验差。通过反事实多样性,客服机器人能生成多条符合条件的申诉路径(如“补传收入证明”、“提供新工作合同”、“降低申请额度”),每条对应不同规则维度,让用户在自助渠道完成问题解决。
具体案例:某电商平台先用梯度优化生成 50 条候选反事实,再用贪心最远点选取 3 条推送到申诉页面,用户选择任一方案完成动作后自动复检。上线后人工客服介入率下降 28%,用户满意度提高 12 个百分点。
Python 演示
import numpy as npfrom sklearn.linear_model import LogisticRegressionfrom sklearn.datasets import make_classification class DiverseCF: def __init__(self, model): self.model = model def predict(self, x): prob = self.model.predict_proba(x.reshape(1, -1))[0, 1] return 1 if prob >= 0.5 else 0 def candidate(self, x_orig, target, rng, sigma=0.8): for _ in range(300): x_cf = x_orig + rng.normal(0, sigma, size=x_orig.shape) if self.predict(x_cf) == target: return x_cf return None def diverse_set(self, x_orig, target, k=5, seed=0): rng = np.random.default_rng(seed) cands = [] for _ in range(200): cf = self.candidate(x_orig, target, rng) if cf is not None: cands.append(cf) if not cands: return [] picked = [cands[0]] for _ in range(k - 1): best, best_score = None, -1 for cand in cands: if any(np.allclose(cand, p) for p in picked): continue score = min(np.linalg.norm(cand - p) for p in picked) if score > best_score: best, best_score = cand, score if best is None: break picked.append(best) return picked def adp(cf_set): total, n = 0.0, len(cf_set) for i in range(n): for j in range(n): total += np.linalg.norm(cf_set[i] - cf_set[j]) return total / (n * n) def main(): X, y = make_classification(n_samples=400, n_features=4, n_informative=3, n_redundant=0, n_clusters_per_class=1, random_state=7) model = LogisticRegression(max_iter=500) model.fit(X, y) gen = DiverseCF(model) x_orig = X[0] target = 1 - model.predict(x_orig.reshape(1, -1))[0] for seed in range(3): cf_set = gen.diverse_set(x_orig, target=target, k=4, seed=seed) print('seed', seed, 'ADP=%.4f' % adp(cf_set), 'count', len(cf_set)) if __name__ == '__main__': main()
x_cf = x_orig + rng.normal(0, sigma, size=x_orig.shape)在原始样本附近做随机扰动,产生一条候选“平行剧情线”。if self.predict(x_cf) == target剧本审校:只有分类结果翻转到目标类的候选才算合格反事实。score = min(np.linalg.norm(cand - p) for p in picked)计算候选与已选集合的最近距离,距离越大说明这条线与已有剧情越不雷同。if score > best_score:贪心最远点选取:每轮挑差异最大的候选加入集合,保证集合整体多样性。total += np.linalg.norm(cf_set[i] - cf_set[j])实现 ADP 指标:统计集合内所有有序对的平均距离,值越大越多样。for _ in range(300):单条候选最多尝试 300 次随机扰动,防止死循环;实际项目中可换成梯度优化加速。
常见误区
误区多生成几个反事实样本,多样性自然就高了。哪怕 5 个方案都只改“收入”这一个特征,只要有 5 个不同的具体数值,也算给了用户多种选择。
正解多样性的核心是互不冗余。特征空间上改动维度不重叠、因果路径上机制不重复,才叫真多样。用成对距离或 DPP 行列式一测便知:5 个都是“改收入”,ADP 几乎为 0,等于一个剧本拍了五遍。数量只是多样性的必要条件,远非充分条件。
为何常见:人容易把“数量”等同于“覆盖”,看到多个样本就默认它们覆盖了不同角度,忽略了样本间的相似性。
误区既然多样性是目标,那就把每条反事实改得越五花八门越好,哪怕要改五六个特征、偏离原始样本十万八千里。
正解无限增大多样性会让反事实远离原始样本,解释失真、用户无法执行。正确做法是把它放进约束:$\mathrm{Div}(\mathcal{C}) \ge \tau$,同时限制每条的改动幅度。信贷场景中,“把职业换成宇航员”虽然多样,却毫无可操作性。
为何常见:只盯着多样性一个指标看,忽略了反事实解释的根本目的是帮助用户采取行动。
误区只要两个反事实在特征空间距离远,就一定是多样的,没必要研究它们背后的因果链条。
正解特征距离只能衡量“表面不同”,两个反事实可能改的是同一条因果链上的两个中间节点。比如“降薪”与“被裁员”最终都通过“收入下降→还款能力降低”导致拒贷,因果机制完全重叠。高质量多样性必须同时考察特征空间与因果路径两个层面。
为何常见:反事实与普通数据增强的最大区别就在于它携带因果语义,初学者容易把它当成单纯的采样问题。
误区反事实解释追求最小改动就行,每次只挑与原始样本距离最近的那一条推荐给用户,多样性可有可无。
正解对用户而言,最近改动不一定是最可执行的。多维覆盖能让用户从自身条件出发找到适合自己的方案,是评估解释质量的重要维度。DIVERSIFY 将多样性、可达性、可操作性并列为三个目标,正是为了纠正这种“单点最优”的惯性。
为何常见:早期反事实研究都以单样本最小化为主流,思维惯性让人默认“离得近=好解释”,忽略了真实用户需求的多样性。
面试题
Q1. 下列哪项最能描述反事实多样性的核心目标?
- A.生成尽可能多的反事实样本
- B.让反事实覆盖不同特征或因果路径← 正确答案
- C.让反事实与原始样本完全一致
- D.让反事实的分类结果与原样本相同
答案:B。反事实多样性的本质是互不冗余,即一组反事实在特征空间和因果路径上彼此拉开差距,覆盖多个角度。数量多、结果一致都不能算多样;选项 C 更是反事实的对立面。
Q2. 两条反事实都只改动“月收入”和“负债率”,但改动数值不同,这属于?
- A.高多样性
- B.特征空间冗余← 正确答案
- C.因果路径多样
- D.无法判断
答案:B。两条反事实改动的特征维度完全相同,只是数值不同,在特征空间上高度冗余。就像导演给了五个平行结局,却都在改同一对角色关系,本质是同一个剧本。
Q3. 反事实目标函数中,距离项 $d(\mathbf{x}, \mathbf{x}')$ 的作用是什么?
- A.让反事实远离原始样本
- B.让反事实尽量贴近原始样本← 正确答案
- C.让模型预测更准确
- D.让特征数量增加
答案:B。距离项代表“最小改动”原则,鼓励在满足分类翻转的前提下,改动幅度尽量小。它对应导演剪辑中的“低成本路线”,距离越大方案越难执行。
Q4. 行列式点过程(DPP)如何用于保证反事实集合的多样性?
- A.让核矩阵所有元素变小
- B.让集合的核矩阵行列式尽量大← 正确答案
- C.让反事实之间的欧氏距离为零
- D.让模型输出概率完全相等
答案:B。DPP 的核矩阵中每个元素表示两条样本的相似度,集合的行列式越大说明集合内相似度越低。最大化 $\det(\mathbf{K}_\mathcal{C})$ 等价于挑选一组“演员不撞型”的反事实阵容。
Q5. DIVERSIFY 框架中并列提出的三个评估目标是什么?
- A.多样性、可达性、可操作性← 正确答案
- B.准确率、召回率、F1 值
- C.稀疏性、鲁棒性、可扩展性
- D.公平性、隐私性、可解释性
答案:A。DIVERSIFY 将多样性(diversity)、可达性(proximity)、可操作性(sparsity)并列为反事实解释质量的三个目标,回答了“一组方案好不好”的评价问题。
Q6. 若集合优化目标中多样性奖励系数 $\lambda_2$ 设置过大,最可能导致什么?
- A.所有反事实都聚集在一起
- B.反事实远离原始样本且难以执行← 正确答案
- C.模型分类精度下降
- D.集合规模自动缩小
答案:B。$\lambda_2$ 控制多样性奖励的强度,过大会让优化器“放飞自我”,各条反事实为了拉开差距而大幅偏离原始样本,最终伤害可达性和可操作性。
Q7. 稀疏性度量通常使用哪种范数?
- A.L2 范数
- B.L0 范数← 正确答案
- C.无穷范数
- D.核范数
答案:B。L0 范数统计向量中非零元素的个数,对应“改动了几个特征”。L2 范数只能衡量改动幅度,无法体现“动了几处”,因此稀疏性通常采用 L0(工程上常用 L1 近似)。
Q8. 在约束优化 $\min_{\mathcal{C}} \sum_{i=1}^{k} \|\mathbf{x}_i - \mathbf{x}\|_0$ 中,约束 $\mathrm{Div}(\mathcal{C}) \ge \tau$ 的含义是?
- A.每条反事实必须与原始样本相同
- B.保护多样性不低于业务可接受的最小阈值← 正确答案
- C.要求模型必须重新训练
- D.限制反事实数量不超过 $\tau$
答案:B。$\tau$ 是多样性下限,代表“我们允许的剧本最小差异程度”。它把多样性从奖励项变成硬性约束,防止优化器为了稀疏性把方案做得千篇一律。
Q9. 下列哪些做法可以有效提升反事实集合的多样性?
- A.随机采样大量候选反事实← 正确答案
- B.用贪心最远点方式挑选反事实← 正确答案
- C.只保留距离原始样本最近的一个反事实
- D.用 DPP 行列式作为子集选择标准← 正确答案
答案:ABD。随机采样提供候选池,贪心最远点选取和 DPP 都能保证选出的子集互不冗余。选项 C 只取单一最近样本,会完全丧失多样性。
Q10. 关于“因果路径互不冗余”,下列说法正确的是?
- A.两个反事实在因果图上触发不同机制链← 正确答案
- B.即使特征覆盖有重叠,因果链条仍可互异← 正确答案
- C.因果路径与特征距离毫无关系
- D.只需比较模型输出概率,不必比较因果路径
答案:AB。因果路径互不冗余指两条反事实的诱发机制链不同。特征重叠不一定机制重叠,例如“降薪”与“被裁员”特征不同但因果链可能收敛;反之特征部分重叠也可能机制互异。C 和 D 都否定了因果视角的价值,错误。