ChatGPTまでの自然言語処理の歴史

 2023.07.18  2024.04.05

ChatGPTの流行に伴い、文章を生成できる対話型AIが大きく着目されています。これを理解する上で、「対話型AIがどのように進化して現在に至ったのか」という歴史の知識があるとより楽しめます。本記事ではコンピューターと人間の対話の歴史を、実際に作られたプロダクトをたどって記述します。

ChatGPTまでの自然言語処理の歴史

コンタクトセンターにおける生成AIチャットボットの活用効果とは?

初期の自然言語処理

ChatGPTの機能を端的に表現すると「人間が考えていることを命令してコンピューターに処理をさせる」というものです。この「コンピューターと会話して命令したい」というのは、SF作品を見るまでもなく、かなり古くからある願望です。

実はプログラミングでも本質的には同じような話をやっています。現代アプリケーションの開発で使われているほとんどのプログラミング言語は英語がベースであり、やっていることは「コンピューターと会話をする」そのものです。

ChatGPTまでの自然言語処理の歴史t-01

例えば上記のPythonのコードでは、以下のようにコンピューターと対話をしています。

ブログ画像2_ChatGPTまでの自然言語処理の歴史

この例では、コンピューターの内部では以下の順序で処理しています。

  1. 人間の命令を受信
  2. 機械がわかる命令に変換
  3. 実行
  4. 実行結果を表示

私たちが使っている多くのシステムは、このようにエンジニアと機械がいわば「会話」をすることで作られています。ただ、プログラミング言語には不十分な点があります。それは、「プログラミング言語を扱うために、多かれ少なかれ独自の文法や概念を覚え、機械に伝わる書き方を覚えなければならない」ということです。つまり、話し言葉をそのまま理解することは不可能です。

「人間の話し言葉を理解する」ということが何とか実現できないかについては、コンピューターの普及当初から考えられてきています。それが「自然言語処理」となります。プログラミング言語側でも昔から「人間の言語に近づける」といったアプローチが行われてきており、最近の例では教育用に使われるScratchなども挙げられますが、今回の記事では割愛します。

初期の自然言語処理で特筆すべきものはMITが作った「ELIZA」という名前のチャットボットです。

これは、パターンマッチで「相手の質問がパターンにマッチしていたらあらかじめ定義された返答を返す」という動作をしています。これは今に至るまでどこででも使われる普遍的なものです。日本では「人工無能」とも呼ばれていたりもします。

ELIZAの応答セットのうち、精神科医としてふるまうものが当時大きく注目を浴びました。精神科医は「相手の話を傾聴する」というのが大きな仕事の一つです。これをチャットボットに落とし込むと、「相手の言うことを否定せずに受け止める」という動作となります。入力が想定の範囲内である限りにおいては一般的な回答が返却できるため、「画面の向こうに人がいない」ということを信じられない人が続出しました。驚くべきことに、このチャットボットの定義ファイルはわずか20KB足らずの大きさで、この記事のテキストの容量と大差がありません。

natural-language-processing-to-chatgpt-04

※画像はELIZAの応答を定義したファイル(JavaScript移植版) : https://www.masswerk.at/elizabot/

日本でもパターンマッチによるチャットボットは開発されていたようです。執筆にあたり私が調べた範囲では情報が残っていませんでしたが、1990年代にワープロソフトのマクロのおまけでチャットボットがついていたのを記憶しています。こちらもいわゆる人工無能、つまりパターンマッチによるチャットボットで、「不明な単語を自己学習し、ユーザーからのフィードバックで辞書を拡張する」という機能がついており、非常に興味深いものでした。

比較的最近の話としては、2011年に始まった「東ロボくん」というプロジェクトがあり、産官学連携で「ロボットは東大に合格できるのか」という課題に立ち向かっていました。このプロジェクトは残念ながら止まってしまいましたが、2015年ごろに「センター試験である程度得点ができる」という進展が発表されたことを機に、「人間の仕事は要らなくなるのか」「人間の優位性はどこにあるのか」という議論がインターネット上では行われていました。今ChatGPTの普及に伴い行われている議論と同質のものです。また、この研究では「文章が読めている」とはどういうことかが研究されており、派生してリーディングスキルテストという読解力を測定するテストが開発され、こちらも非常に面白いです。

少し時代が近くなりますが、2000年ごろに開発された「A.L.I.C.E. (Artificial Linguistic Internet Computer Entity)」というチャットボットも特筆すべきものです。これはAIMLという、XMLを拡張した記法でチャットボットの定義を記載したものです。この記法では会話の履歴を保持する方法が工夫されており、つまり会話の連続性が考慮されています。

VOC分析ソリューション「Vextシリーズ」ご紹介資料
ChatGPTをコールセンター業務で活用するためのサンプルプロンプト集

Word2vecと日本語の処理

Word2vecは2013年にGoogleの研究者によって開発された手法です。

平易に説明すると、これは「文章内での単語同士の距離で関連性の強さが決定される」という仮説に基づくものです。これを表現するために単語を多次元で数値化しています。結果、意味合いの類似性の演算ができるようになりました。自然言語処理で「ベクタライズ」や「埋め込み処理」と呼ばれているものは、この処理自体か類型のものです。反語や否定形など、距離と意味合いが必ずしも近づかないものもありますが、結果的にこの仕組みは非常にうまく動作しています。自然言語処理の性能も上がり、革新的なものとなりました。

Word2vecを使用するにあたり、「コンピューターが日本語で書かれた文章を解釈するのは非常に難しい」という問題が発生します。日本語は文節の区切りを行うのが困難な言語です。これは英語と対比をすると理解がしやすい話です。英語は空白が単語間に入るため判別が容易です。一方、日本語には空白がないため、あらかじめ文節を分けないとWord2vecのような処理ができません。このあらかじめ行う処理を「形態素解析」と呼びます。「形態素」とは「単語」よりさらにかみ砕いた、意味を持つ最小単位です。

