16 и ещё 1 причина знать SHAP. explainable ai.. explainable ai. machine learning.. explainable ai. machine learning. shapley values.

Мы знаем его как “метод на основе теории игр”, “фреймворк” и чувствуем, что это он, видя красные и синие полоски. Но что сделало этот метод таким популярным? Как он родился и почему, после релиза в 2017 году, разные группы исследователей добавляли в него новые расширения? Куда этот инструмент шел и к чему пришел сейчас? И наконец, почему надо его знать?

Предлагаю впервые за долгое время потрогать от меня статью без кода — но с картинками. В ней вы узнаете ответы на вопросы и отроете для себя 15 расширений SHAP. Почему в названии 16 и ещё одна? Узнаете, если пройдете сквозь всю статью : )

16 и ещё 1 причина знать SHAP - 1
16 и ещё 1 причина знать SHAP - 2

Привет, друзья! Это вновь я, рада видеть вас впервые или снова. Все ещё Сабрина, всё ещё рисерчер и ладно, я не придумала что писать, так что перед читать! : )

И у меня закончились фотки. Поэтому в этом туториале с вами говорит фото из зала. Однако, из плюсов — мой генеративный коллега старался — и в статье “по теме” картинки красивые, а моих всего лишь две.

Дисклеймер: В блоках статьи есть много формул — с выводом и разбором. Но это справедливо только для блоков “исторических”, ибо это поможет (правда, поможет) вам потом, когда вы поймете, что вам надо разобрать расширение-причину номер X из 15.

Каждое же из 15 расширений (причин) я опишу словами, чтобы вы понимали, когда оно надо. Также у вас будут первоисточники. Моя задача была — сделать полезно, надеюсь, я пришла к оптимуму)

Напоминание: постановка метода

Про shap написано много хороших статей, в том числе на Хабр. Я начинала свой путь с этой — это было в 2022 году, хрущу, так сказать, суставами — и фундаментальную постановку в ней рекомендую и сейчас. Но чтобы далеко не ходить, зафиксируем определение перед глазами. Опционально вы также можете прочитать блоки “Дань истории” — они показывают значения Шепли от математического метода до его адаптации к ML.

Базовая постановка

Интуиция. Пусть у нас есть команда, которая вместе что-то заработала. Надо честно поделить выручку. «Честно» — значит по среднему вкладу: смотрим, насколько каждый участник улучшает результат, когда присоединяется к уже собравшейся группе, и усредняем по всем возможным порядкам сбора команды.

Пусть теперь игроки — это признаки, а «выручка» — предсказание модели на конкретном объекте. Таким хитрым ходом мы попадаем от задачи из жизни в задачу ML.

Формально. Обозначим за M — всё множество признаков, за S — его какое-то подмножество («коалиция»), v(S) — то, что модель предсказывает, зная только признаки из S. Тогда вклад признака i:

phi_i=sum_{S subseteq N setminus {i}} frac{|S|!,(M - |S| - 1)!}{M!}bigl[v(S cup {i}) - v(S)bigr]

Дробь — это доля перестановок, в которых признак i приходит именно после множества S. Мы перебираем все возможные S, это2^{|M|}и то удаляем признак, то добавляем, смотря, как меняется “выигрыш” (прогноз).

Ключевое свойство SHAP — эффективность:

phi_0 + sum_{i=1}^{M} phi_i=f(x)

Это формальная запись красно-синей полоски: базовое значение phi_0 плюс вклады, сумма ровно равна предсказанию.

16 и ещё 1 причина знать SHAP - 12

Также справедливы свойства:

  • симметрии — два признака, которые в любой коалиции дают одинаковый прирост, получают равные вклады. Никаких бонусов за позицию в таблице или за то, что признак «главнее» по смыслу;

  • нулевого игрока (он же аксиома болвана) — признак, который не меняет прогноз ни в одной коалиции, получает ровно ноль. На полоске его просто не будет;

  • аддитивности — если предсказание собрано из двух моделей (скажем, ансамбль), вклады считаются по каждой отдельно и складываются.

