Краткое изложение происхождения, вариантов использования и преимуществ / недостатков языковых моделей до LSTM: (R) NNLM, GloVe, Word2Vec и fastText.

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

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

(R) NNLM - (рекуррентные) языковые модели нейронных сетей (также иногда называемые нейронными языковыми моделями Bengio)

Это очень ранняя идея и одна из первых моделей встраивания. Модель изучает одновременно представление каждого слова и функцию вероятности для соседних последовательностей слов. Он способен «понимать» семантику предложения. Тренинг был основан на непрерывных мешках слов.

Учитывая, что модель принимает на вход предложение и выводит вложение, она потенциально может учитывать контекст. Однако архитектура остается простой.

Первоначальная версия не основана на рекуррентных нейронных сетях (RNN), но позже была разработана альтернатива, основанная на последних (не основанных на Gated Recurrent Units (GRU) или Long Short Term Memory (LSTM), но действительно на «ванили»). РНН). Хотя RNN работают медленнее и часто имеют проблемы с хранением информации о долгосрочных зависимостях, они позволили модели NNLM преодолеть некоторые из ее ограничений, такие как необходимость указывать длину входных данных или возможность сохранять модель того же размера, несмотря на более длинный ввод.

Google предоставил открытый исходный код предварительно обученной модели встраивания для большинства языков (английская версия находится здесь). Модель использует три скрытых слоя нейронной сети с прямой связью, обучается на английском корпусе Google News 200B и выводит 128-мерное вложение.

Преимущества:
- Простота: его можно быстро обучать и генерировать вложения (этого может быть достаточно для большинства простых приложений).
- Предварительно обученные версии доступны на множестве языков.

Недостатки:
- не учитываются долгосрочные зависимости.
- Простота может ограничивать потенциальные варианты использования.
- Часто встраиваются новые модели. намного мощнее для любой задачи

Йошуа Бенжио, Режан Дюшар, Паскаль Винсент, Кристиан Жовен, Нейронно-вероятностная языковая модель (2003), Journal of Machine Learning Research

Word2Vec

Созданный Google, он обычно рассматривается как поворотный момент в языковых моделях НЛП.

Для обучения модели широко распространенная версия Word2Vec отходит от непрерывных пакетов слов NNLM и использует скип-грамм и отрицательную выборку. По сути, вместо попытки предсказать следующее слово, модель пытается предсказать окружающее слово. Чтобы усложнить обучение, приводится множество отрицательных примеров (часто 4: 1), а модель решает простую задачу классификации (оба слова в одном контексте?) С использованием нейронной сети только с одним скрытым слоем.

Word2Vec удивил всех своей «интерпретируемостью» (например: женщина и мужчина часто разделены вектором, очень похожим на тот, который различает короля и королеву, и, таким образом, может быть интерпретирован как «гендерный» вектор).

Хотя вложения Word2Vec очень влиятельны, они больше не используются сами по себе, поскольку были заменены их преемниками.

Предварительно обученная модель легко доступна в Интернете и может быть импортирована с помощью библиотеки gensim python.

Преимущества:
- Очень простая архитектура: прямая связь, 1 вход, 1 скрытый слой, 1 выход
- Простота: быстро обучать и генерировать вложения (даже ваши собственные !), и этого может быть достаточно для простых приложений.
- Вложения «имеют значение»: они могут позволить расшифровать предвзятость
- Методологию можно распространить на множество других областей / проблем (например, lda2vec)

Недостатки:
-
Обучение на уровне слов: нет информации о предложении или контексте, в котором используется слово
- совпадения игнорируются, что означает техническую модель игнорирует то, как слово может иметь очень разное значение в зависимости от контекста, в котором оно используется (основная причина, по которой GloVe обычно предпочтительнее Word2Vec)
- Не слишком хорошо обрабатывает неизвестные и редкие слова

Томас Миколов, Кай Чен, Грег Коррадо, Джеффри Дин, Эффективное оценивание представлений слов в векторном пространстве (2013), Международная конференция по изучению представлений

Перчатка

GloVe часто очень тесно связан с Word2Vec, учитывая, что они возникли примерно в то же время и полагаются на некоторые из тех же ключевых концепций (то есть интерпретируемость векторов внедрения). Тем не менее, у них есть несколько важных отличий.

В Word2Vec частота совпадения слов не имеет большого значения, она просто помогает генерировать дополнительные обучающие выборки. Однако для GloVe это центральная информация, которая направляет обучение.

GloVe не обучается с помощью нейронных сетей / Skip-Gram / и т. Д. Вместо этого модель минимизирует разницу между продуктом вложений слов и логарифмом вероятности совместного появления с использованием стохастического градиентного спуска.

Вложения GloVe легко доступны на специальной странице на веб-сайте Стэнфордского университета (здесь).

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

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

Джеффри Пеннингтон, Ричард Сочер и Кристофер Д. Маннинг, GloVe: глобальные векторы для представления слов (2014), Эмпирические методы в обработке естественного языка

fastText

Первоначально созданный в Facebook, fastText расширяет Word2Vec, рассматривая каждое слово как составное из «n-граммов символов». По сути, вектор слов - это сумма всех его n-граммов (например: «они» потенциально могут иметь «th», «he», «ey», «the», «hey» в зависимости от гиперпараметров).

В результате вложения слов лучше подходят для менее употребляемых слов (учитывая, что они имеют общие n-граммы). Таким образом, модель также может генерировать вложения для неизвестных слов (в отличие от Word2Vec и GloVe), учитывая, что она разлагает их по их n-граммам.

fastText показал лучшие результаты, чем Word2Vec и GloVe, на нескольких различных тестах.

Предварительно обученная модель для 157 различных языков доступна здесь.

Преимущества:
- Относительно простая архитектура: прямая связь, 1 вход, 1 скрытый слой, 1 выход (хотя n-граммы добавляют сложности при создании вложений)
- Вложения «имеют смысл »: он может позволить расшифровать предвзятость
- Встраивание работает намного лучше, чем GloVe и Word2Vec для редких слов и слов, не входящих в словарный запас, благодаря методу n-граммов

Недостатки:
-
Обучение на уровне слов: нет информации о предложении или контексте, в котором используется слово
- совпадения игнорируются, что означает техническую модель игнорирует то, как слово может иметь очень разное значение в зависимости от контекста, в котором оно используется (основная причина, по которой GloVe может быть предпочтительнее)

Арман Жулен, Эдуард Граве, Петр Бояновски и Томас Миколов, Набор хитростей для эффективной классификации текста (2016), Европейское отделение Ассоциации компьютерной лингвистики

Как видите, все четыре модели имеют много общего, но каждую из них следует использовать в разных контекстах. К сожалению, это часто игнорируется. Я надеюсь, что это руководство сделает ваше модельное решение более информированным и приведет вас к лучшим результатам.

PS: В настоящее время я учусь на магистра инженерных наук в Беркли и все еще изучаю все это. Если есть что-то, что требует исправления или что-то неясное, пожалуйста, дайте мне знать. Вы также можете написать мне здесь.