Feature-rich ranking: лестница классов моделей (Фаза 8)
D2b сознательно остановился на логистической регрессии. Здесь — следующий вопрос production-ранжирования: сколько платит смена класса модели на тех же фичах? Лестница логрег → +взаимодействия → градиентный бустинг, всё остальное зафиксировано — и честный разрез revisit/novel, без которого сравнение врёт.
⚠ Все три ранкера обучаются и оцениваются офлайн на реальном логе Brightkite (~2.02M событий); страница показывает готовый маленький артефакт. Бустинг (sklearn HistGB) на сервер не едет — как и весь Brightkite-трек, VPS видит только JSON.
загрузка артефакта лестницы ранкеров…
Теория простым языком
Ранжирование в проде — это почти всегда табличная задача: десятки-сотни фичей про пару (юзер, айтем) и вопрос «какой класс модели выжмет из них больше». Этот модуль отвечает на него так, как положено в инженерии: фиксируем всё, кроме класса модели, и меряем — включая срез, на котором агрегат врёт.
▸Зачем менять класс модели, если фичи те же
Лестница классов моделей для табличного ранжирования
1. Линейная модель — baseline с бесплатной интерпретацией: стандартизованный коэффициент ≈ условный эффект (с оговорками из D2b). Потолок: аддитивность.
2. Линейная + ручные взаимодействия — попытка купить нелинейность, оставаясь линейным: добавить произведения пар фичей. Наш замер показывает цену наивноговарианта — «добавить ВСЕ пары без отбора»: агрегат чуть просел, novel не сдвинулся ни на одно попадание, зато параметров стало в 4.5 раза больше. Это не доказывает, что interaction features бесполезны вообще; это показывает, что ручной перебор пар требует отбора, регуляризации и проверки по срезам — ровно той работы, которую хочется отдать модели.
3. GBDT (у нас sklearn HistGradientBoosting; в индустрии XGBoost/LightGBM/CatBoost) — рабочая лошадка табличного ранжирования/CTR и очень сильный baseline: находит взаимодействия и нелинейности сам, устойчив к масштабам фичей, быстро обучается. Важно: наш HistGB используется как pointwise-скорер — это не LambdaMART и не listwise ранкер, ranking-objective сюда не зашит.
4. Нейро-ранкеры (Wide&Deep, DeepFM, DCN-v2) — когда фичей тысячи, много категориальных с огромной кардинальностью (id-эмбеддинги), нужен multi-task и данных очень много; в больших рекомендательных системах они давно в проде. На маленьких табличках чаще проигрывают бустингу — «нейросеть ≠ лучше» (урок NeuMF) действует и здесь.
Как это связано с остальным учебником
Это Фаза 8 — первая ступень полного capstone: класс ранкера обновлён, фичи и протокол — те же, что в D2b и воронке E3. Следующие ступени: B4 feature store (фичи становятся главным активом — им нужна инфраструктура: point-in-time корректность, train/serve consistency; утечку такого рода мы уже ловили в D2b) и B6 re-rank constraints (квоты, eligibility, разнообразие поверх ранкера). Потом — сборка полного capstone.
⚠️ Что может пойти не так
- Судить апгрейд модели по агрегированной метрике — revisit-доминирование прячет ×1.4 на novel; сравнение классов моделей без срезов почти бессмысленно.
- Добавлять ВСЕ попарные взаимодействия «на всякий случай», без отбора и регуляризации — наш замер: ноль прироста на novel и минус в агрегате при 4.5× параметров.
- Читать permutation importance как вклад в Recall@10 — она посчитана на pair-level objective; коррелированные фичи вдобавок делят важность произвольно (recency/seen/personal_freq здесь сильно связаны).
- Путать «новое для пользователя» с «новым в каталоге»: наш novel-срез — про таргет вне истории юзера; холодный АЙТЕМ (без взаимодействий вообще) — это B5, другая задача.
- Ждать от смены класса модели прорыва сквозь потолок retrieval — 0.958 не пробивается ранкером в принципе; хочешь выше — чини кандидатов (E3).
- Тащить нейро-ранкер на маленькую табличку, потому что «в статьях DeepFM» — сначала бустинг-baseline; нейро платит при тысячах фичей и id-эмбеддингах.
- Забыть про стоимость: GBDT дороже логрега в обучении и тюнинге, а офлайн-прирост в доли процента может не окупить сложность — решает продукт, не лидерборд.
🧠 Проверь себя: Бустинг дал доли процента к агрегированному Recall@10 против логрега. Менеджер спрашивает: «стоит ли катить?» Какой ответ правильный?
Где это в дорожной карте
Фаза 8 — Feature-rich ranking, ступень 1 из 3 на пути к полному capstone (дальше B4 feature store → B6 re-rank constraints → сборка). Теоретическая лестница фазы — LambdaMART и нейро-ранкеры — намечена выше; практическая ценность здесь — дисциплина сравнения классов моделей: всё зафиксировано, срезы обязательны, стоимость учтена.