Векторное представление слов — различия между версиями
Serejke (обсуждение | вклад) (→Источники информации) |
Serejke (обсуждение | вклад) (→Источники информации) |
||
Строка 49: | Строка 49: | ||
* [https://code.google.com/archive/p/word2vec/ word2vec code] {{---}} исходный код word2vec на Google Code | * [https://code.google.com/archive/p/word2vec/ word2vec code] {{---}} исходный код word2vec на Google Code | ||
* [https://rare-technologies.com/word2vec-tutorial Gensim tutorial on word2vec] {{---}} небольшое руководство по работе с word2vec в библиотеке Gensim | * [https://rare-technologies.com/word2vec-tutorial Gensim tutorial on word2vec] {{---}} небольшое руководство по работе с word2vec в библиотеке Gensim | ||
+ | * [https://radimrehurek.com/gensim/models/fasttext.html Gensim documentation on fastText] {{---}} документация по fastText в библиотеке Gensim | ||
* [https://fasttext.cc/ fastText] {{---}} NLP библиотека от Facebook | * [https://fasttext.cc/ fastText] {{---}} NLP библиотека от Facebook | ||
* [https://rusvectores.org/ru/ RusVectōrēs] {{---}} онлайн сервис для работы с семантическими отношениями русского языка | * [https://rusvectores.org/ru/ RusVectōrēs] {{---}} онлайн сервис для работы с семантическими отношениями русского языка | ||
[[Категория: Машинное обучение]] [[Категория: Обработка естественного языка]] | [[Категория: Машинное обучение]] [[Категория: Обработка естественного языка]] |
Версия 16:01, 2 марта 2019
Векторное представление слов - общее название для различных подходов к моделированию языка и обучению представлений в обработке естественного языка, направленных на сопоставление словам из некоторого словаря векторов небольшой размерности.
Содержание
One-hot encoding
Наиболее простой способ представления слов в виде векторов. Пусть число различных слов равно
. Сопоставим слову с номером вектор длины , в котором -тая координата равна единице, а все остальные - нулям. Недостатком one-hot encoding является то, что по векторным представлениям нельзя судить о схожести смысла слов. Также вектора имеют очень большой размер, из-за чего их неэффективно хранить в памяти.
word2vec
word2vec - способ построения сжатого пространства векторов слов, использующий нейронные сети. Принимает на вход большой текстовый корпус и сопоставляет каждому слову вектор. Сначала он создает словарь, а затем вычисляет векторное представление слов. Векторное представление основывается на контекстной близости: слова, встречающиеся в тексте рядом с одинаковыми словами (а следовательно, имеющие схожий смысл), в векторном представлении будут иметь близкие координаты векторов-слов.
В word2vec существуют две основных модели обучения: Skip-gram и CBOW (Continuous Bag of Words). В модели Skip-gram по слову предсказываются слова из его контекста, а в модели CBOW по контексту подбирается наиболее вероятное слово. На выходном слое используется функция
или его вариация, чтобы получить на выходе распределение вероятности каждого слова. В обеих моделях входные и выходные слова подаются в one-hot encoding, благодаря чему при умножении на матрицу , соединяющую входной и скрытый слои, происходит выбор одной строки . Размерность является гиперпараметром алгоритма, а обученная матрица - выходом, так как ее строки содержат векторные представления слов.Для ускорения обучения моделей Skip-gram и CBOW используются модификации
, такие как иерархический и negative subsampling, позволяющие вычислять распределение вероятностей быстрее, чем за линейное время от размера словаря.fastText
Алгоритм word2vec был разработан в Google под руководством Томаса Миколова и опубликован в 2013 году. fastText - улучшение word2vec также под руководством Томаса Миколова, но уже в Facebook, опукованное в 2015 году.
Недостатком word2vec является то, что с его помощью не могут быть представлены слова, не встречающиеся в обучающей выборке. fastText решает эту проблему с помощью N-грамм символов. Например, 3-граммами для слова яблоко являются ябл, бло, лок, око. Модель теперь строит векторные представления N-грамм, а векторным представлением слова будет сумма векторных представлений для всех его N-грамм. Части слов с большой вероятностью встречаются и в других словах, что позволяет выдавать векторные представления и для редких слов тоже.
Пример использования модели word2vec из библиотеки Gensim
import gensim
См. также
Источники информации
- Word embedding — статья о векторных представлениях в английской Википедии
- (YouTube) Обработка естественного языка — лекция на русском Даниила Полыковского в курсе Техносферы
- (YouTube) Word Vector Representations: word2vec — лекция на английском в Стэнфордском Университете
- word2vec article — оригинальная статья по word2vec от Томаса Миколова
- word2vec code — исходный код word2vec на Google Code
- Gensim tutorial on word2vec — небольшое руководство по работе с word2vec в библиотеке Gensim
- Gensim documentation on fastText — документация по fastText в библиотеке Gensim
- fastText — NLP библиотека от Facebook
- RusVectōrēs — онлайн сервис для работы с семантическими отношениями русского языка