Текстовое представление НЛП из набора слов в Word2Vec

NLP

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

Данные определяют верхний предел машинного обучения, и алгоритм только максимально приближает этот верхний предел.В этой статье данные относятся к текстовому представлению.Поэтому понимание процесса разработки текстового представления имеет важное значение для изучающих НЛП. Затем начнем наш процесс разработки. Текстовое представление делится надискретное представлениеираспределенное представление:

1. Дискретное представление

1.1 Горячее представление

Горячее кодирование, называемое горячим векторным кодированием, также является наиболее часто используемым методом в разработке признаков. Шаги следующие:

  1. Создайте словарь после сегментации текста, каждая сегментация представляет собой битовое значение, а битовое значение равно 0 или 1.
  2. Текстовое представление каждого сегмента слова представлено матрицей, в которой биты сегмента равны 1, а остальные биты равны 0.

Например:John likes to watch movies. Mary likes too

John also likes to watch football games.

Из приведенных выше двух предложений можно составить словарь: **{"Джон": 1, "любит": 2, "кому": 3, "смотреть": 4, "кино": 5, "также": 6, "футбол " : 7, "игры": 8, "Мария": 9, "тоже": 10} **

Каждый индекс словаря соответствует биту. Затем используйте One-hot, чтобы выразить как:

**John: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0] **

likes: [0, 1, 0, 0, 0, 0, 0, 0, 0, 0]......И так далее, и так далее.

One-hot означает, что текстовая информациянедостаток:

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

1.2 Модель мешка слов

В модели Bag-of-words текст, такой как предложения или документы, может быть представлен как набор слов, независимо от грамматики или порядка слов.

Векторное представление документа может напрямую добавлять векторное представление слова каждого слова.. Например:

John likes to watch movies. Mary likes too

John also likes to watch football games.

Из приведенных выше двух предложений можно составить словарь: **{"Джон": 1, "любит": 2, "кому": 3, "смотреть": 4, "кино": 5, "также": 6, "футбол " : 7, "игры": 8, "Мария": 9, "тоже": 10} **

Тогда векторное представление первого предложения:[1,2,1,1,1,0,0,0,1,1], где 2 означаетlikesВ этом предложении встречается 2 раза и так далее.

Модель мешка слов также имеет следующеенедостаток:

  • После векторизации слов между словами существует отношение размера.Не обязательно, что чем больше слов появляется, тем больше вес.
  • Между словами нет отношения порядка.

1.3 TF-IDF

TF-IDF (термин «частота — обратная частота документа») — широко используемый метод взвешивания для поиска информации и интеллектуального анализа данных. TF означает частоту термина, а IDF означает обратную частоту документа.

Важность слова увеличивается пропорционально количеству раз, которое оно встречается в документе, но уменьшается обратно пропорционально частоте его появления в корпусе. Чем больше раз слово встречается в статье и чем меньше раз оно встречается во всех документах одновременно, тем более репрезентативной является статья.

TF_w=\frac{在某一类中词条w出现的次数}{该类中所有的词条数目}

IDF=log(\frac{语料库的文档总数}{包含词条w的文档总数+1}), знаменатель увеличивается на 1, чтобы знаменатель не равнялся 0.

Так,TF-IDF=TF*IDF, из этой формулы видно, что когда количество вхождений w в документе увеличивается, значение TF-IDF уменьшается, поэтому оно отражает вышеизложенное.

**Недостатки:** По-прежнему не выражает порядок отношений между словами.

1,4 n-граммовая модель

Чтобы сохранить порядок слов, модель n-грамм выполняет операцию скользящего окна, где n представляет размер скользящего окна, например, модель 2-грамм, то есть два слова обрабатываются как группа, а затем назад Переместить длину слова, чтобы снова сформировать другой набор слов, сгенерировать из них словарь и закодировать результат в соответствии с моделью мешка слов. Модифицированная модель учитывает порядок слов.

Например:

John likes to watch movies. Mary likes too

John also likes to watch football games.

Приведенные выше два предложения могут составить словарь,{"Джону нравится": 1, "нравится": 2, "смотреть": 3, "смотреть фильмы": 4, "Мэри нравится": 5, "тоже нравится": 6, "Джон тоже": 7, "тоже любит": 8, "смотреть футбол": 9, "футбольные игры": 10}

Тогда векторное представление первого предложения:[1, 1, 1, 1, 1, 1, 0, 0, 0, 0], где первая 1 означаетJohn likesОно появляется один раз в предложении и так далее.

**Недостатки:** по мере увеличения размера n словарный запас будет расширяться в геометрической прогрессии и становиться все больше и больше.

1.5 Задачи с дискретным представлением

Из-за следующих проблем для общих задач НЛП можно использовать дискретное представление текстовой информации для решения задачи, но оно не подходит для сценариев, требующих высокой точности.

  • Невозможно измерить взаимосвязь между векторами слов.
  • Объем словарного запаса увеличивается по мере роста корпуса.
  • Последовательность слов в n-граммах расширяется экспоненциально по мере роста корпуса, причем быстрее.
  • Дискретные данные для представления текста вызовут проблему разреженности данных, что приведет к потере информации, которая отличается от информации, которую мы понимаем в нашей жизни.

2. Распределенное представление

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

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

2.1 Матрица совпадений

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

