TGViewer
Knowledge Accumulator Knowledge Accumulator @knowledge_accumulator · 5.69K subscribers
Post #163 3.56K
На какой лосс учить рекомендательную систему?

В рекомендациях доминирует парадигма "Learning to Rank" - учится модель, получающая на вход (пользователь, контекст, документ) и выдающая число - предсказание релевантности, по которому потом сортируем.

Важным вопросом является то, на что такую модель надо учить. Упростим ситуацию - предположим, что у нас собраны данные о рекомендательной выдаче, и для каждой тройки (пользователь, контекст, документ) одна метка - был ли положительный отклик.

Самым банальным подходом будет учить бинарный классификатор через какой-нибудь logloss. Если предположить, что у нас есть идеальная модель, предсказывающая вероятность отклика - это и будет лучшее ранжирование, мы этого и хотели.

Но в реальности наша модель обладает ограниченной ёмкостью, данные конечны, и поэтому модель не будет выдавать свой "теоретический" максимум. И тут важным является то, какого рода ошибки наша модель допускает, а это уже зависит от способа обучения.

Нам не так страшно, если модель будет ошибаться в значении вероятности для конкретного документа. Самое важное - это чтобы в рамках набора кандидатов при формировании выдачи модель выдала правильный порядок документов. Поэтому и учить нам есть смысл соответствующим образом - на правильный порядок.

Самый простой пример - Pair-Wise Logloss. Идея - вместо предсказании метки класса будем формировать пары из документов внутри одной выдачи с разными значениями отклика, и logloss применять к разнице логитов - предсказывать в качестве класса "порядок". Можно по-разному обучать эти разницы логитов, на картинке другой пример - PairwiseLogisticLoss. Больше примеров здесь.

В реальности есть подводные камни - сложности в реализации, отсутствие сигнала, если в пачке у всех документов был нулевой отклик, всякое по мелочи. Поэтому разные подходы часто комбинируются какими-то костыльными способами, ориентируясь на ранжирующую метрику вроде NDCG.

@knowledge_accumulator
  • 👍 22
  • ❤ 3
  • 🔥 2
More from @knowledge_accumulator
  1. Sep 20, 2026Почувствуйте AGI Все эти годы я писал о том, что не верю в потенциал LLM превратиться в су…
  2. Sep 5, 2026Предсказать среднее могут не только лишь все Классическая задача машинного обучения - трен…
  3. Aug 17, 2026Долина vs Нью-Йорк Если что-то находится далеко от нас, нам свойственно излишне обобщать с…
  4. Jul 30, 2026Кто виноват в сливе рекламного бюджета? При создании рекламного line item рекламодатель ус…
  5. Jul 13, 2026Покатался на яхте в Американской глубинке После переезда в Калифорнию произошло неожиданно…
  6. Jun 30, 2026Да кто такие эти ваши producer-side A/B-тесты? В своей яндексовской эре работы над рекомен…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →