Привет! Меня зовут Артем. Я работаю Data Scientist'ом в компании МегаФон (платформа для безопасной монетизации данных OneFactor). Мы строим скоринговые (credit scoring), лидогенерационные (lead generation) и антифрод (anti-fraud) модели на телеком данных, а также делаем гео-аналитику (geo-analytics).

В предыдущей статье я поделился материалами для подготовки к этапу по классическому машинному обучению.

Давайте вспомним из каких секций состоит процесс собеседований на позицию Data Scientist:

Типичный процесс интервью глазами Dall-E 3
Типичный процесс интервью глазами Dall-E 3

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

Замечания

Я буду указывать ссылки на материалы не только на русском языке, но и на английском. Если у одного и того же ресурса есть версия на русском и на английском языке, то я буду указывать обе, чтобы читатель сам смог выбрать подходящий вариант.

Большое количество ресурсов будет на английском, поэтому знание английского это must have не только для работы по IT специальности, но и для подготовки к собеседованию. Зачастую оригинальная версия (на английском) проще читается, чем перевод, потому что содержит в себе много терминов и названий, которые устоялись и при плохом переводе только путают читателя.

Для книг я буду прикладывать ссылки на издательства (по возможности), чтобы вы сами смогли выбрать где их приобрести. Для технической литературы рекомендую использовать электронные версии книг, потому что в них всегда можно выделить важный отрывок, оставить комментарий и быстро найти нужную информацию.

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

Большинство материалов в этой статье - бесплатные, но есть несколько платных (помечены paid). Рекомендую покупать их только, если четко понимаете, что не хотите или не можете тратить свое личное время на самостоятельный поиск информации.

Свои любимые материалы я выделил ⭐.

Содержание

Материалы

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

Давайте перечислим самые популярные направления ML в данный момент:

  • Обработка естественного языка (Natural Language Processing / NLP)

  • Компьютерное зрение (Computer Vision / CV)

  • Распознавание речи (Automated Speech Recognition (ASR) / speech-to-text (STT))

  • Синтез речи (Speech Synthesis / text-to-speech (TTS))

  • Обучение с подкреплением (Reinforcement Learning / RL)

  • Временные ряды (Time Series / TS)

  • Рекомендательные системы (Recommender System / RecSys)

Во всех этих направлениях в данный момент активно используются методы глубокого обучения (Deep Learning / DL), хотя изначально, во многих из них использовались классические ML подходы над вручную созданными признаками (hand-crafted features). Поэтому сначала мы рассмотрим материалы для изучения теории глубокого обучения, а затем погрузимся в более прикладные области.

Глубокое обучение

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

Книги

⭐ Шолле Ф. Глубокое обучение на Python / Deep Learning with Python by François Chollet

Мое первое издание (а вам лучше выбрать второе)
Мое первое издание (а вам лучше выбрать второе)

Отличная книга, которая послужит идеальным введением в глубокое обучение. Кстати, первое издание этой книги есть у меня в печатном формате и пригодилось мне не раз, когда я только начинал заниматься DL.

⭐ Dive into Deep Learning

Dive into Deep Learning
Dive into Deep Learning

Интерактивная книга по глубокому обучению с кодом (на PyTorch, NumPy/MXNet, JAX и TensorFlow) и математикой. Каждая секция в книге является отдельным Jupyter notebook'ом, код в котором можно запускать и менять по своему усмотрению. Используется в 500 университетах в 70 странах мира.

Understanding Deep Learning by Simon J.D. Prince

Understanding Deep Learning
Understanding Deep Learning

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

The Little Book of Deep Learning by François Fleuret

Схематическое изображение нейронной сети
Схематическое изображение нейронной сети

Здесь кратко (но содержательно) рассматриваются многие важные темы: метод обратного распространения ошибки, дропаут, нормализация, функции активации, слои внимания и тд. При этом, книга подойдет даже новичкам: в начале автор раскрывает базовые понятия, и даже рассказывает про GPU и тензоры. Стоит также отметить, что данная версия адаптирована под чтение на телефоне.

⭐ What are embeddings by Vicki Boykis

Идея эмбеддингов в одной картинке
Идея эмбеддингов в одной картинке

