«Это третий день моего участия в ноябрьском испытании обновлений. Подробную информацию об этом событии см.:Вызов последнего обновления 2021 г."
Как новичок в области обработки естественного языка в 2018 году, BERT является мастером в области обработки естественного языка (NLP) в последние несколько лет, Как только он появился на сцене, он был поразительным, сокрушив все алгоритмы, установив рекорд в 11 тестов НЛП и даже выпустив несколько «выше человеческих» характеристик, он считается одной из самых популярных языковых моделей для будущих исследований НЛП и промышленных приложений.
Посмотрите на мои 2000 слов?
Принцип Берта
предварительно обученная модель
Что такое предварительно обученная модель? ----Обучите модель способности к обобщению!
Например, предположим, что у нас есть много данных из Википедии, тогда мы можем использоватьЭта часть огромных данных для обучения модели с сильными способностями к обобщению., когда нам нужно использовать его в определенном сценарии, таком как вычисление схожести текста, нам нужно просто изменить некоторые выходные слои, а затем выполнить инкрементное обучение с нашими собственными данными и внести небольшую корректировку весов.
Преимущество предварительной подготовки в том, чтоНет необходимости использовать большой объем корпуса для обучения при использовании в конкретной сцене., сэкономить время и эффективность, БертТакая предварительно обученная модель с сильной способностью к обобщению.
Полное имя БертаBidirectional Encoder Representation from Transformers
, то есть Энкодер двунаправленного Трансформатора.
в"двусторонний«Указывает, что когда модель обрабатывает слово, она может использовать информацию как о предыдущем, так и о следующем слове. Источником этого «двустороннего» является то, что BERT отличается от традиционной языковой модели, он не дает вам условия для всех предшествующих слов Предсказать наиболее вероятное текущее слово, но случайным образом замаскировать некоторые слова и использовать все слова, которые не замаскированы, для предсказания.
Против диаграммы ?
ELMo: использовать двунаправленную информацию и относиться к контексту как к функциям, но все же есть разница между неконтролируемым корпусом и нашим реальным корпусом, которая не обязательно соответствует нашей конкретной задаче.
OpenAI GPT: Используя одностороннюю информацию, декодер может видеть только предыдущую информацию и заменяет LSTM ELMo преобразователем. Хотя точная настройка возможна, некоторые специальные задачи отличаются от входных данных перед обучением.Ситуации, когда одно предложение несовместимо с двумя предложениями, трудно разрешить.
Bert: использует двунаправленную информацию, обладает сильными способностями к обобщению,Для конкретной задачи необходимо добавить только один выходной слой для тонкой настройки.
Основные новшества модели Берта заключаются в методе стадий предобучения (Pre-training), который используетсяMasked Language ModelиNext Sentence PredictionДва метода фиксируют представления на уровне слов и предложений соответственно.
Masked Language Model
Проще говоря, модель маскированного языка можно понимать как закрытую, автор случайным образом маскирует 15% слов в каждом предложении и использует его контекст для прогнозирования.
Серьезно, метод предварительного обучения модели маскированного языка таков: случайным образом маскировать некоторые токены в предложении, а затем обучать модель прогнозировать удаленный токен и использовать его контекст для прогнозирования.
Конкретными операциями являются:
15% токенов в случайном замаскированном корпусе, а затем окончательные скрытые векторы, выведенные из положения замаскированного токена, передаются в softmax для прогнозирования замаскированного токена.
Например:
my dog is hairy → my dog is [MASK]
Вот волосатый маскируется, а потомКакое слово используется для предсказания положения маски с помощью обучения без учителя?, но есть проблема с этим методом, потому что количество слов с mask15% уже очень велико, что приведет к некоторым словам, которые никогда не встречались на этапе доводки.Для того, чтобы решить эту проблему, автор сделал следующую обработку:
-
80% времени [маска], моя собака волосатая → моя собака [МАСКА].
-
10% времени — это случайное слово для замены слова-маски, моя собака волосатая -> моя собака — яблоко.
-
В 10% случаев это остается неизменным: моя собака волосатая -> моя собака волосатая.
Так зачем использовать случайные слова с некоторой вероятностью? ?
Это потому чтоПреобразователь поддерживает распределенное представление каждого входного токена., иначе Трансформер, скорее всего, запомнит, что [МАСКА] «волосатая». Что касается негативного влияния использования случайных слов, все остальные токены (т. е. токены, которые не являются «волосатыми») имеют вероятность 15% * 10% = 1,5%, а влияние незначительно.Глобальная видимость Трансформера увеличивает получение информации, но не позволяет модели получить полную информацию..
Next Sentence Prediction
Учитывая два предложения A и B, B с половиной вероятностью будет следующим предложением A, обучите модель предсказывать, является ли B следующим предложением A, и обучите модель, чтобы модель могла понять связь контекстов длинной последовательности.
В настоящее время многие задачи НЛП, такие как QA (система ответов на вопросы) и NLI (рассуждения на естественном языке), требуютпонимать связь между двумя предложениями, чтобы предобученную модель можно было лучше адаптировать к таким задачам. Личное понимание:
- Берт первыйИспользуйте Маску, чтобы увеличить количество информации, получаемой в поле зрения, увеличить количество дубликатов, а затем рандомизировать Маску., который ничем не отличается от RNN-подобного метода обучения предсказания по очереди, за исключением разных положений маски;
- Глобальное видение значительно снижает сложность обучения, а затем в качестве образца используется A+B/C, так чтоКаждый образец имеет 50% шанс увидеть примерно половину шума.;
- Невозможно выучить маску A+B/C напрямую, потому что я не знаю, что такое шум, поэтому я добавляю задачу предсказания next_sentence и обучаю ее одновременно с моделью маскированного языка, чтобыИспользуйте next, чтобы помочь модели идентифицировать шум/не шум, и используйте Masked Language Model для завершения большей части изучения семантики..
входить
Входная часть Bert представляет собой линейную последовательность, два предложения разделены разделителем, первое — [CLS], а последнее — [SEP].
Фактические входные данные для модели Берта представляют собой сумму вложений токенов, вложений сегментов и вложений позиций.
-
Вложения токенов: вектор слов.
-
Вложения сегментов: используются для различения двух предложений, указывая, к какому предложению принадлежит слово.
-
Вложения позиции: кодирует информацию о позиции символов.
Словарный запас: {0: я, 1: любовь, 2: север, 3: цзин, 4: вверх, 5: море, 6:,}
Введите исходное предложение BERT: «Я люблю Пекин, я люблю Шанхай».
встраивание токена: [0,1,2,3,6,0,1,4,5]
position embedding:[012345678]
segment embedding:[000001111]
вывод
Берт предварительно выводит модель обучения, не более чем один или несколько векторов.
Нисходящие задачи могут проходитьТонкая настройка(изменить параметры предварительно обученной модели) илиИзвлечение признаков(Не изменяйте параметры модели предварительного обучения, просто введите выходные данные модели предварительного обучения в качестве функции для последующей задачи) для использования двумя способами.
В оригинальной статье Берта используется метод тонкой настройки, но также используется эффект метода извлечения признаков.Например, в задаче NER лучший метод извлечения признаков лишь немногим хуже тонкой настройки. ноПреимущество метода извлечения признаков заключается в том, что необходимые векторы могут быть предварительно рассчитаны и сохранены для повторного использования, что значительно повышает скорость обучения модели последующих задач.
слова позади
Главный вклад Берта
- Представлена модель маскированного языка,Используйте двунаправленную языковую модель для предварительного обучения модели.
- Для предварительного обучения вводится новая цель самоконтроля на уровне предложений, котораяМожет узнать связь между предложениями.
- дополнительно провереноБольшие модели работают лучше: 12 --> 24 слоя.
- Представляет очень общую структуру решения для последующих задач., больше не модель настройки для задач.
- Он обновил записи многих задач НЛП и взорвал технологию неконтролируемой предварительной подготовки НЛП.
Преимущества Берта
-
Transformer Encoder имеет механизм самоконтроля, поэтомуБерт имеет двустороннюю функцию
-
Из-за двунаправленной функции и многоуровневого механизма самовнимания Берт должен использовать Cloze-версию языковой модели Masked Language Model для завершения предварительной подготовки на уровне токенов.
-
заПолучите семантические представления на уровне предложения выше, чем слова, Берт присоединился к Next Sentence Prediction, чтобы провести совместный тренинг с Masked Language Model.
-
заАдаптируйтесь для переноса обучения в условиях многозадачности, Берт разработал более общий входной слой и выходной слой
-
Небольшая стоимость тонкой настройки
Недостатки Берта.
-
[MASK] Метка не отображается в фактическом прогнозе, и использование слишком большого количества [MASK] во время обучения влияет на производительность модели;
-
Прогнозируется только 15% токенов на пакет, поэтому Берт сходится медленнее, чем модели слева направо (они предсказывают каждый токен).
-
Bert требует огромного расхода аппаратных ресурсов (16 транзакций для большой модели за четыре дня; 64 транзакций для более крупной модели за четыре дня.
Добро пожаловать в гигантский путеводитель~
использованная литература