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

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

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

特表2024-512648知識蒸留を伴うAI NLP符号化器のドメイン適応
<>
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図1A
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図1B
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図1C
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図2
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図3A
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図3B
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図3C
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図4
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図5
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図6
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図7
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図8
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図9
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図10
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図11
  • 特表-知識蒸留を伴うAI  NLP符号化器のドメイン適応 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-19
(54)【発明の名称】知識蒸留を伴うAI NLP符号化器のドメイン適応
(51)【国際特許分類】
   G06F 16/90 20190101AFI20240312BHJP
【FI】
G06F16/90 100
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023560111
(86)(22)【出願日】2022-04-01
(85)【翻訳文提出日】2023-10-19
(86)【国際出願番号】 US2022023065
(87)【国際公開番号】W WO2022212852
(87)【国際公開日】2022-10-06
(31)【優先権主張番号】63/170,240
(32)【優先日】2021-04-02
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
2.ANDROID
3.BLACKBERRY
(71)【出願人】
【識別番号】511094772
【氏名又は名称】ライブパーソン, インコーポレイテッド
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】ハウウェル、クリステン
(72)【発明者】
【氏名】ワン、ジエン
(72)【発明者】
【氏名】ダン、マシュー
(72)【発明者】
【氏名】ブラッドリー、ジョセフ
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175EA01
(57)【要約】
自然言語処理のためのシステム、方法、デバイス、命令、及び他の例が説明される。一例は、自然言語処理の一般的な符号化器データにアクセスすることを含み、ここで、符号化器データは、ドメイン固有ではない一般的なドメインデータセットから生成される。ドメイン固有のデータセットがアクセスされ、フィルタリングされた符号化器データが符号化器データのサブセットを使用して生成される。フィルタリングされた符号化器データは、蒸留された符号化器データを生成するために、ドメイン固有のデータセットを使用して訓練され、蒸留された符号化器データについての調整値は、ドメイン固有のデータセットに関連付けられたタスク出力を構成するように生成される。
【選択図】図1C
【特許請求の範囲】
【請求項1】
コンピュータ実施方法であって、
自然言語処理(NLP)の一般的な符号化器データにアクセスすることと、ここにおいて、前記NLPの一般的な符号化器データは、ドメイン固有ではない一般的なドメインデータセットから生成され、
ドメイン固有のデータセットにアクセスすることと、
前記NLPの一般的な符号化器データのサブセットを使用して、フィルタリングされた符号化器データを生成することと、
蒸留された符号化器データを生成するために、前記ドメイン固有のデータセットを使用して、前記フィルタリングされた符号化器データを訓練することと、
前記ドメイン固有のデータセットに関連付けられたタスク出力を構成するために、前記蒸留された符号化器データについての調整値を生成することと
を備える、コンピュータ実施方法。
【請求項2】
前記ドメイン固有のデータセットは、ラベルなしデータである、請求項1に記載のコンピュータ実施方法。
【請求項3】
前記蒸留された符号化器データは、前記ドメイン固有のデータセットのラベルに関連付けられたカテゴリを識別するように構成される、請求項1に記載のコンピュータ実施方法。
【請求項4】
前記ドメイン固有のデータセットは、ラベルなしデータを含む、請求項1に記載のコンピュータ実施方法。
【請求項5】
前記蒸留された符号化器データは、アクション可能な要求に関連付けられた双方向通信においてリアルタイムデータを識別するように構成される、請求項1に記載のコンピュータ実施方法。
【請求項6】
前記ドメイン固有のデータセットを使用して、前記フィルタリングされた符号化器データを訓練することは、勾配累積を活用するのに十分な量の前記ドメイン固有のデータセット中のランダムに選択された単語で動的マスキングを実行することを含む、請求項1に記載のコンピュータ実施方法。
【請求項7】
前記ドメイン固有のデータセットを使用して、前記フィルタリングされた符号化器データを訓練することは、マスキングされた言語モデルを使用して、前記フィルタリングされた符号化器データを訓練することを含む、請求項1に記載のコンピュータ実施方法。
【請求項8】
前記ドメイン固有のデータセットは、閾値サイズよりも小さく、前記閾値サイズは、前記一般的なドメインデータセットよりも小さい、請求項1に記載のコンピュータ実施方法。
【請求項9】
前記一般的なドメインデータセットは、前記ドメイン固有のデータセットとは異なる、請求項1に記載のコンピュータ実施方法。
【請求項10】
前記NLPの一般的な符号化器データを生成するために使用される前記一般的なドメインデータセットにアクセスすることと、
前記一般的なドメインデータセットのサブセットとして前記ドメイン固有のデータセットを生成することと
を更に備える、請求項1に記載のコンピュータ実施方法。
【請求項11】
前記蒸留された符号化器データにアクセスすることと、
ドメイン固有のデータのリアルタイムストリームにアクセスすることと、
タスク出力データを生成するために、前記蒸留された符号化器データを使用して、前記ドメイン固有のデータのリアルタイムストリームを処理することと
を更に備える、請求項1に記載のコンピュータ実施方法。
【請求項12】
デバイスであって、
メモリと、
前記メモリに結合された1つ以上のプロセッサと
を備え、前記1つ以上のプロセッサは、
符号化器データにアクセスすることと、ここにおいて、前記符号化器データは、ドメイン固有ではない一般的なドメインデータセットから生成され、
ドメイン固有のデータセットにアクセスすることと、
前記符号化器データのサブセットを使用して、フィルタリングされた符号化器データを生成することと、
蒸留された符号化器データを生成するために、前記ドメイン固有のデータセットを使用して、前記フィルタリングされた符号化器データを訓練することと、
前記ドメイン固有のデータセットに関連付けられたタスク出力を構成するために、前記蒸留された符号化器データについての調整値を生成することと
を備える動作を実行するように構成される、デバイス。
【請求項13】
前記ドメイン固有のデータセットは、ラベルなしデータである、請求項12に記載のデバイス。
【請求項14】
前記蒸留された符号化器データは、前記ドメイン固有のデータセットのラベルに関連付けられたカテゴリを識別するように構成される、請求項12に記載のデバイス。
【請求項15】
前記ドメイン固有のデータセットは、ラベルなしデータを含む、請求項12に記載のデバイス。
【請求項16】
前記蒸留された符号化器データは、アクション可能な要求に関連付けられた双方向通信においてリアルタイムデータを識別するように構成される、請求項12に記載のデバイス。
【請求項17】
前記ドメイン固有のデータセットを使用して、前記フィルタリングされた符号化器データを訓練することは、勾配累積を活用するのに十分な量の前記ドメイン固有のデータセット中のランダムに選択された単語で動的マスキングを実行することを含む、請求項12に記載のデバイス。
【請求項18】
命令を備える非一時的コンピュータ可読記憶媒体であって、前記命令は、デバイスの1つ以上のプロセッサによって実行されると、前記デバイスに、
符号化器データにアクセスすることと、ここにおいて、前記符号化器データは、ドメイン固有ではない一般的なドメインデータセットから生成され、
ドメイン固有のデータセットにアクセスすることと、
前記符号化器データのサブセットを使用して、フィルタリングされた符号化器データを生成することと、
蒸留された符号化器データを生成するために、前記ドメイン固有のデータセットを使用して、前記フィルタリングされた符号化器データを訓練することと、
前記ドメイン固有のデータセットに関連付けられたタスク出力を構成するために、前記蒸留された符号化器データについての調整値を生成することと
を備える動作を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項19】
前記ドメイン固有のデータセットは、ラベルなしデータである、請求項19に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記蒸留された符号化器データは、前記ドメイン固有のデータセットのラベルに関連付けられたカテゴリを識別するように構成される、請求項19に記載の非一時的コンピュータ可読媒体。
【請求項21】
前記ドメイン固有のデータセットは、ラベルなしデータを含む、請求項19に記載の非一時的コンピュータ可読媒体。
【請求項22】
前記蒸留された符号化器データは、アクション可能な要求に関連付けられた双方向通信においてリアルタイムデータを識別するように構成される、請求項19に記載の非一時的コンピュータ可読媒体。
【請求項23】
前記ドメイン固有のデータセットを使用して、前記フィルタリングされた符号化器データを訓練することは、勾配累積を活用するのに十分な量の前記ドメイン固有のデータセット中のランダムに選択された単語で動的マスキングを実行することを含む、請求項19に記載の非一時的コンピュータ可読媒体。
【請求項24】
前記ドメイン固有のデータセットを使用して、前記フィルタリングされた符号化器データを訓練することは、マスキングされた言語モデルを使用して、前記フィルタリングされた符号化器データを訓練することを含む、請求項19に記載の非一時的コンピュータ可読媒体。
【請求項25】
前記ドメイン固有のデータセットは、閾値サイズよりも小さく、前記閾値サイズは、前記一般的なドメインデータセットよりも小さい、請求項19に記載の非一時的コンピュータ可読媒体。
【請求項26】
前記一般的なドメインデータセットは、前記ドメイン固有のデータセットとは異なる、請求項19に記載の非一時的コンピュータ可読媒体。
【請求項27】
前記命令は、前記デバイスに、
前記NLPの一般的な符号化器データを生成するために使用される前記一般的なドメインデータセットにアクセスすることと、
前記一般的なドメインデータセットのサブセットとして前記ドメイン固有のデータセットを生成することと
を備える動作を更に実行させる、請求項19に記載の非一時的コンピュータ可読媒体。
【請求項28】
前記蒸留された符号化器データにアクセスすることと、
ドメイン固有のデータのリアルタイムストリームにアクセスすることと、
タスク出力データを生成するために、前記蒸留された符号化器データを使用して、前記ドメイン固有のデータのリアルタイムストリームを処理することと
を更に備える、請求項19に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
[0001]本特許出願は、2021年4月2日に出願された米国仮特許出願第63/170,240号の優先権の利益を主張し、その開示は、本明細書に参照によって援用される。
【技術分野】
【0002】
[0002]本開示は、一般に、人工知能(AI)を使用する通信及び言語処理に関する。
【背景技術】
【0003】
[0003]ネットワークベースの通信は、複雑なサーバベースのシステムが複雑な人工知能(AI)及び自然言語処理(NLP)システムへのアクセスを提供することを可能にする。AI及びNLPシステムは、多種多様な入力に応答することができる複雑なシステムを作成するために、コンテキスト言語モデルと共に使用されることができる。そのようなシステム及びそのようなシステムに入力される自然言語クエリを解析するために使用される符号化器の作成は、大量のデータを使用する訓練を伴い、そのような作成及び訓練は、大量のエネルギー及びかなりのコンピューティングリソースを消費する可能性がある。
【発明の概要】
【0004】
[0004]自然言語処理(NLP)のための機械学習技法は、多種多様な状況においてデータストリームを処理するために使用される。BERT(Bidirectional encoder representations from transformers)及びELMo(embeddings from language models)は、受信されたテキスト文字列から将来のテキストを予測すること、又はテキスト文字列をカテゴリに割り当てることなど、NLPタスクを実行するために実装されるいくつかの異なるモデルの基礎として使用される技法の例である。本明細書で説明される態様は、AI自然言語処理(NLP)コンテキスト言語モデルを特定のドメインに適応させ、適応させられたモデルの展開を特定のドメインに関連付けられたアプリケーションに適応させるために提供される技法、システム、方法、命令、及び他の実施形態を含む。符号化器は、自然言語クエリを識別及び解析し、クエリに関連付けられたAIプラットフォームを有する通信システムのパフォーマンスを改善するために使用される。
【0005】
[0005]実施形態という用語及び同様の用語は、本開示の主題及び以下の特許請求の範囲の全てを広く指すことを意図される。これらの用語を包含する記述は、本明細書で説明される主題を限定するものではなく、又は以下の特許請求の範囲の意味若しくは範囲を限定するものでもないことを理解されたい。本明細書でカバーされる本開示の実施形態は、この概要ではなく、以下の特許請求の範囲によって定義される。この概要は、本開示の様々な態様の高レベルの概観であり、以下の発明を実施するための形態のセクションにおいて更に説明される概念のうちのいくつかを紹介する。この概要は、特許請求される主題の基幹的又は本質的な特徴を識別することを意図されず、特許請求される主題の範囲を決定するために単独で使用されることも意図されない。主題は、本開示の明細書全体の適切な部分、任意又は全ての図面、及び各請求項を参照することによって理解されたい。
【0006】
[0006]本明細書で説明される態様は、通信システム動作を改善するために言語モデルからのデータを使用するように構成されたそのような言語モデル及び通信システムに関する。そのような通信システムは、AIシステムを使用して応答する人間エージェント又は自動機械エージェントのうちのいずれかによって、多種多様なユーザ照会に応答するように構成されたシステムを含むことができる。一般的な言語モデルは、ますます大量のリソースを使用するようになっており、そのため、可能な限り最高のパフォーマンスのために作成された一般的な言語モデルの実装は、多くの実用的な環境で利用可能なリソースを上回る可能性がある。本明細書で説明されるような蒸留は、一般的な言語モデルの実装サイズを低減するために使用される動作を指す。本明細書で説明される例は、蒸留を一般的な符号化器に適用し、次いで、ドメイン固有のコンテキストデータセットを使用して、一般的な言語モデルを、一般的な言語モデルのパフォーマンスと同様のパフォーマンスを提供するが特定の言語ドメインを対象とするより小さい言語モデルに蒸留する。蒸留は、所与のドメインに関連付けられたコンテキスト内で、より小さいリソースフットプリント及び改善されたパフォーマンスを有する符号化器を可能にする。例えば、特定のドメイン(例えば、クラウドコンピューティング、細胞生物学、天体物理学、野球、アイスホッケー、株式取引、オリンピックスポーツ、製品技術サポート、等)は、単語及びコンテキストに固有の業界用語に対して珍しい定義を使用することができる。ドメイン固有のデータを用いて一般的な言語モデルを蒸留することにより、特定のドメインに関連付けられたコンテキストにおいて機能するモデルのサイズを低減することができる。加えて、いくつかのドメインは、ドメイン固有の蒸留によって識別されることができる共通のミススペルを有し得る。本明細書で説明される例は、一般的なモデルよりも小さいフットプリント(例えば、より小さいメモリ使用)を有し、且つ所与のドメイン内で同等又は改善されたパフォーマンスを有するAI言語モデルを用いて、通信システム及び通信システム中のデバイスの動作を改善することができる。
【0007】
[0007]本開示のある特定の態様は、システムを含む。システムは、1つ以上のデータプロセッサと、命令を包含する非一時的コンピュータ可読記憶媒体とを含み得、命令は、1つ以上のデータプロセッサ上で実行されると、1つ以上のデータプロセッサに、上記及び本明細書で説明される方法を実行させる。
【0008】
[0008]本開示のいくつかのある特定の実施形態は、データ処理装置に上記及び本明細書で説明される方法を実行させるように構成された命令を含む、非一時的機械可読記憶媒体において有形に具現化されたコンピュータプログラム製品を含む。
【0009】
[0009]本開示は、添付の図面と併せて説明される。
【図面の簡単な説明】
【0010】
図1A】[0010]本技術のいくつかの態様による、ドメイン固有のNLP符号化器と共に使用するためのネットワーク対話システムの実例的な実施形態を示す。
図1B】[0011]本技術のいくつかの態様による、蒸留された符号化器処理を使用するNLP実装形態の態様を例示する。
図1C】[0012]いくつかの態様による、蒸留された符号化器処理データを生成するために使用されることができる符号化器処理データの態様を例示する。
図2】[0013]本技術のいくつか態様による、ドメイン固有のNLP符号化器と共に使用するためのネットワーク対話システムの実例的な実施形態を示す。
図3A】[0014]本技術のいくつか態様による、ドメイン固有のNLP符号化器と共に使用するための接続管理システムを含むネットワーク対話システムの実例的な実施形態を示す。
図3B】本技術のいくつか態様による、ドメイン固有のNLP符号化器と共に使用するための接続管理システムを含むネットワーク対話システムの実例的な実施形態を示す。
図3C】本技術のいくつか態様による、ドメイン固有のNLP符号化器と共に使用するための接続管理システムを含むネットワーク対話システムの実例的な実施形態を示す。
図4】[0015]本技術のいくつか態様による、ドメイン固有のNLP符号化器と共に使用するための接続構成要素の動作のプロトコルスタックマッピングの図を示す。
図5】[0016]本技術のいくつか態様による、ドメイン固有のNLP符号化器と共に使用するためのマルチデバイス通信交換システムの実施形態を表す。
図6】[0017]本技術のいくつか態様による、ドメイン固有のNLP符号化器と共に使用するための接続管理システムの実例的な実施形態を示す。
図7】[0018]本技術のいくつか態様による、ドメイン固有のNLP符号化器を有する1つ以上のエンジンを含むことができるタスクエンジンのシステムの実例的な実施形態を示す。
図8】[0019]いくつかの態様による、蒸留された符号化器処理の態様を例示する。
図9】[0020]本技術のいくつか態様による方法の実施形態のフローチャートを示す。
図10】[0021]本技術のいくつか態様による方法の実施形態のフローチャートを示す。
図11】[0022]本技術のいくつかの実装形態による、インテント駆動型通信システムの態様を実装するために使用されることができる実例的なコンピューティングデバイスを例示する。
【発明を実施するための形態】
【0011】
[0023]添付の図面では、同様の構成要素及び/又は特徴は、同じ参照ラベルを有することができる。更に、同じタイプの様々な構成要素は、参照ラベルに、ダッシュと、同様の構成要素間を区別する第2のラベルとを後続させることによって区別されることができる。本明細書中で第1の参照ラベルのみが使用される場合、その説明は、第2の参照ラベルにかかわらず、同じ第1の参照ラベルを有する同様の構成要素のうちのどの1つにも適用可能である。
【0012】
[0024]次に続く説明は、例を提供し、本開示の範囲、適用可能性、又は構成を限定することを意図されない。むしろ、次に続く例の説明は、例を実装することを可能にする説明を当業者に提供するであろう。添付の特許請求の範囲に記載されるような趣旨及び範囲から逸脱することなく、要素の機能及び配置において様々な変更が行われることができることを理解されたい。
【0013】
[0025]本明細書で説明される例は、人工知能(AI)、自然言語処理(NLP)、及び機械解析駆動型システムを用いてユーザに情報を提供するように構成された通信システムに関する。本明細書の例はまた、そのような通信システム中の(例えば、NLPのための)言語エンジンにおいて使用される符号化器を生成するためのシステム及び方法に関する。システムリソース(例えば、AI又は人間エージェント)から要求者に情報を提供するように構成された通信システムは、情報転送を容易にするために、多様な方法でNLP及びAIシステムを使用することができる。そのようなシステムは、例えば、自然言語処理(NLP)、自然言語解析(NLA)、ニューラルネットワーク、並びに様々なAI及び機械学習ツールを使用して、メッセージルーティング及びメッセージへの応答を改善することによって通信システムを解析及び改善することができる。そのようなシステムは、多種多様なトピック又は状況(例えば、異なるドメイン)に関連付けられた多種多様なユーザ照会に応答するように構成されることができる。
【0014】
[0026]自然言語処理(NLP)システムは、そのような照会のリアルタイム自動処理のために使用されることができる。BERT(Bidirectional encoder representations from transformers)及びELMo(embeddings from language models)は、NLPタスクを実行するためにNLPシステムとして実装されるいくつかの異なるモデルの基礎として使用される技法の例である。
【0015】
[0027]本明細書で説明される例は、NLPシステムのコンテキスト固有のアプリケーションのための改善されたNLPシステムを提供する。一例では、NLP用の蒸留された符号化器は、一般的な(例えば、ドメイン又はコンテキスト固有ではない)言語処理に適応させられた一般的なNLPシステムよりも少ないリソース(例えば、メモリ及び処理リソース)を使用しながら、コンテキスト(例えば、ドメイン)が制限された環境において改善されたNLPパフォーマンスを提供することによって、通信システム及び通信システム中のデバイスの動作を改善する。一例では、そのような蒸留された符号化器は、フィルタリングされた符号化器データを生成するために一般的なNLP符号化器のレイヤをフィルタリングすることによって、一般的なNLP符号化器(例えば、一般的なBERT符号化器)から生成される。フィルタリングは、一般的なNLP符号化器を構成するネットワークからデータのレイヤ又は選択されたグループを除去することができる。フィルタリングは、フィルタリング後に機能する符号化器を生成することを目的とせず、一般的なデータで訓練することによって作成される一般的なNLP符号化器などの複雑なマシンネットワークの性質を考慮すると、フィルタリングは、役に立たない又は低品質の結果を有するフィルタリングされた符号化器をもたらす可能性がある。しかしながら、フィルタリングされた符号化器は、追加の訓練が、大幅により小さいメモリサイズ(例えば、実装された符号化器におけるより小さいメモリリソース使用又はメモリフットプリント)を有する一般的な符号化器のパフォーマンスと同様のパフォーマンスを、蒸留された符号化器(例えば、フィルタリングされた符号化器の訓練されたバージョン)において生成することができる、一般的な符号化器からの十分な情報を保持する。パフォーマンスは、特に、訓練データ及びパフォーマンス基準を特定の情報ドメインに限定することによって、低減されたメモリフットプリントにおいて維持されることができる。一般的な符号化器は、一般的なコンテキスト(例えば、一般的な検索クエリの管理)においてより良好に機能するが、蒸留された符号化器は、蒸留された符号化器の指定されたドメイン(例えば、定義されたドメイン又はコンテキストに限定されるか又は強く相関する検索クエリ又は他のテキストフレーズ)内で同様のパフォーマンスを提供することができる。
【0016】
[0028]上記で説明されたように生成された蒸留された符号化器データは、次いで、通信システムのドメイン固有のアプリケーションにおいて使用されることができ。例えば、蒸留された符号化器を作成するために使用される特定のドメインは、デバイスについての技術サポートであり得る。技術サポートを提供するように構成された通信システムへの初期テキスト入力は、インテント値のセット(例えば、リターン、修復、動作命令、一般的な質問、等)から初期テキスト入力についてのインテントを決定するために、調整を伴う蒸留された符号化器を使用することができる。蒸留された符号化器は、初期テキスト入力のインテントを識別するために、デバイスに固有の用語、デバイス若しくは技術サポートに関連する共通タイポ若しくはエラー、又はドメイン固有の言語の他のそのような理解を含む、ドメイン固有の言語を使用することができる。別の実装形態は、通信に関連付けられたドメイン内のサブトピックを識別することであり得る。例えば、システムについてのドメインがコンピュータプログラミングである場合、調整を伴う蒸留された符号化器は、プログラミング言語(例えば、C、Java(登録商標)、Python、等)又はコンピューティングプラットフォーム(例えば、Android、Windows(登録商標)、等)などの通信に関連するトピックを識別するように構成されることができる。特に、ドメイン固有の言語が一般的なドメインにおける同じ単語の意味とは異なる意味を有し得る場合(例えば、コーヒーの用語としてのjavaと比較したJavaプログラミング、又は蛇の一種としてのpythonと比較したPythonプログラミング)、蒸留された符号化器は、蒸留された符号化器のドメイン固有の焦点に起因して、より小さいフットプリントを有することができるだけでなく、一般的な符号化器よりも優れた自然言語理解(NLU)結果を提供することができる。
【0017】
[0029]以下の説明は、ドメイン固有の蒸留された符号化器がコンテキスト固有のNLP動作を実行するために使用されることができるコンピューティング及び通信システムの詳細、並びに蒸留された符号化器及びそのような符号化器の生成の例を提供する。
【0018】
[0030]図1Aは、本明細書で説明されるある実施形態及び特徴を実装及びサポートするネットワーク対話システム100の実施形態のブロック図を示す。ある特定の実施形態は、ネットワークデバイス105(ユーザ110によって操作されることができる)と、端末デバイス115(エージェント120によって操作されることができる)及び/又はクライアントデバイス130(クライアント125によって操作される)との間の接続からのデータストリームを処理するために、蒸留されたNLP符号化器を使用することに関する。上述されたように、NLPは、要求及び関連する情報応答のルーティングを改善又は自動化するために、そのような通信システム中の多くの異なるポイントで使用されることができる。
【0019】
[0031]いくつかの実施形態において、ユーザ110は、ウェブサイトを閲覧している個人、又はリモートサーバ140によって提供されるオンラインサービスにアクセスしている個人であり得る。いくつかの実施形態では、ユーザ110は、自身の代わりにサービスが実行されることを求めている個人であり得る。そのようなサービスは、質問が回答されること、別のデバイスを動作させること、タスク又はサービスを用いてエージェントから援助を得ること、トランザクションを行うこと、等を含むことができる。
【0020】
[0032]クライアント125は、ウェブサイト若しくはオンラインサービスを提供、運用、若しくは運営するエンティティ、又は本明細書で説明されるように、クライアント125に利用可能なタスクを実行するためにそのようなエンティティによって雇用若しくは任命された個人であり得る。
【0021】
[0033]エージェント120は、ウェブサイト又はオンラインサービスに関するサポート又は情報(例えば、オンラインストアで入手可能な製品についての情報)をユーザ110に提供するタスクを課されたサポートエージェント又は販売員などの個人であり得る。蒸留されたNLP符号化器は、情報をフィルタリング又は処理して、アクションを提案、オプションを制限、データを提供、又は通信システム内で任意の方法でエージェントのアクションをサポートすることによって、人間エージェントを支援するように実装されることができる。多数のエージェントのうち、エージェントのサブセット(例えば、特定のドメイン又はコンテキストに関連付けられたエージェント)が、特定のクライアント125にサポート又は情報を提供するのに適切であり得る。エージェント120は、クライアント125と提携していることもしていないこともある。特定のドメイン又はクライアントに関連付けられたエージェントは、エージェントの特定のドメインのための蒸留されたNLP符号化器を含む様々なエンジンを有することができる。各エージェントは、1つ以上のクライアント125に関連付けられることができる。エージェントが複数のドメインに関連付けられるとき、エージェントは、異なるドメインのための蒸留されたNLP符号化器を有する異なる支援エンジンを有し得る。いくつかの非限定的な例では、ユーザ110は、パーソナルコンピューティングデバイスからオンラインストアで買い物をする個人であり得、クライアント125は、オンラインで製品を販売する会社であり得、エージェント120は、会社によって雇用された販売員であり得る。そのような例では、エージェントは、販売ドメイン、会社若しくは製品ドメイン、又は販売員が顧客に情報を提供するコンテキストに関連する任意の他のそのようなドメインにおいてタスクを実行するために、蒸留されたNLP符号化器を有する支援エンジンを使用し得る。様々な実施形態では、ユーザ110、クライアント125、及びエージェント120は、他の個人又はエンティティであり得る。
【0022】
[0034]図1Aは、単一のネットワークデバイス105、端末デバイス115、及びクライアントデバイス130のみを示しているが、対話システム100は、これらのタイプのデバイスのうちの1つ以上の各々の複数又は多数(例えば、数十、数百、又は数千)を含むことができる。同様に、図1Aは、単一のユーザ110、エージェント120、及びクライアント125のみを示しているが、対話システム100は、そのようなエンティティのうちの1つ以上の各々の複数又は多数を含むことができる。そのようなシステム中の各エンティティ又はエンティティのグループは、所与の情報ドメインにおける所与のエンティティ又はエンティティのグループに固有のタスクのための効率的なNLPシステムを可能にするために、エンティティのためのNLPシステムのための符号化器を蒸留する際に使用されることができる異なる情報ドメイン又はコンテキストに関連付けられることができる。
【0023】
[0035]接続管理システム150は、システム中のエンティティ間の通信の戦略的ルーティングを容易にすることができる。通信は、(例えば、タイプ入力又は音声入力などの、エンティティからの入力に基づいて定義される)内容を有するメッセージを含むことができる。通信はまた、送信デバイスについてのデータ(例えば、IPアドレス、アカウント識別子、デバイスタイプ、及び/又はオペレーティングシステム)、宛先アドレス、クライアントの識別子、ウェブページ若しくはウェブページ要素(例えば、通信が生成されたときに訪問されたか又は別様に通信に関連付けられたウェブページ若しくはウェブページ要素)の識別子若しくはオンライン履歴データ、時間(例えば、時刻及び/又は日付)、及び/又は宛先アドレスなどの追加のデータを含むことができる。他の情報が通信に含まれることができる。いくつかの実施形態では、接続管理システム150は、通信全体を別のデバイスにルーティングする。いくつかの実施形態では、接続管理システム150は、(例えば、初期通信に基づいて)通信を修正するか、又は新しい通信を生成する。新しい又は修正された通信は、メッセージ(又はその処理されたバージョン)、(例えば、送信デバイス、ウェブページ、又はオンライン履歴及び/若しくは時間についての)追加データのうちの少なくとも一部(又は全部)、及び/又は接続管理システム150によって識別された他のデータ(例えば、特定のアカウント識別子又はデバイスに関連付けられたアカウントデータ)を含むことができる。新しい又は修正された通信は、他の情報も含むことができる。
【0024】
[0036]戦略的ルーティング容易化の一部は、ネットワークデバイス105と1つ以上の端末デバイス115との間の1つ以上の接続を確立、更新、及び使用することを含むことができる。例えば、ネットワークデバイス105から通信を受信すると、接続管理システム150は、(もしあれば)どのクライアントに通信が対応するかを推定することができる。クライアントを識別すると、接続管理システム150は、ネットワークデバイス105との通信のためにクライアントに関連付けられた端末デバイス115を識別することができる。いくつかの実施形態では、識別は、複数のエージェント(又は専門家若しくは代理人)の各々のプロファイルを評価することを含むことができ、複数のエージェント中の各エージェント(例えば、エージェント120)は、端末デバイス(例えば、端末デバイス115)に関連付けられる。評価は、ネットワークデバイスメッセージ中の内容に関連することができる。
【0025】
[0037]いくつかの実施形態では、接続管理システム150は、ネットワークデバイス105とクライアント(又はリモートサーバ140)に関連付けられたエンドポイントとの間に何らかの接続が確立されているかどうか、及び確立されている場合には、そのようなチャネルが通信を含む一連の通信を交換するために使用されるべきかどうかを決定することができる。
【0026】
[0038]ネットワークデバイス105と通信するためのエンドポイントを選択すると、接続管理システム150は、ネットワークデバイス105とエンドポイントとの間の接続を確立することができる。いくつかの実施形態では、接続管理システム150は、選択されたエンドポイントにメッセージを送信することができる。メッセージは、ネットワークデバイス105と通信するための提案された割り当ての受け入れを要求し得るか、又はそのような割り当てが生成されたことを識別し得る。メッセージは、ネットワークデバイス105についての情報(例えば、IPアドレス、デバイスタイプ、及び/又はオペレーティングシステム)、関連付けられたユーザ110についての情報(例えば、話された言語、クライアントと対話した持続時間、スキルレベル、感情、及び/又はトピック選好)、受信された通信、通信を生成してネットワークデバイス105に送信するためのコード(例えば、クリック可能なハイパーリンク)、及び/又は通信を生成してネットワークデバイス105に送信するための命令を含むことができる。
【0027】
[0039]いくつかの実施形態では、ネットワークデバイス105と任意のエンドポイント(例えば、端末デバイス115、リモートサーバ140、クライアントデバイス130、等)との間の通信は、接続管理システム150を通してルーティングされることができる。そのような構成は、接続管理システム150が通信交換を監視し、いずれかのデバイスの非応答性又は延長されたレイテンシなどの(例えば、規則に基づいて定義されるような)問題を検出することを可能にすることができる。更に、そのような構成は、通信の選択的又は完全な記憶を容易にすることができ、それは、例えば、通信交換の品質を評価するために、及び/又は特定の通信後ターゲットを促進するようにルーティング規則を更新若しくは生成するための学習をサポートするために後で使用され得る。加えて、いくつかの例では、接続管理システム150は、異なる通信に関連付けられたドメインを認識することができ、蒸留された符号化器のために使用されるドメイン固有のデータセットを改善するために、そのようなドメインについてのデータのフィルタリング又はソートをリアルタイムで管理することができる。システム情報を使用してドメインデータセットを継続的に更新することによって、蒸留された符号化器は、経時的に改善されることができる。同様に、符号化器を蒸留するために十分な訓練データが識別されずに新たなドメインが識別された場合、接続管理システム150は、新たに識別されたドメインに関連付けられたデータを識別し、一般的な符号化器がNLPのために使用されている間にドメイン固有の符号化器の訓練に使用されるべき情報を収集することができる。十分な訓練データが収集されたとき、本明細書で説明される例は、蒸留された符号化器を生成するために使用されることができる。いくつかの例では、効果的なドメイン固有の訓練に必要とされるデータセットのサイズは、NLPのための一般的な符号化器を生成するために使用される一般的なデータセット(例えば、ドメインパターンに応じて、一般的なデータセットサイズの10%未満、又は他の同等の差)と比較して小さい(例えば、ドメインデータ内のパターンに応じて、3ギガビット未満、5ギガビット未満、等)。
【0028】
[0040]いくつかの実施形態では、接続管理システム150は、通信交換をリアルタイムで監視し、ライブ通信に基づいて自動化されたアクション(例えば、規則ベースのアクション、人工知能起源のアクション、等)を実行することができる。例えば、通信が特定の製品に関するものであると接続管理システム150が決定すると、接続管理システム150は、製品についての追加情報(例えば、在庫の製品の数量、製品に関するサポート文書へのリンク、又は製品若しくは同様の製品についての他の情報)を包含する追加メッセージをエンドポイントに自動的に送信することができる。
【0029】
[0041]いくつかの実施形態では、指定されたエンドポイントは、接続管理システム150を通して通信を中継することなく、ネットワークデバイス105と通信することができる。デバイス105、115のうちの一方又は両方は、通信監視及び/又はデータ記憶を容易にするために、接続管理システム150に特定の通信メトリクス又は内容を報告し得る(又は報告しない場合がある)。
【0030】
[0042]述べられたように、接続管理システム150は、選択された通信をリモートサーバ140にルーティングし得る。リモートサーバ140は、所定の様式で情報を提供するように構成されることができる。例えば、リモートサーバ140は、通信に応答して送信するために、定義された1つ以上のテキストパッセージ、音声録音、及び/又はファイルにアクセスし得る。リモートサーバ140は、例えば、受信された通信の解析(例えば、意味解析又はマッピング解析)に基づいて、特定のテキストパッセージ、記録、又はファイルを選択し得る。
【0031】
[0043]接続管理システム150において実行されるルーティング及び/又は他の決定若しくは処理は、1つ以上のクライアントデバイス130によって少なくとも部分的に定義されるか又は提供される規則及び/又はデータに基づいて実行されることができる。例えば、クライアントデバイス130は、エージェントの優先順位付け、端末デバイスタイプ、及び/又はトピック/スキルマッチングを識別する通信を送信し得る。別の例として、クライアントデバイス130は、ルーティング決定に潜在的に影響を与える様々な変数(例えば、言語互換性、予測される応答時間、デバイスタイプ及び能力、並びに/又は端末デバイス負荷分散)に適用するための1つ以上の重みを識別し得る。どの端末デバイス及び/又はエージェントがクライアントに関連付けられるべきかは動的であり得ることを認識されたい。クライアントデバイス130及び/又は端末デバイス115からの通信は、所与の端末デバイス及び/又はエージェントがクライアントに関連付けられたものとして追加又は除去されるべきであることを示す情報を提供し得る。例えば、クライアントデバイス130は、IPアドレスを有する通信と、そのアドレスを有する端末デバイスが、クライアントに関連付けられた端末デバイスを識別するリストに追加されるべきか、又はそれから削除されるべきかに関するインジケーションとを送信することができる。
【0032】
[0044]各通信(例えば、デバイス間、デバイスと接続管理システム150との間、リモートサーバ140と接続管理システム150との間、又はリモートサーバ140とデバイスとの間)は、1つ以上のネットワーク170を通して生ずることができる。オープン又はクローズドネットワークの任意の組み合わせが、1つ以上のネットワーク170中に含まれることができる。適切なネットワークの例は、インターネット、パーソナルエリアネットワーク、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、又はワイヤレスローカルエリアネットワーク(WLAN)を含む。他のネットワークも適切であり得る。1つ以上のネットワーク170は、イントラネット、エクストラネット、又はそれらの組み合わせ内に完全に組み込まれることができるか、又はそれらを含むことができる。いくつかの実施形態では、1つ以上のネットワーク170中のネットワークは、Bluetooth(登録商標)又はBluetooth Low Energyチャネルなどの短距離通信チャネルを含む。一実施形態では、2つ以上のシステム及び/又はデバイス間の通信は、セキュアソケットレイヤ(SSL)又はトランスポートレイヤセキュリティ(TLS)などのセキュア通信プロトコルによって達成されることができる。加えて、データ及び/又はトランザクションの詳細は、DES(Data Encryption Standard)、Triple DES、RSA(Rivest-Shamir-Adleman暗号化)、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、等などであるがそれらに限定されない、任意の便利な、既知の、又は今後開発される様式に基づいて暗号化され得る。
【0033】
[0045]ネットワークデバイス105、端末デバイス115、及び/又はクライアントデバイス130は、例えば、ポータブル電子デバイス(例えば、スマートフォン、タブレット、ラップトップコンピュータ、若しくはスマートウェアラブルデバイス)又は非ポータブル電子デバイス(例えば、1つ以上のデスクトップコンピュータ、スマート家電、サーバ、及び/又はプロセッサ)を含むことができる。接続管理システム150は、ネットワーク、端末、IOT、及びクライアントデバイスとは別個に収容されることができるか、又は(例えば、デバイス上のアプリケーションのインストールを介して)1つ以上のそのようなデバイスの一部であり得る。リモートサーバ140は、各デバイス及び接続管理システム150とは別個に収容され得、及び/又は別のデバイス若しくはシステムの一部であり得る。図1Aの各デバイス、サーバ、及びシステムは、単一のデバイスとして示されているが、複数のデバイスが代わりに使用され得ることを認識されたい。例えば、ネットワークデバイスのセットは、単一のユーザからの様々な通信を送信するために使用されることができるか、又はリモートサーバ140は、サーバスタックを含み得る。本明細書で説明されるように、任意のそのようなデバイス(例えば、ネットワークデバイス105、端末デバイス115、及び/又はクライアントデバイス130、等)は、ドメイン固有のタスクを実行するために、蒸留された符号化器を使用してAIエンジンを実装することができる。蒸留された符号化器は、特定のコンテキスト(例えば、特定の情報ドメイン)のために訓練されるとき、リソース使用を低減し(例えば、より小さいメモリフットプリントで)、言語処理パフォーマンスを改善する。
【0034】
[0046]図1Bは、本技術のいくつかの態様による、蒸留された符号化器処理を使用するNLP実装形態の態様を例示する。図1Cは、図1Bに例示されるような蒸留された符号化器処理において使用するための蒸留された符号化器を生成する方法を例示する。図1Bのエンジン180は、ドメイン固有のタスクを実行するように構成された対話システム100の任意のデバイスで実装されたAIエンジンであり得る。上記で説明されたように、高パフォーマンスNLPシステムは、現在、Wikipedia(登録商標)、CommonCrawl(登録商標)、又はテキストの他の大きい一般的なコレクションからのデータなど、大きい一般的なデータセットに対して訓練されることが多い。しかしながら、いくつかのコンテキスト(例えば、ドメイン又は情報ドメイン)は、そのような「一般的な」データセットにおいて十分に表されない。そのようなコンテキストの例は、一般的なデータセットにおいて強く表されないコンテキスト固有のイディオム、及び会話型商取引(例えば、特定のビジネスドメインにおける顧客サービス)、所与の情報ドメインにおける技術的議論、又は他のそのようなコンテキストなどの他のより広い情報ドメインを含む。エンジン180で実装されるとき、NLPのための言語エンジン184は、ドメイン固有のデータのリアルタイムストリーム182を受信する。データのリアルタイムストリーム182は、蒸留された符号化器処理185によって処理され、蒸留された符号化器データ(例えば、コンテキスト固有のデータで訓練された蒸留されたニューラルネットワーク構造)から構成される。蒸留された符号化器処理185の出力は、タスクパフォーマンスを管理するために調整値で構成された微細処理186(例えば、システムレイヤ)に入力される。微細処理186は、エンジン180が適用される特定の用途に対する結果であるタスク結果188を出力する。例えば、エンジン180は、所与の情報ドメイン(例えば、複数の製品を有する会社についての製品サポート)におけるコンテキスト固有のサブカテゴリ(例えば、特定の製品)を決定するために、ソートタスクに適用されることができる。他のそのようなタスクは、予め定義されたインテントのセット(例えば、アポイントメントスケジューリング、技術サポート、販売サポート、等)から通信インテントを決定することであり得る。
【0035】
[0047]NLPのための一般的な言語符号化器を使用して所与のコンテキストにおける情報のリアルタイムフローを処理することは、一般的に訓練された符号化器のサイズが大きいことに起因して非効率的であると共に、コンテキスト固有の言語にカスタマイズされないために非効率的である。そのような高パフォーマンスの一般的なNLP符号化器は、一般的なデータセットに対する訓練からの多数のレイヤ及びパラメータに起因して大きいサイズを有する。そのようなタスクは一般的な符号化器によって処理されることができるが、本明細書で説明される例は、コンテキスト(例えば、ドメイン)固有のパフォーマンス向上を提供するより小さい符号化器を用いてシステム及びデバイスパフォーマンスを改善する。結果として生じる蒸留された符号化器は、蒸留することなく一般的なドメインデータに対して訓練されたモデルよりもパフォーマンスが優れている、単一のドメインに固有のより小さいモデルである。図1Cについて以下で説明するように、一般的な符号化器から生成されるフィルタリングされた符号化器についての限定されたドメイン固有の訓練データを用いて、一般的な符号化器に対する蒸留された符号化器のために提供されるパフォーマンスの改善が保持される。
【0036】
[0048]図1Cは、いくつかの態様による、蒸留された符号化器処理データを生成するために使用されることができる符号化器処理データの態様を例示する。ブロック190及び191は、一般的な符号化器のために使用される初期データを含む。ブロック190の一般的なドメインデータセットは、上記で説明されたように、任意のソースからの一般的な言語データであり得る。ブロック191のモデルテンプレートは、RoBERTaなどのBERTの特定の実装形態、又はBERTモデルの任意の他のそのような特定の実装形態であり得る。ブロック192では、ブロック191のモデルテンプレートは、ブロック193において一般的な符号化器データを生成するために、ブロック190の一般的なドメインデータセットを使用して訓練される。ブロック193の一般的な符号化器データは、任意のメッセージに対してNLPを実行するために使用されることができる機能する符号化器であるが、一般的な符号化器データのあり得るサイズに起因して、そのような実装形態は、特に、(より大きいサーバシステムと比較して)パーソナルコンピュータ又はモバイルデバイスである可能性が高いネットワークデバイス105又は端末デバイス115などのデバイスに対して、制限された実用的用途を有する。大きいサーバシステムの場合であっても、大きい一般的な符号化器によって消費されるリソースに起因して、実装形態が制限される可能性がある。より小型でよりポータブルな符号化器を作成するために、ブロック194においてフィルタリングが実行される。フィルタリングは、ブロック193の一般的な符号化器データを、一般的な符号化器データからデータを除去するために使用されるブロック191からのモデルテンプレートの構造についての情報と共に取ることができる。データは、データの内容に基づいて除去(例えば、データからある特定の情報を除去しようと試みる)されないが、一般的な符号化器データを作成するために使用されるモデルの構造に基づいて除去される。フィルタリングは、符号化器データテンプレートパターンにおけるレイヤの除去、ある特定のパラメータ構造の除去、又は一般的な符号化器データのフットプリントを縮小するための他のそのような簡略化を伴うことができる。しかしながら、フィルタリングは、テンプレートの何らかの構造を維持し、それによって、ブロック193における訓練からのパターンを維持する。一例では、初期レイヤ及び最終レイヤが適所に残され、一般的な符号化器データの1つおきの内部レイヤが除去され、ネットワーク内の内部データ接続が、残りのレイヤに再付着される。例えば、1~25とラベル付けされた25個のレイヤを有する一般的な符号化器データのネットワークでは、全ての偶数番号のレイヤが除去され、残りのレイヤが修正されて、機能するネットワークを維持することができる。そのようなフィルタリングの追加の詳細は、図8及び9に関して以下で説明される。
【0037】
[0049]ブロック195のフィルタリングされた符号化器データは、機能するネットワークである(例えば、入力データに基づいて出力を生成することが可能である)が、ブロック194のフィルタリング動作は、ブロック192の訓練の完全性の全てを維持するわけではない。しかしながら、(例えば、一般的な符号化器データの内部構造の臨界量よりも多くを除去することによって)過剰にフィルタリングされていないある特定の構造がネットワーク内に残ることを決定するために実験が使用されており、ドメイン固有のデータで訓練されたとき、ドメイン固有のデータでのみ訓練されたBERT構造よりも改善されたNLPパフォーマンスを提供する。例では、サイズが2ギガビットのドメイン固有の訓練セットはピークパフォーマンスに近づき、ドメイン固有のデータセットは、約222ギガバイトの一般的なデータから生成されたフィルタリングされたデータを訓練するために使用されたとき、3ギガビットでピークパフォーマンスを達成した。ブロック196の訓練で使用されるブロック198のドメイン固有のデータセットは、多様な異なるソースからアクセスされることができる。いくつかの例では、ドメイン固有のデータセットは、特定のドメインに限定されるネットワーク対話システム100などのシステム中のリアルタイム通信からの履歴データである。他の例では、ドメイン固有のデータセットは、情報ドメイン中の技術記事、又は所与のドメインに関連付けられた通信及び/若しくはデータ(例えば、記事、論文、又は議論)のアーカイブなど、所与のドメインに限定された情報源から収集されることができる。
【0038】
[0050]ブロック198のドメイン固有のデータセットを使用するブロック196の訓練は、ブロック197において蒸留された符号化器データをもたらす。蒸留された符号化器データは、次いで、図1Bに例示されるように、微細処理値と対にされて、AI言語処理タスクを実行するための言語エンジン184の実用的な実装形態を作成することができる。蒸留された符号化器データは、例えば、蒸留された符号化器処理185のためにドメイン固有のデータのリアルタイムストリーム182に適用されることができる。処理185(例えば、ブロック197の蒸留された符号化器データを使用してリアルタイムデータを処理する)の出力は、次いで、タスク結果188を提供するために、(例えば、調整ネットワーク中の微調整値を使用する)微細処理186で更に処理される。図1Cに従って生成された蒸留された符号化器データを使用して蒸留された符号化器処理185を実行するそのような言語エンジン184は、改善されたドメイン固有のパフォーマンスと併せて、より効率的なリソース使用を有する制限されたサイズ(例えば、関連付けられた一般的な符号化器ベースのエンジンよりも40~60%小さい)を有しながら、制限されたサイズのドメイン固有のデータセットでの訓練からドメイン固有のパフォーマンスを有する改善されたデバイスパフォーマンスを提供する。
【0039】
[0051]言語エンジン184は、ソフトウェアエージェント又はアプリケーションで実装されることができ、図示されるデバイス、システム、又はサーバ上にインストールされ、及び/又は実行可能であり得る。一事例では、ソフトウェアエージェント又はアプリケーションは、様々な図示された要素が相補的な様式で動作することができるように構成される。例えば、デバイス上のソフトウェアエージェントは、デバイス使用についてのデータを収集して別個の接続管理システムに送信するように構成されることができ、別個の接続管理システム上のソフトウェアアプリケーションは、データを受信して処理するように構成されることができる。データセットは、このことから、システム全体にわたって収集され、言語エンジン184などの言語エンジンを更新又は改善するために使用されることができる。例えば、クライアントデバイス130、リモートサーバ140、接続管理システム150、ネットワークデバイス105、及び端末デバイスからのデータは、ドメイン固有のネットワーク対話システム100の一部として共有されることができ、システム100全体を通して収集されたデータは、データセットについての蒸留された符号化器データのために使用されるドメイン固有のデータセットを生成及び更新するために使用される。
【0040】
[0052]図2は、ネットワーク対話システム200の別の実施形態のブロック図を示す。一般に、図2は、ネットワークデバイス205が1つ以上の端末デバイス215と通信することを可能にするように構成及び配置された多様な構成要素を例示する。図示された事例は、3つのローカルエリアネットワーク235中に含まれる9つの端末デバイス215を含む。
【0041】
[0053]いくつかの実施形態では、ネットワークデバイス205からの通信は、どの端末デバイスが通信を受信すべきかを少なくとも部分的に又は完全に示す宛先データ(例えば、宛先IPアドレス)を含む。ネットワーク対話システム200は、宛先データを処理し、適切なルーティングを容易にすることができる1つ以上のネットワーク間接続構成要素及び/又は1つ以上のネットワーク内接続構成要素255を含むことができる。
【0042】
[0054]各ネットワーク間接続構成要素245は、複数のネットワーク235に接続されることができ、インストールされた複数のネットワークカード(例えば、異なるネットワークに接続された各カード)を有することができる。例えば、ネットワーク間接続構成要素245は、ワイドエリアネットワーク270(例えば、インターネット)及び1つ以上のローカルエリアネットワーク235に接続されることができる。図示された事例では、通信がネットワークデバイス205から端末デバイスのうちのいずれかに送信されるために、図示されたシステムでは、通信は、複数のネットワーク間接続構成要素245によって処理されなければならない。
【0043】
[0055]ネットワーク間接続構成要素245が通信(又は通信に対応するパケットのセット)を受信するとき、ネットワーク間接続構成要素245は、宛先に関連付けられたネットワークに通信を渡すためのルートの少なくとも一部を決定することができる。ルートは、例えば、(例えば、ルータに記憶された)ルーティングテーブルを使用して決定されることができ、それは、予め定義されたか、(例えば、別のルータからの、又は別のデバイスからの)到来するメッセージに基づいて生成されたか、又は学習された1つ以上のルートを含むことができる。
【0044】
[0056]ネットワーク間接続構成要素245の例は、ルータ260及びゲートウェイ265を含む。ネットワーク間接続構成要素245(例えば、ゲートウェイ265)は、ネットワークシステム又はプロトコル間で変換するように構成され得る。例えば、ゲートウェイ265は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)デバイスとネットワーク間パケット交換/シーケンスパケット交換(IPX/SPX)デバイスとの間の通信を容易にし得る。
【0045】
[0057]ローカルエリアネットワーク235において通信を受信すると、更なるルーティングが依然として実行される必要があり得る。そのようなネットワーク内ルーティングは、スイッチ280又はハブ285などのネットワーク内接続構成要素255を介して実行されることができる。各ネットワーク内接続構成要素255は、複数の端末デバイス215に(例えば、ワイヤレスで、又はイーサネット(登録商標)ケーブルなどを介してワイヤードで)接続されることができる。ハブ285は、それが接続されている各デバイスに対して全ての受信された通信を繰り返すように構成されることができる。各端末デバイスは、次いで、各通信を評価して、端末デバイスが宛先デバイスであるかどうか、又は通信が無視されるべきかどうかを決定することができる。スイッチ280は、通信を宛先端末デバイスのみに選択的に方向付けるように構成されることができる。
【0046】
[0058]いくつかの実施形態では、ローカルエリアネットワーク235は、複数のセグメントに分割されることができ、その各々は、独立したファイアウォール、セキュリティ規則、及びネットワークプロトコルに関連付けられことができる。ネットワーク内接続構成要素255は、セグメント内ルーティングを容易にするために、1つ、複数、又は全てのセグメントの各々中に設けられることができる。ブリッジ290は、セグメント275にわたって通信をルーティングするように構成されることができる。
【0047】
[0059]ネットワークにわたって、又はネットワーク内で通信を適切にルーティングするために、様々な構成要素が、通信における宛先データを解析する。例えば、そのようなデータは、通信がどのネットワークにルーティングされるべきか、通信がネットワーク内のどのデバイスにルーティングされるべきか、又は端末デバイスがどの通信を処理すべきか(無視するのに対して)を示すことができる。しかしながら、いくつかの実施形態では、どの端末デバイス(また更にはどのネットワーク)がネットワークデバイスからの通信に参加すべきかがすぐには明らかにならない。
【0048】
[0060]例示のために、端末デバイスのセットは、同様のタイプの応答通信を提供するように構成され得る。このことから、ネットワークデバイスからの通信におけるクエリは、通信がどのネットワークデバイスにルーティングされるかにかかわらず、同様の様式で応答され得ることが予期され得る。この仮定は高いレベルで真であり得るが、端末デバイスに関する様々な詳細は、その他と比較して有利である特定のルーティングを生じさせることができる。例えば、セット中の端末デバイスは、(例えば)どの通信チャネルがサポートされるか、ネットワークデバイスへの地理的及び/若しくはネットワーク近接性、並びに/又は関連付けられたエージェントの特性(例えば、知識ベース、経験、話された言語、利用可能性、一般的な個性若しくは感情、等)に関して互いに異なり得る。それ故に、選択されたルーティングは、ネットワークデバイス通信により正確に及び/又は完全に応答するより高速な応答を容易にし得る。問題は、ネットワークデバイスを端末デバイスにマッピングする静的ルーティングが、通信トピック、チャネルタイプ、エージェント利用可能性などの変動を考慮しない場合があることである。
【0049】
[0061]図3A、3B、3Cは、ネットワーク対話システム300の他の実施形態(例えば、接続管理システムを含むシステム300A、300B、300C)のブロック図を示す。図示されたシステム300A、300B、300Cの各々は、簡略化のために2つのローカルエリアネットワーク235のみを示すが、実施形態は、ローカルエリアネットワークの数を拡大するように拡張されることができることを認識されたい。システム300A、300B、300Cの各々は、接続管理システム150を含み、それは、どの端末デバイスがネットワークデバイス205と通信すべきかを識別することができ、接続を確立及び管理(例えば、維持又は閉鎖)することができ、交換において通信を再ルーティングするかどうか、及びいつ再ルーティングするかを決定することなどができる。このことから、接続管理システム150は、ルーティング決定に影響を及ぼすために、通信、エージェント利用可能性、端末デバイス又はエージェントの能力などを動的且つリアルタイムで評価するように構成されることができる。
【0050】
[0062]図3Aでは、接続管理システム350(例えば、システム350A及び350B)は、ネットワークデバイス205及びリモートサーバ340の各々に関連付けられる。いくつかの実装形態では、接続管理システム150は、ネットワークデバイス205及びリモートサーバ340の各々上に分散システムとしてそれぞれインストール又は記憶されることができる。アプリケーション(複数可)の実行は、例えば、ネットワークデバイス205との通信交換に参加するために選択された端末デバイス215を識別するために、ネットワークデバイス205とリモートサーバ340との間の通信を容易にすることができる。識別は、本明細書で開示される1つ以上の要因(例えば、利用可能性、エージェント又は端末デバイスの知識ベースとの通信のトピック/詳細レベル間のマッチング、予測されるレイテンシ、チャネルタイプ利用可能性など)に基づいて行われることができる。
【0051】
[0063]クライアントデバイス330は、ルーティング決定がどのように行われるべきかを示すクライアントデータを提供することができる。例えば、そのようなデータは、特定の特性がどのように重み付けされるべきか又はマッチングされるべきかに関するインジケーション、又は制約若しくはバイアス(例えば、負荷分散若しくは予測される応答レイテンシに関する)を含むことができる。クライアントデータはまた、いつ通信チャネルが確立(又は閉鎖)されるべきか、又はいつ通信が異なるネットワークデバイスに再ルーティングされるべきかに関する仕様を含むことができる。クライアントデータは、通信ルーティングなどのための規則など、様々なクライアント固有の規則を定義するために使用されることができる。
【0052】
[0064]リモートサーバ340上で実行される接続管理システム150bは、どの通信チャネルがサポートされているか、ネットワークデバイスへの地理的及び/若しくはネットワーク近接性、端末デバイスとの通信レイテンシ及び/若しくは安定性、端末デバイスのタイプ、端末デバイスの能力、端末デバイス(若しくはエージェント)が所与のネットワークデバイス(若しくはユーザ)と以前に通信したかどうか、並びに/又は関連付けられたエージェントの特性(例えば、知識ベース、経験、話された言語、利用可能性、一般的な個性若しくは感情、等)など、端末デバイスに関する(例えば、所与のクライアントに関する)様々なメトリクスを監視することができる。それ故に、接続管理システム150bは、メトリクスに基づいてネットワークデバイス通信により正確に及び/又は完全に応答するより高速な応答を容易にするためにルーティングを選択することを可能にされ得る。
【0053】
[0065]図3Aに図示された例では、ネットワークデバイス205とリモートサーバ340との間の通信交換は、宛先アドレスの早期識別を容易にすることができる。ネットワークデバイス205は、次いで、後続の通信を方向付けるために宛先アドレスを使用し得る。例えば、ネットワークデバイス205は、(例えば、1つ以上のネットワーク間接続及びワイドエリアネットワークを介して)初期通信をリモートサーバ340に送り得、リモートサーバ340は、1つ以上の対応するクライアントを識別し得る。リモートサーバ340は、次いで、1つ以上の対応するクライアントに関連付けられた端末デバイスのセットを識別し、それらの端末デバイスについてのメトリクスを収集し得る。メトリクスは、通信交換に関与するための端末デバイスを選択するために(例えば、リモートサーバ340によって)評価されることができ、端末デバイスに関する情報(例えば、IPアドレス)は、ネットワークデバイス205に送られることができる。いくつかの実施形態では、リモートサーバ340は、様々な端末デバイスについてのメトリクスを連続的又は周期的に収集及び評価し、評価結果をデータストア中に記憶し得る。そのような実施形態では、1つ以上の対応するクライアントに関連付けられた端末デバイスのセットを識別すると、リモートサーバ340は、データストアから記憶された評価結果にアクセスし、記憶された評価結果に基づいて通信交換に関与するための端末デバイスを選択することができる。
【0054】
[0066]図3Bにおいて、接続管理システム150は、中継器及び/又は宛先アドレスとしての役割を果たすように構成されることができる。このことから、例えば、ネットワークデバイス205のセットは、各々が接続管理システム150を宛先として識別する通信を送信し得る。接続管理システム150は、各通信を受信することができ、(例えば、各端末デバイスについてのメトリクスを生成するために)端末デバイスのセットを同時に監視することができる。監視及び規則に基づいて、接続管理システム150は、各通信を中継し得る端末デバイス215を識別することができる。実施形態に応じて、端末デバイス通信は、同様に、更なる中継のために(例えば、接続管理システム150の)一貫した宛先に方向付けられ得るか、又は端末デバイスは、対応するネットワークデバイスと直接通信を開始し得る。これらの実施形態は、効率的なルーティング及び完全な通信監視を容易にすることができる。
【0055】
[0067]図3Cに図示された実施形態は、図3Bの実施形態と同様である。しかしながら、いくつかの実施形態では、接続管理システム150は、ネットワーク内構成要素(例えば、端末デバイス、ネットワーク内接続、又はその他)に直接接続される。
【0056】
[0068]図3A~3Cの多くの変形形態が企図されることを認識されたい。例えば、接続管理システム150は、接続構成要素(例えば、ネットワーク間接続構成要素245又はネットワーク内接続構成要素255)に関連付けられ得、そのため、接続管理システム150(又はその一部)に対応するアプリケーションが、構成要素上にインストールされる。アプリケーションは、例えば、独立して、又は1つ以上の同様若しくは相補的なアプリケーション(例えば、1つ以上の他の構成要素、ネットワークデバイス、又はリモートサーバ上で実行する)と通信することによって、実行し得る。
【0057】
[0069]図4は、接続構成要素の動作のプロトコルスタックマッピング400の表現を示す。より具体的には、図4は、様々な接続構成要素に対応する開放型システム対話(OSI)モデルにおける動作のレイヤを識別する。
【0058】
[0070]OSIモデルは、複数の論理レイヤ402~414を含むことができる。レイヤは、レイヤ402~412がより高いレベルを各々サービスし、レイヤ404~414がより低いレイヤによって各々提供されるように、順序付けられたスタック中に配置される。OSIモデルは、物理レイヤ402を含む。物理レイヤ402は、パラメータの物理的通信(例えば、電気的、光学的、又は電磁的)を定義することができる。物理レイヤ402はまた、接続を確立及び閉鎖するためのプロトコルなどの接続管理プロトコルを定義する。物理レイヤ402は、フロー制御プロトコル及び送信モードを更に定義することができる。
【0059】
[0071]リンクレイヤ404は、ノード間通信を管理することができる。リンクレイヤ404は、エラー(例えば、物理レイヤ402中の送信エラー)を検出及び訂正し、アクセス許可を管理することができる。リンクレイヤ404は、媒体アクセス制御(MAC)レイヤ及び論理リンク制御(LLC)レイヤを含むことができる。
【0060】
[0072]ネットワークレイヤ406は、(例えば、データグラムとして)同じネットワーク中のノードにわたって(例えば、可変長の)データを転送することを調整することができる。ネットワークレイヤ406は、論理ネットワークアドレスを物理マシンアドレスに変換することができる。
【0061】
[0073]トランスポートレイヤ408は、送信及び受信品質を管理することができる。トランスポートレイヤ408は、伝送制御プロトコル(TCP)など、データを転送するためのプロトコルを提供することができる。トランスポートレイヤ408は、送信のためにデータパケットのセグメント化/セグメント化解除を実行することができ、レイヤ402、404、406で生じる送信エラーを検出し、それを考慮することができる。セッションレイヤ410は、ローカルアプリケーションとリモートアプリケーションとの間の接続を開始、維持、及び終了することができる。セッションは、リモートプロシージャ対話の一部として使用され得る。プレゼンテーションレイヤ412は、アプリケーション又はネットワークレイヤによって受け入れられることが知られているデータタイプに基づいて、データを暗号化、解読、及びフォーマットすることができる。
【0062】
[0074]アプリケーションレイヤ414は、通信を制御又は管理するソフトウェアアプリケーションと対話することができる。そのようなアプリケーションを介して、アプリケーションレイヤ414は、(例えば)宛先、ローカルリソース状態若しくは利用可能性、及び/又は通信内容若しくはフォーマッティングを識別することができる。様々なレイヤ402、404、406、408、410、412、414は、利用可能且つ適用可能な他の機能を実行することができる。
【0063】
[0075]ネットワーク内接続構成要素422、424は、物理レイヤ402及びリンクレイヤ404において動作するように示されている。より具体的には、通信の受信及び送信に関して動作が制御されることができるように、ハブが物理レイヤ中で動作することができる。ハブは、通信をアドレス指定する能力又はデータをフィルタリングする能力を欠いているので、より高いレベルで動作する能力をほとんど又は全く有していない。その一方で、スイッチは、アドレス(例えば、MACアドレス)に基づいて通信フレームをフィルタリングすることが可能であるので、リンクレイヤ404中で動作することができる。
【0064】
[0076]その一方で、ネットワーク間接続構成要素426、428は、より高いレベル(例えば、レイヤ406、408、410、412、414)上で動作するように示されている。例えば、ルータは、アドレス(例えば、IPアドレス)に基づいて通信データパケットをフィルタリングすることができる。ルータは、パケットを適切なネットワークに方向付けるために、アドレスに基づいて特定のポートにパケットをフォワーディングすることができる。ゲートウェイは、ネットワークレイヤ及びそれより上位のレイヤで動作し、同様のフィルタリング及び方向付け、並びに(例えば、プロトコル又はアーキテクチャにわたる)データの更なる変換を実行することができる。
【0065】
[0077]接続管理システム450は、様々な実施形態では、様々なレイヤのうちの1つ、複数、全て、又は任意のものと対話すること、及び/又はそれらの上で動作することができる。例えば、接続管理システム450は、ハブがどの端末デバイスと通信するかを動的に調節するように、ハブと対話することができる。別の例として、接続管理システム450は、構成要素が宛先(例えば、MAC、論理、又は物理)アドレスとしてどの端末デバイスを選択するかに影響を及ぼすように、ブリッジ、スイッチ、ルータ、又はゲートウェイと通信することができる。更なる例として、接続管理システム450は、トランスポートレイヤ408上のデータパケットのセグメント化、セッションレイヤ410上のセッション持続時間、並びに/又はプレゼンテーションレイヤ412上の暗号化及び/若しくは圧縮を監視、制御、又は指示することができる。いくつかの実施形態では、接続管理システム450は、特定のレイヤ上で動作する機器(例えば、リンクレイヤ404上で動作するスイッチ)と通信を交換する(例えば、コマンドを送る)ことによって、(例えば、ネットワークデバイスと端末デバイスとの間の)既存の通信を特定の様式でルーティング又は修正することによって、及び/又は既存の通信に基づいて特定の情報(例えば、新しい宛先アドレス)を包含する新しい通信を生成することによって、様々なレイヤと対話することができる。このことから、接続管理システム450は、多様なデバイスとの対話を介して、及び/又は多様なプロトコルスタックレイヤにおける動作に影響を及ぼすことを介して、通信ルーティング及びチャネル確立(又は保守若しくは終了)に影響を及ぼすことができる。
【0066】
[0078]図5は、実施形態によるマルチデバイス通信交換システム500を表す。システム500は、多様なタイプの通信チャネルを通して多様なタイプのエンドポイントと通信するように構成されたネットワークデバイス505を含む。
【0067】
[0079]図示された例では、ネットワークデバイス505は、セルラネットワークを介して(例えば、基地局510を介して)通信506を送信することができる。通信は、動作ネットワーク515にルーティングされることができる。動作ネットワーク515は、通信を受信し、どのエンドポイントが通信に応答すべきかを識別する接続管理システム150を含むことができる。そのような決定は、(例えば、内容解析又はクライアントを示すユーザ入力に基づいて)その通信が関係するクライアントを識別することと、クライアントに関連付けられた1つ以上のエンドポイントの各々について1つ以上のメトリクスを決定することとに依存する可能性がある。例えば、図5では、エンドポイント530A、530B、及び530Cの各クラスタは、異なるクライアントに対応することができる。エンドポイントは、地理的にコロケートされ得るか、分散され得る。メトリクスは、記憶又は学習されたデータ及び/又はリアルタイム監視に基づいて(例えば、利用可能性に基づいて)決定され得る。
【0068】
[0080]接続管理システム150は、1つ以上のルータ525又は他のネットワーク間若しくはネットワーク内接続構成要素を介して様々なエンドポイントと通信することができる。接続管理システム150は、通信、端末デバイス動作、クライアント規則、及び/又はユーザに関連するアクション(例えば、オンラインアクティビティ、アカウントデータ、購入履歴、等)からの、又はそれらに関するデータを、1つ以上のデータストア535において収集、解析、及び/又は記憶し得る。そのようなデータは、通信ルーティングに影響を及ぼし得る。いくつかの例では、データストア535は、システム500中の一般的な符号化器のための訓練を更新するために一般的なデータセットの一部として使用されることができるデータを記憶し、また、以下で説明されるように、蒸留された符号化器を生成する際に使用するために、コンテキスト固有のデータセットの一部として、ソートされたデータを記憶することができる。
【0069】
[0081]特に、通信ルーティング及び/又は処理に影響を及ぼすために、様々な他のデバイスが更に使用されることができる。例えば、図示された例では、接続管理システム150はまた、ウェブサーバ540に接続される。このことから、接続管理システム150は、技術的製品詳細、ニュース、現在の製品提供、現在又は予測される天気など、関心のあるデータを取り出すことができる。
【0070】
[0082]ネットワークデバイス505はまた、ウェブサーバ(例えば、ストリーミングウェブサーバ545を含む)に接続され得る。いくつかの実施形態では、そのようなサーバとの通信は、接続管理システム150との通信交換を開始するための初期オプションを提供した。例えば、ネットワークデバイス505は、特定のウェブページを訪問している間に、通信機会が利用可能であり、そのようなオプションが提示されることができることを検出し得る。
【0071】
[0083]いくつかの実施形態では、通信システム500の1つ以上の要素はまた、ソーシャルネットワーキングサーバ550に接続されることができる。ソーシャルネットワーキングサーバ550は、多様なユーザデバイスから受信したデータを集約することができる。このことから、例えば、接続管理システム150は、所与のトピックに対する一般的な(又はユーザ固有の)インテントを推定すること、又は所与のユーザ若しくはユーザのクラスの一般的な挙動を推定することが可能であり得る。ソーシャルネットワーキングサーバ550はまた、1人以上のユーザについてのソーシャルグラフを維持することができる。ソーシャルグラフは、ソーシャルユーザの第1のレベルのつながり(直接的なつながり)と、追加のレベルのつながり(ユーザの直接的なつながりを通した間接的なつながり)とから成ることができる。
【0072】
[0084]図6は、接続管理システム600の実施形態のブロック図を示す。メッセージ受信機インタフェース605は、メッセージを受信し、他のシステム(例えば、コンテキスト管理エンジン615、タスクエンジン625、等)による後の使用のためにメッセージデータストア620中にメッセージを記憶することができる。いくつかの実施形態では、メッセージは、例えば、ネットワークデバイス又はエンドポイントなどのソースデバイス(例えば、接続管理システム150とは別個に収容されるか、又は同じハウジング内に収容される)によって送信される通信の一部として受信されることができる。いくつかの実施形態では、通信は、一連の通信又は通信交換の一部であり得、それは、2つのデバイス(例えば、ネットワークデバイス及びエンドポイント)間でルーティングされている一連のメッセージ又は通信交換を含むことができる。このメッセージ又は通信交換は、デバイス間の対話の一部であり得、及び/又はデバイス間の対話を定義し得る。通信チャネル又は動作チャネルは、デバイス間のルーティング及び通信交換を容易にするために使用される1つ以上のプロトコル(例えば、ルーティングプロトコル、タスク割り当てプロトコル、及び/又はアドレス指定プロトコル)を含むことができる。
【0073】
[0085]いくつかの実施形態では、メッセージは、ユーザインタフェースにおいて受信された入力に基づいて生成されたメッセージを含むことができる。例えば、メッセージは、ボタン若しくはキーの押下又は記録された音声信号、又は音声テキスト化ソフトウェアに基づいて生成されたメッセージを含むことができる。一事例では、メッセージは、ネットワークデバイスが特定のアプリページ若しくはウェブページを提示していること、又は特定の入力コマンド(例えば、キーシーケンス)を提供したことを検出すると生成されるメッセージなど、自動的に生成されるメッセージを含む。メッセージは、通信交換を開始するためのものなどの命令又は要求を含むことができる。
【0074】
[0086]いくつかの実施形態では、メッセージは、話されるか又はタイプされるかにかかわらず、自然言語コミュニケーションであり得る。自然言語コミュニケーションは、本明細書で使用される場合、人間の間で通信するために使用される言語の通常の使用を指し、特定の仮想アシスタント又は人工知能ツールと通信するために必要とされるプロトコルによって定義される言語の使用と対比される。自然言語コミュニケーションは、通信が人工知能に宛てられていることを人工知能ツールに警告するためのウェイクワードの使用などの制約を必要とすべきではない。加えて、自然言語コミュニケーションは、コミュニケーションをどのようにサービスするかを理解するために、ユーザが特定のキーワード、特定のフレーズを識別すること、又はサービスに明示的に名前を付けることを必要とすべきではない。いくつかの実施形態では、自然言語は、エモティコン及び他の形式の現代コミュニケーションを含み得る。
【0075】
[0087]本技術は、自然言語コミュニケーションを利用するが、コミュニケーションは、特定のキーワード、特定のフレーズを識別することができるか、又はサービスに明示的に名前を付けることができる。例えば、メッセージは、クライアントの識別子を含むことができるか、又はそれに関連付けられることができる。例えば、メッセージは、クライアント(若しくはクライアントに関連付けられたデバイス)を明示的に識別することができ、メッセージは、クライアントに関連付けられたウェブページ若しくはアプリを含むことができるか、又はそれに関連付けられることができ、メッセージは、クライアントに関連付けられた宛先アドレスを含むか、又はそれに関連付けられることができ、又はメッセージは、クライアントに関連付けられたアイテム(例えば、製品)若しくはサービス(例えば、クライアントによって販売のために提供されているか、クライアントによって販売されているか、又はクライアントがサービスするものである)の識別を含むか、又はそれに関連付けられることができる。例示すると、ネットワークデバイスは、通信をエージェントに送信するためのオプションを提供し得る、特定のクライアントのアプリページを提示している場合がある。メッセージに対応するユーザ入力を受信すると、メッセージと特定のクライアントの識別子とを含むように通信が生成され得る。
【0076】
[0088]処理エンジン610は、受信された通信及び/又はメッセージを処理し得る。処理は、例えば、1つ以上の特定のデータ要素(例えば、メッセージ、クライアント識別子、ネットワークデバイス識別子、アカウント識別子など)を抽出することを含むことができる。処理は、フォーマッティング又は通信タイプを(例えば、特定のデバイスタイプ、オペレーティングシステム、通信チャネルタイプ、プロトコル、及び/又はネットワークと互換性があるように)変換することを含むことができる。
【0077】
[0089]コンテキスト管理エンジン615は、(例えば、抽出又は受信された)メッセージを評価し得る。評価は、例えば、メッセージについての1つ以上のインテント又はコンテキストを識別することを含むことができる。コンテキストの例は、(例えば)トピック、感情、複雑性、及び緊急性、並びに製品固有のカテゴリ、又は蒸留された符号化器に関連付けられることができるドメインに対する他のそのような制限を含むことができる。ドメインは、主題、製品、サービス、技術的問題、使用質問、苦情、払戻要求、又は購入要求、等を含むことができるが、それらに限定されない。ドメインは、メッセージがドメインに関連付けられたエージェントに向けられていることを示すメッセージ内のフラグ又は関連付けから直接決定されることができるか、又は、メッセージの機械解析は、メッセージの意味解析(例えば、キーワード、文構造、繰り返される単語、句読点文字、及び/又は非冠詞単語を識別することによってNLPを使用する)、ユーザ入力(例えば、選択された1つ以上のカテゴリを有する)、及び/又はメッセージ関連統計(例えば、タイピング速度及び/又は応答レイテンシ)に基づいてドメインを選択することができる。コンテキスト管理エンジン615の態様は、ユーザからの到来する通信(例えば、テキスト)をコンテキスト又はドメインカテゴリに関連付けるためのシステムを生成及び改訂するために機械学習を使用することができる。例えば、機械学習モデルは、単語とドメインカテゴリとの間の関連付けを生成及び更新するために、到来する通信における単語とフレーズとの間の関連付けの以前のデータ及び結果、並びに現在及び過去の通信からの自然言語データを使用することができる。関連付けの生成及び更新は、構築されたデータセット及び履歴データでの教師あり学習、システム中の現在のルーティング経路及びシステム使用ターゲットについての期待モデル又はプロジェクションモデルに基づく教師なし学習の任意の組み合わせで行われることができる。任意のそのようなデータは、自然言語データを生成するために、又は機械学習モデルを更新するために、NLP(例えば、自然言語理解、自然言語推論、等)のための動作において使用されることができる。そのようなデータは、次いで、動的メッセージ処理を改善するために(例えば、改善されたインテントインジケータデータ結果又は応答メッセージ生成)、クライアントシステムによって使用されることができるか、又はネットワークデバイス上若しくはサーバ上で実行されるアプリケーションと共有されることができる。いくつかの例では、畳み込みニューラルネットワークが、出力インテントカテゴリと共に到来する単語及びフレーズのセットと共に使用されることができる。そのようなニューラルネットワークは、入力単語及びフレーズで訓練され、ドメインカテゴリへの相関を出力することができる。リアルタイムシステム動作は、次いで、到来するユーザ通信と、システム中のユーザ通信及びインテントカテゴリ中の単語との間の関連付けに関するデータを生成するために、そのようなニューラルネットワークのインスタンスを使用することができる。そのようなニューラルネットワークの出力に基づいて、通信に関与するユーザ又はユーザアカウントにドメインカテゴリが割り当てられることができ、関連するアクションが割り当てられることができる。いくつかの実装形態では、ニューラルネットワーク設定は、ユーザ通信における単語と、これらの単語に基づいて選択されたドメインカテゴリ及びアクションとの間の関連付けをシフトするために、使用からのリアルタイム動的フィードバックで修正されることができる。これらの選択は確率的であり得、そのため、AI及び機械学習システムは、システムパフォーマンスを改善するために、ユーザフィードバック及び使用データを統合することによって、ユーザの期待のシフトを自動的に追跡することができる。例えば、ユーザが特定のドメインカテゴリ又はサブカテゴリに対するエンドポイントアクションに方向付けられると、ユーザは、ユーザが異なるアクションを探していることを示すフィードバック通信を提供することができる。これは、将来のドメインカテゴリ割り当てに関連付けられた確率及びアノテーションをシフトするために、システムにおけるリアルタイムフィードバックとして使用されることができる。
【0078】
[0090]いくつかの実施形態では、ドメインは、質問を明確にすること、又は単に追加情報を要求することを含むことができる会話にユーザ110を従事させることによって明確にされることができる。上記のように、様々な機械学習及びAIシステムが、ユーザに応答するためのシステムを生成及び更新するために使用されることができる。例えば、いくつかのシステムでは、各ドメインカテゴリ及びサブカテゴリは、異なる関連付けられた畳み込みニューラルネットワークを有することができる。いくつかの例では、ユーザからの単語を処理することに応答して取られるアクションは、ドメインカテゴリとドメインカテゴリのためのニューラルネットワークとをユーザとの通信に関連付け、割り当てられたニューラルネットワークを使用してユーザ通信を処理することである。本明細書で説明されるように、複数の異なるニューラルネットワークは、会話(例えば、ユーザとシステムとの間の複数の往復コミュニケーション)の過程で使用されることができ、そのようなコミュニケーションのためのデータは、ユーザとの将来の対話のために使用されるニューラルネットワーク又は他のシステムを更新するための機械学習動作と、ドメインカテゴリ及びアクションをユーザ通信からの単語に関連付けるため動作とにおいて使用されることができる。ユーザによる使用データは、ニューラルネットワーク中の重みを調節して、ドメインカテゴリ割り当てを改善し、ユーザドメイン傾向(例えば、初期ユーザ通信に基づいて割り当てられたドメインと比較して、システムとのユーザ会話の終了時に識別される最終ユーザドメイン結果)の変化を追跡するために使用されることができる。
【0079】
[0091]接続管理システム600内では、分類タスク又は他のそのようなAIタスクを実行するために、いくつかの異なるタスクエンジン625が実装されることができる。任意のそのようなタスクは、接続管理システム600内の限定された言語ドメインに関連付けられたタスクを実行するように効率的に構成された特定のドメイン固有のタスクエンジンの一部として蒸留された符号化器を使用することができる。
【0080】
[0092]例えば、タスクエンジン625の対話管理エンジン750は、通信がどのエンドポイントにルーティングされるべきか、及び受信デバイスと送信デバイスとがどのように通信すべきかを決定することができる。メッセージ情報のNLP処理は、特定のドメインに特化された言語訓練に関連付けられたタスクを管理するために、対話管理エンジン750に関連付けられた蒸留された符号化器によって構成されることができる。対話管理エンジン750のための決定は、例えば、特定のネットワークデバイス(又は特定のユーザに関連付けられた任意のネットワークデバイス)がエンドポイントのセット中のエンドポイント(例えば、接続管理システム150に関連付けられた任意のエンドポイント、又は1つ以上の特定のクライアントに関連付けられた任意のエンドポイント)と以前に通信したかどうかに依存する可能性がある。いくつかの例では、対話管理エンジン750は、ユーザ通信に割り当てられたドメインカテゴリに基づいてユーザ通信を異なるエンドポイントにルーティングするためのアクションとして呼び出される。これは、ユーザとの会話中に使用されているエンドポイント(例えば、特定のエージェント又はAIリソース)に対する更新を伴うことができる。いくつかの例では、対話管理エンジン750は、ある特定のドメインに関連付けられることができる。例えば、対話管理エンジン750は、多様な異なる製品を生産及びサポートするある特定の企業についてのドメインに関連付けられることができる。そのような製品は、タイプ及びサポートインフラストラクチャが様々であるが、それでもなお、システム製品に関連付けられた顧客システム要求の一部としてシステムによって履歴的に見られる対話のタイプによって制限される対話のドメインに焦点を当てた蒸留された符号化器によって、システムに到来する通信が効率的に管理されることを可能にするある特定の言語的類似性を有するドメインを有し得る。企業に関連付けられた以前の通信の履歴は、特定の企業の製品に関連付けられたクライアント通信のドメインを特に処理するように構成された効率的な言語エンジンを生成するために、以下で説明されるように符号化器を訓練するために使用されるドメイン固有のデータセットとして使用されることができる。他の例では、言語エンジンを作成するために、履歴データに加えて、ドメインを訓練するために他のデータセットが使用されることができる。対話管理エンジン750は、異なるサブシステムに通信をルーティングするために、又は特定の通信により具体的に適応させられた他のサブシステム若しくはAIエンジンを識別するために、ドメイン固有の言語エンジン(例えば、ドメインに関連付けられた到来するデータの蒸留された符号化器処理についてのドメイン固有の蒸留された符号化器データを含む)を使用して、到来する通信を処理することができる。本明細書で説明されるように、対話管理エンジン750は、ドメイン内の異なる特化された主題(例えば、全体的な会社コンテキスト内の異なる製品ドメイン)に到来する通信をルーティングするドメインに適応させられた1つの蒸留された符号化器を含むことができ、次いで、各ルーティングエンドポイントは、ルーティングドメインのサイズ及びエンドポイントドメインがどのように異なるかに応じて、同じ又は異なる蒸留された符号化器のうちのいずれかであり得る、蒸留された符号化器を使用することができる。
【0081】
[0093]デバイスがどのように通信するかを決定することに関して、対話管理エンジン750は、(例えば)エンドポイントが(例えば)電子メール、オンラインチャット、SMSメッセージ、音声通話、ビデオチャット、等を介して通信に応答すべきかどうかを決定することができる。通信タイプは、例えば、(例えば、クライアント又はユーザによって少なくとも部分的に定義される)通信タイプ優先度リスト、(例えば、一貫性を促進するように)ネットワークデバイスから以前に受信された通信のタイプ、受信されたメッセージの複雑性、ネットワークデバイスの能力、及び/又は1つ以上のエンドポイントの利用可能性に基づいて選択されることができる。明らかに、いくつかの通信タイプは、(例えば、高速メッセージ応答が予期される)リアルタイム通信をもたらすが、他の通信タイプは、(例えば、メッセージ間の(例えば、数分又は数時間の)遅延が許容可能である)非同期通信をもたらすことができる。上記のように、そのような解析は、任意の他のAI又は機械ベースの意思決定に加えて、特定のコンテキストのための言語に対して訓練された蒸留された符号化器によって影響を受ける可能性がある。
【0082】
[0094]いくつかの実施形態では、通信タイプは、テキストメッセージング又はチャットアプリケーションであり得る。これらの通信技術は、ユーザのネットワークデバイス上で新しいソフトウェアがダウンロード及び実行される必要がないという利点を提供する。いくつかの例では、通信タイプは、音声通信タイプであり得る。そのような例では、音声テキスト化システムが、音声通信を、本明細書で説明される実例的なシステムによって解析される単語に処理するために使用されることができる。いくつかの例では、システムによって解析される単語は、オーディオデータによって表される単語を含むことができる。このことから、本明細書で説明されるように、単語は、メモリ中に記憶された記号の組み合わせ(例えば、情報交換用米国標準コード(ASCII)データ)によって表されることができるか、又はオーディオデータ(例えば、音の組み合わせを表すデータ)によって表されることができる。任意のそのようなデータは、本明細書で説明されるように、蒸留された符号化器によって処理されることができる。
【0083】
[0095]更に、対話管理エンジン750は、2つのデバイス間の連続チャネル(例えば、ユーザデバイスとシステムとの間の会話又は繰り返される送信用)が確立されるべきか、使用されるべきか、又は終了されるべきかを決定することができる。連続チャネルは、ネットワークデバイスから指定されたエンドポイントへの将来の通信のルーティングを容易にするように構築されことができる。このバイアスは、メッセージシリーズ(例えば、数日、数週間、又は数ヶ月)にわたっても持続することができる。いくつかの実施形態では、(例えば、エージェントを識別する)連続チャネルの表現は、ネットワークデバイス上に提示されるべき提示中に含まれることができる。このようにして、ユーザは、効率を促進するために通信が一貫してルーティングされるべきであることを理解することができる。
【0084】
[0096]対話管理エンジン750又は任意のタスクエンジン625は、様々なコンテキストにおいてアカウントエンジン630と対話することができる。例えば、アカウントエンジン630は、デバイスに対応するアカウントを識別するために、アカウントデータストア635中のネットワークデバイス又はエンドポイントの識別子をルックアップし得る。更に、アカウントエンジン630は、以前の通信交換についてのデータ(例えば、時間、関与する他のデバイス(複数可)、チャネルタイプ、解決段階、トピック(複数可)、及び/又は関連付けられたクライアント識別子)、通信チャネル(例えば、1つ以上のクライアントの各々について、任意のチャネルが存在するかどうか、各チャネルに関連付けられたエンドポイント、確立時間、使用頻度、最後の使用日、任意のチャネル制約、及び/又はサポートされる通信のタイプを示す)、ユーザ若しくはエージェントの選好若しくは制約(例えば、端末デバイスの選択、応答レイテンシ、端末デバイスの一貫性、エージェンのト専門知識、及び/又は通信タイプの選好若しくは制約に関する)、及び/又はユーザ若しくはエージェントの特性(例えば、年齢、話された又は選好された言語(複数可)、地理的位置、関心など)を維持することができる。そのような情報は、ドメインを識別し、アカウントエンジン630によって識別されたコンテキスト又はドメインに基づいて異なる蒸留された符号化器間で選択するために使用されることができる。
【0085】
[0097]更に、タスクエンジン625は、アカウントデータストア635が現在のチャネルデータを反映するように更新されることができるように、様々な接続チャネルアクションをアカウントエンジン630に警告することができる。例えば、チャネルを確立すると、対話管理エンジン750は、アカウントエンジン630に確立を通知し、ネットワークデバイス、エンドポイント、アカウント、及びクライアントのうちの1つ以上を識別することができる。アカウントエンジン630は、その後、利用されているエージェントの一貫性をユーザが認識することができるように、チャネルの存在をユーザに通知することができる。
【0086】
[0098]タスクエンジン625は、クライアントマッピングエンジン640と更に対話することができ、それは、通信を1つ以上のクライアント(及び/又は関連付けられたブランド)にマッピングすることができる。いくつかの実施形態では、ネットワークデバイス自体から受信される通信は、クライアントに対応する識別子(例えば、クライアント、製品、サービス、ウェブページ、又はアプリページの識別子)を含む。識別子は、(例えば、クライアントマッピングエンジン640が検出し得る)メッセージの一部として含まれることができるか、又はメッセージ包含通信における他のデータとして含まれることができる。クライアントマッピングエンジン640は、次いで、クライアントについての追加のデータ及び/又はクライアントの識別子を取り出すためにクライアントデータストア645中の識別子をルックアップし得、そのような情報は、上記で説明されたようにドメイン又はコンテキストを識別し、特定のドメイン又はコンテキストのための特定の蒸留された符号化器を有するタスクエンジン625の異なるエンジン間の選択を支援するために使用されることができる。
【0087】
[0099]いくつかの実施形態では、メッセージは、特にいずれのクライアントにも対応しない場合がある。例えば、メッセージは、一般的なクエリを含み得る。クライアントマッピングエンジン640は、例えば、メッセージに対して意味解析を実行し、1つ以上のキーワードを識別し、キーワード(複数可)に関連付けられた1つ以上のクライアントを識別し得る。いくつかの実施形態では、単一のクライアントが識別される。いくつかの実施形態では、複数のクライアントが識別される。各クライアントの識別は、次いで、ユーザが(例えば、関連付けられたエンドポイントを介して)通信するためのクライアントを選択することができるように、ネットワークデバイスを介して提示され得る。いくつかのそのような例では、一般的な符号化器での初期解析が、メッセージについてのドメインを識別するために使用されることができ、タスクエンジン625の蒸留された符号化器が更なる処理を実行することを可能にすることができるか、又はドメインに関連付けられ、本明細書の説明に従ってそのドメインのための蒸留された符号化器を有するエンドポイント(例えば、異なるサーバ又はデバイス)へのメッセージのルーティングを可能にすることができる。
【0088】
[00100]クライアントデータストア645は、クライアントに関連付けられた1つ以上のエンドポイント(及び/又はエージェント)の識別を含むことができる。異なる例では、クライアントについての情報が、ドメインに関連付けられることができるか、又はクライアントについてのサブエリアが、異なるドメインに関連付けられることができ、エージェント及びエンドポイントの異なるグループが、ドメインの異なるセットに関連付けられることができる。端末ルーティングエンジン650は、ルーティング決定に影響を及ぼすように、1つ、複数、又は全てのそのようなエンドポイント(及び/又はエージェント)の各々に関するデータを取り出すことができるか、又は収集することができる。例えば、端末ルーティングエンジン650は、エンドポイントデータストア655を維持し得、それは、エンドポイントのデバイスタイプ、オペレーティングシステム、通信タイプ能力、インストールされたアプリケーションアクセサリ、地理的位置及び/又は識別子(例えば、IPアドレス)などの情報を記憶することができる。情報はまた、経験レベル、ポジション、スキルレベル、知識ベース(例えば、エージェントが精通しているトピック及び/又は様々なトピックについての知識のレベル)、性格メトリクス、労働時間、話された言語(複数可)及び/又は人口統計情報などのエージェント情報を含むことができる。一部情報は、動的に更新されることができる。例えば、エンドポイントが利用可能であるかどうかを示す情報は、(例えば)エンドポイントからの通信(例えば、デバイスがスリープしているか、オフ/オンにされているか、アイドル/アクティブであるかを識別するか、又は入力がある時間期間内に受信されたかどうかを識別する)、通信ルーティング(例えば、エンドポイントが通信交換に関与しているか、又は通信交換の一部となるように割り当てられているかを示す)、又は通信交換が終了又は開始したことを示す、ネットワークデバイス又はエンドポイントからの通信に基づいて動的に更新されることができる。異なる例では、上記の任意のグループ化は、ドメインとして機能することができ、限定情報は、蒸留された符号化器において使用される。
【0089】
[00101]様々な状況では、1つ以上の通信交換に従事していることは、エンドポイントが別の通信交換に従事するために利用可能でないことを必ずしも示さないことを認識されたい。通信タイプ(例えば、テキスト、メッセージ、電子メール、チャット、電話)、クライアント識別又はユーザ識別ターゲット応答時間、及び/又はシステム負荷(例えば、一般に、又はユーザに関する)などの様々な要因が、エンドポイントがいくつの交換に関与し得るかに影響を及ぼし得る。
【0090】
[00102]接続管理システム600がメッセージの処理を終え、メッセージをエンドポイントに中継することを決定すると、メッセージ送信機インタフェース660は、通信をエンドポイントに送信することができる。送信は、例えば、別個のハウジング中に収容されたデバイスへのワイヤード又はワイヤレス送信を含み得る。エンドポイントは、接続管理システム150と同じ又は異なるネットワーク(例えば、ローカルエリアネットワーク)中のエンドポイントを含むことができる。それ故に、エンドポイントに通信を送信することは、ネットワーク間又はネットワーク内接続構成要素に通信を送信することを含むことができる。
【0091】
[00103]図7は、本技術のいくつか態様による異なるタスクエンジン625の実例的な実施形態を示す。異なる例では、異なるタスクエンジン625は、上記で説明されたように接続管理システム600中に存在することができるが、他の例では、本明細書の説明によるタスクエンジンは、クライアントデバイス、エージェントデバイス、顧客デバイス、又はドメイン固有のAI処理及びタスクパフォーマンスのために構成された任意の他のデバイスを含む任意のデバイス中に存在することができる。タスクエンジン625のいくつかの例は、タクソノミエンジン710、インテント識別エンジン715、アノテーションエンジン720、品質評価エンジン725、インテントモデリングエンジン730、人工知能エンジン735、インテントデータコンパイラ740、及び対話管理エンジン750を含み得る。異なるデバイスは、そのようなエンジン、又はドメイン固有のNLPのための蒸留された符号化器を含む他のエンジンの任意の組み合わせを含み得る。そのようなエンジンの組み合わせは、データの異なる組み合わせを生成することができ、結果として生じるコンパイルされたデータは、本明細書で更に説明されるように、解析及び/又は操作のために、ネットワークデバイス、クライアントデバイス、及び/又は端末デバイスなどのコンピューティングデバイスのインタフェースに提供され得る。
【0092】
[00104]通信705は、タクソノミエンジン710に提供され得る。通信705は、本明細書で説明されるように自然言語であり得、1つ以上の単語を含み得る。いくつかの実施形態では、通信705は、異なる言語の単語、ピクトグラム若しくはエモティコンとして具現化された単語、又は標準の意味若しくは辞書の意味にかかわらずインテントカテゴリに関連付けられた文字列若しくは画像を含むことができる。いくつかの例では、単語は、オーディオデータとして通信705において受信されることができる。タクソノミエンジンは、プロセッサと連携して、通信705を構文解析して、本明細書では「主要語(operative words)」とも呼ばれる1つ以上のキーワードを識別するように構成され得る。主要語は、通信705を開始するユーザに利用可能なアクションに関連し得る。例えば、通信705は、「I want to pay my bill(請求書を支払いたい)」と述べ得る。主要語は、「pay bill(請求書を支払う)」であり得る。タクソノミエンジン710は、主要語をインテント識別エンジンに渡し得る。インテント識別エンジン715は、プロセッサと連携して、タクソノミエンジン710から主要語を受信し得る。インテント識別エンジン715は、インテントを識別するために主要語を使用し得る。実例的なインテントは、「pay_bill(請求書を支払う)」、「change_address(住所を変更する)」、「speak_to_representative(代表と話す)」、「change_due_date(期日を変更する)」、「product_information(製品情報)」、「make_a_reservation(予約する)」、「make_a_purchase(購入する)」などを含む。インテントは、通信705を発信するユーザに利用可能なアクションを定義し得る。いくつかの実施形態では、インテントは、予め定義され、データストア745中に記憶され得る。そのような実施形態では、インテント識別エンジン715は、対応する予め定義されたインテントを見つけるために、主要語を用いてデータストア745にクエリし得る。例えば、インテント識別エンジン715は、単語「pay bill(請求書を支払う)」を用いてデータストア745にクエリして、「pay_current_bill(現在の請求書を支払う)」の最も近い一致するインテントを識別し得る。いくつかの実施形態では、主要語は、既存のインテントに対応しない場合がある。そのような実施形態では、インテント識別エンジン715は、新しいインテントを作成し、それを受信された主要語と相関させてデータストア745中に保存することができる。インテント識別エンジン715は、識別されたインテントをアノテーションエンジン720に渡し得る。
【0093】
[00105]別の例では、インテント識別エンジンは、AIプロセッサ、ニューラルネットワーク、又は通信若しくは通信705の一部分を解析するための他のシステムを用いて実装されることができる。これは、クライアントデバイスからのメッセージに関連付けられたインテント値を選択するための自然言語処理を含むことができる。例えば、クライアントデバイスが「appointments(アポイントメント)」とテキスト入力する場合、単語は、インテント識別エンジン715を使用してスケジューリングのためのインテントカテゴリを識別するために処理されることができる。そのようなインテントカテゴリは、全てのアポイントメントを見る、アポイントメントをキャンセルする、アポイントメントをスケジューリングし直す、又は他のそのような値のためのアクションオプションなどのアクション又はサブカテゴリを更に含むことができる。インテント識別エンジンを使用して、テキスト「appointments(アポイントメント)」は、インテント値に関連付けられた応答を選択するために処理されることができる。一例では、インテント識別エンジン715の機械学習モデルは、全てのアポイントメントを見ることのインテント値に関連付けられた応答メッセージを受信することが、インテントインジケータデータ「appointments(アポイントメント)」に最も密接に対応すると決定し、インテントカテゴリを明確にするためのメッセージで応答することができる。例えば、応答アクションは、内容「see all appointsments?(全てのアポイントメントを見ますか?)」を有するメッセージであり得る。対照的に、「new appointment(新しいアポイントメント)」、「cx apptmt」、「apt?」、「nxt apt」、「apt time?(apt時間?)」、又は「cng apt time?(cng apt時間?)」を有するクライアントデバイスからの新しいメッセージは各々、インテント識別エンジン715が、メッセージから識別された単語から決定された異なるインテント値に基づいて異なる応答を提供することをもたらすことができる。
【0094】
[00106]インテント識別システムは、インテントカテゴリを識別するために、AI解析への入力又は主要語としてメッセージからの単語を使用することができる。単語は、ユーザがインテント解析をカスタマイズし、ユーザデバイスからの通信のためのインテントカテゴリを選択するために、履歴データ、ユーザプロファイルデータ、又は任意のそのようなソースであり得、且つそれらと集約されることができるインテントデータとして動作する。一例は、メインアカウントと、開設され、顧客に関連付けられた新しいフレックスアカウントとの間で金銭を移動させる試みを示す、顧客からの自然言語テキストを含むことができる。インテント処理システムは、ユーザ通信における単語を評価して、顧客が対処したい問題を決定することができる。この特定の事例では、顧客は、あるオンラインアカウントから別のアカウントに資金を振り込むのに苦労している場合がある。提供された単語に基づいて、インテント識別エンジン715は、複数のソースからデータを収集して、ユーザ通信に応答してどのインテントカテゴリ、サブカテゴリ、及び関連するアクションを使用すべきかを決定し得る。いくつかの例では、ユーザメッセージの単語に加えて、コンテキストデータが使用されることができる。このコンテキストデータは、要求又は問題が共有されるコンテキストに関連付けられたインテント又はアクション値、緊急性のレベル、顧客のストレス又は不安レベル、時間的制約があるかどうかなどを含むことができる。
【0095】
[00107]一例では、識別されたインテントカテゴリに基づいて、インテント識別エンジン715は、識別されたインテントカテゴリに基づいて人工知能エンジン735を選択する。この特定の人工知能エンジン735は、複数の異なるAIエンジンオプションから選択されることができる。例えば、異なるインテントカテゴリ又はカテゴリのグループが、AIエンジン735を含む異なるAIエンジンに関連付けられることができる。AIエンジン735は、識別されたインテントカテゴリに関連付けられた顧客によって提供された問題又は要求を解決するために、インテントカテゴリに関連付けられる。例えば、ユーザ通信から識別されたインテントカテゴリに基づいて、システムは、顧客が資金をアカウントに振り込むことができる前にアカウントが認可されなければならないことを決定することができる。更に、システムは、アカウントの認証がオンラインで実行されることができると決定することができる。識別されたプロセスに基づいて、インテント識別エンジン715は、インテントを解決するだけでなく、肯定的な顧客体験につながる様式で行うような様式で顧客インテントに応答するためのアクションを容易にするAIエンジン735を選択する。これは、顧客をクライアント顧客サービスノードに向けること、又はそのようなノードと接続チャネルを確立することを支援することを含むことができる。AIエンジン735に選択されたルーティング経路に加えて、システムは、データ(例えば、インテントインジケータデータ、アクションデータ、ユーザ人口統計データ、等)に基づいて、カスタマイズされたルーティング経路に関連付けられたカスタマイズされた自然言語コミュニケーションを生成することができる。これは、ユーザ通信とインテント識別エンジン715によって識別されたインテントカテゴリとに応答して、アクションとしてユーザにカスタマイズされた情報を提供するために、ユーザのためのカスタマイズされた言語及び専門用語(例えば、「問題が分かりました(I see the issue)」)を含むことができる。そのようなシステムは、適切な解像度に到達し、通信効率を改善するために、個々のユーザによって使用されるシステムリソースを低減することによって、デバイス及び通信システムの動作を改善する。
【0096】
[00108]いくつかの例では、インテントモデリングエンジン730の機械学習モデルは、ネットワークデバイス(例えば、顧客)とサービス(例えば、クライアント)との間の通信を監視するフィードバックシステムを使用することができる。そのようなパフォーマンス監視システムは、顧客とクライアントとの間の対話を監視して、クライアントが顧客のインテントに対処するのに効果的であるかどうかを決定することができる。そのような監視はまた、インテント識別エンジン715、AIエンジン735、インテントモデリングエンジン730、品質評価エンジン725、又はコンテキスト管理エンジン615の任意の他の態様に対する更新のための訓練データを提供することができる。例えば、パフォーマンス監視システムは、新しいインテントインジケータデータが顧客から受信されたときに、任意の顧客発言を評価して、インテントが満たされているかどうかを決定し得る(例えば、顧客がクライアントシステムの現在のノードとの対話から予期される結果を達成していないという不満レベル又は機械学習識別されたインジケータを監視する)。例示的な例として、パフォーマンス監視システムは、顧客が「Done(できました)」で応答したときに、クライアントが提供したルーティング経路から顧客が肯定的な結果を認めたこと、及び顧客のインテントを達成するためのルーティング経路を顧客が選択することが可能であったことを決定し得る。更に、顧客が「Thanks! That worked!(ありがとう!うまくいきました!)」で応答したとき、パフォーマンス監視システムは、顧客のインテントが満たされたと決定し得る。この情報は、次いで、将来のシステムユーザについてのインテント値を識別するための他のユーザのインテントインジケータデータの解析を含めて、システムの任意の態様についての機械学習モデルを更新するために使用されることができる。例えば、パフォーマンス監視システムは、クライアントメトリクスを監視して、なぜある特定のルーティング経路が否定的又は肯定的な顧客結果で選択されるかを決定する調査アルゴリズムを実装し得る。この決定に基づいて、パフォーマンス監視システムは、動作、ノード選択、及びルーティング経路を更新して、システムパフォーマンスを改善するために、機械学習アルゴリズムにフィードバックを提供することができる。異なる実装形態では、そのような更新は、ユーザ向けの通信チャネルへの承認及び公開のために集約され、クライアントに提示されることができるか、又は自動的な連続リアルタイム若しくはほぼリアルタイム(例えば、処理及び他のリソース制限が与えられたシステム中で待ち行列に入れられるように)の動的更新のために構成されることができる。いくつかの例では、動的更新は、アノテーションデータ中のシフトをチェックするための閾値追跡を用いて自動的に実施され、ある特定の閾値が自動動的更新によって超えられたときに顧客レビューを要求する。例えば、ある特定の単語がインテントカテゴリとの初期相関値を割り当てられる場合、元のアノテーション値から離れる、所与の割合(例えば、5%、20%、50%、等)を上回る閾値変化は、システムアドミニストレータ又はクライアントによるレビュー及び承認を要求することができる。これは、データ中の予期されない傾向が、システム動作を予期せず中断すること、又はユーザ及びクライアントの期待と整合しないアクションを生成することを防止することができる。本明細書で説明されるように、接続管理システム(例えば、接続管理システム150)をサポートするサーバシステムは、任意のそのような動作を実行することができるか、又は動作は、そのような動作を実行するように共に動作する異なるサブシステム又はエンジンを有するネットワーク化されたサーバシステムの一部であり得る。
【0097】
[00109]アノテーションエンジン720は、プロセッサと連携して、インテント識別エンジン715から、識別されたインテントカテゴリを受信し得る。アノテーションエンジン720は、識別されたインテントのアノテーションを容易にし得る。アノテーションは、通信と識別されたインテントとの間の関連付けの品質を定義し得る。いくつかの実施形態では、アノテーションエンジン720は、式を適用することによって関連付けの品質を自動的に評価し得る。例えば、アノテーションエンジン720は、主要語「pay bill(請求書を支払う)」とインテント「pay_current_bill(現在の請求書を支払う)」との間で66%の品質を自動的に算出し得、その一方で、100%の品質が、主要語「pay bill(請求書を支払う)」及びインテント「pay_bill(請求書を支払う)」に割り当てられ得る。いくつかの実施形態では、アノテーションエンジン720は、関連付けの品質の手動評価を受けるために、主要語及び識別されたインテントをコンピューティングデバイスのユーザインタフェースに提供し得る。この手動評価は、ユーザ通信に対するAIベースの応答を監視するエージェントによるフィードバックとして提供されることができる。この手動評価はまた、コンテキスト管理エンジン615の任意の態様に対する改訂において使用されるべき訓練データを生成するために、通信後に使用されることができる。
【0098】
[00110]いくつかの例では、アノテーションエンジン720は、AIエンジン735と並列に動作することができる。そのようなシステムでは、インテント識別エンジン715がインテントカテゴリを選択すると、AIエンジン及びアノテーションエンジン720は、インテントカテゴリを別個に提供される。AIエンジン735は、インテントカテゴリに基づいて1つ以上のアクションを自動的に選択することができる。アノテーションエンジン720は、コンテキスト管理エンジン615の動作の任意の態様に関する信頼性フィードバックを提供することができる。これは、他の可能なインテントカテゴリと比較すると、特定のインテントカテゴリの選択における信頼性を含むことができる。これは、AIエンジン735によって識別された複数の可能なアクション間の信頼性を含むことができる。アノテーションエンジン720は、現在の通信705への応答のための閾値アクションを設定することと、コンテキスト管理エンジン615の任意の態様を更新するための訓練データを生成することとの両方のために使用されることができる、AI選択動作に対する品質チェックを提供することができる。例えば、アノテーションエンジン720は、通信に応答するインテント又はアクションに関連付けられた定性的信頼スコアを識別することができる。いくつかの例では、アノテーションエンジン720の定性的スコアが閾値未満である場合、AI応答に依拠するのではなく、通信を特定のエージェント又は他のエンドポイントにルーティングするなど、フォールバックアクションが取られる。他の例では、エージェントは、パフォーマンスによってグループ化されることができる。高い信頼スコアを有するアノテーションエンジン720の結果は、エラーについての閾値及び予期される結果がエージェントパフォーマンスによって影響を受ける可能性がより低いので、より低いパフォーマンスのエージェントにルーティングされることができる。エージェントの裁量が重要である可能性がより高い、低い信頼スコアを有するアノテーションエンジン720の結果は、より高いパフォーマンススコアを有するエージェントにルーティングされることができる。これはまた、より高パフォーマンスのエージェントがコンテキスト管理エンジン615のパフォーマンスの複雑な態様をレビューし、新しいカテゴリ又は他の重要なシステム変更をもたらす可能性があるインテントカテゴリに関するフィードバックを提供するので、訓練データにおける信頼性を高めるために使用されることができる。アノテーションエンジン720は、このことから、例えば、インテントカテゴリフィードバックの一部として定性的値を提供することができるだけでなく、システムに追加されることができる欠落したカテゴリ、不要な若しくは冗長なカテゴリ(例えば、定期的に同様の信頼値を有し、同様若しくは同一のシステムアクションをもたらすインテントカテゴリ)、又は他のそのような問題を識別するために使用されることもできる。
【0099】
[00111]インテントモデリングエンジン730は、プロセッサと連携して、インテントに対して作成されたタクソノミ及びアノテーションに基づいてインテントのモデルを構築するように構成される。モデルは、インテントを精緻化すること、新しいインテントを追加すること、異なるタクソノミをインテントに関連付けること、異なるインテントをある特定のタクソノミに関連付けることなどを助けるために使用され得る。
【0100】
[00112]人工知能エンジン735は、プロセッサと連携して、人工知能をインテントモデルに適用してインテント関連データを集約し、結果及び解析に基づいて取られ得るアクションについての結論を導き出すように構成される。インテントデータコンパイラ740は、プロセッサと連携して、人工知能エンジン735によって出力された情報を集約し、コンピューティングデバイスによって表示されることができるようにそれを定式化するように構成される。コンピューティングデバイスは、表示及び解析されたデータを操作及び構成することが可能である。人工知能エンジン735は、例えば、インテントを反映するためのより良いモデルを学習し、適用し、反復的に発展させる人工知能システムで構成されたコンピュータによって実装され得る。これらのモデルは、データにおける傾向を学習し、インテントをより良く予測するために、到来するデータを用いて経時的に精緻化され得る。上記で説明されたように、人工知能エンジン735は、複数のAIエンジンを有するシステムの一部であり得るか、又は異なるAIシステムを含むことができる。例えば、ある特定のシステムでは、各インテントカテゴリは、異なるニューラルネットワークに関連付けられることができる。主要語又は通信で受信された単語の特定の組み合わせが、特定のインテントカテゴリのためにカスタマイズされた特定のニューラルネットワークによって解析されることができる。より狭いインテントカテゴリに対して異なるニューラルネットワークを使用することによって、個々のニューラルネットワークのサイズ及び複雑性が制限され、システムリソース制限のコンテキストにおいてより効率的に管理されることができる。例えば、ユーザが現在の請求書、過去の請求書、又は部分的な請求書の支払いをしようとしているかを決定するニューラルネットワークは、これらのオプションと、アカウントアクセスヘルプ、詐欺支援、新規アカウント開設、又はシステム中で生じる可能性がある他の広く分岐したアクションのためのオプションとの間で決定するニューラルネットワークよりも複雑でなくリソース集約的でないであろう。しかしながら、ドメイン制限された情報環境においてそのようなタスクを実行するためにエンジンの一部として蒸留された言語符号化器を使用することは、そのようなタスクのために一般的なNLPエンジンを使用することと比較して、リソース使用を制限する。
【0101】
[00113]上記の言語解析の例のうちのいずれでも、蒸留された符号化器は、言語解析を実行するだけでなく、蒸留された符号化器データのドメイン固有の訓練に起因して改善された結果を提供することができる。多くのドメインは、イディオム、一般的なミススペル、又は一般的なNLPがミスする他のコンテキスト固有の言語で埋められる。例えば、プログラミング技術ドメインは、ドメイン内の特化された意味とドメイン外の異なるより一般的な意味とを有する単語を含むことができる。「Python」、「float」、及び「terminal」は、プログラミングドメインにおいて、最も一般的な一般言語解釈とは非常に異なる意味を有する。一般的な符号化器データは、「java」をコーヒーにより類似したものとして解釈することを予期されるが、プログラミング固有の蒸留された符号化器は、「java」をJava(登録商標)プログラミング言語を指すものとして解釈することができる。特に、単一の単語が複数のトークン埋め込みによって表されるコンテキスト的な埋め込みを有するBERT構造に起因して、コンテキストについての蒸留された符号化器データは、一般的な言語データセットにおける主要な用途ではないコンテキストの好ましい言語の存在の捕捉に起因して、優れたNLPタスクパフォーマンスを提供することができる。
【0102】
[00114]更に、(例えば、図1Cに例示されるような)訓練の構造に起因して、蒸留された符号化器を訓練するために使用されるドメイン固有のデータセットは、ラベル付けされる必要がない。これは、ドメイン情報環境から使用されるべきドメイン固有のデータが、使用前に有意な処理なしに蒸留された符号化器データを訓練する際に使用されること、並びに蒸留された符号化器を使用しているシステムからドメイン固有のデータを収集し、そのデータを更新されたドメイン固有のデータセットの一部として使用して、閾値パフォーマンスレベルに達するまで蒸留された符号化器を精緻化及び改善する能力の両方を可能にする。
【0103】
[00115]例えば、ドメインは、蒸留された符号化器を使用するエンジンから利益を得るであろうタスクと共に識別されることができるが、ここで、ドメイン固有のデータセットは、利用不可能であるか、又は好ましい結果を生成するのには不十分な大きさであるかのうちのいずれかである。そのような例では、初期NLP符号化器は、一般的なシステム又は不十分なドメイン固有の訓練を伴う蒸留された符号化器のうちのいずれかを用いて実装されることができる。動作中、ドメイン固有のタスクエンジンによって受信されたリアルタイムデータが収集され、ドメイン固有のデータセットに追加されることができる。更新されたドメイン固有のデータセットは、閾値パフォーマンスが満たされるまで、NLP基準に対して測定されたパフォーマンスと共に繰り返し使用されることができるか、又は閾値量のドメイン固有のデータが、ターゲット結果を達成すると予期されるドメイン固有のデータの量に一致するように収集されることができるかのうちのいずれかである。使用中に収集されたドメイン固有のデータは、次いで、ドメイン固有のNLPタスクのための更新された言語エンジンにおいて使用されることができる更新された蒸留された符号化器を訓練するために使用されることができる。いくつかの例では、3ギガビットのドメイン固有の言語データセットが、ターゲットパフォーマンスレベルを達成したが、2ギガビットよりも小さいドメイン固有のデータセットは、著しく劣化したNLPパフォーマンスをもたらした。
【0104】
[00116]上記で説明されたように、機能的な蒸留された符号化器データを生成するために、一般的な符号化器データが使用され、次いで、ドメイン固有のデータセットで訓練される前にフィルタリングされることができる。図8は、一般的な符号化器データ830の例の一般的な構造を例示する。図1Cに関して上記で説明されたように、一般的な符号化器データ830は、モデル(例えば、BERT)から開始し、大きい一般的なデータセットを使用してモデルを訓練することによって生成されることができる。モデル及び結果として生じるデータセットの構造は、特定の実装形態のために修正されることができるが、レイヤ間の異なる接続及びネットワーク値(例えば、ニューラルネットワーク接続)を有するレイヤを含むことができる。図8は、このことから、一般に、高レベル符号化器構造を説明しており、特定の実装形態の詳細は、当業者には明らかであろう。一般的な符号化器データ830の実例的な構造は、第1のレイヤ835、第2のレイヤ836、及び第3のレイヤ837から最後の3つのレイヤ845、846、及び847までのN個のレイヤを含む。図1Cのブロック194に関して上記で説明されたフィルタリングプロセスは、生成されたフィルタリングされた符号化器データへの一般的な符号化器データ830のレイヤのサブセットを除去することを伴うことができる。一般的な符号化器データ830中のレイヤの除去から生じるレイヤ構造を維持しながら、フィルタリングされたデータを訓練することは、図9の蒸留された符号化器データをもたらす。
【0105】
[00117]例えば、一般的な符号化器データ830が25個のレイヤで構築され、偶数レイヤが除去される場合、これは、第2のレイヤ836及び第n-1のレイヤ846が他の中央レイヤと共に除去される、13個のレイヤを有するフィルタリングされた符号化器データをもたらす。結果として生じるフィルタリングされた符号化器データ(図示せず)は、NLPのためのパフォーマンスを提供したレイヤ間の正確なニューラルネットワーク接続を欠いているが、一般的な符号化器データ830のほぼ半分のサイズを有するであろう。フィルタリングされた符号化器データの13個のレイヤの構造を維持しながら、フィルタリングされた符号化器データをドメイン固有のデータセットで訓練することは、メモリフットプリントが大幅に低減されたドメイン固有のNLP機能を提供することができる。図8のレイヤに一致するように名前が付けられたレイヤを有する実例的な結果として生じる蒸留された符号化器データ930は、蒸留された第1のレイヤ935と、蒸留された第3のレイヤ937と、蒸留された第(N-2)のレイヤ945と、蒸留された第Nのレイヤ947とを含み、偶数レイヤは、フィルタリングに起因して欠落している。エンジン実装における適切な訓練及び微調整を用いて、蒸留された符号化器データ930は、一般的な符号化器データ930と比較して改善されたドメイン固有のパフォーマンスを、低減されたリソース使用で提供することができる。上記で説明されたように、いくつかの例では、蒸留された符号化器データ930が言語エンジン(例えば、言語エンジン184、又は任意のタスクエンジン625の言語エンジン)において使用されるとき、エンジンによって処理されるリアルタイムデータは、ドメイン固有のデータセットを更新するために収集及び使用されることができる。蒸留された符号化器は、次いで、更新されたドメイン固有のデータセットで再訓練されることができ、パフォーマンスは、異なるドメイン固有のデータセットを使用して(例えば、異なるデータ及び異なるサイズの訓練データの両方を使用して)試験されて、異なるデータセットについてのパフォーマンスと比較して、より大きいドメイン固有の訓練データセットに関連付けられた増大した蒸留された符号化器サイズのバランスを取る好ましいパフォーマンスを見出すことができる。そのようなパフォーマンスは、ドメイン固有の定義及び言語のNLPに関連付けられたドメイン固有の言語ベクトルの解析と共に、標準化されたNLPパフォーマンス測定ツールを使用して、異なるドメイン固有のデータセットで訓練された蒸留された符号化器について測定されることができる。
【0106】
[00118]図10は、本技術のいくつかの態様による方法1000のフローチャートの例を示す。いくつかの例では、方法1000は、図11のデバイス又は本明細書で説明される任意のデバイスなどのデバイスによって実行されることができる。いくつかの例では、方法1000は、デバイスの1つ以上のプロセッサによって実行されると、デバイスに方法1000を実行させる、コンピュータ可読媒体中に記憶された命令であり得る。
【0107】
[00119]方法1000の動作1002は、自然言語処理の一般的な符号化器データにアクセスすることを含み、ここにおいて、符号化器データは、ドメイン固有ではない一般的なドメインデータセットから生成される。
【0108】
[00120]方法1000の動作1004は、ドメイン固有のデータセットにアクセスすることを含む。ドメイン固有のデータセットは、1つ以上の教科書からのデータ、(例えば、製品若しくは製品のセットについての)ビジネス若しくはコンテキスト固有のデータセットからの履歴データ、又は訓練されたNLPシステムのために使用されるべきドメインに限定された若しくはそれを対象とする任意の他のそのようなデータセットなど、本明細書で説明される任意の限定されたデータセットであり得る。
【0109】
[00121]方法1000の動作1006は、符号化器データのサブセットを使用して、フィルタリングされた符号化器データを生成することを含む。
【0110】
[00122]方法1000の動作1008は、蒸留された符号化器データを生成するために、ドメイン固有のデータセットを使用して、フィルタリングされた符号化器データを訓練することを含む。
【0111】
[00123]方法1000の動作1010は、ドメイン固有のデータセットに関連付けられたタスク出力を構成するために、蒸留された符号化器データについての調整値を生成することを含む。
【0112】
[00124]いくつかの例では、方法1000は、追加の動作、繰り返される動作、又は介在する動作を含むことができる。例えば、調整値の生成若しくは更新及び/又は蒸留された符号化器データの更新の後、例は、上記で説明されたように、ドメイン固有のリアルタイムNLPのために、到来するデータセット又は通信をリアルタイムで解析するために、そのような調整データ及び蒸留された符号化器データを使用することができる。
【0113】
[00125]いくつかの例では、方法1000の後に、蒸留された符号化器データを使用してドメイン固有のデータのリアルタイムストリームを処理することと、ドメイン固有のデータのリアルタイムストリームを使用してドメイン固有のデータセットを更新することと、更新された蒸留された符号化器データを生成するために、更新されたドメイン固有のデータセットを使用して、フィルタリングされた符号化器データを再訓練することと、蒸留された符号化器データ及び更新された蒸留された符号化器データについてのパフォーマンスメトリクスを生成することと、パフォーマンスメトリクスに基づいて、蒸留された符号化器データと更新された蒸留された符号化器データとの間で選択することとを含む動作が続くことができる。
【0114】
[00126]いくつかの例は、ドメイン固有のデータセットがラベルなしデータである場合に動作することができる。いくつかの例は、蒸留された符号化器データがドメイン固有のデータセットのラベルに関連付けられたカテゴリを識別するように構成される場合に動作することができる。いくつかの例は、ドメイン固有のデータセットがラベルなしデータを含む場合に動作することができる。いくつかの例は、蒸留された符号化器データがアクション可能な要求に関連付けられた双方向通信においてリアルタイムデータを識別するように構成される場合に動作することができる。いくつかの例は、ドメイン固有のデータセットを使用して、フィルタリングされた符号化器データを訓練することが、勾配累積を活用するのに十分な量のドメイン固有のデータセット中のランダムに選択された単語で動的マスキングを実行することを含む場合に動作することができる。いくつかの例は、ドメイン固有のデータセットを使用して、フィルタリングされた符号化器データを訓練することが、マスキングされた言語モデルを使用して、フィルタリングされた符号化器データを訓練することを含む場合に動作することができる。いくつかの例は、ドメイン固有のデータセットが閾値サイズよりも小さく、閾値サイズが一般的なドメインデータセットよりも小さい場合に動作することができる。いくつかの例は、一般的なドメインデータセットがドメイン固有のデータセットとは異なる場合に動作することができる。いくつかの例は、加えて、符号化器データを生成するために使用される一般的なドメインデータセットにアクセスすることと、一般的なドメインデータセットのサブセットとしてドメイン固有のデータセットを生成することとを含むことができる。
【0115】
[00127]追加の例は、蒸留された符号化器データにアクセスすることと、ここにおいて、蒸留された符号化器データは、フィルタリングされた符号化器データを生成するためにドメイン固有ではない一般的なドメインデータセットから生成された符号化器データをフィルタリングすることによって生成され、ドメイン固有の訓練データセットを使用して、フィルタリングされた符号化器データから蒸留された符号化器データを生成することと、ドメイン固有のデータのリアルタイムストリームにアクセスすることと、タスク出力データを生成するために、蒸留された符号化器データを使用してドメイン固有のデータのリアルタイムストリームを処理することとを伴うことができる。
【0116】
[00128]図11は、本技術のいくつかの態様による方法1100のフローチャートの例を示す。いくつかの例では、方法1100は、図12のデバイス又は本明細書で説明される任意のデバイスなどのデバイスによって実行されることができる。いくつかの例では、方法1100は、デバイスの1つ以上のプロセッサによって実行されると、デバイスに方法1100を実行させる、コンピュータ可読媒体中に記憶された命令であり得る。いくつかの例では、方法1000は、方法1100と組み合わせられることができる。他の例では、方法1000及び1100の動作の組み合わせは、介在する動作若しくは繰り返される動作と、又は本明細書で説明される任意の他の動作と組み合わせられたある特定の動作と統合されることができる。
【0117】
[00129]方法1100は、ブロック1102を含み、それは、蒸留された符号化器データにアクセスすることと、ここにおいて、蒸留された符号化器データは、フィルタリングされた符号化器データを生成するためにドメイン固有ではない一般的なドメインデータセットから生成された符号化器データをフィルタリングすることによって生成され、ドメイン固有の訓練データセットを使用して、フィルタリングされた符号化器データから蒸留された符号化器データを生成することとを伴う。
【0118】
[00130]方法1100は、ブロック1104を含み、それは、ドメイン固有のデータのリアルタイムストリームにアクセスすることを伴う。データのリアルタイムストリームは、ドメイン固有の訓練データセットに関連付けられた特定のドメインに関連付けられたクエリ又はNLP入力であり得る。いくつかの実装形態では、ドメイン固有の訓練データセットは、一般的なドメインデータセットのドメインよりも小さいが、複数のサブドメインに分割されることができる集約されたドメインを含み得る。例えば、「輸送」のドメインは、「自動車」、「ボート」、「飛行機」、「列車」、「オートバイ」、等の他のドメインを包含しながら、ドメイン固有の訓練データセットに関連付けられることができる。「コンピュータ修理」のドメインは、異なるコンピュータ故障メカニズムに関連付けられた多種多様なサブドメインを同様に包含し得る。
【0119】
[00131]方法1100は、ブロック1106を含み、それは、タスク出力データを生成するために、蒸留された符号化器データを使用して、ドメイン固有のデータのリアルタイムストリームを処理することを伴う。処理は、ドメイン固有のデータのリアルタイムストリームからのデータの文字列(例えば、単語群、文、検索修飾子、等を含む文字のセット)をAIコンピューティングマシン又はNLP AIシステムにサブミットすることと、更なる精緻化又は処理のためにシステム出力をユーザ又は他のAIシステムに提供することとを含むことができる。本明細書で説明されるように、そのようなリアルタイムアクセス及びリアルタイム処理は、デバイスへの入力と、データが解析されるときに生じる処理又はネットワーク遅延とを伴う。動作のそのようなリアルタイム態様は、動作又は動作の要素が瞬間的であることを意味せず、動作が、関連付けられた動的遅延を伴って、ネットワーク化されたシステム中のデバイスによって処理及び通信されるときに生じることを意味する。
【0120】
[00132]いくつかの実装形態では、一般的なドメインデータセットを作成するために使用されるソース中のドメイン固有の詳細が動的に追跡されて、蒸留された符号化器データの作成後にドメイン固有のデータセットに関連付けられた変化を識別して、蒸留された符号化器データに対する更新がいつ必要とされるかを識別することができる。例えば、一般的なドメインデータセットを導出するために使用されるデータベース及び記録が作成されると、監視システムは、ドメイン固有のNLPに影響を及ぼし得る閾値トリガ又は有意な意味シフトに対するドメイン固有の変化を追跡することができる。そのような追跡は、リアルタイムで行われ得るか、又は周期的に行われ得る。いくつかの実装形態では、一般的なNLP AIシステムへの更新は、蒸留された符号化器データを導出するために使用されるドメイン固有のデータに影響を与える変化について解析されることができる。軽微な変化が、蒸留された符号化器データに対する更新が不要であることを確認するために使用され得る。タスク出力の閾値割合を超えるドメイン固有の結果に対する影響を有すると決定された一般的なNLP AIシステムにおける変化は、更新された蒸留された符号化器データの作成のための自動トリガとして使用され得る。そのような解析は、ソースデータ変化のリアルタイム又は周期的解析に応答して動的且つ自動的に実行されることができる、蒸留された符号化器データを更新するための自動システムに統合され得る。
【0121】
[00133]例えば、ドメイン固有の符号化器を対象とするドメインは、製品のセットを販売するウェブサイトについての技術サポートであり得る。そのようなドメインは、ウェブサイト技術サポート、様々な製品及び/又は製品のサブセットについての技術サポート、並びに販売のための様々な製品についての販売サポートの両方のサブドメインを含むことができる。一般的なドメインデータセットは、ウェブサイトについての識別されたドメインに関連するフィルタリングされた符号化器データを生成するためにフィルタリング(例えば、ドメイン固有のデータを分離するために解析)されることができる。フィルタリングされた符号化器データは、次いで、蒸留された符号化器データを生成するために訓練されることができる。蒸留された符号化器データを使用する符号化器は、所望の結果と実際の結果との間の差を識別するために試験されることができ、調整値は、タスク出力を構成するために、蒸留された符号化器データと共に使用されることができる。調整された蒸留された符号化器の動作使用中、フィードバックシステムは、所望の結果と実際の結果との間の差を追跡することができる。例えば、誤った製品についての結果を返す特定の製品についての質問に対する応答は、調整値を使用して調整されることができる。同様に、代わりに販売サポート応答を返す技術サポートに対する応答を予期していることを知られている入力は、調整値を調節することによって調整されることができる。そのようなフィードバックは、タスク出力(例えば、入力クエリに対する応答)を動的に調整するために、リアルタイムで使用されることができる。そのようなフィードバック調節は、いくつかの事例では、多くのユーザがシステムを同時に使用することを可能にし、システム動作が、フィードバックに関連付けられたユーザを含む以前のユーザが同時にシステムを使用し続ける間に、システムを使用し始める後続のユーザのために調節されることを可能にすることができる。
【0122】
[00134]加えて、特定の例が上記で説明されたが、本明細書で説明される詳細に従って追加の例が可能であることは明らかであろう。例えば、上記で説明された動作は、繰り返されることができるか、又は追加の介在動作を含むことができる。
【0123】
[00135]図12は、いくつかの実装形態による、バスなどの接続部1206を使用して互いに電気通信する様々な構成要素を含むコンピューティングシステムアーキテクチャ1200を例示する。実例的なシステムアーキテクチャ1200は、処理ユニット(CPU又はプロセッサ)1204と、ROM1218及びRAM1216などのシステムメモリ1220を含む様々なシステム構成要素をプロセッサ1204に結合するシステム接続部1206とを含む。システムアーキテクチャ1200は、プロセッサ1204と直接接続されるか、それに近接しているか、又はその一部として統合された高速メモリのキャッシュ1202を含むことができる。システム1200は、プロセッサ1204による素早いアクセスのために、メモリ1220及び/又は記憶デバイス1208からキャッシュ1202にデータをコピーすることができる。このようにして、キャッシュは、データを待っている間にプロセッサ1204が遅延することを回避するパフォーマンスブースト(performance boost)提供することができる。これら及び他のモジュールは、様々なアクションを実行するために、プロセッサ1204を制御することができるか、制御するように構成されることができる。
【0124】
[00136]他のシステムメモリ1220も、使用のために利用可能であり得る。メモリ1220は、異なるパフォーマンス特性を有する複数の異なるタイプのメモリを含むことができる。プロセッサ1204は、任意の汎用プロセッサ、及び記憶デバイス1208中に記憶され、プロセッサ1204を制御するように構成されたサービス1 1210、サービス2 1212、及びサービス3 1214などのハードウェア又はソフトウェアモジュール、並びにソフトウェア命令が実際のプロセッサ設計に組み込まれる専用プロセッサを含むことができる。プロセッサ1204は本質的には、完全に自己完結型のコンピューティングシステムであり得、複数のコア又はプロセッサ、バス、メモリコントローラ、キャッシュ、等を包含し得る。マルチコアプロセッサは、対称又は非対称であり得る。
【0125】
[00137]コンピューティングシステムアーキテクチャ1200とのユーザ通信を可能にするために、入力デバイス1222は、音声用のマイクロフォン、ジェスチャ又はグラフィック入力用のタッチ感応スクリーン、キーボード、マウス、モーション入力、発話、等などの任意の数の入力機構を表す。出力デバイス1224もまた、当業者に知られたいくつかの出力機構のうちの1つ以上であることができる。いくつかの事例では、マルチモーダルシステムは、ユーザがコンピューティングシステムアーキテクチャ1200と通信するための複数のタイプの入力を提供することを可能にすることができる。通信インタフェース1226は、一般に、ユーザ入力及びシステム出力を統制及び制御すことができる。どの特定のハードウェア構成上で動作することについても制限がなく、従って、ここでの基本的な特徴は、それらが開発されたときに改善されたハードウェア又はファームウェア構成の代わりに容易に用いられ得る。
【0126】
[00138]記憶デバイス1208は、不揮発性メモリであり、ハードディスク、又は磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、RAM1216、ROM1218、及びそれらのハイブリッドなど、コンピュータによってアクセス可能なデータを記憶することができる他のタイプのコンピュータ可読媒体であり得る。
【0127】
[00139]記憶デバイス1208は、プロセッサ1204を制御するためのサービス1210、1212、1214を含むことができる。他のハードウェア又はソフトウェアモジュールが企図される。記憶デバイス1208は、システム接続部1206に接続されることができる。いくつかの実施形態では、特定の機能を実行するハードウェアモジュールは、機能を実施するために、プロセッサ1204、接続部1206、出力デバイス1224、等などの必要なハードウェア構成要素に関連してコンピュータ可読媒体中に記憶されたソフトウェア構成要素を含むことができる。
【0128】
[00140]開示されたギフト選択、属性、及び分散システムは、コンピューティングシステムを使用して実行されることができる。実例的なコンピューティングシステムは、プロセッサ(例えば、中央処理ユニット)、メモリ、不揮発性メモリ、及びインタフェースデバイスを含むことができる。メモリは、データ及び/又は1つ以上のコードセット、ソフトウェア、スクリプト、等を記憶し得る。コンピュータシステムの構成要素は、バスを介して、又は何らかの他の既知の若しくは便利なデバイスを通して共に結合されることができる。プロセッサは、例えば、メモリ中に記憶されたコードを実行することによって、例えば、本明細書で説明された方法の全部又は一部を実施するように構成され得る。ユーザデバイス若しくはコンピュータ、プロバイダサーバ若しくはシステム、又は一時停止されたデータベース更新システムのうちの1つ以上は、コンピューティングシステムの構成要素又はそのようなシステム上の変形形態を含み得る。
【0129】
[00141]本開示は、任意の適切な物理的形態を取るコンピュータシステムを企図する。限定ではなく例として、コンピュータシステムは、埋め込み型コンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(例えば、コンピュータオンモジュール(COM)若しくはシステムオンモジュール(SOM)など)、デスクトップコンピュータシステム、ラップトップ若しくはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、又はこれらのうちの2つ以上の組み合わせであり得る。適切な場合には、コンピュータシステムは、1つ以上のコンピュータシステムを含み、単一若しくは分散型であり、複数の位置にまたがり、複数の機械にまたがり、及び/又は1つ以上のネットワーク中に1つ以上のクラウド構成要素を含み得るクラウド中に存在し得る。適切な場合には、1つ以上のコンピュータシステムは、実質的な空間的又は時間的制限なしに、本明細書で説明又は例示される1つ以上の方法の1つ以上のステップを実行し得る。限定ではなく例として、1つ以上のコンピュータシステムは、本明細書で説明又は例示される1つ以上の方法の1つ以上のステップなどにわたって、イベントが生じるときに、又は複数のイベントを集約するバッチモードで実行し得る。1つ以上のコンピュータシステムは、適切な場合、本明細書で説明又は例示される1つ以上の方法の1つ以上のステップを異なる時間に又は異なる位置で実行し得る。
【0130】
[00142]プロセッサは、例えば、Intel Pentium(登録商標)マイクロプロセッサ又はMotorola PowerPCマイクロプロセッサなどの従来のマイクロプロセッサであり得る。当業者は、用語「機械可読(記憶)媒体」又は「コンピュータ可読(記憶)媒体」が、プロセッサによってアクセス可能な任意のタイプのデバイスを含むことを認識するであろう。
【0131】
[00143]メモリは、例えばバスによってプロセッサに結合されることができる。メモリは、限定ではなく例として、動的RAM(DRAM)及び静的RAM(SRAM)などのランダムアクセスメモリ(RAM)を含むことができる。メモリは、ローカル、リモート、又は分散されることができる。
【0132】
[00144]バスはまた、プロセッサを不揮発性メモリ及びドライブユニットに結合することができる。不揮発性メモリは、多くの場合、磁気フロッピー(登録商標)若しくはハードディスク、磁気光ディスク、光ディスク、CD-ROM、EPROM、若しくはEEPROM(登録商標)などの読取専用メモリ(ROM)、磁気若しくは光カード、又は大量のデータのための別の形態の記憶装置である。このデータのうちの一部は、コンピュータにおけるソフトウェアの実行中に、直接メモリアクセスプロセスによってメモリ中に書き込まれることが多い。不揮発性記憶装置は、ローカル、リモート、又は分散されることができる。不揮発性メモリは、システムがメモリ中で利用可能な全ての適用可能なデータを用いて作成されることができるので、任意選択である。典型的なコンピュータシステムは、通常、少なくともプロセッサ、メモリ、及びメモリをプロセッサに結合するデバイス(例えば、バス)を含むであろう。
【0133】
[00145]ソフトウェアは、不揮発性メモリ及び/又は駆動ユニット中に記憶されることができる。実際、大きいプログラムの場合、プログラム全体をメモリ中に記憶することさえ可能ではない場合がある。それにもかかわらず、ソフトウェアを実行するために、必要であれば、ソフトウェアは処理に適したコンピュータ可読位置に移動され、例示を目的として、その位置は、本明細書ではメモリと呼ばれることを理解されたい。ソフトウェアが実行のためにメモリに移動されるときでさえ、プロセッサは、ソフトウェアに関連付けられた値を記憶するためのハードウェアレジスタと、理想的には実行を高速化する役割を果たすローカルキャッシュとを利用することができる。本明細書で使用される場合、ソフトウェアプログラムは、ソフトウェアプログラムが「コンピュータ可読媒体で実装される」と言及されるとき、任意の既知の又は便利な位置(不揮発性記憶装置からハードウェアレジスタまで)に記憶されると仮定される。プロセッサは、プログラムに関連付けられた少なくとも1つの値がプロセッサによって読み取り可能なレジスタ中に記憶されているとき、「プログラムを実行するように構成されている」とみなされる。
【0134】
[00146]バスはまた、プロセッサをネットワークインタフェースデバイスに結合することができる。インタフェースは、モデム又はネットワークインタフェースのうちの1つ以上を含むことができる。モデム又はネットワークインタフェースは、コンピュータシステムの一部であるとみなされることができることを認識されたい。インタフェースは、アナログモデム、サービス統合デジタルネットワーク(ISDN0モデム、ケーブルモデム、トークンリングインタフェース、衛星伝送インタフェース(例えば、「ダイレクトPC」)、又はコンピュータシステムを他のコンピュータシステムに結合するための他のインタフェースを含むことができる。インタフェースは、1つ以上の入力及び/又は出力(I/O)デバイスを含むことができる。I/Oデバイスは、限定ではなく例として、キーボード、マウス又は他のポインティングデバイス、ディスクドライブ、プリンタ、スキャナ、並びにディスプレイデバイスを含む他の入力及び/又は出力デバイスを含むことができる。ディスプレイデバイスは、限定ではなく例として、陰極線管(CRT)、液晶ディスプレイ(LCD)、又は何らかの他の適用可能な既知の又は便利なディスプレイデバイスを含むことができる。
【0135】
[00147]動作中、コンピュータシステムは、ディスクオペレーティングシステムなどのファイルルーティングシステムを含むオペレーティングシステムソフトウェアによって制御されることができる。関連するファイルルーティングシステムソフトウェアを有するオペレーティングシステムソフトウェアの一例は、Microsoft Corporation(レドモンド、WA)からのWindows(登録商標)として知られるオペレーティングシステムのファミリ、及びそれらの関連するファイルルーティングシステムである。その関連するファイルルーティングシステムソフトウェアを有するオペレーティングシステムソフトウェアの別の例は、Linux(登録商標)オペレーティングシステム及びその関連するファイルルーティングシステムである。ファイルルーティングシステムは、不揮発性メモリ及び/又は駆動ユニット中に記憶されることができ、プロセッサに、オペレーティングシステムが関与する様々な動作を実行させて、データを入力及び出力して、不揮発性メモリ及び/又は駆動ユニットにファイルを記憶することを含めて、メモリ中にデータを記憶することができる。
【0136】
[00148]発明を実施するための形態のいくつかの部分は、コンピュータメモリ内のデータビットに対する動作のアルゴリズム及び記号表現に関して提示され得る。これらのアルゴリズム記述及び表現は、データ処理技術分野の当業者によって、彼らの研究の内容(the substance of their work)を他の当業者に最も効果的に伝達するために使用される手段である。アルゴリズムはここで、及び一般に、所望される結果につながる動作の首尾一貫したシーケンス(self-consistent sequence)であると考えられる。動作は、物理量の物理的操作を必要とするものである。通常、ただし必ずしもではないが、これらの量は、記憶、転送、組み合わせ、比較、及び別様に操作されることが可能な電気信号又は磁気信号の形態を取る。主に共通使用の理由により、これらの信号をビット、値、要素、記号、文字、用語、番号、等として言及することは時に便利であることが分かっている。
【0137】
[00149]しかしながら、これら及び同様の用語の全ては、適切な物理量に関連付けられるべきであり、これらの量に適用される単に便利なラベルに過ぎないことに留意されたい。以下の議論から明らかなように、別段に明記されない限り、本説明全体を通して、「処理する」又は「計算する」又は「算出する」又は「決定する」又は「表示する」又は「生成する」などの用語を利用する議論は、コンピュータシステムのレジスタ及びメモリ内の物理(電子)量として表されるデータを操作し、コンピュータシステムメモリ若しくはレジスタ又は他のそのような情報記憶装置、送信デバイス若しくはディスプレイデバイス内の物理量として同様に表される他のデータに変換する、コンピュータシステム又は同様の電子コンピューティングデバイスのアクション及びプロセスを指すことを認識されたい。
【0138】
[00150]本明細書で提示されるアルゴリズム及びディスプレイは、任意の特定のコンピュータ又は他の装置に本質的に関連しない。様々な汎用システムが、本明細書の教示に従ってプログラムと共に使用され得るか、又はいくつかの例の方法を実行するためにより特化された装置を構築することが好都合であると分かり得る。多様なこれらのシステムに関与する構造は、以下の説明から明らかになるであろう。加えて、本技法は、任意の特定のプログラミング言語を参照して説明されず、様々な例が、このことから、多様なプログラミング言語を使用して実装され得る。
【0139】
[00151]様々な実装形態では、システムは、スタンドアロンデバイスとして動作するか、又は他のシステムに接続(例えば、ネットワーク化)され得る。ネットワーク化された展開では、システムは、クライアントサーバネットワーク環境におけるサーバ若しくはクライアントシステムのキャパシティで、又はピアツーピア(若しくは、分散型)ネットワーク環境におけるピアシステムとして動作し得る。
【0140】
[00152]システムは、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットPC、ラップトップコンピュータ、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、iPhone(登録商標)、Blackberry、プロセッサ、電話、ウェブアプライアンス、ネットワークルータ、スイッチ若しくはブリッジ、又はそのシステムによって取られべきるアクションを指定する命令のセット(順次又はその他)を実行することが可能な任意のシステムであり得る。
【0141】
[00153]一般に、本開示の実装形態を実装するために実行されるルーチンは、オペレーティングシステム若しくはアプリケーション、構成要素、プログラム、オブジェクト、モジュール、又は「コンピュータプログラム」と呼ばれる命令のシーケンスの一部として実装され得る。コンピュータプログラムは、典型的には、コンピュータ中の様々なメモリ及び記憶デバイス中に様々な時間に設定され、その上、コンピュータ中の1つ以上の処理ユニット又はプロセッサによって読み取られ、実行されると、コンピュータに、本開示の様々な側面を伴う要素を実行するための動作を行わせる、1つ以上の命令を含む。
【0142】
[00154]更に、完全に機能するコンピュータ及びコンピュータシステムのコンテキストで例が説明されてきたが、当業者であれば、様々な例が多様な形態のプログラムオブジェクトとして分散されることが可能であり、その上、本開示が、実際に分散を行うために使用される特定のタイプの機械可読媒体又はコンピュータ可読媒体にかかわらず等しく適用されることを認識するであろう。
【0143】
[00155]機械可読記憶媒体、機械可読媒体、又はコンピュータ可読(記憶)媒体の更なる例は、とりわけ、揮発性及び不揮発性メモリデバイス、フロッピー及び他のリムーバブルディスク、ハードディスクドライブ、光ディスク(例えば、コンパクトディスク読取専用メモリ(CD ROM)、デジタル多用途ディスク(DVD)、等)などの記録可能なタイプの媒体、並びにデジタル及びアナログ通信リンクなどの送信タイプの媒体を含むが、それらに限定されない。
【0144】
[00156]いくつかの状況では、バイナリ1からバイナリ0への状態の変化又はその逆などのメモリデバイスの動作は、例えば、物理的変換などの変換を含み得る。特定のタイプのメモリデバイスでは、そのような物理的変換は、異なる状態又は物への物品(article)の物理的変換を含み得る。例えば、それらに限定されないが、いくつかのタイプのメモリデバイスの場合、状態の変化は、電荷の蓄積及び貯蔵又は貯蔵された電荷の解放を伴い得る。同様に、他のメモリデバイスでは、状態の変化は、磁気配向における物理的変化若しくは変換、又は結晶性から非結晶性への若しくはその逆などの分子構造における物理的変化若しくは変換を含み得る。前述は、メモリデバイス中でのバイナリ1からバイナリ0への状態の変化又はその逆が物理的変換などの変換を含み得る全ての例の網羅的なリストであることを意図されない。むしろ、前述は、例示的な例として意図される。
【0145】
[00157]記憶媒体は、典型的には、非一時的であり得るか、又は非一時的デバイスを含み得る。この文脈では、非一時的記憶媒体は、有形であるデバイスを含み得、これは、デバイスがその物理的状態を変化させ得るが、デバイスが具体的な物理的形態を有することを意味する。このことから、例えば、非一時的とは、この状態の変化にもかかわらず有形のままであるデバイスを指す。
【0146】
[00158]上記の説明及び図面は、例示的なものであり、主題を開示された厳密な形態に限定するものとして解釈されるべきではない。当業者であれば、上記の開示を踏まえて多くの修正形態及び変形形態が可能であることを認識することができる。本開示の完全な理解を提供するために、多数の詳細が説明される。しかしながら、ある特定の事例では、説明を曖昧にすることを回避するために、周知又は従来の詳細は説明されない。
【0147】
[00159]本明細書で使用される場合、システムのモジュールに適用されるときの用語「接続された」、「結合された」、又はそれらの任意の変形形態は、2つ以上の要素間の直接的又は間接的のうちのいずれかの任意の接続又は結合を意味し、要素間の接続の結合は、物理的、論理的、又はそれらの任意の組み合わせであり得る。加えて、単語「本明細書」、「上記」、「以下」、及び同様の意味の単語は、本出願において使用されるとき、本出願全体を指すものとし、本出願の任意の特定の部分を指すものではない。コンテキストが許す場合、単数又は複数を使用する上記の発明を実施するための形態における単語はまた、複数又は単数をそれぞれ含み得る。2つ以上の項目のリストに関する単語「又は/若しくは(or)」は、単語の以下の解釈の全てをカバーする:リスト中の項目のうちのいずれか、リスト中の項目の全て、又はリスト中の項目の任意の組み合わせ。
【0148】
[00160]当業者は、開示された主題が、以下に示されていない他の形態及び様式で具現化され得ることを認識するであろう。もしあれば、第1、第2、頂部、及び底部などの関係語の使用は、あるエンティティ又はアクションを別のエンティティ又はアクションから区別するためだけに使用され、そのようなエンティティ又はアクション間のいかなるそのような実際の関係又は順序も必ずしも必要とする又は暗示するものではないことを理解されたい。
【0149】
[00161]プロセス又はブロックが所与の順序で提示されているが、代替の実装形態は、異なる順序で、ステップを有するルーチンを実行し得るか、又はブロックを有するシステムを用い得、いくつかのプロセス又はブロックは、代替の又はサブ組み合わせを提供するために、削除、移動、追加、再分割、置換、組み合わせ、及び/又は修正され得る。これらのプロセス又はブロックの各々は、多様な異なる方法で実装され得る。また、プロセス又はブロックは、時には連続して実行されるものとして示されているが、これらのプロセス又はブロックは、代わりに、並行して実行され得るか、又は異なる時間に実行され得る。更に、本明細書に記載される任意の数は、例に過ぎず、代替の実装形態は、異なる値又は範囲を用い得る。
【0150】
[00162]本明細書で提供される本開示の教示は、必ずしも上記で説明されたシステムではなく、他のシステムに適用されることができる。上記で説明された様々な例の要素及び動作は、更なる例が提供するために組み合わせられることができる。
【0151】
[00163]添付の出願書類に列挙され得る任意のものを含む、上記に記載された任意の特許及び出願並びに他の参考文献は、参照によって本明細書に援用される。本開示の態様は、必要であれば、本開示のまた更なる例を提供するために、上記で説明された様々な参考文献のシステム、機能、及び概念を用いるように修正されることができる。
【0152】
[00164]これら及び他の変更は、上記の発明を実施するための形態を踏まえて、本開示に対して行われることができる。上記の説明は、ある特定の例を説明し、企図される最良のモードを説明しているが、上記がテキストにおいていかに詳細に見えても、本教示は、多くの方法で実施されることができる。システムの詳細は、本明細書で開示される主題によって依然として包含されながら、その実装形態の詳細において大幅に変化し得る。上記に記載されたように、本開示のある特定の特徴又は態様を説明するときに使用される特定の専門用語は、その専門用語が関連する本開示の任意の特性、特徴、又は態様に制限されるように、その専門用語が本明細書で再定義されていることを暗示するものと解釈されるべきではない。一般に、以下の特許請求の範囲で使用される用語は、上記の発明を実施するための形態のセクションがそのような用語を明示的に定義しない限り、本開示を本明細書で開示された実装形態に限定するものと解釈されるべきではない。それ故に、本開示の実際の範囲は、開示された実装形態だけでなく、特許請求の範囲の下で本開示を実施又は実装する全ての同等な方法も包含する。
【0153】
[00165]本開示のある特定の態様は、ある特定の請求項の形式で以下に提示されるが、本発明者らは、任意の数の請求項の形式で本開示の様々な態様を企図する。35 U.S.C. § 112(f)の下で扱われることが意図される任意の請求項は、単語「のための手段」で始まるであろう。それ故に、出願人は、本開示の他の態様のためにそのような追加の請求項の形式を追求するために、出願後に追加の請求項を追加する権利を保有する。
【0154】
[00166]本明細書で使用される用語は、一般に、本開示のコンテキスト内で、及び各用語が使用されるコンテキストにおいて、当該技術分野におけるそれらの通常の意味を有する。本開示を説明するために使用されるある特定の用語は、本開示の説明に関して実施者に追加のガイダンスを提供するために、上記で、又は本明細書の他の箇所で議論されている。便宜上、ある特定の用語は、例えば、大文字、イタリック体、及び/又は引用符を使用して強調表示され得る。強調表示の使用は、用語の範囲及び意味に影響を及ぼさず、用語の範囲及び意味は、強調表示されているか否かにかかわらず、同じコンテキストにおいて同じである。同じ要素が1つよりも多くの方法で説明されることができることを認識されたい。
【0155】
[00167]その結果として、代替の言語及び同義語が、本明細書で議論される用語のうちの任意の1つ以上に対して使用され得、用語が本明細書で詳述又は議論されるか否かに関して、いかなる特別な重要性も置かれない。ある特定の用語に対する同義語が提供される。1つ以上の同義語の記載は、他の同義語の使用を除外しない。本明細書で議論される任意の用語の例を含む、本明細書の任意の箇所での例の使用は、例示に過ぎず、本開示又は任意の例証された用語の範囲及び意味を更に限定することを意図されない。同様に、本開示は、本明細書で与えられる様々な例に限定されない。
【0156】
[00168]本開示の範囲を更に限定することを意図することなく、本開示の例による器具、装置、方法、及びそれらの関連する結果の例が以下に与えられる。題又は副題が、読者の便宜のために例において使用され得、それは、決して本開示の範囲を限定すべきではないことに留意されたい。別段に定義されない限り、本明細書で使用される全ての技術的及び科学的用語は、本発明が関連する技術分野の当業者によって一般に理解されるのと同じ意味を有する。矛盾する場合、定義を含めて、本明細書が優先されるであろう。
【0157】
[00169]本説明のいくつかの部分は、情報に対する動作のアルゴリズム及び記号表現に関して例を説明する。これらのアルゴリズム記述及び表現は、データ処理技術分野の当業者によって、彼らの研究の内容を他の当業者に効果的に伝達するために一般に使用される。これらの動作は、機能的、計算的、又は論理的に説明されているが、コンピュータプログラム又は同等の電気回路、マイクロコードなどによって実装されると理解されたい。更に、一般性を失うことなく、これらの動作の構成をモジュールと呼ぶことが時には便利であることも分かっている。説明された動作及びそれらの関連するモジュールは、ソフトウェア、ファームウェア、ハードウェア、又はそれらの任意の組み合わせで具現化され得る。
【0158】
[00170]本明細書で説明されるステップ、動作、又はプロセスのうちのいずれも、単独で、又は他のデバイスと組み合わせて、1つ以上のハードウェア又はソフトウェアモジュールを用いて実行又は実装され得る。いくつかの例では、ソフトウェアモジュールは、コンピュータプログラムコードを包含するコンピュータ可読媒体を含むコンピュータプログラムオブジェクトを用いて実装され、コンピュータプログラムコードは、説明されるステップ、動作、又はプロセスのうちのいずれか又は全てを実行するためにコンピュータプロセッサによって実行されることができる。
【0159】
[00171]例はまた、本明細書の動作を実行するための装置に関し得る。この装置は、関与する目的のために特別に構築され得、及び/又は、それは、コンピュータ中に記憶されたコンピュータプログラムによって選択的に起動又は再構成される汎用コンピューティングデバイスを含み得る。そのようなコンピュータプログラムは、コンピュータシステムバスに結合され得る、非一時的有形コンピュータ可読記憶媒体、又は電子命令を記憶するのに適した任意のタイプの媒体に記憶され得る。更に、本明細書で言及されるどのコンピューティングシステムも、単一のプロセッサを含み得るか、又はコンピューティング能力を増大させるために複数のプロセッサ設計を用いるアーキテクチャであり得る。
【0160】
[00172]例はまた、本明細書で説明されるコンピューティングプロセスによって生成されるオブジェクトに関し得る。そのようなオブジェクトは、コンピューティングプロセスから生じる情報を含み得、ここで、情報は、非一時的有形コンピュータ可読記憶媒体上に記憶され、本明細書で説明されるコンピュータプログラムオブジェクト又は他のデータ組み合わせの任意の実装形態を含み得る。
【0161】
[00173]本明細書で使用される言語は、主に読みやすさ及び教示目的のために選択されたものであり、主題を線引き又は制限するために選択されたものではない場合がある。従って、本開示の範囲は、この発明を実施するための形態によってではなく、むしろ本明細書に基づく出願に関して発行される任意の特許請求の範囲によって限定されることが意図される。それ故に、例の開示は、例示的であることを意図されるが、以下の特許請求の範囲に記載された主題の範囲を限定するものではない。
【0162】
[00174]コンテキスト接続システムのためのシステム及び構成要素の様々な実装形態の完全な理解を提供するために、詳細が先行する説明において与えられた。しかしながら、上記で説明された実装形態がこれらの特定の詳細なしに実施され得ることは、当業者によって理解されるであろう。例えば、回路、システム、ネットワーク、プロセス、及び他の構成要素は、不必要な詳細で例を曖昧にしないために、ブロック図形式の構成要素として示され得る。他の事例では、周知の回路、プロセス、アルゴリズム、構造、及び技法が、例を曖昧にすることを回避するために、不必要な詳細なしに示され得る。
【0163】
[00175]個々の実装形態が、フローチャート、フロー図、データフロー図、構造図、又はブロック図として図示されるプロセスとして説明され得ることにも留意されたい。フローチャートは、動作を順次プロセスとして説明し得るが、動作の多くは、並行して又は同時に実行されることができる。加えて、動作の順序は並べ替えられ得る。プロセスは、その動作が完了したときに終了されるが、含まれない追加のステップを有する可能性がある。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラム、等に対応し得る。プロセスが関数に対応するとき、その終了は、その関数が呼び出し関数又はメイン関数に戻ることに対応する可能性がある。
【0164】
[00176]クライアントデバイス、ネットワークデバイス、及び他のデバイスは、とりわけ、1つ以上の集積回路、入力デバイス、出力デバイス、データ記憶デバイス、及び/又はネットワークインタフェースを含むコンピューティングシステムであり得る。集積回路は、例えば、とりわけ、1つ以上のプロセッサ、揮発性メモリ、及び/又は不揮発性メモリを含むことができる。入力デバイスは、例えば、キーボード、マウス、キーパッド、タッチインタフェース、マイクロフォン、カメラ、及び/又は他のタイプの入力デバイスを含むことができる。出力デバイスは、例えば、ディスプレイスクリーン、スピーカ、触覚フィードバックシステム、プリンタ、及び/又は他のタイプの出力デバイスを含むことができる。ハードドライブ又はフラッシュメモリなどのデータ記憶デバイスは、コンピューティングデバイスがデータを一時的又は永続的に記憶することを可能にすることができる。ワイヤレス又はワイヤードインタフェースなどのネットワークインタフェースは、コンピューティングデバイスがネットワークと通信することを可能にすることができる。コンピューティングデバイスの例は、デスクトップコンピュータ、ラップトップコンピュータ、サーバコンピュータ、ハンドヘルドコンピュータ、タブレット、スマートフォン、携帯情報端末、デジタルホームアシスタント、並びにコンピューティングデバイスが組み込まれた機械及び装置を含む。
【0165】
[00177]用語「コンピュータ可読媒体」は、ポータブル又は非ポータブル記憶デバイスと、光記憶デバイスと、命令(複数可)及び/又はデータを記憶、包含、又は搬送することが可能な様々な他の媒体とを含むが、それらに限定されない。コンピュータ可読媒体は、データが記憶されることができ、且つワイヤレスに又はワイヤード接続を通して伝播する搬送波及び/又は一時的電子信号を含まない、非一時的媒体を含み得る。非一時的媒体の例は、磁気ディスク又はテープ、コンパクトディスク(CD)又はデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリ又はメモリデバイスを含み得るが、それらに限定されない。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、又は命令、データ構造、若しくはプログラムステートメントの任意の組み合わせを表し得るコード及び/又は機械実行可能命令を記憶している場合がある。コードセグメントは、情報、データ、引数、パラメータ、又はメモリ内容を渡すこと及び/又は受け取ることによって、別のコードセグメント又はハードウェア回路に結合され得る。情報、引数、パラメータ、データ、等は、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む任意の適切な手段を介して渡され得るか、フォワーディングされ得るか、又は送信され得る。
【0166】
[00178]上記で議論された様々な例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、又はそれらの任意の組み合わせによって更に実装され得る。ソフトウェア、ファームウェア、ミドルウェア、又はマイクロコードで実装されるとき、必要なタスクを実行するためのプログラムコード又はコードセグメント(例えば、コンピュータプログラム製品)は、コンピュータ可読又は機械可読記憶媒体(例えば、プログラムコード又はコードセグメントを記憶するための媒体)中に記憶され得る。集積回路で実装されるプロセッサ(複数可)は、必要なタスクを実行し得る。
【0167】
[00179]プログラムコードは、プロセッサによって実行され得、プロセッサは、1つ以上のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、又は他の同等の集積若しくは個別論理回路などの1つ以上のプロセッサを含み得る。そのようなプロセッサは、本開示で説明された技法のうちの任意のものを実行するように構成され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと連携する1つ以上のマイクロプロセッサ、又は任意の他のそのような構成として実装され得る。それ故に、用語「プロセッサ」は、本明細書で使用される場合、前述の構造のうちの任意のもの、前述の構造の任意の組み合わせ、又は本明細書で説明される技法の実施に適した任意の他の構造若しくは装置を指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、一時停止されたデータベース更新システムを実装するために構成された専用ソフトウェアモジュール又はハードウェアモジュール内で提供され得る。
【0168】
[00180]構成要素がある特定の動作を実行するように「構成されている」と説明されている場合、そのような構成は、例えば、動作を実行するように電子回路又は他のハードウェアを設計することによって、動作を実行するようにプログラマブル電子回路(例えば、マイクロプロセッサ、又は他の適切な電子回路)をプログラムすることによって、又はそれらの任意の組み合わせによって達成されることができる。
【0169】
[00181]本明細書で開示された実装形態に関連して説明された様々な例示的な論理ブロック、モジュール、回路、及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、又はそれらの組み合わせとして実装され得る。ハードウェア及びソフトウェアのこの交換可能性を明確に例示するために、様々な例示的な構成要素、ブロック、モジュール、回路、及びステップが、一般にそれらの機能の観点から上記で説明されている。そのような機能がハードウェアとして実装されるか、又はソフトウェアとして実装されるかは、特定のアプリケーション及びシステム全体に課される設計制約に依存する。当業者は、説明された機能を特定のアプリケーション毎に様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすものとして解釈されるべきではない。
【0170】
[00182]本技術の前述の発明を実施するための形態は、例示及び説明を目的として提示されてきた。それは、網羅的であること、又は開示されたまさにその形態に本技術を限定することを意図されない。上記の教示を踏まえて、多くの修正形態及び変形形態が可能である。説明された例は、技術の原理、その実際の適用を最も良く説明するために、並びに、様々な例において、及び企図される特定の使用に適した様々な修正形態を伴って、当業者が本技術を利用することを可能にするために、選択された。本技術の範囲は、特許請求の範囲によって定義されることが意図される。
図1A
図1B
図1C
図2
図3A
図3B
図3C
図4
図5
図6
図7
図8
図9
図10
図11
図12
【国際調査報告】