Что такое справедливость в ИИ? Как мы можем это решить? Реализация сценария использования модели справедливости.

Системы искусственного интеллекта (AI) и машинного обучения (ML) все чаще используются во всех секторах и обществах.

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

В предыдущей статье я рассмотрел Интерпретируемость модели машинного обучения. На этот раз мы сделаем шаг вперед и оценим, как наша обученная модель обрабатывает потенциально чувствительные (предвзятые) функции.

Аудит модели не всегда бывает черно-белым - функции, которые могут быть важны в одном контексте, могут быть не такими важными в другом. Мало кто станет утверждать, что пол не должен определять, получит ли человек работу. Однако разве несправедливо, что модель ценообразования страховой компании взимает с мужчин больше, поскольку исторические данные показывают, что у них больше требований, чем у женщин? Или это правильно объясняет их более безрассудное вождение? Конечно, это по крайней мере спорно.

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

В этой статье мы рассмотрим модель справедливости с использованием библиотеки FairML, разработанной Julius Adebayo. Весь используемый код можно найти в моем GitHub

СОДЕРЖАНИЕ

  1. Наборы данных и обучение модели
  2. FairML Intuition
  3. Оценка справедливости модели
  4. Рекомендуемые практики

1. Обучение набору данных и моделям

Набор данных, используемый для этой статьи, - это доход от переписи взрослого населения из репозитория машинного обучения UCI. Задача прогноза - определить, зарабатывает ли человек более 50 тысяч долларов в год.

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

Для модели получены следующие показатели производительности:

Характеристики модели кажутся вполне приемлемыми.

В моей предыдущей статье мы обсудили несколько методов решения проблемы интерпретируемости модели. Среди других библиотек мы использовали SHAP для получения значений функций в выходных данных модели:

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

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

Итак, как мы можем оценить степень, в которой модель полагается на эти чувствительные особенности, чтобы делать прогнозы?

2. FairML Intuition

Как и большинство алгоритмов интерпретации, основная идея FairML состоит в том, чтобы измерить, как прогнозы модели меняются в зависимости от возмущений, вносимых во входные данные. Если небольшое изменение в элементе резко изменяет результат, то модель чувствительна к этому элементу.

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

Ортогональная проекция

Ортогональная проекция - это тип проекции вектора, которая отображает вектор на ортогональное (перпендикулярное) направление другого вектора. Если вектор a проецируется на вектор b (в евклидовом пространстве), компонент a, лежащий в направлении b.

Эта концепция очень важна в FairML, поскольку позволяет полностью устранить линейную зависимость между функциями. Если два вектора ортогональны друг другу, то не существует линейной комбинации одного вектора, которая могла бы произвести другой. Компонент a, ортогональный b, можно рассчитать как a2 = а - а1

Ортогональная проекция гарантирует отсутствие скрытых эффектов коллинеарности. Важно отметить, что это линейное преобразование, поэтому оно не учитывает нелинейные зависимости между функциями. Чтобы решить эту проблему, FairML использует базовое расширение и жадный поиск таких расширений.

Процесс FairML

Если F - это модель, обученная с двумя функциями x1 и x2 , чтобы вычислить зависимость F от x1, сначала x2 сделан ортогональным к x1, чтобы удалить все зависимости между ними. Во-вторых, изменение выходных данных модели анализируется с использованием ортогонального компонента x2 и внесения возмущений в x1. Изменение вывода между возмущенным вводом и исходным вводом указывает на зависимость модели от x1. Таким же образом можно оценить зависимость F от x2.

3. Оценка справедливости модели

Теперь, когда мы знаем, как работает FairML, давайте воспользуемся им для оценки нашей модели. Сначала мы установим пакет Python и импортируем необходимые модули.

# FairML install
pip install https://github.com/adebayoj/fairml/archive/master.zip
# Import modules
from fairml import audit_model
from fairml import plot_dependencies

Во-вторых, проведем аудит модели. Метод audit_model получает 2 обязательных и 5 необязательных входных данных:

Обязательно

  • pred_function: функция модели черного ящика, которая имеет метод прогнозирования.
  • input_dataframe: фрейм данных с формой (n_samples, n_features)

