Как функции экономической полезности помогают связать ваши модели с вашими клиентами

Позвольте мне начать с того, что существует много отличного технического контента о том, как оценивать ваши модели. Такие метрики, как оценка F1, MSE, MAE, потеря Хьюбера, точность, отзыв, потеря перекрестной энтропии и многие другие, — это термины, которые подробно обсуждались во всем Интернете. Однако эти показатели обычно сосредоточены на подгонке вашей модели к вашим данным, а не на оптимизации вашей модели для вашего бизнеса — по крайней мере, непосредственным образом.

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

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

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

Пример ML с бинарным классификатором

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

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

Вы следуете обычным протоколам машинного обучения, обучаете модель с помощью своего любимого классификатора и тестируете ее на тестовом наборе из 300 фильмов.

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

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

Когда не работает только точность

Результаты классификации

Итак, что случилось? Почему ваш друг перестал пользоваться приложением?

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

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

В случае вашего друга это определения TP, FP, FN и TN.

TP = Вы правильно рекомендуете фильм, который понравился бы вашему другу (ярлык = 1, прогноз = 1)

TN = Вы правильно не рекомендуете фильм, который не понравился бы вашему другу (метка = 0, прогноз = 0)

FP = Вы неправильно рекомендуете фильм, который не понравился бы вашему другу (метка = 0, прогноз = 1)

FN = Вы ошибочно не рекомендуете фильм, который понравился бы вашему другу. (метка = 1, прогноз = 0)

Экономический анализ

На этом этапе мы начинаем строить наш экономический слой. Первый этап состоит из 2 шагов:

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

Допустим, в решении для кино, которое вы разработали для своего друга, стоимость FP составляла 20 долларов за билет в кино и 2 часа потерянного времени. Были также некоторые негативные моменты за нанесенный эмоциональный ущерб, который вы конвертируете в определенную сумму в долларах — в данном случае 12 долларов. Выгода от получения правильного прогноза стоила вашему другу около 50 долларов. Ваш друг также не расстроился бы, если бы пропустил фильм, который ваше приложение не порекомендовало, что вы интерпретируете за 5 долларов.

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

A = потраченное время = 10 долларов

B = Эмоциональный ущерб от просмотра плохого фильма = 50 долларов.

C = Эмоциональный ущерб от пропуска хорошего фильма = 12 долларов.

D = Эмоциональное счастье от просмотра хорошего фильма = 50 долларов.

E = Эмоциональное счастье от пропуска плохого фильма = 5 долларов.

F = Цена билета в кино = 20 долларов США

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

Сближение экономики и машинного обучения

Теперь вы создаете функцию, чтобы связать количественные затраты и выгоды вашего друга с результатами классификации. Чтобы упростить уравнения, мы добавляем метки переменных (A, B, C и т. д.), определенные в приведенных выше уравнениях. На этом этапе мы суммируем различные выгоды и затраты, чтобы получить долларовую стоимость для каждого результата классификации.

Например, ложное срабатывание составляет 80 долларов, потому что вы добавляете цену билета в кино, 2 часа времени, потраченного на просмотр фильма, и эмоциональный ущерб от просмотра плохого фильма. True Positive стоит 10 долларов, потому что вашему другу стоило 50 долларов посмотреть этот фильм, но он потратил на это 40 долларов времени и денег. Для простоты предположим, что каждый фильм длится 2 часа.

Ложное срабатывание = F+2(A)+B = 20$ +(10$*2) +50$ = 80$

Ложноотрицательный результат = C = 12 долларов США

Истинный положительный результат = D-F-2(A) = 50 долларов - 20 долларов - (10 долларов * 2) = 10 долларов.

Истинный отрицательный результат = E = 5 долларов США.

Соотношение выгод и затрат

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

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

Мы можем выполнить следующие шаги:

  1. Подсчитайте количество TP, TN, FP и FN
  2. Используйте затраты, которые вы рассчитали для каждого результата, в качестве весов для расчета соотношения выгод и затрат.

Возвращаясь к примеру с фильмом, вспомните, что у нас был тестовый набор из 300 фильмов, и 90% из них были предсказаны правильно. После того, как вы выполните приведенные выше указания, вы получите следующее количество точек данных для каждого типа результата классификатора.

Прогнозы TP = 80 прогнозов

Прогнозы TN = 190 прогнозов

Прогнозы FP = 30 прогнозов

Прогнозы FN = 0 прогнозов

Как и ожидалось, 270 из 300 прогнозов оказались правильными (TP+TN). Мы видим, что было 30 ложных срабатываний, а стоимость FP составляла 80 долларов.

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

[(Вес * TP) + (Вес * TN)] / [(Вес * FP) + (Вес * FN)]

Наши ожидаемые выгоды равны TP и TN, а наши ожидаемые затраты равны FP + FN. Если мы применим наши веса, вычисленные для TP, TN, FP и FN, мы можем составить следующее уравнение.

[($10*TP)] + [($5*TN)] / [($80*FP) + ($12*FN)]

Если мы применим все вычисленные числа к соотношению затрат и выгод:

[10(80) + 5(190)] / [80(30) + 12(0)] = 1750 / 2400 = .729

Значение выше 1 означает, что модель добавляет ценность. В нашем случае значение равно 0,729. Это означает, что модель вредит вашему другу, несмотря на то, что 270 из 300 прогнозов верны. Неудивительно, что ваш друг перестал использовать приложение!

Экономические функции вне бинарной классификации

Мы можем распространить эту структуру и на другие типы задач. Например, в многоклассовом классификаторе вы можете измерить правильные, неправильные, пропущенные и выходящие за рамки высказывания, а затем применить соответствующие веса к этим измерениям, чтобы определить свои преимущества и затраты. В качестве альтернативы вы можете использовать классификатор один против всех для построения глубоких метрик на уровне каждого класса. Для некоторых меток классов может быть важнее иметь более высокую точность, чем для других меток, поэтому, возможно, следует настроить экономическую метрику для оптимизации для этих подмножеств классов.

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

Практические шаги и более глубокие показатели машинного обучения

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

Более глубокие метрики, такие как F1, учитывают точность и полноту (и, следовательно, результаты классификации), что дает лучшее представление о работе модели по сравнению с просто точностью. Такие понятия, как чувствительность и специфичность, хорошо известны и обсуждаются, и они пересекаются с этим постом.

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

Экономические функции в реальном мире

Конечно, реальный мир намного грязнее, чем пример из фильма. Процесс консолидации выгод и затрат может занять несколько итераций и значительное время. Также очень сложно измерить такие аспекты, как «эмоциональный ущерб». Чтобы получить достойную меру этого, потребуется очень глубокое понимание ваших клиентов, и даже тогда это может быть не на 100% точным. Веса, которые вы применяете, скорее всего, не будут правильными и могут быть субъективными, а не клиентоориентированными.

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

Заключение

В этом посте мы предприняли следующие концептуальные шаги высокого уровня с шагами экономического уровня, выделенными жирным шрифтом:

  1. Источник и подготовка данных
  2. Построить и обучить модель
  3. Создание прогнозов с использованием тестового набора
  4. Используя прогнозы, пометьте результаты классификации (TP, FP, TN, FN в случае бинарного классификатора).
  5. Узнайте стоимость и преимущества результатов классификации и переведите их в доллары. Для этого специалисты по машинному обучению должны работать с заинтересованными сторонами, которые очень хорошо понимают, чего хотят клиенты.
  6. Сравните результаты классификации со значениями выгод и затрат, рассчитанными на шаге 5.
  7. Вычислите функцию экономической полезности (или более 1). В этом примере функцией было соотношение выгод и затрат
  8. Оптимизируйте свою модель в соответствии с функцией полезности. Это может поставить под угрозу точность. В случае соотношения выгод и затрат мы хотим, чтобы модель была больше 1, а наша исходная модель была меньше 1.

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

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