← к карте курса

Как пользоваться учебником

Это не линейный курс. Модули связаны учебными зависимостями, несколько веток идут параллельно и сходятся в местах сборки. Карта на главной показывает именно эти связи, а не порядок, в котором модули писались.

Что полезно знать заранее

Учебник не начинается с нуля по математике и программированию: формулы выводятся, но базовые понятия предполагаются знакомыми. Ничего из списка ниже не нужно знать глубоко — достаточно узнавать запись и понимать смысл. Если чего-то нет, читать всё равно можно: в тексте каждый раз сказано, что именно считается и зачем.

Python и numpy
На уровне чтения кода: массивы, срезы, векторные операции вместо циклов. Весь код моделей здесь — numpy; PyTorch встречается только в обучении нейросетевых модулей.
Линейная алгебра
Вектор, скалярное произведение, косинус угла, умножение матриц, разложение матрицы на две меньшие. На этом стоят и похожесть айтемов, и матричная факторизация, и эмбеддинги.
Вероятность и статистика
Распределение, среднее и медиана, условная вероятность, выборочный шум. Ближе к инженерной части понадобятся доверительные интервалы и бутстрэп — сама техника объясняется на месте, но идея «разница может быть случайной» должна быть привычной.
Основы машинного обучения
Разделение на обучение и тест, переобучение, функция потерь, градиентный спуск, логистическая регрессия и градиентный бустинг на уровне «что это делает». Нейросети нужны только в своих модулях и разбираются там с нуля.
Инженерная база
Полезна, но не обязательна: HTTP и API, SQL, представление о кэше, очереди и батч-джобе. Нужна ближе к production-блокам, где речь про задержки, обновление признаков и выкатку.

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

С чего начать

С модуля Popularity baseline: там весь путь «данные → модель → метрика → выдача» помещается на одну страницу, и дальше каждый следующий модуль меняет в этом пути ровно одну вещь. Дальше карта сама подскажет — у каждого модуля указано, что нужно пройти до него и что он открывает.

Два модуля — справочники: их открывают в любой момент и возвращаются к ним из других страниц. Метрики, Протокол эксперимента.

Как устроена карта

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

База и справочники
Как устроен учебник, первый end-to-end pipeline и два справочника, к которым возвращаются отовсюду. Модулей: 4.
Классические модели
Контент, соседство и латентные факторы — три способа получить похожесть. Модулей: 4.
Данные и методология оценки
Как из логов получается обучающая выборка и почему честный замер выглядит скромнее. Модулей: 5.
Retrieval и ranking
Отбор кандидатов отдельно от их упорядочивания — и цена приближённого поиска. Модулей: 4.
Сборка воронки
Стадии соединяются в систему, и появляются вопросы уровня системы. Модулей: 2.
Production и продуктовые ограничения
Что ломается между офлайн-метрикой и живой выдачей: фичи, холодный старт, правила, наблюдаемость. Модулей: 5.
Capstone
Вся воронка на реальном логе с происхождением каждой позиции витрины. Модулей: 1.
Специализации
Отдельные ветки, которые становятся осмысленными после ядра. Модулей: 5.

Метки у модулей

Меток всего две, и обе про разное. Первая стоит только на факультативных модулях — их 9 из 30; всё остальное считается основным путём и никак не подписано. Обратной метки («база») нет намеренно: она была бы на почти каждой карточке и ничего бы не сообщала.

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

Вторая метка — про готовность самого текста. Каждый модуль проходит независимое экспертное ревью, и пока оно идёт, это видно прямо на карточке. Сейчас ревью закрыто у 12 модулей из 25 открытых, ещё 5 запланированы.

✓ проверено
модуль прошёл независимое ревью. Замечания ревью разобраны и закрыты, правки внесены в код и в текст.
◐ в ревью
модуль доступен, ревью ещё идёт. Содержание на месте целиком — проверяются выводы, формулировки и протокол замеров.
○ запланирован
страницы пока нет. В карте такой модуль показан, но ссылки у него пока нет.

Чего карта не делает

Она ничего не блокирует. Любой модуль открывается в любой момент — если предпосылки не пройдены, страница об этом скажет и даст ссылки, но не закроется. Порядок здесь — рекомендация, а не замок.

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

Как читать числа в модулях

Почти все замеры сделаны на реальных данных — MovieLens в базовой части и лог чек-инов Brightkite в инженерной. Числа на страницах не набраны руками: они приезжают из артефактов, которые собираются офлайн, и это тоже проверяется тестами. Там, где механика синтетическая — например, симуляторы A/B или расхождения фичей, — это написано на самой странице рядом с цифрами.