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

искусственный интеллект глубокое обучение компьютерное зрение NLP
Авторы | Джереми Ховард, Себастьян Рудер
Переводчик | Лю Чжиюн
Монтаж | Натали, Винсент
Руководство по передовой ИИ:Эта статья представляет собой введение в новый документ Fast.ai, предназначенный для широкой аудитории, который иллюстрирует, как автоматически классифицировать документы с более высокой точностью и меньшими требованиями к данным, чем предыдущие методы. В этой статье простыми словами объясняются: обработка естественного языка, классификация текста, трансферное обучение, языковое моделирование и то, как этот новый подход объединяет эти идеи. Если вы уже знакомы с обработкой естественного языка и глубоким обучением, вы можете посетить домашнюю страницу проекта для получения технической информации: http://nlp.fast.ai/category/classification.html.

Для получения дополнительных галантерейных товаров, пожалуйста, обратите внимание на публичный аккаунт WeChat «AI Frontline» (ID: ai-front)
предисловие

Мы опубликовали статью «Точная настройка универсальной языковой модели для классификации текста» (ULMFiT) (https://arxiv.org/abs/1801.06146), в которой представлены предварительно обученные модели и полный код для реализации Python. Эта статья прошла рецензирование и была принята на ведущей международной конференции ACL 2018 (Ежегодное собрание Ассоциации компьютерной лингвистики, ACL 2018, http://acl2018.org/). Соответствующее видео можно просмотреть на этой веб-странице (http://nlp.fast.ai/category/classification.html), в котором подробно рассматривается метод, все используемые модули Python, предварительно обученные модели, и инструменты для создания собственного скрипта для модели.

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

  • Найти документы, связанные с судебными делами;

  • Выявление спама, ответов ботов и оскорбительных комментариев;

  • классифицировать положительные и отрицательные отзывы о товарах;

  • Классифицировать статьи по политическим мотивам;

  • разное.

По сравнению с предыдущими методами, ULMFiT требует гораздо меньше данных. (Рисунок 3 в статье)

Так что же именно улучшает эта новая технология? Давайте сначала взглянем на часть аннотации статьи, чтобы увидеть, что в ней говорится, а затем в следующих главах этой статьи мы расширим ее и посмотрим, что именно все это означает:

Трансферное обучение сильно повлияло на компьютерное зрение, но существующие подходы к обработке естественного языка по-прежнему требуют модификаций для конкретных задач и обучения с нуля. Мы предлагаем эффективный метод трансферного обучения, который можно применить к любой задаче обработки естественного языка, и представляем ключевые методы тонкой настройки языковых моделей. Наш метод значительно превосходит современные методы в шести задачах классификации текста с уменьшением ошибок на 18-20% для большинства наборов данных. Кроме того, в этом подходе используется только 100 помеченных образцов, что сравнимо с производительностью модели, обученной с нуля с использованием в 100 раз большего количества данных.

Обработка естественного языка, глубокое обучение и классификация

Обработка естественного языка (NLP) — это область информатики и искусственного интеллекта, которая, как следует из названия, относится к использованию компьютеров для обработки естественного языка. Естественный язык относится к обычному языку, на котором мы общаемся ежедневно, например, английскому или китайскому, а не к специализированным языкам, таким как компьютерный код или нотная запись. Обработка естественного языка используется в различных приложениях, таких как поиск, личные помощники, обобщение и многое другое. В целом обработка естественного языка является сложной задачей, поскольку строгие правила, которые мы используем при написании компьютерного кода, не применимы к нюансам и гибкости языка. Возможно, вы сами сталкивались с этими ограничениями, например, с разочаровывающим опытом общения с автоответчиками по телефону или с жалкими способностями ранних диалоговых ботов, таких как Siri.

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

Глубокое обучение также имело некоторый успех в обработке естественного языка, например, в автоматическом переводе, как упоминалось в статье New York Times. Общей чертой всех успешных задач обработки естественного языка является наличие большого количества размеченных данных, доступных для моделей обучения. Однако до сих пор эти приложения были ограничены учреждениями, которые могут собирать и маркировать большие наборы данных и имеют вычислительные ресурсы для их обработки в течение продолжительных периодов времени на компьютерных кластерах.

Как ни странно, есть одна область обработки естественного языка, которая по-прежнему чрезвычайно сложна для глубокого обучения, и та самая область, в которой она была так успешна в компьютерном зрении: классификация. Это относится к любой проблеме, где ваша цель состоит в том, чтобы классифицировать вещи (например, изображения или документы) (например, изображения кошек и собак, положительные и отрицательные отзывы и т. д.). Большое количество важных реальных проблем в основном связано с классификацией, поэтому успех глубокого обучения в ImageNet (проблема классификации) породил большое количество коммерческих приложений. При обработке естественного языка современные методы хороши для определения, например, положительного или отрицательного отзыва о фильме, что называется «анализом настроений». Однако, когда все становится более туманным, модель «колеблется», обычно из-за недостаточного количества помеченных данных, на которых можно учиться.

передача обучения

Наша цель — решить эти две проблемы: а) для решения проблем НЛП у нас не так много данных и вычислительных ресурсов; б) упростить классификацию НЛП. Мы (Джереми и Себастьян) оба работаем над той областью, где решается эта проблема: трансферным обучением. Трансферное обучение относится к использованию модели, обученной для решения задачи (например, классификации изображений в ImageNet), в качестве основы для решения других подобных задач. Обычный подход заключается в тонкой настройке исходной модели (например, классификация компьютерной томографии как раковой или нет, приложение трансферного обучения, которое Джереми разработал, когда создавал Enlitic). Поскольку точно настроенную модель не нужно изучать с нуля, она часто может достигать более высокой точности, чем модель, которая не использует перенос обучения, и требует гораздо меньше данных и времени вычислений.

