言語モデル
自然言語処理の講義
言語モデルの定義の一つ: 文の「もっともらしさ」を評価する
- 音声認識とかのいくつかの認識結果候補から一つを選ぶのにも使える
- 「[[文]]」の数学的表現
- 文s =
hello worldは、文頭/文末を表す単語的存在
- 文s =
- ↑を用いて、文らしさを評価
- P(a|b)は、bが来たあとのaの単語出現確率
- P(
) * P(hello |) * P(world |hello) * P(|hello world) - 各単語について、それ以前の文章から考えてその単語がどのくらいありうるかを評価
- P(a|b)をどうするか
- 「[[文]]」の数学的表現
言語モデルは、尤もらしさ等を測る上で単語間の繋がりの情報を保持している
- つまり、言語モデルは文章等をベクトルにエンコード/デコードする物とも定義できる?
- RNNに突っ込んでembedding (エンコード)
- 出力はSoftmaxで0~1に正規化
- Attention機構
- 長い文になると、各単語が出力ベクトルに与える影響が小さくなってしまう
- 出力ベクトルのサイズは固定
- アテンションの重みを計算して、重要な単語を強く反映させる
- 長い文になると、各単語が出力ベクトルに与える影響が小さくなってしまう
- Transformer
- ベクトルへのエンコードと、その別言語によるデコードができれば機械翻訳が出来る
- RNNに突っ込んでembedding (エンコード)
GPT-3, BERTなどはTransformerの応用
Pre-trained言語モデル
- 様々なタスクに適応できる言語モデル
- 大規模モデルはメンテナンス等にコストかかり、扱いにくい
- 専用の小さいモデルと比べて、この点がデメリット
- 軽量なモデル(DistillBERTとか)も作られている