Чернобровов АлексейАналитик

BERT: прорыв в NLP-технологиях или очередной хайп на теме Deep Learning?

C 2013 года, согласно Google.Trends, популярность термина «глубокое обучение» (Deep Learning, DL) стремительно растет, поскольку этот метод Machine Learning становится все более востребованным в Data Science. В этой статье я кратко расскажу о достоинствах глубокого обучения нейронных сетей на примере BERT-модели и возможностях ее практического применениях в задачах обработки естественного языка (NLP, Natural Language Processing), а также сравню ее с некоторыми другими подобными технологиями.

Что такое глубокое обучение и причем здесь BERT

Начнем с определения: глубокое обучение – это методы машинного обучения, основанные на обучении представлениям (feature/representation learning), а не специализированных алгоритмах под конкретные задачи. В DL многослойные нейронные сети выступают средствами реализации многоуровневой системы нелинейных фильтров для извлечения признаков. Для DL-моделей характерно иерархическое сочетание нескольких алгоритмов обучения: с учителем, без учителя, с подкреплением [1]. В частности, BERT представляет собой нейросеть, которая используется для специфических проблем обработки естественного языка после предварительного обучения на огромном объеме данных с несложными задачами.

Отметим, что идеи глубокого обучения были известны ещё во время становления понятия «искусственный интеллект» (ИИ) в его современном понимании, 70-80-е гг. XX века, когда многослойные перцептроны и другие модели нейросетей стали применяться в реальных системах распознавания образов. Однако, практическая эффективность этих методов в то время была недостаточно высока, т.к. существующие аппаратные возможности вычислительной техники не позволяли реализовать сложную архитектуру таких сетей. Таким образом, активное развитие DL-методов приостановилось до середины 2000-х годов, когда мощность графических процессоров выросла настолько, что обучение нейросетей стало относительно быстрым и недорогим процессом, а также мировой объем данных накопил значительное количество датасетов для тренировки сетей. Кроме того, к этому времени работы ученых в области ИИ (Хинтон, Осиндеро, Тэ, Бенджио) показали эффективность многоуровневого обучения нейросетей, при котором каждый слой обучается отдельно при помощи ограниченной машины Больцмана, а затем с помощью метода обратного распространения ошибки (backpropagation) [1]. Подробнее про историю развития и принципы работы нейросетей я расскажу в своей новой статье, а сейчас перейдем к BERT.

 

BERT – это двунаправленная мультиязычная модель с transformer-архитектурой (рис. 1), предназначенная для решения конкретных NLP-задач, например, определение эмоциональной окраски (тональности) текста, вопросно-ответные системы, классификация текстов, построение выводов по тексту и т.д. Помимо распознавания речи, классической NLP-задачей является анализ текста, включая извлечение данных, информационный поиск и анализ высказываний. Также к обработке естественного языка относятся генерирование текстов, синтез речи, машинный перевод и автоматическое реферирование, аннотирование и упрощение текстовой информации. Таким образом, цель применения NLP-технологий – это не только распознавание живого языка средствами искусственного интеллекта, но и возможность адекватного с ним взаимодействия. Последнее, фактически, означает понимание AI-инструментом устной или письменной речи [2].

BERT-модель предварительно обучена без учителя на 2-х NLP-задачах: моделирование языковых масок и предсказание следующего предложения. В основу работы BERT положены самые последние достижения в области нейросетей и NLP-технологий, опубликованные в 2018 году (ELMoULMFiT, OpenAI Transformer и GPT-2), которые позволяют предобучать языковые модели без учителя на больших корпусах данных и затем подстраивать их под конкретные проблемы [3]. Благодаря этому с помощью BERT можно разрабатывать эффективные ИИ-программы для обработки естественного языка: отвечать на вопросы, заданные в произвольной форме, создавать чат-ботов, выполнять автоматические переводы, анализировать текст и пр. [4]. В 2019 году Google Research выпустил свою реализацию BERT с открытым кодом на tensorflow, включая несколько предобученных многоязыковых моделей со множеством слоев, узлов, выходов и параметров. В частности, многоязыковая модель BERT-Base, поддерживающая 104 языка, состоит из 12 слоев, 768 узлов, 12 выходов и 110M параметров [3].

