本文へジャンプ

2突破口を開いた機械学習

「大量のデータから言葉をとらえる」

音声認識での成功を背に、機械学習が自然言語処理の世界に登場した。それは、構文からせまる方法よりも精度を高めることができた。

言語理論からのアプローチでぶつかった壁は、どのように乗り越えられたのでしょうか?

とにかく、何か言語の構造とは別のことをやらないといけないなという状況になっていた1990年代に、別の方向からのアプローチが浮かびあがりました。目に見えない言語の構造はいったん考えないことにして、表面的に観察できる単語の並びを統計的な手法でモデル化し、それを使って言葉を処理しようというものです。それが、いまのウェブの検索などにもさかんに使われています。

実は、この統計的な手法は、1980年代から音声認識という自然言語処理の隣接分野でとても成功していました。ある特定の単語の列がやってきたら、その続きにはどういう単語が来そうか、それを統計モデルで予測したら、非常に精度がよくなったんです。

膨大なデータを与えて予測を精密にしたり、予測モデルにちょっとした工夫を持ち込んだりして、長い間すこしずつ成績をよくして、気が付いたらものすごく性能が上がっていたんですね。抽象的な理論よりも、大きなデータで予測モデルを作るほうが、着実に性能を上げられたわけ。

それで、同じようなやり方を自然言語処理にも導入したんです。たとえば機械翻訳でも、原文と翻訳結果のように2つの言語が一対になっているデータを使って翻訳関係の統計的モデルを作ると、言語の構造に関する理論(文法)を使った手法よりも着実に翻訳の精度が上がります。さらにシステムの性能評価自体も、人間が作った翻訳データを使って自動化できるようになります。

機械学習の仕組みはどんなふうになっているんですか?

機械学習というのは、文法のような規則を人間が教えるのではなく、計算機が大量のデータから自動的にそういう規則に相当するものを学習するというものです。とはいえ、最初は何が正解がわからないでしょ。だから、まず人間がお手本を用意します。

アノテーションといって、テキストのここからここまでが名詞句、ここからここまでが動詞句、そういうふうに手でタグを付けてやります。タグがあれば、プログラムはそれらを手掛かりにして正しい文の構造を認識できますから。そうやって、まずお手本のデータをトレーニング用にできるだけたくさん用意しておきます。

現在よくおこなわれているのは、お手本のデータの一部をテスト用の正解データとして取り分けておき、規則をうまく学習できたかどうかを調べるために使うという方法です。一定量のトレーニング用のデータを使って、テスト用のデータをできるだけうまく当てられるような学習プログラムを競争で開発するわけです。

機械学習は、機械翻訳にも使われていますよね。カナダは英語とフランス語の2つが公用語になっていて、議会の議事録が2つの言語で用意されています。こういう、同じ内容で対応が取れているテキストの組をパラレルコーパスというんですが、それを元に2つの言語の対応関係を確率モデルとして学習させることができます。これが可能なことをカナダの議会録を使って示したのが、IBMのワトソン研究所のグループで、1980年代なかばのことです。それから徐々にこの手法が広がって、現在さかんに研究されています。

ページトップへ戻る