Использование прогнозов следующего предложения. Тонкая настройка не требуется.

В этом посте мы устанавливаем меру тематического сходства среди новостных статей, собранных из RSS-каналов New York Times. Основная цель - ознакомиться с реализацией BERT (PyTorch) и предварительно обученными моделями.

Что такое BERT?

BERT расшифровывается как B двунаправленных E кодировщиков R представлений от T преобразователей. Он взят из статьи, опубликованной Google AI Language в 2018 году [1]. Он основан на идее, что точная настройка предварительно обученной языковой модели может помочь модели достичь лучших результатов в последующих задачах [2] [3].

Мы видели трансформеры [4], используемые для обучения (однонаправленных) языковых моделей в статье OpenAI [3]. BERT использует продуманную схему задач (маскированную языковую модель) для обучения двунаправленных моделей, а также добавляет задачу прогнозирования следующего предложения для улучшения понимания на уровне предложений. В результате BERT получает новые современные результаты по одиннадцати задачам обработки естественного языка.

Вот отличная серия статей о BERT. Если вы уже знакомы с языковыми моделями, вы можете начать с части 2 (в противном случае вы можете проверить часть 1):



Мы также уже рассказывали об OpenAI в этом посте:



описание проблемы

RSS-канал New York Times предоставляет нам список новостных статей с их названиями, описаниями, датами публикации, ссылками и категориями. Для данной статьи мы хотим автоматически находить другие статьи, посвященные той же теме, не полагаясь на информацию о категории (чтобы в будущем мы могли применить алгоритм к нескольким источникам).

Пример:

Заголовок: На что и не повлияло прекращение работы правительства

Описание: Сотрудники Управления транспортной безопасности проверяют пассажиров в международном аэропорту Питтсбурга на прошлой неделе. С начала остановки работники агентства стали чаще вызывать заболевших по всей стране.

Предсказание следующего предложения

Во-первых, нам нужно посмотреть, как BERT создает свой ввод (на этапе предварительного обучения). Входная последовательность состоит из двух «предложений» (объясненных ниже), каждое из которых заканчивается токеном [SEP]. К заголовку добавляется токен [CLS], соответствующие скрытые состояния которого используются для прогнозирования следующего предложения.

Для генерации каждой обучающей входной последовательности мы отбираем два отрезка текста из корпуса, которые мы называем «предложениями», даже если они обычно намного длиннее отдельных предложений (но также могут быть короче). [1]

Предварительно обученная модель BERT, согласно статье [1], достигает точности 97% ~ 98% в этой задаче со сбалансированным набором данных.

Предложенное решение

Наполняем первое предложение заголовком статьи, а второе - описанием. В идеале пары заголовок-описание, взятые из одной и той же статьи, должны иметь высокий балл за следующее предложение от предварительно обученной модели (т.е.описание считается весьма вероятным следующим предложением заголовка). Если нет, нам нужно будет настроить предварительно обученную модель (дополнительно обучить модель с новыми данными).

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

Это преобразованная входная последовательность из предыдущего примера:

[CLS] what is and isn ’ t affected by the government shut ##down [SEP] transportation security administration officers checking passengers at pittsburgh international airport last week . the agency ’ s employees have called out sick in increased numbers across the country since the shut ##down began .[SEP]

Это приведенная выше входная последовательность, в которой второе предложение заменено описанием из другой статьи:

[CLS] what is and isn ’ t affected by the government shut ##down [SEP] gr ##udge ##s can be good . they are one habit that humans have evolved to keep ourselves from the pain of breakup ##s and also from eating mo ##zza ##rella sticks for every meal . [SEP]

Полученные результаты

Сначала я попробовал использовать предварительно обученную модель без какой-либо тонкой настройки, и она уже отлично работала. Набор данных состоит из 2719 статей из RSS-каналов New York Times, причем статьи без описания или очень короткие описания удалены.

Для правильных пар (название и описание взяты из одной статьи) только 2,5% из них получили оценку за следующее предложение ниже 50% от предварительно обученной модели (BERT-base- без корпуса). 97,3% из них имеют оценку выше 90%. Ниже приводится пример, который был предсказан отрицательным:

Название: Между тем: для ножа, кинжала, меча, мачете или убийцы зомби, просто спросите этих дам

Описание: Whitehead’s Cutlery из Бьютта, штат Монтана, исполнилось 128 лет, и он с радостью будет точить ножницы, проданные несколько поколений назад.

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

В качестве примера я использую заголовок из показанной ранее правительственной статьи о закрытии и генерирую 2719 входных последовательностей с описаниями из всего корпуса. Вот пять лучших совпадений (самые высокие оценки в следующем предложении):

Top 5 Descriptions Matching this Title: What Is and Isn’t Affected by the Government Shutdown
1. Transportation Security Administration agents are among the most visible federal employees affected by the government shutdown.
2. Transportation Security Administration agents at Chicago Midway International Airport on Dec. 22, the first day of the government shutdown.
3. Damage from Hurricane Michael lingers throughout Marianna, Fla. The government shutdown has made things worse for many residents.
4. Scientists aboard a National Oceanic and Atmospheric Administration ship in San Juan, P.R. The administration has furloughed many workers because of the government shutdown.
5. Major federal agencies affected by the shutdown include the Departments of Agriculture, Commerce, Homeland Security, Housing and Urban Development, the Interior, Justice, State, Transportation, and the Treasury and the Environmental Protection Agency.

Интересно, что фактическое описание из статьи не попало ни в первую пятерку, ни в первую десятку. Но все же предсказанные описания кажутся достаточно хорошими.

Выводы и дальнейшая работа

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

Фактически, одна из последующих задач, на которой оценивался BERT, - это Quora Question Pairs [5], которая предлагает модели определить, задают ли два вопроса одно и то же. Если мы можем вручную пометить некоторые данные, результаты могут быть еще лучше.

Другой более эффективный способ (с точки зрения требуемых вычислений) способ измерения схожести документов или предложений - это встраивание предложений. В отличие от RNN и его вариантов (например, LSTM и GRU), извлечение вложений предложений из моделей-трансформеров не так просто (см. Это обсуждение).

Исходный код

Код основан на реализации BERT в PyTorch от Hugging Face:



Параметры предварительно обученной модели взяты из официальной реализации Tensorflow от Google:



Блокнот Jupyter, использованный для этого поста:



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

использованная литература

  1. Девлин, Дж., Чанг, М.-В., Ли, К., и Тутанова, К. (2018). BERT: Предварительная подготовка глубоких двунаправленных преобразователей для понимания языка.
  2. Ховард, Дж., И Рудер, С. (2018). Тонкая настройка универсальной языковой модели для классификации текста .
  3. Рэдфорд, А., Салиманс, Т. (2018). Улучшение понимания языка с помощью генеративного предварительного обучения .
  4. А. Васвани, Н. Шазир, Н. Пармар, Дж. Ушкорейт, Л. Джонс, А. Н. Гомес, Ł. Кайзер, И. Полосухин. (2017). Внимание - это все, что вам нужно .
  5. З. Чен, Х. Чжан, Х. Чжан и Л. Чжао. 2018. Пары вопросов Quora .

2019/03/23 Обновление

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



Похожие сообщения



(Этот пост также опубликован в моем личном блоге.)