TGRank — биржа Telegram-каналов
TGRank
Твой независимый гид в мире Telegram-статистики
Каналы
Русскоязычные868Україна108English208فارسی63World1 238
Язык сайта
24 Пользователей
25 за сутки
0 Онлайн
Войти через TelegramВойти
Бизнес и Стартапы

Как построить систему рекомендаций без больших данных в 2026: простые алгоритмы и инструменты

Редакция TGRank 13 ноября 2026 11 мин чтения
Как построить систему рекомендаций без больших данных в 2026: простые алгоритмы и инструменты

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

Содержание
  1. Почему стоит строить рекомендации без больших данных
  2. Простые алгоритмы рекомендаций без машинного обучения
  3. Коллаборативная фильтрация простыми методами
  4. Инструменты и готовые решения для рекомендаций без big data
  5. Практический чек-лист: что нужно сделать за 1-2 недели
  6. Типичные ошибки и как их избежать
  7. Итоги: быстрый старт рекомендаций без больших данных

Как построить систему рекомендаций без больших данных — вопрос, который задают многие стартапы в 2026 году. Вместо громоздких моделей вы получите работающий сервис за недели, а экономия на инфраструктуре позволит быстрее выйти на рынок.

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

Почему стоит строить рекомендации без больших данных

Для большинства новых проектов объём пользовательских событий ограничен несколькими тысячами записей. Попытка собрать «big data» приводит к избыточным затратам на хранение и обработку, а модель машинного обучения будет переобучаться и давать шумные предсказания.

Пример: сервис онлайн-курсов запустил рекомендацию на базе простых правил и уже через месяц увеличил средний чек на 15 %. При этом потребовалось лишь 2 ГБ логов и один сервер-приложение.

Стартапы, работающие в нише B2B, SaaS, маркетплейсов или мобильных игр, часто имеют ограниченный бюджет и ограниченный поток данных. Быстрый запуск рекомендаций помогает собрать ценный обратный сигнал, который потом можно «прокачать» более сложными алгоритмами.

По данным TGRank, в категории «Бизнес и Стартапы» 137 Telegram-каналов охватывают 8 357 575 подписчиков, а медианная цена за 1000 просмотров рекламы составляет 357 ₽. Даже небольшая рекомендационная система может увеличить охват и повысить эффективность рекламных вложений без дополнительных расходов.

Начните с простых правил, измерьте рост конверсии, а потом решайте, нужен ли ML-подход.

Если хотите увидеть, как небольшие бюджеты влияют на рекламные кампании, обратитесь к каталогу Telegram-каналов категории «Бизнес и Стартапы» — там собраны актуальные охваты и цены.

Простые алгоритмы рекомендаций без машинного обучения

Алгоритм «Самые популярные»

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

Требуемые данные: идентификатор продукта и количество продаж/просмотров за период.

  1. Собрать агрегированные метрики (SQL: SELECT product_id, COUNT(*) FROM orders WHERE created_at > NOW() - INTERVAL 7 DAY GROUP BY product_id).
  2. Отсортировать по убыванию и взять топ-N.
  3. Кешировать результат (Redis, файл) и отдавать пользователю.

Плюсы: простая реализация, минимум ресурсов. Минусы: игнорирует индивидуальные предпочтения, «холодный старт» для новых продуктов.

Пример кода на PHP:

  • $rows = $db->query("SELECT product_id, COUNT(*) cnt FROM orders WHERE created_at > NOW() - INTERVAL 7 DAY GROUP BY product_id ORDER BY cnt DESC LIMIT 10");
  • while($r = $rows->fetch()) { $top[] = $r['product_id']; }
  • echo json_encode($top);

Алгоритм «Товары, часто покупаемые вместе»

Идея: если клиент купил товар A, предложить товары B, C, которые часто встречаются в тех же корзинах.

Требуемые данные: пары (product_id, co_product_id) и количество совместных покупок.

  1. Проанализировать за последний месяц таблицу order_items, сформировать пары (self-join).
  2. Подсчитать количество появлений каждой пары.
  3. Для конкретного продукта взять топ-3 сопряжённых товара.

