Всем привет,
Сегодня существует масса языковых моделей! Многие из них имеют свой уникальный способ изучения «самоуправляемых» языковых представлений, которые могут использоваться другими последующими задачами.
В этой статье я решил обобщить текущие тенденции и поделиться некоторыми ключевыми идеями, чтобы объединить все эти новые подходы. 😃 (Слайд предоставлен Делвином и др. Stanford CS224n)
Проблема: контекстно-свободные/атомарные представления слов
Мы начали с контекстно-свободных подходов, таких как word2vec, вложения GloVE в моем предыдущем посте. Недостатком этих подходов является то, что они не учитывают синтаксический контекст. например “открыть банк счет “v/s” на ривере банк“. Слово банк имеет разные значения в зависимости от контекста, в котором используется слово.
Решение № 1: Контекстные представления слов
С ЭЛМО сообщество начало строить прямые (слева направо) и обратные (справа налево) модели языка последовательности и использовало вложения, извлеченные из обеих (объединенных) этих моделей, в качестве предварительно обученных вложений для последующих задач моделирования, таких как классификация (настроение и т. д.)
Потенциальный недостаток:
ELMo можно считать «слабо двунаправленной моделью», поскольку здесь они обучили 2 отдельные модели.
Решение № 2: действительно двунаправленные контекстные представления
Чтобы устранить недостаток «слабо двунаправленного» подхода и информационное узкое место, связанное с подходами LSTM / Recurrent, была разработана архитектура Transformer. Трансформаторы, в отличие от LSTM/RNN, представляют собой полностью прямую сеть. Вот краткий обзор архитектуры:
Кончик: Если вы новичок в трансформерах, но знакомы с ванильным многослойным персептроном (MLP) или полносвязными нейронными сетями. Вы можете думать о трансформаторах как о чем-то похожем на MLP/стандартный NN с причудливыми прибамбасами.
Но что делает трансформатор настолько более эффективным?
2 ключевые идеи:
1. Каждое слово имеет возможность выучить представление по отношению к любому другому слову (действительно двунаправленное) в предложении (думайте о каждом слове как о характеристике, заданной в качестве входных данных для полностью связанной сети). Для дальнейшего развития этой идеи давайте рассмотрим преобразователь как полносвязную сеть с 1 скрытым слоем, как показано ниже:
Если x1 и x5 — это 2 слова/токена из моего предыдущего примера (на река банк), теперь x1 имеет доступ к x5 вне зависимости от расстояния между x1 и x5 (слово на может выучить представление в зависимости от контекста, предоставленного словом банк)
2. По существу, поскольку каждый слой можно представить в виде умножение больших матриц (параллельное вычисление) более одного умножения на токен, которое происходит в LSTM, трансформатор намного быстрее, чем LSTM.
Проблема с двунаправленными моделями:
Но языковые модели (LM) должны моделировать P(w_t+1/w_1..w_t)? Как модель узнает что-нибудь, если вы покажете ей все слова?
БЕРТ развивает эту идею, используя преобразователи для изучения моделирования маскированного языка (MLM) и переводит задачу в P(w_masked/w_1..wt)
Компромисс: в многоуровневом маркетинге вы можете маскировать и предсказывать примерно 15% слов в предложении. Однако в LM слева направо вы предсказываете 100% слов в предложении (более высокая эффективность выборки).
Есть некоторые изменения во входных данных модели по сравнению с предыдущим подходом, основанным на LSTM. Вход теперь имеет 3 встраивания:
1. Встраивание токенов – (То же, что и встраивания в модель LSTM)
2. Вложения сегментов –
- Просто сообщает модели, к какому предложению принадлежит этот токен, например “Предложение А: Мужчина пошел купить молока. Предложение Б: Магазин был закрыт».
3. Расположение вложений –
- Можно рассматривать как число токена, например The – 0, man – 1 и так далее.
Важно отметить:
BERT — это огромная модель (110 миллионов параметров ~ 1 ГБ). Хорошо, как нам лучше?
Исследования показали, что чрезмерно параметризованные модели эффективны в изучении языковых нюансов лучше. Это можно продемонстрировать на графике ниже:
«Чем больше LM, тем лучше»
Это будет одной из наших мотиваций, когда мы будем изучать достижения по сравнению с моделью BERT.
Мы рассмотрим 4 модели, которые существенно улучшили идеи, представленные нами для модели BERT.
1. РОБЕРТА
Основная идея заключалась в том, чтобы обучать одну и ту же модель BERT дольше (больше эпох) и на большем количестве данных. Результаты оценки показывают, что она работает лучше, чем стандартная модель BERT, которую мы видели ранее.
2. XLNet
XLNet представила эту идею вложений относительного положения вместо встраивания статического положения, которое мы видели ранее. Они начинаются как линейные отношения и объединяются на более глубоких уровнях, чтобы изучить нелинейную функцию внимания.
Кроме того, вместо того, чтобы идти только слева направо, XLNet представила эту идею моделирования языка перестановок (PLM), которая позволяет нам случайным образом менять порядок для каждого обучающего предложения, как показано на рисунке. Вы по-прежнему предсказываете одно «MASKED» слово за раз, учитывая некоторую перестановку ввода. Это дает нам гораздо лучшую эффективность выборки.
3. АЛЬБЕРТ
Идея здесь заключалась в том, чтобы уменьшить переобучение путем факторизации входного слоя встраивания. Например, если размер словарного запаса составляет 100 КБ, а скрытый размер 1024. Модель может испытывать затруднения при прямом обобщении в этом многомерное векторное пространство особенно для редких слов. Вместо этого ALBERT предлагает метод факторизации, который сначала изучает довольно маленькое скрытое измерение (128) для каждого слова, а затем обучается отдельной функции, чтобы спроецировать это на скрытое измерение преобразователя 1024.
Чтобы еще больше сократить количество параметров, ALBERT предлагает разделить все параметры между слоями преобразователей, называемыми Межуровневое совместное использование параметров (Все 12 уровней BERT имеют одинаковые параметры). Это происходит за счет скорости во время тренировки, как показано в таблице.
4. ЭЛЕКТРА
ELECTRA представляет идею использования дискриминатора для оценки качества генеративной языковой модели. Это помогает языковой модели (генератору) лучше изучить языковые представления, чтобы помочь ввести дискриминатор в заблуждение как цель оптимизации.
Надеюсь, вам понравился этот пост! Оставайтесь с нами, чтобы узнать больше. ✌
Авторы слайдов — Джейкоб Делвин, Google Language AI