Главная
#Математика и ML #Data Science #Recommender

Что такое Cold start в рекомендательных системах и что делать, когда о пользователе еще нет данных в Data Science в 2026 году?

Cold start в рекомендательных системах начинается не тогда, когда модель “сломалась”, а тогда, когда система должна что-то советовать в условиях почти полного незнания. Пользователь только пришел. Товар только появился. Контента мало. Истории взаимодействий нет. Коллаборативная модель привыкла жить на повторах поведения, а здесь повторов еще не существует. В этот момент рекомендатель оказывается в очень человеческой ситуации: от него ждут уверенного совета, но фактов у него почти нет.

Содержание
  1. Почему коллаборативная фильтрация здесь начинает буксовать
  2. Три разных cold start, которые нельзя смешивать
  3. Первая математическая идея: начинать не с персонализации, а с prior
  4. Почему голая популярность тоже опасна
  5. Вторая математическая идея: сглаживание оценок для новых объектов
  6. Главная инженерная идея: в cold start почти всегда нужен hybrid
  7. Геометрический смысл: у нового пользователя еще нет устойчивого вектора предпочтений
  8. Почему onboarding — это не UX-мелочь, а часть ML-системы
  9. Как cold start связан с exploration
  10. Python: простой пример hybrid cold start логики
  11. Что считать хорошим решением cold start в 2026 году
  12. Что важно вынести из темы
  13. Kaggle notebook по теме:

Именно поэтому cold start — это не частная неприятность, а одна из центральных задач recommendation systems. Как только в продукте появляются новые пользователи, новые объекты, новые категории или новые рынки, проблема возникает снова. И в 2026 году она не исчезла, а стала еще важнее, потому что системы персонализации встроены уже почти во все: маркетплейсы, стриминги, EdTech, HR, финтех, контентные платформы и корпоративные внутренние системы.

Самая полезная интуиция здесь простая: рекомендательная система сильна тогда, когда у нее есть история. Cold start — это ситуация, где историю приходится временно заменить другими источниками смысла. И именно это делает тему настолько важной для Data Science: нужно уметь строить разумные рекомендации даже тогда, когда “главного топлива” еще нет.

Самая полезная интуиция здесь простая: рекомендательная система сильна тогда, когда у нее есть история. Cold start — это ситуация, где историю приходится временно заменить другими источниками смысла. И именно это делает тему настолько важной для Data Science: нужно уметь строить разумные рекомендации даже тогда, когда “главного топлива” еще нет.

Почему коллаборативная фильтрация здесь начинает буксовать

Коллаборативные методы работают на повторяемости паттернов. Если пользователь A похож на пользователя B, можно использовать поведение B, чтобы рекомендовать что-то A. Если товар часто покупают вместе с другим товаром, можно извлечь это соседство и использовать как сигнал. Но для нового пользователя такого контекста еще нет. Для нового товара — тоже. Модель не может вычислить похожесть на базе отсутствующих взаимодействий.

В этом смысле cold start — это не просто “мало данных”, а структурный разрыв в логике самой модели. Система хочет опираться на граф связей, а графа еще нет. Поэтому cold start почти всегда решается не одной волшебной моделью, а комбинацией priors, content-based сигналов, правил интерфейса, popularity-механик и постепенного дообучения по мере накопления поведения.

Три разных cold start, которые нельзя смешивать

Первый тип — new user problem. Пользователь только пришел, и система не знает его вкусов. Второй — new item problem. В каталоге появился новый объект, но про него еще нет откликов. Третий — более широкий system cold start, когда вся система только запускается и данных нет вообще почти ни у кого. Эти сценарии похожи, но не тождественны. Для нового пользователя можно собирать onboarding-сигналы. Для нового товара можно опираться на метаданные и контент. Для нового продукта в целом часто нужна смесь editorial priors, popularity, heuristics и быстрых online feedback loops.

Очень важно мыслить это не как один “баг рекомендаций”, а как три разных инженерных режима. Иначе система начнет лечить все одним способом и неизбежно будет проигрывать в качестве.

Первая математическая идея: начинать не с персонализации, а с prior

Раздел математики: теория вероятностей и математическая статистика.

(p(i)=\frac{c_i}{\sum_{j=1}^{m} c_j})

Что означает каждый символ:

(p(i)) — базовая вероятность или prior полезности объекта (i).

(c_i) — число взаимодействий, покупок, кликов или просмотров у этого объекта.

(m) — число объектов каталога, по которым суммируются взаимодействия в знаменателе.

Это не персонализация, а стартовая оценка “общей вероятности полезности”.

Численный пример вручную: пусть в каталоге три товара с числами просмотров (c_1=100), (c_2=60) и (c_3=40). Тогда сумма равна (200), а prior первого товара равен (p(1)=100/200=0.5). Если о пользователе нет данных совсем, система хотя бы может стартовать с наиболее надежных глобальных сигналов.

