ДРИФТ МОДЕЛЕЙ, АВТОМАТИЧЕСКОЕ ПЕРЕОБУЧЕНИЕ И КАК НЕ УБИТЬ СВОИ МОДЕЛИ

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

Прогностические модели в производстве

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

Или они? Всегда ли благодаря этому эти модели работают максимально эффективно? Часто ответ положительный, но есть некоторые вещи, о которых следует помнить. И внимательно следить, чтобы убедиться, что ваша модель по-прежнему «делает то, что должна делать лучше всего». В этой статье мы более подробно расскажем о предостережениях «автоматической переобучения по умолчанию» и о том, как убедиться, что вы контролируете ситуацию и максимально увеличиваете свои усилия. В этом блоге мы поможем вам настроить систему сдержек и противовесов, чтобы сохранить полный контроль.

Дрейф модели, дрейф концепции, дрейф данных.

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

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

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

Вместе дрейф понятий и дрейф данных — это то, что мы могли бы обобщить как дрейф модели: в результате этих типов дрейфа модель больше не делает (так же хорошо, как раньше) то, для чего она предназначена. Переподготовка может решить эту проблему. А может и нет…

Почему бы просто не переобучить свои модели (постоянно)?

Мы видим, что мир постоянно меняется, что приводит к дрейфу понятий, и что данные также постоянно меняются, что приводит к дрейфу данных. Затем «Почему бы не проводить повторную подготовку каждый день?» — спросите вы. Мы видим тенденцию, что компании применяют эту стратегию «переобучения по умолчанию», чтобы не использовать «устаревшие» модели. Часто как единственное решение этих проблем. Мы не утверждаем, что это не может быть хорошим решением — мы считаем, что постоянное переобучение может быть очень хорошей идеей — но не всегда. Мы не рассматриваем непрерывную переподготовку как единственное решение. Давайте обсудим некоторые причины, почему нет, прежде чем искать что еще.

Почему бы и нет № 1: выплеснуть вместе с водой ребенка

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

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

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

Почему бы и нет № 2: наложение пластыря на реальные проблемы с данными (дрейф данных)

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

Повторное обучение могло бы исправить это, если бы мы проводили повторное обучение на наборе, где функция аналогична в полном наборе повторного обучения. Однако часто это не так! Часть данных находится в «старой версии» функции, а часть — в «новой версии». Иногда это можно восстановить, но не всегда. Например: замененные или неисправные датчики, генерирующие данные. Переобучение модели в период, в котором есть обе версии, вероятно, приведет к отклонению функции из-за различного содержания в функции в течение всего периода переобучения. Принимая во внимание, что раньше это могло быть очень важной функцией… Лучше проверить, можно ли восстановить данные функции, а не просто переобучить. Просто продолжать автоматическое переобучение до тех пор, пока «старые» или «плохие» данные не выйдут за рамки, часто не лучший вариант…

Почему бы и нет №3: Мир меняется каждый день! Не так ли? (концептуальный дрейф)

Третьей причиной быть несколько консервативным в переобучении моделей каждый месяц/неделю/день/час является честный ответ на вопрос: Действительно ли концепция, которую мы пытаемся предсказать, так постоянно меняется? Откликаются ли клиенты на наши кампании по причинам, отличным от тех, которые вчера откликнулись на то же предложение? Или накануне? Мы так часто переобучаем все наши модели, потому что думаем, что нам это нужно, или потому что знаем, что можем? Действительно ли мы видим, что модель перестала работать?…

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

Чтобы контролировать наши модели: контролируйте выходы и входы!

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

Мы советуем отслеживать три вещи, чтобы уверенно продолжать использовать модель. Это может быть статическая модель, обученная только один раз или повторно обученная ad hoc, или это может быть модель с автоматическим переобучением. Далее мы даем вам советы, когда рекомендуется рассмотреть возможность автоматического переобучения модели. И мы также подробно расскажем, как настроить действительно полезный и ценный мониторинг — оповещение только при появлении соответствующих изменений в соответствующих метриках — чтобы вы не были перегружены очередным потоком метрик/предупреждений.

№1. Следите за бизнес-результатом

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

№ 2. Отслеживание результатов оценки модели

Часто — раз в месяц, неделю, день, минуту, секунду — ваша модель применяется к новым данным для оценки этих новых записей. Результатом этого процесса периодической оценки является прогнозируемая оценка: вероятность того, что клиент ответит на предложение, вероятность того, что процесс прервется, или прогнозируемое количество входящих вызовов на завтра. Важным индикатором того, что что-то меняется — из-за смещения концепции или данных — является пристальное наблюдение за результатами этих прогнозов. Изменяется ли минимальное, максимальное, среднее или медианное значение этих баллов или больше случаев внезапно остаются без баллов? Большие изменения и долгосрочные тенденции должны приводить к оповещениям, сигнализирующим об изменениях, которые могут повлиять на результаты бизнеса. Поскольку изменения в оценках модели могут иметь отсроченный эффект на бизнес-результаты, очень важно отслеживать результаты оценки модели.

№3. Мониторинг оценки модели

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

Мониторинг на практике: popmon

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

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

Чтобы помочь вам начать работу с popmon, моя коллега Jeanine Schoonemann написала записную книжку, в которой показано, как вы можете применять popmon к своим данным и получать соответствующие метрики и оповещения для интеграции с вашими собственными инструментами отчетности и информационных панелей. Popmon также предоставляет готовые отчеты в формате html, в документации popmon вы можете прочитать о них больше.

Другие вещи, которые следует учитывать перед началом (автоматической) переподготовки

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

Сезонность №1

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

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

# 2 влияние на предыдущую модель

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

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

# 3 сосредоточьтесь на своей (бизнес) цели

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

Завершение

В этой статье мы представили дрейф модели и его варианты, дрейф данных и дрейф концепций. Мы покажем, как они могут повлиять на ваши прогностические модели. Многие организации начинают автоматически переобучать модели, предвидя возможный износ из-за дрейфа модели. Мы показываем, что это может быть очень полезным, но делать это следует с осторожностью, поскольку существует риск снижения производительности ваших моделей. Мы советуем начать с реализации правильного мониторинга и оповещения — например, с помощью таких инструментов, как popmon — и мы заканчиваем несколькими последними советами, которые следует учитывать, прежде чем вы начнете «автоматическое переобучение всего».