Как выбрать порог для автоотклонения и порог для ручной модерации в задаче модерации объявлений?
Что проверяют
Умеете ли вы превратить скор модели в два решения с разной ценой ошибки, а не подобрать один порог «по F1». Следом почти всегда спрашивают, как оценивать качество, если метки дают только те объявления, которые дошли до модераторов.
Как отвечать
Опишите схему из трёх зон по скору нарушения s: при s >= t_reject объявление отклоняется автоматически, при t_review <= s < t_reject уходит в очередь модераторам, ниже t_review публикуется. Дальше объясните, что пороги выбираются по разным критериям:
- порог автоотклонения: задаётся через точность (precision). Ложное отклонение бьёт по честному продавцу, поэтому фиксируете целевую точность и берёте минимальный порог, при котором она держится на отложенной выборке с учётом доверительного интервала;
- порог ручной модерации: задаётся через полноту (recall) и ёмкость очереди. Всё, что выше него, кто-то проверит, значит он определяет полноту системы. Но модераторы разбирают конечное число объявлений в сутки, и порог сдвигается, пока объём зоны не влезет в эту пропускную способность;
- функция стоимости: вместо F1 явно посчитайте цену пропущенного мошенничества, цену ложного отклонения и цену минуты модератора, порог минимизирует ожидаемые потери;
- калибровка: скор должен быть калиброван (
CalibratedClassifierCV, изотоническая регрессия или Platt), иначе «0.9» ничего не значит.
Смотрите на precision-recall кривую, а не на ROC: при редком классе ROC выглядит слишком оптимистично. Новые пороги сначала гоняют в теневом режиме, потом в A/B, а в проде следят за долей апелляций.
Где спотыкаются
Берут один порог по максимуму F1. Эта метрика ничего не знает ни о цене ошибок, ни о загрузке модераторов.
Забывают про смещение обратной связи. Метки появляются только у объявлений из средней зоны, а автоопубликованные и автоотклонённые остаются без разметки. Без случайной контрольной выборки из всех зон оценки качества со временем начинают врать.
Выставляют пороги один раз. После переобучения модели распределение скоров меняется, и старый порог даёт уже другую точность, поэтому пороги пересчитываются под каждую версию модели.