Артём Попов
Natural Language Processing

»
О курсе
Основная задача курса — познакомить слушателей с постановками задач, специфичных для области обработки текстов (natural language processing, NLP), и рассказать актуальные подходы к их решению.

В курсе будут рассмотрены, как и современные подходы к обработке текстов, так и классические методы,
не утратившие актуальность. Большое внимание будет уделено моделям векторизации слов и предложений (например, word2vec, fasttext) и моделям переноса обучения (например, BERT, RoBERTa). Будут подробно рассмотрены задачи разметки последовательности (sequence tagging)
и генерации естественного языка (language generation).

Практические задания будут посвящены решению рассмотренных на лекциях прикладных задач при помощи языка Python и библиотеки pytorch. Также, каждому студенту предстоит выбрать тему и сделать по ней небольшой проект, посвящённый NLP.


»
Команда курса
Артём Попов
Лектор

»
Программа
1. Вводная лекция. Этапы решения NLP задачи
  • Обзор области NLP, её отличия от других областей.
  • Обзор прикладных задач в области NLP.
  • Основные этапы предобработки текстов: токенизация, фильтрация, нормализация. Регулярные выражения. Выделение коллокаций и n-грам.
  • Простейшие признаковые представления текста. Модели мешка слов (Bag of Words) и TF-IDF.
  • Линейные модели для классификации текстов.
2. Векторные представления слов (word embeddings)
  • Модель дистрибутивной семантики.

  • Count-based подходы построения представлений: SVD разложение, Glove.

  • Prediction-based подходы построения представлений: CBOW и Skip-gram.

  • Ускорение обучения моделей: иерархический мягкий максимум (hierarchical softmax) и негативное семплирование (negative sampling).

  • Построение представлений для новых слов. Генерализация обученных представлений. Модель FastText.

  • Оценивание качества моделей и их интерпретация.
3. Разметка последовательности (sequence tagging)
  • Постановка задачи и примеры приложений.
  • Модель рекуррентной нейронной сети (recurrent neural network, RNN). Взрыв и затухание градиентов. Способы борьбы с ними.
  • Модификации RNN: LSTM и GRU.
  • Модель Self-Attention. Позиционные представления. Модель кодировщика трансформера (transformer encoder).
  • Применение RNN и Transformer для разметки последовательности
4. Структурированное обучение при разметке последовательности
  • Проблема независимости предсказаний отдельных элементов.
  • Линейная модель условных случайных полей (linear CRF).
  • Алгоритм Витерби для вычисления оптимальной разметки.
  • Алгоритм Forward-Backward для обучения модели.
  • Совместное использование linear CRF и нейросетевых моделей.
5. Языковое моделирование (language modelling)
  • Постановка задачи и примеры приложений.

  • Частотные языковые модели. Сглаживание Лапласа, откат последовательности, интерполяционное сглаживание.

  • Применение языковых моделей для исправления опечаток.

  • Нейросетевые языковые модели на основе RNN и Transformer. Декодер трансформера (transformer decoder).

  • Семейство моделей GPT. Алгоритм Byte Pair Encoding.

  • Приложения GPT. Zero-shot learning. One-shot learning.

6. Перенос обучения (transfer learning)
  • Языковые модели для переноса обучения. ELMo. ULMFiT.

  • Модель BERT. Обучение модели на задачах masked language modeling и next sentence prediction.

  • Модификации и вариации модели BERT. RoBERTa, ALBERT и другие.
7. Генерация естественного языка
  • Примеры задач генерации языка: автодополнение, машинный перевод.

  • Подход sequence-to-sequence. Механизм внимания.

  • Модель Transformer для машинного перевода. Собираем вместе энкодер и декодер.

  • Авторегрессионная генерация текста. Эвристики при генерации: изменение температуры, topK и topP сэмплирования.

  • Лучевой поиск (beam search) при генерации текста.
8. Классификация текстов.
  • Практические приложения задачи классификации.

  • Обзор энкодеров текста: paragraph2vec, universal sentence encoder и другие. Модель классификации FastText.

  • Классификация с использованием RNN и Transformer.

  • Свёрточные нейронные сети для классификации текстов.

  • Аугментация текстов.
9. Вопросно-ответные и диалоговые системы
  • Retrieval-based и generative-based диалоговые системы.

  • Задачи определения интента и заполнения слотов.

  • Вычисление близости между запросом и ответом. Сиамские сети (siamese networks).

  • IR-based и KB-based вопросно-ответные системы.

  • Модель DRQA. Применение BERT для построения вопросно-ответной системы.
10. Тематическое моделирование
  • Постановка задачи тематического моделирования и обзор применений.

  • Модель PLSA. Обучение модели PLSA с использованием EM-алгоритма.

  • Регуляризация модели PLSA. Сглаживание и разреживание тем модели. Подход аддитивной регуляризации моделей (ARTM).

  • Байесовские тематические модели. Модель LDA.
11. Автоматическая суммаризация текстов
  • Постановка задачи суммаризации. Extractive и abstractive подходы.

  • Алгоритм TextRank и его модификации для extractive суммаризации. Нейросетевые модели extractive суммаризации.

  • Механизм копирования при abstractive суммаризации. Модель Pointer Generator Network. Использование языковых моделей для суммаризации текстов.
12. Синтаксический разбор и его приложения
  • Модели построения разбора предложений: грамматика составляющих (constituency) и грамматика зависимостей (dependency).

  • Грамматика составляющих. Использование грамматики составляющих для построения перифразов.

  • Грамматика зависимостей. Два подхода к построению дерева зависимостей: graph-based и transition-based.

  • Применение синтаксического разбора для анализа тональности отдельных сущностей в предложении и извлечения информации.
13. Бонусная лекция
  • На последней лекции разберу любую тему из мира NLP по выбору студентов или сделаю краткий обзор последних трендов в области.