1. 概要

このチュートリアルでは、スマートチャットボットの意味を見ていきます。 次に、スマートチャットボットのアーキテクチャとその仕組みについて説明します。 最後に、意味のある会話を実行できるチャットボットを構築する手順を説明します

2. チャットボットとは何ですか?

チャットボットは、会話を行うAIベースのソフトウェアです。 つまり、自然言語で人間と相互作用するということです。 これらのチャットボットは通常、音声またはテキストを介して通信し、人間の言語を簡単に模倣して、人間のような方法で人間と通信できます。 チャットボットの最初の最も重要な目標の1つは、ここに示すように、インテリジェントな人に似ており、他の人が彼らの本当の性質を理解するのを困難にすることです

チャットボットは、質問と回答のパターンを使用して会話を管理します。 一方、人工知能と機械学習は、質問を認識して適切な回答を提供するために使用されます。

3. さまざまな種類のチャットボット

人工知能と機械学習はチャットボットの機能の中心を表しています。一般に、チャットボットは着信ユーザーの質問を事前定義された指示と比較することでリクエストを認識します。 これは、高度なアルゴリズムを介してリクエストを実行し、適切に応答することで実現されます。 これにより、チャットボットは入力の分析方法と返信方法に基づいて2つのカテゴリに分類されます。 2種類のチャットボットを見てみましょう。

  • ルールベースのアプローチ:このアプローチは、チャットボットに、最初にトレーニングされた一連の事前に決定されたルールに基づいて質問に回答するように指示します。 これらの設定されたルールは、非常に単純な場合もあれば、非常に複雑な場合もあります。 ルールベースのチャットボットは単純なクエリを処理できますが、より複雑なクエリ/リクエストを処理できないことがよくあります
  • 自己学習アプローチ: 名前が示すように、彼らは自分で学習できるチャットボットです。 これらは、人工知能や機械学習などの高度なテクノロジーを使用して、インスタンスや動作に基づいて自分自身をトレーニングします。 当然、これらのチャットボットはルールベースのボットよりもはるかにインテリジェントです。 自己学習型ボットの2つのタイプである検索ベースのボットと生成型ボットを見てみましょう。

3.1. 取得ベースのチャットボット

事前定義された入力と事前定義された応答で動作するチャットボットは、検索ベースのチャットボットと呼ばれます。 質問/パターンが入力されると、チャットボットはヒューリスティックアプローチを採用して適切な応答を提供します。 これらのチャットボットは事前定義された質問にのみ応答し、新しいコンテンツを生成しません。 検索ベースのモデルは、ボットのフローやトーンなどのカスタマイズされた機能を備えた目標指向のチャットボットを作成するために一般的に使用されます。 検索ベースのチャットボットがユーザーのクエリにどのように応答するかの例を次に示します。

3.2. ジェネレーティブチャットボット

検索ベースのチャットボットとは対照的に、ジェネレーティブチャットボットは一般的にオープンソースのチャットボットプログラムです。 事前定義された応答から選択するのではなく、例の広範なデータベースを必要とせずに、一意の新しい応答を生成します。 モデルが適切にトレーニングされていれば、新しい応答を生成するのは簡単な作業です。 生成チャットボットがユーザーのクエリにどのように応答するかの例を次に示します。

チャットボットは、ブランドと顧客の間のインスタントメッセージングを可能にする重要な顧客インタラクションツールになりました。 AppleのSiri、MicrosoftのCortana、AmazonのAlexaを考えてみましょう。 これらは素晴らしいではありませんか? 独自のチャットボットの作り方を学びませんか?

4. チャットボットアーキテクチャ図

チャットボットは、共通の目的を達成するために連携して機能する多くのコンポーネントで構成されています。 会話型エージェントのさまざまなコンポーネント間の関係を見てみましょう。

チャットボットが新しいメッセージを受信すると、言語識別モジュールが最初にメッセージを処理します。 これには、単純なタグの取得から、より複雑な統計手法まで、あらゆるものが含まれる可能性があります。 次に、インテント分類モジュールは、言語およびバックエンドから取得された以前のディスカッションメッセージとともに、新しいメッセージである3つの入力を受け取ります。 インテント分類モジュールは、ユーザーの目的を推測する役割を果たします。

