Леха Захаров – «Слив топа Литрес» (страница 3)
Рекомендательная система — это не только «плюшки», но и «минушки». CatBoost не только повышает, но и понижает ранг книг за определённые «проступки».
Штраф за несоответствие ожиданиям. Если книга имеет яркую, кликбейтную обложку и громкое название, пользователь кликает на неё, покупает, а потом обнаруживает, что содержание не соответствует ожиданиям, и бросает читать на 5-й странице — система запомнит это. Книга будет помечена как «потенциальный разочарователь» (disappointer), и её ранг для похожих пользователей будет искусственно занижен.
Штраф за «странные» покупки. Если книга неожиданно для алгоритма покупается пользователями с очень разными профилями (например, и поклонниками интеллектуальной прозы, и любителями бульварных детективов), это может сбить систему с толку. В некоторых случаях это расценивается как «шум» или даже «аномалия», и ранг книги может быть временно понижен до тех пор, пока не накопится достаточно данных, чтобы понять, что происходит. (Исключение: книги-«феномены», которые действительно нравятся всем — такие как «Три товарища» Ремарка — они получают, наоборот, супер-буст.)
Штраф за «накрутку» (самое страшное). Если система заподозрит искусственное накручивание рейтингов, покупок, отзывов или скачиваний (например, резкий всплеск активности из одного IP-адреса или странный паттерн покупок), книга может быть не просто понижена в ранге, а полностью исключена из рекомендаций. Более того, аккаунт автора может быть заблокирован, а книга — снята с продажи. «ЛитРес» относится к этому очень серьёзно.
Исключение для «супер-бестселлеров». Иногда книга становится настолько популярной (всплеск из-за экранизации, победа в крупной премии, мем в социальных сетях), что правила ранжирования для неё временно отключаются. Она начинает показываться всем подряд, даже если это противоречит их профилю. Это делается для максимизации прибыли: даже если пользователь обычно не читает фэнтези, но весь мир говорит о новом романе Санджо, он, вероятно, купит и его.
Портрет «идеальной» книги с точки зрения алгоритма
Итак, подведём промежуточный итог. Какой должна быть книга, чтобы CatBoost и ALS полюбили её всем сердцем? Вот собирательный образ:
Название: интригующее, но не кликбейтное. Оно должно точно отражать содержание и соответствовать жанровым ожиданиям. Названия, которые вводят в заблуждение, приводят к высокому проценту бросивших чтение.
Жанр: чётко определённый, без «каши». Книга, которая пытается быть и детективом, и романом, и фэнтези, сбивает с толку и коллаборативную фильтрацию, и семантическую модель. Лучше выбрать один-два основных жанра и строго им следовать.
Обложка: качественная, профессиональная, релевантная жанру. Она не должна быть слишком кричащей (чтобы не создавать завышенных ожиданий), но и не слишком блёклой (чтобы привлекать клики).
Аннотация: чёткая, информативная, без спойлеров. Она должна давать пользователю точное представление о книге. Загадочные, уклончивые аннотации ведут к высокому проценту бросивших.
Объём: золотая середина — 250–400 страниц в печатном эквиваленте. Рассказы (менее 100 страниц) имеют слишком низкое время вовлечения. Тома-кирпичи (более 800 страниц) пугают пользователей высоким процентом не-дочитывания.
Первые страницы: должны «цеплять» с первой фразы. CatBoost анализирует поведение пользователя на первых страницах. Если он пролистал 10–15 страниц и закрыл книгу — это негативный сигнал. Если он после первых страниц сразу купил книгу или добавил в избранное — позитивный.
Концовка: должна быть удовлетворительной. Пользователи, разочарованные концовкой, ставят низкие оценки и не рекомендуют книгу друзьям, что снижает её коллаборативный потенциал.
Наличие аудиоверсии: обязательно. И желательно качественной, с хорошим чтецом.
Автор: если автор уже имеет успешные книги на платформе — это огромный плюс. CatBoost помнит «послужной список» автора и даёт новинкам фору. Новичкам приходится доказывать качество с нуля.
Математика успеха: как вычислительная сложность определяет судьбы
Давайте на минуту представим вычислительную мощь, которая стоит за каждым вашим кликом. Каждый раз, когда вы заходите на главную страницу «ЛитРес», система запускает следующий конвейер:
Запрос к базе данных: извлечь ваш профиль (историю покупок, оценок, чтения).
Запуск ALS: вычислить предсказанные оценки для всех 1 000 000+ книг, используя ваши 100-мерные векторы и векторы книг. (На самом деле ALS не вычисляет оценки для
Формирование пула кандидатов: отобрать 500 книг с наивысшими предсказаниями.
Извлечение признаков: для каждой из 500 книг извлечь сотни поведенческих, семантических, контекстных и мета-признаков.
Запуск CatBoost: прогнать эти 500 книг через обученную модель градиентного бустинга, получив для каждой итоговый скор.
Сортировка и фильтрация: отсортировать книги по убыванию скора, убрать дубликаты, книги, которые пользователь уже читал, и книги, которые не соответствуют возрастным ограничениям.
Формирование ответа: отправить на ваш экран первые 20–30 книг, которые вы увидите.
И всё это должно произойти за менее чем 100 миллисекунд (0,1 секунды), чтобы вы не заметили задержки. Это инженерный подвиг, сопоставимый с управлением космическим кораблём.
Именно поэтому не все книги могут быть показаны всем пользователям. Вычислительные ресурсы конечны. И именно поэтому понимание алгоритмов — это не просто академический интерес. Это вопрос выживания в океане контента.
Итоги главы: что мы узнали
Рекомендательная система «ЛитРес» — двухэтапная. ALS отвечает за быстрый отбор кандидатов из миллионов книг на основе коллаборативной фильтрации. CatBoost — за точное ранжирование сотен кандидатов с учётом поведенческих, семантических и контекстных признаков.
Главная метрика — дочитывание до конца. Она перевешивает даже покупку.
Семантическая модель Sentence-BERT позволяет системе понимать не только жанр книги, но и её настроение, стиль, эмоциональную тональность, делая рекомендации гораздо более точными.
Матрица факторов ранжирования включает десятки параметров, от времени суток до устройства чтения. Некоторые факторы дают буст, другие — штрафуют книгу.
Идеальная книга с точки зрения алгоритма — это книга с точным названием, чётким жанром, качественной обложкой, «цепляющим» началом, удовлетворительной концовкой и оптимальным объёмом. Это книга, которую читают до конца и оставляют высокие оценки.
Понимание этих алгоритмов даёт автору неоспоримое преимущество. Вы больше не играете вслепую. Вы знаете правила игры.
А пока — запомните главное: «ЛитРес» не просто продаёт книги. «ЛитРес» продаёт предсказания. И чем точнее предсказание, тем больше денег зарабатывает и платформа, и авторы. А значит, ваша задача как автора — стать максимально предсказуемым для алгоритмов. Не уникальным, не гениальным, не нишевым. А предсказуемым. Звучит цинично? Возможно. Но это — суровый закон цифрового рынка. И чем раньше вы его примете, тем выше будет ваша книга в топе.
Противоборство ALS и CatBoost на книжной платформе — это не просто техническая схватка алгоритмов, а фундаментальная дуэль архитектурных парадигм. Это спор между быстрым, интуитивным предсказанием, основанным на коллективном опыте (ALS), и глубоким, взвешенным анализом сотен сигналов, который способен уловить тончайшие нюансы поведения и контекста (CatBoost).
Мы уже знаем, что эти два алгоритма работают в связке на разных этапах рекомендательного конвейера. Но если присмотреться, между ними разворачивается настоящая дуэль — не на уничтожение, а на эффективность. Один задаёт направление, другой — корректирует прицел. И от того, насколько слаженно работает этот дуэт, напрямую зависят продажи авторов и впечатления читателей.
ALS против CatBoost: дуэль алгоритмов на ваших продажах
ALS (Alternating Least Squares) — это рабочий класс системы рекомендаций. Его задача — максимально быстро, используя минимум ресурсов, сократить каталог из миллионов книг до нескольких сотен потенциальных кандидатов, которые могут быть интересны пользователю.
Главная сила ALS — в его способности работать с неявными данными (implicit feedback). Книжные платформы, как и многие другие сервисы, сталкиваются с тем, что пользователи неохотно ставят звёзды и пишут рецензии. Но зато каждый день они генерируют горы неявных сигналов: открыли книгу, пролистали пару страниц, добавили в избранное, купили, но так и не дочитали.
ALS виртуозно обрабатывает эту разреженную матрицу данных. Он представляет и пользователей, и книги в виде многомерных векторов (латентных факторов) в абстрактном пространстве «вкусов». Представьте, что каждому читателю и каждой книге присваивается уникальный «числовой паспорт» из, скажем, 50 параметров (rank). Эти параметры сами по себе не интерпретируемы, но их комбинация идеально описывает предпочтения.
Как это работает на практике. ALS итеративно (alternating) решает две задачи. Сначала, фиксируя векторы книг, он подбирает наилучшие векторы для пользователей. Затем, наоборот, фиксирует векторы пользователей и уточняет векторы книг. Цель — минимизировать разницу (least squares) между реальными действиями пользователя и предсказанием модели. На выходе мы получаем предсказание: насколько книга X понравится пользователю Y.