Перчатка

Алгоритм получения векторных представлений слов

GloVe , придуманная от Global Vectors, является моделью для распределенного представления слов. Модель представляет собой алгоритм неконтролируемого обучения для получения векторных представлений слов. Это достигается путем отображения слов в осмысленное пространство, где расстояние между словами связано с семантическим сходством. [1] Обучение выполняется на агрегированной глобальной статистике совместного появления слов из корпуса, и полученные представления демонстрируют интересные линейные подструктуры векторного пространства слов . Как модель логарифмически-билинейной регрессии для неконтролируемого обучения представлений слов, она объединяет особенности двух семейств моделей, а именно методы глобальной матричной факторизации и локального контекстного окна.

Он разработан как проект с открытым исходным кодом в Стэнфорде [2] и был запущен в 2014 году. Он был разработан как конкурент word2vec , и в оригинальной статье отмечались множественные улучшения GloVe по сравнению с word2vec. По состоянию на 2022 год [обновлять]оба подхода устарели, и модели на основе Transformer , такие как BERT , которые добавляют несколько слоев внимания нейронной сети поверх модели встраивания слов, похожей на Word2vec, стали считаться последним словом в области обработки естественного языка. [3]

Определение

Вы узнаете слово по его окружению (Ферт, Дж. Р. 1957:11) [4]

Идея GloVe заключается в построении для каждого слова двух векторов , так что относительные положения векторов захватывают часть статистических закономерностей слова . Статистическая закономерность определяется как вероятности совместного появления. Слова, которые похожи друг на друга по значению, должны также быть похожи друг на друга по вероятностям совместного появления. я {\displaystyle я} ж я , ж ~ i {\displaystyle w_{i},{\tilde {w}}_{i}} i {\displaystyle i}

Подсчет слов

Пусть словарь будет , набор всех возможных слов (т.е. «токенов»). Пунктуация либо игнорируется, либо рассматривается как словарь, и аналогично для заглавных букв и других типографских деталей. [1] V {\displaystyle V}

Если два слова встречаются близко друг к другу, то мы говорим, что они встречаются в контексте друг друга. Например, если длина контекста равна 3, то мы говорим, что в следующем предложении

GloVe 1 , созданный 2 из 3 Global 4 Vectors 5 , является 6 моделью 7 для 9 распределенного 10 слова 11 представления 12

слово «модель 8 » находится в контексте «слова 11 », но не в контексте «представления 12 ».

Слово не находится в контексте самого себя, поэтому «модель 8 » не находится в контексте слова «модель 8 », хотя, если слово появляется снова в том же контексте, то оно учитывается.

Пусть будет числом раз, которое слово появляется в контексте слова во всем корпусе. Например, если корпус состоит только из «Я не думаю, что это проблема». мы имеем с тех пор, как первое «это» появляется в контексте второго, и наоборот. X i j {\displaystyle X_{ij}} j {\displaystyle j} i {\displaystyle i} X that , that = 2 {\displaystyle X_{{\text{that}},{\text{that}}}=2}

Пусть будет числом слов в контексте всех случаев слова . Подсчитав, мы имеем (за исключением слов, встречающихся в самом начале и конце корпуса) X i = j V X i j {\displaystyle X_{i}=\sum _{j\in V}X_{ij}} i {\displaystyle i} X i = 2 × ( context size ) × # ( occurrences of word  i ) {\displaystyle X_{i}=2\times ({\text{context size}})\times \#({\text{occurrences of word }}i)}

Вероятностное моделирование

Пусть будет вероятностью совместного появления . То есть, если выбрать случайное появление слова во всем документе и случайное слово в его контексте, то это слово с вероятностью . Обратите внимание, что в общем случае. Например, в типичном корпусе современного английского языка близко к единице, но близко к нулю. Это потому, что слово "ado" почти всегда используется только в контексте архаичной фразы " much ado about ", но слово "much" встречается во всех видах контекстов. P i k := P ( k | i ) := X i k X i {\displaystyle P_{ik}:=P(k|i):={\frac {X_{ik}}{X_{i}}}} i {\displaystyle i} k {\displaystyle k} P i k {\displaystyle P_{ik}} P i k P k i {\displaystyle P_{ik}\neq P_{ki}} P ado , much {\displaystyle P_{{\text{ado}},{\text{much}}}} P much , ado {\displaystyle P_{{\text{much}},{\text{ado}}}}