Рис 1. Архитектура BERT
Рис 1. Архитектура BERT

 

Практика применения BERT и других нейросетей в NLP-задачах: несколько примеров

Одним из классических NLP-кейсов считается задача классификации текста, которая предполагает, что каждый документ принадлежит одному или нескольким классам (меткам). Однако на практике текст может быть одновременно и независимо причислен к нескольким классам (рис. 2), например, классификация товаров на предприятии, определение жанра у фильма или литературного произведения, тематическая сортировка электронных писем в зависимости от мотивов их содержимого [3].

Рис. 2. Бинарная и мультиклассовая классификации
Рис. 2. Бинарная и мультиклассовая классификации

 

К примеру, результаты анализа пользовательских отзывов о фильмах или продуктах в интернет-магазине могут использоваться рекомендательными системами этих бизнесов с целью побуждения клиента к новым покупкам. А задача определения эмоциональной окраски текста и анализа его содержимого актуальна в области управления корпоративной репутацией, а именно в SERM-маркетинге (Search Engine Reputation Management), направленного на создание положительного имиджа компании за счет влияния на поисковую выдачу с помощью PR-, SMM- и SEO-приемов.

Сегодня автоматизированный сбор данных об упоминании компании и их первичный анализ выполняется специализированными SERM-системами с разным набором функций и стоимостью, от бесплатных онлайн-сервисов до коммерческих решений. Эти инструменты анализируют выдачу ключевых слов с названием бренда в поисковых системах, прайс-агрегаторах, тематических порталах, на сайтах с отзывами и рекомендациями, а также в социальных сетях и видеороликах [5].

В качестве яркого примера, иллюстрирующего возможности ML в этом NLP-контексте приведем кейс Сбербанка, который анализировал пользовательские отзывы магазина Google Play о своем мобильном приложении с целью выявления инцидентов и их предупреждения. Было проанализировано 882 864 пользовательских отзыва, оставленных в период с октября 2014 г. по октябрь 2017 г. Для определения темы инцидентов использовались лишь негативные рекомендации (1-2 звезды), но в целом для обучения ML-модели применялась вся выборка. Для прогноза приемлемого уровня отрицательных отзывов на выбранную дату был выбран 3-месячный интервал до нее. Предсказание строили на неделю вперед от выбранной даты, с дискретизацией в одни сутки [6].

Аномалия фиксировалась при превышении фактического количества негативных отзывов выше доверительного уровня. За доверительный уровень принята сумма прогнозного значения и доверительного интервала. На рисунке 3 красным цветом показано фактическое количество отзывов, а желтым – прогнозное значение нормального уровня с доверительным интервалом [6].

Рис. 3. График анализа отзывов о мобильном приложении Сбербанка

 

Дальнейший анализ производился по датам, на которые приходятся 5 явно выраженных пиков. Тексты отзывов от этих дат были кластеризованы по ключевым словам, описывающих суть проблемы, например, «соединение», «смс», «обновление» и т.д. По результатам кластеризации были выявлены проблемы по следующим темам [6]:

  • работа приложения, связанная с обновлением версии;
  • вход в приложение после обновления; 
  • вход в приложение и политикой конфиденциальности;
  • работа приложения, связанная с соединением с банком;
  • отправка пользователю смс с кодом;
  • перевод денежных средств;
  • интерфейс приложения;
  • работа приложения, связанная со встроенным антивирусом.

Отметим, что натренированная модель машинного обучения смогла выполнить не только постфактумный анализ, но и работала на опережение, т.е. предсказала увеличение проблем определенной категории в отдельные даты. В дальнейшем такая методика может применяться не только для предупреждения инцидентов, связанных с работой мобильного приложения, но и для других SERM-задач [6].

 

Тематическое моделирование vs векторные NLP-технологии

