このセクションでは、Kore.ai Botプラットフォームに関連する主要な用語や概念について説明しています。
Bot
Botとは、人やデジタルシステム、インターネット対応のものとの間でインテリジェントな仲介役を務めるバーチャルアシスタントの一つの形態を指します。Botは、機械学習、自然言語処理、およびその他の形態の高度なソフトウェアを備えたインテリジェントなものであり、人間による複雑な会話を処理したり、過去のやり取りから学習したり、時間の経過とともに応答を改善したりすることができます。
発話
ユーザーがチャットBotに言ったことはすべて発話となります。例えば、ユーザーが次の日曜日のオーランド行きのフライトを予約してくださいと入力した場合、その文全体がユーザーの発話とみなされます。
インテント
ユーザーがチャットBotにしてほしいことについて説明している、発話中のいくつかの重要な単語のことを指します。通常は動詞と名詞の組み合わせです。例えば、上記のユーザーの次の日曜日のオーランド行きのフライトを予約してくださいという発話では、インテントはフライトを予約するになります。
エンティティ
ユーザーのインテントを満たすために、Botはその他の情報やパラメータを必要とすることがあります。例えば、フライトを予約するためには、出発地と目的地の都市や旅行日が必要になります。上記の例では、ユーザーの次の日曜日のオーランドへのフライトを予約してくださいという発話では、オーランドと次の日曜日がエンティティになります。
エンティティとは、チャットBotがユーザーからの要求を完了させるために必要なフィールド、データ、単語のことを指します。必要なエンティティが手元にあれば、Botプラットフォームはウェブサービスにアクセスして、特定のデータを取得したり、ユーザーインテントに沿ったアクションを実行したりすることができます。
パラメータとユーザー入力の詳細については、Botタスクの定義で、特定のタスクタイプのパラメータおよびフィールドを参照してください。
発話のサンプル | インテント | エンティティ |
---|---|---|
オーランド行きのフライトを予約する | フライトを予約する | 都市:オーランド |
今週の日曜日にBillとのミーティングを予約する | ミーティングを予約する | 人名:Bill 日付:2018年4月22日 |
赤ワイン2本をカートに追加する | カートに追加する | アイテム:赤ワイン 数:2 |
自然言語処理
Botがユーザーインテントを識別し、ユーザーの発話から有用な情報を抽出し、そのデータ(エンティティ)を関連するタスクにマッピングするプロセスを指します。これにより、Botは複雑なメニューやプログラミング言語ではなく、テキスト形式で要求を処理することができます。
Kore.aiのプラットフォームは独自のNLP戦略を採用しています。ファンダメンタルミーニングと機械学習エンジンを組み合わせ、最適な会話精度を実現します。Kore.aiのプラットフォーム上に構築されたBotは、以下のことを理解して処理することができます。
- 複数センテンスのメッセージ
- 複数のインテント
- コンテキストに沿った参照
- パターンや慣用句など
人工知能
音声認識や理解、言語翻訳など、通常は人間のような知能を必要とする作業を行うために、人間の行動や意思決定をシミュレートする機械の能力のことを指します。
機械学習
明示的にプログラムされることなく、アルゴリズムやパターン、学習データを使って学習したり、隠れた洞察を見つけたりする機械の能力を指します。
エンティティ抽出
タスクを完了させるために、ユーザーの発話から関連性のある貴重なデータを抽出することを指します。Botは、ユーザーのタスクを完了させるためのデータがすべて揃っているかどうかを確認し、揃っていない場合は、不足している情報を送信するようユーザーに促す場合があります。
Botタスク
タスクとは、開発者によってチャットBotに指定されたさまざまなタイプの単純なジョブと複雑なジョブを指します。これらのタスクは、ユーザーインテントを満たすためにチャットBotによって実行されます。
旅行Botの場合、タスク名はチケットの予約、ホテルの検索、天気予報の提供など、ユーザーインテントに応じたものになります。
Botがユーザーインテントを理解すると、ウェブサービスにアクセスし、現在の天気予報を抽出し、その応答を解析し、ユーザーにデータを配信するなどのタスクを実行する準備が整います。
Kore.aiは5つの事前定義済みのタスクタイプを提供しており、事実上すべてのBotシナリオに対応しています。
アクションタスク
Botは、スケジューの予約、商品の検索、重要な情報の更新など、記録システムで情報を収集、修正、投稿することができます。
アラートタスク
Botは、バックエンドシステムをポーリングしたり、定期的に情報を取得したりすることで、エンタープライズシステムから直接、顧客や従業員にタイムリーで関連性の高い、パーソナライズされた通知を送信することができます。ユーザーやBot開発者はアラートを設定することができます。
ナレッジグラフ
Botは、事前定義済みの情報を照会することで、よくある質問への回答をユーザーに提供することができます。例えば、Botは、営業時間に関する顧客の質問に答えると同時に、返品ポリシーに関する質問にも答えることができます。
情報タスク
Botは、バックエンドシステムからのデータをレポート形式でユーザーに提供することができます。これらのレポートは、ユーザーの好み、適用可能なフィルタに基づいて書式設定およびまとめられ、後に使用するためにダウンロードすることができます。例えば、Botは、売上の多い順にまとめられた、昨年の営業担当者の地域別トップ10の詳細なレポートを営業マネージャーに提供することができます。
ダイアログタスク
Botは、人々が毎日行う自然なやり取りを再現した、複数のラリーを含む複雑な会話体験を処理することができます。
学習
学習とは、チャットBotがいかにして新しいインテントやエンティティを認識し、質問に正しく回答し、ユーザーの発話の重要な部分を識別するかということを指します。学習は手動でも自動でも行えます。そして人間と同様に、Botは自分が間違っているのはどんな時か、そして正しい行動、応答、または回答とは何であるかについて知る必要があります。
教師あり学習
入力変数(X)と出力変数(Y)があり、アルゴリズムを使用して入力から出力へのマッピング関数を学習する学習の形式です。ここでは、Botの開発者は教師としての役割を果たし、Botが学習する内容をコンピュータ上で完全に制御することができます。つまり、アルゴリズムは提供されたトレーニングデータに基づいて予測を行います。Bot作成者である開発者は、検出された結果が正しいか正しくないかのフラグを立てることで、これらの予測を手動で修正することができます。Botが何を理解すべきかについてBot開発者は
すでに把握しているため、開発者が決定した時点、またはモデルが許容できるレベルの性能に達した時点で、学習を停止することができます。
教師なし学習
Bot開発者の管理を必要としない学習の形式です。ここでは、Botは良好なすべての発話(つまりBotによって正常に認識された発話)と完了済みのタスクから学習します。Botは、これらの結果を利用してモデルを自動的に拡張し、不一致があった場合にはユーザーが提供するインテントの確認を含めて、Botを再トレーニングします。この形式のトレーニングにより、Botは言語能力を拡張し、問題のあった発話を除外しつつ、人間が介入することなく精度を向上させることができます。
メッセージチャネル
チャネルとは、SMS、電子メール、モバイルアプリ、ウェブサイト、メッセージアプリなど、Botが存在できる様々なコミュニケーションプラットフォームを指します。Botビルダーを使用すると、一度チャットBotのタスクを設計し、ボックスにチェックを入れるだけでチャネルをまたいで展開することができます。また、メッセージの応答を変更したり、日付セレクタやカルーセルなどのチャネル固有のUI要素を活用したりすることで、チャネル横断的な体験を差別化することができます。
変数、コンテキスト、セッションデータ
開発者がタスクを作成して定義すると、以下を利用することができるようになります。
- Botプラットフォームが提供するセッション変数
- それらが定義するカスタム変数
- 変数の範囲を定義するコンテキスト
例えば、一部のAPIリクエストではタスクを実行する前にセッション変数を設定する必要があったり、次のノードに移動するためにダイアログタスクコンポーネントがセッション変数にアクセスする必要があったりします。ダイアログタスクは、追加のシステム変数でコンテキストオブジェクトにアクセスすることもできます。これらのセッション変数とコンテキスト変数によって、データを永続化して保存することができます。例えば、商業、輸送、宅配に特化したサービスに使用されるユーザーの自宅住所は、Botがタスクを実行するときに使用します。
Botプラットフォームは、JavaScriptを使用してセクション内でタスクを定義する際に使用されるセッション変数をサポートしています。セッション変数は、使用されるコンテキストや範囲によって異なります。例えば、エンタープライズレベル、Botレベル、ユーザーレベル、セッションレベルなどがあります。