Это звучит слишком просто, но на практике именно приоритеты, популярность и сглаженные агрегаты часто спасают первые минуты жизни пользователя в системе. Cold start почти никогда не начинается с идеальной персонализации. Он начинается с хорошего prior.

Почему голая популярность тоже опасна

Если опираться только на самые популярные объекты, система быстро начинает зацикливаться. Уже сильные товары становятся еще сильнее, новые объекты почти не получают шанса, а разнообразие рекомендаций сжимается. То есть popularity baseline полезен как старт, но вреден как единственная стратегия. Это особенно заметно в маркетплейсах и медиа-продуктах, где нужно не только “не ошибиться”, но и аккуратно исследовать каталог.

Именно здесь начинается более зрелая логика: prior нужен, но его нужно смягчать контентными признаками, бизнес-правилами и exploration-механизмом. Если эта контентная часть строится на текстах и описаниях, то следующим естественным шагом становится понимание того, как объекты превращаются в embeddings и почему это помогает cold start режиму.

Вторая математическая идея: сглаживание оценок для новых объектов

Раздел математики: математическая статистика и байесовское сглаживание.

(s_i=\frac{n_i}{n_i+\lambda}\bar{r}_i+\frac{\lambda}{n_i+\lambda}\mu)

Что означает каждый символ:

(s_i) — сглаженный score объекта (i).

(n_i) — число наблюдений по объекту.

(\bar{r}_i) — его средняя оценка или средний CTR.

(\mu) — глобальное среднее по системе.

(\lambda) — сила сглаживания.

Чем меньше наблюдений у объекта, тем сильнее итоговый score тянется к глобальному среднему, а не к шумной локальной оценке.

Численный пример вручную: пусть новый товар получил всего (n_i=2) оценки со средним (\bar{r}_i=5), глобальное среднее равно (\mu=4.1), а сглаживание выбрано как (\lambda=10). Тогда (s_i=\frac{2}{12}\cdot 5 + \frac{10}{12}\cdot 4.1 \approx 4.25). То есть система не дает новому объекту взлететь на вершину только из-за двух случайно восторженных оценок.

Это очень важный паттерн для новых объектов. Cold start по item-side часто решается именно так: не верить слишком ранним сигналам буквально, а аккуратно смешивать их с общей статистической опорой.

Главная инженерная идея: в cold start почти всегда нужен hybrid

Если о пользователе пока нет поведенческой истории, значит надо временно усилить content-based часть. Если о товаре нет истории, нужно использовать его метаданные, текст, категорию, цену, бренд, embeddings описания или визуальные признаки. Если новая система не имеет почти никаких взаимодействий, приходится опираться на глобальные паттерны каталога и внешнюю структуру домена. Именно поэтому зрелые рекомендательные системы почти всегда используют гибридный режим.

(\hat{r}_{u,i}=\alpha \cdot s_{\mathrm{content}}(u,i)+(1-\alpha)\cdot s_{\mathrm{collab}}(u,i))

Раздел математики: линейная алгебра и оптимизация.

Что означает каждый символ:

(\hat{r}_{u,i}) — итоговый рекомендательный score для пользователя (u) и объекта (i).

(s_{\mathrm{content}}(u,i)) — content-based сигнал.

(s_{\mathrm{collab}}(u,i)) — коллаборативный сигнал.

(\alpha) — коэффициент, который регулирует, насколько система в текущем состоянии должна доверять content-based части.

Численный пример вручную: если для нового пользователя content-based score равен (0.82), а коллаборативный сигнал пока слабый и равен (0.35), при (\alpha=0.8) итоговый score будет (\hat{r}_{u,i}=0.8\cdot 0.82+0.2\cdot 0.35=0.726). То есть система осознанно делает ставку на content-side, пока поведенческой истории еще мало.

Именно так и работает зрелая логика холодного старта: не ждать магии от отсутствующих взаимодействий, а временно переносить вес на более устойчивые источники сигнала.

Геометрический смысл: у нового пользователя еще нет устойчивого вектора предпочтений

Если смотреть на recommendation через embeddings, cold start можно описать геометрически. У старого пользователя уже есть вектор предпочтений, построенный по истории взаимодействий. У старого товара тоже есть место в пространстве — через co-click, co-view, content embeddings или матричную факторизацию. А вот у нового пользователя такого вектора еще почти нет. Его положение в пространстве неопределенно.

Значит, на первом этапе система вынуждена приближать этот вектор через onboarding, контекст сессии, первый клик, регион, устройство, referrer, категорию входа или анкетные данные. Геометрически cold start — это задача оценить координаты объекта в пространстве интересов до того, как появится полноценная траектория поведения. Именно поэтому рядом полезно отдельно смотреть, как вообще измеряется близость между объектами в векторном пространстве, когда мы пытаемся рекомендовать что-то новому пользователю по косвенным признакам.