Необязательно

  • Distance_metric: одно из ['mse', 'precision'] (default = 'mse' )
  • direct_input_pertubation_strategy: относится к тому, как обнулить одну переменную. Options = ['constant-zero' (заменить случайным постоянным значением), 'constant-median' (заменить медианным постоянным значением), 'global- permutation ' (заменить все значения случайной перестановкой столбца)].
  • number_of_runs: количество запусков для выполнения (по умолчанию = 10).
  • include_interactions: флаг для включения проверки зависимости модели от взаимодействий (default = False).
  • external_data_set: данные, которые не использовались для обучения модели, но которые вы хотели бы увидеть, какое влияние эти данные оказывают на модель черного ящика (default = Нет).
# Model Audit
importances, _ = audit_model(clf_xgb_array.predict, X_train)

Метод audit_model возвращает словарь, где ключи - это имена столбцов входного фрейма данных (X_train), а значения - это списки, содержащие зависимость модели от этого конкретного особенность. Эти списки имеют размер number_of_runs.

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

FairML позволяет построить зависимость вывода от каждой функции (исключая влияние корреляции с другими предикторами):

# Plot Feature Dependencies
plot_dependencies(importances.median(),
                  reverse_values=False,
                  title="FairML Feature Dependence",
                  fig_size=(6,12))

Красные столбцы указывают на то, что функция способствует выходу 1 (доход> 50 тыс.), А голубые столбцы указывают, что они вносят вклад в выход 0 (доход ‹= 50 тыс.).

Замечено, что этот алгоритм, удаляя зависимость между элементами через ортогональную проекцию, определяет, что модель имеет высокую зависимость от чувствительных функций, таких как race_White, nac_United-States и пол_Мужчина. Другими словами, согласно обученной модели, белый мужчина, родившийся в Соединенных Штатах, будет иметь более высокую вероятность иметь доход, превышающий 50 тысяч долларов США, что представляет собой очень сильную предвзятость.

Очень важно отметить релевантность ортогональной проекции в алгоритме, поскольку такие функции, как race_White и nac_United-States, по-видимому, не быть настолько актуальным в SHAP Feature Importance или в других алгоритмах интерпретации. Вероятно, это связано с тем, что их влияние скрыто в других функциях. Удаляя мультиколлинеарность и оценивая индивидуальную зависимость от каждой особенности, можно определить внутренние эффекты каждой из них.

4. Рекомендуемая практика

Справедливость в AI и ML - открытая область исследований. Как основной участник этой области, GoogleAI рекомендует некоторые передовые практики для решения этой проблемы:

  • Разработайте свою модель, руководствуясь конкретными целями справедливости и инклюзивности: взаимодействуйте с социологами, гуманистами и другими экспертами, имеющими отношение к вашему продукту, чтобы понять и учесть различные точки зрения.
  • Используйте репрезентативные наборы данных для обучения и тестирования вашей модели: выявляйте предвзятые или дискриминационные корреляции между функциями, метками и группами.
  • Проверьте систему на предмет несправедливых предубеждений: при разработке показателей для обучения и оценки вашей системы также включайте показатели для проверки производительности в разных подгруппах (используйте разных тестировщиков и стресс- протестировать систему на сложных случаях).
  • Анализируйте производительность: даже если все в системе тщательно продумано для решения проблем справедливости, модели на основе машинного обучения редко работают со 100% -ным совершенством при применении к реальным, оперативным данным. Когда проблема возникает в действующем продукте, подумайте, согласуется ли она с существующими социальными недостатками и как на нее повлияют краткосрочные и долгосрочные решения.

Выводы

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

Мы представили интуицию FairML о том, как она решает эту проблему, и реализовали оценку справедливости модели XGBoost, обученной на наборе данных Adult Census Income. Наконец, мы обобщили некоторые из лучших практик, которые GoogleAI рекомендует в этой растущей области.

В заключение я хотел бы привести цитату из ответственных практик Google в области ИИ:

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

Я надеюсь, что эта статья послужит общему руководству по решению вопросов справедливости в моделях черного ящика и внесет мелочь в более справедливое и инклюзивное использование ИИ. Весь код можно найти в моем GitHub