Дистрибутивная семантика

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Дистрибути́вная сема́нтика — это область лингвистики, которая занимается вычислением степени семантической близости между лингвистическими единицами на основании их распределения (дистрибуции) в больших массивах лингвистических данных (текстовых корпусах).

Каждому слову присваивается свой контекстный вектор. Множество векторов формирует словесное векторное пространство.

Семантическое расстояние между понятиями, выраженными словами естественного языка, обычно вычисляется как косинусное расстояние между векторами словесного пространства.

История[править | править код]

«Дистрибутивный анализ — это метод исследования языка, основанный на изучении окружения (дистрибуции, распределения) отдельных единиц в тексте и не использующий сведений о полном лексическом или грамматическом значении этих единиц» [1].

В рамках данного метода к текстам изучаемого языка применяется упорядоченный набор универсальных процедур, что позволяет выделить основные единицы языка (фонемы, морфемы, слова, словосочетания), провести их классификацию и установить отношения сочетаемости между ними.

Классификация основывается на принципе замещения: языковые единицы относятся к одному и тому же классу, если они могут выступать в одних и тех же контекстах.

Дистрибутивный анализ был предложен Л. Блумфилдом в 20-х гг. XX века и применялся, главным образом, в фонологии и морфологии.

3. Харрис и другие представители дескриптивной лингвистики развивали данный метод в своих работах в 30 — 50-х гг. XX века.

Близкие идеи выдвигали основоположники структурной лингвистики Ф. де Соссюр и Л. Витгенштейн.

Идея контекстных векторов была предложена психологом Ч. Осгудом в рамках работ по представлению значений слов[2].

Контексты, в которых встречались слова, выступали в качестве измерений многоразрядных векторов.

В качестве таких контекстов в работах Осгуда использовались антонимические пары прилагательных (например, быстрый-медленный), для которых участники опроса выставляли оценки по семибалльной шкале.

Пример пространства контекстных признаков, описывающего значение слов мышь и крыса из работы Осгуда:

Пример пространства контекстных признаков, описывающего значение слов мышь и крыса из работы Осгуда

Термин контекстный вектор был введён С. Галлантом для описания смысла слов и разрешения лексической неоднозначности [3].

В работах Галланта использовалось множество признаков, заданное исследователем, таких как человек, мужчина, машина и т. д.

Пример пространства контекстных признаков, описывающего значение слова астроном из работы Галланта:

Пример пространства контекстных признаков, описывающего значение слова астронавт из работы Галланта

В течение последних двух десятилетий метод дистрибутивного анализа широко применялся к изучению семантики.

Была разработана дистрибутивно-семантическая методика и соответствующее программное обеспечение, которые позволяют автоматически сравнивать контексты, в которых встречаются изучаемые языковые единицы, и вычислять семантические расстояния между ними[4].

Дистрибутивная гипотеза[править | править код]

Дистрибутивная семантика основывается на дистрибутивной гипотезе: лингвистические единицы, встречающиеся в схожих контекстах, имеют близкие значения[5].

Психологические эксперименты подтвердили истинность данной гипотезы. Например, в одной из работ [6] участников эксперимента просили высказать своё суждение о синонимичности предъявляемых им пар слов. Данные опроса затем сравнивали с контекстами, в которых встречались изучаемые слова. Эксперимент показал наличие положительной корреляции между семантической близостью слов и схожестью контекстов, в которых они встречаются.

Математическая модель[править | править код]

В качестве способа представления модели используются векторные пространства из линейной алгебры. Информация о дистрибуции лингвистических единиц представляется в виде многоразрядных векторов, которые образуют словесное векторное пространство. Векторы соответствуют лингвистическим единицам (словам или словосочетаниям), а измерения соответствуют контекстам. Координаты векторов представляют собой числа, показывающие, сколько раз данное слово или словосочетание встретилось в данном контексте.

Пример словесного векторного пространства, описывающего дистрибутивные характеристики слов tea и coffee, в котором контекстом выступает соседнее слово:

Морозова-Рисунок 2.jpg

Размер контекстного окна определяется целями исследования[7]:

  • установление синтагматических связей −1-2 слова;
  • установление парадигматических связей — 5-10 слов;
  • установление тематических связей — 50 слов и больше.

Семантическая близость между лингвистическими единицами вычисляется как расстояние между векторами. В исследованиях по дистрибутивной семантике чаще всего используется косинусная мера, которая вычисляется по формуле:

где и  — два вектора, расстояние между которыми вычисляется.

После проведения подобного анализа становится возможным выявить наиболее близкие по смыслу слова по отношению к изучаемому слову.

Пример наиболее близких слов к слову кошка (список получен на основании данных веб-корпуса русского языка[8], обработка корпуса выполнена системой Sketch Engine[9]):

