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