NLPとは?

プログラミングの入門クラスを受講したことがある人は、「コンピューターは愚かだ」と講師が言うのを聞いたことがあるかもしれません。言われたことだけを実行するのであり、しかも論理的に表現された範囲に限定されるという意味です。コンピューターは『スタートレック』のデータ少佐のような知的な思考機械ではなく、非常に特殊な方法で指示される必要のあるツールであるという点を思い出させるための発言なのでしょう。

この原理は今でも正しいですが、高度なAIモデルの力によって、最近のコンピューターが話し言葉や書き言葉の意味や意図を理解する能力が高まったという事実を覆い隠しています。自然言語処理(NLP)は、まさにこの点に焦点を当てた幅広い研究分野です。

皆さんも、AlexaやSiriにお気に入りの音楽を再生するように頼んだり、ChatGPTに複雑なテーマをわかりやすく説明してもらったりと、日常生活でNLPテクノロジーを利用しているのではないでしょうか。こうしたツールは、私たちの生活をより便利にしており、基盤テクノロジーが進歩するにつれて機能をさらに高めていきます。

この記事では、自然言語処理の基本的な原理、使用方法、能力と限界について説明します。さらに、近年起こったNLPテクノロジーの驚くべき進歩を紹介し、これが将来の製品やアプリケーションにどのような影響を与えるかについても考えていきます。

自然言語処理とは

NLPという用語は、コンピューターサイエンス、言語学、AIといった複数の領域にわたる研究分野を表し、コンピューターが話し言葉と書き言葉の両方で人間の自然な言語を理解、解釈、生成できるようになることに焦点を当てています。

私たちは日常生活の中でNLPの恩恵を受けていますが、それを当然のことと考えるべきではありません。人間の言語は整ったものではなく、複雑です。数え切れないほどの異なる言語、方言、アクセントなど、多様性があるだけでなく、常に進化しています。しかも、比喩的な意味と文字通りの意味の両方を持つ慣用句など、不規則性に満ちています

たとえば、「デイブはルーシーの陰で意地悪なことを言った」というフレーズがある場合、比喩として解釈されるべきか(「ルーシーがデイブの発言を知らない」という意味か)、文字通りに解釈すべきか(「デイブがルーシーの後ろに立って意地悪なことを言った」という意味か)を判断しなければなりません。人間は容易に意味を認識できますが、コンピューターにとっては困難な問題です。

慣用句は、NLP研究者であるスタンフォード大学の計算言語学者Ivan Sag氏「厄介な問題」と表現したように、人間の言語が持つ「癖」の1つにすぎません。しかし、NLPが私たちの日常生活に役立つ力を持つようになるために克服しなければならなかった障害は、ほかにもあります。

NLPの最初期の研究は、コンピューター時代の黎明期に始まり(最初の電子プログラム内蔵型コンピューターであるManchester Babyが登場したわずか数年後)、本質的に理論的な研究でした。伝説的なコンピューター科学者であり暗号解読者であるアラン・チューリングは、1950年にMIND誌に寄稿した論文で、コンピューターが人間の行動と見分けがつかないような振る舞いをできるかどうかを判断する方法として「模倣ゲーム」を提案しました。

模倣ゲーム(現在では「チューリングテスト」と呼ばれています)には、人間のプレイヤー、コンピューターのプレイヤー、人間の評価者の3者が参加します。評価者は、どちらのプレイヤーがコンピューターであるかを識別しようと、テキストベースのインターフェイスを介してプレイヤーに質問します。評価者が識別できない場合、コンピューターが「合格」した(つまり、「知的な動作を示した」)と判断されます。

チューリングテストは仮説上のテスト(当時の機械が合格することは到底不可能)でしたが、それでも言語の「分離性」を問題として浮き彫りにしたという点で重要な意味を持ちました。社会科学の教授であるHarry Collins氏は、これを「言語の流暢さのテスト」と表現しました。AIをめぐる初期の思索的な研究の中には、チェスや軍事などの実用的なアプリケーションに焦点を当てたものもありましたが、チューリングの研究は人間とコンピューターのやりとりを中心とするものでした。

自然言語処理の進化

1950年代は、コンピューターサイエンスの分野が飛躍的に発展した時代です。純粋に学術的な領域、そして政府が深く関与する領域であったコンピューターの「居場所」が、ビジネスの世界へと次第に移っていきました。1951年に、Remington Randが世界初の商用デジタルコンピューターであるUNIVAC Iを作成すると、IBMをはじめとする他のベンダーもすぐに続きました。

これらの企業は、コンピューティングの商業的必要性を示さねばならず、最も資金力があり、最も影響力がある人々の心を動かす必要がありました。そのような状況下で、IBMはジョージタウン大学と提携し、ロシア語と英語の間で初歩的なフレーズを翻訳するIBM 701コンピューターをプログラミングする世界初の機械翻訳システムを開発しました。 

それまで理論化されていたものの実現していなかった機械翻訳システムでしたが、実際に動作することが初めて示されました。当然のことながら、基盤となるハードウェアの技術的な制限を考えると、これは明らかに初歩的な翻訳システムでした。6種類の文法規則しか理解せず、小さな辞書を搭載しただけでしたが、それでも機能したのです。

IBMの実験は広く知られるようになり、各国の政府は計算言語学、ひいては自然言語処理に多額の投資を投じるようになりました。

それ以降、20世紀末まで、コンピューター科学者はNLPの問題を解決するため、if-then-elseのロジックで簡単に理解できるというルールベースのシステムの産物として言語を扱いました。このアプローチは、「シンボリックNLP」とも呼ばれることともあり、メリットがないわけではありません。結局のところ、人間の言語は本質的にルールに基づくものです。

たとえば、英語では、形容詞は通常、関連する名詞の前に置かれます。フランス語では、通常(常にではありませんが)その逆が当てはまります。「黒い車」というフレーズを例にとると、英語の「the black car」では形容詞(black)が名詞(car)の前に来ます。フランス語の「la voiture noire」では順序が逆転し、形容詞(noire)が名詞(voiture)の後ろに来ます。

しかし、言語(そして自然言語処理)を純粋にルールベースの課題として扱うと、いくつかの問題が発生します。

まず、時間がかかります。すべての対象言語で、無数のルールを人間が手作業で定義する必要があります。しかも、これらのルールは言語によって大きく異なり、常にルールが適用されるとも限りません。英語を含め、ほとんどの言語には何らかの形で不規則性があります。

さらに、人々は常に「標準」(「正しい」の代わりとして言語学者が好む表現)の言語を使用して話したり書いたりするとは限りません。「we were」ではなく「we was」と言う人がいたり、「got to」の代わりに「gotta」のような標準でない短縮形が使用されたりします。言語は根本的に整ったものではなく、ルールベースのアプローチでは、こうしたあらゆる「ばらつき」を捕捉することが難しくなります。

最後に、完全にルールベースのアプローチでは、文や発話の背後にある意味を特定して識別するのに苦労します。言語は、単なる構文や文法ではなく、コミュニケーションのためのツールです。

NLPの統計的手法とニューラル手法

これらの課題に対処するため、計算言語学の分野では、1980年代後半に統計的手法を用いて言語を理解するようになりました。統計的手法は、シンボリック手法と併用できます(実際に、よく併用されています)。

統計的NLPは、言語がどのように構築されているかだけでなく、言語の背後にある意味を理解しようとします。語が識別され、意味の分類法内で配置され、関連性と別の語の隣に表示される確率に関する重みが与えられます。

たとえば、「eat」という動詞には、「lunch」「food」など有限の数の名詞が続く可能性があります。また、「feeling」という言葉には、「fine」「sick」などが続くことがよくあります。したがって、これらの関係を理解することで、人間の言語の背後にある意味を推測できるシステムを構築できます。

