Эта история знакомит с векторами слов. Он охватывает word2vec, подсчет совпадений, перчатку и оценку векторов слов. Это краткое изложение лекции 1–2 Stanford CS224N: НЛП с глубоким обучением.

Зачем нам нужны векторы слов?

Как передать значение слова? Определение значения (словарь Вебстера): 1) идея, представленная словом, фразой и т. д.; 2) Мысль, которую человек хочет выразить с помощью слов, знаков и т. д.; 3) Идея, выраженная в письменном, художественном произведении и т. д. Наиболее распространенным лингвистическим способом осмысления значения является денотационная семантика.

Как мы получаем полезное значение на компьютере? Распространенным решением является использование, например. WordNet, тезаурус, содержащий списки наборов синонимов и гипернимов («является» отношением). Проблемы с такими ресурсами, как WordNet, заключаются в следующем: 1) отличный ресурс, но отсутствует нюанс, например, «опытный» указан как синоним «хорошего», хотя это правильно только в некотором контексте; 2) отсутствуют новые значения слов, таких как злой, крутой, изящный, волшебник, гений, ниндзя и напыщенный. Невозможно быть в курсе 3) это субъективно; 4) требует человеческого труда для создания и адаптации; 5) он не может уловить точное сходство слов.

В традиционном НЛП мы рассматриваем слова как дискретные символы. Слово может быть представлено однократными векторами. Размерность вектора равна количеству слов в словаре (например, 500 000).Проблема с этим представлением заключается в том, что нет естественного понятия сходства для однократных векторов! Например, motel может быть представлено как [0 0 0 0 0 0 0 1], а hotel может быть представлено как [1 0 0 0 0 0 0 0]. Хотя эти два слова похожи, два вектора ортогональны. Решение, возможно, заключается в том, чтобы кодировать сходство в самих векторах. Мы можем представлять слова по их контексту. Распределительная семантика означает, что значение слова определяется словами, которые часто встречаются рядом. Когда слово w появляется в тексте, его контекст представляет собой набор слов, которые появляются рядом (в пределах окна фиксированного размера). Таким образом, идея состоит в том, чтобы использовать множество контекстов слова w для построения представления слова w. Вот тут-то и появляются векторы слов.

Word2vec

Word2vec — это фреймворк для изучения векторов слов. У нас есть большой корпус текстов, и каждое слово в фиксированном словаре представлено вектором. Мы перебираем каждую позицию t в тексте, которая имеет центральное слово c и контекстные («внешние») слова o, и используем сходство векторов слов для c и o, чтобы вычислить вероятность o при заданном c (или наоборот). ). Мы продолжаем корректировать векторы слов, чтобы максимизировать эту вероятность.

Чуть более наглядно левая картинка показывает ситуацию. Итак, у нас есть часть нашего корпуса ...problems turning into bankingcrises as..., и мы хотим узнать значение слова into. Мы надеемся, что это представление слов поможет точно предсказать, какие слова появляются в контексте into.

Итак, в целом у нас есть большой длинный корпус слов с заглавной буквы Т. Для каждой позиции t = 1,…, T мы хотим предсказать контекстные слова в окне фиксированного размера m при заданном центральном слове wj. Во-первых, мы просматриваем все слова и выбираем окно фиксированного размера (например, это может быть 5 слов с каждой стороны), затем мы предсказываем слова по центральному слову. В конце мы умножаем эти вероятности для всех слов T в нашем корпусе, и наша модель вероятности теперь измеряет, насколько хорошо она справляется с предсказанием слов вокруг каждого слова.

Как рассчитать P(контекстные слова|центральное слово)? Предполагая, что Vw является словом V, когда слово w задано как центральное слово, тогда для центрального слова c и контекстного слова o уравнение вероятности, предсказывающее o по c, показано на правом рисунке.

Существует два варианта модели: скип-грамм (SG) и непрерывный мешок слов (CBOW). Модель скип-граммы предсказывает контекстные (внешние) слова (независимые от позиции) по заданному центральному слову, в то время как CBOW предсказывает центральное слово из (набора) контекстных слов.

количество совпадений

