尽管使用 Kolmogorov-Smirnov 等单变量统计检验来监测单个特征的漂移提供了基本检查,但它常常无法呈现完整情况。生产数据很少一次只改变一个特征。更常见的是,特征之间的关系发生变化,即使单个特征的边际分布看起来稳定,也会改变数据的联合分布。仅依赖单变量检验可能导致错误的安全感,遗漏了损害模型性能的明显漂移。设想一个基于 收入 和 债务水平 预测贷款违约的模型。收入和债务的单个分布可能随时间保持相似。但如果相关性发生变化,例如高收入人群开始承担的债务比例高于以往,模型基于训练数据相关性对风险的理解就会过时。联合分布的这种变化就是多变量漂移,检测它需要超越单个特征的查看方法。高维数据的难题直接比较高维概率分布计算成本高且统计上困难,因为存在“维度灾难”。随着特征数量 ($d$) 的增加,特征空间的体积呈指数增长,使得数据点越来越稀疏。这种稀疏性使得很难准确估计密度或可靠地应用传统统计检验。多变量漂移检测方法旨在通过总结高维分布或关注对变化敏感的特定方面来克服这一点。使用距离度量:马哈拉诺比斯距离一种方法是使用考虑数据相关结构的距离度量。马哈拉诺比斯距离就是一个重要的例子。与平等对待所有维度的欧几里得距离不同,马哈拉诺比斯距离通过数据协方差进行缩放,测量点与分布中心(均值)之间的距离。对于一个点 $x$ 以及均值为 $\mu$、协方差矩阵为 $\Sigma$ 的分布,平方马哈拉诺比斯距离为:$$ D_M^2(x, \mu, \Sigma) = (x - \mu)^T \Sigma^{-1} (x - \mu) $$在漂移检测的背景下,我们会将目标(生产)数据集与参考(训练)数据集进行比较。我们可以计算目标数据集中每个点相对于参考分布的均值 ($\mu_{ref}$) 和协方差 ($\Sigma_{ref}$) 的马哈拉诺比斯距离。这些距离的分布提供了对漂移的理解。如果目标数据与参考数据遵循相同分布,则假设数据是多元正态的,平方马哈拉诺比斯距离应近似遵循具有 $d$ 个自由度(其中 $d$ 是特征数量)的卡方 ($\chi^2$) 分布。常见方法如下:从参考数据计算 $\mu_{ref}$ 和 $\Sigma_{ref}$。确保 $\Sigma_{ref}$ 是可逆的(如有必要,处理多重共线性,例如,首先使用正则化或降维)。对于一段传入的目标数据,为每个点 $x_{target}$ 计算 $D_M^2(x_{target}, \mu_{ref}, \Sigma_{ref})$。使用统计检验(例如 KS 检验)将这些计算距离的分布与预期的 $\chi^2_d$ 分布进行比较。另外,随时间监测 $D_M^2$ 值的均值或特定分位数,如果它们基于 $\chi^2_d$ 分布明显偏离预期值,则触发警报。优点:考虑了特征之间的线性相关性。提供了一个总结多变量距离的单一统计量。缺点:为了 $\chi^2$ 检验的解释,假设数据近似为多元正态。对估计协方差矩阵 ($\Sigma_{ref}$) 的准确性敏感,这需要足够的数据。要求协方差矩阵是可逆的。捕获非线性关系的效果较差。{"layout": {"xaxis": {"title": "特征 1", "range": [-4, 4]}, "yaxis": {"title": "特征 2", "range": [-4, 4]}, "title": "多变量漂移示例", "legend": {"title": {"text": "数据集"}}, "width": 600, "height": 400}, "data": [{"x": [-0.3, 1.2, -1.5, 0.8, -0.1, 0.5, -0.9, 1.8, -0.6, 0.2, -1.1, 1.4, 0.0, -0.7, 1.0, -1.3, 0.6, -0.4, 1.1, -1.0, 0.3, -0.2, 1.5, -0.8, 0.1, -1.4, 1.7, -0.5, 0.9, -1.2], "y": [0.1, 1.1, -1.6, 0.7, 0.0, 0.6, -0.8, 1.9, -0.5, 0.3, -1.0, 1.3, 0.2, -0.6, 1.2, -1.4, 0.8, -0.3, 1.0, -1.1, 0.4, -0.1, 1.6, -0.7, 0.1, -1.5, 1.8, -0.4, 1.1, -1.3], "mode": "markers", "type": "scatter", "name": "参考 (低相关性)", "marker": {"color": "#1c7ed6"}}, {"x": [-0.2, 0.8, -1.0, 1.5, 0.1, 0.3, -0.7, 1.2, -0.4, 0.6, -1.3, 1.0, 0.0, -0.9, 0.5, -1.1, 0.9, -0.5, 1.4, -1.2, 0.2, -0.1, 1.6, -0.8, 0.4, -1.4, 1.3, -0.6, 0.7, -1.5], "y": [-0.1, 1.2, -0.8, 1.0, 0.3, 0.1, -1.1, 1.5, -0.2, 0.9, -1.0, 1.3, 0.2, -0.7, 0.8, -1.3, 1.1, -0.4, 1.6, -0.9, 0.4, 0.0, 1.2, -1.2, 0.6, -1.5, 1.4, -0.3, 1.0, -1.4], "mode": "markers", "type": "scatter", "name": "目标 (高相关性)", "marker": {"color": "#fd7e14"}}]}参考(蓝色)和目标(橙色)数据集的边际分布(投影到特征 1 或特征 2 轴上)看起来可能相似。但是,相关结构已明显改变,表明多变量漂移。对每个特征进行单变量检验可能会遗漏这种变化。降维方法另一种策略是首先降低数据的维度,然后在低维空间中应用漂移检测方法(包括单变量方法)。其理念是,高维结构中的明显变化将表现为低维表示中的变化。主成分分析(PCA)是一个常用选择。在参考数据上拟合 PCA,以找到主成分(最大方差的方向)。将参考数据和目标数据都投影到前几个主成分上。对沿每个选定主成分的数据分布应用单变量漂移检测检验(例如 KS 检验、总体稳定性指数)。另外,可以直接监测主成分。数据分布的明显变化可能会改变最大方差的方向或每个成分解释的方差量。比较参考数据和目标数据之间的 PCA 特征谱(特征值)可以显示此类结构变化。优点:通过在较低维度下工作,降低计算复杂性。可以捕获反映在主成分中的线性相关变化。缺点:降维过程中的信息丢失可能会掩盖某些类型的漂移。有效性在很大程度上取决于所选降维技术和保留的成分数量。PCA 专门关注方差,不一定关注对漂移最敏感的方向。其他多变量技术直接比较协方差矩阵: 存在直接比较参考协方差矩阵 $\Sigma_{ref}$ 与在一段近期数据上计算的目标协方差矩阵 $\Sigma_{target}$ 的方法。这可能涉及计算矩阵距离(例如,弗罗贝尼乌斯范数 $||\Sigma_{ref} - \Sigma_{target}||_F$)或在多元正态性等假设下基于似然比的统计检验。这直接针对特征之间的线性关系的变化。领域分类器(对抗验证): 如本章引言中简要提及的,训练一个分类模型来区分参考数据(标签 0)和目标数据(标签 1)是一种强大的、模型无关的方法。如果分类器获得高准确率(例如,AUC 明显大于 0.5),则表明两个数据集是可区分的,意味着漂移已经发生。分类器最依赖的特征还可以帮助诊断漂移的性质。这种方法将在后面“使用对抗验证进行漂移评估”部分详细说明。选择与实现最好的多变量漂移检测方法取决于以下因素:维度: 在没有足够数据或正则化的情况下,马哈拉诺比斯距离在非常高的维度中变得不太可靠。降维或领域分类器可能更适用。数据量: 估计协方差矩阵或训练领域分类器需要在参考和目标窗口中都有合理的数据量。计算资源: 某些方法,如直接协方差比较或复杂分类器,可能计算量大。可解释性: 距离度量提供单一的漂移分数。领域分类器或基于 PCA 的方法有时能提供更多关于哪些特征或关系正在漂移的理解。假设: 要注意基本假设,例如对于马哈拉诺比斯距离或协方差比较检验的某些统计解释中的多元正态性。在实践中,您可能会采用多种方法。例如,使用马哈拉诺比斯距离对整体分布偏移进行快速检查,辅以定期运行或当距离度量标记潜在漂移时运行的领域分类器,以获得更好的评估和可解释性。本章后面的实践练习将提供实现其中一种技术的经验。