18+
реклама
18+
Бургер менюБургер меню

Леха Захаров – «Слив топа Литрес» (страница 4)

18

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

Но у ALS есть серьёзный недостаток — он не может предсказать вкусы новых пользователей, у которых ещё нет истории действий, и не знает, что делать с новой книгой, у которой нет оценок. Эта проблема называется «холодный старт». ALS может только «развести руками», присвоив новым объектам NaN-значения.

Кроме того, ALS — это «чёрный ящик». Он даёт ответ («вам понравится эта книга»), но не может объяснить, почему. Он не знает, что книга — фэнтези, а пользователь любит детективы. Он видит только цифры. Это принципиальное ограничение, которое и призван преодолеть CatBoost.

Если ALS — это артиллерийская подготовка, то CatBoost (Categorical Boosting) — это работа снайпера. Получив от ALS список из нескольких сотен книг-кандидатов, CatBoost начинает кропотливую работу по их сортировке. Он не просто отбирает лучших, он ранжирует их в идеальном порядке, начиная с самой релевантной и заканчивая наименее подходящей.

CatBoost — это мощный алгоритм градиентного бустинга на деревьях решений, разработанный компанией Яндекс. Если очень упрощённо, представьте себе группу экспертов, которые по очереди оценивают книгу. Первый говорит: «У неё высокая средняя оценка». Второй уточняет: «Но у неё мало покупок». Третий добавляет: «Зато её часто дочитывают до конца». Четвёртый замечает: «Автор этой книги уже имеет бестселлеры». В итоге, взвесив все мнения, система выносит вердикт. Именно так, последовательно исправляя ошибки предыдущих, и работает градиентный бустинг.

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

Категориальные данные: жанр книги, имя автора, издательство, наличие аудиоверсии.

Поведенческие данные: время, проведённое на странице книги, дочитывание до конца, возвращение к книге, частота чтения.

Контекстные данные: время суток (утром читают одно, вечером — другое), устройство (на телефоне в метро — короткие рассказы, на планшете дома — романы), сезонность.

Текстовые данные: название, аннотация, описание книги, которые CatBoost может анализировать встроенными методами NLP.

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

Давайте посмотрим, как эта дуэль разворачивается в реальных сценариях на «ЛитРес». Мы рассмотрим двух авторов и одну новинку.

Автор Иван: пишет крепкие детективы в духе Агаты Кристи. У него уже есть лояльная аудитория, но продажи стабильны и не растут.

Автор Пётр: экспериментирует со стилями, пишет смесь киберпанка, любовного романа и философской притчи. Его книги — либо «бомбы», либо «пустышки».

Ситуация 1: Автор Иван выпускает новую книгу в своём жанре.ALS легко находит «соседей» по вкусам среди поклонников детективов. Он формирует пул кандидатов, куда попадает книга Ивана. CatBoost, проанализировав факторы, даёт книге высокий ранг. Результат — стабильные продажи, попадание в тематические подборки, но без сюрпризов.

Ситуация 2: Автор Пётр выпускает новый роман.ALS не может определить его аудиторию. Книга не похожа ни на что, что пользователи читали раньше. ALS может включить её в пул кандидатов наугад или на основе общих факторов (например, новизны). Здесь всё решает CatBoost. Если первые пользователи, которым случайно показали книгу, проявят к ней интерес (начнут читать, дочитывать до конца), CatBoost мгновенно уловит этот сигнал и начнёт активно рекомендовать книгу похожим пользователям. Роман Петра может «выстрелить», став неожиданным хитом. Но если первые читатели не оценят эксперимент, CatBoost быстро «закопает» книгу, перестав её рекомендовать.

Ситуация 3: На платформе появляется супер-бестселлер (например, новый роман Пелевина).Здесь алгоритмы работают в особом режиме. ALS и CatBoost могут быть временно отключены, и книга начнёт показываться всем подряд, даже тем, кто предпочитает любовные романы. Это делается для максимизации прибыли и создания эффекта «мейнстрима».

