Изменения

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

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

118 байт добавлено, 19:48, 11 января 2021
ELMO
<i>ELMO</i> решает эту проблему. В основе стоит идея использовать скрытые состояния языковой модели многослойной [[:Долгая_краткосрочная_память|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>ss_{i}^{task}</math> {{- --}} это обучаемые параметры, нормализованные функцией <math>softMax</math>.
Модель применяют дообучая ее: изначально берут предобученную <i>ELMO</i>, а затем корректируют <math>\gamma</math> и <math>s_{i}</math> под конкретную задачу. Тогда вектор, который подается в используемую модель для обучения, будет представлять собой взвешенную сумму значений этого векторах на всех скрытых слоях <i>ELMO</i>.
На данный момент ELMO можно использовать в языках Python и C++.
== BERT ==
38
правок

Навигация