再帰型ニューラル言語モデル(RNN言語モデル, RNNLM)

1 再帰型ニューラル言語モデル(RNNLM)の概要

再帰型ニューラル言語モデル(Recurrent Neural Language Model ,RNLM) (もしくは RNN言語モデル(RNNLM))[Mikolov et al., 2010]は,再帰型ニューラルネットワークに学習した予測モデルから,直前の数個の単語を入力として次の単語を予測する「言語モデルのRNN版」である.

この記事では,再帰型ニューラルネットワークについて簡潔に紹介する(3節).また,その前に準備として,前身であるニューラル言語モデルについて基礎知識を紹介する(2節).

再帰型ニューラル言語モデルは,RNNの再帰構造のおかげで,可変長のテキストをモデリングできるようになったのが旧来の言語モデルとの大きな違いである.可変長に対応できるので,旧来の言語モデルよりも文章全体のモデリングとそれによる単語予測が行いやすくなり,LSTM・GRUを用いることで長い文章のモデリングと生成を行いやすい.

また,RNNLMの系列変換への拡張である「機械翻訳向けのseq2seq [Sutskever et al., 2014] 」の登場を皮切りに,画像キャプション生成や音声認識などの「マルチモーダルEncoder-Decoder」にも,RNNLMは応用されるようになる.この意味で,RNNLMは,seq2seqの前身の言語モデルであると言える.

1.1 記事の構成

2節以降,以下の構成でRNLMについて紹介する.2節で前準備をおこなったのち,3節で本題の再帰型ニューラル言語モデルについて述べる.

  • 2節 言語モデルの基本 (テキスト全体のモデル化/ ニューラル言語モデル)
  • 3節 再帰型ニューラル言語モデル (RNNLM)

2 言語モデルの基本

言語モデル(language model)とは,自然言語文の次のトークン(単語)の予測を,そのトークン以前の単語群から予測するタスクである.すなわち言語モデルは,次の単語の生成確率を,機械学習モデルを用いて予測モデル化するもの全般のことを指す.

2節では,3節で再帰型ニューラル言語モデルを紹介する前準備として,言語モデルに関する基本事項を先に紹介する.

2.1 言語モデル

まず,直前の単語までのテキストの単語特徴ベクトル系列が,${\bm{x}^{(1)}, \bm{x}^{(2)}, \ldots , \bm{x}^{(t)}}$で構成されているとする.

このとき,言語モデルとは,以下の「直前の単語 \bm{x}^{(t)}}までのコンテキストに対する,その次の単語$\bm{x}^{(t+1)}$の条件付き確率分布」のことである:

\begin{equation}
P(\bm{x}^{(t+1)} \mid \bm{x}^{(t)},\ldots, \bm{x}^{(1)})\tag{2.1}
\end{equation}

ここで,予測単語$\bm{x}^{(t+1)}$は語彙$V = { \bm{w}_1, \ldots , \bm{w}_{|V|}}$の中のどれか1つの単語である.

ニューラルネット登場以前は,言語モデルにn-gramモデルを用いるのが主流であった(通常n=3のtri-gramを用いる).自然言語処理だけでなく,音声認識システムの言語モデルにおいてもn-gramが用いられていた.

それが2.2のBengioの提案以降,ニューラルネットを使用したニューラル言語モデルが主流となっていく(特に再帰型ニューラルネットワーク(3節)やTransformerなどのニューラルネット系列モデル).

2.2 テキスト全体のモデル化

また,言語モデルを$T$単語分用意すると,式(2.1)の積として「テキスト全体の生起確率(各単語が全て同時に起こる確率)」についても,以下のようにモデル化して,推定することができる:

\begin{align}
P(\bm{x}^{(1)},\ldots, \bm{x}^{(T)}) &= P(\bm{x}^{(1)})P(\bm{x}^{(2)} \mid \bm{x}^{(1)}) \ldots P(\bm{x}^{(T)}) \mid \bm{x}^{(T-1)},\ldots,\bm{x}^{(1)}) \\
&= \prod\limits_{t=1}^{T} P(\bm{x}^{(t)} \mid \bm{x}^{(t-1)},\ldots, \bm{x}^{(1)}) \tag{2.2}
\end{align}

この式(2.2)の「各単語\bm{x}^{(t)}の言語モデル」のマルコフ連鎖が,自然言語処理分野で用いられてきた「言語モデルを用いたテキスト全体のモデル化」の標準形である.

2.3 ニューラル言語モデル

ニューラル言語モデル(Neural Languge Model)
図1 ニューラル言語モデル

[Bengio et al. 2003] は,言語モデルの予測モデルにニューラルネットワークを用いた,ニューラル言語モデル(neural language model, NLM)を提案した(図1).

ニューラル言語モデルでは,固定窓内の直前$C$個の単語から,次の単語$\bm{x}^{(t)}$を予測する3層MLP(Multi Layer Perceptron)を大量の語彙から学習し,その3層MLPを用いて次の単語を予測する.語彙$V$の中で,単語が何であるかを示す,$|V|$次元 one-hotベクトル$\bm{x}^{(1)} $を$N$個入力層に入れ,各単語を分散表現である単語特徴ベクトル$\bm{e}^{(i)}$に変換する(図1).そして,$\bm{e}^{(i)}$を1つに結合したのち,隠れ層を経て,$\text{softmax}$により予測単語分布$\bm{y}^{(t)} \in \mathbb{R}^{|V|}$を生成する.これを整理すると以下のような手順になる[Bengio et al., 2003]:

\begin{align}
\bm{e}^{(i)} &= \bm{E}\bm{x}^{(t)} (\text{埋め込み重みで単語特徴ベクトルへ射影})\\
\bm{e} &= [ \bm{e}^{(t-C)} ; \ldots ; \bm{e}^{(t-1)}] (C\text{個の単語埋め込みを結合})\\
\bm{h} &= \text{tanh}(\bm{W}\bm{e} + \bm{b}_1)(\text{隠れ層における変換})\\
\hat{\bm{y}} &= \text{softmax}(\bm{U}\bm{h}^{(t)} + \bm{b}_2)(\text{確率ベクトルを出力})\tag{2.3}
\end{align}

word2vecやGloveを分散表現として用いるようになった頃と異なり,ニューラル言語モデル[Bengio et al. 2003] の分散表現では,埋め込み行列$\bm{E}$も同時に学習していた点に注意.また,word2vec以降のように,未来の単語はコンテキストには含まれておらず,直前の$C$個だけコンテキストとして取り入れてくる.

2.3.1 ニューラル言語モデルの利点と問題点

ニューラル言語モデルは,n-gramの弱点「sparsity」の問題を解決できた.また,固定窓のモデルなので,n-gramのように,全てのn-gramを保存しておく必要もなくなった.これにより,Brown CorpusとAP newsデータセット(共に語彙数 $|V|$は1万6千~1万8千語程度)からそれぞれNLMを学習して次単語の予測実験をおこない,n-gramよりNLMのほうが大幅にパープレキシティが下がることが実証された.

しかし,この普通の順伝搬3層MLPで実現されているニューラル言語モデルにも,問題点があった:

  • きちんと学習するには固定窓が狭い必要があり(C=4がデフォルト),tri-gramと同様「長いコンテキスト」はモデリングできていない.
  • 窓長を長くすると$\bm{W}$も巨大化するのでスケールしづらく,十分に大きな窓長には設定できない.
  • 各$e^{(t)}$が$\bm{W}$中の別の重みを使って変換されるので,特徴ベクトルの変換に統一性がない.

これらの課題を解決するために,任意の系列長に対応できるRNNが導入されることになる(3節)

3 再帰型ニューラル言語モデル( RNNLM )

再帰型ニューラル言語モデル(RNNLM)
図2 再帰型ニューラル言語モデル

再帰型ニューラル言語モデル(Recurrent Neural Language Model, RNNLM)が,3層MLPの代わりにRNNを用いる「ニューラル言語モデルの改善版」として提案された [Mikolov et al., 2010] (図2).再帰型ニューラル言語モデルでは,RNNを用いて可変長$C$長のテキストから,単語埋め込みベクトルを毎フレーム入力として取り込み,次の単語を予測する.

具体的には,各フレーム$t$において,以下のようにRNNによる手続きで単語予測を行う.

\begin{align}
\bm{e}^{(i)} &= \bm{E}\bm{x}^{(t)} (\text{埋め込みベクトルへ射影})\\
\bm{h}^{(t)} &= \text{tanh}(\bm{W}[\bm{e}^{(t)} ; \bm{h}_{t-1}]^{\top} + \bm{b}_1)(\text{隠れ層における変換})\\
\hat{\bm{y}}^{(t)} &= \text{softmax}(\bm{U}\bm{h}^{(t)} + \bm{b}_2)(\text{確率ベクトルを出力})\tag{3.1}
\end{align}

