Вложения слов и семантические представления

Вступление..

Мы уже поняли, как создать разреженный вектор, такой как TF-IDF и BoW, для документа с размерами, соответствующими словам в словаре корпуса (этот размер будет огромным). Просмотрите мой предыдущий блог из этой серии: НЛП Нулевой к одному: разреженные представления документов (часть 2/30), чтобы понять разреженные представления. (* разреженный означает наличие слишком большого количества нулей в векторных представлениях)
Как обсуждалось в предыдущем блоге, у таких длинных разреженных векторных представлений, как TF-IDF и BoW, есть некоторые серьезные недостатки.
1. Большой объем памяти и дорогостоящие вычисления из-за длинных векторов
2. Значительная потеря памяти, поскольку порядок слов в документах не имеет значения.
3. Трудно моделировать, поскольку количество параметров модели для обучения будет находиться в масштабе длины входного вектора, а это огромно.

В этом блоге мы увидим, как решать эти проблемы, используя методы уменьшения размерности и что важно глубокое обучение. Используя различные методы, мы извлечем мощные словесные представления, называемые вложениями (плотные, короткие векторы). В отличие от TFIDF или BoW, длина этих векторов находится в диапазоне 50–300. Эти векторы лучше работают в каждой задаче НЛП, чем разреженные векторы, так как порядок / структура слов играет важную роль. Таким образом, слова с одинаковым значением имеют похожие представления.
Например: «лодка» и «корабль» означают две разные вещи в разреженных векторных представлениях, но встраивание позволяет уловить сходство между этими словами. Существуют 2 самые популярные модели встраивания с открытым исходным кодом Word2Vec и GLoVe. Методы word2vec быстры, эффективны в обучении и легко доступны в Интернете с помощью статического кода и предварительно обученных встраиваний.

Word2Vec ..

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

Но мы собираемся узнать, как глубокое обучение можно использовать для создания этих встраиваний, было бы лучше, если бы мы начали с нейронной архитектуры и интуиции, лежащей в основе этой архитектуры. Предлагаются 2 популярные разные архитектуры, с которыми должен ознакомиться каждый практикующий НЛП. Предложенные архитектуры состояли из модели непрерывного мешка слов (CBOW) и модели пропуска грамматики.

CBOW (Непрерывный мешок слов) ..

Интуиция..

Слово, используемое одинаковыми способами / контекстом, приводит к аналогичным представлениям. Например, такие синонимы, как грустный и несчастный, используются в аналогичном контексте. Но как определить контекст?

Соседние слова будут использовать контекст целевого слова (которое в приведенном выше примере является «печальным». Итак, здесь контекст - это просто окно из c слов слева и справа от целевого слова.

Постановка задачи классификации ..

Следуя описанной интуиции, мы попытаемся предсказать текущее целевое слово («грустный») на основе контекстных слов (окружающих слов). Количество окружающих слов, которые следует учитывать при прогнозировании, называется контекстным окном. В приведенном выше примере, если контекстное окно равно 2, тогда данные поезда будут ([«было бы», «быть», «память», «к»], [«грустно»]). Итак, если вы внимательно присмотритесь, эта нейронная архитектура не контролируется, все, что нам нужно предоставить, это огромный корпус (набор всех документов) не более того. Он может создавать X (входные переменные), y (целевое слово) непрерывно , как показано на диаграмме ниже и он может строить плотные вложения слов из корпуса.

После того, как X: входные / контекстные слова и y: выходные / целевые слова созданы из корпуса, как описано, непосредственная задача - разработать модель, которая выполняет классификацию для нас, где мы пытаемся предсказать целевое слово из контекстных слов.

Нейронная архитектура ..

У этой нейронной архитектуры есть 3 важных аспекта: входной уровень, лямбда-слой / слой усреднения и плотный softmax. Самый важный и запутанный компонент - это входной слой. Слой ввода часто называют слоем встраивания.
Допустим, у нас есть словарь из N слов, и мы планируем получить плотный вектор размера K. Входной слой отображает каждое контекстное слово через матрицу вложения N в плотное векторное представление размерности K, поэтому это матрица NxK, в которой каждое слово имеет соответствующий вектор размера K.

Изображение входного слоя:

Как только мы поймем работу входного уровня, остальная часть архитектуры станет очень простой для понимания. Все слова контекста подаются на слой внедрения / уровень ввода, и все векторы, соответствующие словам контекста, усредняются. Этот аспект обрабатывается слоем лямбда или средним слоем. Как только средний вектор подается в слой softmax, который предсказывает целевое слово из всего словаря корпуса.

CBOW Training ..

Теперь мы поняли интуицию, а затем и нейронную архитектуру. Теперь мы попытаемся разобраться в механизмах тренировки и в том, как обновляются веса. Я призываю читателей пролистать мой предыдущий блог (Теория и код НЛП: процедура обучения глубокому обучению (часть 4/40), чтобы понять, как происходит обучение в нейронных сетях.

Процесс обучения можно описать, ответив на 2 вопроса:
1. Что такое обучаемые / обучаемые параметры?
2. Что такое функция потерь?

Что такое обучаемые / обучаемые параметры?
Уровень внедрения инициализируется случайным образом, и все числа в слое внедрения являются обучаемыми параметрами. Таким образом, уровень внедрения становится все лучше и лучше по мере того, как в модель вводится больше данных.
Что такое функция потерь?

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

Примечание..

Мы обсудим следующую популярную архитектуру Word2Vec, «Skip-gram», в следующем блоге этой серии. Также мы обсудим GloVe, еще одно популярное предобученное встраивание.

Предыдущая: НЛП от нуля до единицы: процедура глубокого обучения (часть 4/30)
Следующая: НЛП от нуля до единицы: вложения на основе подсчета, перчатка (часть 6 / 40)