Word2vec - Word2vec

Word2vec - это метод обработки естественного языка, опубликованный в 2013 году. Алгоритм word2vec использует модель нейронной сети для изучения словесных ассоциаций из большого корпуса текста . После обучения такая модель может обнаруживать синонимичные слова или предлагать дополнительные слова для частичного предложения. Как следует из названия, word2vec представляет каждое отдельное слово с определенным списком чисел, называемым вектором . Векторы выбираются тщательно, так что простая математическая функция ( косинусное сходство между векторами) указывает уровень семантического сходства между словами, представленными этими векторами.

Подход

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

История

Word2vec был создан, запатентован и опубликован в 2013 году группой исследователей под руководством Томаса Миколова из Google в более двух статьях. Другие исследователи помогли проанализировать и объяснить алгоритм. Встраивание векторов, созданных с помощью алгоритма Word2vec, имеет некоторые преимущества по сравнению с более ранними алгоритмами, такими как скрытый семантический анализ .

CBOW и пропустить граммы

Word2vec может использовать любую из двух архитектур моделей для создания распределенного представления слов: непрерывный пакет слов (CBOW) или непрерывный скип-грамм . В архитектуре непрерывного набора слов модель предсказывает текущее слово из окна окружающих контекстных слов. Порядок контекстных слов не влияет на предсказание (предположение о мешке слов ). В архитектуре непрерывной скип-граммы модель использует текущее слово для предсказания окружающего окна контекстных слов. Архитектура skip-gram более важна для ближайших контекстных слов, чем для более отдаленных контекстных слов. Согласно примечанию авторов, CBOW быстрее, в то время как skip-gram лучше справляется с редкими словами.

Параметризация

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

Алгоритм обучения

Модель Word2vec можно обучить с помощью иерархической softmax и / или отрицательной выборки. Чтобы аппроксимировать условную логарифмическую вероятность, которую модель стремится максимизировать, иерархический метод softmax использует дерево Хаффмана для сокращения вычислений. С другой стороны, метод отрицательной выборки приближает проблему максимизации к минимуму логарифмической вероятности выбранных отрицательных примеров. По словам авторов, иерархический softmax лучше работает для редко встречающихся слов, в то время как отрицательная выборка работает лучше для часто встречающихся слов и лучше для векторов низкой размерности. По мере увеличения эпох обучения иерархический softmax перестает быть полезным.

Подвыборка

Часто употребляемые слова не дают информации. Слова с частотой выше определенного порога могут быть подвергнуты субдискретизации для ускорения обучения.

Размерность

Качество встраивания слов повышается с увеличением размерности. Но по достижении какой-то точки маржинальный выигрыш уменьшается. Обычно размерность векторов устанавливается от 100 до 1000.

Контекстное окно

Размер контекстного окна определяет, сколько слов до и после данного слова включаются в качестве контекстных слов данного слова. Согласно примечанию авторов, рекомендуемое значение - 10 для скип-грамма и 5 для CBOW.

Расширения

Было предложено расширение word2vec для создания вложений из целых документов (а не из отдельных слов). Это расширение называется paragraph2vec или doc2vec и было реализовано в инструментах C, Python и Java / Scala (см. Ниже), причем версии Java и Python также поддерживают вывод встраивания документов в новые, невидимые документы.

Словарные векторы для биоинформатики: BioVectors

Расширение словарных векторов для n-граммов в биологических последовательностях (например, ДНК , РНК и белки ) для приложений биоинформатики было предложено Асгари и Мофрадом. Названные био-векторы (BioVec) для обозначения биологических последовательностей в целом с белковыми векторами (ProtVec) для белков (аминокислотными последовательностями) и ген-векторами (GeneVec) для последовательностей генов, это представление может широко использоваться в приложениях машин обучение протеомике и геномике. Результаты показывают, что BioVectors могут характеризовать биологические последовательности с точки зрения биохимических и биофизических интерпретаций лежащих в основе паттернов. Аналогичный вариант, dna2vec, показал, что существует корреляция между оценкой сходства Нидлмана-Вунша и косинусным сходством векторов слов dna2vec.

Векторы слов для радиологии: интеллектуальное встраивание слов (IWE)

