Открыть сервис

SHAP-значения

SHAP-значения (от англ. SHapley Additive exPlanations) — это метод объяснения предсказаний моделей машинного обучения, основанный на кооперативной теории игр. SHAP-значения позволяют количественно оценить вклад каждого признака (фактора) в конкретное предсказание модели, обеспечивая интерпретируемость «чёрных ящиков» — сложных алгоритмов, таких как градиентный бустинг, нейронные сети или ансамблевые методы. Метод был предложен в 2017 году Скоттом Лундбергом и Су-Ин Ли и с тех пор стал одним из стандартов в области объяснимого искусственного интеллекта (XAI).

История и происхождение

Теоретической основой SHAP-значений является концепция значений Шепли (Shapley value), разработанная американским математиком Ллойдом Шепли в 1953 году в рамках теории кооперативных игр. Значение Шепли — это способ распределения общей выгоды между игроками в коалиции, при котором каждый игрок получает долю, пропорциональную его вкладу в общий результат. В контексте машинного обучения «игроками» выступают признаки, а «выигрышем» — предсказание модели.

В 2017 году Лундберг и Ли адаптировали эту концепцию для задач машинного обучения, создав универсальный метод, который объединяет несколько существовавших ранее подходов к объяснению (LIME, DeepLIFT, Layer-Wise Relevance Propagation) в единую теоретически обоснованную рамку. Работа «A Unified Approach to Interpreting Model Predictions» была представлена на конференции NeurIPS 2017 и получила широкое признание.

Математическая основа

SHAP-значение для признака \( i \) в предсказании модели \( f \) для конкретного объекта \( x \) вычисляется как среднее маргинального вклада этого признака по всем возможным подмножествам признаков (коалициям). Формально:

\[ \phi_i(f, x) = \sum_{S \subseteq N \setminus \{i\}} \frac{|S|! (|N| - |S| - 1)!}{|N|!} \left[ f_x(S \cup \{i\}) - f_x(S) \right] \]

где:

  • \( N \) — множество всех признаков,
  • \( S \) — подмножество признаков, не включающее \( i \),
  • \( f_x(S) \) — ожидаемое предсказание модели при условии, что известны только признаки из \( S \).

Ключевое свойство SHAP-значений — аддитивность: сумма всех SHAP-значений для данного предсказания равна разности между предсказанием модели и средним предсказанием по обучающей выборке (базовым значением). Это позволяет интерпретировать SHAP-значения как вклад каждого признака в отклонение от среднего.

Свойства и аксиомы

SHAP-значения удовлетворяют трём аксиомам, которые делают их единственным методом с такими свойствами:

  1. Локальная точность (Local Accuracy): сумма значений Шепли для всех признаков плюс базовое значение равна предсказанию модели.
  2. Отсутствие (Missingness): признак, отсутствующий в модели, имеет нулевое значение Шепли.
  3. Согласованность (Consistency): если модель изменяется так, что маргинальный вклад признака возрастает или остаётся неизменным, его SHAP-значение не уменьшается.

Эти аксиомы гарантируют, что SHAP-значения дают справедливое и непротиворечивое распределение вклада признаков.

Типы SHAP-значений

В зависимости от способа аппроксимации и области применения выделяют несколько вариантов SHAP:

  • KernelSHAP: универсальный метод, использующий ядерную аппроксимацию. Работает с любой моделью, но требует множества вызовов модели, что может быть вычислительно затратно.
  • TreeSHAP: оптимизированная версия для деревьев решений и ансамблей на их основе (Random Forest, XGBoost, LightGBM, CatBoost). Использует структуру дерева для точного и быстрого вычисления значений.
  • DeepSHAP: адаптация для глубоких нейронных сетей, основанная на обратном распространении ошибки.
  • LinearSHAP: точное решение для линейных моделей.
  • PartitionSHAP: для моделей, где признаки можно сгруппировать в иерархические структуры.

Применение

SHAP-значения широко используются в различных областях, где требуется интерпретация моделей машинного обучения:

  • Медицина: объяснение решений диагностических моделей (например, почему модель предсказала высокий риск заболевания). Врачи могут видеть, какие симптомы или показатели анализов повлияли на предсказание.
  • Финансы: интерпретация кредитных скоринговых моделей, обнаружение предвзятости (bias) и соответствие регуляторным требованиям (например, GDPR в Европе, требующий объяснения автоматизированных решений).
  • Промышленность: анализ причин отказов оборудования, интерпретация моделей прогнозирования износа.
  • Маркетинг: объяснение предсказаний оттока клиентов, сегментации, оценки пожизненной ценности.

Инструменты и программная реализация

Основная библиотека для вычисления SHAP-значений — shap (Python), разработанная Скоттом Лундбергом. Она поддерживает все основные фреймворки машинного обучения (scikit-learn, XGBoost, LightGBM, CatBoost, TensorFlow, PyTorch). Библиотека предоставляет функции для визуализации: summary plot (глобальная важность признаков), waterfall plot (локальное объяснение одного предсказания), dependence plot (зависимость SHAP-значения от значения признака).

Альтернативные реализации существуют в R (пакет fastshap), а также встроенные функции в некоторых коммерческих платформах (DataRobot, H2O Driverless AI).

Ограничения и критика

Несмотря на широкое распространение, SHAP-значения имеют ряд ограничений:

  • Вычислительная сложность: точное вычисление SHAP-значений требует экспоненциального числа вызовов модели, поэтому на практике используются аппроксимации, которые могут быть неточными.
  • Зависимость от распределения данных: SHAP-значения зависят от способа оценки отсутствующих признаков (обычно — маргинализация по обучающей выборке), что может приводить к нереалистичным сценариям.
  • Интерпретация не всегда интуитивна: для неспециалистов SHAP-значения могут быть сложны для понимания, особенно в случаях, когда признаки коррелированы.
  • Не учитывает взаимодействия признаков явно: хотя SHAP-значения косвенно учитывают взаимодействия через маргинальные вклады, существуют отдельные методы (SHAP interaction values) для их прямого анализа.

Сравнение с другими методами

SHAP-значения часто сравнивают с методом LIME (Local Interpretable Model-agnostic Explanations). Основное отличие: LIME строит локальную аппроксимирующую модель (например, линейную) и интерпретирует её коэффициенты, тогда как SHAP предоставляет теоретически обоснованное распределение вклада, удовлетворяющее аксиомам. SHAP считается более надёжным, но и более вычислительно затратным.

Интересные факты

  • SHAP-значения были использованы для выявления расовых и гендерных предубеждений в моделях машинного обучения, в частности, в системах прогнозирования рецидивов преступлений (COMPAS).
  • Метод лёг в основу нескольких коммерческих продуктов, включая интерпретаторы моделей в облачных платформах AWS, Google Cloud и Azure.
  • В 2020 году библиотека shap была включена в репозиторий scikit-learn-contrib, что подтверждает её статус в сообществе.

Источники

  • Lundberg, S. M., & Lee, S. I. (2017). A Unified Approach to Interpreting Model Predictions. Advances in Neural Information Processing Systems, 30.
  • Shapley, L. S. (1953). A Value for n-Person Games. Contributions to the Theory of Games, 2(28), 307–317.
  • Molnar, C. (2022). Interpretable Machine Learning: A Guide for Making Black Box Models Explainable. Leanpub.
  • Lundberg, S. M., Erion, G., & Lee, S. I. (2018). Consistent Individualized Feature Attribution for Tree Ensembles. arXiv preprint arXiv:1802.03888.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →