コンピュータが人の言語を理解する時代に突入して久しい。コンピュータと会話をしたり、自分が書いた文章をコンピュータに解読してもらったりしたことがある人は少なくないはずだ。
これを可能にしたのは、自然言語処理という技術だ。
しかしコンピュータはまだ、流暢な会話能力や正確な文章解読能力を持てていない。それは自然言語処理の技術が完璧ではないからである。
流暢で完璧な自然言語処理を行うには、AI(人工知能)の領域で使われているディープラーニングの技術を使う必要がある。
ところがこのディープラーニングも発展途上にある。
この記事では、流暢で完璧な自然言語処理をつくりあげるために、なぜディープラーニングが必要なのかを解説したうえで、ディープラーニング開発の現状を概観する。
続きを読む自然言語処理とは、ディープラーニングとは
自然言語処理とディープラーニングの関係をみる前に、それぞれの基礎知識をおさらいしておこう。
英語や日本語は自然言語
自然言語処理の自然言語とは、人が使う言語のことである。日本語も英語も自然言語だ。コンピュータは自然言語を理解できない。そこでコンピュータに指示を与えるには、コンピュータ言語を使わなければならない。コンピュータを動かすソフトウェアもアプリも、コンピュータ言語で書かれてある。自然言語とはつまり「コンピュータ言語ではない言語」という意味である。
では、自然言語を処理する「自然言語処理」とはどのような作業なのだろうか。
人々は多くのことをコンピュータにさせたいと思っているが、ほとんどの人はコンピュータ言語を解せず、プログラムを書くことができないから、コンピュータを動かすことができない。コンピュータ言語は難解で、だからプログラマーという専門職が生まれた。
ならば、自然言語を理解できるコンピュータをつくればいいのではないか、というのが自然言語処理の発想である。
コンピュータに自然言語で指示できれば、誰でもコンピュータを意のままに動かすことができる。また自然言語を理解したコンピュータなら、人間に指示を出すこともできるようになる。
自然言語をコンピュータが理解できるように加工すること、そしてコンピュータが出した答えを自然言語に加工することが、自然言語処理である。
ディープラーニングは複数の層で考える
ディープラーニングとは、AIの機械学習のひとつである。AIは、機械学習という技術が開発されて飛躍的に発展した。そして機械学習は、ディープラーニングという技術が開発されて飛躍的に発展した。
ディープラーニングには、複数の層があり、各層で情報を処理して、最終的に正解を出す。
例えば、このマークは海外の一時停止のサインである。
無料画像:
https://pixabay.com/photos/stop-shield-traffic-sign-road-sign-634941/
このマークを知らない人であっても「8角形の板に赤地で白い文字でSTOPと書いてある」と教われば、これが海外の一時停止のサインであるとわかる。
普通のコンピュータは、その情報だけではこれを一時停止のサインと認識することはできないが、ディープラーニングのコンピュータならそれができるようになる。
ディープラーニングの1層目が「8つの角がある」と認識し、2層目が「赤い部分の面積多い」と認識し、3層目が「SとTとOとPらしき文字を確認できる」と認識し、最終的に「80%の確率で海外の一時停止のサインであると認識できるが、20%の確率で赤い凧とも認識できる」と答えを出す。
各層の認識能力は学習によって向上させることができる。例えばある層で「凧は空に浮かんでいる、道路標識は地面に突き刺さった棒にくっついている」と認識させれば、先ほどの画像を入力して「99%の確率で一時停止のサイン、1%の確率で赤い凧」と答えられるようになる。
ディープラーニングはこうして自然言語処理の能力を高める
それでは自然言語処理とディープラーニングの関係についてみていこう。ディープラーニングは自然言語処理の能力をどのように高めることができるのだろうか。
ディープラーニング以前の自然言語処理
ディープラーニングが搭載されていない自然言語処理は、優秀な人の教師が必要であった。
例えば次の文章に登場する「痛い」に注目してほしい。
「あのような場所で、お腹が痛いと大きな声で言ってしまうのが、あの人の痛いところだ」
日本人であれば、最初の「痛い」が腹痛のことで、次の「痛い」が非常識な性格を意味していることはすぐに理解できる。
しかしコンピュータの自然言語処理でこの2つの「痛い」を理解させることは簡単ではない。人が懸命にコンピュータに教えなければならない。
また同音異義語の処理も、非ディープラーニング型の自然言語処理は苦手だ。
「昨日からイタイ、イタイと言っていたが、このようなむごいイタイになるとは」
最初の2つのイタイは「痛い」で、3つめのイタイは「遺体」であるが、これも人ならすぐにわかるが、自然言語処理にとっては難問になる。
この難問を、ディープラーニングが解いていく。
ディープラーニングで自然言語処理してみる
ディープラーニングを使うと、「(痛みの)痛い」と「(性格に問題がある)痛い」と「遺体」と「居たい」と「板井」を見分けられるようになる。ディープラーニングは世の中の文章を解析して、それらがどの文脈でどのような意味で使われているか分析できるからである。
ディープラーニングは文章を最小単語に分解し、それぞれの最小単語に「意味のベクトル」をつけていく。ベクトルによって、最小単語の意味に方向性と強弱をつけることができる。
「痛みの『痛い』」と「性格に問題がある『痛い』」は、意味の方向が違うので、違う方向のベクトルをつけることで区別できるようになる。
また「性格に少し問題がある『痛い性格』」と「性格に重大な問題がある『最悪の性格』」は、意味の方向は同じだが、強弱が異なるベクトルをつけることで区別できるようになる。
ベクトルによって、人間が言葉から検知するニュアンスの要素を、最小単語に付け加えられるようになる。
このように自然言語処理をディープラーニング化すると高度な理解が可能になる。その様子を概念図にしてみた。
「沖縄」という最小単語にベクトルをつけると、「沖縄」という言葉にさまざまなニュアンスを加えることができる。
例えば、ディープラーニングに「沖縄」と「北海道」の両方が頻出する文章を学習させると、恐らく「沖縄」に「日本の端に位置するために生じる問題を抱える都道府県」というベクトルをつけるだろう。
もしくは、ディープラーニングに「沖縄」と「京都」の両方が頻出する文章を学習させると、恐らく「沖縄」に「国内有数の観光地としての都道府県」というベクトルをつける。
これはまさに人が「沖縄」と聞いて想像する過程と酷似している。「沖縄」と聞いたとき、ある人は美しい生みを思い出し、別の人は美味しい泡盛を飲みたくなり、さらに別の人は米軍基地問題を思い出す。
人の「沖縄のイメージ」の数と、ディープラーニングの「沖縄ベクトル」の数が同じになれば、自然言語処理で処理された言語はより自然言語に近くなる。
ニューラルネットワークの進化版「RNN」とは
ニューラルネットワークを略してNNと表記することがある。ニューラルネットワークを使った自然言語処理開発は今、RNN(レカレント・ニューラルネットワーク、再帰型ニューラルネットワーク)のステージに突入している。
RNNは、過去に処理した自然言語処理を覚えておき、その記憶を次の自然言語処理のときの推測に利用する機能である。
RNNではない、普通のニューラルネットワークは、1層目が処理した情報は2層目が使うだけである。しかしRNNでは、1層目が処理した情報を、3層目や4層目が使うことができる。
例えば、「鳥が」という文章があり、普通のニューラルネットワークに「鳥が」の次の語を推測させると、「飛ぶ」「消えた」「生まれた」といった言葉が出てくる。
鳥が飛ぶ、鳥が消えた、鳥が生まれた、はどれも自然言語である。
ところが普通のニューラルネットワークだと「私は鳥が」の文章の次の語を推測させても「飛ぶ」「消えた」「生まれた」を出してしまう。
「私は鳥が飛ぶ」は自然言語ではない。
このようなミスをするのは、普通のニューラルネットワークは「私は」をチェックせず、直前の「鳥が」しか確認しないからである。
RNNは、しっかり「私は」もチェックする。それで「私は鳥が」の次の語を推測するとき、「好きだ」「嫌いだ」といった語を出すことができる。
私は鳥が好きだ、は自然言語である。
RNNは「『鳥が』の次にどのような語が来るかな? でも『私は』にもしっかりつなげなければならない」と考えているようなものである。
まとめ~ますます人に似る
ニューラルネットワークの出現により、自然言語処理が飛躍的に進化した。そしてニューラルネットワークはまだまだ進化するので、自然言語処理は今後ますます自然言語に近付くだろう。
ニューラルネットワークと自然言語処理の関係を追っていくと、「自分も言語をそのように理解している」と気が付くのではないだろうか。「鳥が」と「私は鳥が」の両方の次の語を推測することは、人でも一瞬悩んでしまう。しかし「私は」に注目すればよいことを知ると、簡単に次の語を想像できるようになる。
進化したニューラルネットワークは、人の思考にさらに近付くのだろう。
<参考>
- 人工知能、機械学習、ディープラーニングの違いとは(NVIDIA)
https://blogs.nvidia.co.jp/2016/08/09/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/ - ディープラーニングが自然言語処理に適している理由(appier)
https://www.appier.com/ja/blog/why-deep-learning-is-a-perfect-match-for-natural-language-processing/ - 注目度急上昇中!ディープラーニング、RNNの実力とは(CHANGE MAKERS)
https://www.change-makers.jp/technology/11341
役にたったらいいね!
してください
NISSENデジタルハブは、法人向けにA.Iの活用事例やデータ分析活用事例などの情報を提供しております。
No related posts.