IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ライブパーソン, インコーポレイテッドの特許一覧

特表2024-501052双方向通信におけるボット選択較正のためのシステムおよび方法
<>
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図1
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図2
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図3A
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図3B
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図3C
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図4
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図5
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図6
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図7
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図8
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図9
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図10
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図11
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図12
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図13
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図14
  • 特表-双方向通信におけるボット選択較正のためのシステムおよび方法 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-10
(54)【発明の名称】双方向通信におけるボット選択較正のためのシステムおよび方法
(51)【国際特許分類】
   H04L 51/02 20220101AFI20231227BHJP
   G06F 16/90 20190101ALI20231227BHJP
   H04L 51/214 20220101ALI20231227BHJP
   H04L 51/23 20220101ALI20231227BHJP
【FI】
H04L51/02
G06F16/90 100
H04L51/214
H04L51/23
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023539799
(86)(22)【出願日】2021-12-28
(85)【翻訳文提出日】2023-07-18
(86)【国際出願番号】 US2021065354
(87)【国際公開番号】W WO2022147019
(87)【国際公開日】2022-07-07
(31)【優先権主張番号】63/131,434
(32)【優先日】2020-12-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】511094772
【氏名又は名称】ライブパーソン, インコーポレイテッド
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】ヒギンス、マイケル
(72)【発明者】
【氏名】ダン、マシュー
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175EA01
(57)【要約】
本開示は、一般に、双方向通信を促進することに関する。一例は、複数のボットに関連付けられた双方向通信セッションの一部として入力データを受信することと、ボットからの信頼性スコアにアクセスすることとを伴う。次いで、ボットスコアマッパを使用して信頼性スコアから複数のボットについてのマッピングされたスコアが生成される。マッピングされたスコアを使用して、選択されたボットが識別され、双方向通信セッションは、選択されたボットを使用して促進される。さらに、フィードバックと機械学習システムとを使用して、選択されたボットの性能と、ボットスコアマッパにおける動的に更新されたマッピング調整とを追跡するための技法が、提供される。
【特許請求の範囲】
【請求項1】
双方向通信セッションの一部として入力データを受信することと、ここにおいて、前記双方向通信セッションが複数のボットに関連付けられる、
第1のボットと前記入力データとに関連付けられた第1の信頼性スコアにアクセスすることと、ここにおいて、前記第1の信頼性スコアが、前記第1のボットによる前記入力データの第1の分析によって生成され、ここにおいて、前記第1の分析が、前記第1のボットと前記入力データとの間の第1の関連付け強度を不均一に表す、
第2のボットと前記入力データとに関連付けられた第2の信頼性スコアにアクセスすることと、ここにおいて、前記第2の信頼性スコアが、前記第2のボットによる前記入力データの第2の分析によって生成され、ここにおいて、前記第2の分析が、前記第2のボットと前記入力データとの間の第2の関連付け強度を不均一に表す、
少なくとも、前記第1の信頼性スコアに関連付けられた第1のマッピングされたスコアと、前記第2の信頼性スコアに関連付けられた第2のマッピングされたスコアとを含む、前記複数のボットについてのマッピングされたスコアを生成することと、ここにおいて、前記マッピングされたスコアが、前記複数のボットから受信された不均一な信頼性スコアを較正するために、ボットスコアマッパを使用して少なくとも前記第1の信頼性スコアおよび前記第2の信頼性スコアを分析することによって生成される、
前記マッピングされたスコアに基づいて、前記複数のボットのうちの選択されたボットを識別することと、
前記選択されたボットを使用して前記双方向通信セッションを促進することと
を備える、コンピュータ実装方法。
【請求項2】
前記選択されたボットが、前記複数のボットによって生成された自己生成された信頼性スコアの中からの最も高い信頼性スコアを有せず、
前記選択されたボットが、前記複数のボットについての前記マッピングされたスコアのうちの最も高いマッピングされたスコアを有する、
請求項1に記載のコンピュータ実装方法。
【請求項3】
前記第1のマッピングされたスコアが、前記マッピングされたスコアのうちの最も高い値のスコアであるとき、前記第1のマッピングされたスコアをボット固有しきい値と比較することと、
前記第1のマッピングされたスコアがボット固有しきい値を下回るとき、前記第1のマッピングされたスコアを拒否することと
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記選択されたボットについてのフィードバックデータを受信することと、
前記フィードバックデータに基づいて、前記入力データと、前記ボットスコアマッパの前記選択されたボットとに関連付けられたマッピング調整値を動的に更新することと
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記入力データに関連付けられた入力データタイプに関連付けられたフィードバックを繰り返し受信することと、
前記フィードバックに基づいて、前記入力データと、前記ボットスコアマッパの前記選択されたボットとに関連付けられたマッピング調整値を動的に更新することと
をさらに備え、ここにおいて、前記マッピング調整値の最大調整が、前記選択されたボットについての前記マッピング調整値に対する前の調整の数に基づいて選択され、
ここにおいて、前記選択されたボットが、前記入力データの受信に関連付けられた前記ボットスコアマッパのリアルタイムフィードバック状態に基づく、請求項1に記載のコンピュータ実装方法。
【請求項6】
フィードバックデータに基づいて、前記入力データと、前記ボットスコアマッパの前記選択されたボットとに関連付けられたマッピング調整値を更新すること
をさらに備え、ここにおいて、前記フィードバックデータが、前記双方向通信セッションのメタデータと、双方向会話データとから自動的に生成される、請求項1に記載のコンピュータ実装方法。
【請求項7】
フィードバックデータに基づいて、前記入力データと、前記ボットスコアマッパの前記選択されたボットとに関連付けられたマッピング調整値を更新すること
をさらに備え、ここにおいて、前記フィードバックデータが、前記双方向通信セッションに参加しているエージェントによって提供された手動フィードバックである、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記選択されたボットを拒否するエージェント入力を受信することと、
前記選択されたボットのスコアを除く前記マッピングされたスコアに基づいて、第2の選択されたボットを選択することと
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項9】
前記複数のボットが、1つまたは複数のクライアントボットと、1つまたは複数のソースボットと、1つまたは複数の外部ボットとを含む、請求項1に記載のコンピュータ実装方法。
【請求項10】
1つまたは複数の信頼性スコア要求を送信すること
をさらに備え、ここにおいて、前記1つまたは複数の信頼性スコア要求が、1つまたは複数のボットを実行するサーバによって受信されたとき、前記サーバが、前記1つまたは複数のボットについての信頼性スコアを生成し、前記信頼性スコアが、前記第1の信頼性スコアと前記第2の信頼性スコアとを含む、請求項1に記載のコンピュータ実装方法。
【請求項11】
デバイスの1つまたは複数のプロセッサを使用して前記第1のボットおよび前記第2のボットについての命令を実行することと、
前記デバイスの前記1つまたは複数のプロセッサを使用して前記第1の信頼性スコアおよび前記第2の信頼性スコアを生成することと
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項12】
前記入力データがテキストデータである、請求項1に記載のコンピュータ実装方法。
【請求項13】
メモリと、
前記メモリに結合された1つまたは複数のプロセッサと
を備える、システムであって、前記1つまたは複数のプロセッサは、
双方向通信セッションの一部として入力データを受信することと、ここにおいて、前記双方向通信セッションが複数のボットに関連付けられる、
第1のボットと前記入力データとに関連付けられた第1の信頼性スコアにアクセスすることと、ここにおいて、前記第1の信頼性スコアが、前記第1のボットによる前記入力データの第1の分析によって生成され、ここにおいて、前記第1の分析が、前記第1のボットと前記入力データとの間の関連付け強度を不均一に表す、
第2のボットと前記入力データとに関連付けられた第2の信頼性スコアにアクセスすることと、ここにおいて、前記第2の信頼性スコアが、前記第2のボットによる前記入力データの第2の分析によって生成され、ここにおいて、前記第2の分析が、前記第2のボットと前記入力データとの間の関連付け強度を不均一に表す、
少なくとも、前記第1の信頼性スコアに関連付けられた第1のマッピングされたスコアと、前記第2の信頼性スコアに関連付けられた第2のマッピングされたスコアとを含む、前記複数のボットについてのマッピングされたスコアを生成することと、ここにおいて、前記マッピングされたスコアが、前記複数のボットから受信された不均一な信頼性スコアを較正するために、ボットスコアマッパを使用して少なくとも前記第1の信頼性スコアおよび前記第2の信頼性スコアを分析することによって生成される、
前記マッピングされたスコアに基づいて、前記複数のボットのうちの選択されたボットを識別することと、
前記選択されたボットを使用して前記双方向通信セッションを促進することと
を含む動作を実施するように構成された、システム。
【請求項14】
前記選択されたボットが、前記複数のボットによって生成された自己生成された信頼性スコアの中からの最も高い信頼性スコアを有せず、
前記選択されたボットが、前記複数のボットについての前記マッピングされたスコアのうちの最も高いマッピングされたスコアを有する、
請求項13に記載のシステム。
【請求項15】
前記第1のマッピングされたスコアが、前記マッピングされたスコアのうちの最も高い値のスコアであるとき、前記第1のマッピングされたスコアをボット固有しきい値と比較することと、
前記第1のマッピングされたスコアがボット固有しきい値を下回るとき、前記第1のマッピングされたスコアを拒否することと
をさらに備える、請求項13に記載のシステム。
【請求項16】
前記選択されたボットについてのフィードバックデータを受信することと、
前記フィードバックデータに基づいて、前記入力データと、前記ボットスコアマッパの前記選択されたボットとに関連付けられたマッピング調整値を動的に更新することと
をさらに備える、請求項13に記載のシステム。
【請求項17】
前記入力データに関連付けられた入力データタイプに関連付けられたフィードバックを繰り返し受信することと、
前記フィードバックに基づいて、前記入力データと、前記ボットスコアマッパの前記選択されたボットとに関連付けられたマッピング調整値を動的に更新することと
をさらに備え、ここにおいて、前記マッピング調整値の最大調整が、前記選択されたボットについての前記マッピング調整値に対する前の調整の数に基づいて選択され、
ここにおいて、前記選択されたボットが、前記入力データの受信に関連付けられた前記ボットスコアマッパのリアルタイムフィードバック状態に基づく、請求項13に記載のシステム。
【請求項18】
フィードバックデータに基づいて、前記入力データと、前記ボットスコアマッパの前記選択されたボットとに関連付けられたマッピング調整値を更新すること
をさらに備え、ここにおいて、前記フィードバックデータが、前記双方向通信セッションのメタデータと、双方向会話データとから自動的に生成される、請求項13に記載のシステム。
【請求項19】
フィードバックデータに基づいて、前記入力データと、前記ボットスコアマッパの前記選択されたボットとに関連付けられたマッピング調整値を更新すること
をさらに備え、ここにおいて、前記フィードバックデータが、前記双方向通信セッションに参加しているエージェントによって提供された手動フィードバックである、請求項13に記載のシステム。
【請求項20】
前記選択されたボットを拒否するエージェント入力を受信することと、
前記選択されたボットのスコアを除く前記マッピングされたスコアに基づいて、第2の選択されたボットを選択することと
をさらに備える、請求項13に記載のシステム。
【請求項21】
前記複数のボットが、1つまたは複数のクライアントボットと、1つまたは複数のソースボットと、1つまたは複数の外部ボットとを含む、請求項13に記載のシステム。
【請求項22】
1つまたは複数の信頼性スコア要求を送信すること
をさらに備え、ここにおいて、前記1つまたは複数の信頼性スコア要求が、1つまたは複数のボットを実行するサーバによって受信されたとき、前記サーバが、前記1つまたは複数のボットについての信頼性スコアを生成し、前記信頼性スコアが、前記第1の信頼性スコアと前記第2の信頼性スコアとを含む、請求項13に記載のシステム。
【請求項23】
前記システムの1つまたは複数のプロセッサを使用して前記第1のボットおよび前記第2のボットについての命令を実行することと、
前記システムの前記1つまたは複数のプロセッサを使用して前記第1の信頼性スコアおよび前記第2の信頼性スコアを生成することと
をさらに備える、請求項13に記載のシステム。
【請求項24】
前記入力データがテキストデータである、請求項13に記載のシステム。
【請求項25】
命令を備える非一時的コンピュータ可読媒体であって、前記命令は、デバイスの1つまたは複数のプロセッサによって実行されたとき、前記デバイスに、
双方向通信セッションの一部として入力データを受信することと、ここにおいて、前記双方向通信セッションが複数のボットに関連付けられる、
第1のボットと前記入力データとに関連付けられた第1の信頼性スコアにアクセスすることと、ここにおいて、前記第1の信頼性スコアが、前記第1のボットによる前記入力データの第1の分析によって生成され、ここにおいて、前記第1の分析が、前記第1のボットと前記入力データとの間の関連付け強度を不均一に表す、
第2のボットと前記入力データとに関連付けられた第2の信頼性スコアにアクセスすることと、ここにおいて、前記第2の信頼性スコアが、前記第2のボットによる前記入力データの第2の分析によって生成され、ここにおいて、前記第2の分析が、前記第2のボットと前記入力データとの間の関連付け強度を不均一に表す、
少なくとも、前記第1の信頼性スコアに関連付けられた第1のマッピングされたスコアと、前記第2の信頼性スコアに関連付けられた第2のマッピングされたスコアとを含む、前記複数のボットについてのマッピングされたスコアを生成することと、ここにおいて、前記マッピングされたスコアが、前記複数のボットから受信された不均一な信頼性スコアを較正するために、ボットスコアマッパを使用して少なくとも前記第1の信頼性スコアおよび前記第2の信頼性スコアを分析することによって生成される、
前記マッピングされたスコアに基づいて、前記複数のボットのうちの選択されたボットを識別することと、
前記選択されたボットを使用して前記双方向通信セッションを促進することと
を備える動作を実施させる、非一時的コンピュータ可読媒体。
【請求項26】
前記選択されたボットが、前記複数のボットによって生成された自己生成された信頼性スコアの中からの最も高い信頼性スコアを有せず、
前記選択されたボットが、前記複数のボットについての前記マッピングされたスコアのうちの最も高いマッピングされたスコアを有する、
請求項25に記載の非一時的コンピュータ可読媒体。
【請求項27】
前記第1のマッピングされたスコアが、前記マッピングされたスコアのうちの最も高い値のスコアであるとき、前記第1のマッピングされたスコアをボット固有しきい値と比較することと、
前記第1のマッピングされたスコアがボット固有しきい値を下回るとき、前記第1のマッピングされたスコアを拒否することと
をさらに備える、請求項25に記載の非一時的コンピュータ可読媒体。
【請求項28】
前記選択されたボットについてのフィードバックデータを受信することと、
前記フィードバックデータに基づいて、前記入力データと、前記ボットスコアマッパの前記選択されたボットとに関連付けられたマッピング調整値を動的に更新することと
をさらに備える、請求項25に記載の非一時的コンピュータ可読媒体。
【請求項29】
前記入力データに関連付けられた入力データタイプに関連付けられたフィードバックを繰り返し受信することと、
前記フィードバックに基づいて、前記入力データと、前記ボットスコアマッパの前記選択されたボットとに関連付けられたマッピング調整値を動的に更新することと
をさらに備え、ここにおいて、前記マッピング調整値の最大調整が、前記選択されたボットについての前記マッピング調整値に対する前の調整の数に基づいて選択され、
ここにおいて、前記選択されたボットが、前記入力データの受信に関連付けられた前記ボットスコアマッパのリアルタイムフィードバック状態に基づく、請求項25に記載の非一時的コンピュータ可読媒体。
【請求項30】
フィードバックデータに基づいて、前記入力データと、前記ボットスコアマッパの前記選択されたボットとに関連付けられたマッピング調整値を更新すること
をさらに備え、ここにおいて、前記フィードバックデータが、前記双方向通信セッションのメタデータと、双方向会話データとから自動的に生成される、請求項25に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001]本特許出願は、その開示が参照により本明細書に組み込まれる、2020年12月29日に出願された米国仮特許出願第63/131,434号の優先権の利益を主張する。
【0002】
[0002]本開示は、一般に、双方向通信を促進することに関する。より詳細には、双方向通信におけるコンテンツを改善するためにボットまたは同様の自動サポートシステムを動的に識別し、ネットワークデバイスと端末デバイスとの間のメッセージングをボットに転送し、自動化中にボットの性能を追跡するための技法が提供される。
【背景技術】
【0003】
[0003]クライアントは、しばしば、製品またはサービスに関する支援を求めるユーザからの通信に対応する(field)ためにテレフォニーシステムおよび/またはネットワークベースチャットシステムを使用する。そのようなユーザ対話をサポートする通信システムは、ユーザがクライアントのライブ担当(live representative)と話すまたはチャットすることを可能にし得る。そのような通信システムは、追加または代替として、ユーザとの双方向対話のために自動ボットシステムを使用し得る。
【発明の概要】
【0004】
[0004]実施形態という用語および同様の用語は、本開示の主題と以下の特許請求の範囲とのすべてを広く指すことが意図される。これらの用語を含んでいる記述は、本明細書で説明される主題を限定せず、あるいは以下の特許請求の範囲の意味または範囲を限定しないと理解されたい。本明細書で包含される本開示の実施形態は、本発明の概要ではなく、以下の特許請求の範囲によって定義される。本発明の概要は、本開示の様々な態様の高レベルの概観であり、以下の発明を実施するための形態のセクションにおいてさらに説明される概念のうちのいくつかを紹介する。本発明の概要は、請求される主題の主要なまたは本質的な特徴を識別することが意図されず、請求される主題の範囲を決定するために独立して使用されることも意図されない。主題は、本開示の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分を参照することによって理解されたい。
【0005】
[0005]本明細書で説明される例は、「ボット」と呼ばれることがある、支援算出ベースシステムにより、ユーザに情報を提供するように構成された通信システムに関する。そのようなシステムは、多種多様なユーザ照会について、支援を行い、双方向通信を促進するように構成され得る。ユーザ照会の性質が、広い考えられる範囲をカバーするとすれば、システム通信に関連付けられたユーザ意図をカテゴリー分類し、応答のための適切なシステムを識別することは、ユーザに肯定的な経験を提供する際の主要な問題である。
【0006】
[0006]通信システムは、多種多様なユーザ照会に関して支援するために多くの異なるボットに関連付けられ得る。個々のボットは、しばしば、特定のユーザ意図またはタスクに関連付けられるので、肯定的なユーザ経験の一態様は、ユーザ照会に応答して有用なまたは有効なボットを識別することである。このコンテキストにおいてボットが動作する1つの方法は、ボットが、入力データ(たとえば、ユーザクエリからのテキスト)を受け付けることと、信頼性スコアで応答することとである。多くのボット(たとえば、数十、数百、数千、またはそれ以上のボット)をもつシステムでは、ボットによって返される信頼性スコアは、関係付けられず、または標準化されない。さらに、ボットを修正または更新することを試みるフィードバックシステムは、ボットの動作に対して、意図しない影響を及ぼすことがある。
【0007】
[0007]本明細書で説明される例は、ユーザ入力データに応答してボットについての較正スコアを調整するためにローカルに関連のあるフィードバックを使用することができる較正システムを使用する。調整は、ローカルに関連のあるデータについての較正スコアを訂正することと、ボットが提供した較正スコアから調整されたマッピングされたスコアを使用してボットを動的に選択することとを行うためのマッピングとして機能することができる。マッピングまたは較正システムは、ボット自体を修正することに関連付けられた複雑さを回避しながら、ボット選択プロセスの精度に対する改善を提供することができる。マッピングプロセスは、代わりに、ボット選択を効率的に改善するために、較正スコアに対するオーバーレイまたは独立した修正として働く。ボット動作からの独立は、さらに、マッピングシステムに対するフィードバックの影響を適切に判断する(weigh)ための、ボット修正の認識と、ボットトレーニングとボット使用の両方へのリアルタイムフィードバックの組込みとを可能にすることができ、ボット選択にフィードバックを組み込むためのコンピューティングリソースの効率的な使用を可能にすることができる。本明細書で説明されるように、および本明細書全体にわたって、追加の例および変形形態も可能である。
【0008】
[0008]本開示のいくつかの実施形態は、システムを含む。本システムは、1つまたは複数のデータプロセッサと、命令を含んでいる非一時的コンピュータ可読記憶媒体とを含み得、命令は、1つまたは複数のデータプロセッサ上で実行されたとき、1つまたは複数のデータプロセッサに、上記で説明されたおよび本明細書で説明される方法を実施させる。
【0009】
[0009]本開示のいくつかの実施形態は、データ処理装置に、上記で説明されたおよび本明細書で説明される方法を実施させるように構成された命令を含む、非一時的機械可読記憶媒体中に有形に具現されたコンピュータプログラム製品を含む。
【0010】
[0010]本開示は、添付の図に関して説明される。
【図面の簡単な説明】
【0011】
図1】[0011]本明細書で説明される例に従って使用され得る、ネットワーク対話システムの一実施形態のブロック図。
図2】[0012]本明細書で説明される例に従って使用され得る、ネットワーク対話システムの別の実施形態のブロック図。
図3A】[0013]本明細書で説明される例に従って使用され得る、接続管理システムを含むネットワーク対話システムの他の実施形態のブロック図。
図3B】本明細書で説明される例に従って使用され得る、接続管理システムを含むネットワーク対話システムの他の実施形態のブロック図。
図3C】本明細書で説明される例に従って使用され得る、接続管理システムを含むネットワーク対話システムの他の実施形態のブロック図。
図4】[0014]本明細書で説明される例に従って使用され得る、接続構成要素の動作のプロトコルスタックマッピングの表現を示す図。
図5】[0015]本明細書で説明される例に従って使用され得る、マルチデバイス通信交換システムを表す図。
図6】[0016]本明細書で説明される例に従って使用され得る、接続管理システムの一実施形態のブロック図。
図7】[0017]本明細書で説明される例による、通信セッション中にボットと端末デバイスとを動的に切り替えるためのネットワーク環境のブロック図。
図8】[0018]本明細書で説明される例に従って使用され得る、通信を表すブロック図。
図9】[0019]本明細書で説明される例による、機械学習技法を使用するフィードバックのためのネットワーク環境を表すブロック図。
図10】[0020]本明細書で説明される例による、双方向通信セッションと、関連付けられた入力データとの態様を示す図。
図11】[0021]本明細書で説明される例による、選択されたボットを使用して促進される双方向通信の態様を示す図。
図12】[0022]本明細書で説明される例による、自然言語理解(NLU)と、ボットと、フィードバックシステムとを用いて促進される双方向通信を示す図。
図13】[0023]本明細書で説明されるいくつかの例による、ボット選択較正の態様を示すフローチャート。
図14】[0024]本明細書で説明される例による、ボット選択較正のための方法のフローチャート。
図15】[0025]本明細書で説明される例による、ボット選択較正を伴う双方向通信システムにおいてデバイスを実装するために使用され得るコンピューティングデバイスの一例を示す図。
【発明を実施するための形態】
【0012】
[0026]添付の図では、同様の構成要素および/または特徴は、同じ参照ラベルを有することができる。さらに、同じタイプの様々な構成要素は、参照ラベルの後に、ダッシュと、同様の構成要素同士を区別する第2のラベルとを続けることによって区別され得る。本明細書において第1の参照ラベルのみが使用される場合、説明は、第2の参照ラベルにかかわらず、同じ第1の参照ラベルを有する同様の構成要素のどの1つにも適用可能である。
【0013】
[0027]以下の説明は、(1つまたは複数の)実施形態の好ましい例を提供するにすぎず、本開示の範囲、適用可能性または構成を限定するものではない。そうではなく、(1つまたは複数の)実施形態の好ましい例の以下の説明は、実施形態の好ましい例を実装することを可能にする説明を当業者に提供する。添付の特許請求の範囲に記載された趣旨および範囲から逸脱することなく、要素の機能および構成において様々な変更が行われ得ることを理解されたい。
【0014】
[0028]上記で説明されたように、例は、「ボット」と呼ばれることがある、支援算出ベースシステムにより、ユーザに情報を提供するように構成された通信システムに関する。ユーザ(たとえば、ビジネスの個人または顧客)が、クライアント(たとえば、双方向通信システムを介して情報またはサービスを提供する業者(merchant)またはビジネス)に関係する情報のために、双方向通信システムを介して接触するかまたは接触されるとき、そのようなボットは、完全に自動化された様式で、またはエージェントが多種多様なユーザ照会に応答するのを支援することによって、のいずれかで、支援を行うように構成され得る。ユーザ照会の性質が、広い考えられる範囲をカバーするとすれば、システム通信に関連付けられたユーザ意図をカテゴリー分類し、応答のための適切なシステムを識別することは、ユーザに肯定的な経験を提供する際の主要な問題である。
【0015】
[0029]通信システムは、多種多様なユーザ照会に関して支援するために多くの異なるボットに関連付けられ得る。個々のボットは、しばしば、カスタマイズされたタスクに関連付けられ、ボットがユーザ照会に関連があるかどうかを識別することによって肯定的なユーザ経験をもたらすために自然言語理解(NLU)を使用することができる。このコンテキストにおいてボットが動作する1つの方法は、ボットが、入力データ(たとえば、ユーザクエリからのテキスト)を受け付け、そのデータをNLUシステムを用いて処理し、信頼性スコアで応答することである。多くのボット(たとえば、数十、数百、数千、またはそれ以上のボット)をもつシステムでは、ボットによって返される信頼性スコアは、関係付けられず、または標準化されない。さらに、ボットは、業者について、特定の実装形態、または顧客の特定のセットに関連付けられたローカルデータとは異なる特性を有するデータに関して、トレーニングされ得る。したがって、一般的なトレーニングデータに基づいて決定されたボットの関連性は、関連付けられた異なる「正しい」信頼性スコアを伴う、特定のローカル実装形態とのボットの関連性とは異なり得る。
【0016】
[0030]本明細書で説明される例は、ボットが生成した信頼性スコアを修正するためにマッピングまたは較正システムを使用する。ボットについての較正スコアを調整するために、ローカルに関連のあるフィードバックが使用され得る。調整は、ローカルに関連のあるデータについての較正スコアを訂正することと、ボットが提供した較正スコアから調整されたマッピングされたスコアを使用してボットを動的に選択することとを行うためのマッピングとして機能することができる。マッピングまたは較正システムは、ボット自体を修正することに関連付けられた複雑さを回避しながら、ボット選択プロセスの精度に対する改善を提供することができる。マッピングプロセスは、代わりに、ボット選択を効率的に改善するために、較正スコアに対するオーバーレイまたは独立した修正として働く。ボット動作からの独立は、さらに、マッピングシステムに対するフィードバックの影響を適切に判断するための、ボット修正の認識と、ボットトレーニングとボット使用の両方へのリアルタイムフィードバックの組込みとを可能にすることができ、ボット選択にフィードバックを組み込むためのコンピューティングリソースの効率的な使用を可能にすることができる。
【0017】
[0031]いくつかの例は、さらに、ローカルに関連のある信頼性スコアを効率的に見つけるために各フィードバックループにおいて行われる調整の量を調整する適応フィードバック機構を使用してボットの自然信頼性スコアとは異なるローカルに関連のある信頼性スコアを求めるために、および経時的にスコアの変更を追跡するために、ローカルフィードバックを追跡することができる。たとえば、大きい較正調整を行うために、初期フィードバックが使用され得、較正調整のサイズは、追加のローカルフィードバックが受信されるにつれて、経時的に低減され得る。さらに、いくつかの例では、マッピングシステムは、ボットがいつ変更または改訂されたかを識別し、この識別に基づいてフィードバックシステムをリセットすることができる。たとえば、ボットが、同じ入力に応答して異なる信頼性スコアを一貫して返し始めた場合、較正システムは、フィードバックシステムをリセットすることができる。いくつかの例では、ボット改訂は、他のボット提供データ(たとえば、ボット改訂、入力コマンドの変更などに関する報告)から識別され得る。
【0018】
[0032]図1は、本明細書で説明されるいくつかの実施形態および特徴を実装およびサポートするネットワーク対話システム100の一実施形態のブロック図を示す。いくつかの実施形態は、(ユーザ110によって動作され得る)ネットワークデバイス105と、(エージェント120によって動作され得る)端末デバイス115との間の接続チャネルを確立することに関する。いくつかの実施形態では、ネットワーク対話システム100は、クライアント125に関連付けられたクライアントデバイス130を含むことができる。
【0019】
[0033]いくつかの実施形態では、ユーザ110は、リモートサーバ140によって提供されるウェブサイトをブラウズしているかまたはオンラインサービスにアクセスしている個人であり得る。クライアント125は、ウェブサイトまたはオンラインサービスを提供するか、動作させるか、または実行するエンティティであるか、あるいは本明細書で説明されるようにクライアント125にとって利用可能なタスクを実施するためにそのようなエンティティによって採用されたかまたは割り当てられた個人であり得る。エージェント120は、ウェブサイトまたはオンラインサービスに関するサポートまたは情報をユーザ110に提供するというタスクを与えられたサポートエージェントなどの個人であり得る。多数のエージェントのうち、エージェントのサブセットが、特定のクライアント125にサポートまたは情報を提供するために適切であり得る。エージェント120は、クライアント125と提携することも、提携しないこともある。各エージェントは、1つまたは複数のクライアント125に関連付けられ得る。いくつかの非限定的な例では、ユーザ110は、パーソナルコンピューティングデバイスからオンラインストアで買物をしている個人であり得、クライアント125は、製品をオンラインで販売する会社であり得、エージェント120は、会社によって採用された担当であり得る。様々な実施形態では、ユーザ110、クライアント125、およびエージェント120は、他の個人またはエンティティであり得る。
【0020】
[0034]図1は単一のネットワークデバイス105、端末デバイス115、およびクライアントデバイス130のみを示すが、対話システム100は、これらのタイプのデバイスのうちの1つまたは複数の各々のうちの複数または多数(たとえば、数十、数百または数千)を含むことができる。同様に、図1は、単一のユーザ110、エージェント120およびクライアント125のみを示すが、対話システム100は、そのようなエンティティのうちの1つまたは複数の各々のうちの複数または多数を含むことができる。したがって、所与のネットワークデバイスと通信するために、どの端末デバイスが選択されるべきかを決定することが必要であり得る。さらに複雑なことには、リモートサーバ140も、ネットワークデバイス通信を選択するために受信および応答するように構成され得る。さらに、ボット較正またはボット選択を実装する任意のデバイスが、動的におよびリアルタイムで、の両方で、ならびに多くのボットシステムとの並列プロセスとして同時に、較正および関連付けられたボット選択を実施することができる。そのような同時ボット動作は、デバイスまたはシステムが同時に多くのボットを実行することを伴うことができ、単一のシステムによって実行されるボットについて、ボット選択システムに対するフィードバック、較正、および更新が、同時に(たとえば、並列に)行われる。あるボットが、たとえば、ある顧客と通信するために、別の顧客が、別個の通信からのボットに関連付けられたフィードバックを提供しているのと同時に、動作することができ、第3のボットが、それらの他の2つのボット、または任意の数の他のボットに関連付けられた動作が行われているのと同時に、更新されたボット較正メトリックを使用して始動され得る。
【0021】
[0035]接続管理システム150は、通信の戦略的ルーティングを促進することができる。通信は、(たとえば、タイプされたまたは話された入力など、エンティティからの入力に基づいて定義された)コンテンツをもつメッセージを含むことができる。通信は、送信デバイスに関するデータ(たとえば、IPアドレス、アカウント識別子、デバイスタイプおよび/またはオペレーティングシステム)、宛先アドレス、クライアントの識別子、ウェブページもしくはウェブページ要素(たとえば、通信が生成されたときに訪問されているまたは他の方法で通信に関連付けられた、ウェブページまたはウェブページ要素)の識別子またはオンライン履歴データ、時間(たとえば、時刻および/または日付)、および/あるいは宛先アドレスなど、追加のデータをも含むことができる。他の情報が通信中に含まれ得る。いくつかの事例では、接続管理システム150は、通信全体を別のデバイスにルーティングする。いくつかの事例では、接続管理システム150は、(たとえば、初期通信に基づいて)通信を修正するかまたは新しい通信を生成する。新しいまたは修正された通信は、メッセージ(またはそれの処理されたバージョン)、(たとえば、送信デバイス、ウェブページまたはオンライン履歴および/あるいは時間に関する)追加のデータの少なくとも一部(または全部)、および/または接続管理システム150によって識別された他のデータ(たとえば、特定のアカウント識別子またはデバイスに関連付けられたアカウントデータ)を含むことができる。新しいまたは修正された通信は、同様に他の情報を含むことができる。
【0022】
[0036]戦略的ルーティング促進の一部は、ネットワークデバイス105と1つまたは複数の端末デバイス115との間の1つまたは複数の接続チャネルを確立、更新および使用することを含むことができる。たとえば、ネットワークデバイス105から通信を受信すると、接続管理システム150は、通信が(もしあれば)どのクライアントに対応するかを最初に推定することができる。クライアントを識別すると、接続管理システム150は、ネットワークデバイス105との通信のためにクライアントに関連付けられた端末デバイス115を識別することができる。いくつかの事例では、識別は、複数のエージェント(または専門家または代表)の各々のプロファイルを評価することを含むことができ、複数のエージェント中の各エージェント(たとえば、エージェント120)は、端末デバイス(たとえば、端末デバイス115)に関連付けられる。評価は、ネットワークデバイスメッセージ中のコンテンツに関係することができる。端末デバイス115の識別は、たとえば、すべての目的のために、その全体が参照により本明細書に組み込まれる、2010年3月17日に出願された、米国出願第12/725,799号で説明される技法を含むことができる。
【0023】
[0037]いくつかの事例では、接続管理システム150は、何らかの接続チャネルが、ネットワークデバイス105と、クライアント(またはリモートサーバ140)に関連付けられた端末デバイスとの間に確立されるかどうかと、そうである場合、そのようなチャネルが、その通信を含む一連の通信を交換するために使用されるべきであるかどうかとを決定することができる。
【0024】
[0038]ネットワークデバイス105と通信するための端末デバイス115を選択すると、接続管理システム150は、ネットワークデバイス105と端末デバイス115との間の接続チャネルを確立することができる。いくつかの事例では、接続管理システム150は、選択された端末デバイス115にメッセージを送信することができる。メッセージは、ネットワークデバイス105と通信するための提案される割当ての受付けを要求するか、またはそのような割当てが生成されたことを識別し得る。メッセージは、ネットワークデバイス105に関する情報(たとえば、IPアドレス、デバイスタイプ、および/またはオペレーティングシステム)、関連付けられたユーザ110に関する情報(たとえば、話される言語、クライアントと対話した持続時間、スキルレベル、感情、および/またはトピック選好)、受信された通信、ネットワークデバイス105への通信を生成および送信するためのコード(たとえば、クリック可能なハイパーリンク)、ならびに/またはネットワークデバイス105への通信を生成および送信するための命令を含むことができる。
【0025】
[0039]一事例では、ネットワークデバイス105と端末デバイス115との間の通信は、接続管理システム150を通してルーティングされ得る。そのような構成は、接続管理システム150が、通信交換を監視し、デバイスまたは拡張されたレイテンシのいずれかの非応答性などの(たとえば、ルールに基づいて定義された)問題を検出することを可能にすることができる。さらに、そのような構成は、たとえば、特定の通信後のターゲットを推進するために、通信交換の品質を査定し、および/あるいはルーティングルールを更新または生成するための学習をサポートするために、後で使用され得る、通信の選択的なまたは完全な記憶を促進することができる。
【0026】
[0040]いくつかの実施形態では、接続管理システム150は、通信交換をリアルタイムで監視し、ライブ通信に基づいて、自動化されたアクション(たとえば、ルールベースのアクション)を実施することができる。たとえば、接続管理システム150が、通信が特定のアイテム(たとえば、製品)に関すると決定したとき、接続管理システム150は、アイテムに関する追加の情報(たとえば、入手可能なアイテムの量、アイテムに関係するドキュメントをサポートするためのリンク、あるいはアイテムまたは同様のアイテムに関する他の情報)を含んでいる追加のメッセージを端末デバイス115に自動的に送信することができる。
【0027】
[0041]一事例では、指定された端末デバイス115は、接続管理システム150を通して通信を中継することなしにネットワークデバイス105と通信することができる。一方または両方のデバイス105、115は、通信監視および/またはデータ記憶を促進するために、特定の通信メトリックまたはコンテンツを接続管理システム150に報告することがある(または報告しないことがある)。
【0028】
[0042]上述のように、接続管理システム150は、選択の通信をリモートサーバ140にルーティングし得る。リモートサーバ140は、所定の様式で情報を提供するように構成され得る。たとえば、リモートサーバ140は、通信に応答して送信するために、定義された1つまたは複数のテキストパッセージ、音声記録および/またはファイルにアクセスし得る。リモートサーバ140は、たとえば、受信された通信の分析(たとえば、セマンティックまたはマッピング分析)に基づいて、特定のテキストパッセージ、記録またはファイルを選択し得る。
【0029】
[0043]接続管理システム150において実施されるルーティングおよび/あるいは他の決定または処理は、1つまたは複数のクライアントデバイス130によって少なくとも部分的に定義または提供されたルールおよび/またはデータに基づいて実施され得る。たとえば、クライアントデバイス130は、エージェントの優先度付け、端末デバイスタイプ、および/またはトピック/スキルマッチングを識別する通信を送信し得る。別の例として、クライアントデバイス130は、ルーティング決定に潜在的に影響を及ぼす様々な変数(たとえば、言語適合性、予測される応答時間、デバイスタイプおよび能力、ならびに/または端末デバイス負荷分散)に適用されるべき1つまたは複数の重みを識別し得る。どの端末デバイスおよび/またはエージェントがクライアントに関連付けられるべきであるかは、動的であり得ることを諒解されよう。クライアントデバイス130および/または端末デバイス115からの通信は、所与の端末デバイスおよび/またはエージェントが、クライアントに関連付けられたものとして追加または削除されるべきであることを示す情報を提供し得る。たとえば、クライアントデバイス130は、IPアドレスと、クライアントに関連付けられた端末デバイスを識別するリストからそのアドレスをもつ端末デバイスが追加または削除されるべきかどうかに関する指示とを伴う通信を送信することができる。
【0030】
[0044](たとえば、デバイス間の、デバイスと接続管理システム150との間の、リモートサーバ140と接続管理システム150との間の、またはリモートサーバ140とデバイスとの間の)各通信は、1つまたは複数のネットワーク170上で行われ得る。オープンまたはクローズドネットワークの任意の組合せが、1つまたは複数のネットワーク170中に含まれ得る。好適なネットワークの例は、インターネット、パーソナルエリアネットワーク、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、またはワイヤレスローカルエリアネットワーク(WLAN)を含む。他のネットワークも好適であり得る。1つまたは複数のネットワーク170は、イントラネット、エクストラネット、またはそれらの組合せ内に完全に組み込まれ得るか、あるいはイントラネット、エクストラネット、またはそれらの組合せを含むことができる。いくつかの事例では、1つまたは複数のネットワーク170中のネットワークは、Bluetooth(登録商標)またはBluetooth低エネルギーチャネルなど、短距離通信チャネルを含む。一実施形態では、2つまたはそれ以上のシステムおよび/またはデバイス間の通信は、セキュアソケットレイヤ(SSL)またはトランスポートレイヤセキュリティ(TLS)などのセキュア通信プロトコルによって達成され得る。さらに、データおよび/またはトランザクション詳細は、限定はしないが、データ暗号化規格(DES)、トリプルDES、リベスト-シャミア-エーデルマン暗号化(RSA)、ブローフィッシュ暗号化、高度暗号化規格(AES)、CAST-128、CAST-256、無相関化高速暗号(DFC:Decorrelated Fast Cipher)、小型暗号化アルゴリズム(TEA:Tiny Encryption Algorithm)、拡張TEA(XTEA)、補正ブロックTEA(XXTEA)、および/またはRC5など、任意の好都合な、既知の、または開発されるべき様式に基づいて暗号化され得る。
【0031】
[0045]ネットワークデバイス105、端末デバイス115および/またはクライアントデバイス130は、たとえば、ポータブル電子デバイス(たとえば、スマートフォン、タブレット、ラップトップコンピュータ、またはスマートウェアラブルデバイス)または非ポータブル電子デバイス(たとえば、1つまたは複数のデスクトップコンピュータ、スマートアプライアンス、サーバ、および/またはプロセッサ)を含むことができる。接続管理システム150は、ネットワーク、端末およびクライアントデバイスとは別個に格納され得るか、または(たとえば、デバイスへのアプリケーションのインストールを介して)1つまたは複数のそのようなデバイスの一部であり得る。リモートサーバ140は、各デバイスおよび接続管理システム150とは別個に格納され得、ならびに/あるいは別のデバイスまたはシステムの一部であり得る。図1中の各デバイス、サーバおよびシステムは単一のデバイスとして示されているが、複数のデバイスが代わりに使用され得ることを諒解されよう。たとえば、ネットワークデバイスのセットは、単一のユーザからの様々な通信を送信するために使用され得るか、またはリモートサーバ140は、サーバスタックを含み得る。
【0032】
[0046]ソフトウェアエージェントまたはアプリケーションは、図示されたデバイス、システムまたはサーバ上にインストールされ、および/またはそれらの上で実行可能であり得る。一事例では、ソフトウェアエージェントまたはアプリケーションは、様々な図示された要素が相補的様式で働くことができるように構成される。たとえば、デバイス上のソフトウェアエージェントは、デバイス使用に関するデータを収集し、別個の接続管理システムに送信するように構成され得、別個の接続管理システム上のソフトウェアアプリケーションは、そのデータを受信および処理するように構成され得る。
【0033】
[0047]図2は、ネットワーク対話システム200の別の実施形態のブロック図を示す。概して、図2は、ネットワークデバイス205が1つまたは複数の端末デバイス215と通信することを可能にするように構成および配置された様々な構成要素を示す。図示された事例は、3つのローカルエリアネットワーク235中に含まれる9つの端末デバイス215を含む。
【0034】
[0048]いくつかの事例では、ネットワークデバイス205からの通信は、どの端末デバイスが通信を受信するべきであるかを少なくとも部分的にまたは完全に示す宛先データ(たとえば、宛先IPアドレス)を含む。ネットワーク対話システム200は、宛先データを処理し、適切なルーティングを促進することができる、1つまたは複数のネットワーク間接続構成要素245および/または1つまたは複数のネットワーク内接続構成要素255を含むことができる。
【0035】
[0049]各ネットワーク間接続構成要素245は、複数のネットワーク235に接続され得、インストールされた複数のネットワークカード(たとえば、異なるネットワークに接続された各カード)を有することができる。たとえば、ネットワーク間接続構成要素245は、ワイドエリアネットワーク270(たとえば、インターネット)と、1つまたは複数のローカルエリアネットワーク235とに接続され得る。図示された事例では、通信がネットワークデバイス205から端末デバイスのうちのいずれかに送信されるために、図示されたシステム中で、通信は複数のネットワーク間接続構成要素245によって扱われなければならない。
【0036】
[0050]ネットワーク間接続構成要素245が、通信(または通信に対応するパケットのセット)を受信したとき、ネットワーク間接続構成要素245は、宛先に関連付けられたネットワークに通信をパスするためのルートの少なくとも一部を決定することができる。ルートは、たとえば、あらかじめ定義されているか、(たとえば、別のルータからまたは別のデバイスからの)着信メッセージに基づいて生成されるか、または学習される、1つまたは複数のルートを含むことができる、(たとえば、ルータにおいて記憶された)ルーティングテーブルを使用して決定され得る。
【0037】
[0051]ネットワーク間接続構成要素245の例は、ルータ260とゲートウェイ265とを含む。ネットワーク間接続構成要素245(たとえば、ゲートウェイ265)は、ネットワークシステムまたはプロトコル間でコンバートするように構成され得る。たとえば、ゲートウェイ265は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)デバイスとネットワーク間パケット交換/逐次パケット交換(IPX/SPX:Internetwork Packet Exchange/Sequenced Packet Exchange)デバイスと間の通信を促進し得る。
【0038】
[0052]ローカルエリアネットワーク235において通信を受信すると、さらなるルーティングが依然として実施される必要があり得る。そのようなネットワーク内ルーティングは、スイッチ280またはハブ285などのネットワーク内接続構成要素255を介して実施され得る。各ネットワーク内接続構成要素255は、複数の端末デバイス215に(たとえば、ワイヤレスに、またはイーサネット(登録商標)ケーブルを介してなど、ワイヤードで)接続され得る。ハブ285は、すべての受信された通信を、ハブ285が接続された各デバイスに再送するように構成され得る。各端末デバイスは、次いで、端末デバイスが宛先デバイスであるかどうか、または通信が無視されるべきであるかどうかを決定するために、各通信を評価することができる。スイッチ280は、通信を宛先端末デバイスのみに選択的にダイレクトするように構成され得る。
【0039】
[0053]いくつかの事例では、ローカルエリアネットワーク235は、複数のセグメントに分割され得、それらの各々は、独立したファイアウォール、セキュリティルールおよびネットワークプロトコルに関連付けられ得る。ネットワーク内接続構成要素255は、セグメント内ルーティングを促進するために、1つ、複数またはすべてのセグメントの各々の中に提供され得る。ブリッジ290は、セグメント275にわたって通信をルーティングするように構成され得る。
【0040】
[0054]ネットワークにわたってまたはネットワーク内で通信を適切にルーティングするために、様々な構成要素が、通信中の宛先データを分析する。たとえば、そのようなデータは、通信がどのネットワークにルーティングされるべきであるか、通信がネットワーク内のどのデバイスにルーティングされるべきであるか、または端末デバイスがどの通信を処理するべきであるか(反対に、無視するべきであるか)を示すことができる。しかしながら、いくつかの事例では、どの端末デバイス(さらにはどのネットワーク)が、ネットワークデバイスからの通信に参加するべきであるかは、直ちに明らかでない。
【0041】
[0055]例示のために、端末デバイスのセットは、同様のタイプの応答通信を提供するように構成され得る。したがって、ネットワークデバイスからの通信中のクエリは、どのネットワークデバイスに通信がルーティングされるかにかかわらず、同様の様式で応答され得ることが予想され得る。この仮定は高レベルでは真であり得るが、端末デバイスに関係する様々な詳細は、他のものと比較して有利である特定のルーティングを生じることができる。たとえば、セット中の端末デバイスは、(たとえば)どの通信チャネルがサポートされるか、ネットワークデバイスへの地理的および/またはネットワーク近接度、ならびに/あるいは関連付けられたエージェントの特性(たとえば、知識ベース、経験、話される言語、利用可能性、一般的なパーソナリティまたは感情など)に関して、互いに異なり得る。したがって、選択ルーティングは、ネットワークデバイス通信に対してより正確におよび/または完全に応答する、より高速な応答を促進し得る。厄介な問題は、ネットワークデバイスを端末デバイスにマッピングする静的ルーティングが、通信トピック、チャネルタイプ、エージェント利用可能性などの変動を考慮することに失敗し得ることである。
【0042】
[0056]図3A図3Cは、接続管理システムを含むネットワーク対話システム300a~cの他の実施形態のブロック図を示す。図示されたシステム300a~cの各々は、簡単のために、2つのローカルエリアネットワーク235のみを示すが、実施形態は、ローカルエリアネットワークの数を増やすように拡張され得ることを諒解されよう。システム300A~Cの各々は、どの端末デバイスがネットワークデバイス205と通信するべきであるかを識別することができ、接続チャネルを確立および管理する(たとえば、維持または閉鎖する)ことができ、交換において通信を再ルーティングすべきかどうか、およびいつ再ルーティングすべきかを決定することなどを行うことができる、接続管理システム350を含む。したがって、接続管理システム350は、ルーティング決定に影響を及ぼすために、通信、エージェント利用可能性、端末デバイスまたはエージェントの能力などを動的におよびリアルタイムで評価するように構成され得る。
【0043】
[0057]図3Aでは、接続管理システム350は、ネットワークデバイス205およびリモートサーバ340の各々に関連付けられる(たとえば、接続管理システム350aは、ネットワークデバイス205に関連付けられ、接続管理システム350bは、リモートサーバ340に関連付けられる)。たとえば、接続管理システム350aおよび/または接続管理システム350bは、それぞれ、ネットワークデバイス205およびリモートサーバ340の各々の上にアプリケーションとしてインストールまたは記憶され得る。(1つまたは複数の)アプリケーションの実行は、たとえば、ネットワークデバイス205との通信交換に参加するために選択された端末デバイス215を識別するために、ネットワークデバイス205とリモートサーバ340との間の通信を促進することができる。識別は、本明細書で開示される1つまたは複数のファクタ(たとえば、利用可能性、通信のトピック/詳細のレベルとエージェントまたは端末デバイスの知識ベースとの間のマッチング、予測されるレイテンシ、チャネルタイプ利用可能性など)に基づいて行われ得る。
【0044】
[0058]クライアントデバイス330は、ルーティング決定がどのように行われるべきであるかを示すクライアントデータを提供することができる。たとえば、そのようなデータは、特定の特性がどのように重み付けまたはマッチされるべきであるかに関する指示、あるいは(たとえば、負荷分散または予測される応答レイテンシに関係する)制約またはバイアスを含むことができる。クライアントデータは、通信チャネルがいつ確立(または閉鎖)されるべきであるか、あるいは通信が異なるネットワークデバイスにいつ再ルーティングされるべきであるかに関係する仕様をも含むことができる。クライアントデータは、通信ルーティングについてのルールなど、様々なクライアント固有のルールを定義するために使用され得る。
【0045】
[0059]リモートサーバ340上で実行する接続管理システム350bは、どの通信チャネルがサポートされるか、ネットワークデバイスに対する地理的および/またはネットワーク近接度、端末デバイスとの通信レイテンシおよび/または安定性、端末デバイスのタイプ、端末デバイスの能力、端末デバイス(またはエージェント)が所与のネットワークデバイス(またはユーザ)と前に通信したかどうか、および/または関連付けられたエージェントの特性(たとえば、知識ベース、経験、話される言語、利用可能性、一般的なパーソナリティまたは感情など)など、端末デバイスに関係する(たとえば、所与のクライアントに関係する)様々なメトリックを監視することができる。したがって、接続管理システム350bは、それらのメトリックに基づいて、ネットワークデバイス通信に対してより正確におよび/または完全に応答する、より高速の応答を促進するためのルーティングを選択することが可能にされ得る。
【0046】
[0060]図3Aに図示された例では、ネットワークデバイス205とリモートサーバ340との間の通信交換は、宛先アドレスの早期識別を促進することができる。ネットワークデバイス205は、次いで、後続の通信をダイレクトするために宛先アドレスを使用し得る。たとえば、ネットワークデバイス205は、(たとえば、1つまたは複数のネットワーク間接続とワイドエリアネットワークとを介して)初期通信をリモートサーバ340に送り得、リモートサーバ340は、1つまたは複数の対応するクライアントを識別し得る。リモートサーバ340は、次いで、1つまたは複数の対応するクライアントに関連付けられた端末デバイスのセットを識別し、それらの端末デバイスについてのメトリックを収集し得る。通信交換に関与すべき端末デバイスを選択し、端末デバイスに関係する情報(たとえば、IPアドレス)がネットワークデバイス205に送られ得るために、メトリックは、(たとえば、リモートサーバ340によって)評価され得る。いくつかの実施形態では、リモートサーバ340は、様々な端末デバイスについてのメトリックを連続的にまたは周期的に収集し、評価し、評価結果をデータストアに記憶し得る。そのような実施形態では、1つまたは複数の対応するクライアントに関連付けられた端末デバイスのセットを識別すると、リモートサーバ340は、データストアからの記憶された評価結果にアクセスし、記憶された評価結果に基づいて、通信交換に関与すべき端末デバイスを選択することができる。
【0047】
[0061]図3Bでは、接続管理システム350は、リレーおよび/または宛先アドレスとして働くように構成され得る。したがって、たとえば、ネットワークデバイス205のセットは、宛先として接続管理システム350を各々が識別する通信を送信し得る。接続管理システム350は、各通信を受信することができ、(たとえば、各端末デバイスについてのメトリックを生成するために)端末デバイスのセットを同時に監視することができる。監視とルールとに基づいて、接続管理システム350は、それが各通信を中継し得る端末デバイス215を識別することができる。実施形態によっては、端末デバイス通信が、さらなる中継のために(たとえば、接続管理システム350の)一貫した宛先に同様にダイレクトされ得るか、または、端末デバイスが、対応するネットワークデバイスと直接通信し始め得る。これらの実施形態は、効率的なルーティングと、徹底的な通信監視とを促進することができる。
【0048】
[0062]図3Cに図示された実施形態は、図3B中の実施形態と同様である。しかしながら、いくつかの実施形態では、接続管理システム350は、ネットワーク内構成要素(たとえば、端末デバイス、ネットワーク内接続など)に直接接続される。
【0049】
[0063]図3A図3Cの多くの変形形態が企図されることを諒解されよう。たとえば、接続管理システム350は、接続管理システム350(またはそれの一部)に対応するアプリケーションが構成要素上にインストールされるように、接続構成要素(たとえば、ネットワーク間接続構成要素245またはネットワーク内接続構成要素255)に関連付けられ得る。アプリケーションは、たとえば、独立して、あるいは(たとえば、1つまたは複数の他の構成要素、ネットワークデバイスまたはリモートサーバ上で実行する)1つまたは複数の同様のまたは相補的アプリケーションと通信することによって実施し得る。
【0050】
[0064]図4は、接続構成要素の動作のプロトコルスタックマッピング400の表現を示す。より詳細には、図4は、様々な接続構成要素に対応するオープンシステム対話(OSI)モデル中の動作のレイヤを識別する。
【0051】
[0065]OSIモデルは、複数の論理レイヤ402~414を含むことができる。レイヤは、レイヤ402~412が各々上位レベルをサービスし、レイヤ404~414が各々下位レイヤによってサービスされるように、順序付きスタック中に配置される。OSIモデルは物理レイヤ402を含む。物理レイヤ402は、パラメータ物理通信(たとえば、電気的、光学的、または電磁的)を定義することができる。物理レイヤ402はまた、接続を確立および閉鎖するためのプロトコルなど、接続管理プロトコルを定義する。物理レイヤ402は、フロー制御プロトコルと送信モードとをさらに定義することができる。
【0052】
[0066]リンクレイヤ404は、ノード間通信を管理することができる。リンクレイヤ404は、エラー(たとえば、物理レイヤ402における送信エラー)を検出し、訂正し、アクセス許可を管理することができる。リンクレイヤ404は、媒体アクセス制御(MAC)レイヤと論理リンク制御(LLC)レイヤとを含むことができる。
【0053】
[0067]ネットワークレイヤ406は、(たとえば、データグラムとして)同じネットワーク中のノードにわたって(たとえば、可変長の)データを転送することを協調させることができる。ネットワークレイヤ406は、論理ネットワークアドレスを物理機械アドレスにコンバートすることができる。
【0054】
[0068]トランスポートレイヤ408は、送信および受信品質を管理することができる。トランスポートレイヤ408は、伝送制御プロトコル(TCP)など、データを転送するためのプロトコルを提供することができる。トランスポートレイヤ408は、送信のためのデータパケットのセグメント化/非セグメント化を実施することができ、レイヤ402~406において生じる送信エラーを検出および考慮することができる。セッションレイヤ410は、ローカルアプリケーションとリモートアプリケーションとの間の接続を始動、維持、および終了することができる。セッションは、リモートプロシージャ対話の一部として使用され得る。プレゼンテーションレイヤ412は、アプリケーションまたはネットワークレイヤによって受け付けられることが知られているデータタイプに基づいて、データを暗号化し、解読し、フォーマットすることができる。
【0055】
[0069]アプリケーションレイヤ414は、通信を制御または管理するソフトウェアアプリケーションと対話することができる。そのようなアプリケーションを介して、アプリケーションレイヤ414は、(たとえば)宛先、ローカルリソース状態または利用可能性、および/あるいは通信コンテンツまたはフォーマッティングを識別することができる。様々なレイヤ402~414は、利用可能および適用可能なとき、他の機能を実施することができる。
【0056】
[0070]ネットワーク内接続構成要素422、424は、物理レイヤ402およびリンクレイヤ404において動作するように示されている。より詳細には、ハブは、動作が通信の受信と送信とに関して制御され得るように、物理レイヤにおいて動作することができる。ハブは、通信に対処する能力またはデータをフィルタ処理する能力がないので、ハブは、上位レベルにおいて動作する能力を、ほとんどからまったく持たない。一方、スイッチは、それらがアドレス(たとえば、MACアドレス)に基づいて通信フレームをフィルタ処理することが可能であるので、リンクレイヤ404において動作することができる。
【0057】
[0071]一方、ネットワーク間接続構成要素426、428は、上位レベル(たとえば、レイヤ406~414)で動作するように示されている。たとえば、ルータが、アドレス(たとえば、IPアドレス)に基づいて通信データパケットをフィルタ処理することができる。ルータは、パケットを適切なネットワークにダイレクトするために、アドレスに基づいてパケットを特定のポートにフォワーディングすることができる。ゲートウェイが、ネットワークレイヤ以上において動作し、同様のフィルタ処理およびダイレクティング、ならびに(たとえば、プロトコルまたはアーキテクチャにわたる)データのさらなる変換を実施することができる。
【0058】
[0072]接続管理システム450が、様々な実施形態では、様々なレイヤのうちの1つ、複数、すべてまたはいずれかと対話し、および/またはそれの上で動作することができる。たとえば、接続管理システム450は、ハブがどの端末デバイスと通信するかを動的に調整するために、ハブと対話することができる。別の例として、接続管理システム450は、構成要素が宛先(たとえば、MAC、論理または物理)アドレスとしてどの端末デバイスを選択するかに影響を及ぼすために、ブリッジ、スイッチ、ルータまたはゲートウェイと通信することができる。さらなる例として、接続管理システム450は、トランスポートレイヤ408上でのデータパケットのセグメント化、セッションレイヤ410上でのセッション持続時間、ならびに/あるいはプレゼンテーションレイヤ412上での暗号化および/または圧縮を監視、制御、またはダイレクトすることができる。いくつかの実施形態では、接続管理システム450は、特定のレイヤ上で動作する機器(たとえば、リンクレイヤ404上で動作するスイッチ)と通信を交換する(たとえば、それにコマンドを送る)ことによって、特定の様式で(たとえば、ネットワークデバイスと端末デバイスとの間の)既存の通信をルーティングまたは修正することによって、および/あるいは既存の通信に基づいて特定の情報(たとえば、新しい宛先アドレス)を含んでいる新しい通信を生成することによって、様々なレイヤと対話することができる。したがって、接続管理システム450は、様々なデバイスとの対話を介して、および/または様々なプロトコルスタックレイヤにおける動作に影響を及ぼすことを介して、通信ルーティングおよびチャネル確立(または維持または終了)に影響を及ぼすことができる。
【0059】
[0073]図5は、一実施形態によるマルチデバイス通信交換システム500を表す。システム500は、様々なタイプの通信チャネルを介して様々なタイプの端末デバイスと通信するように構成されたネットワークデバイス505を含む。
【0060】
[0074]図示された事例では、ネットワークデバイス505は、セルラーネットワーク上で(たとえば、基地局510を介して)通信を送信することができる。通信は、動作可能なネットワーク515にルーティングされ得る。動作可能なネットワーク515は、通信を受信し、どの端末デバイスが通信に応答するべきであるかを識別する、接続管理システム520を含むことができる。そのような決定は、(たとえば、クライアントを示すコンテンツ分析またはユーザ入力に基づいて)その通信が関係するクライアントを識別することと、クライアントに関連付けられた1つまたは複数の端末デバイスの各々について1つまたは複数のメトリックを決定することとに依存することができる。たとえば、図5では、端末デバイス530a~cの各クラスタは、異なるクライアントに対応することができる。端末デバイスは、地理的にコロケートされるかまたは分散し得る。メトリックは、(たとえば、利用可能性に基づいて)記憶または学習されたデータおよび/あるいはリアルタイム監視に基づいて決定され得る。
【0061】
[0075]接続管理システム520は、1つまたは複数のルータ525、あるいは他のネットワーク間またはネットワーク内接続構成要素を介して、様々な端末デバイスと通信することができる。接続管理システム520は、通信、端末デバイス動作、クライアントルール、および/または1つまたは複数のデータストアにおけるユーザ関連アクション(たとえば、オンラインアクティビティ)からの、またはそれらに関係する、データを収集、分析、および/または記憶し得る。そのようなデータは、通信ルーティングに影響を及ぼし得る。
【0062】
[0076]特に、通信ルーティングおよび/または処理に影響を及ぼすために、様々な他のデバイスがさらに使用され得る。たとえば、図示された事例では、接続管理システム520は、ウェブサーバ540にも接続される。したがって、接続管理システム520は、技術的なアイテム詳細など、関心を引くデータを取り出し得る。
【0063】
[0077]ネットワークデバイス505はまた、(たとえば、ウェブサーバ545を含む)ウェブサーバに接続され得る。いくつかの事例では、そのようなサーバとの通信は、接続管理システム520と通信交換を始動するための初期オプションを提供した。たとえば、ネットワークデバイス505は、特定のウェブページを訪問している間、通信機会が利用可能であり、そのようなオプションが提示され得ることを検出し得る。
【0064】
[0078]通信システム500の1つまたは複数の要素はまた、ソーシャルネットワーキングサーバ550に接続され得る。ソーシャルネットワーキングサーバ550は、様々なユーザデバイスから受信されたデータをアグリゲートすることができる。したがって、たとえば、接続管理システム520は、所与のユーザまたはユーザのクラスの一般的な(またはユーザ固有の)挙動を推定することが可能であり得る。
【0065】
[0079]図6は、接続管理システム600の一実施形態のブロック図を示す。メッセージ受信機インターフェース605は、メッセージを受信することができる。いくつかの事例では、メッセージは、たとえば、ネットワークデバイスまたは端末デバイスなど、(たとえば、接続管理システム600とは別個に、または同じハウジング内に格納された)ソースデバイスによって送信される通信の一部として受信され得る。いくつかの事例では、通信は、2つのデバイス(たとえば、ネットワークデバイスおよび端末デバイス)間でルーティングされる一連のメッセージまたはメッセージ交換を含むことができる、一連の通信または通信交換の一部であり得る。このメッセージまたは通信交換は、デバイス間の対話の一部であり得、および/またはそれを定義し得る。通信チャネルまたは動作可能なチャネルは、デバイス間のルーティングと通信交換とを促進するために使用される1つまたは複数のプロトコル(たとえば、ルーティングプロトコル、タスク割当てプロトコルおよび/またはアドレス指定プロトコル)を含むことができる。
【0066】
[0080]いくつかの事例では、メッセージは、ローカルまたはリモートユーザインターフェースにおいて受信された入力に基づいて生成されるメッセージを含むことができる。たとえば、メッセージは、ボタンまたはキー押下あるいは記録されたスピーチ信号に基づいて生成されたメッセージを含むことができる。一事例では、メッセージは、ネットワークデバイスが特定のアプリページまたはウェブページを提示しているかあるいは特定の入力コマンド(たとえば、キーシーケンス)を提供したことを検出すると生成されるものなど、自動的に生成されるメッセージを含む。メッセージは、通信交換を始動するためのものなど、命令または要求を含むことができる。
【0067】
[0081]いくつかの事例では、メッセージは、クライアントの識別子を含むか、またはそれに関連付けられ得る。たとえば、メッセージは、クライアント(またはクライアントに関連付けられたデバイス)を明示的に識別することができるか、メッセージは、クライアントに関連付けられたウェブページまたはアプリページを含むかまたはそれに関連付けられ得るか、メッセージは、クライアントに関連付けられた宛先アドレスを含むかまたはそれに関連付けられ得るか、あるいはメッセージは、クライアントに関連付けられたアイテム(たとえば、製品)またはサービスの識別情報を含むかまたはそれに関連付けられ得る。例示のために、ネットワークデバイスは、エージェントに通信を送信するためのオプションを与え得る、特定のクライアントのアプリページを提示していることがある。メッセージに対応するユーザ入力を受信すると、通信は、メッセージと、特定のクライアントの識別子とを含むように生成され得る。
【0068】
[0082]処理エンジン610は、受信された通信および/またはメッセージを処理し得る。処理は、たとえば、1つまたは複数の特定のデータ要素(たとえば、メッセージ、クライアント識別子、ネットワークデバイス識別子、アカウント識別子など)を抽出することを含むことができる。処理は、(たとえば、特定のデバイスタイプ、オペレーティングシステム、通信チャネルタイプ、プロトコルおよび/またはネットワークに適合するように)フォーマッティングまたは通信タイプを変換することを含むことができる。
【0069】
[0083]メッセージ査定エンジン615は、(たとえば、抽出または受信された)メッセージを査定し得る。査定は、たとえば、メッセージのための1つまたは複数のカテゴリーまたはタグを識別することを含むことができる。カテゴリーまたはタグタイプの例は、(たとえば)トピック、感情、複雑さ、および緊急度を含むことができる。メッセージをカテゴリー分類することと、タグ付けすることとの間の差は、カテゴリーは(たとえば、カテゴリーオプションのあらかじめ定義されたセットに従って)限定され得るが、タグはオープンであり得ることであり得る。トピックは、たとえば、技術的問題、使用の質問、または要求を含むことができる。カテゴリーまたはタグは、たとえば、(たとえば、キーワード、文構造、繰り返されるワード、句読文字および/または非冠詞ワードを識別することによる)メッセージのセマンティック分析、(たとえば、選択された1つまたは複数のカテゴリーを有する)ユーザ入力、および/またはメッセージ関連の統計(たとえば、タイピングスピードおよび/または応答レイテンシ)に基づいて決定され得る。
【0070】
[0084]いくつかの事例では、メッセージ査定エンジン615は、メッセージについてのメトリックを決定することができる。メトリックは、たとえば、文字、ワード、大文字、すべて大文字のワード、あるいは特定の文字または句読点(たとえば、感嘆符、疑問符および/またはピリオド)のインスタンスの数を含むことができる。メトリックは、感嘆符(または疑問符)で終了する文の比、すべて大文字で書かれたワードの比などの比率を含むことができる。
【0071】
[0085]メッセージ査定エンジン615は、メッセージ、メッセージメトリックおよび/またはメッセージ統計をメッセージデータストア620に記憶することができる。各メッセージはまた、対応するソースデバイス、宛先デバイス、ネットワークデバイス、端末デバイス、クライアント、1つまたは複数のカテゴリー、1つまたは複数の段階および/またはメッセージ関連の統計を識別するデータなどの)他のデータ(たとえば、メタデータ)に関連して記憶され得る。接続管理システム600の様々な構成要素(たとえば、メッセージ査定エンジン615および/または対話管理エンジン625)は、クエリ応答メッセージ、メッセージメトリックおよび/またはメッセージ統計を取り出すために、メッセージデータストア620に問い合わせることができる。
【0072】
[0086]対話管理エンジン625は、通信がどのデバイスにルーティングされるべきであるかと、受信デバイスおよび送信デバイスがどのように通信するべきであるかと、双方向通信の一部として使用されるべきまたはエージェントに推奨されるべき関連のあるボットとを決定することができる。これらの決定の各々は、たとえば、特定のネットワークデバイス(または特定のユーザに関連付けられたいずれかのネットワークデバイス)が前に端末デバイスのセット中の端末デバイス(たとえば、接続管理システム600に関連付けられたいずれかの端末デバイス、あるいは1つまたは複数の特定のクライアントに関連付けられたいずれかの端末デバイス)と通信したかどうかに依存することができる。
【0073】
[0087]対話管理エンジン625は、様々なコンテキストにおいてアカウントエンジン630と対話することができる。たとえば、アカウントエンジン630は、ネットワークデバイスまたは端末デバイスに対応するアカウントを識別するために、アカウントデータストア635中でそのデバイスの識別子をルックアップし得る。さらに、アカウントエンジン630は、前の通信交換(たとえば、時間、(1つまたは複数の)関与する他のデバイス、チャネルタイプ、解決段階、(1つまたは複数の)トピックおよび/または関連付けられたクライアント識別子)、(たとえば、1つまたは複数のクライアントの各々について、何らかのチャネルが存在するかどうか、各チャネルに関連付けられた端末デバイス、確立時間、使用頻度、最後の使用日、何らかのチャネル制約および/またはサポートされる通信のタイプを示す)接続チャネル、(たとえば、端末デバイス選択、応答レイテンシ、端末デバイス一貫性、エージェント専門知識、および/あるいは通信タイプ選好または制約に関係する)ユーザまたはエージェント選好または制約、および/あるいはユーザまたはエージェント特性(たとえば、年齢、話されるまたは選好される(1つまたは複数の)言語、地理的ロケーション、関心など)に関するデータを維持することができる。
【0074】
[0088]さらに、対話管理エンジン625は、アカウントデータストア635が現在のチャネルデータを反映するように更新され得るように、アカウントエンジン630に様々な接続チャネルアクションについてアラートすることができる。たとえば、チャネルを確立すると、対話管理エンジン625は、アカウントエンジン630にその確立を通知し、ネットワークデバイス、端末デバイス、アカウント、およびクライアントのうちの1つまたは複数を識別することができる。アカウントエンジン635は、(いくつかの事例では)その後、ユーザが、エージェント一貫性が役立っていることに気づくことができるように、ユーザにチャネルの存在を通知することができる。
【0075】
[0089]対話管理エンジン625は、通信を1つまたは複数のクライアント(および/または関連付けられたブランド)にマッピングすることができる、クライアントマッピングエンジン640とさらに対話することができる。いくつかの事例では、ネットワークデバイス自体から受信される通信は、クライアントに対応する識別子(たとえば、クライアント、ウェブページ、またはアプリページの識別子)を含む。識別子は、(たとえば、クライアントマッピングエンジン640が検出し得る)メッセージの一部として含まれるか、またはメッセージを包含している通信中の他のデータとして含まれ得る。クライアントマッピングエンジン640は、次いで、クライアントに関する追加のデータおよび/またはクライアントの識別子を取り出すために、クライアントデータストア645中の識別子をルックアップし得る。
【0076】
[0090]いくつかの事例では、メッセージは、どんなクライアントにも特に対応しないことがある。たとえば、メッセージは、一般的なクエリを含み得る。クライアントマッピングエンジン640は、たとえば、メッセージに対してセマンティック分析を実施し、1つまたは複数のキーワードを識別し、(1つまたは複数の)キーワードに関連付けられた1つまたは複数のクライアントを識別し得る。いくつかの事例では、単一のクライアントが識別される。いくつかの事例では、複数のクライアントが識別される。各クライアントの識別情報は、次いで、ユーザが(たとえば、関連付けられた端末デバイスを介して)通信すべきクライアントを選択することができるように、ネットワークデバイスを介して提示され得る。
【0077】
[0091]クライアントデータストア645は、クライアントに関連付けられた1つまたは複数の端末デバイス(および/またはエージェント)の識別情報を含むことができる。端末ルーティングエンジン650は、ルーティング決定に影響を及ぼすために、1つ、複数またはすべてのそのような端末デバイス(および/またはエージェント)の各々に関係するデータを取り出すかまたは収集することができる。たとえば、端末ルーティングエンジン650は、端末デバイスのデバイスタイプ、オペレーティングシステム、通信タイプ能力、インストールされたアプリケーションアクセサリ、地理的ロケーションおよび/または識別子(たとえば、IPアドレス)などの情報を記憶することができる、端末データストア655を維持し得る。一部の情報は動的に更新され得る。たとえば、端末デバイスが利用可能であるかどうかを示す情報は、(たとえば)(たとえば、デバイスがスリープであるか、オフ/オンにされているか、非アクティブ/アクティブであるかどうかを識別するか、または入力が時間期間内に受信されたかどうかを識別する)端末デバイスからの通信、(たとえば、端末デバイスが、通信交換の一部に関与するかまたは通信交換の一部になるように割り当てられているかどうかを示す)通信ルーティング、あるいは通信交換が終了または開始したことを示すネットワークデバイスまたは端末デバイスからの通信に基づいて、動的に更新され得る。
【0078】
[0092]様々なコンテキストにおいて、1つまたは複数の通信交換に関与することは、端末デバイスが別の通信交換に関与するために利用可能でないことを必ずしも示すとは限らないことを諒解されよう。(たとえば、概してまたはユーザに関して)通信タイプ(たとえば、メッセージ)、クライアント識別されたまたはユーザ識別されたターゲット応答時間、および/あるいはシステム負荷などの様々なファクタは、端末デバイスがいくつの交換に関与し得るかに影響を及ぼし得る。
【0079】
[0093](たとえば、ユーザによって動作される)ネットワークデバイスとの通信セッション中にボットを介してメッセージングを自動化に転送するためのシステムおよび方法が提供される。ユーザは、問題の解決に関してエージェントとの会話を始動するためにネットワークデバイスを使用し得る。エージェントは、ユーザの意図の解決を加速させるために、関連付けられた端末デバイス上でウィジェットを起動し得る。ユーザの意図は自動的に識別され得、ボットに転送するための推奨される自動化が行われ得る。注文番号、アカウント番号など、主要なユーザ情報も提供され得る。エージェントは、ボットへの転送を、手動でまたは自動的に始動し得、これは、エージェントが、転送するための推奨についてのフィードバックを提供することを可能にする。さらに、エージェントは、転送された会話をウォッチし、ユーザが不満足であるように思われ始めた場合、会話を助けるために、端末デバイスを使用し得る。ユーザとボットとの間の会話は、エージェントとの会話にインラインで出現し得る。
【0080】
[0094]いくつかの実施形態では、エージェントは、ボットに転送された複数の会話を監視し、必要に応じて、会話を助けることが可能である。感情スコアは、会話を助ける優先度を促進するために端末デバイス上に表示されるために利用され得る。「意図のヒント」および「推奨される自動化」など、人工知能を利用する支援特徴は、会話ウィンドウ内にアクション可能なインライン示唆として示され得る。フィードバックは、データ科学をトレーニング入力としてモデルに適用するために全体として使用および分析され得る。
【0081】
[0095]いくつかの実装形態では、ボットは、ネットワークデバイスと自律的に通信するように構成され得る。さらに、ボットは、特定の能力のために構成され得る。能力の例は、データベース記録を更新すること、更新をユーザに提供すること、ユーザに関する追加データをエージェントに提供すること、ユーザの意図を決定し、その意図に基づいて、ユーザを宛先システムにルーティングすること、ユーザと通信しているエージェントに対する応答を予測または示唆すること、1つまたは複数の追加のボットまたはエージェントを含めるために通信セッションをエスカレートさせること、および他の好適な能力を含むことができる。いくつかの実装形態では、ボットが(たとえば、チャット対応インターフェースを使用した)通信セッション中に(たとえば、ユーザによって動作される)ネットワークデバイスと通信している間、通信サーバは、ボットを端末デバイスと切り替えることを自動的におよび動的に決定することができる。たとえば、ボットは、いくつかのタスク(たとえば、ユーザに関連付けられたデータベース記録を更新すること)に関してユーザと通信することができるが、端末デバイスは、より困難なタスクに関してユーザと通信することができる(たとえば、技術的問題を解決するための通信チャネルを使用した通信)。
【0082】
[0096]いくつかの実装形態では、通信セッション中に自動化に切り替えるかべきかどうかを決定することは、通信セッション中のメッセージの1つまたは複数の特性の分析に基づき得る。さらに、メッセージ、会話、エンティティ、エージェントなどの感情を表すために、動的感情パラメータが生成され得る。たとえば、動的感情パラメータが、ユーザがボットに苛立っていることを示す場合、システムは、ライブエージェントがユーザと通信することができるように、ボットを端末デバイスと自動的に切り替えることができる。いくつかの例では、ボットと端末デバイスとを切り替えるべきかどうかを決定することは、ユーザからの催促なしに実施され得る。決定は、通信セッション(たとえば、チャット)中の現在のメッセージの特性、前の通信セッションにおいてユーザによって送信された前のメッセージの特性、会話中の複数のメッセージにわたる特性(たとえば、感情)の軌道、またはユーザに関連付けられた追加の情報(たとえば、プロファイル情報、選好情報、およびユーザに関連付けられた他の好適な情報)を含む、任意の数のファクタに基づいて、通信サーバにおいて自動的に実施され得る。
【0083】
[0097]上記で説明された機能とともに、対話管理エンジン625は、いくつかの例では、入力データの特定のセットとのボットの関連性を示す信頼性スコアをボットに返させるために、ボットに問い合わせることができる。クエリは、上記で説明された感情または意図分析とともに行われ得るか、あるいは独立していることがある。いくつかの例では、クエリはローカルであり、ボットが、対話管理エンジン625をもつ共有デバイスまたはシステム上で動作し得る。いくつかの例では、ボットは、独立したサーバ上でまたはリモートクラウドベースシステム上でなど、リモートで動作され得る。そのような例では、クエリは、信頼性スコアリモートシステムについての要求の送信に関連付けられる。対話管理エンジン625は、次いで、以下でさらに説明されるように、較正またはマッピング動作の管理を含めて、信頼性スコアの査定を管理することができる。
【0084】
[0098]図7は、通信セッション中にボットと端末デバイスとを動的に切り替えるためのネットワーク環境のブロック図を示す。いくつかの実装形態では、ネットワーク環境700は、ネットワークデバイス705と、通信サーバ710と、端末デバイス715と、ボット720とを含むことができる。通信サーバ710は、少なくとも1つの記憶デバイスをもつ1つまたは複数のプロセッサをもつサーバであり得、本明細書で説明される方法および技法を実施するように構成され得る。たとえば、通信サーバ710は、(たとえば、ユーザによって動作される)ネットワークデバイスと(たとえば、エージェントによって動作される)端末デバイスとの間の通信セッションを管理することができる。通信サーバ710は、ネットワークデバイス705と端末デバイス715とが、通信セッション中に互いと通信することができるように、ネットワークデバイス705と端末デバイス715との間に通信チャネルを確立することができる。通信セッションは、ネットワークデバイス705と端末デバイス715との間の1つまたは複数のメッセージの交換を促進することができる。本開示は、通信セッション中のメッセージの交換に限定されない。他の形態の通信が、通信セッション、たとえば、ビデオ通信(たとえば、ビデオフィード)およびオーディオ通信(たとえば、ボイスオーバIP接続)によって促進され得る。
【0085】
[0099]いくつかの実装形態では、通信サーバ710は、ネットワークデバイス705とボット720との間で通信チャネルを確立することができる。ボット720は、実行されたとき、ネットワークデバイス705と自律的に通信するように構成されたコードであり得る。たとえば、ボット720は、ネットワークデバイス705に関連付けられたユーザとの会話を始動するためのメッセージを自動的に生成する、および/またはネットワークデバイス705からのメッセージに自動的に応答するための、ボットであり得る。さらに、通信サーバ710は、プラットフォームに関連付けられ得る。クライアント(たとえば、プラットフォームに対する外部システム)は、プラットフォームを使用してそれらの内部通信システムにおいて異なるタイプのボットを展開することができる。いくつかの例では、クライアントは、クライアントが本明細書で説明される方法および技法をそれらの内部通信システム内に実装することを可能にするプラットフォーム内でそれら自体のボットを使用することができる。
【0086】
[00100]いくつかの実装形態では、ボットは1つまたは複数のソースによって定義され得る。たとえば、データストア730は、通信サーバのクライアントによって定義された(たとえば、作成または符号化された)ボットを表すコードを記憶することができる。たとえば、それ自体のボットを定義したクライアントは、そのボットを通信サーバ710にロードすることができる。クライアントによって定義されたボットは、クライアントボットデータストア730に記憶され得る。データストア740は、サードパーティシステムによって定義されるボットを表すコードを記憶することができる。たとえば、サードパーティシステムは、独立したソフトウェアベンダーを含むことができる。データストア750は、通信サーバ710に関連付けられたエンティティによって定義されるボットを表すコードを記憶することができる。たとえば、エンティティによって符号化されるボットは、ボットが実行され、ユーザと自律的に通信することができるように、通信サーバ710にロードされるかまたはそれによってアクセス可能であり得る。いくつかの実装形態では、通信サーバ710は、クラウドネットワーク760を使用して、データストア730、データストア740、および/またはデータストア750に記憶されたボットにアクセスすることができる。クラウドネットワーク760は、任意のネットワークであり得、インターネット、パーソナルエリアネットワーク、ローカルエリアネットワーク(LAN)、キャンパスエリアネットワーク(CAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、ワイヤレスローカルエリアネットワーク(WLAN)、イントラネット、エクストラネットなどのプライベートネットワーク、または他のバックボーンなど、オープンネットワークを含むことができる。
【0087】
[00101]さらに、端末デバイス715は、エージェントによって動作され得る。端末デバイス715は、任意のポータブル(たとえば、モバイルフォン、タブレット、ラップトップ)または非ポータブルデバイス(たとえば、電子キオスク、デスクトップコンピュータなど)であり得る。いくつかの事例では、エージェントは、端末デバイス715上で実行しているブラウザを使用してウェブサイトにアクセスすることができる。たとえば、ウェブサイトは、端末デバイス715のブラウザ上で実行しているコンソールまたはプラットフォームを含むことができる。エージェントは、ブラウザを使用してプラットフォームにログインされ得る。1つまたは複数のログイン資格証明(たとえば、ユーザ名、パスワードなど)は、エージェントがコンソールまたはコンソール中に含まれるウェブアプリケーションに対するアクセスを得ることを可能にする前に、エージェントの識別情報を認証するために使用され得る。コンソールの例は、1つまたは複数のAPI(アプリケーションプログラミングインターフェース)、1つまたは複数の機能を含むダッシュボード、通信セッションを確立することまたはそれに加わることが可能である(プラグインをダウンロードする必要なしに)ウェブブラウザ上で実行するウェブホストアプリケーション、および他の好適なインターフェースを含む、プラットフォームを含むことができる。さらに、コンソールは、実行され得る1つまたは複数のウェブアプリケーションまたは機能を含むことができる。ウェブアプリケーションまたは機能は、ブラウザにおいて、通信サーバ710、ローカルサーバ、リモートサーバ、または他の好適なコンピューティングデバイスにおいて実行され得る。たとえば、ウェブアプリケーション、ネイティブアプリケーション、または機能は、エージェントが、ユーザと通信することと、ユーザと1つまたは複数のボットとの間の通信を閲覧することとを可能にすることができる。
【0088】
[00102]いくつかの実装形態では、通信サーバ710は、特定の通信セッション中に会話がボット720と端末デバイス715との間で動的に切り替わることを引き起こす自動化を推奨することができる。そのような自動化またはサポートは、通信サーバ710にとって利用可能なボットのセットから選択され得る。いくつかの例では、通信サーバ710は、双方向通信からの入力データが分析されるとき、リアルタイムで、クライアントボット730、外部ボット740、またはソースボット750など、任意の数のボットに問い合わせることができる。ボットクエリは、通信サーバ710が、問い合わせられたボットから信頼性スコアを受信することを生じる。信頼性スコアが通信サーバ710において利用可能である(たとえば、ボット730、740、および/または750を実行するリモートデバイスから受信された、ならびに/あるいはスコアがローカルに生成された)とき、信頼性スコアを修正するためにローカルマッピング較正が使用され、双方向通信を促進する際に使用されるように選択されるボットが、修正された信頼性スコアに基づいて選択される。修正は、しきい信頼性値に基づいて、いくつかのボットを、考慮することから拒否するためのフィルタ、または履歴フィードバックに基づくスコア修正を含むことができる。
【0089】
[00103]いくつかの例では、通信サーバ710は、ネットワークデバイス705と選択されたボット720との間の通信セッションを促進することができる。ボット720は、通信セッション中に1つまたは複数のメッセージをネットワークデバイス705と交換することによって、ネットワークデバイス705と自律的に通信するように構成され得る。通信サーバ710は、ライブエージェントが、ボット720の代わりに、ネットワークデバイス705と通信することができるように、ボット720を端末デバイス715と切り替える(または、場合によっては、逆)べきかどうかを動的に決定することができる。いくつかの実装形態では、切替えは、ネットワークデバイス705または端末デバイス715からの催促なしに実施され得る。たとえば、切替えは、端末デバイスに要求するようにネットワークデバイス705に催促せずに、ネットワークデバイス705とボット720との間で交換されるメッセージのメッセージパラメータ(たとえば、あるメッセージまたは一連のメッセージの感情を表すスコア)に基づき得る。
【0090】
[00104]いくつかの実装形態では、通信サーバ710は、ボット720を端末デバイス715と切り替える(または、場合によっては、逆)べきかどうかを自動的に決定するために、1つまたは複数の機械学習モデルまたは人工知能を利用する。たとえば、ネットワークデバイス705とボット720との間で交換されるメッセージは、出力を生成するために、1つまたは複数の機械学習モデルまたは人工知能によって入力として使用され得る。出力は、ネットワークデバイス705とボット720との間の通信セッションが、ライブエージェントに切り替えられるべきであるのか、維持されるべきであるのかを指定し得る。機械学習モデルは、教師あり学習技法を使用してトレーニングされ得る。たとえば、入力メッセージのデータセットと、適切な応答エンティティ(たとえば、ライブエージェントまたはボット)を指定する対応する出力とが、機械学習モデルのトレーニングのために選択され得る。いくつかの例では、入力メッセージは、通信サーバ710の管理者、ネットワークデバイス705の、および通信サーバ710と対話し得る他のネットワークデバイスのユーザ、ならびに/または通信サーバ710に関連付けられた他のソースから取得され得る。機械学習モデルまたは人工知能は、機械学習モデルまたは人工知能に供給された入力メッセージに基づいて、機械学習モデルまたは人工知能が、対応する通信セッションがライブエージェントによって処理されるべきであるのか、ボットによって処理されるべきであるのかを決定するために使用され得る有用な出力を提供しているかどうかを決定するために、評価され得る。この評価に基づいて、機械学習モデルまたは人工知能は、機械学習モデルまたは人工知能が所望の結果を生成する可能性を増加させるために修正され得る(たとえば、1つまたは複数のパラメータまたは変数が更新され得る)。
【0091】
[00105]いくつかの実装形態では、1つまたは複数の機械学習モデルまたは人工知能は、入力メッセージまたは一連のメッセージの感情を表すスコアを出力として生成し得る。通信サーバ710は、生じたスコアがボット720またはライブエージェントへの通信セッションの割振りに対応するしきい値を超えるかどうかを決定し得る。たとえば、スコアがしきい値を超える場合、通信サーバ710は、通信セッションがボット720に最も適していると決定し得る。したがって、通信セッションが現在ネットワークデバイス705と端末デバイス715(たとえば、ライブエージェント)との間にある場合、通信サーバ710は、通信セッションを端末デバイス715からボット720に自動的に遷移させるか、または、端末デバイス715を動作させるライブエージェントに、ボット720がネットワークデバイス705との通信セッションを扱い得ることを示し得る。代替として、スコアがこのしきい値を超えない場合、通信サーバ710は、通信セッションが端末デバイス715(たとえば、ライブエージェント)に最も適していると決定し得る。この例では、通信セッションが現在ネットワークデバイス705とボット720との間にある場合、通信サーバ710は、通信セッションをボット720から端末デバイス715に自動的に遷移させ得る。いくつかの事例では、スコアがこのしきい値を超えない場合、通信サーバ710は、端末デバイス715を動作させるライブエージェントに、それが通信セッションに介入するべきであることを示し得る。上記で説明されたしきい値およびスコアは例示的であるように意図されており、ネットワークデバイス705との特定の通信セッションのためにボット720を利用すべきなのか、端末デバイス715を利用すべきなのかを決定するために、代替のしきい値およびスコアリング機構が実装され得ることに留意されたい。
【0092】
[00106]いくつかの事例では、通信サーバ710は、ネットワークデバイス705との所与の通信セッションのための関連のあるアクションを決定するために使用され得るルールまたはポリシーの動的セットを実装し得る。ルールのセットは、管理者、または通信サーバ710に関連付けられた他の許可されたエンティティによって提供され得るか、あるいは上記で説明されたような1つまたは複数の機械学習アルゴリズムまたは人工知能を使用して生成され得る。例示的な例として、通信サーバ710は、ルールまたはポリシーのセットに基づいて、(たとえば、通信セッションをボット720から端末デバイス715に遷移させること、またはその逆などの)代替アクションを起動させるべきかどうかを決定するために、ネットワークデバイス705とボット720または端末デバイス715のいずれかとの間の会話の進行を評価し得る。たとえば、通信サーバ710が、通信セッション中に交換された取得されたメッセージに基づいて、ボット720についての信頼性スコアにおいておよび/またはネットワークデバイス705のユーザについての感情スコアにおいてフラックスがあると決定した場合、通信サーバ710は、通信セッションに関連のあるルールまたはポリシーのセットに基づいて、適切なアクションを決定し得る。これは、通信セッションをボット720から端末デバイス715に遷移させること、端末デバイス715に、それが通信セッションに介入するべきであることを示す通知を送信することなどを含み得る。関連のあるアクションがとられると、通信サーバ710は、ルールまたはポリシーのセットを条件としてとられたアクションの影響を評価するために、通信セッション中に交換された後続のメッセージを監視し続け得る。これらの後続のメッセージからおよび/またはユーザとライブエージェントのセッション後から蓄積されたフィードバックに基づいて、通信サーバ710は、ルールまたはポリシーのセットを生成するために利用される機械学習アルゴリズムまたは人工知能を更新し得る。これらの更新は、通信セッション中にとられるべきアクションについての改善された推奨を提供するために、ルールまたはポリシーのセットの動的作成または修正を生じ得る。ルールまたはポリシーのセットが、管理者、または通信サーバ710に関連付けられた他の許可されたエンティティによって定義される場合、通信サーバ710は、取得されたフィードバックと、ルールまたはポリシーのセットを更新するための推奨のセットとを、管理者または他の許可されたエンティティに提供し得る。
【0093】
[00107]いくつかの実装形態では、通信サーバ710は、ボット720とネットワークデバイス705との間で交換されたメッセージの特性に基づいて、ボット720と端末デバイス715とを自動的に切り替えることを決定することができる。いくつかの事例では、特性(たとえば、メッセージパラメータ)を決定するためにメッセージのテキストを分析することは、メッセージに関連付けられたテキストまたは非テキスト属性の分析を含むことができる。たとえば、通信サーバ710は、メッセージ中に含まれるテキストの1つまたは複数の行をネットワークデバイス705から抽出することができる。通信サーバ710は、テキストの1つまたは複数の行がアンカーを含むかどうかを識別することができる。アンカーの例は、極性に関連付けられたテキストのストリング(たとえば、感情または意図、否定的極性(negative polarity)または苛立ち極性に対応する「苛立っている」というワード、肯定的極性(positive polarity)に対応する「幸せな」というワードなど)を含む。たとえば、1つのクライアントにとっての「論争」という用語は、否定的であり得るが、第2のクライアントにとって中立または肯定的であり得る。いくつかの事例では、アンカーは、教師あり機械学習技法を使用して動的に決定され得る。たとえば、1つまたは複数のクラスタリングアルゴリズムが、記憶されたメッセージ内のパターンを見つけるために、記憶されたメッセージに対して実行され得る。クラスタリングされたメッセージは、アンカーを決定するためにさらにフィルタ処理および評価され得る。さらに、識別されたアンカー近くの1つまたは複数のワードが、アンプリファイア(amplifier)についてパースされ得る。アンプリファイアの一例は、「とても(really)」、「あまり(not really)」、「ちょっと(kind of)」など、アンカーの極性に関連付けられた強度を増加または減少させる用語である。特性は、たとえば、タイピングの速度、メッセージ中で使用される特殊文字(たとえば、感嘆符、疑問符など)の数、(たとえば、キーワード、文構造、繰り返されるワード、句読文字および/または非冠詞ワードを識別することによる)メッセージのセマンティック分析、(たとえば、選択された1つまたは複数のカテゴリーを有する)ユーザ入力、および/またはメッセージ関連統計(たとえば、応答レイテンシ)を含むことができる。
【0094】
[00108]非限定的な例として、メッセージパラメータは、否定的極性の高い強度を示す数値であり得る(たとえば、より低い数が否定的極性を示し、より高い数が肯定的極性を示す、0~100のスケールで20のメッセージパラメータ)。アルゴリズムは、メッセージパラメータを計算するために使用され得る。たとえば、アルゴリズムは、教師あり機械学習技法に基づき得る。さらなる例では、「ちょっと」という用語が(たとえば、「私はちょっと好きではありません(I kind of don’t like)」という文の場合のように)「好きではありません(don’t like)」というアンカーの近くにある場合、「ちょっと」という用語は、否定的極性の中間強度を示すアンプリファイア用語として識別され得る。この場合、メッセージパラメータは、否定的極性の中間強度の識別に基づいて生成され得る。非限定的な例として、メッセージパラメータは、否定的極性の中間強度を示す数値(たとえば、20のメッセージパラメータとは対照的に、40のメッセージパラメータ)であり得る。いくつかの事例では、メッセージパラメータは、どの2次キューが通信を記憶するべきであるかを決定するために使用され得る。
【0095】
[00109]いくつかの実装形態では、メッセージの特性は、メッセージに関連付けられた感情であり得る。メッセージパラメータは、メッセージの感情を表すことができる。たとえば、メッセージの感情が、幸せなである場合、メッセージパラメータは、ある値またはある範囲の値であり得、メッセージの感情が、怒っているである場合、メッセージパラメータは、別の値または別の範囲の値であり得る。ボットと端末デバイスとを切り替えるべきかどうかを決定することは、通信サーバ710において受信された各新しいメッセージで連続的におよび自動的に更新される、メッセージパラメータに基づき得る。
【0096】
[00110]いくつかの実装形態では、通信サーバ710が、会話がボット720から端末デバイス(たとえば、ライブエージェント)に切り替えられるべきであると決定した場合、通信サーバ710は、どの端末デバイス(たとえば、エージェント)がネットワークデバイス705のユーザによって提示された技術的問題を確実に解決する可能性がより高いかを識別する。たとえば、ネットワークデバイス705から受信されたメッセージの特性と、そのメッセージを介してネットワークデバイス705のユーザによって表現された技術的問題とに基づいて、通信サーバ710は、ユーザとの肯定的な対話のより高い可能性を提供しながら、技術的問題に対処する可能性があるエージェントに関連付けられた端末デバイスを識別し得る。
【0097】
[00111]どのエージェントが技術的問題についてユーザに応答するのに最も適しているかを識別するために、通信サーバ710は、出力として特定のエージェントの選択を提供するように構成された機械学習モデルまたは人工知能アルゴリズムへの入力として、ネットワークデバイス705から受信されたメッセージの特性と、ネットワークデバイス705のユーザによって表現された技術的問題とを使用し得る。機械学習モデルまたは人工知能アルゴリズムは、ユーザとライブエージェントとの間の前に行われた会話に関連付けられたフィードバックを使用してトレーニングされ得る。このフィードバックは、各エージェントについてのいくつかの特性を識別するために使用され得る。これらの特性は、限定はしないが、技術的問題に関連付けられた専門分野、特定の感情に対する応答性(たとえば、ユーザの苛立ちまたは怒りを低減する能力など)、応答レイテンシ、ユーザ満足度レーティングまたはスコアなどを含み得る。エージェントが、ネットワークデバイス705とボット720との間の会話に介入することを必要とされる場合、通信サーバ710は、会話に介入し、肯定的なユーザ経験の増加された可能性を提供し得る、特定のエージェントを選択するために、機械学習モデルまたは人工知能アルゴリズムを使用し得る。
【0098】
[00112]いくつかの実装形態では、通信サーバ710は、ネットワークデバイスとボットとの間の会話に介入するためのエージェントを選択するために使用される機械学習モデルまたは人工知能アルゴリズムをトレーニングまたは更新するために、ネットワークデバイス705からのフィードバックを使用する。たとえば、ネットワークデバイス705が、選択されたエージェントとの否定的な経験を示すフィードバックを提供する場合、通信サーバ710は、受信されたフィードバックに関連付けられた会話と同等または同様の特性を有する会話についてのエージェントの選択の可能性を低減するために機械学習モデルまたは人工知能アルゴリズムを更新し得る。代替として、ネットワークデバイス705が、選択されたエージェントとの肯定的な経験を示すフィードバックを提供する場合、通信サーバ710は、同等または同様の会話に肯定的に対処するエージェントの能力をさらに強化するために機械学習モデルまたは人工知能アルゴリズムを更新し得る。
【0099】
[00113]いくつかの実装形態では、通信サーバ710は、ネットワークデバイス705から受信されたメッセージに対する応答を推奨または予測し得る。たとえば、通信サーバ710は、ネットワークデバイス705から受信されたメッセージを評価し、それらの受信されたメッセージに対する応答を推奨するために機械学習モデルを使用することができる、メッセージ推奨システムを含むことができる。メッセージ推奨システムは、エージェントがネットワークデバイス705と通信するのを支援するために、推奨されるメッセージのセットを端末デバイス715上に表示することができる。
【0100】
[00114]図8は、いくつかの実施形態による、通信サーバ805のブロック図を示す。通信サーバ805は、図7の通信サーバ710の内部構成要素を示し得る。通信サーバ805は、プロセッサ810とメモリ815とを含む、中央処理ユニット(CPU)807を含み得る。通信サーバ805は、ストレージ820をさらに含み得る。
【0101】
[00115]CPU807は、コンピュータ可読媒体825に結合され得る。コンピュータ可読媒体805は、任意の数のモジュールおよびエンジンを有し得る。5つのモジュールおよびエンジンが示されているが、本明細書で説明される機能を実施するために、より少数のまたはより多数のモジュールまたはエンジンがコンピュータ可読媒体825において実装され得ることが企図される。図8に示されているように、コンピュータ可読媒体825は、意図決定エンジン827と、ボット転送エンジン829と、フィードバックモジュール831と、ユーザインターフェース(UI)構成エンジン833と、機械学習エンジン835とを含み得る。
【0102】
[00116]意図決定エンジン827は、プロセッサ810とともに、会話についての要求を受信するように構成され得る。要求は、ユーザによって動作されるネットワークデバイスから受信され得る。要求は、たとえば、エージェントによって動作される端末デバイスにおいて受信され得る。意図決定エンジン827は、プロセッサ810とともに、会話の意図を決定するようにさらに構成され得る。意図は、要求から決定され得る。たとえば、要求は「私の注文状況を希望します(I want my order status)」と述べ得る。その意図は、「order_status」として要求から抽出され得る。
【0103】
[00117]較正エンジン837は、本明細書で説明されるように、双方向通信セッション中にボットまたは他のリソースの選択を管理するように構成され得る。たとえば、意図決定エンジン827からの意図を使用して、通信サーバ805にとって利用可能なおよび識別された意図に関連のある、ボットのサブセットが識別され得る。ボットのサブセットへの初期クエリが、ボットのサブセットから受信された信頼性スコアのセットを生じることができる。較正エンジン837は、次いで、双方向通信セッションにおいて使用されるべきボットまたはリソースのリアルタイム選択を提供するために、機械学習エンジン835により生成されたマッピングデータを使用することができる。たとえば、システムが、入力データをパースして、意図として「注文状況」を識別した場合、システムは、その意図に関連のある5つの利用可能なボットを識別し得る。ボットは、0.9、0.85、0.6、0.5、および0.5のそれぞれの信頼性スコアを返すことができる。最も高い返された信頼性スコアをもつボットを選択するのではなく、システムは、前の双方向通信からのフィードバックに基づいて動的較正マッピングをこれらのスコアに適用することができる。マッピングは、たとえば、0.9の信頼性スコアが0.78のマッピングされたスコアに調整されることと、0.85のスコアが0.84のマッピングされたスコアに調整されることとを生じることができる。残りのボットについてのマッピングされたスコアがこれよりも低い場合、0.84の信頼性スコアと0.84のマッピングされたスコアとをもつボットが使用のために選択され得る。
【0104】
[00118]このボットの使用中に、双方向通信への参加者(たとえば、顧客またはエージェントのいずれか)は、ボットに関するフィードバックを提供し得る。肯定的なフィードバックは、調整がより肯定的にされることを生じることができる(たとえば、同じまたは同様の入力データについて、次のマッピングは、0.85から、0.84へではなく、0.85へのものであり得る)。否定的なフィードバックは、調整がより否定的にされることを生じることができる(たとえば、次のマッピングは、0.85から、0.84ではなく、0.83へのものであり得る)。否定的なフィードバックは、さらに、較正エンジン837とボット転送エンジン829との組合せを使用して、現在の双方向通信について、リアルタイムで、異なるボットの動的選択をトリガすることができる。
【0105】
[00119]ボット転送エンジン829は、プロセッサ810および較正エンジン837とともに、異なるタイプのボットのセットからのあるタイプのボットへの会話を動的に選択するか、変更するか、または転送するための、1つまたは複数のオプションを自動的に提供するように構成され得る。たとえば、双方向通信は、エージェントと顧客とが交互に通信を送ることを伴い得る。そのような通信中に、通信の分析は、信頼性スコアについてボットに送られる入力データを伴うことができる。入力データは、NLU処理トリガおよび意図分析によってまたはエージェントからの要求によって識別され得る。しきい値を上回る信頼性スコアが生成されたとき、エージェントからあるタイプのボットに会話を転送するためのオプションがエージェントに提示され得る。このオプションがエージェントによって選択されたとき、対応するタイプのボットとの会話が促進され得る。会話は、手動でまたは自動的にのいずれかで、エージェントによって動作される端末デバイスからボットに転送され得る。自動転送は、たとえば、機械学習技法または過去の経験から決定される、特定のタイプのボットによる解決の高い信頼性を伴う意図について行われ得る。いくつかの実装形態では、ボット転送エンジン829が、高い信頼性を伴って、意図が特定のタイプのボットによって解決され得ると決定した場合、ボット転送エンジン829は、特定のタイプのボットに会話を転送するためのオプションを提供することなしに、エージェントによって動作される端末デバイスから特定のタイプのボットに会話を自動的に転送し得る。これは、ボットとの会話を促進するためのオプションの手動選択の必要をなくし得る。いくつかの実装形態では、ボット転送エンジン829は、あるタイプのボットに会話を転送するための上述の1つまたは複数のオプションを提示すべきかどうかを決定するために、信頼性しきい値を利用し得る。たとえば、ボット転送エンジン829が、特定の意図が、あるタイプのボットによる解決についての高い信頼性スコアを有すると決定し、高い信頼性スコアが信頼性しきい値を超える場合、ボット転送エンジン829は、ボットに会話を転送するためのオプションを提示することなしに、この特定のタイプのボットに会話を自動的に転送し得る。代替として、ボット転送エンジン829が、特定の意図が、信頼性しきい値を超えない、あるタイプのボットによる解決についての信頼性スコアを有すると決定した場合、ボット転送エンジン829は、そのボットに会話を転送するための1つまたは複数のオプションを提示し得る。通信内で異なるボットを使用するための、ボット転送エンジン829の動作は、通信の他の態様の通信サーバ805管理と同時に行われ得る。たとえば、顧客が通信の一部として応答をタイピングまたは送信している間、ボット転送エンジンは、同時に、前のデータを処理しており、通信の一部として、新しいボットに通信を転送しているか、または新しいボットの実行を始動していることがある。顧客からの新しい通信が、ボット転送エンジン829によって行われた転送決定を動的に知らせるためにリアルタイムで分析され得、転送決定は、現在のボットが通信のための動作を実施しているのと同時に行われ得る。したがって、ボットは、通信のための動作を実行している(たとえば、通信テキストまたは他の通信応答を生成している)ことがあり、ボット転送エンジン829は、新しいボットを選択している。いくつかの態様では、ボット転送エンジン829によって新しいボットが選択された後に、新しいボットは、現在のボットが新しいボットへの転送より前に最終通信を終了している間に、双方向通信の一部として後続の出力または応答を構築するために通信データの分析を始めることができる。いくつかの態様では、ボット転送エンジン829は、複数のボットが通信の一部として同時に動作するべきであると決定することができ、ボットは、並列に分析動作を実施しながら顧客と連続的に通信するように構成され得る。そのような動作では、あるボットは、通信を支援するための処理リソースを、異なるボットも、同じ通信を支援するための処理リソースを使用しているのと同時に、使用することができる。ボット転送エンジン829は、次いで、顧客に通信されるべき異なるボットからの出力を管理することができる。さらに、本明細書で説明されるように、任意の数の顧客が通信サーバ805と同時に対話することができ、したがって、(1つまたは複数の)ボット転送エンジン829は、顧客との任意の数の双方向通信のためのボット選択および使用を同時に支援するように動作することができる。
【0106】
[00120]いくつかの事例では、ボット転送エンジン829は、会話についての要求から決定された意図に基づいて、1つまたは複数のタイプのボットを識別し得る。たとえば、ボット転送エンジン829は、異なるタイプのボットが所与の意図に対する満足な応答を作り出す可能性または確率に対応する信頼性スコアを計算するために使用される、信頼性スコアアルゴリズムを実装し得る。信頼性スコアは、割合または値が低いほど、その応答が着信メッセージのための良好な予測である可能性が低くなり、割合が高いほど、その応答が着信メッセージのための良好な予測である可能性が高くなる、割合または他の値であり得る。ユーザが特定のタイプのボットとの会話に関して不満足を表現した場合、インテリジェントルーティングシステムは、信頼性スコアアルゴリズムを更新し得、したがって、同等または同様の意図について、特定のタイプのボットはより低い信頼性スコアを割り当てられ、これは、それにより、それらの同等または同様の意図が端末デバイス(たとえば、ライブエージェント)または別のタイプのボットによって適切に扱われる可能性がより高いという指示として働く。別の非限定的な例として、ユーザが特定のタイプのボットとの会話に関して満足を表現した場合、インテリジェントルーティングシステムは、信頼性スコアアルゴリズムを更新し得、したがって、同等または同様の意図について、特定のタイプのボットは等しいかまたはより高い信頼性スコアを割り当てられ、これは、それにより、それらの同等または同様の意図がその特定のタイプのボットによって適切に扱われる可能性がより高いという指示として働く。
【0107】
[00121]いくつかの実装形態では、ボット転送エンジン829は、エージェントによって動作される端末デバイスからあるタイプのボットに会話を転送するための1つまたは複数のオプションを動的に提供し得る。たとえば、ボットを推奨し、フィードバックを受信するために端末デバイス上に表示され得るインターフェースを介して、ボット転送エンジン829は、識別された意図を扱うことが可能であり得るタイプのボットについての1つまたは複数の推奨をエージェントに提供し得る。各推奨は、意図が、対応するタイプのボットを使用して解決可能である可能性を示す、対応する信頼性スコアを含み得る。要求を扱うことが可能であり得る各タイプのボットについての信頼性スコアを提供することに加えて、ボット転送エンジン829は、インターフェースを介して、そのタイプのボットに通信セッションまたは会話を転送するためのオプションをエージェントに提供し得る。エージェントが、特定のタイプのボットに通信セッションを転送するためのオプションを選択した場合、ボット転送エンジン829は、この特定のタイプのボットに通信セッションを転送し得る。ボット転送エンジン829は、1つまたは複数のファクタに基づいて、特定のタイプのボットを選択し得る。たとえば、ボット転送エンジン829は、要求をサブミットしたユーザとの通信セッションに入るために十分な帯域幅を有する特定のタイプのボットを選択し得る。ボット転送エンジン829は、追加または代替として、ユーザの1つまたは複数の特性に基づいて、特定のタイプのボットを選択し得る。たとえば、ボット転送エンジン829は、ユーザの言語で通信するように構成された特定のタイプのボットを選択し得る。
【0108】
[00122]いくつかの実装形態では、ボット転送エンジン829は、あるタイプのボットに会話を転送するための各推奨に関するフィードバックを提供するためのオプションをエージェントにさらに提供し得る。たとえば、エージェントが、特定のタイプのボットに会話を転送するための特定の推奨が不適切である(たとえば、そのタイプのボットが、識別された意図を扱うことができない、正しくない意図が識別された、など)と決定した場合、ボット転送エンジン829は、所与の意図および/または同様の意図について異なるタイプのボットについて、信頼性スコアを計算し、信頼性スコアに基づいて推奨を生成するために利用される機械学習アルゴリズムまたは人工知能をトレーニングするか、またはさもなければ更新するために、このフィードバックを使用し得る。これは、より低い信頼性スコアが同等または同様の意図について機械学習アルゴリズムまたは人工知能によってそのタイプのボットに割り当てられることを生じ得る。代替として、エージェントが、通信セッションが転送されるべきである特定のタイプのボットを選択した場合、ボット転送エンジン829は、特定のタイプのボットを利用するためのそれの推奨に関する肯定的なフィードバックの指示として、この選択を使用し得る。このフィードバックは、同等または同様の意図について特定のタイプのボットの使用についての信頼性スコアおよび推奨をさらに検証するように、上記で説明された機械学習アルゴリズムまたは人工知能をトレーニングするか、またはさもなければ更新するために使用され得る。
【0109】
[00123]いくつかの実装形態では、エージェントが、特定のタイプのボットに会話を転送するための特定の推奨を拒否した場合、ボット転送エンジン829は、識別された意図に基づいて、他のタイプのボットに会話を転送するための1つまたは複数の新しい推奨を生成するために、機械学習アルゴリズムまたは人工知能を使用し得る。上述のように、エージェントが、特定のタイプのボットに会話を転送するための特定の推奨を拒否した場合、ボット転送エンジン829は、所与の意図および/または同様の意図について異なるタイプのボットについて、信頼性スコアを計算し、信頼性スコアに基づいて推奨を生成するために利用される機械学習アルゴリズムまたは人工知能をトレーニングするか、またはさもなければ更新するために、このフィードバックを使用し得る。ボット転送エンジン829は、識別された意図についての新しい推奨をエージェントに提供するために、更新された機械学習アルゴリズムまたは人工知能を使用し得る。したがって、ボット転送エンジン829は、その意図と、機械学習アルゴリズムまたは人工知能を使用して計算された異なるタイプのボットについての信頼性スコアとに基づいて、これらの異なるタイプのボットに会話を転送するための推奨をエージェントに動的および連続的に提供し得る。
【0110】
[00124]異なるタイプのボットは、自動化された様式でいくつかの意図を扱うことが可能であり得る。たとえば、「order_status」という意図の場合、注文状況ボットが、提供された注文番号、顧客名、顧客電子メールアドレス、IPアドレスなどを使用して、注文情報をプルすることが可能であり得る。注文情報が決定されると、注文状況は、注文状況ボットによって確かめられ、会話においてユーザに提供され得る。別の例として、「payment_status」という意図の場合、支払状況ボットが、提供されたアカウント番号、顧客名、顧客電子メールアドレス、IPアドレスなどを使用して、請求情報をプルすることが可能であり得る。さらに、請求情報を使用して、支払状況ボットは、顧客が支払をサブミットしたかどうか、サブミットされた支払が処理されたかどうかなどを決定し得る。他のタイプのボットが、より複雑な技術的問題を扱うこと(たとえば、ハードウェアまたはソフトウェア問題をトラブルシュートすること、不正報告に対処することなど)が可能であり得る。
【0111】
[00125]いくつかの実施形態では、ネットワークデバイスとボットとの間の会話は、端末デバイスを動作させるエージェントが会話に介入することを可能にするために、端末デバイスにおいて表示され得る。エージェントは、会話についてのユーザの満足度の計算された感情スコアに基づいて、会話に介入することを決定し得る(または、会話は、端末デバイスに自動的に転送され得る)。たとえば、ユーザが会話に満足している場合、感情スコアがそれを上回るべきである、しきい値が存在し得る。感情スコアがしきい値を下回る場合、会話は手動でまたは自動的に端末デバイスに転送され得る。
【0112】
[00126]感情スコアは、感情スコアを生成するための入力として会話中に交換されるメッセージを利用するように構成され得る、機械学習エンジン835によって計算され得る。機械学習エンジン835は、教師あり学習技法を使用してトレーニングされた、1つまたは複数の機械学習モデルを利用し得る。たとえば、入力メッセージのデータセット、ならびに対応する感情および感情スコアが、機械学習モデルのトレーニングのために選択され得る。いくつかの例では、入力メッセージは、通信サーバ805の管理者、ユーザ、エージェント、および他のソースから取得され得る。1つまたは複数の機械学習モデルは、1つまたは複数の機械学習モデルに供給された入力メッセージに基づいて、1つまたは複数の機械学習モデルが、会話についての感情および対応する感情スコアを決定するために使用され得る有用な出力を提供しているかどうかを決定するために評価され得る。この評価に基づいて、1つまたは複数の機械学習は、1つまたは複数の機械学習モデルが所望の結果を生成する可能性を増加させるために修正され得る(たとえば、1つまたは複数のパラメータまたは変数が更新され得る)。
【0113】
[00127]いくつかの事例では、1つまたは複数の機械学習モデルは、ネットワークデバイスとボットとの間の特定の会話についての感情を決定するために、1つまたは複数のクラスタリングアルゴリズムを利用し得る。たとえば、機械学習エンジン835は、極性に関連付けられ得るテキストのアンカーまたは他のストリングを識別するために、ネットワークデバイスとボットとの間の会話中に交換されたメッセージを抽出し得る。機械学習エンジン835は、抽出されたメッセージが既知の感情に関連付けられた特定のクラスタに対応するかどうかを決定し得る。クラスタはまた、会話についてのユーザの満足度の感情スコアに関連付けられるか、またはさもなければ、それを決定するために使用され得る。たとえば、各クラスタは、特定の感情に対応することに加えて、上記で説明されたような、極性を示し得る特定のスコアに関連付けられ得る。
【0114】
[00128]いくつかの実装形態では、ネットワークデバイスとボットとの間の会話は、端末デバイスを動作させるエージェントが、会話を評価し、その会話に手動で介入することを必要とすることなしに、端末デバイスに自動的に転送され得る。たとえば、特定の会話についての感情スコアが感情スコアしきい値を下回る場合、ボット転送エンジン829は、ライブエージェントが会話に介入することを引き起こすために、ボットから端末デバイスに会話を自動的に転送し得る。いくつかの事例では、ボット転送エンジン829は、端末デバイスを動作させるエージェントが、会話に介入することまたは端末デバイスに会話を自動的に転送することを可能にするために、端末デバイスにおいて会話を提示すべきかどうかを決定するために、複数のしきい値を利用し得る。たとえば、会話についての感情スコアが、第1の感情スコアしきい値を下回るが、より低い第2の感情スコアしきい値を下回らない場合、ボット転送エンジン829は、エージェントが、必要であれば、会話に介入することを可能にするために、端末デバイスにおいて会話を提示し得る。しかしながら、感情スコアが第1の感情スコアしきい値と第2の感情スコアしきい値の両方を下回る場合、ボット転送エンジン829は、エージェント介入のために端末デバイスに会話を自動的に転送し得る。あるボットの信頼性スコアの代わりに、マッピングされたスコアを使用して選択されたそのボットについての感情スコアは、マッピングについてのフィードバックとして使用され得る。高い感情スコアはマッピング調整の値を増加させ得、低い感情スコアはマッピング調整の値を低下させ得る。
【0115】
[00129]フィードバックモジュール831は、プロセッサ810とともに、会話に関するフィードバックを受信するように構成され得る。そのようなフィードバックは、ボットを変更することなしに、ローカルデータを使用してボットについてのマッピング調整を変更するために、較正エンジン837にフィードされ得る。フィードバックは、端末デバイスを動作させるエージェントによって、自動感情システムによって、顧客によって、または任意の他のそのようなソースによって提供され得る。フィードバックは、ボットが、どの程度良好に、意図を識別したか、および/またはネットワークデバイス上でユーザによって表現された要求を扱ったかを反映し得る。さらに、フィードバックモジュール831は、会話に関与したユーザからフィードバックを取得し得る。たとえば、会話の終了時に、フィードバックモジュール831は、ユーザによって利用されるネットワークデバイスに、ボットおよび/またはライブエージェントとのそれの会話に関するフィードバックを提供するための要求を送信し得る。この要求は、それを通して、ユーザが、会話に関するそれの感情を示し、ならびにボットおよび/またはライブエージェントの性能評価を提供し得る、調査の形態で提供され得る。いくつかの事例では、フィードバックモジュール831は、会話中に会話に関与したユーザからフィードバックを取得し得る。たとえば、フィードバックモジュール831は、ユーザの感情を決定するために、会話中にユーザの応答を評価し得る。たとえば、フィードバックモジュール831は、ユーザメッセージが、極性に関連付けられたアンカーを含むかどうかを識別するために、ユーザメッセージに関連付けられたテキストまたは非テキスト属性を分析し得る。例示的な例として、ユーザが、メッセージ中で、ユーザが「苛立っている」ことを示すか、または提案された解決策が正しくないこと(たとえば、「いいえ」応答など)を示す場合、フィードバックモジュール831は、メッセージが否定的極性を表すと決定し、したがって、ボットが、満足のいく様式で、意図を識別すること、および/またはユーザによって表現された要求を扱うことに失敗したと決定し得る。フィードバックは、任意の好適な形態で受信され得る。たとえば、フィードバックは、文字で、数字で、ワードを通して、アイコンまたはグラフィックスの選択を通してなどで表現され得る。フィードバックを提供し、会話のビューをレンダリングするために、エージェントおよび/またはユーザに表示されるインターフェースは、プロセッサ810とともにユーザインターフェース構成エンジン833によって扱われ得る。
【0116】
[00130]機械学習エンジン835は、プロセッサ810とともに、会話、識別された意図、および提供されたフィードバックをデータベースにフィードし、どの程度良好にあるタイプのボットおよび/またはライブエージェントがその会話を扱ったかに関する推論を引き出すためにデータを分析するように構成され得る。このデータは、他の履歴会話データおよびフィードバックとともに、1つまたは複数の将来の要求に関連付けられた将来の意図を決定するために使用され得るモデルを構築するために使用され得る。たとえば、特定のタイプのボットが、ユーザの満足のいくように「order_status」意図を成功裏に扱った場合、将来の「order_status」意図もその特定のタイプのボットに転送され得る。さらに、「私の注文状況を希望します」と述べる将来の要求は、肯定的なフィードバックに基づいて「order_status」意図と自動的に相関され得る。しかしながら、特定のタイプのボットが、ユーザの満足のいかないように意図を不成功に扱った場合、前述の意図と同様の将来の意図は、これらの将来の意図がライブエージェントによって扱われるために端末デバイスに転送されるか、または、意図を扱うのにより適していることがある別のタイプのボットに、そのタイプのボットについてのおよび意図に基づいて計算された信頼性スコアに基づいて、転送され得る。
【0117】
[00131]一例として、ユーザが「delivery_status」の意図を伴ってエージェントに初めて接触したとき、システムは、関連のあるボットに問い合わせ、較正(たとえば、マッピング)システムの現在のリアルタイム状況に基づいて、そのボットから受信された信頼性値を調整し、注文状況ボットについてのマッピングされたスコアに基づいて、利用可能なボットから注文状況ボットを選択し得る。ユーザは、次いで、(たとえば、双方向通信の一部として)双方向通信中にリアルタイムで注文状況ボットに自動的にリダイレクトされ得る。双方向通信が完了した後に、ボットへの転送を管理したエージェントは、注文状況ボットが、会話を転送するのに適したボットであったかどうか、および注文状況ボットが意図を解決することが可能であったか否か、および注文状況ボットがアクティブであったときに双方向通信がどの程度良好に進んだかのエージェントレーティングなど、対話の1つまたは複数の態様に関するフィードバックを提供し得る。さらに、ユーザは、注文状況ボットがユーザの意図を成功裏に解決したかどうか、注文状況ボットがユーザのメッセージに応答したかどうか、注文状況ボットからの応答が、その意図、および/またはユーザによってサブミットされた特定のメッセージに関連があったかどうかなど、対話の同様のまたは異なる態様に関するフィードバックをも提供し得る。注文状況ボットが正しいボットでなかったこと、会話が自動的に転送されるべきでなかったこと、または注文状況ボットが意図を解決することができなかったことを示し得る、エージェントが会話に介入しなければならなかったか否かを観測することによってなど、エージェントおよび/またはユーザからの明示的なフィードバックなしに、対話に関するフィードバックを収集するための他の技法が使用され得る。フィードバックは、将来の対話に適用され得るモデルをトレーニングするために使用され得る。そのような情報は、次いで、注文状況ボットについてのマッピング値を調整するために使用され得る。更新された調整は、次いで、同じまたは同様の入力データ(たとえば、「配達状況」、あるいはNLUによって識別された配達状況意図にマッチするかまたは関連付けられた入力)に関連付けられたボットの将来の選択のために動的に使用されることになる。モデルは、将来の対話に適用された。
【0118】
[00132]図9は、機械学習技法を使用してエンドポイント選択(すなわち、端末デバイスまたはボット)を向上させるためのネットワーク環境900を表すブロック図を示す。ネットワーク環境900は、(ユーザによって動作される)ネットワークデバイス905と、通信サーバ910と、ボット915と、端末デバイス920とを含み得る。通信サーバ910は、ネットワークデバイス905と、少なくとも1つのボット915と、端末デバイス920とが通信することを可能にする通信チャネルの確立を促進することができる。
【0119】
[00133]通信サーバ910は、インテリジェントルーティングシステム925と、メッセージ推奨システム930と、メッセージデータストア935とを含み得る。そのようなシステムでは、インテリジェントルーティングシステム925は、双方向通信中に、信頼性スコアについてボットに問い合わせ、選択されたボットと、エージェント端末との間の通信の選択および転送を管理するための、較正またはマッピングエンジンを含むことができる。インテリジェントルーティングシステム925およびメッセージ推奨システム930の各々は、いくつかの動作を実装するための命令を実行するプロセッサとメモリとをもつ1つまたは複数のコンピューティングデバイスを含み得る。いくつかの実装形態では、インテリジェントルーティングシステム925は、ボット較正を実装し、ネットワークデバイスから受信された通信を適切な宛先にインテリジェントにルーティングするように構成された、ボットであり得る。インテリジェントルーティングシステム925は、1つまたは複数の機械学習技法または人工知能技法が、メッセージのリアルタイムインテリジェントルーティングとともに動的フィードバックを較正およびボット選択動作に提供することを引き起こす、コードを実行するように構成された、1つまたは複数のプロセッサを含み得る。いくつかの実装形態では、インテリジェントルーティングシステム925は、ネットワークデバイス905から受信されたメッセージがボット915によって成功裏に対処され得るかどうかを予測するモデルをトレーニングするために、1つまたは複数の機械学習技法を実行することができる。
【0120】
[00134]非限定的な例として、インテリジェントルーティングシステム925は、通信サーバ910(たとえば、ユーザが様々なデバイスにわたって互いと通信することを可能にするように構成されたネイティブアプリケーション)によって確立または促進された通信チャネルを通してネットワークデバイス905からメッセージを受信し得る。インテリジェントルーティングシステム925は、上記で説明されたいくつかの実施形態に従って、着信メッセージを評価し得る。たとえば、インテリジェントルーティングシステム925は、意図を識別するために、トレーニングされた機械学習モデルを使用して、受信されたメッセージ中に含まれるコンテンツ(たとえば、テキスト、オーディオクリップ、画像、エモーティコン、または他の好適なコンテンツ)を評価し得る。入力データ(たとえば、通信テキストおよび/または意図データ)は、信頼性スコアを受信するために、利用可能なボットに送られ得、インテリジェントルーティングシステム925は、次いで、受信された信頼性スコアを較正することができる。信頼性スコアは、選択されたボット915に通信をダイレクトするために使用され得るか、または、ボットが選択されない(たとえば、マッピングされたスコアがしきい値を超えない、著しく異なるタイプのボットが、しきい値を上回る信頼性スコアを有する、など)場合、通信は、端末デバイス920を使用するエージェントにルーティングされる。インテリジェントルーティングからのデータは、メッセージデータストア935に記憶され、メッセージ推奨システム930を使用して様々なフィードバックシステムと統合され得る。
【0121】
[00135]いくつかの実装形態では、インテリジェントルーティングシステム925は、予測された宛先のネットワークデバイス905に肯定応答を要求し得る。非限定的な例として、インテリジェントルーティングシステム925は、機械学習技法を使用してメッセージを評価し得、評価の結果は、ボット915がそのメッセージについての宛先であるという予測を含み得る。確認するために、インテリジェントルーティングシステム925は、フィードバック信号940を自動的に要求し得る。たとえば、フィードバック信号940は、ネットワークデバイス905が、ボット915がそのメッセージについての正しい宛先であるかどうかを肯定応答するための要求(たとえば、「技術的サポートは正しい宛先ですか?(Is Technical Support the correct destination?)」)を含み得る。ネットワークデバイス905が、ボット915が正しい宛先(たとえば、ネットワークデバイス905を動作させるユーザによって意図された宛先)であるという肯定応答を送信した場合、インテリジェントルーティングシステム925は、受信されたメッセージに厳密なまたはそれと同様のコンテンツ(たとえば、コンテンツ中の10パーセントの差異など、類似性のしきい値)を含む将来のメッセージがボット915にルーティングされるべきであることを予測するように機械学習モデルをトレーニングし得る。しかしながら、インテリジェントルーティングシステム925が、ボット915が、受信されたメッセージについての正しいまたは意図された宛先でなく、むしろ端末デバイス920が正しいまたは意図された宛先であることを示す、フィードバック信号940を受信した場合、インテリジェントルーティングシステム925は、受信されたメッセージに厳密なまたはそれと同様のコンテンツを含む将来のメッセージが(ボット915の代わりに)端末デバイス920にルーティングされるべきであることを機械学習モデルにトレーニングし得る。いくつかの実装形態では、インテリジェントルーティングシステム925は、将来のメッセージを端末デバイス920にルーティングするように機械学習モデルを即時に更新またはトレーニングしないことがあるが、むしろ、インテリジェントルーティングシステム925は、受信されたメッセージと全く同じまたはそれと同様のコンテンツをもつすべての将来のメッセージを端末デバイス920にルーティングする前に、しきい値数の、ボット915への正しくないルーティングの間待機し得る。
【0122】
[00136]メッセージデータストア935は、1つまたは複数のネットワークデバイスから過去に受信されたいくつかのまたはすべてのメッセージを記憶し得る。さらに、メッセージデータストア935は、ネットワークデバイスとの前の通信セッション中に端末デバイスまたはボットによって送信されたいくつかのまたはすべてのメッセージをも記憶し得る。メッセージデータストア935は、通信セッション中にネットワークデバイスによってボットに送信されたいくつかのまたはすべてのメッセージをも記憶し得る。さらに、メッセージデータストア935は、通信セッション中にボットによってネットワークデバイスに送信されたいくつかのまたはすべてのメッセージを記憶し得る。いくつかの実装形態では、メッセージデータストア935は、(たとえば、通信サーバ910で送信されたまたは受信された)処理されたすべてのメッセージのデータベースであり得る。
【0123】
[00137]メッセージ推奨システム930は、メッセージデータストア935において記憶されたメッセージのデータベースを分析し得る。いくつかの実装形態では、メッセージ推奨システム930は、1つまたは複数の機械学習アルゴリズムまたは人工知能アルゴリズムを使用して、メッセージデータストア935において記憶されたメッセージを評価し得る。たとえば、メッセージ推奨システム930は、メッセージデータストア935に記憶されたメッセージのデータベースに対して、K-meansクラスタリング、ミーンズシフト(means-shift)クラスタリング、ノイズをもつアプリケーションの密度ベース空間クラスタリング(DBSCAN:Density-Based Spatial Clustering of Applications with Noise)クラスタリング、混合ガウスモデル(GMM)を使用する期待値最大化(EM:Expectation-Maximization)クラスタリング、および他の好適な機械学習アルゴリズムなど、1つまたは複数のクラスタリングアルゴリズムを実行し得る。いくつかの実装形態では、エージェントを支援するための応答メッセージを予測するために、リカレントニューラルネットワーク(RNN)または畳み込みニューラルネットワーク(CNN)が使用され得る。いくつかの実装形態では、メッセージ推奨システム930は、通信セッション中にネットワークデバイスから受信された着信メッセージに対する応答を予測するためにすべての前のメッセージを評価するために、サポートベクターマシン(SVM)、教師あり、半教師あり、アンサンブル技法、または教師なし機械学習技法を使用し得る。たとえば、メッセージ推奨システム930は、ネットワークデバイスから受信されたメッセージ(あるいはボットまたは端末デバイスから通信サーバ910において受信されたメッセージ)のコンテンツを評価し、評価の結果を、メッセージデータストア935に記憶された前のメッセージの1つまたは複数のクラスタと比較し得る。クラスタが識別されると、メッセージ推奨システム930は、信頼性しきい値に基づいて、最も関連のある応答メッセージを識別することができる。たとえば、(たとえば、ネットワークデバイス905から通信サーバ910において受信された)着信メッセージは、着信メッセージのコンテンツに基づく技術的問題に対応し得る。メッセージ推奨システム930は、着信メッセージが、着信メッセージのコンテンツの評価(たとえば、テキスト評価)に基づく技術的問題に対応することを識別することができる。メッセージ推奨システム930は、技術的問題に関連付けられたメッセージのクラスタを識別するために、メッセージデータストア935にアクセスすることができる。メッセージ推奨システム930は、信頼性しきい値に基づいて、メッセージのクラスタ内の1つまたは複数の応答メッセージを選択することができる。非限定的な例として、信頼性アルゴリズムは、信頼性スコアを生成するために実行され得る。信頼性スコアは、割合が低いほど、その応答が着信メッセージのための良好な予測である可能性が低くなり、割合が高いほど、その応答が着信メッセージのための良好な予測である可能性が高くなる、割合値であり得る。最小信頼性しきい値は、各発見されたパターンに関連付けられた確実性または信用性の測度として定義され得る。さらに、信頼性アルゴリズムの一例は、アプリオリアルゴリズム、2つのデータセット間の類似性を示す類似性アルゴリズム、および他の好適な信頼性アルゴリズムであり得る。
【0124】
[00138]図10は、本明細書で説明される例による、双方向通信セッションと、関連付けられた入力データとの態様を示す。図10は、上記で説明された、ボット較正の態様を示す。図10のチャートでは、入力データ1010(たとえば、双方向通信の一部としてのユーザ入力)が受信される。いくつかの例では、ユーザ入力はテキストデータであるが、他の例では、ユーザ入力は、音声データと、テキストデータにコンバートされた音声データと、自然言語処理システムからの構造化された出力データとを含む、任意のそのようなデータであり得る。次いで、ボットA 1020A、ボットB 1020B、ボットC 1020C、およびボットD 1020Dとして示されている、複数のボット1020が、信頼性スコアについて問い合わせられる。ボットによって提供される信頼性スコアは、入力データに対する各ボットの応答の独立した(たとえば、不均一な)表現である。信頼性スコアが受信されたとき、それらは、マッピングされたスコアを生成し、マッピングされたスコアに基づいてボットを選択するために、(たとえば、ボットスコアマッパを使用する)ボット較正器1022において使用される。図示のように、各ボット1020は、ボット較正器1022の一部としての、関連付けられたボットスコアマッパ1030を有する。他の実装形態では、共有ボットスコアマッパ1030が、異なるボットについての相対信頼性スコアを決定するために使用され得る。いくつかの態様では、使用されるボット較正器は、較正されているボットのセットに基づき得る。たとえば、ボットA 1020AとボットB 1020Bとのみを使用する実装形態では、ボットA~D 1020A~1020Dのすべてを使用する別のシステムのためのものとは異なる較正器または較正が使用され得る。そのような異なる較正器は、ボットの特定のセットと比較して相対較正スコアを生成するように、ボットの以前の使用からのフィードバックとボットを使用した通信からの結果とに基づいて、独立してトレーニングされ得る。他の実装形態では、一般的な較正システムが、システム動作の所与のインスタンスにおいて特定のボットが使用されることにかかわらず、そのシステムにとって利用可能なすべてのボットのために使用される。動作1040において、ボット較正器は、(1つまたは複数の)ボットマッパ1030からの、マッピングされたスコアのうちの最も高いマッピングされたスコアを識別し、最も高いマッピングされたスコアに関連付けられた、複数のボット1020のうちのボットを選択する。動作1050において、最も高いマッピングされたスコアをもつ選択されたボットは、ユーザにルーティングするために査定される。いくつかの態様では、これは、単に、ボットをユーザに接続すること(たとえば、ここで、ボットがユーザにルーティングされ、次いで、動作1080において、双方向通信を促進するために使用される)を伴うことができる。他の例では、ユーザと直接ボット対話しなければならないかどうかを決定するための、あるいは動作1060および1065におけるボットの使用基準および/またはエージェント査定を有するための、追加の論理が使用され得る。促進は、選択されたボットに双方向通信をリダイレクトすること(たとえば、双方向通信が、顧客と、選択されたボットを実行するデバイスとの間の通信になるように、エージェントまたは扱っているボットから、選択されたボットに双方向通信をルーティングすること)を伴うことができる。動作1090において、選択されたボットについてのボットマッピングを機械学習または他のフィードバック機構が更新するために使用されるように、選択されたボットに関する情報が、双方向通信中にリアルタイムで集められ得る。フィードバック情報は、動作1085において分析された双方向通信中のデータのメタデータ、調査、または分析を含むことができる。フィードバック情報は、動作1065における、エージェントによるボット性能および選択の分析をも含むことができる。図10の例では、選択されたボットを使用するように双方向通信をルーティングした後に、マッピングされたスコアは、選択されたボットが使用されるべきであるかどうかを決定するために、ボット使用基準に対して検査される。ボット使用基準は、動作1060において、ボット固有しきい値であり得る。しきい値がエージェント分析をトリガした場合、エージェントは、追加のフィードバックを提供するために、動作1065において、データ(たとえば、入力データ、ボット動作または機能の説明、あるいはボットに関する他のデータ)を分析する。いくつかのそのような例では、エージェントが、選択に異議を唱えるか、または否定的なフィードバックを提供した場合、別のボットが選択され得、ボット較正器中のボット固有情報は、入力データまたは同様のデータ(たとえば、同様の意図値をもつ入力データ)と、選択されたボットとの間の関連付けを否定的に調整するために更新され得る(たとえば、それのボットスコアマッパ1030が、選択されたボットについてのマッピングされたスコアを生成する)。動作1060において、ボット使用基準は、選択されたボットが基本エラー検査または妥当な関連性検査を満たすかどうかを決定するために、(たとえば、単独での、または他のデータと組み合わせた)信頼性スコアまたはマッピングされた信頼性スコアに基づく任意の基準であり得る。選択されたボットが使用検査に失敗した場合、ボット較正器は、選択されたボットを、考慮することから除外し、別のボットを選択するために動作1040に戻ることができる。いくつかの例では、しきい値数のボット(たとえば、2つのボット、3つのボット、5つのボットなど)が使用基準を満たすことに失敗した場合、システムは、ボットまたは関係する情報が自動システムを通して利用可能でないと仮定し、入力データのNLU分析に基づいて、現在の人間エージェントとの双方向通信を維持するかまたは人間エージェントに通信をルーティングすることができる。
【0125】
[00139]いくつかの例では、動作1050において、選択されたボットにユーザをルーティングするのではなく、介入分析が実施され得る。介在分析は、手動エージェント分析、またはしきい値に対する自動検査であり得る。いくつかの例では、選択されたボットが、しきい値を下回るマッピングされた信頼性スコアを有する場合、エージェントは、ユーザがボットにルーティングされる前に、ボットの選択を確認するために使用され得る。いくつかの例では、エージェントが、(1つまたは複数の)スコアマッパ1030によって提供されたマッピングされたスコアからの上位ボットを選択または拒否するために、複数のボットが選択され、エージェントに送られる。いくつかの例では、分析が、識別されたボットにおける不規則性を識別するために、上位のマッピングされたスコアに関して実施される。たとえば、複数の無関係のボットが、あるしきい値を上回るマッピングされたスコアを有する場合、エージェントは、選択されたボットが双方向通信に適していることを確認するために使用され得る。
【0126】
[00140]いくつかの例では、サーバデバイスまたはサーバシステムが、通信の所与のインスタンスまたはタイプに関連付けられた、通信の現在の状況に応じて、図10で説明される分析の多くの異なるインスタンスを同時に実施し、異なるインスタンスは異なるステップを同時に実施することができる。たとえば、上記で説明されたような、いくつかの意図値に関連付けられたいくつかの通信は、いくつかのボットが、異なる顧客意図について異なる性能を提供することができるので、関連付けられたボットスコアの異なるセットを有することができる。通信サーバが、異なる基準(たとえば、意図値、顧客問題値など)についての複数の異なるボット較正セッションをアクティブに管理することができる。いくつかのそのようなシステムでは、異なる基準についてのボットスコアマッピングが、同時に異なる基準について、動的におよびリアルタイムで実施され、ボットスコア更新および基準は、異なる基準について別個に使用され得る。次いで、異なる基準についての、異なるボット較正器に対する更新が、所与の基準についてのデータが、関連付けられた通信セッションから集められるので、同じデバイスまたはシステムによって同時に実施され得る。
【0127】
[00141]一例では、ボットA 1020Aは、販売についてのアポイントメントスケジューリングを支援するボットであり得、ボットB 1020Bは、サービス呼についてのアポイントメントスケジューリングを支援するボットであり得、ボットC 1020Cは、製品「ウィジェット」のためのデータベースから情報を見つけることを支援するボットであり得、ボットD 1020Dは、ユーザを技術サポートに接続することを支援するボットであり得る。ユーザ入力は、顧客からコールセンターへの音声入力であり得、これは、音声-テキストシステムによってテキストにコンバートされ、および「私のウィジェットに関する問題についての支援をスケジュールするのに助けが必要です(I need help scheduling assistance for a problem with my widget)」として入力される。この情報は、ボット1020の各々にサブミットされ得、各ボットは、較正されていない関連性スコアを出力することができる。たとえば、ボットA 1020Aは、200のスコアを返し得、ボットB 1020Bは、9のスコアを返し得、ボットCは、50のスコアを返し得、ボットDは、15のスコアを返し得る。次いで、ボットA~Dのためのボットマッパ1030は、ボット較正器1022の一部としてスコアを受け付け、正規化されたスコアを出力することができる。ボットA 1020Aからのスコアは、1000のスケールに基づき、200の標準化されたスコアから90の調整された標準化されたスコアへの、同様の入力データをもつ履歴データに基づく調整を伴って、スコアマッパによって、1000の標準化されたスケールにマッピングされ得る。スコアマッパ中の標準化されたスコアは、単にスコアのベーススケールを標準化したスコアであり得る(たとえば、20の最大スコアから、1000の最大スコア、または任意の他のそのような最大スコアに変更する)。調整は、スコアをシフトするためにフィードバックを使用する、履歴データに基づく機械学習駆動型調整であり得る。たとえば、どのあるボットが選択されるか、フィードバックデータが、ボットがユーザ入力に適していなかったことを示し、スコアマッパは、同様のユーザ入力データが将来において受信されるときにそのボットについての否定的調整値を作成するための入力を受信することができる。
【0128】
[00142]例に戻ると、ボットBからのスコアは、10のスケールに基づき得、スコアマッパ1030は900の標準化されたスコアを生成することができ、前の肯定的結果に基づく、950の調整されたスコアを伴う(たとえば、入力データからの「支援をスケジュールする(scheduling assistance)」というサブタームを、ボットBのためのスコアマッパ1030において肯定的調整を作成するために使用される、履歴データ中の肯定的結果にマッピングする)。ボットCからのスコアは、100のスケールに基づき得、ボットマッパは500の標準化されたスコアを生成することができ、500の調整されたスコアを伴う(たとえば、履歴データに基づく調整なし)。ボットDからのスコアは、20のスケールに基づき、750の標準化されたスコアを生成し得、(「私のウィジェットに関する問題(a problem with my widget)」)に関連付けられた履歴データに基づく、850の調整されたスコアを伴う。
【0129】
[00143]ボット較正器1022は、次いで、最も高い調整された標準化されたスコアを有するボットを識別することができ、これは、この状況では、1000のうち950の調整されたスコアをもつ、ボットBである。動作1050において、ボットルーティングは、追加の基準について、選択されたボットの特性を分析することができる。いくつかの実装形態では、ボットは、動作1080においてボット/ユーザ会話を進めるためにユーザに直接ルーティングされ得る。他の実装形態では、追加の基準が実装され得る。たとえば、クライアント(たとえば、ボットと「ウィジェット」製品とに関連付けられた業者)が、自動ボット(たとえば、ボットC)が、人間エージェントに関連付けられたボット(たとえば、人間エージェントとのスケジューリングまたは接続を伴う、ボットA、B、およびD)より前に使用されるべきであるという基準を実装した場合、動作1060において、ボットBは、人間エージェントに関連付けられたものとして拒否されることになり、ボットCは、自動ボットが使用されるべきであるという基準に基づいて選択されることになる。いくつかの態様では、動作1060の基準分析の一部として、人間エージェントは、ユーザ入力1010と、追加の情報(たとえば、ユーザ入力1010に関連付けられた顧客が、ウィジェットを修復することに関する情報を繰り返し要求した履歴)とを分析し、スケジューリングボットBが使用されることを可能にするために使用基準をオーバーライドすることができる。他の態様では、ボットCは、使用基準に基づいて使用され得る。いくつかの実装形態では、ボットC動作が、ボットCが顧客問題を解決することができないことをボットCが識別する、エンドポイントを有し得、追加のボット選択が使用され得る。追加のボット選択は、自動ボットに関連付けられた基準とともに、メモリに記憶された、以前の較正されたスコアを使用することができる。次いで、自動ボットが使用され、失敗したことを示す履歴データが、最も高いスコアをもつ、ただし、人間エージェントに関連付けられた、以前のボットBが、自動ボット(たとえば、人間エージェント対話に関連付けられないボット)の失敗に基づいて選択されることを可能にするために、ボット使用基準動作1060の一部として使用され得る。
【0130】
[00144]ボット選択に関連付けられた通信の解決(たとえば、完了または遅延)の後に、ユーザ入力データ1010、ボット/ユーザ会話動作1080からのデータ、ボット較正器1022および(1つまたは複数の)スコアマッパ1030からの較正されたスコア、動作1065からの人間エージェント入力、または動作1060からのシステムにおける使用基準決定を含む任意のデータが、動作1085から受信されたフィードバックデータとともに使用され得る。すべてのそのようなデータは、次いで、動作1090において、ボットマッパを更新するために使用され得る。いくつかの態様では、動作1090におけるボットマッパに対する更新は、所与の(1つまたは複数の)ボットマッパのためのトレーニングを更新するために機械学習を使用することができる。いくつかの実装形態では、履歴データが、所与の時間期間の間集められ、(1つまたは複数の)ボットマッパ1030は、周期的間隔において、更新されたデータを使用して再トレーニングされる。いくつかの実装形態では、データは、リアルタイムで集められ、したがって、ボット較正器1022を使用するシステムが数百または数千の顧客と同時に対話するとき、顧客との各通信からのデータがボットマッパトレーニングシステムにリアルタイムでフィードされ、ボットマッパは、ボットマッパが、システムによって受信された新しいユーザ入力についてのスコアを較正するために使用されているのと同時に、リアルタイムフィードバックデータを使用して動的に更新され得る。新しいユーザ入力は、次いで、新しいユーザ入力のためのボットを選択するために査定され、それらの通信からのフィードバックが、同様に、(たとえば、特定のユーザ入力に関連付けられた標準化されたスコアの調整に対する修正として)ボットスコアマッパトレーニングにフィードバックされて、顧客問題を解決するために使用されるボットの選択を改善することによってシステム動作を改善する。
【0131】
[00145]図11は、本明細書で説明される例による、選択されたボットを使用して促進される双方向通信の態様を示す。図11は、本明細書で説明されるボット較正を使用する、双方向通信における各ターン(turn)(たとえば、ユーザ/クライアントとエージェントまたはボットとの間の双方向通信の一部としての通信またはアクション)の分析を示す。
【0132】
[00146]図11によって示されているように、各ターンのための入力データが会話編成動作1100のセットを生じる。ターンのための入力データが、最初に、NLUサービス1110によって処理される。そのようなNLUサービスは、意図値、キーワード、または他のそのような入力データを識別することができる。意図値は、ローカルNLUサービスまたはリモートNLUサービスを含む、1つまたは複数のNLUサービスを活用することによって生成され得る。そのようなNLU分析は、リアルタイムまたはほぼリアルタイムで実施され、したがって、あるターンのためのNLU分析は、別のターンが行われるときのプロセスにおけるものであり得、その追加のターンは、双方向通信のための進行中の(in process)NLU分析に組み込まれ得るか、または追加のNLU分析が新しいターンのためにリアルタイムで行われ得る。NLUデータ(たとえば、意図値)は、次いで、会話プランニング1120において使用される。会話プランニングは、会話「タイプ」または応答プランを識別するためにNLUサービスからのNLUデータを使用することができる。さらに、会話プランニング1120は、(たとえば、ユーザが、新しいアポイントメントをスケジュールすることと、前に行われたアポイントメントのリストを受信することの両方を行うこと、または複数の異なるボットなどの異なるシステムサービスを使用し得る任意のそのような複数の異なるアクションをとることを希望する)マルチ意図双方向通信を識別することができる。会話プランニング1120は、双方向通信を促進するために追加の情報の収集またはサポートを管理するために、NLUサービス1110または初期ボットによって識別された初期意図からのスクリプトを識別し得る。
【0133】
[00147]次いで、会話プランニング1120とNLUサービス1110からのNLUデータとに基づいて双方向通信のための最も良好なリソースを識別するために、プロバイダ発見1130が動的に実施される。プロバイダ発見1130は、ボットに問い合わせ、ボット信頼性スコアを受信し、信頼性スコアをマッピングするための、図10において上記で説明された動作を含むことができる。プロバイダ発見は、さらに、識別されたボットを、NLUデータに関連付けられた人間エージェント(たとえば、意図に関連付けられた特殊な情報をもつエージェント)、双方向通信を促進し得る非ボットアプリケーション、エージェントまたは顧客のための情報コンテンツ、あるいは他のそのようなデータなど、追加のオプションと比較することができる。たとえば、上記で説明されたマッピングまたは較正システムは、ボットから較正データを受信し得るだけでなく、さらに、NLUデータに関連付けられた静的ヘルプテキスト、またはNLUデータに関連付けられたエージェントプロファイルなど、他のリソースについての値または信頼性スコアにもアクセスし得る。識別されたボットではなく、非ボットリソースを、顧客にいつ提供すべきかを決定するために、様々な基準が使用され得る。たとえば、上記で説明されたように、ボットが、しきい値レベルを上回るマッピングされたスコアを有しない場合、エージェントリソースが識別され得るか、あるいは現在のエージェントが、現在のエージェントが選択するための情報テキスト、ボット、スクリプト、またはそのようなリソースの任意の組合せを含む、リソースのリストを提供され得る。
【0134】
[00148]次のアクション選択1140において、次のアクションを選択するために、プロバイダ発見1130において識別されたリソースが使用される。たとえば、ボットしきい値選択基準を伴う上記の実装形態では、ボットが、しきい値を上回るマッピングされたスコアを有する場合、次のアクション選択1140は、最も高いマッピングされたスコアをもつボットを自動的に選択し得る。別の例では、現在のエージェントは、プロバイダ発見1130によって識別された1つまたは複数のオプションを提示され、エージェントは、選択1140において、利用可能なオプションから次のアクションを選択する。選択1140が行われると、選択されたリソースが、ディスパッチ動作1150において実行される。ディスパッチ1150は、選択されたボットとの接続に顧客をルーティングすること、識別された情報を顧客に提供すること、または次のアクション選択1140において選択されたリソースに関連付けられた他のそのようなアクションを含むことができる。NLUサービス1110からディスパッチ1150にわたるすべてのそのような動作は、リアルタイムで動的に行われ、これは、図12に関して以下で説明されるように、ユーザが複数のターンを行う場合、複数のそのようなスレッドが同時に行われることを含む。会話プランニング1120は、たとえば、マルチ意図通信における複数の異なるリソースの提示を管理することができ、ならびに、通信において使用されるリソースに関するフィードバックを管理する(たとえば、ディスパッチされたボットに関する否定的なフィードバックをユーザが提供したとき、再プランニングする)。会話編成1100のリアルタイム性質は、顧客が、双方向通信の一部として迅速に応答を受信することを可能にし、動的性質は、会話編成1100が、双方向通信における顧客からの複数のターンに適応または応答することを可能にする。プロバイダ発見を通して識別されたボットは、標準顧客要求に対する効率的な応答を提供し、NLUサービス1110およびプランニング1120による動的分析は、会話編成1100が、様々なリソースを使用すること、ならびに、システムの効率と、双方向通信システムを通して顧客に提供される情報およびサービスの品質とを改善するために複雑な対話のために人間エージェントを活用することを可能にする。
【0135】
[00149]学習動作1160が、さらに、会話編成1100の各ターンからのアクティブおよびパッシブフィードバック、ならびに、システム動作についてのアグリゲートされたデータ(たとえば、テキスト、メタデータ、エージェント分析、顧客ポーリングデータなど)を収集することができる。上記で説明されたように、そのような情報は、会話編成1100の各ステップを改善するためにシステムによって使用され得る。本明細書で説明される例は、詳細には、図10において上記で説明されたように、ボット較正データからのマッピングされたスコアを生成するために使用されるマッピングデータ更新するために、学習動作1160からのフィードバックを使用する。フィードバックは、NLUデータおよび/または入力データを特定のボットに関連付けるマッピングテーブルまたはマッピングファイル中のスコアを調整することとと、マッピングされたスコアを動的に生成するようにボット較正スコアを調整することとを行うために、使用され得る。システムは、フィードバックに応答してマッピングテーブルデータをリアルタイムで調整することによって、更新のためのダウンタイムなしにマッピングテーブルまたは他のそのようなマッピングシステムをリアルタイムで更新することができる。リアルタイムフィードバックは、第1の双方向通信からのデータが、第1の双方向通信と同時に行われている第2の双方向通信におけるボットの選択を知らせることを可能にする。第1の双方向通信からのフィードバックが受信されるとすぐに、マッピングスコアは、フィードバックを反映することと、第2の双方向通信のターンのための発見1130動作において同じボットを分析する、関連付けられた入力が受信された場合、第2の双方向通信のためのマッピングを提供することとを行うために、更新され得る。
【0136】
[00150]マッピングファイルは、NLUデータ、入力データ、および特定のボットに関連付けられた、調整データを記憶することができるだけでなく、フィードバックに応答した将来の調整がどのように行われるかを決定するために使用され得るフィードバック履歴データをも記憶することができる。たとえば、入力データとボットとの間で初期関連付けが行われるとき、マッピングデータが存在しないことがあり、したがって、ボットからの信頼性スコアは調整なしで使用され得る。第1のシステム識別に応答した初期フィードバック、または入力データに応答したボットの選択が、同じまたは同様の入力データに応答したボットの将来の選択のための大きい調整較正を行うために使用され得る。システムは、同様の入力データに応答した同じボットの追加の選択を受けるので、フィードバックに応答して可能にされる調整の大きさは、フィードバックシステムが、ボットによって直接生成される信頼性とは異なるローカル信頼性を追跡するので、限定され得る。
【0137】
[00151]いくつかの例では、ボットが、フィードバックならびにマッピングシステムを組み込み得る。そのような例では、マッピングシステムは、ボット信頼性スコアの変更を追跡することができ、したがって、ボットスコアに対する調整を提供するのではなく、マッピングシステムは、調整されたローカルスコアを識別する。たとえば、「スケジュール」ボットが、「アポイントメント」という入力データに応答して、.95の信頼性スコアを返し得る。マッピングシステムが、入力データとボットとのその組合せについて、.8のマッピングされたスコアを識別し得る。単に、その組合せについて-0.15だけ信頼性スコアを調整するのではなく、マッパは、.8をターゲットにし得、したがって、スケジュールボットによって組み込まれた更新およびフィードバックが、アポイントメントに対するスケジュールボットの信頼性応答を、.88までシフトした場合、マッピングシステムは、.8のマッピングされたスコアを維持する。他の例では、調整が、マッピングシステムにおいて追跡され得、マッピングシステムは、ボットの信頼性スコアが、同じ入力に応答して変化したとき、フィードバック分析をリセットして、ボット動作の変更を反映し得る。同じ入力データによって生成されたる信頼性スコアを経時的に追跡することによって、マッピングシステムは、ボットについての更新に自動的に応答することができる。たとえば、マッピングシステムが1つの特定の入力データについての較正スコアに対する更新を識別する場合、分析しきい値は、ボットに対する変更がマッピングシステムによって識別される程度まで、ボットに関連付けられたすべての入力について調整またはリセットされ得る。ボットに対する小さい変更は、ボットに対する変更が識別された後でも履歴データが使用されることを可能にすることができ、ボットに対する大きい変更は、ボットについての履歴データが廃棄されることと、マッピングシステムが、履歴なしの新しいボットとしてそのボットを扱うこととを生じることができる。マッピングシステムは、次いで、ボットに対する別の大きい更新または変更が行われるまで、ローカルデータに関するローカル信頼性スコアを求めるために、経時的に、更新されたボットを動的に追跡することができる。
【0138】
[00152]図12は、本明細書で説明される例による、自然言語理解(NLU)と、ボットと、フィードバックシステムとを用いて促進される双方向通信を示す。図12は、双方向通信のためのユーザインターフェース1200を示す。インターフェース1200は、双方向通信への参加者についてのタイムスタンプおよび識別情報など、メタデータを含むことができる。インターフェース1200は、対話の各ターンのためのテキスト入力データをさらに含むことができる。図12に示されているように、インターフェース1200は、「訪問者」と標示された顧客によって連続的に行われた2つのターンのための入力データ1210と入力データ1220とを含む。上記で説明されたように、各ターンは、会話編成1100に従って、個別に処理され得る。図12の例では、「注文状況」という入力データ1210は、「返品ポリシー」という入力データ1220から独立して処理され得る。これらの入力データの各々は、NLUサービス1110がNLUデータを識別することと、会話プランニング1120が入力データ応答についてのプランを識別することと、プロバイダ発見1130が、入力データに関連付けられた可能なリソースを識別することとを伴う、図11において上記で説明されたフローを使用して処理され得る。
【0139】
[00153]図13は、プロバイダ発見1130システムが、上記の入力データ1210および1220の各々のための上位リソースをエージェントに提示する、実装形態のためのユーザインターフェース1300を示す。応答要素1310が、「orderBot」という識別されたボットとともに、「注文状況」入力データ1210を提示する。orderBotは、システム中のボットに問い合わせることと、システムボットから受信された較正スコアをマッピングすることと、最も高いマッピングされたスコア(たとえば、図13のサンプルでは、96%)をもつボットとしてorderBotを選択することとによって、識別され得る。同様に、入力データ1210は、同じ分析を用いて処理され得る。ただし、ボットを識別するのではなく、「返品ポリシー」という入力データ1220に関連のある情報をもつ記事(article)が識別される。プロバイダ発見1130動作において、しきい値またはより高い関連性または信頼性スコアをもつボットが識別されないことがあり、したがって、「返品ポリシー」記事リソースは、「返品ポリシー」という識別された入力データに応答した、双方向通信を促進するための最良のリソースとして識別される。応答要素1320が、双方向通信を促進するためにリソースが使用されることを可能にする入力インターフェース要素とともに、エージェントユーザインターフェース1300においてエージェントに記事に関する情報を提示する。図13の例では、双方向通信に参加しているエージェントが、返品ポリシーに関する情報を提供するために応答要素1320の「記事を使用する」要素を選択することによって、連続的な顧客ターンによって行われた2つの入力に応答することができ、次いで、応答要素1310の「加える」要素を選択することによって、ユーザをorderBotにルーティングすることができる。
【0140】
[00154]他の例では、双方向通信を管理するためにユーザインターフェース1300に人間エージェントが提示されるのではなく、会話のためのボットまたは他の機械キュレータ(curator)が、識別されたリソースを双方向通信に自動的に組み込むことができる。いずれの場合も、双方向通信における顧客からのフィードバックデータが、双方向通信のためのフローまたは会話プランを変更するために(たとえば、会話プランニング1120のために)、代替リソースを動的に選択することと、リアルタイムフィードバックを提供することとを行うために、使用され得る。
【0141】
[00155]図14は、本明細書で説明される例による、ボット選択較正のための方法1400のフローチャートである。方法1400は、接続管理システム150または450、対話管理エンジン625、通信サーバ710または805、あるいは方法1400を実施するように構成されたメモリと1つまたは複数のプロセッサとを含む任意の他のそのようなデバイスなど、双方向通信に参加しているデバイスによって実装され得る。いくつかの例では、エージェント端末またはユーザデバイスが、方法1400のための機能を組み込むことができる。いくつかの例では、方法1400は、デバイスの1つまたは複数のプロセッサによって実行されたとき、デバイスに、方法1400を備える動作を実施させる、非一時的コンピュータ可読媒体に記憶された命令として実装される。
【0142】
[00156]方法1400は、双方向通信セッションの一部として入力データを受信するための動作1402を含み、ここにおいて、双方向通信は複数のボットに関連付けられる。方法1400は、第1のボットと入力データとに関連付けられた第1の信頼性スコアにアクセスすることを含む動作1404を含み、ここにおいて、第1の信頼性スコアは、第1のボットによる入力データの分析によって生成され、ここにおいて、分析は、第1のボットと入力データとの間の関連付け強度を不均一に表す。方法1400は、第2のボットと入力データとに関連付けられた第2の信頼性スコアにアクセスすることを含む動作1406を含み、ここにおいて、第2の信頼性スコアは、第2のボットによる入力データの分析によって生成され、ここにおいて、分析は、第2のボットと入力データとの間の関連付け強度を不均一に表す。方法1400は、少なくとも、第1の信頼性スコアに関連付けられた第1のマッピングされたスコアと、第2の信頼性スコアに関連付けられた第2のマッピングされたスコアとを含む、複数のボットについてのマッピングされたスコアを生成することを含む動作1408を含み、ここにおいて、マッピングされたスコアは、複数のボットから受信された不均一な信頼性スコアを較正するために、ボットスコアマッパを使用して少なくとも第1の信頼性スコアおよび第2の信頼性スコアを分析することによって生成される。方法1400は、マッピングされたスコアに基づいて、複数のボットのうちの選択されたボットを識別することを含む動作1410を含む。方法1400は、選択されたボットを使用して双方向通信セッションを促進することを含む動作1412を含む。
【0143】
[00157]いくつかの例では、選択されたボットは、複数のボットによって生成された自己生成された信頼性スコアの中からの最も高い信頼性スコアを有せず、選択されたボットは、複数のボットについてのマッピングされたスコアのうちの最も高いマッピングされたスコアを有する。いくつかの例では、方法1400は、第1のマッピングされたスコアが、マッピングされたスコアのうちの最も高い値のスコアであるとき、第1のマッピングされたスコアをボット固有しきい値と比較することと、第1のマッピングされたスコアがボット固有しきい値を下回るとき、第1のマッピングされたスコアを拒否することとをさらに含むことができる。
【0144】
[00158]いくつかの例では、方法1400は、選択されたボットについてのフィードバックデータを受信することと、フィードバックデータに基づいて、ユーザ入力データと、ボットスコアマッパの選択されたボットとに関連付けられたマッピング調整値を動的に更新することとをさらに含むことができる。
【0145】
[00159]いくつかの例では、方法1400は、ユーザ入力データに関連付けられた入力データタイプに関連付けられたフィードバックを繰り返し受信することと、フィードバックに基づいて、ユーザ入力データと、ボットスコアマッパの選択されたボットとに関連付けられたマッピング調整値を動的に更新することとをさらに含むことができ、ここにおいて、マッピング調整値の最大調整が、選択されたボットについてのマッピング調整値に対する前の調整の数に基づいて選択され、ここで、選択されたボットは、ユーザ入力データの受信に関連付けられたボットスコアマッパのリアルタイムフィードバック状態に基づく。
【0146】
[00160]いくつかの例では、方法1400は、フィードバックデータに基づいて、ユーザ入力データと、ボットスコアマッパの選択されたボットとに関連付けられたマッピング調整値を更新することをさらに含むことができ、ここにおいて、フィードバックデータは、双方向通信セッションのメタデータと、双方向会話データとから自動的に生成される。
【0147】
[00161]いくつかの例では、方法1400は、フィードバックデータに基づいて、ユーザ入力データと、ボットスコアマッパの選択されたボットとに関連付けられたマッピング調整値を更新することをさらに含むことができ、ここにおいて、フィードバックデータは、双方向通信セッションに参加しているエージェントによって提供された手動フィードバックである。
【0148】
[00162]いくつかの例では、方法1400は、選択されたボットを拒否するエージェント入力を受信することと、選択されたボットのスコアを除くマッピングされたスコアに基づいて、第2の選択されたボットを選択することとをさらに含むことができる。いくつかの例は、複数のボットが、1つまたは複数のクライアントボットと、1つまたは複数のソースボットと、1つまたは複数の外部ボットとを含む場合、動作することができる。
【0149】
[00163]いくつかの例では、方法1400は、1つまたは複数の信頼性スコア要求を送信することをさらに含むことができ、ここにおいて、1つまたは複数の信頼性スコア要求は、1つまたは複数のボットを実行するサーバによって受信されたとき、サーバは、1つまたは複数のボットについての信頼性スコアを生成し、信頼性スコアは、第1の信頼性スコアと第2の信頼性スコアとを含む。
【0150】
[00164]いくつかの例では、方法1400は、デバイスの1つまたは複数のプロセッサを使用して第1のボットおよび第2のボットについての命令を実行することと、デバイスの1つまたは複数のプロセッサを使用して第1の信頼性スコアおよび第2の信頼性スコアを生成することとをさらに含むことができる。いくつかの例は、ユーザ入力データがテキストデータである場合、動作することができる。
【0151】
[00165]いくつかの例では、方法1400のいずれかの動作が、多くの異なる通信のために同時に実施され得、したがって、方法1400のあるインスタンスの動作が、方法1400の別のインスタンスの動作と同時に実施され得る。上記で説明されたように、そのような例は、異なる意図値または顧客問題値など、異なるボット基準についての別個のボット分析および較正の使用を可能にする。別個のボット較正は、単一のデバイスまたはシステムが、基準のあるセットについてのボット較正を基準の別個のセットについてのボット較正と同時に実施することを含むことができる。さらに、本明細書で説明されるボット較正、および他のそのような動作は、任意の数の通信セッションと同時に行われ得、その通信セッションからのデータおよびフィードバックが、システムが任意の数の通信セッションを促進しているとき、トレーニングのために使用されるデータセットを更新するためにリアルタイムで使用される。
【0152】
[00166]上記の説明では、実施形態の完全な理解を提供するための具体的な詳細が与えられた。ただし、実施形態は、これらの具体的な詳細なしに実践され得ることを理解されたい。たとえば、実施形態を不必要な詳細で不明瞭にしないために、回路はブロック図として示されることがある。他の事例では、実施形態を不明瞭にすることを回避するために、よく知られている回路、プロセス、アルゴリズム、構造、および技法は、不必要な詳細なしに示されることがある。さらに、いくつかの例は、繰返し動作または介入動作を伴って動作することができ、動作の複数のインスタンスは、リアルタイムフィードバックに応答して行われる動的調整を伴って行われて、ボットスコアマッパについてのデータを更新して、信頼性スコアに対する調整を変更し、選択されるリソース(たとえば、ボット、記事、人間エージェントなど)の選択を変更して、双方向通信を促進することができる。
【0153】
[00167]上記で説明された技法、ブロック、ステップおよび手段の実装は、様々な方法で行われ得る。たとえば、これらの技法、ブロック、ステップおよび手段は、ハードウェア、ソフトウェア、またはそれらの組合せで実装され得る。ハードウェア実装の場合、処理ユニットは、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、上記で説明された機能を実施するように設計された他の電子ユニット、および/あるいはそれらの組合せの内部に実装され得る。
【0154】
[00168]また、実施形態の部分は、フローチャート、流れ図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明され得ることに留意されたい。フローチャートは、動作を逐次的なプロセスとして説明することができるが、動作の多くは、並列にまたは同時に実施され得る。さらに、動作の順序は並べ替えられ得る。プロセスの動作が完了されるとき、プロセスは終了されるが、図中に含まれない追加のステップを有し得る。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。プロセスが関数に対応するとき、それの終了は、呼出し関数またはメイン関数への関数の復帰に対応する。
【0155】
[00169]さらに、実施形態は、ハードウェア、ソフトウェア、スクリプト言語、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、および/またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、スクリプト言語、および/またはマイクロコードで実装されたとき、必要なタスクを実施するためのプログラムコードまたはコードセグメントは、記憶媒体などの機械可読媒体に記憶され得る。コードセグメントまたは機械実行可能命令は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、スクリプト、クラス、あるいは、命令、データ構造、および/またはプログラムステートメントの任意の組合せを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、および/またはメモリコンテンツをパスおよび/または受信することによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、チケットパッシング、ネットワーク送信などを含む、任意の好適な手段を介してパス、フォワーディング、または送信され得る。
【0156】
[00170]ファームウェアおよび/またはソフトウェア実装の場合、方法は、本明細書で説明される機能を実施するモジュール(たとえば、プロシージャ、関数など)を用いて実装され得る。命令を有形に具現するいかなる機械可読媒体も、本明細書で説明される方法を実装する際に使用され得る。たとえば、ソフトウェアコードは、メモリに記憶され得る。メモリは、プロセッサの内部またはプロセッサの外部に実装され得る。本明細書で使用される「メモリ」という用語は、長期メモリ、短期メモリ、揮発性メモリ、不揮発性メモリ、または他の記憶媒体のいずれかのタイプを指し、メモリの特定のタイプまたはメモリの数、あるいはメモリが記憶される媒体のタイプに限定されるべきではない。
【0157】
[00171]その上、本明細書で開示される「記憶媒体」、「ストレージ」または「メモリ」という用語は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気RAM、コアメモリ、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および/または情報を記憶するための他の機械可読媒体を含む、データを記憶するための1つまたは複数のメモリを表すことができる。「機械可読媒体」という用語は、限定はしないが、ポータブルまたは固定記憶デバイス、光記憶デバイス、ワイヤレスチャネル、ならびに/あるいは、(1つまたは複数の)命令および/またはデータを含んでいるかまたは搬送する、記憶することが可能な様々な他の記憶媒体を含む。
【0158】
[00172]本開示の原理が特定の装置および方法に関して上記で説明されたが、本説明は、本開示の範囲に対する限定ではなく、例としてのみ行われることを明確に理解されたい。
図1
図2
図3A
図3B
図3C
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
【国際調査報告】