Данная книга посвящена эмбеддингам:

  • Объясняется что такое эмбеддинги (на примере рекомендательной системы)

  • Рассматриваются классические и современные подходы к созданию эмбеддингам

  • Обсуждается использование эмбеддингов в production (как их получать, хранить, оценивать и тд)

Курсы

⭐ Школа глубокого обучения ФПМИ МФТИ

Deep Learning School
Deep Learning School

Школа глубокого обучения — это образовательный проект Физтех-школы прикладной математики и информатики МФТИ. Обучение нейросетям происходит с самых основ и до продвинутого уровня. Занятия ведут выпускники ФПМИ МФТИ, имеющие опыт разработки и исследований в области AI.

Программа 1-ой части курса (Введение в ML, DL и CV):

  • Введение в искусственный интеллект

  • Основы машинного обучения

  • Линейные модели

  • Композиции алгоритмов МО и выбор модели

  • Введение в нейронные сети

  • Сверточные нейросети (CNN)

  • Продвинутое обучение нейросетей

  • Архитектуры CNN и Transfer Learning

  • Семантическая сегментация

  • Детекция объектов на изображении

  • Автоэнкодеры

  • Генеративное-состязательные сети (GAN)

  • Итоговый проект

Программа 2-ой части курса (NLP, Audio):

  • Введение в NLP. Эмбеддинги слов

  • Рекуррентные нейросети (RNN)

  • Языковое моделирование

  • Машинный перевод, архитектура encoder-decoder

  • Механизм Attention и архитектура Transformer

  • Предобучение и дообучение языковых моделей

  • GPT, GPT-2, GPT-3, ChatGPT, Zero-shot Learning

  • Задачи NLP и методы их решения

  • Суммаризация текста и диалоговые системы

  • Дистилляция больших моделей

  • Введение в обработку аудио

  • Введение в распознавание речи

  • Итоговый проект

Deep Learning Specialization paid

Сертификат об окончании специализации Deep Learning
Сертификат об окончании специализации Deep Learning

Хорошая специализация по глубокому обучению на Coursera. Подойдет, как вводный курс, но на момент ее прохождения (2019 год), практика не была сильной стороной этой специализации (можете почитать отзывы).
Я бы порекомендовал посмотреть лекции и не платить за нее.

MIT 6.S191. Introduction to Deep Learning

Список лекций курса MIT 6.S191 Introduction to Deep Learning
Список лекций курса MIT 6.S191 Introduction to Deep Learning

Вводная программа Массачусетского технологического института по методам глубокого обучения с применением к обработке естественного языка, компьютерному зрению, биологии и многому другому! На ней вы узнаете об алгоритмах глубокого обучения, получите практический опыт построения нейронных сетей и освоите новейшие темы, включая большие языковые модели и генеративный искусственный интеллект.

⭐ Practical Deep Learning for Coders от fast.ai

Deep Learning for Coders with Fastai and PyTorch: AI Applications Without a PhD
Deep Learning for Coders with Fastai and PyTorch: AI Applications Without a PhD

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

  • Обучение DL моделей для компьютерного зрения, обработки естественного языка, решения табличных задач и задач коллаборативной фильтрации

  • Развертывание моделей

  • Использование PyTorch, а также популярных библиотек, таких как fastai и Hugging Face

Отлично дополняет курс бесплатная книга Deep Learning for Coders with Fastai and PyTorch: AI Applications Without a PhD.

⭐ Learn PyTorch for Deep Learning: Zero to Mastery

Содержание курса Learn PyTorch for Deep Learning: Zero to Mastery
Содержание курса Learn PyTorch for Deep Learning: Zero to Mastery

Этот курс научит вас основам машинного обучения и глубокого обучения с помощью PyTorch:

  • Fundamentals

  • Neural Network Classification

  • Computer Vision

  • Custom Datasets

  • Going Modular

  • Transfer Learning

  • Experiment Tracking

  • Paper Replicating

  • Model Deployment

Full Stack Deep Learning

Идея курса Full Stack Deep Learning
Идея курса Full Stack Deep Learning

Курс подойдет людям, которые уже знают основы DL и хотели бы лучше разобраться, как применять DL в реальных задачах:

  • Постановка задачи и оценка стоимости проекта

  • Поиск, очистка, обработка, разметка, синтез и аугментация данных

  • Выбор подходящей платформы и вычислительной инфраструктуры

  • Устранение неполадок в обучении и обеспечение воспроизводимости результатов

  • Развертывание модели в production

  • Мониторинг и постоянное улучшение развернутой модели

  • Как работают ML-команды и как управлять ML-проектами

  • Использование больших языковых моделей (LLM) и других Foundation моделей

Efficient Deep Learning Systems

Efficient Deep Learning Systems GitHub
Efficient Deep Learning Systems GitHub

Данный курс, как и предыдущий, больше направлен на продукционализацию и оптимизацию DL моделей:

  • Introduction

  • Experiment tracking, model and data versioning, testing DL code in Python

  • Training optimizations, profiling DL code

  • Basics of distributed ML

  • Data-parallel training and All-Reduce

  • Training large models

  • Python web application deployment

  • LLM inference optimizations and software

  • Efficient model inference

⭐ Neural Networks: Zero to Hero by Andrej Karpathy

Андрей Карпати размышляет о том, что такое backpropagation
Андрей Карпати размышляет о том, что такое backpropagation

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

Шпаргалки

Шпаргалки по DL от Афшин и Шервин Амиди
Шпаргалки по DL от Афшин и Шервин Амиди

Братья Афшин и Шервин Амиди подготовили гайды, в которых подчеркиваются важные моменты каждого предмета, которые Шервин преподавал в Стэнфорде.

Данные материалы подойдут, когда нужно за короткое время, например, перед собеседованием, вспомнить основные моменты в определенной теме.

Не забывайте, что про похожие шпаргалки, но уже по классическому ML, я писал в этом разделе второй статьи.

Convolutional Neural Networks

  • Типы слоев, гиперпараметры для фильтров, функции активации

  • Обнаружение объектов (Object Detection), распознавание лиц (Face Verification and Recognition)

  • Перенос нейростиля (Neural Style Transfer); архитектуры, использующие вычислительные трюки

Recurrent Neural Networks

  • Исчезающий/расширяющийся градиент (vanishing/exploding gradient), GRU, LSTM, разновидности RNNs

  • Word2vec, skip-gram, негативное сэмплирование (negative sampling), GloVe, модель внимания (attention model)

  • Языковая модель (language model), beam search, Bleu скор

Deep Learning Tips and Tricks

  • Аугментация данных (data augmentation), пакетная нормализация (batch normalization), регуляризация

  • Инициализация Ксавье (Xavier initialization), трансферное обучение (transfer learning), адаптивная скорость обучения (adaptive learning rates)

  • Переобучение на маленьких батчах (overfitting small batch), проверка градиента (gradient checking)

Разное

⭐ Deep Learning Models by Sebastian Raschka

Пример материалов, которые предлагает сайт
Пример материалов, которые предлагает сайт

Коллекция различных архитектур глубокого обучения, моделей и советов для обучения (TensorFlow и PyTorch) в Jupyter Notebooks.

Deep Learning Tuning Playbook

Руководство по настройке гиперпараметров для моделей глубокого обучения.

The Incredible PyTorch

Невероятный PyTorch
Невероятный PyTorch

Это тщательно подобранный список туториалов, проектов, библиотек, видео, статей, книг и всего, что связано с PyTorch.

Обработка текстов на естественном языке

В данном разделе рассмотрим материалы (в основном курсы) по обработке текстов на естественном языке.

Материалы (40+ ссылок), целиком посвященные большим языковым моделям (Large Language Models / LLM) и Prompt Engineering не влезают в статью, поэтому их вы сможете найти в репозитории Data Science Resources.

Курсы

⭐ Курс по NLP от ШАД (Елена Войта)

Содержание одного блока курса NLP Course | For You
Содержание одного блока курса NLP Course | For You

Отличный курс, покрывающий одновременно и классические подходы, и современные темы:

  1. Word Embeddings

  2. Text Classification

  3. Language Modeling

  4. Seq2seq and Attention

  5. Transfer Learning

  6. LLMs and Prompting

  7. Transformer architecture & training tricks

  8. Conversation systems, instruction fine-tuning & RLHF

  9. Efficient inference of NLP models

В дополнение к курсу Елена Войта (автор) подготовила замечательные интерактивные материалы NLP Course | For You.

Нейронные сети и обработка текста

Один из авторов курса - Роман Суворов
Один из авторов курса - Роман Суворов

Давно не обновляемый (2019 год), но все еще хороший курс для изучения основ NLP от специалистов Samsung AI Center:

  1. Введение

  2. Векторная модель текста и классификация длинных текстов

  3. Базовые нейросетевые методы работы с текстами

  4. Языковые модели и генерация текста

  5. Преобразование последовательностей: 1-к-1 и N-к-M

  6. Transfer learning, адаптация моделей

  7. Финальное соревнование на kaggle и заключение

Курс по NLP от Валентина Малых

В курсе покрываются следующие топики:

  • Introduction to Natural Language Processing

  • Machine Learning Basics and Text Classification

  • Word Embeddings

  • Convolutional Neural Networks

  • Hidden Markov Models and Tagging

  • Recurrent Neural Networks

  • Topic Modeling

  • Statistical Machine Translation

  • Transformers

  • Conversational AI

Курсы от Стенфорда

⭐ Hugging Face NLP course

Этот курс научит вас обработке естественного языка с использованием библиотек из экосистемы Hugging Face — ? Transformers, ? Datasets, ? Tokenizers и ? Accelerate, а также Hugging Face Hub:

  • Главы с 1 по 4 знакомят с основными понятиями библиотеки ? Transformers. К концу этой части курса вы познакомитесь с тем, как работают модели, основанные на архитектуре Transformer, и будете знать, как запускать их из Hugging Face Hub, дообучать на своем наборе данных и делиться своими результатами в Hub!

  • Главы с 5 по 8 обучают основам ? Datasets и ? Tokenizers, прежде чем погрузиться в классические задачи NLP. К концу этой части вы сможете самостоятельно решать наиболее распространенные проблемы NLP.

  • Главы с 9 по 12 выходят за рамки NLP и исследуют, как модели с архитектурой Transformer можно использовать для решения задач в области обработки речи и компьютерного зрения. Попутно вы узнаете, как создавать и публиковать демо-версии своих моделей, а также оптимизировать их для production. К концу этой части вы будете готовы применить ? Transformers для решения (почти) любой задачи машинного обучения!

Linguistics for Language Technology

Данный курс будет полезен тем, кто хочет не только решать NLP задачи с помощью машинного обучения, но и понимать основы лингвистической теории: слова, морфология, синтаксис, межъязыковые вариации, семантика (значения слова, значения предложения), дискурс и прагматика.

Книги

⭐ Speech and Language Processing by Dan Jurafsky and James H. Martin

Учебник, который покрывает и классические, и современные подходы от Daniel Jurafsky - это бессмертная классика, к которой постоянно выходят обновления.
В качестве дополнения можно также посмотреть на курс LSA 311: Computational Lexical Semantics от этого же автора.

⭐ Natural Language Processing with Transformers by Lewis Tunstall, Leandro von Werra adn Thomas Wolf

С момента своего появления в 2017 году Transformers быстро стала доминирующей архитектурой для достижения самых лучших результатов в различных NLP задачах. Эта практическая книга поможем вам:

  • Создавать, отлаживать и оптимизировать модели Transformers для основных задач NLP, таких как классификация текста (Text Classification), распознавание именованных сущностей (Named Entity Recognition / NER / Token Classification) и ответы на вопросы (Question Answering).

  • Узнать, как Transformers можно использовать для межъязыкового трансферного обучения (cross-lingual transfer learning).

  • Применить Transformers в реальных задачах, где недостаточно размеченных данных.

  • Делать модели Transformers эффективными для развертывания, используя такие методы, как distillation, pruning и quantization.

  • Обучать Transformers с нуля и узнать, как это делать на нескольких GPU.

Transformers for Natural Language Processing by Denis Rothman

Данная книга научит вас обучать и настраивать архитектуры глубоких нейронных сетей (для NLP) с помощью Python, Hugging Face и OpenAI (GPT-3, ChatGPT и GPT-4).

Статьи

За список статей благодарю Илью Гусева:

  • Word2Vec, Mikolov et al., Efficient Estimation of Word Representations in Vector Space

  • FastText, Bojanowski et al., Enriching Word Vectors with Subword Information

  • Attention, Bahdanau et al., Neural Machine Translation by Jointly Learning to Align and Translate

  • Transformers, Vaswani et al., Attention Is All You Need

  • BERT, Devlin et al., BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

  • GPT-2, Radford et al., Language Models are Unsupervised Multitask Learners

  • GPT-3, Brown et al, Language Models are Few-Shot Learners

  • LaBSE, Feng et al., Language-agnostic BERT Sentence Embedding

  • CLIP, Radford et al., Learning Transferable Visual Models From Natural Language Supervision

  • RoPE, Su et al., RoFormer: Enhanced Transformer with Rotary Position Embedding

  • LoRA, Hu et al., LoRA: Low-Rank Adaptation of Large Language Models

  • InstructGPT, Ouyang et al., Training language models to follow instructions with human feedback

  • Scaling laws, Hoffmann et al., Training Compute-Optimal Large Language Models

  • FlashAttention, Dao et al., FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness

  • NLLB, NLLB team, No Language Left Behind: Scaling Human-Centered Machine Translation

  • Q8, Dettmers et al., LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

  • Self-instruct, Wang et al., Self-Instruct: Aligning Language Models with Self-Generated Instructions

  • Alpaca, Taori et al., Alpaca: A Strong, Replicable Instruction-Following Model

  • LLaMA, Touvron, et al., LLaMA: Open and Efficient Foundation Language Models

Прочее

⭐ 100 вопросов про NLP

Список из 100 вопросов (по классическому и современному NLP, а также по большим языковым моделям) поможет вам структурировать свой процесс изучения NLP и подготовки к собеседованиям.

Чат по NLP

Русскоязычный чат по NLP в телеграм с 6000+ участниками, в котором:

  • Задают на вопросы (и иногда отвечают)

  • Публикуют новости

  • Анонсируют соревнования, семинары и конференции

  • Размещают вакансии

Компьютерное зрение

В данном разделе рассмотрим материалы по компьютерному зрению.

Компьютерное зрение объединяет под собой подходы к обработке и анализу изображений, где главная цель - научить компьютер воспринимать изображения как человек. Технологии на основе компьютерного зрения сейчас активно используются в промышленности, медицине, автомобильной и многих других отраслях.

Нейронные сети и компьютерное зрение

В этом курсе вы сделаете первые шаги в области компьютерного зрения с методами машинного обучения:

  • Нейрон и нейронная сеть

  • Строим первую нейронную сеть

  • Задачи, решаемые при помощи нейронных сетей

  • Методы оптимизации

  • Свёрточные нейронные сети

  • Регуляризация и нормализация

  • Метод максимального правдоподобия и большой финал

⭐ CS231n: Deep Learning for Computer Vision + Videos

Классический курс по CV от Стенфорда, не требующий представления:

  • Deep Learning Basics

  • Image Classification with Linear Classifiers

  • Regularization and Optimization

  • Neural Networks and Backpropagation

  • Image Classification with CNNs

  • CNN Architectures

  • Training Neural Networks

  • Recurrent Neural Networks

  • Attention and Transformers

  • Video Understanding

  • Object Detection and Image Segmentation

  • Visualizing and Understanding

  • Self-supervised Learning

  • Robot Learning

  • Generative Models

  • 3D Vision

EECS 442: Computer Vision + Videos

Вводный курс о компьютерном зрении.

Привожу названия тем на английском, чтобы не искажать терминологию переводом:

  • Image formation / projective geometry / lighting

  • Practical linear algebra

  • Image processing / descriptors

  • Image warping

  • Linear models + optimization

  • Neural networks

  • Applications of neural networks

  • Motion and flow

  • Single-view geometry

  • Multi-view geometry

  • Applications

Графовые нейронные сети

В данном разделе рассмотрим материалы по графовым нейронным сетям.

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

CS224W: Machine Learning with Graphs + Video

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

Graph Neural Networks

Вводный туториал по графовым нейронным сетям.

Graph Neural Networks for RecSys

Туториал по использованию графовых нейронных сетей в рекомендательных системах.

Обучение с подкреплением

В данном разделе рассмотрим материалы по обучению с подкреплением.

Обучение с подкреплением — это метод машинного обучения, при котором происходит обучение модели, которая не имеет сведений о системе, но имеет возможность производить какие-либо действия в ней. Действия переводят систему в новое состояние и модель получает от системы некоторое вознаграждение.

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

Spinning Up in Deep RL

Это образовательный ресурс, созданный OpenAI, который упрощает изучение глубокого обучения с подкреплением (deep RL).

Этот модуль содержит множество полезных ресурсов, в том числе:

  • Краткое введение в терминологию RL, виды алгоритмов и базовую теорию

  • Эссе о том, как стать исследователем в RL

  • Тщательно подобранный список важных статей, организованный по темам

  • Хорошо документированный репозиторий кода с короткими standalone реализациями ключевых алгоритмов

  • Несколько упражнений для разминки

? Deep Reinforcement Learning Course

Этот курс научит вас глубокому обучению с подкреплением от новичка до эксперта.

В этом курсе вы:

  • ? Изучите Deep Reinforcement Learning в теории и на практике.

  • ?‍? Научитесь использовать известные библиотеки Deep RL, такие как Stable Baselines3, RL Baselines3 Zoo, Sample Factory и CleanRL.

  • ? Обучите агентов в уникальных средах, таких как SnowballFight, Huggy the Doggo ?, VizDoom (Doom), а также в классических средах, таких как Space Invaders, PyBullet и других.

  • ? Поделитесь своими обученными агентами с помощью одной строки кода в Hub, а также загрузите мощные агенты от сообщества.

  • ? Примете участвуйте в соревнованиях, в которых вы будете сравнивать своих агентов с другими командами. Вы также сможете играть против агентов, которых будете обучать.

  • ? Получите сертификат об окончании, выполнив 80% заданий.

Reinforcement Learning Textbook

Современные алгоритмы глубокого обучения с подкреплением способны решать задачи искусственного интеллекта методом проб и ошибок без использования каких-либо априорных знаний о решаемой задаче.

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

Предполагается знакомство читателя с основами машинного обучения и глубокого обучения.

Рекомендательные системы

Рекомендательные системы являются довольно популярным направлением в ML и используются повсеместно, начиная от стриминговых сервисов и заканчивая маркетплейсами, то есть применяются там, где нужно порекомендовать покупателю/клиенту что-то на основании истории взаимодействия с системой всех ее пользователей.

Курсы

⭐ Your First RecSys

Ваша первая рекомендательная система с нуля
Ваша первая рекомендательная система с нуля

За 5 занятий вы разберетесь, как правильно поставить задачу, какие данные нужно собирать, освоите полезные приемы, попробуете популярные фреймворки для построения рекомендательных систем, создадите собственный прототип и узнаете, как довести его до продакшена:

  • Введение в рекомендательные системы

  • Методы валидации, метрики и бейзлайны

  • Фильтрация на основе контента и коллаборативная фильтрация

  • Градиентный бустинг на деревьях и задача ре-ранжирования

  • Более продвинутые методы анализа данных и моделей в рекомендациях

⭐ Your Second RecSys (продолжение Your First RecSys)

Продвинутая рекомендательная система
Продвинутая рекомендательная система

На этом курсе более подробно затрагиваются проблемы оценки эффекта влияния рекомендательной модели на продукт и способы измерения этого влияния, строится production система (от файла в ноутбуке до real-time микросервисной архитектуры), и используются более сложные модели, а именно: двухуровневые и нейросетевые.
Вас ждут лекции от разных экспертов, примеры с кодом и соревнование на реальных данных в конце курса:

  1. Your first money / experiment

    • Бизнес-эффект от рекомендаций

    • Дополнительные методы оценки качества рекомендаций

  2. Your first prod

    • Рекомендации в production

    • Ускорение рекомендаций в production

  3. Your second model

    • Двухэтапная модель

    • Нейросетевая матричная факторизация и DSSM

Рекомендательные системы

Цель курса — обеспечить всестороннее введение в область рекомендательных систем:

  • Первая часть курса посвящена общим подходам RecSys

  • Во второй части кратко рассказывается о многоруких бандитах и контрфактической оценке.

Книги

⭐ К. Фальк. Рекомендательные системы на практике / Practical Recommender Systems by Kim Falk

Книга "Рекомендательные системы на практике"
Книга "Рекомендательные системы на практике"