近年、これらの統計モデルは、AIや機械学習の進歩だけでなく、大規模でオープンなトレーニングデータセットが利用できるようになったことも影響して、ますます能力を高めています。こうした豊富なデータを利用可能になったことで、自然言語処理の新しい分野であるニューラルNLPが登場しました。

ニューラルNLPは、テキストの処理、解析、理解のためにニューラルネットワークを使用します。ニューラルネットワークは、脳が情報を処理する方法に着想を得てコンピューター化された表現であり、相互接続された人工的な神経細胞(ニューロン)の層で構成されています。

各ネットワークは3つの要素で構成されます。まず、入力層がデータを受け取り、分析のために前処理を行います。その後、このデータは「隠れ層」に移動します。ネットワークには、複数の隠れ層が含まれる場合があり、それぞれがデータを受信して分析し、次の層に渡します。最終的に、出力層がデータ処理の最終結果を返します。

ニューラルネットワークは、語の意味や文脈を推論できることが証明されていますが、効果的に機能するには膨大な量のデータを必要とします。たとえば、ChatGPTを最初に駆動したモデルは、Common Crawl(WebをスクレイピングしてAI/MLアプリケーションで使用できる大規模なデータセットを作成する非営利団体)から、トレーニングデータとして45 GBのコーパスを利用しました。

実生活での自然言語処理

NLPの分野は、1950年代の最初期の実験以来、大きく進歩してきました。学術研究、商業投資、大規模な(そして無料の)データセット、コンピューターの高速化、ニューラルネットワークの大規模化、ニューラルネットワークアーキテクチャの向上といった多様な要因が、この動きを後押ししました。NLPベースのアプリケーションは、あらゆる場所で使用され、しかも非常に強力です。日常生活の以下のような場面で使用されていますが、それが認識されていないことも少なからずあります。

  • ChatGPTのような生成型AIチャットボット:書かれた質問を理解し、それに応じてカスタムのテキストを生成できます。
  • センチメント分析ツール:マーケティングや世論調査で、問題、商品、政治家などについて一般の人々がどのように認識しているかを大規模に把握できます。
  • テキスト補完ツール(携帯電話、GmailやGoogleドキュメントなどのサービスで使用されるものなど):個々の語の意味を理解することで、文に現れるべき次の語や、文の締めくくり方を提案できます。
  • スペルチェックツール:NLPを使用して、スペルは正しくても場違いに思われる可能性のある語を強調表示します。
  • 翻訳サービス:Google翻訳など。
  • 音声アシスタントサービス:AmazonのAlexa、Googleアシスタント、Microsoft Cortana、AppleのSiriなど。
  • スパムおよびフィッシングのフィルタリングツール:メールが本物か悪意があるかを判断するには、その構成を確認することが方法の1つとなります(唯一の方法ではありませんが)。

ChatGPTの成功のおかげで、Snapchat、Grammarly、DuckDuckGo、Discordなど、NLPベースのテクノロジーを製品に組み込む組織が増えています。

NLPの仕組み

現代の統計的NLP手法は、テキスト内の語、それらが出現する頻度、および文の他の部分との関係を調べることにより、テキストから意味と意図を推測しようとします。この情報を使用して、文脈の根本的な意味と目的、または次に起こりそうなフレーズや文について予測できます。

このプロセスの最初の段階では、テキストを計算分析に適した形式に変換するため、以下のような処理が行われます。

  • ステム化:語が最も基本的な形に変換されます。こうした基底語幹は、必ずしも実際の語ではありません。たとえば、「produces」「producing」「produced」のステム化によって、「product」が得られます。
  • 見出し語化:正式なステム化方法であり、辞書と語の形態を使用して語幹を識別します。
  • 文のセグメント化:ここでは、より大きなテキスト本文が意味のあるコンポーネント文に分割されます。近代言語では、文の区切りに句読点(ピリオド、疑問符、感嘆符など)が使用されるので、この処理が容易になります。日本語、アラビア語、中国語などの古い書き言葉の中には、これらの機能を含まないものがあり、研究者にとって課題となっています。
  • ストップワードの削除:ここでは、テキストプリプロセッサーが一般的なストップワード(「a」「the」「an」など)を削除します。こうした語は、テキストに意味を追加しないことが多く、削除することで、NLPモデルのトレーニングにかかる時間を短縮できます。しかし、特にストップワードが意味を伝える可能性があるセンチメント分析タスクにおいては、ストップワードの削除は必ずしも推奨されません。たとえば、「not good」というフレーズでは「not」がストップワードですが、これを削除すると意味が正反対になります。
  • トークン化:テキストがさらにコンポーネントの語と語の断片に分割され、これによって定量化、分類、処理が可能になります。

