オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【自然言語処理】ニューラル言語モデル / Neural Language Model

Index

言語モデル / Language Model

言語モデル (Language Model; LM) あるいは 確率的言語モデル (Probabilistic Language Model) とは、

(人間が扱う自然言語で書かれた)
文や文章が生成される確率をモデル化したもの.

文や表現の出現確率、つまり文や表現が使われる確からしを (モデルへ) 与えるもの.



マルコフモデル / Markov Model

系列・順序のあるデータに対する考え.

ある時点  t での情報は、過去  m 個分の系列の情報にしか依存しないという考え.

言語モデルにも利用されている.

確率モデル

長さ  T の単語列を  Y = (y_1,\ \cdots,\ y_T) とする.



ここでは、 y_t t 番目の one-hot ベクトルを指す.

このとき、単語列  Y を生成する確率は、以下のように表す.

 P(Y)



BOS / EOS

ある単語列が文を構成してることを明示するために文頭および文末に仮想単語を追加する.

文頭を表す仮想単語を BOS (Beginning of Sentence) と呼び、 文末を表す仮想単語を EOS (End of Sentence) と呼ぶ.



 T 個の単語からなる文に文頭と文末に仮想単語を含めた文

 Y = (y_0,\ y_1,\ \cdots,\ y_T,\ y_{T+1})


を考える.

 y_0 は BOS、 y_{T+1} は EOS に対応する one-hot ベクトル / トークンを指す.



ただし、文の生成確率  P(Y) を直接モデル化することは難しく、 言語モデルは文中の各単語の生成確率を、その単語の前に出現した単語 (ベクトル / トークン) が与えられたという条件 の元で、次の単語を予測するモデルを組み合わせ、その組み合わされたモデルを数式として定義する.

ここで、言語モデルにおいて、ある単語の出現確率を計算する際に用いる周囲の単語を文脈 (context) と呼ぶ.



つまり、言語モデルは直前に出現したいくつかの単語を文脈として次の単語の出現確率をモデル化したもの.

 Y の生成確率もとい出現確率

 Y の出現確率  P(Y) を、各単語が生成される条件付き確率の積で以下のように表現する.

 P (Y)\ =\ P(y_{0}) \displaystyle \prod_{t=1}^{T+1} P \left( y_{t} | Y_{[0,\ t-1 ]} \right)



 Y_{[0,\ t-1]} は、 t 番目以前の単語列  (y_0,\ \cdots,\ y_{t-1}) を表す.

また、 y_0 (BOS) における確率値  P(y_0) は、文の始めにくる確率となり、1 (= 100%) とし、一般化すると以下のようになる.

 P_{model} (Y)\ =\ \displaystyle \prod_{t=1}^{T+1} P_{model} \left( y_{t} | Y_{[0,\ t-1 ]} \right)



( P_{model} と表現してるのは言語モデル利用していることを強調している.)

ニューラル言語モデル / Neural Language Model

言語モデルは、ニューラルネットを用いる方法を除くと、依存する文脈長を固定した N グラム / N-Gram がもっとも多く用いられてきた.

これに対して、ニューラルネットによる言語モデルが、徐々に使われるようになった.

ニューラル言語モデル ニューラルネットを用いた言語モデルを総称して ニューラル言語モデル (Neural Language Model) と呼ぶ.

ニューラル言語モデルの構築

ニューラル言語モデルは以下の三つで構成されている.

  1. 入力層
  2. 中間層
  3. 出力層

入力層

入力がone-hot ベクトルでないような場合(トークンのようなID)、 意味のある入力とするために密なベクトル表現に変換する必要がある.

この変換を行う層は、畳み込み層 (Embedding Layer)と呼ばれる.

また、変換されたベクトルは分散表現、あるいは埋め込み表現 (Embedding) と呼ばれる.

中間層

モデルごとに様々

出力層

語彙中の  N 個の選択肢の中から現れるトークンを予測する問題は、Nクラス分類問題と解釈できるので、  N 次元ベクトルを出力する.

ニューラル言語モデルの種類

順伝播型ニューラル言語モデル

順伝播型ニューラル言語モデル

ニューラル言語モデル のサブカテゴリとして、順伝播型ニューラルネットを用いた言語モデルを総称して 順伝播型ニューラル言語モデル (Feedforward Neural Network Language Model; FFNN LM)と呼ぶ.



順伝播型ニューラル言語モデルでは、前  C 単語だけを入力として、 t 番目の単語の出現確率をモデル化する.

 Y の生成確率は以下.

 P_{ffnnlm} (Y)\ =\ \displaystyle \prod_{t=1}^{T+1} P \left( y_{t} | Y_{[t-c,\ t-1 ]} \right)

再帰ニューラル言語モデル

再帰ニューラルネットは文脈長を固定することなく可変長入力を自然に扱うことができるため、 言語モデルのように系列データをモデル化するのに適している.

再帰ニューラル言語モデル

ニューラル言語モデル のサブカテゴリとして、再帰ニューラルネットワークを用いた言語モデルを総称して 再帰ニューラル言語モデル (RNN LM) と呼ぶ.



 Y の生成確率は以下.

 P_{rnnlm} (Y)\ =\ \displaystyle \prod_{t=1}^{T+1} P \left( y_{t} | Y_{[0,\ t-1 ]} \right)

参考