Назад к подготовке

Negative sampling и embeddings без таргета

Какие проблемы есть у in-batch negatives и как обучать embeddings объявлений, если пользовательских действий еще нет?

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

Короткий ответ

In-batch negatives дешевы, но могут давать popularity bias и false negatives. Без таргета embeddings учат через self-supervised задачи: текстовые пары, атрибуты, категории, аугментации, pseudo-labels и активную разметку сложных пар.

Полный разбор

In-batch negatives используют объекты из того же батча как отрицательные примеры. Это дешево и хорошо масштабируется, но есть риски. Популярные объекты чаще попадают в батчи и чаще штрафуются как negatives. Кроме того, часть negatives может быть на самом деле релевантной, особенно в длинном хвосте или соседних категориях.

Коррекции: смешивать random и hard negatives, учитывать sampling probability, не брать очевидные false negatives из близких групп, добавлять temperature, debiasing или отдельные popularity features. Для retrieval важно проверять не только loss, но и Recall@K по валидному набору.

Если пользовательских действий нет, можно учить представления self-supervised способом: title-description matching, предсказание категории и атрибутов, contrastive learning между аугментациями текста, image-text matching, похожие товары по правилам/каталогу, pseudo-labels от базовой модели. Когда появляется разметчик, полезнее отдавать ему спорные пары: близкие по модели, но потенциально разные, или одинаковые категории, которые модель разводит далеко.

Теория

Качество embeddings определяется тем, какие пары модель считает близкими и далекими; sampling negatives задает это поведение не меньше, чем архитектура.

Типичные ошибки

  • Считать все объекты в батче настоящими негативами.
  • Не учитывать popularity bias.
  • Учить embeddings без downstream-проверки на retrieval-задаче.