Учебник по глубокому обучению NLP по анализу коллекций документов с извлечением суммирования текста с использованием встраиваемых предложений на основе преобразователя, полученных из языковых моделей SOTA
Обработка естественного языка (NLP) - это разнообразная область; подходы и методы столь же разнообразны, как и разнообразие текстовых образцов, доступных для анализа (например, блоги, твиты, обзоры, политические документы, новые статьи, журнальные публикации и т. д.). Выбор хорошего подхода требует понимания вопросов, которые задаются в отношении данных, и пригодности имеющихся данных. Это руководство, которое включает в себя пошаговое руководство по коду, направлено на то, чтобы показать, как встраивание предложений можно использовать для получения полезной информации из текстовых данных в качестве важной части исследовательского анализа данных (EDA).
Пример использования: исследовательский проект CoronaNet
Я использую Исследовательский проект CoronaNet для проведения оценки реакции правительства на текущую пандемию под руководством НЛП. Детали построения базы данных CoronaNet изложены в статье, опубликованной в Nature, и я получил доступ к базе данных через часто обновляемый репозиторий GitHub. Данные доступны по странам, и есть ссылки на первоисточники. Используя библиотеку Python газета3k, я скопировал оригинальные статьи о политике в нескольких странах региона Ближнего Востока и Северной Африки, включая Иран, Объединенные Арабские Эмираты, Египет, Палестину и Йемен. Предварительная обработка выполняется с помощью встроенных предложений на основе Transformer, выпущенных в прошлом году, созданных и поддерживаемых Лабораторией повсеместной обработки знаний (UKP) в Техническом университете Дармштадта. Эти встраивания глубокого обучения основаны на достижениях языковых моделей SOTA (современных), BERT и RoBERTa.
Что такое извлекающее суммирование текста?
Целью резюмирования текста является сжатие текстовой информации в компактный и последовательный формат, причем стимулом является повышение эффективности и доступности. Экстрактивное реферирование выбирает подмножество предложений, которое лучше всего представляет документ (этот процесс не создает новых предложений в отличие от абстрактного реферирования), итоговое резюме состоит полностью из предложений, извлеченных из исходного документа. Традиционно предложения оцениваются по выбранной метрике для измерения сходства, после чего предложения ранжируются в порядке важности, определяемого по показателю схожести или измерению центральности.
Что такое встраивание предложений?
Вложения предложений можно описать как метод обработки документов, в котором предложения отображаются в векторы как средство представления текста действительными числами, подходящими для машинного обучения. Измерения подобия, такие как косинусное сходство или манхэттенское / евклидово расстояние, оценивают семантическое текстовое сходство, так что оценки могут быть использованы для множества полезных задач НЛП, включая поиск информации, идентификацию перефразирования и обобщение текста.
Почему именно глубокое обучение?
В настоящее время, согласно тестам, наиболее эффективные методы для каждой задачи НЛП основаны на глубоком обучении. За последние несколько лет были достигнуты заметные успехи в области глубокого обучения, в частности, в архитектуре трансформера, и это привело к появлению оценок SOTA NLP, которые значительно превосходят более старые методы, такие как встраивание перчаток. Эта статья состоит из двух частей: введение во встраивание предложений на основе преобразователя, за которым следует практический пример кода извлекающего резюмирования текста с использованием Sentence-BERT (S-BERT).
Трансформаторы и предварительно обученные языковые модели
Революционная модель Transformer была представлена в 2017 году компанией Vaswani et al. Архитектура, ориентированная только на внимание, оказала огромное влияние на область НЛП, и теперь ее влияние ощущается и в других областях, таких как компьютерное зрение и графические нейронные сети. Для более детального ознакомления с трансформерами можно найти замечательное учебное пособие Аннотированный трансформер Гарвардского НЛП. В 2018 году, опираясь на эту архитектуру, Devlin et al. создал BERT (двунаправленные представления кодировщика от трансформаторов) предварительно обученную языковую модель, которая устанавливает записи SOTA для различных задач NLP, включая тест семантического текстового сходства (STS) (Cer et al. 2017).
Вслед за BERT, RoBERTa был выпущен компанией Lui et al. 2019 , и в этой модели используется надежно оптимизированный подход к предварительному обучению для улучшения исходной модели BERT. Эти предварительно обученные языковые модели являются мощными инструментами, и эта парадигма распространилась на другие языки. Во введении к арабскому НЛП я пишу о применении преобразователей к арабскому языку и привожу примеры кода.
Несмотря на замечательные достижения языковых моделей на основе Transformer, конструкция BERT делает его непригодным для поиска семантического сходства, а также для неконтролируемых задач, таких как кластеризация. Это связано с тем, что использование BERT для поиска наиболее похожей пары в коллекции из 10 000 предложений потребует около 50 миллионов вычислений вывода (n ∙ (n-1) / 2), что займет примерно 65 часов. . Кроме того, эти вычислительные накладные расходы превращаются в расходы, поскольку обучение модели BERT в течение 65 часов на графическом процессоре 16 ГБ (Nvidia Tesla SXM V100 по цене ~ 10 600 долларов США) потребует аренды чрезмерного количества времени на облачном графическом процессоре для одного вычисления.
В прошлом году исследователи из UKP Lab выпустили S-BERT (Sentence-BERT), который модифицирует предварительно обученную сеть BERT для использования сиамских и триплетных сетевых структур для получения семантически значимых вложений предложений, которые могут быть вычислены с использованием косинусного сходства (Реймерс и Гуревич, 2019 ). Удивительно, но с S-BERT поиск наиболее похожей пары из 10 000 предложений занимает время от 65 часов до ~ 5 секунд.
Тонкая настройка Sentence-BERT
В прошлом методы встраивания нейронных предложений начинали обучение со случайной инициализации. Вместо этого S-BERT использует предварительно обученные сети BERT и RoBERTa, а затем настраивает их для создания встраиваемых предложений фиксированного размера. Это достигается за счет использования сиамской сетевой структуры, как показано на диаграмме ниже.
В этой сиамской сети BERT или RoBERTa могут использоваться в качестве предварительно обученной языковой модели, стратегия объединения по умолчанию заключается в вычислении среднего всех выходных векторов, а u и v - это вложения предложений. Перед классификатором softmax этап конкатенации представлен как (u, v | u-v |), и это было определено как оптимальное для точной настройки. Целевая функция классификации оптимизирована с учетом кросс-энтропийных потерь и может быть представлена следующим уравнением:
Стратегия объединения
S-BERT, что важно, добавляет операцию объединения к выходным данным модели BERT / RoBERTA для создания встраивания предложений фиксированного размера. Как уже упоминалось, по умолчанию используется стратегия объединения MEAN, поскольку было определено, что она превосходит использование выходных данных токена [CLS] или стратегии объединения MAX. Встраивание предложений фиксированного размера является ключом к созданию вложений, которые можно эффективно использовать в последующих задачах, таких как определение семантического текстового сходства с помощью оценок косинусного сходства.
Вывод с помощью Sentence-BERT
После обучения S-BERT использует регрессивную целевую функцию для вывода в сиамской сети, аналогичную той, которая используется для точной настройки. Как видно на диаграмме ниже, косинусное сходство между двумя вложениями предложений (u и v) вычисляется как оценка между [-1… 1].
Регрессивная целевая функция оптимизируется с потерей среднеквадратичной ошибки, и конкатенация не требуется перед вычислением косинусного сходства вложений предложений.
Реализация
Для создания встраиваемых предложений S-BERT или S-RoBERTa доступны два основных варианта: библиотека Python Huggingface transformers или библиотека Python, поддерживаемая UKP Lab, предложения-преобразователи. Обе библиотеки полагаются на Pytorch, и главное отличие состоит в том, что использование Huggingface требует определения функции для стратегии объединения, как показано в фрагменте кода ниже.
Чтобы создать вложения предложений S-BERT с помощью Huggingface, просто импортируйте Autotokenizer и Automodel для токенизации и создайте модель из предварительно обученной модели S-BERT (базовая модель BERT, которая была точно настроена на наборе данных логического вывода на естественном языке). Как видно из фрагмента кода ниже, Pytorch используется для вычисления вложений, и применяется ранее определенная функция объединения MEAN.
Извлекающее резюмирование текста с помощью преобразователей предложений
При использовании преобразователей предложений существует несколько предварительно обученных моделей S-BERT и S-RoBERTa для встраивания предложений. Для задачи обобщения текста я предпочитаю использовать дистиллированную версию S-RoBERTa, точно настроенную на наборе данных идентификации перефразирования. Как видно из фрагмента кода ниже, с помощью преобразователей предложений легко создать модель и вложения, а затем вычислить косинусное сходство.
После вычисления косинусного сходства я использую код, адаптированный из библиотеки Python LexRank, чтобы найти самые центральные предложения в документе, рассчитанные по степени центральности. Наконец, чтобы составить резюме, я выбираю пять предложений с наивысшим рейтингом.
Примеры резюме
Для этой статьи я начал с документов из Ирана и Египта, произвольно отобрав из коллекций из 47 и 113 документов соответственно. Примеры резюме, подготовленные для Ирана, были последовательными и информативными. В первом примере ниже ясно, что речь идет о взаимодействии Ирана с МВФ.
Во втором примере в резюме упоминаются действия Ирана по контролю информации о Covid-19. Однако отсутствие дат затрудняет размещение этой информации.
К сожалению, образцы из набора данных по Египту содержали менее полезные сводки, поскольку отсутствовали ключевые фрагменты информации. В приведенном ниже примере человек упоминается без идентификации, даты не упоминаются, а ссылка на «центры» неоднозначна.
Заключительные мысли
После того, как вложения предложений были произведены с помощью S-BERT, извлекающее обобщение текста является лишь одним из многих доступных вариантов НЛП. Поэтому, что касается следующих шагов, я намерен попробовать другие методы с встраиваниями предложений на основе Transformer. Например, использование семантического текстового подобия для создания системы поиска информации на основе запросов, в которой документы будут ранжироваться по важности в зависимости от конкретного запроса. Я приветствую все отзывы, поэтому не стесняйтесь связываться со мной в Linkedin.