チャットボットの仕組みをサラッとまとめました!

2020年05月27日

2000年代への後戻りのように聞こえるかもしれませんが、チャットボットはますます多くの顧客エンゲージメント戦略の重要な要素になっています。チャットボットと音声アシスタントなどの会話AIの境界線には議論の余地があるとはいえ、これらを同じように検討する一助にはなります。チャットボットは、基本的には人間の会話を真似するプログラムです。チャットボットはTwitterやLINEなど、多くの人気アプリやウェブサイトに組み込まれており、さまざまな機能によって顧客体験をより魅力的なものにするように設計されています。

といっても、この説明は表面をなぞっただけのものにすぎません。画面の隅の小さなポップアップの裏には、アルゴリズムが急速に進化する微妙な言語の世界で機能するのを助ける複雑なプロセスが数多く存在していています。チャットボット技術はますます広範に取り入れられていますので、このプロセスを理解したら、チャットボットは単なる小道具から製品に不可欠なものとなるでしょう。では、知識は力なりという発想で、チャットボットを分析し、この技術のかけらが実際にはどのように働くのかを見てみましょう。

 

自然言語処理

自然言語処理は、ある特定の領域で人間がタスクを実行する方法を機械で真似しようとする試みです。これは主に機械学習を通じて行われますが、理論的には他の手法を用いることも可能です。自然言語処理は、機械によるコミュニケーションを含む大部分のプロセスをカバーしています。話された言葉を認識し、その意味を理解して、適切な行動を決定してユーザーが理解できる言語で反応することなどが全て含まれます。

チャットボットは自然言語処理をコミュニーケーションプロセス全体の、典型的な応用例です。チャットボットとの対話を例に取ってみると、自然言語処理の主な課題の多くが見えてきます。

  • チャットボットが文章か話し言葉で何かを要求されると、自然言語理解 アルゴリズムが、伝えられたことの意味を理解しようとします。このアルゴリズムは、生のテキストを構造化されたデータに変換して意味を理解する。
  • チャットボットはこのデータを利用して自身へのコマンドに変換し、意思決定エンジンでこのデータを処理する。
  • 最後にチャットボットは自然言語生成を用いて、そのデータをユーザーが理解できるテキストへと再び変換する。ここで最も困難なのは、ユーザーにとって必要な情報を明確に伝えながら、自然な話し方で応答すること。

言語を理解するためには、広範かつ大量のインプットを理解できるアルゴリズムが必要なので、これらのプロセスの大部分には機械学習が多く関わっています。しかし、自然言語処理を効果的に行うために機械学習は必ずしも不可欠ではありません。それにもかかわらず、自然言語処理の全ての要素はAIに分類することができます。固有表現抽出と文章の生成のどちらに焦点が置かれようと、自然言語処理の主な目標は、機械のコミュニケーション能力を向上し、人間と同じようにタスクを行うことです。これが当てはまる限り、自然言語処理は、曖昧に線引きされた広義のAIに含まれるでしょう。

今、ECサイトを見ているところだと想像してください。チャットボットにクレジットカードの情報をアップデートするように頼んでみましょう。「カード情報をアップデートして」というクエリによって、以下に要約するような一連のプロセスが起動します。

  1. クエリーがプレーンテキストからアルゴリズムが理解可能なコマンドに変換。
  2. コマンドが意思決定エンジンで処理。
  3. さらに情報が必要ならば、チャットボットは「カード番号を教えてください」といった返答を作成。
  4. カード番号を受け取ると、チャットボットは再びユーザーの返答をコマンドに変換。
  5. 十分な情報を受け取ると、ユーザーの要求を実行。

このように生のテキスト入力をチャットボット用のコマンドに変換する試みには、すべて自然言語と呼ばれる機械学習の領域が適用されます。この領域では主に、機械が何を言われたのかを理解してその意図を認識し、適切な動作を判断して、ユーザーの理解できる言語で応答する能力を向上させることに取り組んでいます。

