チャットボットの作り方:5つのポイント [前編]

Source

人間同士の対話する様子を注意深く観察すると、そこには、両者が打ち解けるまでのぎこちなさ、コミュニケーションのスタイル、知識の伝達方法、物語の伝え方、信頼の構築など、信じられないほど魅力的な要素が含まれている。

しかし仮に、機械がそんな反応をしたら、どうなるだろう?

対話型インターフェースは、UXデザインの分野で最近にわかに注目を集めている。Googleは新たな仮想アシスタントのチャットボットサービスをリリース予定だと発表している。Facebookは既に、同社のメッセンジャーにチャットボットを組み込むためのMessengerプラットフォームを公開している。さらにMicrosoftも、将来のOSはWindowsではなくCaaP(Conversation as a Platform)として対話のためのプラットフォーム提供の形に変わると主張している。

IT業界の最大手企業がこぞってこのような動きを見せているのは、人工知能(AI)の進歩により、UXの非常に重要な問題を解決できることを各社とも把握しているからだ。つまり、各社ブランドのWebサイトやアプリは、現状では機械的な情報提供しかできないが、これからは人間味のある、きめ細やかな対応が実現できる。


移動中にチャットボットでホテルの宿泊を予約するサービス例

チャットボットの優位性

チャットボットは個々の顧客に合わせた、より純粋なエクスペリエンスを生み出すことができる。それは実店舗での顧客体験に引けを取らないレベルだ。店員がにこやかに迎えてくれて、たわいないおしゃべりをしたり、訳ありげに目くばせをしてくれたりして、その買い物は全部自分だけの特別なものだという満足感が得られる、実店舗での体験に極めて近い。

ブランドにしてみれば、顧客との関係性やエンゲージメントを拡大すると同時にこれを管理し「単なるメーカー」を超える存在になる機会を迎えたということになる。

ただし、本当に人間の役に立ち、かつ魅力的なチャットボットを構築することは、UXの観点からはまだまだ課題が多い。機械学習が飛躍的な進歩を遂げ、それによって人工知能(AI)や自然言語処理(NLP)技術も進化を続けているとはいえ、今のところ作成できるbotのヘルパータイプはまだ限られていて、使えるものを最大限に活用するしかない状況だ。そこで「Chatbots Magazine」誌の創設者であるMatt Schlichtは、チャットボットのエコシステムの現状とデザイナーにとっての将来性をまとめた、非常に包括的なガイドを作成した。


最近私は、チャットボットAltyのプロジェクトに加わった。AltyはFacebookのメッセンジャーボットで、潜在顧客と軽いおしゃべりをした後、その顧客のニーズに合う企業やサービスを紹介し、電子メールでアンケートを送信する。

プロジェクトでの経験は新鮮で、やりがいのあるものだった。このアプリは標準的なGUIとは違って、ユーザーからの入力がほとんどない状況でもシームレスに稼働し、保存された情報をもとに新たな価値を提供し、ユーザーのニーズを予測しなければならない。これまで標準的だったパターンやフローは、会話のデザインにはあまり役立たない。これは言い過ぎだとしても、大幅な再調整が必要だ。そこでここからは、Bot UI KitBotframeを詳しく見ていく。このプラットフォーム上の一般的なフローについて、理解が深まるだろう。Bot UI KitはMockuuupsが提供しているメッセンジャープラットフォーム向けのキットだ。また、Botframeは会話をエミュレートするシンプルなプロトタイプ作成ツールで、Alsadir Monkが開発した。

1. 開発ツールを決める

チャットボットを作る際に、最初に直面する可能性の高い課題は、アプリケーションの見た目をいじる余地のないことだ。タイポグラフィ、レイアウト、スタイリングなどにこだわる必要はない。音声制御のチャットボットを構築する場合、視覚的な要素は全く含まれない。だから今までの標準的なツールはほぼ全てお払い箱にして、有用な新しいツールを入手し、手持ちのツールキットを強化しよう。

我々のプロジェクトでは、最もシンプルなツール、Chatfuelを採用した。無料で使えるFacebookメッセンジャー向けの直感的なボットビルダーで、作り方はドラッグ&ドロップするだけ。プログラミング、コーディングスキルはほとんど要らない。

