Векторное представление слов — различия между версиями
Serejke (обсуждение | вклад) |
Serejke (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | |||
− | |||
'''Векторное представление слов''' - общее название для различных подходов к моделированию языка и обучению представлений в обработке естественного языка, направленных на сопоставление словам (и, возможно, фразам) из некоторого словаря векторов из значительно меньшего количества слов в словаре. Для этого используют нейронные сети, методы понижения размерности в применении к матрицам совместных упоминаний слов (word co-occurrence matrices) и явные представления, обучающиеся на контекстах упоминаний слов (explicit representations). | '''Векторное представление слов''' - общее название для различных подходов к моделированию языка и обучению представлений в обработке естественного языка, направленных на сопоставление словам (и, возможно, фразам) из некоторого словаря векторов из значительно меньшего количества слов в словаре. Для этого используют нейронные сети, методы понижения размерности в применении к матрицам совместных упоминаний слов (word co-occurrence matrices) и явные представления, обучающиеся на контекстах упоминаний слов (explicit representations). | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== One-hot encoding == | == One-hot encoding == | ||
− | Наиболее простой способ представления слов в виде векторов. Пусть число различных слов равно <math>K</math>. Сопоставим слову с номером <math>i</math> вектор длины <math>K</math>, в котором <math>i</math>-тая координата равна единице, а все остальные - нулям. | + | Наиболее простой способ представления слов в виде векторов. Пусть число различных слов равно <math>K</math>. Сопоставим слову с номером <math>i</math> вектор длины <math>K</math>, в котором <math>i</math>-тая координата равна единице, а все остальные - нулям. Недостатком one-hot encoding является то, что по векторным представлениям нельзя судить о схожести смысла слов. Также вектора имеют очень большой размер, из-за чего их неэффективно хранить в памяти. |
[[Файл:One-hot-encoding.png|300px]] | [[Файл:One-hot-encoding.png|300px]] | ||
== word2vec == | == word2vec == | ||
− | word2vec - способ построения сжатого пространства векторов слов, использующий | + | word2vec - способ построения сжатого пространства векторов слов, использующий нейронные сети. Принимает на вход большой текстовый корпус и сопоставляет каждому слову вектор. Сначала он создает словарь, а затем вычисляет векторное представление слов. Векторное представление основывается на контекстной близости: слова, встречающиеся в тексте рядом с одинаковыми словами (а следовательно, имеющие схожий смысл), в векторном представлении будут иметь близкие координаты векторов-слов. |
+ | |||
+ | В word2vec существуют две основных модели обучения: Skip-gram и CBOW (Continuous Bag of Words). В модели Skip-gram по слову предсказываются слова из его контекста, а в модели CBOW по контексту подбирается наиболее вероятное слово. На выходном слое используется функция <math>softmax</math> или его вариация, чтобы получить на выходе распределение вероятности каждого слова. В обеих моделях входные и выходные слова подаются в one-hot encoding, благодаря чему при умножении на матрицу <math>W</math>, соединяющую входной и скрытый слои, происходит выбор одной строки <math>W</math>. Размерность <math>N</math> является гиперпараметром алгоритма, а обученная матрица <math>W</math> - выходом, так как ее строки содержат векторные представления слов. | ||
+ | |||
+ | {|align="center" | ||
+ | |-valign="top" | ||
+ | |[[Файл:skip-gram.png|400px|thumb|Схема сети для модели Skip-gram]] | ||
+ | |[[Файл:cbow.png|400px|thumb|center|Схема сети для модели CBOW]] | ||
+ | |} | ||
+ | |||
Полученные векторы-слова могут быть использованы для вычисления семантического расстояния между словами. После обучения векторы отражают различные грамматические и семантические концепции. | Полученные векторы-слова могут быть использованы для вычисления семантического расстояния между словами. После обучения векторы отражают различные грамматические и семантические концепции. | ||
− | <math>W_{king} | + | <math>W_{king} + (W_{woman} - W_{man}) = W_{queen}</math><br> |
− | <math>W_{ | + | <math>W_{walked} - W_{walking} = W_{swam} - W_{swimming}</math> |
+ | |||
+ | [[Файл:Words-space.png|600px]] | ||
== См. также == | == См. также == |
Версия 12:52, 2 марта 2019
Векторное представление слов - общее название для различных подходов к моделированию языка и обучению представлений в обработке естественного языка, направленных на сопоставление словам (и, возможно, фразам) из некоторого словаря векторов из значительно меньшего количества слов в словаре. Для этого используют нейронные сети, методы понижения размерности в применении к матрицам совместных упоминаний слов (word co-occurrence matrices) и явные представления, обучающиеся на контекстах упоминаний слов (explicit representations).
One-hot encoding
Наиболее простой способ представления слов в виде векторов. Пусть число различных слов равно
. Сопоставим слову с номером вектор длины , в котором -тая координата равна единице, а все остальные - нулям. Недостатком one-hot encoding является то, что по векторным представлениям нельзя судить о схожести смысла слов. Также вектора имеют очень большой размер, из-за чего их неэффективно хранить в памяти.word2vec
word2vec - способ построения сжатого пространства векторов слов, использующий нейронные сети. Принимает на вход большой текстовый корпус и сопоставляет каждому слову вектор. Сначала он создает словарь, а затем вычисляет векторное представление слов. Векторное представление основывается на контекстной близости: слова, встречающиеся в тексте рядом с одинаковыми словами (а следовательно, имеющие схожий смысл), в векторном представлении будут иметь близкие координаты векторов-слов.
В word2vec существуют две основных модели обучения: Skip-gram и CBOW (Continuous Bag of Words). В модели Skip-gram по слову предсказываются слова из его контекста, а в модели CBOW по контексту подбирается наиболее вероятное слово. На выходном слое используется функция
или его вариация, чтобы получить на выходе распределение вероятности каждого слова. В обеих моделях входные и выходные слова подаются в one-hot encoding, благодаря чему при умножении на матрицу , соединяющую входной и скрытый слои, происходит выбор одной строки . Размерность является гиперпараметром алгоритма, а обученная матрица - выходом, так как ее строки содержат векторные представления слов.
Полученные векторы-слова могут быть использованы для вычисления семантического расстояния между словами. После обучения векторы отражают различные грамматические и семантические концепции.
См. также
Примечания
Источники информации
- [1] — fastText by Facebook