言葉を理解する(自然言語処理)
言葉を理解する(自然言語処理)
今の時代、コンピュータによる自動翻訳はほとんどの人が利用しているのではないでしょうか?
また、企業や行政のウェブサイトでは、インターネット経由で人間が行った質問に対して、チャットボットが回答することは当然のようになってきています。音声により、スマートフォンやスマートスピーカに指示を出すことも日常的になりました。
こうした技術の背景にあるのが、自然言語処理です。
自然言語処理とは、私たち人間が普段利用している言葉をコンピュータに理解させるための技術です。
コンピュータの創成期から行われているこの技術の研究にも、AIの登場により飛躍的な進歩が訪れ、私たちの生活に大きな利便性をもたらしています。
自然言語処理とは何か
日本語や英語など、私たち人間が普段利用している言葉を自然言語と言います。ある目的のために人工的に作られた言語を人工言語と呼び、代表的なものにはプログラミング言語があります。プログラミング言語などの人工言語は、文法が厳密に定義されていて内容は一意に解釈が可能となっています。対して、自然言語は、さまざまな言語、単語、文法があります。使う人、文脈、また同じ言葉でも使われる時代により意味に揺らぎが発生します。
言語に対する研究は古くから言語学として行われてきました。これは主に言語を構造的、体系的に理解することが目的でした。自然言語処理はコンピュータの登場後、言語をコンピュータに理解させるための研究として始まっています。しかし、上述したような特徴を持つ自然言語をコンピュータに理解させることは非常に大変なことだというのが想像に難くありません。
自然言語処理には半世紀以上の研究がありますが、大きな流れとして、人間による定義づけやルールの作成→統計情報の利用→ニューラルネットワークの利用と変化してきました。特に2010年以後のディープラーニング登場により大きな進歩が訪れ、最新の研究成果を応用したAIを使うと電話で会話している相手が、人間なのかAIなのか判別ができないことも起きるようになっています。
自然言語処理で何ができるのか
それでは、自然言語処理がどのようなことに役立っているか、代表的な例を見てみましょう。
自然言語処理は、文字認識、音声認識、音声合成、など言語に関わる各種の認識処理と組み合わされて役立つ機能を提供しています。
・質問応答 チャットボット
インターネットのウェブサイトやスマートフォンのSNSまで、会話形式で質問に応答するAIチャットボットが一般的になってきました。自然言語処理の発展が、ユーザーからの質問を解釈して適切な回答をすることに貢献をしています。
図1. チャットボットイメージ
・音声アシスタント スマートスピーカ
チャットボットは文字入力に対してテキストベースで応答しますが、音声のやり取りを可能としたのがスマートスピーカです。人間の音声による指示を理解して、音楽鑑賞、家電の操作、インターネットの買い物などを行うことが可能で、音声による返答も可能になっています。
図2. スマートスピーカーイメージ
・ウェブ検索
ウェブ検索でも自然言語処理は利用されています。例えば、現在の検索エンジンでは類義語を含めて検索をするように設定をすることが可能です。ユーザーが入力した言葉や文章を理解して、類義語などを含めて検索すれば、より多くの情報を提供することが可能になります。
図3. ウェブ検索イメージ
・自動翻訳(機械翻訳)
自動翻訳は長い間研究されてきた分野です。AIブーム以前にも数多くの自動翻訳が存在していましたが、
ディープラーニングを応用した自動翻訳が登場したことにより、一段と自然な翻訳が可能となりました。2020年時点では、音声での受け答えが可能な持ち運びができる自動翻訳機(多種言語にも対応)も登場しています。
図4. 翻訳イメージ
自然言語処理の技術の変遷
自然言語処理はどのような方法によって行われているのでしょうか?自然言語処理の大きな成果である機械翻訳を例に発達の歴史を見てみましょう。
- ルールベース翻訳 ~1980年代
人が作成したルールを利用して翻訳を行う。
翻訳元言語の文章を文法解釈した後に、単語で切り分け、辞書からその単語に対する訳語を取り出して、翻訳先言語の文法に沿って並び替えを行う方法。
PCの普及と性能向上により精度は向上した。人の手でルールの整備が必要なため精度の向上は頭打ちになっていった。
- 統計的機械翻訳 1980年代~
機械学習を使って、対訳コーパスから、翻訳ルールに該当する翻訳モデルと正しい文法をつくるための言語モデルを学習する。学習したモデルに対して文章を入力すると、それぞれのモデルから訳語が出力されるので、出力された訳語に対してスコアリングを行い、スコアが最大になるような組み合せを求める方法。
ディープラーニングを使った翻訳が現れるまでは最も標準的な機械翻訳方法だったが、人の手による作業が必要なため一定以上の精度を上げることが難しい。
※対訳コーパス:特定の言語間の翻訳例を大量に集めたもの
- ディープラーニングによる機械翻訳 2010年代~
統計的機械翻訳が、翻訳モデルと言語モデルの2つを必要としていたのに対して、ディープラーニングによる機械翻訳は対訳コーパスをもとに単一のモデルを作り出す。
ある時系列データを別の時系列データに変換するseq2seqというニューラルネットワークをベースにしており、入力単語列から翻訳された単語列を生成する。
従来の統計的機械翻訳を上回る精度と応用範囲を持ち、現在は機械翻訳の中心となっている。
図5.Seq2Seq(sequence-to-sequence model)イメージ [1]
まとめ
いかがでしたでしょうか。自然言語処理の技術により、私たちの生活がますます便利になってきている様子がお分かりいただけたかと思います。
下の画像はGoogleの最新技術Duplexで人間とAIが会話している様子です。最新の自然言語処理や音声合成技術によって、人間と間違ってしまうほどの自然な言語の理解と会話が可能となってきています。
図6. AIと人間の会話イメージ [2]
■参考文献
[1]Stanford online cs224n Lecure8
http://web.stanford.edu/class/cs224n/slides/cs224n-2020-lecture08-nmt.pdf
[2]YouTube「The Google Assistant can help you get things done over the phone」