L5.08.1counterfactual explanation设计研究

反事实解释说明改变哪些输入会改变结果

别名: 反事实解释 · 若改则变 · Wachter-style counterfactual

概念解释

拒贷旁边写:「若月收入再高四千,本次会过。」这句话不讲模型有几层,也不给特征排行。它给的是一个未发生的输入世界,以及那个世界里的输出。反事实解释说明的是改变哪些输入会改变结果(counterfactual explanation)。

Wachter 等人把它作为对算法决定的一种说明形式:最近的、能把结果翻过来的改动。它回答「怎样会不一样」,不回答「系统整体脾气如何」,也不回答「过程走过哪些层」。

机制

决策边界在输入空间里划开两类输出。从当前点走到另一类,最短或最可讲的那几步,就是一条反事实。用户得到的是路径,不是装置说明书。路径的用处是让人看见结果对输入的依赖:有些方向一动就翻,有些方向怎么走都还在原侧。

与局部代理不同。局部代理在邻域里拟合「这一次为什么」,不必指出一条能翻盘的改动。反事实可以完全不说「因为」,只说「若」。两种问法不要焊在同一句里。

怎么研究

同一拒件配反事实(指出可翻盘的输入改动)、配特征排行、或不配说明,看人能否指出一条真能翻盘的改动、以及是否误以为那是原因陈述。自变量:说明类型、反事实是否由真模型生成。因变量:指出的改动在模型上是否真翻、把「若」读成「因为」的比例。

反事实必须在原模型上验证。用另一个代理生成的「若」,测的不是反事实解释,是又一层事后故事。

边界

输出对输入不敏感(创作、随机采样)时,不存在稳定的「改哪些会变」,这条的对象消失。用户若根本不能改输入(只读结果),反事实没有使用场景。可行动性、多组反事实的选择、被用来规避、以及其他条件不变是否成立,是后面几条,这里只定义这种说明在指什么。

怎么落地

  • 标题就写成「若这些项变成这样,本次结果会变为…」,不要写成「原因」或「系统如何工作」。
  • 只展示在当前模型上跑过、确认会翻盘的改动。跑不过就不要写「若」。
  • 与排行、热力图分开呈现,避免用户把「若」和「因为」读成一句。
  • 验证:让人按说明改一版输入再提交。结果不变,这不是反事实;若人把它转述成「因为收入低所以拒」,类型已经被读错。

延伸

  • 同组L5.08.2 只有当被指出的输入是用户可改变的时,解释才具有可行动性 · L5.08.3 同一结果存在多组反事实,选择呈现哪一组本身带有价值判断 · L5.08.4 反事实解释会泄露决策规则,从而可能被用于规避 · L5.08.5 反事实成立的前提是其他条件保持不变,实际中很少满足
  • 相邻L5.01 可解释性的类型 · L5.02 局部解释与全局解释 · L5.05 透明度的适度原则
  • 站内检索counterfactual explanation · Wachter · if-then explanation

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/L5.08.1