Почему onboarding — это не UX-мелочь, а часть ML-системы

Когда пользователя в начале просят выбрать интересующие жанры, категории, бренды, навыки или цели, это часто воспринимают как продуктовую деталь интерфейса. Но в действительности это способ быстро сократить cold start. Система искусственно собирает первые сигналы до того, как успеет накопиться естественная история поведения. Для Data Science это очень важный момент: полезные данные можно не только ждать, но и правильно запрашивать.

Поэтому хороший onboarding в рекомендательной системе — это не просто “красивый стартовый экран”, а способ быстрее приблизить пользователя к рабочей персонализации.

Как cold start связан с exploration

Если системе никогда не давать шанс новым объектам показаться пользователю, item cold start не исчезнет сам собой. Чтобы новый товар или новый контент когда-либо получил поведенческий сигнал, система должна иногда его показывать. То есть cold start почти всегда связан с exploration vs exploitation. Если эксплуатировать только уже известные сильные объекты, новые так и останутся невидимыми.

Это значит, что recommendation — это не только задача предсказания вероятности клика, но и задача аккуратного исследования каталога. Особенно в новых вертикалях и на быстро меняющихся платформах. По сути, это очень близко к логике controlled exploration, поэтому рядом полезно держать и материал о том, как вообще проверяют стратегию на прошлых периодах до выкладки в поток.

Python: простой пример hybrid cold start логики

import pandas as pd  # Подключаем pandas для работы с таблицей объектов.

items = pd.DataFrame({  # Создаем маленький каталог объектов.
    "item_id": [101, 102, 103],  # Идентификаторы объектов.
    "popularity_score": [0.90, 0.55, 0.30],  # Глобальный popularity prior.
    "content_score": [0.40, 0.85, 0.80],  # Content-based релевантность для нового пользователя.
})  # Собираем демонстрационную таблицу.

alpha = 0.75  # Делаем ставку на content-based часть, потому что пользователь новый.

items["final_score"] = (  # Строим гибридный score для cold start режима.
    alpha * items["content_score"]  # Берем основную долю из content-based сигнала.
    + (1 - alpha) * items["popularity_score"]  # Добавляем popularity prior как статистическую опору.
)  # Получаем итоговую оценку для ранжирования.

ranked = items.sort_values("final_score", ascending=False)  # Сортируем объекты по итоговому score.

print(ranked[["item_id", "final_score"]])  # Выводим итоговый ranking.

Этот код, конечно, очень простой, но он показывает правильную архитектурную мысль. Если у нас нет достаточной истории по пользователю, нельзя ждать от чистой collaborative filtering хорошего результата. Значит, нужно построить hybrid score, где часть уверенности приходит из контента, а часть — из глобального prior.

Что считать хорошим решением cold start в 2026 году

Хорошее решение сегодня почти никогда не сводится к одной модели. Обычно это связка из нескольких уровней: popularity prior, сглаживание редких сигналов, контентные эмбеддинги, onboarding-сигналы, exploration, быстрый online feedback и постепенный переход от “почти универсальных” рекомендаций к персонализированным. В зрелых системах это еще и отдельная логика для new users, new items и system cold start.

То есть правильный вопрос уже не “какой алгоритм побеждает cold start?”, а “какую комбинацию статистических опор, content-based признаков и онлайновых сигналов надо собрать, чтобы система стала полезной как можно раньше?”. И чем сильнее система завязана на новые тексты, описания и атрибуты, тем важнее ещё и базовое качество входных данных, поэтому рядом полезно держать в голове материал о том, как проверять, что данным вообще можно доверять.

Что важно вынести из темы

Cold start — это ситуация, где рекомендательной системе нужно принимать решение при недостатке истории. Для новых пользователей, новых объектов и новых систем эта проблема проявляется по-разному, но логика одна: нельзя опираться только на коллаборативные сигналы там, где их еще нет. Значит, нужны priors, сглаживание, content-based признаки, onboarding и hybrid-подход.

Если сформулировать совсем коротко, cold start — это проверка зрелости рекомендательной системы. Сильная система умеет быть полезной еще до того, как у нее накопится полноценная память о пользователе. И именно это в 2026 году отличает просто модель от действительно рабочей recommendation-инфраструктуры.

Kaggle notebook по теме:

https://www.kaggle.com/code/merterendagistan/hybrid-recommender-system

Что читать дальше

Связанные статьи по этой теме

Инструменты Python в 2026 году: современный стек для профессиональной разработки Что должен знать Junior Data Scientist в 2026 году? Как собрать GitHub-портфолио для Data Science
Вернуться в блог