理由需真实反映依据
别名: 忠实理由 · 依据一致 · explanation fidelity
概念解释
排序真正用的是「最近三天的完播」,界面却写「因为你喜欢爵士」——即便用户确实喜欢爵士,这句话也没有反映依据。忠实的推荐理由(faithful recommendation reason)要求:写出来的原因,必须是这条结果进入当前位置的真实贡献因素,而不是一条碰巧为真的用户事实。
碰巧为真和构成依据是两回事。前者是传记,后者才是解释。
机制
用户拿理由去反推系统:若理由说「爵士」,下一次出现流行热歌就会被读成系统在说谎或在崩溃。错误的内部模型一旦建起来,可预测性比没有理由时更差,因为人在用一条假规则做预测。接受度也会跟着假规则走——接受的是一个并不存在的系统。
排序模型里的贡献可以拆成特征权重、近邻、上下文。理由若只挑最好听的那一项,等于做了一次选择性引用。人无法从被省略的项去校正模型,于是「真实反映」必须覆盖对位次有实质贡献的因素,而不是覆盖用户档案里所有为真的句子。
怎么研究
忠实度检验的标准做法是对照:取出排序器给出的贡献最大的特征或近邻,与界面文案引用的特征做一致性编码。自变量:文案是否来自真实贡献、是否改写成一条碰巧为真但零贡献的用户事实。因变量:用户事后能否指出真正依据、对「系统有没有说谎」的判定、用理由预测下一条时的对错。
不要把「用户觉得理由可信」当成忠实度。听起来像那么回事的文案可以完全不忠实。另一条常见混淆是把生成式事后叙述当成解释——那是另一组问题,这里只问:这句话是否指向真实贡献。
边界
深度模型的贡献本身不稳定(特征消融与 Shapley 值可以对同一条给出不同主因),「真实」只能精确到模型族允许的粒度,不能精确到唯一因果。商业上不能公开的信号(竞价、配额)若被藏起来,理由必然不完整,此时应标明「还有未列出的因素」,而不是编一个替代故事。这条不处理理由该不该劝人点开,也不处理句式是否千篇一律。
怎么落地
- 从排序日志里取对位次贡献最大的一项,写成理由;禁止从用户画像里另挑一句好听的。
- 若主因不能说(广告、库存),宁可写「受推广影响」或「库存优先」,也不要用口味语句去填。
- 验证:对同一条目,把理由里点名的特征在模型里置零,位次应明显下降。位次不动,理由就是假的。再找一批用户,问「系统凭什么把它放在这里」——答案应落在那项特征上,而不是落在任何一句档案事实。