Очень простое трансферное обучение, в котором используется только один слой весов (называемый встраиваниями), было популярно в течение нескольких лет, например встраивания Google word2vec. На практике, однако, полная нейронная сеть состоит из многих слоев, поэтому трансферное обучение с одним слоем — это, очевидно, только вкус бесконечных возможностей.

Итак, вопрос в том, где мы можем провести трансферное обучение, чтобы решить проблему обработки естественного языка? Ответ на этот вопрос был в руках Джереми, когда его друг Стивен Мерити объявил о разработке сетевой модели долговременной кратковременной памяти AWD (языковая модель AWD LSTM, https://github.com/salesforce/awd-lstm-lm), который похож на Это большое улучшение по сравнению с предыдущими методами языкового моделирования. Языковая модель — это модель обработки естественного языка, которая учится предсказывать следующее слово в предложении. Например, если вам нужно, чтобы клавиатура телефона угадывала следующее слово для ввода, вам нужно использовать языковую модель. Причина в том, что языковые модели очень хорошо угадывают, что вы собираетесь сказать дальше, и для этого требуется много здравого смысла во всем мире (например: «Я съел горячее» → «собака»; «Очень горячо» → «погода») и получить глубокое понимание синтаксиса, семантики и других элементов естественного языка. Это способность, которой мы обладаем, когда читаем и классифицируем документы, не зная об этом.

Мы обнаружили, что на практике этот подход к переносу обучения имеет характеристики, которые делают его общим подходом к переносу обучения для НЛП:

  • Подходит для задач с разными размерами документов, количеством и типами этикеток;

  • использовать единую архитектуру и процесс обучения;

  • Не требуется разработка пользовательских функций или предварительная обработка;

  • Никакой дополнительной внутридоменной документации или тегов не требуется.

сделай так, чтоб это работало

Расширенный метод ULMFiT (на примере IMDb)

Эта идея была опробована ранее, но для достижения адекватной производительности требуются миллионы документов. Мы обнаружили, что, более точно настроив языковую модель, мы могли бы работать лучше. В частности, мы обнаружили, что если скорость обучения модели тщательно контролируется, а предварительно обученная модель обновляется таким образом, чтобы она не забывала то, чему научилась раньше, модель может лучше адаптироваться к новым наборам данных. Нас особенно радует то, насколько хорошо модели могут учиться на ограниченных выборках. В наборе данных текстовой классификации с двумя классами мы обнаружили, что, обучив наш метод только на 100 помеченных образцах (и предоставив ему доступ примерно к 50 000 немаркированных образцов), мы смогли добиться того же. Образцы, обученные с нуля, имеют такую ​​​​же производительность, как и модель.

Еще одним важным открытием является то, что мы можем использовать любой достаточно большой корпус языков для создания общих языковых моделей: мы можем точно настроить любой целевой корпус обработки естественного языка. Мы решили использовать набор данных Wikitext 103 Стивена Мерити, который содержит большое предварительно обработанное подмножество английской версии Википедии.

Исследования в области обработки естественного языка в основном сосредоточены на английском языке, а обучение моделям на неанглоязычных языках сопряжено с рядом проблем. В целом количество общедоступных наборов данных для языков, отличных от английского, невелико, и если вы хотите обучить модель классификации текста для языка (например, тайского), вам придется собирать собственные данные. Сбор данных на языках, отличных от английского, часто означает, что вам нужно аннотировать данные или найти аннотаторов самостоятельно, поскольку краудсорсинговые сервисы, такие как Amazon Mechanical Turk, в основном используют англоязычных аннотаторов.

С помощью ULMFiT мы можем упростить обучение моделей классификации текстов на языках, отличных от английского, потому что все, что нам нужно, это доступ к Википедии, а Википедия в настоящее время имеет 301 язык, и небольшое количество документов можно легко аннотировать. вручную. Также не стесняйтесь добавлять документы без тегов. Чтобы упростить эту задачу, мы вскоре запустим модельный зоопарк (модельный зоопарк, http://nlp.fast.ai/category/model_zoo.html), который предоставляет предварительно обученные языковые модели для нескольких языков.

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

В области компьютерного зрения успех трансферного обучения и доступность предварительно обученных моделей ImageNet изменили эту область. Многие, в том числе предприниматели, ученые и инженеры, используют отлаженные модели ImageNet для решения важных задач, связанных с компьютерным зрением: от повышения урожайности сельскохозяйственных культур в Африке до роботов, которые делают кубики Lego. Теперь те же самые инструменты можно использовать для обработки естественного языка, и мы ожидаем увидеть распространение одних и тех же приложений в этой области.

Хотя мы проиллюстрировали современное состояние классификации текстов, предстоит еще много работы, которую необходимо проделать, чтобы действительно в полной мере воспользоваться преимуществами трансферного обучения НЛП. В области компьютерного зрения появилось много важных и проницательных работ, в которых глубоко анализируется трансферное обучение в этой области. В частности, Йосински и др. попытались ответить на вопрос, «насколько переносимы функции в глубоких нейронных сетях (https://arxiv.org/abs/1411.1792)», а Хух и др. изучили, «что делает ImageNet хорошим для передачи обучения (https://arxiv.org/abs/1608.08614)». Йосински даже создал богатый инструментарий визуализации (https://github.com/yosinski/deep-visualization-toolbox), чтобы помочь специалистам-практикам лучше понять функции своих моделей компьютерного зрения, как показано в видео ниже. Показать:

V.QQ.com/small/afraid/no 065…

Оригинальная ссылка:

http://nlp.fast.ai/classification/2018/05/15/introducting-ulmfit.html