(57)【要約】【課題】コグニティブ・アプリケーションのためのエッジ・キャッシングのための、方法、コンピュータ・プログラム製品、コンピュータ・プログラム、およびコンピュータ・システムを提供する。【解決手段】通信ネットワークにおけるコグニティブ・アプリケーションのキャッシングのために、センサ・デバイスからの第１の入力信号が、キャッシュが関連付けられているプロキシによって検出される。第１の入力信号の表現が計算され、サーバに送信される。ハンドル関数が第１の入力信号の表現に適用され、第１の入力信号に対応する第１のハンドル値を計算する。第１の入力信号の表現は、解答関数のコグニティブ処理モデルを使用して変形され、第１の解答値を計算する。キャッシュのコンテンツは第１の解答値をキャッシュ内の第１のハンドル値と関連付けて格納することにより、プロキシによって修正される。【選択図】図３
2020522920.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークにおけるコグニティブ・アプリケーションのキャッシングのための方法であって、
キャッシュが関連付けられているプロキシによって、センサ・デバイスからの第１の入力信号を検出することと、
前記第１の入力信号の表現を計算することであって、前記表現はサーバに送信される、前記計算することと、
前記第１の入力信号に対応する第１のハンドル値を計算するためにハンドル関数を前記第１の入力信号の前記表現に適用することと、
第１の解答値を計算するために解答関数のコグニティブ処理モデルを使用して前記第１の入力信号の前記表現を変形することと、
前記プロキシによって、前記キャッシュ内の前記第１のハンドル値と関連付けて前記第１の解答値を格納することによって、前記キャッシュの内容を修正することと
を含む、方法。
【請求項２】
前記プロキシによって第２の入力信号を検出することと、
第２の入力信号に対して、前記プロキシによって、前記ハンドル関数を使用して候補ハンドル値を計算することと、
前記候補ハンドル値を前記キャッシュに格納される前記第１のハンドル値と比較することと、
前記候補ハンドル値が前記第１のハンドル値に一致するかどうかを判断することと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記候補ハンドル値が前記第１のハンドル値に一致しているとの判断に応答して、前記プロキシによって、前記第２の入力信号について前記第１の解答値を使用すること
をさらに含む、請求項２に記載の方法。
【請求項４】
前記候補ハンドル値が前記第１のハンドル値に一致しないという判断に応答して、前記第２の入力信号の表現を前記コグニティブ・サーバに送信すること
をさらに含む、請求項２に記載の方法。
【請求項５】
前記第２の入力信号についての第２のハンドル値を受信することであって、前記第２のハンドル値が前記ハンドル関数を前記第２の入力信号の前記表現に適用することによって計算される、前記受信することと、
前記第２の入力信号の前記表現に対応する第２の解答値を受信することであって、前記第１の値を計算するために前記解答関数の前記コグニティブ処理モデルを使用して前記第２の入力信号の前記表現を変形することによって前記第２の解答値が決定される、前記受信することと、
前記プロキシによって、前記キャッシュ内の前記第２のハンドル値と関連付けて前記第２の解答値を格納することによって、前記キャッシュの前記内容を修正することと
をさらに含む、請求項４に記載の方法。
【請求項６】
前記候補ハンドル値が前記第１のハンドル値に一致するかどうかを判断することが、前記候補ハンドル値と前記第１のハンドル値との間の最近傍探索を実行することを含む、請求項２に記載の方法。
【請求項７】
前記第１の入力信号が、前記センサ・デバイスの環境内の前記センサ・デバイスによる測定を表す、請求項１に記載の方法。
【請求項８】
前記ハンドル関数が前記元々の入力信号の次元ではなく前記入力信号の低次元の表現として前記ハンドル値を作るように構成される、請求項１に記載の方法。
【請求項９】
前記第１の入力信号の前記表現が、前記プロキシにおいて決定された前記第１のハンドル値を含む、請求項１に記載の方法。
【請求項１０】
前記プロキシによって、前記ハンドル関数の指標を前記サーバから受信すること
をさらに含む、請求項１に記載の方法。
【請求項１１】
前記センサ・デバイスのドメインに関連付けられるドメイン名を前記サーバに送信することであって、前記サーバが前記ドメイン名に基づいて複数のハンドル関数から前記ハンドル関数を決定する、前記送信すること
をさらに含む、請求項１０に記載の方法。
【請求項１２】
前記ハンドル関数を使用して前記第１の入力信号の再構成エラーを決定することと、
前記第１の入力信号の前記再構成エラーの分布を前記コグニティブ・モデルに関連付けられる訓練データ内の再構成エラーの分布と比較することと、
再構成エラーの前記分布の前記比較が所定のしきい値を超えているとの判断に応答して、前記キャッシュに対してキャッシュ無効化動作をトリガすることと
をさらに含む、請求項１に記載の方法。
【請求項１３】
前記方法が、１つまたは複数のコンピュータ可読記憶媒体と、前記１つまたは複数のコンピュータ可読記憶媒体に格納され、１つまたは複数のプロセッサによって実行されるコンピュータ可読プログラム命令と、を備えるコンピュータ・プログラム製品において具現化される、請求項１に記載の方法。
【請求項１４】
前記方法が、１つまたは複数のプロセッサと、１つまたは複数のコンピュータ可読メモリと、１つまたは複数のコンピュータ可読記憶媒体と、前記１つまたは複数のメモリを介して前記１つまたは複数のプロセッサによる実行のために前記１つまたは複数のコンピュータ可読記憶媒体に格納され、前記１つまたは複数のプロセッサによって実行される、プログラム命令と、を備えるコンピュータ・システムにおいて具現化される、請求項１に記載の方法。
【請求項１５】
通信ネットワークにおけるコグニティブ・アプリケーションのキャッシングのためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、１つまたは複数のコンピュータ可読記憶媒体と、前記１つまたは複数の記憶媒体のうちの少なくとも１つに格納されるプログラム命令と、を備え、前記格納されるプログラム命令は、
キャッシュが関連付けられているプロキシによって、センサ・デバイスからの第１の入力信号を検出するためのプログラム命令と、
前記第１の入力信号の表現を計算するためのプログラム命令であって、前記表現はサーバに送信される、前記プログラム命令と、
前記第１の入力信号に対応する第１のハンドル値を計算するためにハンドル関数を前記第１の入力信号の前記表現に適用するためのプログラム命令と、
第１の解答値を計算するために解答関数のコグニティブ処理モデルを使用して前記第１の入力信号の前記表現を変形するためのプログラム命令と、
前記プロキシによって、前記キャッシュ内の前記第１のハンドル値と関連付けて前記第１の解答値を格納することによって、前記キャッシュの内容を修正するためのプログラム命令と
を備える、コンピュータ・プログラム製品。
【請求項１６】
前記格納されるプログラム命令が、
前記プロキシによって第２の入力信号を検出するためのプログラム命令と、
前記第２の入力信号に対して、前記プロキシによって、前記ハンドル関数を使用して候補ハンドル値を計算するためのプログラム命令と、
前記候補ハンドル値を前記キャッシュに格納される前記第１のハンドル値と比較するためのプログラム命令と、
前記候補ハンドル値が前記第１のハンドル値に一致するかどうかを判断するためのプログラム命令と
をさらに備える、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１７】
前記格納されるプログラム命令が、
前記候補ハンドル値が前記第１のハンドル値に一致しているとの判断に応答して、前記プロキシによって、前記第２の入力信号について前記第１の解答値を使用するためのプログラム命令
をさらに備える、請求項１６に記載のコンピュータ・プログラム製品。
【請求項１８】
前記格納されるプログラム命令が、
前記候補ハンドル値が前記第１のハンドル値に一致しないという判断に応答して、前記第２の入力信号の表現を前記コグニティブ・サーバに送信するためのプログラム命令
をさらに備える、請求項１６に記載のコンピュータ・プログラム製品。
【請求項１９】
前記第１の入力信号が、前記センサ・デバイスの環境内の前記センサ・デバイスによる測定を表す、請求項１５に記載のコンピュータ・プログラム製品。
【請求項２０】
前記ハンドル関数が前記元々の入力信号の次元ではなく前記入力信号の低次元の表現として前記ハンドル値を作るように構成される、請求項１５に記載のコンピュータ・プログラム製品。
【請求項２１】
前記第１の入力信号の前記表現が、前記プロキシにおいて決定された前記第１のハンドル値を含む、請求項１５に記載のコンピュータ・プログラム製品。
【請求項２２】
前記格納されるプログラム命令が、
前記プロキシによって、前記ハンドル関数の指標を前記サーバから受信するためのプログラム命令、をさらに備える、請求項１５に記載のコンピュータ・プログラム製品。
【請求項２３】
前記格納されるプログラム命令が、
前記センサ・デバイスのドメインに関連付けられるドメイン名を前記サーバに送信するためのプログラム命令であって、前記サーバが前記ドメイン名に基づいて複数のハンドル関数から前記ハンドル関数を決定する、前記プログラム命令、をさらに備える、請求項２２に記載のコンピュータ・プログラム製品。
【請求項２４】
前記格納されるプログラム命令が、
前記ハンドル関数を使用して前記第１の入力信号の再構成エラーを決定するためのプログラム命令と、
前記第１の入力信号の前記再構成エラーの分布を前記コグニティブ・モデルに関連付けられる訓練データ内の再構成エラーの分布と比較するためのプログラム命令と、
再構成エラーの前記分布の前記比較が所定のしきい値を超えているとの判断に応答して、前記キャッシュに対してキャッシュ無効化動作をトリガするためのプログラム命令と
をさらに備える、請求項１５に記載のコンピュータ・プログラム製品。
【請求項２５】
コンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されるとき、請求項１ないし１２のいずれかに記載の方法を実行するように構成されるプログラム・コード手段を備える、コンピュータ・プログラム。
【請求項２６】
通信ネットワークにおけるコグニティブ・アプリケーションのキャッシングのためのコンピュータ・システムであって、前記コンピュータ・システムは、１つまたは複数のプロセッサと、１つまたは複数のコンピュータ可読メモリと、１つまたは複数のコンピュータ可読記憶媒体と、前記１つまたは複数のプロセッサのうちの少なくとも１つによって前記１つまたは複数のメモリのうちの少なくとも１つを介する実行のための、前記１つまたは複数の記憶媒体のうちの少なくとも１つに格納されるプログラム命令とを備え、前記格納されるプログラム命令は、
キャッシュが関連付けられているプロキシによって、センサ・デバイスからの第１の入力信号を検出するためのプログラム命令と、
前記第１の入力信号の表現を計算するためのプログラム命令であって、前記表現はサーバに送信される、前記プログラム命令と、
前記第１の入力信号に対応する第１のハンドル値を計算するためにハンドル関数を前記第１の入力信号の前記表現に適用するためのプログラム命令と、
第１の解答値を計算するために解答関数のコグニティブ処理モデルを使用して前記第１の入力信号の前記表現を変形するためのプログラム命令と、
前記プロキシによって、前記キャッシュ内の前記第１のハンドル値と関連付けて前記第１の解答値を格納することによって、前記キャッシュの内容を修正するためのプログラム命令と
を備える、コンピュータ・システム。
【請求項２７】
前記プロキシによって第２の入力信号を検出するためのプログラム命令と、
前記第２の入力信号に対して、前記プロキシによって、前記ハンドル関数を使用して候補ハンドル値を計算するためのプログラム命令と、
前記候補ハンドル値を前記キャッシュに格納される前記第１のハンドル値と比較するためのプログラム命令と、
前記候補ハンドル値が前記第１のハンドル値に一致するかどうかを判断するためのプログラム命令と
をさらに備える、請求項２６に記載のシステム。
【請求項２８】
前記候補ハンドル値が前記第１のハンドル値に一致しているとの判断に応答して、前記プロキシによって、前記第２の入力信号について前記第１の解答値を使用するためのプログラム命令、をさらに備える、請求項２７に記載のシステム。
【請求項２９】
前記候補ハンドル値が前記第１のハンドル値に一致しないという判断に応答して、前記第２の入力信号の表現を前記コグニティブ・サーバに送信するためのプログラム命令
をさらに備える、請求項２７に記載のシステム。
【請求項３０】
前記第２の入力信号についての第２のハンドル値を受信するためのプログラム命令であって、前記第２のハンドル値が前記ハンドル関数を前記第２の入力信号の前記表現に適用することによって計算される、前記プログラム命令と、
前記第２の入力信号の前記表現に対応する第２の解答値を受信するためのプログラム命令であって、前記第１の値を計算するために前記解答関数の前記コグニティブ処理モデルを使用して前記第２の入力信号の前記表現を変形することによって第２の解答値が決定される、前記プログラム命令と、
前記プロキシによって、前記キャッシュ内の前記第２のハンドル値と関連付けて前記第２の解答値を格納することによって、前記キャッシュの前記内容を修正するためのプログラム命令と
をさらに備える、請求項２９に記載のシステム。
【請求項３１】
前記候補ハンドル値が前記第１のハンドル値に一致するかどうかを判断するための前記プログラム命令が、前記候補ハンドル値と前記第１のハンドル値との間の最近傍探索を実行するためのプログラム命令を備える、請求項２７に記載のシステム。
【請求項３２】
前記第１の入力信号が、前記センサ・デバイスの環境内の前記センサ・デバイスによる測定を表す、請求項２６に記載のシステム。
【請求項３３】
前記ハンドル関数が前記元々の入力信号の次元ではなく前記入力信号の低次元の表現として前記ハンドル値を作るように構成される、請求項２６に記載のシステム。
【請求項３４】
前記第１の入力信号の前記表現が、前記プロキシにおいて決定された前記第１のハンドル値を含む、請求項２６に記載のシステム。
【請求項３５】
前記プロキシによって、前記ハンドル関数の指標を前記サーバから受信するためのプログラム命令
をさらに備える、請求項２６に記載のシステム。
【請求項３６】
前記センサ・デバイスのドメインに関連付けられるドメイン名を前記サーバに送信するためのプログラム命令であって、前記サーバが前記ドメイン名に基づいて複数のハンドル関数から前記ハンドル関数を決定する、前記プログラム命令、
をさらに備える、請求項３５に記載のシステム。
【請求項３７】
前記ハンドル関数を使用して前記第１の入力信号の再構成エラーを決定するためのプログラム命令と、
前記第１の入力信号の前記再構成エラーの分布を前記コグニティブ・モデルに関連付けられる訓練データ内の再構成エラーの分布と比較するためのプログラム命令と、
再構成エラーの前記分布の前記比較が所定のしきい値を超えているとの判断に応答して、前記キャッシュに対してキャッシュ無効化動作をトリガするためのプログラム命令と
をさらに備える、請求項２６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に通信ネットワークにおけるキャッシングのための方法、システムおよびコンピュータ・プログラム製品に関する。より詳細には、本発明は通信ネットワークにおけるコグニティブ・アプリケーションのためのエッジ・キャッシングについての方法、システムおよびコンピュータ・プログラム製品に関する。
【背景技術】
【０００２】
ネットワーク帯域幅が限定された環境において、ネットワーク・キャッシュを使用してクライアントとサーバとの間の有効応答時間を改善することができる。ネットワーク・キャッシュは、要求されるデータを元々含むサーバよりも要求する側に近く配置されるデータ記憶装置である。キャッシングは、ウェブ・アプリケーション、データベースおよびコンピュータ処理などの用途のために効果的に使用されている。ウェブ・キャッシングはＨＴＭＬページなどのウェブ文書および画像を格納するための一時的な記憶装置を利用して、帯域幅の使用、サーバ負荷、または認識される遅れ、あるいはその組合せを削減する。
【０００３】
ウェブ・キャッシングは頻繁に使用されているが、キャッシングはまた情報中心ネットワークなどの他の分散システムにおいて大規模に使用されてきた。要求はしばしば統一資源識別子（ＵＲＩ：Uniform Resource Identifier）などの一意のハンドルを含むため、キャッシングはこれらの環境においてよく機能する。ハンドルはキャッシュされたデータと関連付けられる一意の名前として使用することができる。キャッシングは、クライアントからの要求をサーバへと通過させるプロキシまたはゲートウェイを実装することによって機能する。プロキシが以前に遭遇したことのないハンドルを含む要求を受信すると、そのプロキシは要求をサーバに送信し、得られる応答を見て、その結果をローカルに格納する。将来的に、同一のハンドルを伴う第２の要求がプロキシに遭遇すると、プロキシによって、サーバから応答を得るためにサーバに要求を送信する代わりに、ローカルに格納されたデータが応答としてクライアントに送信される。様々なキャッシング実装形態は、ローカルにキャッシュされたデータをどのように管理するか、ならびにキャッシュとサーバ・データ間の一貫性を維持することに関係している。
【０００４】
コグニティブ・アプリケーションは、クライアントから要求を受け取り（センサ・デバイスからの信号、マイクロフォンからの音声サンプル、コンピュータ・ソフトウェアからの要求、または他のタイプのデバイスからの信号を含んでもよい）、機械学習技法を適用して出力を作るアプリケーションである。特定の実装形態において、出力は、センサ・デバイスから入力として受信された信号をコグニティブ・エンジン（例えば、ニューラル・ネットワーク、デシジョン・ツリー、規則エンジンなど）にフィードした結果である。入力信号の例としては、機械音響信号、動画信号または他のセンサ出力信号が挙げられる。典型的な機械学習アプリケーションは、測定された音響信号などの入力信号を機械学習技法によって、例えば通常の音、割れるガラス、壊れたギアなどの異なるカテゴリに分類する分類システムである。
【０００５】
コグニティブ・アプリケーションのための典型的なシステムにおいて、センサは信号を生成し、その信号をネットワーク上でサーバに送信する。サーバがその信号を入力信号として受信すると、サーバは入力信号をモデルによってローカルに格納されたモデルと比較する。一部のアプリケーションにおいて、モデルは訓練データを使用して以前に学習されてあってもよく、またニューラル・ネットワーク、デシジョン・テーブルもしくは規則セット、または他のモデル化実装形態の形態をとってもよい。典型的な実装形態において、サーバは入力信号ｘをモデルと比較し、関数ｆ（ｘ）を計算する。次いでサーバは、通知を送信すること、障害管理表を開くこと、などの後続のアクションのためにｆ（ｘ）の計算の結果を使用する。一部の他の場合において、サーバは多くのコグニティブ・アプリケーションを順次使用していてもよい。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、一部の状況において、センサとサーバとの間のネットワークは程度の高いレイテンシまたは限定された帯域幅を有する。他の場合において、プライバシーまたは規制は、入力がネットワーク上で送信されることを妨げることがある。例示の実施形態は、これらの、および多くの他の場合において、よりローカルなデータソースを使用することによって、例えばプロキシ・サーバを使用することによって、離れたデータソースにアクセスするためにネットワークを利用することを回避するための手法が望ましいと認識する。加えて、プロキシを入力信号に対して他の処理を実行するように構成することが望ましいこともある。しかしながら、多くの場合においてプロキシはそのネットワーク・モデルを使用することができないことがある。そのネットワーク・モデルは大きすぎることがあり、またはサーバにおいていくつかのさらなるデータを必要とすることがある。
【課題を解決するための手段】
【０００７】
一態様によると、通信ネットワークにおけるコグニティブ・アプリケーションのキャッシングのための方法であって、キャッシュが関連付けられるプロキシによって、センサ・デバイスからの第１の入力信号を検出することと、第１の入力信号の表現（representation）を計算することであって、表現はサーバに送信される、前記計算することと、第１の入力信号に対応する第１のハンドル値を計算するためにハンドル関数を第１の入力信号の表現に適用することと、第１の解答値（answer value）を計算するために解答関数（answer function）のコグニティブ処理モデルを使用して第１の入力信号の表現を変形することと、プロキシによって、キャッシュ内の第１のハンドル値と関連付けて第１の解答値を格納することによって、キャッシュの内容を修正することとを含む方法、が提供される。
【０００８】
別の態様によると、通信ネットワークにおけるコグニティブ・アプリケーションのキャッシングのためのコンピュータ・プログラム製品であって、コンピュータ・プログラム製品は、１つまたは複数のコンピュータ可読記憶媒体と、１つまたは複数の記憶媒体のうちの少なくとも１つに格納されるプログラム命令とを備え、格納されるプログラム命令は、キャッシュが関連付けられるプロキシによって、センサ・デバイスからの第１の入力信号を検出するためのプログラム命令と、第１の入力信号の表現を計算するためのプログラム命令であって、表現はサーバに送信される、前記プログラム命令と、第１の入力信号に対応する第１のハンドル値を計算するためにハンドル関数を第１の入力信号の表現に適用するためのプログラム命令と、第１の解答値を計算するために解答関数のコグニティブ処理モデルを使用して第１の入力信号の表現を変形するためのプログラム命令と、プロキシによって、キャッシュ内の第１のハンドル値と関連付けて第１の解答値を格納することによって、キャッシュの内容を修正するためのプログラム命令とを備えるコンピュータ・プログラム製品、が提供される。
【０００９】
別の態様によると、通信ネットワークにおけるコグニティブ・アプリケーションのキャッシングのためのコンピュータ・システムであって、コンピュータ・システムは、１つまたは複数のプロセッサと、１つまたは複数のコンピュータ可読メモリと、１つまたは複数のコンピュータ可読記憶媒体と、１つまたは複数のプロセッサのうちの少なくとも１つによって１つまたは複数のメモリのうちの少なくとも１つを介する実行のための、１つまたは複数の記憶媒体のうちの少なくとも１つに格納されるプログラム命令とを備え、格納されるプログラム命令は、キャッシュが関連付けられているプロキシによって、センサ・デバイスからの第１の入力信号を検出するためのプログラム命令と、第１の入力信号の表現を計算するためのプログラム命令であって、表現はサーバに送信される、前記プログラム命令と、第１の入力信号に対応する第１のハンドル値を計算するためにハンドル関数を第１の入力信号の表現に適用するためのプログラム命令と、第１の解答値を計算するために解答関数のコグニティブ処理モデルを使用して第１の入力信号の表現を変形するためのプログラム命令と、プロキシによって、キャッシュ内の第１のハンドル値と関連付けて第１の解答値を格納することによって、キャッシュの内容を修正するためのプログラム命令とを備えるコンピュータ・システム、が提供される。
【００１０】
例示の実施形態は、機械学習技法に基づいている多くのコグニティブ・アプリケーションの場合において、単純なキャッシングは効果的でないことを認識している。入力信号は多くのノイズを含むことがあり、また２つの連続する要求が同一の入力に正確に対応しない。信号は一意のハンドルを含まず、同一の信号（例えば、エンジンの音、またはデバイスの画像）は別々の読取値に対してわずかに異なっていることさえあり得る。結果として、例示の実施形態は、入力はその生のフォーマットではめったに一致しないと認識しており、キャッシングが有効に機能しない。結果として、コグニティブ・アプリケーションのための有効なキャッシュを作成することが難しい。
【００１１】
本明細書において説明される様々な実施形態は、プロキシ・サーバをハンドル関数を使用して受信される信号についてのハンドルを生成するように構成することによって、プロキシ・サーバに関連付けられるキャッシュ内で入力信号のキャッシングを支援するために、コグニティブ・アプリケーションのためのキャッシングの有効性において改善をもたらす。
【００１２】
例示の実施形態は、通信ネットワークにおけるコグニティブ・アプリケーションのキャッシングのための方法、システムおよびコンピュータ・プログラム製品を提供する。方法の実施形態は、キャッシュが関連付けられているプロキシによって、センサ・デバイスからの第１の入力信号を検出することを含む。実施形態は、第１の入力信号の表現を計算することであって、表現はサーバに送信される、前記計算することを含む。実施形態は、第１の入力信号に対応する第１のハンドル値を計算するためにハンドル関数を第１の入力信号の表現に適用することを含む。実施形態はさらに、第１の解答値を計算するために解答関数のコグニティブ処理モデルを使用して第１の入力信号の表現を変形することを含む。実施形態は、プロキシによって、キャッシュ内の第１のハンドル値と関連付けて第１の解答値を格納することによって、キャッシュの内容を修正することを含む。本実施形態の利点は、本実施形態は、受信される入力信号についてハンドルを生成してその入力信号のキャッシングを支援するためにプロキシの使用を通じて、コグニティブ・アプリケーションのためのキャッシングの有効性において改善をもたらすことである。
【００１３】
別の実施形態は、プロキシによって第２の入力信号を検出することをさらに含む。実施形態は、第２の入力信号に対して、プロキシによって、ハンドル関数を使用して、候補ハンドル値を計算することを含む。実施形態は、候補ハンドル値をキャッシュ内に格納される第１のハンドル値と比較することを含む。実施形態は、候補ハンドル値が第１のハンドル値に一致するかどうか判断することをさらに含む。本実施形態の利点は、本実施形態はサーバと通信することなくプロキシが、候補ハンドル値がキャッシュ内に格納されるハンドル値に一致するかどうか判断することを可能にし、それによってネットワーク内の帯域幅およびコンピューティング・リソースを節約していることである。
【００１４】
別の実施形態は、候補ハンドル値が第１のハンドル値に一致しているとの判断に応答して、プロキシによって、第２の入力信号についての第１の解答値を使用することをさらに含む。本実施形態の利点は、本実施形態はプロキシがサーバから解答値を検索するのではなくキャッシュ内に格納される解答値を使用することを可能にし、それによってネットワーク内の帯域幅およびコンピューティング・リソースを節約していることである。
【００１５】
別の実施形態は、候補ハンドル値が第１のハンドル値に一致しないという判断に応答して、第２の入力信号の表現をコグニティブ・サーバに送信することをさらに含む。本実施形態の利点は、本実施形態はプロキシが入力信号それ自身ではなく入力信号の表現をサーバに送信することを可能にし、それによってネットワーク内の帯域幅およびコンピューティング・リソースを節約していることである。
【００１６】
別の実施形態は、第２の入力信号についての第２のハンドル値を受信することであって、第２のハンドル値がハンドル関数を第２の入力信号の表現に適用することによって計算される、前記受信することをさらに含む。実施形態は、第２の入力信号の表現に対応する第２の解答値を受信することであって、第１の値を計算するために解答関数のコグニティブ処理モデルを使用して第２の入力信号の表現を変形することによって第２の解答値が決定される、前記受信することをさらに含む。方法は、プロキシによって、キャッシュ内の第２のハンドル値と関連付けて第２の解答値を格納することによって、キャッシュの内容を修正することをさらに含む。本実施形態の利点は、本実施形態はプロキシが更新された値でプロキシに関連付けられるキャッシュを更新することを可能にし、キャッシュのヒット率を改善することである。
【００１７】
別の実施形態において、候補ハンドル値が第１のハンドル値に一致するかどうかを判断することは、候補ハンドル値と第１のハンドル値との間の最近傍探索を実行することを含む。本実施形態の利点は、本実施形態は、プロキシによるキャッシュ探索の効率を改善するために最近傍探索を使用することを考慮していることである。
【００１８】
別の実施形態において、第１の入力信号は、センサ・デバイスの環境内のセンサ・デバイスによる測定を表す。本実施形態の利点は、本実施形態は、環境内で測定された特定の入力信号を識別するために、特定の環境内に置かれる入力信号を処理することをもたらすことである。
【００１９】
別の実施形態において、ハンドル関数は元々の入力信号の次元ではなく入力信号の低次元の表現としてハンドル値を作るように構成される。本実施形態の利点は、本実施形態は、処理のために必要なコンピューティング・リソースがより少ない低次元の表現によって、ネットワーク内のコンピューティング・リソースを節約することをもたらすことである。
【００２０】
別の実施形態において、第１の入力信号の表現は、プロキシにおいて決定された第１のハンドル値を含む。本実施形態の利点は、本実施形態は、ハンドル値を決定するためにサーバに送信される入力信号を必要とするのではなく、プロキシにおけるハンドル値の決定を考慮し、それによってネットワーク内の帯域幅を節約していることである。
【００２１】
別の実施形態は、プロキシによって、ハンドル関数の指標（indication）をサーバから受信することをさらに含む。本実施形態の利点は、本実施形態はプロキシではなくサーバにおいてハンドル関数を決定し、それによってプロキシによって必要とされるコンピューティング・リソースがより少ないことをもたらすことである。
【００２２】
別の実施形態は、センサ・デバイスのドメインに関連付けられるドメイン名をサーバに送信することであって、サーバがドメイン名に基づいて複数のハンドル関数からハンドル関数を決定する、前記送信することをさらに含む。本実施形態の利点は、本実施形態は、サーバが特定のドメインにおいて期待される入力信号に最も合うハンドル関数を決定し、それによってドメイン内で信号を識別する正確さおよび効率を改善することをもたらすことである。
【００２３】
別の実施形態は、ハンドル関数を使用して第１の入力信号の再構成エラーを決定することをさらに含む。実施形態は、第１の入力信号の再構成エラーの分布をコグニティブ・モデルに関連付けられる訓練データ内の再構成エラーの分布と比較することをさらに含む。実施形態は、再構成エラーの分布の比較が所定のしきい値を超えているとの判断に応答して、そのキャッシュに対してキャッシュ無効化動作をトリガすることをさらに含む。本実施形態の利点は、本実施形態は、キャッシュが最も最近の解答値で更新されたままであることを保証するために、プロキシに関連付けられるキャッシュの無効化をもたらし、それによってキャッシュのヒット率を改善していることである。
【００２４】
別の実施形態は、通信ネットワークにおけるコグニティブ・アプリケーションのキャッシングのためのコンピュータ・プログラム製品を含む。本実施形態の利点は、本実施形態は、受信される入力信号についてハンドルを生成してその入力信号のキャッシングを支援するためにプロキシの使用を通じて、コグニティブ・アプリケーションのためのキャッシングの有効性において改善をもたらすことである。
【００２５】
別の実施形態は、通信ネットワークにおけるコグニティブ・アプリケーションのキャッシングのためのコンピュータ・システムを含む。本実施形態の利点は、本実施形態は、受信される入力信号についてハンドルを生成してその入力信号のキャッシングを支援するためにプロキシの使用を通じて、コグニティブ・アプリケーションのためのキャッシングの有効性において改善をもたらすことである。
【００２６】
次に、本発明の好ましい実施形態を、単に例として、また以下の図面を参照しながら説明する。
【図面の簡単な説明】
【００２７】
【図１】例示の実施形態が実装され得る、データ処理システムのネットワークのブロック図である。
【図２】例示の実施形態が実装され得る、データ処理システムのブロック図である。
【図３】例示の実施形態が実装され得る、通信ネットワークのブロック図である。
【図４】例示の実施形態による、プロキシ・サーバとコグニティブ・サーバとの間の例示のメッセージング・フローである。
【図５】例示の実施形態による、プロキシ・サーバとコグニティブ・サーバとの間の例示のメッセージング・フローである。
【図６】例示の実施形態による、プロキシ・サーバに関連付けられる例の処理のフローチャートである。
【発明を実施するための形態】
【００２８】
本明細書において説明される例示の実施形態は、一般的にコグニティブ・アプリケーションのためのエッジ・キャッシングに関する。前述のように、コグニティブ・アプリケーションは、センサ・デバイスから信号を受け取り訓練データのセットに機械学習技法を適用して出力を作るコンピュータ処理アプリケーションである。１つまたは複数の実施形態によると、キャッシング・プロトコルは関連付けられるローカル・キャッシュを有するプロキシ・サーバとコグニティブ・サーバとの間に実装され、コグニティブ・サーバは入力信号をコグニティブ・モデルに適用した結果を返すだけではなく、入力信号についての一意のハンドルを生成するように構成されるハンドル生成機能またはエンコード機能を実装する。１つまたは複数の実施形態において、ハンドル・ジェネレータ機能またはエンコード機能はセンサ・デバイスから受信したそれぞれの入力信号に対して計算され、入力信号についての一意のハンドルを作成し、またプロキシ・サーバはキャッシュ内のハンドルと関連付けてコグニティブ・サーバから受信された結果を格納する。
【００２９】
実施形態において、プロキシ・サーバがセンサ・デバイスから新しい入力信号を受信すると、プロキシ・サーバは、最初の入力信号についてのハンドルを計算するために使用したのと同一のハンドル関数を使用して新しい入力信号についての新しいハンドルを計算し、所定の一致基準を使用して新しいハンドルがキャッシュに格納されたハンドルに一致するかどうかを判断する。一致が見つかると、プロキシ・サーバは、ハンドルに関連付けられる結果を新しい入力信号についての結果として使用する。１つまたは複数の実施形態において、キャッシュのヒット率は、一意のハンドルの使用を通じて改善される。一致が見つからない場合、プロキシ・サーバは新しい入力信号をコグニティブ・サーバに転送し、コグニティブ・サーバは結果および新しい入力信号についてのハンドルを計算する。コグニティブ・サーバは新しい結果および新しいハンドルをプロキシ・サーバに送信する。次いで、プロキシ・サーバは、新しいハンドルおよび新しい結果または解答値を、プロキシ・サーバに関連付けられるキャッシュ内に格納する。１つまたは複数の実施形態によると、解答値を格納することは、格納することに先立って何が存在していてもキャッシュを修正するため、キャッシュの状態は変わる。新しい入力信号が、キャッシュ内に格納されたハンドル値に一致する計算されたハンドル値を有するプロキシ・サーバによって受信されると、プロキシ・サーバは、新しい入力信号についての解答値を決定するようコグニティブ・サーバに要求するのではなく、一致するハンドル値と関連付けられる解答値を使用することができる。
【００３０】
したがって、本明細書において説明される１つまたは複数の実施形態は、受信される入力信号についてハンドルを生成してその入力信号のキャッシングを支援するためにプロキシ・サーバの使用を通じて、コグニティブ・アプリケーションのためのキャッシングの有効性において改善をもたらす。
【００３１】
１つまたは複数の実施形態において、センサ・デバイスから受信した特定の入力信号についてのハンドル値を生成するために使用されたハンドル関数は、１つまたは複数の入力信号のプロパティにしたがって選択される。特定の実施形態において、ハンドル関数を使用して元々の入力信号の次元ではなく入力信号の低次元の表現を作り、また解答値はプロキシ・サーバのキャッシュ内の低次元の表現によってインデックス化される。特定の実施形態において、プロキシ・サーバはインデックス化された値について最近傍探索を実行して、キャッシュヒットまたはキャッシュミスかどうかを判断する。キャッシュヒットであれば、プロキシ・サーバは一致したハンドル値に対応する解答値を使用する。キャッシュミスであれば、プロキシ・サーバは生の入力信号またはその低次元の表現のいずれかをコグニティブ・サーバに送信する。
【００３２】
別の特定の実施形態において、プロキシ・サーバはハンドル関数を使用してキャッシュの無効化をトリガする。キャッシュの無効化とは、キャッシュ内のエントリがもはや有効でないため、それらを置換または除去する処理を指す。特定の実施形態において、プロキシ・サーバはハンドル関数を使用して、１つまたは複数の入力信号の再構成エラーを決定する。次いで、プロキシ・サーバは入力信号の再構成エラーの分布を訓練データ内の再構成エラーの分布と比較する。特定の実施形態において、プロキシ・サーバはカルバック・ライブラー（ＫＬ：Kullback-Leibler）ダイバージェンス測定を使用して、入力信号の再構成エラーの確率分布が訓練データの再構成エラーの確率分布からどの程度異なっているかを判断する。再構成エラーの分布が所定のしきい値を超える場合、プロキシ・サーバはそのキャッシュに対してキャッシュの無効化動作をトリガする。
【００３３】
別の特定の実施形態において、プロキシ・サーバはハンドル関数を使用してキャッシュの再有効化を実行するように構成される。そのような実施形態において、プロキシ・サーバはキャッシュにおけるモデル関数（model function）およびハンドル関数を保持する。別の特定の実施形態において、プロキシ・サーバは複数のキャッシュ（例えば、中央クラウド）から、保持されたモデル関数およびハンドル関数を周期的にマージしてもよい。
【００３４】
例示の実施形態を、特定のタイプの入力信号、ハンドル関数、コグニティブ処理アルゴリズム、コグニティブ処理モデル、ニューラル・ネットワーク、デバイス、データ処理システム、環境、構成要素、およびアプリケーションに関して、単に例として、説明する。これらのおよび他の類似するアーチファクトのあらゆる具体的な明示は、本発明を限定するように意図されていない。これらのおよび他の類似するアーチファクトのあらゆる適切な明示は、例示の実施形態の範囲内で選択することができる。
【００３５】
さらには、例示の実施形態は、あらゆるタイプのデータ、データソース、またはデータネットワーク上のデータソースへのアクセスに関して実装されてもよい。あらゆるタイプのデータ記憶装置デバイスはデータを、本発明の範囲内で、データ処理システムでローカルに、またはデータネットワーク上のいずれかで、本発明の実施形態に提供することができる。実施形態がモバイル・デバイスを使用して説明される場合、そのモバイル・デバイスとの使用に適切なあらゆるタイプのデータ記憶装置デバイスはデータを、例示の実施形態の範囲内で、モバイル・デバイスでローカルに、またはデータネットワーク上のいずれかで、そのような実施形態に提供することができる。
【００３６】
例示の実施形態を、特定のコード、設計、アーキテクチャ、プロトコル、レイアウト、模式図、およびツールを使用して、単に例として、説明するが、例示の実施形態に限定しない。さらには、例示の実施形態を、いくつかの例において、特定のソフトウェア、ツール、およびデータ処理環境を使用して、説明の明瞭さのために単に例として、説明する。例示の実施形態は、他の匹敵するまたは類似する目的の構造、システム、アプリケーション、またはアーキテクチャと併せて使用してもよい。例えば、それのための他の匹敵するモバイル・デバイス、構造、システム、アプリケーション、またはアーキテクチャは、本発明の範囲内で本発明のそのような実施形態と併せて使用してもよい。例示の実施形態は、ハードウェア、ソフトウェア、またはその組合せで実装されてもよい。
【００３７】
本開示における例は説明の明瞭さのためのみに使用され、例示の実施形態に限定されるものではない。さらなるデータ、動作、アクション、タスク、アクティビティ、および操作は本開示から想像され得ることとなり、同一のものが例示の実施形態の範囲内で企図される。
【００３８】
本明細書で列挙されるあらゆる利点は単なる例であり、例示の実施形態に限定するように意図されていない。さらなるまたは異なる利点は、特定の例示の実施形態によって実現されてもよい。さらには、特定の例示の実施形態は、上で列挙したいくつかの、もしくはすべての利点を有してもよく、または上で列挙した利点のいずれも有さなくてもよい。
【００３９】
図面を参照して、特に図１および図２を参照すると、これらの図面は、例示の実施形態が実装され得る、データ処理環境の例の図である。図１および図２は単なる例であり、異なる実施形態が実装され得る環境に関して、いかなる限定も主張または暗示するように意図されていない。特定の実装形態は以下の説明に基づいて、描写される環境に多くの修正を行うことができる。
【００４０】
図１は、例示の実施形態が実装され得る、データ処理システムのネットワークのブロック図である。データ処理環境１００は、例示の実施形態が実装され得るコンピュータのネットワークである。データ処理環境１００はネットワーク１０２を含む。ネットワーク１０２はデータ処理環境１００内で共に接続される様々なデバイスとコンピュータとの間で通信リンクを提供するために使用される媒体である。ネットワーク１０２は、有線、無線通信リンク、または光ファイバー・ケーブルなどの接続を含むことができる。
【００４１】
クライアントまたはサーバはネットワーク１０２に接続されるあるデータ処理システムの単なる例の役割であり、これらのデータ処理システムについての他の構成または役割を排除するように意図されていない。プロキシ・サーバ１０４およびコグニティブ・サーバ１０６は記憶装置ユニット１０８と共にネットワーク１０２に連結する。１つまたは複数の実施形態において、記憶装置１０８は、プロキシ・サーバ１０４およびコグニティブ・サーバ１０６のうちの１つまたは複数に関連付けられる１つまたは複数のコグニティブ・モデルを訓練するための訓練データ１０９を格納するように構成されてもよい。ソフトウェアアプリケーションはデータ処理環境１００内のあらゆるコンピュータで実行することができる。クライアント１１０、１１２、および１１４もやはりネットワーク１０２に連結される。サーバ１０４もしくは１０６、またはクライアント１１０、１１２、もしくは１１４などのデータ処理システムはデータを含むことができ、またそこで実行するソフトウェアアプリケーションまたはソフトウェアツールを有することができる。
【００４２】
単に例として、およびそのようなアーキテクチャに対するいかなる限定も暗示することなく、図１は一実施形態の例の実装形態において使用可能なある構成要素を描写している。例えば、プロキシ・サーバ１０４、コグニティブ・サーバ１０６、およびクライアント１１０、１１２、１１４は、単に例として、サーバおよびクライアントとして描写されており、クライアント−サーバのアーキテクチャに対していかなる限定も暗示するためではない。別の例として、一実施形態は示されるようないくつかのデータ処理システムおよびデータネットワークにまたがって分散されてもよいが、一方で別の実施形態は例示の実施形態の範囲内で単一のデータ処理システムに実装することができる。データ処理システム１０４、１０６、１１０、１１２、および１１４はまた一実施形態を実装するために適切なクラスタ、パーティション、および他の構成における例のノードを表現している。
【００４３】
プロキシ・サーバ１０４のプロキシ・アプリケーション１０５は、１つまたは複数のセンサ・デバイスから入力信号を受信することと、入力信号に対するハンドル関数を計算してハンドル値を決定することと、コグニティブ・サーバ１０６から解答値を受信することと、を含むがそれに限定されない、本明細書において説明されるような、プロキシ・サーバ１０４の１つまたは複数の機能を実行するように構成されるプロキシ機能の一実施形態を実装する。コグニティブ・サーバ１０６のコグニティブ・アプリケーション１０７は、プロキシ・サーバ１０４から入力信号を受信することと、入力信号に対する解答関数およびハンドル関数を計算することと、解答値およびハンドル値をプロキシ・サーバ１０４に送信することと、を含むがそれに限定されない、本明細書において説明されるような、データ処理システム１００内のコグニティブ・サーバ１０６の１つまたは複数の機能を実行するように構成される。
【００４４】
キャッシュ１３０は本明細書において説明される記憶装置キャッシュの例である。キャッシュ１３０はプロキシ・サーバ１０４に関連付けられ、プロキシ・サーバ１０４から受信された解答値およびハンドル値のうち１つまたは複数を格納するように構成される。特定の実施形態において、キャッシュ１３０はプロキシ・サーバ１０４へのローカル・キャッシュである。
【００４５】
センサ・デバイス１３２は、本明細書において説明されるセンサ・デバイスの例である。例えば、センサ・デバイス１３２はセンサ・デバイス１３２の環境内で測定値を生成することができ、および測定値を表現する音響または動画信号などの信号をプロキシ・サーバ１０４に送信する。
【００４６】
プロキシ・サーバ１０４、コグニティブ・サーバ１０６、記憶装置ユニット１０８、クライアント１１０、１１２、および１１４、キャッシュ１３０、およびセンサ・デバイス１３２は、有線接続、無線通信プロトコル、または他の適切なデータ接続を使用してネットワーク１０２に連結することができる。クライアント１１０、１１２、および１１４は、例えば、パーソナル・コンピュータまたはネットワーク・コンピュータであってもよい。
【００４７】
描写される例において、コグニティブ・サーバ１０６はブートファイル、オペレーティング・システム画像、およびアプリケーションなどのデータをクライアント１１０、１１２、および１１４に提供することができる。クライアント１１０、１１２、および１１４はこの例においてはコグニティブ・サーバ１０６に対するクライアントであってもよい。クライアント１１０、１１２、１１４、またはそのいくつかの組合せは、それ自身のデータ、ブートファイル、オペレーティング・システム画像、およびアプリケーションを含むことができる。データ処理環境１００は、図示されていないさらなるサーバ、クライアント、および他のデバイスを含んでもよい。
【００４８】
描写される例において、データ処理環境１００はインターネットであってもよい。ネットワーク１０２は互いに通信するために伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ：Transmission Control Protocol/Internet Protocol）および他のプロトコルを使用するネットワークおよびゲートウェイの集合を代表することができる。インターネットの最重要部分は、主なノード同士またはホストコンピュータ同士の間のデータ通信リンクのバックボーンであり、数千もの商用、行政、教育、ならびにデータおよびメッセージをルーティングする他のコンピュータ・システムを含む。もちろん、データ処理環境１００はまた、例えばイントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、またはワイド・エリア・ネットワーク（ＷＡＮ）などの複数の異なるタイプのネットワークとして実装されてもよい。図１は例として意図されており、異なる例示の実施形態についてのアーキテクチャ上の限定として意図されていない。
【００４９】
他の使用の中でも、データ処理環境１００は例示の実施形態が実装され得るクライアント−サーバ環境を実装するために使用されてもよい。クライアント−サーバ環境は、クライアントのデータ処理システムとサーバのデータ処理システムとの間の相互作用を使用することによってアプリケーションが機能するべく、ソフトウェアアプリケーションおよびデータがネットワークをまたいで分散されるようにする。データ処理環境１００はまたサービス指向アーキテクチャを採用することもでき、その場合はネットワークをまたいで分散された相互動作可能なソフトウェア構成要素を一貫性のある業務アプリケーションとして共にパッケージングすることもできる。データ処理環境１００はまた、最小限の管理努力またはサービスのプロバイダとの相互作用で、素早く提供し、リリースすることができる構成可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想機械、およびサービス）の共有プールへの便利な、オンデマンドのネットワーク・アクセスを可能にするために、クラウドの形態をとって、サービス・デリバリーのクラウド・コンピューティング・モデルを採用してもよい。
【００５０】
図２を参照すると、この図は例示の実施形態が実装され得る、データ処理システムのブロック図である。データ処理システム２００は図１のサーバ１０４および１０６、またはクライアント１１０、１１２、および１１４などのコンピュータ、あるいは例示の実施形態について、処理を実装するコンピュータ使用可能プログラム・コードまたは命令が配置され得る別のタイプのデバイスなどの例である。
【００５１】
データ処理システム２００はまた、例示の実施形態の処理を実装するコンピュータ使用可能プログラム・コードまたは命令が配置され得る図１のデータ処理システムなどの、データ処理システムまたはその中の構成を表す。データ処理システム２００は単なる例として、それに限定されることなく、コンピュータとして説明される。図１のデバイス１３２などの他のデバイスの形態における実装形態は、タッチ・インターフェースを追加することなどにより、データ処理システム２００を修正することができ、さらにはある描写される構成要素を、本明細書において説明されるデータ処理システム２００の動作および機能の一般的な説明から逸脱することなく、データ処理システム２００から取り除くことができる。
【００５２】
描写される例において、データ処理システム２００は、ノース・ブリッジおよびメモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ）２０２およびサウス・ブリッジおよび入力／出力（Ｉ／Ｏ）コントローラ・ハブ（ＳＢ／ＩＣＨ）２０４を含むハブ・アーキテクチャを採用する。処理ユニット２０６、メイン・メモリ２０８、およびグラフィック・プロセッサ２１０はノース・ブリッジおよびメモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ）２０２に連結される。処理ユニット２０６は１つまたは複数のプロセッサを含んでもよく、また１つまたは複数の異種プロセッサ・システムを使用して実装されてもよい。処理ユニット２０６はマルチコア・プロセッサであってもよい。グラフィック・プロセッサ２１０は特定の実装形態においてアクセラレーテッド・グラフィック・ポート（ＡＧＰ）を介してＮＢ／ＭＣＨ２０２に連結されてもよい。
【００５３】
描写される例において、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２１２は、サウス・ブリッジおよびＩ／Ｏコントローラ・ハブ（ＳＢ／ＩＣＨ）２０４に連結される。音響アダプタ２１６、キーボードおよびマウス・アダプタ２２０、モデム２２２、読み取り専用メモリ（ＲＯＭ）２２４、ユニバーサル・シリアル・バス（ＵＳＢ）および他のポート２３２、およびＰＣＩ／ＰＣＩｅデバイス２３４は、バス２３８を介してサウス・ブリッジおよびＩ／Ｏコントローラ・ハブ２０４に連結される。ハード・ディスク・ドライブ（ＨＤＤ）またはソリッド・ステート・ドライブ（ＳＳＤ）２２６およびＣＤ−ＲＯＭ２３０はバス２４０を介してサウス・ブリッジおよびＩ／Ｏコントローラ・ハブ２０４に連結される。ＰＣＩ／ＰＣＩｅデバイス２３４は、例えば、イーサネット（Ｒ）アダプタ、アドインカード、およびノートブック型コンピュータ用のＰＣカードを含むことができる。ＰＣＩがカード・バス・コントローラを使用する一方、ＰＣＩｅはカード・バス・コントローラを使用しない。ＲＯＭ２２４は、例えば、フラッシュのバイナリ入力／出力システム（ＢＩＯＳ）であってもよい。ハード・ディスク・ドライブ２２６およびＣＤ−ＲＯＭ２３０は、例えば、インテグレーテッド・ドライブ・エレクトロニクス（ＩＤＥ）、シリアルＡＴＡ（ＳＡＴＡ：serial advanced technology attachment）インターフェース、またはｅｘｔｅｒｎａｌ−ＳＡＴＡ（ｅＳＡＴＡ）およびｍｉｃｒｏ−ＳＡＴＡ（ｍＳＡＴＡ）などの変形形態を使用することができる。スーパーＩ／Ｏ（ＳＩＯ）デバイス２３６は、バス２３８を介してサウス・ブリッジおよびＩ／Ｏコントローラ・ハブ（ＳＢ／ＩＣＨ）２０４に連結されてもよい。
【００５４】
メイン・メモリ２０８、ＲＯＭ２２４、またはフラッシュ・メモリ（図示せず）などのメモリは、コンピュータ使用可能記憶装置デバイスのいくつかの例である。ハード・ディスク・ドライブまたはソリッド・ステート・ドライブ２２６、ＣＤ−ＲＯＭ２３０、および他の類似する使用可能なデバイスは、コンピュータ使用可能記憶媒体を含むコンピュータ使用可能記憶装置デバイスのいくつかの例である。
【００５５】
オペレーティング・システムは処理ユニット２０６上で実行する。オペレーティング・システムは図２のデータ処理システム２００内の様々な構成要素の制御を協調させて提供する。オペレーティング・システムは、あらゆるタイプのコンピューティング・プラットフォームについての市販のオペレーティング・システムであってよく、サーバ・システム、パーソナル・コンピュータ、およびモバイル・デバイスを含むがそれに限定されない。オブジェクト指向または他のタイプのプログラミング・システムはオペレーティング・システムと併せて動作し、データ処理システム２００で実行しているプログラムまたはアプリケーションからオペレーティング・システムにコールを与えることができる。
【００５６】
オペレーティング・システムについての命令、オブジェクト指向プログラミング・システムおよび図１のアプリケーション１０５などのアプリケーションまたはプログラムは、ハード・ディスク・ドライブ２２６のコード２２６Ａの形態などの記憶装置デバイスに配置され、処理ユニット２０６による実行のために、メイン・メモリ２０８などの１つまたは複数のメモリのうちの少なくとも１つにロードされてもよい。例示の実施形態の処理は、コンピュータ実装命令を使用して処理ユニット２０６によって実行されてもよく、コンピュータ実装命令は、例えば、メイン・メモリ２０８、読み取り専用メモリ２２４などのメモリ、または１つもしくは複数の周辺デバイスに配置されてもよい。
【００５７】
さらには、ある場合において、コード２２６Ａはネットワーク２０１Ａ上でリモート・システム２０１Ｂからダウンロードすることができ、この場合類似するコード２０１Ｃが記憶装置デバイス２０１Ｄに格納される。別の場合において、コード２２６Ａはネットワーク２０１Ａ上でリモート・システム２０１Ｂにダウンロードすることができ、この場合ダウンロードされたコード２０１Ｃは記憶装置デバイス２０１Ｄに格納される。
【００５８】
図１〜図２におけるハードウェアは、実装形態によって異なっていてもよい。フラッシュ・メモリ、等価な非揮発性のメモリ、または光学ディスクドライブなどの他の内部ハードウェアまたは周辺デバイスは、図１〜図２に描写されるハードウェアに加えて、またはそれを置き換えて使用してもよい。加えて、例示の実施形態の処理は、マルチプロセッサデータ処理システムに適用してもよい。
【００５９】
一部の例示的な例において、データ処理システム２００は携帯情報端末（ＰＤＡ）であってもよく、ＰＤＡは一般的にフラッシュ・メモリで構成されて、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方を格納するための非揮発性のメモリを提供する。バスシステムは、システムバス、Ｉ／Ｏバス、およびＰＣＩバスなどの１つまたは複数のバスを備えることができる。もちろん、バスシステムは、枠組み（fabric）またはアーキテクチャに取り付けられる異なる構成要素同士またはデバイス同士の間のデータの転送をもたらすあらゆるタイプの通信枠組みまたはアーキテクチャを使用して実装されてもよい。
【００６０】
通信ユニットはデータを送信および受信するために使用される、モデムまたはネットワーク・アダプタなどの１つまたは複数のデバイスを含んでもよい。メモリは、例えば、メイン・メモリ２０８またはノース・ブリッジおよびメモリ・コントローラ・ハブ２０２で見つけられるようなキャッシュなどのキャッシュであってもよい。処理ユニットは１つまたは複数のプロセッサまたはＣＰＵを含んでもよい。
【００６１】
図１〜図２において描写される例、および上述の例は、アーキテクチャ上の限定を暗示するつもりではない。例えば、データ処理システム２００はまた、タブレットコンピュータ、ラップトップコンピュータまたは電話デバイスであってもよく、加えて、モバイルまたはウェアラブルデバイスの形態をとってもよい。
【００６２】
コンピュータまたはデータ処理システムが、仮想機械、仮想デバイスまたは仮想構成要素として説明される場合、仮想機械、仮想デバイスまたは仮想構成要素は、データ処理システム２００において描写される一部またはすべての構成要素の仮想化された明示を使用して、データ処理システム２００のやり方で動作する。例えば、仮想機械において、仮想デバイスまたは仮想構成要素、処理ユニット２０６は、ホスト・データ処理システム内で利用可能なハードウェア処理ユニット２０６のすべてまたはいくつかの数の仮想化インスタンスとして明示され、メイン・メモリ２０８は、ホスト・データ処理システム内で利用可能であり得るメイン・メモリ２０８のすべてまたは一部の部分の仮想化インスタンスとして明示され、ディスク２２６はホスト・データ処理システム内で利用可能であり得るディスク２２６のすべてまたは一部の部分の仮想化インスタンスとして明示される。そのような場合におけるホスト・データ処理システムは、データ処理システム２００によって代表される。
【００６３】
図３を参照すると、図３は、例示の実施形態が実装され得る、通信ネットワーク３００のブロック図である。通信ネットワーク３００は、ローカル・キャッシュ１３０に関連付けられているプロキシ・サーバ１０４と通信しているセンサ・デバイス１３２を含む。プロキシ・サーバ１０４は、さらにコグニティブ・サーバ１０６と通信している。
【００６４】
１つまたは複数の実施形態において、プロキシ・サーバ１０４はセンサ・デバイス１３２から入力信号ｘを受信し、プロキシ・サーバはその入力信号ｘをコグニティブ・サーバ１０６に転送する。入力信号ｘを受信するのに応答して、コグニティブ・サーバ１０６は解答関数ｆ（ｘ）を使用して入力信号ｘから解答値を計算する。特定の実施形態において、解答関数ｆ（ｘ）はコグニティブ処理モデルを使用して入力信号ｘを処理し、得られる解答値を生成する。１つまたは複数の実施形態において、コグニティブ処理モデルは解答関数を使用して入力信号の表現を変形するために演算を行い、解答値を計算する。特定の実施形態において、コグニティブ処理モデルは訓練データ（図１の訓練データ１０９など）、デシジョン・ツリー、規則エンジン、分類アルゴリズムまたはあらゆる他のコグニティブ処理技法を使用して訓練されたニューラル・ネットワークを含むことができる。特定の実施形態において、解答値は、例えば、分類もしくは入力信号ｘの識別、入力信号ｘのさらなる処理の指標、または入力信号ｘを受信するのに応答してコグニティブ・サーバ１０６もしくは別のコンピュータもしくはデータ処理システムによって実行されることになるアクションの指標を含んでもよい。特定の実施形態において、アクションは入力信号ｘの通知をクライアント・デバイスに送信することを含む。
【００６５】
１つまたは複数の実施形態において、コグニティブ・サーバ１０６はハンドル関数ｇ（ｘ）を使用して、入力信号ｘについてのハンドル値を計算するようにさらに構成される。１つまたは複数の実施形態において、ハンドル関数ｇ（ｘ）は、入力信号ｘの性質またはプロパティに基づいて所与の入力信号ｘについてのハンドルを計算するために使用され得るあらゆる関数を含むことができる。特定の実施形態において、ハンドル関数ｇ（ｘ）は、信号、入力信号から１つもしくは複数の特徴を抽出する音響エンコーダ、またはハッシュ関数に対して訓練された浅いニューラル・ネットワークのうち１つまたは複数を含むことができる。
【００６６】
一実施形態において、コグニティブ・サーバ１０６は解答値およびハンドル値をプロキシ・サーバ１０４にさらに送信するように構成され、プロキシ・サーバ１０４は解答値をキャッシュ１３０内のハンドル値と関連付けて格納するように構成される。１つまたは複数の実施形態において、ハンドル関数ｇ（ｘ）はまたプロキシ・サーバ１０４ならびにコグニティブ・サーバ１０６にも知られている。プロキシ・サーバ１０４が新しい入力信号ｙをセンサ・デバイス１３２から受信すると、プロキシ・サーバ１０４は入力信号ｙに対してハンドル関数ｇ（ｙ）を計算し、入力信号ｙについての新しいハンドル値を取得する。プロキシ・サーバ１０４は得られるハンドル値を以前に格納されたキャッシュ１３０内のハンドル関数値、例えば、ｇ（ｘ）から得られるハンドル値と比較し、新しいハンドル値が所定の一致基準にしたがって格納されたハンドル値に一致するかどうかを判断する。ｇ（ｙ）から取得された新しいハンドル値が、以前にサーバから受信したｇ（ｘ）から取得された格納されたハンドル値に一致する場合、以前に格納された解答ｆ（ｘ）の解答値は入力信号ｙへの解答値として使用される。
【００６７】
一実施形態において、ハンドル関数ｇ（ｘ）はプロキシ・サーバ１０４においてあらかじめ定められ、プロキシ・サーバ１０４はハンドル関数ｇ（ｘ）を入力信号ｘに適用してハンドル値を決定する。プロキシ・サーバ１０４は元々の入力信号ｘをコグニティブ・サーバ１０６に送信する。一実施形態において、コグニティブ・サーバ１０６は解答関数ｆ（ｘ）を使用して解答値を計算し、解答値をプロキシ・サーバ１０４に送信するようにさらに構成される。プロキシ・サーバ１０４は解答値をキャッシュ１３０内のハンドル値と関連付けて格納するように構成される。プロキシ・サーバ１０４はハンドル値を使用してローカルにキャッシュされたハンドル値およびキャッシュ１３０内の関連付けられた解答値の存在をチェックし、キャッシュされた解答値を、関連付けられるキャッシュされたハンドル値に一致するハンドル値を有する入力信号への解答値として使用する。そのような一実施形態にとっての利点は、既存のコグニティブ・サーバに変更を加えることなく実装し得ることである。
【００６８】
別の実施形態において、ハンドル関数ｇ（ｘ）は所定のプロキシ・サーバ１０４においてあらかじめ定められ、プロキシ・サーバ１０４はハンドル関数ｇ（ｘ）を入力信号ｘに適用してハンドル値を決定する。プロキシ・サーバ１０４はハンドル値を使用してローカルにキャッシュされたハンドル値および関連付けられる解答値の存在をチェックし、キャッシュされた解答値を、関連付けられるキャッシュされたハンドル値に一致するハンドル値を有する入力信号への解答値として使用する。プロキシ・サーバ１０４はさらにプロキシ・サーバ１０４とコグニティブ・サーバ１０６との間で通信プロトコルを使用して計算されたハンドル値をコグニティブ・サーバ１０６に送信し、コグニティブ・サーバ１０６は、入力信号ｘではなくプロキシ・サーバ１０４によって計算されたハンドル値を使用して、入力信号の分類などのコグニティブ処理を実行する。そのような一実施形態の利点は、プロキシ・サーバ１０４およびコグニティブ・サーバ１０６の両方においてハンドル関数ｇ（ｘ）の計算を回避し、通信ネットワーク３００内の計算リソースを節約することである。
【００６９】
別の実施形態において、センサ・デバイス１３２は、センサ・デバイス１３２が割り当てられる特定の場所または環境などの特定のドメインに関連付けられる。プロキシ・サーバ１０４は、ドメイン名をセンサ・デバイス１３２のドメインに関連付ける。特定の実施形態において、プロキシ・サーバ１０４はドメイン名をコグニティブ・サーバ１０６に送信し、プロキシ・サーバ１０４がそのドメイン名に関連付けられるドメインにサービングしていることを示す。ドメイン名を受信するのに応答して、コグニティブ・サーバ１０６は識別されたドメインをサービングするために最適であるハンドル関数ｇ（ｘ）を決定し、ハンドル関数ｇ（ｘ）の定義または指標あるいはその両方をプロキシ・サーバ１０４に送信する。一実施形態において、コグニティブ・サーバ１０６は、利用可能な訓練データに基づいて実行され得る、そのドメインについて最良のハンドル関数ｇ（ｘ）を決定する。特定の実施形態において、ハンドル関数ｇ（ｘ）は、関数ｆ（ｘ）についてコグニティブ・サーバ１０６によって実装されるニューラル・ネットワークよりも小さいか、複雑度の低い、訓練されたニューラル・ネットワークを含むことができる。他の特定の実施形態において、決定されたハンドル関数ｇ（ｘ）は特徴抽出器または信号エンコーダを含むことができる。
【００７０】
ハンドル関数ｇ（ｘ）の定義または識別を受信すると、プロキシ・サーバ１０４はセンサ・デバイス１３２から受信した入力信号に対してハンドル関数ｇ（ｘ）を利用する。センサ・デバイス１３２から入力信号ｘを受信すると、プロキシ・サーバ１０４はそのドメインに関連付けられるハンドル関数ｇ（ｘ）を入力信号ｘに適用し、ハンドル値を決定する。プロキシ・サーバ１０４はハンドル値を使用してローカルにキャッシュされたハンドル値および関連付けられる解答値の存在をチェックし、キャッシュされた解答値を、関連付けられるキャッシュされたハンドル値に一致するハンドル値を有する入力信号への解答値として使用する。プロキシ・サーバ１０４はさらにプロキシ・サーバ１０４とコグニティブ・サーバ１０６との間で通信プロトコルを使用して計算されたハンドル値をコグニティブ・サーバ１０６に送信し、コグニティブ・サーバ１０６は、入力信号ｘではなくプロキシ・サーバ１０４によって計算されたハンドル値を使用して、入力信号の分類などのコグニティブ処理を実行する。コグニティブ・サーバ１０６は解答関数ｆ（ｘ）を使用して解答値を計算し、解答値をプロキシ・サーバ１０４に送信するようにさらに構成される。プロキシ・サーバ１０４は解答値をキャッシュ１３０内のハンドル値と関連付けて格納するように構成される。プロキシ・サーバ１０４はハンドル値を使用してローカルにキャッシュされたハンドル値およびキャッシュ１３０内の関連付けられる解答値の存在をチェックし、キャッシュされた解答値を、関連付けられるキャッシュされたハンドル値に一致するハンドル値を有する入力信号への解答値として使用する。そのような一実施形態の利点は、入力信号ｘに対応するハンドル値を計算するために使用されるハンドル関数ｇ（ｘ）が、コグニティブ・サーバ１０６によって選択され、センサ・デバイス１３２に関連付けられる特定のドメインにしたがって最適化される得ることである。
【００７１】
別の実施形態において、プロキシ・サーバ１０４は元々の入力信号ｘをセンサ・デバイス１３２から受信し、元々の入力信号ｘをコグニティブ・サーバ１０６に送信する。コグニティブ・サーバ１０６は入力信号ｘに対するハンドル関数ｇ（ｘ）を計算してハンドル値を決定し、ハンドル値をプロキシ・サーバ１０４に送信する。プロキシ・サーバ１０４はハンドル値をキャッシュ１３０内にローカルに格納するかどうかを判断する。ハンドル値がローカルに格納される場合、プロキシ・サーバ１０４はハンドル値に関連付けられる解答値を使用する。ハンドル値がローカルに格納されない場合、プロキシ・サーバ１０４はコグニティブ・サーバ１０６にハンドル値に関連付けられる解答値について要求を送信する。コグニティブ・サーバ１０６は、解答関数ｆ（ｘ）を使用して解答値を計算し、解答値をプロキシ・サーバ１０４に送信するようにさらに構成される。プロキシ・サーバ１０４は解答値を受信しその解答値およびハンドル値をキャッシュ１３０内に格納する。そのような一実施形態は、ハンドル値がその時点でキャッシュ１３０に格納されていない場合プロキシ・サーバ１０４とコグニティブ・サーバ１０６との間でさらなるメッセージングを必要とするが、プロキシ・サーバ１０４における処理は著しく削減される。
【００７２】
一実施形態において、プロキシ・サーバ１０４およびセンサ・デバイス１３２は、コグニティブ・サーバ１０６を運用している組織とは異なる組織に所属してもよく、またそのような組織によって運用されてもよい。一例として、プロキシ・サーバ１０４は製品を製造する製造プラントによって運用されてもよく、コグニティブ・サーバ１０６はクラウド・サーバ・プロバイダによって運用されるクラウド・サービスであってもよい。センサ・デバイス１３２はカメラであってもよい。特定の実施形態において、製造プラントはクラウド・サービスに、許容できる製品がどのように見えるか、および製品における典型的な欠陥がどのように見えるかを示すいくつかの画像からなる訓練データを提供する。実施形態において、クラウド・サービスは画像を使用して、良好な製品と不良な製品を識別するためのニューラル・ネットワークなどのモデルを組み立てる。実施形態において、製造プラントはセンサ・デバイス１３２としてカメラを使用して、クラウドのコグニティブ・サーバ１０６からのモデルを活用しながら、製造処理の間に作られたユニットの画像を良好な製品と不良な製品を識別するプロキシ・サーバ１０４に送信する。特定の実施形態において、それぞれのタイプの欠陥または良好な製品について１つの要求だけがクラウド・サービスへ行くことにより、製造プラントは、その機微な運用データ、例えば、作られたユニットの総数およびその製造処理における欠陥の割合などをクラウド・サービスにさらすことなく、運用データをプライベートに維持することを可能にしている。同時に、クラウド・サービスの能力はモデルを訓練するために使用される。
【００７３】
別の実施形態において、製造プラントはセンサ・デバイス１３２としてマイクロフォンを使用していてもよく、ジェット・エンジン、洗浄機械、ドライヤまたはエアコンの正しい動作をチェックするなど、製品が良好か欠陥があるかを判断するための試験処理の間ユニットによって作られる音を使用していてもよい。実施形態において、良好および不良のユニットの音はデシジョン・ツリーに基づくそのモデルを訓練するためにコグニティブ・サーバ１０６を実装するクラウド・サービスに提供される。実施形態において、音は、機微な情報をクラウド・サービスにさらすことなくプロキシ・サーバ１０４によってチェックされる。作られたユニットの総数およびその製造処理における欠陥の割合などの運用データを含み得る機微な情報は、その機微な情報をクラウド・サービスにさらすことなくプライベートに維持される。
【００７４】
別の実施形態において、銀行はそのローン文書をいくつかのレベルのリスク価値に分類するために別のクラウド・サービス事業者によって提供されるクラウドにおいてコグニティブ・サーバ１０６を使用することができる。異なるカテゴリにおける異なる文書の典型的な例が、ニューラル・ネットワーク・モデルを作って様々な文書をそれらの対応するリスク・カテゴリに分類するクラウド・サービスに提供される。実施形態において、訓練処理はまた浅いモデルを訓練してそれぞれの文書を特徴付けるハンドル関数を定義する。実施形態において、銀行はセンサ・デバイス１３２としてローン文書を伴うデータベース・サーバ、およびプロキシ・サーバ１０４を使用して銀行の制御内で文書を分類する。実施形態において、銀行は分類のためにクラウド・ベースのサービスにいくつかの文書を送信することを回避する。
【００７５】
図４〜図５を参照すると、これらの図面は例示の実施形態による、プロキシ・サーバ１０４とコグニティブ・サーバ１０６との間の例示のメッセージング・フロー４００である。４０２において、センサ・デバイス１３２は第１の入力信号ｘをプロキシ・サーバ１０４に送信する。４０４において、プロキシ・サーバ１０４は第１の入力信号ｘをコグニティブ・サーバ１０６に送信する。入力信号ｘを受信するのに応答して、４０６においてコグニティブ・サーバ１０６は解答関数ｆ（ｘ）から第１の解答値を計算する。特定の実施形態において、解答関数ｆ（ｘ）はコグニティブ処理モデルを使用して第１の入力信号ｘを処理し、得られる解答値を生成する。４０８において、コグニティブ・サーバ１０６はハンドル関数ｇ（ｘ）を使用して第１の入力信号ｘに対応する第１のハンドル値を計算する。４１０において、コグニティブ・サーバ１０６は第１の解答値および第１のハンドル値をプロキシ・サーバ１０４に送信する。４１２において、プロキシ・サーバ１０４は第１の解答値を第１のハンドル値と関連付けてキャッシュ１３０内に格納する。
【００７６】
４１４において、プロキシ・サーバ１０４はセンサ・デバイス１３２から第２の入力信号ｙを受信する。４１６において、プロキシ・サーバ１０４はハンドル関数ｇ（ｘ）を使用して入力信号ｙに対して新しいハンドル値を計算する。４１８において、プロキシ・サーバ１０４は新しいハンドル値をキャッシュ１３０内に格納された第１のハンドル値と比較する。１つまたは複数の実施形態において、キャッシュ１３０は複数の解答値および以前に受信された入力信号から取得される関連付けられるハンドル値を含むことができる。４２０において、一致が見つかると、プロキシ・サーバは一致する格納されたハンドル値に対応する格納された第１の解答値を、入力信号ｙについての解答として使用する。４２２において、プロキシ・サーバ１０４は新しい入力信号ｙをコグニティブ・サーバ４２２に送信し、メッセージング・フロー４００は終了する。
【００７７】
図６を参照すると、この図面は例示の実施形態による、プロキシ・サーバ１０４に関連付けられる例の処理５００のフローチャートである。ブロック５０２において、プロキシ・サーバ１０４は第１の入力信号ｘをセンサ・デバイス１３２から受信する。ブロック５０４において、プロキシ・サーバ１０４は第１の入力信号ｘをコグニティブ・サーバ１０６に送信する。入力信号ｘを受信するのに応答して、コグニティブ・サーバ１０６は解答関数ｆ（ｘ）から第１の解答値を計算する。コグニティブ・サーバ１０６はさらにハンドル関数ｇ（ｘ）を使用して第１の入力信号ｘに対応する第１のハンドル値を計算する。ブロック５０６において、プロキシ・サーバ１０４はコグニティブ・サーバ１０６から第１の解答値および第１のハンドル値を受信する。ブロック５０８において、プロキシ・サーバ１０４は第１の解答値を第１のハンドル値と関連付けてキャッシュ１３０内に格納する。
【００７８】
ブロック５１０において、プロキシ・サーバ１０４はセンサ・デバイス１３２から第２の入力信号ｙを受信する。ブロック５１２において、プロキシ・サーバ１０４はハンドル関数ｇ（ｘ）を使用して第２の入力信号ｙに対する候補ハンドル値を計算する。ブロック５１４において、プロキシ・サーバ１０４は候補ハンドル値をキャッシュ１３０内に格納される第１のハンドル値と比較する。ブロック５１６において、プロキシ・サーバ１０４は所定の一致基準を使用して一致が見つかるかどうか判断する。特定の実施形態において、候補ハンドル値と第１のハンドル値の差異が所定のしきい値内であれば、プロキシ・サーバ１０４は候補ハンドル値が第１のハンドル値に一致していると判断する。一致が見つかると、ブロック５１８において、プロキシ・サーバ１０４は第１の解答値を第２の入力信号ｙに対する解答として使用し、処理５００は終了する。
【００７９】
候補ハンドル値と第１のハンドル値との間で一致が見つからない場合、ブロック５２０において、プロキシ・サーバ１０４は第２の入力値ｙをコグニティブ・サーバ１０６に送信する。第２の入力値ｙを受信するのに応答して、コグニティブ・サーバ１０６は解答関数から第２の解答値を、またハンドル関数から第２のハンドル値を計算し、第２の解答値および第２のハンドル値をプロキシ・サーバ１０４に送信する。ブロック５２４において、プロキシ・サーバ１０４は第２の解答値を第２のハンドル値と関連付けてキャッシュ１３０内に格納する。次いで、処理５００は終了する。
【００８０】
プロキシ・サーバとコグニティブ・サーバとの間でキャッシング動作を実行することに関して様々な実施形態が説明されるが、本明細書において説明される原理はコンピュータ・システムまたは他の電子デバイスによって実行されるあらゆる適切なコグニティブ・アプリケーションに適用され得ることを理解すべきである。
【００８１】
したがって、コグニティブ・アプリケーションの解答値のキャッシングを伴う動作、および他の関連する特徴、機能、または動作について、コンピュータに実装される方法、システムまたは装置、およびコンピュータ・プログラム製品が、例示の実施形態において提供される。一実施形態またはその部分が、あるタイプのデバイス、コンピュータに実装される方法、システムまたは装置に関して説明される場合、コンピュータ・プログラム製品またはその部分は、そのタイプのデバイスの適切かつ同等な明示を伴う使用のために適合または構成される。
【００８２】
一実施形態があるアプリケーションに実装されるとして説明される場合、ソフトウェア・アズ・ア・サービス（ＳａａＳ）モデルにおけるアプリケーションのデリバリーは、例示の実施形態の範囲内で企図される。ＳａａＳモデルにおいて、一実施形態を実装するアプリケーションの能力は、クラウド・インフラストラクチャにおいてアプリケーションを実行することによりユーザに提供される。ユーザはウェブ・ブラウザ（例えば、ウェブベースの電子メール）などのシン・クライアント・インターフェースまたは他の軽量なクライアント・アプリケーションを介して様々なクライアント・デバイスを使用してアプリケーションにアクセスすることができる。ユーザはネットワーク、サーバ、オペレーティング・システム、またはクラウド・インフラストラクチャの記憶装置を含む基礎的なクラウド・インフラストラクチャを、管理または制御しない。場合によっては、ユーザはＳａａＳアプリケーションの能力を管理または制御すらしないことがある。一部の他の場合において、アプリケーションのＳａａＳの実装形態は、限定されたユーザ特異的なアプリケーション構成設定の可能な例外を許可することがある。
【００８３】
本発明は、統合のあらゆる可能な技術的詳細レベルにおいてシステム、方法、またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、１つまたは複数のコンピュータ可読記憶媒体上に、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有する１つまたは複数のコンピュータ可読記憶媒体を含むことができる。
【００８４】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および格納することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、それに限定はしないが、電子記憶装置デバイス、磁気記憶装置デバイス、光学記憶装置デバイス、電磁気記憶装置デバイス、半導体記憶装置デバイスまたは前述のあらゆる適切な組合せであってもよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的な列挙としては、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、記録された命令を有するパンチカードまたは溝に刻まれた構造などの機械的にエンコードされたデバイス、および前述のあらゆる適切な組合せ、を含む。本明細書において使用されるようなコンピュータ可読記憶媒体は、電波または他の自由に伝搬する電磁波、導波路もしくは他の送信媒体（例えば、光ファイバー・ケーブルを通過する光パルス）を介して伝搬する電磁波、または電線を介して送信される電気的信号など、一過性の信号そのものであると解釈されてはならない。
【００８５】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、個別の計算する／処理デバイスに、あるいは、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組合せなどのネットワークを介して、外部のコンピュータもしくは外部の記憶装置デバイスに、ダウンロードすることができる。ネットワークは、銅の送信ケーブル、光学送信ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを備えることができる。それぞれの計算／処理デバイスのネットワーク・アダプタカードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個別の計算／処理デバイス内のコンピュータ可読記憶媒体にある記憶装置のためのコンピュータ可読プログラム命令を転送する。
【００８６】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはスモールトーク（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語などの手続き型プログラミング言語もしくは類似するプログラミング言語、を含む１つまたは複数のプログラミング言語のあらゆる組合せで記述されたソース・コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、すべてユーザのコンピュータ上で、一部はユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、一部はユーザのコンピュータ上かつ一部はリモート・コンピュータ上で、またはすべてリモート・コンピュータ上もしくはサーバ上で、実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含むあらゆるタイプのネットワークを介してユーザのコンピュータに接続することができ、または接続は外部のコンピュータ（例えば、インターネット・サービス・プロバイダを使用するインターネットを介して）に対してなされてもよい。一部の実施形態において、例えば、プログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル論理アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個別化することができる。
【００８７】
本発明の態様は本発明の実施形態によるフローチャート図または方法、装置（システム）、およびコンピュータ・プログラム製品のブロック図あるいはその組合せを参照しながら本明細書において説明される。フローチャート図またはブロック図あるいはその組合せのそれぞれのブロック、およびフローチャート図またはブロック図あるいはその組合せにおけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
【００８８】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実装する手段を作成すべく、汎用目的コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作るものであってよい。これらのコンピュータ可読プログラム命令はまた、格納される命令を有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作の態様を実装するための命令を含んだ製造物品を備えるべく、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定のやり方で機能するように指示するものであってもよい。
【００８９】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実装するように、コンピュータによって実装される処理を作り出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【００９０】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態にしたがって、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能性、および動作を図示している。この点において、フローチャートまたはブロック図のそれぞれのブロックはモジュール、セグメント、または命令の部分を表現することができ、１つまたは複数の指定される論理機能を実装するための１つまたは複数の実行可能な命令を備える。一部の代替的な実装形態において、ブロックにおいて示した機能は図面で示した順とは異なって発生してもよい。例えば、連続して示される２つのブロックは、実際には実質的に同時に実行されてもよく、または１つもしくは複数のブロックは関与する機能によっては時に逆の順で実行されてもよい。ブロック図またはフローチャート図あるいはその両方のそれぞれのブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定される機能もしくは動作を実行する、または特殊目的ハードウェアおよびコンピュータ命令の組合せを実施する、特殊目的ハードウェアベースのシステムによって実装され得ることにも留意されたい。
【符号の説明】
【００９１】
１００  データ処理環境
１０２  ネットワーク
１０４  プロキシ・サーバ
１０５  プロキシ・アプリケーション
１０６  コグニティブ・サーバ
１０７  コグニティブ・アプリケーション
１０８  記憶装置
１０９  訓練データ
１１０，１１２，１１４  クライアント
１３０  キャッシュ
１３２  センサ・デバイス
【図１】
2020522920.tif 000003
【図２】
2020522920.tif 000004
【図３】
2020522920.tif 000005
【図４】
2020522920.tif 000006
【図５】
2020522920.tif 000007
【図６】
2020522920.tif 000008
【手続補正書】
【提出日】令和2年6月12日(2020.6.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
通信ネットワークにおけるコグニティブ・アプリケーションのキャッシングのための方法であって、
るキャッシュが関連付けられているプロキシによって、センサ・デバイスからの第１の入力信号を検出することと、
前記第１の入力信号の表現を計算することであって、前記表現はサーバに送信される、前記計算することと、
前記第１の入力信号に対応する第１のハンドル値を計算するためにハンドル関数を前記第１の入力信号の前記表現に適用することと、
第１の解答値を計算するために解答関数のコグニティブ処理モデルを使用して前記第１の入力信号の前記表現を変形することと、
前記プロキシによって、前記キャッシュ内の前記第１のハンドル値と関連付けて前記第１の解答値を格納することによって、前記キャッシュの内容を修正することと
を含む、方法。
【請求項２】
前記プロキシによって第２の入力信号を検出することと、
第２の入力信号に対して、前記プロキシによって、前記ハンドル関数を使用して候補ハンドル値を計算することと、
前記候補ハンドル値を前記キャッシュに格納される前記第１のハンドル値と比較することと、
前記候補ハンドル値が前記第１のハンドル値に一致するかどうかを判断することと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記候補ハンドル値が前記第１のハンドル値に一致しているとの判断に応答して、前記プロキシによって、前記第２の入力信号について前記第１の解答値を使用すること
をさらに含む、請求項２に記載の方法。
【請求項４】
前記候補ハンドル値が前記第１のハンドル値に一致しないという判断に応答して、前記第２の入力信号の表現を前記コグニティブ・サーバに送信すること
をさらに含む、請求項２に記載の方法。
【請求項５】
前記第２の入力信号についての第２のハンドル値を受信することであって、前記第２のハンドル値が前記ハンドル関数を前記第２の入力信号の前記表現に適用することによって計算される、前記受信することと、
前記第２の入力信号の前記表現に対応する第２の解答値を受信することであって、前記第１の値を計算するために前記解答関数の前記コグニティブ処理モデルを使用して前記第２の入力信号の前記表現を変形することによって前記第２の解答値が決定される、前記受信することと、
前記プロキシによって、前記キャッシュ内の前記第２のハンドル値と関連付けて前記第２の解答値を格納することによって、前記キャッシュの前記内容を修正することと
をさらに含む、請求項４に記載の方法。
【請求項６】
前記候補ハンドル値が前記第１のハンドル値に一致するかどうかを判断することが、前記候補ハンドル値と前記第１のハンドル値との間の最近傍探索を実行することを含む、請求項２に記載の方法。
【請求項７】
前記第１の入力信号が、前記センサ・デバイスの環境内の前記センサ・デバイスによる測定を表す、請求項１に記載の方法。
【請求項８】
前記ハンドル関数が前記元々の入力信号の次元ではなく前記入力信号の低次元の表現として前記ハンドル値を作るように構成される、請求項１に記載の方法。
【請求項９】
前記第１の入力信号の前記表現が、前記プロキシにおいて決定された前記第１のハンドル値を含む、請求項１に記載の方法。
【請求項１０】
前記プロキシによって、前記ハンドル関数の指標を前記サーバから受信すること
をさらに含む、請求項１に記載の方法。
【請求項１１】
前記センサ・デバイスのドメインに関連付けられるドメイン名を前記サーバに送信することであって、前記サーバが前記ドメイン名に基づいて複数のハンドル関数から前記ハンドル関数を決定する、前記送信すること
をさらに含む、請求項１０に記載の方法。
【請求項１２】
前記ハンドル関数を使用して前記第１の入力信号の再構成エラーを決定することと、
前記第１の入力信号の前記再構成エラーの分布を前記コグニティブ・モデルに関連付けられる訓練データ内の再構成エラーの分布と比較することと、
再構成エラーの前記分布の前記比較が所定のしきい値を超えているとの判断に応答して、前記キャッシュに対してキャッシュ無効化動作をトリガすることと
をさらに含む、請求項１に記載の方法。
【請求項１３】
コンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されるとき、請求項１ないし１２のいずれかに記載の方法を実行するように構成されるプログラム・コード手段を備える、コンピュータ・プログラム。
【請求項１４】
通信ネットワークにおけるコグニティブ・アプリケーションのキャッシングのためのコンピュータ・システムであって、前記コンピュータ・システムは、１つまたは複数のプロセッサと、１つまたは複数のコンピュータ可読メモリと、１つまたは複数のコンピュータ可読記憶媒体と、前記１つまたは複数のプロセッサのうちの少なくとも１つによって前記１つまたは複数のメモリのうちの少なくとも１つを介する実行のための、前記１つまたは複数の記憶媒体のうちの少なくとも１つに格納されるプログラム命令とを備え、前記格納されるプログラム命令は、
キャッシュが関連付けられているプロキシによって、センサ・デバイスからの第１の入力信号を検出するためのプログラム命令と、
前記第１の入力信号の表現を計算するためのプログラム命令であって、前記表現はサーバに送信される、前記プログラム命令と、
前記第１の入力信号に対応する第１のハンドル値を計算するためにハンドル関数を前記第１の入力信号の前記表現に適用するためのプログラム命令と、
第１の解答値を計算するために解答関数のコグニティブ処理モデルを使用して前記第１の入力信号の前記表現を変形するためのプログラム命令と、
前記プロキシによって、前記キャッシュ内の前記第１のハンドル値と関連付けて前記第１の解答値を格納することによって、前記キャッシュの内容を修正するためのプログラム命令と
を備える、コンピュータ・システム。
【国際調査報告】
2020522920.tif 000009
2020522920.tif 000010