自然言語理解とは、言語とその意図を理解して、それを機械が反応できる構造に変換する具体的なプロセスを意味します。自然言語生成には逆の動作も含まれ、機械はユーザーが理解できるテキストを作成しなければなりません。

自然言語処理はチャットボットのコミュニケーション能力を支える原動力です。単純なことに聞こえるかもしれませんが、実際には、言語の複雑さのために、上記のようなプロセスは進めるのが難しい非常に込み入ったものとなります。プロセスの一部分を完全に説明するには本が何冊も書けてしまうほどです。しかし、チャットボットがぶつかる言語の問題の一つに焦点を当てるだけでも、それがどれほど困難なものなのかを簡単に把握することができます。文章の意図を正確に特定するための取り組みについて考えてみましょう。

高性能なチャットボットは、ユーザーの書いた文章からその人の頭にある動作を特定するのに長けています。ともあれ、チャットボットがここで誤りを犯すと、顧客にとって重大な問題が発生し、ビジネスの評判を傷つけることになりかねません。しかし、言うは易く行うは難しです。クレジットカードの例に戻って、次のような文について考えてみましょう。

  • 「これをデフォルトのクレジットカードにしてほしい」
  • 「クレジットカードには手数料がかかります」
  • 「クレジットカードの使用は無料ですか」

これらの例にはすべて「クレジットカード」という言葉が含まれていますが、三つの文の意図は異なります。最初の文は要求なので、その意図は「する」という動作です。二番目と三番目の文は、クレジットカードの支払いに関する情報をさらに得るという、また異なった意図を共有しています。チャットボットがこれを認識できなければ、一番目と二番目のユーザーの両者に新しいカードの情報を要求するかもしれません。最悪の場合、「クレジットカード」と「手数料」というフレーズがあるために、ボットが望んでもいない取引を処理してしまうかもしれません。

ユーザーが意思を示すやり方は一つではないため、これは解決するのが難しい問題です。二番目と三番目の文はクレジットカードについてさらに調査するという意図を共有していますが、両者はまったく異なる方法でそれを表しています。「手数料」と「無料」は反対の意味を持っていますが、上記の文における意図は同じです。チャットボットはユーザーが入力する内容は指示できませんから、三番目の例の文法的誤りも補わなければなりません。その上、「手数料」を「無料」に直すことで、場合によっては意図ががらりと変わってしまいすから、 文のどこが誤っているのかを正確に理解しなければならないのです。

チャットボット開発は大変難しい作業です。効果的に顧客に対応できるようになるには、しばしば多言語で、意味だけでなく文法や単語間のつながりも理解する必要があるのです。幸いにも、新しい自然言語処理ソリューションがこの複雑さを軽減する方法を絶えず見つけています。

すべてのチャットボットをスタートラインから構築する必要があるわけではありません。実際のところ、チャットボットを開発する企業の多くは、外注ソリューションを利用して、言語のもたらす技術的問題を解決しています。このようなソリューションには、固有表現抽出を使用してさまざまな問題を解決し、ソフトウェア開発者に強固な構築基盤を与えるものもあります。

 

固有表現抽出

固有表現は、企業名や人間、場所といった所定の分類に合うテキストの一部分です。このような固有表現抽出とは、その存在を検出して正しいラベルを加えることです。例えば、すぐれた固有表現抽出技術でははトヨタ自動車を企業名、宮崎駿を人物、静岡県を場所と識別できます。これは、数多くのメタデータを構造化されていないテキストに加えるという、チャットボットのようなサービスの一般的なアノテーションの手法です。テキストのどの部分が何を行うのかを特定することで、チャットボットは簡単な言葉の理解をより一層深めることができます。言葉の裏にあるシステムや、テキストの異なる要素間のつながりも理解できるようになるのです。