3.1 最適化

RNLMの学習は,通常のRNNどおりに,毎フレームの損失を用いてBPTT(Back propagation Through Time)を行う.

ここで,言語モデルの出力$\bm{y}^{(t)}$はsoftmax確率である.従って,ラベル$\bm{w}^{(t)}$(one-hotベクトル)と予測確率$\bm{y}^{(t)}$の間で負の対数尤度(クロスエントロピー)を取り,そのクロスエントロピー損失を用いてBPTTによりSGD最小化を行う.

3.2 テキストの生成とビームサーチ

3.2.1 RNNLMを用いたテキスト生成

予測した前フレームの単語を,次のフレームの入力単語にしてRNNで1単語ずつ予測していくことで,RNNLMではテキストを生成することができる[Sutskever et al., 2011] .

<BOS> = (Beginning of Sequence)を入力として,テキスト生成を始めると,順番に1単語ずつ予測が行われ,最終的に予測単語が <EOS> = (End of Sequence)になった際に,文の生成が(勝手に)終了される.

このテキスト生成でのRNNLMのコーディングの応用として,seq2seqによる機械翻訳 [Sutskever et al., 2014] があげられる .前半,LSTM・GRUでデコーディングした隠れ層ベクトルを,後半のLSTM・GRUに受け渡すことで,RNNLMにより別言語の生成(もとい翻訳)を行う.この際,ビームサーチによる効率的な最適化を行うことが多い.似た問題である音声認識やその逆問題であるTTS(text-to-speech)などでも,seq2seqの中の言語モデル側に,RNNLMが用いられる.また,画像キャプション生成のデコーダでも,機械翻訳と同様にデコーダ(LSTM・GRU)による生成時にビームサーチを行うことが多い.

3.2.2 ビームサーチによるRNNLM デコーディングの最適化

テキスト生成をn-gramやRNNLMなどの言語モデルで行う際に,RNNの入力は可変長なので,全部の候補テキスト系列をサンプリングしてモデル最適化しようとすると,学習データ数爆発やとが起きてしまう.また,テスト時も,式(2.2)の各単語予測で,たくさんの候補単語を各ステップ$(t)$で考慮に入れると,同じく組み合わせ爆発が起きてしまう.

そこで,RNNLMのテキスト生成(デコーディング)では,上位の候補$k$個を毎フレームで木構造として残しておき,その中から最良の系列を探す探索(search)アルゴリズムを用いて,1番の系列(もしくはm個のbest系列)を最適化で決めることを,RNNLMのデコーディング時に行う.探索アルゴリズムのなかでも,ビームサーチ(beam search)を用いたデコーディングをRNNLMの場合多く用いる.

全探索を行う貪欲法(Greedy Seach)もあるが,機械翻訳[Freitag et al., 2017]や画像キャプション生成[Karpathy and Fei-Fei, 2015] などの(RNNLMを用いる)seq2seq問題においても,ビームサーチが用いられる.(ビーム幅には3,5,7程度を通常用いる).

4 RNNLM のまとめ

この記事では再帰型ニューラル言語モデルについて紹介した.その準備として言語モデル一般や,RNNを用いない全身の3層MLPを用いたニューラル言語モデルも紹介した.

References

  • [Bengio et al. 2003] Bengio, Y., Ducharme, R., Vincent, P., & Janvin, C. (2003). A neural probabilistic language model. The journal of machine learning research, 3, 1137-1155.
  • [Freitag et al., 2017] Freitag, M., & Al-Onaizan, Y. (2017). Beam search strategies for neural machine translation. arXiv preprint arXiv:1702.01806.
  • [Karpathy and Fei-Fei, 2015] Andrej Karpathy and Li Fei-Fei. 2015. Deep visual-semantic alignments for generating image descriptions. In CVPR 2015.
  • [Mikolov et al., 2010] T. Mikolov, M. Karafiat, L. Burget, J. Cernocky and S. Khudanpur. Recurrent neural network based language model. In INTERSPEECH, 2010.
  • [Sutskever et al., 2011] Sutskever I, Martens J, Hinton GE. Generating text with recurrent neural networks. In ICML, 2011.
  • [Sutskever et al., 2014] Sutskever, I., Vinyals, O., and Le, Q. V. Sequence to sequence learning with neural networks. In NIPS, 2014.
  • 増村亮. “深層学習に基づく言語モデルと音声言語理解.” 日本音響学会誌 73.1 (2017): 39-46.

参照外部リンク

参考書籍

関連記事