チャットボットは何故自然な文章を生成できるのか

この記事を書いたチーム:frontier

チャットボットとは

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

 企業などの問い合わせフォームなどで、問い合わせ内容をチャットに打ち込むと機械が自動で返信してくれるといったサイトやページを見かけたことはあるでしょうか。そのような「ユーザ」と「AI(Bot)」が会話するプログラムのことをチャットボットと呼びます。
 チャットボットの返信した文は機械が作成したとは思えないほどに自然な文章であることが多いですが、なぜそのような文章を生成できるのでしょうか。 

マルコフ連鎖

 その謎の答えは「マルコフ連鎖」というものにあります。多くのデータを機械学習することで、AIは質問に対する回答を導き出しますが、どのようなデータを渡すことで自然な文章を生成するのでしょうか。

例えば、以下のようなデータを学習させるとしましょう。

1 ファイルをダウンロードしてください。
2 プログラムはアンインストールしてください。
3 ファイルは実行しないでください。

 

これを単語ごとに分解してみます。

1 ファイル を ダウンロード して ください。
2 プログラム は アンインストール して ください。
3 ファイル は 実行 しないで ください。

 

 その後、このようなかたちで何の単語の後にどの単語が来る可能性があるのかを調べます。上の3つの文章を学習させた結果、「プログラムは実行しないでください。」や「ファイルはアンインストールしてください。」といった、学習していない文章も自然なかたちで作り出すことができました。

まとめ

今回はチャットボットに使用されるマルコフ連鎖の仕組みについて、ざっくばらんに説明させていただきました。最近のチャットボットはAPIを利用したものなども多くみられるため、根本的な仕組みまで理解する必要は必ずしもなくなったものの、チャットボットを自作したい方はこちらの仕組みを調べてみるとより精度の高いものに仕上がるかもしれません。

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス