Перейти к основному содержимому

Локальное объяснение интерпретируемой моделью

Метод LIME (local interpretable model-agnostic explanations) позволяет объяснить прогноз сложной модели f(x)f(\mathbf{x}) для интересуемого объекта x\mathbf{x} за счёт аппроксимации прогнозов этой модели другой простой и интерпретируемой моделью в окрестности точки x\mathbf{x}.

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

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

Метод LIME работает следующим образом:

  1. Выбрать объект x\mathbf{x}, для которого нужно объяснить прогноз сложной модели f(x)f(\mathbf{x}).

  2. Сгенерировать выборку, состоящую из локальных вариаций x~1,x~2,...x~K\widetilde{\mathbf{x}}_{1},\widetilde{\mathbf{x}}_{2},...\widetilde{\mathbf{x}}_{K} объекта x\mathbf{x}.

  3. Построить для вариаций прогнозы сложной моделью f()f\left(\cdot\right), получив выборку:

    {[x~1,f(x~1)]; [x~2,f(x~2)]; ...[x~K,f(x~K)]}\left\{ \left[\widetilde{\mathbf{x}}_{1},f\left(\widetilde{\mathbf{x}}_{1}\right)\right];~\left[\widetilde{\mathbf{x}}_{2},f\left(\widetilde{\mathbf{x}}_{2}\right)\right];~...\left[\widetilde{\mathbf{x}}_{K},f\left(\widetilde{\mathbf{x}}_{K}\right)\right]\right\}
  4. Взвесить объекты по близости к x\mathbf{x} (чем вариация ближе, тем её вес больше):

    {[w1,x~1,f(x~1)]; [w2,x~2,f(x~2)]; ...[wK,x~K,f(x~K)]}\left\{ \left[w_{1},\widetilde{\mathbf{x}}_{1},f\left(\widetilde{\mathbf{x}}_{1}\right)\right];~\left[w_{2},\widetilde{\mathbf{x}}_{2},f\left(\widetilde{\mathbf{x}}_{2}\right)\right];~...\left[w_{K},\widetilde{\mathbf{x}}_{K},f\left(\widetilde{\mathbf{x}}_{K}\right)\right]\right\}
  5. Настроить интерпретируемую модель g(x)g\left(\mathbf{x}\right) по взвешенной выборке (чем вес выше, тем сильнее объект учитывается сильнее).

  6. Исследовать интерпретируемую модель.

Визуализация работы алгоритма показана ниже (источник):

LIME.png

Для повышения объяснимости простой модели можно

  • в случае решающего дерева задать ограничение на его максимальную глубину;

  • в случае линейной регрессии использовать L1L_{1} регуляризацию, чтобы уменьшить число влияющих признаков. Либо использовать OMP-регрессию.

Число используемых признаков можно также сократить, используя процедуры отбора признаков forward-selection (последовательный выбор самых влияющих) или backward-selection (последовательное исключение самых незначимых).

Также интерпретирующая модель может опираться на другие - более интерпретируемые признаки, отличные от исходных. Например, при работе с изображениями, она может зависеть не от пикселей изображения, а от суперпикселей (superpixels), то есть областей соседних пикселей, примерно похожих по цвету.

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

ApproxError=1Kk=1K(f(xk)g(xk))21Kk=1K(f(xk)1Kk=1Kf(xk))2\text{ApproxError}=\sqrt{\frac{\frac{1}{K}\sum_{k=1}^{K}\left(f\left(\mathbf{x}_{k}\right)-g\left(\mathbf{x}_{k}\right)\right)^{2}}{\frac{1}{K}\sum_{k=1}^{K}\left(f\left(\mathbf{x}_{k}\right)-\frac{1}{K}\sum_{k=1}^{K}f\left(\mathbf{x}_{k}\right)\right)^{2}}}

Если ошибка аппроксимации высока, нужно либо усложнить аппроксимирующую модель (увеличивая число признаков, ослабляя L1L_{1} регуляризацию или увеличивая глубину дерева), либо уменьшить окрестность сэмплируемых вокруг интересуемого объекта x\mathbf{x} точек (которую при прочих равных лучше брать побольше).

Процесс сэмплирования объектов, похожих на заданный, зависит от характера объектов:

  • Для вектора вещественных чисел можно добавлять шум с небольшой дисперсией.

  • Для текста можно включать/исключать отдельные слова.

  • Для изображения: включать/исключать отдельные суперпиксели.

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

LIME-image-classification.png