14.5 Вложения слов на основе глобальных векторов (GloVe)
Совместная встречаемость слов (co-occurrence) в пределах контекстного окна может нести богатую семантическую информацию. Например, в большом корпусе слово «твёрдый» (solid) более вероятно встретится вместе со словом «лёд» (ice), чем слово «газ» (gas), но слово «газ» может встречаться вместе со словом «пар» (steam) чаще, чем со словом «лёд». Кроме того, такую глобальную статистику корпуса можно вычислить заранее, что повышает эффективность обучения. Чтобы использовать статистическую информацию всего корпуса для вложений слов, сначала вернёмся к модели skip-gram из раздела 14.1.3, но истолкуем её через глобальную статистику корпуса, такую как счётчики совместной встречаемости.
14.5.1 Модель skip-gram с глобальной статистикой корпуса
Обозначим через условную вероятность слова при заданном слове в модели skip-gram:
где для любого индекса векторы и представляют слово как центральное и как контекстное соответственно, а — множество индексов словаря.
Слово может встречаться в корпусе много раз. Во всём корпусе все контекстные слова, для которых — центральное слово, образуют мультимножество индексов слов, допускающее несколько экземпляров одного элемента. Число экземпляров элемента называется его кратностью. Для примера предположим, что слово встречается в корпусе дважды, а индексы контекстных слов с центральным словом в двух контекстных окнах равны и . Тогда мультимножество , где кратности элементов равны 2, 4, 1, 1 соответственно.
Теперь обозначим кратность элемента в мультимножестве через . Это глобальный счётчик совместной встречаемости слова (как контекстного) и слова (как центрального) в одном контекстном окне во всём корпусе. С такой глобальной статистикой корпуса функция потерь модели skip-gram эквивалентна
Обозначим через число всех контекстных слов в контекстных окнах, где встречается как центральное слово; это равно . Пусть — условная вероятность порождения контекстного слова . При заданном центральном слове выражение (14.5.1) можно переписать как
В (14.5.2) выражение вычисляет кросс-энтропию условного распределения глобальной статистики корпуса и условного распределения , предсказанного моделью. Как сказано выше, эти потери тоже взвешены по . Минимизация функции потерь в (14.5.2) заставит предсказанное условное распределение приблизиться к условному распределению глобальной статистики корпуса.
Хотя кросс-энтропия обычно служит для измерения расстояния между распределениями вероятностей, здесь она, возможно, не лучший выбор. С одной стороны, как мы отмечали в разделе 14.2, нормировка требует суммирования по всему словарю, что может быть очень дорого вычислительно. С другой стороны, большое число редких событий из большого корпуса часто моделируется кросс-энтропией, которая придаёт им слишком большой вес.
14.5.2 Модель GloVe
Поэтому модель GloVe вносит в модель skip-gram три изменения на основе квадратичных потерь (Pennington et al., 2014):
- Использовать переменные и вместо распределений вероятностей и взять логарифм обеих. Поэтому квадратичное слагаемое потерь равно .
- Добавить для каждого слова два скалярных параметра модели: смещение центрального слова и смещение контекстного слова .
- Заменить вес каждого слагаемого потерь весовой функцией , где возрастает на отрезке .
Собрав всё вместе, обучение GloVe — это минимизация следующей функции потерь:
Для весовой функции рекомендуется такой выбор: (например, ) при (например, ); иначе . Поскольку , для повышения эффективности вычислений можно опустить квадратичное слагаемое потерь для любого . Например, при обучении стохастическим градиентным спуском на минибатчах на каждой итерации мы случайно выбираем минибатч ненулевых , чтобы вычислить градиенты и обновить параметры модели. Обратите внимание: эти ненулевые — заранее вычисленная глобальная статистика корпуса; поэтому модель называется GloVe (Global Vectors, «глобальные векторы»).
Следует подчеркнуть, что если слово встречается в контекстном окне слова , то и слово встречается в контекстном окне слова . Поэтому . В отличие от word2vec, который аппроксимирует асимметричную условную вероятность , GloVe аппроксимирует симметричную величину . Поэтому в модели GloVe вектор центрального слова и вектор контекстного слова любого слова математически эквивалентны. Но на практике из-за различных начальных значений одно и то же слово после обучения может получить разные значения в этих двух векторах: GloVe суммирует их и берёт сумму как выходной вектор.
14.5.3 Интерпретация GloVe через отношение условных вероятностей
Модель GloVe можно понять и с другой стороны. Используя те же обозначения, что в разделе 14.5.1, пусть — условная вероятность порождения контекстного слова при заданном слове как центральном слове корпуса. В табл. 14.5.1 перечислены вероятности совместной встречаемости для слов «ice» и «steam» и их отношения по статистике большого корпуса.
Таблица 14.5.1. Вероятности совместной встречаемости слов в большом корпусе и их отношения (адаптировано из табл. 1 статьи (Pennington et al., 2014))
| = | 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 |
Из табл. 14.5.1 можно сделать следующие наблюдения:
- Для слова , связанного с «ice», но не связанного с «steam», например , мы ожидаем большее отношение вероятностей совместной встречаемости, например 8.9.
- Для слова , связанного с «steam», но не связанного с «ice», например , мы ожидаем меньшее отношение вероятностей совместной встречаемости, например 0.085.
- Для слова , связанного и с «ice», и со «steam», например , мы ожидаем отношение вероятностей совместной встречаемости, близкое к 1, например 1.36.
- Для слова , не связанного ни с «ice», ни со «steam», например , мы ожидаем отношение вероятностей совместной встречаемости, близкое к 1, например 0.96.
Видно, что отношение вероятностей совместной встречаемости интуитивно выражает связь между словами. Поэтому можно построить функцию от трёх векторов слов, аппроксимирующую это отношение. Для отношения вероятностей совместной встречаемости , где — центральное слово, а и — контекстные слова, мы хотим аппроксимировать его некоторой функцией :
Среди многих возможных вариантов мы выбираем лишь один разумный, исходя из следующих соображений. Поскольку отношение вероятностей совместной встречаемости — скаляр, потребуем, чтобы была скалярной функцией, например . Поменяв местами индексы слов и в (14.5.4), получаем, что должно выполняться , поэтому одна из возможностей — , то есть
Теперь выберем , где — константа. Поскольку , логарифмируя обе части, получаем . Для аппроксимации можно использовать дополнительные члены смещения, например смещение центрального слова и смещение контекстного слова :
Измеряя взвешенную квадратичную ошибку в (14.5.5), получаем функцию потерь GloVe из (14.5.3).
Резюме
- Модель skip-gram можно истолковать через глобальную статистику корпуса, такую как счётчики совместной встречаемости слов.
- Кросс-энтропия, возможно, не лучший способ измерить различие двух распределений вероятностей, особенно для большого корпуса. GloVe использует квадратичные потери, чтобы аппроксимировать заранее вычисленную глобальную статистику корпуса.
- Вектор центрального слова и вектор контекстного слова любого слова в GloVe математически эквивалентны.
- GloVe можно истолковать через отношение вероятностей совместной встречаемости слов.
Упражнения
- Если слова и встречаются в одном контекстном окне, как использовать расстояние между ними в текстовой последовательности, чтобы переосмыслить способ вычисления условной вероятности ? Подсказка: см. раздел 4.2 статьи о GloVe (Pennington et al., 2014).
- Математически эквивалентны ли для любого слова его смещение как центрального слова и смещение как контекстного? Почему?
Литература
- Pennington, J., Socher, R., & Manning, C. (2014). Glove: Global vectors for word representation. In Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP), 1532–1543.