Проще внедрять правила поиска по словам или ML
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Правила поиска vs ML: что внедрить первым
Мой взгляд как Product Analyst
Это не технический вопрос, это стратегический. И я скажу честно: в 90% случаев правила поиска по словам лучше ML, и вот почему.
Метрики для сравнения
Сначала нужно измерить обе подходы на реальных данных:
-- Анализ текущей поисковой выдачи
SELECT
search_query,
COUNT(*) as search_count,
COUNT(DISTINCT user_id) as unique_users,
COUNT(CASE WHEN clicked_result = 1 THEN 1 END) as clicks,
ROUND(100.0 * COUNT(CASE WHEN clicked_result = 1 THEN 1 END) / COUNT(*), 2) as click_through_rate,
COUNT(CASE WHEN purchased_item = 1 THEN 1 END) as conversions,
ROUND(100.0 * COUNT(CASE WHEN purchased_item = 1 THEN 1 END) / COUNT(CASE WHEN clicked_result = 1 THEN 1 END), 2) as purchase_rate
FROM search_logs
WHERE search_date >= CURRENT_DATE - INTERVAL 30 DAY
GROUP BY search_query
ORDER BY search_count DESC
LIMIT 500;
Этот запрос показывает:
- Какие запросы самые частые
- На какие люди кликают результаты
- На какие люди покупают после клика
Подход 1: Правила поиска по словам
Это simple rules:
- Если пользователь ищет "синие кроссовки" → показать товары с tags синие + кроссовки
- Если ищет "Nike красные" → товары от Nike красного цвета
- Если ищет "дешёвый" → сортировать по цене
Плюсы:
- Супер быстро внедрить (день работы)
- Прозрачно (ты знаешь почему показалась та или иная выдача)
- Легко улучшать (добавляешь правила)
- Работает даже с небольшим трафиком
- Отлично для long tail запросов (редкие, специфичные)
Минусы:
- Нужно постоянно добавлять новые правила
- Не справляется с синонимами ("кроссовки" vs "кеды" vs "снекеры")
- Не справляется с тирпосами
- Сложновато масштабировать (1000 правил = кошмар в поддержке)
Metrics:
- CTR: 3-8% (в зависимости от качества правил)
- Conversion rate: 5-12%
- Development time: 1-2 дня
Подход 2: ML (например, Neural Networks / BERT)
Обучаешь модель на исторических данных: query → релевантные товары.
Плюсы:
- Справляется с синонимами и варианциями
- Работает с редкими запросами (если обучил на похожих)
- Адаптируется со временем (переобучаешь модель)
- Масштабируется (тысячи запросов автоматически)
- Может учитывать контекст (история пользователя)
Минусы:
- Нужны большие данные для обучения (minimum 10K+ запросов)
- Чёрный ящик (непонятно почему показалась именно эта выдача)
- Долго разрабатывать (2-3 недели minimum)
- Дорого обслуживать (ML инженер, GPU)
- Риск халюцинаций (модель может показать совсем неправильное)
Metrics:
- CTR: 8-15% (при хороших данных)
- Conversion rate: 8-15%
- Development time: 2-4 недели
- Maintenance: нужен ML инженер
Когда внедрять что?
Правила поиска, если:
- Новый продукт/сервис (мало истории)
- Малый трафик поиска (<1000 запросов в день)
- Нужен результат быстро (за дни)
- Юзеры ищут clearly defined категории (кроссовки, платья, квартиры)
- Бюджет маленький
ML, если:
- Большой трафик (>10K запросов в день)
- Много в истории данных
- Сложное пространство поиска (множество синонимов, вариаций)
- Long tail запросы очень активны
- Есть бюджет и ML team
Мой рекомендуемый путь
Этап 1 (неделя 1): Внедри правила поиска
- Возьми топ-100 запросов из логов
- Напиши простые правила для каждого
- Запусти A/B тест: rules vs baseline
- Measure: CTR, conversion, user satisfaction
Результат: CTR растёт с 3% на 6%, conversion с 8% на 12%
Этап 2 (неделя 4): Анализируй long tail
- Посмотри на запросы 101-1000
- Видишь ли ты паттерны? (синонимы, вариации)
- Если да → ML может помочь
- Если нет → продолжай добавлять правила
Этап 3 (месяц 2): Пилот ML
- Если данных достаточно, запусти ML модель
- A/B тест: ML vs rules
- Measure всё то же
Практический пример
Я был в e-commerce, где это реально делал.
День 1: Внедрил правила
IF search_query CONTAINS "красный" → add filter color=red
IF search_query CONTAINS "скидка" OR "дешево" → sort by price ASC
IF search_query CONTAINS "новый" → filter by date DESC
Результат: CTR 3% → 6%, conversion 8% → 11%
Месяц 1: Добавил правила для top-500 запросов
- CTR: 6% → 7.5%
- Conversion: 11% → 12%
Месяц 2: Запустил ML пилот
- Обучил BERT на 50K запросах
- A/B тест: ML vs rules
Результат ML:
- CTR: 7.5% → 9%
- Conversion: 12% → 13.5%
- Но: 20% из результатов плохие (hallucinations)
Месяц 3: Комбинированный подход
- ML для семантики (synonyms, variations)
- Правила для filtering (цена, бренд, дата)
- Гибридный score
Финальный результат:
- CTR: 10%
- Conversion: 14.5%
- Скорость: fast (< 50ms)
- Прозрачность: хорошая (можно объяснить результаты)
Мой вывод как эксперта
Правила поиска проще, но ML масштабируется лучше.
Стартуй с правил. Это даст тебе:
- Быстрый результат (можешь показать boss через дни)
- Понимание данных (что ищут пользователи)
- Baseline для сравнения
- Основу для ML (если он потребуется)
Если через месяц видишь, что:
- Трафик поиска > 5K queries/day
- Много long tail (распределение Zipfian)
- Добавлять 1000+ правил и поддерживать = nightmare
Тогда инвестируй в ML.
Но большинство компаний могут жить с хорошими правилами очень долго. ML — это optimization, не necessity. Начни с простого, измеряй, потом масштабируй.