ボット作成に大事な10のポイント

チャットボットは新しい技術だ。

設計、デザインにあたり、どんなものを作るかという議論は慎重に行わなければならない。弊社においても頻繁に議論されており、果たして本当にチャットの優位性やユーザビリティはあるのか?先方に価値を届けられるのか?しっかりと考え抜かなければならないところである。

弊社もいくつかのチャットボットを制作してきて、なんとなくぼんやりと気を付けなければならないところは見えてきていた。と、そんなところでハッキリといくつかのポイントを提示してくれたのが、BAM mobileだ。

同社はイギリスのウェブコンテンツプロバイダーで、モバイルからPCまで多種多様な製品を世に出している。

そんなBAM mobileがつい先日行った"AI & Messaging Meetup"というイベントがあったのだが、そこではより良いチャットボットを作るための10のポイントが話されていたという。以下で、それらを紹介していきたい。

f:id:eiji03aero:20161003202401p:plain

1.publisherとuserの双方に対しての目的をはっきりと定義する

良いボットを作るための第一歩は、そのボットがそのpublisher(所有者)とuser(利用者)に対してどのような価値を提供するのかまずはっきりさせることである。

publisherの目的は例えば、

・売り上げの向上

・カスタマーサポートの改善

・CRM(customer relationship management) channelの創出

など。

対してuserの方は、

・購買や娯楽における全く新しい体験

・より簡単で便利な情報へのアクセス

などなど。

この双方をまず最初に定義し、一体何のためのボットなのかを制作に携わる者でしっかりすり合わせなければならない。

2.ボットが踏み込む領域の策定

目的が決まったら、あなたのボットがどんなトピックを話すことができるのかを決める。どんな領域の知識を、どれくらいの深さで知っているべきなのか。

例えば、宿泊するための部屋を予約するようなボットである場合、まずいろいろな物件の料金や住所などは知っていて当然だろう。そこに、様々な情報をどこまで付け加えていくかは開発者次第だ。想定した範囲のみをユーザーに届けて終わるのか、はたまたボットの外側まで人が手助けするのか。

3.RailsかNLPか?

ボットの行動様式として、2つの形式があると言われている。

1つ目の、PG言語と間違えそうなRailsと呼ばれる方は、ある程度形式ばった機能を持ち、シンプルで導入しやすい。例えば、このキーワードが発言に入っていれば、だったり、そもそもゲームのようにボタンで発言を固定してしまったりなど。

特性として、ユーザーにある程度そのボットとの対話で進むべき方向性を示してあげることができるという点が挙げられる。

NLP(Natural Language Processing)のほうは、より自然な対話を可能とする手法で、日本語では自然言語処理と呼ばれているものだ。形態素解析をするなどしてより高精度にユーザーの発言を分析、理解することが可能なため、Railsと違ってある程度不足の事態にも対応できる。

チャットボットを制作する時、この2つどちらかに偏っては本当に質の高いボットを作り出すことはできない。

そのボットと対話されるそれぞれのシチュエーションでユーザーとしてどう使いたがるものなのか、考え抜いてどちらかを選択しなければならない。

4.3大要素である、シナリオツリー、キーワードレスポンス、データベースの確認

チャットボット制作の3つの柱となるのがこれらだ。

・シナリオツリー・・・どのような会話の流れをユーザーがたどるのか、ざっくりと流れを描き表したもの。

・キーワードレスポンス・・・そのボットのトピックの中でいくつかの重要な単語があるかと思う。それらの要素に対してどのような返答をするのか。それはボットの中核とも言えるものだ。非常に大事。

・データベース・・・ボットは基本的にいろんな情報を持っていて、そこから最適なものを選び取ってユーザーに届けるわけだが、多種多様なデータベースを持つこと、そして適切なデータを届けるためのロジックだったりアルゴリズムも最適化されている必要がある。

この3大要素をしっかり頭に入れておかなければならない。

f:id:eiji03aero:20161003213039p:plain 

5.より詳細なシナリオツリーの作成

おおまかに作ったシナリオツリーを今度は会話レベルで想定し、mind mapping toolなどを使って詳細まで作りこんでみる。

これは弊社でも非常に苦労した分野だ。時間配分は、設計に80%、実際の制作作業10%、確認作業10%といった具合でもいいのではないかというほど、当初設計に時間をかけたほうがいいと考えている。

6.対応するキーワードやフレーズ、それに対する発言のリスト化

どのキーワードがそのボットで核となるのか設定したら、それらに対するボットの返答を作成、リスト化してしまうべきだ。

エクセルファイルなどで一括でそういった問答集を管理し、そこだけ確認すれば一目で修正すべき箇所がわかるという状態を常に保つほうが良い。 

7.扱うデータベースの管理

データベースはチャットボットの力の源泉と言っていいほど重要だが、そのデータベースはひとつとは限らない。どのような種類が必要で、それらはどう連携するのか。把握しておかねばならない。

8.ボットを認知してもらう戦略

人々に認知してもらわなければ、ユーザー獲得など夢のまた夢だ。また、ボットを通じて伝えたいことを効果的にユーザーに届けなければならないというミッションもある。商品の広告などだ。

さらに、ボットユーザーへのアプローチは規制がつきものだ。例えば、Facebook Messengerでは最後の対話から24時間以内までしかアプローチしてはいけないという制約がある。こういったルールはプラットフォームで異なるため個々に理解しておかなければならない。

9.実際に世に出してテストしてみる

どんなに作りこんだ成果物とて、世に出してみるまではどうなるかわからない。

エラーを確認し、ユーザーのさらなるニーズを発見し、新たな施策を思いつき、きっと想定されていなかった事が出てくるだろう。そしてそれら一つ一つにあなたは対応していかなければならない。

f:id:eiji03aero:20161003223054p:plain

10.さあローンチだ!

これまでの9つの要素を満たしたなら、きっと世に価値を提供できるボットになっているはず。あとはボットがユーザーの皆さんを楽しませたり、助けたりしてくれることを祈るだけだ。グッドラック!