Наука о данных. Модуль 8

Как проверить модель «в бою»

В этом модуле вы узнаете:
• как бизнесу измерить реальный эффект от алгоритма по методу A/B-тестирования;
• как провести A/B-тест так, чтобы его результаты были максимально чистыми, и каких ошибок избегать при проведении эксперимента.
А заодно вы научитесь читать результаты таких сравнительных тестов.

Генеральная репетиция: модель машинного обучения против «как было раньше»

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

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

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

Как проводят A/B-тесты для проверки моделей машинного обучения: реальные истории и советы

Лучше один раз увидеть, чем несколько раз прочитать, верно? Мы нашли для вас видео, в котором сотрудник проекта Yandex Data Factory (подразделение «Яндекса», которое разрабатывает модели машинного обучения для крупных внешних бизнес-заказчиков) рассказывает о трех реальных тестированиях: как они организовывались и с какими проблемами специалистам и их заказчикам пришлось столкнуться в процессе. Смотрите внимательно!

© «Яндекс»

Результаты A/B-теста легко измерить, но также легко исказить, если допускать ошибки. Мы собрали самые частые из них в одну подборку — пожалуйста, не повторяйте их, когда будете проверять модель.

Вредные советы от экспертов

Тестировать несколько изменений сразу

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

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

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

Менять процесс целиком, а не встраивать модель в существующий

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

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

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

Останавливать тестирование слишком рано

Представьте ситуацию: вы показали изменение 1 000 человек и записали их реакцию, в то же время сайт без изменений просмотрели еще 1 200 посетителей. Новая версия показала лучший результат по дополнительным покупкам за счет рекомендаций — на целых 8%. Хочется зафиксировать победный счет и праздновать, но рано. Потому что затем сложно будет объяснить проседание до 0,3%, которое может случиться на отметке в 10 000 человек. Аналогично не стоит расстраиваться, если поначалу модель не проявит себя (время и статистически значимое число показов, реакций или иных взаимодействий все расставят по своим местам).

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

Анализировать результат по не тем показателям

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

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

Сколько участников нужно для A/B-тестирования, чтобы мы могли верить его результатам

Мы упомянули статистическую значимость, без которой результаты теста нельзя будет считать надежными. Наверняка у вас возник вопрос: «А сколько человек в моем случае должны увидеть цифровой продукт без изменений и, наоборот, с изменениями, чтобы результаты исследования были достоверными и значимыми?» Давайте научимся оценивать объем выборки.

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

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

1. Среднее значение показателя, на который вы хотите повлиять

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

2. Размер эффекта (как должен измениться показатель)

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

Помните: чем меньший эффект вы хотите обнаружить, тем больший объем выборки вам нужен.

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

Выдавать желаемое за действительное — одна из особенностей человека. Например, по каким-то причинам мы можем посчитать, что конверсия страницы Б превышает конверсию страницы А, но на самом деле статистически две цифры не различаются.

Эта вероятность заложена в формулу расчета выборки и называется уровнем значимости и обозначается греческой буквой α. Вы сами определяете его значение (обычно это 0.1, 0.05 и 0.001 — чем меньше уровень значимости, тем реже ошибочно отвергается нулевая гипотеза).

Помните: чем меньше ошибок первого рода вы хотите допустить, тем больший объем выборки вам нужен.

4. Вероятность ошибки второго рода (изменения по факту есть, но мы их не заметили или проигнорировали)

Ошибка второго рода рассматривает обратную ситуацию. Обычно ее вероятность обозначают как мощность или 1-ß, а рекомендованное стандартное значение — 0.2.

Как A/B-тесты связаны с курсом статистики, который вы изучали в вузе

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

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

 

Узнайте, насколько хорошо вы усвоили материал модуля: