- BrainTools - https://www.braintools.ru -
Привет! Это Данила Ляпин, наставник курса «Специалист по Data Science» [1]. Собрал подборку материалов по обработке естественного языка — она охватывает путь от базовых концепций NLP до трансформеров и BERT. Все материалы бесплатны и проверены на практике. Главное — двигаться последовательно, не пропускать основы и обязательно практиковаться на реальных задачах.

Полноценный курс от Школы анализа данных Яндекса. Репозиторий на GitHub содержит записи лекций, материалы семинаров, домашние задания и практические проекты. Материалы в основном на английском языке. Часто рекомендуется как один из лучших бесплатных ресурсов для тех, кто хочет стать дата-сайентистом самостоятельно. [2]
Перейти → [2]

Англоязычный курс от Елены Войты, исследователя и преподавателя ШАД. Это расширенная версия её курса для Школы анализа данных, адаптированная для самостоятельного изучения. Материалы организованы как лекции-блоги с визуализациями и интерактивными элементами для лучшего понимания. Сложные концепции объясняются доступным языком, можно выбирать темы и двигаться в своём темпе.
Перейти → [3]

Вводная статья для тех, кто начинает работать с текстовыми данными. Разбирает семь базовых тем NLP: токенизацию (по предложениям и словам), лемматизацию и стемминг, обработку стоп-слов, регулярные выражения, Bag of Words и TF-IDF.
Все примеры реализованы с помощью библиотеки NLTK с готовым кодом на Python. Статья показывает не только теорию, но и практическое применение — как извлекать признаки из текста и готовить данные для алгоритмов машинного обучения [4].
Перейти → [5]

Практический туториал по классификации текстов на примере анализа тональности кинорецензий. Вы скачиваете датасет и вместе с автором проходите полный путь работы с текстовыми данными: загрузку датасета (2000 отзывов на фильмы), предобработку с помощью регулярных выражений и лемматизации через NLTK, преобразование текста в числовые признаки методами Bag of Words и TF-IDF. Затем обучете модель и оцениваете её с использованием различных метрик.
Перейти → [6]

Статья объясняет концепцию word embeddings через простую аналогию. Сначала автор показывает, как можно представить личность человека в виде вектора из пяти характеристик психологического теста, и как измерять схожесть между людьми. Затем эта идея переносится на слова.
Word2Vec создаёт векторные представления слов так, что семантически близкие слова оказываются рядом в векторном пространстве. Это позволяет выполнять арифметические операции со смыслами: король – мужчина + женщина ≈ королева.
Читать на Хабре на русском [7] → [8]
Читать в оригинале на английском → [8]

Классическая статья с наглядными диаграммами объясняет, почему обычные рекуррентные сети плохо работают с долгими зависимостями в данных. Например, чтобы правильно выбрать форму глагола в конце предложения, нужно помнить про подлежащее из его начала.
LSTM (Long Short-Term Memory) решает эту проблему через систему фильтров, или гейтов (gates): Forget gate — решает, какую информацию забыть, Input gate — определяет, что добавить в память [9], Output gate — контролирует, что передать дальше. Статья разбирает каждый компонент на примере языковой модели, которая предсказывает следующее слово в предложении. [10]
Перейти → [10]
Читать на Хабре на русском → [11]

Раздел из учебника Яндекс Образования про нейросети для работы с текстом и другими последовательными данными. Объясняет, как представлять слова в виде векторов (word embeddings), разбирает рекуррентные сети и их модификации для работы с долгими зависимостями, рассказывает про архитектуру энкодер-декодер для машинного перевода и механизм внимания [12]. Также покрывает практические аспекты: как готовить тексты и увеличить количество данных в обучающей выборке.
Перейти → [13]

Оригинальная статья, которая представила архитектуру Transformer. До этого для работы с текстом использовали рекуррентные сети, которые обрабатывали слова последовательно, одно за другим. Авторы предложили новый подход — механизм attention, который позволяет модели смотреть на все слова в предложении одновременно и понимать связи между ними. Это делает обучение быстрее, потому что вычисления можно распараллелить.
Авторы описывают устройство Transformer, а также делятся результатами экспериментов. Результаты на машинном переводе показали, что модель обучается быстрее и достигает лучшего качества, чем предыдущие подходы. Эта архитектура стала основой для BERT, GPT и других современных языковых моделей.
Перейти → [14]

Разбор архитектуры Transformer на русском языке. Автор объясняет, почему рекуррентные сети были неудобны и как механизм self-attention это решает. Разбирает суть идеи attention, в частности говорит про три ключевые матрицы Query, Key и Value, которые помогают определить связи между словами и их важность для предсказания.
Перейти → [15]

Раздел из учебника по машинному обучению. Объясняет, почему трансформеры пришли на смену рекуррентным сетям, разбирает их устройство и показывает разницу между BERT и GPT. Также рассказывает про применение трансформеров за пределами NLP — в компьютерном зрении [16] (ViT) и генерации изображений (DALL-E).
Перейти → [17]
Две лекции про архитектуру Transformer и её вариации. В первой лекции Григорий Сапунов объясняет, чем трансформеры отличаются от традиционных архитектур (вроде рекуррентных сетей) и какие модели на их основе появились за последние годы. Во второй лекции углубляется в детали: как устроены трансформеры изнутри, чем они отличаются и что там можно менять.

