14歳からわかる機械翻訳 ~機械翻訳の仕組みをざっくり解説~

みなさんは「機械翻訳エンジンはいったいどのようにして翻訳しているんだろうか?」と素朴な疑問を抱いたことはないでしょうか。実は、この素朴な疑問に答えようとすると、なかなかに難しいAIの技術を説明する必要があるんです。

でもご安心ください!

今回は、ギュッとわかりやすくまとめた「機械翻訳の仕組み」のお話です。
軽い気持ちで読んでいただければと思います。

なお、今回の説明では難しい理論の紹介を避け、数式を一切使わず、身近な例を交えて、誰にでもわかるように解説することに重点を置いています。このため厳密な意味では信憑性に欠けると受け取られかねない記述があるかもしれません。あらかじめご了承ください。

目次

黎明期の機械翻訳

機械翻訳の歴史は意外にも古く、なんと1950年代から研究が行われていました。
冷戦下でソビエト連邦の機密情報を分析するために始まった軍事プロジェクトの一つとして産声を上げました。

次の動画の後半には、ロシア語を英語に機械翻訳する研究シーンがあります。
動画中の技術者が「順調に進めば5年後には1時間に100万から200万語の機械翻訳が実用化できる」と語っています。

当時の機械翻訳装置には、たった250語ほどの単語辞書とほんの数個の構文規則しか実装されていなかったそうです。今思えばなんともシンプルな技術ですが、機械を使って自動的に翻訳文を出力しただけでも称賛される時代でした。

最初の機械翻訳装置の開発からしばらくのあいだ研究は滞っていましたが、1980年代以降現在に至るまで、機械翻訳技術の研究は大きく進歩しました。

機械翻訳の種類

機械翻訳には大きく分けて3つの種類があります。

世間で使われるようになった順に、ルールベース機械翻訳統計ベース機械翻訳ニューラル機械翻訳です。ここではそれぞれの機械翻訳の仕組みを軽く紹介します。

ルールベース機械翻訳 (Rule Based Machine Translation)

翻訳ソフトに内蔵された対訳辞書と文法規則を使って原文から訳文を作る翻訳方法です。
ルールベース機械翻訳は、学校の英語の授業で習った英文和訳・和文英訳の手法と同じです。

ルールベース機械翻訳
(Rule Based Machine Translation)

翻訳ソフトに内蔵された対訳辞書と文法規則を使って原文から訳文を作る翻訳方法です。
ルールベース機械翻訳は、学校の英語の授業で習った英文和訳・和文英訳の手法と同じです。

統計ベース機械翻訳 (Statistical Machine Translation)

膨大な量の対訳文テキスト(原語文と対訳文のペアでパラレルコーパスと言います)を蓄積したデータベースから、ある単語に続く出現確率が最も高い単語を統計的に求めて規則性を見つけ、原文に対する訳文を作る翻訳方法です。対訳辞書と文法規則は不要です。

統計ベース機械翻訳
(Statistical Machine Translation)

膨大な量の対訳文テキスト(原語文と対訳文のペアでパラレルコーパスと言います)を蓄積したデータベースから、ある単語に続く出現確率が最も高い単語を統計的に求めて規則性を見つけ、原文に対する訳文を作る翻訳方法です。対訳辞書と文法規則は不要です。

ニューラル機械翻訳 (Neural Machine Translation)

脳内の神経回路網の処理を模倣した翻訳方法です。対訳辞書と文法規則は不要です。
単語ごとに翻訳して文を組み立てるのではなく、文脈や意味を考慮して文全体を翻訳するため、自然で流暢な翻訳文に仕上がります。

ニューラル機械翻訳
(Neural Machine Translation)

脳内の神経回路網の処理を模倣した翻訳方法です。対訳辞書と文法規則は不要です。
単語ごとに翻訳して文を組み立てるのではなく、文脈や意味を考慮して文全体を翻訳するため、自然で流暢な翻訳文に仕上がります。

ニューラル機械翻訳は現在の機械翻訳で使われている技術ですので、この後、詳しく説明します。

機械翻訳エンジンは数字の計算しかできません

ここからの内容を読み進めるにあたって、みなさんに常に意識しておいてほしい大前提があります。それは、コンピューターの内部では、文字、単語、文、音声、音楽、画像、映像などのデータはすべて数字に変換されてから扱われるということです。

別の言い方をすると、コンピューターとは「数字の並び(数字列)を入力したら内部で計算処理を実行し数字の並び(数字列)を出力するシステム」です。

