昔の機械は、言葉を本当の意味では読めませんでした。
英語の文を見ても、そこに流れている気持ちや、文全体のまとまりを感じることはできません。
できるのは、せいぜい、この単語は、あの単語に対応しやすい、この並びのあとには、この表現が来やすいという、表面の規則や出現の傾向をたどることでした。
翻訳モデルの発展とは、ひとことで言えば、機械が、単語の置き換えしかできないところから、文全体を読んで言い直せるところへ近づいていく物語なのです。
統計的機械翻訳
最初に活躍していたのが、統計的機械翻訳です。
これは、たくさんの対訳データを見ながら、
・この英単語は、この日本語になりやすい
・この語順は、こう並べ替えられやすい
・この表現のあとには、これが続きやすい
といった確率の傾向を学ぶ方法です。
たとえるなら、英語と日本語の手紙が山のように積まれた部屋で、機械がそれを何枚も何枚もめくりながら、
「この言い回しは、だいたいこう訳されるのか」
「この単語の近くには、こういう単語が来やすいのか」
と、訳例のくせを覚えていくような感じです。
これは、ルールを全部人が手で書くよりずっと現実的でした。
でも同時に、どこか不自由でもありました。
なぜなら、統計的機械翻訳は、文全体をひとつの意味の流れとして読むのが苦手だったからです。
たとえば長い文では、最初の条件が最後の意味を決めることがあります。
人間ならそれを感じ取りながら読むけれど、統計だけでは、そのつながりを十分に抱えきれないことがありました。
つまりこの時代の機械は、まだ手紙を本当に読んでいるというより、よくある言い換えのくせを覚えているに近かったのです。
Seq2Seq
そこから大きな転換になったのが、Seq2Seqです。
Seq2Seqは、英語の文をその場その場で単語変換するのではなく、いったん文全体を読んで、その意味を受け取ってから、別の文として書き直す、という発想を持っていました。
ここで出てくるのが、以前話した、読む塔と書く塔です。
Encoder→ 入力文を読む塔
Decoder→ 出力文を書く塔
たとえば英語の手紙を日本語に訳すなら、読む塔がまず英語の文を最初から最後まで読んで、その意味を自分の中にまとめます。
そして書く塔が、その意味を受け取って、日本語の文として一語ずつ書いていきます。
これはもう、「単語帳をめくる翻訳」ではありません。
たとえるなら、原文の手紙を一度ちゃんと読んで、「ああ、この人はこういうことを伝えたいのか」と受け取り、そのあとで日本語の手紙として書き直す感じです。
Seq2Seqがもたらしたのは、機械が文を「ひとかたまりの意味」として扱おうとし始めたことでした。
ここが、自然言語処理の中でも、とても大きな変化です。
ただし、ここで終わりではありません。
Seq2Seqはたしかに大きな前進でした。
でも、長い文や複雑な文になると、まだ苦しいところがありました。
なぜかというと、読む塔は読んだ内容をどこかに覚えておく必要があるからです。
短い文なら大丈夫かもしれない。
でも長い文になると、
・最初の条件を忘れてしまう
・誰の話だったか薄れてしまう
・後半を書いているうちに、前半の大事な情報が遠くなる
ことが起こりやすいです。
これは、人が長い手紙を読んだあとで、内容を一行のメモだけにして渡され、そのメモを頼りに返事を書くようなものです。
短い手紙ならまだしも、長い手紙だと気持ちの細やかさや条件の違いが抜け落ちてしまいそうですよね。
つまり機械は、「読むこと」だけでなく、長い流れの中で大事なことを忘れずに持ち続けること、にも苦労していたのです。
CEC
この苦しさをやわらげるために重要だったのが、
LSTMの中にあるCECという考え方です。
CECは、Constant Error Carouselの略です。
名前は難しいけれど、イメージはこうです。
長い長い廊下のある屋敷を想像してください。
入口で受け取った大切な手紙を、ずっと奥の部屋まで届けなければならない。
でも廊下が長いと、
・内容を忘れてしまう
・途中で大事な一文が抜ける
・最後に着くころには、肝心なことがぼやける
ことがあります。
そこで屋敷の中に、大事な手紙だけをまっすぐ運べる専用の通路が用意されていたらどうでしょう。
途中で薄れにくく、大切なことをそのまま先へ渡しやすくなるはずです。
CECは、それに似ています。
LSTMの中で、重要な情報や学習の手がかりを、途中で弱めすぎずに流しやすくする通り道がある。
それによって、長い系列でも記憶を保ちやすくするのです。
もう少しやさしく言うなら、CECは、長い文章の中で、本当に大事なことを忘れにくくするための仕組みです。
これがあることで、機械は長い手紙を読んでも、最初に書いてあった大切な条件を、少し前より見失いにくくなりました。
まとめ
ここまでを振り返ると、流れはとてもきれいです。
統計的機械翻訳→ たくさんの訳例から、もっともらしい言い換えを選ぶ
Seq2Seq→ 文をいったん読んで、その意味を別の文として書き直す
CEC→ 長い流れの中で、大事な情報を忘れにくくする
つまり翻訳モデルの発展とは、機械が、単語の対応表を見ながら訳すところから、文全体を読んで言い直すところへ近づいていく物語なのです。
この流れの先に、「必要な場所をそのつど見に行こう」というAttentionの発想が現れ、さらにBERTやGPTの時代へつながっていきます。
だからこの章は、機械が「言葉の表面」から「言葉の流れ」へ近づいていく、その大事な途中経過なのです。
next ▶ BERTとは何か