Помимо этого SHAP любим за единственность — оптимальное значение дележа, при полном подсчете — единственно.

Аксиоматика — это причина знать SHAP №1. Единственный популярный (методы другие — могут быть, но они не обвешаны реализацией) метод объяснения, про который доказано, что альтернативы нет: либо мы жертвуем каким-либо свойством, либо рассматриваем Shap.

Постановка, которую вы скорее всего не видели

Значение Шепли можно получить и не перебором, а как решение задачи взвешенного метода наименьших квадратов: приближаем $v$ линейной функцией от индикаторов присутствия признаков (то есть есть они или нет). Интуиция та же, но формально теперь поиск значений Шепли —  задача оптимизации (то есть найти максимально лучшее и близкое), вида:

min_{phi} sum_{z in {0,1}^n} pi_x(z),big(v(z) - g(z)big)^2

где вес коалиции задаётся ядром Шепли:

pi_x(z)=frac{n-1}{binom{n}{|z|},|z|,(n-|z|)},

g(z) — то, что мы ищем, а v(z) — наши наблюдаемые значения в коалициях. Модуль: |z| — число “включённых признаков” — индикаторов, равных единице.

16 и ещё 1 причина знать SHAP - 15

Вес взрывается на пустой и полной коалиции и проседает на серединных. Эта постановка для нас важна в рамках статьи — на ней основаны бОльшее количество из 15 расширений.

1953, Lloyd S. Shapley (не люблю транскрибировать имена)

Контекст: дана коалиционная игра — функция $v(S)$ на всех подмножествах игроков. Надо: поделить выигрыш
Что предложено: единственное решение.

Дань истории: значения Шепли в 1953 и 1988.

Выводя формулу выше, Шепли также доказал, что если мы хотим решение, такое что оно:

  • эффективно — делим ровно то, что заработали, без остатка и без добавки (

    sum_{i} phi_i(v)=v(N));

  • симметрично — два игрока, неотличимые по вкладу, получают поровну (если v(S cup {i})=v(S cup {j})для всех $S$ без $i$ и $j$, то phi_i=phi_j);

  • не чувствительно к болванам — тот, кто ничего не добавляет ни одной коалиции, не получает ничего (v(S cup {i})=v(S)для всех S Rightarrow phi_i=0);

  • аддитивно — сыграли две игры подряд, делёж суммарной выручки равен сумме отдельных дележей (phi_i(v + w)=phi_i(v) + phi_i(w)),

то справедливо единственное решение —  формула выше.

Примечание о датах

Работа ходила в препринтах RAND до публикации: RM-670 «Notes on the n-person game II: the value of an n-person game» (1951) и P-295 «A Value for N-Person Games» (1952). Каноническая ссылка — публикация 1953 года в Contributions to the Theory of Games II (AM-28), с. 307–317. В литературе попадаются оба года, я ссылаюсь на 1953.

Цена решения задачи — экспонента. То есть мы получаем обвешанное аксиомами единственное решение, при условии, что можем считать. Аксиомы — то, ради чего проблему подсчета хочется решить.

1988, SHAP как решение МНК-задачи, скорее всего авторы Charnes, Golany, Keane, Rousseau. Показално что значение Шепли характеризуется как решение задачи взвешенного МНК с ограничением эффективности — наша вторая постановка. В статьях обычно ссылаются на журнал Econometrics of Planning and Efficiency.

Контекст и “надо”: те же.
Предложено: тут вернее сказать “показано”, что для поиска единственного и аксиматически вкусного решения можно не делать перебор, а решить оптимизационную задачу.

Тридцать лет это всё было только в теории игр.

Дань истории: кто пробовал перенести в ML, 2010 и 2014

Приравнять признаки к игрокам (или игроков к признакам) впервые предложили Štrumbelj & Kononenko — в 2010. Вместо перебора 2^M коалиций они предложили брать перестановочную форму значения Шепли:

phi_i=frac{1}{M!}sum_{tau in mathcal{T}} bigl[, v(mathrm{Pre}^{tau}_i cup {i}) - v(mathrm{Pre}^{tau}_i) ,bigr]