テキストが変換されると、AI開発者や研究者は、以下のような機械学習アルゴリズムまたはモデルに投入できるようになります。

  • サポートベクターマシン(SVM、サポートベクターネットワーク[SVN]とも呼ばれます):このカテゴリのアルゴリズムは、分類、回帰(要素間の関係の決定)、および外れ値の検出に使用されます。 
  • ベイズ推論:このカテゴリのMLアルゴリズムは、事前の知識または仮定を使用して決定を下します。
  • 隠れマルコフモデル:このタイプのモデルは、コンピューターが文法的な目的を持つ語を識別し、その周りの言語を文脈に使用して、次に何が起こるかを予測できるようにする品詞タグ付けで使用されます。
  • キャッシュ言語モデル:言語中心のタスクで、フレーズや文に語(または語のシーケンス)が出現する確率を識別するために広く使用されています。
  • 人工ニューラルネットワーク:MLにおける顕著なサブセットであり、モデルが脳の動作、特にニューロン間の関係をエミュレートしようと試みます。人工ニューラルネットワークは、人間のオペレーターがタスクを説明または記述しなくとも「学習」できます。最近の強力なNLPモデルはすべて、ニューラルネットワークを活用しています。

上記のリストは網羅的ではありません。AI/MLの急速な発展を考えると、今後も新しいアプローチ、モデル、アルゴリズム、テクノロジーが登場することは不可避であり、研究や開発で新しい問題や困難な問題に取り組み、より高い精度と効率でNLPアプリケーションを構築できるようになっていくと予想されます。

しかもこれらは、AI/ML分野の人々が利用できるさまざまなアプローチと、その多様な運用方法を理解するためだけでなく、注目に値するものです。NLPは新しいものではなく、75年以上にわたって進化してきた概念です。アプローチがこれほど多様化しているのは、年月を経て徐々に改善が加えられ、コンピューターの性能向上により計算コストの大きなタスクを処理できるようになり、さまざまな問題に対してさまざまなソリューションが必要とされていることを受けた結果です。

NLPが重要な理由

コンピューターは常に計算が得意です。この能力が、宇宙船の月面着陸を実現させ、私たちのオンラインでの安全を確保し、ビデオゲームなどの使用を可能にしているのです。しかし、私たちは数字で話しをするのではありません。

人間の言語は整っておらず、複雑ですが、それは私たちにとって自然な状態でもあります。NLPは、本質的には人間と機械の間のギャップを埋める方法です。これにより、コンピューターはより人間的になっていき、ひいてはより便利になっていきます。

この非常に個人的なテクノロジーの世界では、コンピューターが書き言葉と話し言葉の機微を理解し、人間にとって自然な言語で理解できる方法で応答できるようになっていくでしょう。ChatGPTは、そのビジョンを提供しています。

今後数十年でコンピューターの使用方法が大きく変化し、メニューやダイアログボックスが話し言葉や書き言葉との関連性を失う可能性が非常に高いと予想されます。この変化に直面して、たとえ比較的表面的なレベルであっても、こうしたシステムが実際にどのように機能するかを理解することが重要です。

なぜ重要かというと、NLPと、NLPを包含するAI/MLの推進によって、人間とテクノロジーの関係を変えることが約束されているからです。コンピューターはもっと「考える」必要があり、人々はコンピューターの信頼性と正確性を信用する必要があります。そして、信用するために必要な唯一の方法は、情報に基づいて理解することです。