RecSys · учебник
Тренажёр Повторение О проекте Все главы

Каталог

Виджеты: что можно покрутить руками

26 интерактивных виджетов. Каждый отвечает на конкретный вопрос с собеседования — не «покажи красиво», а «покрути и увидь, почему это так». Все числа в подписях получены прогоном самих виджетов, а формулы сверены с независимой реализацией.

Метрики и статистика

То, что просят посчитать и объяснить почти на каждом собеседовании.

Тренажёр: посчитай метрику

тренажёр

Шестнадцать типов задач, проверка ответа с разбором, статистика по типам с добиванием слабых мест и режим сессии из 10 задач.

PrecisionRecallHitRateMRRMAPNDCGAUCF1accuracyFPRматрица ошибоксглаженный CTRIPSфильтр Блумаколлизии

Ранговые метрики на одной выдаче

глава 3

Переставьте позитивы: Precision и Recall не шелохнутся, а RR, AP и NDCG вырастут. Это вся разница между метриками покрытия и метриками порядка.

Precision@KRecall@KHitRateRRAPNDCGDCGIDCGgainградуированная релевантность

Скоры, порог и AUC

тренажёр

Порог не влияет на AUC вообще, дисбаланс почти не влияет — а вот AP от него обваливается с 0.89 до 0.34.

ROC-AUCPR-AUCAPпорогTPRFPRдисбаланс классовдоля правильно упорядоченных пар

Калибровка: почему хорошего AUC мало

тренажёр

Любое монотонное преобразование скора оставляет AUC ровно тем же и при этом ломает калибровку. Там, где прогноз умножается на деньги, AUC недостаточно.

калибровкаreliability diagramECELogLossBrierPlatt scalingизотоническая регрессиямонотонное преобразование

По чему усреднять: micro против macro

глава 3

Новичков половина по головам и три процента по запросам. Деградацию на них видно только при усреднении по пользователям.

усреднениеmicromacroкогортыновичкисмещение к активным

Off-policy оценка: IPS, SNIPS, DM, DR

тренажёр

IPS несмещён, но при слабом перекрытии политик ESS падает с 400 до 25 и оценка становится бесполезной. У клиппинга есть оптимум по RMSE.

IPSSNIPSDoubly RobustDirect MethodpropensityESSклиппинг весовoff-policy evaluationлогирующая политика

A/B: размер выборки, MDE и подглядывание

глава 4

MDE падает как корень из n: вдвое меньший эффект стоит вчетверо больше данных. Ежедневное подглядывание превращает 5% ложных срабатываний в 22%.

A/B-тестMDEразмер выборкимощностьp-valueподглядываниеpeekingмножественное тестированиеalpha spending

Recall@K против latency

тренажёр

Кандидатогенераторы сравнивают не при равном K, а при равном бюджете латентности — иначе сравниваются разные инженерные решения.

Recall@Kкандидатогенерацияlatencyпарето-фронтбюджет

Температура софтмакса

глава 7

С косинусом логиты зажаты в [-1;1], и без температуры софтмакс почти равномерный, а градиенты слабые.

температураsoftmaxэнтропияхард-негативыкосинуслогиты

In-batch негативы и LogQ-коррекция

глава 7

Настоящее обучение двух моделей на одном потоке батчей: без коррекции скор сходится к log p − log Q и топит популярное, с коррекцией — к log p.

LogQ-коррекцияin-batch негативыsampled softmaxpopularity biasраспределение сэмплирования

Бандиты: ε-greedy, UCB, Thompson

тренажёр

У ε-greedy regret линейный из-за фиксированной доли случайного трафика, у UCB и Thompson — сублинейный.

бандитыexplorationregretUCBThompson samplingε-greedyдоверительный интервал

Механизмы систем

Как устроены сами системы: от длинного хвоста до semantic IDs.

Длинный хвост и закон Ципфа

глава 1

При α = 1.5 топ-4% каталога собирают 93% просмотров. При слабом перекосе рекомендации не нужны, при сильном — вырождаются в популярное.

длинный хвостзакон Ципфастепенной законДжиниcoverageголова и хвост

Многостадийная воронка

глава 1

Сквозная полнота — произведение полнот стадий. Что потеряно на кандидатогенерации, не вернёт ни один ранкер.