где mathcal{T} — все M! порядков прихода признаков, а mathrm{Pre}^{tau}_i — признаки, пришедшие до i в порядке τ.

Это среднее по перестановкам — а среднее можно оценить по выборке, не считая всю сумму. Поэтому сюда применим метод Монте-Карло: взять R случайных перестановок равномерно и усреднить:

hat{phi}_i=frac{1}{R}sum_{r=1}^{R} bigl[, v(mathrm{Pre}^{tau^{(r)}}_i cup {i}) - v(mathrm{Pre}^{tau^{(r)}}_i) ,bigr], qquad mathbb{E}[hat{phi}_i]=phi_i

Оценка несмещённая: в среднем по многим запускам она попадает в истинное phi_i.

Toy-пример

Пусть модель оценивает квартиру в тысячах у.е., признаков три: П — площадь, Р — район, Э — этаж.

Модель обучена. Каждый прогноз строим так: известные признаки фиксируем на значениях нашей квартиры, а неизвестные подставляем от случайных чужих квартир из данных и усредняем предсказание. Пустое множество — просто средний прогноз по рынку.

S

П

Р

Э

П,Р

П,Э

Р,Э

П,Р,Э

v(S)

100

130

120

105

170

135

125

180

Теперь собираем «команду» в каком-то порядке и смотрим, сколько добавляет каждый в момент своего прихода:

Порядок τ

вклад П

вклад Р

вклад Э

сумма

П → Р → Э

30

40

10

80

П → Э → Р

30

45

5

80

Р → П → Э

50

20

10

80

Р → Э → П

55

20

5

80

Э → П → Р

30

45

5

80

Э → Р → П

55

20

5

80

среднее

41,7

31,7

6,7

80

Зафиксируем взгляд на столбце площади (можно на любом). Когда она добавлена первой — она добавила 30 единиц в прогноз, а когда последней, когда район и этаж уже известны, — добавила 55.

Разница уместна и возникает в подобных задачах: площадь и район связаны. Отсюда в задачу и числа вмешивается совместный эффект.

Перестановочная форма важна, так как у признака нет одного числа важности, пока не зафиксирован порядок. Разный порядок до — разный эффект от добавления и математических оригинал усреднял все возможные порядки. Перестановочная форма — только на части, но эффективным методом оценивания.

Как предложили «убрать признак»

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

v(S)=mathbb{E}_{X_{bar{S}}}bigl[f(x_S, X_{bar{S}})bigr] approx frac{1}{K}sum_{k=1}^{K} fbigl(x_S,, z^{(k)}_{bar{S}}bigr)

где z(k) — случайные объекты из данных. На практике эта запись просто означает подстановку любых значений из фонового набора: часть координат от объясняемого объекта x, часть подменена значениями от чужого объекта z. Процесс сборки называют пертурбацией (perturbation).

Отсюда же берётся и  phi_0​  — это vv(∅), гипотетическое предсказание, когда не известно вообще ничего или среднее по выборке.

Обратите внимание — в такой постановке оценивали только один признак.

В 2013-14 годах ту же идею расширить на подмножества. Здесь изменяли не по одному признаку, а сразу несколько, и важность подмножества считали как разницу Δ(S)=v(S)−v(∅).

Что попытались решить. 

Само применение Шепли к ML. Версия 2010 года считала вклады признаков поодиночке, и вопрос «а что даёт вот эта пара или группа вместе» отдельно не ставился. Версия 2014 года определила оценку сразу для любого подмножества — поэтому взаимодействия (пара работает не так, как сумма одиночек) и избыточность (два признака дублируют друг друга: по отдельности каждый важен, вместе — нет) стали видимыми.

Что сделали проблемой. 

Подмножеств осталось 2^M, так что честный расчёт всех Δ(S) возвращает экспоненту, от которой ушли в 2010-м.

Дань историии: Первая успешная и сильная адаптация метода к ML Lundberg & Lee, «A Unified Approach to Interpreting Model Predictions».

