自然言語処理前史#
- 第一次ブーム 1960 年代 極度の楽観論: 辞書を丸写しすれば翻訳は可能だと思っていた,らしい...
- 第二次ブーム 統計的自然言語処理
- 統計的言語モデル statistical language model
- Chris Manning (スタンフォード大学)) and Schutze (1999) 著。定番の教科書 Fundations of Statistical Natural Language Processing, あるいは こちら
- もう一つ定評の教科書 Jurafsky 著) と Martin 著 Speech and Language Processing は 改訂版 が出版されました。ニューラルネットワークによる言語モデルも載っています。
用語解説#
- BoW: Bag of Words 単語の袋。ある文章を表現する場合に,各単語の表現を集めて袋詰めしたとの意味。従って語順が考慮されません。"犬が男を噛んだ" と "男が犬を噛んだ" では同じ表現になります。LSA, LDA, fastText なども同じような表現を与えます。
- TF-IDF: 単語頻度 (Term Frequency) と 逆(Inverse) 文書頻度 (Document Frequency) で文書のベクトル表現を定義する手法です。何度も出現する単語は重要なので単語頻度が高い文書には意味があります。一方,全ての文書に出現する単語は重要とは言えないので単語の出現る文書の個数の逆数の対数変換を用います。このようにしてできた文章表現を TF-IDF と言います。
言語モデル Language model#
- 文献では言語モデルを LM と表記される。
- 統計的言語モデル statistical language model。言語系列に確率を与えるモデルの総称。良い言語モデル LM は,有意味文に高い確率を与え,曖昧な文には低い確率を与える。言語モデルは人工知能の問題。
- n-gram 言語モデル
- 指標: BELU, perplexity
- 課題: NER, POS, COL, Summary, QA, Translation
n-グラム言語モデル#
- 類似した言語履歴 について, n-gram 言語モデルは言語履歴 によって言語が定まることを言います。
- 実用的には n-gram 言語モデルは 語の単語系列パターンを表象するモデルです。
- n-gram 言語モデルでは の次数増大に従って,パラメータは指数関数的に増大します。
- すなわち高次 n グラム言語モデルのパラメータ推定に必要な言語情報のコーパスサイズは,次数増大に伴って,急激不足します
- Wikipedia からの引用では次式:
- 上式では ですが,伝統的に グラムと呼びます。 であれば直前の 1 つを考慮して 次語を予測することになります。
余談1 ですが
- : ヌルグラム null-gram
- : ユニグラム uni-gram
- : バイグラム bi-gram
- : トリグラム tri-gram
などと呼ばれます。
ニューラルネットワーク言語モデルあるいはミコロフ革命#
- スパースな言語履歴 は低次元空間へと射影される。類似した言語履歴は群化する
- 類似の言語履歴を共有することで,ニューラルネットワーク言語モデルは頑健 (訓練データから推定すべきパラメータが少ない)。
ニューラルネットワーク言語モデル NNLM フィードフォワード型 NNLM#
リカレントニューラルネットワーク言語モデル RNNLM#
- 入力層 と出力層 は同一次元,総語彙数に一致。(約一万語から20万語)
- 中間層 は相対的に低次元 (50から1000ニューロン)
- 入力層から中間層への結合係数行列 ,中間層から出力層への結合係数行列 ,
- 再帰結合係数行列 がなければバイグラム(2-グラム)ニューラルネットワーク言語モデルと等しい
RNNLM の学習 時間貫通バックプロパゲーション BPTT#
2011 Mikolov Fig.3
- 再帰結合係数行列 を時間展開し,多層ニューラルネットワークとみなして学習を行う
- 時間貫通バックプロパゲーションは Backpropagation Through Time (BPTT) といいます
時間貫通バックプロパゲーション BPTT#
図: バッチ更新の例。赤い矢印は誤差勾配がリカレントニューラルネットワーク
文字ベースか単語ベースか?#
- Pros/Cons
- OOV problems。OOV: Out of Vocabulary 問題。ソーシャルメディアなどを活用する場合不可避の問題
-
五月蝿いことを言えば Manning (1999, p.193) によると単語 gram はギリシャ語由来の単語だそうです。従って gram に付ける数接頭辞もギリシャ語である教養を持つべきです。そうすると : mono-gram, : di-gram, : tetra-gram が教養です。 はギリシャ,ローマ共通で tri-gram です。日常会話では をクワッドグラム(ラテン語由来)やフォーグラムと呼ぶことも多いです。 ↩