(57)【要約】  システムおよび方法は、ネットワークデバイスとの通信セッション中の応答を予測するために提供され得る。いくつかの実装では、システムおよび方法は、機械学習技術を使用して応答を予測することを容易にすることができる。プラットフォームを介して受信されたメッセージは、リポジトリに記憶することができる。機械学習モデルは、記憶されたメッセージを使用してトレーニングされ得る。端末機器が通信セッションにおいてネットワークデバイスと通信しているとき、通信セッションにおいて交換されるメッセージおよび機械学習モデルを使用して、将来の応答をリアルタイムで予測することができる。予測された将来の応答は、端末機器で提示することができる。予測された応答は、端末機器で選択することができる。選択されると、選択された予測された応答は、通信セッション中にネットワークデバイスに送信される。
2020520616.tif 000002
【特許請求の範囲】
【請求項１】
応答メッセージを予測するために、機械学習モデルをトレーニングするためのデータセットを収集することと、ここにおいて、前記データセットを収集することは、ネットワークデバイスとエージェントに関連付けられた端末機器との間の以前の通信セッションに含まれる１または複数の以前のメッセージを記憶することを含み、
端末機器とネットワークデバイスとの間の通信セッションを容易にすることと、ここにおいて、前記通信セッションは、前記端末機器および前記ネットワークデバイスが１または複数のメッセージを交換することを可能にし、
前記通信セッション中に新しいメッセージを受信することと、
前記トレーニングされた機械学習モデルを使用して前記新しいメッセージを評価することと、ここにおいて、前記新しいメッセージを評価することは、前記新しいメッセージが受信される前に交換された任意のメッセージを評価することを含み、
前記新しいメッセージに対する応答を予測することと、ここにおいて、前記応答を予測することは、前記新しいメッセージに対する前記予測された応答として前記データセットからどの以前のメッセージを選択するかを決定するために前記評価の結果を使用することを含み、
前記予測された応答を前記端末機器において表示することを容易にすることと、ここにおいて、前記予測された応答が選択された場合、前記予測された応答は、前記通信セッション中に自動的に前記ネットワークデバイスに送信される、
を備えるコンピュータ実装方法。
【請求項２】
前記データセットに含まれる以前のメッセージに関連付けられた属性を識別することと、
前記以前のメッセージに属性タグを付加することと、ここにおいて、前記属性タグは前記識別された属性に対応し、
前記属性タグを使用して前記機械学習モデルをトレーニングすることと、
をさらに備える、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記端末機器と前記ネットワークデバイスとの間の前記通信セッションは、ボットを含み、ここにおいて、前記ボットは、前記ネットワークデバイスと自律的に通信するように構成される、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記ボットを使用して前記新しいメッセージを評価することと、ここにおいて、前記新しいメッセージを評価することは、前記新しいメッセージからクエリを自動的に識別することを含み、および、ここにおいて、前記新しいメッセージは、前記新しいメッセージが受信されるとリアルタイムで評価され、
前記識別されたクエリを使用してデータベースにクエリを実行することと、
前記端末機器において前記クエリを実行することの１または複数の結果を表示することと、
をさらに含む、請求項３に記載のコンピュータ実装方法。
【請求項５】
前記機械学習モデルが、リカレントニューラルネットワーク（ＲＮＮ）または畳み込みニューラルネットワーク（ＣＮＮ）を含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記予測された応答メッセージを決定することは、
前記新しいメッセージのベクトル表現を生成することと、
前記新しいメッセージの前記ベクトル表現を前記データセットに含まれる前記１または複数の以前のメッセージの追加ベクトル表現と比較するために、前記機械学習モデルを使用することと、
前記データセットに含まれる前記１または複数の以前のメッセージから以前のメッセージを選択することと、ここにおいて、前記以前のメッセージが前記比較に基づいて選択される、
をさらに備える、請求項１に記載のコンピュータ実装方法。
【請求項７】
候補メッセージに対してマトリクスを生成することと、ここにおいて、前記マトリクスは、前記以前のメッセージに含まれる単語数と前記以前のメッセージのベクトル表現とを含み、
前記新しいメッセージに対して追加マトリクスを生成することと、ここにおいて、前記追加マトリクスは、前記新しいメッセージに含まれる単語数と前記新しいメッセージのベクトル表現とを含み、前記以前のメッセージを前記予測された応答として選択するかどうかを決定するために、前記マトリクスを前記追加マトリクスと比較することと、
をさらに備える、請求項１に記載のコンピュータ実装方法。
【請求項８】
１または複数のデータプロセッサと、
非一時的コンピュータ可読記憶媒体であって、前記１または複数のデータプロセッサ上で実行されたときに、前記１または複数のデータプロセッサに、
応答メッセージを予測するために、機械学習モデルをトレーニングするためのデータセットを収集することと、ここにおいて、前記データセットを収集することは、ネットワークデバイスとエージェントに関連付けられた端末機器との間の以前の通信セッションに含まれる１または複数の以前のメッセージを記憶することを含み、
端末機器とネットワークデバイスとの間の通信セッションを容易にすることと、ここにおいて、前記通信セッションは、前記端末機器および前記ネットワークデバイスが１または複数のメッセージを交換することを可能にし、
前記通信セッション中に新しいメッセージを受信することと、
前記トレーニングされた機械学習モデルを使用して前記新しいメッセージを評価することと、ここにおいて、前記新しいメッセージを評価することは、前記新しいメッセージが受信される前に交換された任意のメッセージを評価することを含み、
前記新しいメッセージに対する応答を予測することと、ここにおいて、前記応答を予測することは、前記新しいメッセージに対する前記予測された応答として前記データセットからどの以前のメッセージを選択するかを決定するために前記評価の結果を使用することを含み、
前記予測された応答を前記端末機器において表示することを容易にすることと、ここにおいて、前記予測された応答が選択された場合、前記予測された応答は、前記通信セッション中に自動的に前記ネットワークデバイスに送信される、
を、含む動作を実行させる命令を含む非一時的コンピュータ可読記憶媒体と、
を備えるシステム。
【請求項９】
前記動作が、前記データセットに含まれる以前のメッセージに関連付けられた属性を識別することと、
前記以前のメッセージに属性タグを付加することと、ここにおいて、前記属性タグは前記識別された属性に対応し、
前記属性タグを使用して前記機械学習モデルをトレーニングすることと、
をさらに備える、請求項８に記載のシステム。
【請求項１０】
前記端末機器と前記ネットワークデバイスとの間の前記通信セッションは、ボットを含み、ここにおいて、前記ボットは、前記ネットワークデバイスと自律的に通信するように構成される、請求項８に記載のシステム。
【請求項１１】
前記ボットを使用して前記新しいメッセージを評価することと、ここにおいて、前記新しいメッセージを評価することは、前記新しいメッセージからクエリを自動的に識別することを含み、および、ここにおいて、前記新しいメッセージは、前記新しいメッセージが受信されるとリアルタイムで評価され、
前記識別されたクエリを使用してデータベースにクエリを実行すること、
前記端末機器において前記クエリを実行することの１または複数の結果を表示することと、をさらに備える、請求項１０に記載のシステム。
【請求項１２】
前記機械学習モデルが、リカレントニューラルネットワーク（ＲＮＮ）または畳み込みニューラルネットワーク（ＣＮＮ）を含む、請求項８に記載のシステム。
【請求項１３】
前記予測された応答メッセージを決定することは、
前記新しいメッセージのベクトル表現を生成することと、
前記新しいメッセージの前記ベクトル表現を前記データセットに含まれる前記１または複数の以前のメッセージの追加ベクトル表現と比較するために、前記機械学習モデルを使用することと、
前記データセットに含まれる前記１または複数の以前のメッセージから以前のメッセージを選択することと、ここにおいて、前記以前のメッセージが前記比較に基づいて選択される、
をさらに備える、請求項８に記載のシステム。
【請求項１４】
前記動作が、候補メッセージに対してマトリクスを生成することと、ここにおいて、前記マトリクスは、前記以前のメッセージに含まれる単語数と前記以前のメッセージのベクトル表現とを含み、
前記新しいメッセージに対して追加マトリクスを生成することと、ここにおいて、前記追加マトリクスは、前記新しいメッセージに含まれる単語数と前記新しいメッセージのベクトル表現とを含み、
前記以前のメッセージを前記予測された応答として選択するかどうかを決定するために、前記マトリクスを前記追加マトリクスと比較することと、
をさらに備える、請求項８に記載のシステム。
【請求項１５】
非一時的機械可読記憶媒体において有形的に実装されるコンピュータプログラム製品であって、前記非一時的機械可読記憶媒体は、データ処理装置に、
応答メッセージを予測するために、機械学習モデルをトレーニングするためのデータセットを収集することと、ここにおいて、前記データセットを収集することは、ネットワークデバイスとエージェントに関連付けられた端末機器との間の以前の通信セッションに含まれる１または複数の以前のメッセージを記憶することを含み、
端末機器とネットワークデバイスとの間の通信セッションを容易にすることと、ここにおいて、前記通信セッションは、前記端末機器および前記ネットワークデバイスが１または複数のメッセージを交換することを可能にし、
前記通信セッション中に新しいメッセージを受信することと、
前記トレーニングされた機械学習モデルを使用して前記新しいメッセージを評価することと、ここにおいて、前記新しいメッセージを評価することは、前記新しいメッセージが受信される前に交換された任意のメッセージを評価することを含み、前
記新しいメッセージに対する応答を予測することと、ここにおいて、前記応答を予測することは、前記新しいメッセージに対する前記予測された応答として前記データセットからどの以前のメッセージを選択するかを決定するために前記評価の結果を使用することを含み、
前記予測された応答を前記端末機器において表示することを容易にすることと、ここにおいて、前記予測された応答が選択された場合、前記予測された応答は、前記通信セッション中に自動的に前記ネットワークデバイスに送信される、
を、含む動作を実行させる命令を含む、コンピュータプログラム製品。
【請求項１６】
前記動作が、前記データセットに含まれる以前のメッセージに関連付けられた属性を識別することと、
前記以前のメッセージに属性タグを付加することと、ここにおいて、前記属性タグは前記識別された属性に対応し、
前記属性タグを使用して前記機械学習モデルをトレーニングすることと、
をさらに備える、請求項１５に記載のコンピュータプログラム製品。
【請求項１７】
前記端末機器と前記ネットワークデバイスとの間の前記通信セッションは、ボットを含み、ここにおいて、前記ボットは、前記ネットワークデバイスと自律的に通信するように構成される、請求項１５に記載のコンピュータプログラム製品。
【請求項１８】
前記ボットを使用して前記新しいメッセージを評価することと、ここにおいて、前記新しいメッセージを評価することは、前記新しいメッセージからクエリを自動的に識別することを含み、および、ここにおいて、前記新しいメッセージは、前記新しいメッセージが受信されるとリアルタイムで評価され、
前記識別されたクエリを使用してデータベースにクエリを実行することと、
前記端末機器において前記クエリを実行することの１または複数の結果を表示することと、
をさらに含む、請求項１７に記載のコンピュータプログラム製品。
【請求項１９】
前記機械学習モデルが、リカレントニューラルネットワーク（ＲＮＮ）または畳み込みニューラルネットワーク（ＣＮＮ）を含む、請求項１５に記載のコンピュータプログラム製品。
【請求項２０】
前記予測された応答メッセージを決定することは、
前記新しいメッセージのベクトル表現を生成することと、
前記新しいメッセージの前記ベクトル表現を前記データセットに含まれる前記１または複数の以前のメッセージの追加ベクトル表現と比較するために、前記機械学習モデルを使用することと、
前記データセットに含まれる前記１または複数の以前のメッセージから以前のメッセージを選択することと、ここにおいて、前記以前のメッセージが前記比較に基づいて選択される、
をさらに備える、請求項１５に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
[0002]本開示は、一般に、通信のルーティング（ｒｏｕｔｉｎｇ）を容易にすることに関する。より具体的には、マルチチャネル機能を用いて構成された通信セッションの間に、ボットと端末機器との間でメッセージを動的にルーティングする技術が提供される。
【関連出願への相互参照】
【０００２】
[0001]本出願は、（１）２０１７年５月５日に出願された、米国仮特許出願第６２／５０２，５３５号、（２）２０１７年５月５日に出願された米国仮特許出願第６２／５０２，５７２号に基づき優先権を主張し、その全内容が、あらゆる目的のために参照により本明細書に組み込まれる。
【背景技術】
【０００３】
[0003]ボットスクリプトは、データ処理およびタスク管理を自動化するために実行することができる。しかし、データの量の規模が拡大し、ますます動的かつ複雑になるにつれて、従来のボットスクリプトは、著しく効率が欠如する。タスク管理のためにターゲット結果を正しく検出するようにボットスクリプトを構成することは、しばしば困難である。さらに、ボットスクリプトは、キュー内のタスクを誤って処理する可能性があり、その結果、システム全体の負荷が不均衡になるか、処理リソースに過度に負担がかかる可能性がある。ボットスクリプトはまた、通常、複数の異なる環境にわたってタスクを処理することができない。
【発明の概要】
【０００４】
[0004]実施形態の用語および類似の用語は、本開示の主題および以下の特許請求の範囲のすべてを広く指すことが意図される。これらの用語を含む記述は、ここに記載される主題を限定するものではなく、または以下の特許請求の範囲の意味または範囲を限定するものではないと理解されるべきである。ここに含まれる本開示の実施形態は、この発明の概要ではなく、以下の特許請求の範囲によって定義される。この発明の概要は、本開示の様々な態様の概要であり、以下の詳細は説明においてさらに説明される概念の一部を導入する。この発明の概要は、請求される主題の重要なまたは本質的な特徴を特定することを意図したものではなく、請求される主題の範囲を決定するために単独で使用されることを意図したものでもない。本主題は、本開示の明細書全体の適切な部分、任意のまたはすべての図面および各請求項を参照することによって理解されるべきである。
【０００５】
[0005]本開示の実施形態は、上述の技術的課題に対応するための技術的解決策を提供する。例えば、ボット（例えば、プロセッサを使用して実行するボットスクリプト）は、ネットワークデバイスと端末機器との間でデータパケット（例えば、通信、コンテンツを含むメッセージ、信号など）をルーティングするように構成され得る。ボットは、符号化言語に依存しないように構成され得る。例えば、ボットは、システムとインタラクトする（ｉｎｔｅｒａｃｔｉｏｎ）ためにアプリケーションプログラミングインタフェース（ＡＰＩ）を使用するように符号化することができ、したがって、ＡＰＩコールを行うことができる任意の言語で符号化することができる。ルーティングされるメッセージの規模が大きくなるにつれて（例えば、ビッグデータレベルの規模と複雑さまで）、ボットは、メッセージを宛先システムに不正確にルーティングする可能性がある。非限定的な例として、ボットは、通信の宛先を決定するために、ネットワークデバイスから受信した通信のコンテンツ（例えば、通信セッションにおけるメッセージ）を評価してもよい。評価により、ボットに、以前のルーティングインスタンスに基づいて、通信を端末機器にルーティングさせることができる。しかしながら、ターゲット宛先（例えば、エージェントによって操作される端末機器）は、以前のルーティングインスタンスにおいて通信を受信した宛先とは異なる場合がある。１つの理由は、そのネットワークデバイスからの以前の通信と比較した通信のコンテキストであり得る。不正確なルーティングは、ネットワークまたはシステム負荷を不均衡にする可能性があり、不均衡なシステム負荷は、処理リソースに不必要な負担を生じる可能性がある（例えば、サーバが過負荷になり、動作に失敗する可能性があり、キューが過負荷になり、遅延を生じる可能性があるなど）。本開示の特定の実施形態は、ボットベース（ｂｏｔ−ｂａｓｅｄ）のルーティングの精度を連続的にモニタし、必要に応じて、ボットの精度を高めるためのフィードバック信号を提供する人工知能技術および／または機械学習技術を提供する。上述のシナリオでは、例えば、人工知能技術および／または機械学習技術は、機械学習モデルに基づく将来のルーティングインスタンスのボットの精度を高めるために実装することができる。
【０００６】
[0006]いくつかの実施形態は、ネットワークデバイス（例えば、ユーザによって操作されるユーザデバイス）と端末機器との間の通信セッション中に、ボットと（例えば、ライブエージェント（ｌｉｖｅａｇｅｎｔｓ）によって操作される）端末機器との間を動的に切り替えるためのシステムおよび方法に関する。いくつかの実装形態では、ボットは、ネットワークデバイスと自律的に通信するように構成することができる。さらに、ボットは、特定の機能のために構成され得る。機能の非限定的な例は、通信をターゲット宛先にインテリジェントに（ｉｎｔｅｌｌｉｇｅｎｔｌｙ）ルーティングすること、データベースに記憶されたデータを修正すること、ユーザに更新を提供すること、ユーザに関する追加の情報をエージェントに提供すること、ユーザのインテント（ｉｎｔｅｎｔ）を決定すること、およびインテントに基づいてユーザを宛先システムにルーティングすること、ユーザと通信するエージェントに対する応答を予測または提案すること、ボットと１または複数の端末機器との間の通信セッションをエスカレート（ｅｓｃａｌａｔｉｎｇ）することとを含むことができる。いくつかの実装形態では、ボットが通信セッション（例えば、ショートメッセージサービス（ＳＭＳ）、ネイティブアプリケーション（ｎａｔｉｖｅ  ａｐｐｌｉｃａｔｉｏｎ）のアプリ内（ｉｎ−ａｐｐ）チャット機能、またはウェブベースのチャットセッション）でネットワークデバイスと通信している一方で、通信サーバは、自動的かつ動的に、チャットセッションをエージェントに関連付けられた端末機器に転送することを決定することができる。例えば、ボットは、特定のタスク（例えば、更新された情報を受信し、データベースに記憶されたレコードを更新するようなタスク）についてネットワークデバイスと通信することができるが、端末機器は、より困難なタスク（例えば、技術的問題を解決する）についてネットワークデバイスと通信することができる。単一の通信セッションにおいて、ボットはユーザと通信することができ、通信サーバは端末機器が、ボットの代わりに、またはボットに加えて、ネットワークデバイスと通信することができるように、ボットと端末機器との間で動的に切り替えてもよい。有利なことに、通信セッションは、端末機器に関連付けられたタスクのバランスを改善するために、ボットと端末機器との間で動的に切り替えることができる。
【０００７】
[0007]いくつかの実装形態では、ボットは、複数の環境において、および／または複数の環境にわたって、タスクを自動的かつ自律的に処理するように構成することができる。非限定的な例として、通信サーバは、ユーザによって操作されるモバイルデバイス（例えば、ネットワークデバイス）と、エージェントによって操作されるデスクトップコンピュータ（例えば、端末機器）との間のＳＭＳテキストベースの通信チャネルの確立を確立または容易にするように構成され得る。通信サーバは、デスクトップコンピュータから受信した入力（例えば、キーストローク（ｋｅｙ  ｓｔｒｏｋｅｓ））をＳＭＳテキストメッセージに変換し、ＳＭＳテキストメッセージをユーザの携帯電話に送信することができる。通信セッション中に、ボットは、ユーザと通信するエージェントを支援することができ、または、ボットは、会話の制御を行い、通信チャネルを使用しているユーザと直接通信してもよい。しかしながら、エージェント（またはボット）とユーザとの間の会話中に、ユーザは、現在使用しているＳＭＳアプリケーションの代わりに、異なる通信チャネル、例えば、チャットメッセージング機能を有するネイティブアプリケーションを使用して通信を継続したいことを示してもよい。通信サーバは、通信チャネルを変更するユーザの指示（ｉｎｄｉｃａｔｉｏｎ）を自動的に検出してもよい。さらに、通信サーバは、新しい通信チャネル（例えば、ネイティブアプリケーションチャット機能を使用するチャット通信セッション）を介して変換を継続するために、ネイティブアプリケーションからユーザの携帯電話にメッセージを自動的に送信してもよい。いくつかの実装では、ユーザが（既存の通信セッションを継続しながら）通信チャネルを変更したいという指示は、通信サーバがネイティブアプリケーションを介してモバイルデバイスからメッセージを受信したときに自動的に検出してもよい。新しい通信チャネル（例えば、既存の通信セッション中に使用される既存の通信チャネルとは異なる）を使用してメッセージを受信することは、新しい通信チャネル上で通信セッションを継続するように通信サーバに通知してもよい。有利なことに、通信サーバは、異なる通信チャネルにわたって自律的かつ自動的に通信セッションを継続することによって、様々な通信チャネル間の連続性をサポートすることができる。
【０００８】
[0008]いくつかの実装では、通信サーバは、応答メッセージを端末機器に推薦するためのメッセージ推薦システムを含むか、メッセージ推薦システムにアクセスしてもよい。例えば、通信セッション中に、メッセージ推薦システムは、ネットワークデバイスから受信したメッセージおよび／または端末機器によって送信されたメッセージを連続的に評価してもよい。メッセージのコンテンツは、エージェントによって操作される端末機器に推薦するための応答メッセージを予測する機械学習技術を使用して評価されてもよい。いくつかの実装では、（任意のネットワークデバイスから受信された、または任意の端末機器によって送信された）複数の以前のメッセージをデータベースに記憶してもよい。機械学習アルゴリズムは、記憶されたメッセージ内のパターンを識別するために、データベースに記憶されたメッセージを使用して実行され得る（例えば、１又は複数のクラスタリング技術が、特定の類似性を有するメッセージをクラスタリングするために使用され得る）。メッセージの全てまたは全てよりも少ないメッセージが、属性でタグ付けされてもよい。例えば、属性タグは、メッセージに付加される（または、メッセージに関連して記憶される）コードであってもよく、属性タグは、メッセージのコンテンツの特徴であってもよい。いくつかの例では、タグは、メッセージに付加されるコードの特定のストリング（ｓｔｒｉｎｇ）であってもよい。いくつかの実装では、タグ付けされたメッセージに基づいて特定のメッセージに対する応答メッセージを推薦するモデルをトレーニング（ｔｒａｉｎ）するために、教師あり機械学習技術を使用してもよい。
【０００９】
[0009]いくつかの実装では、エージェントに関連付けられた端末機器が通信セッション中にネットワークデバイスと通信するとき、メッセージ推薦システムは、エージェントに追加のデータを提供するために、データベースにクエリ（ｑｕｅｒｙ）を実行することができる。例えば、通信セッション中に、ネットワークデバイスは、（ネットワークデバイスを操作する）ユーザが特定のデバイスについて技術的問題が起こっていることを示す通信を送信してもよい。メッセージが通信サーバで受信されると、メッセージ推薦システムは、技術的問題が特定のデバイスに対応することを決定するためにメッセージを評価する。例えば、テキストベースの評価は、メッセージのコンテンツを決定するために、通信サーバにより実行される。メッセージ推薦システムは、特定のデバイスに関連付けられた技術ドキュメントについてデータベースに自動的かつ自律的にクエリを実行することができる。クエリの結果は、ユーザに応答するエージェントを支援するために、端末機器上に自動的に表示することができる。有利なことに、メッセージ推薦システムは、メッセージが通信セッション中に通信サーバで受信されると、自動的、自律的、連続的にデータベースにクエリを実行することができる。
【００１０】
[0010]いくつかの実装では、ボットと端末機器との間で通信セッションを転送するかどうかを決定することは、通信セッション中に交換される通信の１または複数の特徴の分析に基づくことができる。さらに、受信した通信に関連付けられたインテントまたはセンチメント（ｓｅｎｔｉｍｅｎｔ）を表すために、動的センチメントパラメータ（例えば、スコア、数値または文字値など）を生成することができる。例えば、センチメントパラメータが、ユーザがボットにフラストレーションを感じていることを示す場合、システムは、ユーザと通信するために、ライブエージェントによって操作される端末機器とボットを自動的に切り替えることができる。いくつかの例では、ボットと端末機器との間で切り替えるかどうかの決定は、ユーザからのプロンプトなしで実行され得る。この決定は、通信セッションにおける現在のメッセージの特徴、以前の通信セッションにおいてネットワークデバイスによって送信された以前のメッセージの特徴、ネットワークデバイスのメッセージから検出されたリアルタイムのセンチメントの特徴、または通信が通信セッション中に交換されるときの変化するセンチメントのトラジェクトリ（ｔｒａｊｅｃｔｏｒｙ）の特徴、ユーザに関連する追加の情報（例えば、プロファイル情報、嗜好情報、およびユーザに関連する他の適切な情報）を含む、任意の数の要因に基づいて、通信サーバにおいて自動的に実行され得る。
【００１１】
[0011]本開示のいくつかの実施形態は、コンピュータ実装方法を含む。この方法は、応答メッセージを予測するために機械学習モデルをトレーニングするためのデータセットを収集することを含んでもよい。データセットを収集することは、ネットワークデバイスとエージェントに関連付けられた端末機器との間の以前の通信セッションに含まれる１または複数の以前のメッセージを記憶することを含んでもよい。この方法は、端末機器とネットワークデバイスとの間の通信セッションを容易にすることと、通信セッション中に新しいメッセージを受信することとを含んでもよい。通信セッションは、端末機器およびネットワークデバイスが１または複数のメッセージを交換することを可能にすることができる。この方法は、トレーニングされた機械学習モデルを使用して新しいメッセージを評価することを含んでもよい。例えば、新しいメッセージを評価することは、新しいメッセージが受信される前に交換された任意のメッセージを評価することを含んでもよい。この方法は、新しいメッセージに対する応答を予測することも含んでもよい。応答を予測することは、新しいメッセージに対する予測された応答としてデータセットから以前のメッセージのどれを選択するかを決定するために評価の結果を使用することを含む。この方法はまた、予測された応答を端末機器に表示することを容易にすることを含んでもよい。予測された応答が選択されると、予測された応答は、通信セッション中にネットワークデバイスに自動的に送信され得る。
【００１２】
[0012]本開示のいくつかの実施形態は、コンピュータ実装方法を含む。システムは、１または複数のデータプロセッサと、１または複数のデータプロセッサ上で実行されたときに、１または複数のデータプロセッサに上述の方法を実行させる命令を含む非一時的コンピュータ可読記憶媒体とを含んでもよい。
【００１３】
[0013]本開示のいくつかの実施形態は、データ処理デバイスに上述したまたはここで説明する方法を実行させるように構成された命令を含む、非一時的な機械可読記憶媒体で有形的に実施されるコンピュータプログラム製品を含む。
【００１４】
[0014]有利なことに、システム（例えば、ルーティングシステム、ここで説明される通信サーバ、および他の適切なシステム）に取り込まれ、それらによって処理されるデータのますます動的な性質は、ネットワーク環境に複雑さをもたらす。取り込まれた複雑なデータを伴うタスクを自律的かつ自動的に処理するためにボットスクリプトを実行することは、システム内のリソースを処理する上で過度の負担を生じさせる可能性がある（例えば、メッセージの不正確なルーティングは、サーバまたはキューを過負荷にする可能性がある）。本開示の実施形態は、サーバまたはシステムにわたる負荷の不均衡を低減し、ボットによるタスク管理を継続的に強化することによって、システムの全体的な機能を改善するための、人工知能または機械学習技術の実装を含む、技術的利点を提供する。
【００１５】
[0015]本開示は、添付の図と関連づけて説明される。
【図面の簡単な説明】
【００１６】
【図１】[0016]図１は、ネットワークインタラクション（ｎｅｔｗｏｒｋ  ｉｎｔｅｒａｃｔｉｏｎ）システムの実施形態を示すブロック図である。
【図２】[0017]図２は、ネットワークインタラクションシステムの他の実施形態を示すブロック図である。
【図３Ａ】[0018]図３Ａは、接続管理システムを含むネットワークインタラクションシステムの他の実施形態のブロック図を示す。
【図３Ｂ】[0018]図３Ｂは、接続管理システムを含むネットワークインタラクションシステムの他の実施形態のブロック図を示す。
【図３Ｃ】[0018]図３Ｃは、接続管理システムを含むネットワークインタラクションシステムの他の実施形態のブロック図を示す。
【図４】[0019]図４は、接続コンポーネントの動作のプロトコルスタックマッピングの表示である。
【図５】[0020]図５は、実施形態に係るマルチデバイス通信交換システムを表す。
【図６】[0021]図６は、接続管理システムの実施形態のブロック図である。
【図７】[0022]図７は、通信セッション中にボットと端末機器とを動的に切り替えるためのネットワーク環境のブロック図である。
【図８】[0023]図８は、マルチチャネル環境にわたってボットタスク処理を動的に提供するためのネットワーク環境を表すブロック図である。
【図９】[0024]図９は、機械学習技術を使用してボットタスク処理を強化するためのネットワーク環境を表すブロック図である。
【図１０】[0025]図１０は、通信セッション中にリアルタイムで応答を予測するためのネットワーク環境を表すブロック図である。
【図１１】[0026]図１１は、通信セッション中にリアルタイムで応答を予測するための例示的なプロセスを示す。
【図１２】[0027]図１２は、通信セッション中にボットと端末機器とを切り替えるための例示的なプロセスを示す。
【図１３】[0028]図１３は、ボットのエンドツーエンド管理を実行するために通信サーバによって少なくとも部分的に実行される例示的なプロセスフローである。
【発明を実施するための形態】
【００１７】
[0029]添付の図面において、類似のコンポーネントおよび／または特徴は、同じ参照符号により示されてもよい。さらに、同じタイプの様々なコンポーネントは、ダッシュおよび類似のコンポーネントを区別する第２の符号による参照符号に従うことによって区別することができる。本明細書では、第１の参照符号のみを使用する場合、第２の参照符号とは無関係に、同じ第１の参照符号を有する類似のコンポーネントのうちのいずれか１つに、説明を適用することができる。
【００１８】
[0030]以下の説明は、実施形態の好ましい例のみを提供し、本開示の範囲、適用可能性、または構成を限定することを意図しない。むしろ、実施形態の好ましい例の以下の説明は、実施形態の好ましい例を実施するための可能な説明を当業者に提供する。添付の特許請求の範囲に記載の趣旨および範囲から逸脱することなく、要素の機能および配置に様々な変更を加えることができることを理解されたい。
【００１９】
[0031]図１は、ここで説明される特定の実施形態および特徴を実施およびサポートするネットワークインタラクションシステム１００の実施形態のブロック図を示す。特定の実施形態は、（ユーザ１１０によって操作され得る）ネットワークデバイス１０５と（エージェント１２０によって操作され得る）端末機器１１５との間の接続チャネルを確立することに関する。特定の実施形態では、ネットワークインタラクションシステム１００は、クライアント１２５に関連付けられたクライアントデバイス１３０を含むことができる。
【００２０】
[0032]特定の実施形態では、ユーザ１１０は、ウェブサイトを閲覧している個人、またはリモートサーバ１４０によって提供されるオンラインサービスにアクセスしている個人であってもよい。クライアント１２５は、ウェブサイトまたはオンラインサービスを提供、操作、もしくは実行するエンティティ、または、ここで説明するように、クライアント１２５に利用可能なタスクを実行するために、そのようなエンティティによって使用される、または割り当てられた個人であってもよい。エージェント１２０は、ウェブサイトまたはオンラインサービスに関するサポートまたは情報をユーザ１１０に提供することを課されるサポートエージェントなどの個人であってもよい。多数のエージェントのうち、エージェントのサブセットは、特定のクライアント１２５にサポートまたは情報を提供するのに適していることがある。エージェント１２０は、クライアント１２５と提携していても、提携していなくてもよい。各エージェントは、１または複数のクライアント１２５に関連付けることができる。いくつかの非限定的な例では、ユーザ１１０は、パーソナルコンピューティングデバイスからオンラインストアでショッピングする個人であってよく、クライアント１２５は、製品をオンラインで販売する会社であってよく、エージェント１２０は、会社に使用される代表者であってよい。様々な実施形態において、ユーザ１１０、クライアント１２５、およびエージェント１２０は、他の個人またはエンティティであってもよい。
【００２１】
[0033]図１は、単一のネットワークデバイス１０５、端末機器１１５、およびクライアントデバイス１３０のみを示すが、インタラクションシステム１００は、これらのタイプのデバイスのうちの１または複数の各々を複数または多数（例えば、数十、数百、または数千）含むことができる。同様に、図１は、単一のユーザ１１０、エージェント１２０、およびクライアント１２５のみを示しているが、インタラクションシステム１００は、そのようなエンティティの１または複数の各々を複数または多数を含むことができる。したがって、所与のネットワークデバイスと通信するためにどの端末機器が選択されるべきかを決定する必要があり得る。さらに問題を複雑にすると、リモートサーバ１４０はまた、ネットワークデバイス通信を選択するために受信および応答するように構成され得る。
【００２２】
[0034]接続管理システム１５０は、通信の戦略的ルーティングを容易にすることができる。通信は、（例えば、タイプ入力または音声入力などのエンティティからの入力に基づいて定義される）コンテンツを有するメッセージを含むことができる。通信は、送信デバイスに関するデータ（例えば、ＩＰアドレス、アカウント識別子、デバイスタイプ、および／またはオペレーティングシステム）、宛先アドレス、クライアントの識別子、ウェブページまたはウェブページ要素の識別子（例えば、通信が生成されたか、通信に関連付けられたときにアクセスされた（ｖｉｓｉｔｅｄ）ウェブページまたはウェブページ要素）、もしくはオンライン履歴データ、時間（例えば、時刻および／または日付）、および／または宛先アドレスなどの追加のデータを含むこともできる。他の情報を通信に含めることができる。いくつかの例では、接続管理システム１５０は、通信全体を別のデバイスにルーティングする。いくつかの例では、接続管理システム１５０は、通信を修正するか、または（例えば、最初の通信に基づいて）新しい通信を生成する。新しいまたは修正された通信は、メッセージ（またはその処理後のバージョン）、（例えば、送信デバイス、ウェブページ、またはオンライン履歴および／または時間に関する）追加のデータの少なくとも一部（またはすべて）、および／または接続管理システム１５０によって識別された他のデータ（例えば、特定のアカウント識別子またはデバイスに関連付けられたアカウントデータ）を含むことができる。新しいまたは変更された通信は、他の情報も含むことができる。
【００２３】
[0035]戦略的ルーティング容易化の一部は、ネットワークデバイス１０５と１または複数の端末機器１１５との間の１または複数の接続チャネルを確立、更新、使用することを含むことができる。例えば、ネットワークデバイス１０５から通信を受信すると、接続管理システム１５０は、まず、（もしあれば）どのクライアントに通信が対応するかを推定することができる。クライアントを識別すると、接続管理システム１５０は、ネットワークデバイス１０５との通信のためにクライアントに関連付けられた端末機器１１５を識別することができる。いくつかの例では、識別は、複数のエージェント（またはエキスパートまたは代表者（ｄｅｌｅｇａｔｅｓ））の各々のプロファイルを評価することを含んでもよく、複数のエージェントのうちの各エージェント（例えば、エージェント１２０）は、端末機器（例えば、端末機器１１５）に関連付けられる。評価は、ネットワークデバイスメッセージにおけるコンテンツに関連することができる。端末機器１１５の識別は、例えば、あらゆる目的のためにその全体が参照により本明細書に組み込まれる、２０１０年３月１７日に出願された米国特許出願第１２／７２５，７９９号に記載された技術を含み得る。
【００２４】
[0036]いくつかの例では、接続管理システム１５０は、ネットワークデバイス１０５とクライアント（またはリモートサーバ１４０）に関連付けられた端末機器との間に何らかの接続チャネルが確立されているか否かを決定することができ、確立されている場合には、その通信を含む一連の通信を交換するためにそのチャネルを使用するか否かを決定することができる。
【００２５】
[0037]ネットワークデバイス１０５と通信する端末機器１１５を選択すると、接続管理システム１５０は、ネットワークデバイス１０５と端末機器１１５との間に接続チャネルを確立することができる。いくつかの例では、接続管理システム１５０は、選択された端末機器１１５にメッセージを送信することができる。メッセージは、ネットワークデバイス１０５と通信するために、提案された割り当ての受諾を要求してもよく、またはそのような割り当てが生成されたことを識別してもよい。メッセージは、ネットワークデバイス１０５に関する情報（例えば、ＩＰアドレス、デバイスタイプ、および／またはオペレーティングシステム）、関連付けられたユーザ１１０に関する情報（例えば、発話言語、クライアントとインタラクトした期間、スキルレベル、センチメント、および／またはトピック嗜好）、受信された通信、ネットワークデバイス１０５への通信を生成および送信するためのコード（例えば、クリック可能なハイパーリンク）、および／またはネットワークデバイス１０５への通信を生成および送信するための命令を含むことができる。
【００２６】
[0038]一例では、ネットワークデバイス１０５と端末機器１１５との間の通信は、接続管理システム１５０を介してルーティングすることができる。そのような構成は、接続管理システム１５０が通信交換をモニタし、いずれかのデバイスの非応答性または延長されたレイテンシ（ｌａｔｅｎｃｙ）などの（例えば、ルールに基づいて定義されるような）問題を検出することを可能にし得る。さらに、そのような構成は、通信の選択的または完全な記憶を容易にすることができ、これは、後に、例えば、通信交換の品質を評価するために、および／または、特定の通信後ターゲット（ｐｏｓｔ−ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｔａｒｇｅｔｓ）を促進するようにルーティングルールを更新または生成するための学習をサポートするために使用され得る。
【００２７】
[0039]いくつかの実施形態では、接続管理システム１５０は、リアルタイムで通信交換をモニタし、ライブ通信に基づいて自動化されたアクション（例えば、ルールベースアクション（ｒｕｌｅ−ｂａｓｅｄ  ａｃｔｉｏｎｓ））を実行することができる。例えば、接続管理システム１５０が、通信が特定のアイテム（例えば、製品）に関連すると決定すると、接続管理システム１５０は、アイテムに関する追加の情報（例えば、利用可能なアイテムの量、アイテムに関連する文書をサポートするためのリンク、またはアイテムもしくは類似のアイテムに関する他の情報）を含む追加のメッセージを端末機器１１５に自動的に送信することができる。
【００２８】
[0040]一例では、指定された端末機器１１５は、接続管理システム１５０を介して通信をリレー（ｒｅｌａｙｉｎｇ）することなく、ネットワークデバイス１０５と通信することができる。デバイス１０５、１１５の一方または両方は、通信モニタおよび／またはデータ記憶を容易にするために、特定の通信メトリックまたはコンテンツを接続管理システム１５０に報告してもよい（または報告しなくてもよい）。
【００２９】
[0041]上述のように、接続管理システム１５０は、選択通信（ｓｅｌｅｃｔ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）をリモートサーバ１４０にルーティングすることができる。リモートサーバ１４０は、所定の方法で情報を提供するように構成することができる。例えば、リモートサーバ１４０は、通信に応答して送信するために、定義された１または複数のテキストパッセージ、音声記録（ｖｏｉｃｅ  ｒｅｃｏｒｄｉｎｇ）および／またはファイルにアクセスしてもよい。リモートサーバ１４０は、例えば、受信した通信の分析（例えば、意味分析またはマッピング分析）に基づいて、特定のテキストパッセージ、記録またはファイルを選択してもよい。
【００３０】
[0042]接続管理システム１５０で実行されるルーティングおよび／または他の決定または処理は、１または複数のクライアントデバイス１３０によって少なくとも部分的に定義される、または提供されるルールおよび／またはデータに基づいて実行することができる。例えば、クライアントデバイス１３０は、エージェントの優先順位付け、端末機器タイプ、および／またはトピック／スキルマッチングを識別する通信を送信してもよい。別の例として、クライアントデバイス１３０は、ルーティング決定に影響を与える可能性のある様々な変数（例えば、言語互換性、予測された応答時間、デバイスタイプおよび機能、および／または端末機器負荷バランス）に適用するための１または複数の重みを識別してもよい。どの端末機器および／またはエージェントがクライアントに関連付けられるかは、動的であり得る。クライアントデバイス１３０および／または端末機器１１５からの通信は、所与の端末機器および／またはエージェントがクライアントに関連付けられたものとして追加または削除されるべきであることを示す情報を提供してもよい。例えば、クライアントデバイス１３０は、通信と、ＩＰアドレス、そのアドレスを有する端末機器がクライアント関連端末機器を識別するリストに追加されるべきか、削除されるべきかに関する表示（ｉｎｄｉｃａｔｉｏｎ）とを送信することができる。
【００３１】
[0043]各通信（例えば、デバイス間、デバイスと接続管理システム１５０間、リモートサーバ１４０と接続管理システム１５０間、またはリモートサーバ１４０とデバイス間）は、１または複数のネットワーク１７０を介して実行することができる。オープンまたはクローズドネットワークの任意の組合せが、１または複数のネットワーク１７０に含まれ得る。適切なネットワークの例は、インターネット、パーソナルエリアネットワーク、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、またはワイヤレスローカルエリアネットワーク（ＷＬＡＮ）を含む。他のネットワークも同様に適している。１または複数のネットワーク１７０は、イントラネット、エクストラネット、またはそれらの組合せ内に完全に組み込むことができ、またはそれらを含むことができる。いくつかの例では、１または複数のネットワーク１７０におけるネットワークは、Ｂｌｕｅｔｏｏｔｈ（登録商標）またはＢｌｕｅｔｏｏｔｈ（登録商標）  Ｌｏｗ  Ｅｎｅｒｇｙチャネルなどの短距離通信チャネルを含む。一実施形態では、２以上のシステムおよび／またはデバイス間の通信は、セキュアソケットレイヤ（ＳＳＬ）またはトランスポートレイヤセキュリティ（ＴＬＳ）などのセキュア通信プロトコルによって達成することができる。加えて、データおよび／またはトランザクションの詳細は、データ暗号化標準（ＤＥＳ）、トリプルＤＥＳ、Ｒｉｖｅｓｔ−Ｓｈａｍｉｒ−Ａｄｌｅｍａｎ暗号（ＲＳＡ）、Ｂｌｏｗｆｉｓｈ暗号、Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（ＡＥＳ）、ＣＡＳＴ−１２８、ＣＡＳＴ−２５６、無相関化高速暗号（ＤＦＣ：Ｄｅｃｏｒｒｅｌａｔｅｄ  Ｆａｓｔ  Ｃｉｐｈｅｒ）、Ｔｉｎｙ  Ｅｎｃｒｙｐｔｉｏｎ  Ａｌｇｏｒｉｔｈｍ（ＴＥＡ）、拡張ＴＥＡ（ＸＴＥＡ：ｅＸｔｅｎｄｅｄ  ＴＥＡ）、Ｃｏｒｒｅｃｔｅｄ  Ｂｌｏｃｋ  ＴＥＡ（ＸＸＴＥＡ）、および／またはＲＣ５などの、非限定的な、任意の便利な、既知の、または開発される方法に基づいて暗号化されてもよい。
【００３２】
[0044]ネットワークデバイス１０５、端末機器１１５、および／またはクライアントデバイス１３０は、例えば、ポータブル電子デバイス（例えば、スマートフォン、タブレット、ラップトップコンピュータ、またはスマートウェアラブルデバイス）、または非ポータブル電子デバイス（例えば、１または複数のデスクトップコンピュータ、スマート家電、サーバ、および／またはプロセッサ）を含むことができる。接続管理システム１５０は、ネットワーク、端末、およびクライアントデバイスとは別個に収容することができ、または（例えば、デバイス上のアプリケーションのインストールを介して）１または複数のこのようなデバイスの一部であってもよい。リモートサーバ１４０は、各デバイスおよび接続管理システム１５０とは別個に収容されてもよく、および／または、別のデバイスまたはシステムの一部であってもよい。図１における各デバイス、サーバ、およびシステムは、単一のデバイスとして示されているが、複数のデバイスが代わりに使用されてもよい。例えば、単一のユーザから様々な通信を送信するために１組のネットワークデバイスを使用することができ、またはリモートサーバ１４０は、サーバスタックを含んでもよい。
【００３３】
[0045]ソフトウェアエージェントまたはアプリケーションは、図示されたデバイス、システム、またはサーバ上にインストールされてもよく、および／または実行可能であってもよい。一例では、ソフトウェアエージェントまたはアプリケーションは、様々な図示された要素が相補的な形で動作できるように構成される。例えば、デバイス上のソフトウェアエージェントは、デバイス使用に関するデータを収集し、別個の接続管理システムに送信するように構成することができ、別個の接続管理システム上のソフトウェアアプリケーションは、データを受信し、処理するように構成することができる。
【００３４】
[0046]図２は、ネットワークインタラクションシステム２００の別の実施形態のブロック図を示す。一般に、図２は、ネットワークデバイス２０５が１または複数の端末機器２１５と通信することを可能にするように構成および配置された様々なコンポーネントを示す。図示された例は、３つのローカルエリアネットワーク２３５に含まれる９つの端末機器２１５を含む。
【００３５】
[0047]いくつかの例では、ネットワークデバイス２０５からの通信は、どの端末機器が通信を受信すべきかを少なくとも部分的にまたは完全に示す宛先データ（例えば、宛先ＩＰアドレス）を含む。ネットワークインタラクションシステム２００は、宛先データを処理し、適切なルーティングを容易にすることができる１または複数のインターネットワーク接続コンポーネント２４０および／または１または複数のイントラネットワーク接続コンポーネント２５５を含むことができる。
【００３６】
[0048]各インターネットワーク接続コンポーネント２４５は、複数のネットワーク２３５に接続することができ、複数のネットワークカードをインストールすることができる（例えば、各カードは異なるネットワークに接続される）。例えば、インターネットワーク接続コンポーネント２４５は、広域ネットワーク２７０（例えば、インターネット）および１または複数のローカルエリアネットワーク２３５に接続することができる。図示された例では、通信がネットワークデバイス２０５から端末機器のいずれかに送信されるために、図示のシステムでは、通信は、複数のインターネットワーク接続コンポーネント２４５によって処理されなければならない。
【００３７】
[0049]インターネットワーク接続コンポーネント２４５が通信（または通信に対応するパケットのセット）を受信すると、インターネットワーク接続コンポーネント２４５は、通信を宛先に関連付けられたネットワークにパス（ｐａｓｓ）するルートの少なくとも一部を決定することができる。ルートは、例えば、（例えば、ルータに記憶された）事前に定義され、（例えば、別のルータからまたは別のデバイスからの）着信メッセージ（ｉｎｃｏｍｉｎｇ  ｍｅｓｓａｇｅ）に基づいて生成され、または学習された１または複数のルートを含むことができるルーティングテーブルを使用して決定することができる。
【００３８】
[0050]インターネット接続コンポーネント２４５の例は、ルータ２６０およびゲートウェイ２６５を含む。インターネットワーク接続コンポーネント２４５（例えば、ゲートウェイ２６５）は、ネットワークシステムまたはプロトコル間で変換するように構成され得る。例えば、ゲートウェイ２６５は、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）とインターネットワークパケット交換／シーケンスパケット交換（ＩＰＸ／ＳＰＸ）デバイスとの間の通信を容易にすることができる。
【００３９】
[0051]ローカルエリアネットワーク２３５で通信を受信すると、さらなるルーティングの実行が依然として必要となり得る。このようなイントラネットワークルーティングは、スイッチ２８０またはハブ２８５などのイントラネットワーク接続コンポーネント２５５を介して実行することができる。各イントラネットワーク接続コンポーネント２５５は、複数の端末機器２１５に（例えば、無線または例えばイーサネット（登録商標）ケーブルを介して、有線で）接続することができる。ハブ２８５は、接続される各デバイスに対して、全ての受信された通信を繰り返すように構成され得る。次いで、各端末機器は、端末機器が宛先デバイスであるかどうか、または通信が無視されるかべきかどうかを決定するために、各通信を評価することができる。スイッチ２８０は、通信を宛先端末機器のみに選択的に向けるように構成することができる。
【００４０】
[0052]いくつかの例では、ローカルエリアネットワーク２３５を複数のセグメントに分割することができ、各セグメントは、独立したファイアウォール、セキュリティルール、およびネットワークプロトコルに関連付けることができる。イントラセグメント（ｉｎｔｒａ−ｓｅｇｍｅｎｔ）ルーティングを容易にするために、１つ、複数、またはすべてのセグメントの各々に、イントラネットワーク接続コンポーネント２５５を設けることができる。ブリッジ２８０は、セグメント２７５にわたって通信をルーティングするように構成することができる。
【００４１】
[0053]ネットワークを介して、またはネットワーク内で通信を適切にルーティングするために、様々なコンポーネントが、通信内の宛先データを分析する。例えば、そのようなデータは、通信がどのネットワークにルーティングされるべきか、通信がネットワーク内のどのデバイスにルーティングされるべきか、または端末機器がどの通信を処理すべきか（または無視すべきか）を示すことができる。しかし、いくつかの例では、どの端末機器（またはどのネットワーク）がネットワークデバイスからの通信に参加すべきかはすぐには分からない。
【００４２】
[0054]例示のために、端末機器のセットは、同様のタイプの応答通信を提供するように構成され得る。したがって、ネットワークデバイスからの通信におけるクエリは、どのネットワークデバイスに通信がルーティングされるかにかかわらず、同様の方法で応答され得ることが期待できる。この仮定は高いレベルでは真であるが、端末機器に関する様々な詳細は、他のものと比較して有利な特定のルーティングを生じさせ得る。例えば、セット内の端末機器は、（例えば）どの通信チャネルがサポートされているか、ネットワークデバイスに対する地理的および／またはネットワークの近接性、および／または関連付けられたエージェントの特徴（例えば、知識ベース、経験、発話言語、利用可能性、一般的な性格またはセンチメントなど）に関して互いに異なることがある。したがって、選択ルーティングは、より正確におよび／または完全にネットワークデバイス通信に応答する、より高速な応答を容易にすることができる。複雑さは、ネットワークデバイスを端末機器にマッピングする静的ルーティングが、通信トピック、チャネルタイプ、エージェント利用可能性などの変動を考慮できないことである。
【００４３】
[0055]図３Ａ−３Ｃは、接続管理システムを含むネットワークインタラクションシステム３００ａ−３００ｃの他の実施形態のブロック図を示す。図示されたシステム３００ａ−３００ｃの各々は、簡単のために、２つのローカルエリアネットワーク２３５のみを示しているが、実施形態は、ローカルエリアネットワークの数を増やして拡張することができる。システム３００ａ−３００ｃの各々は、どの端末機器がネットワークデバイス２０５と通信すべきかを識別すること、接続チャネルを確立および管理（例えば、維持（ｍａｉｎｔａｉｎ）または閉鎖（ｃｌｏｓｅ））すること、交換において通信を再ルーティングすべきかどうか、およびいつ再ルーティングすべきかを決定すること等ができる接続管理システム３５０を含む。したがって、接続管理システム３５０は、ルーティング決定に影響を及ぼすために、通信、エージェントの利用可能性、端末機器またはエージェントの機能などを動的に、リアルタイムで評価するように構成され得る。
【００４４】
[0056]図３Ａでは、接続管理システム３５０は、ネットワークデバイス２０５およびリモートサーバ３４０の各々に関連付けられる（例えば、接続管理システム３５０ａは、ネットワークデバイス２０５に関連付けられ、接続管理システム３５０ｂは、リモートサーバ３４０に関連付けられる）。例えば、接続管理システム３５０ａおよび／または接続管理システム３５０ｂは、それぞれが、ネットワークデバイス２０５およびリモートサーバ３４０の各々にアプリケーションとしてインストールまたは記憶することができる。アプリケーションの実行は、例えば、ネットワークデバイス２０５との通信交換に参加するために選択された端末機器２１５を識別するために、ネットワークデバイス２０５とリモートサーバ３４０との間の通信を容易にすることができる。識別は、ここで開示される１または複数の要因（例えば、利用可能性、通信のトピック／詳細レベルとエージェントまたは端末機器の知識ベースとの間のマッチング、予測レイテンシ、チャネルタイプの利用可能性など）に基づいて行うことができる。
【００４５】
[0057]クライアントデバイス３３０は、ルーティング決定がどのように行われるべきかを示すクライアントデータを提供することができる。例えば、そのようなデータは、特定の特徴をどのように重み付けまたはマッチさせる（ｍａｔｃｈｅｄ）かに関する指示、または制約またはバイアス（例えば、負荷平衡または予測された応答レイテンシに関係する）を含むことができる。クライアントデータはまた、いつ通信チャネルが確立（または閉鎖）されるか、またはいつ通信が異なるネットワークデバイスに再ルーティングされるかに関する仕様を含むことができる。クライアントデータは、通信ルーティングなどのためのルールのような様々なクライアント特有の（ｃｌｉｅｎｔ−ｓｐｅｃｉｆｉｃ）ルールを定義するために使用することができる。
【００４６】
[0058]リモートサーバ３４０上で実行される接続管理システム３５０ｂは、どの通信チャネルがサポートされているか、ネットワークデバイスに対する地理的および／またはネットワークの近接性、端末機器との通信レイテンシおよび／または安定性、端末機器のタイプ、端末機器の機能、端末機器（またはエージェント）が所与のネットワークデバイス（またはユーザ）と以前に通信したかどうか、および／または関連付けられたエージェントの特徴（例えば、知識ベース、経験、発話言語、利用可能性、一般的な性格またはセンチメントなど）などの端末機器に関連する（例えば、所与のクライアントに関連する）様々なメトリックをモニタすることができる。したがって、接続管理システム３５０ｂは、メトリック（ｍｅｔｒｉｃｓ）に基づいて、ネットワーク・デバイス通信に対してより正確におよび／または完全に応答する、より高速な応答を容易にするルーティングを選択することができる。
【００４７】
[0059]図３Ａに示す例では、ネットワークデバイス２０５とリモートサーバ３４０間の通信交換は、宛先アドレスの早期識別を容易にすることができる。次いで、ネットワークデバイス２０５は、後続の通信を指示するために宛先アドレスを使用することできる。例えば、ネットワークデバイス２０５は、（例えば、１または複数のインターネットワーク接続および広域ネットワークを介して）初期通信をリモートサーバ３４０に送信することができ、リモートサーバ３４０は、１または複数の対応するクライアントを識別することができる。次いで、リモートサーバ３４０は、１または複数の対応するクライアントに関連付けられた端末機器のセットを識別し、それらの端末機器のメトリックを収集することができる。メトリックは、通信交換に関与する端末機器を選択するために（例えば、リモートサーバ３４０によって）評価されてもよく、端末機器に関する情報（例えば、ＩＰアドレス）は、ネットワークデバイス２０５に送信されてもよい。いくつかの実施形態では、リモートサーバ３４０は、様々な端末機器のメトリックを連続的または定期的に収集および評価し、評価結果をデータストアに記憶してもよい。そのような実施形態では、１または複数の対応するクライアントに関連付けられた端末機器のセットを識別すると、リモートサーバ３４０は、データストアから記憶された評価結果にアクセスし、記憶された評価結果に基づいて通信交換に関与する端末機器を選択することができる。
【００４８】
[0060]図３Ｂでは、接続管理システム３５０は、リレーおよび／または宛先アドレスとして機能するように構成することができる。したがって、例えば、ネットワークデバイス２０５のセットは、各々が接続管理システム３５０を宛先として識別する通信を送信してもよい。接続管理システム３５０は、各通信を受信することができ、（例えば、各端末機器のメトリックを生成するために）端末機器のセットを同時にモニタすることができる。モニタおよびルールに基づいて、接続管理システム３５０は、各通信をリレーすることができる端末機器２１５を識別することができる。実施形態に応じて、端末機器の通信は、同様に、さらなるリレーのために（例えば、接続管理システム３５０の）一定の宛先に向けられてもよく、または端末機器は、対応するネットワークデバイスと直接通信を開始してもよい。これらの実施形態は、効率的なルーティングおよび完全な通信モニタを容易にすることができる。
【００４９】
[0061]図３Ｃに示す実施形態は、図３Ｂの実施形態と同様である。しかし、いくつかの実施形態では、接続管理システム３５０は、イントラネットワークコンポーネント（例えば、端末機器、イントラネットワーク接続、その他）に直接接続される。
【００５０】
[0062]図３Ａ−３Ｃの多くのバリエーションが考えられる。例えば、接続管理システム３５０は、接続コンポーネント（例えば、インターネットワーク接続コンポーネント２４５またはイントラネットワーク接続コンポーネント２５５）に関連付けられてもよく、その結果、接続管理システム３５０（またはその一部）に対応するアプリケーションがコンポーネントにインストールされる。アプリケーションは、例えば、独立して、１または複数の同様のまたは相補的なアプリケーションと通信することによって（例えば、１または複数の他のコンポーネント、ネットワークデバイス、またはリモートサーバ上で実行することによって）実行することができる。
【００５１】
[0063]図４は、接続コンポーネントの動作のプロトコルスタックマッピング４００の表示である。より詳細には、図４は、様々な接続コンポーネントに対応するＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒａｃｔｉｏｎ）モデルにおける動作の層を示す。
【００５２】
[0064]ＯＳＩモデルは、複数の論理層４０２−４１４を含むことができる。これらの層は、層４０２−４１２が各々より高いレベルを提供し、層４０４−４１４が各々より低い層を提供するように、順序付けられたスタックに配置される。ＯＳＩモデルは、物理層４０２を含む。物理層４０２は、パラメータ物理的通信（例えば、電気的、光学的、または電磁気的）を定義することができる。物理層４０２はまた、接続を確立および閉鎖するプロトコルなどの接続管理プロトコルを定義する。物理層４０２は、フロー制御プロトコルおよび送信モードをさらに定義することができる。
【００５３】
[0065]リンク層４０４は、ノード間通信を管理することができる。リンク層４０４は、エラー（例えば、物理層４０２における送信エラー）を検出し、訂正し、アクセス許可を管理することができる。リンク層４０４は、媒体アクセス制御（ＭＡＣ）層および論理リンク制御（ＬＬＣ）層を含むことができる。
【００５４】
[0066]ネットワーク層４０６は、（例えば、可変長の）データの同じネットワーク内のノードにわたる（例えば、データグラムとして）転送を調整することができる。ネットワーク層４０６は、論理ネットワークアドレスを物理マシンアドレスに変換することができる。
【００５５】
[0067]トランスポート層４０８は、送信品質および受信品質を管理することができる。トランスポート層４０８は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）などのデータを転送するためのプロトコルを提供することができる。トランスポート層４０８は、送信のためにデータパケットのセグメント化（ｓｅｇｍｅｎｔａｔｉｏｎ）／非セグメント化（ｄｅｓｅｇｍｅｎｔａｔｉｏｎ）を実行することができ、層４０２−４０６で発生する送信エラーを検出し、考慮することができる。セッション層４１０は、ローカルアプリケーションとリモートアプリケーション間の接続を開始し、維持し、終了することができる。セッションは、リモートプロシージャ・インタラクションの一部として使用され得る。プレゼンテーション層４１２は、アプリケーションまたはネットワーク層によって受け入れられることが知られているデータタイプに基づいて、データを暗号化し、復号化し、フォーマットすることができる。
【００５６】
[0068]アプリケーション層４１４は、通信を制御または管理するソフトウェアアプリケーションとインタラクトすることができる。そのようなアプリケーションを介して、アプリケーション層４１４は、（例えば）宛先、ローカルリソース状態または利用可能性および／または通信コンテンツまたはフォーマットを識別することができる。様々な層４０２−４１４は、利用可能であり適用可能な他の機能を実行することができる。
【００５７】
[0069]イントラネットワーク接続コンポーネント４２２、４２４は、物理層４０２およびリンク層４０４で動作するように示されている。より具体的には、ハブは、通信の受信および送信に関して動作を制御することができるように、物理層で動作することができる。ハブは、通信に対応する（ａｄｄｒｅｓｓ）機能またはデータをフィルタする機能を欠いているので、より高いレベルで動作する機能をほとんどまたは全く有していない。一方、スイッチは、アドレス（例えば、ＭＡＣアドレス）に基づいて通信フレームをフィルタリングすることができるので、リンク層４０４で動作することができる。
【００５８】
[0070]一方、インターネットワーク接続コンポーネント４２６、４２８は、より高いレベル（例えば、レイヤ４０６−４１４）で動作するように示されている。例えば、ルータは、アドレス（例えば、ＩＰアドレス）に基づいて通信データパケットをフィルタリングすることができる。ルータは、パケットを適切なネットワークに向けるために、アドレスに基づいて特定のポートにパケットを転送することができる。ゲートウェイは、ネットワーク層およびその上で動作し、同様のフィルタリングおよび方向付け、ならびにデータのさらなる変換（例えば、プロトコルまたはアーキテクチャにわたって）を実行することができる。
【００５９】
[0071]接続管理システム４５０は、様々な実施形態では、様々な層のうちの１つ、複数、すべて、または任意の層とインタラクトし、および／またはその上で動作することができる。例えば、接続管理システム４５０は、ハブがどの端末機器と通信するかを動的に調整するためにハブとインタラクトできる。別の例として、接続管理システム４５０は、コンポーネントがどの端末機器を宛先（例えば、ＭＡＣ、論理または物理）アドレスとして選択するかに影響を及ぼすように、ブリッジ、スイッチ、ルータまたはゲートウェイと通信することができる。さらなる例として、接続管理システム４５０は、トランスポート層４０８上のデータパケットのセグメント化、セッション層４１０上のセッション持続時間、および／またはプレゼンテーション層４１２上の暗号化および／または圧縮をモニタ、制御、または指示することができる。いくつかの実施形態では、接続管理システム４５０は、特定の層上で動作する機器（例えば、リンク層４０４上で動作するスイッチ）と通信を交換する（例えば、コマンドを送る）ことによって、既存の通信を（例えば、ネットワークデバイスと端末機器との間で）特定の方法でルーティングまたは修正することによって、および／または既存の通信に基づいて特定の情報（例えば、新しい宛先アドレス）を含む新しい通信を生成することによって、様々な層とインタラクトすることができる。したがって、接続管理システム４５０は、様々なデバイスとのインタラクションを介して、および／または様々なプロトコルスタック層での動作に影響を与えることを介して、通信ルーティングおよびチャネル確立（または維持または終了）に影響を与えることができる。
【００６０】
[0072]図５は、一実施形態によるマルチデバイス通信交換システム５００を表す。システム５００は、様々なタイプの通信チャネルを介して様々なタイプの端末機器と通信するように構成されたネットワークデバイス５０５を含む。
【００６１】
[0073]図示された例では、ネットワークデバイス５０５は、セルラネットワークを介して（例えば、基地局５１０を介して）通信を送信することができる。通信は、動作ネットワーク５１５にルーティングされ得る。動作ネットワーク５１５は、通信を受信し、どの端末機器が通信に応答すべきかを識別する接続管理システム５２０を含むことができる。そのような決定は、（例えば、コンテンツ分析またはクライアントを示すユーザ入力に基づいて）通信が関係するクライアントを識別することと、クライアントに関連付けられた１または複数の端末機器の各々について１または複数のメトリックを決定することとに依存し得る。例えば、図５では、端末機器５３０ａ−５３０ｃの各クラスタは、異なるクライアントに対応することができる。端末機器は、地理的に同じ場所に配置されてもよいし、分散されてもよい。メトリックは、記憶された又は学習されたデータ及び／又はリアルタイムモニタに基づいて（例えば、利用可能性に基づいて）決定されてもよい。
【００６２】
[0074]接続管理システム５２０は、１または複数のルータ５２５または他のインターネットワークもしくはイントラネットワーク接続コンポーネントを介して様々な端末機器と通信することができる。接続管理システム５２０は、１または複数のデータストアにおいて、通信、端末機器動作、クライアントルール、および／またはユーザ関連アクション（例えば、オンラインアクティビティ）から、またはそれらに関係するデータを収集、分析、および／または記憶することができる。そのようなデータは、通信ルーティングに影響を及ぼすことがある。
【００６３】
[0075]特に、通信ルーティングおよび／または処理に影響を与えるために、様々な他のデバイスをさらに使用することができる。例えば、図示された例では、接続管理システム５２０は、ウェブサーバ５４０にも接続される。したがって、接続管理システム５２０は、技術項目の詳細などの関心のあるデータを検索する（ｒｅｔｒｉｅｖｅ）ことができる。
【００６４】
[0076]ネットワークデバイス５０５は、ウェブサーバ（例えば、ウェブサーバ５４５を含む）にも接続され得る。いくつかの例では、そのようなサーバとの通信は、接続管理システム５２０との通信交換を開始するための初期オプションを提供した。例えば、ネットワークデバイス５０５は、特定のウェブページにアクセスしている間に、通信機会が利用可能であり、そのようなオプションが提示できることを検出し得る。
【００６５】
[0077]通信システム５００の１または複数の要素をソーシャルネットワーキングサーバ５５０に接続することもできる。ソーシャルネットワーキングサーバ５５０は、様々なユーザデバイスから受信したデータを集約することができる。したがって、例えば、接続管理システム５２０は、所与のユーザまたはユーザのクラスの一般的な（またはユーザ特有の）挙動を推定することができる。
【００６６】
[0078]図６は、接続管理システム６００の実施形態のブロック図である。メッセージ受信機インタフェース６０５は、メッセージを受信することができる。いくつかの例では、メッセージは、例えば、ネットワークデバイスまたは端末機器などのソースデバイス（例えば、接続管理システム６００とは別に、または同じハウジング内に収容される）によって送信される通信の一部として受信され得る。いくつかの例では、通信は、２つのデバイス（例えば、ネットワークデバイスおよび端末機器）の間でルーティングされる一連のメッセージまたはメッセージ交換を含むことができる、一連の通信または通信交換の一部とすることができる。このメッセージまたは通信交換は、デバイス間のインタラクションの一部であっても、および／または定義するものであってもよい。通信チャネルまたは動作チャネルは、デバイス間のルーティングおよび通信交換を容易にするために使用される１または複数のプロトコル（例えば、ルーティングプロトコル、タスク割り当てプロトコル、および／またはアドレス指定プロトコル）を含むことができる。
【００６７】
[0079]いくつかの例では、メッセージは、ローカルまたはリモートユーザインタフェースで受信された入力に基づいて生成されたメッセージを含むことができる。例えば、メッセージは、ボタンまたはキー押下または記録された音声信号に基づいて生成されたメッセージを含むことができる。一例では、メッセージは、ネットワークデバイスが特定のアプリページ（ａｐｐ  ｐａｇｅ）またはウェブページを提示しているか、または特定の入力コマンド（例えば、キーシーケンス）を提供したことを検出したときに生成されるメッセージのような自動的に生成されるメッセージを含む。メッセージは、通信交換を開始するような命令または要求を含むことができる。
【００６８】
[0080]いくつかの例では、メッセージは、クライアントの識別子を含むか、またはクライアントの識別子に関連付けることができる。例えば、メッセージは、クライアント（またはクライアントに関連付けられたデバイス）を明示的に識別することができ、メッセージは、クライアントに関連付けられたウェブページもしくはアプリページを含むか、それに関連付けることができ、メッセージは、クライアントに関連付けられた宛先アドレスを含むか、それに関連付けることができ、または、メッセージは、クライアントに関連付けられたアイテム（例えば、製品）もしくはサービスの識別を含むか、それに関連付けることができる。例えば、ネットワークデバイスは、エージェントに通信を送信するオプションを提供することができる、特定のクライアントのアプリページを提示することができる。メッセージに対応するユーザ入力を受信すると、メッセージおよび特定のクライアントの識別子を含むように通信を生成することができる。
【００６９】
[0081]処理エンジン６１０は、受信した通信および／またはメッセージを処理することができる。処理は、例えば、１または複数の特定のデータ要素（例えば、メッセージ、クライアント識別子、ネットワークデバイス識別子、アカウント識別子など）を抽出することを含んでもよい。処理は、（例えば、特定のデバイスタイプ、オペレーティングシステム、通信チャネルタイプ、プロトコル、および／またはネットワークと互換性があるように）フォーマットまたは通信タイプを変換することを含むことができる。
【００７０】
[0082]メッセージ評価エンジン６１５は、（例えば、抽出されたまたは受信された）メッセージを評価してもよい。評価は、例えば、メッセージの１または複数のカテゴリまたはタグを識別することを含むことができる。カテゴリまたはタグタイプの例は、（例えば）トピック、センチメント、複雑度、および緊急度を含むことができる。メッセージのカテゴリ化とタグ付けとの違いは、カテゴリは、（例えば、予め定義されたカテゴリオプションのセットに従って）制限することができるが、タグはオープンである。トピックは、例えば、技術的問題、使用上の質問、または要求を含むことができる。カテゴリまたはタグは、例えば、メッセージの（例えば、キーワード、文構造、繰り返し語、句読点文字、および／または非冠詞単語を識別することによる）意味解析、（例えば、選択された１または複数のカテゴリを有する）ユーザ入力、および／またはメッセージ関連統計（例えば、タイピング速度および／または応答レイテンシ）に基づいて決定することができる。
【００７１】
[0083]いくつかの例では、メッセージ評価エンジン６１５は、メッセージのメトリックを決定することができる。メトリックは、例えば、文字、単語、大文字、すべての大文字の単語、または特定の文字または句読点（例えば、感嘆符、疑問符および／またはピリオド）のインスタンスの数を含むことができる。メトリックは、感嘆符（または疑問符）で終わる文の割合、すべて大文字の単語の割合などの比率を含むことができる。
【００７２】
[0084]メッセージ評価エンジン６１５は、メッセージ、メッセージメトリック、および／またはメッセージ統計をメッセージデータストア６２０に記憶することができる。各メッセージは、対応するソースデバイス、宛先デバイス、ネットワークデバイス、端末機器、クライアント、１または複数のカテゴリ、１または複数のステージ、および／またはメッセージ関連統計を識別するデータなど、他のデータ（例えば、メタデータ）に関連して記憶することもできる。接続管理システム６００の様々なコンポーネント（例えば、メッセージ評価エンジン６１５および／またはインタラクション管理エンジン６２５）は、クエリ応答メッセージ、メッセージメトリック、および／またはメッセージ統計を検索するためにメッセージデータストア６２０にクエリを実行することができる。
【００７３】
[0085]インタラクション管理エンジン６２５は、通信がどのデバイスにルーティングされるべきか、および受信および送信デバイスがどのように通信すべきかを決定することができる。これらの決定の各々は、例えば、特定のネットワークデバイス（または特定のユーザに関連付けられた任意のネットワークデバイス）が、端末機器のセット内の端末機器（例えば、接続管理システム６００に関連付けられた任意の端末機器、または１または複数の特定のクライアントに関連付けられた任意の端末機器）と以前に通信したかどうかに依存しうる。
【００７４】
[0086]いくつかの例では、ネットワークデバイス（または、同じユーザまたはプロファイルに関連付けられた他のネットワークデバイス）が、所与の端末機器と以前に通信したことがある場合、通信ルーティングは、一般に、同じ端末機器に向かってバイアス（ｂｉａｓｅｄ）され得る。ルーティングに影響を与え得る他の要因は、例えば、端末機器（または対応するエージェント）が利用可能であるかどうか、および／または端末機器の予測された応答レイテンシを含み得る。そのような要因は、他の端末機器に対応する類似のメトリックに対して絶対的に、または相対的に考慮され得る。再ルーティングルール（例えば、クライアント特有のまたは一般的なルール）は、エージェントの一貫性を優先する（ｆｏｒｅｇｏ）かどうかを決定するために、そのような要因がどのように評価され、重み付けされるべきかを示すことができる。
【００７５】
[0087]ネットワークデバイス（または、同じユーザまたはアカウントに関連付けられた他のネットワークデバイス）が、所与の端末機器と以前に通信していない場合、端末機器の選択は、例えば、様々なエージェントの知識ベースが通信トピックに対応する程度、所与の時間におけるおよび／またはチャネルタイプに対する様々なエージェントの利用可能性、および／または（例えば、クライアントに関連付けられた）端末機器のタイプ、および／または機能などの要因に基づいて実行され得る。一例では、ルールは、そのような１または複数の要因に対するサブパラメータおよび各パラメータに割り当てる重みをどのように決定するかを識別することができる。重み付けされたサブパラメータを組み合わせる（例えば、合計する）ことによって、各エージェントのパラメータを決定することができる。端末機器の選択は、端末機器のパラメータを比較することによって行うことができる。
【００７６】
[0088]デバイスがどのように通信するかを決定することに関して、インタラクション管理エンジン６２５は、（例えば）端末機器が（例えば）ＳＭＳメッセージ、音声呼び出し、ビデオ通信などを介して通信に応答するかどうかを決定することができる。通信タイプは、例えば、（例えば、クライアントまたはユーザによって少なくとも部分的に定義される）通信タイプ優先度リスト、（例えば、一貫性を促進するために）ネットワークデバイスから以前に受信された通信のタイプ、受信されたメッセージの複雑さ、ネットワークデバイスの機能、および／または１または複数の端末機器の利用可能性に基づいて選択され得る。明らかに、いくつかの通信タイプは、（例えば、高速メッセージ応答が期待される）リアルタイム通信をもたらし、一方、他のものは、（例えば、メッセージ間の（例えば、数分または数時間の）遅延が許容可能である）非同期通信をもたらすことができる。
【００７７】
[0089]さらに、インタラクション管理エンジン６２５は、２つのデバイス間の連続チャネルが確立、使用、または終了されるべきかを決定することができる。連続チャネルは、ネットワークデバイスから特定の端末機器への将来の通信のルーティングを容易にするように構成することができる。このバイアスは、メッセージシリーズ（ｍｅｓｓａｇｅ  ｓｅｒｉｅｓ）にわたっても持続することができる。いくつかの例では、連続チャネルの表現（例えば、エージェントの識別）を、ネットワークデバイス上に提示されるプレゼンテーションに含めることができる。このようにして、ユーザは、効率を高めるために通信が一貫してルーティングされるべきであることを理解することができる。
【００７８】
[0090]一例では、パラメータは、所与のネットワークデバイスおよび端末機器に対応する接続パラメータを決定するために、ここで説明される１または複数の要因と、（例えば、１または複数の要因の各々の重みを含む）ルールとを使用して生成され得る。パラメータは、全体的な一致（ｍａｔｃｈ）、または所与の通信または通信シリーズに特有のものに関係し得る。したがって、例えば、パラメータは、所与の端末機器がネットワークデバイス通信に応答するのに適していると予測される程度を反映することができる。いくつかの例では、所与の通信をルーティングする端末機器の各々を識別し、接続チャネルを確立、使用、または終了するかを識別するためにパラメータ分析を使用することができる。ルーティング決定およびチャネル決定の両方に対処するためにパラメータ分析が使用される場合、各決定に関連付けられたパラメータは、同一、類似の、または異なる方法で決定され得る。
【００７９】
[0091]したがって、例えば、パラメータが、長期間一致の強度を予測するためのものであるか、特定のメッセージクエリに応答するためのものであるかに依存して、異なる要因が考慮され得る。例えば、前者の場合には、全体のスケジュール及び時間帯の考慮が重要であり、一方、後者の場合には、即時の利用可能性がより高く重み付けされる。パラメータは、単一のネットワークデバイス／端末機器の組合せに対して決定されてもよく、または複数のパラメータが決定されてもよく、各々は、所与のネットワークデバイスと異なる端末機器との間の一致を特徴付ける。
【００８０】
[0092]例示のために、クライアントに関連付けられた３つの端末機器のセットが、潜在的な通信ルーティングについて評価され得る。パラメータは、特定の通信のための一致に関連する各々のために生成され得る。２つの第１の端末機器の各々は、通信を送信したネットワークデバイスと以前通信したことがあってもよい。ネットワークデバイスからの入力は、第１のデバイスとの通信とのインタラクションに関連付けられた肯定的なフィードバックを示したものであってもよい。したがって、第１のデバイス、第２のデバイス、および第３のデバイスについての（例えば、ルールに従って計算された）過去インタラクションサブパラメータ（ｐａｓｔ−ｉｎｔｅｒａｃｔ  ｓｕｂ−ｐａｒａｍｅｔｅｒ）は、各々、１０、５、および０であり得る。（負のフィードバック入力は、負のサブパラメータをもたらし得る。）第３の端末機器のみが利用可能であると決定されてもよい。第２の端末機器は１５分以内に応答可能であるが、第１の端末機器は翌日まで応答可能でないことが予測され得る。したがって、第１、第２、および第３のデバイスのための高速応答サブパラメータは、１、３、および１０であり得る。最後に、（端末機器に関連付けられた）エージェントが通信におけるトピックについてどの程度精通しているかを推定することができる。第３の端末機器に関連付けられたエージェントは、他の２つのデバイスに関連付けられたエージェントよりも精通しており、サブパラメータは３、４、９となる。この例では、ルールは、重み付けパラメータまたは正規化パラメータを含まず（ただし、他の例では、ルールは含んでもよい）、パラメータは１４、１１、１９となる。したがって、このルールは、メッセージが、一番高いパラメータを有するデバイス、すなわち第３の端末機器にルーティングされるべきであることを示し得る。特定の端末機器へのルーティングが失敗した場合、メッセージは、次に高いパラメータを有するデバイスにルーティングされることができる。
【００８１】
[0093]パラメータを、１または複数の絶対的または相対的閾値と比較することができる。例えば、通信をルーティングすることができる端末機器を選択するための高いパラメータを識別するために、端末機器のセットのパラメータを互いに比較することができる。別の例として、端末機器と連続チャネルを確立するかどうかを決定するために、パラメータ（例えば、高いパラメータ）を１または複数の絶対的閾値と比較することができる。連続的なチャネルを確立するための全体の閾値（ｏｖｅｒａｌｌ  ｔｈｒｅｓｈｏｌｄ）は、所定の一連のメッセージにおいて通信を一貫してルーティングするための閾値よりも高くてもよい（が、高い必要はない）。全体の閾値と、通信を一貫してルーティングするかどうかを決定するための閾値との間の差は、チャネルの拡張された有用性を考慮すると、連続チャネルコンテキストにおいて、強い一致が重要であることが理由となり得る。いくつかの実施形態では、連続チャネルを使用するための全体の閾値は、連続チャネルを確立するための、および／または所与の一連のメッセージにおいて通信を一貫してルーティングするための閾値よりも低くてもよい（が、低い必要はない）。
【００８２】
[0094]インタラクション管理エンジン６２５は、様々なコンテキストでアカウントエンジン６３０とインタラクトすることができる。例えば、アカウントエンジン６３０は、アカウントデータストア６３５内のネットワークデバイスまたは端末機器の識別子を参照して、そのデバイスまたは機器に対応するアカウントを識別することができる。さらに、アカウントエンジン６３０は、以前の通信交換（例えば、時間、関与する他のデバイス、チャネルタイプ、解決段階、トピック、および／または関連付けられたクライアント識別子）、接続チャネル（例えば、１または複数のクライアントの各々に対して、任意のチャネルが存在するかどうか、各チャネルに関連付けられた端末機器、確立時間、使用頻度、最終使用日、任意のチャネル制約および／またはサポートされる通信のタイプを示す）、ユーザまたはエージェントの嗜好または制約（例えば、端末機器選択、応答レイテンシ、端末機器一貫性、エージェント専門知識、および／または通信タイプの嗜好又は制約に関する）、および／またはユーザまたはエージェントの特徴（例えば、発話言語、嗜好言語、地理的位置、興味など）に関するデータを維持することができる。
【００８３】
[0095]さらに、インタラクション管理エンジン６２５は、アカウントデータストア６３５が現在のチャネルデータを反映するように更新され得るように、様々な接続チャネルアクションについてアカウントエンジン６３０に警告することができる。例えば、チャネルを確立すると、インタラクション管理エンジン６２５は、アカウントエンジン６３０にその確立を通知し、ネットワークデバイス、端末機器、アカウント、およびクライアントのうちの１または複数を識別することができる。アカウントエンジン６３５は、（いくつかの例では）その後、利用されているエージェントの一貫性をユーザが知ることができるように、チャネルの存在をユーザに通知することができる。
【００８４】
[0096]インタラクション管理エンジン６２５は、１または複数のクライアント（および／または関連付けられたブランド）に通信をマッピングすることができる、クライアントマッピングエンジン６４０とさらにインタラクトすることができる。いくつかの例では、ネットワークデバイス自体から受信された通信は、クライアントに対応する識別子（例えば、クライアント、ウェブページ、またはアプリページの識別子）を含む。識別子は、（例えば、クライアントマッピングエンジン６４０が検出し得る）メッセージの一部として含まれてもよく、またはメッセージ包含（ｍｅｓｓａｇｅ−ｉｎｃｌｕｓｉｖｅ）通信における他のデータとして含まれてもよい。次いで、クライアントマッピングエンジン６４０は、クライアントに関する追加のデータおよび／またはクライアントの識別子を取り出すために、クライアントデータストア６４５内の識別子を参照することができる。
【００８５】
[0097]いくつかの例では、メッセージは、どのクライアントにも特に対応しないことがある。例えば、メッセージは、一般的なクエリを含んでもよい。クライアントマッピングエンジン６４０は、例えば、メッセージに対して意味解析を実行し、１または複数のキーワードを識別し、キーワードに関連付けられた１または複数のクライアントを識別してもよい。いくつかの例では、単一のクライアントが識別される。いくつかの例では、複数のクライアントが識別される。次に、各クライアントの識別を、ユーザが通信するクライアントを（例えば、関連付けられた端末機器を介して）選択することができるように、ネットワークデバイスを介して提示してもよい。
【００８６】
[0098]クライアントデータストア６４５は、クライアントに関連付けられた１または複数の端末機器（および／またはエージェント）の識別を含むことができる。端末ルーティングエンジン６５０は、ルーティング決定に影響を及ぼすように、１つ、複数、またはすべてのそのような端末機器（および／またはエージェント）の各々に関係するデータを検索または収集することができる。例えば、端末ルーティングエンジン６５０は、端末機器のデバイスタイプ、オペレーティングシステム、通信タイプ機能、インストールされたアプリケーションアクセサリ、地理的位置および／または識別子（例えば、ＩＰアドレス）などの情報を記憶することができる、端末データストア６５５を維持することができる。いくつかの情報は、動的に更新することができる。例えば、端末機器が利用可能であるかどうかを示す情報は、（例えば）端末機器からの通信（例えば、デバイスがスリープ状態であるか、オフ／オンされているか、非アクティブ／アクティブであるかを識別すること、または期間（ｔｉｍｅ  ｐｅｒｉｏｄ）内に入力が受信されたかどうかを識別すること）、通信ルーティング（例えば、端末機器が通信交換に関与しているか、または通信交換の一部として割り当てられているかを示すこと）、または通信交換が終了したかまたは開始したことを示すネットワークデバイスまたは端末機器からの通信に基づいて、動的に更新され得る。
【００８７】
[0099]様々な状況において、１または複数の通信交換に従事している（ｅｎｇａｇｅｄ）ことは、端末機器が別の通信交換に従事するために利用可能でないことを必ずしも示さない。通信タイプ（例えば、メッセージ）、クライアント識別された、またはユーザ識別されたターゲット応答時間、および／または（例えば、一般的に、またはユーザに関する）システム負荷などの様々な要因が、端末機器がどれくらいの交換に関与し得るかに影響を及ぼし得る。
【００８８】
[00100]インタラクション管理エンジン６２５は、通信交換または接続チャネルに関与する端末機器を識別した場合、端末ルーティングエンジン６５０に通知することができ、それは宛先（例えば、ＩＰ）アドレス、デバイスタイプ、プロトコルなど、端末機器に関する任意の関連データを端末データストア６５５から検索することができる。次いで、処理エンジン６１０は、（いくつかの例では）特定のフォーマットを有するように、特定のプロトコルに準拠するようになど、メッセージ包含通信を修正するか、または新しい通信（メッセージを含む）を生成することができる。いくつかの例では、新しいまたは修正されたメッセージは、ネットワークデバイスに対応するアカウントデータ、メッセージ記録（ｃｈｒｏｎｉｃｌｅ）、および／またはクライアントデータなどの追加のデータを含むことができる。
【００８９】
[00101]次いで、メッセージ送信機インタフェース６６０は、通信を端末機器に送信することができる。送信は、例えば、別個のハウジング内に収容された装置への有線または無線送信を含んでもよい。端末機器は、接続管理システム６００と同じ又は異なるネットワーク（例えば、ローカルエリアネットワーク）内の端末機器を含むことができる。したがって、端末機器に通信を送信することは、インターネットワークまたはイントラネットワーク接続コンポーネントに通信を送信することを含むことができる。
【００９０】
[00102]ネットワークデバイス（例えば、ユーザによって操作される）との通信セッション中に、ボットと端末機器（例えば、ライブエージェントによって操作される）とを動的に切り替えるためのシステムおよび方法が提供される。いくつかの実装形態では、ボットは、ネットワークデバイスと自律的に通信するように構成することができる。さらに、ボットは、特定の機能のために構成され得る。機能の例は、データベースレコードを更新すること、ユーザに更新を提供すること、ユーザに関する追加のデータをエージェントに提供すること、ユーザのインテントを決定すること、およびインテントに基づいてユーザを宛先システムにルーティングすること、ユーザと通信するエージェントに対する応答を予測または提案すること、１または複数の追加のボットまたはエージェントを含むように通信セッションをエスカレートすること、および他の適切な機能を含むことができる。いくつかの実装形態では、ボットが、通信セッション中に（例えば、チャット対応（ｃｈａｔ−ｅｎａｂｌｅｄ）インタフェースを使用して）（例えば、ユーザによって操作されている）ネットワークデバイスと通信している間に、通信サーバは、端末機器とボットを切り替えることを自動的かつ動的に決定することができる。例えば、ボットは、特定のタスク（例えば、ユーザに関連付けられたデータベースレコードを更新すること）についてユーザと通信することができ、一方で、端末機器は、より困難なタスク（例えば、技術的問題を解決するために通信チャネルを使用して通信すること）についてユーザと通信することができる。
【００９１】
[00103]いくつかの実装形態では、通信セッション中にボットと端末機器との間で切り替えるかどうかを決定することは、通信セッション中のメッセージの１または複数の特徴の分析に基づくことができる。さらに、メッセージ、会話、エンティティ、エージェントなどのセンチメントを表す動的センチメントパラメータを生成することができる。例えば、動的センチメントパラメータが、ユーザがボットにフラストレーションを感じていることを示す場合、システムは、ライブエージェントがユーザと通信できるように、端末機器を用いてボットを自動的に切り替えることができる。２０１６年６月２日に出願された米国出願第１５／１７１，５２５号を参照されたい。その開示は、あらゆる目的のためにその全体が参照により本明細書に組み込まれる。いくつかの例では、ボットと端末機器との間で切り替えるかどうかの決定は、ユーザからのプロンプトなしで実行され得る。決定は、通信セッション（例えば、チャット）における現在のメッセージの特徴、以前の通信セッションにおいてユーザによって送信された以前のメッセージの特徴、会話における複数のメッセージにわたる特徴（例えば、センチメント）のトラジェクトリ、またはユーザに関連付けられた追加の情報（例えば、プロファイル情報、嗜好情報、およびユーザに関連付けられた他の適切な情報）を含む、任意の数の要因に基づいて、通信サーバにおいて自動的に実行され得る。
【００９２】
[00104]図７は、通信セッション中にボットと端末機器とを動的に切り替えるためのネットワーク環境のブロック図である。いくつかの実装形態では、ネットワーク環境７００は、ネットワークデバイス７０５、通信サーバ７１０、端末機器７１５、およびボット７２０を含むことができる。通信サーバ７１０は、少なくとも１つの記憶装置を有する１または複数のプロセッサを有するサーバであってもよく、ここで説明する方法および技術を実行するように構成することができる。例えば、通信サーバ７１０は、（例えば、ユーザによって操作される）ネットワークデバイスと（例えば、エージェントによって操作される）端末機器との間の通信セッションを管理することができる。通信サーバ７１０は、ネットワークデバイス７０５と端末機器７１５とが通信セッション中に互いに通信できるように、ネットワークデバイス７０５と端末機器７１５との間に通信チャネルを確立することができる。通信セッションは、ネットワークデバイス７０５と端末機器７１５との間の１または複数のメッセージの交換を容易にすることができる。本開示は、通信セッション中のメッセージの交換に限定されない。他の形態の通信が、例えば、ビデオ通信（例えば、ビデオフィード）およびオーディオ通信（例えば、ボイスオーバーＩＰ接続）などの通信セッションによって容易にされ得る。
【００９３】
[00105]いくつかの実装形態では、通信サーバ７１０は、ネットワークデバイス７０５とボット７２０との間に通信チャネルを確立することができる。ボット７２０は、実行されると、ネットワークデバイス７０５と自律的に通信するように構成されるコードであってもよい。例えば、ボット７２０は、ネットワークデバイス７０５に関連付けられたユーザとの会話を開始するために、および／またはネットワークデバイス７０５からのメッセージに自動的に応答するために、メッセージを自動的に生成するボットであってもよい。さらに、通信サーバ７１０は、プラットフォームに関連付けられ得る。クライアント（例えば、プラットフォームの外部システム）は、プラットフォームを使用して、内部通信システムにボットを展開（ｄｅｐｌｏｙ）することができる。いくつかの例では、クライアントは、プラットフォームにおいて自身のボットを使用することができ、これにより、クライアントは、ここで説明する方法および技術を内部通信システムに実装することができる。
【００９４】
[00106]いくつかの実装形態では、ボットは、１または複数のソースによって定義することができる。例えば、データストア７３０は、通信サーバのクライアントによって定義される（例えば、作成または符号化される）ボットを表すコードを記憶することができる。例えば、自身のボットを定義したクライアントは、通信サーバ７１０にボットをロードすることができる。クライアントによって定義されたボットは、クライアントボットデータストア７３０に記憶することができる。データストア７４０は、第三者システムによって定義されるボットを表すコードを記憶することができる。例えば、第三者システムは、独立したソフトウェアベンダを含むことができる。データストア７５０は、通信サーバ７１０に関連付けられたエンティティによって定義されるボットを表すコードを記憶することができる。例えば、エンティティによって符号化されたボットは、ボットが実行され、ユーザと自律的に通信することができるように、通信サーバ７１０にロードされるか、または通信サーバ７１０によってアクセス可能である。いくつかの実装形態では、通信サーバ７１０は、クラウドネットワーク７６０を使用して、データストア７３０、データストア７４０、および／またはデータストア７５０に記憶されたボットにアクセスすることができる。クラウドネットワーク７６０は、任意のネットワークであってもよく、インターネット、パーソナルエリアネットワーク、ローカルエリアネットワーク（ＬＡＮ）、キャンパスエリアネットワーク（ＣＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、広域ネットワーク（ＷＡＮ）、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）などのオープンネットワーク、イントラネット、エクストラネット、などのプライベートネットワーク、または他のバックボーンを含むことができる。
【００９５】
[00107]また、端末機器７１５は、エージェントにより操作可能である。端末機器７１５は、任意のポータブル（例えば、携帯電話、タブレット、ラップトップ）または非ポータブルデバイス（例えば、電子キオスク、デスクトップコンピュータなど）であってもよい。いくつかの例では、エージェントは、端末機器７１５上で実行しているブラウザを使用してウェブサイトにアクセスすることができる。例えば、ウェブサイトは、端末機器７１５のブラウザ上で実行されるコンソール又はプラットフォームを含むことができる。エージェントは、ブラウザを使用してプラットフォームにログインすることができる。エージェントがコンソールまたはコンソールに含まれるウェブアプリケーションにアクセスを許可する前に、エージェントのアイデンティティを認証するために、１または複数のログイン証明（ｃｒｅｄｅｎｔｉａｌｓ）（例えば、ユーザ名、パスワードなど）を使用することができる。コンソールの例は、１または複数のＡＰＩ（アプリケーションプログラミングインタフェース）を含むプラットフォーム、１または複数の機能を含むダッシュボード、通信セッションを確立または参加することができる（プラグインをダウンロードする必要なく）ウェブブラウザ上で実行されるウェブホストアプリケーション、および他の適切なインタフェースを含むことができる。さらに、コンソールは、実行可能な１または複数のウェブアプリケーションまたは機能を含むことができる。ウェブアプリケーションまたは機能は、ブラウザ、通信サーバ７１０、ローカルサーバ、リモートサーバ、または他の適切なコンピューティングデバイスで実行することができる。例えば、ウェブアプリケーション、ネイティブアプリケーション、または機能は、エージェントがユーザと通信し、ユーザと１または複数のボットとの間の通信を見る（ｖｉｅｗ）ことを可能にすることができる。
【００９６】
[00108]いくつかの実装形態では、通信サーバ７１０は、特定の通信セッション中に、ボット７２０と端末機器７１５との間で動的に切り替えるように構成することができる。例えば、通信サーバ７１０は、ネットワークデバイス７０５とボット７２０との間の通信セッションを容易にすることができる。ボット７２０は、通信セッション中にネットワークデバイス７０５と１または複数のメッセージを交換することによって、ネットワークデバイス７０５と自律的に通信するように構成することができる。通信サーバ７１０は、ライブエージェントがボット７２０の代わりにネットワークデバイス７０５と通信できるように、ボット７２０を端末機器７１５と（または場合によっては逆に）切り替えるかどうかを動的に決定することができる。いくつかの実装形態では、切り替えは、ネットワークデバイス７０５または端末機器７１５からのプロンプトなしで実行することができる。例えば、切り替えは、ネットワークデバイス７０５に端末機器を要求するように促す（ｐｒｏｍｐｔｉｎｇ）ことなく、ネットワークデバイス７０５とボット７２０との間で交換されるメッセージのメッセージパラメータ（例えば、メッセージ又は一連のメッセージのセンチメントを表すスコア）に基づくことができる。
【００９７】
[00109]いくつかの実装形態では、通信サーバ７１０は、ボット７２０とネットワークデバイス７０５との間で交換されるメッセージの特徴に基づいて、ボット７２０と端末機器７１５との間で自動的に切り替えることを決定することができる。いくつかの例では、特徴（例えば、メッセージパラメータ）を決定するためにメッセージのテキストを分析することは、メッセージに関連付けられたテキストまたは非テキスト属性の分析を含むことができる。例えば、通信サーバ７１０は、ネットワークデバイス７０５からのメッセージに含まれる１または複数のテキスト行（ｌｉｎｅｓ）を抽出することができる。通信サーバ７１０は、１または複数のテキスト行がアンカー（ａｎｃｈｏｒ）を含むかどうかを識別することができる。アンカーの例は、極性（ｐｏｌａｒｉｔｙ）（例えば、単語「フラストレーションを感じる（ｆｒｕｓｔｒａｔｅｄ）」は、負の極性またはフラストレーションの極性に対応し、単語「幸せな（ｈａｐｐｙ）」は、正の極性に対応するなどのセンチメントまたはインテント）に関連付けられたテキストのストリングを含む。例えば、「論争」という用語は、１人のクライアントにとっては否定的であり得るが、第２のクライアントに対しては、中立的または肯定的であり得る。いくつかの例では、アンカーは、教師あり機械学習技術を使用して動的に決定され得る。例えば、記憶されたメッセージ内のパターンを見つけるために、１または複数のクラスタリングアルゴリズムを、記憶されたメッセージに対して実行することができる。クラスタ化されたメッセージは、アンカーを決定するためにさらにフィルタリングされ、評価され得る。さらに、識別されたアンカーの近くの１または複数の単語を、増幅器のためにパースする（ｐａｒｓｅｄ）ことができる。増幅器の一例は、例えば、「本当に（ｒｅａｌｌｙ）」、「そうではない（ｎｏｔ  ｒｅａｌｌｙ）」、「あまり（ｋｉｎｄ  ｏｆ）」のような、アンカーの極性に関連付けられた強度を増加または減少させる用語である。この特徴は、例えば、タイピングの速度、メッセージで使用される特殊文字の数（例えば、感嘆符、疑問符など）、（例えば、キーワード、文構造、繰り返し単語、句読点文字、および／または非冠詞単語を識別することによる）メッセージの意味解析、（例えば、選択された１または複数のカテゴリを有する）ユーザ入力、および／またはメッセージ関連統計（例えば、応答レイテンシ）を含むことができる。
【００９８】
[00110]非限定的な例として、メッセージパラメータは、負の極性の高い強度を示す数値であってもよい（例えば、小さい数字は負の極性を示し、大きい数字は正の極性を示す、０−１００のスケールで２０のメッセージパラメータ）。アルゴリズムは、メッセージパラメータを計算するために使用することができる。例えば、アルゴリズムは、教師あり機械学習技術に基づくことができる。さらなる例では、（例えば、「私はあまり好きではない（Ｉ  ｋｉｎｄ  ｏｆ  ｄｏｎ’ｔ  ｌｉｋｅ）」という文において）「あまり（ｋｉｎｄｏｆ）」という用語がアンカー「好きではない（ｄｏｎ’ｔ  ｌｉｋｅ）」の近くにある場合、「あまり（ｋｉｎｄ  ｏｆ）」という用語は、負の極性の中程度の強度を示す増幅器用語として識別され得る。この場合、負の極性の中程度の強度の識別に基づいてメッセージパラメータを生成することができる。非限定的な例として、メッセージパラメータは、負の極性の中程度の強度を示す数値であってもよい（例えば、メッセージパラメータ２０に対してメッセージパラメータ４０）。いくつかの例では、どの二次キューが通信を記憶すべきかを決定するために、メッセージパラメータを使用することができる。
【００９９】
[00111]いくつかの実装形態では、メッセージの特徴は、メッセージに関連付けられたセンチメントであり得る。メッセージパラメータは、メッセージのセンチメントを表すことができる。例えば、メッセージのセンチメントが「幸せ」である場合、メッセージパラメータは、特定の値または値の範囲であり得るが、一方、メッセージのセンチメントが「怒り」である場合、メッセージパラメータは、別の値または値の範囲であり得る。ボットと端末機器との間で切り替えるかどうかの決定は、通信サーバ７１０で受信された新しいメッセージの各々で連続的かつ自動的に更新されるメッセージパラメータに基づくことができる。
【０１００】
[00112]いくつかの実装形態では、通信サーバ７１０は、ネットワークデバイス７０５から受信したメッセージに対する応答を推薦または予測することができる。例えば、通信サーバ７１０は、受信したメッセージに対する応答を推薦するために、ネットワークデバイス７０５から受信したメッセージを評価し、機械学習モデルを使用することができるメッセージ推薦システム（図１０に記載）を含むことができる。メッセージ推薦システムは、エージェントがネットワークデバイス７０５と通信するのを支援するために、推薦されたメッセージのセットを端末機器７１５上に表示することができる。
【０１０１】
[00113]図８は、マルチ通信チャネルにわたってボットタスク処理を動的に提供するためのネットワーク環境８００を表すブロック図である。いくつかの実装形態では、ネットワーク環境８００は、ネットワークデバイス８０５、端末機器８１０、および通信サーバ８２０を含むことができる。ネットワークデバイス８０５は、ネットワークデバイス７０５と同様であってもよく、したがって、簡潔にするため、ここでは説明を省略する。端末機器８１０は、端末機器７１５と同様であってもよく、したがって、簡潔にするため、ここでは説明を省略する。通信サーバ８２０は、通信サーバ７１０と同様であってもよく、したがって、簡潔にするため、ここでは説明を省略する。
【０１０２】
[00114]通信サーバ８２０は、ネットワークデバイス８０５と端末機器８１０間の通信チャネルの確立を確立または容易にすることができる。図８に示すように、通信サーバ８２０は、ネットワークデバイス８０５および端末機器８１０が１または複数のメッセージを交換することを可能にする通信チャネルＣ８４０を確立することができる。非限定的な例として、通信チャネルＣ８４０は、ウェブサイトのウェブチャット機能であってもよく、通信チャネルＢ８３５は、モバイルデバイス（例えば、スマートフォン）上で実行されるチャットアプリケーションであってもよく、通信チャネルＡ８３０は、エージェントがユーザと通信することを可能にするボイスオーバーインターネットプロトコル（ＶＯＩＰ）オーディオチャネルであってもよい。
【０１０３】
[00115]通信サーバ８２０は、ネットワークデバイス８０５と自律的に通信するようにボット８２５を構成することができる。いくつかの実装形態では、ボット８２５は、ボット８２５が通信チャネルＣ８４０を使用してネットワークデバイス８０５と通信することを可能にする１または複数のプロトコルにアクセスし、実行することができる。上述の非限定的な例を続けると、ボット８２５は、ウェブサイトのウェブチャット機能を介して通信するためのプロトコルにアクセスし、実行することができる。この例では、プロトコルは、ウェブチャット機能を使用してメッセージを交換するためのウェブチャット機能特有の符号化言語を含むことができる。プロトコルは、実行されると、端末機器８１０でエージェントによって入力されたメッセージ（例えば、テキストのストリング又は他のコンテンツ）を構造化コンテンツ（例えば、独立したデータフィールドに分離されたコンテンツ）に変換し、構造化コンテンツをウェブサイトのウェブチャット機能の要素にマッピングするコードを含むことができる。入力が端末機器８１０で（例えば、エージェントによって）受信されると、ボット８２５は、メッセージがウェブチャット機能を使用して通信されることを可能にするように、構造化コンテンツをウェブチャット機能の要素に変換することができる。
【０１０４】
[00116]いくつかの実装形態では、ボット８２５は、通信チャネルＢ８３５を使用してネットワークデバイス８０５と通信するように構成することもできる。通信チャネルＢ８３５は、通信チャネルＣ８４０とは異なる通信チャネルであり得る。さらに、通信チャネルＢ８３５は、通信を容易にするために、通信チャネルＣ８４０に必要な要素とは異なる要素を必要とし得る。ボット８２５は、構造化コンテンツを通信チャネルＢ８３５の要素に変換するように構成することができる。上述の非限定的な例を続けると、通信チャネルＢ８３５は、スマートフォン上で実行されるネイティブアプリケーションのアプリ内チャット機能であってもよい。通信チャネルＢ８３５を使用する通信を容易にするために、１または複数の要素が必要とされ得る。例えば、ＦＡＣＥＢＯＯＫ（登録商標）  ＭＥＳＳＥＮＧＥＲは、スマートフォン上で実行されるネイティブアプリケーションであってもよい。この例では、ＦＡＣＥＢＯＯＫ  ＭＥＳＳＥＮＧＥＲの１または複数の要素は、ＦＡＣＥＢＯＯＫ  ＭＥＳＳＥＮＧＥＲを使用して通信を容易にするために必要とされるＦＡＣＥＢＯＯＫ  ＭＥＳＳＥＮＧＥＲ特有のテンプレートであってもよい。ボット８２５が通信チャネルＢ８３５を使用して通信することを可能にするプロトコルは、構造化コンテンツをＦＡＣＥＢＯＯＫ  ＭＥＳＳＥＮＧＥＲアプリケーション内でメッセージとして送信するために、構造化コンテンツをＦＡＣＥＢＯＯＫ  ＭＥＳＳＥＮＧＥＲネイティブアプリケーションのテンプレートにマッピングすることができる。
【０１０５】
[00117]いくつかの例では、モバイルアプリケーション（例えば、モバイルネイティブアプリケーション）は、ネットワークデバイス（例えば、スマートフォン）のオペレーティングシステムを使用して実行され得る（モバイルデバイスに、または１または複数の外部サーバに記憶される）実行可能コードを含んでもよい。いくつかの例では、モバイルアプリケーションは、（モバイルデバイスで生成され、記憶された）ネイティブユーザインタフェース（ＵＩ）コンポーネントから構成されるが、（例えば、ウェブベースの符号化言語を使用して）インタプリタ言語で書かれたハイブリッドモバイルアプリケーションを含んでもよい。本開示は、モバイルネイティブアプリケーションまたはハイブリッドアプリケーションに限定されず、したがって、任意のタイプのモバイルアプリケーションが、ここで説明される方法で使用され得る。
【０１０６】
[00118]いくつかの実装形態では、ボット８２５は、通信チャネルＡ８３０を使用してネットワークデバイス８０５と通信するように構成することもできる。通信チャネルＡ８３５は、通信チャネルＣ８４０、通信チャネルＢ８３５とは異なる通信チャネルであり得る。さらに、通信チャネルＡ８３０は、通信を容易にするために、通信チャネルＣ８４０および通信チャネルＢ８３５に必要な要素とは異なる要素を必要とし得る。ボット８２５は、構造化コンテンツを通信チャネルＡ８３０の要素に変換するように構成することができる。上述の非限定的な例を続けると、通信チャネルＡ８３０は、ネットワークデバイス８０５と端末機器８１０との間のＶＯＩＰ音声通信リンクであり得る。通信チャネルＡ８３０を使用する通信を容易にするために、１または複数の要素が必要とされ得る。プロトコルは、通信チャネルＡ８３０に関連付けられた要素への構造化コンテンツのマッピングを含むことができる。
【０１０７】
[00119]いくつかの実装形態では、通信サーバ８２０は、ボット８２５が、通信チャネルにかかわらず、ネットワークデバイス８０５と連続的に通信することができるように、異なる通信チャネル間で通信セッションを動的に、自律的に、および／または自動的に転送するように構成され得る。例えば、ネットワークデバイス８０５は、第１の通信チャネル８４５（すなわち、通信チャネルＣ８４０）を使用して端末機器８１０と通信してもよい。ネットワークデバイス８０５は、ネットワークデバイス８０５を操作するユーザが、通信セッションのために現在使用されている通信チャネルを変更することを意図していることを示すメッセージを送信することができる。例えば、ネットワークデバイス８０５は、第２の通信チャネル８５０が、端末機器８１０との通信セッションを継続するためのターゲット通信チャネルであることを示すことができる。ボット８２５は、通信チャネルが第１の通信チャネル８４５から第２の通信チャネル８５０に変更されるべきであるという指示を自動的に検出することができる。例えば、ボット８２５は、通信チャネルが変更されるべきであることを検出するために、通信セッション中に交換されるメッセージを連続的に評価してもよい。通信チャネルが変更されるべきであるという指示を検出すると、通信サーバは、ネットワークデバイス８０５に関連付けられたユーザ識別子を識別してもよい。例えば、ユーザデータ・データベース８１５は、様々なユーザのユーザ識別子を記憶してもよい。ユーザ識別子は、ネットワークデバイスを一意に識別する数字および／またはテキストのストリングであってもよい。任意の所与の時間に、通信サーバ８２０が、同じユーザ識別子が２つのアクティブな通信チャネルに関連付けられていると決定した場合、通信サーバ８２０は、ネットワークデバイスが通信セッションを継続するが、通信チャネルを変更することを要求していることを認識することができる。
【０１０８】
[00120]通信サーバ８２０は、異なる通信チャネル間の連続性をサポートするように構成され得る。例えば、ターゲット通信チャネル（例えば、第２の通信チャネル８５０）は、第１の通信チャネル８４５の代わりに第２の通信チャネル８５０を使用して、ネットワークデバイス８０５との通信セッションを継続するためにボット８２５によって自動的に使用され得る。いくつかの実装形態では、ボット８２５は、第２の通信チャネル８５０を使用してネットワークデバイス８０５にメッセージを自動的に送信してもよい。メッセージをネットワークデバイス８０５に送信することは、通信チャネルの転送が完了したことをネットワークデバイス８０５に示してもよい。いくつかの実装形態では、通信サーバ８２０は、通信チャネルが第１の通信チャネル８４５から第２の通信チャネル８５０に変更されたことを自動的に検出してもよい。例えば、通信サーバ８２０は、ネットワークデバイス８０５が第１の通信チャネル８４５を使用してボット８２５と通信しているときに、ネットワークデバイス８０５に関連付けられたユーザ識別子を認識してもよい。ネットワークデバイス８０５が第２の通信チャネル８５０を使用し始める場合（例えば、通信セッション中に通信チャネルを変更する意図を示すことなく）、通信サーバ８２０は、ネットワークデバイス８０５のユーザ識別子が現在２つのアクティブな通信チャネル（例えば、第１の通信チャネル８４５および第２の通信チャネル８５０）に関連付けられていることを自動的に検出することができる。通信サーバ８２０は、第１の通信チャネル８４５がメッセージの最近の履歴（例えば、直近の５分以内に送信または交換されたメッセージ）に関連付けられ、第２の通信チャネル８５０がメッセージの最近の履歴（例えば、直近の数分以内）に関連付けられていないことを検出することができる。その結果、通信サーバ８２０は、ネットワークデバイス８０５が第１の通信チャネル８４５から第２の通信チャネル８５０に通信セッションを転送することを要求していることを決定することができる。通信サーバ８２０は、第２の通信チャネル８５０に関連付けられたプロトコルにアクセスし、第１の通信チャネル８４５を使用する代わりに、第２の通信チャネル８５０を使用してボット８２５または端末機器８１０がネットワークデバイス８０５と通信することを可能にするためにアクセスされたプロトコルを使用してボット８２５を実行することによって、転送を実施することができる。
【０１０９】
[00121]いくつかの実装形態では、ネットワークデバイス８０５の通信チャネル使用におけるパターンを識別するために、１または複数の機械学習技術を使用することができる。例えば、ネットワークデバイス８０５による通信チャネルの使用は、追跡および記録され得る（そして、履歴データとして記憶される）。特定のエンティティ（例えば、会社、端末機器、エージェントなど）と通信する場合にどの通信チャネルネットワークデバイス８０５が最も使用する可能性が高いかを識別するために、機械学習技術を履歴データに適用することができる。端末機器８１０（またはボット８２５または任意の他の端末機器）からネットワークデバイス８０５への通信を開始するとき、通信サーバ８２０は、（機械学習技術の結果に基づいて）ネットワークデバイス８０５が使用する可能性が最も高いタイプの通信チャネルを確立することができる。ネットワークデバイス８０５が異なる通信チャネルをより頻繁に使用し始めると、通信サーバ８２０は、この変化傾向を識別し、最も使用された、または最も頻繁に使用された通信チャネルを使用して通信セッションを開始することができる。
【０１１０】
[00122]図９は、機械学習技術を使用してボットタスク処理を強化するためのネットワーク環境９００を表すブロック図を示す。ネットワーク環境９００は、（ユーザによって操作される）ネットワークデバイス９０５、通信サーバ９１０、ならびに端末機器９１５および９２０を含んでもよい。通信サーバ９１０は、ネットワークデバイス９０５と、端末機器９１５および９２０のうちの少なくとも１つとの通信を可能にする通信チャネルの確立を容易にすることができる。
【０１１１】
[00123]通信サーバ９１０は、インテリジェント・ルーティングシステム９２５、メッセージ推薦システム９３０、およびメッセージデータストア９３５を含んでもよい。インテリジェント・ルーティングシステム９２５およびメッセージ推薦システム９３０の各々は、特定の動作を実施するための命令を実行するプロセッサおよびメモリを有する１または複数のコンピューティングデバイスを含むことができる。いくつかの実装形態では、インテリジェント・ルーティングシステム９２５は、ネットワークデバイスから受信した通信を適切な宛先にインテリジェントにルーティングするように構成されたボットであってもよい。インテリジェント・ルーティングシステム９２５は、１または複数の機械学習技術または人工知能技術にメッセージをインテリジェントにルーティングさせるコードを実行するように構成された１または複数のプロセッサを含んでもよい。いくつかの実装形態では、インテリジェント・ルーティングシステム９２５は、ネットワークデバイス９０５から受信したメッセージに関連付けられた宛先を予測するモデルをトレーニングするために１または複数の機械学習技術を実行することができる。
【０１１２】
[00124]非限定的な例として、インテリジェント・ルーティングシステム９２５は、通信サーバ９１０（例えば、ユーザが様々なデバイスを介して互いに通信することを可能にするように構成されたネイティブアプリケーション）によって確立されたまたは容易にされた通信チャネルを介して、ネットワークデバイス９０５からメッセージを受信してもよい。インテリジェント・ルーティングシステム９２５は、上述のある実施形態に従って、着信メッセージを評価してもよい。例えば、インテリジェント・ルーティングシステム９２５は、トレーニングされた機械学習モデルを使用して、受信したメッセージに含まれるコンテンツ（例えば、テキスト、オーディオクリップ、画像、顔文字（ｅｍｏｔｉｃｏｎｓ）、または他の適切なコンテンツ）を評価することができる。予測された宛先（例えば、特定の端末機器）を生成するために、メッセージのコンテンツを機械学習モデルに入力することができる。機械学習モデルは、ネットワークデバイス９０５から受信されたフィードバック信号９４０に基づいて連続的にトレーニングされ得る。いくつかの実装形態では、インテリジェント・ルーティングシステム９２５は、予測された宛先のネットワークデバイス９０５からの肯定応答を要求してもよい。非限定的な例として、インテリジェント・ルーティングシステム９２５は、機械学習技術を使用してメッセージを評価してもよく、評価の結果は、端末機器９１５がメッセージの宛先であるという予測を含むことができる。確認のために、インテリジェント・ルーティングシステム９２５は、フィードバック信号９４０を自動的に要求してもよい。例えば、フィードバック信号９４０は、端末機器９１５がメッセージの正しい宛先であるかどうかをネットワークデバイス９０５が確認するための要求を含むことができる（例えば、「テクニカルサポートは正しい宛先ですか？（Ｉｓ  Ｔｅｃｈｎｉｃａｌ  Ｓｕｐｐｏｒｔ  ｔｈｅ  ｃｏｒｒｅｃｔ  ｄｅｓｔｉｎａｔｉｏｎ？）」）。ネットワークデバイス９０５が、端末機器９１５が正しい宛先（例えば、ネットワークデバイス９０５を操作するユーザによって意図された宛先）であるという肯定応答を送信した場合、インテリジェント・ルーティングシステム９２５は、受信されたメッセージと合致する（ｅｘａｃｔ）、または類似のコンテンツ（例えば、コンテンツにおける１０パーセントの差などの類似性の閾値）を含む将来のメッセージが端末機器９１５にルーティングされるべきであることを予測するために、機械学習モデルをトレーニングしてもよい。しかしながら、インテリジェント・ルーティングシステム９２５が、端末機器９１５は受信メッセージの正しい又は意図された宛先ではなく、端末機器９２０が正しい又は意図された宛先であったことを示すフィードバック信号９４０を受信した場合、インテリジェント・ルーティングシステム９２５は、受信メッセージと合致する、または類似のコンテンツを含む将来のメッセージが（端末機器９１５の代わりに）端末機器９２０にルーティングされるべきであるという機械学習モデルをトレーニングすることができる。いくつかの実装形態では、インテリジェント・ルーティングシステム９２５は、将来のメッセー���を端末機器９２０にルーティングするために機械学習モデルを直ちに更新またはトレーニングしなくてもよく、むしろ、インテリジェント・ルーティングシステム９２５は、受信されたメッセージと全く同じまたは類似のコンテンツを有するすべての将来のメッセージを端末機器９２０にルーティングする前に、閾値数の端末機器９１５への不正確なルーティングを待ってもよい。非限定的な例として、インテリジェント・ルーティングシステム９２５は、端末機器９１５が正しい又は意図された宛先ではないことを示すフィードバック信号を送信するネットワークデバイスの５つのインスタンスの後に、端末機器９１５ではなく端末機器９２０に（端末機器９１５にルーティングされると予測された）将来のメッセージをルーティングし始めてもよい。
【０１１３】
[00125]メッセージデータストア９３５は、１または複数のネットワークデバイスから過去に受信された（例えば、すべてではないが）いくつかのまたはすべてのメッセージを記憶してもよい。さらに、メッセージデータストア９３５は、ネットワークデバイスとの以前の通信セッション中に端末機器によって送信されたいくつかのまたはすべてのメッセージを記憶してもよい。メッセージデータストア９３５はまた、通信セッション中にネットワークデバイスによってボットに送信されるいくつかのまたはすべてのメッセージを記憶してもよい。さらに、メッセージデータストア９３５は、通信セッション中にボットによってネットワークデバイスに送信されるいくつかのまたはすべてのメッセージを記憶してもよい。いくつかの実装形態では、メッセージデータストア９３５は、通信サーバ９１０において処理された（例えば、送信された、または受信された）すべてのメッセージのデータベースであってもよい。
【０１１４】
[00126]メッセージ推薦システム９３０は、メッセージデータストア９３５に記憶されたメッセージのデータベースを分析してもよい。いくつかの実装形態では、メッセージ推薦システム９３０は、１または複数の機械学習アルゴリズムまたは人工知能アルゴリズムを使用して、メッセージデータストア９３５に記憶されたメッセージを評価してもよい。例えば、メッセージ推薦システム９３０は、メッセージデータストア９３５に記憶されたメッセージのデータベース上で、Ｋ平均クラスタリング（Ｋ−ｍｅａｎｓ  ｃｌｕｓｔｅｒｉｎｇ）、平均シフトクラスタリング（ｍｅａｎｓ−ｓｈｉｆｔ  ｃｌｕｓｔｅｒｉｎｇ）、ＤＢＳＣＡＮ（Ｄｅｎｓｉｔｙ−Ｂａｓｅｄ  Ｓｐａｔｉａｌ  Ｃｌｕｓｔｅｒｉｎｇ  ｏｆ  Ａｐｐｌｉｃａｔｉｏｎｓ  ｗｉｔｈ  Ｎｏｉｓｅ）クラスタリング、混合ガウスモデル（ＧＭＭ：Ｇａｕｓｓｉａｎ  Ｍｉｘｔｕｒｅ  Ｍｏｄｅｌｓ）を使用するＥＭ（Ｅｘｐｅｃｔａｔｉｏｎ−Ｍａｘｉｍｉｚａｔｉｏｎ）クラスタリング、および他の適切な機械学習アルゴリズムなどの１または複数のクラスタリングアルゴリズムを実行してもよい。いくつかの実装形態では、リカレントニューラルネットワーク（ＲＮＮ）または畳み込みニューラルネットワーク（ＣＮＮ）を使用して、エージェントを支援するための応答メッセージを予測することができる。いくつかの実装形態では、メッセージ推薦システム９３０は、通信セッション中にネットワークデバイスから受信された着信メッセージに対する応答を予測するために、すべての以前のメッセージを評価するために、サポートベクターマシン（ＳＶＭ）、教師あり、半教師あり、アンサンブル技術、または教師なし機械学習技術を使用してもよい。例えば、メッセージ推薦システム９３０は、ネットワークデバイスから受信されたメッセージ（またはボットまたは端末機器から通信サーバ９１０で受信されたメッセージ）のコンテンツを評価し、評価の結果を、メッセージデータストア９３５に記憶された以前のメッセージの１または複数のクラスタと比較することができる。クラスタが識別されると、メッセージ推薦システム９３０は、信頼閾値（ｃｏｎｆｉｄｅｎｃｅ  ｔｈｒｅｓｈｏｌｄ）に基づいて最も関連性のある応答メッセージを識別することができる。例えば、（例えば、通信サーバ９１０においてネットワークデバイス９０５から受信される）着信メッセージは、着信メッセージのコンテンツに基づく技術的問題に対応し得る。メッセージ推薦システム９３０は、着信メッセージのコンテンツの評価（例えば、テキスト評価）に基づいて、着信メッセージが技術問題に対応することを識別することができる。メッセージ推薦システム９３０は、技術的問題に関連付けられたメッセージのクラスタを識別するために、メッセージデータストア９３５にアクセスすることができる。メッセージ推薦システム９３０は、信頼閾値に基づいて、メッセージのクラスタ内の１または複数の応答メッセージを選択することができる。非限定的な例として、信頼性スコアを生成するために、信頼性アルゴリズムを実行することができる。信頼性スコアは、パーセンテージが低いほど、応答が着信メッセージに対する良好な予測である可能性が低く、パーセ���テージが高いほど、応答が着信メッセージに対する良好な予測である可能性が高いパーセンテージ値とすることができる。最小信頼閾値は、各発見されたパターンに関連付けられた確実性または信頼性（ｔｒｕｓｔｗｏｒｔｈｉｎｅｓｓ）の尺度として定義され得る。さらに、信頼性アルゴリズムの例は、アプリオリアルゴリズム、２つのデータセット間の類似性を示す類似性アルゴリズム、および他の適切な信頼性アルゴリズムであり得る。
【０１１５】
[00127]図１０は、通信セッション中にリアルタイムで応答を予測するためのネットワーク環境１０００を表すブロック図である。いくつかの実装形態では、ネットワーク環境１０００は、通信サーバ１０１０、予測システム１０５０、メッセージデータベース１０４０、および機械学習モデル１０６０を含んでもよい。ネットワークデバイス１０３０は、エージェントによって操作される端末機器１０２０と通信することができるユーザ（例えば、ウェブサイトビジタ（ｖｉｓｉｔｏｒ）、モバイルウェブサイトビジタ、またはネイティブアプリケーションユーザ）によって操作されることができる。予測システム１０５０は、端末機器１０２０のディスプレイ上に提示されるメッセージを予測することができ、端末機器を操作するエージェントは、表示された予測メッセージを選択することができる。表示された予測メッセージを選択すると、その予測メッセージは、次のメッセージとしてチャットセッションに自動的に含まれ、ネットワークデバイス１０３０に送信される。
【０１１６】
[00128]例示の目的で、非限定的な例として、通信サーバ１０１０は、ネットワークデバイス１０３０と端末機器１０２０との間の通信チャネルの確立を容易にすることができる。通信チャネルは、通信セッション（例えば、ユーザおよびエージェントが会話に従事している期間、または会話に従事していない期間、同期通信セッション、非同期通信セッション）中に、（例えば、メッセージ、オーディオ、ビデオ、または他の適切なデータを交換することによって）ネットワークデバイス１０３０が端末機器１０２０と通信することを可能にするように構成され得る。ネットワークデバイス１０３０は、通信セッション中にメッセージを送信することができる。メッセージは以下のテキストを含みうる。「新しいＡＢＣスマートフォンで起こっている技術的問題ついて助けてくれませんか。（Ｃｏｕｌｄ  ｙｏｕ  ｐｌｅａｓｅ  ｈｅｌｐ  ｍｅ  ｗｉｔｈ  ａ  ｔｅｃｈｎｉｃａｌ  ｉｓｓｕｅ  Ｉ’ｍ  ｅｘｐｅｒｉｅｎｃｉｎｇ  ｗｉｔｈ  ｔｈｅ  ｎｅｗ  ＡＢＣ  ｓｍａｒｔｐｈｏｎｅ？）」メッセージ又はメッセージのテキストストリングがリアルタイムで通信サーバ１０１０で受信されると、予測システム１０５０は、リアルタイムで受信されたメッセージ又はメッセージの一部（例えば、メッセージのテキストの一部）を自動的に評価することができる。実質的に同時に（例えば、メッセージまたはメッセージの一部の受信と同時に、またはその受信の数秒以内に）、予測システム１０５０は、受信したメッセージに対する応答を予測するために、機械学習モデル１０６０にアクセスしてもよい。例えば、予測システム１０５０は、受信したメッセージに類似する以前のメッセージのクラスタを識別するために、機械学習モデル１０６０にアクセスしてもよい。例えば、予測システム１０５０は、以前のメッセージのクラスタにタグを関連付けることができる。非限定的な例として、メッセージのクラスタのうちの１つは、「ＡＢＣスマートフォンに関する技術的問題」というメッセージのクラスタとしてタグ付けされ得る。「技術的問題」のクラスタ内のメッセージの一部または全部は、ＡＢＣスマートフォンなどのアイテムに関する技術的問題に関するネットワークデバイスと端末機器またはボットとの間の以前の会話に関連付けられてもよい。例えば、予測システム１０５０は、受信したメッセージに含まれる同一または類似の質問に対する上位１０個の以前の応答を識別するために、「技術的問題」のクラスタに対して信頼性分析を実行してもよい。信頼性分析は、受信されたメッセージと、識別されたクラスタに含まれる以前のエージェント応答との間の類似性を決定する信頼性アルゴリズムを実行することを含んでもよい。信頼閾値が閾値を超える（例えば、６０％を超える）限り、予測システム１０５０は、一番高い信頼パーセンテージを有する上位のいくつか（例えば、５、１０、または任意の他の数）の以前のエージェント応答を端末機器１０２０に表示させることができる。以前のエージェント応答が端末機器１０２０で選択されると、以前のエージェント応答は、現在の通信セッションの一部としてネットワークデバイス１０３０に自動的に送信され得る。いくつかの実装形態では、以前のエージェント��答が端末機器１０２０で選択され、以前のエージェント応答が選択されると、選択された応答を端末機器１０２０で表示することができ、選択された応答は、ネットワークデバイス１０３０に送信される前にエージェントによって修正することができる。
【０１１７】
[00129]いくつかの実装形態では、メッセージが通信サーバ１０１０で受信されると（メッセージは既存の通信セッションの一部である）、予測システム１０５０は、追加のデータを端末機器１０２０上に自動的に表示することができる。例えば、メッセージがネットワークデバイス１０３０で入力されているとき、通信サーバ１０１０（したがって、端末機器１０２０）は、メッセージのテキストストリングをリアルタイムで受信する。予測システム１０５０は、追加のデータを検索するため、データベースに対するクエリを決定するために、受信されたメッセージまたはメッセージの受信された部分を連続的に評価してもよい。上述の非限定的な例を続けると、通信サーバ１０１０が「新しいＡＢＣスマートフォンで起こっている技術的問題ついて助けてくれませんか。」というメッセージ（またはメッセージの一部）をリアルタイムで受信すると、予測システム１０５０は、メッセージに応答する際にエージェントをサポートするために追加のデータのクエリを実行することができるかどうかを連続的に決定することができる。この例では、ネットワークデバイス１０３０が通信セッション中に端末機器１０２０と通信していても、メッセージがネットワークデバイス１０３０でタイプされると、動的に変化する追加データが端末機器１０２０で表示されるように、予測システム１０５０は、メッセージがネットワークデバイス１０３０でタイプされ、および／または通信サーバ１０１０で受信されると、ＡＢＣスマートフォンに関連付けられた追加データ（例えば、技術仕様、トラブルシューティングガイドなど）について１または複数のデータベース（図示せず）にクエリを実行することができる。いくつかの実装形態では、このクエリは、ネットワークデバイスが端末機器と通信しているときにリアルタイムで行われるが、本開示はそれに限定されない。クエリの結果は、エージェントが自身でクエリを行う必要性を減らすために、端末機器に表示される。
【０１１８】
[00130]通信サーバ１０１０は、クエリの後に検索された追加データに基づいてワークフローを自動的に実行することができる。非限定的な例として、通信セッション中に、ネットワークデバイス１０３０は、問題を示すメッセージを送信することができる。メッセージが通信サーバ１０１０で受信されると、予測システム１０５０は、問題に関連付けられたデータについて１または複数のデータベースに（リアルタイムで）クエリを実行することができる。さらに、予測システム１０５０は、１または複数のワークフローを実行して、検索されたデータを自動的に分析することができる。例えば、予測システム１０５０は、データに含まれる値の標準偏差を決定するために、検索されたデータに対して標準偏差分析を行うことができる。予測システム１０５０は、１または複数のワークフローを自動的に実行し、検索されたデータおよび／または検索されたデータを分析した結果を端末機器１０２０において表示することができるため、ライブエージェントは、自身でそれらのクエリを実行したり、その分析を実行する必要がない。いくつかの実装形態では、ワークフローは、ユーザ定義され得るか、または人工知能または機械学習技術に基づいて自動的に生成され得る。さらに、ワークフローは、メッセージ内の特定のコンテンツ、例えば、メッセージ内の特定の用語に関連付けられ得る。メッセージが特定の用語または語句を含む場合、予測システム１０５０は、その特定の用語または語句に関連付けられたワークフローにアクセスすることができる。ワークフローは、他のネットワークデバイスからの履歴メッセージに対する機械学習分析の結果に基づいて最適化または自動的に修正され得る。例えば、予測システム１０５０は、他のユーザからの他の通信を評価するために、（メッセージデータストア９３５に類似する）メッセージデータベース１０４０にアクセスすることができる。予測システム１０５０は、他のエージェントが、ユーザによって提供されたデータに対して特定のワークフローを実行したことを決定するか、または特定の問題に対してユーザに代わってアクセスすることができる。次いで、予測システム１０５０は、将来の通信が特定の問題に関連付けられると決定されたときに、それらのワークフローを学習し、ユーザのためにそれらのワークフローを実行することができる。いくつかの実装形態では、予測されたメッセージは、メッセージのタグ付けされたクラスタに含まれる以前のエージェント応答と全く同じでなはいか、または類似していない可能性があるが、むしろ、いくつかのシステムにクエリを実行し、予測されたメッセージを組み立てることによって、予測されたメッセージを構築することができる。例えば、ＡＢＣスマートフォンに関する問題に対する予測された応答を生成するために、予測システム１０５０は、ＡＢＣスマートフォンに対応する技術文書について第１のデータベースにクエリを実行し、ＡＢＣスマートフォンに関連付けられたビデオコンテンツデータについて第２のデータベースにクエリを実行することができる。予測された応答は、クエリされた技術文書およびクエリされたビデオコンテンツデータと共にテキストを含めることによって構築することができる。
【０１１９】
[00131]機械学習モデル１０６０は、人工知能または機械学習技術を使用して生成されるモデルであってもよい。例えば、機械学習モデル１０６０は、教師あり、半教師あり、または教師なし機械学習技術を使用して生成されるモデルであり得る。非限定的な例として、Ｋ平均クラスタリング、平均シフトクラスタリング、ＤＢＳＣＡＮクラスタリング、混合ガウスモデル（ＧＭＭ）を使用するＥＭクラスタリング、および他の適切な機械学習アルゴリズムなどの１または複数のクラスタリングアルゴリズムを、メッセージデータストア９３５に記憶されたメッセージのデータベース上で使用することができる。いくつかの実装形態では、機械学習モデル１０６０は、通信セッション中にネットワークデバイスから受信された着信メッセージに対する応答を予測するために、すべての以前のメッセージを評価するために、サポートベクターマシン（ＳＶＭ）、教師あり、半教師あり、または教師なし機械学習技術を使用してもよい。
【０１２０】
[00132]図１１は、エージェント応答を予測するための例示的なプロセス１１００を示す。メッセージデータストア９３５に記憶された各候補メッセージは、例えば、メッセージに関連付けられた、および／またはメッセージが送信された通信セッションに関連付けられたベクトルパラメータを含むマトリクス（ｍａｔｒｉｘ）に対応することができる。ベクトルパラメータの例は、メッセージ内の単語数、通信セッション内で交換されるメッセージの数、メッセージ内で使用されるアンカー、メッセージのメッセージパラメータ、および他の適切なパラメータを含むことができる。これらのベクトルパラメータの各々は、そのメッセージおよび／または通信セッションのベクトル表現としてマトリクスに記憶することができる。ネットワークデバイスと端末機器との間の通信セッションが継続し、新しいメッセージが交換されると、マトリクスは連続的に更新され得る。
【０１２１】
[00133]非限定的な例として、ユーザとエージェントとの間で交換される１または複数のメッセージを含む現在のチャット会話１１１０を、新しいメッセージマトリクス１１２０に変換することもできる。同様に、新しいメッセージマトリクス１１２０は、現在のチャット会話１１１０内の単語数、単語自体、および現在のチャット会話１１１０内のメッセージに関連付けられたベクトルパラメータの数を含むことができる。いくつかの実装形態では、新しいメッセージがチャット会話１１１０に入力されると、新しいメッセージマトリクス１１２０を連続的に更新することができる。例えば、新しいメッセージの各々は、新しいメッセージマトリクス１１２０に含まれ得る。候補メッセージマトリクス１１３０、１１４０、および１１５０は、メッセージデータストア９３５に記憶された各メッセージ（例えば、候補メッセージ）について生成され、記憶され得る。
【０１２２】
[00134]有利なことに、新しいメッセージマトリクス１１２０は、ユーザとエージェントとの間の会話が継続するにつれて動的に更新することができる。新しいメッセージマトリクス１１２０は、各候補メッセージマトリクス（例えば、マトリクス１１３０、１１４０、および１１５０）と比較することができる。例えば、マトリクスの絶対値を比較し、類似性スコアを生成することができる。最も類似する候補メッセージマトリクスを選択することができ、選択された候補メッセージマトリクスに対応する候補メッセージを、エージェントの端末機器に表示される予測メッセージとして使用することができる。例えば、マトリックスは、メッセージ内の文字数、メッセージ内の単語数、メッセージ内の例えば、感嘆符及び疑問符のような非言語文字（ｎｏｎ−ｗｏｒｄ  ｃｈａｒａｃｔｅｒｓ）の数、及び他の適切なデータを含む、メッセージに関するデータを含むことができる。マトリクスの各ベクトルパラメータに対して値を生成することができる。いくつかの実装形態では、値は、ベクトルパラメータの重大度（ｓｅｖｅｒｉｔｙ）または強度を表すことができる。例えば、値「８５」は、メッセージに含まれる正のアンカーを表すことができ、値「−１４」は、メッセージに含まれる負のアンカーを表すことができる。
【０１２３】
[00135]図１２は、ネットワークデバイスとの通信セッション中にボットと端末機器との間で切り替えるための例示的なプロセス１２００を示す。ブロック１２１０で、ボットは、インタフェースを使用して１または複数のメッセージを交換することによって、ユーザに関連付けられたネットワークデバイスと通信することができる。いくつかの実装形態では、ボットは、複数のボットから選択することができる。例えば、各ボットは、特定の機能（例えば、データベースレコードの更新を支援する）を実行するように構成することができる。ボットは、（通信セッションを開始した可能性がある）ユーザのインテントに基づいて複数のボットから選択することができる。ユーザのインテントは、ユーザによって通信サーバに送信された１または複数のメッセージを分析することによって決定することができる。
【０１２４】
[00136]ブロック１２２０において、（ネットワークデバイスとボットとの間でメッセージを往復してリレーする）通信サーバは、転送ルールがチャットセッション中に満たされたことを検出することができる。例えば、転送ルールは、チャットセッションがライブエージェントにいつハンドオーバされるべきかを決定する閾値であり得る。例えば、ボットとユーザとの間の会話のメッセージパラメータを連続的にモニタし、閾値と比較することができる。メッセージパラメータが閾値を満たす場合（例えば、以下、以上、等しい、より低い、より高いなど）、通信サーバは、転送ルールが満たされたと決定することができる。いくつかの実装形態では、転送ルールが満たされるかどうかの決定は、ユーザからのプロンプトなしで（例えば、ユーザがライブエージェントと通信したいことを示す必要なしに）決定することができる。いくつかの実装形態では、転送ルールが満たされるかどうかの決定は、条件を満たすユーザ入力に基づいて決定することができる。例えば、ユーザが、新しいアイテムに関するさらなる情報を望むことを示す場合（およびチャットセッションのメッセージにおいてアイテム名を使用する場合）、転送ルールを満たす条件を満たすアイテム名を検出することができる。
【０１２５】
[00137]ブロック１２３０で、通信サーバは、ボットからライブエージェントによって操作される端末機器へのチャットセッションのハンドオーバ（例えば、ボットと端末機器との間の切り替え）を開始することができる。いくつかの実装形態では、ハンドオーバを開始することは、ネットワークデバイスと通信するためにどの端末機器を選択すべきかを評価することを含むことができる。端末機器は、エージェントの専門性によってグループ化することができる。いくつかの例では、ボットとユーザとの間の通信セッションのトピックを使用して、端末機器を選択することができる。他の例では、ボットに関連付けられた（例えば、管理を担当する）端末機器は、ハンドオーバを選択または通知されることができ、次いで、端末機器は、ユーザとシームレスに通信することができる。いくつかの例では、チャットセッションが端末機器にハンドオーバされるとき、エージェントがユーザを容易に支援することができるように、チャット情報、ユーザ情報、および任意の他の追加の情報を端末機器上に提示することができる。ブロック１２４０において、通信サーバは、ユーザとエージェントに関連付けられた端末機器との間のチャットセッションを容易にすることができる。
【０１２６】
[00138]図１３は、ボットのエンドツーエンド管理を実行するために通信サーバによって少なくとも部分的に実行される例示的なプロセスフローである。プロセスフロー１３００は、少なくとも部分的に、通信サーバ（例えば、通信サーバ１０１０）によって実行され得る。プロセスフロー１３００は、通信サーバにロードするためにボットおよび／または端末機器が識別されるブロック１３１０で開始することができる。例えば、ボットは、通信サーバによって端末機器と同じように扱われ得る。
【０１２７】
[00139]ブロック１３２０で、ブロック１３１０で識別されたボットおよび端末機器の各々についてワークフローを定義することができる。例えば、各ボットは、特定の機能を実行するように割り当てられ、又は構成されることができる。ボットが実行するために定義されたワークフローまたはタスクは、ボットの機能に対応することができる。例えば、ボットに対して役割および責任を定義することができる（例えば、ボットは、アドレス更新、パスワード更新、ユーザ情報の支援を処理する）。ボットタスク管理は、ここで説明するように、ネットワークデバイスから受信したメッセージを端末機器またはボットにルーティングすることを含むことができる。
【０１２８】
[00140]ブロック１３３０で、ボットに対してメッセージをルーティングするためのルーティングプロトコルを定義することができる。例えば、通信サーバは、ユーザからどのメッセージがボットにルーティングされるべきか、エスカレーションパス（例えば、ボットからライブエージェントへ、スーパーバイザへ）、ボット通信をいつトリガすべきか、およびライブエージェント通信をいつトリガすべきかを定義する特定のキャンペーン（ｃａｍｐａｉｇｎｓ）などを決定するためにルーティングプロトコルを実行することができる。
【０１２９】
[00141]ブロック１３４０で、ボットのタスク完了パラメータ（例えば、性能メトリック）は、各ボットの品質スコアを生成することによって評価され得る。いくつかの実装形態では、ボットの性能は、ボットに関連付けられたメッセージパラメータ（例えば、意味のある接続スコア（ＭＣＳ）スコア）を評価することによって評価することができる。例えば、ユーザが特定のボットに対して一貫してフラストレーションを感じている場合、ボットに関連付けられたメッセージパラメータは低くなり得る。低いメッセージパラメータは、ボットが再プログラムすべきであるか、またはオフラインにされるべきであることを示すことができる。ブロック１３５０では、ユーザと通信するためのプロトコルを強化することができる。例えば、ボットは、再プログラムされ得るか、またはボットがもはや目的を果たさない場合（例えば、専門家された機能がもはや必要とされない場合）には、デコミッション（ｄｅｃｏｍｍｉｓｓｉｏｎｅｄ）され得る。ユーザとの通信のためのプロトコルを強化することは、自律型ボットを実装するために実行されるボットスクリプトを修正すること、ルーティングプロトコルまたは通信スクリプトを改善するなど、ボットの特徴または態様を最適化すること、および他の適切な強化を含むことができる。
【０１３０】
[00142]具体的な詳細は、実施形態の完全な理解を提供するために上述の説明で与えられる。しかし、これらの実施形態は、これらの特定の詳細なしに実施され得ることが理解される。例えば、不必要に詳細な点で実施形態を不明瞭にしないために、回路をブロック図として示すことができる。他の例では、周知の回路、プロセス、アルゴリズム、構造、および技術は、実施形態を不明瞭にすることを避けるために、不必要に詳細な点を除いて示され得る。
【０１３１】
[00143]上述の技術、ブロック、ステップ、および手段の実装は、様々な方法で行うことができる。例えば、これらの技術、ブロック、ステップ、および手段は、ハードウェア、ソフトウェア、またはそれらの組合せで実施することができる。ハードウェア実装の場合、処理ユニットは、１または複数の特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰｓ）、デジタル信号処理デバイス（ＤＳＰＤｓ）、プログラマブルロジックデバイス（ＰＬＤｓ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡｓ）、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、上述の機能を実行するように設計された他の電子ユニット、および／またはそれらの組合せ内で実装することができる。
【０１３２】
[00144]また、実施形態の一部は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明できることに留意されたい。フローチャートは、動作を順次プロセスとして説明することができるが、動作の多くは、並行して又は同時に実行することができる。さらに、動作の順序を並べ替えることができる。プロセスは、その動作が完了したときに終了するが、図に含まれない追加のステップを有することができる。プロセスは、方法、機能、手順、サブルーチン、サブプログラムなどに対応することができる。プロセスが関数に対応する場合、その終了は、その関数を呼び出し関数または主関数に戻すことに対応する。
【０１３３】
[00145]さらに、実施形態は、ハードウェア、ソフトウェア、スクリプト言語、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、および／またはそれらの任意の組合せによって実装することができる。ソフトウェア、ファームウェア、ミドルウェア、スクリプト言語、および／またはマイクロコードで実装される場合、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体などの機械可読媒体に記憶することができる。コードセグメントまたは機械実行可能命令は、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、スクリプト、クラス、または命令、データ構造、および／またはプログラムステートメントの任意の組合せを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、および／またはメモリコンテンツを渡すおよび／または受信することによって、別のコードセグメントまたはハードウェア回路に結合することができる。情報、引数、パラメータ、データなどは、メモリ共有、メッセージ引渡し、チケット引渡し、ネットワーク送信などを含む任意の適切な手段を介して、引渡し、転送、または送信することができる。
【０１３４】
[00146]ファームウェアおよび／またはソフトウェア実装の場合、方法は、ここで説明される機能を実行するモジュール（例えば、プロシージャ、関数など）を用いて実装することができる。命令を有形に実施する任意の機械可読媒体を、ここに記載の方法を実施する際に使用することができる。例えば、ソフトウェアコードは、メモリに記憶され得る。メモリは、プロセッサ内またはプロセッサの外部に実装することができる。ここで使用される「メモリ」という用語は、任意のタイプの長期、短期、揮発性、不揮発性、または他の記憶媒体を指し、任意の特定のタイプのメモリまたはメモリの数、またはメモリが記憶される媒体のタイプに限定されない。
【０１３５】
[00147]さらに、ここで開示されるように、「記憶媒体」、「ストレージ」、または「メモリ」という用語は、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ＲＡＭ、コアメモリ、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および／または情報を記憶するための他の機械可読媒体を含む、データを記憶するための１または複数のメモリを表すことができる。「機械可読媒体」という用語は、ポータブルまたは固定記憶デバイス、光記憶デバイス、ワイヤレスチャネル、および／または命令および／またはデータを含む、または搬送する、記憶することができる様々な他の記憶媒体を含むが、これらに限定されない。
【０１３６】
[00148]本開示の原理は、特定の機器および方法に関連して上で説明されたが、この説明は、単に例としてなされたものであり、本開示の範囲を限定するものではないことを明確に理解されたい。
【図１】
2020520616.tif 000003
【図２】
2020520616.tif 000004
【図３Ａ】
2020520616.tif 000005
【図３Ｂ】
2020520616.tif 000006
【図３Ｃ】
2020520616.tif 000007
【図４】
2020520616.tif 000008
【図５】
2020520616.tif 000009
【図６】
2020520616.tif 000010
【図７】
2020520616.tif 000011
【図８】
2020520616.tif 000012
【図９】
2020520616.tif 000013
【図１０】
2020520616.tif 000014
【図１１】
2020520616.tif 000015
【図１２】
2020520616.tif 000016
【図１３】
2020520616.tif 000017
【国際調査報告】
2020520616.tif 000018
2020520616.tif 000019
2020520616.tif 000020