GloVe , придуманная от Global Vectors, является моделью для распределенного представления слов. Модель представляет собой алгоритм неконтролируемого обучения для получения векторных представлений слов. Это достигается путем отображения слов в осмысленное пространство, где расстояние между словами связано с семантическим сходством. [1] Обучение выполняется на агрегированной глобальной статистике совместного появления слов из корпуса, и полученные представления демонстрируют интересные линейные подструктуры векторного пространства слов . Как модель логарифмически-билинейной регрессии для неконтролируемого обучения представлений слов, она объединяет особенности двух семейств моделей, а именно методы глобальной матричной факторизации и локального контекстного окна.
Он разработан как проект с открытым исходным кодом в Стэнфорде [2] и был запущен в 2014 году. Он был разработан как конкурент word2vec , и в оригинальной статье отмечались множественные улучшения GloVe по сравнению с word2vec. По состоянию на 2022 год [обновлять]оба подхода устарели, и модели на основе Transformer , такие как BERT , которые добавляют несколько слоев внимания нейронной сети поверх модели встраивания слов, похожей на Word2vec, стали считаться последним словом в области обработки естественного языка. [3]
Вы узнаете слово по его окружению (Ферт, Дж. Р. 1957:11) [4]
Идея GloVe заключается в построении для каждого слова двух векторов , так что относительные положения векторов захватывают часть статистических закономерностей слова . Статистическая закономерность определяется как вероятности совместного появления. Слова, которые похожи друг на друга по значению, должны также быть похожи друг на друга по вероятностям совместного появления.
Пусть словарь будет , набор всех возможных слов (т.е. «токенов»). Пунктуация либо игнорируется, либо рассматривается как словарь, и аналогично для заглавных букв и других типографских деталей. [1]
Если два слова встречаются близко друг к другу, то мы говорим, что они встречаются в контексте друг друга. Например, если длина контекста равна 3, то мы говорим, что в следующем предложении
GloVe 1 , созданный 2 из 3 Global 4 Vectors 5 , является 6 моделью 7 для 9 распределенного 10 слова 11 представления 12
слово «модель 8 » находится в контексте «слова 11 », но не в контексте «представления 12 ».
Слово не находится в контексте самого себя, поэтому «модель 8 » не находится в контексте слова «модель 8 », хотя, если слово появляется снова в том же контексте, то оно учитывается.
Пусть будет числом раз, которое слово появляется в контексте слова во всем корпусе. Например, если корпус состоит только из «Я не думаю, что это проблема». мы имеем с тех пор, как первое «это» появляется в контексте второго, и наоборот.
Пусть будет числом слов в контексте всех случаев слова . Подсчитав, мы имеем (за исключением слов, встречающихся в самом начале и конце корпуса)
Пусть будет вероятностью совместного появления . То есть, если выбрать случайное появление слова во всем документе и случайное слово в его контексте, то это слово с вероятностью . Обратите внимание, что в общем случае. Например, в типичном корпусе современного английского языка близко к единице, но близко к нулю. Это потому, что слово "ado" почти всегда используется только в контексте архаичной фразы " much ado about ", но слово "much" встречается во всех видах контекстов.
Например, в корпусе из 6 миллиардов токенов мы имеем
Вероятность и соотношение | ||||
---|---|---|---|---|
Рассматривая таблицу, мы видим, что слова «лёд» и «пар» неразличимы по сравнению со словами «вода» (часто встречается вместе с обоими) и «мода» (редко встречается вместе с тем или другим), но различимы по сравнению со словами «твёрдое тело» (чаще встречается вместе со льдом) и «газ» (чаще встречается вместе со «паром»).
Идея состоит в том, чтобы узнать два вектора для каждого слова , так чтобы у нас была полиномиальная логистическая регрессия : а термины являются неважными параметрами.
Это означает, что если слова имеют схожие вероятности совместной встречаемости , то их векторы также должны быть схожими: .
Наивно, логистическая регрессия может быть запущена путем минимизации квадратичных потерь: Однако, это было бы шумно для редких совместных событий. Чтобы исправить проблему, квадратичные потери взвешиваются так, чтобы потери медленно увеличивались по мере увеличения абсолютного числа совместных событий: где и являются гиперпараметрами . В оригинальной статье авторы обнаружили, что, похоже, хорошо работает на практике.
После обучения модели у нас есть 4 обученных параметра для каждого слова: . Параметры нерелевантны, а релевантны только они.
Авторы рекомендовали использовать в качестве окончательного вектора представления для слова , поскольку эмпирически он работал лучше, чем или по отдельности.
GloVe можно использовать для поиска связей между словами, такими как синонимы, связи между компанией и продуктом, почтовые индексы и города и т. д. Однако алгоритм неконтролируемого обучения неэффективен при идентификации омографов, т. е. слов с одинаковым написанием и разными значениями. Это связано с тем, что алгоритм неконтролируемого обучения вычисляет один набор векторов для слов с одинаковой морфологической структурой. [5] Алгоритм также используется библиотекой SpaCy для построения семантических признаков встраивания слов, при этом вычисляя список слов, которые соответствуют мерам расстояния, таким как косинусное сходство и подход евклидова расстояния . [6] GloVe также использовался в качестве структуры представления слов для онлайн- и офлайн-систем, разработанных для обнаружения психологического стресса в интервью с пациентами. [7]