Что такое hard negative mining в ранжировании?
Ответ от нейросети
sobes.tech AI
Что хотят услышать интервьюеры:
Hard negative mining — это способ обучения ранжировщика, при котором модель дополнительно учат на «трудных» отрицательных примерах, то есть на объектах, которые она путает с релевантными. Это помогает быстрее улучшать качество сортировки там, где модель чаще всего ошибается. В поиске и LTR такой подход обычно дает больший эффект, чем обучение на случайных негативных примерах.
Определение:
Hard negative mining — это стратегия отбора негативных примеров для обучения, где в датасет специально добавляют не любые отрицательные объекты, а те, которые модель считает похожими на положительные или ранжирует слишком высоко.
Смысл в том, чтобы не тратить обучение на «легкие» отрицательные примеры, которые и так правильно распознаются, а фокусироваться на границе между релевантным и нерелевантным.
Пример использования:
В поисковой системе для запроса «купить ноутбук» положительными считаются результаты, которые пользователь действительно выбирает. Среди отрицательных документов есть очевидно нерелевантные, например «ремонт стиральных машин», и есть трудные, например карточка ноутбука с плохими характеристиками или нерелевантный, но очень популярный товар.
При hard negative mining в обучение чаще берут именно такие «почти хорошие» документы, потому что модель чаще путается именно с ними.
# Псевдокод отбора hard negatives для ранжирования
for query in train_queries:
positives = get_positive_docs(query)
candidates = retrieve_top_k(query, k=100) # документы, которые модель/поиск считает релевантными
negatives = [doc for doc in candidates if doc not in positives]
hard_negatives = rank_by_model_score(negatives)[:10] # самые высоко оцененные как негативы
train_batch = positives + hard_negatives
update_ranker(query, train_batch)
Пояснение кода:
Код не требуется, но пример показывает типичный процесс:
- Для запроса берутся положительные документы — те, что должны ранжироваться высоко.
- Затем система получает набор кандидатов, обычно через retrieval или текущую версию модели.
- Из кандидатов исключаются уже известные позитивы.
- Среди оставшихся негативов выбираются те, которые модель поставила выше остальных — это и есть hard negatives.
- На этих примерах модель дообучается, чтобы научиться лучше различать похожие объекты.
Ключевые моменты:
- Hard negatives — это не случайные, а «сложные» отрицательные примеры.
- Они полезны потому, что лучше отражают реальные ошибки модели.
- В ранжировании это особенно важно, так как качество определяется именно верхом выдачи.
- Слишком агрессивный отбор hard negatives может добавить шум, если в negatives попадают скрыто релевантные документы.
- Обычно метод используют вместе с retrieval/mining pipeline и периодически обновляют по мере улучшения модели.