より高度なbotを構築する予定があるのなら、以下のツールを検討したい:

  • Twine
    非線形の会話や一連のメッセージのテキストを作成する、テキストエディタを備える。同じくプログラミング無しで使える。オープンソース。
  • Wit.ai
    音声やテキストコマンドからアクションを呼び出すbotを開発したい場合には、このツールを使うことになるだろう。コミュニティには便利なコマンドが既に数多く投稿されている上に、カスタムコマンドを追加することもできる。
  • Botkit
    Slack向けのチャットボットを初めて構築するならここ。便利なコマンドや、そのまま流用できるコードが含まれている。
  • Api.ai
    最近Googleに買収された。この堅牢で包括的なプラットフォームは、どんなタイプの会話型UIでも、構築できる。
  • Botwiki
    botで何か困った事があれば、このWikiサイトへ。大抵の疑問は解決する。

この通り、標準的なアプリで使用している標準のコントロールやスタイルは、会話のデザインにはほとんど適用できない。

2. 会話型UIの問題点

会話型UIの場合、アプリの使い方は従来とは全く異なる。ユーザーが新しいアプリを開いた場合、通常はメニュー、ログインまたはアカウント作成用のパネル、ボタンなど、なじみある要素が表示される。これらの要素を使ってアプリと対話する方法は共通のスキーマに基づいていて、ユーザーも皆それを理解している。

一方、チャットボットを初めて見たユーザーは、従来のアプリとのあまりの違いに戸惑うだろう。ユーザーは何も映っていない画面を見つめて、次に何をすればいいのか、どうすればアプリを操作できるのかが思い浮かばず、途方に暮れる。この時ユーザーは、次に示す2つの単純な問題に直面している。

私はどうすればいいのだろう

このアプリは、私に何をしてくれるのだろう

今のところ大半のユーザーにとって、チャットボットは直感的とは言えない。デザイナーがやるべき最初のタスクは、ユーザーが次に何をすればいいのかを示すことだ。まずチャットボットとはどういうものかを簡単に紹介し、操作方法を簡潔に説明するメッセージを表示しよう。以下にその例を示す。


手短に、簡潔な表現でまとめることを心がける

ユーザーがアプリの特長をすぐに理解して、その効果を即座に実感してもらえるように誘導しよう。

Altyのbotでは、会話の途中でボタンを表示することにした。そのデザインに決定した主な理由を以下に挙げる。

  • 外出先など移動中では、いちいち文字入力がし辛いケースが必ず存在する。また、現在のチャットボットは入力ミスを全部汲み取って解釈してくれるとは限らない。(入力ミスへの対処については後述する)
  • ボタンによって、botはどのような質問に答えられるのか、またどのようなアクションを実行できるのかなど、ユーザーにヒントを与えることができる。

3. 会話のフローをデザインする

チャットボットはユーザーにとっての邪魔者ではなく、ウィザードのように使ってほしいと、botを作る人であればそう考えているはずだ。

チャットボットを設計する際は、会話をなるべく自然に、かつ効率よく進めることが最大の課題となる。しかし人間同士の実際の会話は、たびたび脱線するなど非線形なのがむしろ普通だ。そこで、アプリのパフォーマンスを最適化するためのヒントを以下に幾つか紹介する。

3a. さまざまなタイプの質問を区別する方法をbotに教える

botが効率よく処理を実行し、応答が返せる質問の範囲を初期設定する。qTypesというライブラリは優れもので、これを使えば、質問に対する回答のパターンを40種類以上に分類することができる。qTypeはユーザーが期待する応答のタイプを、qSubTypeは以下の通り質問のフォーマットを、それぞれ示している。

qSubType:

  • CH
    選択の質問(例:このシャツの色は赤ですか、それとも緑ですか?)
  • WH
    5Wから始まる質問(誰が、何を、いつ、どこで、なぜ)
  • YN
    答えがYESまたはNOとなる質問(例:あなたは犬を飼っていますか?)
  • TG
    付加疑問文。実際に問があるわけではない。会話の流れを維持するための質問(例:このビーチは美しいですね、そう思いませんか?)

botが上記のような標準的な質問を受信すると、qTypeライブラリに含まれるデータに基づき、より正確な返答を生成・開発することができる。

表現に凝った、詩的な質問などは無視するようにしよう。ユーザーは総じて、何とかbotに応答しようとする傾向があるので対応する必要はない。たとえチャットボットに礼儀正しさを演出させたい場合でも、それは避けるべきだ。


さてこれでbotは質問を理解できるようになった。次の課題は、botが応答する際に、同時に適切なコマンドを実行するよう、アプリに学習させることだ。

つづき [後編]はこちら。