オープンソースのものだとMeCabという素晴らしいソフトウェアがあります。

natural-language-processing-to-chatgpt-03

引用元: https://taku910.github.io/mecab/#wakati

Mecabを使うことで、このように形態素をうまく分けてくれます。

ただ、形態素解析をどんなにきれいに作ったとしても、「人間の話し方が標準化されていない」という問題があります。方言や話し言葉で入力された場合、簡単には形態素を区切れなくなります。また、年齢や性差でも言い回しが変わることがあり、それを吸収しようとすると処理を手厚く行う必要が出てきます。音声認識を絡めるとさらに難易度が上がりますが、本題からそれるので本記事では割愛します。

形態素解析については、「新しい言葉をどう覚えさせるか」という問題もあります。もちろん、形態素解析でもある程度知らない言葉を吸収できるような仕組みができています。しかしながら、一般的な文法から逸脱したり、本来の文法と異なるものだったりすると精度があまり出ません。

例を挙げます。
ありえん良さみが深い
この、数年前にSNSで流行った言い回しを、https://chamame.ninjal.ac.jp/を使ってMecabで解析してみます。

natural-language-processing-to-chatgpt-05

「良さみ」については不自然な日本語ながらうまく形態素解析をかけられています。一方で「ありえん」という「ありえない」が崩れた形に加えて文頭で使うのが不自然な日本語については冒頭部がフィラー(雑音混入)と誤判断され、うまく判定できていません。

TransformerとChatGPT

2017年に「Attention Is All You Need」(https://arxiv.org/abs/1706.03762)という論文が公開されました。こちらをごく簡単に説明すると「文章のどこが重要か」に着目して機械学習をしようという話です。人間も会話の中で自然と「重要なところ」というのを判断し、そこに注意を向けて話しています。それと同じ話です。具体的なやり方はいろいろあるのですが、学習の際に「会話の特徴」というのを抽出するという工程を挟んで処理をしています。

この論文をもとに同年にGoogleが実装したのがTransformerというModelです。Transformerによって自然言語処理の性能が飛躍的に向上しました。Transformerというのは以降の対話型AIに大きな影響を与えています。ChatGPTの「T」も「Transformer」を意味しています。このモデルは人間に近いテキスト生成の性能を出して、革新的なものとなりました。また、着目部分を絞ることで計算量が減り、コストが大幅に改善しました。

関連してもう一つ取り上げたい機械学習の手法があります。Googleが出した「BERT」で、最後のTは「Transformer」を意味しています。これは主に「文字列をマスクした状態で学習をする(MLM)」「発話と回答の双方向に対してTransformerの考え方で学習する」という手法を使ったものです。学習させる文章自体によるバイアスを減らすことができ、精度が上がります。BERTによって生成されたモデルは検索などに使う文脈を推定するためのものであり、ChatGPTのようなテキストを生成する対話型AIとは役割が異なりますが、自然言語処理の性能が上がるブレイクスルーになったため付記をします。

この後2018年にGPTモデルが公開されました。このモデルは今まで書いてきた歴史をたどり、教師なし学習と人力によるチューニングを経て、2022年末ごろから性能に着目され、記事執筆現在対話型AIのブームがきています。もともとGPTはオープンソースで開発されていましたが、GPT-3以降で内部が非公開になっています。よって、現在どのアルゴリズムが動いているかは不明です。ただし、過去に公開されていた部分については私が本記事で書いてきたような仕組みが使われています。

他にも対話型AIでは、「生成された文章に安全性を確保する」「速度を上げる」「使われる計算資源を減らす」といったところで様々な先人が築いた仕組みとたくさんの労力が使われており、私たちの便利さが支えられています。一方で、「AIの知ったかぶり」などといわれるハルシネーションの制御は非常に厳しいものとなっており、本記事の執筆時点では「技術の特性上ある程度仕方がない」という状態になっています。こちらについては今後の技術の進歩が待たれます。

まとめ

本記事では、ChatGPTをはじめとする対話型AIがどのような歴史をたどって現在私たちの目の前にいるのかについてまとめました。今後、さらなる技術の進歩で私たちの仕事がもっと変化するでしょう。不安な点もありますが、楽しみにしています。コールセンターでの業務がどう変わるのかについては、今後記事にしていきます。

執筆者紹介

本部 景一
本部 景一
新卒で通信業界の企業に入社し、社内インフラ整備からアプリケーション開発まで幅広い開発業務に参画。その後PMとして教育業界向けWebフィルタリングサービスの立ち上げを担当した。2023年にベルシステム24入社後は言語生成AIの実証実験などを担当している。高速な開発サイクルを実現できる小規模チームや社内環境の構築を得意としている。情報処理安全確保支援士(第22000号)
New call-to-action

RECENT POST「プロフェッショナル」の最新記事


プロフェッショナル

ChatGPTの問題点とは? 解決方法や今後の展望を解説

プロフェッショナル

ChatGPTは使える?ChatGPTの可能性と活用方法

プロフェッショナル

ボイスボットとは? AIに電話対応を任せるメリットや注意点、活用事例を解説

プロフェッショナル

感情解析とは?コンタクトセンターで活用するメリットを紹介

ChatGPTまでの自然言語処理の歴史
BellCloud+ご紹介資料
New call-to-action

RECENT POST 最新記事

ブログ無料購読のご案内

RANKING人気記事ランキング

AUTHOR執筆者

OFFICIAL SUPPORTER