入力データが音声なら、音声データを数字列に変換し、何らかの計算を実行した後、数字列を別の音声または文字に変換して出力します。音声認識システムや自動通訳システムがこれに該当します。

入力データが画像なら、画像データを数字列に変換し、何らかの計算を実行した後、数字列を別の画像または文字に変換して出力します。画像認識システムや画像識別システムがこれに該当します。

音声や画像と同様に、入力データが文なら単語ごとに分割し、単語データを数字列に変換し、何らかの計算を実行した後、数字列を別の言語の文に変換して出力するという具合です。

単語を数字列に変換すると言われても、「どうやって?」とか「どんな数字の並びに?」と疑問に思われるでしょうね。たとえば、次の英文を数字列に変換するとき、各単語がどの特徴に該当するかを「0」か「1」で表す方法があります。

例文:”He came from Tokyo yesterday.”

スクロールできます
生物動作方向場所時間終了ベクトル
he110000(1,1,0,0,0,0)
came011110(0,1,1,1,1,0)
from011100(0,1,1,1,0,0)
Tokyo000100(0,0,0,1,0,0)
yesterday000010(0,0,0,0,1,0)
.000001(0,0,0,0,0,1)
スクロールできます
生物動作方向場所時間終了ベクトル
he110000(1,1,0,0,0,0)
came011110(0,1,1,1,1,0)
from011100(0,1,1,1,0,0)
Tokyo000100(0,0,0,1,0,0)
yesterday000010(0,0,0,0,1,0)
.000001(0,0,0,0,0,1)

各特徴の「0」と「1」をカンマで区切ってつなげたひと並びの数字列を「ベクトル」と言います。この例では特徴を表すカテゴリーが6つしかありませんが、実際のニューラル機械翻訳ではかなりの数に及ぶそうです。カテゴリー数が多いと、似た意味を持つ単語のベクトルは類似度が高くなります。

上記の例では、「came」(0,1,1,1,1,0)と「from」(0,1,1,1,0,0)のベクトルは似通っています。ニューラル機械翻訳の内部ではこの単語ベクトルを足したり、掛けたりして計算します。

単語をベクトル化する技術(Word2Vecなどがあります)はすでに実用化されていますので深く考える必要はありません。

この時点ですでにお気づきだと思いますが、ニューラル機械翻訳とは言っても、AIが文の意味を理解して翻訳しているのではなく内部で複雑な計算処理を繰り返しているだけです。

ニューラル機械翻訳で生成された訳文はまるで人が書いたと信じてしまうくらい自然な文章に仕上がっています。訳文がスラスラと読めるため、誤った翻訳箇所があったり翻訳文がいくつか抜けていたりしても気付かないことがあります。

「この文はAIで翻訳しました」と言われると、「それなら正確な翻訳のはず」と、うかつに信じてしまいそうになりますが、実はアヤシイ翻訳かもしれないのです。

ニューラル機械翻訳では、翻訳できない文が入力されると適当に翻訳したり飛ばしたりするからです。前回の記事で「機械翻訳は平気で間違える、間違えても平気でいる」と書いたのはこのためです。

とらえどころのないAI(人工知能)

「人工知能」は英語”Artificial Intelligence”の日本語訳です。世間では頭字語の”AI”がよく使われています。「人工知能(AI)って何ですか?」と聞かれたら、あなたなら何と説明しますか?

難しいですよね。

「人工知能とは何ぞや?」は専門家の間でも見解が分かれる難問ですので、ここでは代表的な定義を2つ挙げておきます。

  1. 「人間と同じ知的作業をする機械を工学的に実現する技術」(人工知能学会)
    https://www.ai-gakkai.or.jp/resource/ai_comics/comic_no1
  2. 「人間の思考プロセスと同じような形で動作するプログラム、あるいは人間が知的と感じる
    https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r01/html/nd113210.html

要は、「難しい知的作業を素早く処理してくれる仕組み」程度に理解しておいて問題ないでしょう。

そもそもニューラルネットワークって何?

ニューラル機械翻訳の「ニューラル」が何かを考えたことありますか?
ここで言うニューラルとは「ニューラルネットワーク」のことです。

「ニューラルネットワーク」(Neural Network)は日本語で「神経回路網」と言います。
脳の神経回路網を人工的に模倣したモデルを「ニューラルネットワーク」または「人工ニューラルネットワーク」と呼びます。

人間の脳はニューロンと呼ばれる神経細胞が大量に網の目のようにつながってできています。ニューロン同士はシナプスでつながっていて微弱な電流を通して情報をやり取りしています。

人工ニューラルネットワークは三層構造でできていて入力層、中間層(隠れ層とも言います)、出力層があります。

入力層では入力データ(機械翻訳の場合は文)を数字列(単語ベクトル)に変換します。数字列は中間層のニューロンに入り、シナプスごとの「重み」を掛け算して次のニューロンに進みます。

「重み」は前のニューロンから来た値が次のニューロンにとってどれくらい重要かを表しています。重みの値が大きいほど次のニューロンにとって大切な情報ということです。いくつかのニューロンから数字が運ばれ1つのニューロンへと足されていきます。いくつかの数字を一箇所にまとめるイメージです。

ニューロン間の計算処理をすべての層で行い、各層をリレーのようにどんどんつないでいくと最終的な結果を導き出すことができます。最終的な結果は数字列(ベクトル)として出力層に出てきます。この数字列を、入力層とは逆の変換をして文に戻すと訳文ができあがります。

ニューラルネットワークを「小さい計算機がたくさんつながっている仕組み」と考えると分かりやすいと思います。小さい計算機を何万個、何億個とつなげて人工ニューラルネットワークを構成すると、一つ一つの計算機では単純な計算しかできなくても膨大な数の計算機が集まると機械翻訳のような複雑な処理ができるようになります。

AIが自分で学習するから機械学習

コンピューターにいきなりデータを入力しても何もしてくれません。コンピューターは指示されたタスクを指示されたとおりにしかできないからです。コンピューターに何かしてもらうには作業指示を詳細に記述したプログラムが必要です。コンピューターはプログラム内に書かれた命令にしたがって一つ一つのタスクをこなします。

ところが、ニューラルネットワークのすごいところは、人間がプログラムを作らなくてもコンピューターが自分で処理方法を考え答えを導き出すことです。ただし、ニューラルネットワークに考えさせるには「前処理」が必要です。この前処理が「機械学習 (Machine Learning)」に相当します。

前処理として、「A」というデータが入力層に入ってきたら中間層でいろいろな計算処理をして答えが「X」になるようにせよと教えます。このときニューラルネットワークに教えるのは入力値と答えのデータセットだけで、中間層での計算方法は教えません。

同様に、入力値が「B」だったら答えが「Y」になるように計算させ、入力値が「C」だったら答えが「Z」になるように計算するという具合に教えるのです。

すると、人間がプログラムを作って指示しなくても、ニューラルネットワークは中間層でどのように計算すれば「A」が「X」になるか、「B」が「Y」になるか、「C」が「Z」になるかの計算方法を自分で考えます。数学的に言うと、関数を求めるための計算方法です。

入力値とともに計算の答えとなる出力値をセットで教えるので、このようなデータセットを「教師ありデータ」と呼びます。

ニューラルネットワークに教師ありデータを次から次へと与えると(擬人化して「AIにデータを食わせる」と言うことがあります)、ニューラルネットワークは中間層の最初の方に戻って、シナプスごとに設定されている「重み」の微調整を繰り返します。

このようにして膨大な量の入力値と答えのセットを元に、ニューラルネットワークが自ら学んで計算方法を導き出すことを「機械学習」と言い、構築できたモデルを「学習済みモデル (Learned Model)」と言います。

前処理段階で「学習済みモデル」が構築できれば、その後は新たな入力値を入力層に入れるだけで出力層からその答えが出てくるようになります。

身近なたとえ話で理解しよう

ニューラルネットワークと機械学習がどのような仕組みか何となく分っていただけたでしょうか。「三層構造」とか「データセット」とか「微調整」とか言われてもイメージが沸かない方、分かったような分かっていないようなモヤモヤした感じがする方のために、身近なたとえ話で説明します。

ニューラルネットワークをレストランに、その他の用語を次のようにたとえます。

ニューラルネットワークレストラン
機械学習レシピ作成
学習済みモデルレシピ集
入力層、出力層客席
中間層厨房

ニューラルネットワークの前処理としての「学習済みモデル」を構築するまでの流れ

シナリオ

シェフたちが新メニューを知らされ、その料理を試食してからその料理を再現するように求められるが、レシピ(食材や味付け方法)は知らされていない

ニューラルネットワークのプロセスレストランにたとえると…
①教師ありデータセットの入力シェフたちが新メニューの料理を試食する
②入力値のベクトル変換新メニューの略語や隠語を決める
③機械学習シェフたちが試作・調味してレシピを作る
④「学習済みモデル」の構築新メニューをレシピ集に加える