Плюсы: учитывает реальное поведение, легко объяснить пользователю. Минусы: требует минимум несколько сотен транзакций для статистической значимости.

PHP-пример (упрощённый):

  • $sql = "SELECT i2.product_id, COUNT(*) cnt FROM order_items i1 JOIN order_items i2 ON i1.order_id = i2.order_id WHERE i1.product_id = :pid AND i2.product_id != :pid GROUP BY i2.product_id ORDER BY cnt DESC LIMIT 3";
  • $stmt = $db->prepare($sql); $stmt->execute(['pid'=>$productId]);
  • while($r=$stmt->fetch()) $recs[]=$r['product_id'];

Алгоритм «Последние просмотры»

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

Требуемые данные: таблица user_views (user_id, product_id, view_time).

  1. Записать каждый просмотр в реальном времени.
  2. При запросе рекомендаций выбрать последние N записей пользователя.
  3. Если количество prepare($sql); $stmt->execute(['uid'=>$userId]);
  4. while($r=$stmt->fetch()) $recent[]=$r['product_id'];
  5. Алгоритм «Похожие по категории»

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

    Требуемые данные: product_id → category_id.

    1. Определить категорию выбранного продукта.
    2. Выбрать из базы другие товары этой категории, исключив текущий.
    3. Отсортировать по популярности (см. «Самые популярные»).

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

    PHP-пример:

    • $cat = $db->query("SELECT category_id FROM products WHERE id = $productId")->fetchColumn();
    • $sql = "SELECT id FROM products WHERE category_id = $cat AND id != $productId ORDER BY sales DESC LIMIT 4";
    • foreach($db->query($sql) as $row) $suggest[] = $row['id'];

Коллаборативная фильтрация простыми методами

Матрица взаимодействий «пользователь-товар»

Самый простой способ начать — собрать таблицу, где строки — пользователи, столбцы — товары, а ячейка хранит действие: просмотр (1), клик (2), покупка (3) или отсутствие взаимодействия (0). Для стартапа достаточно 100-200 активных пользователей и 500-1000 товаров, чтобы матрица помещалась в обычную MySQL-таблицу.

Пример структуры:

user_idproduct_idrating
12453
12781
57452

Заполнять её можно «на лету»: каждый раз, когда пользователь совершает действие, обновляем запись. При отсутствии исторических данных достаточно фиксировать лишь просмотры — это уже дает сигналы для рекомендаций.

Поиск соседей по косинусному сходству

Косинусное сходство считается самым дешёвым в вычислительном плане и не требует внешних библиотек. Формула:

sim(A,B)= (Σ Ai·Bi) / (√Σ Ai² · √Σ Bi²)

Где Ai и Bi — оценки пользователя A и пользователя B по тем же товарам. В PHP вычислить можно так:

  1. Выбрать из базы два вектора оценок (например, массивы $v1 и $v2).
  2. Посчитать скалярное произведение: $dot = array_sum(array_map(function($a,$b){return $a*$b;}, $v1, $v2));
  3. Найти длины векторов: $norm1 = sqrt(array_sum(array_map(fn($a)=>$a*$a,$v1))); $norm2 = sqrt(array_sum(array_map(fn($a)=>$a*$a,$v2)));
  4. Вернуть $dot/($norm1*$norm2) — значение от 0 до 1.

Для поиска 5-10 ближайших соседей перебираем только активных пользователей (например, тех, кто сделал более 10 действий), что ограничивает сложность до O(N·M) ≈ 10 000 – 20 000 операций, вполне быстро на обычном VPS.

Ранжирование рекомендаций на основе оценок соседей

После того как найдены соседние пользователи, собираем их «любимые» товары, которые текущий пользователь ещё не видел. Оценка товара рассчитывается как взвешенная средняя оценок соседей:

$score = Σ (similarity_i * rating_i) / Σ similarity_i

Пример PHP-функции:

