Вступление

Вложения слов теперь используются повсюду для определения значения слов и изучения языка. Общая теория, лежащая в основе внедрения слов, - это распределительная семантика, которая примерно утверждает, что «похожие слова появляются в подобных контекстах». На входе набор текстовых документов, вложения слов генерируют векторные представления слов.

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

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

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

В этом сообщении блога я опишу временные вложения слов с помощью компаса (TWEC) [1] - недавний метод, который можно использовать для представления встраиваний слов, зависящих от времени (т. Е. Одно векторное представление для времени -конкретные слова, такие как слово «амазонка» в 1983 году).

Я расскажу о некоторых деталях модели в этом сообщении в блоге, но вы можете проверить статью в Интернете, где вы также можете найти объяснения экспериментов, проведенных для оценки модели.

В двух словах (TL; DR)

Вектор слова «амазонка» в 1983 году должен отличаться от вектора слова «амазонка» в 2019 году. Временные вложения слов генерируются из диахронических текстовых корпусов: набора корпусов, который нарезан время (например, один фрагмент со всем текстом за 1999 год, один фрагмент с текстом за 2000 год,…). Таким образом, вы создаете вложение для каждого слова в каждом интервале.

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

Язык развивается с течением времени

Языки развиваются, и слова меняют свое значение со временем: возьмем, к примеру, слово «amazon»: до создания компании основное значение этого слова было связано с лесными контекстами, только в последние годы значение изменилось, и теперь это слово можно использовать для обозначения компании Amazon. Этот эффект обычно называют семантическим сдвигом [2]. То же самое происходит и с именами организаций, такими как президенты США: слова имен президентов Соединенных Штатов в определенные моменты времени будут приближаться к таким словам, как «президент» (например, Клинтон был президентом в период с 1993 по 2001 год).

Временные вложения слов

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

Если у вас есть текстовые корпуса, разделенные на временные фрагменты (например, один фрагмент со всем текстом за 1999 год и один фрагмент с текстом из 2000 года), вы можете запустить word2vec на каждом из этих фрагментов, чтобы сгенерировать представление слов с привязкой ко времени (например, , amazon_1981 vs amazon_2013) с целью сравнения представлений слов. Вам нужна модель, которая помещает похожие слова в близкое положение (то есть, чтобы иметь похожие векторные представления), даже если они принадлежат разным годам.

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

Проблема: одним из ограничений алгоритмов прогнозирования (например, на основе нейронных сетей) алгоритмов встраивания слов является то, что их стохастическая природа заставляет их генерировать распределенные представления, которые всегда имеют разные системы координат и, следовательно, они несопоставимы. Это также происходит, если вы дважды запускаете word2vec для одного и того же текста: нельзя сравнивать векторы в одном пространстве с другим.

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

Интуиция: нам нужен компас

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

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

Временные вложения слов с помощью компаса

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

TWEC - это обобщение модели Continuous Bag of Word (CBOW), которая обрабатывает временные вложения слов. По сути, TWEC замораживает вторую матрицу сети CBOW, сначала инициализируя ее второй матрицей алгоритма CBOW, изученного по всем корпусам; этот новый замороженный CBOW используется для обучения определенных срезов (для которых мы обновляем только первую матрицу).

Боковое примечание: помните, что модель CBOW - это нейронная сеть с одним скрытым слоем, поэтому внутри архитектуры есть две матрицы умножения; см. следующий рисунок. Мы будем называть первую матрицу матрицей C (которая содержит вложения контекста), а вторую матрицу будем называть U. Матрица C содержит вложения слов.

Более формально предположим, что корпус D можно разделить на разные части {Dt1, Dt2,…, DtN}. Эти разные срезы являются временным корпусом (т.е., как мы сказали выше, один срез содержит только текст, написанный в 1992 году, а другой может содержать текст с 1993 года).

Процесс:

(i) Учитывая N фрагментов временного конкретного текста (например, текст из 1991 г., текст из 2000 г.,…), мы объединяем весь текст и запускаем модель CBOW для всего корпуса D.

(ii) Извлекаем вторую (U) матрицу сети CBOW.

(iii) Для каждого фрагмента текста Dt мы снова запускаем CBOW, но мы инициализируем вторую матрицу CBOW для конкретного фрагмента матрицей из шага

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

Результат

После завершения обучения различные векторные пространства можно сравнивать: вы можете вычислить сходство между словом «клинтон» в 1999 г. и словом «куст» в 2001 г. В целом можно ожидать, что эти два слова будут похожи, поскольку в те годы Клинтон и Буш были президентами (и это фактически то, что мы получаем, используя TWEC).

См. Следующие рисунки, чтобы получить представление о том, что позволяет вам делать этот вид встраивания: на первом изображении различные зависящие от времени векторы слова «blair» в разные годы. Посмотрите, как сгруппированы годы, когда Блэр был премьер-министром. На втором изображении вы можете видеть зависящие от времени словесные векторы разных президентов США: существует основное сходство, которое ставит этих президентов в близкие позиции в пространстве в те годы, в которых они были президентами.

Код

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

Использовать TWEC действительно очень просто: он основан на хорошо известной библиотеке Gensim, и поэтому встраиваемые объекты TWEC наследуют все методы, определенные классом Word2Vec, определенным в Gensim.

Вот пример использования TWEC:

Ссылки

[1] Ди Карло, В., Бьянки, Ф., Пальмонари, М. (2019). Обучение встраиванию темпоральных слов с помощью компаса. AAAI.

[2] Гамильтон, В. Л., Лесковец, Дж., И Джурафски, Д. (2016). Диахронические вложения слов раскрывают статистические законы семантического изменения. Препринт arXiv arXiv: 1605.09096.

[3] Яо, З., Сунь, Ю., Дин, В., Рао, Н., и Сюн, Х. (2018, февраль). Динамическое встраивание слов для расширяющегося семантического открытия. В Proceedings of the Eleventh International Conference on ACM International Conference on Web Search and Data Mining (pp. 673–681). ACM.