「学習済みモデル」をもとに計算処理を行い最終結果を出力するまでの流れ

シナリオ

客が注文した料理をシェフたちがレシピ通りに調理する

ニューラルネットワークのプロセスレストランにたとえると…
①実データの入力客が客席でメニューを見て注文したい料理をホール係に伝える
②入力値のベクトル変換ホール係が客の注文品を略語や隠語で厨房に伝える
③中間層での計算処理厨房のシェフたちがレシピ集を元に手分けをして料理を作る
④計算結果を出力ホール係が料理を客席に運ぶ

レストランの厨房での作業をたとえ話にしたことで、ニューラルネットワークがどのように機械学習して「学習済みモデル」を構築し、その後どのようにして「学習済みモデル」を実データに対して適用するかイメージできたでしょうか。

第2回の記事で機械翻訳エンジンによって訳文が異なるとお伝えしました。
DeepL、Google翻訳、Microsoft Translatorで訳文が異なるのは、AIに「食わせた」データセットが異なり、機械学習方法が異なり、構築した「翻訳済みモデル」が異なるからです。

同じ料理でもレストランによって食材、レシピ、調理方法が違うため、できあがる料理の味も違うのと同じ理屈です。

ディープラーニングは何がディープ(深い)?

ニューラルネットワーク内の中間層のことを別名「隠れ層」と呼ぶことがあります。外部から見ることができない隠れた層だからです。

上記のたとえ話で中間層をレストランの厨房と言い換えましたが、客席から厨房エリアは離れていて内部が見えないので「隠れ層」と呼ぶのはまさにイメージ通りです。

中間層(隠れ層)を何層も増やしてニューロンのつながりをどんどん深くした構造をディープニューラルネットワークと呼びます。

ディープなニューラルネットワークモデルでの学習なのでディープラーニング(深層学習)です。1層の処理では簡単な結果しか導き出せませんが、この処理の層が深くなる(ディープになる)ことで、複雑な処理が行えるというのが、ディープラーニングの考え方です。

理論上は無限に中間層(隠れ層)の層数を増やすことが可能で1000層以上の層を持つ複雑なモデルも存在しますが、層数が増えると計算が煩雑になり処理時間もかかります。

厨房のシェフの人数を増やすと料理のレパートリーが増え隠し味で味に深みを出すことも可能ですが、厨房が混雑するし洗い物が増えるのに似ています。

ディープニューラルネットワークを自分で作って遊んでみたい方は、Google社のTensorFlow Playground(テンソルフロー・ワークグラウンド)を使ってみてはいかがでしょうか。

データ、特徴、隠れ層を適当に変えて、左上の再生ボタンをクリックすると動き始めます。

http://playground.tensorflow.org

ニューラルネットワーク関連用語の関係は?

ここまで、ニューラルネットワーク、機械学習、ディープラーニングについて身近な例を交えて説明してきました。それぞれがどんなものかイメージがついてきたでしょうか。

改めて、これらの用語の関係性を図にまとめてみました。

  • 一番大きなくくりとして「AI(人工知能)」があります。
  • AIのひとつの技術として「機械学習」があります。
  • 機械学習を実現するための仕組みとして「ニューラルネットワーク」があります。

ニューラルネットワークの中間層の数を増やした構成が「ディープラーニング」です。

この関係図を使って、冒頭で説明した3種類の機械翻訳が基盤としている技術をザックリ整理してみます。

統計ベース機械翻訳は機械学習のひとつの手法ですが、その手法にニューラルネットワークの技術は使われていません。

ルールベース機械翻訳には自己学習機能がないため機械学習とはみなせません。ルールベース機械翻訳をAIの一部と考えることはできますが、事前に用意されたプログラムに沿った動作しかしないため、AIと呼べるかはビミョウです。

ニューラルネットワークの最新技術

ここまで延々と説明してきたニューラルネットワークの仕組みはCNN (Convolutional Neural Network:畳み込みニューラルネットワーク)と呼ばれます。主に画像認識に使われる手法です。CNNは短い文の翻訳に使われることはありますが、文が長くなると離れた場所にある単語同士の関係を捉えるのが難しくなるためあまり適切ではありません。

CNNの代わりに使われるようになった仕組みはRNN (Recurrent Neural Network:回帰型ニューラルネットワーク)です。RNNはループを持ったニューラルネットワークで、並び順が重要な時系列データを扱うのに適しています。入力した情報と順番を記録しつつ前の情報との関係性を考慮することができるため、長い文を翻訳するときに使われます。