Но почему бы не зафиксировать количество совпадений напрямую? С матрицей совместного появления X есть 2 варианта: X для окон или X для полного документа. X для окон похож на word2vec, используя окно вокруг каждого слова для захвата как синтаксической (POS), так и семантической информации. Матрица совпадения слова и документа даст общие темы (все спортивные термины будут иметь одинаковые записи), что приведет к «скрытому семантическому анализу». Проблема с простыми векторами совместной встречаемости заключается в том, что размер матрицы увеличивается по мере увеличения словарного запаса. Это очень многомерная и требует много места для хранения. Последующие модели классификации имеют проблемы с разреженностью, что делает модели менее надежными. Решением для этого являются низкоразмерные векторы. Идея состоит в том, чтобы хранить «большую часть» важной информации в фиксированном небольшом количестве измерений, которые представляют собой плотный вектор. Обычно это 25-1000 измерений, как и в word2vec. Тогда как уменьшить размерность? Одним из решений является применение разложения по сингулярным числам к матрице совместного появления x.

Масштабирование счетчиков в ячейках может очень помочь. Проблема в том, что служебные слова (s.t. the, he и has) встречаются слишком часто, что приводит к тому, что этот синтаксис оказывает слишком большое влияние. Некоторые исправления могут заключаться в либо минимизации вхождений этих слов до фиксированного числа (s.t 100), либо игнорировании всех этих слов. Второй способ масштабировать счетчики – использовать корреляцию Пирсона вместо счетчиков, а затем установить отрицательные значения равными нулю.

Перчатка

Было 2 школы работы. Один основан на счетчике, а другой — на прямом прогнозировании. Работа на основе счета основана на подсчете и преобразовании счетов. Это такие работы, как COALS, Hellinger-PCA, LSA, HAL и т.д. Преимущества счетной работы заключаются в быстром обучении и эффективном использовании статистики. Но они в основном используются для определения схожести слови непропорциональной важности, придаваемой большим числам. Методы прямого прогнозирования напрямую определяют это распределение вероятностей и пытаются предсказать слова, которые встречаются. К этому методу относятся Skip-gram/CBOW, NNLM,HLBL и RNN. У этого метода есть некоторые преимущества: он может повысить производительность при выполнении других задач и может фиксировать сложные шаблоны, выходящие за рамки сходства слов. Недостатком этого метода является то, что он масштабируется в зависимости от размера корпуса и неэффективно использует статистику. Как насчет объединения этих двух разных методов? Это именно то, что делает GloVE.

Отношения вероятностей совпадений могут кодировать смысловые компоненты. Например, на правом рисунке видно, что P(solid|rice) и P(solid|steam) очень маленькие. Но P(solid|rice)/P(solid|steam) большое, а это значит, что ice и steam имеют схожие значения. мы могли бы использовать логбилинейную модель с разностью векторов, чтобы зафиксировать это.

Пусть матрица подсчетов совпадений слово-слова обозначается X, элементы которой Xij табулируют количество раз, когда слово j встречается в контексте слова i. Функция потерь показана на верхнем левом рисунке. Скалярное произведение вверху – это отношение вероятностей одновременного появления слов i и j. Квадратная часть потерь показывает, что GloVE хочет, чтобы скалярное произведение было как можно ближе к логарифму вероятности одновременного возникновения (logXij). Функция потерь усложняется немного, вводя термины смещения для обоих из двух слов. GloVe использовала функцию f впереди, чтобы ограничить эффект, который очень распространенные пары слов могут оказывать на производительность системы. GloVe хорошо работает благодаря быстрому обучению и масштабируемости до огромных корпусов. Он обеспечивает хорошую производительность даже с небольшим корпусом и небольшими векторами.

Оценка

Как оценивать векторы слов? Существуют внутренние и внешние методы. Для встроенных методов оценка выполняется для конкретной/промежуточной подзадачи. Это быстро вычисляется и помогает понять эту систему. Но неясно, действительно ли это полезно, если не установлена ​​корреляция с реальной задачей. Что касается внешних методов, оценка выполняется на реальной задаче. Вычисление точности может занять много времени, и неясно, является ли проблема подсистемой или ее взаимодействием или другими подсистемами.Для внутренней оценки вектора слов мы можем оценивать векторы слов по тому, насколько хорошо их косинусное расстояние после сложения отражает интуитивные вопросы семантической и синтаксической аналогии. Пожалуйста, ознакомьтесь с разделом ‹Аналогии векторов слов: синтаксические и семантические примеры› для более подробной информации. . Другой внутренней оценкой вектора слова могут быть расстояния вектора слова и корреляция теории с человеческими суждениями. Примером набора данных может быть wordSim353.

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

Результаты показывают, что GloVE превосходит модели с пропуском грамма.

использованная литература

  1. Stanford CS224N: НЛП с глубоким обучением | Зима 2019 | Лекция 2 — Векторы слов и значения слов
  2. Распределенные представления слов и фраз и их композиционность
  3. GloVe: глобальные векторы для представления слов