Это 23-й день моего участия в августовском испытании обновлений. Ознакомьтесь с подробностями мероприятия: Испытание августовского обновления
В этой статье представлены два новых вектора слов: Glove, опубликованный командой Стэнфорда в 2014 году, и fastText, опубликованный командой Facebook в 2017 году.
Glove
Glove использует информацию о совпадении слов. мы определяем- матрица частоты встречаемости слов, где элементывыразить словопоявляется в словеколичество контекстов. Здесь есть несколько определений слова «окружающая среда». Например, в текстовой последовательности, если словопоявляется в словеНа расстоянии не более 10 слов слева или справа мы можем считать словопоявляется в словесреда один раз. сделатьдля любого слова, входящего в словоколичество сред. Так
на словопоявляется в словевероятность окружения. Эту вероятность также называют словоми словоВероятность одновременного появления
Отношение вероятности совпадения
В документе Glove показаны вероятность совпадения и соотношение следующего набора пар слов.
solid | gas | water | fashion | |
---|---|---|---|---|
0.00019 | 0.000066 | 0.003 | 0.000017 | |
0.000022 | 0.00078 | 0.0022 | 0.000018 | |
8.9 | 0.085 | 1.36 | 0.96 |
Мы можем наблюдать следующие явления:
- Для слов, связанных со льдом, но не связанных с паром,Например=solid, мы ожидаем отношение вероятности совпаденияБольше, например 8,9 в последнем столбце выше.
- Для слов, не относящихся ко льду, но относящихся к пару,Например= газ, ожидаем отношение вероятности совпаденияМеньше, например 0,085 в последнем столбце выше.
- Для слов, связанных как со льдом, так и с паром,Например=вода, мы ожидаем отношение вероятности совпаденияблизко к 1, например 1,36 в последнем столбце выше
- Для слов, не связанных ни со льдом, ни с паром,Например=мода, мы ожидаем отношение вероятности совпаденияблизко к 1, например 0,96 в последнем столбце выше
Можно видеть, что отношение вероятности совпадения может более интуитивно выражать отношения между словами. Перчатка пытается выразить отношения вероятности совпадения как функцию векторов слов.
Выразите отношение вероятности совпадения с вектором слов
Суть Glove заключается в использовании векторов слов для выражения отношения вероятности совпадения. И любое такое соотношение требует трех слов,ивектор слов. Для вероятности совпадения, мы существительноеи словоЭто центральное слово и фоновое слово соответственно. Мы используемиВекторы слов, представляющие центральное слово и фоновое слово соответственно
Мы можем использовать функции, связанные с векторами словчтобы выразить отношение вероятности совпадения:
Следует отметить, что функцияТам может быть не только один вовлечен. Во-первых, мы используем разность векторов, чтобы выразить отношение вероятности совпадения, и перепишем приведенную выше формулу как
Поскольку отношение вероятности совпадения является скаляром, мы можем использовать внутренний продукт между векторами, чтобы преобразовать функциюНезависимая переменная далее переписывает
Мы надеемся, что из-за симметрии совместного появления любой пары слов могут одновременно выполняться следующие два свойства:
- Вектор слов любого слова в качестве центрального слова и фонового слова должен быть равен: для любого слова,
- пословная матрица сочетаемостидолжен быть симметричным: для любого словаи,
Для того чтобы удовлетворить двум вышеуказанным свойствам, с одной стороны, мы делаем
и получить. Правая часть двух приведенных выше уравнений одновременно
Логарифмируя обе части вышеприведенного уравнения, мы можем получить
С другой стороны, мы можем поставить в вышеуказанную формулу.Заменить на сумму двух смещенных членов,получить
будет индексироватьиВзаимозаменяемо, мы можем проверить, что два свойства симметрии могут удовлетворяться приведенным выше уравнением одновременно.
Следовательно, для любой пары слови, выражение отношения вероятностей совпадения в терминах их векторов слов может быть, наконец, упрощено, чтобы выразить логарифм их частоты совпадения слов:
функция потерь
Частота совпадения слов в приведенной выше формуле получается непосредственно из обучающих данных.Чтобы узнать вектор слов и соответствующий термин смещения, мы надеемся, что левая и правая части в приведенной выше формуле максимально близки, учитывая размер словаря.и весовая функция, мы определяем функцию потерь как
для весов, предлагаемый выбор, когда(Например),сделать(Например), и наоборот. Следует отметить, что вычислительная сложность функции потерь и матрицы частоты встречаемости словКоличество ненулевых элементов линейно. мы можем начать сПроизвольно сэмплируйте мини-партии ненулевых элементов в и используйте стохастический градиентный спуск для перебора векторов слов и членов смещения. Когда все векторы слов изучены, Glove использует сумму вектора центрального слова и вектора фонового слова слова в качестве окончательного вектора слова слова.
Вывод некоторых формул о перчатке не является строгим, он просто предлагает некоторые дизайнерские идеи, чтобы удовлетворить эти два условия, как должна быть спроектирована частота совпадения слов. Поэтому, если вы не понимаете определенный шаг вывода, это нормально, просто игнорируйте прошлое, если вы знаете свойства окончательной функции потерь.
fastText
быстрый текст находится вМодель пропуска грамм с использованием отрицательной выборкиНа основании каждое центральное слово рассматривается как набор подслов, и изучается словесный вектор подслов.
Возьмите слово where в качестве примера, установите подслово из 3 символов, а его подслова включают "
заменить непосредственно на
Мы видим, что исходный вектор центрального слова заменяется суммой векторов подслов центрального слова. В отличие от изучения целых слов (word2vec и Glove), векторы слов для новых слов вне словаря могут использовать сумму соответствующих векторов подслов в fastText.
fastText важен для некоторых конкретных языков, таких как арабский, немецкий и русский. Например, в немецком языке много сложных слов, например, настольный теннис по-немецки называется «Tischtennis». fastText может выражать соотношение двух слов через подслова, такие как «Tischtennis» и «Tennis».
Если встречается новое слово, для fastText он может найти все векторы подслов нового слова из обучающего набора, а затем выполнить сумму для вычисления вектора слова нового слова.