次に、メッセージのメタデータで推測されたインテント、およびその他のバックエンドデータを利用して、適切なアクションまたは一連のアクションを識別します。 たとえば、意図がまだ不明な場合、チャットボットは質問で応答することを選択するか、ユーザーの意図がそうする許可を求めることである場合はユーザーアカウントを再開することを選択する可能性があります。

最後に、アクションハンドラモジュールはアクションを入力として受け取り、それを適切に実行します。 これは、エージェントの周囲に応じて同じアクションをさまざまな方法で実行できるため、有利です。 たとえば、ボットが会社のWebサイトで動作するか、Messengerプラットフォームで動作するかによって、実行されるアクションはまったく異なる場合があります。

5. チャットボットのアーキテクチャと分類方法

適切な結果を提供するチャットボットを構築するために、これらのボットのワークフローを理解しましょう。

5.1. 分類方法

チャットボットのパフォーマンスは、3つの分類方法に基づいています。

  • パターン一致:このメソッドは、パターン一致を使用してテキストを分類し、ユーザーに適切に応答します。 これらのパターンは、人工知能マークアップ言語(AIML)の標準モデルに基づいています。 次に例を示します。

これらのパターンを使用して、ユーザーメッセージの一部を照合します。 合理的な回答を提供するには、質問のタイプごとにデータベースで注目に値するパターンが利用可能である必要があります。

  • 自然言語理解(NLU):このアプローチは、次の3つの概念で構成されています。
    • エンティティ:この概念は、チャットボットの主なアイデアを表しています。 たとえば、オンラインストアのチャットボットには、注文追跡システムまたは支払いシステムがエンティティとして含まれている場合があります。
    • コンテキスト: NLUのアルゴリズムが文を分析する場合、会話中のユーザーの以前のクエリの履歴はありません。 そのため、「レストラン」や「ピザの注文」などのコンテキストに基づいてメッセージを理解します。 この概念は、ボットが以前のメッセージに依存せずにインテントを抽出するのに役立ちます
    • インテント:この概念は、メッセージに応答するチャットボットからのアクションまたはインテントを意味します。 このステップでは、ボットは、「白いバッグが欲しい」、「白いバッグを見せて」、「白いバッグを購入したい」などのクエリに対して同じコマンドをトリガーするため、ユーザーに同じ回答を返します。 「白い鞄」

NLUメソッドを使用したチャットボットアーキテクチャの例を次に示します。

  • 自然言語処理(NLP):このアプローチは、インテリジェントなAIベースのチャットボットが人間のコマンド(音声とテキスト)を理解し、経験から学ぶために使用されます。 したがって、ユーザーのテキストまたは音声を構造化データに変換する方法を理解します。 その結果、構造化データを使用して適切な回答を選択します。 自然言語処理の手順は次のとおりです。
    • トークン化:この概念は、単語の文字列をトークンと呼ばれる断片に分割します。 これらのトークンには、アプリケーションの値が異なる言語表現があります
    • 正規化:ユーザーのメッセージの真の意図を変える可能性のある誤植やスペルミスがないかテキストを調べます
    • エンティティ認識:これは、プログラムがテキストを解釈して、ディスカッションのトピックが何であるかを判断する場所です。 同様のカテゴリの単語、ユーザーデータ、またはその他の必要な情報を探すことにより、エンティティを識別します
    • 依存関係の解析:動詞、名詞、件名、一般的なフレーズ、オブジェクトのテキストをスキャンして、ユーザーが伝えた関連情報を特定します
    • 感情分析:ユーザーエクスペリエンスを調査および評価します(感情)。 必要に応じて、問い合わせを人間に渡します

NLPメソッドを使用したチャットボットアーキテクチャの例を次に示します。

5.2. 言語識別

場合によっては、テキストの言語を決定することは、より広範な自然言語処理チェーンの重要な最初のステップです。 一部の言語は同綴異義語を共有しています(たとえば、各言語で意味が異なるにもかかわらず、英語とオランダ語の両方で表示される部屋)。 これにより、アルゴリズムがこれらの単語のセマンティクスについて混乱する可能性があり、さらに処理する前に、特定のテキストの正しい言語を識別する必要があります。