В данной книге объясняется, как работают рекомендательные системы:

  • Поймете, как собирать пользовательские данные и создавать персонализированные рекомендации.

  • Узнаете, как использовать самые популярные алгоритмы рекомендаций.

  • Увидите их примеры в действии на таких сайтах, как Amazon и Netflix.

  • Рассмотрите проблемы масштабирования и другие проблемы, с которыми вы можете столкнуться на практике.

Personalized Machine Learning by Julian McAuley

Personalized Machine Learning
Personalized Machine Learning

Довольно большой раздел этой книги (страницы 79-214) посвящен рекомендательным системам, поэтому я решил ее порекомендовать.

Разное

Рекомендательные системы в Учебнике по машинному обучению от ШАД

Recommenders

Recommenders
Recommenders

Этот репозиторий содержит примеры и лучшие практики по созданию систем рекомендаций, представленные в виде Jupyter notebooks. В примерах подробно описана информация по пяти ключевым задачам:

⭐ Рекомендательные системы

Машинное обучение. Рекомендательные системы
Машинное обучение. Рекомендательные системы

Лекция К.В. Воронцова про коллаборативную фильтрацию и матричные разложения.

Рекомендательные системы: идеи, подходы, задачи

Рекомендация похожих фильмов - одно из самых популярных применений рекомендательных систем
Рекомендация похожих фильмов - одно из самых популярных применений рекомендательных систем

Подробная статья на Хабре, которая поможет разобраться в рекомендательных системах.

Временные ряды

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

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

Временные ряды

Пример временного ряда
Пример временного ряда

Статья по временным рядам из учебника по машинному обучению от ШАД, в которой сначала вводится понятие временных рядов и приводятся примеры, а затем рассказывается о сведении задачи предсказания временного ряда к задаче регрессии. Заканчивается статья разделом о декомпозиции временных рядов.

⭐ Topic 9. Time Series Analysis with Python

В Open Machine Learning Course, про который мы говорили во второй статье есть 9 глава, посвященная анализу временных рядов.

В ней рассказывается как с ними работать в Python, какие возможные методы и модели можно использовать для прогнозирования; что такое двойное и тройное экспоненциальное взвешивание; что делать, если стационарность — это не про вас; как построить SARIMA и не умереть; и как прогнозировать xgboost-ом.

Прогнозирование временных рядов

Лекция К.В. Воронцова про временные ряды.

Time Series

Вводный курс от Kaggle Learn по временным рядам.

Forecasting time series with gradient boosting: Skforecast, XGBoost, LightGBM, Scikit-learn and CatBoost by Joaquín Amat Rodrigo, Javier Escobar Ortiz

В этом гайде показано как использовать методы библиотеки skforecast для прогнозирования временных рядов с использованием моделей из библиотек XGBoost, LightGBM, Scikit-learn и CatBoost.

Груздев А.В., Рафферти Г. Прогнозирование временных рядов с помощью Prophet, sktime, ETNA и Greykite paid

Прогнозирование – одна из задач науки о данных, которая является центральной для многих видов деятельности внутри организации. Книга посвящена популярным библиотекам прогнозирования временных рядов Prophet, Sktime, ETNA и Greykite. Разбирается математический аппарат и API каждой библиотеки. Показаны примеры решения задач прогнозирования, классификации и кластеризации временных рядов, проиллюстрированы темы конструирования и отбора признаков для временных рядов.
В качестве примеров прогнозирования используются данные из самых разных областей – уровень углекислого газа в атмосфере, циклы солнечных пятен, количество местных осадков, число лайков в популярных соцсетях и др. Издание будет интересно специалистам по data science, регулярно решающим задачи с временными рядами.

У себя в telegram автор дополнительно предлагает "Прикладной анализ временных рядов в Python в 4 томах", в котором в дополнении к данной книге есть еще набор материалов "Классика бессмертна" (предварительный анализ ряда, простые модели, конструирование признаков, стратегии валидации, AR, MA, (S)ARIMA(X), ETS, VAR, TBATS/BATS, градиентный бустинг, кластеризация рядов, иерархические ряды). 1200-страничное пособие".

Big Data

Данное направление немного выбивается из подборки, потому что характеризует не задачу, которую мы решаем, а инструмент, с помощью которого мы это делаем, но так как компании, имеющие в своем распоряжении большое количество данных, часто требуют знания этих инструментов (а именно, Spark), и спрашивают про них на собеседованиях, я решил включить этот раздел в статью.

