SHAP
SHAP (SHapley Additive exPlanations) — это метод объяснения предсказаний моделей машинного обучения, основанный на теории кооперативных игр и концепции значений Шепли. Он позволяет количественно оценить вклад каждого признака (фактора) в конкретное предсказание модели, обеспечивая интерпретируемость результатов «чёрных ящиков» (например, нейронных сетей, градиентного бустинга или случайного леса). SHAP сочетает в себе теоретическую обоснованность, локальную точность и согласованность, что делает его одним из наиболее популярных инструментов в области объяснимого искусственного интеллекта (XAI).
История и происхождение
Метод SHAP был предложен в 2017 году Скоттом Лундбергом (Scott Lundberg) и Су-Ин Ли (Suh-In Lee) из Вашингтонского университета. В своей работе «A Unified Approach to Interpreting Model Predictions» они объединили идеи из теории игр (значения Шепли, разработанные Ллойдом Шепли в 1953 году) и существующие методы объяснения, такие как LIME (Local Interpretable Model-agnostic Explanations), DeepLIFT и Layer-Wise Relevance Propagation. Основная цель заключалась в создании единого подхода, который гарантировал бы несколько ключевых свойств: локальную точность (сумма вкладов признаков равна предсказанию), отсутствие признака (нулевой вклад для неиспользуемых признаков) и согласованность (изменение модели, увеличивающее влияние признака, не уменьшает его вклад).
С момента публикации SHAP быстро завоевал популярность в сообществе data science. В 2018 году Лундберг и Ли выпустили библиотеку shap для Python, которая стала стандартом для объяснения моделей. В 2019 году метод был удостоен награды за лучшую работу на конференции NeurIPS.
Основные принципы и теория
Значения Шепли
В основе SHAP лежит концепция значений Шепли из теории кооперативных игр. В контексте машинного обучения «игроками» являются признаки, а «выигрышем» — предсказание модели. Значение Шепли для признака — это средний маржинальный вклад этого признака по всем возможным подмножествам признаков (коалициям). Формально, для модели \( f \) с множеством признаков \( N \) значение Шепли для признака \( i \) определяется как:
\[ \phi_i = \sum_{S \subseteq N \setminus \{i\}} \frac{|S|! (|N| - |S| - 1)!}{|N|!} \left[ f(S \cup \{i\}) - f(S) \right] \]
где \( S \) — подмножество признаков, \( f(S) \) — ожидаемое предсказание модели при условии, что известны только признаки из \( S \). Вычисление точных значений Шепли требует перебора всех \( 2^{|N|} \) подмножеств, что вычислительно нереализуемо для большого числа признаков. SHAP предлагает аппроксимации, основанные на аддитивной структуре.
Аддитивная модель объяснения
SHAP представляет предсказание модели как сумму базового значения (ожидаемого предсказания по всему датасету) и вкладов каждого признака:
\[ f(x) = \phi_0 + \sum_{i=1}^{M} \phi_i \]
где \( \phi_0 \) — базовое значение (обычно среднее предсказание по обучающей выборке), \( \phi_i \) — значение SHAP для признака \( i \), а \( M \) — количество признаков. Такая аддитивная форма гарантирует локальную точность и интерпретируемость.
Виды и реализации SHAP
В библиотеке shap реализовано несколько вариантов метода, различающихся по скорости и точности:
KernelSHAP
Универсальный метод, не зависящий от типа модели. Он использует взвешенную линейную регрессию для аппроксимации значений Шепли. KernelSHAP работает с любой моделью, но медленнее специализированных методов. Применим для небольших датасетов (до нескольких тысяч объектов) и признаков (до нескольких десятков).
TreeSHAP
Специализированный метод для деревьев решений и ансамблей на их основе (например, XGBoost, LightGBM, CatBoost, Random Forest). TreeSHAP использует структуру дерева для эффективного вычисления значений Шепли за время, пропорциональное глубине дерева. Он значительно быстрее KernelSHAP и поддерживает обработку пропущенных значений.
DeepSHAP
Метод для глубоких нейронных сетей. Он основан на DeepLIFT и использует обратное распространение ошибки для вычисления вкладов признаков. DeepSHAP эффективен для моделей с последовательными слоями, но может быть менее точным для сложных архитектур.
LinearSHAP
Метод для линейных моделей (например, логистической регрессии). Он вычисляет значения Шепли аналитически, используя коэффициенты модели и ковариационную матрицу признаков.
Применение
SHAP широко используется в различных областях, где требуется интерпретируемость моделей машинного обучения:
Финансы и кредитный скоринг
Банки и финансовые организации применяют SHAP для объяснения решений кредитных моделей. Например, если клиенту отказано в кредите, SHAP может показать, что решающими факторами стали низкий доход и высокая долговая нагрузка. Это помогает соблюдать требования регуляторов (например, GDPR в Европе) и обеспечивать прозрачность.
Медицина и здравоохранение
В медицинской диагностике SHAP используется для интерпретации предсказаний о риске заболеваний. Например, модель, прогнозирующая вероятность диабета, может показать, что уровень глюкозы в крови и индекс массы тела вносят наибольший положительный вклад в риск. Это помогает врачам доверять модели и принимать обоснованные решения.
Промышленность и производство
SHAP применяется для анализа отказов оборудования и прогнозирования качества продукции. Например, на заводе по производству полупроводников модель может предсказать дефект чипа, а SHAP укажет, что причиной стала высокая температура на определённом этапе обработки.
Маркетинг и рекомендательные системы
В рекомендательных системах SHAP помогает понять, какие признаки (например, возраст, история покупок, время суток) повлияли на рекомендацию товара. Это позволяет улучшать персонализацию и объяснять пользователям, почему им предлагается тот или иной продукт.
Научные исследования
SHAP используется в биоинформатике, экологии и других науках для интерпретации моделей, предсказывающих, например, активность лекарственных соединений или распространение видов.
Преимущества и недостатки
Преимущества
- Теоретическая обоснованность: SHAP основан на математически строгих значениях Шепли, что гарантирует согласованность и локальную точность.
- Универсальность: Метод применим к любой модели машинного обучения (через KernelSHAP).
- Интерпретируемость: Визуализации SHAP (например, summary plot, force plot, dependence plot) интуитивно понятны и позволяют анализировать как отдельные предсказания, так и глобальные закономерности.
- Согласованность: Если модель изменяется так, что влияние признака увеличивается, его значение SHAP не уменьшается.
Недостатки
- Вычислительная сложность: Для точных значений Шепли требуется экспоненциальное время. Аппроксимации (KernelSHAP) могут быть медленными для больших датасетов.
- Зависимость от базового значения: Выбор базового значения (например, среднего по датасету) влияет на интерпретацию. В некоторых случаях это может быть нерепрезентативно.
- Предположение о независимости признаков: TreeSHAP и KernelSHAP предполагают, что признаки независимы, что может приводить к искажениям при сильных корреляциях.
- Сложность для моделей с взаимодействиями: SHAP не всегда корректно разделяет вклад взаимодействий между признаками, хотя существуют расширения (SHAP interaction values).
Инструменты и библиотеки
Основная библиотека для работы с SHAP — shap (Python). Она поддерживает все основные типы моделей и предоставляет широкий набор визуализаций. Другие библиотеки, такие как XGBoost, LightGBM и CatBoost, имеют встроенную поддержку SHAP. В R аналогичную функциональность предоставляет пакет shapr (с 2020 года). Также существуют интеграции с платформами, такими как MLflow и H2O.
Критика и альтернативы
SHAP критикуется за вычислительную сложность и чувствительность к выбору базового значения. Некоторые исследователи отмечают, что значения Шепли могут быть неинтуитивными при наличии сильных взаимодействий между признаками. Альтернативными методами объяснения являются:
- LIME (Local Interpretable Model-agnostic Explanations) — более быстрый, но менее теоретически обоснованный метод.
- PDP (Partial Dependence Plots) и ICE (Individual Conditional Expectation) — для визуализации зависимости предсказаний от одного признака.
- Permutation Feature Importance — для оценки глобальной важности признаков.
- Anchors — метод, основанный на правилах «если-то».
Интересные факты
- SHAP является одним из немногих методов объяснения, который удовлетворяет всем трём аксиомам, сформулированным в теории Шепли: эффективность, симметрия и аддитивность.
- В 2020 году команда разработчиков shap выпустила версию 0.40, которая значительно улучшила производительность TreeSHAP.
- SHAP активно используется в соревнованиях по машинному обучению (например, на Kaggle) для анализа и отбора признаков.
- Метод поддерживает объяснение не только предсказаний, но и потерь (loss) модели, что полезно для отладки.
Источники
- Lundberg, S. M., & Lee, S. I. (2017). A Unified Approach to Interpreting Model Predictions. NeurIPS.
- Lundberg, S. M., Erion, G., Chen, H., et al. (2020). From Local Explanations to Global Understanding with Explainable AI for Trees. Nature Machine Intelligence.
- Документация библиотеки shap (shap.readthedocs.io).
- Molnar, C. (2022). Interpretable Machine Learning: A Guide for Making Black Box Models Explainable.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →