
ディープラーニングチャットボット:すべての知るべきこと
チャットボットを作成するときの目標は、人間の干渉を最小限に減少するか、まったく必要としないものにすることです。これは2つの方法で実現できます。
一番目の方法では、カスタマーサービスチームがAIから提案を受け、カスタマーサービスの方法を改善します。二番目の方法には、すべての会話自体を処理し、カスタマーサービスチームの必要性をなくす、深層学習チャットボットが含まれます。
チャットボットの力のおかげで、フェイスブックのメッセンジャーのチャットボットの数が1年以内で10万から30万に増加した。 MasterCardなどの多くの 人気ブランドも、独自のチャットボットをすぐに作成します。チャットボットとCMS を接続する ウェブサイトも一般的な方法となっており、関連するコンテンツの豊富なソースを提供しています。
しかし、ブランドがそのようなチャットボットをどのように活用できるかを説明する前に、ディープラーニングチャットボットが何かを見てみましょう。
ディープラーニングチャットボットとは何ですか?
ディープラーニングチャットボットは、「ディープラーニング」と呼ばれるプロセスを通じてゼ最初から直接学習します。このプロセスでは、チャットボットは機械学習アルゴリズムを使用して作成されます。ディープラーニングチャットボットは、すべてのデータと人間間の対話からを学習します。
ルアン・トング・ティンルアン・トング・ティン
チャットボットは、テキスト上で意識を発達させるように訓練されており、人々と会話する方法を教えることができます。または、映画の会話やスクリプトを使ってチャットボットを教えることもできます。ただし、人間との会話は、最高のディープラーニングチャットボットを作成するための優先的な方法 です。データが多ければ多いほど、機械学習の効果は高まります。
ディープラーニングチャットボットとは何かがわかったところで、最初から構築する方法を理解してみましょう。
ディープラーニングチャットボットの構築
1.データを準備する
機械学習関連のプロセスの最初のステップは、データの準備です。チャットボットをトレーニングするには、顧客とサポートスタッフの間に何千相互作用が必要です。
ディープラーニングチャットボット用の十分なデータポイントが存在するように、データは可能な限り詳細かつ多様である必要があります。この特定のプロセスは、オントロジーの作成と呼ばれます。この段階での唯一の目標は、できるだけ多くのインタラクティブを収集することです。
2.データの変形
データソースによっては、この手順が必要な場合と必要でない場合があります。データが適切に分離されていない場合は、データを観測の単一行に再形成する必要があります。
これの観測は、クラシファイアに追加されるメッセージ応答ペアと呼ばれます。このステップの目標は、会話の応答として1人のスピーカーを置くことです。すべての着信ダイアログは、応答の予測に役立つテキストインジケータとして使用されます。メッセージと応答のペアを作成するときに、次のような制限を設定する必要がある場合があります。
会話は2人の間だけ行うべきです。これにより、メッセージの送信先が明確になります.一分以内に送信される個別のメッセージを一つのメッセージにまとめることができます。メッセージと応答をペアにするには、メッセージへの応答が五分以内に来る必要があります。
再形成後、メッセージと応答のペアは次のようになります。
こんにちは、元気ですか?何もないですが、雨を楽しんでいます。今日は疲れた日です。同じです。 本当に忙しいです。
このデータを蓄積したら、データを消去する必要があります。URL、画像参照、ストップワードなどを削除する必要があります。
3.前処理
ディープラーニングチャットボットを構築するための次のステップは、前処理です。このステップでは、チャットボットがスペルミスを正しく理解できるように、機械学習に文法を追加する必要があります。
このステップに含まれるプロセスは、チャットのトークン化、ステミング、および見出し語化です。これにより、ディープラーニングチャットボットでチャットが読みやすくなります。 これには、無料で入手可能なNTLKツールを使用できます 。
前処理の最後のステップでは、ディープラーニングチャットボットの参照としてチャットの解析木を作成します。
4.チャットボットのタイプを選択します
オントロジーと前処理が完了したら、作成するチャットボットのタイプを選択する必要があります。
作成できるチャットボットには、主に次の2つの タイプがあります。
ジェネレーティブ – ジェネレーティブモデルでは、チャットボットは事前定義されたリポジトリを一切使用しません。これは、ディープラーニングを使用してクエリに応答する高度な形式のチャットボットです。
検索ベース –このフォームでは、チャットボットはクエリの解決に使用する応答のリポジトリを持っています。質問に基づいて適切な応答を選択する必要があり、チャットボットはこれに準拠します。
検索モデルは、データの検索に完全に基づいているため、ほとんどミスを犯しません。ただし、これには別の制限があり、厳格すぎるように見えたり、応答が「人間的」に見えない場合があります。
一方、ディープラーニングチャットボットは、そのスタイルを顧客からの質問や要求に簡単に適合させることができます。ただし、このタイプのチャットボットでさえ、全然ミスをしない、人との活用を真似ることはできません。
チャットボットの包括モデルも、この分野の知識がかなり限られているため、完璧にするのが難しいです。実際、ディープラーニングチャットボットはまだチューリングテストに合格できていません 。
クエリが単純な場合、検索ベースのチャットボットは非常に役立ちますが、複雑なクエリにもチャットボットが必要です。これは、チャットボットが以前のメッセージでの発言も追跡する必要がある場合に特に当てはまります。検索ベースを元にづいてチャットボットは、簡単で安い質問を回答できます。
5.単語ベクトルを生成する
単語ベクトルは、LOL、LMAOなどの単語を頻繁に使用する場合に必要です。これらはソーシャルメディアで使用される一般的な単語ですが、多くのデータセットには含まれていません。
事前トレーニング済みのベクトルを使用する方が簡単ですが、他の単語ベクトルリストにない単語がある場合は、独自の単語ベクトルを作成する必要があります。
独自の単語ベクトルを生成するには、Word2Vecモデルのアプローチを取る必要があります。この場合、単語ベクトルは、これらの単語が文でどのように表示されるかを調べることにより、モデルによって作成されます。
類似したコンテキストを持つ単語は、ベクトル空間のより近くに配置されます。Pythonスクリプトを使用して、Word2Vecモデルをトレーニングできます。または、TensorFlow Seq2Seq関数を使用することもできます。
6.Seq2Seqモデルを作成する
Seq2Seqモデルを作成するため、TensorFlowを使用できます。このことを実施するため、次のようなPythonスクリプトを使用する必要があり ます。
すべてのことがする必要があるのは、コードに従い、ディープラーニングチャットボット用のPythonスクリプトを開発することです。このモデルの最も重要な部分はTensorFlowにembedding_rnn_seq2seq()です。
7.プロセスを追跡する
作成した後、 Seq2Seqモデル、トレーニングプロセスを追跡する必要があります。これは、ディープラーニングチャットボットがどのようにトレーニングされているかを確認できるという意味で楽しい部分です。
入力文字列を介してループのさまざまなポイントでチャットボットをテストする必要があります。非パッドおよび非EOSトークンが出力に返されます。
チャットボットはパディングとEOSトークンのみを出力するため、最初はほとんどの応答は空白になります。一般的に、チャットボットは、LOLなどの頻繁に使用される小さな出力文字列で応答を開始します。
徐々に、チャットボットは応答の開発を開始し、より長く、より完全な文章を出ます。時間の経過とともに、回答の構造と文法が改善されることがわかります。
8.アプリケーションに追加する
今あなたの Seq2Seqモデルは準備ができてテストされているので、人々が操作できる場所でモデルを起動する必要があります。説明のために、これはチャットボットを追加する最も簡単な方法の1つであるため、フェイスブックメッセージに限定します。
まず、Herokuサーバーをセットアップする必要があります。これは、Heroku toolbeltをダウンロードすることで実行できます 。次に、Nodeをインストールし、新しいフォルダーを作成して、新しいNodeプロジェクトを開始する必要があり ます。追加のノード依存関係をすべてインストールすることも必要です。これは次の方法で実行できます。
次に、この投稿で述べたとおりに Facebookアプリをセットアップする必要があります 。その後、チャットボットをセットアップし、それが言うことをカスタマイズします。こちらのチュートリアルに従って ください。物事をすばやくまとめるのに役立ちます。
9. TensorFlowモデルをデプロイする
フェイスブックチャットボットの準備が整ったので、すべてを組み合わせてTensorFlowモデルをデプロイする必要があります。TensorFlowとノードの間に適切なインターフェースがあまりないため、モデルをデプロイするにはFlaskサーバーを使用する必要があります。
ディープラーニングチャットボットのExpressアプリはフラスコサーバーと対話します。
10.ディープラーニングチャットボットをテストする
ディープラーニングチャットボットの最後のステップは、ライブでテストすることです。フェイスブックにアクセスしてページを見つける必要があります。あなたがする必要があるのはあなたのページにメッセージを送ることだけです、そしてチャットボットはあなたのメッセージに応答し始めます。
ただし、サーバーを起動する必要があるため、チャットボットが最初に応答するまでに少し時間がかかる場合があります。次に、メッセージに応答しているときにディープラーニングチャットボットがどの程度うまく機能しているかを確認できます。
応答が正確でないか、文法が不十分な場合は、チャットボットにデータセットを追加する必要があるかもしれません。
11.改善方法
チャットボットがより多くの会話からよりよく学習できるように、データセットをさらに追加しますチャットボットがより多くの会話からよりよく学習できるように、データセットをさらに追加します
ディープラーニングチャットボットを操作すると、パフォーマンスを向上させる方法についての洞察が得られます。
チャットボットに加えることができるいくつかの変更は次のとおりです。
より多くの会話からよりよく学ぶために、より多くのデータセットを追加します。これにより、会話スキルが向上し、クエリに対する応答の多様性が増えます。エンコーダーメッセージとデコーダーメッセージが完全に無関係であるシナリオにも注意する必要があります。たとえば、ある日にチャットボットと会話し、翌日に別のチャットボットをまったく関係のないトピックで開始した場合、ボットはそれを知っているはずです。それに適当なボットをトレーニングする必要があります。双方向の長期短期メモリー(LSTM)、バケット化、および注意メカニズムを使用します。LSTMレイヤーの数、LSTMユニット、トレーニングの反復、オプティマイザーの選択など、ハイパーパラメーターの調整も検討する必要があります。
最終的な考え
ディープラーニングチャットボットは、会話から学習し、最終的に顧客のクエリの解決に役立ち ます。あなたの目標は、正確さを改善するためにそれらをできるだけ徹底的に訓練することであるべきです。
ディープラーニングチャットボットの開発は、取得ベースのチャットボットの開発ほど簡単ではありませんが、カスタマーサポート要件のほとんどを自動化するのに役立ちます。
データの再形成に十分な時間と労力を費やし、メッセージと応答のペアに適切に配置するようにしてください。前処理は、強固なディープラーニングチャットボットを開発するための鍵です。
このチャットボットを設計する際には、Pythonに関するある程度の知識が必要であり、TensorFlow、Express、Nodeも使用する必要があります。