しかし、文が長くなると情報を記憶しきれなくなり、初めの方の情報が出力層にまで届きにくくなるという欠点があります。また、計算に時間がかかるという問題点もあります。このような技術的な欠陥により、現在のニューラル機械翻訳にCNNとRNNは使われていません。

ええええ! 使われていないって、どういうこと⁉  とお怒りの皆さん、ごめんなさい。

今回の記事ではニューラル機械翻訳の仕組みを分かりやすく説明するためにあえてオーソドックスなCNNを使って解説しました。現在のニューラル機械翻訳に使われているのは2017年に発表されたTransformer(トランスフォーマー)です。

Transformerは文中の単語をひとつずつ読み込むのではなく、すべての単語を一気に読み込んで他の単語との関連性を調べます。全体の文脈から重要な情報にだけ注目(Attention)して処理するため、翻訳の処理が速く、精度も高くなります。

Transformerはニューラル機械翻訳だけに使われている技術ではなく、ChatGPTにも使われています。ChatGPTの末尾の”T”はTransformerの頭文字です。

まとめ

機械翻訳に使われている技術はまさに日進月歩のハイペースで開発が進んでいます。特に2016年にGoogle社がニューラル機械翻訳をリリースして以来、ほんの数年のうちに従来の主流だった統計ベース機械翻訳はすたれてしまいました。

今回の記事で紹介したニューラルネットワークのCNNの仕組みもすぐにRNNにとって代わり、そしてTransformerにとって代わったという具合です。たった1年か2年で最新技術が陳腐化してしまう時代です。

この先、技術開発のスピードが指数関数的に速まると考えると、近い将来今まで思いもしなかったような最先端技術が台頭するかもしれません。このようなスピード感に圧倒される時代にあっては、機械翻訳+ポストエディット、プロの翻訳者による人間翻訳などに時間とお金をかける意義が薄れかねません。

しかし、今回の記事で強調したとおり、いくらAIによる翻訳とはいえ実体は数字の計算です。AIが文意を理解していないことは火を見るよりも明らかです。多義語の意味の解釈や行間に込められた意図をくみ取って翻訳しているとはどうしても思えません。そう考えると、誤訳を見落としてしまう危険性はいつまで経っても払拭できないのです。

参考文献

機械翻訳についてもっと知りたいと興味が沸いてきた方向けに、参考情報をいくつか提供します。書籍、ネット記事、YouTube、高校講座などの媒体がありますので、お好きなものをご覧になってください。


・ヒトの言葉 機械の言葉 「人工知能と話す」以前の言語学 川添愛(2020年)https://www.kadokawa.co.jp/product/321909000011

・グーグルに学ぶディープラーニング 日経ビッグデータ編(2017年)https://bookplus.nikkei.com/atcl/catalog/17/259920

・ディープラーニング とは?ニューラルネットワークや機械学習との関係性、仕組みや実装する際の注意点を解説(2024年)
https://exawizards.com/column/article/ai/deep-learning

・【図解】誰でもわかるTransformer入門!凄さ・仕組みをわかりやすく解説(2024)
https://nlpillustration.tech/?p=2171

・進歩がすさまじい「機械翻訳」、その理由をトップ技術者に聞く 秋山進(2022年)https://diamond.jp/articles/-/296802

・機械翻訳の新しいパラダイム ニューラル機械翻訳の原理 中澤敏明(2017年)https://www.jstage.jst.go.jp/article/johokanri/60/5/60_299/_pdf/-char/ja

・AIってなに? ①AIの「本質」を理解すれば恐ろしさがわかる【解説】【人工知能】【ディープラーニング】(2023年)

・機械翻訳の歴史と仕組み(2021年)

・【解説】10分で人工知能を理解する – ディープラーニング(2019年)

・10分でわかる情報科学:グーグル翻訳(2017年)

・NHK高校講座 コンピュータを活用する 第14回 AI(人工知能)を作ってみよう!(2024年)https://www2.nhk.or.jp/kokokoza/watch/?das_id=D0022200034_00000

お気に入りの記事をシェアしよう!

この記事の執筆者

Nobu-sanのアバター

Nobu-sanCRESTEC

ローカリゼーションアドバイザー

執筆者プロフィール

これまで翻訳手配した言語は 50以上。翻訳業界のトレンドチェックとランチのはしごを難なくこなす稀有なアラカン。国籍、年齢、性別を問わず友人多数の自称コミュ障。
学生時代にお世話になったホストファミリーとは40年も交流を続けています!

目次