こんにちは。初めましての人もそうでない人も、
今日は掲題の「チャットボットの教科書」を読破したので、簡単な内容紹介と、自身の"あまやどり"にどのように活用できそうか、というところをお話しようと思います。
目次
"あまやどり"で目指しているチャットボット開発
そもそも"あまやどり"って?
ブログのタイトルでもある"あまやどり"ですが、
誰かにとっての辛いことをしのげる場所
="あまやどり"
という意味を込めて使っています。
自分自身が辛かった時期、中学の頃だったのですが、部活に行ったり友達と喋ることでゆっくりとその時期を乗り越えることができました。
その頃の思いを原点に、同じように辛かったり困難な状況にある人の役に立つような場所づくりをしたい、というのが夢の出発点でした。
今は人よりも少しだけ得意だったプログラミングのスキルを活かして、誰かの役に立つシステムを開発するところから始められたらいいのかなぁ、と思ってます。
じゃあ具体的にどんなシステムをつくりたいの?
という話ですが。
自然言語の処理を応用して、生活相談をサポートするチャットボットをつくれたらなぁ、ということを考えています。
詳細はこちらの記事をご覧ください。
チャットボット開発で実現したい機能
実現したい機能としては大きく以下の2つです。
ヒアリング機能
適切な相槌や質問を行うことで、相談者の置かれた状況や取り組むべき課題について明確にしていく機能です。
解決策のわかりやすい提示
有効な社会保障制度の利用方法や相談可能な他の専門団体の連絡先などをわかりやすく提示する機能です。
開発にあたってのネック
現在開発にあたって、一番ネックとなっているのが
ヒアリング機能をどのように実現させるか
ということです。
そもそものヒアリングの会話の流れというのはどんなものなのか、
学習ロジックはどのように組み立てればいいのか、
そういったことが見えておらず、実現の目途が立っていない状態です。
「チャットボットの教科書」内容紹介
実際に企業でチャットボット開発に取り組もうと思った場合に、「チャットボットの教科書」の中でどの辺の記載内容が役立ちそうか、ということをお話しようと思います。
補足として、私自身は育休に入る前にやっていた仕事で、Amazonのレビュー内容を解析する、ということを検討していました。その関連で、チャットボット導入もしたいんだけどねー、という話もしていたり。
なので視点としては、チャットボット導入したいんだけどどこから手をつけようかなー、と迷ってるくらいのレベルの人だと思ってください。
内容の構成
目次(※)だと9章構成になっていますが、もっと大まかに分けると、大きく三部構成だと言えます。
※目次についてはリンク先("チャットボットの教科書")を参照してください。
第1章~3章までは、チャットボットの開発を行うにあたっての基本的な前提知識です。
そもそもチャットボットとは何かから始まり、どんなシステム構成になるのか、そして開発にあたってどんな手段があるのか、という話です。(①)
第4章~7章は、実際にBotpressというツールを使ってのごく簡単なチャットボットの開発レクチャーです。(②)
第8章と第9章は、実際に企業などでチャットボット開発を行い運営していく場合にどのようなことを考えなければならないか、という補足のお話です。(③)
チャットボット開発にあたって役立つ箇所
上記の三部構成の内、①と③については、どんなチャットボット開発をするにしても、役立つ内容でした。
いくつか開発において役立つと思える箇所をピックアップして紹介いたします。
チャットボットの特色を決める対話管理(DM)
①で説明されている「チャットボットシステムを構成するレイヤー」の説明は、チャットボット開発をする上で非常に重要な内容でした。
レイヤーとは、フロントエンド、対話サーバー、バックエンド、この3層構造で説明されています。
チャットボットとしてのコアな機能は対話サーバーになるわけですが、対話サーバーの中身も、言語理解(NLU)、対話管理(DM)、言語生成(NLG)の3つの構成になります。
3つそれぞれ重要なのですが、チャットボットシステムの特色によって大きく設計が変わってくるのが、対話管理(DM)になるでしょう。
対話管理(DM)内でシステム側の応答を決める方式として、以下の4つが紹介されていました。
- 状態遷移ベース:あらかじめ決められた話の流れを強制
- フレームベース:必要な情報を答えさせる話に誘導
- ルールベース:あらかじめ決められたルールに従って一問一答
- 用例ベース:回答例文集から似てる会話を見つけて一問一答
実際にはこの中の一つ、あるいは複数を組み合わせます。
チャットボットの用途によって、どの方式を採用するか決め、会話のシナリオを用意する必要があります。
自分で開発したい人のためのFWや部品の紹介
「チャットボットの教科書」では"Botpress"というツールをメインに説明を行っていますが、"Botpress"以外にもどのようなツールなどが使えるか、2021年1月時点の情報を元にいくつか代表的なものを紹介しています。
どのような開発プラットフォームを利用するのか、プラットフォームの中でもどれを利用すればよいのか、それぞれの特色や選定におけるポイントが記載されており、非常に参考になりました。
セキュリティ対策とシステム保守
③の部分で、チャットボットの運営を考えた場合の補足があるわけですが、中でも企業として関心が高いであろうセキュリティ対策とシステム保守については、さわりの基本的な考え方と、Botpressでどのように設定可能か、ということを説明しています。
まあ一般ユーザーに公開しているシステム開発をやっている企業であれば、詳細は押さえているでしょうから、必要最低限の部分だけ、という感じですね。 本気でこれらについて書こうと思ったら、それぞれの項目について1冊ずつ本できちゃいますしね。
ただシステム開発担当にとっては不足でも、チャットボットの導入を検討している企業で、担当以外の人たちが担当と話す前の前提知識としてポイントを軽く押さえるにはちょうどいいレベルです。(システム担当の上にあたる人たちは、実際に開発・運営がはじまったらこんなレベルじゃなくてもっと具体的なレベルで理解している必要があるかとは思います。)
学習ロジックを作りこみたい場合には不足
「チャットボットの教科書」ではBotpressを用いてチャットボットの基本を押さえて手軽に開発できることを目指しているので、機械学習については殆ど触れていません。
Botpressに標準の学習ですと、こうした発話に対してはこんなアクションして、ということを登録できます。この"こうした発話"について、最低3件のセリフパターンを登録することで、学習がされるわけです。
もちろん3件では精度が低いので、ある程度の精度のためには最低10件必要とのことです。
……10件、それでも一般的に機械学習で必要とされる件数からすると、かなり少ないですね。
こうした点は、手軽にチャットボットを開発できる、という意味では非常にBotpress便利だなぁ、と思います。
ただ一方で、この学習方法ですと、そもそも明確なシナリオに沿った会話を想定しているチャットボットでないと実現できません。
自分がやりたいヒアリング機能は、この学習方法だと単純には実現できなさそうだな、という感想でした。
読み終えて
今後の"あまやどり"開発方向性
一つの選択肢としてBotpressはどうなのだろう……ということで「チャットボットの教科書」を読み始めたのですが、想像以上に収穫がありました。
収穫の一つが、まずはヒアリングの会話を1例でもいいから分析しないと、どういったツールを使うかも検討できないな、と気づいたことです。
ヒアリング機能を実現させようと思った場合、内容紹介で話した対話管理(DM)におけるシステム応答の方式として、"状態遷移ベース"が一番適切かな、と思ったのですが、ではどのような状態遷移をするのか漠然としているな、というのが正直な感想でした。
ちょうど先日、web公開されているとあるガイドラインから会話事例を入手できたので、それを元に一度会話の流れを分析してみようと思います。
※書籍の購入はよろしければ下記のリンクからどうぞ。
|
※上記のリンクはアフィリエイト広告です。
-----------------------------------
素材取得元
- トップイメージ:Amazonアソシエイトで生成した画像リンクです。