Розробка гібридної рекомендаційної системи під ключ

Рекомендації на одній моделі швидко впираються в стелю точності: видача перестає потрапляти в інтерес користувача, а конверсія каталогу не зростає. Ми розробляємо гібридну рекомендаційну систему під ключ — від аудиту даних до передачі в експлуатацію. Наші інженери вибудовують відбір так, щоб точність видачі зростала, а час відгуку залишався передбачуваним.
Часті запитання

Чому гібридна рекомендаційна система втрачає точність на проді

Точність падає не в моделі, а на стику моделі з каталогом і живим трафіком.

Офлайн-метрики на історичному зрізі виглядають переконливо, але за кілька тижнів на проді частка релевантних показів у верхній частині видачі просідає — і найчастіше це не помилка навчання, а накопичений розрив між даними, на яких модель навчалася, і тим, що відбувається в каталозі зараз.

Перше джерело — розрідженість даних. Матриця взаємодій заповнена на одиниці відсотків: у більшості користувачів за всю історію три-п'ять осмислених контактів із товаром.

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

Друге — холодний старт каталогу. Нова позиція без історії взаємодій не отримує показів, а без показів не набирає історію: зворотний зв'язок замикається, і свіжий асортимент залишається невидимим тижнями.

Ручні підбірки тут працюють як страховка, але не масштабуються — при зростанні каталогу їх доводиться перезбирати вручну, і будь-яка затримка означає, що новинки випадають із видачі.

Третє — дрейф інтересів. Сезонність, зміна асортименту та поведінкові зсуви ламають розподіл, на якому навчена модель. Якість деградує не миттєво, а поступово: спочатку падає покриття довгого хвоста, потім — конверсія з показу в кошик. Перенавчання раз на квартал цей процес не доганяє.

Розбираємо, як це закривається: гібридні сигнали, окрема обробка холодного старту, регулярний перерахунок профілів і автоматизація підбірок замість ручної роботи контент-команди.

Вимірний ефект: точність видачі, швидкість відгуку, стійкість

До впровадження фіксуємо базу: рахуємо метрики на історичних журналах показів і переходів за зіставний період і на відкладеному інтервалі, який не потрапляв у навчання. Інакше точність на папері розходиться з поведінкою на проді.

Точність видачі дивимося не однією цифрою, а набором: частка влучань у перші N позицій, охоплення каталогу та частка порожніх рекомендацій.

Остання метрика — індикатор холодного старту: поки в товару чи користувача немає історії, гібридна схема добирає сигнал із контентних ознак, а не віддає заглушку «популярне». Після донавчання порожні відповіді скорочуються в рази, а покриття рідкісних категорій зростає.

Швидкість відгуку розкладаємо за етапами: відбір кандидатів, ранжування, пересортування з урахуванням бізнес-правил. У кожного етапу свій бюджет часу, і ми контролюємо p95 і p99 — середнє приховує хвіст, у який потрапляють найважчі запити.

Векторний індекс на FAISS тримає відбір кандидатів на каталогах у мільйони позицій, тому додавання ознак не перетворюється на зростання затримки.

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

Якщо векторний індекс недоступний, віддача йде через контентне ранжування — точність падає, вітрина продовжує працювати.

Підсумок фіксуємо однаковим набором перевірок до і після, на тих самих зрізах трафіку: так видно, що дав алгоритм, а не сезонність чи зростання каталогу.

Варіанти побудови рекомендаційної системи: порівняння підходів

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

Поки історія взаємодій щільна, а асортимент змінюється повільно, достатньо однієї моделі на одному джерелі сигналу; щойно з'являються товари без жодного перегляду та разові сплески попиту, точність видачі падає — зростає частка порожніх і повторюваних рекомендацій.

Нижче — чотири робочі альтернативи, між якими реально обирають на старті, з умовами застосовності та ціною кожної схеми.

Схема Коли підходить Обмеження
Колаборативна фільтрація за історією Багато подій, стабільний каталог, повторні покупки Нові позиції не потрапляють у видачу, новий користувач бачить усереднений список
Лише контентні ознаки об'єктів Каталог часто оновлюється, подій мало, довгий «хвіст» Не враховує фактичну поведінку, видача схожа на поточну картку
Об'єднання моделей (гібрид) Є і історія, і описи, потрібен стійкий результат Розбіжність шкал оцінок, складніше пояснювати й налагоджувати видачу
Гібрид плюс сигнали поточної сесії Каталог із десятками тисяч позицій, попит змінюється всередині візиту Жорсткі вимоги до затримки відповіді та до збору подій у реальному часі

