Word2vec — это метод обработки естественного языка (NLP) для получения векторных представлений слов. Эти векторы собирают информацию о значении слова на основе окружающих слов. Алгоритм word2vec оценивает эти представления, моделируя текст в большом корпусе . После обучения такая модель может обнаруживать синонимичные слова или предлагать дополнительные слова для частичного предложения. Word2vec был разработан Томашем Миколовым и его коллегами в Google и опубликован в 2013 году.
Word2vec представляет слово как вектор чисел высокой размерности, который фиксирует отношения между словами. В частности, слова, которые появляются в схожих контекстах, сопоставляются с векторами, которые находятся поблизости, как измеряется косинусным сходством . Это указывает на уровень семантического сходства между словами, так, например, векторы для walk и ran находятся поблизости, как и для "but" и "however", а также "Berlin" и "Germany".
Word2vec — это группа связанных моделей, которые используются для создания векторных представлений слов . Эти модели представляют собой неглубокие двухслойные нейронные сети , обученные восстанавливать лингвистические контексты слов. Word2vec принимает в качестве входных данных большой корпус текста и создает векторное пространство , обычно из нескольких сотен измерений , причем каждому уникальному слову в корпусе назначается соответствующий вектор в этом пространстве.
Word2vec может использовать любую из двух архитектур моделей для создания этих распределенных представлений слов: непрерывный мешок слов (CBOW) или непрерывно скользящий skip-gram. В обеих архитектурах word2vec рассматривает как отдельные слова, так и скользящее контекстное окно, когда он итерируется по корпусу.
CBOW можно рассматривать как задачу «заполнить пробел», где вложение слов представляет собой способ, которым слово влияет на относительные вероятности других слов в окне контекста. Слова, которые семантически похожи, должны влиять на эти вероятности аналогичным образом, поскольку семантически похожие слова должны использоваться в схожих контекстах. Порядок контекстных слов не влияет на прогноз (предположение о мешке слов).
В непрерывной архитектуре skip-gram модель использует текущее слово для прогнозирования окружающего окна контекстных слов. [1] [2] Архитектура skip-gram придает близлежащим контекстным словам больший вес, чем более отдаленным контекстным словам. Согласно примечанию авторов, [3] CBOW быстрее, в то время как skip-gram лучше справляется с нечастыми словами.
После обучения модели изученные вложения слов размещаются в векторном пространстве таким образом, что слова, имеющие общие контексты в корпусе — то есть слова, которые семантически и синтаксически схожи — располагаются близко друг к другу в пространстве. [1] Более непохожие слова располагаются дальше друг от друга в пространстве. [1]
Этот раздел основан на описаниях. [4] [5]
Корпус — это последовательность слов. И CBOW, и skip-gram — это методы изучения одного вектора на слово, встречающееся в корпусе.
Пусть («словарь») будет набором всех слов, встречающихся в корпусе . Наша цель — выучить один вектор для каждого слова .
Идея skip-gram заключается в том, что вектор слова должен быть близок к вектору каждого из его соседей. Идея CBOW заключается в том, что векторная сумма соседей слова должна быть близка к вектору слова.
В оригинальной публикации «близость» измеряется с помощью softmax , но фреймворк допускает и другие способы измерения близости.
Предположим, мы хотим, чтобы каждое слово в корпусе было предсказано каждым другим словом в небольшом промежутке из 4 слов. Мы записываем набор соседей .
Тогда целью обучения является максимизация следующей величины: То есть мы хотим максимизировать общую вероятность для корпуса, как это видно из вероятностной модели, которая использует соседей слов для прогнозирования слов.
Произведения численно нестабильны, поэтому мы преобразуем их, взяв логарифм: То есть, мы максимизируем логарифмическую вероятность корпуса.
Наша вероятностная модель выглядит следующим образом: для данных слов берется их векторная сумма , затем берется скалярное произведение-softmax с каждой другой векторной суммой (этот шаг похож на механизм внимания в Transformers), чтобы получить вероятность: Максимизируемая величина после упрощений равна: Величина слева вычисляется быстро, но величина справа вычисляется медленно, так как она включает суммирование по всему набору словаря для каждого слова в корпусе. Кроме того, чтобы использовать градиентный подъем для максимизации логарифмической вероятности, требуется вычислить градиент величины справа, что является неразрешимой задачей. Это побудило авторов использовать приемы численной аппроксимации.
Для skip-gram цель обучения — То есть, мы хотим максимизировать общую вероятность для корпуса, как видно из вероятностной модели, которая использует слова для предсказания своих соседей по слову. Мы предсказываем каждое соседнее слово независимо, таким образом .
Продукты численно нестабильны, поэтому мы преобразуем их, взяв логарифм: Модель вероятности по-прежнему является моделью dot-product-softmax, поэтому расчет продолжается, как и прежде. Есть только одно отличие от уравнения CBOW, выделенное красным.
В 2010 году Томаш Миколов (тогда работавший в Брненском технологическом университете ) с соавторами применил простую рекуррентную нейронную сеть с одним скрытым слоем для моделирования языка. [6]
Word2vec был создан, запатентован [7] и опубликован в 2013 году группой исследователей под руководством Миколова из Google в двух статьях. [1] [2] Оригинальная статья была отклонена рецензентами на конференции ICLR 2013. Также потребовались месяцы, чтобы код был одобрен для открытого исходного кода. [8] Другие исследователи помогли проанализировать и объяснить алгоритм. [4]
Векторы встраивания, созданные с помощью алгоритма Word2vec, имеют некоторые преимущества по сравнению с более ранними алгоритмами [1], такими как те, которые используют n-граммы и латентный семантический анализ . GloVe был разработан командой Стэнфорда специально как конкурент, и в оригинальной статье отмечались множественные улучшения GloVe по сравнению с word2vec. [9] Миколов утверждал, что сравнение было несправедливым, поскольку GloVe был обучен на большем количестве данных, и что проект fastText показал, что word2vec превосходит его при обучении на тех же данных. [10] [8]
По состоянию на 2022 год [update]прямой подход Word2vec был описан как «устаревший». Модели на основе Transformer , такие как ELMo и BERT , которые добавляют несколько слоев внимания нейронной сети поверх модели встраивания слов, аналогичной Word2vec, стали считаться последним словом в области обработки естественного языка. [11]
Результаты обучения word2vec могут быть чувствительны к параметризации . Ниже приведены некоторые важные параметры обучения word2vec.
Модель Word2vec может быть обучена с помощью иерархического softmax и/или отрицательной выборки. Чтобы приблизить условное логарифмическое правдоподобие, которое модель стремится максимизировать, иерархический метод softmax использует дерево Хаффмана для сокращения вычислений. Метод отрицательной выборки, с другой стороны, подходит к проблеме максимизации, минимизируя логарифмическое правдоподобие выбранных отрицательных экземпляров. По словам авторов, иерархический softmax лучше работает для редких слов, в то время как отрицательная выборка лучше работает для частых слов и лучше с векторами низкой размерности. [3] По мере увеличения эпох обучения иерархический softmax перестает быть полезным. [12]
Часто встречающиеся и нечастые слова часто дают мало информации. Слова с частотой выше определенного порога или ниже определенного порога могут быть подвыборочно или удалены для ускорения обучения. [13]
Качество встраивания слов увеличивается с ростом размерности. Но после достижения некоторой точки предельный прирост уменьшается. [1] Обычно размерность векторов устанавливается в диапазоне от 100 до 1000.
Размер контекстного окна определяет, сколько слов до и после данного слова включены в качестве контекстных слов данного слова. Согласно примечанию авторов, рекомендуемое значение составляет 10 для skip-gram и 5 для CBOW. [3]
Существует множество расширений word2vec.
doc2vec генерирует распределенные представления фрагментов текста переменной длины , таких как предложения, абзацы или целые документы. [14] [15] doc2vec был реализован в инструментах C , Python и Java / Scala (см. ниже), причем версии Java и Python также поддерживают вывод внедрений документов в новые, невидимые документы.
doc2vec оценивает распределенные представления документов во многом так же, как word2vec оценивает представления слов: doc2vec использует одну из двух архитектур моделей, обе из которых являются аллегориями архитектур, используемых в word2vec. Первая, Distributed Memory Model of Paragraph Vectors (PV-DM), идентична CBOW, за исключением того, что она также предоставляет уникальный идентификатор документа как часть дополнительного контекста. Вторая архитектура, Distributed Bag of Words версия Paragraph Vector (PV-DBOW), идентична модели skip-gram, за исключением того, что она пытается предсказать окно окружающих контекстных слов из идентификатора абзаца вместо текущего слова. [14]
doc2vec также имеет возможность захватывать семантические «значения» для дополнительных частей «контекста» вокруг слов; doc2vec может оценивать семантические вложения для говорящих или атрибутов говорящих, групп и периодов времени. Например, doc2vec использовался для оценки политических позиций политических партий в различных Конгрессах и Парламентах в США и Великобритании, [16] соответственно, и различных правительственных учреждениях. [17]
Другим расширением word2vec является top2vec, который использует как вложения документов, так и слов для оценки распределенных представлений тем. [18] [19] top2vec берет вложения документов, полученные из модели doc2vec, и сводит их к более низкому измерению (обычно с помощью UMAP ). Затем пространство документов сканируется с помощью HDBSCAN, [20] и находятся кластеры похожих документов. Затем центроид документов, идентифицированных в кластере, считается тематическим вектором этого кластера. Наконец, top2vec ищет в семантическом пространстве вложения слов, расположенные близко к тематическому вектору, чтобы установить «значение» темы. [18] Слово с вложениями, наиболее похожими на тематический вектор, может быть назначено в качестве заголовка темы, тогда как далеко расположенные вложения слов могут считаться несвязанными.
В отличие от других тематических моделей, таких как LDA , top2vec предоставляет канонические метрики «расстояния» между двумя темами или между темой и другими вложениями (слово, документ или иное). Вместе с результатами HDBSCAN пользователи могут создавать иерархии тем или группы связанных тем и подтем.
Кроме того, пользователь может использовать результаты top2vec для вывода тем документов, не входящих в выборку. После вывода вложения для нового документа необходимо только выполнить поиск в пространстве тем для ближайшего вектора тем.
Расширение векторов слов для n-грамм в биологических последовательностях (например, ДНК , РНК и белки ) для приложений биоинформатики было предложено Асгари и Мофрадом. [21] Названные био-векторами (BioVec) для обозначения биологических последовательностей в целом с белковыми векторами (ProtVec) для белков (аминокислотных последовательностей) и генными векторами (GeneVec) для генных последовательностей, это представление может широко использоваться в приложениях машинного обучения в протеомике и геномике. Результаты показывают, что BioVectors могут характеризовать биологические последовательности с точки зрения биохимических и биофизических интерпретаций базовых шаблонов. [21] Похожий вариант, dna2vec, показал, что существует корреляция между оценкой сходства Нидлмана-Вунша и косинусным сходством векторов слов dna2vec. [22]
Расширение векторов слов для создания плотного векторного представления неструктурированных отчетов по радиологии было предложено Банерджи и др. [23] Одной из самых больших проблем с Word2vec является то, как обрабатывать неизвестные или не имеющие словарного запаса (OOV) слова и морфологически похожие слова. Если модель Word2vec ранее не сталкивалась с определенным словом, она будет вынуждена использовать случайный вектор, что, как правило, далеко от ее идеального представления. Это может быть особенно проблемой в таких областях, как медицина, где синонимы и связанные слова могут использоваться в зависимости от предпочитаемого стиля рентгенолога, а слова могли использоваться нечасто в большом корпусе.
IWE объединяет Word2vec с техникой семантического словарного картирования для решения основных проблем извлечения информации из клинических текстов, которые включают неоднозначность стиля повествования свободного текста, лексические вариации, использование неграмматических и телеграфных фаз, произвольный порядок слов и частое появление сокращений и аббревиатур. Особый интерес представляет то, что модель IWE (обученная на одном институциональном наборе данных) успешно транслировалась на другой институциональный набор данных, что демонстрирует хорошую обобщаемость подхода между учреждениями.
Причины успешного обучения встраиванию слов в фреймворке word2vec плохо изучены. Голдберг и Леви указывают, что целевая функция word2vec приводит к тому, что слова, которые встречаются в схожих контекстах, имеют схожие встраивания (измеряемые косинусным сходством ), и отмечают, что это соответствует распределительной гипотезе Дж. Р. Фирта . Однако они отмечают, что это объяснение «очень нечеткое», и утверждают, что более формальное объяснение было бы предпочтительнее. [4]
Леви и др. (2015) [24] показывают, что большая часть превосходной производительности word2vec или подобных вложений в задачах ниже по потоку является результатом не самих моделей, а выбора конкретных гиперпараметров. Перенос этих гиперпараметров в более «традиционные» подходы дает схожие результаты в задачах ниже по потоку. Арора и др. (2016) [25] объясняют word2vec и связанные с ним алгоритмы как выполнение вывода для простой генеративной модели для текста, которая включает процесс генерации случайного блуждания на основе логлинейной тематической модели. Они используют это для объяснения некоторых свойств вложений слов, включая их использование для решения аналогий.
Подход встраивания слов способен улавливать несколько различных степеней сходства между словами. Миколов и др. (2013) [26] обнаружили, что семантические и синтаксические шаблоны можно воспроизводить с помощью векторной арифметики. Такие шаблоны, как «Мужчина относится к женщине так же, как брат относится к сестре», можно генерировать с помощью алгебраических операций над векторными представлениями этих слов, так что векторное представление «Брат» - «Мужчина» + «Женщина» дает результат, который наиболее близок к векторному представлению «Сестра» в модели. Такие отношения можно генерировать для ряда семантических отношений (например, Страна–Столица), а также синтаксических отношений (например, настоящее время–прошедшее время).
Этот аспект word2vec использовался в различных других контекстах. Например, word2vec использовался для отображения векторного пространства слов на одном языке в векторное пространство, созданное на основе другого языка. Отношения между переведенными словами в обоих пространствах могут использоваться для помощи в машинном переводе новых слов. [27]
Миколов и др. (2013) [1] разработали подход к оценке качества модели word2vec, которая опирается на семантические и синтаксические шаблоны, обсуждавшиеся выше. Они разработали набор из 8869 семантических отношений и 10675 синтаксических отношений, которые они используют в качестве эталона для проверки точности модели. При оценке качества векторной модели пользователь может опираться на этот тест точности, который реализован в word2vec, [28] или разработать свой собственный тестовый набор, который будет значимым для корпусов, составляющих модель. Этот подход предлагает более сложный тест, чем просто утверждение, что слова, наиболее похожие на данное тестовое слово, интуитивно правдоподобны. [1]
Использование различных параметров модели и различных размеров корпуса может значительно повлиять на качество модели word2vec. Точность может быть улучшена несколькими способами, включая выбор архитектуры модели (CBOW или Skip-Gram), увеличение набора обучающих данных, увеличение количества векторных измерений и увеличение размера окна слов, рассматриваемых алгоритмом. Каждое из этих улучшений имеет цену в виде увеличения вычислительной сложности и, следовательно, увеличения времени генерации модели. [1]
В моделях, использующих большие корпуса и большое количество измерений, модель skip-gram дает самую высокую общую точность и последовательно дает самую высокую точность семантических отношений, а также самую высокую синтаксическую точность в большинстве случаев. Однако CBOW менее затратен в вычислительном отношении и дает похожие результаты точности. [1]
В целом точность увеличивается с количеством используемых слов и количеством измерений. Миколов и др. [1] сообщают, что удвоение объема обучающих данных приводит к увеличению вычислительной сложности, эквивалентному удвоению количества векторных измерений.
Altszyler и соавторы (2017) изучали производительность Word2vec в двух семантических тестах для корпусов разного размера. [29] Они обнаружили, что Word2vec имеет крутую кривую обучения , превосходя другую технику встраивания слов, латентный семантический анализ (LSA), когда он обучается на корпусах среднего и большого размера (более 10 миллионов слов). Однако на небольшом обучающем корпусе LSA показал лучшую производительность. Кроме того, они показывают, что наилучшая настройка параметров зависит от задачи и обучающего корпуса. Тем не менее, для моделей skip-gram, обученных на корпусах среднего размера с 50 измерениями, размер окна 15 и 10 отрицательных образцов, по-видимому, является хорошей настройкой параметров.
{{cite arXiv}}
: CS1 maint: date and year (link){{cite journal}}
: Цитировать журнал требует |journal=
( помощь )