Word2vec — это метод обработки естественного языка (НЛП) для получения векторных представлений слов. Эти векторы собирают информацию о значении слова и его использовании в контексте. Алгоритм word2vec оценивает эти представления путем моделирования текста в большом корпусе . После обучения такая модель может обнаруживать слова -синонимы или предлагать дополнительные слова для части предложения. Word2Vec был разработан Томашем Миколовым и его коллегами из Google и опубликован в 2013 году.
Как следует из названия, word2vec представляет каждое отдельное слово определенной строкой чисел, называемой вектором . Векторы отражают взаимоотношения между мирами. Какие слова обычно встречаются в тех же предложениях, что и другие слова. После того как вы преобразовали отдельные слова в векторы, простая математическая функция ( косинусное сходство ) может указать уровень семантического сходства между словами, представленными этими векторами, и может определить семантические и синтаксические качества конкретных слов, например. Уок и Ран появляются близко друг к другу, как и Но и Однако. Эти векторные отображения даже выявляют логические связи между словами, например. Берлин кажется близким к Германии.
Word2vec — это группа связанных моделей, которые используются для создания встраивания слов . Эти модели представляют собой неглубокие двухслойные нейронные сети , обученные реконструировать лингвистический контекст слов. Word2vec принимает на вход большой корпус текста и создает векторное пространство , обычно состоящее из нескольких сотен измерений , где каждому уникальному слову в корпусе присваивается соответствующий вектор в пространстве.
Word2vec может использовать любую из двух модельных архитектур для создания таких распределенных представлений слов: непрерывный мешок слов (CBOW) или непрерывно скользящую пропускную грамму. В обеих архитектурах word2vec учитывает как отдельные слова, так и скользящее контекстное окно при проходе по корпусу.
CBOW можно рассматривать как задачу «заполнить пробелы», где встраивание слов представляет собой то, как слово влияет на относительные вероятности других слов в контекстном окне. Слова, семантически схожие, должны влиять на эти вероятности одинаковым образом, поскольку семантически схожие слова должны использоваться в схожих контекстах. Порядок контекстных слов не влияет на прогноз ( допущение «мешка слов» ).
В архитектуре непрерывного пропуска граммы модель использует текущее слово для прогнозирования окружающего окна контекстных слов. [1] [2] Архитектура пропуска грамм весит слова близлежащего контекста больше, чем слова более удаленного контекста. По замечанию авторов, [3] CBOW работает быстрее, тогда как Skip-gram лучше справляется с редкими словами.
После обучения модели изученные вложения слов располагаются в векторном пространстве таким образом, что слова, имеющие общий контекст в корпусе, то есть слова, семантически и синтаксически похожие, располагаются в пространстве близко друг к другу. [1] Более непохожие слова расположены дальше друг от друга в пространстве. [1]
Этот раздел основан на экспозициях. [4] [5]
Корпус – это последовательность слов. И CBOW, и Skip-gram — это методы изучения одного вектора на каждое слово, появляющееся в корпусе.
Пусть («словарный запас») будет набором всех слов, встречающихся в корпусе . Наша цель — выучить по одному вектору для каждого слова .
Идея скип-граммы заключается в том, что вектор слова должен быть близок к вектору каждого из его соседей. Идея CBOW заключается в том, что вектор-сумма соседей слова должна быть близка к вектору слова.
В исходной публикации «близость» измеряется softmax , но структура допускает другие способы измерения близости.
Предположим, мы хотим, чтобы каждое слово в корпусе было предсказано каждым другим словом в небольшом интервале из 4 слов. Записываем множество соседей .
Тогда целью тренировки является максимизация следующей величины:
Произведения численно нестабильны, поэтому преобразуем их логарифмом:
Наша вероятностная модель выглядит следующим образом: для данных слов она берет их векторную сумму , затем берет скалярное произведение-softmax с каждой другой векторной суммой (этот шаг аналогичен механизму внимания в Трансформерах), чтобы получить вероятность:
Для скип-грамм целью тренировки является
Произведения численно нестабильны, поэтому преобразуем их логарифмом:
В 2010 году Томаш Миколов (тогда работавший в Брненском технологическом университете ) с соавторами применил простую рекуррентную нейронную сеть с одним скрытым слоем для моделирования языка. [6]
Word2vec был создан, запатентован [7] и опубликован в 2013 году группой исследователей под руководством Миколова из Google в двух статьях. [1] [2] Другие исследователи помогли проанализировать и объяснить алгоритм. [4] Векторы внедрения, созданные с помощью алгоритма Word2vec, имеют некоторые преимущества по сравнению с более ранними алгоритмами [1] [ необходимы дополнительные объяснения ] , такие как скрытый семантический анализ .
К 2022 году прямой подход Word2vec был описан как «устаревший». Модели-трансформеры , которые добавляют несколько слоев внимания нейронной сети поверх модели встраивания слов, аналогичной Word2vec, стали считаться новейшим достижением в НЛП. [8] .
Результаты обучения word2vec могут быть чувствительны к параметризации . Ниже приведены некоторые важные параметры обучения word2vec.
Модель Word2vec можно обучать с помощью иерархической softmax и/или отрицательной выборки. Чтобы аппроксимировать условное логарифмическое правдоподобие, которое модель стремится максимизировать, иерархический метод softmax использует дерево Хаффмана для сокращения вычислений. С другой стороны, метод отрицательной выборки подходит к проблеме максимизации путем минимизации логарифмической вероятности выбранных отрицательных экземпляров. По мнению авторов, иерархический softmax лучше работает для нечастых слов, тогда как отрицательная выборка лучше работает для частых слов и лучше с векторами малой размерности. [3] По мере увеличения периодов обучения иерархический softmax перестает быть полезным. [9]
Высокочастотные и низкочастотные слова часто несут мало информации. Слова с частотой выше определенного порога или ниже определенного порога могут быть отобраны или удалены для ускорения обучения. [10]
Качество встраивания слов увеличивается с увеличением размерности. Но после достижения некоторой точки предельный выигрыш уменьшается. [1] Обычно размерность векторов устанавливается в диапазоне от 100 до 1000.
Размер контекстного окна определяет, сколько слов до и после данного слова включены в качестве контекстных слов данного слова. По примечанию авторов, рекомендуемое значение составляет 10 для скип-грамм и 5 для CBOW. [3]
Существует множество расширений word2vec.
doc2vec генерирует распределенные представления фрагментов текста переменной длины , таких как предложения, абзацы или целые документы. [11] [12] doc2vec был реализован в инструментах C , Python и Java / Scala (см. ниже), причем версии Java и Python также поддерживают вывод вложений документов в новые, невидимые документы.
doc2vec оценивает распределенные представления документов так же, как word2vec оценивает представления слов: doc2vec использует одну из двух архитектур моделей, обе из которых являются аллегориями архитектур, используемых в word2vec. Первая, модель векторов абзацев с распределенной памятью (PV-DM), идентична CBOW, за исключением того, что она также предоставляет уникальный идентификатор документа как часть дополнительного контекста. Вторая архитектура, версия вектора абзаца с распределенным пакетом слов (PV-DBOW), идентична модели пропуска грамм, за исключением того, что она пытается предсказать окно окружающих слов контекста на основе идентификатора абзаца, а не текущего слова. [11]
doc2vec также имеет возможность фиксировать семантические «значения» дополнительных частей «контекста» вокруг слов; doc2vec может оценить семантические вложения для говорящих или атрибутов говорящих, групп и периодов времени. Например, doc2vec использовался для оценки политических позиций политических партий в различных конгрессах и парламентах США и Великобритании [13] соответственно, а также в различных правительственных учреждениях. [14]
Еще одним расширением word2vec является top2vec, который использует встраивание документов и слов для оценки распределенных представлений тем. [15] [16] top2vec берет встраивания документов, полученные из модели doc2vec, и сводит их к более низкому измерению (обычно с использованием UMAP ). Затем пространство документов сканируется с помощью HDBSCAN [17] и обнаруживаются кластеры похожих документов. Далее центроид документов, идентифицированных в кластере, считается тематическим вектором этого кластера. Наконец, top2vec ищет в семантическом пространстве встраивания слов, расположенные рядом с вектором темы, чтобы выяснить «значение» темы. [15] Слово с вложениями, наиболее похожими на вектор темы, может быть назначено в качестве названия темы, тогда как далекое вложение слов может считаться несвязанным.
В отличие от других моделей тем, таких как LDA , top2vec предоставляет канонические метрики «расстояния» между двумя темами или между темой и другими вложениями (словами, документами и т. д.). Вместе с результатами HDBSCAN пользователи могут создавать иерархии тем или группы связанных тем и подтем.
Кроме того, пользователь может использовать результаты top2vec, чтобы определить темы документов, выходящих за рамки выборки. После определения встраивания нового документа необходимо только искать в пространстве тем ближайший вектор тем.
Расширение векторов слов для n-грамм в биологических последовательностях (например , ДНК , РНК и белках ) для приложений биоинформатики было предложено Асгари и Мофрадом. [18] Названные биовекторами (BioVec) для обозначения биологических последовательностей в целом, белковыми векторами (ProtVec) для белков (аминокислотные последовательности) и генными векторами (GeneVec) для генных последовательностей, это представление может широко использоваться в применение машинного обучения в протеомике и геномике. Результаты показывают, что BioVectors могут характеризовать биологические последовательности с точки зрения биохимических и биофизических интерпретаций лежащих в их основе закономерностей. [18] Похожий вариант, dna2vec, показал, что существует корреляция между показателем сходства Нидлмана-Вунша и косинусным сходством векторов слов dna2vec. [19]
Расширение векторов слов для создания плотного векторного представления неструктурированных радиологических отчетов было предложено Banerjee et al. [20] Одна из самых больших проблем с Word2vec — это то, как обрабатывать неизвестные слова или слова за пределами словарного запаса (OOV), а также морфологически похожие слова. Если модель Word2vec раньше не встречала определенное слово, она будет вынуждена использовать случайный вектор, который, как правило, далек от его идеального представления. Это может особенно стать проблемой в таких областях, как медицина, где синонимы и родственные слова могут использоваться в зависимости от предпочтительного стиля работы радиолога, а слова могут использоваться нечасто в большом корпусе.
IWE сочетает Word2vec с методом семантического сопоставления словаря для решения основных проблем извлечения информации из клинических текстов, которые включают неоднозначность стиля повествования в произвольном тексте, лексические вариации, использование неграмматических и телеграфных фаз, произвольный порядок слов и частое появление сокращений. и аббревиатуры. Особый интерес представляет то, что модель IWE (обученная на одном институциональном наборе данных) успешно трансформировалась в другой институциональный набор данных, что демонстрирует хорошую возможность обобщения подхода между учреждениями.
Причины успешного обучения встраиванию слов в рамках word2vec плохо изучены. Голдберг и Леви отмечают, что целевая функция word2vec приводит к тому, что слова, которые встречаются в схожих контекстах, имеют схожие вложения (что измеряется косинусным сходством ), и отмечают, что это соответствует гипотезе распределения Дж. Р. Ферта . Однако они отмечают, что это объяснение «очень запутано», и утверждают, что более формальное объяснение было бы предпочтительнее. [4]
Леви и др. (2015) [21] показывают, что высокая производительность word2vec или аналогичных вложений в последующих задачах во многом является результатом не самих моделей, а выбора конкретных гиперпараметров. Перенос этих гиперпараметров в более «традиционные» подходы дает аналогичные результаты в последующих задачах. Арора и др. (2016) [22] объясняют, что word2vec и связанные с ним алгоритмы выполняют вывод для простой генеративной модели текста, которая включает в себя процесс генерации случайных блужданий, основанный на логлинейной тематической модели. Они используют это для объяснения некоторых свойств вложений слов, в том числе их использования для решения аналогий.
Подход к внедрению слов способен уловить несколько различных степеней сходства между словами. Миколов и др. (2013) [23] обнаружили, что семантические и синтаксические шаблоны можно воспроизвести с помощью векторной арифметики. Такие шаблоны, как «Мужчина относится к женщине, как брат к сестре», могут быть созданы посредством алгебраических операций над векторными представлениями этих слов, так что векторное представление «Брат» - «Мужчина» + «Женщина» дает результат, который является наиболее близким к векторному представлению «Сестры» в модели. Такие отношения могут быть созданы для ряда семантических отношений (например, Страна-Столица), а также синтаксических отношений (например, настоящее время-прошедшее время).
Этот аспект word2vec использовался во множестве других контекстов. Например, word2vec использовался для отображения векторного пространства слов одного языка в векторное пространство, созданное на основе другого языка. Отношения между переведенными словами в обоих пространствах можно использовать для машинного перевода новых слов. [24]
Миколов и др. (2013) [1] разработали подход к оценке качества модели word2vec, основанный на семантических и синтаксических шаблонах, обсуждавшихся выше. Они разработали набор из 8869 семантических отношений и 10675 синтаксических отношений, которые используют в качестве эталона для проверки точности модели. При оценке качества векторной модели пользователь может использовать этот тест точности, реализованный в word2vec [25] , или разработать собственный набор тестов, который будет иметь значение для корпусов, составляющих модель. Этот подход предлагает более сложную проверку, чем просто доказывать, что слова, наиболее похожие на данное проверочное слово, интуитивно правдоподобны. [1]
Использование разных параметров модели и разных размеров корпуса может сильно повлиять на качество модели word2vec. Точность можно повысить несколькими способами, включая выбор архитектуры модели (CBOW или Skip-Gram), увеличение набора обучающих данных, увеличение количества векторных измерений и увеличение размера окна слов, рассматриваемых алгоритмом. Каждое из этих улучшений связано с увеличением вычислительной сложности и, следовательно, увеличением времени создания модели. [1]
В моделях, использующих большие корпуса и большое количество измерений, модель пропуска грамм обеспечивает самую высокую общую точность и неизменно обеспечивает самую высокую точность семантических отношений, а также самую высокую синтаксическую точность в большинстве случаев. Однако CBOW менее затратен в вычислительном отношении и дает аналогичные результаты по точности. [1]
В целом точность увеличивается с увеличением количества используемых слов и размеров. Миколов и др. [1] сообщают, что удвоение объема обучающих данных приводит к увеличению вычислительной сложности, эквивалентному удвоению количества векторных измерений.
Альтшилер и соавторы (2017) изучали производительность Word2vec в двух семантических тестах для разных размеров корпуса. [26] Они обнаружили, что Word2vec имеет крутую кривую обучения , превосходя по эффективности другой метод встраивания слов, скрытый семантический анализ (LSA), когда он обучается со средним и большим размером корпуса (более 10 миллионов слов). Однако при небольшом обучающем корпусе LSA показал лучшие результаты. Кроме того, они показывают, что лучшая настройка параметров зависит от задачи и обучающего корпуса. Тем не менее, для моделей пропуска грамм, обученных в корпусах среднего размера с 50 измерениями, размер окна в 15 и 10 отрицательных образцов кажется хорошей настройкой параметров.
{{cite journal}}
: Требуется цитировать журнал |journal=
( помощь )