В этой статье, которую должен был видеть каждый, кто решился потрогать SHAP, первые введены и доказаны теорема и свойства, сделавшие ML-Shap близким к значениями у Lloyd-а Shapley.

Введенные свойства:

  • Local accuracy — сумма вкладов равна выходу модели:

    phi_0 + sum_i phi_i=f(x). Аналог эффективности из 1953-го.

  • Missingness — признак, которого в объекте нет, получает ноль. Свойство чисто техническое: оно фиксирует, что маска «признака нет» действительно означает «не участвует», а не «участвует со значением 0» (аналог аксиомы болвана)

  • Consistency — если мы поменяли модель так, что вклад признака не уменьшился ни в одной коалиции, его атрибуция не должна упасть.

Доказанная теорема — про единственность. Внутри класса аддитивных методов атрибуции — сюда попадает любой метод, чьё объяснение имеет вид

g(z')=phi_0 + sum_{i=1}^{M} phi_i z'_i, qquad z' in {0,1}^M

«каждому признаку — по одному числу, и они складываются — только одно значение удовлетворяет трем описанным аксиомам (значения Шепли).

Как считали: А считали, используя KernelSHAP. На ядро мы с вами смотрели и именно тут использовали регрессионную форму значений Шепли.
Вклады получаются как решение задачи взвешенного МНК:

phi ;=; argmin_{phi_0,dots,phi_M};sum_{S subseteq N} pi(S),Bigl(v(S) - phi_0 - sum_{i in S} phi_iBigr)^2, qquad pi(S)=frac{M-1}{binom{M}{|S|},|S|,(M-|S|)}

Мы приближаем v(S) линейной функцией от «кто в коалиции», но с хитрым весом. Вес работает как штраф:

  • если коалиция состоит из одного признака или лишена одного признака, из неё видно вклад именно этого признака в чистом виде — такие наблюдения самые информативные

  • Серединные коалиции размазаны и вносят меньше веса дёшево

В 2017 мы, счастливое сообщество, забрали метод и получили:

  • (а) аксиомы — есть чем ответить на «почему я должен вам верить»;

  • (б) удобную визуальную и аддитивную форму для восприятия;

  • (в) одну библиотеку, работающую с любой моделью.

Что мы не ришили. В теории v(S)=mathbb{E}[f(X) mid X_S=x_S], что значит, что вклад должен покзаать, что есть «что модель предсказывает в среднем среди объектов, похожих на наш по признакам из S.

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

Триггеры развития SHAP

В классической постановке справедливо следующее:

  1. Идею 1953 легко уложить на табличные данные, но в какой-то момент мы стали пользоваться DL, где на входе токены, пиксели, последовательности и даже геном.

  2. Имитировать отсутствие признака нужно на основе предпосылок, ибо обученная модель (а все методы интерпретации работают чаще на обученных моделях) требует ВСЕ признаки с какими-то значениями.

  3. Перебор 2^M признаков невозможен — его надо заменять, не теряя точность метода.

Отсюда, у исследовательского сообщества были и есть 3 вопроса:

Вопрос

Задача

1

Кто игроки

Решить, как вычислять значения, когда “игроки”: признаки, токены, объекты на картинке, инструменты агента

2

Что значит «игрока нет»

Решить, чем определить v(S), если модель требует все входы и что статистически корректно

3

Как посчитать

Убрать необходимость перебора 2^M, не потеряв в точности

Задача 3 — инженерная, самая популярная под решение. Задача 2 — сложная и зависит от данных, вокруг неё споры и сейчас. Задача 1 — решаема и поэтому метод всё ещё с нами. Применим даже на агентах (об этом — ниже).

Решение задач дало X надстроек (наших причин) над SHAP, которые делают его универсальным и важным на сегодня. Посмотрим на них.

Решение задачи 3: считать надо быстро и причины знать SHAP 2-6

Зачем. Для нейросети любой тип SHAP — это много прямых проходов на один объяснённый пример. Можно решить это — и заменить на один обратный проход.

Что формально. Берётся DeepLIFT — градиентный метод, который распространяет вклады назад по сети, сравнивая каждую активацию с её значением на опорном входе (reference) и деля «разницу на выходе» между «разницами на входах».

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

Нюанс. Результат — эвристическая аппроксимация, чувствительная к выбору reference в DeepLift.

Реализовано ли? Да: shap.DeepExplainer в основной библиотеке (shap). На практике можно и иногда проще брать GradientExplainer — DeepSHAP считается рабочим, но багованным.

Причина №2. SHAP умеет в нейросети, не раздувая вычисления на вызовах модели несколько раз. Хоть и с нюансами.

2 — TreeSHAP, 2018-2020

Зачем. Деревья и бустинги — частая модель табличного ML. Для них объяснение надо строить по другому, ибо деревья используют не всегда все признаки. Но это не проблема — структура дерева содержит достаточно.

Что формально. Точное вычисление SHAP на деревьях за полиномиальную сложность, вместо 2^M . Плюс в той же статье предложили красивые картинки глобальные инструменты: summary plot, dependence plot, кластеризация объектов по объяснениям. Глобальная картина собирается из множества локальных.

Нюанс. «Path-dependent» вариант считает условное ожидание, подразумеваемое структурой дерева, — не настоящее условное распределение данных.

Побочный эффект — атрибуция может оказаться ненулевой у признака, которого модель вообще не использует.Реализовано ли?  Да. Это очень используемое расширение SHAP. shap.TreeExplainer, поддержка в XGBoost / LightGBM / CatBoost / sklearn, GPU-реализация GPUTreeShap, алгоритмические ускорения Fast TreeSHAP, и R-обёртки treeshap и shapper. Если в отрасли говорят «мы сделали SHAP», в 9 случаях из 10 это TreeSHAP.

Причина №3. На бустинге SHAP считается точно и быстро, и без приближений.

3 — Unbiased KernelSHAP, 2021

Зачем. KernelSHAP — оценка методом наименьших квадратов. Вылезает практический вопрос «Насколько вообще успешно решилась задача? Сошлась ли?» — до 2021 года оставался без ответа: считали фиксированное число коалиций и надеялись.

Что формально. Выведена несмещённая версия KernelSHAP, показано, что исходная версия платит пренебрежимым смещением за существенно меньшую дисперсию, добавлены детекция сходимости, оценки неопределённости и парное (антитетическое) сэмплирование для снижения дисперсии.

Реализовано ли? Да: приёмы вошли в оптимизированный KernelSHAP библиотеки shap, есть отдельный пакет shapley-regression, а в R — CRAN-пакет kernelshap, который итерирует до заданной точности по стандартным ошибкам.

Причина №4. Можно в числовом виде узнать, насколько посчитанные значения близки к истинным, и остановиться, когда точности достаточно.

4 — FastSHAP, 2021-2022

Зачем. Даже весьма быстрый KernelSHAP — это отдельный расчёт на каждый объект. Если объяснять надо много запросов в проде или каждый кадр видео, ничего не работает.

Что формально. Предложена амортизация: обучается отдельная модель-объяснитель, которая выдаёт вектор значений Шепли за свой forward pass. Обучающая функция потерь — МНК-характеризация 1988 года, поэтому ground-truth значения Шепли для обучения не нужны.

Нюанс. Приближение приближения. Отдельная забота, поднятая самими авторами в смежной работе: не начал ли объяснитель кодировать в «объяснении» сам ответ модели.

Реализовано ли? Да: PyTorch (iancovert/fastshap) и TensorFlow (neiljethani/fastshap). Осторожно с неймингом: под именем fastshap на CRAN и на GitHub живут ещё как минимум два несвязанных пакета про быстрый KernelSHAP. Я даже потерялась.

Причина №5. SHAP можно ускорить и он вполне переносится в прод, когда объяснения нужны в реальном времени.

5 — Leverage SHAP, 2024

Зачем. У KernelSHAP, при всей его популярности, до 2024 года не было сильных гарантий точности. Метод работал, но «почему именно столько коалиций хватает» — вопрос.

Что формально. Предложена модификация KernelSHAP: коалиции выбираются сэмплированием по leverage scores (инструмент из рандомизированной линейной алгебры), решение считается через проектированную регрессию вместо «бесконечного веса» на пустой и полной коалиции. Результат — доказанная точность за O(Mlog M) вызовов модели.

Реализовано ли? Да: пакет leverageshap (rtealwitter/leverageshap), а элементы подхода — проектированное решение и схема сэмплирования — вошли в реализацию KernelSHAP в библиотеке shapiq.

Причина №6. У приближений есть гарантии того, что они достаточно близки к истине.

Задача 2: спор об имитации признаков, которых нет и причины 7-8

Что мы делаем с признаком, которого нет в коалиции? Модель требует полный вектор входов. Значит, что-то надо подставить. Варианта два.

  • Маргинальная (интервенционная) подстановка — подменяем значением из фонового набора, игнорируя корреляции. Объясняем функцию модели.

  • Условная (обсервационная) — берём mathbb{E}[f(X)mid X_S], так сказать “уважая” корреляции. Объясняем данные так, как их видит модель.

Разница такова. Например, пусть в модели есть «рост» и «вес», сильно скоррелированные, а модель реально использует только рост. Маргинальный подход отдаст весь вклад росту (корректно про модель, но странно на вид). Условный подход размажет вклад между ростом и весом (корректно про данные, но не совсем про модель).

Из двух способов выросли два расширения.

6 — Interventional TreeSHAP , 2020

Зачем. Чтобы TreeSHAP перестал приписывать вклад признакам, которых модель не использует.

Что формально. Вместо условного ожидания, подразумеваемого структурой дерева, берётся честное маргинальное ожидание по явному фоновому набору. Сложность становится линейной по размеру фоновой выбор.

Реализовано ли? Да, очень недооцененная строчка в коде: в shap.TreeExplainer за это отвечает параметр feature_perturbation, у которого два значения — "tree_path_dependent" и "interventional".

Причина №7. Можно выбрать, объяснять модель или данные.

16 и ещё 1 причина знать SHAP - 44

7 — Условный KernelSHAP для зависимых признаков, 2019-2021

Зачем. Практическая ветка условного лагеря: если признаки зависимы, а нам нужна правда про данные, то маргинальную подстановку надо заменить настоящей условной.

Что формально. KernelSHAP расширен на зависимые признаки через явную оценку условного распределения — гауссовскую, эмпирическую, а также подходы для смешанных данных.

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

Реализовано ли? Да, есть свой инструмент: пакет shapr для R и Python.

Причина №8. Есть корректный вариант даже на коррелированных/зависимых иначе данных.

Задача 1: кто игроки и какие вклады (расширения #8–#9) и причины 9-10

8 — SHAP interaction values, примерно 2020

Зачем. Аддитивные распределение по определению не может выразить взаимодействие. Если эффект «возраст × давление» существует только совместно, вектор из M чисел его не покажет — он размажет эффект по обоим признакам, и вы никогда не узнаете, что он был совместным.

Что формально. Вклад раскладывается на «собственный» эффект признака и попарные эффекты, на основе индекса взаимодействия Шепли. Для деревьев считается тоже за полиномиальное время.

Реализовано ли? Да: shap_interaction_values() в TreeExplainer. А дальше выросло целое направление индексов взаимодействия высших порядков со своей библиотекой — shapiq, где живут ещё Shapley–Taylor, Faith-Shap

Практический вывод: если (когда) объяснение выглядит странно, возможная причина — не ошибка метода, а то, что объясняемый эффект по природе не аддитивен.

Причина №9. Если объяснение выглядит странно, вы можете проверить, не в неаддитивности ли дело.

9 — SAGE, 2020

Зачем. SHAP объясняет одно предсказание. Вопрос «на какие признаки модель опирается вообще» решался усреднением модулей SHAP-значений — костыль, который никаких гарантий не даёт.

Что формально. Идея оценивать значение Шепли не по прогнозу на значении, а по качеству на множестве. То есть v(S) — это теперь не то, что модель отдала, а то, насколько хорошо отданное значение при использовании — только S. Отсюда глобальная важность с учётом взаимодействий.

Релазиовано ли? Да: пакет sage-importance от авторов.

Причина №10. Глобальную важность признаков можно посчитать не только усреднением.

Задача 1 в эпохе генеративных моделей и причины 11-16

16 и ещё 1 причина знать SHAP - 45

Генеративные модели вынудили SHAP развиваться, ибо классический SHAP всегда действует из того что f(x) — скаляр.

У генеративной модели выход — распределение. Скаляра нет. В текущем развитии значения Шепли решают это пересмотром v(S): функцией ценности становится не выход модели, а мера похожести двух выходов.

У данного блока есть общая проблема (хотя блок рабочий и даже используемый):
Когда v(S) определяется как косинусная близость, аксиоматика классического метода 2017 года теряет смыслLocal accuracyбольше не значит «сумма вкладов равна предсказанию» — она значит «сумма равна единице похожести объекта на самого себя», и интерпретировать это нечем. Хотя значения по-прежнему считаются, полоски по-прежнему рисуются, но не так вкусно.

Плюс методологическая оговорка: заметная часть этой ветки — препринты без рецензирования (AgentSHAP — декабрь 2025, SGPA — февраль 2026).

10 — TextGenSHAP , 2023

Зачем. Длинные документы в RAG-сценариях: вход — много токенов, выход — сгенерированный текст. Ни то ни другое в исходную схему не лезет.

Что формально. Значения Шепли адаптированы под иерархически структурированный вход (документ → абзац → предложение) и авторегрессионный выход, плюс архитектурные ускорения под трансформер.

Реализовано ли? Идея жива пока как исследовательский приём; отдельного широко используемого пакета у неё нет.

Причина №11. SHAP можно теоретически приложить к RAG-пайплайнам, где надо понять, какой кусок контекста сработал. И это надо исследовать!

11 — TokenSHAP , 2024

Зачем. Для решение базового практического вопроса : какая часть промпта управляет ответом?

Что формально. Игроки — токены или подстроки промпта; коалиция — промпт с выкинутыми кусками; v(S) — косинусная близость эмбеддингов ответа на S и полного ответа; оценка —метод Монте-Карло.

Реализовано ли? Да, пакет token-shap, репозиторий GenAISHAP.

Причина №12. Метод применим к текстовым данным.

12 — PixelSHAP, 2025

Зачем. Перенос на vision-language модели. Ключевое наблюдение: пиксель не имеет самостоятельного смысла, а объект — имеет.

Что формально. Игроки — объекты после сегментации, а не пиксели или патчи (хотя такая идея была изначально). Дальше — тоже оценка косинусной близости ответов.

Реализовано ли? Да, в том же репозитории GenAISHAP.

Причина №13. Метод применим для VLM.

13 — MultiSHAP, 2025

Зачем. Мало знать, «сколько дал текст и сколько картинка». Интересно, что дала их пара.

Что формально. Атрибуция кросс-модальных взаимодействий — по сути, идея #8 (interaction values), пересаженная в мультимодальность.

Реализовано ли. Публичной реализации, которая бы вошла в обиход, я не нашла; работа существует прежде всего как препринт. Ждем.

Причина №14. Метод адаптируем под анализ кросс-модального использования в модели. И это тоже нужно исследовать!

14 — AgentSHAP, 2025

Зачем. У агента есть траектория с вызовами инструментов. Вопрос «какие инструменты вообще повлияли на ответ» до этого не имел метода. Хотя переход, после всей статьи, у вас наверное прям просится.

Что формально. Игроки — инструменты агента; коалиция — подмножество доступных tools; $v(S)$ — семантическая близость ответа агента с набором $S$ к базовому ответу. Эксперименты на API-Bank: показана устойчивость оценок между прогонами и способность отделять релевантные инструменты от нерелевантных.

Реализовано ли. Реализация есть в GenAISHAP, а сама статья — препринт без рецензирования (декабрь 2025). Там же, кстати, лежит VideoSHAP — расширение на видео с трекингом объектов между кадрами, у которого статьи пока нет. Видимо, ребята активно растут!

Причина №15. Метод работает на агентах (хотя и спорно).

15 — SGPA, 2026

Зачем. Аудио-LLM в целом не было вписываемы в SHAP.

Пайплайн из четырёх шагов, который режет аудио не на кадры, а на слова.

Что формально. Пайплайн из четырёх шагов, который режет аудио на слова. Для этого используюи выравнивание (forced alignment, через механизм CTC; акустическая модель — Wav2Vec2-XLSR-53). На выходе — примерные отметки начала и конца каждого слова. Отметки получаются грубые и часто попадают в середину звука. Поэтому их подправляют: смотрят на спектрограмму рядом с каждой отметкой и сдвигают границу туда, где в звуке действительно есть шов — провал громкости или резкая смена спектра (в статье это называют уточнением по локальной энергии и спектральному потоку).

Зачем возня с границами. Граница определяет игрока. Если она плохая, то при маскировании от слова останется “огрызок” — и модель услышит нечто, чего в живой речи не бывает. Тогда v(S) измеряет реакцию на мусор,

Нюанс. SGPA не является нейтральным преобразованием. Когда игроками становятся слова вместо кадров, вклады распределяются ровнее: раньше почти вся масса собиралась в нескольких точках, теперь она размазана по словам (авторы меряют это концентрацией атрибуций, Cohen’s d до −1.37, и нормализованной энтропией, d = 0.86). Общая картина «сколько всего набралось» при этом сохраняется.

Нюанс: SGPA не является нейтральным преобразованием: он значимо меняет концентрацию атрибуций и делает их ровными. Это усложняет интерпретацию.

Реализовано ли. Да: авторы выпустили открытый Python-пакет mllm-shap. Статья — препринт, но подана на Interspeech 2026.

Причина №16. Метод аппроксимируем и на речь.

Выводы

И так, если нанести все годы и посмотреть на эту эволюцию, выйдет очень четко. Да, в том смысле “четко”, как говорили имея ввиду “круто”:

Эпоха

Задача

Что добавили

Нюансы

1953

единственность, делим вклад из аксиом

экспонента

1988

3

разделение — не перебор, а взвешенный МНК

— (отложенная выгода)

2010–2014

1, 3

перенос в ML + сэмплинг

независимость признаков

2017

аксиоматика + единственность

вопрос подстановки грубо закрыт

2017–2025 (#1–#5)

3

скорость, гарантии

приближения поверх приближений

2020–2021 (#6–#7)

2

подсветили выбор: модель или данные

не нашли один верный ответ

2020 (#8–#9)

1

взаимодействия и глобальная важность

сложность интерпретации растёт

2023–2026 (#10–#15)

1

генеративные и агентные игроки

утрата смысла исходных аксиом, получили щепотку шума

Каждое поколение решало задачи 1 и 3 и почти никогда не дорешивало задачу 2. Вопрос «что значит убрать признак» задан в 2010-м неявно, в 2017-м отложен, в 2020-м вскрыт — и не закрыт. Как сделать это верно, тем более сейчас, где надо убирать токен, объект, инструмент, звук — открытый вопрос, заставляющий быть аккуратным при использовании метода.

Какая была причина номер 17? Красота, друзья. SHAP — иллюстрация того, что старая теория, фундамент не отменяются новым, а становятся новым. Красно-синяя полоска, которую мы узнаём издалека, — это 1953 год.

От этого я его безумно люблю. Спасибо Lloyd-у Shapley!

16 и ещё 1 причина знать SHAP - 49

И спасибо вам! Спасибо, что читаете! Всегда рада видеть у себя на канале и до новых встреч!

Ещё прикольная статья-гайд https://arxiv.org/pdf/2207.07605 — если нужно выбрать оценщик и хочется прямо глубоко зайти — можно почитать ее.

Мой канал в тг (там я пишу про explanaible AI, если что)

Автор: sad__sabrina

Источник