記事
Toshihiko Minamoto · 2021年8月4日 4m read

チャットボットの言語学習にご協力を!

皆さんこんにちは! よろしければ、ボットが対話できるようになるようお手伝いいただけませんか?

チャットボットはこちらからアクセスしてください: Help my chatbots to talk!

なんだ、そのチャットボットはスマートではないのですか?

このシナリオでは「スマート」は適切な言葉ではありません。 チャットボットはトレーニング済みではありますが、少量のデータでしかトレーニングされていません! ほとんどのチャットボットソリューションでは、機械学習を使用して人間と対話する方法が作成されており、機械学習がうまく機能するには、重要なものが 1 つ必要となります。それはデータです。 

どのように動作しますか?

簡単に説明しましょう。脳があっても人生経験のない人がいるとします。生まれたばかりの赤ん坊です。 この状況では、その人(赤ん坊)は、話している人を見たり、授業を受けたり、映画を見たりなどして、話し方を学習しなければなりません。 この人間の学習プロセスを、機械学習モデルにも当てはめることができます。 機械学習モデルが学習できる状況を与える必要があり、その状況がデータということになります。

 つまり、チャットボットは単なる辞書かオウムということになるのでしょうか…

全くもってそうではありません。 このアプローチを採用する上での最初の問題は、チャットボットが受け取る各文に対してどのように答えるのかを誰かが教えなければならない、ということです。 この問題に取り組んで、異なる文をいくつ形成できるのかを予測することもできますが、明らかに、この問題を解決する方法ではありません。 この問題を解くための機械学習テクニックはたくさん存在します。特定のデータ量でモデルをトレーニングした後にトレーニングデータの次のトピックでうまく動作するようにするのです。 このために、プログラムはほかの会話のデータを使用して、パターン、単語、同義語、意味を学習します。そしてこのプロセスが機械学習モデルとなるのです。

このチャットボットは一体何を実行できますか?

この時点では、文の意図を予測し、その予測をもとに回答することしかできません。 ボットをトレーニングした後は、その「意識」に以下のような意図しかないと考えてください。

  • 意図: 「こんにちは」、返答: 「やあ!」
  • 意図: 「さようなら」、返答: 「またね!」
  • 意図: 「話しかけないで。」 、返答: 「わかった。」

そして、人間がボットに「ここまで車できましたか?」という文を送信します。 人間にとっては、この文には意図と何ら関係がないことに注意してください。 しかし、おそらくモデルは「意図に関連する可能性」として低い精度でスコア付けを行い、次のように返答するでしょう。

「ここまで車で来ましたか?」という文に対して、私が見つけた最も意義のある意図です。

  • さようなら: 5% の精度
  • こんにちは: 3% の精度

つまり、この相関関係によれば、おそらくチャットボットは「さようなら!」と返答するように決定することでしょう。 しかし、なぜ返答するのでしょうか。 どのように返答すればよいのかがわからないのであれば、黙っている方がよいのではないでしょうか。 おそらく、浅はかな説明をすれば、ボットは考えられる最善の答えで返答すれば、少なくともあなたに関心がないと思われないのではないかと考えたのでしょう。

ボットをトレーニングすれば、作業はそれで終わりですか?

ほとんどの場合、それで終わりではありません。 ボットがうまく動作し始めたとしても、時間が経つごとに精度が失われてしまう確率が十分にあります。 高齢者と若者の話し方の違いを考えてみればわかるように、言語は生ものであり、話し方は常に変化しています。チャットボットについて言えば、新しいデータでトレーニングしたり、新しいテクニックで予測したりする必要があるのです。 つまり、モデルのパフォーマンスを定期的に監視し、新しいデータを使ってモデルを再トレーニングするのが一般的です。 私が今取り組んでいるのはまさにこれです! Help my chatbots to talk!

この記事が役に立った場合、またはコンテンツを気に入った場合は、投票してください。
このアプリケーションは、Open Exchange コンテストに現在参加中です。こちらから私のアプリケーション「iris-python-suite」に投票してください。

00
2 0 0 28
Log in or sign up to continue