В вышеописанном кейсе Сбербанка использовалась библиотека с открытым кодом BigARTM, предназначенная для тематического моделирования больших коллекций текстовых документов и массивов транзакционных данных. Эта технология статистического анализа текстов для автоматического выявления тематики в больших коллекциях документов определяет, к каким темам относится каждый документ, и какими словами описывается каждая тема. При этом не требуется ручной разметки текстов, а обучение ML-модели происходит без учителя. Тематическое моделирование допускает многоклассовую классификацию, т.е. чтобы документ относился одновременно к нескольким кластерам-темам, и позволяет отвечать на вопросы «о чём этот текст» или «какие общие темы имеет эта пара текстов». Тематическая модель формирует сжатое векторное представление текста, которое помогает классифицировать, рубрицировать, аннотировать, сегментировать тексты. В отличие от известных векторных представлений семейства x2vec (word2vecparagraph2vecgraph2vec и т.д.), в тематических векторах каждая координата соответствует теме и имеет содержательную интерпретацию. Тематическая модель привязывает к каждой теме список ключевых слов или фраз, который описывает ее семантику [7].

В отличие от тематической модели, BERT работает по принципу векторного представления слов, основанном на контекстной близости, когда слова, встречающиеся в тексте рядом с одинаковыми словами (а, следовательно, имеющие схожий смысл), в векторном представлении будут иметь близкие координаты векторов. Полученные векторы могут быть использованы для обработки естественного языка и машинного обучения, в частности, для прогнозирования слов [8]. Таким образом, BERT выполняет также и предиктивные функции, в отличие от тематической ML-модели. Это свойство векторных NLP-технологий может использоваться в некоторых специфических задачах анализа текста, например, для определения авторства. Для каждого человека характерны некоторые специфические словосочетания, клише и прочие лексические конструкции, которые можно сгруппировать в устойчивые вектора и вычислить частоту их повторения в определенных текстах, определив авторскую принадлежность.

 

Как устроена нейронная сеть BERT: архитектура и принцип работы

Чтобы натренировать BERT на предсказывание слов, на вход нейросети подаются фразы, где часть слов заменена на маску [MASK]. Например, получив на входе предложение «Я пришел в [MASK] и купил [MASK]», BERT на выходе должна показать слова «магазин» и «молоко». Это упрощенный пример с официальной страницы BERT, на более длинных предложениях разброс возможных вариантов становится меньше, а ответ нейросети однозначнее. Чтобы нейросеть научилась понимать соотношения между разными предложениями, необходимо дополнительно обучить ее предсказывать, является ли вторая фраза логичным продолжением первой [4].

При подаче текста на вход BERT-модели сначала выполняется его токенизация — разбиение на более мелкие единицы (токены): абзацы делятся на предложения, предложения на слова и пр. (рис. 4). Входной текст разбивается на список токенов, доступных в словаре. Например, уже упомянутая выше модель BERT-Base использует словарь из 30522 слов. Если в словаре отсутствует слово, то оно постепенно разбивается на более мелкие части, которые уже находятся в словаре. Таким образом контекст нового слова будет комбинацией смыслов его частей [3].

Рис. 4. Токенизация в BERT
Рис. 4. Токенизация в BERT

 

Таким образом, BERT является автокодировщиком (autoencoder, AE), который скрывает и изменяет некоторые слова, пытаясь восстановить изначальную последовательность слов из контекста. Это приводит к следующим недостаткам работы модели [9]:

  • каждое скрытое слово предсказывается в отдельности, из-за чего теряется информация о возможных связях между маскированными словами, например, «New York» является устойчивым сочетанием слов, при разделении которого на независимые части первоначальный смысл теряется полностью;
  • несоответствие между фазами тренировки и использования предобученной модели BERT: при тренировке применяются скрытые слова ([MASK]), а при использовании предобученной модели такие токены уже не подаются на ее вход.

Тем не менее, несмотря на вышеотмеченные проблемы, BERT называют последним достижением (state-of-the-art) в NLP-области.

 

Результаты тестирования и альтернативы BERT

