AIが会話できるのはなぜか?AIの質問応答の仕組みと学習方法を非エンジニア向けにわかりやすく解説

最終更新日:2017年12月07日

開発 西田
最近色々なメディアで話題になっているAI(人工知能)ですが、
皆さん、AIってどうやって学習して賢くなるって知ってますか~?

『様々なデータをとりあえず放り込んだら、人工知能が勝手に考えて、物凄いアウトプットを出すんじゃないの?』と考えている人も多いですが、さすがにそれほど賢くはないんです~。
今回は、AIが質問に対してどうやって回答するのか、そしてどのようにして学習していくのかをわかりやすく説明していきますね~

筋肉 松岡
西田さん、お願いします!!
僕も含めて、『賢くなる』ところのロジックを知らない人がほとんどだと思うので、エンジニアの言葉をマッチョでもわかるように解説お願いします!

AIが質問に回答する仕組み

まずAIは自分で考えて、言葉を生み出すことはできません。

AIが人の質問に答えるには、あらかじめ『FAQ』や『QA』と呼ばれる、「こう聞かれたらこう返す」質問と回答のセットをデータベースに登録しておいて、
新たに質問が来たときにはそのデータベースに照らし合わせながら、最も近い質問の回答を提示してくれるのです。

AIが回答を導き出す手順

例えば、『PCの操作方法に関する質問に回答するBot』があるとすると、AIが回答する手順は下記のとおりです。

  1. 想定されるQAを(人が)データベースに登録しておきます。
  2. Q1:エクセルでセルの書式までコピーされてしまう。
    A1:値の貼り付けで…

    Q2:ネットにつながらないのですが、どうすればいいですか?
    A2:ネットワーク設定を開き…
    Etc…

  3. AIが聞かれた質問を読み取り、データベースの質問文の中から一番一致度が高い質問文を選ぶ
  4. その質問文と紐付いた回答を送る

という流れになっています。

実際にAIを使うには、まずこのQAのセットを整備する必要があります。
特に、同じAを異なる言い回しで使っているときは、全てを1つに統一してあげる必要があるので、地道な整備作業が必要です。

AIが賢くなるために必要な条件

この仕組みで考えると、AIが賢くなるには2つの条件が必要です。

  1. 今までのデータベースにない質問が来た場合は、(人が)追加をすること
  2. 新しい回答をする質問が来た場合には、人がデータベースに追加してあげる必要があります。

  3. AIの回答が合っていたかどうか、評価されること
  4. 回答(=同じ質問文だと認識した結果)が合っていたかどうか、評価が与えられないとAIは賢くなりません。
    ユーザーであれオペレーターであれ、正誤の評価を与える必要があります。

AIが学習する仕組み

先程の条件が満たされる前提で、いよいよAIがどうやって学習するかを説明していきましょう。
データベースに下記のQAが登録されているとします。

Q:PCの電源が突然切れる場合の対処法
A:落ちる原因がハードにある場合とソフトにある場合で対処法が異なります…

ユーザーはQ&Aに登録されている通り「PCの電源が突然切れる場合の対処法」と質問してくれるわけではありませんよね。

例えば、

Q1:Windows XPで、利用中に突然電源が消える
Q2:Excelを使っていたら、パソコンの電源が突然落ちた
Q3:デスクトップの画面が急に暗くなったので対処法を教えてください
Q4:ノートパソコンの電源がいきなり切れる
Q5:PCを起動しようとしたら強制終了されます

といったように、同じ回答を求めていても質問の仕方は多様です。
では、AIはどのようにして多様な質問から同一の回答を導き出しているのでしょうか?

『キーワード』による内容の判断

AIはまずこれらの質問文を全て、『キーワード』に分解します。

Q1:Windows XPで、利用中突然電源消える
→Windows XP 利用中 突然 電源 消える
Q2:Excel使っていたら、パソコン電源突然落ちた
→Excel 使って パソコン 電源 突然 落ちた
Q3:デスクトップ画面急に暗くなったので対処教えてください
→デスクトップ 画面 急に 暗く 対処 法 教えて
Q4:ノートパソコン電源いきなり切れる
→ノートパソコン 電源 いきなり 切れる
Q5:PC起動しようとしたら強制終了されます
→PC 起動 しよう 強制 終了

そして、この分解されたキーワードを使って、次の2つのことをしてくれます。

1,重要なキーワードのピックアップ

質問文の単語の中で、登場頻度の低いワードを外していき、頻度の高いワードを重要な「キーワード」として認識していくのです。
例えば、
高頻度:PC,消える,落ちた←重要
低頻度:Excel,windows,対処←重要でない

