Как модель CBoW преобразует слово в вектор?

Вопрос или проблема

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

Таким образом, как в gensim, как это действительно работает для сопоставления слова с его векторным представлением? Просто ли она сохраняет все выходные данные финальной модели в качестве векторного представления центральных слов? Но выходные данные финальной модели будут близки к истинному векторному представлению one-hot, а не к вектору с контекстной информацией.

Кратко, мой вопрос таков:
Как модель CBoW преобразует одно слово в его векторное представление?

CBoW (Continuous bag-of-words) — это теоретическая архитектура, не совсем модель, сохраненная в памяти, или библиотека, такая как gensim. Gensim может быть реализацией CBoW, в которую вы вводите one-hot вектор и получаете на выходе вектор слова.

CBoW как теоретическая модель дает «репрезентативный смысл» слову на основе «репрезентативного смысла» окружающих его слов. «Репрезентативный смысл» может просто быть модным термином для векторных представлений слов. Поэтому, по сути, модель строит векторы слов из векторов окружающих слов, возможно, используя негативную выборку и NCE-убыток, но основной момент в том, что она тонко настраивает эти векторы, пока их «репрезентативный смысл» не станет отшлифованным.

Эти хорошо отшлифованные векторы затем, вероятно, могут быть вызваны из gensim через one-hot входные данные.

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

После завершения обучения мы используем матрицу весов первого скрытого слоя для получения вектора Word2vec. Матрица весов умножается на one-hot кодировку для получения вектора word2vec.

Если вы умножите вектор one-hot размером 1 x 10 000 на матрицу размером 10 000 x 300, это эффективно просто выберет строку матрицы, соответствующую «1». Вот небольшой пример, чтобы показать это визуально. :
введите описание изображения здесь

Это означает, что скрытый слой этой модели действительно функционирует как таблица поиска. Выходные данные скрытого слоя — это просто «вектор слова» для входного слова.

Ссылки: http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/

Ответ или решение

Mодель Continuous Bag of Words (CBOW) представляет собой одну из архитектур, используемых для представления слов в виде векторов, основанной на контекстных словах. Важно понимать, как CBOW справляется с этой задачей — преобразованием слова в векторное представление, тщательно основанным на окружающем контексте.

Механизм работы CBOW

CBOW принимает в качестве входа несколько контекстных слов и пытается предсказать целевое слово в центре. Этот процесс происходит следующим образом:

  1. Предобготовка данных:
    Для тренировки модели выстраиваются контекстные окна заданного размера, где целевое слово находится в центре, а окружающие его слова являются контекстом. Например, если центральное слово "машина", контекстом могут быть слова "хорошая", "быстрая", "на", "дороге".

  2. Инициализация векторов:
    Все слова в словаре инициализируются в случайных векторных представлениях. Эти векторы будут обучаться в процессе тренировки.

  3. Процессы тренировки:
    Во время обучения CBOW на каждой итерации берёт контекстные слова, объединяет их в векторы через среднее или сумму, и пытается предсказать центральное слово. В процессе прогноза CBOW обновляет векторные представления как контекстных, так и целевых слов.

  4. Использование весов:
    Когда модель завершает своё обучение, первый скрытый слой используется как таблица поиска для векторов слов. Этот слой содержит обученные веса, соответствующие словам в словаре. То есть, веса представляют собой векторные представления слов.

Преобразование слова в вектор

Чтобы получить векторное представление любого слова, используется следующая процедура:

  • Одноразовое представление:
    Сначала слово, которое мы хотим преобразовать, кодируется в виде one-hot вектора (где для слова выставляется 1, а для всех остальных 0).

  • Умножение на матрицу весов:
    Этот one-hot вектор умножается на матрицу весов, где строки соответствуют векторным представлениям слов. Например, если у нас есть матрица размерности 10,000 x 300 (где 10,000 — это общее количество слов в словаре, а 300 — размер вектора), умножая один горячий вектор 1 x 10,000 на матрицу, мы получаем вектор размерности 1 x 300, который и является вектором искомого слова.

Заключение

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

При обучении алгоритм исправляет вышеописанные векторы, чтобы более точно отражать значения слов в контексте, что в конечном итоге приводит к качественным вектораным представлениям. Эта способность адаптироваться к различному контексту делает CBOW мощным инструментом в обработке естественного языка и векторных представлениях слов.

Оцените материал
Добавить комментарий

Капча загружается...