自然言語処理(NLP)の基礎

自然言語理処理(NLP)とは、人が自然に話している言語をコンピュータが処理するための技術だ。

自然言語と人工言語

「自然言語処理」の技術で扱う自然言語とは、人が日常的に使用している解釈に余地が生まれやすい言語のことだ。
例えば、

「警察は自転車で逃げる泥棒を追いかけた。」

という文があったとして、上記の言葉には2つの解釈がある。

  1. 警察が、「自転車で逃げる泥棒」を追いかけた。(警察がどうやって追いかけたかは不明)
  2. 警察が自転車で、「逃げる泥棒」を追いかけた。(泥棒がどうやって逃げているかは不明)

これに対し、人工言語はコンピューターに指令を与えるC言語やJavaなどのプログラミング言語のことを指す。例えば、「1*2+3*4」という文字列は「1と2を乗算した結果と、3と4を乗算した結果を加算する」という解釈の1通りとなる。

人工言語に対して解釈に予知が生まれやすい曖昧な言語を自然言語と呼ぶ。

では自然言語処理が使われているのはどんな場面か。

これはGoogleの音声アシスタントが電話予約をしている動画だ。
自然言語から内容を処理する、回答を自然言語へ変換する、といったことに自然言語処理の技術は使われている。

自然言語処理の歴史

SDKIの自然言語処理(NLP)市場規模予想では、2030年には686億ドルに達すると予想されている。(出典 自然言語処理(NLP)市場ーグローバル予測2030年)しかし、このように自然言語処理の研究が盛んになり、注目されるようになったのは2000年代に入ってからだ。

自然言語処理の研究が始まったのは1952年、言語の翻訳を目的としたものだった。研究はジョージタウン大学とIBMが共同で行い、ロシア語から英語に翻訳することを目的としていた。

チャットボットの前身となった「ELIZA(イライザ)」

自然言語処理(NLP)の基礎
ELIZA(イライザ)

1966年にはチャットボットの前身となった「ELIZA(イライザ)」が発表される。

ELIZAは簡単なパターンマッチング技法を使った自然言語処理プログラムで、その後開発されるチャットボットの前身となった。このELIZAは、セラピストの問診をシミュレーションするDOCTORという会話機能を持っており、人が作成したルールベースで応答するという仕組みだ。

例えば、「xxxの気分です」というキーワードに対して、「xxxの気分なのはいつごろからですか?」という決まった応答をするようルールが組み込まれている。また、パターンにない言葉には「それは興味深いですね」と返すように設定されているが、意味をなさない文章を入力した場合でも、定型応答を返してしまうというものだった。

その後、1950年代に研究が開始されるも、1966年に出されたALPACレポートでは「近い将来に機械翻訳を実用化することは困難であり、機械翻訳の代わりに言語の理解を目指す基礎的な研究を行うべきである」と発表され、自然言語処理は停滞期に入る。

人の能力の補助を目的として作られた「IBM Watson(ワトソン)」

時代は進んで再度自然言語処理の分野が注目されるようになった出来事の内のひとつが、クイズ番組で人間に勝利したワトソンの登場だ。

2006年から基礎研究が始まったワトソンは、コグニティブ・コンピューティング・システム(人間の能力の補助を目的とするシステム)として設計されている。大規模なデータを統計処理することで相関を見つけ、自ら仮説を作り出し、推論・予測・学習を行う。現在では音声認識や画像認識、感情分析などのサービスをAPIで提供している。

実用例

  • 「Chef Watson(シェフ・ワトソン)」
  • 膨大な量のレシピデータから分子レベルで食材の特徴や組み合わせの良し悪しを学習し「美味しさ」を研究することで、調理方法や料理のスタイル、盛り付け方などもパターン学習する。多様な美味しい組み合わせを提案するというもの。

  • JR東日本、お問い合わせセンター業務
  • 回答候補や関連資料をAIが瞬時に画⾯に表示してオペレーターをサポートする。オペレーターからのフィードバック情報が投入され学習が進み、現在ではオペレーターと顧客の会話を先読みしつつ、ダッシュボードに必要な情報を表示する。

深層学習を使った巨大汎用言語モデルの登場

自然言語処理(NLP)の基礎

自然言語処理の研究がさらに進んだ理由として、深層学習の流行がある。深層学習によって巨大なデータを学習することが出来るようになり、2017年以降GoogleやMicrosoft、Facebookなどが相次いで巨大汎用言語モデルを発表した。

巨大汎用言語モデルは巨大なデータで事前学習をしているため、モデルを利用することで教師データとして集めるデータ数が少なくても高い精度を出すことが期待されており、現在はこのような巨大汎用言語モデルを元に微調整を加える(ファインチューニングをする)というのがトレンドとなっている。

Google「BERT」

2018年にはGoogleから「BERT」が発表された。BERTは文章を読む能力が向上した自然言語処理モデルだ。これまでよりも少ないデータを学習するだけでさまざまな用途に対応している。「BERT」はGoogleの検索エンジンに採用されている。

自然言語処理(NLP)の基礎
「2019 brazil traveler to use need a visa」という検索に対し、BEFOREでは「to」の意味が正しく認識されていなかったが、BERTが導入されたAFTERでは正しく認識されている。(出典:https://www.blog.google/products/search/search-language-understanding-bert/)

OpenAI「GPT-1」、「GPT-3」

テスラの創業者であるイーロンマスクなどが参加したことで注目を集めたOpenAIは2018年に「GPT-1」、2020年には「GPT-3」を発表した。「GPT-3」は文章生成の可能性を広げた自然言語処理モデルだ。大量のテキストデータを学習し、人間が書いたかのような文章を生成することができる。

自然言語処理(NLP)の基礎
(出典:https://towardsdatascience.com/gpt-3-the-new-mighty-language-model-from-openai-a74ff35346fc)

GPT-3のパラメータ数は1,750億となっており、前述のBERTよりも格段に多い。性能はパラメータの数が大きければ大きいほど高いとされている。GPT-3は現在マイクロソフトがライセンスを所有しており、2021年11月からはMicrosoft Azureを通してGPT-3を利用するサービス「Azure OpenAI Service」を開始している。

GPT-3が得意とするのは文章の生成、要約だ。

実用例

  • 文章の自動生成を行う「Rytr(ライター)
  • GPT-3とスタートアップの独自技術で文章を自動生成するサービス。短いワードやフレーズを入力することで文章を生成する。

  • マイクロソフト、パソコンに話しかけてコードを生成
  • 自然言語処理(NLP)の基礎
    (出典:From conversation to code: Microsoft introduces its first product features powered by GPT-3
    マイクロソフトは同社が提供するサービスPower AppsにGPT-3を統合し、話しかけることでコードを生成する機能を開発したと発表した。同機能が実装されればプログラミング知識のないユーザーによるローコード開発、ノーコード開発が実現するとしている。

LINE「HyperCLOVA」

自然言語処理(NLP)の基礎

2020年にLINEがNAVERと共同で発表したプロジェクトが大規模自然言語処理モデルの開発とその処理に必要なインフラ構築を行う「HyperCLOVA」だ。このプロジェクトでは言語分野に限らない超巨大汎用AIモデルの開発に取り組む。

このような巨大汎用言語モデルが開発されていくことで、教師データが少ない場合でも精度の高いモデル開発が期待される。

人と機械のコミュニケーション方法の変化

自然言語処理が利用される場面は冒頭でも記載したように、予測変換やかな文字変換などの既に現在幅広く利用されているものから、音声応答、文章要約、文章生成など、実用段階にはあるものの、精度が低いため利用が広がっていないものもある。

また、自然言語処理の精度が上がることで機械と人のコミュニケーション方法も変化していく。

オムロンは京都大学、東京工業大学、奈良先端科学技術大学院大学と共同で、言葉による指示でロボットが作業に必要な動作の一覧を生成するアルゴリズムの開発を発表した。

自然言語処理(NLP)の基礎
出典:https://www.omron.com/jp/ja/news/2021/11/c1111_1.html

自然言語処理の精度の向上はロボットと人のコミュニケーション方法の変化にも影響していく。