Семантическое сходство между словами A и B: зависимость от частоты A и B в корпусе? - PullRequest
1 голос
/ 04 апреля 2019

Справочная информация:

Учитывая корпус, я хочу обучить его реализации Word2wec (Gensim).

Хотите понять, зависит ли окончательное сходство между 2 токенами от частоты A и B в корпусе (все контексты сохранены) или его агностики.

Пример : (Может быть не идеальным, но использовать его для разработки постановки задачи)

Предположим, что слово «A» используется в 3 различных контекстах в корпусе:

Context 1 : 1000 times
Context 2 : 50000 times
Context 3 : 50000 times

'B' используется в 2 разных контекстах:

Context 1 : 300 times 
Context 5 : 1000 time

Вопрос:

Если я изменю частоту 'A' в моемкорпус (при условии, что контекст не потерян, т. е. «А» все еще используется хотя бы один раз во всех контекстах, как в исходном корпусе), будет ли сходство между А и В одинаковым?

НовоеРаспределение «А» по ​​контекстам

 Context 1 : 5 times
 Context 2 : 10 times
 Context 3 : 5000 times

Любые лиды оценены

Ответы [ 3 ]

0 голосов
/ 04 апреля 2019

Gensim реализует две словесные векторные модели:

  1. Skip-грамма
  2. CBOW

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

Обе модели обучаются в контексте токена для автоматического кодирования токена в непрерывное семантическое векторное пространство.

skip-gram

Входные данные дляобучение - это n-граммы контекстного окна, а предсказанная метка - это n-й токен.

Если бы мы использовали контекстное окно биграммы, вектор ввода использовал бы токены;

[Token_(n-2), Token_(n-1), Token_(n+1), Token_(n+2)]

И метка для прогнозирования была бы

Token_n

CBOW

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

Если бы мы использовали окно контекста биграммы, вектор ввода использовал бы токен;

Token_n

И метка для прогнозирования была бы

[Token_(n-2), Token_(n-1), Token_(n+1), Token_(n+2)]

для чего это нужно??

Очевидно, что это грубое упрощение, но оно помогает нам спросить, что делает модель слова-вектора?

Какова цель модели слова-слова, реализованной в gensim?

Две модели кодируют семантический контекст для данного токена.

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

TL; DR

Модели WV кодируют контекст слова в представлении.

Таким образом, сходство слов не пропорционально их количеству, но контексту, в котором они появляются.

0 голосов
/ 04 апреля 2019

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

Word2Vec опирается на множество разнообразных примеров использования слов.Процесс обучения рассматривает только отдельные примеры одновременных встреч.(В популярном режиме пропуска грамм только отдельные примеры context-word -> target-word.).

Обучение многократно представляет отдельный контекст нейронной сети, проверяет реакцию сетей по некоторому небольшому подмножеству путей, которые интересны, и слегка подталкивает сеть к лучшему - изменяя внутренние веса сети,и «веса проекции», которые определяют вектор слова.

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

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

Кроме того, сокращение примеров A также практически меняет частоту совпадений со всеми словами, с которыми он когда-либо обучался.Меньшее число A контекстов означает, что число контекстов A -> B и B -> A также изменится, что также изменит конечную позицию слова B.И это относится ко всем другим словам C, D и т. Д., Которые встречаются с A, и особенно в тех случаях, когда некоторые контексты прореживаются больше, чем другие.(Как и в вашем примере с новым дистрибутивом A, «контекст 2» появляется на 1/5000 чаще, а «контекст 3» - на 1/10 часто).

Обратите внимание, что существуетФункция частичной выборки слов в большинстве реализаций Word2Vec, как правило, управляется с помощью параметра с именем sample, который намеренно отбрасывает многих появлений очень часто встречающихся слов.Это намеренно меняет относительные частоты слов в тренировочном корпусе.

И по сравнению с отсутствием понижающей дискретизации, правильно выбранное здесь значение имеет тенденцию к тому, что скоростные тренировки и улучшают качество конечных векторов слов.Зачем?Если у вас есть сотни или тысячи разнообразных примеров часто встречающегося слова, дополнительный маргинальный пример не помогает значительно улучшить это слово - но - это , требующий больше времени и большей доли времени обучения в целом, улучшая модель для этих частых слов.И крошечные улучшения этих слов во многих примерах обязательно соответствуют описанному выше процессу, заменяя улучшения более многочисленными словами с более редкими примерами.Отказ от некоторых «чрезмерно часто встречающихся» слов позволяет другим словам оказывать более относительное влияние на конечное состояние модели и даже даже эффективно сокращает эффективные контекстные расстояния между более редкими словами (когда опускаются более часто встречающиеся слова).

0 голосов
/ 04 апреля 2019

Я чувствую, что (# переводит на интуицию, а не математику):

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

Если вы идете оттуда:

Если эти два слова на самом деле похожи, чем чаще они используются => чем больше у вас данных об обучении => чем лучше модель => тем ближе онибудет.

Если у вас есть больше контекста, когда эти два слова используются, то их отношения будут ближе.

Однако, если они появляются реже по всему корпусу, но чаще вместе, ихотношения также будут более тесными.

Таким образом, это больше похоже на (quency_same_context) / (interval_overall).Если ты не изменишь это, у тебя все будет хорошо, я думаю?

...