Комментарии 3
Вопрос про схему валидации. Почему на валидации модель 1-го уровня обучается на обоих отрезках?
Тип может же получиться, что на 2-м отрезке пользователь провзаимодействовал с айтемом, мы норм обучим модель 1-го уровня, этот айтем достанем на 1-м этапе, возможно, он попадет в рекомендацию, а мб иначе бы и не попал, если бы модель 1-го этапа обучалась бы только на первом отрезке.
Там логика в другом.
Для инференса двухэтапной архитектуры модель первого этапа обучается на всех данных, которые мы знаем на текущий момент. Именно так, как мы будем потом это делать в проде. Обученный бустинг этот результат будет реранжировать.
Чтобы бустинг умел делать реранжирование, мы должны его обучить. Поэтому мы выделяем ему период для обучения (фиолетовый отрезок) и на время представляем, что это пока что не случившееся будущее. Генерируем кандидатов первого этапа на голубом отрезке, собираем таргеты на фиолетовом (заглянули в будущее, чтобы научиться реранжировать), обучаем бустинг. Теперь у нас есть бустинг, готовый к инференсу.
И инференс мы делаем, имея все данные на текущий момент, то есть - на жёлтом отрезке (фиолетовый и голубой вместе). Потому что у нас больше нет смысла "лишать" себя данных с фиолетового отрезка, они нужны нам для качественных рекомендаций.
Дропаем ранжирующие метрики в рекомендательной системе, часть 2: двухэтапные модели