Расширение словарных векторов для создания плотного векторного представления неструктурированных радиологических отчетов было предложено Banerjee et al. Одна из самых больших проблем Word2Vec - это работа с неизвестными словами или словами вне словарного запаса (OOV) и морфологически похожими словами. Это может быть особенно проблемой в таких областях, как медицина, где синонимы и родственные слова могут использоваться в зависимости от предпочтительного стиля радиолога, а слова могут использоваться нечасто в большом корпусе. Если модель word2vec раньше не встречала конкретное слово, она будет вынуждена использовать случайный вектор, который, как правило, далек от ее идеального представления.

IWE сочетает Word2vec с техникой семантического сопоставления словаря для решения основных проблем извлечения информации из клинических текстов, которые включают неоднозначность стиля повествования свободного текста, лексические вариации, использование неграмматической и телеграфной фаз, произвольный порядок слов и частое появление сокращений. и акронимы. Особый интерес представляет то, что модель IWE (обученная на одном наборе институциональных данных) успешно преобразована в другой институциональный набор данных, что демонстрирует хорошую обобщаемость подхода для разных учреждений.

Анализ

Причины успешного обучения встраиванию слов во фреймворке word2vec плохо изучены. Голдберг и Леви отмечают, что целевая функция word2vec приводит к тому, что слова, встречающиеся в схожих контекстах, имеют схожие вложения (измеряемые по косинусному сходству ), и отмечают, что это соответствует гипотезе распределения Дж. Р. Ферта . Однако они отмечают, что это объяснение «очень сложное», и утверждают, что более формальное объяснение было бы предпочтительнее.

Леви и др. (2015) показывают, что большая часть превосходной производительности word2vec или аналогичных встраиваний в последующих задачах является результатом не моделей как таковых, а выбора конкретных гиперпараметров. Перенос этих гиперпараметров в более «традиционные» подходы дает аналогичную производительность в последующих задачах. Arora et al. (2016) объясняют word2vec и связанные с ним алгоритмы как выполнение логического вывода для простой генеративной модели текста, которая включает в себя процесс генерации случайного блуждания на основе логлинейной тематической модели. Они используют это, чтобы объяснить некоторые свойства вложения слов, в том числе их использование для решения аналогий.

Сохранение семантических и синтаксических отношений

Подход встраивания слов позволяет уловить несколько разных степеней сходства между словами. Миколов и др. (2013) обнаружили, что семантические и синтаксические шаблоны могут быть воспроизведены с помощью векторной арифметики. Такие шаблоны, как «Мужчина для женщины, как брат для сестры» могут быть сгенерированы с помощью алгебраических операций над векторными представлениями этих слов, так что векторное представление «Брат» - «Мужчина» + «Женщина» дает результат, который наиболее близок к векторному представлению «Сестры» в модели. Такие отношения могут быть созданы для ряда семантических отношений (таких как Страна – Столица), а также синтаксических отношений (например, настоящее время – прошедшее время).

Оценка качества модели

Миколов и др. (2013) разработали подход к оценке качества модели word2vec, основанный на семантических и синтаксических шаблонах, описанных выше. Они разработали набор из 8 869 семантических отношений и 10 675 синтаксических отношений, которые они используют в качестве эталона для проверки точности модели. При оценке качества векторной модели пользователь может использовать этот тест точности, который реализован в word2vec, или разработать свой собственный набор тестов, который имеет значение для корпусов, составляющих модель. Этот подход предлагает более сложный тест, чем просто доказательство того, что слова, наиболее похожие на данное тестовое слово, интуитивно правдоподобны.

Параметры и качество модели

Использование разных параметров модели и разных размеров корпуса может сильно повлиять на качество модели word2vec. Точность можно повысить несколькими способами, включая выбор архитектуры модели (CBOW или Skip-Gram), увеличение набора обучающих данных, увеличение числа размерностей вектора и увеличение размера окна слов, учитываемых алгоритмом. Каждое из этих улучшений связано с увеличением вычислительной сложности и, следовательно, увеличением времени создания модели.

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

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

Altszyler и соавторы (2017) изучали производительность Word2vec в двух семантических тестах для разных размеров корпуса. Они обнаружили, что Word2vec имеет крутую кривую обучения , превосходя другой метод встраивания слов ( LSA ), когда он обучается со средним и большим размером корпуса (более 10 миллионов слов). Однако при небольшом тренировочном корпусе LSA показала лучшие результаты. Кроме того, они показывают, что наилучшая настройка параметров зависит от задачи и учебного корпуса. Тем не менее, для моделей скип-грамм, обученных в корпусах среднего размера с 50 измерениями, размер окна в 15 и 10 отрицательных выборок кажется хорошей настройкой параметра.

Смотрите также

использованная литература

внешние ссылки

Реализации