Word2Vec — это модель вектора слов, предложенная Google в 2013 году. Word2Vec может представлять слова числовыми векторами, а сходство двух слов можно хорошо измерить в векторном пространстве.
1. Вектор слов
Заставить компьютер понимать человеческий язык — это круто, и первое, что нужно сделать, — это представить слова в виде числового вектора (называемого вектором слов) для обработки компьютером. Более интуитивные методы включают однократное кодирование и матрицу совпадений.
1.1 горячее кодирование
Горячее кодирование сначала строит словарь емкостью N. Каждое слово может быть представлено N-мерным вектором слов. Только слово в векторе слов принимает значение 1 по индексу словаря, а остальные 0. Основные недостатки горячего кодирования:Когда емкость словаря станет большой, пространство признаков вектора слов станет большим; кроме того, горячее кодирование не может различать сходство между словами.
1.2 Матрица совпадений
Пока это все еще словарь.Предполагая, что в корпусе всего три предложения «У меня есть кошка», «Кошка ест рыбу» и «У меня есть яблоко», можно построить матрицу совпадения между словами.A. Например, «я» и «есть» встречаются вместе в двух предложениях, поэтому вAимеет вес 2 в , в то время как «я» и «кошка» встречаются только в одном предложении,AСредний вес 1 .AКаждая строка представляет вектор слова слова.Подобно горячему кодированию, размерность вектора слова с использованием матрицы совпадения также очень велика. Также можно использовать SVD (Singular Value Decomposition) дляAРазложение выполняется для получения словесных векторов меньшей размерности, но временная сложность алгоритма SVD высока, а сложность разложения SVD для матрицы n✖n составляет O(n^3) .
2. Word2Vec
Word2Vec — это неглубокая нейронная сеть с входным слоем.x, скрытый слойhи выходной слойo. Размерность входного слоя и выходного слоя — N (размер словаря), а размерность скрытого слоя — D (размерность вектора слов). Матрица весов сети между входным слоем и скрытым слоем имеет видВ (Н✖Д), матрица сетевых весов между входным слоем и скрытым слоем равнаВ '(N✖D).
Входной слой Word2Vecxполучить однократное кодирование слова a, выходной слойoРассчитайте вероятность появления всех слов в контексте слова a и используйте softmax для расчета вероятности. Word2Vec обучается на корпусе таким образом, чтобы условные вероятности вхождения слов максимально точно соответствовали распределению в корпусе. После обучения весовая векторная матрица нейронной сетиV- векторная матрица конечного слова, аВ'представляет собой векторную матрицу слов в качестве прогнозируемого вывода.
Word2Vec имеет две модели, CBOW и Skip-Gram, Разница между двумя моделями заключается в том, что CBOW использует контекстное слово для предсказания центрального слова, а Skip-Gram использует центральное слово для предсказания его контекстного слова. На рисунке показаны диаграммы моделей CBOW и Skip-Gram из статьи Word2Vec, а затем представлены Skip-Gram и CBOW.
2.1 CBOW
Примечание в описании нижеw(x) представляет x-е слово, v(x) представляет вектор слов, соответствующий x-му слову, v'(x) представляет весовой вектор, соответствующий x-му слову при прогнозировании выводаДля данного предложения [w(1), w(2), w(3), ..., w(T)] для любого слова w(t) его контекстные слова включают [w(tc),... , w(t-1), w(t+1), ..., w(t+c)], c — размер контекстного окна.
CBOW хочет предсказать вероятность того, что центральным словом будет w(t) по контекстным словам [w(tc),..., w(t-1), w(t+1),..., w(t+ c)] , поэтому вход нейрона имеет 2c одноразовых кодов. Фактически, среднее значение вектора слов, соответствующего контекстному слову [w(tc),...,w(t-1),w(t+1),...,w(t+c)] передается в скрытый слой нейронной сети сетиh(формула ниже), а затем вычислить вероятность вывода слова w(t).
Итак, для предложения [w(1), w(2), w(3), ..., w(T)] CBOW необходимо максимизировать следующую целевую функцию, где вероятность вычисляется с помощью softmax:
2.2 Skip-Gram
Skip-Gram отличается от CBOW.Для предложения [w(1), w(2), w(3), ..., w(T)] для любого центрального слова w(t) контекст должен рассчитать вероятности [w(tc), ..., w(t-1), w(t+1), ..., w(t+c)] для слова. Следовательно, необходимо максимизировать следующую целевую функцию:
3. Метод оптимизации
Оптимизация как CBOW, так и Skip-Gram требует расчета softmax, который необходимо суммировать по всем словам, что неэффективно.Как правило, можно использовать два метода оптимизации: иерархический softmax и отрицательная выборка.
3.1 Hierarchical softmax
Для задачи классификации N softmax может найти вероятность каждого класса, а сумма вероятностей N классов равна 1. Иерархический softmax упрощает вычисление softmax, использует структуру двоичного дерева (которую можно оптимизировать с помощью деревьев Хаффмана) и преобразует задачу классификации N в задачи двоичной классификации log N.
где n представляет собой узел, n(w, j) представляет собой j-й узел на пути от корневого узла до слова w, n(w, 1) представляет собой путь от корневого узла, а L(w) представляет собой путь от корневого узла до длины слова w. Вектор слов входного слова равен v(x), тогда вероятности перехода в левое поддерево и перехода в правое поддерево после достижения узла n(w, j) равны:
А вероятность наблюдения его контекстного слова w через слово v(x) можно рассчитать следующим образом:
3.2 Negative sampling
Отрицательная выборка — это алгоритм отрицательной выборки с заданным словом обучающей выборки x и контекстным словом pos слова x. Алгоритм отрицательной выборки принимает pos как положительную выборку x, затем случайным образом выбирает k слов neg из словаря, чтобы сформировать отрицательную выборку, а затем максимизирует вероятность наблюдения pos до x и минимизирует вероятность наблюдения отрицательной выборки neg до x. Необходимо максимизировать следующую целевую функцию:
Вероятность того, что каждое слово будет выбрано как отрицательная выборка, следующая:
4. Резюме
Преимущества Word2Vec: модель проста, скорость обучения быстрая, при обучении учитывается контекст слова. Недостатки Word2Vec: маленькое контекстное окно, не используется глобальная информация о совпадении слов, вектор слов каждого слова фиксирован, что не может решить проблему полисемии.
использованная литература
Распределенные представления предложений и документов «Эффективная оценка представлений слов в векторном пространстве» «Объяснение обучения параметрам word2vec»