Привет, Хабр!

В исследованиях и на практике значения Шепли (Shapley values) — один из наиболее популярных методов интерпретации. По определению, значения Шепли вычисляются по оценке вклада признака во все возможные "коалиции" (подмножества признаков). Так, если у нас есть  Nпризнаков, нам необходимо перебрать 2^N комбинаций для оценки вклада каждого признака полностью. На практике этого не делается — применяется аппроксимация.

Отсюда возникают вопросы:

  • достаточно ли такого нам весьма грубого вычисления (особенно, если у нас картинка, которую хотелось бы оценить максимально детально)?

  • насколько значения Шепли случайны и основаны на данных?

В этом посте разберемся с ними!

Меня зовут Сабрина, и я от ушей до пят люблю область explainable AI!

За время мне удалось приобщиться к чтению семинаров по области, написать курс, и сейчас я пишу ВКР, которая потом прорастет (надеюсь) в кандидатскую и дальше (если я не захочу бросить это всё и уйти в лес).

Кроме того, я веду
DataBlog, и как могу стараюсь популяризировать область, потому что считаю её важной и красивой. Буду рада единомышленникам и открыта к обсуждению!

Грубость в вычислениях

Зачем?

Во-первых, разберемся, какие значения нам нужно вычислять и зачем нам грубить. Обратимся к полной формуле значений Шепли. Для признака i в модели f, значение Шепли есть:

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

где:

- N— множество всех признаков,

- S — подмножество признаков, исключающее i,

- f(S \cup \{i\}) - f(S) — вклад признака i при добавлении его к подмножеству S

- \phi_i(f) — функция, отражающая выигрыш в игре. Это может быть изменение метрики качества, прогноз модели или лосс. В библиотеке shap \phi_i(f) есть прогнозируемое значение.

Интуитивный смысл:

Значения Шепли вычисляют "средний" вклад признака i по всем возможным комбинациям других признаков, что даёт распределение вклада. И всё было бы прекрасно, если бы не страшные факториалы (значки "!") и количество подмножеств, которое нам нужно проанализировать. При N признаках необходимо рассмотреть 2^Nподмножеств, что, начиная с N=15 (примерно) уже неприятно. А ведь при этом нам нужно ещё и запускать инференс модели... Вот здесь нам и помогает аппроксимация.

Как?

Аппроксимация — метод, состоящий в замене одних объектов другими, в каком-то смысле близкими к исходным, но более простыми [Wiki]. В нашем контексте — это способ упростить сложные вычисления, используя приближённые методы вместо точных значений Шепли.

В оригинальной статье описаны несколько подходов для аппроксимации. Они делятся на две категории: модель-независимые (model-agnostic) (те, которые могут быть использованы для любых моделей) и моделе-зависимые (model-specific) (те, которые уже опираются на определенную структуру модели) аппроксимации.

Как модель-незаисимые предложены:

  • Shapley regression values: — считаем важности признаков по формуле [1], используя в качестве f линейные модели. Данный подход хорош при мультиколлинерарности, ведь если существуют как минимум два признака, способных заменить друг друга, добавление в коалицию второго при наличии первого не существенно изменит прогноз (если вообще изменит).

  • Shapley sampling values: — основан на случайной выборке подмножеств признаков. То есть вместно всех $2^N$ берем лишь некоторые и объединяем полученный результат. Минус — всё равно точность будет зависить от количества проанализированных выборок.

  • Quantitative input influence: — про него аккуратной информации не удалось найти, если кто-то знает — welcome!

Как модель-зависимые:

  • Linear SHAP: — методы для линейных моделей. Его красота — в использовании той информации, что уже есть — коэффиентов линейной модели. Вклад здесь считается как вес домноженный на значение признака в точке минус матожидание (наблюдаемое среднее) признака. Формула выглядит так:

\phi_i(f, x) = w_i(x_i - E[x_i]),

где
w_i — коэффициент признака i,
x_i — значение признака для рассматриваемой точки,
E[x_i] = \frac{\sum_i^n x_i}{n} — математическое ожидание значения признака (выборочное среднее по данным)

Интерпретируя формулу, ещё раз подытожим, мы смотрим, как отклонение признака от его матожидания влияет на прогноз.

  • Deep SHAP: — от названия, метод, подходящий для DNN. Под капотом он задействует DeepLIFT — градиентный метод объяснения.

Приведенный список не исчерпывающ — с ростом востребованности SHAP, появлялись и другие способы ускорить вычисления. Вместо того, чтобы останавливаться на каждом, зафиксируем факт: аппроксимации существуют и несколько отходят от изначально сильной теории значений Шепли.

