ハイテクコミュニケーション、またはわずか500レコードで音声エージェントを作成する方法

画像



Habréでは、音声ロボット、仕事の原則、解決できるタスクについて1、2回以上書いています。したがって、そのようなロボットを作成する一般的な原則(私たちはそれらを「デジタルエージェント」と呼ぶことを好みます)は多くの人にとって明らかです。この記事ではロボットの迅速な学習について話したいので、これは良いことです。



非常に限られたコールベースでエージェントを正常にトレーニングすることができました。本格的なデジタルエージェントを開発するための基礎となるレコードの最小数はわずか500です(ネタバレ注意-私たちはアシスタントの専門化について話しているのであって、ゼロから学ぶのではありません)。トレーニングはどのように行われ、落とし穴、機能、テクノロジーの中心にあるものは何ですか?今日はこれについてお話します。



デジタルエージェントは何ができるべきですか?



現在、b2cセグメントのインテント分類子を使用して動作する、私たちが設計しているデジタルエージェントは、本格的な対話を維持できます。これは、私たちが彼らに教えたという事実のために可能になりました:



  • 人のスピーチで決定し、さまざまな回答、質問、反対意見を分類します。
  • 意味が適切な反応または反応を選択してください。
  • 加入者が対話に同調しておらず、否定的な表現をしている場合を特定します。加入者が子供や高齢者であるかどうかを判断し、そのような場合は正しく通話を終了します。
  • 人のスピーチで決定し、必要に応じて、加入者が呼び出すさまざまなエンティティ(名前、住所、日付、電話番号など)を記録します。
  • . , , , . .
  • «» («», «») , .
  • , (, ) . , .
  • «background sound» (« »). , , « », , - , .. . — .


この機能は何のためにありますか?これにより、デジタルエージェントは、着信コールセンターの回線を処理し、標準的な顧客の質問に答えることができます。私たちの経験では、 デジタルエージェントはリクエストの最大90%を独立して処理できます。同時に、人間のオペレーターはより創造的なタスクを実行し、非標準の問題を支援することができます。AIは、コールセンターの加入者、企業サポートなどとの対話を行うように指示できます。



さて、このセグメントで最も重要なことは、デジタルエージェントが実際のオペレーターよりも悪くない(そして多くの場合さらに良い)販売ができないということです。たとえば、大規模な通信事業者向けに、このような高度なデジタルエージェントを作成しています。







ロボットを訓練して対話を行う方法



これは非常に興味深い課題です。現在、私たちは数年前とはまったく異なる方法でそれを解決しています。そして今、エージェントをトレーニングするには数百のレコードが必要です。しかし、もちろん、私たちはすぐにこれに到達しませんでした-私たちはたくさんの仕事をしなければなりませんでした。



以前のように?