Исход дуэли между ALS и CatBoost зависит от множества параметров, которые настраивают инженеры машинного обучения.

Ключевые параметры ALS:

rank: Количество латентных факторов (измерений) для описания пользователей и книг. Чем выше ранг, тем точнее модель, но выше риск переобучения и ниже скорость.

regParam: Параметр регуляризации, который штрафует модель за сложность и предотвращает переобучение.

alpha: Параметр, который определяет, насколько сильно ALS доверяет неявным сигналам (например, просмотру страницы) по сравнению с явными (покупкой).

Ключевые параметры CatBoost:

iterations / depth: Количество и глубина деревьев решений в ансамбле.

learning_rate: Скорость обучения. Более низкая скорость требует больше деревьев, но может привести к более точной модели.

loss function: Функция потерь, которую оптимизирует модель. Для ранжирования книг могут использоваться специальные функции, такие как YetiRank, PairLogit, NDCG.

CatBoost также предлагает уникальные методы борьбы с переобучением, такие как стохастический градиентный бустинг (SGB) и байесовский бутстрап.

Так кто же выходит победителем из этой дуэли? Ответ — никто. ALS и CatBoost не конкуренты, а партнёры. Их дуэль — это не бой, а танец. Каждый алгоритм делает то, что умеет лучше всего, компенсируя недостатки другого.

ALS — это стратегия: быстрый, дешёвый и масштабируемый метод, который задаёт направление.

CatBoost — это тактика: медленный, дорогой, но невероятно точный метод, который корректирует прицел и делает решающий выстрел.

Для автора это означает, что для успеха нужно угодить обоим алгоритмам.

Чтобы угодить ALS, нужно создать книгу, которая будет «похожа» на другие успешные книги в жанре. Не нужно изобретать велосипед — нужно делать качественные велосипеды.

Чтобы угодить CatBoost, нужно сделать книгу, которая будет вызывать глубокую вовлечённость: её должны дочитывать до конца, перечитывать, цитировать, рекомендовать.

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

Коллаборативная фильтрация: почему друг читает то же, что и вы

Представьте, что вы — заядлый читатель детективов. Вы только что закончили очередной роман о сыщике Эрасте Фандорине и, закрывая книгу, видите в блоке рекомендаций «ЛитРес» предложение: «Вам также может понравиться этот автор». И там — незнакомый вам Иван Любенко, у которого, как выяснится, есть свой сыщик, Клим Ардашев. Или знаменитая «Красная тайна» Наташи Бойд.

Вы думаете: «Откуда платформа узнала, что мне нравится? Слежка? Анализ моих биометрических данных? Или, может быть, магия?» На самом деле, всё проще и сложнее одновременно: в основе лежит коллаборативная фильтрация. Этот принцип, сформулированный ещё в начале 1990-х годов, гласит: люди, у которых были похожие вкусы в прошлом, вероятно, будут иметь похожие вкусы в будущем.

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

Давайте разберемся, как работает этот «коллективный разум» и почему его часто называют «сердцем» любого современного рекомендательного сервиса, включая «ЛитРес».

Идея использования коллективных данных для рекомендаций не нова. Ещё в 1990 году шведский учёный Юсси Карлгрен впервые описал концепцию «цифрового книжного шкафа», где система могла бы советовать книги, анализируя предпочтения пользователя и его соседей по интересам. Однако первая практическая система, Tapestry, появилась в исследовательском центре Xerox PARC в 1992 году. Она создавалась для управления большим потоком электронной почты: пользователи вручную аннотировали сообщения, а система на основе этих пометок помогала отсеивать ненужные письма. Tapestry была умной, но полностью зависела от человеческих усилий.

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

Но подлинную популярность коллаборативной фильтрации принесла электронная коммерция. В 1998 году Amazon запустила свой легендарный алгоритм «покупатели, купившие этот товар, также купили...». Это был не просто академический эксперимент, а коммерчески успешное решение, которое мгновенно увеличило продажи. Алгоритм Amazon, основанный на item-based collaborative filtering, стал золотым стандартом для интернет-магазинов на годы вперёд.