О проекте
Учебник по рекомендательным системам, написанный под конкретную задачу: подготовиться к собеседованию так, чтобы уметь объяснить каждую тему вслух — с выводом, числами и пониманием, где приём перестаёт работать.
TLIAMOVLAB
Что это
Материалов по рекомендательным системам много, и почти все отвечают на вопрос «что делают». Заметно реже — на вопрос «почему именно так и где это ломается». Этот учебник вырос из попытки разобрать каждую тему до второго уровня.
Отсюда три особенности формата:
- Формулы выводятся, а не приводятся. Если у результата есть короткий вывод, он в тексте. Аналитическое решение EASE, LogQ-коррекция через importance sampling, бонус UCB из неравенства Хёфдинга — всё выведено на месте.
- Числа считаются. Каждый численный пример посчитан скриптом, который лежит в этом же репозитории, и его можно запустить.
- Виджеты считают по-настоящему. Внутри не заранее нарисованные кривые, а вычисления: подвиньте параметр — увидите, что происходит с метрикой.
Как проверяются утверждения
- Математика виджетов сверена с независимой реализацией на Python: те же входы, отдельно написанный код, допуск 1e-9. Симуляции folding и бандита-переранжировщика сверены бит-в-бит.
- Утверждения о чужом коде проверяются автоматически. Скрипт извлекает параметры прямо из исходников и сверяет с тем, что написано в тексте, — 122 сверки. Утверждение не может разойтись с кодом, который описывает.
- Целостность страниц — отдельная проверка: битые якоря, дубли идентификаторов, неотрендеренные формулы, ссылка «виджет …» в раздел, где виджета нет. Все эти классы ошибок встречались вживую, поэтому и проверяются.
Откуда материал
Два источника, и оба — свои.
| Часть | Источник |
|---|---|
| Разбор реальной системы | Собственный анализ открытого кода ленты «For You» в X. Короткие фрагменты кода цитируются под Apache 2.0 с указанием файла и коммита; объяснение, структура, схемы, числа и виджеты — наши |
| Теория | Первоисточники: статьи, открытая документация, открытый код. Каждое
утверждение сопровождается ссылкой на работу, из которой взято, а каждый
численный пример — скриптом в _tools/, которым он посчитан |
Единственный чужой материал в учебнике — короткие фрагменты исходного кода
x-algorithm, распространяемого
под лицензией Apache 2.0. Каждый фрагмент подписан: файл, коммит, ссылка на
оригинал. Полный перечень — в файле NOTICE репозитория.
Все схемы нарисованы для этого учебника: ни один рисунок в тексте не является картинкой — вся графика глав это inline-SVG прямо в разметке страницы, поэтому она масштабируется, читается в тёмной теме и не может разойтись с текстом вокруг.
Растровых файлов в проекте два вида, и оба вне текста: брендовый знак и
обложки глав. Обложки нарисованы моделью по промптам, которые лежат в
репозитории (docs/_tools/cover_prompts.md) — это украшение
оглавления и превью ссылки, а не содержание. Ни один разбор, ни одна схема и
ни одно число из них не берутся.
Автор
Анвар Тлямов — ML-инженер, занимаюсь рекомендательными системами. Учебник вырос из собственной подготовки к собеседованиям: почти всё, что удавалось найти, объясняло, что делают, и почти ничего — почему именно так и где это ломается. Этот второй уровень я и записал.
Написать: LinkedIn. Вопросы по учебнику, замеченные ошибки и предложения приветствуются.
Права
Текст учебника, схемы и структура — авторские, все права сохранены. Инструменты сборки и проверки, а также исходный код виджетов, опубликованы под лицензией MIT: их можно брать и использовать свободно.
Цитирование фрагментов для обзора, преподавания или разбора — обычное добросовестное использование и не требует ничьего разрешения.
Состояние
Теоретическая часть написана целиком: девятнадцать глав от постановки задачи до проектирования системы. Разбор открытого кода реальной ленты — одиннадцать глав — тоже готов.
Английская версия готова целиком: все тридцать страниц, тренажёр метрик, каталог виджетов, режим повторения и поиск есть на обоих языках, и каждый виджет говорит на языке своей страницы. Учебник продолжает дополняться: уточняются формулировки, добавляются виджеты и численные примеры. Каждое изменение проходит через те же проверки, что описаны выше, поэтому расхождение текста с числами или с кодом поймается автоматически, а отдельная проверка сверяет каждую английскую страницу с русским оригиналом.
Статистика
Сайт считает просмотры страниц и то, до какого места их дочитывают. Счётчик — GoatCounter: без кук, без профилей и без передачи данных третьим сторонам, поэтому и баннера согласия здесь нет. Нужно это ровно для одного: понимать, какие главы читают до конца, а какие бросают на середине.
Отправляются только четыре отметки глубины прокрутки, факт открытия вопроса и факт взаимодействия с виджетом — по одной на страницу. Ни текст, ни ответы, ни что-либо ещё о вас никуда не уходит; всё, что вы отмечаете в режиме повторения и в тренажёре, остаётся в вашем браузере.