文章が生成される確率を推定したい。
もっともらしい(確率的にありえる)文章を生成したい。
P(昨日は雨が降りました)>P(昨日は飴が降りました) 文章をトークンに置き換えて考えると、文章の確率ではなくトークンの同時確率として扱うことができる
P(昨日,は,雨,が,降り,ました) 記号にすると、ある文章Sをトークン化したのを(w1,w2,⋯,wn)とすると、
P(S)=P(w1,w2,⋯,wn) を求めたいということになる。これは条件付き確率の積として表せる
P(w1,w2,⋯,wn)=P(w1)×P(w2∣w1)×P(w3∣w1,w2)×⋯=i=1∏np(wi∣ci) ここでciはwiより前のトークン列ci=(w1,w2,⋯,wn)で、文脈(context)と呼ばれる
言語モデルの位置づけと活用¶
この言語モデルの考え方がNLPではベースとなっている。
この派生で、DNNを使うword2vecがあったり(word2vecはcontextがwiの前後n個という感じでやや違うが)、
「contextは時系列的な関係がある」ということで系列性を扱えるRNNやLSTMを使う流れが生まれたり、
「RNNやLSTMは勾配消失の問題がある」ということでTransformerを使ってBERTやGPTを使ったり
「もっと大規模な表現力の高いモデルに」となりLLMに派生していった