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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2024-512546データガバナンスシステムにおける敵対的クエリに対する防御
<>
  • 特表-データガバナンスシステムにおける敵対的クエリに対する防御 図1
  • 特表-データガバナンスシステムにおける敵対的クエリに対する防御 図2
  • 特表-データガバナンスシステムにおける敵対的クエリに対する防御 図3
  • 特表-データガバナンスシステムにおける敵対的クエリに対する防御 図4A
  • 特表-データガバナンスシステムにおける敵対的クエリに対する防御 図4B
  • 特表-データガバナンスシステムにおける敵対的クエリに対する防御 図5
  • 特表-データガバナンスシステムにおける敵対的クエリに対する防御 図6
  • 特表-データガバナンスシステムにおける敵対的クエリに対する防御 図7
  • 特表-データガバナンスシステムにおける敵対的クエリに対する防御 図8
  • 特表-データガバナンスシステムにおける敵対的クエリに対する防御 図9
  • 特表-データガバナンスシステムにおける敵対的クエリに対する防御 図10
  • 特表-データガバナンスシステムにおける敵対的クエリに対する防御 図11A
  • 特表-データガバナンスシステムにおける敵対的クエリに対する防御 図11B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-19
(54)【発明の名称】データガバナンスシステムにおける敵対的クエリに対する防御
(51)【国際特許分類】
   G06F 16/28 20190101AFI20240312BHJP
