BERT для всех

Говоря простым языком, как работает новейший искусственный интеллект Google для обработки естественного языка

В конце 2019 года Google представил модель двунаправленных кодировщиков от трансформаторов (BERT), которая, по словам компании, повлияет на 1 из 10 запросов в их поисковой системе. Его основанная на нейронных сетях техника обработки естественного языка (NLP) побила несколько рекордов по проблемам NLP. В сообществе машинного обучения было много активности по поводу BERT, но мне еще не приходилось встречать не гипертехническое руководство, набитое сложными техническими деталями.

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

Давайте начнем!

Модели НЛП должны быть предварительно обучены - требуется несколько лет, чтобы хорошо усвоить любой язык, и даже с учетом предлагаемых ускоренных компьютеров они не могут выучить язык за несколько минут или даже за день. . Предварительное обучение до BERT ограничивалось вложениями слов, которые отображали каждое слово в вектор с некоторыми аспектами его значения. Например, от «арбуза» до «зеленого», «фруктового» или «семенного». Вложения обучаются на массивном немаркированном наборе текста, как вся Википедия, затем сохраняются в библиотеке или пакете для использования в модели, скажем, для распознавания настроений, что позволяет моделям получать знания из более крупных наборов данных без затрат времени. .

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

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

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

Например, если сети дан стартер «Она выгуливала ее», она может построить оставшуюся часть, чтобы сформировать предложение «Она выгуливала свою собаку». Таким образом, языковые модели позволяют понять, как написан текст, и это особенно полезно при составлении предложений.

Некоторые более сложные языковые модели, такие как двунаправленный LSTM, учатся читать вперед и назад; то есть способность предсказать «собаку» в словах «Она выгуливала…?» и способность предсказать «Она» в словах «собака, которую она гуляла…?». Хотя это действительно усиливает знакомство моделей с текстом, оно не может распознать значение слов, которые требуют контекста до и после слова.

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

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

Например, учитывая предложение «Идет дождь, кошки и собаки»:

… BERT мог узнать каждую из следующих строк данных:

Этот метод заставляет модель изучать контекст всего предложения.

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

После предварительного обучения BERT работает как нейронная сеть - он пропускает слова через ряд слоев трансформатора (эквивалент скрытого слоя в нейронной сети) и возвращает результат.

Инновационный метод BERT превзошел предыдущие лучшие модели НЛП в следующих задачах:

  • Понимание языка
  • Вывод на естественном языке
  • Обнаружение парафраза
  • Анализ настроений
  • Анализ лингвистической приемлемости
  • Анализ семантического сходства
  • Текстовое наложение

BERT превосходит не только традиционные методы встраивания слов, но и новые методы, такие как ELMo.

Я надеюсь, что эта статья дала вам общее представление о том, как BERT может работать намного лучше, чем другие модели НЛП. Спасибо за прочтение!