開閉ボタン
ユーザーメニュー
ユーザーメニューコンテンツ
ログイン

  • 会員限定
  • 2021/06/14

再帰的ニューラルネットワークとは?自然言語処理に強いアルゴリズムの仕組み

連載:図でわかる3分間AIキソ講座

前回、画像処理に強いニューラルネットワークのアルゴリズム「畳み込みネットワーク」を解説しました。これと一緒に、もう1つ学んでおきたいアルゴリズムがあります。それは「再帰的ニューラルネットワーク」です。再帰的ニューラルネットワークは、翻訳や対話といった言葉を扱う自然言語処理に使われることの多いアルゴリズムです。これをわかりやすく解説していきます。

フリーライター 三津村直貴

フリーライター 三津村直貴

合同会社Noteip代表。ライター。米国の大学でコンピューターサイエンスを専攻し、卒業後は国内の一部上場企業でIT関連製品の企画・マーケティングなどに従事。退職後はライターとして書籍や記事の執筆、WEBコンテンツの制作に関わっている。人工知能の他に科学・IT・軍事・医療関連のトピックを扱っており、研究機関・大学における研究支援活動も行っている。著書『近未来のコア・テクノロジー(翔泳社)』『図解これだけは知っておきたいAIビジネス入門(成美堂)』、執筆協力『マンガでわかる人工知能(池田書店)』など。

画像
再帰的ニューラルネットワークとは?(後ほど詳しく解説します)


再帰的ニューラルネットワークとは

 再帰的ニューラルネットワーク(Recurrent Neural Network: RNN)」は、回帰型・循環型とも呼ばれるニューラルネットワークです。

 このネットワークは単語に含まれる「再帰的」という言葉の意味を理解していると、その本質が理解しやすくなります。ただ、「再帰」という単語はコンピューターや数学に関わっていない人には聞き慣れないかもしれません。再帰というのは、事象の結果が原因になり得る状態を指す言葉で、一種の「ループ」をイメージすると分かりやすいでしょう。

 たとえば、「ニワトリは卵から生まれ卵はニワトリから生まれ、そのニワトリは卵から……」とか「ジュースを売ったお金で売ったジュースを買い戻し、そのジュースを売ったお金で……」というのは再帰的な事象と言えます。延々と続きそうな現象ですが、「ニワトリが卵を生む前に死ぬ」「お店が閉店する」といった事象が起これば止まります。

画像
再帰とは?ニワトリと卵の関係から解説すると…

 プログラミングの世界では、実行中のコードがそのコードの中で再び呼び出される処理のことを意味しており、たとえば「0に1を足してできた数(0+1)」を1に足す→「できた数(1+1)」を「先にできた数(0+1)」に足す」→「できた数(2+1)」を「先にできた数(1+1)」に足すという手順はフィボナッチ数列(0, 1, 1, 2, 3, 5, 8, 13…)と呼ばれる特殊な数列が生まれる処理としてよく知られています。

 ややこしいですが、要するに「前の2つの数を足すと今の数になる」という話です。今の数には前の数が関係していて、繰り返すことでどんどん増えていくという理屈です。そして、これをニューラルネットワークに応用すると「前のネットワークの計算が今のネットワークの計算の元になり、繰り返しながら情報が増えていく」という再帰的なニューラルネットワークになります。

 この不思議な構造が、特に自然言語処理に役立ちます。言葉というのは前の文章が今の文章に影響を与え、文脈次第で意味が変わることが当たり前におこります。文章の並び順やつながりが非常に重要な意味を持つため「前の意味を踏まえて今の意味を考える」というプロセスが非常に重要なのです。

画像
「順伝播型ネットワーク」と「再帰的ニュートラルネットワーク」の違い

 これに対して、畳み込みネットワークのように情報を同時に並行して処理するニューラルネットワークを「順伝播型ネットワーク」と呼びます。再帰的ニューラルネットワークは厳密には特定のアルゴリズムを指すものではなく、アルゴリズムの系統を指すものだと理解すると良いでしょう。

 そのため、再帰的ニューラルネットワークは、畳み込みニューラルネットワークのように特定の技法を含むわけではなく、単純に情報の流れやネットワークの流れで順伝播型と区別されています。

具体例:どのように文章を「再帰的」に処理しているのか?

 では、再帰的ニューラルネットワークについて、自然言語処理を例に少し具体的に掘り下げていきましょう

 「私は猫を飼っている」という文章を「私は」「猫を」「飼って」「いる」に分けたとします。各文節にはそれぞれ意味があり、各文節同士に何かしらの関係性があります。そして、これらが合わさって文章全体の意味を構成します。

 単語の意味を把握しないと関係性が分からないにも関わらず、関係性が分からないと単語の正確な意味は分からないのです。従来の言語処理ではこうした関係性を無視してバラバラに単語を理解し、文法と組み合わせて文章を理解していました。これでは文脈を踏まえた意味把握ができません。

 単語の意味だけ分かっても意味がないですし、関係だけ分かっても意味がありません。順番に意味を把握しながら、前の単語や文章との関係を考えるのです。実は、これは再帰的な処理になっています。

 再帰的ニューラルネットワークでは「最初に翻訳した単語」との関係性を踏まえて、「これから翻訳する単語」を翻訳し、さらに「今まで訳した全単語」との関係を踏まえて……という流れで再帰的に処理を行うことで、前後の流れを踏まえて意味を把握できるようになりました。

 これが再帰的ニューラルネットワークの強みです。文章全体をニューラルネットワークの中に入れ、前の単語や文章の意味を次へ次へと流していくように処理をすれば、ニューラルネットワーク全体が一種の短期記憶のような働きをして自然な言語理解ができるようになります。

 ただ、これは再帰的ニューラルネットワークでなければできないわけではありません。人間でも文章を読み慣れてくると、文章の頭から読まなくても目に入った文字列をまとめて理解することができるようになります。これと同じように畳み込みニューラルネットワークを使って自然言語処理をするようなアプローチもあるため、再帰的ニューラルネットワークでなければ自然言語を処理できないというわけではありません。

【次ページ】再帰的ニューラルネットワークで「翻訳・対話」はどう変わったか?

お勧め記事

AI・人工知能・機械学習 ジャンルのトピックス

AI・人工知能・機械学習 ジャンルのIT導入支援情報

ビジネス+IT 会員登録で、会員限定コンテンツやメルマガを購読可能、スペシャルセミナーにもご招待!