Матрица совпадения слов в локальном окне может извлекать синтаксическую и семантическую информацию,Например:

  • I like deep learning.
  • I like NLP.
  • I enjoy flying

С приведенными выше тремя предложениями установите скользящее окно на 2, вы можете получить словарь:{"I like","like deep","deep learning","like NLP","I enjoy","enjoy flying","I like"}.

Мы можем получить матрицу совпадения (симметричная матрица):

image

Каждая сетка в середине представляет собой количество раз, которое фраза, состоящая из строк и столбцов, встречается в словаре вместе, что также отражаетсовпадениехарактеристики.

Существующие проблемы:

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

3. Представление нейронной сети

3.1 NNLM

NNLM (Neural Network Language model), языковая модель нейронной сети была предложена в 2003 году, а промежуточный продукт — векторная матрица слов получается путем обучения, которая представляет собой векторную матрицу представления текста, которую мы хотим получить.

NNLM говорит об определении размера форвардного окна, которое на самом деле совпадает с упомянутым выше окном. Последнее слово в этом окне рассматривается как у, а предыдущее слово рассматривается как вход х. Вообще говоря, это модель, которая предсказывает вероятность последнего слова в этом окне.

image

Ниже представлена ​​схема структуры сети NNLM:

image

  • Входной слой — это ввод прямого слова, которое представляет собой векторное представление слова с горячим кодированием с матрицей V*1.

  • Матрица C — это матрица проекции, то есть представление вектора плотных слов, которое есть в нейронной сети.w матрица параметров, размер матрицы D*V, который просто полностью соединяется (умножается) с входным слоем для получения матрицы D*1, а линейное отображение используется для проецирования однократного представления на плотное D-мерное представление.

    image

  • Выходной слой (softmax) — это, естественно, слово, которое нужно предсказать в прямом окне.

  • Оптимальная матрица проекции C получается с помощью BP+SGD, которая является промежуточным продуктом NNLM и искомой матрицы текстового представления.Спроектируйте разреженную матрицу в плотную векторную матрицу с помощью NNLM.

3.2 Word2Vec

Word2Vec, предложенный Google в 2013 году, является одной из наиболее часто используемых моделей встраивания слов. Word2Vec на самом деле представляет собой неглубокую модель нейронной сети, которая имеет две сетевые структуры: ** CBOW (Continues Bag of Words) непрерывный набор слов и Skip-gram. **Word2Vec похож на NNLM выше, но проще, чем NNLM.

CBOW

CBOW получает контекст с обеих сторон среднего слова, затем использует окружающие слова для предсказания среднего слова, берет среднее слово как y и берет другие слова в окне как ввод x, вход x кодируется горячим способом. , а затем передается через скрытый слой выполняет операцию суммирования, и, наконец, через функцию активации softmax можно рассчитать вероятность генерации каждого слова.Следующая задача - обучить вес нейронной сети, чтобы максимизировать общую вероятность генерации всех слов в корпусе, а полученная матрица весов является результатом вектора слов текстового представления.

image

Skip-gram:

Skip-gram — это вероятностная модель, которая предсказывает появление контекстных слов в окне через текущее слово.Текущее слово рассматривается как x, а другие слова в окне — как y.Вероятность других слов по-прежнему предсказывается скрытый слой, за которым следует функция активации Softmax. Как показано ниже:

image

Оптимизация:

  • Иерархический Софтмакс:Пока что это не конец, потому что если просто подключить функцию активации softmax, объем вычислений все равно очень большой, а слов столько, сколько весовых матриц сколько размерностей, так что вот предложение.Иерархический Софтмакс (Hierarchical Softmax), использовать дерево Хаффмана для кодирования словаря выходного слоя, что эквивалентно разбиению на каждый конечный узел,Мгновенно уменьшает размер до глубины дерева, как показано на рисунке ниже. В этом уроке Дерево помещает слова с высокой частотой в конечные узлы, близкие к корневому узлу, и каждый раз нужно выполнять только два вычисления классификации и вычислять вклад всех векторов слов, не являющихся конечными узлами, на пути.

image

  • **Отрицательная выборка: **Что делает этот метод оптимизации, так это выборка отрицательных выборок, отличных от правильных слов, и конечной целью является уменьшение количества отрицательных выборок и уменьшение объема вычислений. Каждое слово в словаре соответствует отрезку строки, и все слова образуют деление между [0, 1], как показано на рисунке ниже, а затем каждый раз случайным образом генерируют целое число между [1, M-1], и см. если оно попадает в диапазон [1, M-1].Какое слово соответствует какому слову выбрано, и, наконец, будет получен набор отрицательных образцов.

    image

Проблемы с Word2Vec

  • Обучается отдельно для каждого окна локального контекста, не используя статистику, содержащуюся в глобальной матрице одновременности.
  • Не может хорошо представить и обработать полисемию, потому что используется уникальный вектор слова.

3.3 sense2vec

Проблема с моделью word2vec заключается в неоднозначности слов. Например, обычное значение слова «утка» — «водоплавающая птица» или «приземистый», но для модели word2vec оно имеет тенденцию к нормализации и сглаживанию всех понятий для получения окончательного представления.

4. Реализация кода

github Word2Vec обучающая статья в Википедии





image.png

Добро пожаловать, чтобы добавить общение WeChat! Обратите внимание на «Машинное обучение».