Корректно ли применение аппроксимаций?

И так, мы выяснили и показали, что значения Шепли вычисляются не в оригинале, а в упрощении. Помогает ли это нам получать точные оценки?

Да!

Аппроксимации вводятся так, что мы требуем их соответствие (или достаточное приближение) к теоретическим значениями Шепли. Среди основных требований можно выделить:

  1. Локальная точность — сумма всех значений Шепли \phi_i для конкретного прогноза f(x) должна точно соответствовать значению прогноза. То есть:

    f(x) = \sum_{i=1}^{M} \phi_i + \phi_0,где \phi_0 — базовое значение модели, когда все признаки не

    влияют на модель.

  2. Аксиома болвана (аналог) — если значение признака отсутствует, то его вклад должен быть нулевым:
    I[i] = 0 \Rightarrow \phi_i = 0,где I[i] — индикатор наличия признака i.

  3. Согласованность(Consistency) — если в двух моделях прогноз одной зависит от добавления признака i сильнее, чем во второй, то значение Шепли этого признака во второй модели должно быть ниже, чем в первой:
    f'(x) - f'(x \setminus i) \ge f(x) - f(x \setminus i) \Rightarrow \phi_i(f', x) \ge \phi_i(f, x) , где f', f — две рассматриваемые модели.

И вишенкой на торте, доказана теорема:

Только одна возможная модель объяснения g является аддитивным методом оценки вклада признаков и удовлетворяет требованиям 1, 2 и 3! И это выполняется во фреймворке shap.

Попробуем на это посмотреть

Теория всегда красива и хороша, но её польза чувствуется ярче на практике. Я задалась вопросом — будут ли устойчивы объяснения для одинаковых моделей, обученных с разных стартовых точек? И на сколько случайны признаки, которые может нам дать метод Шепли?

Так был проведен эксперимент.

Рассмотрим 5 эквивалентных моделей Net(X). Под эквилентными будем понимать модели:

  1. одной архитектуры

  2. обученные на одном наборе данных

  3. имеющие сопоставимое (отличное лишь на незначимое значение \varepsilon) качество

Рассмотрим тестовое множество и значения Шепли для конкретного примера конкретного класса class_k (я брала MNIST, поэтому смотрела на 10 классов k \in [0, 9]).

Алгоритм:

Для каждого класса k,

  • рассмотрим распределения значений Шепли каждой из пяти моделей

  • для каждой пары распределений (для одного класса у нас будет C^2_{5}=10 пар)

    - проанализируем "одинаковость" (однородность) распределений, рассматривая тест хи-квадрат с уровнем значимости 0.025
    - проанализируем результаты

Примечание:

Чтобы не углубляться в статистику, можно сказать, что хи-квадрат проверяет одинаково ли распределение важностей признаков для моделей. Вывод делается на основе статистики теста и "p-значения" — вероятности при условии истинности нулевой гипотезы получить такие же результаты. Если эта вероятность ниже критического значения (у меня это 0.025) мы говорим, что распределения различны.

Для 100 пар у меня получилось, что статистически значимо различаться распределения будут только у 5% наблюдений. Устойчиво? Вполне.

3 из 100 анализируемых выборок
3 из 100 анализируемых выборок

Подведение итогов

И так, мы с вами рассмотрели вопрос устойчивости значений Шепли и важность применения аппроксимаций в их вычислении. И вроде бы всё хорошо, значения Шепли прочны теоретически, применимы практически и просто прекрасны. Но оставим восхищение и сухо закрепим полученные выводы:

Аппроксимация является обоснованным и корректным способом для расчета значений Шепли. Однако, важно сказать, что это работает при предположении о независимости признаков.

Устойчивость значений Шепли в эксперименте показывает, что метод способен демонстрировать значимую стабильность и значения Шепли действительно могут показывать важные признаки, основываясь на свойствах данных.

НО: устойчивость в одном эксперименте может нарушиться при проведении других. Как автор поста, здесь я преследую две цели — показать, что инструмент полезен на практике и пробудить интерес к новым экспериментам.

Как видите, есть ограничения и нюансы. И здесь Explainable AI — удивительная область, полная вопросов и противоречий. Надеюсь, эта статья была полезна для вас и дала новые знания, которые будут полезны на практике. Как минимум при понимании применения конкретных explainer'ов с shap под капотом на практике.

Спасибо за чтение!

Желаю вам надежных и понятных моделей,

Ваш Дата-автор! :)

Комментарии (0)