TGViewer
Knowledge Accumulator Knowledge Accumulator @knowledge_accumulator · 5.69K subscribers
Post #309 2.81K
LogQ correction

По малообъяснимой причине, я испытываю неприязнь к LogQ correction. Какая-то она слишком душная. Но всё же я стремлюсь оценивать идеи по их полезности, а не красоте. Поэтому сегодня я взгляну ей прямо в глаза и перерасскажу смысл вам.

Итак, в рекомендательных системах в каком-то смысле пытаются выучить распределение p(item | user), показывающее распределение на айтемы, с которыми пользователь положительно взаимодействует.

Для обучения нам нужны позитивные пары и негативные пары. Если в задаче ранкинга очень важны сложные негативы, и поэтому мы берём их из показов пользователя, для ретривала нам важнее уметь фильтровать полный мусор.

Поэтому ретривал-модели часто обучают следующим образом - берут батч (user_1, item_1), (user_2, item_2). Из N таких пар создают N * (N - 1) негативов, то есть каждого пользователя сопоставляют со всеми чужими документами. Получается халява - тяжёлую эмбеддинг модель мы применили 2*N раз, а получили N^2 обучающих сэмплов.

На практике матрицу юзерных эмбедов просто домножают на транспонированную матрицу документов, получаем много логитов, и в каждой строчке получается по одному p(item | user_i). Дальше применяем софтмакс и учим.

И тут в комнату входит душнила-математик -

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

Справедливо. Тут-то и приходит на помощь эта самая LogQ коррекция. По сути это просто importance sampling веса на негативные сэмплы, считающиеся как доля этого документа во всем датасете. Самое противное, что на полу она не валяется, и нужно заморачиваться с тем, чтобы её оценивать и добавлять в фичи, ну или как-то ещё её доставать.

И если вам было недостаточно душно в этой комнате, тут в неё заходит Кирилл @inforetriever

«Вообще-то, у вас тут в вашей коррекции ошибочка. Вы неправильно считаете вес для положительного айтема в знаменателе. Его вероятность в нём оказаться отличается от негативных документов»

В статье, от названия которой мне плохо - “Correcting the LogQ correction” - Кирилл и соавторы выписывают ну уже точно правильную формулу лосса для честной оптимизации likelihood. Там не очень сложно, но пересказывать тут в деталях откажусь, я только что позавтракал.

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

Боже упаси делать Retrieval 🙏

@knowledge_accumulator
  • ❤ 24
  • 👍 9
  • 🔥 7
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 →