Тестовые исследования по оценке BERT, проведенные в 2019 году доказали эффективность этого DL-метода, достигнув наивысших отметок в классических испытаниях по пониманию естественного языка. В частности, модель распознавания ALBERT, созданная в Google AI, заработала 92,2 пункта в стэнфордском тесте SQUAD, в котором нужно было отвечать на вопросы, и 89,4 балла в тесте на оценку верности понимания языка GLUE. В июле 2019 года соцсеть Facebook представила собственную ML-модель RoBERTa на основе BERT, а месяцем раньше Microsoft AI показал свою аналогичную DL-нейросеть MT-DNN, которая добилась высших показателей в 7 из 9 тестов GLUE [10].

Однако, BERT – это не единственная DL-сеть, показывающая отличные результаты в решении NLP-задач, хотя, возможно и самая популярная. XLNet, преодобученная ML-модель многослойной transformer-архитектуры, показывает лучшие, по сравнению с BERT, показатели в тесте RACE (Reading Comprehension From Examinations). На рисунке 5 приведены результаты точности понимания содержимого текста на двух датасетах разного объема: среднего (Middle) и большого (High). Сети BERT и XLNet имели 24 слоя и были аналогичны по размерам. В других задачах текстовой классификации DL-модель XLNet также показала лучшие результаты (рис. 6) [11]. 

Рис. 5. Результаты нейросетевых моделей на задаче RACE
Рис. 5. Результаты нейросетевых моделей на задаче RACE

 

Рис. 6. Результаты нейросетевых моделей на других задачах текстовой классификации
Рис. 6. Результаты нейросетевых моделей на других задачах текстовой классификации

 

Такие отличные результаты XLNet обусловлены следующими факторами [11]:

  • XLNet не маскирует слова в последовательности, благодаря чему отсутствует проблема несоответствия модели на предобучении и на тюнинге для отдельной задачи, что свойственно BERT;
  • в отличие от типовых авторегрессионных моделей, XLNet не использует фиксированные прямонаправленный и обратнонаправленный порядки факторизации. Вместо этого XLNet максимизирует ожидаемый логарифм вероятности последовательности слов с учетом всех перестановок порядков слов. Благодаря шагу с перестановками, контекст для каждой позиции в последовательности может состоять из слов с правой и левой сторон. Таким образом, слово на каждой позиции в последовательности использует контекстную информацию со всех остальных позиций (bidirectional context).

 

В итоге, XLNet интегрирует в себе свойства авторегрессивных языковых моделей и автокодировщиков, минуя недостатки обоих методов.

 

Резюме

Подводя итоги реализации идей глубокого обучения в виде BERT-подобных моделей для задач обработки естественного языка, можно сделать несколько выводов:

  • NLP-технологии активно используются в современном маркетинге, PR и управлении корпоративной репутацией;
  • предварительное обучение ML-моделей без учителя на больших корпусах данных с последующей подстройкой под конкретные задачи позволяет существенно ускорить процесс тренировки и получить итоговые результаты с высокой степенью точности;
  • BERT и другие аналогичные нейросети эффективны в случае типовых NLP-задач и могут выступать в качестве «полуфабриката» для создания чат-бота или рекомендательной системы, однако, даже при наличии статуса state-of-the-art, пока они не способны полностью заменить собой человека;
  • XLNet продолжает идеи BERT, однако лишена недостатков этой архитектуры, что предупреждает проблему несоответствия ML-модели на предварительном обучении и последующей тренировке под специфику задачи, а также при использовании в «реальных условиях» (production).

 

Источники

  1. Глубокое обучение
  2. NLP – обработка естественного языка
  3. Как использовать BERT для мультиклассовой классификации текста
  4. BERT — state-of-the-art языковая модель для 104 языков. Туториал по запуску BERT локально и на Google Colab
  5. Как Big Data и Machine Learning помогут вам управлять корпоративной репутацией в интернете: разбираемся с SERM- технологиями
  6. Как мы анализировали отзывы о мобильном приложении с помощью машинного обучения
  7. BigARTM
  8. Технология Word2vec
  9. XLNet против BERT
  10. ИИ Google превзошел человека в распознавании языков
  11. XLNet: новый state-of-the-art в задачах обработки естественного языка

Контакты