В статье рассмотрено, что такое объясняемый искусственный интеллект (ИИ), почему так важна прозрачная интерпретация ML-моделей, а также какие инструменты позволяют понятно описать и наглядно представить результаты машинного обучения. Существует множество готовых инструментов для интерпретации и визуализации ML-моделей, упакованных в специальные библиотеки. Например, Yellowbrick — расширение scikit-learn, ELI5 — еще одна визуальная библиотека для устранения ошибок в моделях и объяснения прогнозов (совместима со scikit-learn, XGBoost и Keras), MLxtend для визуализации данных, сравнения решений и входящих в его состав классификаторов, LIME – пакет для интерпретации прогнозов [1] и SHAP, речь о которой пойдет далее.
Аналитическое агентство Gartner включило объясняемый ИИ (Explainable AI) в ТОП-10 трендов 2020 года в области Data&Analytics. Ожидается, что этот набор возможностей, который описывает ML-модель с указанием ее сильных и слабых сторон, поможет более точно спрогнозировать поведение моделей и выявить любые потенциальные ошибки. Это позволит повысить прозрачность и надежность решений и результатов ИИ, снижая нормативный и репутационный риски [2].
На практике недостаточное понимание процесса получения результатов с помощью инструментов Data Science, например, нейросетей или других методов машинного обучения – это серьезное препятствие их массового внедрения в бизнес и повседневную жизнь. Обычно люди боятся того, чего они не понимают и стремятся избегать этого. Таким образом, ареол загадочности вокруг ИИ в сознании обывателей замедляет практическое развитие данной научной области. Поэтому прозрачность процессов ML-моделирования и понятность их результатов важна для каждого Data Scientist’а.
Эта задача описывается термином «интерпретируемость», который означает степень того, насколько человек понимает причину, по которой было ML-алгоритм принял конкретное решение. Так ИИ из «сложной магии» или «черного ящика» становится объясняемым и предсказуемым, а значит, не страшным, переходя в разряд ежедневных явлений. Помимо этого, можно выделить еще несколько ключевых причин, почему интерпретация ML-моделей сегодня особенно актуальна [3].
Таким образом, интерпретируемость ML-модели повышает ее потенциальную ценность. Однако, в реальности реализация любой добавленной ценности несет дополнительные расходы. В частности, увеличивается рабочее время Data Scientist’а, который старается показать бизнес-пользователям потенциал своих исследований. Поэтому не следует гнаться за максимальной интерпретируемостью результатов без учета контекста. Например, при низкой стоимости ошибки в предсказании (к примеру, рекомендация фильма пользователю), то и прилагать огромные усилия для того, чтобы сделать модель более интерпретируемой, возможно, не стоит. В этом случае можно ограничиться стандартной процедурой валидации качества модели [3].
Сложность реального ML-моделирования в том, что из множества предикторов некоторые влияют на результат сильнее других. Выявить такую зависимость можно на этапе кросс-валидации модели, однако это не дает точного ответа на вопрос о вкладе каждого признака в полученный итог. Однако, такие задачи часто встречаются в теории игр – разделу прикладной математики, посвященному исследованию операций. Ключевым понятием этого математического метода является игра – процесс, в котором участвуют две и более сторон, ведущих борьбу за свои интересы. Каждая сторона имеет свою цель и использует собственную стратегию, которая может привести к выигрышу или проигрышу, в зависимости от поведения других игроков.
Суть теории игр в том, чтобы выбрать оптимальные стратегии с учётом представлений о других участниках, их ресурсах и их возможных поступках. Большой вклад в развитие и популяризацию этих идей внесли математики Джон фон Нейман, Оскар Моргенштерн и Джон Форбс Нэш-младший в 40-50-хх гг. XX века. С середины 1980-х гг. математический аппарат теории игр активно используется в экономике, менеджменте, политике, социологии и психологии [4].
Сама теория игр, как развитая математическая область, включает множество категорий, в т.ч. кооперативные игры, в которых группы игроков могут объединять свои усилия, образуя коалиции для достижения наилучшего результата. В свою очередь, определить оптимальное распределение выигрыша между игроками можно с помощью вектора Шепли (). Он представляет собой распределение, в котором выигрыш каждого игрока равен его среднему вкладу в общее благосостояние при определенном механизме формирования коалиции [5]:
где n – количество игроков, k – количество участников коалиции K.
Применяя вышеизложенные положения теории игр к интерпретации ML-моделей, можно сделать следующие выводы [6]:
При расчёте вектора Шепли необходимо формировать коалиции из ограниченного набора признаков. Однако, не каждая ML-модель позволяет просто убрать признак без повторного обучения модели «с нуля». Потому для формирования коалиций обычно не убирают «лишние» признаки, а заменяют их на случайные значения из «фонового» набора данных. Усреднённый результат модели со случайными значениями признака эквивалентен результату модели, в которой этот признак вообще отсутствует [6].
Практическая реализация этого подхода представляет собой специальную библиотеку SHAP (SHapley Additive exPlanations), которая поддерживается для моделей типа «ансамбль деревьев» в XGBoost, LightGBM, CatBoost, scikit-learn и pyspark. Как и любую питоновскую библиотеку, установить SHAP очень просто: достаточно лишь написать командной строке pip install shap [6].
Справедливости ради стоит отметить, что результаты, выдаваемые библиотекой, это не совсем точные вектора Шэпли, а их аппроксимация. При этом ML-алгоритмы tree ensembles, такие как Gradient Tree Boosting и нейросети, используют дополнительную информацию о структуре модели, выполняя вычисления за приемлемое время [6].
SHAP поддерживается и в популярном сегодня методе глубокого обучения (Deep Learning) в виде Deep SHAP – алгоритма высокоскоростной аппроксимации значений SHAP. В этом случае используется распределение фоновых выборок вместо единственного эталонного значения и применяются уравнения Шепли для линеаризации таких компонентов, как max, softmax и пр. Поддерживаются модели TensorFlow и Keras, использующие бэкэнд TensorFlow, также есть предварительная поддержка PyTorch [7].
Возвращаясь к интерпретации результатов ML-моделирования, стоит отметить богатые функциональные возможности библиотеки SHAP для визуализации данных. В частности, она поддерживает основные виды графиков, которые наиболее часто используются в Data Science: гистограммы, линейные графики, диаграммы размаха (ящик с усами) и т.д. Это позволяет наглядно представить и понятно объяснить результаты ML-моделирования бизнес-пользователям. Также визуализация данных помогает самому Data Scientsit’у в оценке адекватности модели [8].
Рассмотрим несколько реальных кейсов применения SHAP. Например, для анализа оттока сотрудников из компании с помощью xgboost следующий код на Python строит график важности используемых в модели признаков (рис.1) [8]:
import shap shap_test = shap.TreeExplainer(best_model).shap_values(df)
shap.summary_plot(shap_test, df, max_display=25, auto_size_plot=True)
Полученный график интерпретируется следующим образом [8]:
Таким образом, из этого графика можно сделать интересные выводы и проверить их адекватность [8]:
На основании подобных выводов можно сформировать портрет уходящего сотрудника: он достаточно молод, холост, давно работает в одной должности без повышения зарплаты, не получает высоких годовых оценок и стал мало общаться с коллегами.
Аналогично можно определить наиболее значимые факторы индивидуального банкротства и спрогнозировать вероятность этого события для отдельного клиента. Рассмотрим SHAP-график из области финансового скоринга (рис.2) [3].
График на рисунке 2 интерпретируется следующим образом [3]:
Такая диаграмма позволяет быстро оценить, насколько результаты моделирования соответствует ожиданиям или здравому смыслу. В рассматриваемом примере малое число предыдущих займов увеличивает предсказанную вероятность банкротства для большинства клиентов. А длительный стаж работы и высокий доход ведут к уменьшению вероятности дефолта. Примечательно, что SHAP позволяет не только выявить общие для всей выборки тенденции, но и объяснить результаты ML-моделирования для каждого конкретного случая.
В частности, объяснить предсказание банкротства определенного клиента с помощью отдельного графика, на котором распределены переменные, влияющие на прогноз. Предсказанная вероятность дефолта для этого клиента составляет 19%, что достаточно много. Наибольшее значение при этом играют невысокий доход и наличие открытого кредита. На рисунке 3 красным цветом выделены признаки, которые увеличивают целевую переменную, а синим – те, что ее уменьшают. Подобная диаграмма пригодится работнику банка или кредитному специалисту при оценке степени доверия к решению о выдаче займа, которое сформированно ML-моделью [3].
SHAP можно использовать и для веб-аналитики, например, чтобы выявить, какие именно факторы больше всего влияют на конверсию сайта Причем диаграммы рассеяния (ящики с усами) показывают значимые переменные более наглядно, чем типовые отчеты Яндекс.Метрики или Google.Analytics (рис. 4) [6].
Стоит отметить, что вектора Шепли – далеко не единственный метод интерпретации ML-моделей с целью показать влияние отдельных переменных на результат. На практике широко используются Partial Dependence Plots (PDP), Individual Conditional Expectation (ICE) plots, а также LIME (Local Interpretable Model-agnostic Explanations) [3]. Однако, например, LIME не гарантирует справедливое распределение таргетной переменной от предикторов. Более того, значение SHAP – единственный метод, который обеспечивает полное объяснение. Это особенно важно, когда закон требует объяснимости, например, право на объяснения в GDPR, упомянутое в начале статьи.
Также вектора Шепли допускают контрастные объяснения, позволяя сравнивать прогноз со подмножеством данных или отдельным случаем вместо среднего значения по всей выборке. Это свойство выгодно отличает метод SHAP от LIME, который предлагает локальную интерпретацию линейного поведения ML-модели. Наконец, ключевое преимущество SHAP – это наличие твердой математической базы с аксиомами и доказательствами [9].
Обратной стороной всех этих достоинств являются следующие недостатки [9]:
В качестве заключения стоит отметить, что, при всех своих возможностях анализа и визуализации ML-моделей, SHAP – это не серебряная пуля, которую можно применять всегда и везде без учета обстоятельств. В частности, значения SHAP не идентифицируют причинно-следственную связь, которая лучше всего определяется экспериментально или на основе аналогий [10]. Это соответствует высказыванию «после – не значит впоследствии», т.е. при интерпретации результатов машинного обучения с помощью библиотеки SHAP стоит помнить, что она показывает лишь степень влияния отдельных предикторов на целевую переменную, но не объясняет другие аспекты процесса Machine Learning: выбор архитектуры модели, настройку параметров нейросети и пр. Поэтому SHAP – это отличный инструмент для грамотного Data Scientist’а на финальном этапе, который может частично автоматизировать некоторые задачи, не снижая сложности всей работы в целом.