Sketch Engine 01.png

В графическом виде слова могут быть представлены как точки на плоскости, при этом точки, соответствующие близким по смыслу словам, расположены близко друг к другу. Пример словесного пространства, описывающего предметную область суперкомпьютеры, из работы Генриха Шутце[10]:

Semantic map 01.png

Модели дистрибутивной семантики[править | править код]

Существует множество различных моделей дистрибутивной семантики, которые различаются по следующим параметрам:

  • тип контекста: размер контекста, правый или левый контекст, ранжирование;
  • количественная оценка частоты встречаемости слова в данном контексте: абсолютная частота, TF-IDF, энтропия, совместная информация и пр.;
  • мера расстояния между векторами: косинус, скалярное произведение, расстояние Минковского и пр.;
  • метод уменьшения размерности матрицы: случайная проекция, сингулярное разложение, случайное индексирование и пр.

Наиболее широко известны следующие дистрибутивно-семантические модели:

Уменьшение размерности векторных пространств[править | править код]

При применении дистрибутивно-семантических моделей в реальных приложениях возникает проблема слишком большой размерности векторов, соответствующей огромному числу контекстов, представленных в текстовом корпусе. Возникает необходимость в применении специальных методов, которые позволяют уменьшить размерность и разреженность векторного пространства и при этом сохранить как можно больше информации из исходного векторного пространства. Получающиеся в результате сжатые векторные представления слов в англоязычной терминологии носят название word embeddings.

Методы уменьшения размерности векторных пространств:

Предсказательные модели дистрибутивной семантики[править | править код]

Ещё один способ получения векторов малой размерности — машинное обучение, в частности искусственные нейронные сети. При обучении таких предсказательных моделей (англ. predictive models) целевым представлением каждого слова также является сжатый вектор относительно небольшого размера (англ. embedding), для которого в ходе множественных проходов по обучающему корпусу максимизируется сходство с векторами соседей и минимизируется сходство с векторами слов, его соседями не являющихся [12]. Однако, в отличие от традиционных счётных моделей (англ. count models), в данном подходе отсутствует стадия снижения размерности вектора, поскольку модель изначально инициализируется с векторами небольшой размерности (порядка нескольких сотен компонентов).

Подобные предсказательные модели представляют семантику естественного языка более точно, чем счётные модели, не использующие машинное обучение[13].

Наиболее известные представители подобного подхода — алгоритмы Continuous Bag-of-Words (CBOW) и Continuous Skipgram, впервые реализованные в утилите word2vec, представленной в 2013 году[14]. Пример применения подобных моделей к русскому языку представлен на веб-сервисе RusVectōrēs.

Области применения[править | править код]

Модели дистрибутивной семантики нашли применение в исследованиях и практических реализациях, связанных с семантическими моделями естественного языка.

Дистрибутивные модели применяются для решения следующих задач[15]:

  • выявление семантической близости слов и словосочетаний[16];
  • автоматическая кластеризация слов по степени их семантической близости;
  • автоматическая генерация тезаурусов и двуязычных словарей[15][17];
  • разрешение лексической неоднозначности;
  • расширение запросов за счет ассоциативных связей;
  • определение тематики документа;
  • кластеризация документов для информационного поиска;
  • извлечение знаний из текстов;
  • построение семантических карт различных предметных областей[7];
  • моделирование перифраз;
  • определение тональности высказывания;
  • моделирование сочетаемостных ограничений слов [18].

Программы[править | править код]

Существует несколько программных средств для проведения исследований по дистрибутивной семантике с открытым кодом:

См. также[править | править код]

Примечания[править | править код]

  1. Ярцева, 1990.
  2. Osgood et al., 1957.
  3. Gallant, 1991.
  4. Митрофанова, 2008.
  5. Sahlgren, 2008.
  6. Rubenstein, Goodenough, 1965.
  7. 1 2 Шарнин и др., 2013.
  8. Russian Web Corpus.
  9. Sketch Engine.
  10. Schutze, 1992.
  11. Sahlgren, 2005.
  12. Kutuzov and Andreev, 2015.
  13. Baroni, Marco and Dinu, Georgiana and Kruszewski, German Don’t count, predict! a systematic comparison of context-counting vs. context-predicting semantic vectors // Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics. — 2014. — № 1. — С. 238-247.
  14. Mikolov, Tomas and Chen, Kai and Corrado, Greg and Dean, Jeffrey Efficient estimation of word representations in vector space // arXiv preprint arXiv:1301.3781. — 2013.
  15. 1 2 Морозова и др., 2014.
  16. Клышинский и др., 2013.
  17. Sahlgren, Karlgren, 2005.
  18. Пекар, 2004.

Литература[править | править код]