Я расскажу о другом способе создания встраивания слов, потому что традиционный Word2vec может использовать любую из двух архитектур моделей для создания распределенного представления слов: непрерывный пакет слов (CBOW) или непрерывный скип-грамм. В архитектуре непрерывного набора слов модель предсказывает текущее слово из окна окружающих контекстных слов. Порядок контекстных слов не влияет на предсказание (допущение мешка слов). В архитектуре непрерывной скип-граммы модель использует текущее слово для прогнозирования окружающего окна контекстных слов. Архитектура skip-gram придает больший вес словам, которые чаще встречаются в контексте, по сравнению со словами, которые встречаются реже. CBOW быстрее, а skip-gram медленнее, но лучше справляется с нечастыми словами.

Основное различие между CBOW и Skip-Gram заключается в том, что CBOW учится предсказывать целевое слово по контексту, а с другой стороны, Skip Gram предназначен для предсказания контекста. Для лучшего понимания я постараюсь объяснить это наглядно. Рассмотрим следующий пример: -

Пример:-

CBOW: Мальчик бежит по _____. Заполните поле, в данном случае это «беговая дорожка».

Скип-грамм: ___ ___ ___ беговая дорожка. Завершите контекст слова. В данном случае это "Мальчик бежит по улице".

CBOW изучит контекст, как показано на рис. 4, а затем модель CBOW скажет, что наиболее вероятным словом является «беговая дорожка», «пляж» или «дорога». Такие слова, как «гора», привлекут меньше внимания модели, потому что она предназначена для предсказания наиболее вероятного слова.

Skip-gram поймет слово «беговая дорожка», как показано на рис. 5, и скажет нам, что существует большая вероятность, контекст: «Мальчик бежит дальше», «Девушка бежит» или какой-либо другой релевантный контекст.

Но подход, используемый word2vec, является неоптимальным, поскольку он не в полной мере использует статистическую информацию о совпадении слов. Джеффри Пеннингтон из Стэнфорда продемонстрировал модель глобальных векторов (GloVe), которая сочетает в себе преимущества модели пропуска грамматики word2vec, когда дело доходит до задач аналогии со словами, с преимуществами методов матричной факторизации, которые могут использовать глобальные статистическая информация. Модель GloVe…

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

Простые векторы совместной встречаемости

Анализ контекста, в котором используется слово, - это трансцендентное понимание для решения этой проблемы. Учет соседних слов - вот что заставило НЛП совершить качественный скачок в последние годы.

Давайте установим параметр «m», обозначающий размер окна. В этом примере мы будем использовать размер 1 для образовательных целей, но 5–10, как правило, более распространены. Это означает, что каждое слово будет определяться своим соседним словом слева, а также словом справа. Это моделируется математически путем построения матрицы совпадения для каждого окна. Давайте посмотрим на следующий пример:

Я попытаюсь объяснить на простом примере из трех предложений.

1. Люблю статистику.

2. Люблю программировать.

3. Мне нужно изучить НЛП.

Здесь слово «любовь» определяется словами «я» и «программирование», что означает, что мы увеличиваем значение как для «я люблю», так и для «любовного программирования». Мы делаем это для каждого окна и получаем следующую матрицу совместной встречаемости:

Заполнив матрицу совместной встречаемости, мы можем отобразить ее результаты в многомерном пространстве. Поскольку «Программирование» и «Статистика» имеют одинаковые значения совместной встречаемости, они будут помещены в одно и то же место; это означает, что в данном контексте они означают одно и то же (или «почти одно и то же»). «НЛП было бы самым близким словом к этим двум значениям», «оно имеет самое близкое возможное значение, но это не одно и то же», и так далее для каждого слова.

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

Пусть P (k | w) будет вероятностью того, что слово k появится в контексте слова w. Рассмотрим слово, тесно связанное со словом ice, но не со словом steam, например solid. P (solid | ice) будет относительно высоким, а P (solid | steam) будет относительно низким. Таким образом, соотношение P (твердый | лед) / P (твердый | пар) будет большим. Если мы возьмем такое слово, как газ, связанное с паром, но не со льдом, отношение P (газ | лед ) / P (газ | пар) вместо этого будет маленьким. Для слова, относящегося как к льду, так и к пару, например, вода, мы ожидаем, что соотношение будет близко к единице. Мы также ожидаем близкого к единице соотношения слов, не относящихся ни к льду, ни к пару, например мода.

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

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

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

Целью обучения GloVe является изучение векторов слов таким образом, чтобы их скалярное произведение равнялось логарифму вероятности совпадения слов. Благодаря тому, что логарифм отношения равен разности логарифмов, эта цель связывает (логарифм) отношения вероятностей совместного появления с разностями векторов в векторном пространстве слов. Поскольку эти отношения могут кодировать некоторую форму значения, эта информация также кодируется как векторные разности. По этой причине результирующие векторы слов очень хорошо справляются с задачами аналогии со словами, такими как те, которые проверяются в пакете word2vec.

Теперь, когда наши отношения - это все, что нас волнует, функция стоимости дает нам модель -

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

Результаты в перчатках

Модель была обучена на пяти корпусах, включая дамп Википедии 2010 года с 1 миллиардом токенов и дамп Википедии 2014 года с 1,6 миллиардами токенов, Gigaword 5 с 4,3 миллиардами токенов, комбинацию Gigaword 5 и дамп Википедии 2014 года на общую сумму 6 миллиардов токенов, и, наконец, 42 миллиарда токенов веб-данных от Common Crawl.

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

Результаты задания аналогии со словом:

Сходство слов:

Распознавание именованных сущностей:

По сравнению с word2vec, за то же время обучения GloVe показывает более высокую точность в задаче аналогии со словом.

Мы обучили нейронную сеть на данных классификации спама с предварительно обученной перчаткой вместо использования word2vec Skip-gram.

Github: - https://github.com/AtulKumar4/Neural-Network