Над статьей также работали: Адриан Лазарев,
Любовь Кислинская,
Александр Косов.
Авторы библиотеки Kolmogorov ABacus: Вадим Глухов,
Егор Шишковец,
Дмитрий Забавин.
Знакома ли вам такая ситуация: вы разработали модель машинного обучения и попытались оценить эффект, но эксперимент показал, что модель не принесла никакого экономического эффекта?
Значит ли это, что модель действительно неэффективна? Или причина низких результатов все-таки в чем-то другом? И если так, то в чем именно?
Нечто подобное случилось с командой Альфа-Банка, и мы – GlowByte Advanced Analytics – отправились к ним на помощь, захватив с собой разработанную нами библиотеку A/B-тестирования Kolmogorov ABacus (что в переводе означает “счеты”)!
Кстати – еще до того, как вы познакомитесь с достоинствами и преимуществами нашей библиотеки – рады сообщить, что на момент публикации код библиотеки уже выложен нами в open source:
github.com/kolmogorov-lab/abacus. Просто выполните “pip install kolmogorov-abacus” – и ABacus в вашем распоряжении!
Кейс Альфа-Банка Коллеги из Альфа-Банка разработали модель персонализации рекламных баннеров: в зависимости от атрибутов клиента модель ранжирует баннеры различных продуктов банка по убыванию их прогнозируемой привлекательности для клиента. На этапе обучения точность модели оказалась достаточно высокой: модели довольно точно удавалось отобрать баннеры, на которые клиент кликнет с наибольшей вероятностью. Но, когда был запущен пилот для оценки экономического эффекта от внедрения этой модели, оказалось, что по большинству баннеров он отрицателен (!), а по остальным эффекта почти нет.
Обратим еще раз внимание на этот симптом, который свидетельствует о возможном наличии ошибки в дизайне эксперимента: модель обладает приемлемой точностью на этапе обучения, но не подтверждает этой точности на этапе оценки эффекта.
Причины ошибочных результатов при проведении статистических экспериментов1) Малая численность групп (малая мощность теста)Во-первых, следует помнить, что статистический тест не гарантирует правильного ответа на вопрос, отличаются ли сравниваемые группы или нет. Более того, любой статистический тест предполагает, что он ТОЧНО время от времени будет ошибаться: в какой-то доле случаев он будет замечать эффект там, где его точно нет (доля таких случаев называется в статистике ошибкой первого рода), а в какой-то доле случаев не будет замечать эффект там, где он точно присутствует (доля таких случаев называется в статистике ошибкой второго рода).
Причем чем меньше численность групп, участвующих в эксперименте, тем больше вероятность того, что мы не заметим достигнутый эффект (как еще говорят, тем выше ошибка второго рода).
Правда, здесь возникает вопрос: как мы можем не заметить достигнутый эффект? Ведь если мы можем говорить, что достигли эффект, значит, мы его уже заметили. То есть мы можем либо заметить эффект, либо не заметить. Но как мы можем оценить долю случаев, когда мы “должны были заметить эффект”, но не заметили? Разве нам может быть заранее известно, будет ли в эксперименте достигнут статистически значимый эффект или нет? Этому вопросу будет посвящена отдельная статья, но краткий ответ: да. Мы можем сымитировать эксперимент: можем выделить две группы клиентов, добавить эффект к значениям метрики в одной из групп, а затем проверить: удастся ли нам заметить этот эффект или нет. Такую имитацию мы можем повторить много-много раз и вычислить ту самую долю случаев, когда нам не удалось заметить эффект, который точно присутствовал в данных.
В библиотеке ABacus такая многократная имитация эксперимента выполняется (если не считать описание конфига) одной командой.
Но подробнее об этом, как я уже обещал, – в отдельной статье.
2) Несопоставимость группВторая причина ошибочных результатов эксперимента – несопоставимость групп.
Если сравниваемые в ходе эксперимента группы несопоставимы друг с другом, то результаты эксперимента могут быть какими угодно. Скажем, если в контрольной группе (которая не получает никаких воздействий) преобладают клиенты с большими средними тратами или с большей частотой покупок, то сколь бы эффективным ни было наше воздействие на клиентов тестовой группы, нам вряд ли удастся статистически значимо превзойти результаты контрольной группы. То есть сравниваемые группы должны быть сопоставимы друг с другом.
Однако даже если сравниваемые группы сопоставимы друг с другом, но несопоставимы с общей совокупностью клиентов, то воздействие, показавшее эффект в ходе эксперимента, может не показать эффекта, если попытаться применить его ко всем клиентам. А ведь по результатам такого неправильно поставленного эксперимента неэффективное маркетинговое воздействие может даже быть поставлено на регламент, то есть будет регулярно приносить убыток. Следовательно, сравниваемые группы обязательно должны быть сопоставимы как друг с другом, так и с общей совокупностью клиентов.
Итак, неправильно поставленный эксперимент может, с одной стороны, лишить нас по-настоящему эффективных способов воздействия на клиента, с другой – побудить нас регулярно совершать убыточные действия, а также тратить время и усилия на поддержку их регулярности.
Как нам удалось выяснить, в кейсе Альфа-Банка проблема состояла именно в несопоставимости сравниваемых групп. А теперь поговорим о том, как именно мы это выяснили и как нам удалось это исправить.
Как обеспечить сопоставимость групп? Подходы к формированию сопоставимых групп1) Формирование групп случайным образомОдним из наиболее распространенных заблуждений является уверенность в том, что при выделении групп случайным образом мы гарантированно получим сопоставимые группы.
Проверим эту гипотезу методом А/А-теста! Давайте попробуем много раз повторить случайное выделение групп, каждый раз оценивая значимость различий между сформированными группами по целевой метрике. И вычислим долю случаев, когда нам удастся заметить статистически значимое различие. Эта доля называется ошибкой первого рода (то есть это доля случаев, когда мы замечаем эффект там, где его нет). В идеале доля таких случаев не должна превышать допустимого уровня ошибки первого рода (для маркетинговых исследований индустриальным стандартом является значение alpha = 0,05). Иначе применение случайного метода при формировании групп недопустимо: это значит, что он формирует несопоставимые группы, из-за чего мы слишком часто будем замечать эффект там, где его нет.
Иллюстрация: матрица ошибок первого рода при случайном сплитовании