Benjioの「次元の呪い」-- 語の数と文の数
【 Benjioの「次元の呪い」-- 語の数と文の数 】 今回のセッションから新しい章「意味の分散表現の登場」に入ります。 最初に扱うのは、2013年のThomas Mikolov, Jeff DeanらのWord2Vec論文です。この論文は、自然言語処理システムが現在の大規模言語モデルへと発展する「進化」の戸口にたつものだったと考えています。 ここでは、この論文に先行した当時の研究状況を振り返ってみようと思います。 コンピュータと自然言語が出会った時以来、大量の言語データを統計的に処理すれば、言語の性質がわかるだろうという楽観論が存在しました。ただ、そうしたアプローチは失敗します。 For breakfast I ate _____eggs. という文の空白部分に入るのは、三つの単語{ to, two, too }のどれかという問題に(答えはもちろん 'two'です)、21世紀に入っても、単純な統計的アプローチは、100% 正確に答えることができませんでした。この論文の著者は、10億語からなる用例集を統計的に処理したのですが。 それは問題の複雑さの尺度を見誤ったことによるものです。データの数を増やせば、問題が解けるようになるとは限らないのです。 26文字のアルファベット15文字以内で構成される語の数は、高々、26^15です。ただし、語彙が10万個ある言語での10個の語からなる文は、100000^10=10^50種類もあるのです。 ある言語で、すべての語彙を集めた辞書は存在するかもしれないのですが、その言語のすべての文の例を網羅した用語集は存在しません。 Benjioは、早くから、言語処理に現れる組み合わせの数の爆発を意識していた一人でした。2003年の論文で、彼は、それを「次元の呪い」 Curse of Dimentionality と呼びました。 この論文で、Benjioは「次元の呪い」と戦うために、次のような方法を提案します。 1. 語彙中のそれぞれの語に、m個の実数に値を持つ、分散したm次元の特徴ベクトル(word feature vector)を対応づける。 2. 語の並びの結合確率関数を、この並びの中の語の特徴ベクトルで表現する。 3. 語の特徴ベクトルとこの確率関数のパラメーターを、同時に学習する。 乱暴なまとめをすれば、こ