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

Имея дело с неопределенными условиями и ограниченным временем, полезно начинать с наиболее многообещающих возможностей. Это верно как в жизни («Что мне больше всего понравится в Netflix сегодня вечером? Так много шоу!»), Так и на рабочем месте. Рассмотрим проблему потенциальных клиентов: учитывая список потенциальных клиентов, с которыми может связаться отдел продаж, как нам упорядочить потенциальных клиентов, чтобы в первую очередь обратиться к лучшим? Этот тип задач, также известный как оценка потенциальных клиентов, десятилетиями использовался компаниями, пытающимися решить проблемы с размещением заказов.

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

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

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

Работа с пациентами в TrialSpark

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

Миссия TrialSpark - сделать клинические испытания более быстрыми и эффективными, где это возможно. Чтобы применить этот принцип к нашему колл-центру, особенно в тех случаях, когда спрос может резко возрасти и вызывающие абоненты не могут завершить полный список пациентов, мы хотели, чтобы алгоритм ранжирования очереди вызовов помещал пациентов выше, если они с большей вероятностью будут достигнуты (т. Е. Более вероятно ответить на звонок). Это помогает нашим абонентам направить свои усилия на пациентов, которые с большей вероятностью будут участвовать в одном из наших исследований. Обратите внимание, что мы оптимизируем не "проходы" экрана телефона, а оптимизацию "досягаемости" экрана телефона. Прогнозирование или даже ранжирование вероятности успеха, учитывая ограниченные данные, которые у нас есть на данном этапе пути к пациенту, невозможно.

Часто хороший первый подход к ранжированию проблем (особенно в амбициозных и быстрорастущих стартапах) заключается в разработке набора правил, которые включают интуицию опытной команды продаж или эксплуатации. Для решения проблемы с нашим колл-центром мы работали с нашей командой по работе с пациентами, чтобы создать настраиваемую систему ранжирования, которая вычисляла совокупный балл для сортировки (который мы называем ниже «Специальным ранжером»). Эта оценка отдавала предпочтение пациентам, которые зарегистрировались относительно недавно, которые были новичками в очереди вызовов (т. Е. Мы еще не пытались связаться с нами ранее), и другим функциям. Параметры, контролирующие относительное влияние каждой функции на рейтинг, были выбраны кросс-функциональной командой на основе того, что казалось разумным с учетом их опыта и наблюдений в предметной области. Параметры не были основаны на каких-либо данных, поскольку наша инфраструктура данных все еще строилась и организовывалась. Каждый пациент был оценен и ранжирован с использованием этого расчета; чем выше ваш балл, тем выше в очереди стоит пациент и тем выше вероятность, что его вызовут следующим.

Измерение эффективности ранжирования

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

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

Сюжет можно прочитать так: Если бы мы случайным образом разместили пациентов в очереди на звонки, нам потребовалось бы около 800 звонков, чтобы в конечном итоге добраться до каждого доступного пациента. С другой стороны, если бы мы правильно упорядочили нашу очередь звонков, мы могли бы связаться с каждым доступным пациентом всего за 150 звонков. Среди показателей эффективности ранжирования это похоже на график Точность @ N, где N - ось абсцисс. Существует множество различных способов измерения производительности средства ранжирования, и выбор может зависеть от последующего приложения средства ранжирования или требуемого уровня сложности. Специальный рейтинг лучше, чем случайный, но есть возможности для улучшения.

Обучение ранжированию на основе прошлых данных

Задачи ранжирования в целом хорошо поддаются методам машинного обучения (ML). Удобно то, что при подготовке исторических данных для графиков перекрестной проверки выше мы преобразовали их в аккуратный набор данных, который подходит для методов машинного обучения: каждая строка соответствует вызову, каждый столбец соответствует их особенностям. вызовов, и один из этих столбцов является зависимой переменной (достигнуто? (да / нет)). Достигнут любой классификатор ML, который использует набор функций для прогнозирования двоичной переменной типа ? (да / нет) можно использовать здесь, если есть некоторая степень уверенности, связанная с этим прогнозом, по которому мы можем отсортировать. График ниже показывает эффективность проверенного дерева решений с разумным выбором параметров.

Средство ранжирования ML работало лучше, чем все протестированные ранее, и реализация этого алгоритма была относительно безболезненной. Одна из основных причин повышения производительности заключается в том, что методы машинного обучения могут обнаруживать и использовать относительную предсказуемость между каждой функцией, а также зависимости (например, функция «регистрировался ли пациент‹ 1 час назад (да / нет) »может быть очень полезной для предсказание, но актуально только для подгруппы пациентов, у которых есть «дни с момента регистрации» ‹2).

Хотя, как следует из сюжета, средство ранжирования ML не было серебряной пулей, которая полностью решила нашу проблему ранжирования, его также можно легко и многократно улучшать, добавляя новые функции и переобучая модель. Это подчеркивает, что машинное обучение на самом деле не является панацеей от какой-либо проблемной области, но вместо этого является полезным инструментом, который может обеспечивать постепенные улучшения, которые со временем в сумме дают большие результаты. Это требует вдумчивой разработки функций, объяснения предположений и тщательной настройки (среди прочего) для работы.

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

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

Существует множество проблем с рейтингом

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

Если - помимо технических проблем, таких как проблемы с ранжированием - вы хотели бы участвовать в более быстром и эффективном предоставлении новых методов лечения пациентам, мы хотели бы получить известие от вас!