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 году (ELMo, ULMFiT, OpenAI Transformer и GPT-2), которые позволяют предобучать языковые модели без учителя на больших корпусах данных и затем подстраивать их под конкретные проблемы [3]. Благодаря этому с помощью BERT можно разрабатывать эффективные ИИ-программы для обработки естественного языка: отвечать на вопросы, заданные в произвольной форме, создавать чат-ботов, выполнять автоматические переводы, анализировать текст и пр. [4]. В 2019 году Google Research выпустил свою реализацию BERT с открытым кодом на tensorflow, включая несколько предобученных многоязыковых моделей со множеством слоев, узлов, выходов и параметров. В частности, многоязыковая модель BERT-Base, поддерживающая 104 языка, состоит из 12 слоев, 768 узлов, 12 выходов и 110M параметров [3].
Практика применения BERT и других нейросетей в NLP-задачах: несколько примеров
Одним из классических NLP-кейсов считается задача классификации текста, которая предполагает, что каждый документ принадлежит одному или нескольким классам (меткам). Однако на практике текст может быть одновременно и независимо причислен к нескольким классам (рис. 2), например, классификация товаров на предприятии, определение жанра у фильма или литературного произведения, тематическая сортировка электронных писем в зависимости от мотивов их содержимого [3].
К примеру, результаты анализа пользовательских отзывов о фильмах или продуктах в интернет-магазине могут использоваться рекомендательными системами этих бизнесов с целью побуждения клиента к новым покупкам. А задача определения эмоциональной окраски текста и анализа его содержимого актуальна в области управления корпоративной репутацией, а именно в 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].
Дальнейший анализ производился по датам, на которые приходятся 5 явно выраженных пиков. Тексты отзывов от этих дат были кластеризованы по ключевым словам, описывающих суть проблемы, например, «соединение», «смс», «обновление» и т.д. По результатам кластеризации были выявлены проблемы по следующим темам [6]:
- работа приложения, связанная с обновлением версии;
- вход в приложение после обновления;
- вход в приложение и политикой конфиденциальности;
- работа приложения, связанная с соединением с банком;
- отправка пользователю смс с кодом;
- перевод денежных средств;
- интерфейс приложения;
- работа приложения, связанная со встроенным антивирусом.
Отметим, что натренированная модель машинного обучения смогла выполнить не только постфактумный анализ, но и работала на опережение, т.е. предсказала увеличение проблем определенной категории в отдельные даты. В дальнейшем такая методика может применяться не только для предупреждения инцидентов, связанных с работой мобильного приложения, но и для других SERM-задач [6].
Тематическое моделирование vs векторные NLP-технологии
В вышеописанном кейсе Сбербанка использовалась библиотека с открытым кодом BigARTM, предназначенная для тематического моделирования больших коллекций текстовых документов и массивов транзакционных данных. Эта технология статистического анализа текстов для автоматического выявления тематики в больших коллекциях документов определяет, к каким темам относится каждый документ, и какими словами описывается каждая тема. При этом не требуется ручной разметки текстов, а обучение ML-модели происходит без учителя. Тематическое моделирование допускает многоклассовую классификацию, т.е. чтобы документ относился одновременно к нескольким кластерам-темам, и позволяет отвечать на вопросы «о чём этот текст» или «какие общие темы имеет эта пара текстов». Тематическая модель формирует сжатое векторное представление текста, которое помогает классифицировать, рубрицировать, аннотировать, сегментировать тексты. В отличие от известных векторных представлений семейства x2vec (word2vec, paragraph2vec, graph2vec и т.д.), в тематических векторах каждая координата соответствует теме и имеет содержательную интерпретацию. Тематическая модель привязывает к каждой теме список ключевых слов или фраз, который описывает ее семантику [7].
В отличие от тематической модели, BERT работает по принципу векторного представления слов, основанном на контекстной близости, когда слова, встречающиеся в тексте рядом с одинаковыми словами (а, следовательно, имеющие схожий смысл), в векторном представлении будут иметь близкие координаты векторов. Полученные векторы могут быть использованы для обработки естественного языка и машинного обучения, в частности, для прогнозирования слов [8]. Таким образом, BERT выполняет также и предиктивные функции, в отличие от тематической ML-модели. Это свойство векторных NLP-технологий может использоваться в некоторых специфических задачах анализа текста, например, для определения авторства. Для каждого человека характерны некоторые специфические словосочетания, клише и прочие лексические конструкции, которые можно сгруппировать в устойчивые вектора и вычислить частоту их повторения в определенных текстах, определив авторскую принадлежность.
Как устроена нейронная сеть BERT: архитектура и принцип работы
Чтобы натренировать BERT на предсказывание слов, на вход нейросети подаются фразы, где часть слов заменена на маску [MASK]. Например, получив на входе предложение «Я пришел в [MASK] и купил [MASK]», BERT на выходе должна показать слова «магазин» и «молоко». Это упрощенный пример с официальной страницы BERT, на более длинных предложениях разброс возможных вариантов становится меньше, а ответ нейросети однозначнее. Чтобы нейросеть научилась понимать соотношения между разными предложениями, необходимо дополнительно обучить ее предсказывать, является ли вторая фраза логичным продолжением первой [4].
При подаче текста на вход BERT-модели сначала выполняется его токенизация — разбиение на более мелкие единицы (токены): абзацы делятся на предложения, предложения на слова и пр. (рис. 4). Входной текст разбивается на список токенов, доступных в словаре. Например, уже упомянутая выше модель BERT-Base использует словарь из 30522 слов. Если в словаре отсутствует слово, то оно постепенно разбивается на более мелкие части, которые уже находятся в словаре. Таким образом контекст нового слова будет комбинацией смыслов его частей [3].
Таким образом, 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].
Такие отличные результаты XLNet обусловлены следующими факторами [11]:
- XLNet не маскирует слова в последовательности, благодаря чему отсутствует проблема несоответствия модели на предобучении и на тюнинге для отдельной задачи, что свойственно BERT;
- в отличие от типовых авторегрессионных моделей, XLNet не использует фиксированные прямонаправленный и обратнонаправленный порядки факторизации. Вместо этого XLNet максимизирует ожидаемый логарифм вероятности последовательности слов с учетом всех перестановок порядков слов. Благодаря шагу с перестановками, контекст для каждой позиции в последовательности может состоять из слов с правой и левой сторон. Таким образом, слово на каждой позиции в последовательности использует контекстную информацию со всех остальных позиций (bidirectional context).
В итоге, XLNet интегрирует в себе свойства авторегрессивных языковых моделей и автокодировщиков, минуя недостатки обоих методов.
Резюме
Подводя итоги реализации идей глубокого обучения в виде BERT-подобных моделей для задач обработки естественного языка, можно сделать несколько выводов:
- NLP-технологии активно используются в современном маркетинге, PR и управлении корпоративной репутацией;
- предварительное обучение ML-моделей без учителя на больших корпусах данных с последующей подстройкой под конкретные задачи позволяет существенно ускорить процесс тренировки и получить итоговые результаты с высокой степенью точности;
- BERT и другие аналогичные нейросети эффективны в случае типовых NLP-задач и могут выступать в качестве «полуфабриката» для создания чат-бота или рекомендательной системы, однако, даже при наличии статуса state-of-the-art, пока они не способны полностью заменить собой человека;
- XLNet продолжает идеи BERT, однако лишена недостатков этой архитектуры, что предупреждает проблему несоответствия ML-модели на предварительном обучении и последующей тренировке под специфику задачи, а также при использовании в «реальных условиях» (production).
Источники
- Глубокое обучение
- NLP – обработка естественного языка
- Как использовать BERT для мультиклассовой классификации текста
- BERT — state-of-the-art языковая модель для 104 языков. Туториал по запуску BERT локально и на Google Colab
- Как Big Data и Machine Learning помогут вам управлять корпоративной репутацией в интернете: разбираемся с SERM- технологиями
- Как мы анализировали отзывы о мобильном приложении с помощью машинного обучения
- BigARTM
- Технология Word2vec
- XLNet против BERT
- ИИ Google превзошел человека в распознавании языков
- XLNet: новый state-of-the-art в задачах обработки естественного языка