Починаємо з оцінки покриття каталогу подіями: якщо взаємодій немає у більшості позицій, гібрид будується від контентних ознак, а колаборативна частина підключається в міру накопичення історії.

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

Етапи впровадження: від аудиту даних до передачі в роботу

Якість гібридної рекомендаційної системи визначає не вибір алгоритму, а стан даних: при непослідовній розмітці подій будь-яка модель дає зміщені результати. Тому робота йде послідовно — від аудиту даних до передачі в експлуатацію, і в кожного кроку є критерій готовності.

  1. Аудит даних. Розбираємо логи та сховище: повнота подій, дублі, затримки запису, глибина історії, розбіжності між сервісами. На виході — перелік прогалин, які закриваємо до навчання.
  2. Розмітка подій. Фіксуємо єдину схему: показ, клік, додавання в кошик, покупка, повернення. Ознаки версіонуємо, щоб навчання й видача рахували їх однаково.
  3. Проєктування схеми. Вирішуємо, як поєднуються колаборативна й контентна частини, як обробляється холодний старт, за якими правилами відсікаються дублі та вже куплене.
  4. Складання й перевірка моделі на історії. Прогонимо на відкладеному відрізку часу й порівнюємо з поточною видачею: частка влучань, різноманітність, стійкість до рідкісних позицій.
  5. Перевірка на живому трафіку. Вмикаємо на частині аудиторії: контрольна й досліджувана групи, час відгуку, частка успішних віддач, автоматичний відкат при просіданні.
  6. Впровадження рекомендацій. Підключаємо точки видачі в інтерфейсі, налаштовуємо кеш і обмеження за часом відповіді, стежимо за зв'язкою з пошуком і каталогом.
  7. Передача в експлуатацію. Віддаємо документацію, схему перенавчання та регламент моніторингу, навчаємо команду замовника — систему можна розвивати без нас.

Артефакти й регламенти, які залишаються в замовника

«Систему передано» перевіряється просто: команда замовника піднімає її без нас. Тому в закривальний пакет входить не лише код, а й артефакти, за якими гібридна рекомендаційна система живе далі — включно з логікою змішування колаборативних і контентних сигналів.

  • Схема сервісів: склад компонентів, потоки даних між ними, черги, сховища ознак і поведінка при відмові кожного вузла.
  • Точки інтеграції: контракти обміну, формати подій, порядок повторних спроб і захист від дублів при збоях.
  • Конфігурації: параметри змішування сигналів, пороги відсікання, правила холодного старту — з поміткою, яке значення на що впливає.
  • Регламент оновлення моделі: тригери перенавчання, перевірка на відкладеній вибірці, строк введення в роботу та порядок відкату до попередньої версії.
  • Контроль якості рекомендацій: набір метрик, панель спостереження, пороги оповіщень і розбір деградацій за журналами.
  • Правила доступу: ролі, розділення прав на зміну ваг і запуск перенавчання, ротація ключів.
  • Технічна документація: опис архітектури, інструкції запуску, дії при інциденті, журнал ухвалених рішень.

Приймання йде за цими самими пунктами: ваші інженери самі змінюють конфігурацію, запускають перенавчання й повертають попередню версію. Що не описано й не відтворюється без нас — те не передано.

Кейс: як зросла точність видачі на каталозі у два мільйони позицій

Каталог на два мільйони позицій — точка, де ручне розкладання блоків перестає працювати фізично. У «А-Ритейл» вітрину збирали категорійні менеджери, спираючись на один сигнал — продажі минулих періодів.

Верхні блоки займали ті самі позиції, новинки й довгий хвіст показів майже не отримували: частка показів товарів поза топом трималася близько 14%.

Ми об'єднали два джерела сигналу — поведінковий (спільні перегляди й покупки) та контентний (атрибути картки, опис, категорія). Їхні внески змішуються, після чого видача переранжовується за правилами: наявність, строк доставки, обмеження на повтори всередині блоку.

Контентний канал закриває холодний старт — нова позиція отримує покази за схожістю з уже популярними, поки не набрала власну статистику звернень.

Заміри до і після

Кейс рекомендаційної системи цінний не моделлю, а постановкою заміру. Трафік розділили: 10% — контрольна група користувачів на старій логіці, решта на новій, а метрики до і після порівнювали на однакових зрізах — категорія, пристрій, новизна акаунта.

