Рекомендательные системы
Deep Learning для рекомендаций
Netflix, 2016 год: матрично-факторизационная система даёт 70% просмотров по рекомендациям. Команда запускает нейросетевую модель - HR@10 вырастает на 5%. Звучит скромно, но для платформы с 150 миллионами подписчиков это миллиарды дополнительных просматриваемых минут в год и снижение churn rate на 0.3%. Разница между dot product и нейросетью в рекомендациях стоит сотни миллионов долларов.
- **YouTube**: Two-Tower для retrieval из 800M+ видео за <10ms, ranking DNN из 1000+ features для топ-50
- **Alibaba**: DeepFM в production на Taobao - CTR prediction для миллиарда товаров в реальном времени
- **Spotify**: Neural CF для Discover Weekly - эмбеддинги треков через skip-gram на истории прослушиваний
Предварительные знания
- Матричная факторизация и dot product между эмбеддингами пользователя и товара
- Многослойные перцептроны и обратное распространение ошибки
- Эмбеддинги как плотные представления категориальных признаков
Пол Ковингтон (2016)
В 2016 году команда YouTube опубликовала 'Deep Neural Networks for YouTube Recommendations' - первое крупное production-описание двухэтапной нейросетевой рекомендательной системы. До этого YouTube использовал матричную факторизацию. Переход на нейросети позволил включить сотни features помимо истории просмотров: время суток, тип устройства, географию, длительность предыдущих сессий. Архитектура с двумя независимыми нейросетями (candidate generation + ranking) стала стандартом для всей индустрии - сегодня аналогичные pipeline используют Google, Meta, Alibaba, Netflix. Двухэтапный retrieval+ranking pipeline стал industry standard в рекомендательных системах
Neural Collaborative Filtering
В 2017 году Xiangnan He опубликовал Neural Collaborative Filtering (NCF) - первую работу, заменившую матрично-факторизационный inner product нейросетью. Ключевое наблюдение: dot product ограничен линейными взаимодействиями между user и item эмбеддингами. MLP способен выучить произвольные нелинейные паттерны.
NCF объединяет два пути: **GMF** (Generalized Matrix Factorization) - element-wise произведение эмбеддингов - и **MLP** - конкатенацию эмбеддингов через несколько слоёв. Финальный NeuMF конкатенирует выходы обоих путей перед сигмоидой.
Тренировка использует implicit feedback с negative sampling: для каждого позитивного взаимодействия (user, item) семплируется 4-7 случайных негативных пар. Loss - binary cross-entropy. На MovieLens-1M NCF превысил SVD++ на 2-3% по HR@10.
Почему NCF превосходит классическую матричную факторизацию для задач рекомендаций?
DeepFM: Factorization Machines + Deep Network
Factorization Machines (FM) эффективно моделируют второпорядковые feature interactions через скалярные произведения. Но high-order взаимодействия FM не захватывает. DeepFM (Huifeng Guo, 2017) решает это: FM-компонент + DNN компонент работают параллельно на общих эмбеддингах.
DeepFM не требует feature engineering вручную: FM автоматически находит парные взаимодействия, DNN - высокоуровневые. Критически важно: эмбеддинги **общие** для FM и DNN - это снижает число параметров и улучшает обобщение.
Классическая FM-часть DeepFM не учитывает порядок (order-aware) взаимодействий. Для сессионных рекомендаций, где важна последовательность событий, DeepFM уступает RNN-based моделям или Transformers.
Какое ключевое архитектурное решение отличает DeepFM от Wide&Deep (Google, 2016)?
AutoInt: Attention для feature interactions
AutoInt (Song et al., 2019) применяет multi-head self-attention к эмбеддингам feature полей. В отличие от FM (только 2nd order) и DNN (неинтерпретируемые high-order взаимодействия), AutoInt явно моделирует взаимодействия через механизм внимания с residual connections.
Преимущество AutoInt - интерпретируемость: attention weights показывают, какие feature пары наиболее важны для предсказания. На Criteo benchmark AutoInt превысил DeepFM на 0.1% AUC при меньшем числе параметров в глубокой части.
Что AutoInt моделирует через механизм self-attention, чего не умеют FM и простой MLP?
Two-Tower: архитектура для retrieval
Production рекомендательные системы разбиты на два этапа: **retrieval** (candidate generation, миллионы -> тысячи) и **ranking** (тысячи -> десятки). Two-Tower специально для retrieval: отдельные encoder'ы для user и item, схожесть через cosine similarity или dot product.
Ключевое преимущество Two-Tower: item embeddings вычисляются заранее и индексируются в FAISS/ScaNN. В inference нужно только вычислить user embedding (forward pass через user tower) и выполнить ANN поиск. Latency - миллисекунды для миллиардного каталога.
Тренировка с in-batch negatives: в батче из 256 пар (user, item) каждый user видит 255 негативных item'ов. Это эффективно, но страдает от popularity bias - популярные item'ы чаще попадают в батч как negatives и модель учится их отклонять. Решение: logQ correction.
Two-Tower и NCF взаимозаменяемы - обе модели решают одну задачу
Two-Tower предназначен для retrieval (скорость, масштаб), NCF/DeepFM - для ranking (точность, богатые feature interactions)
Production системы используют обе архитектуры в pipeline: Two-Tower генерирует кандидатов, ranking модель их переранжирует
Почему Two-Tower подходит для retrieval, но не для ranking в рекомендательных системах?
Ключевые идеи
- **NCF** заменяет dot product MLP - нелинейные взаимодействия user/item через NeuMF (GMF + MLP)
- **DeepFM** объединяет FM (автоматические 2nd order interactions) и DNN (high-order) на общих эмбеддингах
- **AutoInt** использует self-attention для интерпретируемых feature interactions с residual connections
- **Two-Tower** разделяет user/item encoding для масштабируемого retrieval с precomputed item embeddings
Связанные темы
Темы, которые продолжают и расширяют Deep Learning для рекомендаций:
- Matrix Factorization — Матричная факторизация и коллаборативная фильтрация - базовые методы, которые расширяют нейросетевые модели
- Sequential Recommendations — Multi-task learning и real-time feature serving - следующий шаг после освоения этих архитектур
- Embeddings — Two-Tower опирается на обучаемые эмбеддинги пользователей и товаров для ANN-retrieval
Вопросы для размышления
- Как popularity bias в in-batch negative sampling влияет на качество Two-Tower модели и как logQ correction решает эту проблему?
- При каких условиях DeepFM превзойдёт Two-Tower в задаче candidate retrieval, несмотря на разницу в latency?
- Как стратегия negative sampling (random vs hard negatives) влияет на скорость сходимости и итоговое качество NCF?