Что такое word embeddings
Что такое эмбеддинги и как они помогают искусственному интеллекту понять мир людей
Как привычные слова изменяют цифровой мир вокруг нас, рассказывает доктор технических наук Владимир Крылов, консультант Artezio.
Современные системы распознавания речи и текста открывают для людей новые возможности, значительно упрощая общение человека и машины. Мы можем отдавать голосовые команды автопилоту, спросить в чате у бота, какая завтра будет погода или получить рекомендации, как улучшить текст для книги. Все это стало возможным благодаря уникальным разработкам ученых и привычным словам, которые искусственный интеллект научился понимать с помощью эмбеддингов.
Технологии искусственного интеллекта включают в себя обработку текста на естественных языках, сокращённо NLP, то есть Natural Language Processing (не путайте с нейролингвистическим программированием!). Эмбеддинг в NLP означает процесс или, чаще, результат процесса преобразования языковой сущности – слова, предложения, параграфа или целого текста в набор чисел – числовой вектор
В русскоязычной литературе эмбеддингами обычно называют именно такие числовые векторы, которые получены из слов или других языковых сущностей. Напомню, что числовым вектором размерности k называют список из k чисел, в котором порядок чисел строго определен. Например, трехмерным вектором можно считать (2.3, 1.0, 7.35), а (1, 0, 0, 2, 0.1, 0, 0, 7.9) – восьмимерным числовым вектором.
Посмотрите в упомянутый Толковый словарь Ушакова – вы не найдете там такого популярного слова как «компьютер». Существенно снизить вероятность такой проблемы можно не используя специальный словарь, а нумеруя слова в произвольном обширном наборе текстов, например, в Википедии, Большой российской энциклопедии. Для этих целей сегодня создаются специальные наборы, называемые корпусами текстов.
Существует несколько успешно применяемых алгоритмов такого анализа: латентный семантический анализ, латентное размещение Дирихле и тематические модели Biterm для коротких текстов. Использование таких моделей, например, позволило сортировать гигантские потоки электронных писем по тематике и направлять их согласно предписанным правилам. На этом этапе внутри NLP начал формироваться мощный поток технологий, которые получили общую формулировку, как «понимание естественного языка».
В революционной работе Томаша Миколова, исследователя Google, а затем Facebook, и его коллег в 2013 году было предложено использовать гипотезу локальности: «слова, которые встречаются в одинаковых окружениях, имеют близкие значения». Близость в данном случае – это стоящие рядом сочетающиеся слова. Например, для нас привычно словосочетание «заводной будильник». А сказать “заводной океан” мы не можем — эти слова не сочетаются. Для получения таких свойств нужно строить эмбеддинги слов в высокоразмерном (но не зависящем от числа слов) векторном пространстве. Чтобы каждому слову теперь соответствовал набор из двух-пяти сотен чисел, и эти наборы удовлетворяли свойствам математического векторного пространства.
То есть, чтобы их можно было складывать, умножать на скаляры, находить между ними расстояния и при этом каждое такое действие с числовыми векторами имело смысл как некоторое действие над словами. Все публикации и лекции об эмбеддингах сегодня сопровождает известная картинка, поясняющая сказанное.
Мы видим, что семантическое отношение «МУЖЧИНА-ЖЕНЩИНА» для эмбеддингов этих слов сводится к наличию некоторого вектора разности между ними, который удивительно сохраняется и для эквивалентного семантического отношения ДЯДЯ
КОРОЛЕВА. Это позволяет записать простое математическое соотношение: ЖЕНЩИНА-МУЖЧИНА=КОРОЛЕВА-КОРОЛЬ. Сделаем простое преобразование этой формулы: ЖЕНЩИНА-КОРОЛЕВА=МУЖЧИНА-КОРОЛЬ. И правда, это выглядит справедливым: женщина без звания королевы – то же самое, что мужчина без звания короля. А вот вторая картинка поясняет, что эмбеддинги сохраняют и отношение «один»
«много». Миколов назвал метод получения таких эмбеддингов «word2vec».
Он основан на использовании вероятностной оценки совместного употребления групп слов и самообучаемой на корпусах текстов нейронной сети. Идея оказалась плодотворной, и уже вскоре мы были свидетелями построения ещё более изощрённых моделей для получения эмбеддингов как отдельных слов, так и предложений, и целых документов. Это модель GloVe, разработанная в Стэнфорде, fastText – разработанная Facebook, doc2vec – модель, отображающая в числовой вектор целый документ. В последние годы эмбеддинги получают с помощью весьма сложных моделей глубокого обучения для сохранения в свойствах векторов всё более тонких отношений естественного языка. Получаемые результаты настолько впечатляют, что эксперты отметили появление таких моделей как новую эру эмбеддинга.
Понимая всю сложность моделей такого уровня, не могу не удержаться от попытки рассказать, как же все-таки получаются эмбеддинги в самой хайповой сегодня модели BERT, разработанной Google AI Language в 2018 году.
В основе лежит нейроархитектура, называемая Transformer. Каждое слово кодируется уникальным ключом, и последовательность слов подается на так называемую рекуррентную нейронную сеть для предсказания некоторого числового многомерного вектора – эмбеддинга.
BERT может предсказывать не только слова, но и целые предложения. В процессе обучения BERT модель получает пары предложений в качестве входных данных и учится предсказывать, является ли второе предложение в паре последующим предложением в исходном документе. Во время обучения 50% входных данных представляют собой пару, в которой второе предложение является последующим предложением в оригинальном документе, в то время как в остальных 50% входных данных в качестве второго предложения выбирается случайное предложение из корпуса. Предполагается, что случайное предложение будет отсоединено от первого предложения.
BERT можно использовать для самых разных языковых задач, например, модифицируя нейронную сеть.
Эмбеддинги открыли возможность одновременного оперирования на разных естественных языках. Ведь если построить пространство эмбеддингов предложений и слов на английском и русском языке, то одинаковым семантическим понятиям должны соответствовать одни и те же эмбеддинги. Такое совмещение должно осуществляться в процессе обучения нейропереводчика. Тогда перевод нового текста с английского будет сводиться к его эмбеддингу и декодированию в словах русского языка, на который нужно осуществить перевод. Известны поисковые машины, которые принимают запрос на одном языке и отыскивают информацию на любом языке, используя обратный индекс на основе эмбеддингов.
Перед искусственным интеллектом (ИИ) открыта масса задач не только понимать особенности высказанного человеком и выбирать заранее декларированные возможные решения на их основе, но и строить сами решения. Достижение таких целей в системах искусственного интеллекта осуществляется использованием архитектур с многими нейронными сетями, генетических алгоритмов, деревьев выбора и других. Все они как правило работают эффективно, если данные для них представлены в виде числовых векторов. Это означает, что все данные для искусственного интеллекта следует представлять эмбеддингами.
В последнее время появилось несколько работ, посвященных эмбеддингам сущностей, отличных от лингвистических. Хотя здесь можно и сомневаться, нужно ли интеллекту искусственному, да и естественному, знать какие-то сущности, кроме выраженных средствами языка, естественного или искусственного, но воспринимаемого человеком. В конечном итоге и отношения между сущностями описываются средствами языка, а значит могут рассматриваться равноправно наряду с отношениями слов, предложений и текстов. Все это говорит о том, что путь эмбеддинга для любых сущностей, с которыми должен оперировать ИИ, является перспективным и корректным.
В нашей лаборатории ведутся исследования в области использования эмбеддингов для представления правового пространства – статей уголовного кодекса, гражданского кодекса, трудового кодекса, судебных решений совместно с представлением нарративов (повествовательных текстов), описывающих некоторые факты. Уже сегодня нам удалось построить весьма качественный ИИ, который может заменить аппарат суда для квалификации материалов дела на этапе подготовки проекта судебного решения: какие нормативные акты нарушаются в описании фактов, представленных нарративом.
Сегодня всё больше и больше людей занимаются разработкой эмбеддингов. В принципе, уже можно говорить о том, что достаточно универсальный подход может базироваться на идее, что ИИ должен «мыслить» словами, в языковой форме. Другая идея опирается на предположение, что состояния мира могут преобразовываться в эмбеддинги, минуя словесное описание, например изображения или аудиозаписи можно сразу преобразовывать в многомерные вектора.
Если обучать модель для такого эмбеддинга совместно с текстами, то ИИ сможет оперировать как с однородными данными и с картинками, и со словами, и со звуками. Совсем недавно в своей лекции в Беркли Дэн Гиллик из Google предложил строить ИИ для поиска информации размещая все различные объекты / сущности в одном и том же векторном пространстве, независимо от того, составлены они из текста, изображений, видео или аудио.
Обзор методов создания эмбедингов предложений, Часть1
Представте себе, как было бы удобно, написать предложение и найти похожее к нему по смыслу. Для этого нужно уметь векторизовать всё предложение, что может быть очень не тривиальной задачей.
По специфике своей работы, я должен искать похожие запросы в службу поддержки и даже имея достаточно большую разметку, бывает тяжело собрать необходимое количество сообщений подходящих по тематике, но написанных другими словами.
Ниже обзорное исследование на способы векторизации всего предложения и не просто векторизации, а попытка векторизовать предложение с учётом его смысла.
Например две фразы ‘эпл лучше самсунг’ от ‘самсунг лучше эпл’, должны быть на противоположном конце по одному из значений вектора, но при этом совпадать по другим.
Можно привести аналогию с картинкой ниже. По шкале от кекса до собаки они находятся на разных концах, а по количеству чёрных точек и цвету объекта на одном.
Методы в статьях очень не тривиальные и интересны для изучения, но минусы в том, что:
Поэтому ниже обзорно — сравнительный анализ 7 разных методов векторизации предложений на одном датасете.
Содержание
Подготовка
Функция оценки
Подготовка
База знаний
Выбираем из базы знаний три темы с примерно равным количество сообщений в них, которые будут использоваться для оценки методов и удалим их из базы знаний.
Для оценки нужна только одна функция от каждого метода get_similarity_values, которая будет принимать на вход сообщения и возвращать расстояния от каждого к каждому. Сообщения сортируются по увеличению расстояния и рассчитывается сколько баллов набрал этот метод.
Теоретически максимально возможное значение = sum(214… 214 — 72) — sum(214-72… 0) + 7626 = 10395
1. Методы BOW
1.1 BOW
Будем определять расстояни между предложеними по словам, которые находятся в предложении без предварительной обработки (сохраняя все знаки препинания).
1.2 BOW с леммами слов
Тот же алгоритм, но теперь будут использоваться леммы слов.
‘BOW с леммами слов: 1645.8’
1.3 BOW с леммами с очисткой стоп слов и знаков препинания
‘BOW с леммами и без стоп слов: 1917.6’
1.4 LDA
LDA: 344.7
LDA с леммами: 1092.1
LDA с леммами и без стоп слов: 1077.2
2. Методы, использующие эмбединги токенов
Будем использовать предобученные эмбединги и добавим возможность выбирать метод векторизации и фунцию расстояния.
Здесь можно скачать fasttext.
А вот тут ссылка для скачивания и инструкция использования gensim модели word2vec.
2.1 Среднее по эмбедингу слов
среднее по embedings с euclidean_distances с word2vec + fast_text: 1833.6
среднее по embedings с euclidean_distances с fast_text: 913.5
среднее по embedings с euclidean_distances с word2vec: 1941.6
среднее по embedings с cosine_distance с word2vec + fast_text: 2278.1
cреднее по embedings с cosine_distance с fast_text: 829.2
среднее по embedings с cosine_distance с word2vec: 2437.7
2.2 Среднее по эмбедингу с предварительной очисткой стоп слов
среднее по embedings без стопслов с euclidean_distances с word2vec + fast_text: 2116.9
среднее по embedings без стопслов с euclidean_distances с fast_text: 1314.5
среднее по embedings без стопслов с euclidean_distances с word2vec: 2159.1
среднее по embedings без стопслов с cosine_distance с word2vec + fast_text: 2779.7
среднее по embedings без стопслов с cosine_distance с fast_text: 2199.0
среднее по embedings без стопслов с cosine_distance с word2vec: 2814.4
2.3 Среднее по эмбедингу с весами tf-idf
Методы без учителя
Следующие несколько моделей потребуют потоковой генерации данных, поэтому сделаем универсальные генераторы.
Если кажтся, что потоковая генерация слишком дорогая, то оцените время, которое занимает генерация 100 батчей с размером батча 32, получается:
448 ms ± 65.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
5.77 s ± 115 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
3. Languade Models
Нейронная сеть угадывает следующее слово в преложении. Предсказание по всей длине текста, является эмбедингом предложения.
Угадывать будем на основании предыдущих слов: максимум 20 и минимум 5.
3.1 Language Model on embedings
0 1644.6
3 148.7
6 274.8
9 72.3
12 186.8
15 183.7
18 415.8
21 138.9
3.2 Language Model on token index
0 1700.6
3 404.7
6 255.3
9 379.8
12 195.2
15 160.1
18 530.7
21 701.9
24 536.9
Семантика и технология Word2Vec
В более общем смысле Word2Vec удобен для работы с категориальными признаками.
Когда мы говорим о смыслах или о лингвистике, мы имеем дело с сотнями тысяч слов-смыслов. И вот, собственно, Word2Vec и есть та самая современная технология, которая позволяет работать с такими категориальными признаками.
Для демонстрации возможностей технологии Word2Vec введем некую обучающую последовательность данных. Эта последовательность будет в виде расстояния на иерархии isa.
Расстояния между смыслами на графе будем вычислять, считая каждое ребро равное 1. Если нам нужно вычислить расстояние между “собакой” и “травой”, то мы пройдем по графу четыре отрезка, два отрезка вверх и два отрезка вниз. А значит, расстояние между “собакой” и “травой” будет равно четырем.
Расстояние между “собака” и “кошка” равно двум, раз поднялись вверх, и раз спустились вниз.
Чем ближе располагаются объекты на дереве к друг другу, тем ближе они семантически.
Естественно, особой глубины в таком семантическом расстоянии нет, для нас это просто некий удобный пример, на котором мы дальше будем работать.
И, собственно, задача будет очень простая. Мы вычислим на небольшом наборе смыслов все такие расстояния и научим нейронную сеть самостоятельно вычислять эти расстояния. Она ничего не будет знать о нашей семантической сети, просто на вход будем подавать подобные примеры, а на выходе она будет вычислять правильные расстояния.
В качестве обучающих данных у нас будет демонстрационная иерархия на 124 сущности.
Таким образом организована иерархия и вычислены попарно все возможные расстояния на таком дереве. Так, как сущностей 124 штуки, расстояний получается достаточно много (а дальше увидим, сколько их) для того, чтобы вполне успешно тренировать нашу нейронную сеть.
От слов всегда можно перейти к числам. В нашем случае имеются слова-смыслы, которые относятся к разным категориям, никак не упорядоченным.
Расположим эти слова в трехмерном пространстве.
Вот такими координатами для каждой сущности мы располагаем эти слова-сущности по многомерному пространству. В таком пространстве, сущности, близкие друг другу по смыслу, будут располагаться рядом. В нашем примере “кошка” и “собака” будут размещены в одной области, “дерево” и “трава” в другой, а “арфа” и “рояль” в третьей.
Эти данные для входа в нейронную сеть уже будут более осмысленными, чем если бы они просто располагались по порядку на линейной прямой. В многомерном пространстве есть возможность группировать и кластеризовать объекты с гораздо большей свободой. Качество обучения сети значительно повысится.
Естественно, возникает вопрос, а как же эти вектора задать. Для этого и применим слой Embedding.
Системе сообщается список всех слов из словаря. Она под каждое слово резервирует вектор некой заранее установленной размерности и заполняет его случайными числами. Хранятся все эти числа в слое Embedding. После этого слоя располагается полносвязная нейронная сеть.
Когда мы начинаем пропускать через эту сеть наши примеры, Embedding извлекает значения компонент из вектора и подает на выход.
После этого идет прямое распространение, на выходе получаем ошибку и начинается обратное распространение обучения по градиенту, подправляются веса у нейронов и когда нейронная сеть добирается до векторов, которые мы вытащили из памяти, она их тоже подправляет. В нашем примере это “кошка” и собака”. Компоненты этих векторов по градиенту тоже сдвигаются.
Поступает следующий пример и компоненты векторов из этих примеров тоже сдвигаются. Например, подаем теперь на вход “собака” и “свинья”.
Word2Vec. Практика
Теперь перейдем к практике. Применим Word2Vec для отношения isa. Наша задача: научить сеть воспроизводить расстояния между смыслами, вычисленные на дереве отношения isa.
Мы подготовили обучающие данные в виде файла csv, Он сгенерирован на основе дерева из 124 понятий. Приведем для наглядности первые 10 строчек с расстояниями из этого файла. Всего в нем 15376 примеров (124 * 124).
На втором этапе, после загрузки мы должны закодировать эти слова целыми числами. При помощи LabelEncoder из библиотеки sklearn имена смыслов преобразуем в целые числа.
Словарь (смысл, номер) хранится в объекте le.
Создаем экземпляр LabelEncoder, помещаем в него все строки из обоих колонок. Командой fit создаем словарь и упорядочиваем по алфавиту. А с помощью команды transform возвращаем номера.
Создаются новые колонки s1 и s2, где каждой строке соответствует номер. Они приведены в таблице.
Например, “объект” имеет номер 75, а “вещь” имеет номер 8.
Также вычисляем нормированное расстояние. Для этого поделим расстояние между смыслами на максимальное значение. А максимальное значение равно 10. Это максимальное расстояние на этом дереве. Результаты отображены в колонке d.
Весь наш словарь теперь выглядит так:
Те номера, которые мы видим в таблице, это просто порядковые номера элементов (начиная с нуля) в этом массиве.
Далее разбиваем данные на обучение и валидацию. Выделим 10% для валидационных данных. В результате 13838 примеров будут для обучающих данных и 1538 для валидационных.
Теперь приступим к главной части нашей работы, определяем модель. Для ее определения нам понадобится две константы. Это:
Нейронная сеть реализована в виде простой стопки, через последовательность.
Далее он разворачивается в единую монотонную последовательность вещественных чисел.
И далее идет полносвязная нейронная сеть из двух слоев на 16 и 8 нейронов. На выходе один нейрон с сигмоидом на активационной функции.
Параметры, которые располагаются в слое Embedding, это и есть те компоненты векторов, которые нейронная сеть будет учиться сдвигать в процессе обучения. Ну и естественно, одновременно с ними, смещать веса нейронов в слоях полносвязной нейронной сети.
Обучение модели происходит стандартным образом. Задаем метод для оптимизации, задаем функцию ошибки и запускаем модель на обучение.
После обучения можем посмотреть расстояния между векторами. Для примера на рисунке для неких наборов слов приведены расстояние по косинусу и обычное евклидово расстояние.
Также можем вычислить ближайший смысл к вектору.
Найдем среднее между “гитара” и “арфа”. В результате получим “пианино”. Обратите внимание, получили не кошку и не собаку. А вот среднее. Рядом с гитарой и арфой находится то, на чем можно играть, а не то, что можно съесть.
Теперь о графическом представлении данного примера.
Конкретно эта задача на пятимерном пространстве имеет ошибку в 5-10 раз меньше, чем на двухмерном пространстве. Но мы намеренно используем двухмерное для наглядности результатов.
Строим график. Точки, соответствующие векторам, располагаем на плоскости. И в эти же точки помещаем метки наших классов, чтобы видеть значения точек.
Получилась фантастически интересная вещь. В этом пространстве нейронная сеть по факту геометрически воспроизвела нашу иерархию.
Ссылки:
Весь код можно посмотреть здесь
Полная видео-лекция по теме здесь
Хорошая статья «Word2vec в картинках» на Хабре
What Are Word Embeddings for Text?
Last Updated on August 7, 2019
Word embeddings are a type of word representation that allows words with similar meaning to have a similar representation.
They are a distributed representation for text that is perhaps one of the key breakthroughs for the impressive performance of deep learning methods on challenging natural language processing problems.
In this post, you will discover the word embedding approach for representing text data.
After completing this post, you will know:
Kick-start your project with my new book Deep Learning for Natural Language Processing, including step-by-step tutorials and the Python source code files for all examples.
What Are Word Embeddings for Text?
Photo by Heather, some rights reserved.
Overview
This post is divided into 3 parts; they are:
Need help with Deep Learning for Text Data?
Take my free 7-day email crash course now (with code).
Click to sign-up and also get a free PDF Ebook version of the course.
Start Your FREE Crash-Course Now
What Are Word Embeddings?
A word embedding is a learned representation for text where words that have the same meaning have a similar representation.
It is this approach to representing words and documents that may be considered one of the key breakthroughs of deep learning on challenging natural language processing problems.
One of the benefits of using dense and low-dimensional vectors is computational: the majority of neural network toolkits do not play well with very high-dimensional, sparse vectors. … The main benefit of the dense representations is generalization power: if we believe some features may provide similar clues, it is worthwhile to provide a representation that is able to capture these similarities.
Word embeddings are in fact a class of techniques where individual words are represented as real-valued vectors in a predefined vector space. Each word is mapped to one vector and the vector values are learned in a way that resembles a neural network, and hence the technique is often lumped into the field of deep learning.
Key to the approach is the idea of using a dense distributed representation for each word.
Each word is represented by a real-valued vector, often tens or hundreds of dimensions. This is contrasted to the thousands or millions of dimensions required for sparse word representations, such as a one-hot encoding.
associate with each word in the vocabulary a distributed word feature vector … The feature vector represents different aspects of the word: each word is associated with a point in a vector space. The number of features … is much smaller than the size of the vocabulary
The distributed representation is learned based on the usage of words. This allows words that are used in similar ways to result in having similar representations, naturally capturing their meaning. This can be contrasted with the crisp but fragile representation in a bag of words model where, unless explicitly managed, different words have different representations, regardless of how they are used.
There is deeper linguistic theory behind the approach, namely the “distributional hypothesis” by Zellig Harris that could be summarized as: words that have similar context will have similar meanings. For more depth see Harris’ 1956 paper “Distributional structure“.
This notion of letting the usage of the word define its meaning can be summarized by an oft repeated quip by John Firth:
You shall know a word by the company it keeps!
— Page 11, “A synopsis of linguistic theory 1930-1955“, in Studies in Linguistic Analysis 1930-1955, 1962.
Word Embedding Algorithms
Word embedding methods learn a real-valued vector representation for a predefined fixed sized vocabulary from a corpus of text.
The learning process is either joint with the neural network model on some task, such as document classification, or is an unsupervised process, using document statistics.
This section reviews three techniques that can be used to learn a word embedding from text data.
1. Embedding Layer
An embedding layer, for lack of a better name, is a word embedding that is learned jointly with a neural network model on a specific natural language processing task, such as language modeling or document classification.
It requires that document text be cleaned and prepared such that each word is one-hot encoded. The size of the vector space is specified as part of the model, such as 50, 100, or 300 dimensions. The vectors are initialized with small random numbers. The embedding layer is used on the front end of a neural network and is fit in a supervised way using the Backpropagation algorithm.
… when the input to a neural network contains symbolic categorical features (e.g. features that take one of k distinct symbols, such as words from a closed vocabulary), it is common to associate each possible feature value (i.e., each word in the vocabulary) with a d-dimensional vector for some d. These vectors are then considered parameters of the model, and are trained jointly with the other parameters.
The one-hot encoded words are mapped to the word vectors. If a multilayer Perceptron model is used, then the word vectors are concatenated before being fed as input to the model. If a recurrent neural network is used, then each word may be taken as one input in a sequence.
This approach of learning an embedding layer requires a lot of training data and can be slow, but will learn an embedding both targeted to the specific text data and the NLP task.
2. Word2Vec
Word2Vec is a statistical method for efficiently learning a standalone word embedding from a text corpus.
It was developed by Tomas Mikolov, et al. at Google in 2013 as a response to make the neural-network-based training of the embedding more efficient and since then has become the de facto standard for developing pre-trained word embedding.
Additionally, the work involved analysis of the learned vectors and the exploration of vector math on the representations of words. For example, that subtracting the “man-ness” from “King” and adding “women-ness” results in the word “Queen“, capturing the analogy “king is to queen as man is to woman“.
We find that these representations are surprisingly good at capturing syntactic and semantic regularities in language, and that each relationship is characterized by a relation-specific vector offset. This allows vector-oriented reasoning based on the offsets between words. For example, the male/female relationship is automatically learned, and with the induced vector representations, “King – Man + Woman” results in a vector very close to “Queen.”
Two different learning models were introduced that can be used as part of the word2vec approach to learn the word embedding; they are:
The CBOW model learns the embedding by predicting the current word based on its context. The continuous skip-gram model learns by predicting the surrounding words given a current word.
The continuous skip-gram model learns by predicting the surrounding words given a current word.
Word2Vec Training Models
Taken from “Efficient Estimation of Word Representations in Vector Space”, 2013
Both models are focused on learning about words given their local usage context, where the context is defined by a window of neighboring words. This window is a configurable parameter of the model.
The size of the sliding window has a strong effect on the resulting vector similarities. Large windows tend to produce more topical similarities […], while smaller windows tend to produce more functional and syntactic similarities.
The key benefit of the approach is that high-quality word embeddings can be learned efficiently (low space and time complexity), allowing larger embeddings to be learned (more dimensions) from much larger corpora of text (billions of words).
3. GloVe
The Global Vectors for Word Representation, or GloVe, algorithm is an extension to the word2vec method for efficiently learning word vectors, developed by Pennington, et al. at Stanford.
Classical vector space model representations of words were developed using matrix factorization techniques such as Latent Semantic Analysis (LSA) that do a good job of using global text statistics but are not as good as the learned methods like word2vec at capturing meaning and demonstrating it on tasks like calculating analogies (e.g. the King and Queen example above).
GloVe is an approach to marry both the global statistics of matrix factorization techniques like LSA with the local context-based learning in word2vec.
Rather than using a window to define local context, GloVe constructs an explicit word-context or word co-occurrence matrix using statistics across the whole text corpus. The result is a learning model that may result in generally better word embeddings.
GloVe, is a new global log-bilinear regression model for the unsupervised learning of word representations that outperforms other models on word analogy, word similarity, and named entity recognition tasks.
Using Word Embeddings
You have some options when it comes time to using word embeddings on your natural language processing project.
This section outlines those options.
1. Learn an Embedding
You may choose to learn a word embedding for your problem.
This will require a large amount of text data to ensure that useful embeddings are learned, such as millions or billions of words.
You have two main options when training your word embedding:
2. Reuse an Embedding
It is common for researchers to make pre-trained word embeddings available for free, often under a permissive license so that you can use them on your own academic or commercial projects.
For example, both word2vec and GloVe word embeddings are available for free download.
These can be used on your project instead of training your own embeddings from scratch.
You have two main options when it comes to using pre-trained embeddings:
Which Option Should You Use?
Explore the different options, and if possible, test to see which gives the best results on your problem.
Perhaps start with fast methods, like using a pre-trained embedding, and only use a new embedding if it results in better performance on your problem.
Word Embedding Tutorials
This section lists some step-by-step tutorials that you can follow for using word embeddings and bring word embedding to your project.
Further Reading
This section provides more resources on the topic if you are looking go deeper.
Articles
Papers
Projects
Books
Summary
In this post, you discovered Word Embeddings as a representation method for text in deep learning applications.
Specifically, you learned:
Do you have any questions?
Ask your questions in the comments below and I will do my best to answer.
Develop Deep Learning models for Text Data Today!
Develop Your Own Text models in Minutes
. with just a few lines of python code
It provides self-study tutorials on topics like:
Bag-of-Words, Word Embedding, Language Models, Caption Generation, Text Translation and much more.