Например, в корпусе из 6 миллиардов токенов мы имеем

Таблица 1 из [1]
Вероятность и соотношение k =  solid  {\displaystyle k={\text{ solid }}} k =  gas  {\displaystyle k={\text{ gas }}} k =  water  {\displaystyle k={\text{ water }}} k =  fashion  {\displaystyle k={\text{ fashion }}}
P ( k  ice  ) {\displaystyle P(k\mid {\text{ ice }})} 1.9 × 10 4 {\displaystyle 1.9\times 10^{-4}} 6.6 × 10 5 {\displaystyle 6.6\times 10^{-5}} 3.0 × 10 3 {\displaystyle 3.0\times 10^{-3}} 1.7 × 10 5 {\displaystyle 1.7\times 10^{-5}}
P ( k  steam  ) {\displaystyle P(k\mid {\text{ steam }})} 2.2 × 10 5 {\displaystyle 2.2\times 10^{-5}} 7.8 × 10 4 {\displaystyle 7.8\times 10^{-4}} 2.2 × 10 3 {\displaystyle 2.2\times 10^{-3}} 1.8 × 10 5 {\displaystyle 1.8\times 10^{-5}}
P ( k  ice  ) / P ( k  steam  ) {\displaystyle P(k\mid {\text{ ice }})/P(k\mid {\text{ steam }})} 8.9 {\displaystyle 8.9} 8.5 × 10 2 {\displaystyle 8.5\times 10^{-2}} 1.36 {\displaystyle 1.36} 0.96 {\displaystyle 0.96}

Рассматривая таблицу, мы видим, что слова «лёд» и «пар» неразличимы по сравнению со словами «вода» (часто встречается вместе с обоими) и «мода» (редко встречается вместе с тем или другим), но различимы по сравнению со словами «твёрдое тело» (чаще встречается вместе со льдом) и «газ» (чаще встречается вместе со «паром»).

Идея состоит в том, чтобы узнать два вектора для каждого слова , так чтобы у нас была полиномиальная логистическая регрессия : а термины являются неважными параметрами. w i , w ~ i {\displaystyle w_{i},{\tilde {w}}_{i}} i {\displaystyle i} w i T w ~ j + b i + b ~ j ln P i j {\displaystyle w_{i}^{T}{\tilde {w}}_{j}+b_{i}+{\tilde {b}}_{j}\approx \ln P_{ij}} b i , b ~ j {\displaystyle b_{i},{\tilde {b}}_{j}}

Это означает, что если слова имеют схожие вероятности совместной встречаемости , то их векторы также должны быть схожими: . i , j {\displaystyle i,j} ( P i k ) k V ( P j k ) k V {\displaystyle (P_{ik})_{k\in V}\approx (P_{jk})_{k\in V}} w i w j {\displaystyle w_{i}\approx w_{j}}

Логистическая регрессия

