#кейсы #ML
Итак, развязка вчерашней задачи
Я большой любитель каскадов моделей (выше был пример в кейсе про недвижку)
Потому конечно же посоветовал построить модель обрыва сессии, сделать онлайн калибровку, и полученную вероятность учитывать в формуле мат. ожидания
На оффлайне эта модель выбила 0.75 ROCAUC, в новом эксперименте 0.8 ROCAUC — модель получилось сильной (оно и неудивительно, топ-фичи — прокси на трудоемкость вопроса для пользователя)
Что же пошло не так?
❗️ Факт 1. Вместо сплита на A/B по пользователям сплит был по сессиям — то есть один и тот же пользователь мог появиться в разных сессиях в разных группах -- и в тестовой и в контрольной
Но это не самое главное и достаточно часто встречается.
‼️Факт 2:
После того как модель выбирала вопрос, который показать следующим, на стороне бэка включались пост-фильтры — например, входит ли юзер в релевантный сегмент и прочее. Если отрабатывал фильтр — бэк снова дергал ручку модели, ровно с тем же набором фичей 🤣🤦♂️😂😂😂🙈🏆💎.
Как вы думаете, к чему же такой запрос приводил?
Правильно, к тому что модель давала ровно такой же ответ, цикл повторялся 700-800 раз до тайм-аут и разрыва сессии , интерфейс у пользователя все это время висел. Отловили ручным тестированием.
Век живи — век учись. И старайся фильтровать до модели!
Итак, развязка вчерашней задачи
Я большой любитель каскадов моделей (выше был пример в кейсе про недвижку)
Потому конечно же посоветовал построить модель обрыва сессии, сделать онлайн калибровку, и полученную вероятность учитывать в формуле мат. ожидания
На оффлайне эта модель выбила 0.75 ROCAUC, в новом эксперименте 0.8 ROCAUC — модель получилось сильной (оно и неудивительно, топ-фичи — прокси на трудоемкость вопроса для пользователя)
Что же пошло не так?
❗️ Факт 1. Вместо сплита на A/B по пользователям сплит был по сессиям — то есть один и тот же пользователь мог появиться в разных сессиях в разных группах -- и в тестовой и в контрольной
Но это не самое главное и достаточно часто встречается.
‼️Факт 2:
После того как модель выбирала вопрос, который показать следующим, на стороне бэка включались пост-фильтры — например, входит ли юзер в релевантный сегмент и прочее. Если отрабатывал фильтр — бэк снова дергал ручку модели, ровно с тем же набором фичей 🤣🤦♂️😂😂😂🙈🏆💎.
Как вы думаете, к чему же такой запрос приводил?
Правильно, к тому что модель давала ровно такой же ответ, цикл повторялся 700-800 раз до тайм-аут и разрыва сессии , интерфейс у пользователя все это время висел. Отловили ручным тестированием.
Век живи — век учись. И старайся фильтровать до модели!