Coda

論文メモ Deep contextualized word representations

March 24, 2020

文脈をふまえた単語の分散表現を生成する手法を提案し、教師あり学習に応用することで評価した論文である。 文字単位の学習済み双方向LSTM言語モデルへの入力と各層の出力から分散表現をつくる。 言語モデルの入力やどの層をどれだけ重視するかは、教師あり学習のときに更新するパラメタのひとつになる。 実験では、構文にかかわるタスクであれば入力層に近い層が、意味にかかわるものであれば出力層に近い層が、重視された。 モデルは、Embeddings from Language Modelsにちなみ、ELMoと名付けられた。

双方向LSTMLによる言語モデル

\(k\)番目の文字に対する言語モデルへの入力\(\boldsymbol{{\rm x}}_k^{LM}\)には、文脈に依存しない文字の分散表現や文字レベルのCNNをもちいる。 実験では、JozefowiczらCNN-BIG-LSTMが使われた。 順方向の言語モデルは、\(t_1, t_2, \dots , t_N\)の確率を次のように計算する。 $$ p(t_1, t_2, \dots , t_N) = \prod_{k=1}^{N}p(t_k\mid t_1, t_2, \dots , t_{k-1}) $$ 逆方向の言語モデルは $$ p(t_1, t_2, \dots , t_N) = \prod_{k=1}^{N}p(t_k\mid t_{k+1}, t_{k+2}, \dots , t_{N}) $$ と計算する。 この2つの言語モデルを重ねた双方向LSTMの目的関数は、入力のパラメタ\({\rm \Theta}_{x}\)とソフトマックス層\({\rm \Theta}_s\)のパラメタを共有した次の式となる。 $$ \begin{align} \sum^{N}_{k=1}(\log p(t_k\mid t_1, \dots , t_{k-1};{\rm \Theta}_x, \overrightarrow{\Theta}_{LSTM}, {\rm \Theta}_s) + \\
(\log p(t_k\mid t_1, \dots , t_{k-1};{\rm \Theta}_x, \overleftarrow{\Theta}_{LSTM}, {\rm \Theta}_s)) \end{align} $$

分散表現の計算

\(k\)に対する順方向LSTMによる\(j\)番目の層の出力を\(\overrightarrow{\boldsymbol{\rm h}}^{LM}_{k, j}\), 逆方向LSTMの出力を\(\overleftarrow{\boldsymbol{\rm h}}^{LM}_{k, j}\)として

$$ \boldsymbol{\rm h}^{LM}_{k, j} = \begin{cases} \boldsymbol{\rm x}^{LM}_k (j=0) \\
[\overrightarrow{\rm h}^{LM}_{k,j}; \overleftarrow{\rm h}^{LM}_{k,j}] (1\le j\le L) \end{cases} $$ とするとELMoの分散表現\({\rm ELMo}^{task}_k\)は、\(\gamma^{task}\)をスカラのパラメタ、\(s^{task}_j\)をパラメタにソフトマックス関数を適用して正規化したものとすると、 $$ {\rm ELMo}^{task}_k = \gamma^{task}\sum^{L}_{j=0}s^{task}_{j}\boldsymbol{\rm h}^{LM}_{k,j} $$ となる。

ELMoを教師あり学習に使うときは、双方向LSTMの重みを固定させ、ELMoを使わないもとの入力\(\boldsymbol{\rm x}_k\)を\([\boldsymbol{\rm x}_k;\text{ELMo}^{task}_k]\)でおきかえる。 \(\gamma^{task}\), \(s^{task}_j\)は学習時に更新され、タスクにあわせて言語モデルへの入力や各層が及ぼす\(\text{ELMo}^{task}_k\)への影響を調整する。