Наивно, логистическая регрессия может быть запущена путем минимизации квадратичных потерь: Однако, это было бы шумно для редких совместных событий. Чтобы исправить проблему, квадратичные потери взвешиваются так, чтобы потери медленно увеличивались по мере увеличения абсолютного числа совместных событий: где и являются гиперпараметрами . В оригинальной статье авторы обнаружили, что, похоже, хорошо работает на практике. L = i , j V ( w i T w ~ j + b i + b ~ j ln P i j ) 2 {\displaystyle L=\sum _{i,j\in V}(w_{i}^{T}{\tilde {w}}_{j}+b_{i}+{\tilde {b}}_{j}-\ln P_{ij})^{2}} X i j {\displaystyle X_{ij}} L = i , j V f ( X i j ) ( w i T w ~ j + b i + b ~ j ln P i j ) 2 {\displaystyle L=\sum _{i,j\in V}f(X_{ij})(w_{i}^{T}{\tilde {w}}_{j}+b_{i}+{\tilde {b}}_{j}-\ln P_{ij})^{2}} f ( x ) = { ( x / x max ) α  if  x < x max 1  otherwise  {\displaystyle f(x)=\left\{{\begin{array}{cc}\left(x/x_{\max }\right)^{\alpha }&{\text{ if }}x<x_{\max }\\1&{\text{ otherwise }}\end{array}}\right.} x max , α {\displaystyle x_{\max },\alpha } x max = 100 , α = 3 / 4 {\displaystyle x_{\max }=100,\alpha =3/4}

Использовать

После обучения модели у нас есть 4 обученных параметра для каждого слова: . Параметры нерелевантны, а релевантны только они. w i , w ~ i , b i , b ~ i {\displaystyle w_{i},{\tilde {w}}_{i},b_{i},{\tilde {b}}_{i}} b i , b ~ i {\displaystyle b_{i},{\tilde {b}}_{i}} w i , w ~ i {\displaystyle w_{i},{\tilde {w}}_{i}}

Авторы рекомендовали использовать в качестве окончательного вектора представления для слова , поскольку эмпирически он работал лучше, чем или по отдельности. w i + w ~ i {\displaystyle w_{i}+{\tilde {w}}_{i}} i {\displaystyle i} w i {\displaystyle w_{i}} w ~ i {\displaystyle {\tilde {w}}_{i}}

Приложения

GloVe можно использовать для поиска связей между словами, такими как синонимы, связи между компанией и продуктом, почтовые индексы и города и т. д. Однако алгоритм неконтролируемого обучения неэффективен при идентификации омографов, т. е. слов с одинаковым написанием и разными значениями. Это связано с тем, что алгоритм неконтролируемого обучения вычисляет один набор векторов для слов с одинаковой морфологической структурой. [5] Алгоритм также используется библиотекой SpaCy для построения семантических признаков встраивания слов, при этом вычисляя список слов, которые соответствуют мерам расстояния, таким как косинусное сходство и подход евклидова расстояния . [6] GloVe также использовался в качестве структуры представления слов для онлайн- и офлайн-систем, разработанных для обнаружения психологического стресса в интервью с пациентами. [7]

Смотрите также

Ссылки

  1. ^ abc Pennington, Jeffrey; Socher, Richard; Manning, Christopher (октябрь 2014 г.). Moschitti, Alessandro; Pang, Bo; Daelemans, Walter (ред.). "GloVe: Global Vectors for Word Representation". Труды конференции 2014 года по эмпирическим методам обработки естественного языка (EMNLP) . Доха, Катар: Ассоциация компьютерной лингвистики: 1532– 1543. doi :10.3115/v1/D14-1162.
  2. ^ GloVe: Глобальные векторы для представления слов (pdf) Архивировано 03.09.2020 в Wayback Machine «Мы используем наши идеи для построения новой модели представления слов, которую мы называем GloVe, Global Vectors, поскольку глобальная статистика корпуса фиксируется непосредственно моделью».
  3. ^ Фон дер Мозель, Джулиан; Траутш, Александр; Гербольд, Штеффен (2022). «О валидности предварительно обученных преобразователей для обработки естественного языка в области программной инженерии». IEEE Transactions on Software Engineering . 49 (4): 1487– 1507. arXiv : 2109.04738 . doi : 10.1109/TSE.2022.3178469. ISSN  1939-3520. S2CID  237485425.
  4. ^ Фирт, Дж. Р. (1957). Исследования по лингвистическому анализу (PDF) . Wiley-Blackwell.
  5. ^ Вениг, Филлип (2019). «Создание вложений предложений на основе тематических представлений слов: подход к универсальному пониманию языка». На пути к науке о данных .
  6. ^ Singh, Mayank; Gupta, PK; Tyagi, Vipin; Flusser, Jan; Ören, Tuncer I. (2018). Advances in Computing and Data Sciences: Second International Conference, ICACDS 2018, Dehradun, India, April 20-21, 2018, Revised Selected Papers . Singapore: Springer. p. 171. ISBN 9789811318122.
  7. ^ Абад, Альберто; Ортега, Альфонсо; Тейшейра, Антониу; Матео, Кармен; Хинарехос, Карлос; Пердигао, Фернандо; Батиста, Фернандо; Мамеде, Нуно (2016). Достижения в области речи и языковых технологий для иберийских языков: Третья международная конференция, IberSPEECH 2016, Лиссабон, Португалия, 23-25 ​​ноября 2016 г., Материалы . Чам: Спрингер. п. 165. ИСБН 9783319491691.
Retrieved from "https://en.wikipedia.org/w/index.php?title=GloVe&oldid=1269454879"