Изменения

Перейти к: навигация, поиск

Векторное представление слов

5828 байт добавлено, 20:02, 14 декабря 2020
Нет описания правки
fastText_model.most_similar('car')[:3]
''<font color="grey"># [('lcar', 0.8733218908309937), ('boxcar', 0.8559106588363647), ('ccar', 0.8268736004829407)]</font>
 
== ELMO ==
[[File:Elmo.png|500px|thumb|Архитектура и принцип работы ELMO]]
<i>ELMO</i> - это многослойная двунаправленная [[:Рекуррентные_нейронные_сети|рекуррентная нейронная сеть]] c [[:Долгая_краткосрочная_память|LSTM]].
При использовании word2vec или fastText не учитывается семантическая неоднозначность слов.
Так, word2vec назначает слову один вектор независимо от контекста.
ELMO решает эту проблему. В основе стоит идея использовать скрытые состояния языковой модели многослойной [[:Долгая_краткосрочная_память|LSTM]].
Было замечено, что нижние слои отвечают за синтаксис и грамматику, а верхние - за смысл слов.
Пусть даны токены <math>t_{1}, ..., t_{N}</math>, на которые поделено предложение. Будем предсказывать логарифм правдоподобия метки слова в обоих направлениях, учитывая контекст слева и контекст справа:
 
<math>\sum_{k=1}^{N} \left ( \log p( {t_{k}} | {t_{1}}, ..., {t_{k-1}};\Theta_{x}, \overrightarrow{\Theta}_{LSTM} , \Theta_{s}) + \log p( {t_{k}} | {t_{k+1}}, ..., {t_{N}};\Theta_{x}, \overleftarrow{\Theta}_{LSTM} , \Theta_{s} ) \right )</math>
 
Пусть есть <math>L</math> слоев сети. Тогда каждый результирующий вектор будем считать на основании множества:
 
<math>\boldsymbol{R}_{k} = \left \{ {x_{k}^{LM}}, \overrightarrow{h_{k, j}^{LM}}, \overleftarrow{h_{k, j}^{LM}} | j = 1, ..., L \right \} = \left \{ h_{k, j}^{LM} | j = 1, ..., L \right \}</math>
 
Здесь <math>x_{k}^{LM}</math> - входящий токен, а <math>\overrightarrow{h_{k, j}^{LM}}</math> и <math>\overleftarrow{h_{k, j}^{LM}}</math> - скрытые слои в одном и в другом направлении.
 
Тогда ELMO будет представлять из себя выражение:
<math>ELMO_{k}^{task} = \gamma^{taks}\sum_{j=0}^{L} s_{i}^{task}h_{k,j}^{LM}</math>
 
Обучаемый общий масштабирующий коэффициент <math>\gamma</math> регулирует то, как могут отличаться друг от друга по норме векторные представления слов.
 
Коэффициенты <math>s</math> - это обучаемые параметры, нормализованные функцией <math>softMax</math>.
 
Модель применяют дообучая ее: изначально берут предобученную ELMO, а затем корректируют <math>\gamma</math> и <math>s_{i}</math> под конкретную задачу. Тогда вектор, который подается в используемую модель для обучения, будет представлять собой взвешенную сумму значений этого векторах на всех скрытых слоях ELMO.
 
 
== BERT ==
{{main|Bert}}
[[File:Bert.png|500px|thumb|Архитектура BERT]]
BERT - это модель предварительного обучения NLP, представляющая собой многослойный двунаправленный [[:Автокодировщик|кодировщик]] Transformer. В данной архитектуре используется двунаправленное [[:Механизм внимания|самовнимание]].
Модель используется в совокупности с некоторым классификатором, на вход которого подается результат работы BERT - векторное представление входных данных.
В основе обучения модели лежат две идеи для обучения.
 
Первая заключается в том, чтобы заменить <math>15\%</math> слов масками и обучить сеть предсказывать эти слова.
 
Второй трюк состоит в том, чтобы дополнительно научить BERT определять, может ли одно предложение идти после другого.
 
Точно так же, как и в обычном Трансформере, BERT принимает на вход последовательность слов, которая затем продвигается вверх по стеку энкодеров.
Каждый слой энкодера применяет внутреннее внимание (self-attention) и передает результаты в сеть прямого распространения, после чего направляет его следующему энкодеру.
 
Для каждой позиции на выход подается вектор размерностью <math>hiddenSize</math> (<math>768</math> в базовой модели).
Этот вектор может быть использован как входной вектор для классификатора.
== См. также ==
* [https://arxiv.org/pdf/1607.04606.pdf fastText article] {{---}} оригинальная статья по fastText от Piotr Bojanowski
* [https://rusvectores.org/ru/ RusVectōrēs] {{---}} онлайн сервис для работы с семантическими отношениями русского языка
* [https://arxiv.org/abs/1810.04805/ Cornell univerity arxiv] {{---}} оригинальная статья про Bert
* [https://arxiv.org/abs/1802.05365/ Cornell univerity arxiv] {{---}} оригинальная статья с описанием ELMO
[[Категория: Машинное обучение]] [[Категория: Обработка естественного языка]]
38
правок

Навигация