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

Плохая новость заключается в том, что существует еще множество концепций, которые вам необходимо понять, чтобы улучшить свои результаты. Хорошая новость заключается в том, что с такими инструментами, как BERT и ERNIE, получение хороших результатов от обработки естественного языка (NLP) становится более доступным, чем когда-либо, даже с небольшими наборами данных и вычислительными бюджетами. К тому же, кто бы не захотел заниматься НЛП с командой «Улицы Сезам» ?!

Краткая история НЛП

Давайте начнем с краткого обзора истории дисциплины. Развитие систем НЛП можно разделить на три основных этапа:

  • Механизмы правил. Вначале большинство систем НЛП основывались на сложных наборах рукописных правил. Хорошая новость в том, что их легко понять, но они не очень хорошо справлялись (их можно было интерпретировать, но не очень точно).
  • Статистический вывод - в 80-х годах исследователи начали использовать тегирование части речи (тегирование существительных, глаголов и т. д.) с использованием скрытых марковских моделей для получения статистически вероятных значений слов и взаимосвязей между ними.
  • Глубокое обучение. За последнее десятилетие нейронные сети стали наиболее распространенным способом решения большинства нетривиальных задач НЛП, таких как CNN, RNN и многоуровневые методы. LSTM »для повышения производительности для определенных классов задач NLP.

Глубокое обучение изменило практику НЛП за последнее десятилетие. Если вы пытаетесь внедрить машинный перевод, ответы на вопросы, категоризацию короткого текста или анализ тональности, существуют инструменты глубокого обучения, которые помогут решить эти проблемы. Однако исторически процесс создания правильной сети и последующего обучения требовал много времени, опыта, огромного набора данных и больших вычислительных мощностей (что было дорогостоящим).

(Машинное) обучение с "Улицей Сезам"

Вся революция Улицы Сезам в НЛП началась в начале 2018 года с доклада, в котором обсуждались репрезентации ELMo (ELMo означает E mbeddings из L anguage Mo dels). ELMo - это метод, который использует глубокую двунаправленную языковую модель, предварительно обученную на большом текстовом корпусе, для повышения производительности для ряда задач НЛП.

Что это обозначает? Давайте разберемся. «Глубокий» относится к тому факту, что он использует многослойную нейронную сеть (как в «глубоком обучении»). Двунаправленный? Что ж, исторически большинство языковых моделей были однонаправленными, поэтому для английского они читали слова слева направо. В двунаправленной модели все слова вводятся одновременно. Это позволяет более точно вывести контекст при достаточном обучении. А предварительное обучение означает, что модель уже обучена на очень большом наборе языковых данных общего назначения. Было показано, что предварительное обучение как в распознавании изображений, так и в NLP существенно повышает точность и / или сокращает время и затраты, необходимые для окончательного обучения модели.

Google BERT

В ноябре 2018 года Google открыл исходный код BERT. BERT расшифровывается как B двунаправленных E кодировщиков R представлений от T преобразователей. Это была новая методика контекстного предварительного обучения. Контекстуальный означает, что он учитывает слова вокруг данного слова, поэтому в отличие от бесконтекстной модели, такой как популярные модели Word2Vec, с BERT, банк - это не одно и то же понятие в банковском счете и берегу реки.

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

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

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

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

Для распознавания именованных сущностей (NER - идентификация конкретных сущностей, таких как люди, компании или продукты), модель можно обучить, передав выходной вектор каждого токена в слой классификации, который предсказывает метку NER - так что это просто еще один классификатор. Суть в том, что даже при небольшом наборе данных, ограниченном бюджете и опыте с помощью BERT вы можете создать современную модель НЛП за очень небольшой промежуток времени.

XLNet

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

В июне 2019 года члены команды Google Brain опубликовали статью XLNet. XLNet позволяет избежать проблем, от которых страдает BERT, за счет использования метода, называемого моделирование языка перестановок. При моделировании языка перестановок модели обучаются предсказывать один токен с учетом предшествующего контекста, как в традиционной языковой модели, но вместо того, чтобы предсказывать токены последовательно, он предсказывает их в случайном порядке. Суть в том, что XLNet превзошел BERT по ряду ключевых задач НЛП и продвинул вперед уровень искусства.

Завершение модельного ряда

Чтобы не отставать (в вычислительной эффективности или ссылках на Улицу Сезам), в марте 2019 года Исследовательская группа Baidu представила ERNIE, вслед за ERNIE 2.0 в июле 2019 года. ERNIE означает слегка запутанный Расширенная презентация с помощью к новостной веб-страницы, которая объединяет многие из концепции, используемые BERT, но также сопоставляет информацию о семантических элементах из других ресурсов, таких как энциклопедии, новостные агентства и онлайн-форумы. Зная, например, что Харбин является столицей провинции Хэйлунцзян в Китае и что Харбин - это город, который зимой покрывается льдом и снегом, он может лучше выполнять многие задачи НЛП по сравнению с такой моделью, как BERT, которая ограничивает его знание мира с текстом, которому его обучают. В то время как некоторые из движущих сил подхода ERNIE были разработаны для решения уникальных проблем работы с китайским языком, ERNIE 2, по-видимому, превосходит как BERT, так и XLNet в ряде ключевых задач НЛП как на китайском, так и на английском.

Что дальше?

Мы находимся в периоде быстрых изменений в области НЛП, но менее чем за 18 месяцев произошло как минимум четыре существенных прорыва в предварительно обученных решениях для глубокого обучения, и нет оснований полагать, что больше не будет. в пути.

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

Первоначально опубликовано на https://flatironschool.com.