

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 非对称 Shapley 值
<a name="clarify-feature-attribute-shap-asymm"></a>

Cl SageMaker arify 时间序列预测模型解释解决方案是一种植根于[合作博弈论](https://en.wikipedia.org/wiki/Cooperative_game_theory)的特征归因方法，在精神上与 SHAP 类似。具体来说，Clarify 使用[随机顺序组值](http://www.library.fa.ru/files/Roth2.pdf#page=121)，在机器学习和可解释性方面也被称为[非对称 Shapley 值](https://proceedings.neurips.cc/paper/2020/file/0d770c496aa3da6d2c3f2bd19e7b9d6b-Paper.pdf)。

## 背景
<a name="clarify-feature-attribute-shap-asymm-setting"></a>

目标是计算输入功能对给定预测模型 *f* 的归因。预测模型需要以下输入：
+ 过去时间序列*（目标 TS）*。例如，这可能是 Paris-Berlin 路线上每天的列车乘客，用 *x t* 表示。
+ (可选）协变量时间序列。例如，这可以是节日和天气数据，用 *zt* ​∈ RS 表示。在使用时，协变量 TS 可以只适用于过去的时间步长，也可以适用于未来的时间步长（包括在节日日历中）。
+ (可选）静态协变量，如服务质量（如一等座或二等座），用 *u* ∈ RE 表示。

根据具体的应用场景，可以省略静态协变量、动态协变量或两者。在预测范围 K≥0 的情况下（例如 K=30 天），模型预测可用公式表征：*f(x[1:T], z[1:T\+K], u) = x[T\+1:T \+K\+1]*。

下图显示了一个典型预测模型的依赖关系结构。时间 *t\+1* 的预测取决于前面提到的三类输入。

![典型预测模型的依赖结构。](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/clarify/clarify-forecast-dependency.png)


## 方法
<a name="clarify-feature-attribute-shap-asymm-explan"></a>

解释是通过查询时间序列模型 *f* 中由原始输入推导出的一系列点来计算的。按照博弈论的结构，Clarify 通过反复混淆（即设置为基线值）部分输入来平均预测结果的差异。时间结构可以按时间顺序或反时间顺序浏览，或两者兼而有之。按时间顺序的解释是从第一个时间步骤开始迭代添加信息，而反时间顺序的解释则是从最后一个步骤开始。后一种模式可能更适用于存在追溯偏差的情况，例如预测股票价格。计算解释的一个重要特性是，如果模型提供确定性输出，它们与原始模型输出相加。

## 结果归因
<a name="clarify-feature-attribute-shap-asymm-attr"></a>

结果归因是标记特定时间步或输入功能对每个预测时间步的最终预测的单独贡献的得分。Clarify 提供了以下两种粒度的解释：
+ 分时解释成本低廉，只提供特定时间步骤的信息，例如过去第 19 天的信息对未来第 1 天的预测有多大帮助。这些归因不能单独解释静态协变量，也不能综合解释目标和协变量的时间序列。归因是一个 *A* 矩阵，其中每个 *Atk​* 是时间步长 *t* 对时间步长 *T\+k* 预测的归因。请注意，如果模型接受未来协变量，*t* 可以大于 *T*。
+ Fine-grained 解释的计算密集度更高，并提供了输入变量所有属性的完整细分。
**注意**  
Fine-grained 解释仅支持按时间顺序排列。

  由此得出的归因是由以下内容组成的三联体：
  + 与输入时间序列相关的矩阵 *Ax* ∈ RT×K 其中，*Atkx​* 是 *xt* 对预测步骤 *T\+k* 的归因。
  + 张量 *Az* ∈ *RT\+K×S×K* 与协变时间序列相关，其中 *Atskz​* 是 *zts​*（即......协变 TS）对预测步骤 *T\+k* 的归因。
  + 与静态协变量相关的矩阵 *Au* ∈ RE×K，其中 *Aeku​* 是 *ue*（伦理静态协变量）对预测步骤 *T\+k* 的归因。

无论粒度如何，解释还包含一个偏移向量 *B* ∈ *RK*，它代表了所有数据被混淆时模型的“基本行为”。