Иллюстрированная статья о том, как изменился подход к обработке текста. Раньше каждое слово имело одно векторное представление независимо от контекста. ELMo научился создавать разные представления для одного слова в зависимости от его использования в предложении.
BERT пошёл дальше: его можно предобучить на больших объёмах текста, а потом дообучить для вашей конкретной задачи — это называется трансферным обучением. Статья объясняет, почему этот подход стал прорывом в NLP, и показывает примеры использования BERT.
Читать на Хабре на русском → [20]
Читать оригинал на английском → [21]

Оригинальная статья про BERT от исследователей Google. До этого языковые модели читали текст только слева направо, что ограничивало их понимание контекста. BERT использует bidirectional Transformer — модель видит слова и слева, и справа одновременно, что даёт более глубокое понимание текста.
Статья описывает двухэтапный подход: сначала модель предобучается на огромных объёмах текста из Wikipedia и BookCorpus, выполняя две задачи — угадывать замаскированные слова и определять, следует ли одно предложение за другим. Затем эту предобученную модель можно быстро адаптировать под конкретную задачу, добавив задаче-специфичный выходной слой. Авторы демонстрируют результаты 11 разных NLP-задач.
Перейти → [22]

Простое руководство по использованию одной из версий BERT’а для классификации предложений. Пример одновременно и достаточно простой для первого знакомства с моделью, и достаточно продвинутый для того, чтобы продемонстрировать ключевые концепты. К статье прилагается Jupyter-ноутбук, который можно запустить в Google Colab.
Читать на Хабре на русском [23] → [24]
Читать оригинал на английском → [24]

Краткий туториал по работе с многоязычной версией BERT. Сначала автор объясняет базовые концепции: что такое BERT, зачем нужны эмбеддинги и как BERT обучается. Затем показывает, как запустить нейросеть локально или прямо в браузере. Дальше он предлагает на примере кода рассмотреть два режима работы: предсказание пропущенных слов и определение логичности между двумя последовательными предложениями. [25]
Перейти → [25]

Большинство рабочих процессов машинного обучения включают работу с данными, создание моделей, оптимизацию параметров и сохранение обученных моделей. Этот учебник знакомит вас с полным рабочим процессом ML, реализованным в PyTorch, со ссылками, чтобы узнать больше о каждом из понятий.
Темы по порядку: тензоры, наборы данных и загрузчики данных, трансформация, построение модели, автоматическая дифференциация, цикл оптимизаций, а также сохранение, загрузка и использование модели. Предполагается, что вы уже базово знакомы с Python и концепциями глубокого обучения. [26]
Перейти → [26]

Продвинутый туториал по оптимизации обучения через smart batching. Стандартный подход — делать все последовательности одинаковой длины через padding, что расточительно. Smart batching группирует тексты похожей длины в батчи и добавляет padding только до максимальной длины внутри батча.
Туториал показывает полный процесс: загрузку датасета, токенизацию текстов, создание батчей переменной длины, дообучение предобученной модели и оценку результатов. Таким образом можно ускорить обучение без потери точности. [27]
Перейти → [27]
Автор: Danila_Ly
Источник [28]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/25058
URLs in this post:
[1] «Специалист по Data Science»: https://practicum.yandex.ru/data-scientist/?utm_source=content&utm_medium=media&utm_campaign=habr_media_RF_Data_dataSc_b2c_Article_None_text-ml&utm_content=2-02-26
[2] .: https://github.com/yandexdataschool/nlp_course
[3] Перейти →: https://lena-voita.github.io/nlp_course.html
[4] обучения: http://www.braintools.ru/article/5125
[5] Перейти →: https://habr.com/ru/companies/Voximplant/articles/446738/
[6] Перейти →: https://stackabuse.com/text-classification-with-python-and-scikit-learn/
[7] Читать на Хабре на русском: https://habr.com/ru/articles/446530/
[8] →: https://jalammar.github.io/illustrated-word2vec/
[9] память: http://www.braintools.ru/article/4140
[10] .: https://colah.github.io/posts/2015-08-Understanding-LSTMs/
[11] Читать на Хабре на русском →: https://habr.ru/ru/companies/wunderfund/articles/331310/
[12] внимания: http://www.braintools.ru/article/7595
[13] Перейти →: https://education.yandex.ru/handbook/ml/article/nejroseti-dlya-raboty-s-posledovatelnostyami#word-embeddings
[14] Перейти →: https://arxiv.org/html/1706.03762
[15] Перейти →: https://habr.com/ru/articles/781770/
[16] зрении: http://www.braintools.ru/article/6238
[17] Перейти →: https://education.yandex.ru/handbook/ml/article/transformery
[18] Смотреть первую часть →: https://www.youtube.com/watch?v=KZ9NXYcXVBY
[19] Смотреть вторую часть → : https://www.youtube.com/watch?v=7e4LxIVENZA
[20] Читать на Хабре на русском →: https://habr.com/ru/articles/487358/
[21] Читать оригинал на английском →: https://jalammar.github.io/illustrated-bert/
[22] Перейти →: https://arxiv.org/pdf/1810.04805
[23] Читать на Хабре на русском: https://habr.com/ru/articles/498144/
[24] →: http://jalammar.github.io/a-visual-guide-to-using-bert-for-the-first-time/
[25] .: https://habr.com/ru/post/436878/
[26] .: https://colab.research.google.com/drive/1SBha91u6142pW5mSiQOOjJWCCSAFj4HI?usp=sharing
[27] .: https://colab.research.google.com/drive/1Er23iD96x_SzmRG8md1kVggbmz0su_Q5#scrollTo=Y-RBPRl43usv
[28] Источник: https://habr.com/ru/companies/yandex_praktikum/articles/986742/?utm_campaign=986742&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.