【FI】
G06F16/28
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023558254
(86)(22)【出願日】2022-02-14
(85)【翻訳文提出日】2023-09-21
(86)【国際出願番号】 CN2022076192
(87)【国際公開番号】W WO2022199274
(87)【国際公開日】2022-09-29
(31)【優先権主張番号】17/210,838
(32)【優先日】2021-03-24
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/210,866
(32)【優先日】2021-03-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
(74)【復代理人】
【識別番号】100118108
【弁理士】
【氏名又は名称】久保 洋之
(72)【発明者】
【氏名】ペイン、ジョシュア、エフ
(72)【発明者】
【氏名】クンドゥ、アシシュ
(72)【発明者】
【氏名】ナタラジャン、アルジュン
(72)【発明者】
【氏名】ラファエル、ロジャー、シー
(72)【発明者】
【氏名】シューマッハ、スコット
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175AA02
5B175KA12
(57)【要約】
敵対的クエリに対して防御する装置および関連する方法である。セキュリティポリシーのセットを表現するためにポリシーエンフォースメントハイパーグラフが構築される。そして、ユーザの動作が経時的に変化しているかどうかを判定するために、ハイパーグラフが繰り返しトラバースされる。ユーザの動作はハイパーグラフの頂点またはエッジを参照することによって測定される。ユーザの動作が経時的に変化したと判定され、セキュリティポリシーに基づく強制措置が講じられる。
【特許請求の範囲】
【請求項1】
敵対的クエリに対する防御方法であって、
セキュリティポリシーのセットを表現するポリシーエンフォースメントハイパーグラフを構築することと、
ユーザの動作が経時的に変化しているかどうかを判定するために、前記ハイパーグラフを繰り返しトラバースすることであって、前記ユーザの動作は前記ハイパーグラフの頂点またはエッジを参照することによって測定される、トラバースすることと、
前記ハイパーグラフの前記トラバースに基づいて、前記ユーザの動作が経時的に変化したと判定し、それに応答して、セキュリティポリシーに基づく強制措置を講じることと、
を含む、方法。
【請求項2】
前記ハイパーグラフは、
アセット、ユーザ、セキュリティポリシーを頂点および相関関係として、
文脈およびイベントをエッジとして
表現する、請求項1に記載の方法。
【請求項3】
前記ハイパーグラフは、頂点およびエッジを含み、
前記方法は、前記頂点およびエッジの経時的な変化を判定するために機械学習モデルを訓練することをさらに含む、
請求項2に記載の方法。
【請求項4】
前記頂点およびエッジの経時的な動作を評価するために、時系列データのシーケンスモデルを使用することをさらに含む、請求項3に記載の方法。
【請求項5】
システムに対する一連のクエリを受信することと、
各ハイパーグラフの頂点およびエッジの経時的な変化を識別するために、前記一連のクエリを分析することと、
前記分析することに応答して、疑いスコアを生成することと、
前記疑いスコアを所定のロバスト性基準と比較することと、
前記比較することに応答して、前記強制措置を講じることと、
をさらに含む、請求項4に記載の方法。
【請求項6】
前記ロバスト性基準に対する調整を受信することをさらに含む、請求項5に記載の方法。
【請求項7】
前記強制措置は、アクセス権を取り消すことを含む、請求項1に記載の方法。
【請求項8】
前記ポリシーエンフォースメントハイパーグラフの前記構築は、グラフ畳み込みニューラルネットワークを利用する、請求項1に記載の方法。
【請求項9】
前記ポリシーエンフォースメントハイパーグラフの前記構築は、ハイパーグラフランダムウォークモデルを利用する、請求項1に記載の方法。
【請求項10】
前記ハイパーグラフの頂点のセット間の類似性を推定するために、グラフに頂点を埋め込むワンショット学習を行うことをさらに含む、請求項1に記載の方法。
【請求項11】
前記ハイパーグラフは、長短期記憶(LSTM)モデルによって繰り返しトラバースされる、請求項1に記載の方法。
【請求項12】
前記ハイパーグラフは、エッジを含み、
前記エッジは、どのポリシーがどの文脈のユーザおよびアセットに適用されるかを定義するために使用される、
請求項1に記載の方法。
【請求項13】
メモリと、
請求項1から請求項12のいずれかの方法に従って動作を実行するように構成されたプロセッサと、
を含む、敵対的クエリ防御装置。
【請求項14】
敵対的クエリ防御装置のためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、
1または複数のコンピュータ可読記憶媒体と、前記1または複数のコンピュータ可読記憶媒体に集合的に記憶されたプログラム命令と、を含み、前記プログラム命令は、請求項1から請求項12のいずれかの方法に従って動作を実行するプログラム命令を含む、
コンピュータプログラム製品。
【請求項15】
敵対的クエリに対してシステムを防御するための方法であって、
エンフォースメントグラフを提供することと、
システムのデータポリシーを実施するために、前記エンフォースメントグラフを使用することと、
前記エンフォースメントグラフに対する潜在的な敵対的クエリベースの攻撃を検出するために、前記エンフォースメントグラフに対するクエリのための敵対的生成モデル(GAN)を使用することと、
前記潜在的な敵対的攻撃から前記エンフォースメントグラフを保護するためのポリシーを提供することと、
を含む、方法。
【請求項16】
前記エンフォースメントグラフ内の頂点は、ユーザ、アセット、ポリシー、およびデータ型からなる群から選択された第1の要素を表すように割り当てられ、
前記エンフォースメントグラフ内のエッジは、前記第1の要素に対するユーザリクエスト、ユーザアセット、およびユーザポリシーからなる群から選択された第2の要素を表すように割り当てられる、
請求項15に記載の方法。
【請求項17】
各ユーザがアクセスできるシステムリソースを判定するために、前記エンフォースメントグラフを分析することと、
システムリソースのセットにアクセスしようとする敵対的ユーザをシミュレートするために前記GANを使用することであって、前記敵対的ユーザは推論の脆弱性を悪用しようとする、使用することと、
をさらに含む、請求項15に記載の方法。
【請求項18】
前記敵対的クエリが成功したと判定し、それに応答して、前記成功した敵対的クエリを用いた前記エンフォースメントグラフを使用してポリシーエンジンを訓練すること
をさらに含む、請求項15に記載の方法。
【請求項19】
前記エンフォースメントグラフが所定のロバスト性スコアに達するまで、前記判定および訓練動作を繰り返すことをさらに含む、請求項18に記載の方法。
【請求項20】
前記エンフォースメントグラフが前記所定のロバスト性スコアを満たすことに応答して、前記ポリシーエンジンを展開することをさらに含む、請求項19に記載の方法。
【請求項21】
前記システムへの一連のクエリを受信することと、
前記ポリシーエンジンを使用して前記一連のクエリを評価し、それに応答して、疑いスコアを生成することと、
前記疑いスコアを所定のロバスト性基準と比較することと、
前記比較することに応答して、前記一連のクエリにおける1または複数のクエリを選択的にブロックすることと、
をさらに含む、請求項20に記載の方法。
【請求項22】
前記ポリシーエンジンにおいて前記ロバスト性基準を調整することをさらに含む、請求項21に記載の方法。
【請求項23】
前記エンフォースメントグラフはエンフォースメントハイパーグラフであり、GANはハイパーグラフGANである、請求項15に記載の方法。
【請求項24】
メモリと、
請求項15から請求項23のいずれかの方法に従って動作を実行するように構成されたプロセッサと、
を備える、敵対的クエリ防御装置。
【請求項25】
敵対的クエリ防御装置のためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、
1または複数のコンピュータ可読記憶媒体と、前記1または複数のコンピュータ可読記憶媒体に集合的に記憶されたプログラム命令と、を含み、前記プログラム命令は、請求項15から請求項23のいずれかの方法に従って動作を実行するプログラム命令を含む、
コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、機械学習に関し、より具体的には、ロバスト推論および敵対的機械学習に関する。
【背景技術】
【0002】
1948年のEDVACシステムの開発が、コンピュータ時代の始まりと言われることが多い。それ以来、コンピュータシステムは非常に複雑な機器へと進化してきた。今日のコンピュータシステムは、典型的には、洗練されたハードウェアおよびソフトウェアコンポーネント、アプリケーションプログラム、オペレーティングシステム、プロセッサ、バス、メモリ、入力/出力装置などの組み合わせを含む。半導体処理やコンピュータアーキテクチャの進歩により、性能がどんどん向上し、その高い性能を生かすためにさらに高度なコンピュータソフトウェアが進化し、数年前と比べてはるかに高性能なコンピュータシステムが誕生している。
【0003】
これらの機能を応用したものに、データベースがある。データベースとは、一般に、コンピュータによる情報の保存と検索を行うシステムのことで、さまざまなタイプがある。最も一般的なデータベースはリレーショナルデータベースであり、一般的には、多くの異なる方法で再編成しアクセスできるようにデータを記憶し定義する表形式のデータベースを指す。リレーショナルデータベース管理システム(RDBMS)は、データの記憶と検索にリレーショナル技術を使用するコンピュータデータベース管理システム(DBMS)である。
【0004】
データベースの特定のアーキテクチャにかかわらず、DBMSでは、要求するエンティティ(例えば、アプリケーションまたはオペレーティングシステム)は、データベースアクセス要求を発行することによって、指定されたデータベースへのアクセスを要求する。リレーショナルデータベースでは、かかる要求には、例えば、単純なカタログ検索要求や、データベース内の指定レコードの読み取り、変更、追加を操作するトランザクションやその組み合わせが含まれることがある。これらの要求は、構造化クエリ言語(Structured Query Language:SQL)などの高レベルのクエリ言語を使用して行われることがある。「クエリ」という用語は、一般に、記憶されたデータベースからデータを検索するための一連のコマンドを意味するものである。クエリは、プログラムに選択、挿入、更新、データの位置の確認などをさせるSQLコマンドの形式をとることができる。
【発明の概要】
【0005】
本開示の実施形態によれば、敵対的クエリに対する防御のための方法が提供される。本方法は、セキュリティポリシーのセットを表現するポリシーエンフォースメントハイパーグラフを構築することを含む。本方法はさらに、ユーザの動作が経時的に変化しているかどうかを判定するために、ハイパーグラフを繰り返しトラバースすることをさらに含む。ユーザの動作はハイパーグラフの頂点またはエッジを参照することによって測定される。本方法はさらに、ハイパーグラフのトラバースに基づいて、ユーザの動作が経時的に変化したと判定し、それに応答して、セキュリティポリシーに基づく強制措置を講じる。
【0006】
有利なことに、このアプローチは、意図しない安全な情報を開示してしまう可能性のあるクエリに対して適応可能な防御を提供し、ユーザの行動に反応する。
【0007】
本開示の実施形態によれば、ハイパーグラフは、アセット、ユーザ、セキュリティポリシーを頂点および相関関係として、文脈およびイベントをエッジとして表現する。有利なことに、ハイパーグラフを分析するために開発された多くのツールは、敵対的クエリに対する防御の問題に適用され得る。
【0008】
本開示の実施形態によれば、ハイパーグラフは、頂点およびエッジを含み、本方法は、頂点およびエッジの経時的な変化を判定するために機械学習モデルを訓練することをさらに含む。有利なことに、このアプローチにより、モデルは、経時的に、および変化する条件に対応して適応可能である。
【0009】
本開示の実施形態によれば、本方法は、頂点およびエッジの経時的な動作を評価するために、時系列データのシーケンスモデルを使用する。有利なことに、これにより、シーケンスモデルで利用可能なツールを、敵対的クエリに対する防御の問題に適用することができる。
【0010】
本開示の実施形態によれば、本方法は、システムに対する一連のクエリを受信することと、各ハイパーグラフの頂点およびエッジの経時的な変化を識別するために、一連のクエリを分析することと、分析することに応答して、疑いスコアを生成することと、疑いスコアを所定のロバスト性基準と比較することと、比較することに応答して、強制措置を講じることと、を含む。有利なことに、疑いスコアの使用により、分析のために定量的なメトリックを使用することができる。
【0011】
本開示の実施形態によれば、本方法は、ロバスト性基準に対する調整を受信することをさらに含む。有利なことに、これにより、受信した情報に基づいてシステムを適合させることができる。
【0012】
本開示の実施形態によれば、強制措置は、アクセス権を取り消すことを含む。有利なことに、これにより、システムを攻撃から保護するのに役立つ措置をシステムが取ることができる。
【0013】
本開示の実施形態によれば、ポリシーエンフォースメントハイパーグラフの構築は、グラフ畳み込みニューラルネットワークおよびハイパーグラフランダムウォークモデルのうちの1つを利用することができる。有利なことに、グラフ畳み込みニューラルネットワークの使用は、システムが遭遇し得る異なる形態の脅威に応答してシステムが学習することを可能にする。
【0014】
本開示の実施形態によれば、本方法は、ハイパーグラフの頂点のセット間の類似性を推定するために、グラフに頂点を埋め込むワンショット学習を行うことをさらに含むことができる。有利なことに、これは、モデルをより迅速に開発もしくは進化またはその両方を行わせるのに役立つ場合がある。
【0015】
本開示の実施形態によれば、本方法は、長短期記憶(LSTM)モデルによって繰り返しハイパーグラフをトラバースすることをさらに含んでよい。有利なことに、これにより、利用可能なLSTMツールがハイパーグラフに適用されることが可能になる。
【0016】
本開示の実施形態によれば、ハイパーグラフは、どのポリシーがどの文脈のユーザおよびアセットに適用されるかを定義するために使用されるエッジを含む。有利なことに、これにより、特定のアセットにおけるユーザおよびアセットを含む判定に、既知のハイパーグラフ技術を適用することができる。
【0017】
本開示の実施形態は、メモリと、上述の方法ステップを実行するように構成されたプロセッサとを含む装置も含む。同様に、コンピュータ可読媒体は、上述の方法ステップを実行するようにプロセッサに指示する命令を含み得る。
【0018】
上記の要約は、例示された各実施形態または本開示のすべての実施形態を説明することを意図していない。
【0019】
本願に含まれる図面は、本明細書に組み込まれ、本明細書の一部を構成する。これらは、本開示の実施形態を例示するものであり、説明とともに、本開示の原理を説明するのに役立つ。図面は、特定の実施形態を例示するものに過ぎず、本開示を限定するものではない。
【図面の簡単な説明】
【0020】
図1】いくつかの実施形態と一致するデータ処理システム(DPS)の一実施形態を示す絵画的ブロック図である。
図2】いくつかの実施形態と一致する、クラウドコンピューティング環境を示す絵図である。
図3】いくつかの実施形態と一致する、抽象化モデルレイヤを描写する絵図である。
図4A】いくつかの実施形態と一致する、例示的なMLモデルを示すブロック図である。
図4B】いくつかの実施形態と一致する、MLモデル訓練方法の一実施形態を示すフローチャートである。
図5】いくつかの実施形態と一致する、例示的なポリシーエンフォースメントグラフを提示するブロック図である。
図6】いくつかの実施形態と一致する、例示的なポリシーエンフォースメントハイパーグラフを提示する絵図である。
図7】いくつかの実施形態と一致する、エンフォースメントグラフを作成する一方法を示すフローチャートである。
図8】いくつかの実施形態と一致する、2つのデータアセットと2人のユーザを含むデータエコシステムにおけるエンフォースメントハイパーグラフの例示的なアプリケーションを示す絵図である。
図9】いくつかの実施形態と一致する、データエコシステムにおける推論脆弱性に起因し得る潜在的なプライバシー侵害を識別する方法を示すフローチャートである。
図10】いくつかの実施形態と一致する、データエコシステムにおける異常なまたは疑わしいユーザ動作を識別する1つの方法を示すフローチャートである。
図11A図11A~B(まとめて図11)はいくつかの実施形態と一致する、侵害につながり得るクエリを識別し、それに対してロバストになるために、エンフォースメントグラフまたはエンフォースメントハイパーグラフを使用する1つの方法を示すフローチャートの一部である。
図11B図11A~B(まとめて図11)はいくつかの実施形態と一致する、侵害につながり得るクエリを識別し、それに対してロバストになるために、エンフォースメントグラフまたはエンフォースメントハイパーグラフを使用する1つの方法を示すフローチャートの一部である。
【発明を実施するための形態】
【0021】
本発明は、様々な変更および代替形態に従順であるが、その具体的な内容は、図面において例として示されており、詳細に説明されるであろう。しかしながら、説明した特定の実施形態に本発明を限定する意図はないことを理解されたい。それどころか、本発明の範囲に入るすべての変更、等価物、および代替物をカバーすることが意図されている。
【0022】
本開示の態様は、機械学習に関するものであり、より特定の態様は、ロバスト推論および敵対的機械学習に関するものである。本開示は必ずしもそのような用途に限定されるものではないが、本開示の様々な態様は、この文脈を用いた様々な例の議論を通じて理解することができる。
【0023】
データベースには、医療記録など、アクセスから保護するためにある程度のセキュリティが必要な機密事項や、その他の機密事項が含まれていることが多い。そのため、ほとんどのDBMSは、その資料のセキュリティとプライバシーを保護するための機能を含む。この資料を保護するための一つの可能なアプローチは、選択されたユーザへのアクセスを制限することである。この目的のために、DBMSは、権限のレベルを指定するユーザプロファイルを実装することができる。特定のユーザ(またはプログラム)が特定のデータにアクセスできるかどうかは、そのユーザの権限レベルに依存し、通常はそれぞれのユーザプロファイルで指定される。
【0024】
しかし、前述のアプローチは、柔軟性がなく、静的であるにもかかわらず、悪用される可能性がある。例えば、ある医療データベースの場合、データベース内に機密性の高い健康情報を持つ患者の匿名性を確保するため、特定のクラスのユーザが見ることを許される結果は、患者のクリニック番号のみであるとする。これらの規則にもかかわらず、敵対的ユーザ(例えば、これらの保護を意図的に回避しようとする者)は、慎重に作成された一連のクエリを発行することによって、おそらくユーザに知られている他の情報と組み合わせて、かなりの程度確実に患者の身元を判定することができる場合がある。このようなプロセスは、本明細書ではクエリユニオン解析と呼ばれる。以下は、クリニック番号(この例では、個人を一意に識別する識別子である)および各クエリが返す一意の患者レコードの数に従って特定の個人を識別するように設計された一連のクエリの例示である。
【表1】
【0025】
上記の各クエリは、それぞれ独立に考えると、個人のプライバシーを保護するために妥当な数の結果を返す。しかし、集合的に見ると、すべての条件を満たす結果の数は、著しく少なく、おそらく1人と同じくらい少ないかもしれない。つまり、一連の一見安全なクエリによって、敵対的ユーザが特定の患者のクリニック番号を知ることができるかもしれない。その後、1人の個人のクリニック番号を判定したその敵対的ユーザは、他のクエリ、例えば、クリニック番号を他の情報と共に返す任意のクエリを実行して、その特定の患者に関する機密情報を取得することができる。
【0026】
将来的には、敵対的ユーザは深層学習を使用して一連のクエリを自動的に生成し、それによってDBMSが許可すべきでない方法で1または複数のデータアセットへのアクセスを可能にするDBMSの脆弱性を探ることができるようになるかもしれない。シナリオの一例としては、敵がターゲット(エントリのセット、アクセス権など)を指定し、ルールベースまたはスコアベースのポリシーのギャップを利用するためにクエリのパラメータをわずかに変更することが挙げられるだろう。
【0027】
しかし、このような攻撃や他の形態の攻撃を防ぐのに十分厳しいルールベースやスコアベースのポリシーは、正当なユーザ(例えば、医学研究者)がプロジェクトに必要な幅広いデータにアクセスすることを妨げるかもしれない。その結果、合法的な目的のためのそのデータベースの有効性が制限される可能性がある。したがって、本開示のいくつかの実施形態の1つの特徴および利点は、データアクセシビリティとセキュリティのバランスを提供することができることである。
【0028】
したがって、いくつかの実施形態の1つの有益な特徴は、これらの攻撃に対してロバストなエンフォースメントグラフもしくはハイパーグラフシステムまたはその両方である。また、いくつかの実施形態は、オブジェクトの類似性、実績およびユーザ行動に基づくスコアなどに関連するより豊かな推論を提供するために、敵対的生成モデルおよび他の深層学習方法を使用することを含むことができる。さらに、いくつかの実施形態は、レイテンシ、リスク、アクセス頻度、および他の尺度に関して、エコシステムにおけるデータアセットのほぼ最適な分配を可能にすることができる。
【0029】
<データ処理システム>
図1は、いくつかの実施形態と一致するデータ処理システム(DPS)100a、100b(ここでは一般的にDPS100と呼ぶ)の一実施形態を示している。図1は、DPS100の代表的な主要構成要素を描いているだけであり、それらの個々の構成要素は、図1に表されるよりも大きな複雑性を有していてもよい。いくつかの実施形態において、DPS100は、パーソナルコンピュータ、サーバコンピュータ、ラップトップまたはノートブックコンピュータ・PDA(パーソナルデジタルアシスタント)・タブレットコンピュータまたはスマートフォンなどのポータブルコンピュータ、自動車・飛行機・電話会議システム・家電製品などの大型デバイスに組み込まれたプロセッサ、スマートデバイス、または任意の他の適切なタイプの電子デバイスとして実装されてよい。さらに、図1に示す構成要素以外の構成要素またはこれに加えて構成要素が存在してもよく、そのような構成要素の数、タイプ、および構成は変化してもよい。
【0030】
図1のデータ処理システム100は、システムバス122によってメインメモリ112、大容量記憶インタフェース114、端末/ディスプレイインタフェース116、ネットワークインタフェース118、および入力/出力(「I/O」)インタフェース120に接続され得る複数の処理ユニット110a~110d(一般に、プロセッサ110またはCPU110)を含んでよい。本実施形態における大容量記憶インタフェース114は、システムバス122を、ダイレクトアクセス記憶装置140、USBドライブ141、もしくは読み取り/書き込み可能な光ディスクドライブ142またはその組み合わせなどの1または複数の大容量記憶装置に接続してもよい。ネットワークインタフェース118は、DPS100aがネットワーク106を介して他のDPS100bと通信することを可能にすることができる。メインメモリ112は、オペレーティングシステム124、複数のアプリケーションプログラム126、およびプログラムデータ128を含むことができる。
【0031】
図1のDPS100の実施形態は、汎用のコンピューティング装置であってもよい。これらの実施形態において、プロセッサ110は、メインメモリ112に記憶されたプログラム命令を実行することができる任意の装置であってよく、それ自体、1または複数のマイクロプロセッサもしくは集積回路またはその両方から構築されてもよい。いくつかの実施形態では、DPS100は、より大きく、より能力の高いコンピュータシステムの典型であるように、複数のプロセッサもしくは処理コアまたはその両方を含むことができるが、他の実施形態では、コンピューティングシステム100は、シングルプロセッサシステム、もしくはマルチプロセッサシステムを模倣するように設計されたシングルプロセッサ、またはその両方のみを含み得る。さらに、プロセッサ110は、メインプロセッサ110が単一チップ上のセカンダリプロセッサとともに存在する多数の異種データ処理システム100を使用して実装されてもよい。別の例示的な例として、プロセッサ110は、同じタイプの複数のプロセッサ110を含む対称型マルチプロセッサシステムであってもよい。
【0032】
DPS100が起動すると、関連するプロセッサ110は、最初にオペレーティングシステム124を構成するプログラム命令を実行する場合がある。オペレーティングシステム124は、DPS100の物理的および論理的リソースを管理することができる。これらのリソースには、メインメモリ112、大容量記憶インタフェース114、端末/ディスプレイインタフェース116、ネットワークインタフェース118、およびシステムバス122が含まれ得る。プロセッサ110と同様に、いくつかのDPS100の実施形態は、複数のシステムインタフェース114、116、118、120、およびバス122を利用することができ、順番に、これらはそれぞれ、独自の個別の、完全にプログラムされたマイクロプロセッサを含むことができる。
【0033】
オペレーティングシステム124もしくはアプリケーションプログラム126またはその両方のための命令(一般に、「プログラムコード」、「コンピュータ使用可能プログラムコード」、または「コンピュータ可読プログラムコード」)は、システムバス122を介してプロセッサ110と通信している大容量記憶装置に最初に配置されてもよい。異なる実施形態におけるプログラムコードは、メモリ112または大容量記憶装置などの異なる物理的または有形コンピュータ可読媒体上に実装され得る。図1の例示的な例では、命令は、ダイレクトアクセス記憶装置140上の永続的な記憶の機能形態で記憶されてもよい。これらの命令は、次に、プロセッサ110による実行のためにメインメモリ112にロードされることがある。しかしながら、プログラムコードは、ダイレクトアクセス記憶装置140または読み取り/書き込み可能な光ディスクドライブ142などの、いくつかの実施形態において選択的に取り外し可能なコンピュータ可読媒体上の機能的形態で配置される場合もある。それは、プロセッサ110による実行のために、DPS100にロードされるか、またはDPS100に転送されることがある。
【0034】
図1を引き続き参照すると、システムバス122は、プロセッサ110、メインメモリ112、およびインタフェース114、116、118、120の間の通信を容易にする任意の装置であり得る。さらに、本実施形態におけるシステムバス122は、システムバス122間の直接通信経路を提供する比較的単純な単一のバス構造であるが、他のバス構造は、限定されないが、階層的、スターまたはウェブ構成におけるポイントツーポイントリンク、複数の階層的バス、並列経路および冗長経路等を含む本開示と一致している。
【0035】
メインメモリ112および大容量記憶装置140は、オペレーティングシステム124、アプリケーションプログラム126、およびプログラムデータ128を記憶するために協調して動作することができる。いくつかの実施形態では、メインメモリ112は、データおよびプログラム命令を記憶することができるランダムアクセス半導体メモリ装置(「RAM」)であってもよい。図1は、メインメモリ112が単一のモノリシックエンティティであることを概念的に描いているが、いくつかの実施形態におけるメインメモリ112は、キャッシュおよび他のメモリ装置の階層のような、より複雑な配置であってもよい。例えば、メインメモリ112は、複数のレベルのキャッシュで存在してもよく、これらのキャッシュは、1つのキャッシュが命令を保持し、別のキャッシュがプロセッサ110によって使用される非命令データを保持するように、機能によってさらに分割されてもよい。メインメモリ112は、様々ないわゆる非均一メモリアクセス(NUMA)コンピュータアーキテクチャのいずれかで知られているように、さらに分散され、異なるプロセッサ110またはプロセッサ110のセットと関連付けられることがある。さらに、いくつかの実施形態は、DPS100が、(メインメモリ112および大容量記憶装置140などの)複数の小さい記憶エンティティへのアクセスではなく、大きな単一の記憶エンティティへのアクセスを有するかのように振る舞うことを可能にする仮想アドレス指定メカニズムを利用してもよい。
【0036】
オペレーティングシステム124、アプリケーションプログラム126、およびプログラムデータ128は、DPS100aのメインメモリ112内に含まれるものとして図1に示されているが、それらの一部または全部は、いくつかの実施形態において、異なるコンピュータシステム(例えば、DPS100b)上に物理的に位置し、例えば、ネットワーク106を介してリモートでアクセスされ得る。さらに、オペレーティングシステム124、アプリケーションプログラム126、およびプログラムデータ128は、必ずしもすべてが同時に同じ物理DPS100aに完全に含まれるわけではなく、他のDPS100bの物理メモリまたは仮想メモリに存在することさえあり得る。
【0037】
いくつかの実施形態におけるシステムインタフェース114、116、118、120は、様々なストレージおよびI/Oデバイスとの通信をサポートすることができる。大容量記憶インタフェース114は、1または複数の大容量記憶装置140の取り付けをサポートしてもよく、この装置は、回転磁気ディスクドライブ記憶装置、データを持続的に記憶するメモリとして集積回路アセンブリを使用するソリッドステート記憶装置(SSD)を含むことができ、典型的にはフラッシュメモリまたはその2つの組み合わせを使用してもよい。さらに、大容量記憶装置140は、ホストに対して単一の大容量記憶装置として見えるように構成されたディスクドライブのアレイ(一般にRAIDアレイと呼ばれる)もしくはアーカイブ記憶媒体またはその両方を含む他の装置およびアセンブリを含むこともあり、例えばハードディスクドライブ、テープ(例えば、ミニDV)、書き込み可能なコンパクトディスク(例えば、CD-RおよびCD-RW)、デジタル多用途ディスク(例えば、DVD、DVD-R、DVD+R、DVD+RW、DVD-RAM)、ホログラフィー記憶システム、ブルーレーザーディスク、IBM Millipedeデバイスなどである。I/Oインタフェース120は、キーボード181、マウス182、モデム183、またはプリンタ(図示せず)などの1または複数のI/Oデバイスの取り付けをサポートし得る。
【0038】
端末/ディスプレイインタフェース116は、1または複数のディスプレイ180をデータ処理システム100に直接接続するために使用され得る。これらのディスプレイ180は、LEDモニタなどの非インテリジェント(すなわち、ダム)端末であってもよいし、それ自体が、IT管理者およびユーザがDPS100と通信することを可能にする完全にプログラム可能なワークステーションであってもよい。しかしながら、ディスプレイインタフェース116は、1または複数のディスプレイ180との通信をサポートするために提供され得るが、ユーザおよび他のプロセスとのすべての必要な対話がネットワーク106を介して起こり得るので、コンピュータシステム100は、必ずしもディスプレイ180を必要としないことに留意する。
【0039】
ネットワーク106は、任意の適切なネットワークまたはネットワークの組み合わせであってよく、複数のDPS100への/からのデータもしくはコードまたはその両方の通信に適した任意の適切なプロトコルをサポートすることができる。したがって、ネットワークインタフェース118は、ネットワーク接続が現在のアナログもしくはデジタル技術またはその両方を使用して行われるか、または将来の何らかのネットワーク機構を介して行われるかにかかわらず、そのような通信を促進する任意の装置であってもよい。好適なネットワーク106には、「InfiniBand」またはIEEE(Institute of Electrical and Electronics Engineers)802.3x「Ethernet」仕様の1または複数を使用して実装されるネットワーク、セルラー伝送ネットワーク、IEEE 802.11x・IEEE 802.16・一般パケット無線サービス(「GPRS」)・FRS(ファミリーラジオサービス)またはBluetooth仕様のいずれかを実装する無線ネットワーク、FCC 02-48で説明されるなどの超ワイドバンド(「UWB」)テクノロジ、または同様のものを含むがこれに限定はされない。当業者であれば、ネットワーク106を実装するために多くの異なるネットワークおよびトランスポートプロトコルが使用され得ることを理解するであろう。Transmission Control Protocol/Internet Protocol(「TCP/IP」)スイートは、適切なネットワークおよび通信プロトコルを含む。
【0040】
<クラウドコンピューティング>
図2は、エッジを利用したスケーラブルかつ動的な転送学習メカニズムに適したクラウド環境の一実施形態を示す図である。本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実装は、クラウドコンピューティング環境に限定されないことが理解される。むしろ、本発明の実施形態は、現在公知のまたは後に開発される任意の他のタイプのコンピューティング環境と組み合わせて実施することが可能である。
【0041】
クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの実装モデルを含むことがある。
【0042】
特性は以下の通りである。
・オンデマンド・セルフサービス:クラウドの消費者は、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
・ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
・リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
・迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
・測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
【0043】
サービスモデルは以下の通りである。
・サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
・サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
・サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含み得る任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
【0044】
展開モデルは以下の通りである。
・プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
・コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
・パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
・ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
【0045】
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0046】
図2を参照すると、例示的なクラウドコンピューティング環境50が示されている。図示するように、クラウドコンピューティング環境50は1つまたは複数のクラウドコンピューティングノード10を含む。これらに対して、クラウド消費者が使用するローカルコンピュータ装置(例えば、パーソナルデジタルアシスタント(PDA)もしくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード10は互いに通信することができる。ノード10は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウド消費者はこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、図2に示すコンピュータ装置54A~Nの種類は例示に過ぎず、コンピューティングノード10およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
【0047】
図3を参照すると、クラウドコンピューティング環境50(図2)によって提供される機能的抽象化モデルレイヤのセットが示されている。なお、図3に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
【0048】
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0049】
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば以下の仮想エンティティを提供することができる:仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75。
【0050】
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウドコンシューマおよびタスクの識別確認を可能にする。ユーザポータル83は、コンシューマおよびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
【0051】
ワークロードレイヤ90は、クラウドコンピューティング環境が利用可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、ならびに、アプリケーションソフトウェア96が含まれる。
【0052】
<機械学習>
機械学習モジュール96は、いくつかの実施形態において、機械学習モデル(「MLモデル」)を実装してもよい。MLモデルは、パターンを認識する任意のソフトウェアシステムであってもよい。いくつかの実施形態において、MLモデルは、シナプスまたはゲートと呼ばれる接続点を通じて相互接続された複数の人工ニューロンを備える。各シナプスは、あるニューロンの出力と別のニューロンの入力との間の接続の強さを符号化する。各ニューロンの出力は、それに接続されている他のニューロンから受信した入力の総和によって判定され、したがって、これらの「上流」に接続されたニューロンの出力と、シナプスの重みによって判定される接続の強さとによって判定される。
【0053】
MLモデルは、特定の入力のクラスが所望の出力を生成するようにシナプスの重みを調整することによって、特定の問題(例えば、音声認識、クエリ生成、データベースセキュリティなど)を解決するように訓練することができる。これらの実施形態におけるこの重みの調整手順は、「訓練」または「学習」として知られている。理想的には、これらの調整は、学習プロセス中に、あるコスト関数に基づく所定の問題に対する最適解に向かって収束するシナプスの重みのパターンにつながる。いくつかの実施形態では、人工ニューロンは、層に編成されることがある。
【0054】
図4Aは、いくつかの実施形態に合致し、アプリケーションソフトウェア96の少なくとも一部として実装され得る、深層学習のための例示的なMLモデル400を示す。MLモデル400は、複数の層4051~405nを含む。層の各々は、重み4051w~405nwおよびバイアス4051b~405nb(明瞭化のために一部のみラベル付けされている)を含む。外部データを受信する層4051は、入力層である。最終的な結果を生成する層405nは、出力層である。いくつかの実施形態は、入力層と出力層の間に複数の隠れ層4052~405n-1を含み、一般的に数百のそのような隠れ層がある。隠れ層4052~405n-1のいくつかは、他の隠れ層4052~405n-1と異なるサイズ、組織、および目的を有することができる。例えば、MLモデルの隠れ層のいくつかは畳み込み層であってよく、他の隠れ層は完全連結層、逆畳み込み層、またはリカレント層であってもよい。
【0055】
ここで図4Bを参照すると、MLモデル訓練方法450の一実施形態が描かれており、例示として音声認識を参照して説明し、いくつかの実施形態と一致する。動作452において、システムは、訓練データを受信し、次いでロードすることができる。この例では、入力データセットは、データベースシステムに送信された一連の例示的なクエリを含むことができる。動作454において、訓練データは、典型的には重複排除、正規化、および順序ランダム化を含む、バイアスの原因を減らすために準備される。動作456において、訓練のためにモデルが選択され、初期シナプス重みが初期化される(例えば、ランダム化される)。基礎となるタスクに応じて、好適なモデルには、フィードフォワード技法(例えば、畳み込みニューラルネットワーク)、調節フィードバックベースのシステム、放射基底関数(RBF)技法、およびリカレントニューラルネットワークベースの技法(例えば、長期短期記憶(LSTM))が含まれるが、これらに限定されるものではない。動作458において、選択されたモデルは、入力データ要素を使用して出力を予測するために使用され、その予測は、対応するターゲットデータと比較される。次いで、動作460において、勾配(例えば、予測値と目標値との差)が、いくつかの実施形態において、シナプス重みを更新するために使用されることがある。このプロセスは、訓練データが使い果たされるか、またはモデルが正確度もしくは精度またはその両方の許容レベルに達するまで、各反復で重みを更新しながら繰り返され得る。動作462では、任意で、得られたモデルを以前に評価されていないデータと比較して、その性能を検証およびテストすることができる。
【0056】
本開示のいくつかの実施形態の態様は、上述の勾配ベースのシステムの代わりに、強化学習もしくは進化戦略訓練技法またはその両方を利用することができる。これらの技法は、識別器および生成器部分がサンプルデータで訓練される必要がないため、以下に説明する敵対的生成モデル(Generative Adversarial Model:GAN)における使用に望ましいと思われる。むしろ、GANのMLモデルは、試行錯誤を通じて学習することができる。例えば、GANの2つのMLモデルのうち1つが問題を解決することに成功したため、一連の判定が成功すると、プロセスが強化されることがある。
【0057】
<エンフォースメントグラフ>
グラフとは、一般に、ノード(または頂点)と、グラフ内の任意の2つのノードを接続するエッジ(またはラインまたはアーク)を含むデータ構造を指す。エンフォースメントグラフは、一般に、データポリシーを実施するために使用されるグラフを指す。エンフォースメントグラフは、いくつかの実施形態において、グラフトラバーサルベースのポリシーエンフォースメント、エンティティ・ポリシー・またはアセット間の類似性推定、および頂点の相関関係を提供するために使用されることがある。
【0058】
ここで図5を参照すると、いくつかの実施形態と一致する例示的なポリシーエンフォースメントグラフ500が提示される。この例のポリシーエンフォースメントグラフ500は、データポリシーを実施するために使用されるグラフであってよい。ポリシーエンフォースメントグラフ500の頂点タイプは、ユーザ/要求者(例えば、ユーザA)、データセットDおよびデータセットEなどのアセット(例えば、データセット、データベース、ハードウェア)、ポリシー(例えば、ポリシーBおよびポリシーCであり、これらはそれぞれポリシー属性521~523およびポリシー属性524~526を有し、これらはどのようなタイプのシステムもしくはユーザまたはその両方がデータセットDもしくはデータセットEまたはその両方などのリソースを利用することが許可されているか、ガバナンスエンティティ、抽象データ型、データを記憶できる場所に関するポリシー、特定のタイプのデータの記憶が許可される場所に関するポリシー等を記述することができる場合がある)を含む場合がある。
【0059】
頂点間のエッジタイプは、ソース頂点(例えば、ユーザA)およびターゲット頂点(例えば、データセットD)に依存し得る。ポリシーエンフォースメントグラフ500内の例示的なエッジ(図5において矢印として描かれている)は、ユーザA、およびデータセットDもしくはデータセットEまたはその両方からのエッジ/矢印によって説明されるように、アセットのための要求を含む。すなわち、エッジは、いくつかの実施形態において、動作を示すことができる。
【0060】
ポリシーエンフォースメントグラフ500内の他のエッジは、ポリシーがどのユーザに適用されるか、そのユーザがそのアセットを使用することを許可されるか、などを記述するポリシーに関するアセット(例えば、データセットD)の評価を表す場合がある。例えば、一部のエッジは、特定のエンティティ(システムもしくはユーザまたはその両方)に対してアセットがどのように使用されるべきかを記述することができる。他のエッジは、応答505として描かれるように、ユーザAに対する(動的ロジックを使用した)応答において必要とされる情報を記述することができる。
【0061】
例えば、エッジ501は、リソース要求者であるユーザAに対して、以下の情報を含む:要求されたリソース:データセットD、ポリシー属性:ポリシー属性521・ポリシー属性523。エッジ502は、リソース要求者であるユーザAに対して、以下の情報を含み得る:要求されたリソース:データセットD、ポリシー属性:ポリシー属性522。エッジ503は、リソース要求者であるユーザAに対して、以下の情報を含み得る:要求されたリソース:データセットD、ポリシー属性:ポリシー属性525・ポリシー属性526。エッジ504は、リソース要求者であるユーザAに対して、以下の情報を含み得る:要求されたリソース:データセットE、ポリシー属性:ポリシー属性524・ポリシー属性525およびポリシー属性526。
【0062】
このように、この例示のエッジ501~504は、ユーザAに関連するデータセットDもしくはデータセットEまたはその両方に関するポリシー情報を記述することができる。このように、エッジ501~504などのエッジは、どのユーザが特定のアセット(リソース)へのアクセスもしくは変換またはその両方を許可されているか、どのアセットが特定のユーザによって要求されているか、どのポリシーが特定のユーザもしくはアセットまたはその両方に適用されているか、どの規則(すなわち、ポリシーの一部)が特定のアセットに適用されているかを記述することができる。
【0063】
類似性ベクトル506は、特定のリソースが特定のポリシー属性にどの程度適合しているかを記述することができる。例えば、類似性ベクトル506は、データセットDがポリシー属性522に31%(0.31)適合しており、データセットEがポリシー属性522に40%(0.40)適合していることを示す場合がある。このように、データセットEは、この例では、ユーザAのデータに対する応答に応答するのに(ポリシーBに基づいて)より適している場合がある。
【0064】
ポリシーエンフォースメントグラフ500は、特定のアセットが関連するポリシーに基づいてユーザAに利用可能かどうかを判定するのに必要な情報を提供することができるが、ユーザAにデータセットDまたはデータセットEへのアクセスを許可するかどうかを判定する際に、その情報を利用することが困難な場合がある。すなわち、図5に示す情報は基本的に表形式なので、異なるデータセットと異なるポリシーおよびその属性との相互作用、ならびに特定のユーザが異なるポリシーおよびその属性に基づいてこれらの異なるデータセットへのアクセスを許可するか否かの理解が困難であることがある。
【0065】
このように、いくつかの実施形態は、ポリシーエンフォースメントグラフ500をポリシーエンフォースメントハイパーグラフに拡張し得る。データポリシーエンフォースメントハイパーグラフは、一般に、特定のリソースへの、および特定の要求者のためのポリシーの適用を表現し得るハイパーエッジを用いることによって、単純なグラフよりも一般的かつ表現的である組合せオブジェクトを参照する。ハイパーグラフは、効率的な知識表現を可能にするハイパーバーティス(誘導サブハイパーグラフ)として、ポリシーの階層的な表現を提供することができる。このようなハイパーバーティスは、容易に修正することができ、ハイパーエッジ内の頂点は、ポリシーエンフォースメントグラフプロトコルに従って、クエリの前に折りたたみ可能/変形可能になる。
【0066】
いくつかの実施形態と一致するハイパーエッジは、XユーザとYデータアセットを含み得る頂点のセットを定義することができ、XユーザがYアセットにアクセスできることを示すことができる。いくつかの実施形態は、どのユーザがどのアセットにアクセスすることができるか、また、どのポリシーが適用されるかについて推論するためにハイパーエッジの推論を可能にすることができる。適切な推論方法は、限定されないが、ハイパーグラフ・ラプラシアン分析、ランダムウォーク、およびハイパーグラフ畳み込みを含み得る。
【0067】
ここで図6を参照すると、いくつかの実施形態と一致する、例示的なポリシーエンフォースメントハイパーグラフ600が提示される。図6に示すように、ポリシーエンフォースメントハイパーグラフ600は、図5に示すポリシーエンフォースメントグラフ500に見られるユーザA、ポリシーB、ポリシーC、データセットD、データセットE、および類似性ベクトル506を含んでもよい。さらに、ポリシーエンフォースメントハイパーグラフ600は、ルール631、ルール632、ルール633、ルール634、ルール635、およびルール636を含んでよく、これらはそれぞれ、図5に示されるポリシー属性521、ポリシー属性522、ポリシー属性523、ポリシー属性524、ポリシー属性525、およびポリシー属性526のコンポーネントであってもよい。したがって、例えば、ポリシーは、特定のアセット/リソースの様々な特徴を記述することができ、または、ルールは、かかる特徴の1つであり得る。さらに、ポリシーエンフォースメントハイパーグラフ600は、ハイパーエッジI~IIIを含むことがあり、これは、データセットなどの特定のリソースへのアクセスに関するポリシーを実施するための新しい能力を提供することがある。
【0068】
いくつかのポリシーエンフォースメントハイパーグラフ600の実施形態の1つの有益な特徴は、特定のユーザ/システム(例えば、ユーザA)に適用されるように、リソースを評価するときに特定のリソース(例えば、データセットD)のポリシーを識別するためにポリシーエンフォースメントハイパーグラフ600をトラバースするときのハイパーエッジI、ハイパーエッジII、およびハイパーエッジIIIのパワーを含む。例えば、ユーザAが特定のリソースにアクセスしようとするときに、それらが表すポリシーのために頂点およびエッジを解釈するために重い処理リソースを必要とし得る、ポリシーエンフォースメントグラフ500に示される様々な頂点およびエッジを通って歩く/トラバースするのではなく、ポリシーエンフォースメントハイパーグラフ600のハイパーエッジ(例えば、ハイパーエッジI、ハイパーエッジII、もしくはハイパーエッジIII、またはその組み合わせ)を介して歩く/トラバースすることによって、データシステムが、これらのリソースへのアクセスを試みるユーザAに関連するポリシーを迅速および効率的に評価することができる場合がある。
【0069】
より具体的には、図6の例では、ポリシーエンフォースメントハイパーグラフ600のハイパーエッジをトラバースすることにより、システムが特定のユーザのために特定のポリシールールを特定のリソースに迅速に適用することが可能になる場合がある。図6では、説明のために、ハイパーエッジIがユーザA、ポリシールール631、ポリシールール633、ポリシールール635、ポリシールール636、およびデータセットDについて定義されていると仮定する。さらに、ハイパーエッジIIがユーザA、ポリシールール632、ポリシーC、およびデータセットEについて定義されていると仮定する。ハイパーエッジIIIがデータセットD、データセットE、ポリシールール632、および類似性ベクトル606([0.31,0.4])について定義されていると仮定する。
【0070】
このように、システム(例えば、Deep Neural Network-DNN)がユーザAに使用するポリシーを識別するために訓練された場合、ハイパーエッジIとハイパーエッジIIが関連していることを迅速に認識することができるかもしれない。より具体的には、この例では、ユーザAがデータセットDからのデータを要求している場合、ハイパーエッジIは、ユーザAおよびデータセットDに関連する唯一のハイパーエッジであるため、関連するハイパーエッジとなり得る。
【0071】
したがって、いくつかのポリシーエンフォースメントハイパーグラフの実施形態の1つの有益な特徴は、それらが、ポリシーエンフォースメントハイパーグラフ600内の特定のハイパーエッジをトラバースすることによって、エンティティ(例えば、ユーザ)、ポリシー、およびアセット(例えば、図6に示すデータセットなどのリソース)間の類似性推定を使用するグラフトラバーサルベースの、パスベースのポリシーエンフォースメントをシステムが行うことを可能にするかもしれないということにある。いくつかのポリシーエンフォースメントハイパーグラフの実施形態の別の有益な特徴は、それらがポリシー適用分析(範囲の変更、ポリシーの追加/削除を示唆する)を可能にし得ることである。したがって、いくつかの実施形態では、ポリシーエンフォースメントグラフ(例えば、データポリシーエンフォースメントグラフ)は、データポリシーエンフォースメントハイパーグラフとして表現されるようになっており、これは、特定のリソースに対する、および特定の要求者に対するポリシーの適用を表現するハイパーグラフを用いることによって、単純なグラフよりも一般的かつ表現的である組合せオブジェクトである。このハイパーグラフは、ポリシーの階層的表現をハイパーバーティス(誘導サブハイパーグラフ)として提供し、効率的な知識表現を可能にする。かかるハイパーバーティスは簡単に変更でき、ハイパーエッジ内の頂点は、ポリシーエンフォースメントグラフプロトコルに従って、クエリの前に折りたたみ可能/変形可能になる。
【0072】
一実施形態では、ポリシーエンフォースメントハイパーグラフ600を通るトラバーサルおよびそこから展開される判定は、ルールベースの方法で実行される。すなわち、ルールは、どのリソースが要求されているか、要求しているエンティティのプロファイルなどに応じて、ポリシーエンフォースメントハイパーグラフ600を通じてどの経路を取るべきかを定義する。これらのルールは、次に、本明細書で説明するように、要求者が要求されたリソースへのアクセスを許可するかどうかを判定するために、ユーザを誘導する、もしくはニューラルネットワークを訓練する、またはその両方のために使用される。
【0073】
図7は、いくつかの実施形態と一致する、エンフォースメントグラフを作成する1つの方法700を例示するフローチャートである。動作705において、頂点は、アセット、ユーザ、ルール、ポリシー、または他の抽象データ型として追加されてもよい。動作710において、エッジおよびハイパーエッジは、これらの頂点への相関関係、文脈、またはイベントとして追加され、エンフォースメントグラフもしくはエンフォースメントハイパーグラフまたはその両方を構築することができる。次に、動作715において、エッジ/ハイパーエッジおよび頂点のための埋め込みは、図5~6に関してより詳細に議論される技法を使用して訓練され得る。
【0074】
次に、動作720において、長短記憶(LSTM)、変換器モデルなどのシーケンスMLモデルが、埋め込みおよび埋め込みシーケンスのラベル付きセットに対する教師あり学習または半教師あり学習を使用して訓練される場合がある。LSTMモデルは、ゲートと呼ばれる接続点を通して相互接続された複数の人工セルを含んでよい。いくつかの実施形態における各セルは、入力ゲート、出力ゲート、および忘却ゲートを含むことができる。セルは、あるセルの出力ゲートが別のセルの入力ゲートとなるように相互接続されることがある。
【0075】
いくつかのLSTMの実施形態におけるセルは、任意の時間間隔にわたってその値を記憶することができ、ゲートは、セルへの情報の流入と流出を規制するサブエンティティであることができる。LSTMモデルの各ゲートは、さらに、あるセルの出力と別のセルの入力との間の接続における関係の強さを符号化してもよい。各セルの出力は、ゲートを介してそれに接続されている他のセルから受信した入力の集合体によって判定され、したがって、これらの「上流」に接続されたセルの出力と、ゲート上の数値重みによって判定される接続の強さとによって判定され得る。このように、LSTMモデルが任意の時間間隔にわたって値を記憶することができるため、LSTMモデルを用いる実施形態が望ましいと考えられる。これは、ひいては、入力時系列データ中のイベントを特定のエンティティについて分類することを可能にし得る。しかしながら、他のタイプのMLモデルも本開示と一致する。
【0076】
再び図7を参照すると、選択されたシーケンスモデルの出力は、動作725でその頂点またはエッジ/ハイパーエッジに関する評価を受けるために、新しい頂点またはエッジ/ハイパーエッジで評価されることがある。任意選択で、既存のアクセス制御システムが、出力の判定を助けるために使用されてもよい。いくつかの実施形態では、既存のアクセス制御システムの出力/結果は、開示されたハイパーグラフML判定モデルによってなされる任意の判定において、所定の要因によって重み付けされることがある。
【0077】
以下により詳細に説明するように、いくつかの実施形態では、既存のアクセス制御システムは、敵対的MLモデルによって生成された推論に基づいてアクセス制御ルールを作成/指定することができる(例えば、敵対的MLモデルによって推論された疑いが所定の基準を上回る場合、そのユーザへのアクセスを拒否する)。
【0078】
動作730において、選択されたMLモデルの出力に応答して、適切な強制措置(例えば、特定のアクセス権を取り消す)を講じることがある。
【0079】
<推論脆弱性>
推論脆弱性とは、一般に、敵が1または複数のユーザを使って1または複数の独立したデータアセットにアクセスし、データアセットの厳密なサブセットでは利用できない推論を利用してプライバシーを侵害する脆弱性を指す。推論の脆弱性は、完全な侵害(敵対者が正確な機密情報を推論できる)または部分的な侵害(敵対者が可能な機密値をいくつかの値に煮詰めることができる)をもたらすことがある。いくつかの実施形態の1つの特徴および利点は、ユーザのグループ内およびデータアセットのグループ内並びにそれらの間の類似性および関係を評価することによって推論の脆弱性を識別する能力である。特に、ユーザは、経時的に不正または疑わしいアクセス行動を示すことがあり、アカウントの侵害または不正を示す可能性がある。
【0080】
図8は、いくつかの実施形態と一致する、2つのデータアセットと2人のユーザを含むデータエコシステムにおけるエンフォースメントハイパーグラフの例示的なアプリケーション800を描写する。この例におけるデータアセットは、データアセットAおよびデータアセットBであり、それぞれ病院Aのためのデータベースおよび病院Bのためのデータベースに対応する。この例示のデータアセットは両方とも、ベストプラクティスに従って、生まれた年代と郵便番号によって匿名化されている。
【0081】
この例では、ユーザはユーザAとユーザBである。しかし、両者は敵対的ユーザによってアクセス/制御される。この例示においては、ユーザAがデータアセットAから表示される12個のエントリを要求して受信し、ユーザBがデータアセットBから表示される12個のエントリを要求して受信する。敵対者はこの情報をすべて入手し、それを使用して保護された情報を推測できるようになり、例えば、患者Pが30歳未満であり、郵便番号130**に住んでおり、これらの病院の両方を訪れたことがあることを敵対的ユーザが知っている場合、個人Cがエイズであると推測することができるようになる。
【0082】
ルールベースのシステムは、一部の攻撃の検出を提供することができるが、疑わしい行動は、経時的に他の行動と類似する時間ベースのアクセス行動であり、データ侵害につながる可能性もある。例えば、推論攻撃の一部であるユーザは、類似の行動を有する可能性があり、したがって、類似性メトリックによって相関される可能性がある。以下により詳細に説明するように、この相関関係により、いくつかの実施形態は、この例における2つのユーザおよびデータアセットについて、アプリケーション800が推論-脆弱としてラベル付けされ得るハイパーエッジを形成する可能性があると判定することができる。
【0083】
図9は、いくつかの実施形態と一致する、経時的なハイパーグラフにおけるトポロジカルな動きおよび動作を活用する方法で、エンフォースメントグラフもしくはエンフォースメントハイパーグラフまたはその両方を備えるデータエコシステムの推論脆弱性に起因し得る潜在的プライバシー侵害を識別するかかる方法900を例示するフローチャートである。動作905において、いくつかの実施形態は、各ユーザについて、そのユーザがアクセスすることができるデータアセットを識別することができる。これは、ルールベースのシステム、もしくは計算されたエッジまたはハイパーグラフ、またはその両方を使用して定義されることがある。計算エッジについては、いくつかの実施形態は、ノード埋め込みモデルからのエッジ推論を使用してもよく、ここで、「イベント」は、データアセットのいくつかのグループにアクセスするいくつかのグループのユーザを含んでもよい。
【0084】
次に、各イベントについて、動作910でイベントを包含するエッジもしくはハイパーエッジまたはその両方が作成される場合がある。新しいエッジもしくはハイパーエッジまたはその両方は、動作915において、「推論-脆弱」または「推論-脆弱でない」としてラベル付けされることがある。次いで、動作920において、深層学習モデル(かかるモデルの1つは「深層ハイパーエッジ」である)が、これらのラベル付けされたエッジもしくはハイパーエッジまたはその両方に対して教師あり訓練を実行するように訓練されることがある。次に、動作925において、潜在的な推論ベースのプライバシー侵害は、将来のイベント、またはエンフォースメントハイパーグラフ内のハイパーエッジに対して訓練されたMLモデルを展開し、その後実行/使用することによって評価され得る。いくつかの実施形態において、MLモデルは、入力イベントを与えられた推論ベースのプライバシー侵害の確率に関連するスコアを出力し得る。
【0085】
いくつかの実施形態の1つの有益な特徴は、ハイパーグラフ学習の初期段階で存在する経時的なトポロジカルな動作を利用する推論を生成する能力である。このように、方法900は、トポロジカルな動作を識別および分析するために使用されてよく、ルールベースまたはその他の他の既存のアクセス制御判定システムと組み合わせて使用されてもよい。
【0086】
<ユーザ行動分析>
図10は、いくつかの実施形態と一致する、エンフォースメントグラフもしくはエンフォースメントハイパーグラフポリシーエンジンまたはその両方を備えるデータエコシステムにおいて異常なまたは疑わしいユーザ動作を識別する1つの方法1000を示すフローチャートである。図10に描かれた方法1000は、グラフもしくはハイパーグラフまたはその両方におけるトポロジカルな動きおよび行動を経時的に活用することができるので、望ましいと思われる。
【0087】
動作1005において、各ユーザがアクセスすることができるデータアセットが識別される。これは、いくつかの実施形態において、ルールベースのエッジまたは計算エッジまたはハイパーエッジによって定義されてもよい。計算エッジについては、ノード埋め込みモデルからのエッジ推論が使用されてもよく、「イベント」は、データアセットのいくつかのグループにアクセスするユーザのいくつかのグループであってもよい。次に、動作1010において、所望の範囲内の各時間ステップにおいて、ユーザの各々についての埋め込みが作成されてもよい。
【0088】
ユーザの埋め込みのシーケンス(例えば、n個の時間ステップに対するn個の埋め込み)は、動作1015において「疑わしい」または「疑わしくない」としてラベル付けされてもよく、これは、動作1020において各ユーザについて繰り返され得る。次いで、訓練された深層学習シーケンスモデルが、動作1025において使用され、これらのラベル付けされたシーケンスに対して教師あり訓練を実行することができる。潜在的な疑わしい行動は、動作1030において、(例えば、新しいユーザもしくはタイムステップまたはその両方の将来のセットについて)埋め込みの新しいシーケンス上で訓練されたモデルを実行することによって評価されてもよい。結果として生じる疑いスコアは、動作1035において出力されることがあり、これは、行動が疑わしいまたは不正であることの確率に関連する場合がある。
【0089】
動作1040において、疑いは、所定のロバスト性基準と比較され得る。所定の因子は、スライダまたは他のグラフィカルユーザインタフェース要素を使用して管理者によって選択される場合がある。比較に応答して、動作1050において、データ侵害を防止するために、一連のクエリのうちの1または複数が選択的にブロックされるか、または変換されることがある。加えてまたは代替的に、一連のクエリは、管理者に送信されてもよい。
【0090】
この方法1000は、トポロジカルな行動を識別および分析することができ、また、ルールベースまたはそれ以外の他の既存のアクセス制御判定システムと組み合わせて使用することができるため、望ましいと思われる。
【0091】
<敵対的生成モデル(GAN)>
いくつかの実施形態は、グラフベースの敵対的生成モデルもしくはハイパーグラフGANまたはその両方を含み、エンフォースメントグラフもしくはハイパーグラフまたはその両方を有するデータエコシステムに問い合わせることができる。いくつかの実施形態では、敵対的ユーザの制御下にあり、任意でメタデータの予測されたセットへのアクセスも有するユーザノードが、GANの生成器部分によってシミュレートされることがある。他の実施形態では、GANの生成器部分は、それ自体、GANの識別器部分を攻撃/搾取しようとする一連のクエリを発行することができる。GANの識別器部分は、今度は、これらの種類の攻撃から防御するためのアクション(例えば、ポリシー)を提案することができる。
【0092】
その後、生成器には目標が与えられることがある。その後、生成器は、パラメータ(例えば、異なるアセットを要求する管理下のユーザの数・ID・およびタイプ、アセットが要求される時間、ユーザによってなされた要求の他のメタデータなど)に小さな調整を加えることによって、その目標を達成するために、複数のユーザもしくは一連のクエリまたはその両方を作成し、発行することができる。これらのクエリは、クエリまたは一連のクエリがシステムによって承認されるまで繰り返され(例えば、同じヌル結果をもたらす)、データ侵害をもたらす可能性がある。
【0093】
識別器は、敵対的ロバスト性訓練において、生成器と一緒に完了することができる。ここで、識別器MLモデルは、その特定の一連のクエリを防止するために、生成器が成功した攻撃に応答してそのポリシーを変更する。いくつかの実施形態では、これは、ロバスト性のための「意思決定者」モデルにおける訓練例として、敵対的な例として成功したイベントを使用することを含み得る。このようにして、敵対的な行動を識別した際に影響を受ける可能性のあるユーザの信頼度スコア/リスクスコアを返す可能性のあるポリシーの新しいクラス(すなわち、敵対的推論ポリシー)を生成することができる。敵対的推論ポリシーからのスコアの値に応じて、データエコシステムは、一連の入力要求の一部または全部に応答して出力を選択的に「拒否」してもよく、可能性のある攻撃について管理者に自動的に通知してもよく、もしくは基礎データを保護するためにクエリの受信時に変換を自動的に実行してもよく、またはその両方であってよい。
【0094】
より具体的には、図11A~B(まとめて図11)は、いくつかの実施形態と一致する、データエコシステムにおいて侵害につながり得る、もしくは推論脆弱性をもたらし得る、またはその両方であるクエリを識別し、それに対してロバストになるために、エンフォースメントグラフまたはエンフォースメントハイパーグラフを使用する1つの方法1100を示すフローチャートの一部である。図11のクエリは、データエコシステムにとって無害に「見える」ようにGAN生成器によって生成されるかもしれないが、外部データもしくはメタデータまたはその両方と結合されると、それにもかかわらず侵害をもたらす可能性がある。いくつかの実施形態では、GAN識別器は、データエコシステムを保護するクエリ識別器として機能する場合がある。
【0095】
方法1100において、各ユーザがアクセスすることができるデータアセットは、例えば、ルールベースのシステム、計算されたエッジ、または計算されたハイパーエッジを用いて、動作1105で識別され得る。計算エッジまたはハイパーエッジについては、ノード埋め込みモデルからのエッジ推論が使用される場合がある。動作1110において、GAN識別器は、データエコシステムのためのエンフォースメントサービスとして、エンフォースメントグラフもしくはハイパーグラフまたはその両方を初期化することによって開始することができる。
【0096】
次に、動作1115において、GAN生成器は、初期化され、例えば、任意の数の予測されたユーザおよびクエリを使用して「n」個のデータアセットにアクセスするなどのターゲットが与えられることがある。次に、生成器は、動作1120において、敵対的クエリまたは敵対的クエリのシーケンスを生成するために、クエリパラメータを調整しながら、ターゲットを求める一連のクエリを生成するように構成されることがある。動作1120は、動作1125でターゲットが取得されるまで繰り返されてもよい。これに応答して、原因クエリは、動作1130において「成功した敵対的クエリ」としてマークされることがある。
【0097】
次に、識別器は、動作1135において、成功した敵対的クエリを防御するポリシーを実装するように指示され得る。これは、該当する場合、この例について深層学習ベースの「意思決定者」モデルを訓練することを含むことができる。本方法1100は、敵対的クエリに対してますますロバストになるように、継続的に反復されてもよい。
【0098】
次に、動作1135において、生成器に新しい目標が与えられることがある。その後、フローは、動作1115に戻ってもよい。動作1115~1135は、所定のロバスト性基準が満たされるまで(例えば、所定の時間の間、予測された攻撃に対してロバスト)、所定のサイクル数だけ繰り返されてもよい、等である。
【0099】
識別器の訓練が完了した後、識別器は、動作1145において、生産システムのポリシーエンジンに展開されることがある。動作1150で、ポリシーエンジンは、次に、訓練された識別器を使用して一連のクエリを受信して分析し、分析に基づいて疑いスコアを生成し始めることができる。動作1155において、疑いスコアは、所定の基準と比較され得る。所定の基準は、スライダまたは他のグラフィカルユーザインタフェース要素を使用して管理者によって選択されることがある。比較に応答して、動作1160において、データ侵害を防止するために、一連のクエリのうちの1または複数が選択的にブロックされるか、または変換されることがある。さらにまたは代替的に、一連のクエリは、管理者に送信されてもよい。
【0100】
<コンピュータプログラム製品>
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
【0101】
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
【0102】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理装置に、または、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくはワイヤレスネットワークまたはその組み合わせ)を介して外部コンピュータまたは外部記憶装置にダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバー、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバーまたはその組み合わせで構成される。各コンピューティング/処理装置のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理装置内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0103】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、統合回路のための構成データ、またはSmalltalk、C++などのオブジェクト指向プログラミング言語と「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、スタンドアロンソフトウェアパッケージとして、完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上で実行可能である。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され、または(例えば、インターネットサービスプロバイダーを使用したインターネット経由で)外部コンピュータに接続されてよい。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【0104】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書に記載されている。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
【0105】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令がフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作を実装するための手段を生成するように、機械を生成するためにコンピュータのプロセッサまたは他のプログラム可能なデータ処理装置に提供されることができる。これらのコンピュータ可読プログラム命令はまた、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為の態様を実装する命令を含む生成品の1つを命令が記憶されたコンピュータ可読記憶媒体が構成するように、コンピュータ、プログラム可能なデータ処理装置、もしくは特定の方法で機能する他のデバイスまたはその組み合わせに接続可能なコンピュータ可読記憶媒体の中に記憶されることができる。
【0106】
コンピュータ、他のプログラム可能な装置、または他のデバイス上でフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為を実行する命令のように、コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の操作ステップを実行し、コンピュータ実装された過程を生成することができる。
【0107】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品が実行可能な実装の構成、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、または命令の一部を表してよく、これは、指定された論理機能を実装するための1つまたは複数の実行可能命令を構成する。いくつかの代替の実施形態では、ブロックに示されている機能は、図に示されている順序とは異なる場合がある。例えば、連続して示される2つのブロックは、実際には、1つのステップとして達成される場合があり、同時に、実質的に同時に、部分的または全体的に時間的に重複する方法で実行されるか、またはブロックは、関係する機能に応じて逆の順序で実行される場合がある。ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方のブロックの組み合わせは、指定された機能または動作を実行する、または特別な目的のハードウェアとコンピュータ命令の組み合わせを実行する特別な目的のハードウェアベースのシステムによって実装できることにも留意されたい。
【0108】
<一般>
本開示の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であることを意図するものではなく、開示される実施形態に限定されることを意図するものでもない。記載される実施形態の範囲から逸脱することなく、多くの修正および変更が可能であることは当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実際の適用または技術的改善を最もよく説明するため、または当業者が本明細書に記載の実施形態を理解できるようにするために選択された。
【0109】
したがって、本明細書に記載された実施形態は、すべての点で制限的ではなく例示的なものとみなされ、本発明の範囲を決定するために添付の特許請求の範囲を参照することが望まれる。
図1
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10
図11A
図11B
【手続補正書】
【提出日】2023-10-27
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0098
【補正方法】変更
【補正の内容】
【0098】
次に、動作1140において、生成器に新しい目標が与えられることがある。その後、フローは、動作1115に戻ってもよい。動作1115~1140は、所定のロバスト性基準が満たされるまで(例えば、所定の時間の間、予測された攻撃に対してロバスト)、所定のサイクル数だけ繰り返されてもよい、等である。
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正の内容】
図1
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正の内容】
図5
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図8
【補正方法】変更
【補正の内容】
図8
【国際調査報告】