Зростання відгуку на блоках — 27% відносно контролю, частка показів поза топом зросла з 14% до 39%, порожні блоки скоротилися втричі, а новий товар виходив у топ за 4-5 днів замість трьох тижнів.

Що робити, якщо рекомендації вже працюють на одній моделі?

Працююча модель — це не проблема, а фундамент, від якого рахують покращення. В одиночної моделі майже завжди є сліпа зона: колаборативна фільтрація просідає на новинках і рідкісних позиціях, а контентна переоцінює популярне й тягне його в усі видачі.

Гібридна схема закриває цей розрив не заміною моделі, а другим джерелом сигналу поряд із уже працюючим.

Друге джерело підключається на рівні об'єднання оцінок, а не перенавчання поточної моделі. Це може бути векторне подання описів, поведінкові послідовності або правила каталогу — кожне джерело видає свій ранжований список, а підсумкова вага задається конфігурацією.

Шар об'єднання відокремлений від логіки застосунку, тому працюючий підбір не доводиться переписувати.

Увімкнення йде етапами. Спочатку тіньове порівняння: нова схема рахує видачу паралельно, і її результат лише пишеться в лог. Потім частка трафіку зростає сходинками, а попередня й нова схеми порівнюються на одному зрізі користувачів. Якщо показники тримаються, вагу другого джерела збільшують.

Відкат передбачено на кожному кроці. Ваги та пороги лежать у конфігурації, а не в коді, тому повернення до попередньої поведінки — це правка параметра, а не випуск нового збірки. Остання стабільна видача зберігається як резервна, і просідання не доходить до користувача.

Дивитися варто на частку позицій із холодного сегмента, різноманітність видачі та глибину перегляду. Їхнє зростання при збереженні попередніх показників означає, що друге джерело додає сигнал, а не шум.

Технічні сумніви: дані, якість, підтримка

До старту інженерні команди ставлять однакові питання: чи вистачить подій, коли з'явиться вимірний ефект, хто відповідає за якість після запуску. П'ять типових сумнівів — і чим вони закриваються.

У нас мало подій для навчання

Гібридна схема спирається і на поведінку, і на ознаки самого об'єкта: атрибути, текст, контекст сесії. При дефіциті подій стартуємо на контентних сигналах, поведінкові підмішуємо в міру накопичення.

Рекомендації — чорний ящик?

Кожну видачу можна розкласти: видно, які ознаки та минулі взаємодії підняли об'єкт у списку. Це перевіряється у звіті аналітика й знімає питання бізнесу та підтримки.

Скільки чекати впровадження

Перший робочий варіант у продукті виводимо коротким циклом, далі — ітерації за показниками. Строк залежить від готовності даних і точок показу, а не від розміру каталогу.

Що відбувається після запуску

Якість видачі з часом падає: змінюється асортимент, поведінка аудиторії, сезонність. Тримаємо перенавчання, контроль показників і оповіщення про просідання — реагуємо раніше, ніж це помітять за виручкою.

Як із даними та доступами

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

Обговоримо задачу: з чого починається оцінка вашого проєкту

Оцінка проєкту починається з опису сценарію, а не з вибору алгоритму. Гібридна схема поєднує поведінкові сигнали й ознаки самих об'єктів, і те, яка частина дасть основний внесок, видно лише за вашими даними. Тому на вході потрібні факти про задачу, а не побажання до інструментів.

Щоб повернутися з планом робіт і складом команди, запитуємо:

  • Сценарій: де показується рекомендація (каталог, картка, лист, головна) і яку дію вважаємо цільовою.
  • Знеособлена статистика: вивантаження подій за доступний період — тип дії, об'єкт, час, сегмент користувача, без персональних даних.
  • Опис об'єктів: що рекомендуємо, наскільки заповнені ознаки, чи є тексти, зображення, категорії.
  • Точки інтеграції: які сервіси запитують рекомендації, куди повертається відповідь, які є обмеження за навантаженням і часом відповіді.
  • Поточні метрики: конверсія в цільову дію, охоплення каталогу, частка нових користувачів — з чим порівнюватимемо результат.
  • Обмеження: правила роботи з персональними даними, регіон зберігання, що не можна використовувати в моделі.
  • Критерій приймання: як ви перевірите, що система працює — порівняння з поточною логікою, частки, строк спостереження.

Строки оцінки — зазвичай кілька робочих днів із моменту отримання доступів; якщо доступ до статистики надходить частинами, строк зсувається. На виході — план робіт за етапами, склад команди під ваш контур і список ризиків, де знадобляться ваші рішення. Опишіть задачу — повернемося з оцінкою та планом.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142