Self-Attention, Transformer, и BERT - Последние Инновации в Обработке Естественного Языка
Report by Gereltuya Bayanmunkh |
---|
Group 22.М08-мм, Program “Artificial Intelligence and Data Science” |
St. Petersburg State University |
1. Введение
Модели, основанные на Attention и Self-attention, являются наиболее влиятельными инновациями последнего десятилетия в области обработки естественного языка (NLP). Благодаря высокой популярности его применения для генерация человекоподобного текста, преобразования текста в изображение и диалоговых чат-ботов эти модели сделали NLP наиболее активной областью исследований в области искусственного интеллекта. В этом докладе мы узнаем, почему последние инновации в области NLP имеют значение, и что делает Self-Attention, Transformer и BERT самыми важными инновациями NLP нашего времени.
2. Что такое обработка естественного языка?
Обработка естественного языка — это междисциплинарная область лингвистики, компьютерных наук и искусственного интеллекта, целью которой является создание машин, способных обрабатывать и анализировать данные, напоминающие человеческий язык в том, как он пишется, произносится и организуется.
NLP, развившееся из компьютерной лингвистики в 1950-х годах, можно разделить на три эпохи в зависимости от временных рамок и используемых подходов. Этими эпохами являются символическое, существовавшее с 1950-х по 1990-е годы; статистическое, существовавшее с 1990-х по 2010-е годы; и нейронное, существующее сейчас. Одной из самых важных моделей из предыдущих эпох в NLP считается Eliza, модель, которая была разработана в середине 1960-х годов, чтобы попытаться решить тест Тьюринга с использованием сопоставления с образцом и ряда правил без кодирования контекста языка.
По исследовательским целям можно разделить NLP на две пересекающиеся подобласти: понимание естественного языка (NLU), которое фокусируется на семантическом анализе или определении предполагаемого значения текста, и генерация естественного языка (NLG), которая фокусируется на генерации текста с помощью машина.
3. Для чего используется обработка естественного языка?
NLP используется для решения широкого круга языковых задач, включая ответы на вопросы, общение с людьми, классификацию текста различными способами. Ниже приведены 11 более конкретных задач, для которых используется NLP:
-
Анализ тональности (Sentiment analysis) — это процесс классификации эмоциональной направленности текста. Входными данными для модели классификации тональности является фрагмент текста, а выходными данными является вероятность того, что выраженная тональность будет положительной, отрицательной или нейтральной. Эта вероятность основана либо на функциях, сгенерированных вручную, либо на статистических методах, таких как словесные n-граммы, функции TF-IDF, либо на использовании нейронных методов для захвата последовательных долгосрочных и краткосрочных зависимостей.
-
Классификация токсичности (Toxicity classification) — это подзадача анализа тональности с целью классифицировать ввод текста с враждебными намерениями на угрозы, оскорбления, непристойности, ненависть к определенным личностям и т. д.
-
Машинный перевод (Machine translation) — это задача по автоматизации перевода между разными языками. Входными данными для такой модели является текст на указанном исходном языке, а выходными данными является текст на указанном целевом языке. Эффективные подходы к машинному переводу позволяют различать слова со схожими значениями и выполнять идентификацию языка.
-
Распознавание именованных сущностей (Named Entity Recognition или NER) — это задача, целью которой является выделение сущностей в фрагменте текста по предопределенным категориям, таким как личные имена, организации, местоположения и количества. Входными данными для такой модели является текст, а выходными данными являются различные именованные объекты вместе с их начальным и конечным положениями.
-
Обнаружение спама (Spam detection) — это задача, целью которой является классифицировать электронные письма как спам или нет. Детекторы спама принимают в качестве входных данных текст электронного письма вместе с различными другими подтекстами, такими как заголовок и имя отправителя. Они нацелены на вывод вероятности того, что почта является спамом.
-
Исправление грамматических ошибок (Grammatical error correction) — это задача, направленная на исправление грамматики в тексте путем кодирования грамматических правил. Это рассматривается в основном как задача от последовательности к последовательности, где модель обучается на неграмматическом предложении в качестве входных данных и правильном предложении в качестве выходных данных.
-
Тематическое моделирование (Topic modelling) — это неконтролируемая задача анализа текста, которая берет корпус документов и обнаруживает абстрактные темы в этом корпусе. Входными данными для тематической модели является набор документов, а выходными данными является список тем, который определяет слова для каждой темы, а также пропорции назначения каждой темы в документе. Скрытое распределение Дирихле (LDA), один из самых популярных методов моделирования темы, пытается рассматривать документ как набор тем, а тему как набор слов.
-
Генерация текста (Text generation или NLG) — это задача по генерацию текста, похожего на текст, написанный человеком. Такие модели можно настроить для создания текста в разных жанрах и форматах, включая твиты, блоги и даже компьютерный код. Генерация текста выполнялась с использованием марковских процессов, LSTM, BERT, GPT-2, LaMDA и других подходов.
-
Информационный поиск (Information retrieval) — это задача, целью которой является поиск документов, наиболее релевантных запросу. Цель состоит не в том, чтобы ответить на конкретный запрос, а в том, чтобы извлечь из коллекции документов, число которых может исчисляться миллионами, набор, наиболее соответствующий запросу. Системы поиска документов в основном выполняют два процесса: индексирование и сопоставление. В большинстве современных систем индексация выполняется с помощью модели векторного пространства через сети с двумя башнями, а сопоставление выполняется с использованием оценок сходства или расстояния.
-
Обобщение (Summarization) — это задача сокращения текста для выделения наиболее важной информации. Задание разделено на два класса методов: экстрактивное обобщение, которое фокусируется на извлечении наиболее важных предложений из длинного текста и объединении их для формирования резюме, и абстрактное обобщение, которое создает резюме путем перефразирования.
-
Ответ на вопрос (Question answering) — это задача, связанная с ответами на вопросы, заданные людьми на естественном языке. Задания на ответы на вопросы делятся на множественный выбор, который включает в себя конечные варианты выбора; и открытую область, которая не включает возможные варианты ответа.
NLP можно использовать для решения этих задач, и сейчас его решения все больше внедряются в нашу повседневную жизнь с помощью различных технологий, включая поисковые системы, социальные сети, интернет-магазины, устройства умного дома, поддержку клиентов. Таким образом, инновации в области NLP и их характеристики, включая их эффективность, этичность, предвзятость и достоверность, действительно имеют значение.
4. Как работает обработка естественного языка?
Модели NLP работают, находя отношения между буквами, словами, предложениями и т. д., найденными в текстовом наборе данных. В архитектурах NLP используются различные методы предварительной обработки данных, выделения признаков и моделирования. Наиболее распространены следующие:
-
Предварительная обработка данных (Data preprocessing): прежде чем модель обработает текст для конкретной задачи, текст необходимо предварительно обработать, чтобы преобразовать слова и символы в формат, понятный модели или улучшить производительность модели. Методы, обычно используемые для предварительной обработки данных, включают следующие:
-
Стемминг (Stemming), процесс преобразования слов в их базовые формы с использованием эвристических правил;
-
Лемматизация (Lemmatization), процесс поиска корней путем анализа морфологии слова с использованием словаря из словаря;
-
Сегментация предложений (Sentence segmentation), процесс разбиения большого фрагмента текста на лингвистически значимые предложения;
-
Удаление стоп-слов (Stop word removal), процесс удаления наиболее часто встречающихся слов, которые не добавляют много информации в текст;
-
Токенизация (Tokenization), процесс разбиения текста на отдельные слова и фрагменты слов.
-
-
Извлечение признаков (Feature extraction): традиционные методы машинного обучения работают с признаками — числами, описывающими документ по отношению к содержащему его корпусу — созданными с помощью Bag-of-Words, TF-IDF или разработки общих признаков документа. Более современные методы включают Word2Vec, GLoVE и изучение признаков в процессе обучения нейронной сети.
-
Мещок слов (Bag-of-Words), метод подсчета количества раз, которое каждое слово или n-грамма (комбинация n слов) появляется в документе;
-
TF-IDF, метод взвешивания каждого слова по его важности, где Частота термина (Term Frequency или TF) определяет, насколько важным является слово в документе, а Обратная частота документа (Inverse Document Frequency или IDF) определяет, насколько важным является термин во всем корпусе;
-
Word2Vec, обычная нейронная сеть для изучения многомерных вложений слов из необработанного текста, которая существует в двух вариантах: Skip-Gram, который предсказывает окружающие слова с учетом целевого слова, и Continuous Bag-of-Words (CBOW), который предсказывает целевое слово из окружающих слов;
-
GLoVE, алгоритм который изучает встраивание слов, используя методы матричной факторизации, а не нейронное обучение;
-
-
Моделирование (Modelling): после предварительной обработки данных они передаются в архитектуру NLP, которая моделирует данные для выполнения различных задач. Цель Языковой модели (Language models) состоит в том, чтобы предсказать следующее слово при наличии потока входных слов.
Следуя вышеперечисленным шагам, техники моделирования в области NLP можно разделить на следующие две категории в зависимости от того, какие подходы используются: Традиционные методы машинного обучения и Методы глубокого обучения.
-
Традиционные методы машинного обучения включают:
-
Логистическая регрессия (Logistic regression) — это контролируемый алгоритм классификации, целью которого является прогнозирование вероятности того, что событие произойдет на основе некоторых входных данных. В NLP модели логистической регрессии могут применяться для решения таких задач, как анализ тональности, обнаружение спама и классификация токсичности.
-
Наивный байесовский (Naive Bayes) — это контролируемый алгоритм классификации, который находит условное распределение вероятностей с помощью формулы Байеса и предсказывает на основе того, какое совместное распределение имеет наибольшую вероятность. Наивное предположение в наивной байесовской модели состоит в том, что отдельные слова независимы. В NLP такие статистические методы могут применяться для решения таких задач, как обнаружение спама или поиск ошибок в программном коде.
-
Деревья решений (Decision tree) — это класс контролируемых моделей классификации, которые разбивают набор данных на основе различных признаков, чтобы максимизировать получение информации в этих разбиениях.
-
Скрытое распределение Дирихле (Latent Dirichlet Allocation или LDA) — это модель, используемая для тематического моделирования. LDA подходит к документу как к набору тем, а к теме — как к набору слов.
-
Скрытые марковские модели (Hidden Markov models или HMM) — это метод вероятностного моделирования, основанный на марковских моделях — вероятностных моделях, которые определяют следующее состояние системы на основе текущего состояния. HMM вводят скрытое состояние — свойство данных, которое напрямую не наблюдается, и вероятность эмиссии — вероятность наблюдения при скрытом состоянии. HMM используются для Маркировки частей речи (Part-of-speech tagging или POS).
-
-
Методы глубокого обучения включают:
-
Сверточная нейронная сеть (Convolutional neural network или CNN): Представленная в 2014 году, основная интуиция CNN для NLP, заключается в том, чтобы рассматривать документ как изображение. Однако вместо пикселей входными данными являются предложения или документы, представленные в виде матрицы слов.
-
Рекуррентная нейронная сеть (Recurrent Neural Network или RNN): Представленная в 2014 году, RNN с LSTM/GRU запоминает предыдущую информацию, используя скрытые состояния, и связывает ее с текущей задачей. Архитектуры, известные как Gated Recurrent Unit (GRU) и Долговременная кратковременная память (Long short-term memory или LSTM), представляют собой типы RNN, предназначенные для запоминания информации в течение длительного периода. Двунаправленный LSTM/GRU хранит контекстную информацию в обоих направлениях, что полезно при классификации текста.
-
Автоэнкодеры (Autoencoders): Представленные как концепции в 1980-х годах, эти кодеры-декодеры аппроксимируют отображение от ввода к выводу. Сначала они сжимают входные данные в низкоразмерное представление и учатся реконструировать входные данные, а затем вектор представления можно использовать в качестве входных данных для отдельной модели.
-
Кодер-декодер от последовательности к последовательности (Encoder-decoder sequence-to-sequence или Seq2seq): Представленная в 2014 году архитектура Seq2seq представляет собой адаптацию к автокодерам, которая выводит данные, отличные от входных, специализированные для перевода, суммирования и подобных задач. Кодер инкапсулирует информацию в тексте в закодированный вектор.
-
Преобразователь (Transformer): Представленная в 2017 году эта модельная архитектура отказывается от повторения и вместо этого полностью полагается на механизм Self-attention для построения глобальных зависимостей между вводом и выводом. Поскольку этот механизм обрабатывает все слова сразу, а не по одному, это снижает скорость обучения и стоимость логического вывода по сравнению с RNN, тем более что он поддается распараллеливанию. В последние годы архитектура преобразователя произвела революцию в NLP.
-
5. Что произошло в NLP за последние годы?
После возрождения методов нейронных сетей, используемых в обработке естественного языка примерно в 2014 году, в этой области появилось много инноваций благодаря доступности крупномасштабных обучающих данных, вычислительной мощности и новых архитектур, поддерживающих параллельные и более быстрые вычисления.
Tay был чат-ботом, который Microsoft запустила в 2016 году. Он должен был твитить как подросток и учиться на разговорах с реальными пользователями в Twitter. Бот перенял фразы пользователей, оставивших в Твиттере сексистские и расистские комментарии, и вскоре после этого Microsoft деактивировала его.
BERT и его друзья: После введения “трансформирующей” архитектуры Transformer в 2017 году многие модели глубокого обучения для NLP были названы в честь персонажей-кукол из американского образовательного детского телесериала “Улица Сезам”. Среди них ELMo (2018), BERT (2018), Big BIRD (2019), ERNIE (2019), Kermit (2019), Grover (2019), RoBERTa (2019) и Rosita (2019). Они хороши для предоставления контекстных вложений и расширенного представления знаний.
Mixture of Experts (MoE) — это модельная структура, целью которой является предоставление разных параметров для разных входных данных на основе эффективных алгоритмов маршрутизации для достижения более высокой производительности. Switch Transformer (2019) — это пример подхода MoE, направленного на снижение затрат на связь и вычисления.
Language Model for Dialogue Applications (LaMDA) — это разговорный чат-бот, разработанный Google и представленный в 2021 году. LaMDA основанная на архитектуре Transformer, обученная диалогу, а не обычному веб-тексту, с целью предоставления разумных и конкретных ответов на разговоры. Споры вокруг события, когда инженер Google, отвечающий за обеспечение качества, считал, что LaMDA разумен, имели место в 2022 году.
Generative Pre-Trained Transformer 3 (GPT-3) — это модель со 175 миллиардами параметров, основанная на архитектуре Transformer, разработанная OpenAI и представленная в 2020 году. Microsoft приобрела эксклюзивную лицензию на доступ к базовой модели GPT-3 и предыдущая версия GPT-2 (2019) имеет открытый исходный код; но другие пользователи могут взаимодействовать с ней через интерфейс прикладного программирования (API). ChatGPT, чат-бот, доработанный на основе модели серии GPT-3.5, был выпущен в 2022 году, что привело к широкому тестированию пользователями по всему миру.
Среди этих нововведений в NLP в последние годы возник ряд споров. К критическим замечаниям относятся:
-
модели, усиливающие негативные предубеждения в своих обучающих данных;
-
ошибочное отнесение человеческого интеллекта к моделям искусственного интеллекта;
-
безответственное воздействие на окружающую среду во время обучения моделей;
-
высокая стоимость обучения более крупных моделей;
-
необъяснимость моделей “черного ящика”;
-
ложный тон уверенности в выводах моделей.
6. Что такое Attention и Self-attention?
RNN — это мощные модели для последовательных данных. Даже в простой форме они могут показывать достоверные результаты в различных задачах NLP, но их недостатки привели к появлению более гибких сетей, таких как вентилируемые устройства и конструкции кодер-декодер. Поскольку в последние годы NLP стало широко обсуждаемой темой, были введены еще более продвинутые концепции, такие как перенос обучения и внимание, которые по-прежнему основаны на RNN или его расширении.
Вначале Attention не развивалось непосредственно для RNN или даже для NLP. Attention было впервые представлено в 2014 году с механизмом attention на основе контента для нейронных машин Тьюринга. Это применение для задач в NLP, позже было разработано Луонгом и др. в 2015 году, и Богданау и др. в 2014 году. Сюй и др. опубликовали первую статью, в которой проводится различие между мягкими/глобальными и жесткими/локальными механизмами attention, и сделали это в контексте Neural Image Caption в 2015 году. Cheng и пр. впервые представили концепцию Self-Attention в 2016 году (LSTMN).
По словам авторов LSTMN, “LSTMN заменяет ячейку памяти сетью памяти, чтобы обеспечить хранение контекстного представления каждого входного токена с уникальным слотом памяти, а размер памяти растет со временем до верхней границы диапазона памяти достигается”. Self-attention, как следует из названия, позволяет кодер уделять внимание другим частям ввода во время обработки.
В то время как LSTMN представила самостоятельную работу, она сохраняет недостатки, связанные с использованием RNN. В 2017 году Васвани и др. предложили архитектуру Transformer, в которой широко используется Self-attention, чтобы обойти эти недостатки.
7. Что такое Transformer?
RNN были до Transformer самой современной моделью для машинного перевода, языкового моделирования и других задач NLP. Но последовательный характер RNN исключает распараллеливание в обучающих примерах. Это становится критическим при более длинных последовательностях, поскольку ограничения памяти ограничивают пакетную обработку примеров. Хотя многое было сделано для сведения к минимуму этих проблем, они присущи архитектуре и, таким образом, все еще остаются.
Механизм внимания позволяет моделировать зависимости без учета расстояния во входных или выходных последовательностях. Большинство механизмов внимания использует рекуррентные нейронные сети. Это ограничивает их полезность для Трансферного обучения (Transfer learning) из-за ранее упомянутых ограничений, которые имеют рекуррентные сети.
Архитектура Transformer от Васвани и др. опубликованная в 2017 году, обеспечивает связь двух элементов с произвольными позициями на входе или выходе с постоянным числом операций. Это также была первая модель, которая полностью полагалась на self-attention для вычисления представлений ввода или вывода без использования рекуррентных сетей или сверток, выровненных по последовательности. Хотя архитектура Transformer не использует рекуррентные или сверточные сети, она сохраняет популярную архитектуру кодер-декодер.
-
Кодер состоит из стека из N = 6 одинаковых слоев. Каждый из этих уровней имеет два подуровня: механизм Self-attention с несколькими головками и полностью связанную с позицией сеть прямой связи. Подслои имеют остаточную связь вокруг основных компонентов, за которой следует нормализация уровня. Результатом каждого подуровня является LayerNorm(x + Sublayer(x)), где Sublayer(x) является выходом функции самого подуровня. Все подуровни и уровень внедрения перед кодером/декодером производят выходные данные dim = dmodel = 512, чтобы позволить этим остаточным соединениям работать. Позиционно-упреждающая сеть, используемая в подуровне, применяется к каждой позиции отдельно и идентично. Эта сеть состоит из двух линейных преобразований с промежуточной функцией активации ReLU: FFN(x) = max (0, xW1 + b1) W2 + b2
-
Декодер состоит из стека из N = 6 одинаковых слоев. Он вставляет в дополнение к двум уже известным подуровням кодера третий подуровень, который также выполняет внимание с несколькими головками. Этот третий подуровень использует выходные данные кодера в качестве двух из трех входных значений для многоголового внимания. Этот подуровень по своим функциям очень близок к рассмотренным ранее механизмам внимания между кодерами и декодерами. Он использует, как и кодер, остаточные соединения вокруг каждого из подуровней. Декодер также использует модифицированный, маскированный подуровень self-attention, чтобы предотвратить внимание позиций к последующим позициям. Это, в сочетании с тем фактом, что выходные вложения сдвинуты на одну позицию вправо, гарантирует, что прогнозы для позиции i зависят только от предыдущих известных выходов.
Transformer использует позиционные кодировки (positional encoding), добавленные к вложениям, поэтому модель может использовать порядок последовательности. В статье Transformer функции внимания описываются как “сопоставление запроса и набора пар ключ-значение с выходными данными, где запрос, ключи, значения и выходные данные являются векторами. Результат вычисляется как взвешенная сумма значений, где вес, присвоенный каждому значению, вычисляется функцией совместимости запроса с соответствующим ключом”. Пары Запрос и Ключ-Значение используются в недавно предложенном механизме внимания, который используется в Transformer. Эти входные данные для механизмов внимания получают путем умножения общего входного сигнала на кодер/декодер с различными весовыми матрицами. Именно эти различные преобразования ввода позволяют входу обслуживать себя. Это, в свою очередь, позволяет модели узнать о контексте. Например, рак может означать разные вещи в зависимости от контекста, который может быть распознан механизмами Self-Attention.
Transformer использует механизм внимания под названием Multi-Head Attention, который проецирует запросы, ключи и значения h раз вместо того, чтобы выполнять одно внимание в режиме dmodel-D запросы и пары ключ-значение. Проекции изучены, линейны и проецируются на измерения dq, dk и dv. Затем для каждого из них используется новое масштабированное скалярное произведение, чтобы получить dv-D выход. Затем эти значения объединяются и проецируются для получения окончательных значений. Масштабированное скалярное произведение внимания, как следует из названия, представляет собой просто масштабированную версию скалярного произведения. Эта многомерность позволяет механизму внимания совместно обращать внимание на различную информацию из разных представлений в разных позициях.
8. Что такое BERT?
2018 год стал переломным для NLP. Быстро развивалось концептуальное понимание того, как лучше всего представлять слова и предложения таким образом, чтобы лучше всего фиксировались их значения и отношения. Более того, сообщество NLP выдвигает невероятно мощные компоненты, которые каждый может бесплатно загрузить и использовать в своих собственных моделях и пайплайнах. Одной из последних вех в этом развитии является выпуск BERT, которая побила несколько рекордов по тому, насколько хорошо модели справляются с языковыми задачами. Вскоре после выпуска документа с описанием модели исследовательская команда Google AI также открыла исходный код модели и сделала доступными для загрузки версии модели, которые уже были предварительно обучены на массивных наборах данных. BERT — это обученный стек Transformer кодер и в статье представлены два типоразмера модели BERT:
-
BERT BASE — Сопоставим по размеру с OpenAI Transformer для сравнения производительности;
-
BERT LARGE — Невероятно огромная модель, которая достигла самых современных результатов, описанных в статье.
Оба размера модели BERT имеют большое количество слоев кодера (которые в документе называются блоками преобразования) — двенадцать для базовой версии и двадцать четыре для большой версии. Они также имеют более крупные сети прямой связи (768 и 1024 скрытых блока соответственно) и больше головок внимания (12 и 16 соответственно), чем конфигурация по умолчанию в эталонной реализации Transformer в исходной статье (6 слоев кодера, 512 скрытых блоков, и 8 голов внимания).
-
Входные данные модели: Первый входной токен поставляется со специальным токеном [CLS] по причинам, которые станут очевидными позже. CLS здесь означает классификацию. Точно так же, как простой кодер преобразователя, BERT принимает на вход последовательность слов, которые продолжают течь вверх по стеку. Каждый уровень применяет самообслуживание и передает свои результаты через сеть прямой связи, а затем передает их следующему кодеру. С точки зрения архитектуры, до этого момента он был идентичен Transformer (за исключением размера, который является просто конфигурацией, которую мы можем установить). Именно на выходе мы впервые начинаем видеть, как расходятся вещи.
-
Выходные данные модели: Каждая позиция выводит вектор размера hidden_size (768 в базе BERT). В примере с классификацией предложений, который мы рассмотрели выше, мы фокусируемся на выводе только первой позиции (которой мы передали специальный токен [CLS]). Этот вектор теперь можно использовать в качестве входных данных для классификатора по нашему выбору. В статье достигаются отличные результаты, просто используя однослойную нейронную сеть в качестве классификатора. Если у вас есть больше меток (например, если вы являетесь службой электронной почты, которая помечает электронные письма словами “спам”, “не спам”, “социальные сети” и “продвижение”), вы просто настраиваете сеть классификатора, чтобы иметь больше выходных нейронов, которые потом пройти через софтмакс.
9. Заключение
Как мы читали в этом докладе, за последние 60 лет в области NLP произошли разработки с различными подходами. Существуют разногласия по поводу недавних разработок в этой области, но потенциал положительных вариантов использования инноваций в этой области перевешивает нынешние недостатки методов. Что касается того, какие структуры приводят в действие современные языковые модели сегодня — в основном концепции Attention, Self-attention; конструкции Transformer; и улучшения, принесенные нам моделями типа BERT. В целом, нынешний бум исследований и массовое внедрение техник NLP, безусловно, обязаны своими впечатляющими результатами предыдущим исследованиям, которые проводились за предыдущие 50 лет до этого десятилетия.
10. Список литературы
-
DeepLearning.AI. 2023. A Complete Guide To Natural Language Processing
-
Peter Hancox, University of Birmingham, 1996. A brief history of Natural Language Processing
-
Ilya Sutskever и др. 2014, Sequence to Sequence Learning with Neural Networks. arXiv:1409.3215
-
Ashish Vaswani и др. 2017. Attention Is All You Need. arXiv:1706.03762
-
Carolin Becker et al. 2020. Modern Approaches in Natural Language Processing
-
Jianpeng Cheng и др. 2016. Long Short-Term Memory-Networks for Machine Reading. arXiv:1601.06733
-
Jay Alammar. 2021. The Illustrated BERT, ELMo, and co. (How NLP Cracked Transfer Learning)