Матрица совстречаемости и косинус
простой эмбеддинг — это строка таблицы, где записано, как часто слово стоит рядом с другими словами, а похожесть двух строк меряют косинусом.
Зачем это нужно
Нужна мера близости слов, которая не зависит от частоты. Сырое скалярное произведение растёт у частых слов, потому что у них длиннее вектор.
Как это работает
Берётся окно ±4 слова вокруг целевого слова, и для каждой пары слов считается число совстречаемостей. Получается матрица размера |V|×|V|, которая очень разреженная: большинство чисел равно нулю.
Схожесть считается через косинус угла между векторами. Это скалярное произведение, делённое на длины векторов. Для счётчиков значения лежат от 0 до 1.
Пример
Возьмём три слова и три контекста: pie, data, computer.
- cherry: 442, 8, 2
- digital: 5, 1683, 1670
- information: 5, 3982, 3325
cos(cherry, information) ≈ 0.018, а cos(digital, information) ≈ 0.996. Значит, information ближе к digital, чем к cherry.
Что запомнить
- Вектор слова — это строка матрицы совстречаемости.
- Косинус сравнивает направление векторов и не зависит от длины.
- Такие векторы разреженные и очень длинные, поэтому дальше переходят к плотным эмбеддингам word2vec.
Где читать дальше
- SLP3, гл. 5 «Embeddings», разделы 5.3–5.4