Анализируем данные с помощью фреймворка Spark от VK

Отличное поверхностное руководство по пользованию API Spark.

Знакомство с Apache Spark от DataLearn

В 7-ом модуле курса Введение в Инжиниринг Данных и Аналитику происходит знакомство с open source решением для аналитики и инжиниринга данных - Apache Spark и его коммерческой версией Databricks и аналогами Amazon Glue и Azure Synapse. Вы узнаете о примерах использования Spark в индустрии и популярные use cases. Автор расскажет о своем опыте с Apache Spark в Amazon и Microsoft и научит вас работать с данными с помощью PySpark и Spark SQL, а также поделится лучшими книгами и материалы по этой теме.

  1. Введение

  2. Что такое Apache Spark

  3. Начало работы в Apache Spark

  4. Знакомство с Spark API

  5. Spark SQL и операции в Spark

⭐ Перрен Ж.Ж. Spark в действии / Spark in Action by Jean-Georges Perrin

Анализ корпоративных данных начинается с чтения, фильтрации и объединения файлов и потоков из многих источников. Механизм обработки данных Spark способен обрабатывать эти разнообразные объемы информации как признанный лидер в этой области, обеспечивая в 100 раз большую скорость, чем например Hadoop. Благодаря поддержке SQL, интуитивно понятному интерфейсу и простому и ясному многоязыковому API вы можете использовать Spark без глубокого изучения новой сложной экосистемы.

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

Learning Spark by Jules S. Damji, Brooke Wenig, Tathagata Das & Denny Lee

В этой книге предлагается структурированный подход к изучению Apache Spark, охватывающий новые разработки в проекте.

⭐ Data Analysis with Python and PySpark by Jonathan Rioux

Это ваш путеводитель по реализации успешных проектов обработки данных на основе Python. Эта практическая книга, наполненная соответствующими примерами и методами, научит вас создавать пайплайны для формирования отчетов, машинного обучения и других задач. Упражнения в каждой главе помогут вам попрактиковаться в изученном и быстро начать использовать PySpark.

Подведем итоги

Если вы еще не читали, то рекомендую прочитать блоки Learning How to Learn и Подведем итоги из первой статьи, так как все сказанное там применимо и для подготовки к секции по специализированному машинному обучению.

Собранные в этой статье материалы будут полезны при подготовке к собеседованиям на различные позиции в Big Data МегаФон.

А если вы только начинаете свою карьеру в Data Science, то обратите внимание на стажировки в крупных компаниях, на которых вы сможете не только прокачать свои знания, но также получить крутой опыт применения теории на практических задачах бизнеса. В МегаФоне пример такой стажировки - это акселератор (пишите на почту с темой письма "стажировка в big data"), с помощью которого ежегодно находят свою первую работу специалисты по работе с данными (Data Scientists), аналитики (Data Analysts) и дата инженеры (Data Engineers).

Что дальше?

В следующей статье разберем материалы для подготовки к дизайну систем машинного обучения.

Актуальные ресурсы для этой серии статей вы сможете найти в репозитории Data Science Resources, который будет поддерживаться и обновляться. В этот раз в репозиторий выложено больше материалов, чем попало в эту статью (потому что их очень много), поэтому советую зайти туда и найти то, что вам нужно.

Также вы можете подписаться на мой телеграм-канал Data Science Weekly, в котором я каждую неделю делюсь интересными и полезными материалами.

Если вы знаете какие-нибудь классные ресурсы, которые я не включил в этот список, то прошу написать о них в комментариях.

P.S. Благодарю Дарью Шатько за редактуру и вычитку этого поста!

Комментарии (2)


  1. vova_sam
    20.04.2024 18:06

    Артем, я еще задачи по алгоритмам не решил. Еще год точно решать ...


    у вас очень повышенные требования к датасантистам: и алгоритмист, и оптимизатор, и математик, и сисадмин, и архитектор, и специалист по БД и многое другое. Это плюсом к непосредственно специалисту по ML :) В мегафон резюме высылать не буду.

    Но спасибо за статьи: обещаю все изучить!!!


    1. Extremesarova Автор
      20.04.2024 18:06

      Я просто предлагаю материалы, которые можно использовать для изучения Data Science и подготовки к собеседованиям.

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