数年前、人間の発話からの意図と実体の抽出とそれらの分類は、正規表現(regexを使用して実行されていました 簡単に言えば、テキスト検索言語です。検索には、検索ルールを設定するサンプル文字列(別名パターン)が使用されます。正規表現は、特別な構文を使用して検索ルールを設定します。しかし、この方法にはいくつかの欠点がありました。



  • 正規表現を作成するための大規模で熟練した人材の必要性。
  • – , , .
  • , — .
  • , .
  • - (NLU).
  • ( , , , , ) 3-7 ; .


?



正規表現を使用して行われた数百万の呼び出しのデータセットである基本データベースを開発しました。データを検証およびマークアップし、実際には正規表現に対する分類子の作業の結果を模倣するモデルを作成しましたが、より優れています品質。



実際のプロジェクトでモデルをさらに使用する過程で、プラットフォーム上の特別なマークアップインターフェイスを介して追加のトレーニングを実行します。そのため、コンテンツマネージャーは、正確に分類されていないキューを特定し、それらをマークアップしてモデルを「フィード」し、ケースを改善できるようにします。



現在、トレーニングは2つの段階で構成されています。データセットでモデルを直接トレーニングすることと、商用運用中にさらにトレーニングすることです。現時点では、NLUエンジンへの接続と高速認識テストにかかる時間はわずか数時間です。



何週間にもわたる細心の注意を払って達成されていた品質が、メインベースのおかげですぐに提供されるようになりました。たとえば、b2cセグメントでは、ターゲットアクションの実行に対する同意/拒否の認識エラーの最初の%が3分の1に減少しました(ケース総数の10%から2〜3%)。



トレーニングは、オペレーターとクライアント企業の顧客との間の会話の録音を提供することから始まります。理想的には、データセットには少なくとも500レコードが含まれている必要があります。さらに、期日、優先順位、既存の指示、コールセンターの従業員向けのスクリプトなど、追加情報が要求されます(オプションですが望ましい)。



それを解決するために、専用のNLUエンジンを使用し ます。これは、ASRシステムからのテキストのセマンティック解析に基づいています。認識の過程で、認識の主なオブジェクトは2つのタイプになります。



エンティティ

意図(意図)。



重要な点:従来の意味での古典的な対話システムはありません。機械学習システムは動的に回答を作成しません。回答はスクリプト設計者によって決定されます。ボットのフレーズは厳密に事前に決定されており、幸運にも不幸にも人工知能に対する自由意志はありません...



会話のロジックも事前に決定されています-実際、インテント分類子はサブスクライバーが私たちに何を言ったかを決定するために使用されますどのような目的。意図を決定すると、サブスクライバーに応答するために必要な適切なボットフレーズを選択できるようになります。実際、本格的な対話を行うために必要です。



対話の例



以下は、指定の意図とエンティティを含む複雑なHRスクリプトです。認識されたエンティティとインテントは、各サブスクライバーのレプリカの下に示され、イタリック体で示されます。



ボット:こんにちは!私の名前はエレナです。あなたの履歴書についてお電話します。教えてください、欠員の申し出はあなたに関係がありますか?



サブスクライバー:はい、こんにちは



インテント:hello_confirm = true



ボット:ほら、今、営業所のスペシャリストに空席があります。責任には、加入者へのコンサルティング、機器の販売、レジでの作業が含まれます。登録は完全に公式であり、給与は白で、平均収入はNルーブルで、最大レベルは実質的に無制限であり、キャリアの成長の機会があります。2つの変動日を休んで5営業日をスケジュールします。また、会社からのすべての社会的保証、VMS、ボーナス、割引も提供しています。



あなた自身のためにこれらの条件を考慮しますか?



サブスクライバー:繰り返しますが、どこから電話をかけていますか?



意図:質問= what_company



ボット:これは小売ネットワークですNNN



サブスクライバー:あなたのスケジュールは何ですか?



意図:質問=スケジュール



ボット:勤務スケジュールは、クライアントの流れと2日間の休業日があるオフィスの作業負荷を考慮して、プログラムによって自動的に作成されます。つまり、1日6 8 1012時間の勤務時間は40時間以内です。一週間。この場合、スケジュールは2週間前もって作成されます。つまり、スケジュールと週末が事前にわかっており、すでに計画を立てることができます。



サブスクライバー:まあ、



意図:確認= true



ボット:個人データを確認しましょう...

名前を教えくださいフルネーム父称



サブスクライバー:Elena Gudkova



エンティティ:名前= true



ボット:生年月日を入力してください



サブスクライバー:13番目のゼロ秒87番目の



エンティティ:

日= [13]

月== [2月]

年== [1987]




ボット:教えてください、連絡先としてあなたに電話している番号を書き留めてもいいですか?



サブスクライバー:いいえ、おそらく



意図:確認= false



ボット:それでは、連絡できる番号を教えてください。



加入者:九百八百五十五



エンティティ:電話=真



ボット:教えてください、あなたの教育は何ですか?



サブスクライバー:高等



教育機関:教育=高等



ボット:明確にしてください、あなたは現在フルタイムで勉強していますか?



サブスクライバー:いいえ



意図:確認= false



ボット:教えてください、あなたはロシアの市民権を持っていますか?



サブスクライバー:ロシアの市民権



エンティティ:市民権=ロシア



ボット:わかりました、それが最後の質問でした。質問にお答えいただきありがとうございます。今度はマネージャーに質問票を送って検討させていただきます。アンケートは3日以内に検討され、肯定的な判断が下された場合は、従業員から連絡があります。さようなら。



さて、スクリプトが開発されました、それでは何ですか?



このすべての後、開発されたスクリプトは顧客と合意されます。場合によっては、クライアントが何かを追加または変更したいことがあります。技術的パラメータを明確にすることが必要になる場合があります。



  • 統合方法。
  • 入力/出力パラメータ。
  • SIPトランク接続(お客様のテレフォニーを使用する予定の場合)。
  • SMS接続またはサードパーティの顧客システム(CRM、キャンペーン管理)への接続。


入力パラメータと出力パラメータは何ですか?これらは、デジタルエージェントが通話を開始するために必要なさまざまな変数です。まず第一に、これはもちろん、私たちが呼んでいる加入者の電話番号またはIDです。オプションで、特定の顧客とプロジェクトに応じて、次のような他のデータにすることができます。



  • 特定の条件に応じて、アシスタントがさまざまな加入者に発表する必要のあるさまざまなコンポーネントとサービスおよびサービスのコスト。
  • アシスタントがさまざまな加入者に呼び出すサービスパッケージまたはサービスの名前。
  • アシスタントが挨拶するときに発信者に対応できるさまざまな名前。
  • 追加情報。


つまり、アシスタントが特定の条件に応じて、通話中または通話後にこのアクションまたはそのアクションを実行するには、「入力パラメータ」と呼ばれるこれらの条件をアシスタントに伝える必要があります。



さて、出力パラメータは、アシスタントが電話をかけた後に私たちに返す必要があるデータのセットです。



例:加入者の電話番号、通話時間、通話が行われたプロジェクトの名前、通話の結果など。出力には、特定のプロジェクトでのダイアログの結果に応じて、呼び出しの主な結果も含まれます(最も簡単な例は、サブスクライバーがターゲットアクションの実行に同意した場合の結果「同意」、またはサブスクライバーは拒否しました)。そして最後に、通話のステータスと考えられるエラーのさまざまなコードに関する技術データです(通話が行われた、電話の問題のために通話が行われなかった、誤った入力データのために通話が行われなかったなど)。 )。

このデータは、入力データからの出力に単純に分類できます(たとえば、入力データでは加入者の番号をアシスタントに渡し、通話後の出力データではアシスタントが同じ電話番号を教えてくれました)。



また、ロボットは、通話の結果に基づいて加入者からこのデータを「収集」することができます。たとえば、加入者が名前を付けた名前、住所、電話番号などを書き留めて、出力データに記録します。それらに基づいて、レポートと分析が生成されます。



それでは、スクリプトスコアリング、ロジック開発、パターン開発、ソフトウェア検証、そして最後にプロジェクトをクライアントに転送するなどの段階が始まります。



実際、それがすべてです。もちろん、デジタルエージェント自体を作成するプロセスは、上記よりも少し複雑です。記事のフレームワーク内では、すべてのニュアンスを完全に示すことはできません。現在、トレーニングの技術的側面と社内の「キッチン」についての第2部をすでに作成することにより、この記事を継続することを計画しています。現在記事に載っていないことを知りたい場合は、質問してください。間違いなくお答えします。



All Articles