新しい言語モデルとモデリング

例によって火曜日なので在宅勤務。午前中はリモートでウェブ会議。いつもは大学に学生たちと集まっているのだが、今日は自分が在宅なので学生たちも全員リモート。Slack とか適当なコミュニケーションツールでやりとりできるなら、別にリモートでもいいような気がしないでもない(人によるのだろうけど)。

昼から B4 の進捗報告。「言語モデリング」「言語モデル」という用語が出てくる卒論を毎週見ているのだが、統計的自然言語処理時代から自然言語処理をしている人とそうでない人とで用語の感覚が違うようなので、一度自分のこれらの用語に対する認識をまとめてみる。Twitter を観測していると、以下のような考え方は割とアラフォー以上の(つまり統計的自然言語処理に馴染みが深い)人の共通認識っぽいのだが、どうもアラサー以下の(つまり深層学習の方が馴染みが深い)人はもっと「言語モデル」の範囲が広いようである。

  • 狭義の言語モデル: 入力テキストに対して何らかの確率を付与でき、一から文を生成できる生成モデル。代表的なのは n-gram 言語モデル。最近の事前学習モデルでも GPT-2 は生成を主目的としているのでここに入る。
  • 広義の言語モデル: 文の生成能力はないが、入力テキストに対して何らかのスコア(必ずしも確率である必要はない)を返すことができる識別モデル。または、生成能力はあるが、一から生成することはできず、マスクした単語のみを生成したりできる生成モデル。最近の事前学習モデルだと BERT はここに入る(BERT でも生成はできるが、基本的には識別モデルかなと)。
  • 言語モデリング: これは予測や分類に使ったりするモデルのことではなく、上記のようなモデルを学習するタスクの名前。word2vec や ELMo のような単語分散表現は、学習は単語の予測を用いてやるので言語モデルと共通しているが、それ自身では文を生成する能力はないので、これらは言語モデルではない。

これが唯一正しいと言いたいわけではなく(そのために、進捗報告でも自分がこれらの用語をどう使い分けているのかは気を付けて慎重に言わないようにしている)、用語の使い方は時代でも変わるので別に今後「言語モデル」という用語の使い方が変わってもいいと思っているが、たとえば論文の査読で自分が考える用語の使い方を大きく逸脱した原稿が査読に回ってきたら、そもそもこれらの用語の定義は何か、と質問するだろう。

午後は言語処理学会年次大会の原稿(第3原)にコメント。3件で2.5時間。ほほ全ての人は仮投稿を終えていて、本投稿を済ませている人も半分くらい。最近は〆切前にバタバタしなくなり、平和になったなあ。