オムライスの備忘録

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

【自然言語処理】言語モデル / 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} と表現してるのは言語モデル利用していることを強調している.)

応用モデル

N-Gram 言語モデル

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

Backpack Language Models / 2023

単語毎の埋め込み表現を共通の符号化器でK個の埋め込みベクトルに変換後、 それらを、文脈を入力にしたTransformerが出力する重みの重み付け和を元に次の単語を予測する.

どの単語のどの意味が使われたかを明示的にでき、制御しやすくする.



言語モデルの評価

言語モデルの評価にはパープレキシティ (Perplexity; PPL)が使われる.

研究

  • Meet in the Middle: A New Pre-training Paradigm

参考