固有表現抽出には、言語への理解を生み出す、階層化可能な複数のプロセスがあります。多くのソリューションで、このプロセスのいくつかがシステムに織り込まれており、データサイエンティストがそのデータをさまざまな役立つ方法で操るのを助けています。網羅的なリストはここで再現するには長くなりすぎますが、このような例は、幅広い可能性があるのだという感覚を与えてくれるでしょう。

フレーズ・チャンキングは会話のタグ付け部と、その言語的または文法的な意味で構成されます。例えば、名詞はすべて名詞とタグ付けられ、動詞はすべて動詞とタグ付けられるといったものです。これは単語ごとに実施することもできますが、フレーズレベルで行う場合もあります。出来上がる会話コーパスは、特定言語の仕組みの構文取説のようなもので、人間の文章を理解するのに必要な不可欠なものとなります。

 

固有表現認識 

固有表現認識は包括的分類システムに従って、単語やフレーズに意味的タグをラベル付けするプロセスです。これはプロジェクトごとに内容と複雑度が大きく異なる場合があり、時には何層ものカテゴリーにまで及ぶ場合があります。固有表現認識の共通カテゴリーには、順不同で名前、番号、場所、通貨、日付、企業等があります。これは、ソリューションが新たな固有表現を、大文字表記や文章内での位置といった共通の特性に基づいて認識できるようにするものです。

意図抽出は、前述の問題への技術的ソリューションです。機械に意図が何かを推測させる代わりに、意図抽出では、フレーズや文章のデータにはっきりとラベル付けします。こうすることで、人々が何かを要求したり、新たな文章を推定する、方法のライブラリを構築することができます。

こういったソリューションの多くは、チャットボットに高品質で一貫した基盤を提供するのに使用できるものです。しかし、早急に外部の助けに頼らなくともよいかもしれません。場合によっては、企業の「よくある質問」や既存の顧客サポートデータを、チャットボットを教育する基盤として使用できるでしょう。これが完全な独立したアルゴリズムを作成するのに十分ではないなら、製品を作り上げるのにさらにデータのラベル付けやキュレーションが必要となるかもしれません。例えば、チャットボットが予測不能な入力に対応できることを保証するには、意図の核心を伝達する、より多様な方法が必要となるでしょう。このような場合に必要な多様性を提供するチャットボット向け学習データセットは数多く存在します。

 

企業にチャットボットを導入すべきか?

批判的な目で見ると、チャットボットを導入しても、それはせいぜいウェブサイトのポップアップを生み出すにすぎない、面倒臭い作業に思われるかもしれません。しかし、チャットボットをただの広告手法だとはねつけるのは誤りです。顧客に多言語で迅速かつ丁寧に対応できるチャットボットがあれば、その顧客サービスはすぐに業界最大級となるでしょう。

チャットボットはすべての企業に有効というわけではありませんが、メリットが大きいので検討する価値は十分ございます。顧客の不満点を特定し、それに即対応できるチャットボットを検討してみみてはいかがですか。

チャットボットの取り組みをうまく行えば、単に顧客の期待に応える以上の顧客サポートができるはずです。最大の問題である顧客サポート費用の削減や顧客満足度向上のための自動化ソリューションのスタートラインになるかもしれません。

 

Lionbridge AI が提供するチャットボット用の学習データ

当社はチャットボット向け会話コーパスの作成、固有表現抽出用のアノテーションなどのサービスを提供し、チャットボット開発を支援いたします。世界の各タイムゾーンを渡る、100万人の認定クラウドワーカーが登録されているので、大規模な機械学習プロジェクトも素早く仕上げることができます。こちらからお問い合わせください。

チャットボット開発に肝心なトレーニングフレーズを提供いたします

メディア掲載結果

AI・機械学習の最新情報を配信中

Lionbridge AIのブログで紹介している事例記事やトレンドニュースといったビジネスに役立つ情報はもちろん、オープンデータセット集なども合わせてメール配信しております。