К обычному разбору
Тренировка по собеседованиюТехническое собеседованиеZingBrain / Aviatrix2026-01-30

ZingBrain / Aviatrix: Classic ML, CatBoost и рекомендации

Идите сверху вниз: сначала попробуйте сами, затем откройте разбор. Если шаг с кодом, пишите решение прямо здесь и запускайте проверки на странице.

Шагов
5
Вопросов
5
Задач
0
1Вопрос9 мин

CatBoost: target encoding без leakage

Как CatBoost кодирует категориальные признаки и почему это не дает leakage?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

CatBoost считает ordered target statistics по предыдущим объектам в случайной перестановке, а не по всей train-выборке сразу. Так объект не видит собственный target.

Подробный разбор

Обычный target encoding легко протекает: если посчитать средний target категории по всей train-выборке, значение для объекта включает его собственный label. На редких категориях это особенно опасно.

CatBoost использует ordered target statistics. Он строит случайные перестановки объектов и для каждого объекта считает статистику категории только по объектам, которые стоят раньше в этой перестановке. Добавляются prior и сглаживание, чтобы редкие категории не давали экстремальные значения.

Это снижает leakage и делает train-процедуру ближе к inference: для нового объекта мы не знаем его target, а можем использовать только историческую статистику.

Типичные ошибки

  • Считать target encoding до cross-validation на всей train data.
  • Не сглаживать редкие категории.
  • Не отличать ordered encoding от one-hot.
2Вопрос9 мин

Как loss учитывается при выборе split в бустинге

Как дерево в gradient boosting выбирает split с учетом loss function?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

Boosting аппроксимирует изменение loss через градиенты, а иногда и гессианы. Split выбирается по gain: насколько разбиение улучшает сумму оптимальных leaf values.

Подробный разбор

В gradient boosting новое дерево учится исправлять ошибки текущего ансамбля. Для каждого объекта считается градиент loss по текущему prediction. В second-order вариантах используется еще гессиан. Loss рядом с текущим prediction раскладывается в ряд Тейлора.

Для candidate split алгоритм смотрит, как объекты разделятся по листьям, и оценивает, насколько уменьшится аппроксимированный loss после выбора оптимальных значений в листьях. Split с лучшим gain выбирается, если он проходит регуляризацию и ограничения.

В разных библиотеках детали отличаются, но смысл общий: дерево строится не по "чистой" impurity вроде Gini само по себе, а по тому, как split помогает уменьшить выбранную objective function ансамбля.

Типичные ошибки

  • Объяснять gradient boosting как независимый random forest.
  • Не связывать split gain с objective function.
  • Забывать про регуляризацию leaf values.
3Вопрос9 мин

Feature importance и коррелированные признаки

Почему feature importance может обманывать, если признаки сильно коррелируют?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

Взаимозаменяемые признаки делят важность между собой. Удаление или перемешивание одного признака может почти не ухудшить модель, потому что другой несет тот же сигнал.

Подробный разбор

Feature importance зависит от метода. Gain importance в деревьях может выбрать один из коррелированных признаков и занизить остальные. Permutation importance может занизить каждый признак по отдельности, потому что после перемешивания одного модель все еще использует второй похожий сигнал.

SHAP тоже требует осторожности: при зависимых признаках распределение вклада между ними зависит от assumptions. Поэтому correlated features лучше анализировать группами, смотреть stability между folds, делать ablation групп и проверять, нужна ли интерпретируемость или только качество.

Для отбора признаков полезны: correlation clustering, drop-column importance по группам, regularization, domain constraints и проверка на leakage.

Типичные ошибки

  • Удалять признаки только по низкой individual importance.
  • Не проверять leakage среди слишком сильных признаков.
  • Сравнивать importance между моделями без одинакового протокола.
4Вопрос9 мин

NDCG, MAP, BPR и WARP в рекомендациях

Чем отличаются NDCG/MAP и pairwise losses вроде BPR/WARP?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

NDCG/MAP - метрики качества выдачи, BPR/WARP - обучающие pairwise objectives. BPR оптимизирует pos > neg, WARP сильнее фокусируется на нарушениях в верхней части ранга.

Подробный разбор

NDCG и MAP используются для оценки ранжирования. MAP больше подходит для бинарной релевантности, NDCG поддерживает graded relevance и позиционный discount. Они говорят, насколько хорош порядок в выдаче.

BPR - pairwise loss: берем positive item и negative item для пользователя и учим score(pos) быть выше score(neg). Это хорошо ложится на implicit feedback. WARP семплирует negatives до тех пор, пока не найдет violating negative, и сильнее штрафует ошибки, влияющие на top of ranking.

В production loss и metric не обязаны совпадать. Модель может учиться на BPR/WARP, а оцениваться по Recall@K/NDCG и online uplift.

Типичные ошибки

  • Путать NDCG как loss и как metric.
  • Считать все negatives одинаково полезными.
  • Не проверять online эффект после улучшения pairwise loss.
5Кейс9 мин

LightFM, content signals и bandits

Как LightFM помогает cold start и когда в рекомендациях появляются bandits?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

LightFM складывает embeddings user/item features и collaborative сигнал, поэтому может скорить новых пользователей или items по контентным признакам. Bandits нужны для exploration/exploitation.

Подробный разбор

LightFM - гибридная matrix factorization модель. Пользователь и item представлены суммой embeddings их признаков: id, категории, теги, контентные признаки. Score обычно dot product. Если новый item имеет признаки, модель может дать ему embedding даже без истории взаимодействий.

Это полезно для cold start и sparse data, но качество зависит от информативности features. Если контентные признаки слабые, модель не магически решит проблему.

Bandits появляются, когда система должна не только использовать текущую лучшую выдачу, но и исследовать неопределенные варианты. Например, новым играм или объявлениям нужны показы, чтобы собрать сигнал. Bandit управляет exploration/exploitation и может учитывать reward, uncertainty, user context и business constraints.

Типичные ошибки

  • Считать LightFM полноценной deep-моделью sequence behavior.
  • Не давать exploration новым объектам.
  • Измерять bandit только по краткосрочному CTR без guardrails.