Какие методы использовать для отбора негативных примеров
Что проверяют
Понимаете ли вы, что выбор негативов определяет, чему научится модель, а не только как быстро. Контекст обычно рекомендации, поиск или обучение эмбеддингов по неявному фидбеку. Следом спрашивают про ложные негативы и про то, как сэмплирование искажает вероятности и офлайн-метрики.
Как отвечать
Сначала скажите, откуда негативы берутся: в неявном фидбеке «не кликнул» не значит «не нравится», чаще это «не видел». Поэтому показанные без клика объекты ценнее случайных. Дальше методы:
- случайные: равномерно по каталогу. Просто, но модель быстро учится отличать такие примеры, и градиент от них почти обнуляется;
- по популярности: вероятность пропорциональна частоте в степени, как
0.75в word2vec. Модель перестаёт выигрывать на простом подтягивании популярного; - in-batch: позитивы соседей по батчу служат негативами. Для двухбашенной модели это
cross_entropy(q @ d.T / t, arange(B)), почти бесплатно. Минус: популярные объекты чаще попадают в негативы, это исправляют logQ-поправкой, вычитая из логита логарифм вероятности попасть в батч; - hard negatives: верхние кандидаты из BM25 или прошлой версии модели за вычетом известных позитивов. Дают основной прирост качества;
- semi-hard: для триплетного лосса берут негативы дальше позитива, но в пределах отступа, иначе обучение легко схлопывается;
- смесь: часть случайных плюс часть трудных, чтобы модель не забывала лёгкие случаи.
Если негативы прорежены при обучении CTR-модели, предсказание нужно откалибровать: при доле оставленных негативов w поправка p = q / (q + (1 - q) / w).
Где спотыкаются
Берут самые трудные негативы без фильтра. Среди них много ложных, то есть объектов, которые пользователю тоже подошли бы. Их отсекают порогом по скору или переразметкой кросс-энкодером.
Сравнивают модели по метрикам на сотне случайных негативов. Такие метрики способны поменять модели местами относительно оценки по полному каталогу.
Забывают про калибровку после даунсэмплинга и отдают завышенные вероятности клика в аукцион или бизнес-расчёт.