2,類義語の認識

重要なキーワードの中で同じ意味で使われる言葉を類義語として認識します。

  • PC,デスクトップ,パソコン
  • 消える,落ちる,強制終了,切れる
  • をそれぞれ類義語として認識してくれることで、今まで

  • PC,消える
  • デスクトップ,落ちる
  • パソコン,強制終了
  • という組み合わせのインプットしかなくても、

  • PC,落ちる
  • デスクトップ,強制終了
  • パソコン,消える
  • の組み合わせも同じ意味の質問として認識できるようになります。

AIが学習する仕組みを簡単な数学で表現

上記の学習ロジックを簡単なグラフで表現すると、より理解しやすいと思います。

AIは1つ1つの質問文を、横軸に「蓄積された各キーワード」を、縦軸に「各キーワードの出現頻度」をとった、確率分布のグラフで認識しています。
データが少ない時はなだらかな特徴のないグラフをしていますが、データの蓄積が進むと単語の出現頻度に明確な差が出てくるので、グラフはよりはっきりとした特徴を示すようになります。
【Before】

【After】

新しい質問文がインプットされた時、蓄積されているFAQの波形で一番近い質問文を同じだと認識して、回答しています。
そして正誤判断が与えられると、新しい質問文も既存のFAQの波形に取り込まれ学習が働くのです。

筋肉 松岡
へぇ~、こうやってAIって賢くなっていくんですね。
そうすると使えば使うほど正答率が上がっていくので、最強じゃないですか!!
開発 西田
まぁ、理論上はねぇ~
とはいえ、AIも完璧ではなくて結構弱点があるんだよ~
AIの弱点を説明していくよ。
グラフでは単語数が10語程度ですが、実際には数万語を超えるオーダーになります。それらのオーダーで特徴を出すには、1つのFAQにつき100パターン以上のデータは最低限必要になります。

AIの学習機能・精度向上の問題点

一見完璧に思えるAIの学習ですが、実は3つの大きな弱点を抱えています。

相当数のデータの蓄積がないと精度の高い回答ができない

AI稼働直後でデータ数が少ない場合は確率分布のグラフに特徴が現れません。
グラフではかなり簡略化していますが、横軸のキーワード数は数万後になることもあるので、1つの回答当たり質問文のインプット数は500個程度は必要です。
それを生成し、正しい回答と紐付けること。
そして、それが溜まるまで数ヶ月間精度の低いAIを使い続けること。
が、現実的に大きな壁になります。

キーワードの切り分けが正確でない

「形態素解析ツール」を使ってテキストを単語に分解していくのですが、例えば「水素水」というキーワードを「水素 水」「水 素水」と分けてしまったり、意図したとおりに分解されないことも多々あります。
会社に合わせて、用語を登録していく作業もかなり大変です。

クラスタリングのミスがある

機械的に似ている波形を類義語として認識するので、間違った分類も多々発生します。
意味の違う単語を類義語と判定してしまうと、意図していないQAを呼び出し、回答してしまい、回答精度の向上に繋がりません。

筋肉 松岡
なるほど・・・
ただ、問い合わせが相当多い企業を除いて、1つの回答に数百パターンの質問が来ることもあまりないと思うし、企業側で色々なパターンのQAを作成するのも莫大な労力がかかってくるので現実的でないし。
どうにかならないんですか?
開発 西田
とはいっても、これが世間一般のAIの現実なんだよ~
あと、興奮してダンベル持ち上げるのやめてくれよ~
筋肉 松岡
しまった、ついクセが!(ドスン)
でも、そうするとAI全然使えないじゃないですか!!
開発 西田
だから、世間一般の話だって~
僕一応スイスでずっとAI研究してたからね。
特許だって持ってるんだよ?
ちょっと変わったアプローチでこれらの問題を解決してるんだよ~
筋肉 松岡
ええっ!?一体どんなアプローチなんですか!?
開発 西田
知りたいかい?その理由はね――次回の記事にこうご期待!
筋肉 松岡
そ、そんなあ~~!?!?

To be continued…

『AI FAQ Supporter』

サイシードが提供する人工知能は、従来のマニュアル検索ツールをどう変えたのか?
高速・高精度のFAQ検索を実現できる理由をpdfで公開しております。

ABOUTこの記事をかいた人

西田 圭嗣

東北大学を飛び級卒業し、スイス連邦工科大学ローザンヌ校修士課程修了。人工知能、自然言語処理を専門とし、AI関連サービス全体のエンジニアリングを統括。
今年30歳を迎え健康診断で引っかかるようになったので、毎朝のフルグラと週1の血圧測定は欠かせない。