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

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

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

特許7317984異なるエンドポイントへの動的な通信ルーティング
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-21
(45)【発行日】2023-07-31
(54)【発明の名称】異なるエンドポイントへの動的な通信ルーティング
(51)【国際特許分類】
   H04L 51/214 20220101AFI20230724BHJP
   G06F 40/279 20200101ALI20230724BHJP
【FI】
H04L51/214
G06F40/279
【請求項の数】 15
(21)【出願番号】P 2021556516
(86)(22)【出願日】2020-03-18
(65)【公表番号】
(43)【公表日】2022-05-19
(86)【国際出願番号】 US2020023422
(87)【国際公開番号】W WO2020191093
(87)【国際公開日】2020-09-24
【審査請求日】2021-10-20
(31)【優先権主張番号】62/820,500
(32)【優先日】2019-03-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】511094772
【氏名又は名称】ライブパーソン, インコーポレイテッド
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100199565
【弁理士】
【氏名又は名称】飯野 茂
(74)【代理人】
【識別番号】100219542
【弁理士】
【氏名又は名称】大宅 郁治
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【弁理士】
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】ブラッドリー、ジョー
(72)【発明者】
【氏名】ギルクレスト、アラン
(72)【発明者】
【氏名】デブ、ボディ
【審査官】安藤 一道
(56)【参考文献】
【文献】国際公開第2017/192684(WO,A1)
【文献】特表2018-520583(JP,A)
【文献】米国特許出願公開第2016/0360466(US,A1)
【文献】米国特許出願公開第2018/0054464(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 51/214
G06F 40/279
(57)【特許請求の範囲】
【請求項1】
クライアントデバイスに関連付けられた1つまたは複数の変数を受信することと、ここにおいて、前記クライアントデバイスは、クライアントによって操作され、
ネットワークデバイスから前記クライアントのメッセージを受信することと、ここにおいて、前記メッセージは、第1のインテントおよび第2のインテントを含み、
前記第1のインテントおよび前記第2のインテントを識別するために前記メッセージをパースすることと、ここにおいて、前記第1のインテントは、第1のアクション可能アイテムに関連付けられ、前記第2のインテントは、第2のアクション可能アイテムに関連付けられており、
前記第1のアクション可能アイテムおよび前記第2のアクション可能アイテムを実行するための優先順位付けを決定するために、前記第1のインテントおよび前記第2のインテントを分析することと、ここにおいて、前記優先順位付けは、前記第1のアクション可能アイテムが最初に実行されるべきであり、前記第2のアクション可能アイテムが2番目に実行されるべきであることを示し、
前記第1のインテントおよび前記第2のインテントを機械学習モデルに供給することと、ここにおいて、前記機械学習モデルは、前記クライアントデバイスに関連付けられた前記1つまたは複数の変数を最適化することによって、前記第1のインテントのための第1のエンドポイントおよび前記第2のインテントのための第2のエンドポイントを識別し、ここにおいて、前記第1のエンドポイントはボットであり、前記第2のエンドポイントは端末デバイスであり、前記端末デバイスはエージェントによって操作される、
前記第1のインテントを含むメッセージを前記第1のエンドポイントにルーティングすることと、ここにおいて、前記第1のエンドポイントは、その後、前記第1のアクション可能アイテムを実行し、
前記第2のインテントを含むメッセージを前記第2のエンドポイントにルーティングすることと、ここにおいて、前記第2のエンドポイントは、その後、前記第2のアクション可能アイテムを実行する、
を備える、コンピュータ実装方法。
【請求項2】
メモリに異なるポリシーのセットを記憶することと、ここにおいて、前記異なるポリシーのセットは、ビジネスまたはブランドによって定義され、ここにおいて、前記ルーティングすることは、前記異なるポリシーのセットに基づいて前記メッセージが前記ビジネスまたはブランドに関連付けられていることを識別することをさらに含む、
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記メッセージに基づいて1つまたは複数の条件を継続的にモニタリングすることと、
前記モニタリングに基づいて変更された条件を識別することと、ここにおいて、新しいインテントは、前記識別された変更された条件に基づく、
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項4】
コンテキストウェアハウスから前記メッセージに関するコンテキストを取得することと、ここにおいて、前記ルーティングすることは、前記取得されたコンテキストにさらに基づく、
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記メッセージは自然言語である、請求項1に記載のコンピュータ実装方法。
【請求項6】
命令を含む、非一時的機械可読記憶媒体において有形に具現化されるコンピュータプログラム製品であって、前記命令は、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
クライアントデバイスに関連付けられた1つまたは複数の変数を受信することと、ここにおいて、前記クライアントデバイスは、クライアントによって操作され、
ネットワークデバイスから前記クライアントのメッセージを受信することと、ここにおいて、前記メッセージは、第1のインテントおよび第2のインテントを含み、
前記第1のインテントおよび前記第2のインテントを識別するために前記メッセージをパースすることと、ここにおいて、前記第1のインテントは、第1のアクション可能アイテムに関連付けられ、前記第2のインテントは、第2のアクション可能アイテムに関連付けられており、
前記第1のアクション可能アイテムおよび前記第2のアクション可能アイテムを実行するための優先順位付けを決定するために、前記第1のインテントおよび前記第2のインテントを分析することと、ここにおいて、前記優先順位付けは、前記第1のアクション可能アイテムが最初に実行されるべきであり、前記第2のアクション可能アイテムが2番目に実行されるべきであることを示し、
前記第1のインテントおよび前記第2のインテントを機械学習モデルに供給することと、ここにおいて、前記機械学習モデルは、前記クライアントデバイスに関連付けられた前記1つまたは複数の変数を最適化することによって、前記第1のインテントのための第1のエンドポイントおよび前記第2のインテントのための第2のエンドポイントを識別し、ここにおいて、前記第1のエンドポイントはボットであり、前記第2のエンドポイントは端末デバイスであり、前記端末デバイスはエージェントによって操作される、
前記第1のインテントを含むメッセージを前記第1のエンドポイントにルーティングすることと、ここにおいて、前記第1のエンドポイントは、その後、前記第1のアクション可能アイテムを実行し、
前記第2のインテントを含むメッセージを前記第2のエンドポイントにルーティングすることと、ここにおいて、前記第2のエンドポイントは、その後、前記第2のアクション可能アイテムを実行する、
を含む動作を行わせる、コンピュータプログラム製品。
【請求項7】
前記非一時的機械可読記憶媒体は、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
メモリに異なるポリシーのセットを記憶することと、ここにおいて、前記異なるポリシーのセットは、ビジネスまたはブランドによって定義され、ここにおいて、前記ルーティングすることは、前記異なるポリシーのセットに基づいて前記メッセージが前記ビジネスまたはブランドに関連付けられていることを識別することをさらに含む、
を含むさらなる動作を行わせるさらなる命令を含む、請求項6に記載のコンピュータプログラム製品。
【請求項8】
前記非一時的機械可読記憶媒体は、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
前記メッセージに基づいて1つまたは複数の条件を継続的にモニタリングすることと、
前記モニタリングに基づいて変更された条件を識別することと、ここにおいて、新しいインテントは、前記識別された変更された条件に基づく、
を含むさらなる動作を行わせるさらなる命令を含む、請求項6に記載のコンピュータプログラム製品。
【請求項9】
前記非一時的機械可読記憶媒体は、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
コンテキストウェアハウスから前記メッセージに関するコンテキストを取得することと、ここにおいて、前記ルーティングすることは、前記取得されたコンテキストにさらに基づく、
を含むさらなる動作を行わせるさらなる命令を含む、請求項6に記載のコンピュータプログラム製品。
【請求項10】
前記メッセージは自然言語である、請求項6に記載のコンピュータプログラム製品。
【請求項11】
システムであって、
1つまたは複数のプロセッサと、
命令を含む1つまたは複数の非一時的機械可読記憶媒体と、
を備え、前記命令は、前記1つまたは複数のプロセッサ上で実行されると、前記1つまたは複数のプロセッサに、
クライアントデバイスに関連付けられた1つまたは複数の変数を受信することと、ここにおいて、前記クライアントデバイスは、クライアントによって操作され、
ネットワークデバイスから前記クライアントのメッセージを受信することと、ここにおいて、前記メッセージは、第1のインテントおよび第2のインテントを含み、
前記第1のインテントおよび前記第2のインテントを識別するために前記メッセージをパースすることと、ここにおいて、前記第1のインテントは、第1のアクション可能アイテムに関連付けられ、前記第2のインテントは、第2のアクション可能アイテムに関連付けられており、
前記第1のアクション可能アイテムおよび前記第2のアクション可能アイテムを実行するための優先順位付けを決定するために、前記第1のインテントおよび前記第2のインテントを分析することと、ここにおいて、前記優先順位付けは、前記第1のアクション可能アイテムが最初に実行されるべきであり、前記第2のアクション可能アイテムが2番目に実行されるべきであることを示し、
前記第1のインテントおよび前記第2のインテントを機械学習モデルに供給することと、ここにおいて、前記機械学習モデルは、前記クライアントデバイスに関連付けられた前記1つまたは複数の変数を最適化することによって、前記第1のインテントのための第1のエンドポイントおよび前記第2のインテントのための第2のエンドポイントを識別し、ここにおいて、前記第1のエンドポイントはボットであり、前記第2のエンドポイントは端末デバイスであり、前記端末デバイスはエージェントによって操作される、
前記第1のインテントを含むメッセージを前記第1のエンドポイントにルーティングすることと、ここにおいて、前記第1のエンドポイントは、その後、前記第1のアクション可能アイテムを実行し、
前記第2のインテントを含むメッセージを前記第2のエンドポイントにルーティングすることと、ここにおいて、前記第2のエンドポイントは、その後、前記第2のアクション可能アイテムを実行する、
を含む動作を行わせる、システム。
【請求項12】
前記1つまたは複数の非一時的機械可読記憶媒体は、前記1つまたは複数のプロセッサ上で実行されると、前記1つまたは複数のプロセッサに、
メモリに異なるポリシーのセットを記憶することと、ここにおいて、前記異なるポリシーのセットは、ビジネスまたはブランドによって定義され、ここにおいて、前記ルーティングすることは、前記異なるポリシーのセットに基づいて前記メッセージが前記ビジネスまたはブランドに関連付けられていることを識別することをさらに含む、
を含むさらなる動作を行わせるさらなる命令を含む、請求項11に記載のシステム。
【請求項13】
前記1つまたは複数の非一時的機械可読記憶媒体は、前記1つまたは複数のプロセッサ上で実行されると、前記1つまたは複数のプロセッサに、
前記メッセージに基づいて1つまたは複数の条件を継続的にモニタリングすることと、
前記モニタリングに基づいて変更された条件を識別することと、ここにおいて、新しいインテントは、前記識別された変更された条件に基づく、
を含むさらなる動作を行わせるさらなる命令を含む、請求項11に記載のシステム。
【請求項14】
前記1つまたは複数の非一時的機械可読記憶媒体は、前記1つまたは複数のプロセッサ上で実行されると、前記1つまたは複数のプロセッサに、
コンテキストウェアハウスから前記メッセージに関するコンテキストを取得することと、ここにおいて、前記ルーティングすることは、前記取得されたコンテキストにさらに基づく、
を含むさらなる動作を行わせるさらなる命令を含む、請求項11に記載のシステム。
【請求項15】
前記メッセージは自然言語である、請求項11に記載のシステム。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
[0001] 本開示は、2019年3月19日に出願され、“Dynamic Communications Routing to Disparate Endpoints”と題する米国仮特許出願第62/820,500号の優先権の利益を主張するものであり、当該出願の開示を参照により本明細書に援用する。
【技術分野】
【0002】
[0002] 本開示は、概して、通信のルーティングを円滑にすることに関する。より具体的には、マルチチャネル能力で構成された通信セッション中にボットと端末デバイスとの間で複数のインテントを有するメッセージを動的にルーティングするための技法が提供される。
【発明の概要】
【0003】
[0003] 実施形態という用語および同様の用語は、本開示および以下の特許請求の範囲の主題すべてを広く指すことを意図している。これらの用語を含む記述は、本明細書に記載される主題を限定するものではなく、また以下の特許請求の範囲の意味もしくは範囲を限定するものでもないことを理解されたい。本明細書で網羅される本開示の実施形態は、本概要ではなく、以下の特許請求の範囲によって定義される。本概要は、本開示の様々な態様の高レベルの概要であり、以下の発明を実施するための形態のセクションにおいてさらに説明される概念のいくつかを紹介するものである。本概要は、請求項に記載の主題の重要または本質的な特徴を特定することを意図しておらず、また請求項に記載の主題の範囲を決定するために単独で使用されることも意図していない。主題は、本開示の明細書全体のうちの適切な部分、いずれかまたはすべての図面、および各請求項を参照することにより理解されたい。
【0004】
[0004] 本開示のいくつかの実施形態は、コンピュータ実装方法を含む。本方法は、クライアントデバイスに関連付けられた1つまたは複数の変数を受信することを含み得る。クライアントデバイスは、クライアントによって操作され得る。本方法はさらに、ネットワークデバイスからクライアントのメッセージを受信することを含み得る。メッセージは、第1のインテントおよび第2のインテントを含み得る。本方法はさらに、第1のインテントおよび第2のインテントを識別するためにメッセージをパースすることを含み得る。第1のインテントは、第1のアクション可能アイテムに関連付けられ得、第2のインテントは、第2のアクション可能アイテムに関連付けられ得る。本方法はさらに、第1のアクション可能アイテムおよび第2のアクション可能アイテムを実行するための優先順位付けを決定するために、第1のインテントおよび第2のインテントを分析することを含み得る。優先順位付けは、第1のアクション可能アイテムが最初に実行されるべきであり、第2のアクション可能アイテムが2番目に実行されるべきであることを示し得る。本方法はさらに、第1のインテントおよび第2のインテントを機械学習モデルに供給することを含み得る。機械学習モデルは、クライアントデバイスに関連付けられた1つまたは複数の変数を最適化することによって、第1のインテントのための第1のエンドポイントおよび第2のインテントのための第2のエンドポイントを識別し得る。本方法はさらに、第1のインテントを第1のエンドポイントにルーティングすることを含み得る。第1のエンドポイントは、その後、第1のアクション可能アイテムを実行し得る。本方法はさらに、第2のインテントを第2のエンドポイントにルーティングすることを含み得る。第2のエンドポイントは、その後、第2のアクション可能アイテムを実行し得る。
【0005】
[0005] 本開示のいくつかの実施形態は、システムを含む。本システムは、1つまたは複数のデータプロセッサと、命令を含む非一時的コンピュータ可読記憶媒体とを含み得、該命令は、1つまたは複数のデータプロセッサ上で実行されると、1つまたは複数のデータプロセッサに、上記および本明細書に記載の方法を行わせる。
【0006】
[0006] 本開示のいくつかの実施形態は、データ処理装置に上記および本明細書に記載の方法を行わせるように構成された命令を含む、非一時的機械可読記憶媒体において有形に具現化されたコンピュータプログラム製品を含む。
【0007】
[0007] 本開示について、添付の図面と併せて説明する。
【図面の簡単な説明】
【0008】
図1】[0008] 図1は、ネットワークインタラクションシステムの一実施形態のブロック図を示す。
図2】[0009] 図2は、ネットワークインタラクションシステムの別の実施形態のブロック図を示す。
図3A】[0010] 図3Aは、接続管理システムを含むネットワークインタラクションシステムの他の実施形態のブロック図を示す。
図3B図3Bは、接続管理システムを含むネットワークインタラクションシステムの他の実施形態のブロック図を示す。
図3C図3Cは、接続管理システムを含むネットワークインタラクションシステムの他の実施形態のブロック図を示す。
図4】[0011] 図4は、接続コンポーネントの動作のプロトコルスタックマッピングの表現を示す。
図5】[0012] 図5は、一実施形態によるマルチデバイス通信交換システムを表す。
図6】[0013] 図6は、接続管理システムの一実施形態のブロック図を示す。
図7】[0014] 図7は、通信セッション中にボットと端末デバイスとを動的に切り替えるためのネットワーク環境のブロック図を示す。
図8】[0015] 図8は、複数のチャネル環境にわたってエンドポイントを動的に選択するためのネットワーク環境を表すブロック図を示す。
図9】[0016] 図9は、機械学習技法を使用してエンドポイント選択を拡張するためのネットワーク環境を表すブロック図を示す。
図10】[0017] 図10は、通信セッション中にボットと端末デバイスとの間でメッセージをルーティングするための例示的なプロセスを示す。
図11-1】[0018] 図11-1は、人工知能(AI)によって駆動される会話をオーケストレートする(orchestrating)ためのシステムが実現され得るネットワーク環境を表すブロック図を示す。
図11-2】図11-2は、人工知能(AI)によって駆動される会話をオーケストレートするためのシステムが実現され得るネットワーク環境を表すブロック図を示す。
図12-1】[0019] 図12-1は、会話のAI駆動型オーケストレーション内の例示的な情報フローを表すブロック図を示す。
図12-2】図12-2は、会話のAI駆動型オーケストレーション内の例示的な情報フローを表すブロック図を示す。
図13A-1】[0020] 図13A-1は、AI駆動型システムによってオーケストレートされた例示的な会話を示す。
図13A-2】図13A-2は、AI駆動型システムによってオーケストレートされた例示的な会話を示す。
図13A-3】図13A-3は、AI駆動型システムによってオーケストレートされた例示的な会話を示す。
図13B-1】図13B-1は、AI駆動型システムによってオーケストレートされた例示的な会話を示す。
図13B-2】図13B-2は、AI駆動型システムによってオーケストレートされた例示的な会話を示す。
図13B-3】図13B-3は、AI駆動型システムによってオーケストレートされた例示的な会話を示す。
図13C-1】図13C-1は、AI駆動型システムによってオーケストレートされた例示的な会話を示す。
図13C-2】図13C-2は、AI駆動型システムによってオーケストレートされた例示的な会話を示す。
【0009】
[0021] 添付の図面では、同様のコンポーネントおよび/または特徴は、同じ参照ラベルを有し得る。さらに、同じタイプの様々なコンポーネントは、参照ラベルの後に、ダッシュと、同様のコンポーネント同士を区別する第2のラベルとを続けることによって区別され得る。本明細書において第1の参照ラベルのみが使用される場合、その説明は、第2の参照ラベルにかかわらず、同じ第1の参照ラベルを有する同様のコンポーネントのうちのいずれか1つに適用可能である。
【発明を実施するための形態】
【0010】
[0022] 次に続く説明は、実施形態(単数または複数)の好ましい例のみを提供しており、本開示の範囲、適用可能性、または構成を限定することを意図するものではない。むしろ、次に続く実施形態(単数または複数)の好ましい例の説明は、実施形態の好ましい例を実現することを可能にするための説明を当業者に提供する。様々な変更を、添付の特許請求の範囲に記載の趣旨および範囲から逸脱することなく、要素の機能および配置において行うことができることが理解される。
【0011】
[0023] 図1は、本明細書で説明するいくつかの実施形態および機能を実現およびサポートする、ネットワークインタラクションシステム100の一実施形態のブロック図を示す。いくつかの実施形態は、(ユーザ110が操作することができる)ネットワークデバイス105と(エージェント120が操作することができる)端末デバイス115との間に接続チャネルを確立することに関する。いくつかの実施形態において、ネットワークインタラクションシステム100は、クライアント125に関連付けられたクライアントデバイス130を含み得る。
【0012】
[0024] いくつかの実施形態では、ユーザ110は、ウェブサイトを閲覧している個人、またはリモートサーバ140によって提供されるオンラインサービスにアクセスしている個人であり得る。クライアント125は、ウェブサイトまたはオンラインサービスを提供、運用、または運営するエンティティ、もしくは本明細書で説明するようなクライアント125にとって利用可能なタスクを実行するために、そのようなエンティティによって雇用またはアサインされた個人であり得る。エージェント120は、ウェブサイトまたはオンラインサービスに関してユーザ110にサポートまたは情報を提供することがタスクのサポートエージェントなどの個人であり得る。多数のエージェントのうち、エージェントのサブセットが、特定のクライアント125にサポートまたは情報を提供するのに適切であり得る。エージェント120は、クライアント125と提携していてもよいし、または提携していなくてもよい。各エージェントは、1つまたは複数のクライアント125に関連付けられ得る。いくつかの非限定的な例では、ユーザ110は、パーソナルコンピューティングデバイスからオンラインストアでショッピングする個人であり得、クライアント125は、オンラインで製品を販売する企業であり得、エージェント120は、この企業によって雇用された販売員であり得る。様々な実施形態において、ユーザ110、クライアント125、およびエージェント120は、他の個人またはエンティティであってもよい。
【0013】
[0025] 図1は単一のネットワークデバイス105、端末デバイス115、およびクライアントデバイス130のみを示しているが、インタラクションシステム100は、複数または多数(例えば、数十、数百、または数千)もの、これらのタイプのデバイスのうちの1つまたは複数の各々を含み得る。同様に、図1は単一のユーザ110、エージェント120、およびクライアント125のみを示しているが、インタラクションシステム100は、複数または多数の、このようなエンティティのうちの1つまたは複数の各々を含み得る。したがって、所与のネットワークデバイスと通信するのにどの端末デバイスを選択すべきかを決定することが必要であり得る。さらに複雑な問題として、リモートサーバ140もまた、ネットワークデバイス通信を受信し、それを選択するように応答するように構成され得る。
【0014】
[0026] 接続管理システム150は、通信の戦略的ルーティングを円滑にすることができる。通信は、(例えば、タイプ入力または音声入力などの、エンティティからの入力に基づいて定義された)コンテンツを有するメッセージを含み得る。通信はまた、送信デバイスについてのデータ(例えば、IPアドレス、アカウント識別子、デバイスタイプ、および/またはオペレーティングシステム)、宛先アドレス、クライアントの識別子、ウェブページまたはウェブページ要素(例えば、通信が生成されたときに訪問されているか、または別の方法で通信に関連付けられている、ウェブページまたはウェブページ要素)の識別子もしくはオンライン履歴データ、時間(例えば、時刻ならびに/もしくは日付)、および/または宛先アドレスなどの、追加のデータも含み得る。他の情報が通信に含まれ得る。いくつかの例では、接続管理システム150は、通信全体を別のデバイスにルーティングする。いくつかの例では、接続管理システム150は、(例えば、最初の通信に基づいて)通信を修正する、または新しい通信を生成する。新しい通信または修正された通信は、メッセージ(またはその処理されたバージョン)、(例えば、送信デバイス、ウェブページまたはオンライン履歴、および/または時間についての)追加のデータのうちの少なくとも一部(または全部)、および/または接続管理システム150によって識別された他のデータ(例えば、特定のアカウント識別子またはデバイスに関連付けられたアカウントデータ)を含み得る。新しい通信または修正された通信は、他の情報も含み得る。
【0015】
[0027] 戦略的ルーティングの円滑化の一部には、ネットワークデバイス105と1つまたは複数の端末デバイス115との間の1つまたは複数の接続チャネルを確立、更新、および使用することを含み得る。例えば、ネットワークデバイス105から通信を受信すると、接続管理システム150は、通信がどのクライアント(もしあれば)に対応するかを最初に推定し得る。クライアントを識別すると、接続管理システム150は、ネットワークデバイス105との通信のために、そのクライアントに関連付けられた端末デバイス115を識別し得る。いくつかの例では、この識別は、複数のエージェント(または、エキスパートもしくは代行者(delegates))の各々のプロファイルを評価することを含み得、複数のエージェントのうちの各エージェント(例えば、エージェント120)は、端末デバイス(例えば、端末デバイス115)に関連付けられている。評価は、ネットワークデバイスメッセージにおけるコンテンツに関連し得る。端末デバイス115の識別は、例えば、2010年3月17日に出願された米国特許出願第12/725,799号に記載の技法を含み得、当該出願は、あらゆる目的のために、その全体が参照により本明細書に援用される。
【0016】
[0028] いくつかの例では、接続管理システム150は、ネットワークデバイス105と、クライアント(またはリモートサーバ140)に関連付けられた端末デバイスとの間に何らかの接続チャネルが確立されているかどうか、および確立されている場合には、通信を含む一連の通信を交換するために、そのようなチャネルを使用すべきかどうかを決定し得る。
【0017】
[0029] ネットワークデバイス105と通信すべき端末デバイス115を選択すると、接続管理システム150は、ネットワークデバイス105と端末デバイス115との間の接続チャネルを確立し得る。いくつかの例では、接続管理システム150は、選択された端末デバイス115にメッセージを送信し得る。メッセージは、ネットワークデバイス105と通信するための提案された割当ての受諾を要求してもよいし、またはそのような割当てが生成されたことを識別してもよい。メッセージは、ネットワークデバイス105についての情報(例えば、IPアドレス、デバイスタイプ、および/またはオペレーティングシステム)、関連付けられたユーザ110についての情報(例えば、使用言語(language spoken)、クライアントとインタラクトした持続時間、スキルレベル、センチメント、および/またはトピック選好)、受信した通信、ネットワークデバイス105への通信を生成および送信するためのコード(例えば、クリック可能なハイパーリンク)、および/またはネットワークデバイス105への通信を生成および送信するための命令を含み得る。
【0018】
[0030] 1つの例では、ネットワークデバイス105と端末デバイス115との間の通信は、接続管理システム150を通じてルーティングされ得る。このような構成は、接続管理システム150が、通信交換をモニタリングすること、およびいずれかのデバイスの非応答性またはレイテンシの延長などの(例えば、規則に基づいて定義された)問題を検出することを可能にし得る。さらに、このような構成は、通信の選択的または完全な記憶を円滑にすることができ、これは、後に、例えば、通信交換の品質を評価するため、および/または特定の通信後ターゲットを促進するようにルーティング規則を更新または生成するための学習をサポートするために使用され得る。
【0019】
[0031] いくつかの実施形態では、接続管理システム150は、リアルタイムで通信交換をモニタリングし、ライブ通信に基づいて、自動化されたアクション(例えば、規則ベースのアクション)を実行し得る。例えば、接続管理システム150が、通信が特定のアイテム(例えば、製品)に関連するものであると決定すると、接続管理システム150は、アイテムについての追加の情報(例えば、利用可能なアイテムの数量、アイテムに関連するサポート資料へのリンク、またはアイテムもしくは類似アイテムについての他の情報)を含む追加のメッセージを端末デバイス115に自動的に送信し得る。
【0020】
[0032] 1つの例では、指定された端末デバイス115は、接続管理システム150を通じて通信を中継することなく、ネットワークデバイス105と通信し得る。デバイス105、115の一方または両方は、通信モニタリングおよび/またはデータ記憶を円滑にするために、特定の通信メトリックまたはコンテンツを接続管理システム150に報告し得る(または報告しなくてもよい)。
【0021】
[0033] 上述したように、接続管理システム150は、選択通信をリモートサーバ140にルーティングし得る。リモートサーバ140は、所定の方法で情報を提供するように構成され得る。例えば、リモートサーバ140は、通信に応答して送信すべき、定義された1つまたは複数のテキストパッセージ、音声記録、および/またはファイルにアクセスし得る。リモートサーバ140は、例えば、受信した通信の解析(例えば、セマンティック解析またはマッピング解析)に基づいて、特定のテキストパッセージ、記録、またはファイルを選択し得る。
【0022】
[0034] 接続管理システム150において実行されるルーティングおよび/または他の決定もしくは処理は、1つまたは複数のクライアントデバイス130によって少なくとも部分的に定義または提供される規則および/またはデータに基づいて実行され得る。例えば、クライアントデバイス130は、エージェントの優先順位付け、端末デバイスのタイプ、および/または、トピック/スキルマッチングを識別する通信を送信し得る。別の例として、クライアントデバイス130は、ルーティング決定に影響を及ぼす可能性のある様々な変数(例えば、言語互換性、予測応答時間、デバイスタイプならびに能力、および/または端末デバイスの負荷バランシング)に適用すべき1つまたは複数の重みを識別し得る。どの端末デバイスおよび/またはエージェントがクライアントに関連付けられることになるかが、動的であり得ることが理解されよう。クライアントデバイス130および/または端末デバイス115からの通信は、所与の端末デバイスおよび/またはエージェントがクライアントに関連付けられたものとして追加または削除されるべきであることを示す情報を提供し得る。例えば、クライアントデバイス130は、IPアドレスを有する通信と、そのアドレスを有する端末デバイスを、クライアントに関連付けられた端末デバイスを識別するリストに追加すべきかどうか、またはそのリストから削除すべきかどうかに関するインジケーションとを送信し得る。
【0023】
[0035] (例えば、デバイス間、デバイスと接続管理システム150との間、リモートサーバ140と接続管理システム150との間、またはリモートサーバ140とデバイスとの間の)各通信は、1つまたは複数のネットワーク170上で行われ得る。オープンまたはクローズドネットワークの任意の組合せが、1つまたは複数のネットワーク170に含まれ得る。好適なネットワークの例は、インターネット、パーソナルエリアネットワーク、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、またはワイヤレスローカルエリアネットワーク(WLAN)を含む。他のネットワークも同様に好適であり得る。1つまたは複数のネットワーク170は、イントラネット、エクストラネット、またはそれらの組合せ内に完全に組み込まれ得るか、またはそれを含み得る。いくつかの例では、1つまたは複数のネットワーク170におけるネットワークは、Bluetooth(登録商標)またはBluetooth Low Energyチャネルなどの、短距離通信チャネルを含む。1つの実施形態では、2つ以上のシステムおよび/またはデバイス間の通信は、セキュアソケットレイヤ(SSL)またはトランスポートレイヤセキュリティ(TLS)などの、セキュア通信プロトコルによって達成され得る。加えて、データおよび/またはトランザクションの詳細は、限定はしないが、データ暗号化標準(DES)、トリプルDES、Rivest-Shamir-Adleman暗号(RSA)、Blowfish暗号、高度暗号化標準(AES:Advanced Encryption Standard)、CAST-128、CAST-256、無相関化高速暗号(DFC:Decorrelated Fast Cipher)、TEA(Tiny Encryption Algorithm)、XTEA(eXtended TEA)、XXTEA(Corrected Block TEA)、および/またはRC5等のような、任意の便利な既知または開発予定の方法に基づいて暗号化され得る。
【0024】
[0036] ネットワークデバイス105、端末デバイス115、および/またはクライアントデバイス130は、例えば、ポータブル電子デバイス(例えば、スマートフォン、タブレット、ラップトップコンピュータ、またはスマートウェアラブルデバイス)、または非ポータブル電子デバイス(例えば、1つまたは複数のデスクトップコンピュータ、スマート家電、サーバ、および/またはプロセッサ)を含み得る。接続管理システム150は、ネットワーク、端末デバイス、およびクライアントデバイスとは別個に収容されていてもよいし、または(例えば、デバイス上へのアプリケーションのインストールを介して)1つまたは複数のそのようなデバイスの一部であってもよい。リモートサーバ140は、各デバイスおよび接続管理システム150とは別個に収容されてもよく、および/または別のデバイスまたはシステムの一部であってもよい。図1では各デバイス、サーバ、およびシステムが単一のデバイスとして示されているが、代わりに複数のデバイスを使用してもよいことが理解されよう。例えば、ネットワークデバイスのセットを、単一のユーザからの様々な通信を送信するために使用してもよいし、またはリモートサーバ140がサーバスタックを含んでもよい。
【0025】
[0037] ソフトウェアエージェントまたはアプリケーションが、図示されたデバイス、システム、またはサーバ上にインストールされていてもよいし、および/またはその上で実行可能であってもよい。1つの例では、ソフトウェアエージェントまたはアプリケーションは、様々な図示された要素が相補的な形で動作することができるように構成される。例えば、デバイス上のソフトウェアエージェントは、デバイス使用についてのデータを収集し、別個の接続管理システムに送信するように構成され得、別個の接続管理システム上のソフトウェアアプリケーションが、データを受信および処理するように構成され得る。
【0026】
[0038] 図2は、ネットワークインタラクションシステム200の別の実施形態のブロック図を示す。概して、図2は、ネットワークデバイス205が1つまたは複数の端末デバイス215と通信することが可能となるように構成および配置された様々なコンポーネントを例示する。図示された例は、3つのローカルエリアネットワーク235に含まれる9個の端末デバイス215を含む。
【0027】
[0039] いくつかの例では、ネットワークデバイス205からの通信は、どの端末デバイスがその通信を受信すべきかを少なくとも部分的または完全に示す宛先データ(例えば、宛先IPアドレス)を含む。ネットワークインタラクションシステム200は、宛先データを処理し、適切なルーティングを円滑にし得る、1つまたは複数のインターネットワーク接続コンポーネント245および/または1つまたは複数のイントラネットワーク接続コンポーネント255を含み得る。
【0028】
[0040] 各インターネットワーク接続コンポーネント245は、複数のネットワーク235に接続され得、インストールされた複数のネットワークカードを有し得る(例えば、各カードは異なるネットワークに接続される)。例えば、インターネットワーク接続コンポーネント245は、広域ネットワーク270(例えば、インターネット)および1つまたは複数のローカルエリアネットワーク235に接続され得る。図示された例では、通信がネットワークデバイス205から端末デバイスのいずれかに送信されるために、図示されたシステムでは、通信は、複数のインターネットワーク接続コンポーネント245によって処理される必要がある。
【0029】
[0041] インターネットワーク接続コンポーネント245が通信(または通信に対応するパケットのセット)を受信すると、インターネットワーク接続コンポーネント245は、宛先に関連付けられたネットワークにこの通信を渡すルートの少なくとも一部を決定し得る。ルートは、例えば、(例えば、ルータにおいて記憶された)ルーティングテーブルを使用して決定され得、このルーティングテーブルは、事前に定義されたか、(例えば、別のルータからまたは別のデバイスからの)着信メッセージ(incoming message)に基づいて生成されたか、または学習された1つまたは複数のルートを含み得る。
【0030】
[0042] インターネットワーク接続コンポーネント245の例としては、ルータ260およびゲートウェイ265を含む。インターネットワーク接続コンポーネント245(例えば、ゲートウェイ265)は、ネットワークシステム間またはプロトコル間で変換するように構成され得る。例えば、ゲートウェイ265は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)デバイスと、インターネットワークパケット交換/シーケンスパケット交換(IPX/SPX)デバイスとの間の通信を円滑にし得る。
【0031】
[0043] ローカルエリアネットワーク235において通信を受信すると、依然としてさらなるルーティングを実行する必要があり得る。このようなイントラネットワークルーティングは、スイッチ280またはハブ285などの、イントラネットワーク接続コンポーネント255を介して実行され得る。各イントラネットワーク接続コンポーネント255は、(例えば、無線で、またはイーサネット(登録商標)ケーブルを介するなど有線で)複数の端末デバイス215に接続され得る。ハブ285は、接続されている各デバイスに、すべての受信した通信を伝えていくように構成され得る。次いで、各端末デバイスは、端末デバイスが宛先デバイスであるかどうか、または通信を無視すべきであるかどうかを決定するために、各通信を評価し得る。スイッチ280は、通信を宛先端末デバイスのみに選択的に誘導する(direct)ように構成され得る。
【0032】
[0044] いくつかの例では、ローカルエリアネットワーク235は、複数のセグメントに分割され得、その各々が、独立したファイアウォール、セキュリティ規則、およびネットワークプロトコルに関連付けられ得る。イントラネットワーク接続コンポーネント255が、イントラセグメントルーティングを円滑にするために、1つ、複数、またはすべてのセグメントの各々に設けられ得る。ブリッジ290が、複数セグメント275にわたって通信をルーティングするように構成され得る。
【0033】
[0045] ネットワークにわたって、またはネットワーク内で通信を適切にルーティングするために、様々なコンポーネントが通信における宛先データを分析する。例えば、そのようなデータは、通信をどのネットワークにルーティングすべきか、通信をネットワーク内のどのデバイスにルーティングすべきか、または端末デバイスがどの通信を処理すべきか(または無視すべきか)を示し得る。しかしながら、いくつかの例では、ネットワークデバイスからの通信にどの端末デバイス(またはさらにはどのネットワーク)が参加すべきかについて即座には分からない。
【0034】
[0046] 例えば、端末デバイスのセットが、同様のタイプの応答通信を提供するように構成され得る。したがって、ネットワークデバイスからの通信がどのネットワークデバイスにルーティングされるかにかかわらず、その通信におけるクエリに同様の方法で応答し得ることが予想され得る。この想定は、高いレベルで当てはまり得るが、端末デバイスに関係する様々な詳細により、特定のルーティングが他のものと比較して有利になる可能性がある。例えば、セット内の端末デバイスは、(例えば)どの通信チャネルがサポートされているか、ネットワークデバイスへの地理的近接性ならびに/もしくはネットワーク近接性、および/または関連付けられたエージェントの特性(例えば、知識ベース、経験、使用言語、利用可能性、全般的な性格またはセンチメント等)に関して互いに異なり得る。したがって、選択ルーティングは、より正確および/または完全にネットワークデバイス通信に応答する、より高速な応答を円滑にすることができる。問題は、ネットワークデバイスを端末デバイスにマッピングする静的ルーティングは、通信のトピック、チャネルタイプ、エージェントの利用可能性などのバリエーションを考慮できない場合があるということである。
【0035】
[0047] 図3A図3Cは、接続管理システムを含むネットワークインタラクションシステム300a~300cの他の実施形態のブロック図を示す。図示されたシステム300a~300cの各々は、簡略化のために2つのみのローカルエリアネットワーク235を示しているが、ローカルエリアネットワークの数を増やすように実施形態を拡張してもよいことが理解され得る。システム300a~300cの各々は、接続管理システム350を含み、これは、どの端末デバイスがネットワークデバイス205と通信すべきかを識別し、接続チャネルを確立および管理し(例えば、維持または閉じる)、交換において通信を再ルーティングすべきかどうか、およびいつ再ルーティングすべきかを決定するなどを行い得る。したがって、接続管理システム350は、ルーティング決定に影響を及ぼすように、通信、エージェントの利用可能性、端末デバイスまたはエージェントの能力などを動的かつリアルタイムに評価するように構成され得る。
【0036】
[0048] 図3Aでは、接続管理システム350は、ネットワークデバイス205およびリモートサーバ340の各々に関連付けられている(例えば、接続管理システム350aは、ネットワークデバイス205に関連付けられ、接続管理システム350bは、リモートサーバ340に関連付けられている)。例えば、接続管理システム350aおよび/または接続管理システム350bは、それぞれネットワークデバイス205およびリモートサーバ340の各々にアプリケーションとしてインストールまたは格納され得る。アプリケーション(単数または複数)を実行すると、例えば、ネットワークデバイス205との通信交換に参加するように選択される端末デバイス215を識別するための、ネットワークデバイス205とリモートサーバ340との間の通信を円滑にすることができる。この識別は、本明細書で開示される1つまたは複数の要因(例えば、利用可能性、通信のトピック/詳細レベルとエージェントまたは端末デバイスの知識ベースとの間のマッチング、予測レイテンシ、チャネルタイプの利用可能性など)に基づいて行われ得る。
【0037】
[0049] クライアントデバイス330は、ルーティング決定をどのようにして行うべきかを示すクライアントデータを提供し得る。例えば、そのようなデータは、特定の特性をどのように重み付けまたはマッチングさせるべきかに関するインジケーション、または(例えば、負荷バランシングまたは予測応答レイテンシに関係する)制約もしくはバイアスを含み得る。クライアントデータはまた、通信チャネルをいつ確立すべき(または閉じるべき)か、または通信を異なるネットワークデバイスにいつ再ルーティングすべきかに関する仕様も含み得る。クライアントデータは、通信ルーティングなどについての規則など、様々なクライアント固有の規則を定義するために使用され得る。
【0038】
[0050] リモートサーバ340上で実行される接続管理システム350bは、どの通信チャネルがサポートされているか、ネットワークデバイスへの地理的近接性ならびに/もしくはネットワーク近接性、端末デバイスとの通信のレイテンシならびに/もしくは安定性、端末デバイスのタイプ、端末デバイスの能力、端末デバイス(またはエージェント)が所与のネットワークデバイス(またはユーザ)と以前に通信したことがあるかどうか、および/または関連付けられたエージェントの特性(例えば、知識ベース、経験、使用言語、利用可能性、全般的な性格またはセンチメント等)などの、端末デバイスに関係する(例えば、所与のクライアントに関係する)様々なメトリックをモニタリングし得る。したがって、接続管理システム350bは、これらメトリックに基づいてより正確および/または完全にネットワークデバイスの通信に応答する、より高速な応答を円滑にするようにルーティングを選択することが可能であり得る。
【0039】
[0051] 図3Aに図示される例では、ネットワークデバイス205とリモートサーバ340との間の通信交換が、宛先アドレスの早期識別を円滑にし得る。次いで、ネットワークデバイス205は、後続の通信を誘導するために宛先アドレスを使用し得る。例えば、ネットワークデバイス205は、(例えば、1つまたは複数のインターネットワーク接続および広域ネットワークを介して)リモートサーバ340に最初の通信を送り得、リモートサーバ340は、1つまたは複数の対応するクライアントを識別し得る。次いで、リモートサーバ340は、1つまたは複数の対応するクライアントに関連付けられた端末デバイスのセットを識別し、それらの端末デバイスについてのメトリックを収集し得る。メトリックは、通信交換に関与すべき端末デバイスを選択するために(例えば、リモートサーバ340によって)評価され得、この端末デバイスに関係する情報(例えば、IPアドレス)が、ネットワークデバイス205に送られ得る。いくつかの実施形態では、リモートサーバ340は、様々な端末デバイスについてのメトリックを連続的または定期的に収集および評価し、評価結果をデータストアに記憶し得る。このような実施形態では、1つまたは複数の対応するクライアントに関連付けられた端末デバイスのセットを識別すると、リモートサーバ340は、データストアからの記憶された評価結果にアクセスし、記憶された評価結果に基づいて、通信交換に関与すべき端末デバイスを選択し得る。
【0040】
[0052] 図3Bでは、接続管理システム350は、中継および/または宛先アドレスとしての役割をするように構成され得る。したがって、例えば、ネットワークデバイス205のセットは、各々が接続管理システム350を宛先として識別する通信を送信し得る。接続管理システム350は、各通信を受信し得、端末デバイスのセットを(例えば、各端末デバイスについてのメトリックを生成するために)同時にモニタリングし得る。モニタリングおよび規則に基づいて、接続管理システム350は、各通信の中継先であり得る端末デバイス215を識別し得る。実施形態に応じて、端末デバイスの通信は、さらなる中継のために(例えば、接続管理システム350の)一定の宛先に同様に誘導されてもよいし、または端末デバイスは、対応するネットワークデバイスと直接通信し始めてもよい。これらの実施形態は、効率的なルーティングおよび徹底した通信のモニタリングを円滑にすることができる。
【0041】
[0053] 図3Cに図示される実施形態は、図3Bのものと同様である。しかしながら、いくつかの実施形態では、接続管理システム350は、イントラネットワークコンポーネント(例えば、端末デバイス、イントラネットワーク接続、またはその他)に直接接続される。
【0042】
[0054] 図3A図3Cの多くの変形例が企図されることが理解されよう。例えば、接続管理システム350は、接続管理システム350(またはその一部)に対応するアプリケーションが、接続コンポーネント(例えば、インターネットワーク接続コンポーネント245またはイントラネットワーク接続コンポーネント255)にインストールされるように、該コンポーネントに関連付けられてもよい。アプリケーションは、例えば、独立して働いてもよいし、または(例えば、1つまたは複数の他のコンポーネント、ネットワークデバイス、もしくはリモートサーバ上で実行される)1つまたは複数の同様または相補的なアプリケーションと通信することによって働いてもよい。
【0043】
[0055] 図4は、接続コンポーネントの動作のプロトコルスタックマッピング400の表現を示す。より具体的には、図4は、様々な接続コンポーネントに対応する開放型システム間相互接続(OSI:Open Systems Interaction)モデルにおける動作の層を識別する。
【0044】
[0056] OSIモデルは、複数の論理層402~414を含み得る。これらの層は、層402~412の各々が上位レベルをサービスし、層404~414が下位層によって各々サービスされるように、順序付けられたスタックで配置されている。OSIモデルは、物理層402を含む。物理層402は、パラメータの物理的通信(例えば、電気的、光学的、または電磁的)を定義し得る。物理層402はまた、接続を確立および閉じるためのプロトコルなど、接続管理プロトコルも定義する。物理層402はさらに、フロー制御プロトコルおよび送信モードを定義し得る。
【0045】
[0057] リンク層404は、ノード間通信を管理し得る。リンク層404は、エラー(例えば、物理層402における送信エラー)を検出および訂正し、アクセス許可を管理し得る。リンク層404は、媒体アクセス制御(MAC)層および論理リンク制御(LLC)層を含み得る。
【0046】
[0058] ネットワーク層406は、(例えば、データグラムとして)同じネットワーク内のノードにわたる(例えば、可変長の)データの転送を調整し得る。ネットワーク層406は、論理ネットワークアドレスを物理マシンアドレスに変換し得る。
【0047】
[0059] トランスポート層408は、送受信品質を管理し得る。トランスポート層408は、送信制御プロトコル(TCP)などの、データを転送するためのプロトコルを提供し得る。トランスポート層408は、送信用のデータパケットのセグメント化/非セグメント化を実行し得、層402~406において発生する送信エラーを検出および考慮し得る。セッション層410は、ローカルアプリケーションとリモートアプリケーションとの間の接続を開始、維持、および終了し得る。セッションは、リモートプロシージャインタラクションの一部として使用され得る。プレゼンテーション層412は、アプリケーション層またはネットワーク層によって受け付けられることが知られているデータタイプに基づいて、データを暗号化、復号、およびフォーマットし得る。
【0048】
[0060] アプリケーション層414は、通信を制御または管理するソフトウェアアプリケーションとインタラクトし得る。そのようなアプリケーションを介して、アプリケーション層414は、(例えば)宛先、ローカルリソースの状態もしくは利用可能性、および/または通信のコンテンツもしくはフォーマッティングを識別し得る。様々な層402~414が、利用可能かつ適用可能な他の機能を実行することができる。
【0049】
[0061] イントラネットワーク接続コンポーネント422、424は、物理層402およびリンク層404において動作することが示されている。より具体的には、通信の受信および送信に関して動作を制御することができるように、ハブが物理層で動作し得る。ハブには、通信をアドレス指定するまたはデータをフィルタリングする能力がないので、上位レベルで動作する能力をほとんどまたは全く持っていない。一方、スイッチは、アドレス(例えば、MACアドレス)に基づいて通信フレームをフィルタリングすることが可能であるので、リンク層404で動作し得る。
【0050】
[0062] 一方、インターネットワーク接続コンポーネント426、428は、上位レベル(例えば、層406~414)で動作することが示されている。例えば、ルータは、アドレス(例えば、IPアドレス)に基づいて通信データパケットをフィルタリングし得る。ルータは、パケットを適切なネットワークに誘導するように、アドレスに基づいて特定のポートにパケットを転送し得る。ゲートウェイは、ネットワーク層およびそれより上位で動作し、同様のフィルタリングおよび誘導、ならびに(例えば、プロトコルまたはアーキテクチャにわたる)さらなるデータの変換を実行し得る。
【0051】
[0063] 接続管理システム450は、様々な実施形態において、様々な層のうちの1つ、複数、すべて、または任意のものとインタラクトし、および/またはその上で動作し得る。例えば、接続管理システム450は、ハブがどの端末デバイスと通信するかを動的に調整するようにハブとインタラクトし得る。別の例として、接続管理システム450は、コンポーネントが宛先(例えば、MAC、論理、または物理)アドレスとしてどの端末デバイスを選択するかに影響を及ぼすように、ブリッジ、スイッチ、ルータ、またはゲートウェイと通信し得る。さらなる例として、接続管理システム450は、トランスポート層408上のデータパケットのセグメント化、セッション層410上のセッション持続時間、および/またはプレゼンテーション層412上の暗号化ならびに/もしくは圧縮をモニタリング、制御、または指示し得る。いくつかの実施形態では、接続管理システム450は、特定の層で動作する機器(例えば、リンク層404で動作するスイッチ)と通信を交換すること(例えば、それにコマンドを送ること)によって、(例えば、ネットワークデバイスと端末デバイスとの間の)既存の通信を特定の方法でルーティングまたは修正することによって、および/または、既存の通信に基づいて特定の情報(例えば、新しい宛先アドレス)を含む新しい通信を生成することによって、様々な層とインタラクトし得る。したがって、接続管理システム450は、様々なデバイスとのインタラクションを介して、および/または様々なプロトコルスタック層での動作に影響を及ぼすことを介して、通信ルーティングおよびチャネル確立(または、維持もしくは終了)に影響を及ぼし得る。
【0052】
[0064] 図5は、一実施形態によるマルチデバイス通信交換システム500を表す。システム500は、様々なタイプの通信チャネル上で様々なタイプの端末デバイスと通信するように構成されたネットワークデバイス505を含む。
【0053】
[0065] 図示される例では、ネットワークデバイス505は、セルラネットワーク上で(例えば、基地局510を介して)通信を送信し得る。通信は、動作ネットワーク515にルーティングされ得る。動作ネットワーク515は、通信を受信し、どの端末デバイスが通信に応答すべきかを識別する接続管理システム520を含み得る。そのような決定は、(例えば、コンテンツ分析またはクライアントを示すユーザ入力に基づいて)その通信が関係するクライアントを識別することと、クライアントに関連付けられた1つまたは複数の端末デバイスの各々についての1つまたは複数のメトリックを決定することとに依存し得る。例えば、図5では、端末デバイス530a~530cの各クラスタは、異なるクライアントに対応し得る。端末デバイスは、地理的にコロケートされていてもよいし、または分散していてもよい。メトリックは、記憶または学習されたデータおよび/またはリアルタイムのモニタリングに基づいて(例えば、利用可能性に基づいて)決定され得る。
【0054】
[0066] 接続管理システム520は、1つまたは複数のルータ525または他のインターネットワークもしくはイントラネットワーク接続コンポーネントを介して、様々な端末デバイスと通信し得る。接続管理システム520は、1つまたは複数のデータストアにおいて、通信、端末デバイスの動作、クライアント規則、および/またはユーザに関連付けられたアクション(例えば、オンラインアクティビティ)からの、またはそれらに関係するデータを収集、分析、および/または記憶し得る。このようなデータは、通信ルーティングに影響を及ぼし得る。
【0055】
[0067] 特に、通信ルーティングおよび/または処理に影響を及ぼすために、他の様々なデバイスをさらに使用することができる。例えば、図示される例では、接続管理システム520はまた、ウェブサーバ540にも接続されている。したがって、接続管理システム520は、例えば、技術的なアイテムの詳細など、関心のあるデータを検索し得る。
【0056】
[0068] ネットワークデバイス505もまた、ウェブサーバ(例えば、ウェブサーバ545を含む)に接続され得る。いくつかの例では、そのようなサーバとの通信には、接続管理システム520との通信交換を開始するための初期オプションが提供される。例えば、ネットワークデバイス505は、特定のウェブページを訪問している間に、通信機会が利用可能であることを検出し得、そのようなオプションが提示され得る。
【0057】
[0069] また通信システム500の1つまたは複数の要素が、ソーシャルネットワーキングサーバ550に接続され得る。ソーシャルネットワーキングサーバ550は、様々なユーザデバイスから受信したデータを集約し得る。したがって、例えば、接続管理システム520は、所与のユーザまたはユーザのクラスの一般的な(またはユーザ固有の)挙動を推定することができ得る。
【0058】
[0070] 図6は、接続管理システム600の一実施形態のブロック図を示す。メッセージ受信機インターフェース605が、メッセージを受信し得る。いくつかの例では、メッセージは、例えば、ネットワークデバイスまたは端末デバイスなどの、(例えば、接続管理システム600とは別個に、または同じハウジング内に収容された)ソースデバイスによって送信される通信の一部として受信され得る。いくつかの例では、通信は、一連の通信または通信交換の一部であり得、これは、2つのデバイス(例えば、ネットワークデバイスおよび端末デバイス)間でルーティングされる一連のメッセージまたはメッセージ交換を含み得る。このメッセージまたは通信交換は、デバイス間のインタラクションの一部であり得、および/またはそれを定義し得る。通信チャネルまたは動作チャネルは、デバイス間のルーティングおよび通信交換を円滑にするために使用される1つまたは複数のプロトコル(例えば、ルーティングプロトコル、タスク割当てプロトコル、および/またはアドレス指定プロトコル)を含み得る。
【0059】
[0071] いくつかの例では、メッセージは、ローカルまたはリモートユーザインターフェースにおいて受信した入力に基づいて生成されたメッセージを含み得る。例えば、メッセージは、ボタンもしくはキーの押下または記録された音声信号に基づいて生成されたメッセージを含み得る。1つの例では、メッセージは、ネットワークデバイスが特定のアプリページまたはウェブページを提示していること、または特定の入力コマンド(例えば、キーシーケンス)を提供したことを検出した際に生成されるものなど、自動生成されたメッセージを含む。メッセージは、通信交換を開始するためのものなど、命令または要求を含み得る。
【0060】
[0072] いくつかの例では、メッセージは、クライアントの識別子を含み得るか、またはそれに関連付けられ得る。例えば、メッセージは、クライアント(またはクライアントに関連付けられたデバイス)を明示的に識別し得、メッセージは、クライアントに関連付けられたウェブページまたはアプリページを含み得るかもしくはそれに関連付けられ得、メッセージは、クライアントに関連付けられた宛先アドレスを含み得るかもしくはそれに関連付けられ得、または、メッセージは、クライアントに関連付けられたアイテム(例えば、製品)またはサービスの識別を含み得るかもしくはそれに関連付けられ得る。例えば、ネットワークデバイスは、特定のクライアントのアプリページを提示し得、これは、エージェントに通信を送信するオプションを提供し得る。メッセージに対応するユーザ入力を受信すると、メッセージと特定のクライアントの識別子とを含むように通信が生成され得る。
【0061】
[0073] 処理エンジン610は、受信した通信および/またはメッセージを処理し得る。処理は、例えば、1つまたは複数の特定のデータ要素(例えば、メッセージ、クライアント識別子、ネットワークデバイス識別子、アカウント識別子など)を抽出することを含み得る。処理は、フォーマットまたは通信タイプを(例えば、特定のデバイスタイプ、オペレーティングシステム、通信チャネルタイプ、プロトコルおよび/またはネットワークと互換性があるように)変換することを含み得る。
【0062】
[0074] メッセージ評価エンジン615は、(例えば、抽出または受信した)メッセージを評価し得る。評価は、例えば、メッセージについての1つまたは複数のカテゴリまたはタグを識別することを含み得る。カテゴリまたはタグのタイプの例としては、(例えば)トピック、センチメント、複雑さ、および緊急性を含み得る。メッセージのカテゴリ化とタグ付けの違いは、カテゴリは(例えば、カテゴリオプションの既定のセットにしたがって)限定され得るが、タグはオープンであり得るということであり得る。トピックは、例えば、技術的問題、使用質問、または要求を含み得る。カテゴリまたはタグは、例えば、(例えば、キーワード、文構造、反復語、句読点文字および/または非冠詞語を識別することによる)メッセージのセマンティック解析、(例えば、選択された1つまたは複数のカテゴリを有する)ユーザ入力、および/またはメッセージに関連付けられた統計値(例えば、タイピング速度および/または応答レイテンシ)に基づいて決定され得る。
【0063】
[0075] いくつかの例では、メッセージ評価エンジン615は、メッセージについてのメトリックを決定し得る。メトリックは、例えば、文字数、単語数、大文字数、すべて大文字の単語数、または特定の文字もしくは句読点(例えば、感嘆符、疑問符、および/またはピリオド)のインスタンスの数を含み得る。メトリックは、例えば、感嘆符(または疑問符)で終わる文の割合、すべて大文字の単語の割合などの比率を含み得る。
【0064】
[0076] メッセージ評価エンジン615は、メッセージ、メッセージメトリック、および/またはメッセージ統計値をメッセージデータストア620に記憶し得る。各メッセージはまた、対応するソースデバイス、宛先デバイス、ネットワークデバイス、端末デバイス、クライアント、1つまたは複数のカテゴリ、1つまたは複数のステージ、および/またはメッセージに関連付けられた統計値を識別するデータなど、他のデータ(例えば、メタデータ)に関連付けて記憶され得る。接続管理システム600の様々なコンポーネント(例えば、メッセージ評価エンジン615および/またはインタラクション管理エンジン625)は、クエリ応答メッセージ、メッセージメトリック、および/またはメッセージ統計値を検索するために、メッセージデータストア620をクエリし得る。
【0065】
[0077] インタラクション管理エンジン625は、通信をどのデバイスにルーティングすべきかと、受信デバイスおよび送信デバイスがどのように通信すべきかを決定し得る。これらの決定の各々は、例えば、特定のネットワークデバイス(または特定のユーザに関連付けられた任意のネットワークデバイス)が、端末デバイスのセットにおける端末デバイス(例えば、接続管理システム600に関連付けられた任意の端末デバイス、または1つまたは複数の特定のクライアントに関連付けられた任意の端末デバイス)と以前に通信しことがあるかどうかに依存し得る。
【0066】
[0078] いくつかの例では、ネットワークデバイス(または、同じユーザもしくはプロファイルに関連付けられた他のネットワークデバイス)が所与の端末デバイスと以前に通信したことがあるとき、通信ルーティングは、一般に、同じ端末デバイスのほうにバイアスされ得る。ルーティングに影響し得る他の要因は、例えば、端末デバイス(または対応するエージェント)が利用可能であるかどうか、および/または端末デバイスの予測応答レイテンシを含み得る。このような要因は、絶対的に、または他の端末デバイスに対応する同様のメトリックに対して相対的に考慮され得る。再ルーティング規則(例えば、クライアント固有の規則または一般規則)が、エージェントの一貫性を断念するかどうかを決定するために、そのような要因をどのように評価し、重み付けすべきかを示し得る。
【0067】
[0079] ネットワークデバイス(または同じユーザもしくはアカウントに関連付けられた他のネットワークデバイス)が所与の端末デバイスと以前に通信したことがないとき、端末デバイスの選択は、例えば、様々なエージェントの知識ベースが通信トピックに対応する程度、所与の時間でのおよび/またはチャネルタイプ上での様々なエージェントの利用可能性、(例えば、クライアントに関連付けられた)端末デバイスのタイプおよび/または能力などの要因に基づいて実行され得る。1つの例では、規則は、これらのような1つまたは複数の要因に対するサブパラメータと、各パラメータに割り当てるべき重みとをどのように決定すべきかを識別し得る。重み付けされたサブパラメータを組み合わせる(例えば、合計する)ことによって、各エージェントについてのパラメータが決定され得る。次いで、端末デバイスのパラメータを比較することによって、端末デバイス選択を行うことができる。
【0068】
[0080] デバイスがどのように通信すべきかの決定に関して、インタラクション管理エンジン625は、(例えば)端末デバイスが(例えば)SMSメッセージ、音声通話、ビデオ通信等を介して通信に応答すべきかどうかを決定し得る。通信タイプは、例えば、(例えば、クライアントまたはユーザによって少なくとも部分的に定義される)通信タイプ優先順位リスト、(例えば、一貫性を促進するために)ネットワークデバイスから以前に受信した通信のタイプ、受信したメッセージの複雑さ、ネットワークデバイスの能力、および/または1つまたは複数の端末デバイスの利用可能性に基づいて選択され得る。明らかに、いくつかの通信タイプは、(例えば、高速メッセージ応答が予想される)リアルタイム通信をもたらすが、その他の通信タイプは、非同期通信(例えば、メッセージ間の遅延(例えば、数分または数時間)が許容可能である)をもたらし得る。
【0069】
[0081] さらに、インタラクション管理エンジン625は、2つのデバイス間の連続チャネルを確立、使用、または終了するべきかどうかを決定し得る。連続チャネルは、ネットワークデバイスから指定された端末デバイスへの将来の通信のルーティングを円滑にするような構造にされ得る。このバイアスは、一連のメッセージ全体にわたっても持続し得る。いくつかの例では、(例えば、エージェントを識別する)連続チャネルの表現が、ネットワークデバイス上で提示されるべき提示に含まれ得る。このようにして、ユーザは、効率を高めるために通信が一貫してルーティングされることを理解し得る。
【0070】
[0082] 1つの例では、パラメータが、所与のネットワークデバイスおよび端末デバイスに対応する接続パラメータを決定するために、本明細書で説明される1つまたは複数の要因と、(例えば、1つまたは複数の要因の各々についての重みを含む)規則とを使用して生成され得る。パラメータは、全体的なマッチまたは所与の通信もしくは一連の通信に固有のマッチに関係し得る。したがって、例えば、パラメータは、所与の端末デバイスがネットワークデバイス通信に応答するのに好適であると予測される程度を反映し得る。いくつかの例では、パラメータ分析が、所与の通信のルーティング先である端末デバイスの各々を識別するため、および接続チャネルを確立、使用、または終了すべきかどうかを識別するために使用され得る。パラメータ分析がルーティング判定とチャネル判定の両方に対処するために使用されるとき、各判定に関連するパラメータは、同じ、同様、または異なる方法で決定され得る。
【0071】
[0083] したがって、例えば、パラメータが、長期マッチの強度を予測するためのものであるか、それとも特定のメッセージクエリに応答するためのものであるかに応じて、異なる要因が考慮され得ることが理解されよう。例えば、前者の場合では、全体的なスケジュールおよび時間帯の考慮が重要であり得るが、後者の場合には、即時の利用可能性がより高く重み付けされ得る。1つのパラメータが、単一のネットワークデバイス/端末デバイスの組合せに対して決定されてもよいし、または各々が所与のネットワークデバイスと異なる端末デバイスとの間のマッチを特徴付ける複数のパラメータが決定されてもよい。
【0072】
[0084] 例えば、クライアントに関連付けられた3つの端末デバイスのセットが、通信ルーティングの可能性について評価され得る。特定の通信についてのマッチに関連するパラメータが、各端末デバイスについて生成され得る。最初の2つの端末デバイスの各々は、通信を送信したネットワークデバイスと以前に通信したことがあり得る。ネットワークデバイスからの入力が、第1のデバイスとの通信(単数または複数)でのインタラクションに関連付けられた正のフィードバックを示し得る。したがって、第1、第2、および第3のデバイスについての(規則にしたがって計算された)過去のインタラクトサブパラメータは、それぞれ、10、5、および0であり得る(負のフィードバック入力は、負のサブパラメータをもたらし得る)。第3の端末デバイスのみが利用可能であることが決定され得る。第2の端末デバイスは、15分以内に応答のために利用可能になるが、第1の端末デバイスは、次の日まで応答のために利用可能にならないことが予測され得る。したがって、第1、第2、および第3のデバイスについての高速応答サブパラメータは、1、3、および10であり得る。最後に、(端末デバイスに関連付けられた)エージェントが通信におけるトピックについて精通している程度が推定され得る。第3の端末デバイスに関連付けられたエージェントが、他の2つのデバイスに関連付けられたエージェントよりも精通していることが決定され得、その結果、サブパラメータは3、4、および9になる。この例では、規則は、重み付けまたは正規化パラメータを含まず(ただし、他の場合では、規則が含む場合もある)、その結果、パラメータは14、11、および19になる。したがって、規則は、最も高いパラメータを有するデバイス、すなわち第3の端末デバイスにメッセージをルーティングすべきであることを示し得る。特定の端末デバイスへのルーティングが成功でない場合、そのメッセージは、次に高いパラメータを有するデバイスにルーティングされ得、以下同様に行われる。
【0073】
[0085] パラメータは、1つまたは複数の絶対閾値または相対閾値と比較され得る。例えば、通信のルーティング先であり得る端末デバイスを選択するための高いパラメータを識別するために、端末デバイスのセットについてのパラメータが互いに比較され得る。別の例として、端末デバイスとの連続チャネルを確立すべきかどうかを決定するために、パラメータ(例えば、高いパラメータ)が、1つまたは複数の絶対閾値と比較され得る。連続チャネルを確立するための全体的な閾値は、所与の一連のメッセージにおいて通信を一貫してルーティングするための閾値よりも高くてもよい(ただし、そうなる必要はない)。全体的な閾値と、通信を一貫してルーティングするかどうかを決定するための閾値との間のこの差は、チャネルの拡張された有用性を仮定すると、連続チャネルのコンテキストでは、強いマッチが重要であるからであり得る。いくつかの実施形態では、連続チャネルを使用するための全体的な閾値は、連続チャネルを確立するため、および/または所与の一連のメッセージにおいて通信を一貫してルーティングするための閾値よりも低くてもよい(ただし、そうなる必要はない)。
【0074】
[0086] インタラクション管理エンジン625は、様々なコンテキストにおいて、アカウントエンジン630とインタラクトし得る。例えば、アカウントエンジン630は、デバイスに対応するアカウントを識別するために、アカウントデータストア635内のネットワークデバイスまたは端末デバイスの識別子をルックアップし得る。さらに、アカウントエンジン630は、以前の通信交換についてのデータ(例えば、回数、関与した他のデバイス(単数または複数)、チャネルタイプ、解決ステージ、トピック(単数または複数)および/または関連付けられたクライアント識別子)、接続チャネルについてのデータ(例えば、1つまたは複数のクライアントの各々について、何らかのチャネルが存在するかどうか、各チャネルに関連付けられた端末デバイス、確立時間、使用頻度、最終使用日、任意のチャネル制約および/またはサポートされる通信のタイプを示す)、ユーザまたはエージェントの選好または制約についてのデータ(例えば、端末デバイスの選択、応答レイテンシ、端末デバイスの一貫性、エージェントの専門知識、および/または通信タイプの選好もしくは制約に関連する)、および/または、ユーザまたはエージェントの特性についてのデータ(例えば、年齢、使用または選好の言語(単数または複数)、地理的位置、関心など)を維持し得る。
【0075】
[0087] さらに、インタラクション管理エンジン625は、現在のチャネルデータを反映するようにアカウントデータストア635を更新することができるように、アカウントエンジン630に様々な接続チャネルアクションを知らせ得る。例えば、チャネルを確立すると、インタラクション管理エンジン625は、アカウントエンジン630に確立を通知し、ネットワークデバイス、端末デバイス、アカウント、およびクライアントのうちの1つまたは複数を識別し得る。その後(いくつかの例では)、アカウントエンジン630は、利用中のエージェントの一貫性をユーザが認識することができるように、チャネルの存在をユーザに通知し得る。
【0076】
[0088] インタラクション管理エンジン625は、クライアントマッピングエンジン640とさらにインタラクトし得、このクライアントマッピングエンジン640は、通信を1つまたは複数のクライアント(および/または関連付けられたブランド)にマッピングし得る。いくつかの例では、ネットワークデバイス自体から受信される通信が、クライアントに対応する識別子(例えば、クライアント、ウェブページ、またはアプリページの識別子)を含む。識別子は、(例えば、クライアントマッピングエンジン640が検出し得る)メッセージの一部として含まれ得るか、またはメッセージ包含通信における他のデータとして含まれ得る。次いで、クライアントマッピングエンジン640は、クライアントおよび/またはクライアントの識別子についての追加のデータを検索するために、クライアントデータストア645内の識別子をルックアップし得る。
【0077】
[0089] いくつかの例では、メッセージは、特にいずれのクライアントにも対応しない場合がある。例えば、メッセージは、一般的なクエリを含み得る。クライアントマッピングエンジン640は、例えば、メッセージに対してセマンティック解析を実行し、1つまたは複数のキーワードを識別し、キーワード(単数または複数)に関連付けられた1つまたは複数のクライアントを識別し得る。いくつかの例では、単一のクライアントが識別される。いくつかの例では、複数のクライアントが識別される。次いで、ユーザが(例えば、関連付けられた端末デバイスを介して)通信すべきクライアントを選択することができるように、各クライアントの識別情報がネットワークデバイスを介して提示され得る。
【0078】
[0090] クライアントデータストア645は、クライアントに関連付けられた1つまたは複数の端末デバイス(および/またはエージェント)の識別情報を含み得る。端末ルーティングエンジン650が、ルーティング決定に影響を及ぼすように、1つ、複数、またはすべてのそのような端末デバイス(および/またはエージェント)の各々に関係するデータを検索または収集し得る。例えば、端末ルーティングエンジン650は、端末データストア655を維持し得、この端末データストア655は、端末デバイスのデバイスタイプ、オペレーティングシステム、通信タイプの能力、インストールされたアプリケーションアクセサリ、地理的位置、および/または識別子(例えば、IPアドレス)などの情報を記憶し得る。一部の情報は、動的に更新され得る。例えば、端末デバイスが利用可能であるかどうかを示す情報は、(例えば)端末デバイスからの通信(例えば、デバイスがスリープ状態にあるか、オフ/オンにされているか、非アクティブ状態/アクティブ状態にあるかどうかを識別するか、または入力が時間期間内に受信されたかどうかを識別する)、通信ルーティング(例えば、端末デバイスが通信交換に関与しているか、またはその一部となるように割り当てられているかどうかを示す)、または通信交換が終了または開始したことを示す、ネットワークデバイスまたは端末デバイスからの通信に基づいて、動的に更新され得る。
【0079】
[0091] 様々なコンテキストでは、1つまたは複数の通信交換に従事していることは、必ずしも端末デバイスが別の通信交換に従事するために利用可能でないことを示すとは限らないことが理解されよう。通信タイプ(例えば、メッセージ)、クライアントにより識別されたもしくはユーザにより識別された目標応答時間、および/または(例えば、一般的な、またはユーザに関する)システム負荷などの様々な要因が、端末デバイスがいくつの交換に関与し得るかに影響を及ぼし得る。
【0080】
[0092] 通信交換または接続チャネルに関与すべき端末デバイスをインタラクション管理エンジン625が識別したとき、インタラクション管理エンジン625は、端末ルーティングエンジン650に通知し得、この端末ルーティングエンジン650は、宛先(例えば、IP)アドレス、デバイスタイプ、プロトコル等のような、端末デバイスについての任意の関連データを、端末データストア655から検索し得る。次いで(いくつかの例では)、処理エンジン610が、例えば、特定のフォーマットを有し、特定のプロトコルに準拠するように、メッセージ包含通信を修正し得るか、または(メッセージを含む)新しい通信を生成し得る。いくつかの例では、新しいまたは修正されたメッセージは、ネットワークデバイスに対応するアカウントデータ、メッセージクロニクル、および/またはクライアントデータなどの、追加のデータを含み得る。
【0081】
[0093] 次いで、メッセージ送信機インターフェース660が、通信を端末デバイスに送信し得る。送信は、例えば、別個のハウジングに収容されたデバイスへの有線または無線送信を含み得る。端末デバイスは、接続管理システム600と同じまたは異なるネットワーク(例えば、ローカルエリアネットワーク)内の端末デバイスを含み得る。したがって、端末デバイスに通信を送信することは、インターネットワークまたはイントラネットワーク接続コンポーネントに通信を送信することを含み得る。
【0082】
[0094] ネットワークデバイス(例えば、ユーザが操作する)との通信セッション中にボットと端末デバイス(例えば、ライブエージェントが操作する)とを動的に切り替えるためのシステムおよび方法が提供される。いくつかの実装形態では、ボットは、ネットワークデバイスと自律的に通信するように構成され得る。さらに、ボットは、特定の能力のために構成され得る。能力の例としては、データベースレコードを更新すること、ユーザに更新を提供すること、ユーザについての追加のデータをエージェントに提供すること、ユーザのインテントを決定し、インテントに基づいてユーザを宛先システムにルーティングすること、ユーザと通信しているエージェントに対する応答を予測または提案すること、1つまたは複数の追加のボットまたはエージェントを含むように通信セッションを段階的に拡大させること、および他の好適な能力を含み得る。いくつかの実装形態では、ボットが通信セッション中に(例えば、チャット可能インターフェースを使用して)ネットワークデバイス(例えば、ユーザが操作する)と通信している間に、通信サーバは、ボットを端末デバイスと入れ替えることを自動的かつ動的に決定し得る。例えば、ボットは、ある特定のタスク(例えば、ユーザに関連付けられたデータベースレコードの更新)についてユーザと通信し得るが、端末デバイスは、より難しいタスク(例えば、技術的問題を解決するために通信チャネルを使用して通信すること)についてユーザと通信し得る。
【0083】
[0095] いくつかの実装形態では、通信セッション中にボットと端末デバイスとを切り替えるべきかどうかの決定は、通信セッションにおけるメッセージの1つまたは複数の特性の分析に基づき得る。さらに、メッセージ、会話、エンティティ、エージェントなどのセンチメントを表す動的センチメントパラメータが生成され得る。例えば、ユーザがボットに不満を感じていることを動的センチメントパラメータが示す場合、システムは、ライブエージェントがユーザと通信することができるように、ボットを端末デバイスと自動的に入れ替え得る。あらゆる目的のために、その開示全体が参照により本明細書に援用される、2016年6月2日に出願された米国特許出願第15/171,525号を参照されたい。いくつかの例では、ボットと端末デバイスとを切り替えるべきかどうかの決定は、ユーザからのプロンプトなしで実行され得る。決定は、通信セッション(例えば、チャット)における現在のメッセージの特性、以前の通信セッションにおいてユーザによって送信された以前のメッセージの特性、会話における複数のメッセージにわたる特性(例えば、センチメント)の軌跡、またはユーザに関連付けられた追加の情報(例えば、プロファイル情報、選好情報、およびユーザに関連付けられた他の好適な情報)を含む、任意の数の要因に基づいて、通信サーバにおいて自動的に実行され得る。
【0084】
[0096] 図7は、通信セッション中にボットと端末デバイスとを動的に切り替えるためのネットワーク環境のブロック図を示す。いくつかの実装形態では、ネットワーク環境700は、ネットワークデバイス705、通信サーバ710、端末デバイス715、およびボット720を含み得る。通信サーバ710は、少なくとも1つのストレージデバイスを有する1つまたは複数のプロセッサを備えたサーバであり得、本明細書で説明する方法および技法を実行するように構成され得る。例えば、通信サーバ710は、ネットワークデバイス(例えば、ユーザが操作する)と端末デバイス(例えば、エージェントが操作する)との間の通信セッションを管理し得る。通信サーバ710は、ネットワークデバイス705および端末デバイス715が通信セッション中に互いに通信することができるように、ネットワークデバイス705と端末デバイス715との間に通信チャネルを確立し得る。通信セッションは、ネットワークデバイス705と端末デバイス715との間での1つまたは複数のメッセージの交換を円滑にすることができる。本開示は、通信セッション中のメッセージの交換に限定されるものではない。他の形態の通信、例えば、ビデオ通信(例えば、ビデオフィード)およびオーディオ通信(例えば、ボイスオーバIP接続)が通信セッションによって円滑にされ得る。
【0085】
[0097] いくつかの実装形態では、通信サーバ710は、ネットワークデバイス705とボット720との間に通信チャネルを確立し得る。ボット720は、実行されると、ネットワークデバイス705と自律的に通信するように構成されたコードであり得る。例えば、ボット720は、ネットワークデバイス705に関連付けられたユーザとの会話を開始し、および/またはネットワークデバイス705からのメッセージに自動的に応答するためのメッセージを自動的に生成するボットであり得る。さらに、通信サーバ710はプラットフォームに関連付けられ得る。クライアント(例えば、プラットフォームに対する外部システム)は、プラットフォームを使用してそれらの内部通信システム内にボットを配備し得る。いくつかの例では、クライアントは、プラットフォーム内で自らのボットを使用し得、このプラットフォームは、クライアントが、本明細書で説明する方法および技法をそれらの内部通信システム内に実装することを可能にする。
【0086】
[0098] いくつかの実装形態では、ボットは、1つまたは複数のソースによって定義され得る。例えば、データストア730は、通信サーバのクライアントによって定義される(例えば、作成またはコード化される)ボットを表すコードを記憶し得る。例えば、自らのボットを定義したクライアントは、ボットを通信サーバ710にロードし得る。クライアントによって定義されたボットは、クライアントボットデータストア730に記憶され得る。データストア740は、サードパーティシステムによって定義されるボットを表すコードを記憶し得る。例えば、サードパーティシステムは、独立したソフトウェアベンダを含み得る。データストア750は、通信サーバ710に関連付けられたエンティティによって定義されるボットを表すコードを記憶し得る。例えば、エンティティによってコード化されるボットは、ボットが実行されてユーザと自律的に通信することができるように、通信サーバ710にロードされてもよいし、または通信サーバ710によってアクセス可能であってもよい。いくつかの実装形態では、通信サーバ710は、クラウドネットワーク760を使用して、データストア730、データストア740、および/またはデータストア750に記憶されたボットにアクセスし得る。クラウドネットワーク760は、任意のネットワークであり得、インターネット、パーソナルエリアネットワーク、ローカルエリアネットワーク(LAN)、キャンパスエリアネットワーク(CAN)、メトロポリタンエリアネットワーク(MAN)、広域ネットワーク(WAN)、ワイヤレスローカルエリアネットワーク(WLAN)などのオープンネットワーク、イントラネット、エクストラネット、または他のバックボーンなどのプライベートネットワークを含み得る。
【0087】
[0099] 加えて、端末デバイス715は、エージェントによって操作され得る。端末デバイス715は、任意のポータブルデバイス(例えば、モバイル電話、タブレット、ラップトップ)または非ポータブルデバイス(例えば、電子キオスク、デスクトップコンピュータ等)であり得る。いくつかの例では、エージェントは、端末デバイス715で実行されているブラウザを使用してウェブサイトにアクセスし得る。例えば、ウェブサイトは、端末デバイス715のブラウザで実行されているコンソールまたはプラットフォームを含み得る。エージェントは、ブラウザを使用してプラットフォームにログインし得る。エージェントがコンソールまたはコンソールに含まれるウェブアプリケーションへのアクセスを得ることを可能にする前に、1つまたは複数のログイン証明書(例えば、ユーザ名、パスワードなど)が、エージェントのアイデンティティを認証するために使用され得る。コンソールの例としては、1つまたは複数のAPI(アプリケーションプログラミングインターフェース)を含むプラットフォーム、1つまたは複数の機能を含むダッシュボード、通信セッションを確立またはそれに加わることが可能なウェブブラウザ上で(プラグインをダウンロードする必要なしに)実行されるウェブホストアプリケーション、および他の好適なインターフェースを含み得る。さらに、コンソールは、実行することができる1つまたは複数のウェブアプリケーションまたは機能を含み得る。ウェブアプリケーションまたは機能は、ブラウザ、通信サーバ710、ローカルサーバ、リモートサーバ、または他の好適なコンピューティングデバイスにおいて実行され得る。例えば、ウェブアプリケーション、ネイティブアプリケーション、または機能は、エージェントがユーザと通信し、ユーザと1つまたは複数のボットとの間の通信を見ることを可能にし得る。
【0088】
[00100] いくつかの実装形態では、通信サーバ710は、特定の通信セッション中にボット720と端末デバイス715とを動的に切り替えるように構成され得る。例えば、通信サーバ710は、ネットワークデバイス705とボット720との間の通信セッションを円滑にし得る。ボット720は、通信セッション中にネットワークデバイス705と1つまたは複数のメッセージを交換することによって、ネットワークデバイス705と自律的に通信するように構成され得る。通信サーバ710は、ボット720に代わりライブエージェントがネットワークデバイス705と通信することができるように、ボット720を端末デバイス715と入れ替えるべきかどうか(または場合によってはその逆)を動的に決定し得る。いくつかの実装形態では、ネットワークデバイス705または端末デバイス715からのプロンプトなしに切り替えを行い得る。例えば、切り替えは、ネットワークデバイス705に端末デバイスを要求するように促すことなく、ネットワークデバイス705とボット720との間で交換されるメッセージのメッセージパラメータ(例えば、メッセージまたは一連のメッセージのセンチメントを表すスコア)に基づき得る。
【0089】
[00101] いくつかの実装形態では、通信サーバ710は、ボット720とネットワークデバイス705との間で交換されるメッセージの特性に基づいて、ボット720と端末デバイス715とを自動的に切り替えることを決定し得る。いくつかの例では、特性(例えば、メッセージパラメータ)を決定するためにメッセージのテキストを分析することは、メッセージに関連付けられたテキスト属性または非テキスト属性を分析することを含み得る。例えば、通信サーバ710は、ネットワークデバイス705からのメッセージに含まれるテキストの1行または複数行を抽出し得る。通信サーバ710は、テキストの1行または複数行がアンカーを含むかどうかを識別し得る。アンカーの例としては、極性(polarity)(例えば、センチメントまたはインテント)に関連付けられたテキストの文字列を含む(例えば、否定的な極性または不満的極性に対応する単語「苛立たしい」、肯定的な極性に対応する単語「嬉しい」など)。例えば、あるクライアントに対する「紛争(dispute)」という用語は否定的であり得るが、第2のクライアントに対しては中立または肯定的であり得る。いくつかの例では、アンカーは、教師あり機械学習技法を使用して動的に決定され得る。例えば、記憶されたメッセージ内のパターンを見つけるために、記憶されたメッセージに対して1つまたは複数のクラスタリングアルゴリズムを実行し得る。クラスタ化されたメッセージは、アンカーを決定するためにさらにフィルタリングおよび評価され得る。さらに、識別されたアンカーの近くにある1つまたは複数の単語が、増幅語(amplifiers)についてパースされ得る。増幅語の例は、アンカーの極性に関連付けられた強度を増加または減少させる用語、例えば、「本当に」、「大して」、「ちょっと(kind of)」などである。特性は、例えば、タイピングの速度、メッセージ内で使用される特殊文字(例えば、感嘆符、疑問符など)の数、(例えば、キーワード、文構造、反復語、句読点文字、および/または非冠詞語を識別することによる)メッセージのセマンティック解析、(例えば、選択された1つまたは複数のカテゴリを有する)ユーザ入力、および/またはメッセージに関連付けられた統計値(例えば、応答レイテンシ)を含み得る。
【0090】
[00102] 非限定的な例として、メッセージパラメータは、否定的な極性の高い強度を示す数値であり得る(例えば、0~100のスケールで20のメッセージパラメータであり、低いほうの数字が否定的な極性を示し、高いほうの数字が肯定的な極性を示す)。メッセージパラメータを計算するためにアルゴリズムが使用され得る。例えば、アルゴリズムは、教師あり機械学習技法に基づき得る。さらなる例では、用語「ちょっと」がアンカー「苦手」の近くにある場合(例えば、「ちょっと苦手です」という文など)、用語「ちょっと」は、否定的な極性の中間強度を示す増幅用語として識別され得る。この場合、否定的な極性の中間強度の識別に基づいて、メッセージパラメータが生成され得る。非限定的な例として、メッセージパラメータは、否定的な極性の中間強度を示す数値であり得る(例えば、20のメッセージパラメータとは対照的に40のメッセージパラメータ)。いくつかの例では、メッセージパラメータは、どの二次キューが通信を記憶すべきかを決定するために使用され得る。
【0091】
[00103] いくつかの実装形態では、メッセージの特性は、メッセージに関連付けられたセンチメントであり得る。メッセージパラメータは、メッセージのセンチメントを表し得る。例えば、メッセージのセンチメントが喜びの場合、メッセージパラメータは、特定の値または値の範囲であり得るが、メッセージのセンチメントが怒りの場合、メッセージパラメータは、別の値または値の範囲であり得る。ボットと端末デバイスとを切り替えるべきかどうかを決定することは、メッセージパラメータに基づき得、このメッセージパラメータは、通信サーバ710において受信された新しい各メッセージで連続的かつ自動的に更新される。
【0092】
[00104] いくつかの実装形態では、通信サーバ710は、ネットワークデバイス705から受信したメッセージに対する応答を推奨または予測し得る。例えば、通信サーバ710は、ネットワークデバイス705から受信したメッセージを評価し、機械学習モデルを使用してそれら受信したメッセージに対する応答を推奨することができるメッセージ推奨システムを含み得る。メッセージ推奨システムは、エージェントがネットワークデバイス705と通信するのを支援するために、端末デバイス715上に推奨メッセージのセットを表示し得る。
【0093】
[00105] 図8は、複数の通信チャネルにわたってエンドポイントを動的に選択するためのネットワーク環境800を表すブロック図を示す。いくつかの実装形態では、ネットワーク環境800は、ネットワークデバイス805、端末デバイス810、および通信サーバ820を含み得る。ネットワークデバイス805は、ネットワークデバイス705と同様であってよいので、ここでは簡潔さのために説明を省略する。端末デバイス810は、端末デバイス715と同様であってよいので、ここでは簡潔さのために説明を省略する。通信サーバ820は、通信サーバ710と同様であってよいので、ここでは簡潔さのために説明を省略する。
【0094】
[00106] 通信サーバ820は、ネットワークデバイス805と端末デバイス810との間の通信チャネルを確立するか、またはその確立を円滑にし得る。図8に例示するように、通信サーバ820は、通信チャネルC840を確立し得、通信チャネルC840は、ネットワークデバイス805および端末デバイス810が1つまたは複数のメッセージを交換することを可能にする。非限定的な例として、通信チャネルC840は、ウェブサイトのウェブチャット機能であり得、通信チャネルB835は、モバイルデバイス(例えば、スマートフォン)上で実行されるチャットアプリケーションであり得、通信チャネルA830は、エージェントがユーザと通信することを可能にするボイスオーバインターネットプロトコル(VOIP)オーディオチャネルであり得る。
【0095】
[00107] 通信サーバ820は、ネットワークデバイス805と自律的に通信するようにボット825を構成し得る。いくつかの実装形態では、ボット825は、ボット825が通信チャネルC840を使用してネットワークデバイス805と通信することを可能にする1つまたは複数のプロトコルにアクセスして実行し得る。上記の非限定的な例を続けると、ボット825は、ウェブサイトのウェブチャット機能を介して通信するためのプロトコルにアクセスして実行し得る。この例では、プロトコルは、ウェブチャット機能を使用してメッセージを交換するためのウェブチャット機能に固有のコーディング言語を含み得る。プロトコルは、実行されると、端末デバイス810においてエージェントによって入力されたメッセージ(例えば、テキストの文字列または他のコンテンツ)を構造化コンテンツ(例えば、独立したデータフィールドに分離されたコンテンツ)に変換し、構造化コンテンツをウェブサイトのウェブチャット機能の要素にマッピングするコードを含み得る。入力が端末デバイス810において(例えば、エージェントによって)受信されると、ボット825は、構造化コンテンツをウェブチャット機能の要素に変換して、ウェブチャット機能を使用してメッセージを通信することを可能にし得る。
【0096】
[00108] いくつかの実装形態では、ボット825はまた、通信チャネルB835を使用してネットワークデバイス805と通信するように構成され得る。通信チャネルB835は、通信チャネルC840とは異なる通信チャネルであり得る。さらに、通信チャネルB835は、通信チャネルC840のために必要とされる要素とは異なる要素を、通信を円滑にするために必要とし得る。ボット825は、構造化コンテンツを通信チャネルB835の要素に変換するように構成され得る。上述した非限定的な例を続けると、通信チャネルB835は、スマートフォン上で実行されるネイティブアプリケーションのアプリ内チャット機能であり得る。通信チャネルB835を使用する通信を円滑にするために、1つまたは複数の要素が必要とされ得る。例えば、FACEBOOK MESSENGERは、スマートフォン上で実行されるネイティブアプリケーションであり得る。この例では、FACEBOOK MESSENGERの1つまたは複数の要素は、FACEBOOK MESSENGERを使用する通信を円滑にするために必要とされるFACEBOOK MESSENGERに固有のテンプレートであり得る。ボット825が通信チャネルB835を使用して通信することを可能にするプロトコルは、FACEBOOK MESSENGERアプリケーション内で構造化コンテンツをメッセージとして送信するために、構造化コンテンツをFACEBOOK MESSENGERネイティブアプリケーションのテンプレートにマッピングし得る。
【0097】
[00109] いくつかの例では、モバイルアプリケーション(例えば、モバイルネイティブアプリケーション)は、ネットワークデバイスのオペレーティングシステム(例えば、スマートフォン)を使用して実行することができる(モバイルデバイス中または1つまたは複数の外部サーバに記憶された)実行可能コードを含み得る。いくつかの例では、モバイルアプリケーションは、(モバイルデバイスにおいて生成および記憶される)ネイティブユーザインターフェース(UI)コンポーネントからなるが、(例えば、ウェブベースコーディング言語を使用して)解釈言語で書かれたハイブリッドモバイルアプリケーションを含み得る。本開示は、モバイルネイティブアプリケーションまたはハイブリッドアプリケーションに限定されるものではなく、したがって、任意のタイプのモバイルアプリケーションを、本明細書で説明する方法で使用することができる。
【0098】
[00110] いくつかの実装形態では、ボット825はまた、通信チャネルA830を使用してネットワークデバイス805と通信するように構成され得る。通信チャネルA830は、通信チャネルC840および通信チャネルB835とは異なる通信チャネルであり得る。さらに、通信チャネルA830は、通信チャネルC840および通信チャネルB835のために必要とされる要素とは異なる要素を、通信を円滑にするために必要とし得る。ボット825は、構造化コンテンツを通信チャネルA830の要素に変換するように構成され得る。上述した非限定的な例を続けると、通信チャネルA830は、ネットワークデバイス805と端末デバイス810との間のVOIPオーディオ通信リンクであり得る。通信チャネルA830を使用する通信を円滑にするために、1つまたは複数の要素が必要とされ得る。プロトコルは、通信チャネルA830に関連付けられた要素に構造化コンテンツをマッピングすることを含み得る。
【0099】
[00111] いくつかの実装形態では、通信サーバ820は、ボット825が通信チャネルにかかわらずネットワークデバイス805と連続的に通信することができるように、異なる通信チャネル間で通信セッションを動的に、自律的に、および/または自動的に転送するように構成され得る。例えば、ネットワークデバイス805は、第1の通信チャネル845(すなわち、通信チャネルC840)を使用して端末デバイス810と通信していることもある。ネットワークデバイス805は、ネットワークデバイス805を操作しているユーザが、通信セッションのために現在使用中の通信チャネルを変更しようと意図していることを示すメッセージを送信し得る。例えば、ネットワークデバイス805は、第2の通信チャネル850が、端末デバイス810との通信セッションを継続するためのターゲット通信チャネルであることを示し得る。ボット825は、通信チャネルを第1の通信チャネル845から第2の通信チャネル850に変更するべきであるというインジケーションを自動的に検出し得る。例えば、ボット825は、通信チャネルを変更するべきであることを検出するために、通信セッション中に交換されたメッセージを連続的に評価し得る。通信チャネルを変更するべきであるというインジケーションを検出すると、通信サーバは、ネットワークデバイス805に関連付けられたユーザ識別子を識別し得る。例えば、ユーザデータのデータベース815は、様々なユーザについてのユーザ識別子を記憶し得る。ユーザ識別子は、ネットワークデバイスを一意に識別するテキストおよび/または数字の文字列であり得る。任意の所与の時間において、通信サーバ820が、同じユーザ識別子が2つのアクティブな通信チャネルに関連付けられていることを決定した場合、通信サーバ820は、ネットワークデバイスが通信セッションを継続するが通信チャネルを変更するように要求していることを認識し得る。
【0100】
[00112] 通信サーバ820は、異なる通信チャネル間の連続性をサポートするように構成され得る。例えば、ターゲット通信チャネル(例えば、第2の通信チャネル850)はボット825によって自動的に使用されて、ネットワークデバイス805との通信セッションを、第1の通信チャネル845に代わり第2の通信チャネル850を使用して継続し得る。いくつかの実装形態では、ボット825は、第2の通信チャネル850を使用してネットワークデバイス805にメッセージを自動的に送信し得る。ネットワークデバイス805へのメッセージの送信は、通信チャネルの転送が完了したことをネットワークデバイス805に示し得る。いくつかの実装形態では、通信サーバ820は、通信チャネルが第1の通信チャネル845から第2の通信チャネル850に変更されたことを自動的に検出し得る。例えば、通信サーバ820は、ネットワークデバイス805が第1の通信チャネル845を使用してボット825と通信しているときに、ネットワークデバイス805に関連付けられたユーザ識別子を認識し得る。ネットワークデバイス805が(例えば、通信セッション中に通信チャネルを変更する意図を示すことなく)第2の通信チャネル850を使用し始めた場合、通信サーバ820は、ネットワークデバイス805のユーザ識別子が現在2つのアクティブな通信チャネル(例えば、第1の通信チャネル845および第2の通信チャネル850)に関連付けられていることを自動的に検出し得る。通信サーバ820は、第1の通信チャネル845がメッセージの最近の履歴(例えば、ここ5分以内に送信または交換されたメッセージ)に関連付けられており、第2の通信チャネル850がメッセージの最近の履歴(例えば、ここ数分以内)に関連付けられていないことを検出し得る。この結果、通信サーバ820は、ネットワークデバイス805が第1の通信チャネル845から第2の通信チャネル850に通信セッションを転送するように要求していることを決定し得る。通信サーバ820は、ボット825または端末デバイス810が、第1の通信チャネル845を使用するのではなく第2の通信チャネル850を使用してネットワークデバイス805と通信することを可能にするために、第2の通信チャネル850に関連付けられたプロトコルにアクセスし、アクセスされたプロトコルを使用してボット825を実行することによって、転送を実現し得る。
【0101】
[00113] いくつかの実装形態では、1つまたは複数の機械学習技法が、ネットワークデバイス805の通信チャネル使用におけるパターンを識別するために使用され得る。例えば、ネットワークデバイス805による通信チャネルの使用は追跡および記録され得る(かつ履歴データとして記憶され得る)。特定のエンティティ(例えば、ボット、企業、端末デバイス、エージェントなど)と通信するときにネットワークデバイス805がどの通信チャネルを使用する可能性が最も高いかを識別するために、機械学習技法が履歴データに適用され得る。端末デバイス810(またはボット825もしくは任意の他の端末デバイス)からネットワークデバイス805への通信を開始するとき、通信サーバ820は、(機械学習技法の結果に基づいて)ネットワークデバイス805が使用する可能性が最も高いタイプの通信チャネルを確立し得る。ネットワークデバイス805が異なる通信チャネルをより頻繁に使用し始めたら、通信サーバ820は、この変化する傾向を識別し、最も使用されたまたは最も頻繁に使用された通信チャネルを使用して通信セッションを開始し得る。
【0102】
[00114] 図9は、機械学習技法を使用してエンドポイント選択を拡張するためのネットワーク環境900を表すブロック図を示す。ネットワーク環境900は、(ユーザが操作する)ネットワークデバイス905、通信サーバ910、ボット915、および端末デバイス920を含み得る。通信サーバ910は、ネットワークデバイス905および少なくとも1つのボット915および端末デバイス920の通信を可能にする通信チャネルの確立を円滑にし得る。
【0103】
[00115] 通信サーバ910は、インテリジェントルーティングシステム925、メッセージ推奨システム930、およびメッセージデータストア935を含み得る。インテリジェントルーティングシステム925およびメッセージ推奨システム930の各々は、ある特定の動作を実現するための命令を実行する、プロセッサおよびメモリを有する1つまたは複数のコンピューティングデバイスを含み得る。いくつかの実装形態では、インテリジェントルーティングシステム925は、ネットワークデバイスから受信した通信を適切な宛先にインテリジェントにルーティングするように構成されたボットであり得る。インテリジェントルーティングシステム925は、1つまたは複数の機械学習技法または人工知能技法にメッセージをインテリジェントにルーティングさせるコードを実行するように構成された1つまたは複数のプロセッサを含み得る。いくつかの実装形態では、インテリジェントルーティングシステム925は、ネットワークデバイス905から受信したメッセージに関連付けられた宛先を予測するモデルをトレーニングするために、1つまたは複数の機械学習技法を実行し得る。
【0104】
[00116] 非限定的な例として、インテリジェントルーティングシステム925は、通信サーバ910(例えば、ユーザが様々なデバイスにわたって互いに通信することを可能にするように構成されたネイティブアプリケーション)によって確立または円滑にされる通信チャネルを通してネットワークデバイス905からメッセージを受信し得る。インテリジェントルーティングシステム925は、上述した特定の実施形態にしたがって着信メッセージを評価し得る。例えば、インテリジェントルーティングシステム925は、トレーニングされた機械学習モデルを使用して、受信したメッセージに含まれるコンテンツ(例えば、テキスト、オーディオクリップ、画像、エモティコン、または他の好適なコンテンツ)を評価し得る。メッセージのコンテンツを機械学習モデルに入力して、予測された宛先(例えば、特定の端末デバイスまたはボット)を生成し得る。機械学習モデルは、ネットワークデバイス905から受信したフィードバック信号940に基づいて連続的にトレーニングされ得る。いくつかの実装形態では、インテリジェントルーティングシステム925は、予測された宛先の確認応答をネットワークデバイス905に要求し得る。非限定的な例として、インテリジェントルーティングシステム925は、機械学習技法を使用してメッセージを評価し得、評価の結果は、ボット915がメッセージの宛先であるという予測を含み得る。確認するために、インテリジェントルーティングシステム925は、フィードバック信号940を自動的に要求し得る。例えば、フィードバック信号940は、ボット915がメッセージの正しい宛先であるかどうかをネットワークデバイス905が確認応答するための要求(例えば、「テクニカルサポートが正しい宛先ですか?」)を含み得る。ネットワークデバイス905が、ボット915が正しい宛先(例えば、ネットワークデバイス905を操作しているユーザが意図した宛先)であるという確認応答を送信した場合、インテリジェントルーティングシステム925は、受信したメッセージと全く同じまたは類似のコンテンツ(例えば、コンテンツにおける10パーセントの差などの類似性の閾値)を含む将来のメッセージをボット915にルーティングすべきことを予測するように機械学習モデルをトレーニングし得る。しかしながら、ボット915が受信したメッセージの正しいまたは意図された宛先ではなく、端末デバイス920が正しいまたは意図された宛先であったことを示すフィードバック信号940をインテリジェントルーティングシステム925が受信した場合、インテリジェントルーティングシステム925は、受信したメッセージと全く同じまたは類似のコンテンツを含む将来のメッセージを(ボット915ではなく)端末デバイス920にルーティングすべきであると機械学習モデルをトレーニングし得る。いくつかの実装形態では、インテリジェントルーティングシステム925は、将来のメッセージを端末デバイス920にルーティングするように機械学習モデルを直ちに更新またはトレーニングしなくてもよく、むしろ、インテリジェントルーティングシステム925は、受信したメッセージと全く同じまたは類似のコンテンツを有する将来のメッセージをすべて端末デバイス920にルーティングする前に、ボット915への閾値回数の不正確なルーティングを待ってもよい。非限定的な例として、インテリジェントルーティングシステム925は、ネットワークデバイスが、ボット915が正しいまたは意図された宛先でないことを示すフィードバック信号を送信するというインスタンス5つの後に、(ボット915にルーティングすべきと予測した)将来のメッセージを、ボット915ではなく端末デバイス920にルーティングし始めてもよい。
【0105】
[00117] いくつかの実施形態では、インテリジェントルーティングシステム925は、メッセージ中の特定の要求を処理するための受信した入札(bids)に基づいて、所与のメッセージをどこにルーティングすべきかを選択し得る。インテリジェントルーティングシステム925は、異なるサービスにインテントをブロードキャストし、要求の処理に対して誰が入札を希望するかを決定し得る。入札当事者は、要求を成功裏に処理する自信レベルおよび要求の処理を実行する計画で応答し得る。インテリジェントルーティングシステム925は、入札当事者からのすべての応答を評価し、機械学習ポリシーに基づいて、所与のメッセージに対してどの入札当事者を使用すべきかを決定し得る。
【0106】
[00118] メッセージデータストア935は、1つまたは複数のネットワークデバイスから過去に受信したいくつか(例えば、すべてではない)またはすべてのメッセージを記憶し得る。さらに、メッセージデータストア935は、ネットワークデバイスとの以前の通信セッション中に端末デバイスまたはボットによって送信されたいくつかまたはすべてのメッセージも記憶し得る。メッセージデータストア935はまた、通信セッション中にネットワークデバイスによってボットに送信されたいくつかまたはすべてのメッセージも記憶し得る。さらに、メッセージデータストア935は、通信セッション中にボットによってネットワークデバイスに送信されたいくつかまたはすべてのメッセージを記憶し得る。いくつかの実装形態では、メッセージデータストア935は、通信サーバ910で処理された(例えば、送信または受信された)すべてのメッセージのデータベースであり得る。
【0107】
[00119] メッセージ推奨システム930は、メッセージデータストア935に記憶されたメッセージのデータベースを分析し得る。いくつかの実装形態では、メッセージ推奨システム930は、1つまたは複数の機械学習アルゴリズムまたは人工知能アルゴリズムを使用して、メッセージデータストア935に記憶されたメッセージを評価し得る。例えば、メッセージ推奨システム930は、メッセージデータストア935に記憶されたメッセージのデータベースに対して、K平均クラスタリング、平均シフトクラスタリング、DBSCAN(Density-Based Spatial Clustering of Applications with Noise)クラスタリング、混合ガウスモデル(GMM)を使用する期待値最大化(EM)クラスタリング、および他の好適な機械学習アルゴリズムなど、1つまたは複数のクラスタリングアルゴリズムを実行し得る。いくつかの実装形態では、再帰的ニューラルネットワーク(RNN)または畳み込みニューラルネットワーク(CNN)が、エージェントを支援するための応答メッセージを予測するために使用され得る。いくつかの実装形態では、メッセージ推奨システム930は、すべての以前のメッセージを評価して通信セッション中にネットワークデバイスから受信した着信メッセージに対する応答を予測するために、サポートベクターマシン(SVM)、教師あり、半教師あり、アンサンブル技法、または教師なし機械学習技法を使用し得る。例えば、メッセージ推奨システム930は、ネットワークデバイスから受信したメッセージ(またはボットもしくは端末デバイスから通信サーバ910において受信したメッセージ)のコンテンツを評価し、評価の結果をメッセージデータストア935に記憶された以前のメッセージの1つまたは複数のクラスタと比較し得る。クラスタが識別されると、メッセージ推奨システム930は、信頼閾値に基づいて最も関連性の高い応答メッセージを識別し得る。例えば、(例えば、ネットワークデバイス905から通信サーバ910において受信した)着信メッセージが、着信メッセージのコンテンツに基づいて技術的問題に対応することもある。メッセージ推奨システム930は、着信メッセージのコンテンツの評価(例えば、テキスト評価)に基づいて、着信メッセージが技術的問題に対応することを識別し得る。メッセージ推奨システム930は、メッセージデータストア935にアクセスして技術的問題に関連付けられたメッセージのクラスタを識別し得る。メッセージ推奨システム930は、信頼閾値に基づいてメッセージのクラスタ内の1つまたは複数の応答メッセージを選択し得る。非限定的な例として、信頼スコアを生成するために信頼度アルゴリズムが実行され得る。信頼スコアはパーセント値であり得、パーセンテージが低いほど、その応答が着信メッセージに対する良好な予測である可能性が低く、パーセンテージが高いほど、その応答が着信メッセージに対する良好な予測である可能性が高い。最小信頼閾値が、発見された各パターンに関連付けられた確実性または信頼性の尺度として定義され得る。さらに、信頼度アルゴリズムの例としては、アプリオリアルゴリズム、2つのデータセット間の類似性を示す類似性アルゴリズム、および他の好適な信頼度アルゴリズムであり得る。
【0108】
[00120] 図10は、ネットワークデバイスとの通信セッション中にボットと端末デバイスとの間で会話をルーティングするための例示的なプロセスを示す。ステップ1005において、クライアントデバイスに関連付けられた1つまたは複数の変数が受信および追跡され得る。クライアントデバイスは、本明細書でさらに説明するように、クライアントによって操作され得る。1つまたは複数の変数は、例えば、コスト、顧客プロファイル(例えば、一般またはVIPステータス、新規またはリピート顧客)、経験、履歴データ(例えば、過去の会話トランスクリプト、ユーザによる過去の会話に関するデータ、またはユーザと類似性を共有するデータ)、または任意の他の入力を含み得る。そのような変数は、どのアクション可能アイテムを正当とするか、そのようなアクション可能アイテムをどのように実行すべきか、およびアクション可能アイテムを実行するためにどのエンティティを指定するかを決定する際に考慮され得るコンテキストを提供する。例えば、クライアントがコストの削減に関心があると決定することもあり、その結果、できる限り少ないエージェントを使用するべきであり、たとえ顧客満足度が低くなるということであってもプロセスを自動化するように代わりにボット処理を実行するべきである。別のクライアントは、コストについては問題ないが、代わりにカスタマーエクスペリエンスを重視することもある。これらの変数は、メッセージが、異なるアクション可能アイテムに関連して、(端末デバイスを介して)エージェントにルーティングされるか、ボットにルーティングされるか、オートメーションにルーティングされるか、それとも他の受信者デバイスにルーティングされるかと、ならびにルーティングの条件(例えば、通信チャネル)とに影響を及ぼし得る。そのような変数は、会話の全過程を通して継続的に追跡され得る。ユーザが新しい情報を明らかにしたとき、例えば、そのような新しい情報は新しい変数を表すこともあり、次いで、この新しい変数は、後続のルーティング判定を通知するために他の(例えば、履歴)変数と集約され得る。
【0109】
[00121] ステップ1010において、クライアントとの会話がモニタリングされ得る。会話は、エージェントまたはボットによってクライアントのネットワークデバイスに送信またはネットワークデバイスから受信されるメッセージで開始し得る。メッセージは、1つまたは複数のインテントを示す情報を含み得る。いくつかの実施形態では、メッセージは、自然言語、すなわち会話であり得る。例えば、メッセージは、「I want to change my address and pay my bill(住所を変更し、請求額を支払いたい)」というものであり得る。ユーザがヒューマンエージェントと通信しているか、ボットと通信しているか、オートメーション等と通信しているかにかかわらず、またはそのような通信のチャネルにかかわらず、各ユーザメッセージは、継続的にモニタリングされ、追跡され、分析され得る。例えば、会話は、ソーシャルメディアページ上で開始し得るが、次いで、様々なメッセージングアプリケーション、電子メールアプリケーション、電話、または他の通信チャネルにルーティングされ得る。したがって、チャネルまたは媒体の変更にかかわらず、会話中のすべてのメッセージがモニタリングされ、コンテキストにおいて評価され得る。
【0110】
[00122] ステップ1015において、示されたインテントが何であるかを識別するために、会話中の各メッセージがパースされ得る。例えば、メッセージ「I want to change my address and pay my bill」がパースされて、「change_address」というインテントと「pay_bill」というインテントを識別し得る。インテントの各々は、1つまたは複数のポリシーによって定義されたアクション可能アイテムに関連付けられ得る。ルーティングポリシーまたは規則は、エンティティまたはビジネスによって定義され得る。各ルーティング規則は、異なる変数または条件、およびその変数または条件を満たしたときに取るべき1つまたは複数のアクション可能アイテムを指定し得る。例えば、「change_address」というインテントは、更新された住所についてユーザにクエリし、現在のユーザプロファイルを更新するようにプログラムされたボットにユーザがルーティングされるアクション可能アイテムに関連付けられ得る。同様に、「pay_bill」というインテントは、自分の請求額に対する支払いを開始するようにプログラムされたオートメーションにユーザがルーティングされるアクション可能アイテムに関連付けられ得る。
【0111】
[00123] いくつかの実施形態では、ルーティングポリシーは、ステップ1005で追跡される変数に基づいて異なるアクション可能アイテムを指定し得る。例えば、VIP顧客は、ボットまたはオートメーションのいずれにもルーティングされず、優先的にヒューマンエージェントにルーティングされ得る。会話の異なる条件(例えば、カレンダー、地理的位置、履歴ルート、選好、気象等)もまた、異なるルーティング判定をもたらし得る。
【0112】
[00124] ステップ1020において、アクション可能アイテム(単数または複数)を実行するための優先順位付けを決定するために、第1のインテントおよび第2のインテントが分析される。優先順位付けは、各アクション可能アイテムが実行される順序を示し得る。上記の例を続けると、有効に請求額を支払うために住所の情報が必要であり得るので住所変更を最初に完了するべきであることが決定され得る。優先順位付けはまた、アクション可能アイテムを実行するのに最も効率的な順序など、他のデータに基づいても決定され得る。例えば、第1のアクション可能アイテムのほうが実行が短時間である場合、それを最初に実行し得る。
【0113】
[00125] ステップ1025において、会話計画を取得するために、インテント(単数または複数)が機械学習モデルに供給され得る。機械学習モデルは、会話のルーティング先である1つまたは複数のエンドポイントを識別するために、適用可能なルーティング規則と併せて変数およびインテントを評価し得る。したがって、会話計画は、識別されたエンドポイントを含み得、これを優先順位付けに基づいてさらに順序付け得る。例えば、エンドポイントは、第1のインテントのための第1のエンドポイントと、第2のインテントのための第2のエンドポイントとを含み得る。エンドポイントの識別は、会話に関連付けられた異なる変数に基づいて異なり得る。例えば、航空路フライトを変更しようとしているユーザが(時間節約ではなくむしろ)コスト節約を最大にする選好を有し得ることを1つまたは複数の変数が示す場合、ユーザには、コスト節約を最大にするようにフィルタリングされたフライトオプションが提示され得る。1つまたは複数のポリシーが顧客満足度を最大にするべきであることを示す場合、現在のセンチメント(例えば、顧客満足度のレベルまたはその欠如)に関連する変数は、可能な限りヒューマンエージェントへのルーティングに向けて重み付けされ得る。他の変数は、所与のタスクに対する処理速度、ボットおよびエージェントによって実行されるタスクの精度などを含み得る。
【0114】
[00126] ステップ1030において、会話は、優先順位付けによって指定された順序でエンドポイントにルーティングされる。例えば、第1のインテントは、第1のエンドポイントにルーティングされ得る。第1のエンドポイントは、その後、第1のアクション可能アイテム、例えば、ボットによって実行される住所の変更を実行し得る。次いで、ネットワークデバイスは、第1のエンドポイントから第2のエンドポイントに、例えば、ボットから端末デバイスに転送され得、その後、第2のエンドポイントは、第2のアクション可能アイテム、例えば、請求支払いを実行し得る。
【0115】
[00127] 会話は、それぞれの関連付けられたインテントの優先順位付けに基づいて順次ルーティングされ得る。しかしながら、いくつかの実施形態では、高い優先順位を割り当てられ得る新しいインテントが現れることもあり、その結果、会話計画において当初に識別されたものとは異なる、会話に対するルート判定が生じる。したがって、会話は、そのような動的なリアルタイムの評価および判定に基づいて、当初のエンドポイントから新しいエンドポイントへの切り替えを経験し得る。場合によっては、ユーザは、新しいインテントの存在を確認するため、および切り替え判定を行う際に考慮すべきコンテキストまたは変数を取得するために、示された新しいインテントに関してさらにクエリされ得る。
【0116】
[00128] ステップ1035において、新しいインテントが会話によって示されているかどうかが決定され得る。そのような決定は、ユーザにさらなる要望または要求があるかどうかをクエリすることに基づき得る。いくつかの実施形態では、そのような決定は、会話に関連付けられた他の情報によって示され得る。当初に識別されたインテントが変化したと決定された場合も、新しいインテントが識別され得る。新しいインテントが示されたようである場合、本方法はステップ1005に戻り得る。上述したように、変数および会話は継続的にモニタリングされ得る。したがって、ユーザからの異なるメッセージまたは変更された条件は、新しいインテントを示し得る。例えば、単一のアイテム(例えば、テレビ)の購入に関する会話は、そのアイテムには存在しないある特徴(例えば、サラウンドサウンドシステム)への関心を引き出し得る。他の例としては、フライト変更要求を含んでもよく、気象パターンの変化が、ある連絡地点で遅延が発生する可能性が高いことを示し得る。同様に、請求支払い中に、ユーザは、あるコストに困惑を表すこともあり、これは、システムに、コストを下げるためにプロモーションおよびオファーを提示するように促し得る。しかしながら、ステップ1005に戻るに際して、会話中の以前のメッセージに関連するすべてのコンテキスト情報(例えば、変数、インテント)が引き続き考慮され得る。
【0117】
[00129] 新しいインテントが示されない場合、本方法はステップ1040に進むことができ、ここで、会話の結果および成果を機械学習モデルに追加し得る。会話の結果および成果に関するそのようなデータは、分析され、将来のルーティング判定に適用され得る現在のポリシーを改良するために使用され得る。
【0118】
[00130] 図11は、人工知能(AI)によって駆動される会話をオーケストレートするためのシステムが実現され得るネットワーク環境を表すブロック図を示す。ネットワーク環境は、会話型オペレーティングシステム(OS)1110、コンテキストウェアハウス1120、コンシェルジュボット1130、会話オーケストレータ1140、および外部サービス(単数または複数)1150を含み得る。
【0119】
[00131] 会話型OS1110は、会話を分析し、様々な会話機能を実行するための様々な会話モジュールを含み得る。会話型OS1110は、例えば、自然言語理解(NLU)、インテントサービス、コンテキストサービス、センチメント分析、フィードバック収集、ダイアログ管理、サービスプロバイダ発見および割当て、アクション決定、ディスパッチ、ならびに会話型インテリジェンスを実行するように構成されたモジュールを含み得る。したがって、会話型OS1110は、自動化された会話をサポートし、かつヒューマンエージェントとの会話を追跡し得る。分析は、過去の会話からのチャットトランスクリプトに適用され得、現在の会話のリアルタイム可視性および集約分析も提供し得る。異なるエンティティおよびブランドが、顧客またはクライアントとの会話をどのように管理すべきかについての規則を指定し得る。加えて、様々な学習モデルが構築され、エンティティまたはブランドのエージェント(人間またはボット)によって行われる会話に基づいて経時的に改良され得る。
【0120】
[00132] コンテキストウェアハウス1120は、履歴データ、現在のデータ、およびユーザ固有のデータを含む、会話に関連し得る任意のコンテキスト情報を含み得る。そのようなコンテキストデータは、ステップ1005で考慮された変数の1つまたは複数を供給し得る。コンテキストウェアハウス1120はさらに、会話に関するコンテキストデータを取得するために、様々な外部システム1150と通信し得る。会話に関するデータは、会話の全過程を通して集約および考慮され、ならびに継続的にコンテキストウェアハウス1120を更新するために使用され得る。その後、そのようなデータは、分析され、傾向およびパターンを識別するため、ならびに様々な規則およびポリシーを改良するために使用され得る。
【0121】
[00133] コンシェルジュボット1130は、会話における最初のエンドポイントとしての役割をし得る。コンシェルジュボット1130は、例えば、1つまたは複数のインテントを示し得るデータをユーザから引き出すようにプログラムされ得る。その後、会話は、現在のインテント(単数または複数)に基づいて、異なるボットおよび他のタイプのエンドポイント(例えば、ヒューマンエージェント、オートメーション)にルーティングされ得る。
【0122】
[00134] 会話オーケストレータ1140は、図10の方法を実行するために、会話型OS1110、コンテキストウェアハウス1120、コンシェルジュボット1130(および/または他のエンドポイント)、および外部サービス1150とともに動作し得る。特に、会話オーケストレータ1140は、ユーザ、ブランド、および会話の他の条件に合わせて個人化または調整された様式のアクション可能アイテム(単数または複数)を識別するために、進行中の会話、コンテキスト(例えば、変数、条件)を、継続的にモニタリングし、(例えば、ビジネス、ブランド、または他のエンティティに関連付けられた)1つまたは複数のポリシーと突き合わせて分析し得る。そのようなアクション可能アイテムは、ブランドに関連してユーザのインテントに最もよく対処するように、異なるエンドポイント間の切り替え、会話の引き継ぎ等を伴い得るルーティング判定を含み得る。
【0123】
[00135] 図12は、会話のAI駆動型オーケストレーション内の例示的な情報フローを表すブロック図を示す。例示するように、顧客属性およびインテントのインジケーションを含む特定のコンテキストデータを抽出するために、ユーザ(「Tom Dean」)の会話が分析され得る。そのようなコンテキストデータは、コンテキストウェアハウス1120に記憶され得る。加えて、そのようなコンテキストデータは、会話オーケストレータ1140に提供され得、会話オーケストレータ1140は、適用可能なコンテキストデータを、特定の提案されたアクション可能アイテムを指定する1つまたは複数のポリシーにマッチさせる。図12に例示する例におけるアクション可能アイテムは、クレジット発行(billing credit)および個人化された応答をトリガすることを含む。
【0124】
[00136] 図13A図13Cは、AI駆動型システムによってオーケストレートされた例示的な会話を示す。特に、図13Aは、会話中にユーザに提示されたグラフィックユーザインターフェース、および背景データならびにルーティングアクションの図を例示する。図13Aの会話は、ユーザが「こんにちは」とテキストを打ったときに開始する。ユーザの名前を識別するために消費者に関するデータ(例えば、「消費者情報」)が検索され得、その後、ユーザの名前は、ルーティングボットによって、個人化された方法でユーザに応答し、ユーザにインテントデータをさらにクエリするために使用され得る。例示するように、「消費者情報」は、「以前の会話」および様々な異なるユーザ固有のコンテキストデータと含み、このコンテキストデータは、応答を定式化し、会話内で判定を行うために使用され得る。例示するように、ユーザは、「ストームによる遅延」に関して助けてもらいたいという希望を示し得る。背景の「以前の会話」データは、「遅延」および関連する応答を含む過去のメッセージを示し得る。
【0125】
[00137] 図13Bは、異なる会話中にユーザに提示されたグラフィックユーザインターフェース、および背景における関連するものとして識別されたポリシーの図を例示する。例示された会話では、ユーザは「フライトをリスケジュールしたい」と示している。背景分析は、どのポリシーがそのようなインテントに適用可能であるかを識別し得る。ポリシーはさらに、気象データ(例えば、「Weather_Delay」に固有のポリシー)、VIPステータス(例えば、VIPRule)、および会話の他の条件を含むコンテキストデータに基づいて、フィルタリングおよび優先順位付けされ得る。
【0126】
[00138] 図13Cは、会話中にユーザに提示されたグラフィックユーザインターフェース、および各ルーティング判定がユーザのインテントに関連しているかどうかに関するフィードバック分析の図を例示する。例えば、メッセージは、「道順案内」に関係し得、これは「navigation.directions」のインテントを示すものとして識別され得る。会話は、そのようなインテントに基づいてナビゲーションを支援するようにプログラムされたボット(例えば、「navigationBot」)にルーティングされ得る。例示するように、識別されたボットは、識別されたインテントを有すると決定された問い合わせに88%関連しているとされ得る。加えて、その後、ユーザフィードバックが、ルーティング判定が実際にユーザの要望に関連していたかどうかに関してユーザセンチメントおよび満足度を評価するために使用され得る。
【0127】
[00139] 実施形態の完全な理解を提供するために特定の詳細が上記説明で与えられた。しかしながら、これら実施形態を、これらの特定の詳細なしに実施できることが理解される。例えば、これら実施形態を不要な詳細で不明瞭にしないために、回路はブロック図で示すことができる。他の例では、周知の回路、プロセス、アルゴリズム、構造、および技法は、これら実施形態を不明瞭にすることを避けるために、不要な詳細なしで示すことができる。
【0128】
[00140] 上述された技法、ブロック、ステップ、および手段の実現を様々な方法で行うことができる。例えば、これらの技法、ブロック、ステップ、および手段は、ハードウェア、ソフトウェア、またはそれらの組合せで実装され得る。ハードウェア実装の場合、処理ユニットは、1つまたは複数の特定用途向け集積回路(ASIC)、デジタルシグナルプロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、上述の機能を実行するように設計された他の電子ユニット、および/またはそれらの組合せ内で実装され得る。
【0129】
[00141] また、実施形態の一部分は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として図示されるプロセスとして説明することができることに留意されたい。フローチャートは、動作を順次プロセスとして説明し得るが、動作の多くは、並行してまたは同時並行に実行することができる。加えて、動作の順序は並べ換えることができる。プロセスは、その動作が完了したときに終了するが、図面に含まれていない追加のステップを有し得る。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラム等に対応し得る。プロセスが関数に対応するとき、その終了は、関数が呼び出し関数または主関数に戻ることに対応する。
【0130】
[00142] さらに、実施形態は、ハードウェア、ソフトウェア、スクリプト言語、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、および/またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、スクリプト言語、および/またはマイクロコードで実装されるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体などの機械可読媒体に記憶され得る。コードセグメントまたは機械実行可能命令は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、スクリプト、クラス、または命令、データ構造、および/もしくはプログラムステートメントの任意の組合せを表し得る。コードセグメントは、情報、データ、引数、パラメータ、および/またはメモリコンテンツを渡すことおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データ等は、メモリ共有、メッセージパッシング、チケットパッシング、ネットワーク送信等を含む、任意の好適な手段を介して渡され、転送され、または送信され得る。
【0131】
[00143] ファームウェアおよび/またはソフトウェア実装の場合、方法は、本明細書で説明された機能を実行するモジュール(例えば、プロシージャ、関数など)を用いて実装され得る。命令を有形に具現化する任意の機械可読媒体が、本明細書で説明された方法を実現する際に使用され得る。例えば、ソフトウェアコードは、メモリに記憶され得る。メモリは、プロセッサの内部またはプロセッサの外部に実装され得る。本明細書で使用される場合、「メモリ」という用語は、任意のタイプの長期、短期、揮発性、不揮発性、または他の記憶媒体を指し、いかなる特定のタイプのメモリもしくはメモリの数、またはメモリが記憶される媒体のタイプにも限定されるべきでない。
【0132】
[00144] さらに、本明細書で開示されたように、「記憶媒体」、「記憶」、または「メモリ」という用語は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気RAM、コアメモリ、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および/または情報を記憶するための他の機械可読媒体を含む、データを記憶するための1つまたは複数のメモリを表し得る。「機械可読媒体」という用語は、限定はしないが、ポータブルまたは固定記憶デバイス、光記憶デバイス、ワイヤレスチャネル、および/または、命令(単数または複数)および/またはデータを含むまたは搬送する、記憶することが可能な様々な他の記憶媒体を含む。
【0133】
[00145] 本開示の原理は、特定の装置および方法に関連して上述されたが、この説明が、本開示の範囲の限定としてではなく、単に例としてなされたものであることを明確に理解されたい。
以下に、出願当初の特許請求の範囲に記載の事項を、そのまま、付記しておく。
[C1]
クライアントデバイスに関連付けられた1つまたは複数の変数を受信することと、ここにおいて、前記クライアントデバイスは、クライアントによって操作され、
ネットワークデバイスから前記クライアントのメッセージを受信することと、ここにおいて、前記メッセージは、第1のインテントおよび第2のインテントを含み、
前記第1のインテントおよび前記第2のインテントを識別するために前記メッセージをパースすることと、ここにおいて、前記第1のインテントは、第1のアクション可能アイテムに関連付けられ、前記第2のインテントは、第2のアクション可能アイテムに関連付けられており、
前記第1のアクション可能アイテムおよび前記第2のアクション可能アイテムを実行するための優先順位付けを決定するために、前記第1のインテントおよび前記第2のインテントを分析することと、ここにおいて、前記優先順位付けは、前記第1のアクション可能アイテムが最初に実行されるべきであり、前記第2のアクション可能アイテムが2番目に実行されるべきであることを示し、
前記第1のインテントおよび前記第2のインテントを機械学習モデルに供給することと、ここにおいて、前記機械学習モデルは、前記クライアントデバイスに関連付けられた前記1つまたは複数の変数を最適化することによって、前記第1のインテントのための第1のエンドポイントおよび前記第2のインテントのための第2のエンドポイントを識別し、
前記第1のインテントを前記第1のエンドポイントにルーティングすることと、ここにおいて、前記第1のエンドポイントは、その後、前記第1のアクション可能アイテムを実行し、
前記第2のインテントを前記第2のエンドポイントにルーティングすることと、ここにおいて、前記第2のエンドポイントは、その後、前記第2のアクション可能アイテムを実行する、
を備える、コンピュータ実装方法。
[C2]
前記第1のエンドポイントはボットである、C1に記載のコンピュータ実装方法。
[C3]
前記第1のエンドポイントは端末デバイスであり、前記端末デバイスはエージェントによって操作される、C1に記載のコンピュータ実装方法。
[C4]
前記第1のエンドポイントはボットであり、前記第2のエンドポイントは端末デバイスであり、前記端末デバイスはエージェントによって操作される、C1に記載のコンピュータ実装方法。
[C5]
前記メッセージは自然言語である、C1に記載のコンピュータ実装方法。
[C6]
命令を含む、非一時的機械可読記憶媒体において有形に具現化されるコンピュータプログラム製品であって、前記命令は、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
クライアントデバイスに関連付けられた1つまたは複数の変数を受信することと、ここにおいて、前記クライアントデバイスは、クライアントによって操作され、
ネットワークデバイスから前記クライアントのメッセージを受信することと、ここにおいて、前記メッセージは、第1のインテントおよび第2のインテントを含み、
前記第1のインテントおよび前記第2のインテントを識別するために前記メッセージをパースすることと、ここにおいて、前記第1のインテントは、第1のアクション可能アイテムに関連付けられ、前記第2のインテントは、第2のアクション可能アイテムに関連付けられており、
前記第1のアクション可能アイテムおよび前記第2のアクション可能アイテムを実行するための優先順位付けを決定するために、前記第1のインテントおよび前記第2のインテントを分析することと、ここにおいて、前記優先順位付けは、前記第1のアクション可能アイテムが最初に実行されるべきであり、前記第2のアクション可能アイテムが2番目に実行されるべきであることを示し、
前記第1のインテントおよび前記第2のインテントを機械学習モデルに供給することと、ここにおいて、前記機械学習モデルは、前記クライアントデバイスに関連付けられた前記1つまたは複数の変数を最適化することによって、前記第1のインテントのための第1のエンドポイントおよび前記第2のインテントのための第2のエンドポイントを識別し、
前記第1のインテントを前記第1のエンドポイントにルーティングすることと、ここにおいて、前記第1のエンドポイントは、その後、前記第1のアクション可能アイテムを実行し、
前記第2のインテントを前記第2のエンドポイントにルーティングすることと、ここにおいて、前記第2のエンドポイントは、その後、前記第2のアクション可能アイテムを実行する、
を含む動作を行わせる、コンピュータプログラム製品。
[C7]
前記第1のエンドポイントはボットである、C6に記載のコンピュータプログラム製品。
[C8]
前記第1のエンドポイントは端末デバイスであり、前記端末デバイスはエージェントによって操作される、C6に記載のコンピュータプログラム製品。
[C9]
前記第1のエンドポイントはボットであり、前記第2のエンドポイントは端末デバイスであり、前記端末デバイスはエージェントによって操作される、C6に記載のコンピュータプログラム製品。
[C10]
前記メッセージは自然言語である、C6に記載のコンピュータプログラム製品。
[C11]
システムであって、
1つまたは複数のプロセッサと、
命令を含む1つまたは複数の非一時的機械可読記憶媒体と、
を備え、前記命令は、前記1つまたは複数のプロセッサ上で実行されると、前記1つまたは複数のプロセッサに、
クライアントデバイスに関連付けられた1つまたは複数の変数を受信することと、ここにおいて、前記クライアントデバイスは、クライアントによって操作され、
ネットワークデバイスから前記クライアントのメッセージを受信することと、ここにおいて、前記メッセージは、第1のインテントおよび第2のインテントを含み、
前記第1のインテントおよび前記第2のインテントを識別するために前記メッセージをパースすることと、ここにおいて、前記第1のインテントは、第1のアクション可能アイテムに関連付けられ、前記第2のインテントは、第2のアクション可能アイテムに関連付けられており、
前記第1のアクション可能アイテムおよび前記第2のアクション可能アイテムを実行するための優先順位付けを決定するために、前記第1のインテントおよび前記第2のインテントを分析することと、ここにおいて、前記優先順位付けは、前記第1のアクション可能アイテムが最初に実行されるべきであり、前記第2のアクション可能アイテムが2番目に実行されるべきであることを示し、
前記第1のインテントおよび前記第2のインテントを機械学習モデルに供給することと、ここにおいて、前記機械学習モデルは、前記クライアントデバイスに関連付けられた前記1つまたは複数の変数を最適化することによって、前記第1のインテントのための第1のエンドポイントおよび前記第2のインテントのための第2のエンドポイントを識別し、
前記第1のインテントを前記第1のエンドポイントにルーティングすることと、ここにおいて、前記第1のエンドポイントは、その後、前記第1のアクション可能アイテムを実行し、
前記第2のインテントを前記第2のエンドポイントにルーティングすることと、ここにおいて、前記第2のエンドポイントは、その後、前記第2のアクション可能アイテムを実行する、
を含む動作を行わせる、システム。
[C12]
前記第1のエンドポイントはボットである、C11に記載のシステム。
[C13]
前記第1のエンドポイントは端末デバイスであり、前記端末デバイスはエージェントによって操作される、C11に記載のシステム。
[C14]
前記第1のエンドポイントはボットであり、前記第2のエンドポイントは端末デバイスであり、前記端末デバイスはエージェントによって操作される、C11に記載のシステム。
[C15]
前記メッセージは自然言語である、C11に記載のシステム。
図1
図2
図3A
図3B
図3C
図4
図5
図6
図7
図8
図9
図10
図11-1】
図11-2】
図12-1】
図12-2】
図13A-1】
図13A-2】
図13A-3】
図13B-1】
図13B-2】
図13B-3】
図13C-1】
図13C-2】