5.3. インテント分類

会話型エージェントは、新しいメッセージを受信したときに、ユーザーが達成しようとしている目標を認識できる必要があります。 これは多くの場合、考えられるユーザーの意図の名前に対応するラベルを使用して、複数分類の問題としてモデル化されます。 この問題に対処するために、基本的なキーワード抽出からベイズ推定に至るまで、さまざまな手法を利用できます。 ただし、これらの手法では、ユーザーの要求を識別するために多数のメッセージが使用されます。

5.4. 知財管理

知識がなければ、知的エージェントはそれだけのことを成し遂げることができます。 知識工学は、幅広い事実に関する簡単な質問に答えるなど、会話型ボットにとって非常に有益です。 SiriとAmazonAlexaは、内部知識推論方法を利用して、Webやその他のソースから情報を取得します(たとえば、今日チュニスから出発する列車についてSiriに尋ねると、タイプtrain(Tunis、D、今日)の内部推論操作が発生する可能性があります。 Dは匿名の宛先です)。 現在、ナレッジマネジメントは、主にAPI呼び出しと最適化されたデータベースリクエストによって実現されています。

5.5. 応答の生成

会話エージェントは、会話するために応答できる必要があります。 さらに、応答は談話の文脈に関して首尾一貫していなければなりません。 この問題は、2つのモジュールを組み合わせることで解決できます。1つは潜在的な応答のリストを作成し、もう1つは特定の基準に基づいてそれらを選択またはランク付けします。 この問題に対して最も一般的な2つの方法は、検索ベースの戦略と生成ベースの戦略です。 ボットを使用して生成された回答の例を次に示します。

6. チャットボットを作成する方法

目的駆動型チャットボットを作成するための基本を見ていきましょう。

  1. チャットボットの目標を定義する:最初のステップは、チャットボットの目標を特定することです。 なぜチャットボットを作成しているのですか? 何を目指していますか? これらの質問への回答は、チャットボットのタイプの選択を容易にします。
  2. 通信チャネルの選択:ここでは、快適なプラットフォームを選択する必要があります。 たとえば、ウェブサイトやモバイルアプリ用のチャットボットを作成する場合があります。 同様に、チャットボットをSkype、Facebook Messenger、その他のメッセージングサービス、およびSMSチャネルにリンクする場合があります。
  3. テクノロジースタックの選択:フレームワークは、開発者のスキルと、ChatterBotなどのオープンソースおよびサードパーティのNLP(自然言語処理)ライブラリの可用性に基づいて選択される可能性があります。
  4. 会話フローを設計する:次に、ダイアログを作成する必要があります。 会話の流れを設計することは、対話を整理し、ボットの応答を組み立てることを意味します。 つまり、「ハッピーフロー」とは、すべてが適切に行われる会話です。
  5. チャットボットのトレーニング:このステップでは、ユーザーが尋ねる可能性のあるさまざまなバリアントをボットに教えることに焦点を当てます。 この手順は、ユーザーの意図を理解するために重要です。 これを行うには、サポートチケット、メールなどの既存のデータセットでボットをトレーニングします。 また、NPSチャットコーパス、Question-Answerデータセット、機械学習用のチャットボットデータセットなど、ボットに必要な情報を含むサードパーティのデータセットを取得することもできます。
  6. チャットボットのテスト:チャットボットはまだ初期段階にあるため、会話を実際の目標に向ける優雅な一般的な応答を伴うさまざまなシナリオを使用してテストするのが最善です。
  7. チャットボットの実装:チャットボットの展開にそれほど時間はかかりません。 簡単に言えば、すべてのエンドポイントがリンクされ、ボットがインフラストラクチャ全体に統合されていることを確認する必要があります(ERP、CRM、または同様のソフトウェアシステムを使用)。 ユーザーを満足させるには、統計を確認して応答を改善する必要があります。

7. 結論

この記事では、スマートチャットボットの基本と、そのアーキテクチャを理解することで、有意義な会話を続けることができるインテリジェントボットの開発にどのように役立つかについて説明しました。 カスタマーサポートの主要なソースとして機能したり、人間のスタッフを補完したりできるスマートチャットボットの作成についても検討しました