От RNN к BERT
BERT — это современная модель, представленная Джейкобом Девлином в Google, которая изменила ход поиска контекстуального значения слов. В конце концов, Google принял его в своей поисковой системе в 2019 году, чтобы импровизировать свои поиски.
Контексты — это вычисленные вложения слов, которые представляют значение слова на основе предложений. Более ранние представления встраивания слов, такие как Word2Vec и GloVe, представляли слово без контекстуального значения. Однако с развитием языковых моделей от RNN до BERT вычисления для поиска контекстных вложений стали более эффективными и качественными.
RNN — это нейронная сеть с прямой связью, развертываемая с течением времени как таковая. Они имеют дело с данными последовательности, где входные данные имеют определенный порядок, который приводит к нескольким типам архитектур, включая:
- Модели векторной последовательности принимают на вход вектор фиксированного размера и выводят последовательность любой длины. (например, в подписях к изображениям).
- Модели Sequence-Vector принимают последовательности входных данных и выводят вектор фиксированного размера. (Например, в классификации настроений).
- Модели Sequence-Sequence принимают последовательности входных и выходных последовательностей векторов. (например, в языковом переводе). Модель «последовательность к последовательности» состояла из кодировщика и декодера. Кодер кодирует слова последовательно во встраивание, а декодер преобразует эти вложения в слова.
Однако у RNN есть некоторые недостатки,
- Они очень медленно обучаются, настолько медленно, что для обучения мы используем усеченную версию обратного распространения ошибки.
- Они не очень хорошо справляются с длинными последовательностями; у нас есть градиенты, которые исчезают и взрываются, если сеть слишком длинная.
Затем в 1991 году появился LSTM, который заменил клетки LSTM нейронами в RNN. Эта ячейка имеет ветвь, которая позволяет переданной информации пропустить большую часть обработки текущей ячейки и перейти к следующей. Это позволяет сохранить память для более длинной последовательности.
Некоторые недостатки LSTM:
- Он не фиксирует истинное значение слов, даже двунаправленно, поскольку технически он просто объединяет контекст, изученный слева направо и справа налево.
- RNN медленнее обучаются, LSTM намного медленнее, чем RNN.
- RNN/LSTM требует последовательного потока для обучения, что не позволяет эффективно использовать современные графические процессоры для параллельных вычислений.
В 2017 году была представлена архитектура нейронной сети Transformer, в которой используется архитектура кодировщик-декодер, очень похожая на RNN; разница в том, что входную последовательность можно передавать параллельно, а не последовательно. Это помогло трансформерам обучаться быстрее, поскольку слова могут обрабатываться одновременно, а контекст слов лучше усваивается, поскольку они могут изучать контекст с обоих направлений одновременно.
Преобразователь состоит из двух ключевых компонентов: кодировщика и декодера, как и в RNN. Кодировщик принимает английское слово и одновременно генерирует вложения. Эти вложения являются векторами, которые инкапсулируют значение слова. Похожие слова имеют более близкие номера. Декодер принимает эти вложения и ранее сгенерированные слова в качестве входных данных, а затем выводит следующие сгенерированные слова.
Трансформаторы концептуально более привлекательны, чем ячейки LSTM, поскольку они могут видеть физическое разделение задач. Кодер изучает контекст входной последовательности, а декодер изучает, как сопоставить входную последовательность с выходной последовательностью. Оба они по отдельности имеют некоторое понимание языка, и из-за этого понимания мы разделяем архитектуру и создаем системы, которые понимают язык.
Складываем декодеры Трансформеров, и получаем архитектуру трансформера GPT; и наоборот, если мы складываем кодировщики трансформеров, мы получаем BERT, представление двунаправленного кодировщика от трансформеров.
В Трансформерах был недостаток,
- Он может решить только нейронный машинный перевод (например, перевод с английского на французский).
Принимая во внимание, что в BERT он может решать такие проблемы, как:
- Нейронный машинный перевод
- Вопрос Ответ
- Анализ настроений
- Обобщение текста
- И многое другое!
Часть 2. Если мы объединим кодировщики Трансформеров, мы получим BERT