function recommend($userId, $limit = 5) { $neighbors = getNeighbors($userId); // массив [userId=>similarity] $candidates = []; foreach ($neighbors as $nbr => $sim) { $items = getUserRatings($nbr); // [productId=>rating] foreach ($items as $pid => $rate) { if (alreadySeen($userId,$pid)) continue; $candidates[$pid]['sum'] += $sim*$rate; $candidates[$pid]['weight'] += $sim; } } foreach ($candidates as $pid=>$data) { $candidates[$pid]['score'] = $data['sum'] / $data['weight']; } arsort($candidates); return array_slice(array_keys($candidates),0,$limit); }

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

Инструменты и готовые решения для рекомендаций без big data

База данных SQLite / MySQL для хранения статистики

SQLite — идеален для прототипов: один файл, быстрый запрос SELECT … ORDER BY count DESC LIMIT N. MySQL подходит, когда приложение уже использует её как основной движок. Для рекомендаций храните две таблицы: user_actions (user_id, product_id, action, ts) и product_stats (product_id, views, purchases).

Подключение в PHP:

$pdo = new PDO('sqlite:/path/db.sqlite'); // или new PDO('mysql:host=…;dbname=…',$u,$p);

Redis для быстрых счётчиков и топов

Redis позволяет хранить счётчики в виде сортированных множеств (ZSET). Каждый просмотр продукта — это ZINCRBY product:views 1 product_id. Получить топ-5 за сутки:

$redis->zrevrange('product:views:2026-11-10',0,4);

Такой подход даёт O(log N) операцию и не требует сканирования всей таблицы.

Open source-библиотеки без обучения

Для PHP существует лёгкая библиотека php-recommender. Она реализует матричную факторизацию на основе SVD, но может работать и в режиме «только соседство», т.е. без предварительного обучения. Другой вариант — Mahout-lite (Java-библиотека, упакованная в Docker-образ), которая позволяет запускать простые алгоритмы коллаборативной фильтрации без Hadoop-кластера.

Установить php-recommender: composer require angelorobsonmelo/php-recommender. После подключения достаточно передать массив взаимодействий и вызвать getRecommendations($userId, $k).

Сервисы рекомендаций как API

Recombee предлагает бесплатный тариф до 10 000 запросов в месяц, что покрывает небольшие стартапы. Интеграция выглядит так:

  1. Создать аккаунт, получить API-ключ.
  2. Отправлять события (view, purchase) через HTTP-POST https://api.recombee.com/v1/users/{userId}/items/{itemId}.
  3. Запрашивать рекомендации: GET https://api.recombee.com/v1/recommendations/{userId}?count=5.

Плюсы: масштабируемость, готовый движок ранжирования, отсутствие собственного кода для расчёта сходств. Минус — зависимость от внешнего сервиса, но для MVP это приемлемо.

Для стартапов, которым нужен быстрый запуск, комбинация MySQL + Redis + php-recommender покрывает 80 % сценариев без больших данных, а при росте нагрузки можно плавно перейти к Recombee.

Практический чек-лист: что нужно сделать за 1-2 недели

  • ✔ Собрать метрики. Записать минимум три события: просмотр товара (view), добавление в корзину (add_to_cart) и покупку (purchase). Хранить их в MySQL-таблице `events(user_id, item_id, type, ts)`.
  • ✔ Выбрать простой алгоритм. Для стартапов без больших данных чаще всего работают: Top-N популярных, правило «похожие пользователи» (Item-based) и «правила бизнес-логики» (например, «если пользователь покупал категорию A, предлагать товары из B»).
  • ✔ Построить схему данных. Таблица `items(id, category, price)`, `user_item(user_id, item_id, rating)` и кэш-таблица `recommendations(user_id, item_list, ts)` в Redis.
  • ✔ Написать код. На PHP использовать готовый пакет `php-recommender` (GitHub). Пример функции: function getRecommendations($uid, $cnt=5){ $client = new Recombee\RecommApiClient(API_KEY); return $client->getRecommendations($uid, $cnt); }
  • ✔ Протестировать на 100-200 реальных пользователей. Запустить скрипт в режиме «sandbox», собрать метрики CTR и конверсия % для рекомендаций.
  • ✔ Настроить кеш. Сохранять результат в Redis на 15 минут, чтобы снизить нагрузку на MySQL и API-вызовы.
  • ✔ Запустить A/B-тест. Создать две группы: контроль — без рекомендаций, эксперимент — с рекомендациями. Сравнить средний чек и количество просмотров. По результатам корректировать веса правил.

Типичные ошибки и как их избежать

Слишком редкие данные

Причина: собираете лишь несколько событий в день, поэтому алгоритм «похожие пользователи» не имеет статистической базы.

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

Совет: заполняйте «тёмные» категории искусственно, используя правила «показать топ-5 самых популярных» до тех пор, пока не накопится минимум 30 событий на товар.

Игнорирование холодного старта

Причина: новый пользователь сразу попадает в систему без истории.

Последствие: система не может предложить ничего персонального и показывает общие топ-списки.

Совет: применяйте правила «категория по источнику» – если пользователь пришёл из рекламного поста в Telegram-канале, показывайте товары из той же категории. По данным TGRank, в категории «Бизнес и Стартапы» — 137 каналов, суммарная аудитория 8 357 575 подписчиков, что позволяет быстро собрать первые сигналы.

Недостаточная персонализация

Причина: используете только один критерий (например, количество просмотров).

Последствие: рекомендации одинаковы для всех, пользователь не видит «свои» предложения.

Совет: комбинируйте минимум два правила – популярность + категориальная близость. В PHP добавьте весовой коэффициент: $score = 0.7*$pop + 0.3*$categoryScore;

Перегрузка сервера запросами

Причина: каждый запрос к рекомендациям отправляется напрямую к MySQL без кеширования.

Последствие: рост нагрузки приводит к таймаутам и падению конверсии.

Совет: внедрите слой Redis-кеша, ограничьте частоту обновления до одного раза в 10 минут. Если нужен внешний движок, рассмотрите Recombee – бесплатный тариф до 10 000 запросов в месяц, что покрывает небольшие стартапы.

Итоги: быстрый старт рекомендаций без больших данных

Простые правила и небольшие кеши позволяют запустить рекомендацию за несколько дней, а не месяцев. Выбирая два-три весовых фактора – популярность и категориальную близость – получаете персонализированный список без сложных моделей. В PHP достаточно вычислить $score = 0.7*$pop + 0.3*$categoryScore;, а результаты хранить в Redis с обновлением раз в 10 минут. Такой подход уменьшает нагрузку на MySQL в 5–10 раз и сохраняет отклик ниже 200 мс.

По данным TGRank, в категории «Бизнес и Стартапы» 137 каналов с общей аудиторией 8 357 575 подписчиков. При средней вовлечённости 12,5 % каждый рекламный пост достигает около 1 044 000 просмотров, а стоимость за 1000 просмотров (CPM) составляет 357 ₽. Если ваш сервис продаёт рекомендации как дополнительный сервис, даже 1 % конверсии от этой аудитории дает более 8 000 потенциальных клиентов и доход в несколько десятков тысяч рублей.

Краткосрочный план развития

  1. Запуск базовой логики (популярность + категория) и кеша Redis в течение 3-5 дней.
  2. Добавление простых правил: «пользователь просматривал товары X, предложить Y», «события с тем же тегом». Реализуется через таблицу правил в MySQL и обработчик в PHP.
  3. Мониторинг метрик: CTR рекомендаций, время ответа, нагрузка на БД. При превышении 300 мс – масштабировать кеш.
  4. Через 2 недели добавить гибридный слой: небольшая матричная коллаборативная фильтрация (суммирование оценок) на основе последних 500 действий.
  5. По достижении 10 000 запросов в сутки перейти к внешнему сервису (например, Recombee) для снижения собственного кода.
Совет: используйте Redis-sorted set, чтобы быстро получать топ-N элементов по весу без дополнительных запросов к базе.

Дальнейшее масштабирование

Когда объём данных превысит несколько миллионов записей, стоит рассмотреть гибридные решения: объединить правило-базу с матричной коллаборативной фильтрацией и добавить контентный анализ (теги, описания). При этом базовый кеш остаётся в ядре, а тяжелые расчёты делегируются внешним сервисам.

Итоги: простые алгоритмы дают быстрый старт, минимальные затраты и гибкость. По мере роста пользовательской базы переходите к гибридным системам, сохраняя кеш и правила как «прокси-слой». Это обеспечивает рост рекомендаций без резких скачков расходов и технического долга.

Для более детального анализа конкурентов и выбора рекламных каналов обратитесь к каталогу Telegram-каналов категории «Бизнес и Стартапы» в TGRank.

Telegram-каналы по теме

Подборка редакции TGRank: каналы с живой аудиторией — почитать и разместить рекламу

Бизнес Личность ✓
Бизнес Личность
34,1K подписчиков 20K охват поста ERR 59%

Бизнес Личность – канал для тех, кто хочет раскрыть свой предпринимательский потенциал и построить бренд. Каждый выпуск содержит интервью с успешными лидерами, разбор их…

Реклама от5 500 ₽
Деловой Вектор 2.0 ✓
Деловой Вектор 2.0
18,2K подписчиков 11,6K охват поста ERR 64%

Готовы переосмыслить свой подход к работе и управлению? «Деловой Вектор 2.0» посвящён современным методам организации процессов и развитию лидерских навыков. Канал регул…

Реклама от3 000 ₽
Правила Бизнеса ✓
Правила Бизнеса
75,4K подписчиков 38,7K охват поста ERR 51%

Хотите понять, какие правила действительно работают в современном предпринимательском мире? Канал «Правила Бизнеса» собирает лучшие практики, юридические лайфхаки и стра…

Реклама от14 005 ₽
Бизнес Победителей ✓
Бизнес Победителей
78,6K подписчиков 50,5K охват поста ERR 64%

Ищете проверенные методики для масштабирования бизнеса? «Бизнес Победителей» собирает лучшие практики лидеров рынка, от стартапов до крупных компаний. В каждом выпуске –…

Реклама от14 500 ₽
Пик Скартарис
Пик Скартарис
18,4K подписчиков 8,7K охват поста ERR 47%

«Пик Скартариса» — канал для амбициозных предпринимателей, ищущих свежие идеи и проверенные стратегии роста. Здесь публикуются интервью с основателями стартапов, разборы…

To Biz Бизнес Идеи // СТАРТАПЫ
To Biz Бизнес Идеи // СТАРТАПЫ
10,2K подписчиков 2K охват поста ERR 20%

«To Biz Бизнес Идеи // СТАРТАПЫ» фокусируется на стартап‑моделях, готовых к масштабированию. Канал предлагает идеи с потенциальным ростом до международных рынков, детали…

% Реклама сразу в нескольких каналах — дешевлеОптовые наборы на TGRank: скидка до 40% при размещении пакетом Смотреть → Все каналы категории «Бизнес и Стартапы» →

Частые вопросы

Какие простые алгоритмы можно использовать для рекомендаций без больших данных?
Самые популярные товары, совместные покупки, последние просмотры и рекомендации по категории – всё реализуется на основе подсчётов и простых правил без обучения модели.
Как реализовать коллаборативную фильтрацию без машинного обучения?
Соберите небольшую матрицу «пользователь-товар», вычислите сходство соседей по косинусу или Жаккарду и используйте оценки соседей для ранжирования рекомендаций.
Какие инструменты помогут быстро добавить рекомендацию в продукт?
SQLite/MySQL для хранения статистики, Redis для кеша топов, готовые PHP-библиотеки и легковесные API-сервисы позволяют внедрить рекомендации за пару дней.
Как использовать правила для рекомендаций?
Создайте набор условных правил (например, «если пользователь посмотрел три статьи из категории X, показывать ещё две из X») и реализуйте их в коде бизнес-логики.
Можно ли начать без пользовательских данных?
Да, сначала используйте популярные товары и контент, а затем постепенно добавляйте простую аналитику взаимодействий, чтобы перейти к коллаборативной фильтрации.
Нужен ли ML-специалист для такой системы?
Для базовых алгоритмов и простых правил не требуется. Достаточно базовых навыков работы с базами данных и PHP/JavaScript.
Редакция TGRank