Что такое вложения слов? Зачем их учить? Грубо говоря, это векторные представления определенного слова. Сказав это, мы расскажем, как их генерировать? И что еще более важно, как это делается?

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

Зачем изучать встраивание слов

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

Но когда дело доходит до обработки естественного языка, системы традиционно рассматривают слова как отдельные атомарные символы, и поэтому «кошка» может быть представлена ​​как Id537, а «собака» - как Id143.

Алгоритмы встраивания слов

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

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

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

ˆ Continuous Bag-of-Words, или модель CBOW.

ˆ Непрерывная модель скип-грамм.

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

Существует несколько алгоритмов встраивания слов для решения этой проблемы и значительного повышения эффективности сети. Эти:

  1. Word2Vec.
  2. Перчатка.
  3. FastText.

1. Word2Vec

Статистический метод для эффективного обучения автономному встраиванию слов из текстового корпуса. Его разработали Томас Миколов и др. в Google в 2013 году в ответ на повышение эффективности обучения внедрению на основе нейронных сетей, и с тех пор он стал де-факто стандартом для разработки предварительно обученных встраиваний слов. Он состоит из группы связанных моделей которые используются для встраивания слов. Эти модели представляют собой неглубокие двухслойные нейронные сети, которые обучены реконструировать лингвистические контексты слов. Word2vec принимает в качестве входных данных большой корпус текста и создает векторное пространство, обычно состоящее из нескольких сотен измерений, причем каждому уникальному слову в корпусе назначается соответствующий вектор в пространстве. Векторы слов располагаются в векторном пространстве таким образом, чтобы слова, имеющие общий контекст в корпусе, располагались в пространстве близко друг к другу.

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

Как это делается:

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

Например, соотношение мужчина / женщина определяется автоматически, и с помощью индуцированных векторных представлений Король - Мужчина + Женщина дает вектор очень близко к королеве.

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

Непрерывная модель skip-gram учится, предсказывая окружающие слова с учетом текущего Word. См. Фиг.5.

2. GloVe: глобальные векторы для представления слов

GloVe - это алгоритм обучения без учителя для получения векторных представлений слов. Это расширение метода Word2Vec для эффективного изучения словарных векторов, разработанного Пеннингтоном и др. в Стэнфорде. Классические модели представления слов в векторном пространстве были разработаны с использованием методов матричной факторизации, таких как скрытый семантический анализ (LSA), которые хорошо справляются с использованием глобальной текстовой статистики, но не так хороши, как изученные методы, такие как Word2Vec, для захвата значения и демонстрации его в задачах. например, вычисление аналогий (например, пример короля и королевы выше).

Как это делается:

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

GloVe - это новая модель глобальной лог-билинейной регрессии для неконтролируемого изучения представлений слов, которая превосходит другие модели в задачах аналогии слов, сходства слов и распознавания именованных сущностей. "Дальнейшее чтение"

3. FastText

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

Подробную документацию по его реализации можно найти здесь:

Использование встраиваемых слов

Узнайте о встраивании:

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

Повторное использование встраивания:

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

Практическую программную реализацию встраивания слов можно найти здесь:

Ограничения

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

Ссылка:

  1. Джейсон Браунли, 2018 г., Глубокое обучение для обработки естественного языка. Версия: v1.1
  2. Https://nlp.stanford.edu/pubs/glove.pdf
  3. Https://nlp.stanford.edu/projects/glove/
  4. Https://arxiv.org/pdf/1411.2738.pdf
  5. Https://fasttext.cc/
  6. Https://machinelearningmaster.com/use-word-embedding-layers-deep-learning-keras/
  7. Https://towardsdatascience.com/deep-learning-4-embedding-layers-f9a02d55ac12