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

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

Почему встраивание слов?

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

Метод однократного кодирования имеет два основных недостатка:

  1. Для переменных с высокой мощностью - с множеством уникальных категорий - размерность преобразованного вектора становится неуправляемой.
  2. Отображение совершенно неинформировано: «похожие» категории не помещаются ближе друг к другу в пространстве для встраивания.

Чтобы решить эту проблему, мы используем вложения слов: простыми словами, веса скрытого слоя нейронной сети при обучении на огромном корпусе. Давайте подробно обсудим вложения слов.

Работа с вложениями

Начнем с word2vec. Основная суть статьи Миколова 2013 года гласит:

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

Давайте углубимся в подробности. Мы собираемся создать нейронную сеть с единственным скрытым слоем. На входе мы передадим один горячий вектор, представляющий слово, а на выходе мы получим вероятность того, что это слово находится рядом с центральным словом. Это одна из тех нейронных сетей, где фактическая цель - это не результат, который мы получаем, в этом случае мы заинтересованы в изучении весов скрытого слоя. Здесь потребуется выходной слой, чтобы получить веса в скрытом слое.

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

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

Настройка вложений:

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

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

Эти исправления могут быть изменены для ваших конкретных случаев использования, с помощью которых вы можете определить тип собственного существительного по одному слову, уже присутствующему в корпусе, по смыслу напоминающему тип сущности. Как и здесь, я заменяю все сайты электронных покупок, такие как Flipkart, Amazon и т. Д., На электронную коммерцию, а также сайты социальных сетей, такие как Instagram, Whatsapp, Facebook, на то же самое.

Существует множество встраиваний, которые могут сэкономить вам много усилий, а также сэкономить драгоценное время во время соревнований. Очень странная загадка действительно раскрыта (надеюсь)!