見出し画像

自然言語処理によるチャットボットの作成

画像1

会話型チャットボットは、今後のデジタルマーケティングにおいて大きな役割を果たす可能性が高くなっています。
WhatsApp、WeChat、Facebook Messengerなどのアプリケーションが成長を続ける中、マシンベースのコミュニケーションに対する消費者の需要は明らかになってきています。
2019年の初めに行われたUsabillaの調査では、回答者の54%が、10分を節約できるのであれば、常に人間のカスタマーサービス担当者よりもチャットボットを選ぶと回答しています。

しかし、企業にとっての課題は、チャットボットがテクノロジーのギャップを埋める一方で、消費者の 59% (Pwcの調査) は、企業が顧客体験の人間的な要素との接点を失っていると感じていることです。
企業は、顧客にブランドペルソナに合った経験を与え、効率的なサービスを超えた経験を提供する必要があります。消費者としては、本物の人間が顧客と対話しているように感じる必要があります。

チャットボットは、人間がどのように会話するかをシミュレートする試みで進化し、ますます洗練されてきています。これは、機械学習(ML)や自然言語処理(NLP)などの人工知能(AI)のアプリケーションを使用することで実現しています。
これらの手法を用いて構築されたアルゴリズムは、複数のソースからの膨大な量のデータを活用し、行動パターンを明らかにすることで、パーソナライズされた体験を提供する力を持っています。
この記事では、トレーニングデータとして知られるベースデータと、開発に使用される従来のモデルをどのようにして取得するかを紹介していきます。

チャットボットのトレーニングデータ

基本的に、チャットボットは未加工のデータを会話に変換します。
最も分かりやすい例は、シンプルなカスタマーサービスのチャットボットです。
チャットボットは、人々が質問している質問の種類と、それらに対してどのような答えを返答すべきかを知る必要があります。
その答えを導き出すためには、過去の会話やEメール、電話での会話の記録や文書などのデータを使用します。チャットボットは、与えられたトレーニングデータに応じて、その能力を発揮します。
何のデータもない状態でチャットボットを開発して、顧客がそれを使い始めることを期待することはできません。
実際、何万ものチャットボットが開発されても、ほとんどのチャットボットはトレーニングを受けていないため、質が低いのが現状です。

トレーニングデータを取得するには、自社のデータセットから取得することにより顧客ベースに関連する豊富な情報が得られます。しかし、不可能な場合もあります。例えば、スタートアップ企業はまだ使用するデータを持っておらず、顧客がチャットボットとどのように対話するかのテストを開始したいと考えているかもしれません。他の企業は十分なデータを持っておらず、チャットボットがより効果的になるように知識ベースを拡大したいと考えているかもしれません。このような場合、企業はオープンソースのトレーニングデータを選ぶことが多いです。

オープンソースのトレーニングデータ

高品質なチャットボットを構築するには、膨大な量のトレーニングデータを必要とします。毎日の会話の数と、それぞれの会話の文脈の違いを考えてみてください。
理想的な世界では、チャットボットはこれらすべての会話のバリエーションを考慮する必要があります。オープンソースの公開データセットがたくさんあります。

オープンソースのトレーニングデータの例としては、以下のようなものがあります。
・質問/回答のデータセット:ウィキペディアの記事や、学術研究のために手動で生成された事実に基づく質問と回答等。

・WikiQAコーパス:一般に公開されている質問と文のペアのセット。利用されているBingのクエリログとWikipediaページへのリンク等。

・Yahoo言語データ:Yahoo Answersのキュレーションされた質問と回答のデータセット 

・Ubuntu Dialogue Corpus:技術サポートを受けるために使用されるチャットログから抽出された約100万件の二人の会話

・ツイッターサポート:ツイッター上の最大手ブランドからの300万件以上のツイートとリプライ

