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

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

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

特表2024-510634可変分布保存を用いて機密データを変換するための学習
<>
  • 特表-可変分布保存を用いて機密データを変換するための学習 図1
  • 特表-可変分布保存を用いて機密データを変換するための学習 図2
  • 特表-可変分布保存を用いて機密データを変換するための学習 図3
  • 特表-可変分布保存を用いて機密データを変換するための学習 図4
  • 特表-可変分布保存を用いて機密データを変換するための学習 図5
  • 特表-可変分布保存を用いて機密データを変換するための学習 図6
  • 特表-可変分布保存を用いて機密データを変換するための学習 図7A
  • 特表-可変分布保存を用いて機密データを変換するための学習 図7B
  • 特表-可変分布保存を用いて機密データを変換するための学習 図7C
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-08
(54)【発明の名称】可変分布保存を用いて機密データを変換するための学習
(51)【国際特許分類】
   G06N 3/0455 20230101AFI20240301BHJP
   G06N 3/08 20230101ALI20240301BHJP
   G06F 21/62 20130101ALI20240301BHJP
【FI】
G06N3/0455
G06N3/08
G06F21/62 354
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023557029
(86)(22)【出願日】2022-03-23
(85)【翻訳文提出日】2023-09-15
(86)【国際出願番号】 CN2022082487
(87)【国際公開番号】W WO2022199612
(87)【国際公開日】2022-09-29
(31)【優先権主張番号】17/211,191
(32)【優先日】2021-03-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】ナタラジャン、アージュン
(72)【発明者】
【氏名】クンドゥ、アシシュ
(72)【発明者】
【氏名】ラファエル、ロジャー シー.
(72)【発明者】
【氏名】アッガーワル、アニヤ
(72)【発明者】
【氏名】デサイ、ラジェシュ エム.
(72)【発明者】
【氏名】ペイン、ジョシュア エフ.
(72)【発明者】
【氏名】チャオ、ムー
(57)【要約】
データ匿名化操作においてデータ・アセットのデータ値の分布を保存することが提供される。データ値の匿名化は、一組のオートエンコーダおよび損失関数を使用して一組の変換された列の中のデータ値の分布を規定された程度に保存しつつ、データ・アセットの複数の行にわたる一組の列の中の機密データを変換することによって実行される。オートエンコーダは、データ・アセット・カタログの中の既存のデータによってベース訓練され、データ配布中に能動的に訓練される。データ・アセットおよびデータ・コンシューマに対する施行決定からポリシーを使用して、損失関数のパラメータ係数が構成され、しきい値が生成される。選択された行の損失関数値はこのしきい値と比較される。損失関数値がしきい値よりも大きいときに、選択された行の変換されたデータ値が出力行に転記され、データ・コンシューマに配布される。
【特許請求の範囲】
【請求項1】
データ匿名化操作においてデータ・アセットのデータ値の分布を保存するためのコンピュータ実施方法であって、前記コンピュータ実施方法が、
関心のある列の関連する一組の行セルの中の機密データのデータ値を変換して変換バッファに入れるために、オートエンコーダを使用して、前記データ・アセットの中の選択された行のデータ匿名化を実行すること、
ポリシー施行決定の中に指定されたパラメータ係数を含む損失関数を使用して、前記選択された行の前記データ匿名化のための損失関数値を生成すること、
前記損失関数値を損失関数しきい値と比較すること、
前記比較することに基づいて前記損失関数値が前記損失関数しきい値よりも大きいと判定したことに応答して、特定のユーザに適した実際の行セル値への順方向マッピングを使用して、前記変換バッファの中の変換されたデータ値を、出力とラベルされた出力バッファに転記すること、および
前記データ・アセットの出力のために、出力とラベルされた前記出力バッファを次の行に転送すること
を含むコンピュータ実施方法。
【請求項2】
前記データ・アセットに対する前記出力を、リクエストしているユーザのクライアント・デバイスにネットワークを介して送ること
をさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項3】
列および行からなる長方形のデータ・セットである前記データ・アセットのデータにアクセスすることを求めるリクエストを前記特定のユーザのクライアント・デバイスからネットワークを介して受け取ること、
前記データ・アセット、前記特定のユーザ、および前記データ・アセットの前記データにアクセスすることを求める前記リクエストのコンテキストに関する前記ポリシー施行決定をリクエストすること、
前記データ・アセット、前記特定のユーザ、および前記データ・アセットの前記データにアクセスすることを求める前記リクエストの前記コンテキストに関する前記ポリシー施行決定を生成すること、ならびに
前記ポリシー施行決定に基づいて前記損失関数の前記損失関数しきい値を計算すること
をさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項4】
前記データ・アセットの中の前記機密データを含む前記関心のある列に対して前記データ匿名化を前記ポリシー施行決定に基づいて実行するために、オートエンコーダのライブラリから前記オートエンコーダを選択すること、および
前記選択された行を形成するために、前記データ・アセットの中の複数の行のうちの1つの行を選択すること
をさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項5】
前記選択された行の転記された元の入力データ値の一時バッファが、オートエンコーダ能動再訓練プロセスで使用するのに適格であるかどうかを判定すること、
前記一時バッファが、前記オートエンコーダ能動再訓練プロセスで使用するのに適格であると判定したことに応答して、前記損失関数値が前記損失関数しきい値よりも小さかったかどうかを判定すること、
前記損失関数値が前記損失関数しきい値以上であったと判定したことに応答して、前記一時バッファに優良候補のラベルをつけ、または前記損失関数値が前記損失関数しきい値よりも小さかったと判定したことに応答して、前記一時バッファに拒否候補のラベルをつけること、および
ラベルがつけられた出力行を訓練バッファに保存すること
をさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項6】
前記訓練バッファをデータ・サンプラに通して、サンプリングされた訓練バッファを形成すること、
前記訓練バッファの入力行の古典的決定論的変換によって得られた変換された行セル値からオートエンコーダ訓練に適した擬似行セル値への逆方向マッピングを使用して、特定のオートエンコーダを非同期で再訓練すること、ならびに
前記サンプリングされた訓練バッファを使用して、優良候補に対する強化および拒否候補に対する過剰適合回避のための正則化に基づいて、前記特定のオートエンコーダを追加的に再訓練すること
をさらに含む、請求項5に記載のコンピュータ実施方法。
【請求項7】
前記データ・アセットの実データをプロファイリングすること、
前記データ・アセットの前記実データの前記プロファイリングに基づいて、前記データ・アセットに対応する関心のあるデータ・クラスを列ごとに検出すること、および
前記データ・アセットに対応する前記関心のあるデータ・クラスに基づいてデータ値を分離する前記データ・アセットの最良適合超平面を生成すること
をさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項8】
オートエンコーダのライブラリの探索で前記関心のあるデータ・クラスに対応するオートエンコーダが見つからなかったと判定したことに応答して、前記関心のあるデータ・クラスに対するランダムに初期化された新たなオートエンコーダを、前記データ・アセットに関連したポリシーの履歴施行およびシミュレートされた施行に基づいて生成すること、ならびに
入力行の古典的決定論的変換によって得られた変換された行セル値からオートエンコーダ訓練に適した擬似行セル値への逆方向マッピングを使用して、前記ランダムに初期化された新たなオートエンコーダをベース訓練すること
をさらに含む、請求項7に記載のコンピュータ実施方法。
【請求項9】
分布推論を防ぐための差分プライバシー調整として、匿名化されたデータ値にラプラス・ノイズ関数が適用される、請求項1に記載のコンピュータ実施方法。
【請求項10】
前記ポリシー施行決定が前記データ・アセットのエントロピーに基づく、請求項1に記載のコンピュータ実施方法。
【請求項11】
前記ポリシー施行決定が、変換変化に関する前記データ・アセットの感度に基づく、請求項1に記載のコンピュータ実施方法。
【請求項12】
データ匿名化操作においてデータ・アセットのデータ値の分布を保存するためのコンピュータ・システムであって、前記コンピュータ・システムが、
バス・システムと、
前記バス・システムに接続されたストレージ・デバイスであり、プログラム命令を格納した、前記ストレージ・デバイスと、
前記バス・システムに接続されたプロセッサと
を備え、前記プロセッサが、前記プログラム命令を実行して、
関心のある列の関連する一組の行セルの中の機密データのデータ値を変換して変換バッファに入れるために、オートエンコーダを使用して、前記データ・アセットの中の選択された行のデータ匿名化を実行し、
ポリシー施行決定の中に指定されたパラメータ係数を含む損失関数を使用して、前記選択された行の前記データ匿名化のための損失関数値を生成し、
前記損失関数値を損失関数しきい値と比較し、
前記損失関数値が前記損失関数しきい値よりも大きいと判定したことに応答して、特定のユーザに適した実際の行セル値への順方向マッピングを使用して、前記変換バッファの中の変換されたデータ値を、出力とラベルされた出力バッファに転記し、
前記データ・アセットの出力のために、出力とラベルされた前記出力バッファを次の行に転送する、
コンピュータ・システム。
【請求項13】
前記プロセッサがさらに、前記プログラム命令を実行して、
前記データ・アセットに対する前記出力を、リクエストしているユーザのクライアント・デバイスにネットワークを介して送る、
請求項12に記載のコンピュータ・システム。
【請求項14】
前記プロセッサがさらに、前記プログラム命令を実行して、
列および行からなる長方形のデータ・セットである前記データ・アセットのデータにアクセスすることを求めるリクエストを前記特定のユーザのクライアント・デバイスからネットワークを介して受け取り、
前記データ・アセット、前記特定のユーザ、および前記データ・アセットの前記データにアクセスすることを求める前記リクエストのコンテキストに関する前記ポリシー施行決定をリクエストし、
前記データ・アセット、前記特定のユーザ、および前記データ・アセットの前記データにアクセスすることを求める前記リクエストの前記コンテキストに関する前記ポリシー施行決定を生成し、
前記ポリシー施行決定に基づいて前記損失関数の前記損失関数しきい値を計算する、
請求項12に記載のコンピュータ・システム。
【請求項15】
データ匿名化操作においてデータ・アセットのデータ値の分布を保存するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、プログラム命令が実装されたコンピュータ可読ストレージ媒体を含み、前記プログラム命令が、
関心のある列の関連する一組の行セルの中の機密データのデータ値を変換して変換バッファに入れるために、オートエンコーダを使用して、前記データ・アセットの中の選択された行のデータ匿名化を実行し、
ポリシー施行決定の中に指定されたパラメータ係数を含む損失関数を使用して、前記選択された行の前記データ匿名化のための損失関数値を生成し、
前記損失関数値を損失関数しきい値と比較し、
前記比較に基づいて前記損失関数値が前記損失関数しきい値よりも大きいと判定したことに応答して、特定のユーザに適した実際の行セル値への順方向マッピングを使用して、前記変換バッファの中の変換されたデータ値を、出力とラベルされた出力バッファに転記し、
前記データ・アセットの出力のために、出力とラベルされた前記出力バッファを次の行に転送する
方法をコンピュータに実行させるように前記コンピュータによって実行可能である、
コンピュータ・プログラム製品。
【請求項16】
前記データ・アセットに対する前記出力を、リクエストしているユーザのクライアント・デバイスにネットワークを介して送ること
をさらに含む、請求項15に記載のコンピュータ・プログラム製品。
【請求項17】
列および行からなる長方形のデータ・セットである前記データ・アセットのデータにアクセスすることを求めるリクエストを前記特定のユーザのクライアント・デバイスからネットワークを介して受け取ること、
前記データ・アセット、前記特定のユーザ、および前記データ・アセットの前記データにアクセスすることを求める前記リクエストのコンテキストに関する前記ポリシー施行決定をリクエストすること、
前記データ・アセット、前記特定のユーザ、および前記データ・アセットの前記データにアクセスすることを求める前記リクエストの前記コンテキストに関する前記ポリシー施行決定を生成すること、ならびに
前記ポリシー施行決定に基づいて前記損失関数の前記損失関数しきい値を計算すること
をさらに含む、請求項15に記載のコンピュータ・プログラム製品。
【請求項18】
前記データ・アセットの中の前記機密データを含む前記関心のある列に対して前記データ匿名化を前記ポリシー施行決定に基づいて実行するために、オートエンコーダのライブラリから前記オートエンコーダを選択すること、および
前記選択された行を形成するために、前記データ・アセットの中の複数の行のうちの1つの行を選択すること
をさらに含む、請求項15に記載のコンピュータ・プログラム製品。
【請求項19】
前記選択された行の転記された元の入力データ値の一時バッファが、オートエンコーダ能動再訓練プロセスで使用するのに適格であるかどうかを判定すること、
前記一時バッファが、前記オートエンコーダ能動再訓練プロセスで使用するのに適格であると判定したことに応答して、前記損失関数値が前記損失関数しきい値よりも小さかったかどうかを判定すること、
前記損失関数値が前記損失関数しきい値以上であったと判定したことに応答して、前記一時バッファに優良候補のラベルをつけ、または前記損失関数値が前記損失関数しきい値よりも小さかったと判定したことに応答して、前記一時バッファに拒否候補のラベルをつけること、および
ラベルがつけられた出力行を訓練バッファに保存すること
をさらに含む、請求項15に記載のコンピュータ・プログラム製品。
【請求項20】
前記訓練バッファをデータ・サンプラに通して、サンプリングされた訓練バッファを形成すること、
前記訓練バッファの入力行の古典的決定論的変換によって得られた変換された行セル値からオートエンコーダ訓練に適した擬似行セル値への逆方向マッピングを使用して、特定のオートエンコーダを非同期で再訓練すること、ならびに
前記サンプリングされた訓練バッファを使用して、優良候補に対する強化および拒否候補に対する過剰適合回避のための正則化に基づいて、前記特定のオートエンコーダを追加的に再訓練すること
をさらに含む、請求項19に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は一般に、データ・セキュリティ/プライバシーのためのシステムに関し、より詳細には、データ・コンシューマへのデータ配布(data dissemination)中にデータ・アセットの機密データ(sensitive data)をリアル・タイムで動的に変換することに関する。匿名化操作(anonymization operation)中のデータに対する特定の変換は、出力された変換された値のデータ分布を入力データに対する所望の程度に保存しようとする間に達成される。これは、変換のためのオートエンコーダ、およびデータ分布制御のためのポリシー・ベースのパラメータ化された損失関数を使用することによって達成される。
【背景技術】
【0002】
データ配布は、データ・コンシューマへのデータの分配または伝達である。データ・コンシューマは例えば、人間;事業所、企業、会社、組織、機関または代理店などの実体;ソフトウェア・アプリケーション;またはオンライン・サービスなどであることがある。データ・セキュリティは、異なるデータ・セットの相対的な重要度、異なるデータ・セットの機密性、および異なるデータ・セットに対応する規制遵守要件を識別する一組のポリシーを採用し、次いで所与のデータ・セットをセキュアにするために適切なポリシーを適用することによってデータを保護するプロセスである。データ・セキュリティの要素には秘密性、完全性および可用性が含まれうる。これらの要素を、許可されていないアクセスから保護された状態に機密データを保つためのガイドとして使用することができる。例えば、秘密性は、データが、許可されたユーザだけによってアクセスされることを保証する。完全性は、データが正確なことを保証する。可用性は、データ・コンシューマのニーズを満たすようにデータが使用可能かつアクセス可能であることを保証する。
【0003】
データ・プライバシーは、データの収集および伝搬、データ・プライバシーの期待およびこれらを取り巻く規制問題の間の関係である。データ・プライバシーは、個人の機密データまたは個人として特定可能な情報を保護しつつ同時にデータを使用することから課題を提示する。個人として特定可能な情報は、特定可能な人に対応する、その特定の人を識別する目的に使用することができる、例えば名前、住所、電話番号または社会保障番号などの情報である。
【発明の概要】
【0004】
例示的な一実施形態によれば、データ匿名化操作においてデータ・アセットのデータ値の分布を保存するためのコンピュータ実施方法が提供される。関心のある列の関連する一組の行セルの中の機密データのデータ値を変換して変換バッファに入れるために、オートエンコーダを使用して、データ・アセットの中の選択された行のデータ匿名化が実行される。ポリシー施行決定(policy enforcement decision)の中に指定されたパラメータ係数を含む損失関数を使用して、選択された行のデータ匿名化のための損失関数値が生成される。損失関数値が損失関数しきい値と比較される。この比較に基づいて損失関数値が損失関数しきい値よりも大きいと判定したことに応答して、特定のユーザに適した実際の行セル値への順方向マッピングを使用して、変換バッファの中の変換されたデータ値が、出力とラベルされた出力バッファに転記される。データ・アセットの出力のために、出力とラベルされた出力バッファが次の行に転送される。例示的な他の実施形態によれば、データ匿名化操作においてデータ・アセットのデータ値の分布を保存するためのコンピュータ・システムおよびコンピュータ・プログラム製品が提供される。
【図面の簡単な説明】
【0005】
図1】例示的な実施形態を実施することができるデータ処理システムのネットワークの絵図である。
図2】例示的な実施形態を実施することができるデータ処理システムを示す図である。
図3】例示的な一実施形態による、データ発見、データ分類ならびにオートエンコーダ・ベース訓練およびライブラリ保守プロセスの一例を示す図である。
図4】例示的な一実施形態による、ポリシー施行を用いた動的データ配布および能動オートエンコーダ訓練プロセスの一例を示す図である。
図5】例示的な一実施形態による、損失関数を含むオートエンコーダの特定の例を示す図である。
図6】例示的な一実施形態による、データ分類およびオートエンコーダ・ベース訓練のプロセスを示す流れ図である。
図7A】例示的な一実施形態による、機密データを変換するためのポリシー施行のプロセスを示す流れ図である。
図7B】例示的な一実施形態による、機密データを変換するためのポリシー施行のプロセスを示す流れ図である。
図7C】例示的な一実施形態による、機密データを変換するためのポリシー施行のプロセスを示す流れ図である。
【発明を実施するための形態】
【0006】
本発明は、統合化の可能な技術的詳細レベルにおいて、システム、方法もしくはコンピュータ・プログラム製品、またはこれらの組合せであることがある。このコンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含むことがある。
【0007】
このコンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持および格納することができる有形のデバイスとすることができる。このコンピュータ可読ストレージ媒体は例えば、限定はされないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイスまたはこれらの適当な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能なプログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(登録商標)・ディスク、機械的にコード化されたデバイス、例えばパンチカードまたはその上に命令が記録された溝の中の一段高くなった構造体、およびこれらの適当な組合せを含む。本明細書で使用されるコンピュータ可読ストレージ媒体を、それ自体が一過性の信号、例えば電波もしくは他の自由に伝搬する電磁波、ウェーブガイドもしくは他の伝送体内を伝搬する電磁波(例えば光ファイバ・ケーブル内を通る光パルス)、または電線を通して伝送される電気信号であると解釈すべきではない。
【0008】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から対応するそれぞれのコンピューティング/処理デバイスにダウンロードすることができ、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはこれらの組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードすることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジ・サーバ、またはこれらの組合せを含むことができる。それぞれのコンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を、対応するそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0009】
本発明の操作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、もしくは集積回路用のコンフィギュレーション・データであってもよく、またはSmalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同種のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードであってもよい。このコンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行されてもよく、一部がユーザのコンピュータ上で実行されてもよく、独立型ソフトウェア・パッケージとして実行されてもよく、一部がユーザのコンピュータ上で、一部がリモート・コンピュータ上で実行されてもよく、または全体がリモート・コンピュータもしくはリモート・サーバ上で実行されてもよい。上記の最後のシナリオでは、リモート・コンピュータが、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、またはこの接続が、外部コンピュータに対して(例えばインターネット・サービス・プロバイダを使用してインターネットを介して)実施されてもよい。いくつかの実施形態では、本発明の態様を実行するために、例えばプログラム可能論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA)またはプログラム可能論理アレイ(PLA)を含む電子回路が、このコンピュータ可読プログラム命令の状態情報を利用してその電子回路をパーソナライズすることにより、このコンピュータ可読プログラム命令を実行してもよい。
【0010】
本明細書では、本発明の態様が、本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品の流れ図もしくはブロック図またはその両方の図を参照して説明される。それらの流れ図もしくはブロック図またはその両方の図のそれぞれのブロック、およびそれらの流れ図もしくはブロック図またはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実施することができることが理解される。
【0011】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサ、または機械を形成する他のプログラム可能データ処理装置のプロセッサに、それらのコンピュータのプロセッサまたは他のプログラム可能データ処理装置のプロセッサによって実行されるこれらの命令が、これらの流れ図もしくはブロック図またはその両方の図のブロックに指定された機能/操作を実施する手段を生成するような態様で、提供することができる。これらのコンピュータ可読プログラム命令はさらに、特定の方式で機能するようにコンピュータ、プログラム可能データ処理装置もしくは他のデバイスまたはこれらの組合せに指図することができるコンピュータ可読ストレージ媒体に、その中に命令が格納されたコンピュータ可読ストレージ媒体が、これらの流れ図もしくはブロック図またはその両方の図のブロックに指定された機能/操作の態様を実施する命令を含む製品を含むような態様で、格納することができる。
【0012】
これらのコンピュータ可読プログラム命令はさらに、コンピュータ、他のプログラム可能装置または他のデバイス上で一連の操作ステップを実行させて、コンピュータによって実施されるプロセスを生み出すために、このコンピュータ、他のプログラム可能データ処理装置または他のデバイス上に、このコンピュータ、他のプログラム可能装置または他のデバイス上で実行されるこれらの命令が、これらの流れ図もしくはブロック図またはその両方の図のブロックに指定された機能/操作を実施するような態様で、ロードすることができる。
【0013】
添付図中の流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能および操作を示す。この点に関して、それらの流れ図またはブロック図のそれぞれのブロックは、指定された論理機能を実施する1つまたは複数の実行可能命令を含む、命令のモジュール、セグメントまたは部分を表すことがある。いくつかの代替的な実装では、ブロックに示された機能を、図に示された順序とは異なる順序で実行することができる。例えば、連続して示された2つのブロックが、実際は、1つのステップとして実施されること、同時に、実質的に同時に、または時間的に部分的にもしくは完全に重なって実行されること、あるいは含まれる機能によってはそれらのブロックが時に逆の順序で実行されることもある。それらのブロック図もしくは流れ図またはその両方の図のそれぞれのブロック、ならびにそれらのブロック図もしくは流れ図またはその両方の図のブロックの組合せを、指定された機能もしくは操作を実行しまたは専用ハードウェアとコンピュータ命令の組合せを実行するハードウェアベースの専用システムによって実施することができることにも留意すべきである。
【0014】
次に図、特に図1および図2を参照すると、例示的な実施形態を実施することができるデータ処理環境の図が示されている。図1および図2は、単なる例であることが意図されており、図1および図2が、異なる実施形態を実施することができる環境に関する限定を言明または暗示することは意図されていないことを理解すべきである。示された環境に対して多くの変更を加えることができる。
【0015】
図1は、例示的な実施形態を実施することができるデータ処理システムのネットワークの絵図を示している。ネットワーク・データ処理システム100は、例示的な実施形態を実施することができる、コンピュータ、データ処理システムおよび他のデバイスのネットワークである。ネットワーク・データ処理システム100はネットワーク102を含み、ネットワーク102は、ネットワーク・データ処理システム100内で一緒に接続されたコンピュータ、データ処理システムおよび他のデバイス間の通信リンクを提供するために使用される媒体である。ネットワーク102は、例えば有線通信リンク、無線通信リンク、光ファイバ・ケーブルなどの接続を含むことができる。
【0016】
図示の例では、サーバ104およびサーバ106が、ストレージ108とともにネットワーク102に接続している。サーバ104およびサーバ106は例えば、ネットワーク102との高速接続を有するサーバ・コンピュータであってもよい。さらに、サーバ104およびサーバ106は、データ・アセットの値の分布を、損失関数を含むオートエンコーダを使用してポリシーに基づき規定された程度に保存しつつ、ユーザがリクエストしたデータ・アセット(例えば列および行からなる長方形のデータ・セット)の機密データを匿名化されたデータ値に物理的に変換することによって、1つまたは複数のデータ・プライバシー・サービスを提供する。さらに、サーバ104およびサーバ106はそれぞれ、1つまたは複数のデータ・センタ内の一群のサーバを表すことがあることにも留意すべきである。あるいは、サーバ104およびサーバ106はそれぞれ、1つまたは複数のクラウド環境内の多数のコンピューティング・ノードを表すこともある。
【0017】
ネットワーク102にはクライアント110、クライアント112およびクライアント114も接続している。クライアント110、112および114はサーバ104およびサーバ106のクライアントである。この例では、クライアント110、112および114が、ネットワーク102との有線通信リンクを有するデスクトップまたはパーソナル・コンピュータとして示されている。しかしながら、クライアント110、112および114は単なる例であり、クライアント110、112および114が、例えばネットワーク102との有線または無線通信リンクを有する、ネットワーク・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、スマート・フォン、スマート・テレビジョンなどの他のタイプのデータ処理システムを表すことがあることに留意すべきである。クライアント110、112および114に対応するユーザ(すなわちデータ・コンシューマ)は、クライアント110、112および114を利用して、サーバ104およびサーバ106によってホストされたまたは保護されたデータ・アセットにアクセスすることができる。サーバ104およびサーバ106によってホストされたまたは保護されたデータ・アセットは、個人を個人として特定することができ、その個人による明確な同意なしにはアクセスすることができない機密データ(例えば名前、住所、電話番号、社会保障番号、クレジット・カード番号など)を含む、任意のタイプのデータ・セット(例えば取引データ、マーケティング・データ、金融データまたは健康管理データなど)である可能性がある。
【0018】
ストレージ108は、任意のタイプのデータを、構造化されたフォーマットまたは構造化されていないフォーマットで格納することができるネットワーク・ストレージ・デバイスである。さらに、ストレージ108は、複数のネットワーク・ストレージ・デバイスを表すことがある。さらに、ストレージ108は、サーバ104およびサーバ106によって保護された異なる複数のデータ・アセットを格納することができる。さらに、ストレージ108は例えば、クライアント・デバイス・ユーザに関連したユーザ名、パスワードおよび生体測定テンプレートを含むことがある認証またはクレデンシャル・データなどの他のタイプのデータを格納することができる。
【0019】
さらに、ネットワーク・データ処理システム100は、任意の数の追加のサーバ、クライアント、ストレージ・デバイスおよび示されていない他のデバイスを含んでいてもよいことに留意すべきである。ネットワーク・データ処理システム100内に位置するプログラム・コードは、コンピュータ可読ストレージ媒体または一組のコンピュータ可読ストレージ媒体上に格納されていてもよく、使用のためにコンピュータまたは他のデータ処理デバイスにダウンロードされてもよい。例えば、サーバ104上のコンピュータ可読ストレージ媒体にプログラム・コードが格納されていてもよく、クライアント110上で使用するためにネットワーク102を介してクライアント110にダウンロードされてもよい。
【0020】
図示の例では、ネットワーク・データ処理システム100を、例えばインターネット、イントラネット、ワイド・エリア・ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、電気通信ネットワークまたはこれらの任意の組合せなどのいくつかの異なるタイプの通信ネットワークとして実施することができる。図1は、単なる例であることが意図されており、図1が、異なる例示的な実施形態のアーキテクチャを限定することは意図されていない。
【0021】
本明細書で使用されているとおり、複数の項目に関して使用されるとき、「いくつかの」は、複数の項目のうちの1つまたは複数を意味する。例えば、「いくつかの異なるタイプの通信ネットワーク」は、1つまたは複数の異なるタイプの通信ネットワークのである。同様に、複数の項目に関して使用されるとき、「一組の」は、それらの項目のうちの1つまたは複数を意味する。
【0022】
さらに、項目のリストとともに使用されるとき、用語「~の少なくとも1つ」は、リストされた項目のうちの1つまたは複数の項目の異なる組合せを使用することができること意味し、リストの中のそれぞれの項目の1つだけが必要なことがある。言い換えると、「~の少なくとも1つ」は、リストからの項目の任意の組合せおよび項目の任意の数を使用することができるが、リストの中の項目の全てが必要とされるわけではない。項目は、特定の物体、ものまたはカテゴリであることができる。
【0023】
例えば、限定はされないが、「項目A、項目Bまたは項目Cの少なくとも1つ」は、項目A、項目Aおよび項目B、または項目Bを含むことができる。この例は、項目A、項目B、ならびに項目C、または項目Bおよび項目Cを含むこともできる。当然、これらの項目の任意の組合せが存在することができる。いくつかの例示的ないくつかの例では、「~の少なくとも1つ」が、例えば、限定はされないが、2つの項目A、1つの項目B、および10個の項目C、4つの項目Bおよび7つの項目C、または他の適当な組合せであることができる。
【0024】
次に図2に参照すると、例示的な一実施形態によるデータ処理システムの図が示されている。データ処理システム200は、例示的な実施形態のデータ・プライバシー・プロセスを実施するコンピュータ可読プログラム・コードまたは命令をその中に置くことができる、図1のサーバ104などのコンピュータの一例である。この例では、データ処理システム200が通信ファブリック202を含み、通信ファブリック202は、プロセッサ・ユニット204、メモリ206、永続性ストレージ208、通信ユニット210、入力/出力(I/O)ユニット212およびディスプレイ214の間の通信を提供する。
【0025】
プロセッサ・ユニット204は、メモリ206にロードされていることがあるソフトウェア・アプリケーションおよびプログラムに関する命令を実行する役目を果たす。特定の実装に応じて、プロセッサ・ユニット204は、1つまたは複数のハードウェア・プロセッサ・デバイスからなる一組のハードウェア・プロセッサ・デバイスであってもよく、またはマルチコア・プロセッサであってもよい。
【0026】
メモリ206および永続性ストレージ208はストレージ・デバイス216の例である。本明細書で使用されるとき、コンピュータ可読ストレージ・デバイスまたはコンピュータ可読ストレージ媒体は、例えば、限定はされないが、データ、機能する形態のコンピュータ可読プログラム・コードもしくは他の適当な情報またはこれらの組合せなどの情報を、一時的にまたは永続的に格納することができる任意のハードウェアである。さらに、コンピュータ可読ストレージ・デバイスまたはコンピュータ可読ストレージ媒体は、一過性の信号などの伝搬媒体を排除する。さらに、コンピュータ可読ストレージ・デバイスまたはコンピュータ可読ストレージ媒体は、一組のコンピュータ可読ストレージ・デバイスまたは一組のコンピュータ可読格納媒体を表すことがある。これらの例では、メモリ206が例えば、ランダム・アクセス・メモリ(RAM)であってもよく、またはフラッシュ・メモリなど他の適当な揮発性もしくは不揮発性のストレージ・デバイスであってもよい。特定の実装に応じて、永続性ストレージ208はさまざまな形態をとることができる。例えば、永続性ストレージ208は1つまたは複数のデバイスを含んでいてもよい。例えば、永続性ストレージ208は、ディスク・ドライブ、ソリッドステート・ドライブ、書込み可能な光ディスク、再書込み可能な磁気テープまたはこれらのある組合せであってもよい。永続性ストレージ208によって使用される媒体は取外し可能であってもよい。例えば、永続性ストレージ208に対して取外し可能なハード・ドライブが使用されてもよい。
【0027】
この例では、永続性ストレージ208がデータ分布保存器(data distribution preserver)218を格納している。しかしながら、データ分布保存器218は永続性ストレージ208内にあるものとして示されているが、例示的な代替実施形態では、データ分布保存器218がデータ処理システム200の別個のコンポーネントであってもよいことに留意すべきである。例えば、データ分布保存器218は、通信ファブリック202に結合されたハードウェア・コンポーネントであってもよく、またはハードウェア・コンポーネントとソフトウェア・コンポーネントの組合せであってもよい。例示的な別の代替実施形態では、データ分布保存器218の第1の一組のコンポーネントがデータ処理システム200上に置かれていてもよく、データ分布保存器218の第2の一組のコンポーネントが、例えば図1のサーバ106などの第2のデータ処理システム上に置かれていてもよい。
【0028】
データ分布保存器218は、リクエストしているデータ・コンシューマへのデータ配布中にデータ・アセットの機密データをリアル・タイムで動的に変換するプロセスを制御する。データ分布保存器218は、匿名化操作中に、出力データ分布の変換された値を入力データに対する所望の程度に保存する、リクエストされたデータに対する特定の変換を達成する。データ分布保存器218は、この匿名化操作を、パラメータ化された損失関数を含むオートエンコーダを使用してポリシーに基づいて宣言的に制御する。
【0029】
その結果、データ処理システム200は、データ処理システム200内のデータ分布保存器218が、元のデータ・アセットの分布を保存しつつ、データ・アセットの中の機密データを変換することを可能にする専用コンピュータ・システムとして動作する。特に、データ分布保存器218は、データ処理システム200を、データ分布保存器218を持たない現在使用可能な一般的なコンピュータ・システムと比べて専用のコンピュータ・システムに変える。
【0030】
この例では、通信ユニット210が、図1のネットワーク102などのネットワークを介した他のコンピュータ、データ処理システムおよびデバイスとの通信を提供する。通信ユニット210は、物理通信リンクと無線通信リンクの両方を使用することによって通信を提供することができる。物理通信リンクは、例えばワイヤ、ケーブル、ユニバーサル・シリアル・バスまたは他の物理技術を利用して、データ処理システム200用の物理通信リンクを確立することができる。無線通信リンクは、例えば短波、高周波、超高周波、マイクロ波、ワイヤレス・フィデリティ(wireless fidelity)(Wi-Fi(登録商標))、Bluetooth(登録商標)技術、グローバル・システム・フォー・モバイル・コミュニケーションズ(global system for mobile communications)(GSM)、符号分割多重アクセス(CDMA)、第2世代(2G)、第3世代(3G)、第4世代(4G)、4Gロング・ターム・レボリューション(Long Term Evolution)(LTE)、LTEアドバンスト(LTE Advanced)、第5世代(5G)または他の無線通信技術もしくは規格を利用して、データ処理システム200用の無線通信リンクを確立することができる。
【0031】
入力/出力ユニット212は、データ処理システム200に接続されていることがある他のデバイスとのデータの入力および出力を可能にする。例えば、入力/出力ユニット212は、キーパッド、キーボード、マウス、マイクロフォンもしくは他の適当な入力デバイスまたはこれらの組合せを介したユーザ入力のための接続を提供することができる。ディスプレイ214は、ユーザに対して情報を表示する機構を提供する。例えばユーザ・インタフェースを通してオンスクリーン選択を実行することまたはデータを入力することを可能にするために、ディスプレイ214はタッチ・スクリーン機能を含んでいてもよい。
【0032】
通信ファブリック202を通してプロセッサ・ユニット204と通信するストレージ・デバイス216内に、オペレーティング・システム、アプリケーションもしくはプログラムまたはこれらの組合せのための命令が置かれていてもよい。説明のためのこの例では、これらの命令が、機能する形態で永続性ストレージ208上にある。プロセッサ・ユニット204によって実行するために、これらの命令をメモリ206にロードすることができる。プロセッサ・ユニット204は、メモリ206などのメモリ内に位置していることがあるコンピュータ実施命令を使用して、異なる実施形態のプロセスを実行することができる。これらのプログラム命令は、プログラム・コード、コンピュータ使用可能プログラム・コードまたはコンピュータ可読プログラム・コードと呼ばれ、プロセッサ・ユニット204内のプロセッサによって読み取られ、実行されることがある。異なる実施形態では、メモリ206または永続性ストレージ208などの異なるコンピュータ可読物理ストレージ・デバイス上に、これらのプログラム命令が実装されていることがある。
【0033】
プログラム・コード220は、選択的に取外し可能なコンピュータ可読媒体222上に機能する形態で置かれており、プログラム・コード220は、プロセッサ・ユニット204によって実行するために、データ処理システム200にロードされてもよく、またはデータ処理システム200に転送されてもよい。プログラム・コード220およびコンピュータ可読媒体222はコンピュータ・プログラム製品224を形成する。一例では、コンピュータ可読媒体222が、コンピュータ可読ストレージ媒体226またはコンピュータ可読信号媒体228であってもよい。
【0034】
例示的なこれらの例では、コンピュータ可読ストレージ媒体226が、プログラム・コード220を伝搬または伝送する媒体ではなく、プログラム・コード220を格納するために使用される物理的なまたは有形のストレージ・デバイスである。コンピュータ可読ストレージ媒体226は例えば、永続性ストレージ208の部分であるハード・ドライブなどのストレージ・デバイスに転送するために永続性ストレージ208の部分であるドライブまたは他のデバイス内に挿入または配置された光学または磁気ディスクを含むことがある。コンピュータ可読ストレージ媒体226は、データ処理システム200に接続されたハード・ドライブ、サム・ドライブ(thumb drive)またはフラッシュ・メモリなどの永続性ストレージの形態をとることがある。
【0035】
あるいは、プログラム・コード220を、コンピュータ可読信号媒体228を使用してデータ処理システム200に転送することもできる。コンピュータ可読信号媒体228は例えば、プログラム・コード220を含む被伝搬データ信号であってもよい。例えば、コンピュータ可読信号媒体228は、電磁信号、光学信号または他の適当なタイプの信号であってもよい。これらの信号は、無線通信リンク、光ファイバ・ケーブル、同軸ケーブル、ワイヤまたは他の適当なタイプの通信リンクなどの通信リンクを介して伝送されてもよい。
【0036】
さらに、本明細書で使用されるとき、「コンピュータ可読媒体222」は単数または複数でありうる。例えば、プログラム・コード220は、単一のストレージ・デバイスまたはシステムの形態のコンピュータ可読媒体222に置くことができる。別の例では、プログラム・コード220を、多数のデータ処理システム内に分散したコンピュータ可読媒体222に置くことができる。言い換えると、プログラム・コード220の中の一部の命令を、1つのデータ処理システム内に置くことができ、プログラム・コード220の中の他の命令を、1つまたは複数の他のデータ処理システム内に置くことができる。例えば、プログラム・コード220の部分を、サーバ・コンピュータ内のコンピュータ可読媒体222の中に置くことができ、プログラム・コード220の別の部分を、一組のクライアント・コンピュータ内に置かれたコンピュータ可読媒体222の中に置くことができる。
【0037】
データ処理システム200の示された異なるコンポーネントが、異なる実施形態を実施することができる方式のアーキテクチャを限定することは意図されていない。いくつかの例示的な例では、コンポーネントの1つまたは複数を別のコンポーネントに組み込むことができ、または、さもなければ、コンポーネントの1つまたは複数が別のコンポーネントの一部分を形成することができる。例えば、例示的ないくつかの例では、メモリ206またはその部分を、プロセッサ・ユニット204に組み込むことができる。それらの異なる例示的な実施形態は、データ処理システム200に関して説明したコンポーネントの他にコンポーネントを含む、またはデータ処理システム200に関して説明したコンポーネントの代わりにコンポーネントを含む、データ処理システム内で実施することができる。図2に示された他のコンポーネントは、示された説明のための例とは異なるものとすることができる。それらの異なる実施形態は、プログラム・コード220を実行することができる任意のハードウェア・デバイスまたはシステムを使用して実施することができる。
【0038】
別の例では、通信ファブリック202を実施するためにバス・システムが使用されてもよく、そのバス・システムは、システム・バスまたは入力/出力バスなどの1つまたは複数のバスから構成されたものであってもよい。当然ながら、このバス・システムは、バス・システムに接続された異なるコンポーネントまたはデバイス間のデータの転送を提供する適当な任意のタイプのアーキテクチャを使用して実施することができる。
【0039】
データ・アクセスがポリシーによって制御される動的データ配布では、配布層を通してデータにアクセスしているそれぞれのデータ・コンシューマ(例えばユーザ・コンテキストではユーザ)が、その特定のデータ・コンシューマには見える、そのデータの値の適用可能な異なる変換に遭遇しうることが明らかである。ストレージおよび計算リソース・コストに関して、異なるデータ・コンシューマごとに、知られているあらゆるデータ・アセットをアプリオリに前処理することは法外に高いコストになる。その結果、データ・アセットが生データ・アセットの形態にあり、データ・アクセスのそれぞれのインタンスで、システムが、必要なデータ変換を可能な限り速く実行する、システムが求められている。このシステムは、データの行に対してステートレスなやり方を使用し、そのためストリーミングを使用することができる高速変換法を必要とするであろう。さらに、大部分のデータ消費使用ケースでは、データ有用性のニーズとデータ・プライバシーのニーズの間のトレードオフを決定するために、損失関数に対するパラメトリックな手法が存在すべきである。損失関数に対するこのパラメトリックな手法は、データ変換の実際の操作に加えて存在する必要があるさらに別の機構を必要とする。しかしながら、この手法は現在、データ変換システムにおいて存在していない。
【0040】
データ変換を実行する現在のシステムは、トークン化(tokenization)、リダクション(redaction)、難読化(obfuscation)など、コストがかかる古典的決定論的な(deterministic)アルゴリズム的変換法に依存している。これらの方法の各々は、特定の変換タイプの実装を必要とする。これらの変換タイプの一部は、高度にステートフル(stateful)であり、データの最初の出力行(すなわちタプル)を生成しようとする前にソース・データ・アセットの完全な処理を必要とし、これがデータ・ストリーミング使用ケースを妨げる。
【0041】
データ変換出力の分布を保存することを試みるシステムはわずかである。さらに、これらのシステムは、行データの完全性を犠牲にし、単列ベースであることが知られている。例示的な実施形態は、データ値分布の必要な変動性を達成する損失関数の調整可能なパラメータ係数を使用した必要なデータ物理的変換を生成する、訓練されたオートエンコーダを利用する。オートエンコーダは、教師なし学習に使用される人工ニューラル・ネットワークの一型である。言い換えると、オートエンコーダは、学習を可能にするのにラベル付き入力データを必要としない。通常、オートエンコーダは、入力層、データ処理を実行する1つまたは複数の内部隠れ層、および出力層を有する。オートエンコーダの訓練はバックプロパゲーションによって実行される。
【0042】
変換するデータ・アセットの中のデータのそれぞれの行に関して、例示的な実施形態は、変換を必要とするデータ・アセットの中の関心のある列(例えば属性)を、例示的な実施形態の損失関数を含むオートエンコーダへの入力として選択する。例示的な実施形態は、それらの列を、1つまたは複数のポリシーに基づいて選択する。ポリシーは例えば、アクセスをリクエストしているときの地理的位置、アクセス・リクエストの時刻、アクセスをリクエストしているときの役割などの特定のコンテキストで特定のデータ・コンシューマ(例えばユーザ)がこのような情報にアクセスする前に変換する必要がある、名前、給与、住所、社会保障番号、クレジット・カード番号または他のタイプの機密情報などの関心のある列を含む。ポリシーの特定の例は、例えば、「データ・アセットが機密であり、データ・アセットが名前を含み、データ・アセットが給与を含む場合、変換((名前、給与の)擬似匿名化)が分布0.75を保存すること」である。この特定の例は、配布時に、リクエストされたデータ・アセットの値の分布をポリシーに基づく規定された程度に保存する、ポリシー施行決定およびリクエストされたデータ・アセットの後続の変換を駆動する可能な一組のポリシーのサンプル例を示す。
【0043】
ポリシーはさらに、関心のある列に対する正規分布、対数正規分布またはベータ分布などの最良適合(best fitting)統計分布を、平均、最小値、最大値などの最良適合統計分布のパラメータとともに含むことがある。さらに、ポリシーは、関心のある列内のデータ・アセット入力とデータ・アセット出力との間の分散の量を評価するパラメータ係数「ρ」(ロー)、データ・アセット入力とデータ・アセット出力との間の関心のある複数の列の中の1つの行内の分散の量を評価するパラメータ係数「φ」(ファイ)、およびデータ・アセット入力とデータ・アセット出力との間のデータ・アセット全体にわたる関心のある列の平均の分散の量を評価するパラメータ係数「τ」(タウ)など、データ・コンシューマのデータ有用性のニーズと個人のデータ・プライバシーのニーズのバランスをとるための損失関数のパラメータ係数を含むことができる。データ・コンシューマに対する高いデータ有用性は、元のデータ値に近い値を有するデータを意味する。個人に対する高いデータ・プライバシーは、いかなる機密情報を露出させないデータを意味する。
【0044】
例示的な実施形態は、特定のデータ・アセット、データ・アセットの中の関連のあるデータ・クラスを含む関心のある特定の列、データ・アセットの中の関心のある列のグループまたは関心のある列の中の特定の行のためにオートエンコーダのライブラリからオートエンコーダを選択することができることに留意すべきである。例示的な実施形態は、オートエンコーダ・ライブラリの2次元配置を利用することができる。例えば、第1の次元は、関連データ・クラスを含む関心のある列に基づくことができ、第2の次元は、データ有用性のニーズ対データ・プライバシーのニーズに基づくことができる。第2の次元は、例えば、ポリシーによって指示されたデータ・アセット出力に対する値分布保存のX%などの予め定められた程度への値分布保存の深さの選択に対応する損失関数の粗い値であることができる。
【0045】
例示的な実施形態は、データ・アセットの所望のタイプまたはカテゴリに基づいて、使用可能な全てのデータ・アセットであるのかまたはデータ・アセットのサブセットであるのかにかかわらず、任意のデータ・アセット入力からオートエンコーダを訓練することができる。さらに、損失関数パラメータ係数ローは、スライディング・スケール上にあることに留意すべきである。例えば、ローの値がゼロである場合、オートエンコーダは、損失関数が、データ・アセットの出力がデータ・アセットの入力にどれくらい近いのかを考慮することをインセンティブ化されていないことから、関心のある列の行セルに対してランダム値を生成するため、完全なデータ・プライバシーが存在し、データ有用性は存在しない。反対に、ローの値が可能な限り大きい場合、データ・アセット出力がデータ・アセット入力と同様になることから、データ・プライバシーも完全なデータ有用性も存在しない。さらに、損失関数パラメータ係数ファイもスライディング・スケール上にある。例えば、ファイの値は、データ・アセット入力における関心のある2つの列間の分散の量を、データ・アセット出力における関心のある同じ2つの列間の分散の量に対して制御する。この比較は、関心のある列間の依存性を捉える。
【0046】
データ・プライバシーのニーズとデータ有用性のニーズとの間のバランスを制御するため、例示的な実施形態は、損失関数パラメータ係数ローおよびファイを変化させることによって、古典的または標準的な決定論的変換法を利用して異なるデータ・アセット出力を観察する。この古典的決定論的変換法は、オートエンコーダを訓練する際にグラウンド・トルースを提供する。能動オートエンコーダ学習は、規定された損失関数しきい値と比較したときの強化またはペナルティとしての計算された損失関数値のバックプロパゲーションに基づく。例えば、規定されたしきい値よりも大きい計算された損失関数値は強化として処理され、規定されたしきい値よりも小さい計算された損失関数値はペナルティとして処理される。
【0047】
さらに、例示的な実施形態は、入力データ・アセットのエントロピーを計算することによって、機密データの暴露を最小化する(例えばリンク不能性(unlinkability))。エントロピーは、入力データ・アセットの値に含まれる不確かさの量を定量化する。例示的な実施形態はさらに、入力データ・アセットに対するエントロピーしきい値を決定する。さらに、例示的な実施形態は、エントロピーしきい値をさらに含むようにポリシーを規定することができる。例示的な実施形態は、データ・アセットのエントロピーに基づいてポリシー施行決定を生成することができる。さらに、例示的な実施形態は、変換変化(transformation change)に関するデータ・アセットの感度を含むようにポリシーを規定することができる。例示的な実施形態は、変換変化に関するデータ・アセットの感度に基づいてポリシー施行決定を生成することができる。
【0048】
例示的な実施形態は、エントロピーしきい値および変換に関するデータ・アセットの感度を含むポリシーに基づいて値の元の分布を維持しつつ、関心のある列の行セルに対する匿名化されたデータを生成する。さらに、データ・アセットがあるレベルの感度を有する場合、例示的な実施形態は、データ・プライバシーの増大を提供するために分布保存変換を実行している間に、ラプラシアン・ノイズ関数を利用してラプラシアン・ノイズを追加する。ラプラシアン・ノイズの追加によって引き起こされる分布の変更に留意することによって、データ・コンシューマまたはユーザは、変換されたデータを依然として利用することができる。ラプラシアン分布関数からのノイズをデータ・アセット出力(すなわち多数の行を横切る関心のある列の匿名化されたデータ値)に追加することは、分布推論(distribution inference)を防ぐためのデータ・アセット出力に対する差分プライバシー調整(differential privacy adjustment)を提供する。差分プライバシーは、データ・アセットの中の個人に対応する機密情報を保留しながら、データ・アセット内のパターンを記述することによって、データ・アセットに関する情報を共有することを可能にする。
【0049】
例示的な実施形態は、本明細書においてデータ・アセットとして知られている長方形のデータ・セットを利用する。例示的な実施形態は、1つまたは複数のポリシーおよびデータ・アセットにアクセスしようとしている特定のデータ・コンシューマに基づいて、特定の変換に特定のデータ・アセットを割り当てることができる。例示的な実施形態は、受け取ったそれぞれのデータ・アセットをプロファイリングして、それぞれのデータ・アセットに対応するデータ・クラスを検出する。ポリシーは、特定のアクセス・リクエストに対して必要な順序付けされた一組の変換を提供する。これらの変換は、特定のデータ・アセットの中の関連データ・クラスおよびシステム内の現在のポリシーに基づく。分布保存の深さは、損失関数の係数タウをパラメータ化することによって達成される。例示的な実施形態は、擬似匿名化変換だけを実行する。しかしながら、例示的な代替実施形態は、グループ列オートエンコーダを使用せずに、単一列オートエンコーダを使用して、他の変換タイプを実行することができる。
【0050】
したがって、例示的な実施形態は、データ・アセットの値の分布を規定された程度に保存しつつ、リクエストされたデータ・アセットの機密データを変換することを用いて技術的課題を解決する1つまたは複数の技術的解決策を提供する。その結果、これらの1つまたは複数の技術的解決策は、データ・プライバシーの分野における技術的効果および実用的用途を提供する。
【0051】
次に図3を参照すると、例示的な一実施形態による、データ発見、データ分類ならびにオートエンコーダ・ベース訓練(base training)およびライブラリ保守プロセスの一例を示す図が示されている。データ発見、データ分類ならびにオートエンコーダ・ベース訓練およびライブラリ保守プロセス300は、図1のサーバ104または図2のデータ処理システム200などのコンピュータで実施することができる。
【0052】
この例では、データ発見、データ分類ならびにオートエンコーダ・ベース訓練およびライブラリ保守プロセス300が、生の管理されていない(uncurated)入力データ・アセット302、データ・プロファイラ304、データ・アセット・カタログ306、データ・アセット・プロファイルおよびデータ・クラス最良適合超平面(best fit hyperplane)ストレージ308、実データ・ストレージ310、およびオートエンコーダのライブラリ312を含む。しかしながら、データ発見、データ分類ならびにオートエンコーダ・ベース訓練およびライブラリ保守プロセス300は、単なる例であることが意図されており、例示的な実施形態に対する限定を意図したものではないことに留意すべきである。言い換えると、データ発見、データ分類ならびにオートエンコーダ・ベース訓練およびライブラリ保守プロセス300は、図示のコンポーネントよりも多数のまたは少数のコンポーネントを含むことができる。例えば、1つのコンポーネントを2つ以上のコンポーネントに分割すること、2つ以上のコンポーネントを結合して1つのコンポーネントにすること、または示されていないコンポーネントを追加することなどができる。
【0053】
生の管理されていない入力データ・アセット302は、列および行からなる長方形の(例えばリレーショナル)データ・セットである。さらに、生の管理されていない入力データ・アセット302は、個人を個人として特定することができる、例えば名前、住所、電話番号、社会保障番号、給与などの機密データを含む、任意のタイプのデータ・セットを表すことができる。生の管理されていない入力データ・アセット302はデータ・プロファイラ304に入力される。データ・プロファイラ304は、生の管理されていない入力データ・アセット302内の機密情報を含む関心のあるデータ・クラスを検出することができる、任意のタイプのデータ・プロファイラを表すことができる。
【0054】
例えば図2のデータ分布保存器218などのデータ分布保存器が、入力データ・アセット302をデータ・アセット・カタログ306に登録し、入力データ・アセット302が新たなデータ・アセットであると判定する。データ分布保存器はさらに、全てのデータ・アセット・プロファイルおよびそれらの対応するデータ・クラス最良適合超平面を、データ・アセット・プロファイルおよびデータ・クラス最良適合超平面ストレージ308に格納する。さらに、314で、データ分布保存器は、オートエンコーダのライブラリ312に、その新たなデータ・アセット用の1つまたは複数のオートエンコーダからなる一組のオートエンコーダが存在するかどうかを判定する。
【0055】
オートエンコーダのライブラリ312に、現在、その新たなデータ・アセット用の一組のオートエンコーダが存在していないとデータ分布保存器が判定した場合、316で、データ分布保存器は、その新たなデータ・アセット用の新たな一組のオートエンコーダを生成する。さらに、318で、データ分布保存器は、その新たなデータ・アセット(すなわち生の管理されていない入力データ・アセット302)をプロファイリングしながら、検出された関心のあるデータ・クラスに対する、1つまたは複数の最良適合超平面からなる一組の最良適合超平面を決定する。さらに、320で、データ分布保存器は、実データ・ストレージ310から、その新たなデータ・アセットの行ごと(row-by-row)のデータ読取りプロセスを実行する。さらに、322で、データ分布保存器は、その新たなデータ・アセットのデータ・アセット・レベルで、一定の適応分布保存しきい値または構成された分布保存しきい値を用いて、関心のあるデータ・クラスに対する決定された一組の最良適合超平面、行ごとのデータ読取り、および保存されたデータ・クラス・ベースの履歴変換324を入力として使用して、施行をシミュレートする。オートエンコーダのライブラリ312に、現在、その新たなデータ・アセット用の一組のオートエンコーダが存在するとデータ分布保存器が判定した場合、データ分布保存器は、その新たなデータ・アセットのデータ・アセット・レベルで、一定の適応分布保存しきい値または構成された分布保存しきい値を用いて、行ごとのデータ読取り、および保存されたデータ・クラス・ベースの履歴変換324を入力として使用して、施行をシミュレートする。
【0056】
326で、データ分布保存器は、その新たなデータ・アセットの通常のまたは古典的な決定論的変換、値マッピング、および行セル値埋込み(row cell value embeddings)を使用したラベリングを実行する。328で、データ分布保存器はさらに、データ・クラス埋込みを使用した実際の行セル・レベル逆方向マッピングを実行する。データ分布保存器は、この実際の行セル・レベル逆方向マッピングをマップ・ストア330に格納する。
【0057】
332で、データ分布保存器は、その新たなデータ・アセット用の新たな一組のオートエンコーダのベース訓練または既存の1つもしくは複数のオートエンコーダの追加の訓練のうちの少なくとも一方を実行して、オートエンコーダ訓練セット334を形成する。データ分布保存器は、オートエンコーダ訓練セット334を利用して、オートエンコーダのライブラリ312の中のオートエンコーダを訓練する。オートエンコーダのライブラリ312は異なる複数のオートエンコーダを含む。例えば、オートエンコーダのライブラリ312は、1つのデータ・アセット用のオートエンコーダのグループ、1つのデータ・アセット用の1つのオートエンコーダ、データ・アセット内の関心のある1つのデータ・クラス用の1つのオートエンコーダ、データ・アセット内の特定の1つの行または変換タイプ用の1つのオートエンコーダなどを含むことができる。
【0058】
次に図4を参照すると、例示的な一実施形態による、ポリシー施行を用いた動的データ配布および能動オートエンコーダ訓練プロセスの一例を示す図が示されている。ポリシー施行(policy enforcement)を用いた動的データ配布および能動オートエンコーダ訓練プロセス400は、図1のサーバ104または図2のデータ処理システム200などのコンピュータで実施することができる。
【0059】
この例では、ポリシー施行を用いた動的データ配布および能動オートエンコーダ訓練プロセス400が、ユーザ402、データ配布/アクセス層404、以前にプロファイリングされ、管理された(curated)・データ・アセット(data asset)406、ポリシー施行点(policy enforcement point)408、ポリシー決定点(policy decision point)410、実データ・ストレージ412、およびオートエンコーダのライブラリ414を含む。しかしながら、ポリシー施行を用いた動的データ配布および能動オートエンコーダ訓練プロセス400は、単なる例であることが意図されており、例示的な実施形態に対する限定を意図したものではないことに留意すべきである。言い換えると、ポリシー施行を用いた動的データ配布および能動オートエンコーダ訓練プロセス400は、図示のコンポーネントよりも多数のまたは少数のコンポーネントを含むことができる。例えば、1つのコンポーネントを2つ以上のコンポーネントに分割すること、2つ以上のコンポーネントを結合して1つのコンポーネントにすること、または示されていないコンポーネントを追加することなどができる。
【0060】
ユーザ402はデータ・コンシューマである。ユーザ402は例えば人間、プロセス、アプリケーション、サービスまたはシステムなどであることができる。ユーザ402は、入力データ・アセット418に対するデータ配布リクエスト416をデータ配布/アクセス層404に提出する。ユーザ402は、特定のユーザ・コンテキストを有するデータ配布リクエスト416を提出することができる。ユーザ・コンテキストは例えば、データ配布リクエスト416を提出した提出元の位置、ユーザ402がデータ配布リクエスト416を提出した曜日および時刻などとすることができる。データ配布/アクセス層404は、データ配布リクエスト416をポリシー施行点408に送る。
【0061】
ポリシー施行点408は、データ配布リクエスト416に対応するポリシー施行決定リクエスト、ユーザ、およびデータ配布リクエスト416のユーザ・コンテキストをポリシー決定点410に送る。ポリシー決定点410は、データ配布リクエスト416、ユーザ、およびデータ配布リクエスト416のユーザ・コンテキストに対応する一組のポリシーを選択する。ポリシー決定点410は、選択されたポリシーに基づいて、データ・クラス・ベースのポリシー施行決定を生成する。ポリシー決定点410は、データ・クラス・ベースのポリシー施行決定をポリシー施行点408に送る。420で、ポリシー施行点408は、データ・クラス・ベースのポリシー施行決定を保存する。
【0062】
422で、例えば図2のデータ分布保存器218などのデータ分布保存器が、入力データ・アセット418用の一組のオートエンコーダをオートエンコーダのライブラリ414から選択する。422で、データ分布保存器は、一組のオートエンコーダを選択しながら、入力データ・アセット418を参照として利用して、実データ・ストレージ412から実データを取り出す。424で、データ分布保存器は、行バッファの中の行の行中心の処理(row-centric processing)のために、選択された一組のオートエンコーダを利用する。426で、データ分布保存器は、損失関数を利用して、行バッファの中の行に対して損失関数値計算を実行する。さらに、428で、データ分布保存器は、損失関数値を、データ・クラス・ベースのポリシー施行決定に基づく分布保存しきい値と比較する。この分布保存しきい値は、適応可能なしきい値または構成されたしきい値である。
【0063】
430で、データ分布保存器は、計算された損失関数値が分布保存しきい値よりも大きいかどうかに関する判定を実施する。計算された損失関数値が分布保存しきい値よりも大きいとデータ分布保存器が判定した場合、データ分布保存器は、432で、行バッファの中の行を、データ・クラス値埋込みを使用した実際の行セル値マッピングを用いて処理する。データ分布保存器は、実際の行セル値マッピングをマップ・ストア434から取り出す。データ分布保存器は、432での行バッファの中の行の処理を、データ配布リクエスト416に対するデータ配布応答として利用する。データ分布保存器は、このデータ配布応答をデータ配布/アクセス層404に送る。データ配布/アクセス層404は次いで、このデータ配布応答をユーザ402に送る。その代わりに、データ分布保存器は、任意選択で、出力データ・アセット436を生成することもできる。
【0064】
計算された損失関数値が分布保存しきい値以下であるとデータ分布保存器が判定した場合、データ分布保存器は、438で、行バッファからのランダム行サンプルのためにサンプラを利用する。さらに、440で、データ分布保存器は、行バッファからのランダム行サンプルを、オートエンコーダの過剰適合(overfitting)を防ぐためのオートエンコーダ正則化(regularization)のためのしきい値未満ペナルティ・バッファ(under-threshold penalty buffer)に保存する。計算された損失関数値が分布保存しきい値よりも大きかった場合、データ分布保存器は、442で、行バッファからのランダム行サンプルをしきい値超過強化バッファに保存する。
【0065】
データ分布保存器は、444で、しきい値未満ペナルティ・バッファおよびしきい値超過ペナルティ・バッファを利用して、行バッファからの逆方向行セル値マッピング埋込みを使用した通常のまたは古典的な決定論的変換を用いたラベリングを実行する。446で、データ分布保存器は、通常の決定論的変換を用いたラベリングを利用して、小さな能動学習オートエンコーダ訓練セットを生成する。訓練セットが小さいほど、オートエンコーダを訓練するのに要する時間は短くなる。データ分布保存器は、能動学習オートエンコーダ訓練セットを利用して、オートエンコーダのライブラリ414の中のオートエンコーダを訓練する。
【0066】
次に図5を参照すると、例示的な一実施形態による、損失関数を含むオートエンコーダの特定の例を示す図が示されている。損失関数を含むオートエンコーダ500は、例えば図4のオートエンコーダ411とすることができる。損失関数を含むオートエンコーダ500は、オートエンコーダ502および損失関数504を含む。オートエンコーダ502および損失関数504は、オートエンコーダおよび損失関数の単なる特定の例であることが意図されており、例示的な実施形態に対する限定を意図したものではないことに留意すべきである。言い換えると、例示的な実施形態は、異なるオートエンコーダおよび損失関数を利用することができる。
【0067】
例えば図4の入力データ・アセット418などのデータ・アセットの中のデータのそれぞれの行を変換するため、例えば図2のデータ分布保存器218などのデータ分布保存器が、変換を必要とするデータ・アセットの中の機密データを含む関心のある列を、損失関数504を含むオートエンコーダ502への入力として選択する。オートエンコーダ502の層数およびボトルネックの深さおよび損失関数504が、データのそれぞれの行がどのように変換されるのかを決定する。損失関数504はさらに、関心のある列の各々の分散測度を決定する。対応するそれぞれの行に対して実行されるとき、オートエンコーダ502は、入力データ・アセットの値の元の分布を出力データ・アセットに保存する。
【0068】
一組のオートエンコーダは、データ・アセット列のタイプのいくつかの組合せをカバーすることができることに留意すべきである。さらに、損失関数パラメータ係数は可変性を提供し、ポリシーによって制御することができる。例えば、入力データ・アセットと出力データ・アセットの間の列内の分散を評価する特定のパラメータ係数の値がゼロ(0)でないとき、オートエンコーダ502はプロジェクション列を考慮している。データ分布保存器は、正準の列を決定し、オートエンコーダの全ての組合せをカバーすることができるオートエンコーダを生成する必要がある。
【0069】
損失関数(LF)504は、重み付き関数として配置された3つのパラメータ係数を有する。データ・アセット分散に特定の重みは、分布保存の深さの可変性を提供する。損失関数のパラメータ係数ロー(ρ)は、データ・アセットを横切る列特定の分散を評価する。言い換えると、ローは、データ・アセット全体にわたる関連データ・クラスを含む関心のある列の平均間の距離を最小化する。損失関数のパラメータ係数ファイ(φ)は、行内/列間特定の分散を評価する。言い換えると、ファイは、データの特定の行内の関心のある列間の距離を最小化する。損失関数のパラメータ係数タウ(τ)は、データ・アセット特有の分散を評価する。言い換えると、タウは、データ・アセットの最良適合超平面までの出力行の直交距離を最小化する。データ分布保存器は、データ・アセットの関連データ・クラスに基づいて超平面を生成する。したがって、LF=ρ(関心のある列内の分散)+φ(関心のある行内列の距離)+τ(最良適合超平面からの直交距離)である。損失関数504は、実際の行値から擬似行値への計算された前マッピングまたは後マッピングであることができることに留意すべきである。
【0070】
次に図6を参照すると、例示的な一実施形態による、データ分類およびオートエンコーダ・ベース訓練のプロセスを示す流れ図が示されている。図6に示されたプロセスは、例えば図1のサーバ104または図2のデータ処理システム200などのコンピュータで実施することができる。例えば、図6に示されたプロセスは、図2のデータ分布保存器218で実施することができる。
【0071】
このプロセスは、コンピュータがデータ・アセットを入力として受け取ったときに始まる(ステップ602)。コンピュータは、データ・プロファイラを使用して、データ・アセットの実データをプロファイリングする(ステップ604)。コンピュータは、データ・アセットの実データのプロファイリングに基づいて、データ・アセットに対応する関心のあるデータ・クラスを列ごとに検出する(ステップ606)。
【0072】
コンピュータは、データ・アセットに対応する関心のあるデータ・クラスに基づいて、データ値を分離するデータ・アセットの最良適合超平面を生成する(ステップ608)。コンピュータは、データ・アセットに対応する最良適合超平面を維持する(ステップ610)。最良適合超平面は、データ・アセットのベース分布シグナチュア(base distribution signature)およびデータ・アセットの0%分布保存距離しきい値を表す。コンピュータは、データ配布中に最良適合超平面を利用して、規定された分布保存指示(distribution preservation directive)とともに、損失関数のパラメータ係数を計算する。100%分布保存指示は、出力データ・アセットにおいて反映されるべき入力データ・アセットの完全な保存を表し、また、0%分布保存指示は、関心のあるデータ・クラスのオートエンコーダによってデータ変換を生成する際の「ドント・ケア(don't care)」点であることに留意すべきである。コンピュータは、入力データ・アセットの中のデータの全ての行と生成された最良適合超平面との間で観察された最悪のまたは最大の直交距離をスケーリングすることによって、損失関数しきい値を計算する。コンピュータは、入力データ・アセットからのこの最大カルテシアン距離、および「ドント・ケア」点またはポリシーをスケーリングする際の0%分布保存指示を百分率として保存する。
【0073】
コンピュータは、データ・アセットに関連したポリシーの履歴施行およびシミュレートされた施行に基づいて、匿名化の対象である関心のあるデータ・クラスに対応する一組のオートエンコーダを求めてオートエンコーダのライブラリを探索する(ステップ612)。コンピュータは、この探索で、関心のあるデータ・クラスの全てに対応する一組のオートエンコーダが見つかったかどうかに関する判定を実施する(ステップ614)。この探索で関心のあるデータ・クラスの全てに対応する一組のオートエンコーダが見つかったとコンピュータが判定した場合、すなわちステップ614の出力が「はい」である場合、その後、プロセスは終了となる。この探索で関心のあるデータ・クラスの全てに対応する一組のオートエンコーダが見つからなかったとコンピュータが判定した場合、すなわちステップ614の出力が「いいえ」である場合、コンピュータは、関心のあるデータ・クラスのうちの全てのデータ・クラスに対するランダムに初期化された新たなオートエンコーダを、データ・アセットに関連したポリシーの履歴施行およびシミュレートされた施行に基づいて生成する(ステップ616)。さらに、コンピュータは、入力行の古典的決定的な変換によって得られた変換された行セル値からオートエンコーダ訓練に適した擬似行セル値への逆方向マッピングを使用して、ランダムに初期化された新たなオートエンコーダをベース訓練する(ステップ618)。この古典的決定論的な変換は、生の入力行セル値を使用するグラウンド・トルース行セル値生成法である。その後、コンピュータは、ベース訓練された新たなオートエンコーダをオートエンコーダのライブラリに追加する(ステップ620)。その後、プロセスは終了となる。
【0074】
次に図7A図7Cを参照すると、例示的な一実施形態による、機密データを変換するためのポリシー施行のプロセスを示す流れ図が示されている。図7A図7Cに示されたプロセスは、例えば図1のサーバ104または図2のデータ処理システム200などのコンピュータで実施することができる。例えば、図7A図7Cに示されたプロセスは、図2のデータ分布保存器218で実施することができる。
【0075】
このプロセスは、コンピュータが、特定の入力データ・アセットのデータにアクセスすることを求めるリクエストを特定のユーザのクライアント・デバイスからネットワークを介して受け取ったときに始まる(ステップ702)。この特定の入力データ・アセットは長方形のデータ・セットである。コンピュータがリクエストを受け取ったことに応答して、コンピュータのポリシー施行点が、特定の入力データ・アセット、特定のユーザ、およびリクエストに関連したコンテキストに関する、コンピュータのポリシー決定点からのポリシー施行決定をリクエストする(ステップ704)。コンピュータのポリシー決定点は、特定の入力データ・アセット、特定のユーザ、およびリクエストのコンテキストに関するポリシー施行決定を、現在設定されている一組のポリシーに基づいて生成する(ステップ706)。このポリシー施行決定はさらに、オートエンコーダのライブラリの選択されたオートエンコーダによる変換を必要とすることがある、関心のあるデータ・クラスに対する所望のデータ分布保存の百分率を含むことに留意すべきである。これは、ポリシーおよびデータ分布保存指示またはしきい値によって指図される変換される必要なデータ・クラスを提供する。さらに、コンピュータは、このポリシー施行決定に基づいて損失関数の損失関数しきい値を計算する(ステップ708)。
【0076】
さらに、コンピュータは、特定の入力データ・アセットの中の機密データを含む、関心のある列に対して必要なデータ匿名化をポリシー施行決定に基づいて実行するために、オートエンコーダのライブラリからオートエンコーダを選択する(ステップ710)。その後、コンピュータは、特定の入力データ・アセットの中の1つの行を選択する(ステップ712)。コンピュータは、選択された行の元の入力データ値を一時バッファに転記する(ステップ714)。コンピュータは、関心のある列の関連する一組の行セルの中の機密データのデータ値を変換して変換バッファに入れるために、選択されたオートエンコーダを使用して、選択された行の必要なデータ匿名化を実行する(ステップ716)。コンピュータはさらに、ポリシー施行決定の中に指定されたパラメータ係数を含む損失関数を使用して、選択された行のデータ匿名化のための損失関数値を生成する(ステップ718)。
【0077】
コンピュータは、生成された損失関数値を計算された損失関数しきい値と比較する(ステップ720)。この比較に基づいて、コンピュータは、生成された損失関数値が計算された損失関数しきい値よりも小さいかどうかに関する判定を実施する(ステップ722)。
【0078】
この比較に基づいて、生成された損失関数値が計算された損失関数しきい値以上であるとコンピュータが判定した場合、すなわちステップ722の出力が「いいえ」である場合、コンピュータは、特定のユーザに適した実際の行セル値への順方向マッピングを使用して、変換バッファの中の変換されたデータ値を、出力とラベルされた出力バッファに転記する(ステップ724)。その後、プロセスはステップ726に進む。この比較に基づいて、生成された損失関数値が計算された損失関数しきい値よりも小さいとコンピュータが判定した場合、すなわちステップ722の出力が「はい」である場合、コンピュータは、その特定の入力データ・アセットの出力のために、出力とラベルされた出力バッファを次の行に転送する(ステップ726)。
【0079】
さらに、コンピュータは、その一時バッファが、オートエンコーダ能動再訓練プロセスで使用するのに適格であるかどうかに関する判定を、計算された損失関数しきい値および保存された移動平均しきい値に基づいて実施する(ステップ728)。その一時バッファは、オートエンコーダ能動再訓練プロセスで使用するのに適格でないとコンピュータが判定した場合、すなわちステップ728の出力が「いいえ」である場合、コンピュータは、その特定の入力データ・アセットに別の行が存在するかどうかに関する判定を実施する(ステップ730)。その特定の入力データ・アセットに別の行が存在するとコンピュータが判定した場合、すなわちステップ730の出力が「はい」である場合、プロセスはステップ712に戻り、コンピュータは、特定の入力データ・アセットの中の別の行を選択する。選択された列に別の行が存在しないとコンピュータが判定した場合、すなわちステップ730の出力が「いいえ」である場合、コンピュータは、特定の入力データ・アセットに対する出力をその特定のユーザのクライアント・デバイスにネットワークを介して送る(ステップ732)。その後、プロセスは終了となる。
【0080】
ステップ728に戻ると、その一時バッファは、オートエンコーダ能動再訓練プロセスで使用するのに適格であるとコンピュータが判定した場合、すなわちステップ728の出力が「はい」である場合、コンピュータは、生成された損失関数値が計算された損失関数しきい値よりも小さかったかどうかに関する判定を実施する(ステップ734)。生成された損失関数値が計算された損失関数しきい値以上であったとコンピュータが判定した場合、すなわちステップ734の出力が「いいえ」である場合、コンピュータは、元の入力データ値の一時バッファに優良候補(good candidate)のラベルをつける(ステップ736)。その後、プロセスはステップ740に進む。生成された損失関数値が計算された損失関数しきい値よりも小さかったとコンピュータが判定した場合、すなわちステップ734の出力が「はい」である場合、コンピュータは、元の入力データ値の一時バッファに拒否候補(reject candidate)のラベルをつける(ステップ738)。
【0081】
その後、コンピュータは、ラベルがつけられた出力行を訓練バッファに保存する(ステップ740)。さらに、コンピュータは、訓練バッファをデータ・サンプラに通して、サンプリングされた訓練バッファを形成する(ステップ742)。例示的な一実施形態では、データ・サンプラがランダム・データ・サンプラである。コンピュータは、サンプリングされた訓練バッファを維持する(ステップ744)。
【0082】
さらに、コンピュータは、訓練バッファの入力行の古典的決定論的変換によって得られた変換された行セル値からオートエンコーダ訓練に適した擬似行セル値への逆方向マッピングを使用して、特定のオートエンコーダを非同期で再訓練する(ステップ746)。コンピュータは、サンプリングされた訓練バッファを使用して、優良候補に対する強化および拒否候補に対する過剰適合回避のための正則化法または一般法に基づいて、オートエンコーダのライブラリの中の特定のオートエンコーダを追加的に再訓練する(ステップ748)。時間の経過とともに、オートエンコーダの再訓練はバックプロパゲーションを使用し、特定のデータ・クラスとオートエンコーダの組合せに対して最も頻繁に使用されたデータ分布保存しきい値に収束することに留意すべきである。さらに、ライブラリの中でオートエンコーダが探索されたときに、そのしきい値が選択プロセスにおいても役割を演じることができるように、例示的な代替実施形態は、オートエンコーダのライブラリにしきい値によってインデックスをつけることができる。コンピュータはさらに、移動平均された計算された損失関数しきい値を、特定の入力データ・アセットに対して使用した値とともに保存する(ステップ750)。その後、プロセスはステップ730に戻り、そこでコンピュータは、その特定の入力データ・アセットに別の行が存在するかどうかを判定する。
【0083】
したがって、本発明の例示的な実施形態は、リクエストしているデータ・コンシューマへのデータ配布中にデータ・アセットの機密データをリアル・タイムで動的に変換するコンピュータ実施方法、コンピュータ・システムおよびコンピュータ・プログラム製品を提供する。匿名化操作中のリクエストされたデータに対する特定の変換は、出力データ分布の変換された値を入力データに対する所望の程度に保存しながらに達成される。例示的な実施形態は、このプロセスを、パラメータ化された損失関数を含むオートエンコーダを使用してポリシーに基づいて宣言的に制御する。本発明のさまざまな実施形態の説明は例示のために提示されたものだが、それらの説明が網羅的であること、または開示された実施形態に限定されることは意図されていない。当業者には、記載された実施形態の範囲を逸脱しない多くの変更および変形が明らかとなろう。本明細書で使用した用語は、実施形態の原理、実用的用途、もしくは市販されている技術にはない技術的改善点を最もよく説明するように、または本明細書に開示された実施形態を当業者が理解できるように選択した。
図1
図2
図3
図4
図5
図6
図7A
図7B
図7C
【手続補正書】
【提出日】2023-09-25
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータの情報処理によりデータ匿名化操作においてデータ・アセットのデータ値の分布を保存するための方法であって、前記方法が、
関心のある列の関連する一組の行セルの中の機密データのデータ値を変換して変換バッファに入れるために、オートエンコーダを使用して、前記データ・アセットの中の選択された行のデータ匿名化を実行すること、
ポリシー施行決定の中に指定されたパラメータ係数を含む損失関数を使用して、前記選択された行の前記データ匿名化のための損失関数値を生成すること、
前記損失関数値を損失関数しきい値と比較すること、
前記比較することに基づいて前記損失関数値が前記損失関数しきい値よりも大きいと判定したことに応答して、特定のユーザに適した実際の行セル値への順方向マッピングを使用して、前記変換バッファの中の変換されたデータ値を、出力とラベルされた出力バッファに転記すること、および
前記データ・アセットの出力のために、出力とラベルされた前記出力バッファを次の行に転送すること
を含む方法。
【請求項2】
前記データ・アセットに対する前記出力を、リクエストしているユーザのクライアント・デバイスにネットワークを介して送ること
をさらに含む、請求項1に記載方法。
【請求項3】
列および行からなる長方形のデータ・セットである前記データ・アセットのデータにアクセスすることを求めるリクエストを前記特定のユーザのクライアント・デバイスからネットワークを介して受け取ること、
前記データ・アセット、前記特定のユーザ、および前記データ・アセットの前記データにアクセスすることを求める前記リクエストのコンテキストに関する前記ポリシー施行決定をリクエストすること、
前記データ・アセット、前記特定のユーザ、および前記データ・アセットの前記データにアクセスすることを求める前記リクエストの前記コンテキストに関する前記ポリシー施行決定を生成すること、ならびに
前記ポリシー施行決定に基づいて前記損失関数の前記損失関数しきい値を計算すること
をさらに含む、請求項1または2に記載の方法。
【請求項4】
前記データ・アセットの中の前記機密データを含む前記関心のある列に対して前記データ匿名化を前記ポリシー施行決定に基づいて実行するために、オートエンコーダのライブラリから前記オートエンコーダを選択すること、および
前記選択された行を形成するために、前記データ・アセットの中の複数の行のうちの1つの行を選択すること
をさらに含む、請求項1~3のいずれか1項に記載方法。
【請求項5】
前記選択された行の転記された元の入力データ値の一時バッファが、オートエンコーダ能動再訓練プロセスで使用するのに適格であるかどうかを判定すること、
前記一時バッファが、前記オートエンコーダ能動再訓練プロセスで使用するのに適格であると判定したことに応答して、前記損失関数値が前記損失関数しきい値よりも小さかったかどうかを判定すること、
前記損失関数値が前記損失関数しきい値以上であったと判定したことに応答して、前記一時バッファに優良候補のラベルをつけ、または前記損失関数値が前記損失関数しきい値よりも小さかったと判定したことに応答して、前記一時バッファに拒否候補のラベルをつけること、および
ラベルがつけられた出力行を訓練バッファに保存すること
をさらに含む、請求項1~4のいずれか1項に記載方法。
【請求項6】
前記訓練バッファをデータ・サンプラに通して、サンプリングされた訓練バッファを形成すること、
前記訓練バッファの入力行の古典的決定論的変換によって得られた変換された行セル値からオートエンコーダ訓練に適した擬似行セル値への逆方向マッピングを使用して、特定のオートエンコーダを非同期で再訓練すること、ならびに
前記サンプリングされた訓練バッファを使用して、優良候補に対する強化および拒否候補に対する過剰適合回避のための正則化に基づいて、前記特定のオートエンコーダを追加的に再訓練すること
をさらに含む、請求項5に記載方法。
【請求項7】
前記データ・アセットの実データをプロファイリングすること、
前記データ・アセットの前記実データの前記プロファイリングに基づいて、前記データ・アセットに対応する関心のあるデータ・クラスを列ごとに検出すること、および
前記データ・アセットに対応する前記関心のあるデータ・クラスに基づいてデータ値を分離する前記データ・アセットの最良適合超平面を生成すること
をさらに含む、請求項1~6のいずれか1項に記載方法。
【請求項8】
オートエンコーダのライブラリの探索で前記関心のあるデータ・クラスに対応するオートエンコーダが見つからなかったと判定したことに応答して、前記関心のあるデータ・クラスに対するランダムに初期化された新たなオートエンコーダを、前記データ・アセットに関連したポリシーの履歴施行およびシミュレートされた施行に基づいて生成すること、ならびに
入力行の古典的決定論的変換によって得られた変換された行セル値からオートエンコーダ訓練に適した擬似行セル値への逆方向マッピングを使用して、前記ランダムに初期化された新たなオートエンコーダをベース訓練すること
をさらに含む、請求項7に記載方法。
【請求項9】
分布推論を防ぐための差分プライバシー調整として、匿名化されたデータ値にラプラス・ノイズ関数が適用される、請求項1~8のいずれか1項に記載方法。
【請求項10】
前記ポリシー施行決定が前記データ・アセットのエントロピーに基づく、請求項1~9のいずれか1項に記載方法。
【請求項11】
前記ポリシー施行決定が、変換変化に関する前記データ・アセットの感度に基づく、請求項1~10のいずれか1項に記載方法。
【請求項12】
データ匿名化操作においてデータ・アセットのデータ値の分布を保存するためのコンピュータ・システムであって、前記コンピュータ・システムが、
バス・システムと、
前記バス・システムに接続されたストレージ・デバイスであり、プログラム命令を格納した、前記ストレージ・デバイスと、
前記バス・システムに接続されたプロセッサと
を備え、前記プロセッサが、前記プログラム命令を実行して、
関心のある列の関連する一組の行セルの中の機密データのデータ値を変換して変換バッファに入れるために、オートエンコーダを使用して、前記データ・アセットの中の選択された行のデータ匿名化を実行し、
ポリシー施行決定の中に指定されたパラメータ係数を含む損失関数を使用して、前記選択された行の前記データ匿名化のための損失関数値を生成し、
前記損失関数値を損失関数しきい値と比較し、
前記損失関数値が前記損失関数しきい値よりも大きいと判定したことに応答して、特定のユーザに適した実際の行セル値への順方向マッピングを使用して、前記変換バッファの中の変換されたデータ値を、出力とラベルされた出力バッファに転記し、
前記データ・アセットの出力のために、出力とラベルされた前記出力バッファを次の行に転送する、
コンピュータ・システム。
【請求項13】
前記プロセッサがさらに、前記プログラム命令を実行して、
前記データ・アセットに対する前記出力を、リクエストしているユーザのクライアント・デバイスにネットワークを介して送る、
請求項12に記載のコンピュータ・システム。
【請求項14】
前記プロセッサがさらに、前記プログラム命令を実行して、
列および行からなる長方形のデータ・セットである前記データ・アセットのデータにアクセスすることを求めるリクエストを前記特定のユーザのクライアント・デバイスからネットワークを介して受け取り、
前記データ・アセット、前記特定のユーザ、および前記データ・アセットの前記データにアクセスすることを求める前記リクエストのコンテキストに関する前記ポリシー施行決定をリクエストし、
前記データ・アセット、前記特定のユーザ、および前記データ・アセットの前記データにアクセスすることを求める前記リクエストの前記コンテキストに関する前記ポリシー施行決定を生成し、
前記ポリシー施行決定に基づいて前記損失関数の前記損失関数しきい値を計算する、
請求項12または13に記載のコンピュータ・システム。
【請求項15】
データ匿名化操作においてデータ・アセットのデータ値の分布を保存するためのコンピュータ・プログラムであって、コンピュータ・システムに、
関心のある列の関連する一組の行セルの中の機密データのデータ値を変換して変換バッファに入れるために、オートエンコーダを使用して、前記データ・アセットの中の選択された行のデータ匿名化を実行することと、
ポリシー施行決定の中に指定されたパラメータ係数を含む損失関数を使用して、前記選択された行の前記データ匿名化のための損失関数値を生成することと、
前記損失関数値を損失関数しきい値と比較することと、
前記比較に基づいて前記損失関数値が前記損失関数しきい値よりも大きいと判定したことに応答して、特定のユーザに適した実際の行セル値への順方向マッピングを使用して、前記変換バッファの中の変換されたデータ値を、出力とラベルされた出力バッファに転記することと、
前記データ・アセットの出力のために、出力とラベルされた前記出力バッファを次の行に転送することと
を行わせるためのコンピュータ・プログラム
【国際調査報告】