Перейти к основному содержимому

Методы, основанные на совстречамости слов

Матрица совстречаемости

Используя дистрибутивную гипотезу, можно представлять каждое слово эмбеддингом по частотам других слов, с которыми оно часто совстречается вместе. Сделать это можно, сопоставив каждому слову отвечающую ему строку в матрице совстречаемости слов (co-occurence matrix) MRS×SM\in\mathbb{R}^{S\times S}, где SS - число уникальных слов словаря.

Алгоритм расчёта элементов матрицы совстречаемости приведён ниже:

Из последовательности слов текста w1w2wNw_1w_2…w_N извлекаем уникальные слова u1,u2,...uSu_1,u_2,...u_S (формируем словарь).

Инициализируем матрицу совстречаемости MRS×SM\in\mathbb{R}^{S\times S} нулями.

Для каждой позиции в тексте t=1,...Nt=1,...N:

  • вычисляем контекст текущего слова wtw_t:

    • context=[wtK,wtK+1,...wt1,wt+1,...wt+K1,wK]\text{context} = [w_{t-K},w_{t-K+1},...w_{t-1},w_{t+1},...w_{t+K-1},w_{K}]

    • для каждого слова ucontextu\in\text{context}:

      • увеличиваем счётчик совстречаемости: M[wt,u]+=1M[w_t, u] \mathrel{+}= 1

Если контекст вылезает за пределы текста, то расчёт производится только по реально присутствующим словам в тексте. Например, для первого слова (при t=1t=1) левого контекста ещё нет, и учитываются только правый контекст.

Пример расчёта

Рассмотрим работу алгоритма на примере. Для предложения "Кошка любит внимание. Кошка любит нежность. Кошка любит ласку." уникальными словами будут [кошка, любит, внимание, нежность, ласку], а матрица совстречаемости для контекста ±2\pm 2 слова будет строиться скользящим окном вокруг каждого слова, учитывая 2 соседних слова справа и слева, как показано на рисунке:

Каждая строка соответствует одной итерации алгоритма, на которой текущее слово помечено красным, а его контекст из ±2\pm 2 слов - зелёным.

В результате получим следующую матрицу совстречаемости:

кошкалюбитвниманиенежностьласку
кошка5221
любит5221
внимание22
нежность22
ласку11

ii-му слову будет соответствовать SS-мерный эмбеддинг - ii-ая строка матрицы совстречаемости.

Словам "внимание" и "нежность" соответствуют одинаковые эмбеддинги. Алгоритм, не вникая в смысл анализируемых слов, понял, что этим словам соответствует похожий смысл опосредованно, увидев, что кошка их одинаково любит!

Учёт расстояния между словами

По умолчанию, каждое слово, встретившееся в контексте, учитывается с одинаковым весом, поскольку его каждое его попадание в контекст приводит к увеличению счётчика на единицу. Вместе с этим логично учитывать более близкие слова сильнее. Для этого можно задать вес связи, убывающий от расстояния между словами, и при встрече слов в контексте увеличивать счётчик совстречаемости не на единицу, а на этот вес [1].

Например, для контекста ±3\pm 3 слова вокруг слова внимание, соседей можно учитывать со следующими весами:

Разделение левого и правого контекста

Можно строить эмбеддинг, разделяя совстречаемость слов справа и слева. Для этого матрица совстречаемости уже будет размера MRS×2SM\in\mathbb{R}^{S\times 2S}, поскольку при сканировании текста нужно будет отдельно накапливать счётчики встречаемости слов слева (L) и справа (R) от текущего слова.

Для примера выше такая матрица совстречаемости будет

кошка Lлюбит Lвнимание Lнежность Lласку  Lкошка Rлюбит Rвнимание Rнежность Rласку  R
кошка2113111
любит3112111
внимание1111
нежность1111
ласку11

Анализируя только левые контексты, можно увидеть, что слова "внимание", "нежность" и "ласку" похожи по значению. В общем же случае слово представляется объединением левого и правого контекста.

В этом способе ii-му слову будет соответствовать ii-ая строка матрицы совстречаемости, а эмбеддинг будет уже 2S2S-мерным.

Снижение влияния частых слов

Слова в языке имеют сильно различающуюся частоту (см. также закон Ципфа):

  • союзы, предлоги, местоимения (такие как и, да, но, он, она,...) встречаются очень часто, такие слова называются стоп-словами (stop-words);

  • прочие слова встречаются, напротив, достаточно редко.

Если извлекать эмбеддинги слов по счётчикам совстречаемости, то близость эмбеддингов будет доминироваться совместной встречаемостью этих слов со стоп-словами, не несущими смысловой нагрузки.

Чтобы снизить влияние стоп-слов, элементы матрицы совстречаемости часто логарифмируют перед извлечением эмбеддингов:

Mijlog(Mij+1)M_{ij} \to \log (M_{ij}+1)

Игнорирование случайных совместных встреч

Более качественные эмбеддинги извлекаются, если матрицу совстречаемости наполнять не счётчиками, сколько раз каждое слово встретилось в контексте, а значениями положительной поточечной взаимной информации (Positive Pointwise Mutual Information, PPMI), считаемой по формуле

PPMI(wi,wj)=max(log(P(wi,wj)P(wi)P(wj)),0),\text{PPMI}(w_i, w_j) = \max \left( \log \left( \frac{P(w_i, w_j)}{P(w_i) \cdot P(w_j)} \right), 0 \right),

где

  • P(wi),P(wj)P(w_i),P(w_j) - вероятности появления слов wiw_i​ и wjw_j​ в тексте,

  • P(wi,wj)P(w_i,w_j) - вероятность совместного появления слов wiw_i​ и wjw_j​.

Сила связи 2-х слов в PPMI определяется совстречаемостью не по абсолютным счётчикам, а относительно гипотезы, что слова встречаются независимо друг от друга. Это позволяет измерять силу связи между словами в чистом виде, во-многом исключая влияние случайных совместных встреч.

Например, пары слов, удовлетворяющие условию ниже, вообще не будут влиять на эмбеддинги слов:

p(wiwj)<p(wj),p(w_i|w_j)<p(w_j),

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

Влияние ширины контекста

Ширина контекста KK при построении матрицы совстречаемости оказывает значительное влияние на извлекаемые эмбеддинги слов.

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

Например, эмбеддинг слова «собака» в узком контексте может отражать такие соседние слова, как «бежит», «двор», «лает» и т. д. Это даст представление о действиях и местах, связанных с «собакой».

При более широком контексте эмбеддинги будут более обобщёнными и связаны скорее с общим смыслом, включающем более широкие ассоциации.

В этом случае слово «собака» будет связано с такими словами, как «питомец», «животное», «уход», «забота», «друзья».

Ограничения подхода

Поскольку число уникальных слов велико (S1S\gg 1), эмбеддинги будут получаться слишком высокой размерности и работать на таких длинных векторах последующая модель будет неэффективно.

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

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

Литература

  1. Lund K., Burgess C. Producing high-dimensional semantic spaces from lexical co-occurrence //Behavior research methods, instruments, & computers. – 1996. – Т. 28. – №. 2. – С. 203-208.