このような例は何百もあり、トレーニングデータに組み込むことで、可能な限り最適化することができます。
特定のユースケースをサポートするために、多言語や業界に特化したものもあります。
例として、2017年にマイクロソフトは、1,000以上の異なる会話と回答を含む、一般消費向けの休日の予約に関連した対話データセットをリリースしました。オープンソースのデータは素晴らしい出発点ですが、自社ブランドに特化したものでなければ限界があり、エラーやバイアスが発生します。
トレーニングを最適化するためには、オープンソース情報と並行して自社のビジネスデータの活用を開始することが重要なのです。

自社の内でデータを収集し、チャットボットをプログラムするために使用する

チャットボットにとって最も価値のある資産は、ユニークなデータです。
チャットボットが使用するデータは、競争力を与え、競合他社との差別化を可能にします。問題は、効果的なチャットボットを作るために十分なデータを収集することにありますが、そもそもデータを得るためにはチャットボットを使う人が必要です。

オープンソースのトレーニングデータは出発点として有用ですが、チャットボットが素早く学習できるようにする必要があります。
そのための方法として、独自の「チャットボックス」を作成するという方法があります。マイクロソフトのMaluubaはそれを実現しました。この方法は、チャット環境で2人を設定することで動作します。
チャットボットの欠点では、ユーザーがどのように会話を継続的に切り替えるかについて話しました。Maluuba は、会話の切り替えが指摘されるたびに新しいフレームを作成しました。このようなメモリの使用は、異なるチャットの方向性の可能性を探るのに役立ちました。

ボットに読み込むことができるのはチャットデータだけではありません。
ビジネスとして電子メール、電話、取引、文書がある場合、これらはチャットの対話を構築するために使用することができます。
機械学習と自然言語処理アルゴリズムは、これらの非構造化データを解読し、知識ベースにロードする力を持っています。他の形態のデータは会話的ではないかもしれませんが、どんなオープンソースのトレーニングデータにも付加価値を与えることができます。
しかし、保有するデータに関わらず、効率的なチャットボットモデルを作成するには、より多くの作業が必要です。

NLPとディープラーニングモデル

チャットボットには、検索ベースとジェネレーティブの2つのモデルがあります。
検索ベースのモデルは、ユーザーの入力を受けて、事前に定義された回答のセットを提供するものです。これは自然言語処理(NLP)と呼ばれています。
ジェネレーティブモデルは、事前に定義されたベースを持ちません。
ディープラーニングとして知られるプロセスを使って、ゼロから学習します。

NLPモデルは、その働きの多くがユーザーによって定義されているため、ミスやエラーが少ないモデルです。
生成型ボットはエラーに弱いですが、顧客からの要求や質問に独自に適応することができます。どのモデルを使用するかは、通常、チャットの複雑さによって決定されます。
例えば、顧客からの質問のほとんどが特定の製品の価格や営業時間に関するものであれば、複雑な生成モデルを構築する価値はあまりありません。
すべての会話が長く、異なるものであれば、ディープラーニングのアプリケーションには非常に明確なユースケースがあります。

ディープラーニングモデルは、会話をするチャットボットや人間のようなチャットボットに適しています。
その場で学習する能力を持っているので、顧客は事前定義されたモデルではできなかった方法でチャットボットと会話をすることさえできます。
しかし、学習には膨大な量のデータを必要とするため、生成モデルはエラーやスペルや文法の間違いが非常に起こりやすくなっています。

企業は通常、リアルな会話的に近づける前に、より定義された検索モデルから始めるでしょう。
Amazon Alexaのような商用システムであっても、本質的には事前に定義されたルールに沿った選択されたスキルを設定する必要があリます。
アマゾンのような企業が人間のようなボットの準備がまだできていないのであれば、中小企業が近い将来にそこに到達できる可能性は低いだろう。

言語データに加えて、クラウドソーシング翻訳、プロ翻訳、YouTube動画翻訳サービスを提供しています。

Flittoの翻訳サービスは、ウェブとアプリで利用できます。

■アプリ                              Google play

Appstore

■Flitto翻訳
Flitto.com

ビジネスに関するお問い合わせは、Flittoに直接ご連絡ください。



この記事が気に入ったらサポートをしてみませんか?