воронкамногостадийностьсквозная полнотапотолок кандгенабюджет латентности

Матричная факторизация и ALS

глава 6

RMSE на отложенном имеет минимум ровно на истинном ранге. Холодный пользователь получает нулевые факторы и предсказание, равное средней оценке.

матричная факторизацияALSлатентные факторырангрегуляризацияпереобучениехолодный стартfold-in

Скалярное произведение, косинус, евклид

глава 5

Спор «дот или косинус» — это спор о том, нужна ли норма вектора. На нормированных векторах все три меры дают один порядок.

косинусскалярное произведениеевклидово расстояниенорма вектораpopularity biasMIPSнормировка

Folding: наложение групп

глава 7

Две непересекающиеся группы и двумерные эмбеддинги. С негативами из показов группы накладываются и половина топ-5 по каталогу — чужая; с негативами из каталога — ноль. Внутри своей группы «показная» модель даже лучше, а по каталогу теряет ровно половину HitRate.

foldingimpression-awareнегативыкандидатогенерацияtwo-towerBPRпропущенные данныесдвиг распределения

Приближённый поиск соседей

глава 9

Recall растёт с 0.10 до 1.00 при efSearch от 1 до 20, а число посещённых узлов — с 25 до 68. Приближённость это настраиваемый параметр, а не сбой.

ANNHNSWefSearchприближённый поискRecall@Kобход графаlatency

MMR: релевантность против разнообразия

глава 15

Первые проценты разнообразия стоят 7% релевантности, последние — 21%. Вкладка DPP показывает то же через определитель ядра: объём набора 1.99e-2 против 4.15e-4 у жадного топа.

MMRразнообразиеdiversityDPPвнутрисписочное разнообразиепереранжирование

Бандит поверх ранкера

глава 16

Каталог из 40 айтемов, в котором спрятан новый айтем с лучшим CTR. Жадная сортировка не находит его никогда; сортировка по μ + α·σ находит и даёт +9% к выдаче, а слишком большая α снова всё портит. Видно и преждевременный отказ от айтема у детерминированного UCB.

explorationбандитыUCBThompson samplingхолодный стартнеопределённостьэпистемическая неопределённостьсклонностипереранжирование

Откуда брать негативы

глава 7

Источник негативов задаёт неявный приор модели: in-batch даёт перекос к популярному 1.75×, чистые харды тащат ложные негативы.

негативыin-batch негативыхард-негативыложные негативыuniform samplingсмесь негативов

Хеширование категорий и коллизии

глава 8

Опасна не любая коллизия, а коллизия двух частых значений. Несколько хеш-функций делают вероятность полной неразличимости произведением.

хешированиехеш-трюкколлизииэмбеддинг-таблицапамятьUnified Embeddingmulti-hash

Кусочно-линейное кодирование признака

глава 11

Сырой признак даёт только прямую, one-hot — ступеньки, PLE — непрерывную кусочно-линейную функцию без потери разрешения внутри бина.

PLEpiecewise linear encodingбиннингone-hot по бинамвещественные признакиквантили

Фильтр Блума

глава 18

Ошибки односторонние: сказал «не видел» — точно не видел. Кривая по k U-образная, оптимум при заполнении ровно половины бит.

фильтр Блумаложноположительныеложноотрицательныепагинациядедупликация выдачиоптимальное k

Блендинг через PID-контроллер

глава 18

Без интегральной части регулятор промахивается мимо цели на 17.7 п.п. — при нулевой ошибке он не даёт воздействия и жить без промаха не может.

блендингPIDстатическая ошибкаперерегулированиеквотыдоля категории

Target attention против усреднения

глава 14

Веса зависят от кандидата, поэтому единственное релевантное событие истории получает вес 0.835 вместо равномерных 0.083.

attentiontarget attentionDINBSTTransActmean poolingистория пользователятемпература внимания

Остаточное квантование и semantic IDs

глава 9

Каждый уровень кодирует остаток предыдущего, близкие айтемы делят префикс, а новинка получает ID сразу по контентному вектору.

semantic IDRQ-VAERQ-KMeansостаточное квантованиекодбукgenerative retrievalобщий префикс