Дистрибутивная семантика
Материал из MachineLearning.
| | Статья написана с использованием LLM GPT-5.6 Sol xhigh и проверено участником Aleksandr Iakovlev 09:31, 17 июля 2026 (MSD) |
|
Дистрибути́вная сема́нтика (англ. distributional semantics) — направление вычислительной лингвистики и машинного обучения, в котором значения языковых единиц моделируются по статистике их употребления в больших корпусах текстов. Слово, словосочетание или документ представляется вектором, а сходство значений связывается со сходством распределений по контекстам. Типичными реализациями служат матрицы совместной встречаемости, латентно-семантический анализ, предсказательные модели Word2vec и GloVe, а также контекстные представления языковых моделей.[1]
Дистрибутивная семантика — не отдельный алгоритм и не синоним эмбеддинга. Это семейство гипотез и способов извлекать семантическую информацию из употребления языка; эмбеддинг является одной из форм представления, а Word2vec — конкретным методом его обучения.
История и дистрибутивная гипотеза
Лингвистическая основа направления сложилась до появления современных компьютеров. Зеллиг Харрис в статье «Distributional Structure» (1954) определял распределение языкового элемента через совокупность окружений, в которых он встречается, и рассматривал структуру языка как систему ограничений на совместную встречаемость элементов.[1] Джон Руперт Фёрс сформулировал ставший широко известным принцип: «You shall know a word by the company it keeps!» («Слово познаётся по компании, в которой оно встречается»). В исходном тексте эта фраза относится к привычным коллокациям как к одному из уровней описания значения, а не утверждает, что значение исчерпывается соседними словами.[1]
В современной краткой формулировке дистрибутивная гипотеза утверждает, что языковые единицы со сходными распределениями по контекстам обычно имеют сходные семантические свойства. Это эмпирическая гипотеза, а не логическое тождество. Её конкретный смысл зависит от того, что считается единицей и контекстом: соседние слова, документы, синтаксические зависимости, шаблоны отношений или состояния нейронной модели.[1]
В информационном поиске матрицы «термин–документ» привели к латентно-семантическому анализу (LSA) на основе сингулярного разложения.[1] В корпусной лингвистике словесные ассоциации стали взвешивать взаимной информацией.[1] Позднее предсказательное обучение сделало плотные векторы массовым инструментом, сохранив контекст как источник обучающего сигнала.
Формальная постановка
Единицы и контексты
Пусть дан корпус , множество целевых единиц
и множество контекстных признаков
. Для слова контекстом может быть:
- симметричное окно из
токенов слева и справа;
- только левая или правая часть окна;
- документ, предложение или абзац;
- слово, связанное заданным синтаксическим отношением;
- лексико-синтаксический шаблон, связывающий пару сущностей.
Широкие окна чаще отражают тематическую связанность, а узкие окна и синтаксические признаки — функциональное сходство. На результат также влияют токенизация, регистр, лемматизация, границы предложений и порог частоты.
Матрица совместной встречаемости
Базовое представление задаётся матрицей , где
где — число появлений пары
в корпусе
.
Строка является разреженным вектором единицы
. Сырые частоты сильно зависят от общеязыковой частотности, поэтому их обычно преобразуют. Обозначим
Поточечная взаимная информация (PMI) сравнивает наблюдаемую совместную вероятность с вероятностью при независимости:
Положительная PMI отбрасывает отрицательные значения:
PPMI усиливает характерные сочетания, но может переоценивать очень редкие пары; поэтому применяют пороги частоты, сглаживание распределения контекстов и сдвинутые варианты PMI.[1][1]
Сходство и понижение размерности
Наиболее распространённая мера близости двух ненулевых векторов — косинус:
Косинус не зависит от общей длины вектора и удобен при различиях в частоте, хотя не устраняет все частотные и геометрические искажения.
Для получения плотных векторов матрицу (например, TF–IDF или PPMI) можно аппроксимировать усечённым сингулярным разложением:
Строки , где обычно
, служат низкоразмерными представлениями. В LSA исходной является матрица «термин–документ»; в лексических моделях чаще факторизуется матрица «слово–контекст». Метод главных компонент и другие методы факторизации решают родственные задачи сжатия, но различаются предположениями и предварительным взвешиванием.
Count-based и predictive-подходы
Счётные (англ. count-based) модели явно строят, взвешивают и при необходимости факторизуют матрицу частот. Сюда относятся word–context spaces, LSA и модели на синтаксических контекстах. Их признаки интерпретируемы, но разреженная матрица может быть дорогой в хранении и разложении.
Предсказательные (англ. predictive) модели обучают параметры на вспомогательной задаче предсказания. В Word2vec архитектура CBOW предсказывает центральное слово по окружению, а Skip-gram — слова окружения по центральному слову.[1] Для Skip-gram с отрицательным сэмплированием (SGNS) типичный вклад пары в целевую функцию имеет вид
где — число отрицательных примеров,
— шумовое распределение,
— логистическая функция. GloVe, напротив, оптимизирует взвешенную ошибку приближения логарифмов глобальных счётчиков совместной встречаемости.[1] FastText расширяет Skip-gram суммой векторов символьных n-грамм и тем самым лучше обрабатывает морфологию и слова вне обучающего словаря.[1]
Различие между «подсчётом» и «предсказанием» не абсолютно. Систематическое сравнение показало сильные результаты предсказательных векторов на ряде лексико-семантических задач,[1] а последующий анализ установил, что SGNS неявно факторизует матрицу «слово–контекст» со значениями, близкими к сдвинутой PMI:
Качество поэтому зависит и от корпуса, контекста, взвешивания, размерности и критерия оценки.
Композиционность
Векторы отдельных слов ещё не задают значение фразы или предложения. Простейшие композиционные функции складывают или усредняют векторы:
либо используют покомпонентное умножение. Такие операции могут отражать общую тему, но слабо учитывают порядок слов, отрицание, область действия операторов и синтаксические роли. Взвешивание TF–IDF или SIF уменьшает влияние частых слов, а синтаксически чувствительные модели назначают разным частям речи матрицы, тензоры или функции. Эксперименты с аддитивной и мультипликативной композицией показали, что подходящая операция зависит от конструкции и задачи.[1]
Нейронные энкодеры и трансформеры реализуют нелинейную композицию: представление токена пересчитывается с учётом других позиций. Так дистрибутивный принцип расширяется от фиксированных векторов слов к функциям над целыми контекстами.
Полисемия и контекстные представления
Статическая модель сопоставляет типу слова один вектор. Для многозначного слова он усредняет разные употребления: например, контексты финансового учреждения и берега реки смешиваются. Один из ранних способов решения — кластеризовать контексты слова и хранить несколько прототипов, выбирая нужный по текущему окружению.[1]
Контекстные эмбеддинги сопоставляют вектор не словарному типу, а конкретному вхождению:
ELMo получает такие векторы из внутренних состояний двунаправленной языковой модели и прямо нацелено на вариативность употреблений и полисемию.[1] BERT обучает глубокие двунаправленные представления по задаче восстановления замаскированных токенов; одинаковая словоформа в разных предложениях поэтому получает разные состояния.[1] Статический вектор удобен как компактная словарная запись, а контекстный — когда важно конкретное употребление. Эти представления не взаимоисключающие: статический вектор можно получить усреднением контекстных состояний, а входной слой контекстной модели сам содержит обучаемые эмбеддинги токенов и позиций.
Ограничения
Дистрибутивная близость не тождественна ни синонимии, ни полной близости значений. Антонимы могут встречаться в одинаковых грамматических позициях; тематически связанные слова вроде «врач» и «больница» оказываются близкими без взаимозаменяемости. Результат зависит от жанра, времени, домена и языка корпуса. Редкие слова получают шумные оценки, а новые слова отсутствуют в словаре, если модель не использует подсловные признаки.
Текстовые распределения отражают социальные закономерности и стереотипы исходных данных. Исследования статических эмбеддингов показали, что в их геометрии могут воспроизводиться гендерные ассоциации корпуса; использование таких представлений в прикладной системе требует отдельного аудита данных, метрик и последствий.[1]
Совместная встречаемость описывает отношения внутри языка, но сама по себе не даёт сенсомоторного опыта и привязки символов к объектам мира. Поэтому дистрибутивные модели полезны как эмпирические представления употребления, но не являются исчерпывающей теорией значения.[1]
Оценка качества
Методы оценки делятся на несколько групп.
- Внутренние тесты сравнивают косинусные близости с человеческими оценками сходства или связанности, проверяют ближайших соседей, кластеризацию, категоризацию и векторные аналогии. Набор SimLex-999 специально отделяет собственно сходство от простой ассоциации.[1]
- Внешняя оценка измеряет вклад представлений в целевую задачу: поиск, классификацию, извлечение сущностей и отношений, анализ тональности, машинный перевод или ответы на вопросы. Она ближе к применению, но смешивает качество представления с архитектурой, объёмом обучения и настройкой всей системы.
- Диагностическая оценка проверяет отдельные свойства — морфологию, синтаксис, значения в контексте, устойчивость к частотным сдвигам, доменам и социальным группам.
Одна метрика не даёт универсального рейтинга: небольшие списки слов чувствительны к составу и субъективности разметки, а внутренний результат не гарантирует улучшения прикладной задачи.[1] Сравнение должно фиксировать корпус, предобработку, словарь, размерность и гиперпараметры.
Применения
Дистрибутивные модели применяются для поиска связанных терминов, расширения запросов, построения тезаурусов, кластеризации, разрешения неоднозначности, извлечения отношений и измерения семантического сдвига. В семантическом поиске запросы и документы сравниваются в общем пространстве; в классификации векторы служат признаками, а в лексикографии характерные контексты дополняют ручной анализ. Turney и Pantel группируют приложения по матрицам «термин–документ», «слово–контекст» и «пара–шаблон».[1]
Воспроизводимый пример
Пример без внешних библиотек строит симметричные контексты радиуса 2, вычисляет PPMI и косинус. Игрушечные пары «кот/кошка» и «собака/пёс» имеют одинаковые окружения.
from collections import Counter, defaultdict from math import log, sqrt corpus = [ "кот ест рыбу", "кошка ест рыбу", "кот пьёт молоко", "кошка пьёт молоко", "собака грызёт кость", "пёс грызёт кость", "собака охраняет дом", "пёс охраняет дом", ] window = 2 pairs, words, contexts = Counter(), Counter(), Counter() for sentence in corpus: tokens = sentence.split() for i, word in enumerate(tokens): left, right = max(0, i-window), min(len(tokens), i+window+1) for j in range(left, right): if i == j: continue context = tokens[j] pairs[word, context] += 1 words[word] += 1 contexts[context] += 1 N = sum(pairs.values()) ppmi = defaultdict(dict) for (word, context), n in pairs.items(): pmi = log((n/N) / ((words[word]/N) * (contexts[context]/N))) ppmi[word][context] = max(pmi, 0.0) def cosine(a, b): keys = set(ppmi[a]) | set(ppmi[b]) dot = sum(ppmi[a].get(k, 0) * ppmi[b].get(k, 0) for k in keys) na = sqrt(sum(x*x for x in ppmi[a].values())) nb = sqrt(sum(x*x for x in ppmi[b].values())) return dot / (na * nb) for a, b in [("кот", "кошка"), ("собака", "пёс"), ("кот", "собака")]: print(a, b, f"{cosine(a, b):.3f}")
Результат:
кот кошка 1.000 собака пёс 1.000 кот собака 0.000
Пример демонстрирует механизм, но не доказывает синонимию: в реальном корпусе вывод зависит от размера и состава данных, предобработки, определения контекста и сглаживания редких событий.
См. также
- Embedding
- Нейросетевое встраивание
- Word2vec
- Токенизация
- Семантический поиск
- Взаимная информация
- Самостоятельное обучение
- Трансформер (модель)
Литература
- Harris Z. S. Distributional Structure // WORD. 1954. Vol. 10, no. 2–3. P. 146–162. DOI: 10.1080/00437956.1954.11659520.
- Firth J. R. A Synopsis of Linguistic Theory, 1930–1955 // Studies in Linguistic Analysis. Oxford: Blackwell, 1957. P. 1–32.
- Sahlgren M. The Distributional Hypothesis // Italian Journal of Linguistics. 2008. Vol. 20, no. 1. P. 33–53.
- Turney P. D., Pantel P. From Frequency to Meaning: Vector Space Models of Semantics // Journal of Artificial Intelligence Research. 2010. Vol. 37. P. 141–188. DOI: 10.1613/jair.2934.
- Deerwester S., Dumais S. T., Furnas G. W., Landauer T. K., Harshman R. Indexing by Latent Semantic Analysis // Journal of the American Society for Information Science. 1990. Vol. 41, no. 6. P. 391–407.
- Baroni M., Dinu G., Kruszewski G. Don’t count, predict! // Proceedings of ACL. 2014. P. 238–247.
- Levy O., Goldberg Y. Neural Word Embedding as Implicit Matrix Factorization // Advances in Neural Information Processing Systems 27. 2014.
- Lenci A. Distributional Models of Word Meaning // Annual Review of Linguistics. 2018. Vol. 4. P. 151–171.

