(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023074901
(43)【公開日】2023-05-30
(54)【発明の名称】差分プライバシー処理方法、プログラム、および、差分プライバシー処理装置
(51)【国際特許分類】
G06F 21/62 20130101AFI20230523BHJP
【FI】
G06F21/62 345
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021188081
(22)【出願日】2021-11-18
(71)【出願人】
【識別番号】393031586
【氏名又は名称】株式会社国際電気通信基礎技術研究所
(74)【代理人】
【識別番号】100143498
【弁理士】
【氏名又は名称】中西 健
(74)【代理人】
【識別番号】100136319
【弁理士】
【氏名又は名称】北原 宏修
(72)【発明者】
【氏名】三本 知明
(72)【発明者】
【氏名】橋本 真幸
(72)【発明者】
【氏名】横山 浩之
(57)【要約】
【課題】入力データと閾値との大小関係と、出力データと閾値との大小関係とを高い確率で維持し、プライバシー保護を実現しつつ適切なデータ錯乱メカニズムを実現する技術を実現する。
【解決手段】差分プライバシー処理装置100では、閾値を考慮した二値化処理を行った後、第1プライバシーパラメータε
1による二値LDP処理を行うので、第1プライバシーパラメータε
1にのみ依存した一定の確率で閾値を跨がない差分プライバシーを満たす摂動データを生成することができる。さらに、差分プライバシー処理装置100では、二値LDP処理で閾値を跨がないデータについては、閾値との大小関係を維持しつつ、第2プライバシーパラメータε
2による多値LDP処理を行うので、閾値との大小関係を維持した摂動データを生成することができる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
入力データに対して差分プライバシー処理を実行する差分プライバシー処理方法であって、
閾値を設定する閾値設定ステップと、
前記閾値により、前記入力データを二値化する処理を実行する二値化処理ステップと、
前記二値化処理後のデータに対して、第1プライバシーパラメータε1を用いた差分プライバシー処理であって、出力を二値とする差分プライバシー処理を行う二値差分プライバシー処理ステップと、
前記二値差分プライバシー処理ステップの入力データと出力データとが一致している場合、第2プライバシーパラメータε2を用いた差分プライバシー処理であって、当該差分プライバシー処理の出力データを多値とし、かつ、前記差分プライバシー処理の出力データのとりうる範囲である出力データ範囲に含まれる任意の出力データと前記閾値との大小関係を維持するように、前記出力データ範囲を設定し、前記入力データに対して、多値差分プライバシー処理を行う多値差分プライバシー処理ステップと、
を備える差分プライバシー処理方法。
【請求項2】
前記多値差分プライバシー処理ステップは、
前記第2プライバシーパラメータε2により決定される値Cを導出し、
前記多値差分プライバシー処理の入力データのとりうる範囲である入力データ範囲を[-d’,d’]とすると、前記多値差分プライバシー処理の出力データのとりうる範囲である出力データ範囲を[-d’C,d’C]に設定し、前記入力データに対して、多値差分プライバシー処理を行う、
請求項1に記載の差分プライバシー処理方法。
【請求項3】
前記多値差分プライバシー処理ステップは、
前記閾値、または、前記閾値をレンジ変換して取得されるレンジ変換後閾値を値Thとし、オフセット値をoffsetとすると、
abs(d’C)≦abs(Th)
abs(x):値xの絶対値を返す関数
または、
abs(-d’C)≦abs(Th-offset)
を満たすように、値d’を決定する、
請求項2に記載の差分プライバシー処理方法。
【請求項4】
前記多値差分プライバシー処理ステップは、
(1)前記多値差分プライバシー処理の入力データが、前記入力データ範囲[-d’,d’]内に入らないデータである場合であって、前記多値差分プライバシー処理の入力データが前記入力データ範囲の上限値d’を超える場合、前記多値差分プライバシー処理の入力データを値d’とし、
(2)前記多値差分プライバシー処理の入力データが、前記入力データ範囲[-d’,d’]内に入らないデータである場合であって、前記多値差分プライバシー処理の入力データが前記入力データ範囲の下限値-d’未満の場合、前記多値差分プライバシー処理の入力データを値-d’とする、
上限、下限リミット処理を行う、
請求項2または3に記載の差分プライバシー処理方法。
【請求項5】
請求項1から4のいずれかに記載の差分プライバシー処理方法をコンピュータに実行させるためのプログラム。
【請求項6】
入力データに対して差分プライバシー処理を実行する差分プライバシー処理方法であって、
閾値を設定するパラメータ設定部と、
前記閾値により、前記入力データを二値化する処理を実行する二値化処理部と、
前記二値化処理後のデータに対して、第1プライバシーパラメータε1を用いた差分プライバシー処理であって、出力を二値とする差分プライバシー処理を行う二値差分プライバシー処理部と、
前記二値差分プライバシー処理部の入力データと出力データとが一致している場合、第2プライバシーパラメータε2を用いた差分プライバシー処理であって、当該差分プライバシー処理の出力データを多値とし、かつ、前記差分プライバシー処理の出力データのとりうる範囲である出力データ範囲に含まれる任意の出力データと前記閾値との大小関係を維持するように、前記出力データ範囲を設定し、前記入力データに対して、多値差分プライバシー処理を行う多値差分プライバシー処理部と、
を備える差分プライバシー処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、個人のプライバシーを保護しつつデータ分析を可能にするプライバシー保護技術に関する。
【背景技術】
【0002】
近年、個人のプライバシーを保護しつつデータ分析を可能にするプライバシー保護技術が種々開発されている。このようなプライバシー保護技術として、データ提供の際に提供者が自身のデータにノイズを付与してデータを提供する局所差分プライバシー(LDP:Local Differential Privacy)という方法を用いる技術が注目されている(例えば、非特許文献1~4を参照)。例えば、非特許文献1の技術や非特許文献2の技術は、ブラウザやOS等で利用されており、プライバシー保護技術として注目されている。
【0003】
非特許文献1、2の技術は、二値の入力データ(入力データt∈{0,1})に対する撹乱メカニズムを実現する技術である。一方、非特許文献3の技術は、多値入力データ(入力データt∈[-1,1](-1から1の範囲に含まれる実数値をとるデータ)に対する撹乱メカニズムを実現する技術であるが、出力データは二値データ(出力データt*∈{-(exp(ε)-1)/(exp(ε)+1),(exp(ε)-1)/(exp(ε)+1)})である。
【0004】
近年では、非特許文献4の技術のように、多値入力データ(入力データt∈[-1,1])に対して、その出力が多値出力データ(多値出力データt*∈[-C,C]、C=(exp(ε/2)+1)/(exp(ε/2)-1)、ε:プライバシーパラメータ)となる錯乱メカニズムを実現する技術も開発されている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Erlingsson Ulfar et al., "Rappor: Randomized aggregatable privacy-preserving ordinal response," Proceedings of the 2014 ACM SIGSAC conference on computer and communications security, 2014.
【非特許文献2】Cormode Graham et al., "Privacy at scale: Local differential privacy in practice," Proceedings of the 2018 International Conference on Management of Data, 2018.
【非特許文献3】J.C. Duchi et al., "Minimax optimal procedures for locally private estimation," Journal of the American Statistical Association, 2018.
【非特許文献4】Wang Ning et al., "Collecting and Analyzing Multidimensional Data with Local Differential Privacy," 2019 IEEE 35th International Conference on Data Engineering (ICDE), 2019.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記先行技術では、データの持つ意味が考慮されておらず、例えば、ある値(閾値)を境にデータの値の意味が大きく変化する場合、上記先行技術により、入力データを撹乱すると問題が生ずることがある。例えば、非特許文献4の技術では、出力データは高い確率で入力データに近い値を取るような確率分布に従うが、データの持つ意味を考慮できていない。例えば、入力データのドメイン(取り得る範囲)が[-1,1]の入力データに対して、ある値(閾値T、例えば、T=0.5)を境に大きく意味が変わる場合を考える。非特許文献4の技術では、入力データtがt=0.45である場合(t<Tの場合)、その出力データt*が高い確率で0.5以上の値(t*≧0.5)となり、入力データと閾値との大小関係と、出力データと閾値との大小関係とが異なるものとなってしまう。このように、非特許文献4の技術では、僅かなデータの揺らぎであってもデータの持つ意味を大きく変化させてしまうような出力データを取得してしまうという問題がある。
【0007】
そこで、本発明では、上記問題点に鑑み、入力データと閾値との大小関係と、出力データと閾値との大小関係とを高い確率で維持し、プライバシー保護を実現しつつ適切なデータ錯乱メカニズムを実現する技術を実現することを目的とする。すなわち、本発明では、上記問題点に鑑み、データの閾値を考慮したノイズを付与する差分プライバシーメカニズムを実現する差分プライバシー処理装置、差分プライバシー処理方法、およびプログラムを実現することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、第1の発明は、入力データに対して差分プライバシー処理を実行する差分プライバシー処理方法であって、閾値設定ステップと、二値化処理ステップと、二値差分プライバシー処理ステップと、多値差分プライバシー処理ステップと、を備える。
【0009】
閾値設定ステップは、閾値を設定する。
【0010】
二値化処理ステップは、閾値により、入力データを二値化する処理を実行する。
【0011】
二値差分プライバシー処理ステップは、二値化処理後のデータに対して、第1プライバシーパラメータε1を用いた差分プライバシー処理であって、出力を二値とする二値差分プライバシー処理を行う。
【0012】
多値差分プライバシー処理ステップは、二値差分プライバシー処理ステップの入力データと出力データとが一致している場合、第2プライバシーパラメータε2を用いた差分プライバシー処理であって、当該差分プライバシー処理の出力データを多値とし、かつ、差分プライバシー処理の出力データのとりうる範囲である出力データ範囲に含まれる任意の出力データと閾値との大小関係を維持するように、出力データ範囲を設定し、入力データに対して、多値差分プライバシー処理を行う。
【0013】
この差分プライバシー処理方法では、閾値を考慮した二値化処理を行った後、第1プライバシーパラメータε1による二値差分プライバシー処理を行い、さらに、閾値との大小関係を維持する多値データを出力する多値差分プライバシー処理を行う。つまり、この差分プライバシー処理方法では、閾値を考慮した二値化処理を行った後、第1プライバシーパラメータε1による二値差分プライバシー処理を行うので、第1プライバシーパラメータε1にのみ依存した一定の確率で閾値を跨がない差分プライバシーを満たす摂動データを生成(取得)することができる。
【0014】
さらに、この差分プライバシー処理方法では、二値LDP処理で閾値を跨がないデータについては、閾値との大小関係を維持しつつ、第2プライバシーパラメータε2による多値差分プライバシー処理を行うので、閾値との大小関係を維持した摂動データを生成(取得)することができる。
【0015】
したがって、この差分プライバシー処理方法では、入力データと閾値との大小関係と、出力データと閾値との大小関係とを高い確率で維持し、プライバシー保護を実現しつつ適切なデータ錯乱メカニズムを実現することができる。
【0016】
なお、データに対してランダム化する関数をf()とし、入力データが関数fの定義域(ドメイン)において、値t、または、値t’をとり、関数fの任意の出力データをt*とすると、
Pr[f(t)=t*]≦exp(ε)×Pr[f(t’)=t*]
Pr[]:確率(なお、fの出力が連続値をとる場合、確率密度)
ε:プライバシーパラメータ
を満たすとき、ε-局所差分プライバシーを満たすという(定義される)。
【0017】
したがって、「第1プライバシーパラメータε1による二値差分プライバシー処理」とは、ε1-局所差分プライバシーを満たす処理を意味し、「第2プライバシーパラメータε2による多値差分プライバシー処理」とは、ε2-局所差分プライバシーを満たす処理を意味する。
【0018】
第2の発明は、第1の発明であって、多値差分プライバシー処理ステップは、
(1)第2プライバシーパラメータε2により決定される値Cを導出し、
(2)多値差分プライバシー処理の入力データのとりうる範囲である入力データ範囲を[-d’,d’]とすると、多値差分プライバシー処理の出力データのとりうる範囲である出力データ範囲を[-d’C,d’C]に設定し、入力データに対して、多値差分プライバシー処理を行う。
【0019】
これにより、この差分プライバシー処理方法では、入力データ範囲を[-d’,d’]とし、出力データ範囲を[-d’C,d’C]とする多値差分プライバシー処理を行うことができる。
【0020】
第3の発明は、第2の発明であって、多値差分プライバシー処理ステップは、
閾値、または、閾値をレンジ変換して取得されるレンジ変換後閾値を値Thとし、オフセット値をoffsetとすると、
abs(d’C)≦abs(Th)
abs(x):値xの絶対値を返す関数
または、
abs(-d’C)≦abs(Th-offset)
を満たすように、値d’を決定する。
【0021】
これにより、この差分プライバシー処理方法では、閾値、または、閾値をレンジ変換して取得されるレンジ変換後閾値(値Th)を考慮して、値d’を決定することができる。そして、この差分プライバシー処理方法では、上記のように処理することで、入力データ範囲を[-d’,d’]とし、出力データ範囲を[-d’C,d’C]とする多値差分プライバシー処理を、入力データと閾値との大小関係を維持しつつ、行うことができる。
【0022】
第4の発明は、第2または第3の発明であって、多値差分プライバシー処理ステップは、
(1)多値差分プライバシー処理の入力データが、入力データ範囲[-d’,d’]内に入らないデータである場合であって、多値差分プライバシー処理の入力データが入力データ範囲の上限値d’を超える場合、多値差分プライバシー処理の入力データを値d’とし、
(2)多値差分プライバシー処理の入力データが、入力データ範囲[-d’,d’]内に入らないデータである場合であって、多値差分プライバシー処理の入力データが入力データ範囲の下限値-d’未満の場合、多値差分プライバシー処理の入力データを値-d’とする、
上限、下限リミット処理を行う。
【0023】
これにより、この差分プライバシー処理方法では、多値差分プライバシー処理の入力データが、入力データ範囲[-d’,d’]内に入らないデータである場合でも、入力データと閾値との大小関係を維持しつつ、多値差分プライバシー処理を行うことができる。
【0024】
第5の発明は、第1から第4のいずれかの発明である差分プライバシー処理方法をコンピュータに実行させるためのプログラムである。
【0025】
これにより、第1から第4のいずれかの発明と同様の効果を奏する差分プライバシー処理方法をコンピュータに実行させるためのプログラムを実現することができる。
【0026】
第6の発明は、入力データに対して差分プライバシー処理を実行する差分プライバシー処理方法であって、パラメータ設定部と、二値化処理部と、二値差分プライバシー処理部と、多値差分プライバシー処理部と、を備える。
【0027】
パラメータ設定部は、閾値を設定する。
【0028】
二値化処理部は、閾値により、入力データを二値化する処理を実行する。
【0029】
二値差分プライバシー処理部は、二値化処理後のデータに対して、第1プライバシーパラメータε1を用いた差分プライバシー処理であって、出力を二値とする差分プライバシー処理を行う。
【0030】
多値差分プライバシー処理部は、二値差分プライバシー処理部の入力データと出力データとが一致している場合、第2プライバシーパラメータε2を用いた差分プライバシー処理であって、当該差分プライバシー処理の出力データを多値とし、かつ、差分プライバシー処理の出力データのとりうる範囲である出力データ範囲に含まれる任意の出力データと閾値との大小関係を維持するように、出力データ範囲を設定し、入力データに対して、多値差分プライバシー処理を行う。
【0031】
これにより、第1の発明と同様の効果を奏する差分プライバシー処理装置を実現することができる。
【発明の効果】
【0032】
本発明によれば、入力データと閾値との大小関係と、出力データと閾値との大小関係とを高い確率で維持し、プライバシー保護を実現しつつ適切なデータ錯乱メカニズムを実現する技術を実現することができる。すなわち、本発明によれば、データの閾値を考慮したノイズを付与する差分プライバシーメカニズムを実現する差分プライバシー処理装置、差分プライバシー処理方法、およびプログラムを実現することができる。
【図面の簡単な説明】
【0033】
【
図1】第1実施形態に係る差分プライバシー処理装置100の概略構成図。
【
図2】差分プライバシー処理装置100で実行される処理のシーケンス図。
【
図3】差分プライバシー処理装置100で実行される処理のシーケンス図。
【
図4】確率密度関数pdf(t
i
**=x|t
i)を示す図。
【
図5】入力データDin(血圧値)が100mmHg(<Th_org=130mmHg)の場合の差分プライバシー処理装置100による処理を説明するための図。
【
図6】入力データDin(血圧値)が125mmHg(<Th_org=130mmHg)の場合の差分プライバシー処理装置100による処理を説明するための図。
【
図7】入力データDin(血圧値)が160mmHg(>Th_org=130mmHg)の場合の差分プライバシー処理装置100による処理を説明するための図。
【
図8】入力データDin(血圧値)が135mmHg(>Th_org=130mmHg)の場合の差分プライバシー処理装置100による処理を説明するための図。
【
図9】ユーザー端末UE1~UEnおよびアグリゲータAgr1の概略構成図。
【発明を実施するための形態】
【0034】
[第1実施形態]
第1実施形態について、図面を参照しながら、以下、説明する。
【0035】
<1.1:差分プライバシー処理装置の構成>
図1は、第1実施形態に係る差分プライバシー処理装置100の概略構成図である。
【0036】
差分プライバシー処理装置100は、
図1に示すように、パラメータ設定部11と、データ変換部FE1と、二値化処理部12と、二値LDP処理部13(LDP:Local Differential Privacy)と、多値LDP処理部14と、データ逆変換部BE1とを備える。
【0037】
パラメータ設定部11は、各種パラメータ、閾値等を設定する機能部である。パラメータ設定部11は、データ変換用のパラメータpara1を設定し、当該パラメータpara1をデータ変換部FE1に出力する。
【0038】
また、パラメータ設定部11は、二値化処理用の閾値Thを設定し、当該閾値Thを二値化処理部12および多値LDP処理部14に出力する。
【0039】
また、パラメータ設定部11は、二値LDP処理用のプライバシーパラメータである第1プライバシーパラメータε1を設定し、当該第1プライバシーパラメータε1を二値LDP処理部13に出力する。
【0040】
また、パラメータ設定部11は、多値LDP処理用のプライバシーパラメータである第2プライバシーパラメータε2を設定し、当該第2プライバシーパラメータε2を多値LDP処理部14に出力する。
【0041】
また、パラメータ設定部11は、データ逆変換用のパラメータpara2を設定し、当該パラメータpara2をデータ逆変換部BE1に出力する。
【0042】
データ変換部FE1は、入力データDinを入力し、また、パラメータ設定部11からデータ変換用パラメータpara1を入力する。なお、入力データDinのデータ値をDiとすると、Di∈[Ds,De](Ds,De:実数、Ds≦De)を満たすものとする。つまり、入力データ値Diのとり得る範囲は、[Ds,De](すなわち、Ds≦Di≦De)であるものとする。なお、[x,y]は、x以上y以下の実数値の集合を表している(以下、同様)。
【0043】
データ変換部FE1は、入力データDin(Di)に対して、データ変換処理(とり得るレンジの変換処理)を行い、その取り得る範囲が[-d,d](d:実数)となる出力データtiを取得する。つまり、データ変換部FE1は、入力データDin(Di)に対して、下記数式に相当する処理を行い、出力データti(ti∈[-d,d])を取得する。
ti=(Di-(Ds+De)/2)×(d-(-d))/(De-Ds)
なお、データ変換部FE1は、データ変換用パラメータpara1に基づいて、データ変換処理(とり得るレンジの変換処理)のオフセット、ゲイン(上記数式を決定する係数)、出力データのとり得る範囲を設定する。
【0044】
そして、データ変換部FE1は、取得したデータti(ti∈[-d,d])を二値化処理部12および多値LDP処理部14に出力する。
【0045】
二値化処理部12は、データ変換部FE1から出力されるデータti(ti∈[-d,d])と、パラメータ設定部11から出力される閾値Thとを入力する。二値化処理部12は、データti(ti∈[-d,d])と閾値Thとを用いて、データti(ti∈[-d,d])に対して二値化処理を実行し、二値化処理後のデータt’i(t’i∈{0,1})を取得する。なお、{0,1}は、とり得る値が「0」または「1」であること(その要素が「0」、「1」である集合)を示している(以下、同様)。
【0046】
そして、二値化処理部12は、取得したデータt’i(t’i∈{0,1})を二値LDP処理部13および多値LDP処理部14に出力する。
【0047】
二値LDP処理部13は、二値化処理部12から出力されるデータt’i(t’i∈{0,1})と、パラメータ設定部11から出力される第1プライバシーパラメータε1とを入力する。二値LDP処理部13は、データt’i(t’i∈{0,1})に対して、二値LDP処理を実行し、出力データti
*(ti
*∈{0,1})を取得する(詳細については後述)。
【0048】
そして、二値LDP処理部13は、取得したデータti
*(ti
*∈{0,1})を多値LDP処理部14に出力する。
【0049】
多値LDP処理部14は、二値化処理部12から出力されるデータt’i(t’i∈{0,1})と、二値LDP処理部13から出力されるデータti
*(ti
*∈{0,1})と、データ変換部FE1から出力されるデータti(ti∈[-d,d])と、パラメータ設定部11から出力される閾値Thおよび第2プライバシーパラメータε2とを入力する。多値LDP処理部14は、データt’i(t’i∈{0,1})およびデータti
*(ti
*∈{0,1})と、閾値Thおよび第2プライバシーパラメータε2とを用いて、データti(ti∈[-d,d])に対して、多値LDP処理を実行し、出力データti
**を取得する(詳細については後述)。
【0050】
そして、多値LDP処理部14は、取得したデータti
**をデータ逆変換部BE1に出力する。
【0051】
データ逆変換部BE1は、多値LDP処理部14から出力されるデータti
**を入力し、また、パラメータ設定部11からデータ逆変換用パラメータpara2を入力する。
【0052】
データ逆変換部BE1は、データti
**に対して、データ逆変換処理(とり得るレンジの変換処理)(レンジをデータ変換部FE1によるデータ変換処理前のレンジに戻す処理)を行い、その取り得る範囲が[Ds,De]となる出力データDoを取得する。
【0053】
なお、データ逆変換部BE1は、データ変換用パラメータpara2に基づいて、データ変換処理(とり得るレンジの変換処理)のオフセット、ゲイン等を設定する。
【0054】
そして、データ逆変換部BE1は、取得したデータDoを出力する。
【0055】
<1.2:差分プライバシー処理装置の動作>
以上のように構成された差分プライバシー処理装置100の動作について、以下、説明する。
【0056】
図2、
図3は、差分プライバシー処理装置100で実行される処理のシーケンス図である。
【0057】
以下では、差分プライバシー処理装置100の動作を、フローチャートを参照しながら、説明する。
【0058】
説明便宜のため、閾値を境にデータの値の意味が大きく変化する例として、人間の血圧のデータを処理対象とする場合について、以下、説明する。また、人間の血圧において、高血圧か否かの閾値が130mmHgであるので、差分プライバシー処理装置100では、閾値Th_org(=130mmHg)とし、入力データDinの値Diのレンジを[0,200](つまり、0mmHg≦Di≦200mmHg)(Di∈[0,200])として、処理(差分プライバシー処理)を実行する場合について、以下、説明する。
【0059】
(ステップS1):
ステップS1において、データ変換処理が実行される。具体的には、以下の処理が実行される。
【0060】
データ変換部FE1は、入力データDinを入力し、また、パラメータ設定部11からデータ変換用パラメータpara1を入力する。入力データ値Diのとり得る範囲は、[0,200]([Ds,De]、Ds=0、De=200)であるので、データ変換部FE1は、レンジ[Ds,De](=[0,200])の入力データDiが、正規化レンジ[-d,d]の出力データtiとなるように、下記数式に相当する処理(データ変換処理)を行う。
ti=(Di-(Ds+De)/2)×(d-(-d))/(De-Ds)
=(Di-100)×(d-(-d))/200
なお、Ds、Deの値、(Ds+De)/2の値、(De-Ds)の値、および、dの値は、パラメータ設定部11により設定され、設定された上記値を含むパラメータpara1がパラメータ設定部11からデータ変換部FE1に出力される。
【0061】
データ変換部FE1は、パラメータpara1を取得し、上記数式に相当するデータ変換処理を実行する。
【0062】
なお、説明便宜のため、d=100として、以下説明する。データ変換部FE1は、上記処理により、入力データDi(Di∈[0,200])をデータ変換処理し、データ変換処理後のデータti(ti∈[-d,d](d=100]))を取得する。
【0063】
そして、データ変換部FE1は、取得したデータti(ti∈[-d,d]、d=100)を二値化処理部12および多値LDP処理部14に出力する。
【0064】
(ステップS2):
ステップS2において、閾値Thによる二値化処理が実行される。具体的には、以下の処理が実行される。
【0065】
パラメータ設定部11は、閾値Th_org(=130mmHg)をレンジ[-d,d](d=100)にレンジ変換した閾値Th(=30(=(130-100)×(d-(-d))/200))、d=100)を二値化処理部12に出力する。
【0066】
二値化処理部12は、データ変換部FE1から出力されるデータti(ti∈[-d,d]、d=100)と、パラメータ設定部11から出力される閾値Th(=30(閾値Th_org(=130mmHg)に対応するレンジ変換後の閾値)とを入力する。二値化処理部12は、データti(ti∈[-d,d]、d=100)と閾値Th(=30)とを用いて、データti(ti∈[-d,d]、d=100)に対して二値化処理を実行する。具体的には、二値化処理部12は、
(1)ti≦Thである場合、
t’i=0
(2)ti>Thである場合、
t’i=1
とする。
【0067】
そして、二値化処理部12は、取得したデータt’i(t’i∈{0,1})を二値LDP処理部13および多値LDP処理部14に出力する。
【0068】
(ステップS3):
ステップS3において、二値LDP処理が実行される。具体的には、以下の処理が実行される。
【0069】
パラメータ設定部11は、第1プライバシーパラメータε1を設定し(第1プライバシーパラメータε1は予め設定されていてもよい)、当該第1プライバシーパラメータε1を二値LDP処理部13に出力する。
【0070】
二値LDP処理部13は、二値化処理部12から出力されるデータt’i(t’i∈{0,1})と、パラメータ設定部11から出力される第1プライバシーパラメータε1とを入力する。二値LDP処理部13は、データt’i(t’i∈{0,1})に対して、二値LDP処理を実行する。具体的には、二値LDP処理部13は、
(1)exp(ε1)/(exp(ε1)+1)の確率で、ti
*=t’iとし(入力データをそのまま出力データとし)、
(2)1/(exp(ε1)+1)の確率で、ti
*=NOT(t’i)とする(入力データを反転したデータを出力データとする)。なお、NOT(x)は、xを反転したデータを取得する関数であり、x=1のときNOT(x)=0であり、x=0のときNOT(x)=1である。
【0071】
上記処理を実行するために、二値LDP処理部13は、例えば、レンジ[0,1]から、一様(レンジに含まれる数のそれぞれが取得される確率が一様)かつランダムに値xを取得し、
(1)x<exp(ε1)/(exp(ε1)+1)を満たす場合、ti
*=t’iとし(入力データをそのまま出力データとし)、
(2)x<exp(ε1)/(exp(ε1)+1)を満たさない場合、ti
*=NOT(t’i)とする(入力データを反転したデータを出力データとする)処理を実行すればよい。
【0072】
そして、二値LDP処理部13は、上記により取得したデータti
*(ti
*∈{0,1})を多値LDP処理部14に出力する。
【0073】
(ステップS4):
ステップS4において、多値LDP処理が実行される。具体的には、以下の処理が実行される。
【0074】
(ステップS401):
ステップS401において、多値LDP処理部14は、二値LDP処理において、出力値が閾値Thを跨ぐ値となるように、ノイズを付与すると決定されたか否かを判定する。つまり、多値LDP処理部14は、二値化処理部12から出力されるデータt’iと、二値LDP処理部13から出力されるデータti
*とを比較し、データt’i(t’i∈{0,1})の値とデータti
*(ti
*∈{0,1})の値とが同じである否かを判定する。
【0075】
判定の結果、データt’i(t’i∈{0,1})の値とデータti
*(ti
*∈{0,1})の値とが異なると判定された場合(ステップS401において「Yes」の場合)、ステップをステップS402に進める。
【0076】
一方、判定の結果、データt’i(t’i∈{0,1})の値とデータti
*(ti
*∈{0,1})の値とが同じである判定された場合(ステップS401において「No」の場合)、ステップをステップS403に進める。
【0077】
(ステップS402):
ステップS402において、多値LDP処理部14は、閾値Th(=30(Th_org=130mmHgに相当する値))(閾値Thは、パラメータ設定部11から取得する)を超えるランダムな値を多値LDP処理後のデータti
**とする。なお、多値LDP処理後のデータti
**は、レンジ[-d,d](d=100)なので、多値LDP処理部14は、レンジ(Th,d](Thよりも大きく、かつ、d以下の範囲)に含まれるランダムな値を多値LDP処理後のデータti
**に設定し、処理をステップS410に進める。
【0078】
(ステップS403):
ステップS403において、パラメータ設定部11は、第2プライバシーパラメータε2を設定し(第2プライバシーパラメータε2は予め設定されていてもよい)、当該第2プライバシーパラメータε2を多値LDP処理部14に出力する。
【0079】
多値LDP処理部14は、下記数式、すなわち、
C=(exp(ε2/2)+1)/(exp(ε2/2)-1)
に相当する処理を実行し、値Cを取得する。
【0080】
(ステップS404):
ステップS404において、多値LDP処理部14は、閾値Th(=30(Th_org=130mmHgに相当する値))に基づいて、多値LDP処理後のデータのレンジ(出力レンジ)を[-d’C,d’C](または、[-d’C+offset,d’C+offset])に設定する。具体的には、以下のように処理が実行される。
(1)閾値Th以下の領域の処理(出力レンジを[-d’C,d’C]にする処理)について
多値LDP処理部14は、
abs(d’C)≦abs(Th)
を満たすように、値d’を決定する。本実施形態では、閾値Th=30であるので、多値LDP処理部14は、
abs(d’C)≦30
を満たすように、値d’を決定する。例えば、ε2=2×log(3)とすると、
C=(exp(ε2/2)+1)/(exp(ε2/2)-1)
=(3+1)/(3-1)=2
となる。以下では、説明便宜のため、ε2=2×log(3)、C=2の場合について、説明する。なお、log()は自然対数である。そして、この場合、abs(d’C)≦30を満たすように、多値LDP処理部14は、
d’=15
に設定したものとする。これにより、多値LDP処理後のデータのレンジ(出力レンジ)は、[-30,30](=[-d’C,d’C]、d’=15、C=2)に設定される。
(2)閾値Thを超える領域の処理(出力レンジを[-d’C+offset,d’C+offset]にする処理)について
多値LDP処理部14は、
abs(-d’C)≦abs(Th-offset)
を満たすように、値d’を決定する。ここで、オフセット値offset=60とする。本実施形態では、閾値Th=30(Th-offset=-30)であるので、多値LDP処理部14は、
abs(-d’C)≦30(=abs(Th-offset))
を満たすように、値d’を決定する。例えば、ε2=2×log(3)とすると、
C=(exp(ε2/2)+1)/(exp(ε2/2)-1)
=(3+1)/(3-1)=2
となる。
【0081】
そして、abs(-d’C)≦30を満たすように、多値LDP処理部14は、例えば、
d’=15
に設定する。これにより、多値LDP処理後のデータのレンジ(出力レンジ)は、[-30+offset,30+offset](=[-d’C+offset,d’C+offset]、d’=15、C=2、offset=60)に設定される。
【0082】
(ステップS405):
ステップS405において、多値LDP処理部14は、以下の処理を行う。
(1)閾値Th以下の領域の処理について
多値LDP処理部14は、多値LDP処理の入力レンジを[-d’,d’](=[-15,15](d’=15))に設定する。さらに、多値LDP処理部14は、多値LDP処理の入力データti(ti∈[-d,d])の値が、設定した入力レンジ[-d’,d’]内とならない場合、リミット処理を行う。つまり、多値LDP処理部14は、
(1)ti<-d’である場合、ti=-d’とし、
(2)ti>d’である場合、ti=d’とする
上限、下限リミット処理を行う。
(2)閾値Thを超える領域の処理について
多値LDP処理部14は、多値LDP処理の入力レンジを[-d’+offset,d’+offset](=[-15+offset,15+offset](d’=15、offset=60))に設定する。さらに、多値LDP処理部14は、多値LDP処理の入力データti(ti∈[-d,d])の値が、設定した入力レンジ[-d’+offset,d’+offset]内とならない場合、リミット処理を行う。つまり、多値LDP処理部14は、
(1)ti<-d’+offsetである場合、ti=-d’+offsetとし、
(2)ti>d’+offsetである場合、ti=d’+offsetとする
上限、下限リミット処理を行う。
【0083】
(ステップS406):
ステップS406において、多値LDP処理部14は、レンジ[0,1]から、一様(レンジに含まれる数のそれぞれが取得される確率が一様)かつランダムに値x’を取得する。
【0084】
(ステップS407):
ステップS407において、多値LDP処理部14は、ステップS406で取得した値x’がexp(ε2/2)/(exp(ε2/2)+1)よりも小さい値である否かを判定する。
【0085】
そして、多値LDP処理部14は、
(1)値x’がexp(ε2/2)/(exp(ε2/2)+1)よりも小さい値である場合(x<exp(ε2/2)/(exp(ε2/2)+1)を満たす場合)、処理をステップS408に進め、
(2)値x’がexp(ε2/2)/(exp(ε2/2)+1)よりも小さい値ではない場合(x≧exp(ε2/2)/(exp(ε2/2)+1)を満たす場合)、処理をステップS409に進める。
【0086】
(ステップS408):
ステップS408において、多値LDP処理部14は、高確率密度分布領域から、一様かつランダムに取得した値を多値LDP処理の出力データti
**に設定する。
【0087】
具体的には、以下の処理が実行される。
(1)閾値Th以下の領域の処理について
多値LDP処理部14は、入力データ、出力データを、
入力データt
i∈[-d’,d’](上限、下限リミット処理後のデータ)
出力データt
i
**∈[-d’C,d’C]
とし、下記数式で規定される確率密度関数pdf(t
i
**=x|t
i)(入力データt
iが与えられたとき、出力データt
i
**がxである確率密度を返す関数)を用いて、多値LDP処理を行う。
【数1】
高確率密度分布領域は、上記において、確率密度関数pdf(t
i
**=x|t
i)=pとなる領域、すなわち、レンジ[left(t
i),right(t
i)]に相当する。なお、
図4に、確率密度関数pdf(t
i
**=x|t
i)を示す。
図4(a)は、入力データt
i=0の場合の確率密度関数pdf(t
i
**=x|t
i)を示しており、
図4(b)は、入力データt
i=0.5d’の場合の確率密度関数pdf(t
i
**=x|t
i)を示しており、
図4(c)は、入力データt
i=1.0d’の場合の確率密度関数pdf(t
i
**=x|t
i)を示している。
【0088】
図4において、「高密度分布領域」で示した領域が、確率密度関数pdf(t
i
**=x|t
i)=pとなる領域、すなわち、レンジ[left(t
i),right(t
i)]に相当する。また、
図4において、「低密度分布領域」で示した領域が、確率密度関数pdf(t
i
**=x|t
i)=p/exp(ε
2)となる領域、すなわち、レンジ[-d’C,left(t
i))∪(right(t
i),d’C]に相当する。
【0089】
そして、多値LDP処理部14は、高確率密度分布領域(レンジ[left(ti),right(ti)])から、一様かつランダムに取得した値を多値LDP処理の出力データti
**に設定する。これにより、閾値との大小関係を維持しつつ、入力データに対応する出力データに近い値が出力データti
**として取得される。
(2)閾値Thを超える領域の処理について
多値LDP処理部14は、入力データ、出力データを、
入力データti∈[-d’+offset,d’+offset](上限、下限リミット処理後のデータ)
出力データti
**∈[-d’C+offset,d’C+offset]
とし、下記数式で規定される確率密度関数pdf(ti
**=x|ti)(入力データtiが与えられたとき、出力データti
**がxである確率密度を返す関数)を用いて、多値LDP処理を行う。
【0090】
なお、下記数式では、
t
i←t
i-offset
とし、すなわち、値t
iを、値t
i-offsetに置換して、多値LDP処理部14は、下記数式に相当する処理を行う。
【数2】
高確率密度分布領域は、上記において、確率密度関数pdf(t
i
**=x|t
i)=pとなる領域、すなわち、レンジ[left(t
i),right(t
i)]に相当する。
【0091】
そして、多値LDP処理部14は、高確率密度分布領域(レンジ[left(ti),right(ti)])から、一様かつランダムに取得した値を多値LDP処理の出力データti
**に設定する。さらに、多値LDP処理部14は、オフセット調整を行い、
ti
**←ti
**+offset
とし、すなわち、値ti
**を、値ti
**+offsetに置換する。そして、多値LDP処理部14は、オフセット調整後(上記置換後)の値ti
**を、多値LDP処理の出力データti
**に設定する。
【0092】
これにより、閾値との大小関係を維持しつつ、入力データに対応する出力データに近い値が出力データti
**として取得される。
【0093】
(ステップS409):
ステップS409において、多値LDP処理部14は、低確率密度分布領域から、一様かつランダムに取得した値を多値LDP処理の出力データti
**に設定する。
【0094】
具体的には、以下の処理が実行される。
(1)閾値Th以下の領域の処理について
多値LDP処理部14は、入力データ、出力データを、
入力データti∈[-d’,d’](上限、下限リミット処理後のデータ)
出力データti
**∈[-d’C,d’C]
とし、上記(数式1)で規定される確率密度関数pdf(ti
**=x|ti)(入力データtiが与えられたとき、出力データti
**がxである確率密度を返す関数)を用いて、多値LDP処理を行う。
【0095】
低確率密度分布領域は、上記(数式1)で示したように、確率密度関数pdf(ti
**=x|ti)=p/exp(ε2)となる領域、すなわち、レンジ[-d’C,left(ti))∪(right(ti),d’C]に相当する。
【0096】
そして、多値LDP処理部14は、低確率密度分布領域(レンジ[-d’C,left(ti))∪(right(ti),d’C]から、一様かつランダムに取得した値を多値LDP処理の出力データti
**に設定する。これにより、閾値との大小関係を維持しつつ、ノイズを付与し大きく摂動させた出力データti
**が取得される。
(2)閾値Thを超える領域の処理について
多値LDP処理部14は、入力データ、出力データを、
入力データti∈[-d’+offset,d’+offset](上限、下限リミット処理後のデータ)
出力データti
**∈[-d’C+offset,d’C+offset]
とし、上記(数式2)で規定される確率密度関数pdf(ti
**=x|ti)(入力データtiが与えられたとき、出力データti
**がxである確率密度を返す関数)を用いて、多値LDP処理を行う。
【0097】
なお、上記(数式2)では、
ti←ti-offset
とし、すなわち、値tiを、値ti-offsetに置換して、多値LDP処理部14は、下記数式に相当する処理を行う。
【0098】
低確率密度分布領域は、上記(数式2)で示したように、確率密度関数pdf(ti
**=x|ti)=p/exp(ε2)となる領域、すなわち、レンジ[-d’C,left(ti))∪(right(ti),d’C]に相当する。
【0099】
そして、多値LDP処理部14は、低確率密度分布領域(レンジ[-d’C,left(ti))∪(right(ti),d’C]から、一様かつランダムに取得した値を多値LDP処理の出力データti
**に設定する。さらに、多値LDP処理部14は、オフセット調整を行い、
ti
**←ti
**+offset
とし、すなわち、値ti
**を、値ti
**+offsetに置換する。そして、多値LDP処理部14は、オフセット調整後(上記置換後)の値ti
**を、多値LDP処理の出力データti
**に設定する。
【0100】
これにより、閾値との大小関係を維持しつつ、ノイズを付与し大きく摂動させた出力データti
**が取得される。
【0101】
(ステップS410):
ステップS410において、多値LDP処理部14は、ステップS402、ステップS408、またはステップS409で取得(設定)した出力データti
**をデータ逆変換部BE1に出力する。
【0102】
(ステップS5):
ステップS5において、データ逆変換処理(とり得るレンジの変換処理)(レンジをデータ変換部FE1によるデータ変換処理前のレンジに戻す処理)が実行される。具体的には、以下の処理が実行される。
【0103】
データ逆変換部BE1は、多値LDP処理部14から出力されるデータti
**を入力し、また、パラメータ設定部11からデータ逆変換用パラメータpara2を入力する。
【0104】
データ逆変換部BE1は、データti
**に対して、データ逆変換処理(とり得るレンジの変換処理)(レンジをデータ変換部FE1によるデータ変換処理前のレンジに戻す処理)を行い、その取り得る範囲が[Ds,De]となる出力データDoを取得する。
【0105】
なお、データ逆変換部BE1は、データ変換用パラメータpara2に基づいて、データ変換処理(とり得るレンジの変換処理)のオフセット、ゲイン等を設定する。
【0106】
そして、データ逆変換部BE1は、取得したデータDoを出力する。
【0107】
以上により、差分プライバシー処理装置100により差分プライバシー処理が実行される。
【0108】
ここで、
図5~
図8を用いて、差分プライバシー処理装置100による処理例について、説明する。
【0109】
図5は、入力データDin(血圧値)が100mmHg(<Th_org=130mmHg)の場合の差分プライバシー処理装置100による処理を説明するための図である。
【0110】
図6は、入力データDin(血圧値)が125mmHg(<Th_org=130mmHg)の場合の差分プライバシー処理装置100による処理を説明するための図である。
【0111】
図7は、入力データDin(血圧値)が160mmHg(>Th_org=130mmHg)の場合の差分プライバシー処理装置100による処理を説明するための図である。
【0112】
図8は、入力データDin(血圧値)が135mmHg(>Th_org=130mmHg)の場合の差分プライバシー処理装置100による処理を説明するための図である。
【0113】
≪A1:入力データDinが100mmHg(<Th_org=130mmHg)の場合≫
入力データDinが100mmHg(<Th_org=130mmHg)の場合、
図5に示すように、データ変換部FE1によるデータ変換処理後の出力データt
iは、
t
i=0(=100-100)
となる(ステップS1)。
【0114】
また、閾値Thは、Th=Th_org-100=30であり、
ti<Th(=30)
であるので、二値化処理部12は、ti’=0に設定する(ステップS2)。
【0115】
(A1.1)(
図5の(3A)の場合に相当):
二値LDP処理部13による二値LDP処理により、t
i
*=NOT(t’
i)となった場合(t
i
*=NOT(t’
i)となる確率:1/(exp(ε
1)+1))、すなわち、t
i
*=NOT(t’
i)=1(t
i’=0)となった場合、多値LDP処理部14は、t
i
**として、Thを超える値をランダムに選択し、例えば、t
i
**=50(>Th=30)に設定する(ステップS402)。
【0116】
そして、データ逆変換部BE1によるデータ逆変換処理により、
Do=150mmHg(=ti
**+100)
として、出力データDout=Do=150mmHgが取得される(ステップS5)。つまり、二値LDP処理による摂動データ(閾値Thを超えるようにノイズが付与された摂動データ)が取得される。
【0117】
(A1.2)(
図5の(3B)の場合に相当):
二値LDP処理部13による二値LDP処理により、t
i
*=t’
iとなった場合(t
i
*=t’
iとなる確率:exp(ε
1)/(exp(ε
1)+1))、すなわち、t
i
*=t’
i=0となった場合、多値LDP処理部14は、ε
2(=2×log(3))に基づいて、値Cを
C=(exp(ε
2/2)+1)/(exp(ε
2/2)-1)=2
に設定する(ステップS403)。
【0118】
そして、多値LDP処理部14は、
abs(d’C)≦abs(Th)
を満たすように、値d’を決定する。閾値Th=30であるので、多値LDP処理部14は、
abs(d’C)≦30
を満たすように、値d’を決定する。多値LDP処理部14は、例えば、
d’=15
に設定する。これにより、多値LDP処理後のデータのレンジ(出力レンジ)は、[-30,30](=[-d’C,d’C]、d’=15、C=2)に設定される(ステップS404)。
【0119】
そして、多値LDP処理部14は、多値LDP処理の入力レンジを[-d’,d’](=[-15,15](d’=15))に設定する。さらに、多値LDP処理部14は、多値LDP処理の入力データti(ti∈[-d,d])の値が、設定した入力レンジ[-d’,d’]内とならない場合、リミット処理を行う。つまり、多値LDP処理部14は、
(1)ti<-d’である場合、ti=-d’とし、
(2)ti>d’である場合、ti=d’とする
上限、下限リミット処理を行う。
【0120】
図5の場合、t
i=0であり、多値LDP処理の入力データt
i(t
i∈[-d,d])の値が、設定した入力レンジ[-d’,d’]内であるので、上限、下限リミット処理後のデータt
iは変化せず、t
i=0である(ステップS405)。
【0121】
そして、多値LDP処理部14は、ステップS406、S407の処理により、(1)exp(ε2/2)/(exp(ε2/2)+1)の確率で、ステップS408の処理を実行し、(2)1/(exp(ε2/2)+1)の確率で、ステップS409の処理を実行する。
【0122】
図5は、ステップS408の処理が実行された場合を示している(
図5の右下図)。この場合、多値LDP処理部14は、高確率密度分布領域(レンジ[left(t
i),right(t
i)])から、一様かつランダムに取得した値を多値LDP処理の出力データt
i
**に設定する。例えば、多値LDP処理部14は、t
i
**=8に設定する(
図5の右下図)。t
i
**=8は、レンジ[-d’C,d’C]に含まれており、多値LDP処理部14による多値LDP処理後のデータt
i
**が、閾値Thを超えないデータとなることが保証されている。
【0123】
これにより、閾値との大小関係を維持しつつ、入力データti(=0)(100mmHgに対応)に対応する出力データに近い値が出力データti
**(=8)(108mmHgに対応)として取得される。
【0124】
そして、データ逆変換部BE1によるデータ逆変換処理により、
Do=108mmHg(=ti
**+100)
として、出力データDout=Do=108mmHgが取得される(ステップS5)。
【0125】
つまり、閾値との大小関係を維持しつつ、入力データDi(=100mmHg)に対応する出力データに近い値が出力データDO(=108mmHgに対応)として取得される。
【0126】
なお、ステップS406、S407の処理により、1/(exp(ε2/2)+1)の確率で、ステップS409の処理が実行されることになった場合においても、出力データti
**はレンジ[-d’C,d’C]となることが保証されるので、出力データDoが閾値Th_org(=130mmHg)以下のデータとなることが保証され、その結果、閾値との大小関係を維持しつつ、摂動データDOが取得される。
【0127】
≪A2:入力データDinが125mmHg(<Th_org=130mmHg)の場合≫
入力データDinが125mmHg(<Th_org=130mmHg)の場合(入力データDinが閾値Th_org近傍の値である場合)、
図6に示すように、データ変換部FE1によるデータ変換処理後の出力データt
iは、
t
i=25(=125-100)
となる(ステップS1)。
【0128】
また、閾値Thは、Th=Th_org-100=30であり、
ti<Th(=30)
であるので、二値化処理部12は、ti’=0に設定する(ステップS2)。
【0129】
(A2.1)(
図6の(3A)の場合に相当):
二値LDP処理部13による二値LDP処理により、t
i
*=NOT(t’
i)となった場合(t
i
*=NOT(t’
i)となる確率:1/(exp(ε
1)+1))、すなわち、t
i
*=NOT(t’
i)=1(t
i’=0)となった場合、多値LDP処理部14は、t
i
**として、Thを超える値をランダムに選択し、例えば、t
i
**=50(>Th=30)に設定する(ステップS402)。
【0130】
そして、データ逆変換部BE1によるデータ逆変換処理により、
Do=150mmHg(=ti
**+100)
として、出力データDout=Do=150mmHgが取得される(ステップS5)。つまり、二値LDP処理による摂動データ(閾値Thを超えるようにノイズが付与された摂動データ)が取得される。
【0131】
(A2.2)(
図6の(3B)の場合に相当):
二値LDP処理部13による二値LDP処理により、t
i
*=t’
iとなった場合(t
i
*=t’
iとなる確率:exp(ε
1)/(exp(ε
1)+1))、すなわち、t
i
*=t’
i=1となった場合、多値LDP処理部14は、ε
2(=2×log(3))に基づいて、値Cを
C=(exp(ε
2/2)+1)/(exp(ε
2/2)-1)=2
に設定する(ステップS403)。
【0132】
そして、 多値LDP処理部14は、
abs(d’C)≦abs(Th)
を満たすように、値d’を決定する。閾値Th=30であるので、多値LDP処理部14は、
abs(d’C)≦30
を満たすように、値d’を決定する。多値LDP処理部14は、例えば、
d’=15
に設定する。これにより、多値LDP処理後のデータのレンジ(出力レンジ)は、[-30,30](=[-d’C,d’C]、d’=15、C=2)に設定される(ステップS404)。
【0133】
そして、多値LDP処理部14は、多値LDP処理の入力レンジを[-d’,d’](=[-15,15](d’=15))に設定する。さらに、多値LDP処理部14は、多値LDP処理の入力データti(ti∈[-d,d])の値が、設定した入力レンジ[-d’,d’]内とならない場合、リミット処理を行う。つまり、多値LDP処理部14は、
(1)ti<-d’である場合、ti=-d’とし、
(2)ti>d’である場合、ti=d’とする
上限、下限リミット処理を行う。
【0134】
図6の場合、t
i=25であり、多値LDP処理の入力データt
i(t
i∈[-d,d]=[-15,15])の値が、設定した入力レンジ[-d’,d’]内ではないので(上限を超えているので)、上限、下限リミット処理後のデータt
iは、t
i=15である(ステップS405)。
【0135】
そして、多値LDP処理部14は、ステップS406、S407の処理により、(1)exp(ε2/2)/(exp(ε2/2)+1)の確率で、ステップS408の処理を実行し、(2)1/(exp(ε2/2)+1)の確率で、ステップS409の処理を実行する。
【0136】
図6は、ステップS408の処理が実行された場合を示している(
図6の右下図)。この場合、多値LDP処理部14は、高確率密度分布領域(レンジ[left(t
i),right(t
i)])から、一様かつランダムに取得した値を多値LDP処理の出力データt
i
**に設定する。例えば、多値LDP処理部14は、t
i
**=23に設定する(
図5の右下図)。t
i
**=23は、レンジ[-d’C,d’C]に含まれており、多値LDP処理部14による多値LDP処理後のデータt
i
**が、閾値Thを超えないデータとなることが保証されている。
【0137】
これにより、閾値との大小関係を維持しつつ、入力データti(=25)(125mmHgに対応)に対応する出力データに近い値が出力データti
**(=23)(123mmHgに対応)として取得される。
【0138】
そして、データ逆変換部BE1によるデータ逆変換処理により、
Do=123mmHg(=ti
**+100)
として、出力データDout=Do=123mmHgが取得される(ステップS5)。
【0139】
つまり、閾値との大小関係を維持しつつ、入力データDi(=125mmHg)に対応する出力データに近い値が出力データDO(=123mmHgに対応)として取得される。
【0140】
なお、ステップS406、S407の処理により、1/(exp(ε2/2)+1)の確率で、ステップS409の処理が実行されることになった場合においても、出力データti
**はレンジ[-d’C,d’C]となることが保証されるので、出力データDoが閾値Th_org(=130mmHg)以下のデータとなることが保証され、その結果、閾値との大小関係を維持しつつ、摂動データDOが取得される。
【0141】
≪B1:入力データDinが160mmHg(>Th_org=130mmHg)の場合≫
入力データDinが160mmHg(>Th_org=130mmHg)の場合、
図7に示すように、データ変換部FE1によるデータ変換処理後の出力データt
iは、
t
i=60(=160-100)
となる(ステップS1)。
【0142】
また、閾値Thは、Th=Th_org-100=30であり、
ti>Th(=30)
であるので、二値化処理部12は、ti’=1に設定する(ステップS2)。
【0143】
(B1.1)(
図7の(3A)の場合に相当):
二値LDP処理部13による二値LDP処理により、t
i
*=NOT(t’
i)となった場合(t
i
*=NOT(t’
i)となる確率:1/(exp(ε
1)+1))、すなわち、t
i
*=NOT(t’
i)=0(t
i’=1)となった場合、多値LDP処理部14は、t
i
**として、Th以下の値をランダムに選択し、例えば、t
i
**=0(<Th=30)に設定する(ステップS402)。
【0144】
そして、データ逆変換部BE1によるデータ逆変換処理により、
Do=100mmHg(=ti
**+100)
として、出力データDout=Do=100mmHgが取得される(ステップS5)。つまり、二値LDP処理による摂動データ(閾値Thを超えるようにノイズが付与された摂動データ)が取得される。
【0145】
(B1.2)(
図7の(3B)の場合に相当):
二値LDP処理部13による二値LDP処理により、t
i
*=t’
iとなった場合(t
i
*=t’
iとなる確率:exp(ε
1)/(exp(ε
1)+1))、すなわち、t
i
*=t’
i=1となった場合、多値LDP処理部14は、ε
2(=2×log(3))に基づいて、値Cを
C=(exp(ε
2/2)+1)/(exp(ε
2/2)-1)=2
に設定する(ステップS403)。
【0146】
そして、多値LDP処理部14は、
abs(-d’C)≦abs(Th-offset)
を満たすように、値d’を決定する。ここで、オフセット値offset=60とする。閾値Th=30(Th-offset=-30)であるので、多値LDP処理部14は、
abs(-d’C)≦30(=abs(Th-offset))
を満たすように、値d’を決定する。第2プライバシーパラメータε2=2×log(3)であり、C=2であるので、多値LDP処理部14は、例えば、
d’=15
に設定する。これにより、多値LDP処理後のデータのレンジ(出力レンジ)は、[-30+offset,30+offset](=[-d’C+offset,d’C+offset]、d’=15、C=2、offset=60)に設定される(ステップS404)。
【0147】
そして、多値LDP処理部14は、多値LDP処理の入力レンジを[-d’+offset,d’+offset](=[-15+offset,15+offset](d’=15、offset=60))に設定する。さらに、多値LDP処理部14は、多値LDP処理の入力データti(ti∈[-d,d])の値が、設定した入力レンジ[-d’+offset,d’+offset]内とならない場合、リミット処理を行う。つまり、多値LDP処理部14は、
(1)ti<-d’+offsetである場合、ti=-d’+offsetとし、
(2)ti>d’+offsetである場合、ti=d’+offsetとする
上限、下限リミット処理を行う。
【0148】
図7の場合、t
i=60であり、多値LDP処理の入力データt
i(t
i∈[-d,d])の値が、設定した入力レンジ[-d’+offset,d’+offset]内であるので、上限、下限リミット処理後のデータt
iは変化せず、t
i=60である(ステップS405)。
【0149】
そして、多値LDP処理部14は、ステップS406、S407の処理により、(1)exp(ε2/2)/(exp(ε2/2)+1)の確率で、ステップS408の処理を実行し、(2)1/(exp(ε2/2)+1)の確率で、ステップS409の処理を実行する。
【0150】
図7は、ステップS408の処理が実行された場合を示している(
図7の右下図)。この場合、多値LDP処理部14は、高確率密度分布領域(レンジ[left(t
i),right(t
i)])から、一様かつランダムに取得した値を多値LDP処理の出力データt
i
**に設定する。なお、多値LDP処理部14は、
t
i←t
i-offset
とし、すなわち、値t
iを、値t
i-offsetに置換して、(数式2)に相当する処理を行う。
【0151】
例えば、多値LDP処理部14は、t
i
**=-8に設定する(
図7の右下図)。t
i
**=-8は、レンジ[-d’C,d’C]に含まれており、多値LDP処理部14による多値LDP処理後のデータt
i
**が、閾値Thを超えないデータとなることが保証されている。
【0152】
これにより、閾値との大小関係を維持しつつ、入力データti(=60)(160mmHgに対応)に対応する出力データに近い値が出力データti
**(=-8+offset=52)(152mmHgに対応)として取得される。
【0153】
そして、データ逆変換部BE1によるデータ逆変換処理により、
Do=152mmHg(=ti
**+100)
として、出力データDout=Do=152mmHgが取得される(ステップS5)。
【0154】
つまり、閾値との大小関係を維持しつつ、入力データDi(=160mmHg)に対応する出力データに近い値が出力データDO(=152mmHgに対応)として取得される。
【0155】
なお、ステップS406、S407の処理により、1/(exp(ε2/2)+1)の確率で、ステップS409の処理が実行されることになった場合においても、出力データti
**はレンジ[-d’C+offset,d’C+offset]となることが保証されるので、出力データDoが閾値Th_org(=130mmHg)を超えるデータとなることが保証され、その結果、閾値との大小関係を維持しつつ、摂動データDOが取得される。
【0156】
≪B2:入力データDinが135mmHg(>Th_org=130mmHg)の場合≫
入力データDinが135mmHg(>Th_org=130mmHg)の場合(入力データDinが閾値Th_org近傍の値である場合)、
図8に示すように、データ変換部FE1によるデータ変換処理後の出力データt
iは、
t
i=35(=135-100)
となる(ステップS1)。
【0157】
また、閾値Thは、Th=Th_org-100=30であり、
ti>Th(=30)
であるので、二値化処理部12は、ti’=1に設定する(ステップS2)。
【0158】
(B2.1)(
図8の(3A)の場合に相当):
二値LDP処理部13による二値LDP処理により、t
i
*=NOT(t’
i)となった場合(t
i
*=NOT(t’
i)となる確率:1/(exp(ε
1)+1))、すなわち、t
i
*=NOT(t’
i)=0(t
i’=1)となった場合、多値LDP処理部14は、t
i
**として、Th以下の値をランダムに選択し、例えば、t
i
**=0(<Th=30)に設定する(ステップS402)。
【0159】
そして、データ逆変換部BE1によるデータ逆変換処理により、
Do=100mmHg(=ti
**+100)
として、出力データDout=Do=100mmHgが取得される(ステップS5)。つまり、二値LDP処理による摂動データ(閾値Thを超えるようにノイズが付与された摂動データ)が取得される。
【0160】
(B2.2)(
図8の(3B)の場合に相当):
二値LDP処理部13による二値LDP処理により、t
i
*=t’
iとなった場合(t
i
*=t’
iとなる確率:exp(ε
1)/(exp(ε
1)+1))、すなわち、t
i
*=t’
i=1となった場合、多値LDP処理部14は、第2プライバシーパラメータε
2(=2×log(3))に基づいて、値Cを
C=(exp(ε
2/2)+1)/(exp(ε
2/2)-1)=2
に設定する(ステップS403)。
【0161】
そして、多値LDP処理部14は、
abs(-d’C)≦abs(Th-offset)
を満たすように、値d’を決定する。ここで、オフセット値offset=60とする。閾値Th=30(Th-offset=-30)であるので、多値LDP処理部14は、
abs(-d’C)≦30(=abs(Th-offset))
を満たすように、値d’を決定する。第2プライバシーパラメータε2=2×log(3)であり、C=2であるので、多値LDP処理部14は、例えば、
d’=15
に設定する。これにより、多値LDP処理後のデータのレンジ(出力レンジ)は、[-30+offset,30+offset](=[-d’C+offset,d’C+offset]、d’=15、C=2、offset=60)に設定される(ステップS404)。
【0162】
そして、多値LDP処理部14は、多値LDP処理の入力レンジを[-d’+offset,d’+offset](=[-15+offset,15+offset](d’=15、offset=60))に設定する。さらに、多値LDP処理部14は、多値LDP処理の入力データti(ti∈[-d,d])の値が、設定した入力レンジ[-d’+offset,d’+offset]内とならない場合、リミット処理を行う。つまり、多値LDP処理部14は、
(1)ti<-d’+offsetである場合、ti=-d’+offsetとし、
(2)ti>d’+offsetである場合、ti=d’+offsetとする
上限、下限リミット処理を行う。
【0163】
図8の場合、t
i=35であり、多値LDP処理の入力データt
i(t
i∈[-d,d])の値が、設定した入力レンジ[-d’+offset,d’+offset]内ではないので(上限を下回っているので)、上限、下限リミット処理後のデータt
iは、t
i=45(=-d’+offset=-15+60)である(ステップS405)。
【0164】
そして、多値LDP処理部14は、ステップS406、S407の処理により、(1)exp(ε2/2)/(exp(ε2/2)+1)の確率で、ステップS408の処理を実行し、(2)1/(exp(ε2/2)+1)の確率で、ステップS409の処理を実行する。
【0165】
図8は、ステップS408の処理が実行された場合を示している(
図8の右下図)。この場合、多値LDP処理部14は、高確率密度分布領域(レンジ[left(t
i),right(t
i)])から、一様かつランダムに取得した値を多値LDP処理の出力データt
i
**に設定する。なお、多値LDP処理部14は、
t
i←t
i-offset
とし、すなわち、値t
iを、値t
i-offsetに置換して、(数式2)に相当する処理を行う。
【0166】
例えば、多値LDP処理部14は、t
i
**=-22に設定する(
図8の右下図)。t
i
**=-22は、レンジ[-d’C,d’C]に含まれており、多値LDP処理部14による多値LDP処理後のデータt
i
**が、閾値Thを超えるデータとなることが保証されている。
【0167】
これにより、閾値との大小関係を維持しつつ、入力データti(=35)(135mmHgに対応)に対応する出力データに近い値が出力データti
**(=-22+offset=38)(138mmHgに対応)として取得される。
【0168】
そして、データ逆変換部BE1によるデータ逆変換処理により、
Do=138mmHg(=ti
**+100)
として、出力データDout=Do=138mmHgが取得される(ステップS5)。
【0169】
つまり、閾値との大小関係を維持しつつ、入力データDi(=135mmHg)に対応する出力データに近い値が出力データDO(=138mmHgに対応)として取得される。
【0170】
なお、ステップS406、S407の処理により、1/(exp(ε2/2)+1)の確率で、ステップS409の処理が実行されることになった場合においても、出力データti
**はレンジ[-d’C+offset,d’C+offset]となることが保証されるので、出力データDoが閾値Th_org(=130mmHg)を超えるデータとなることが保証され、その結果、閾値との大小関係を維持しつつ、摂動データDOが取得される。
【0171】
≪まとめ≫
以上のように、差分プライバシー処理装置100では、閾値を考慮した二値化処理を行った後、第1プライバシーパラメータε1による二値LDP処理を行い、さらに、閾値との大小関係を維持する多値データを出力する多値LDP処理を行う。つまり、差分プライバシー処理装置100では、閾値を考慮した二値化処理を行った後、第1プライバシーパラメータε1による二値LDP処理を行うので、第1プライバシーパラメータε1にのみ依存した一定の確率で閾値を跨がない差分プライバシーを満たす摂動データを生成(取得)することができる。
【0172】
さらに、差分プライバシー処理装置100では、二値LDP処理で閾値を跨がないデータについては、閾値との大小関係を維持しつつ、第2プライバシーパラメータε2による多値LDP処理を行うので、閾値との大小関係を維持した摂動データを生成(取得)することができる。
【0173】
したがって、差分プライバシー処理装置100では、入力データと閾値との大小関係と、出力データと閾値との大小関係とを高い確率で維持し、プライバシー保護を実現しつつ適切なデータ錯乱メカニズムを実現することができる。すなわち、差分プライバシー処理装置100では、データの閾値を考慮したノイズを付与する差分プライバシーメカニズムを実現する差分プライバシー処理を行うことができる。
【0174】
なお、差分プライバシー処理装置100は、例えば、ユーザー端末(例えば、携帯端末装置、携帯電話、パーソナルコンピュータ等)に搭載され、ユーザー端末で差分プライバシー処理を行ったデータを、ユーザー端末からアグリゲータへ送信する形態で使用される。
【0175】
例えば、
図9に示すように、n個(n:自然数)のユーザー端末UE1~UEnのそれぞれに、差分プライバシー処理装置100が搭載され、差分プライバシー処理を行ったデータD_LDP(UEk)(k:自然数、1≦k≦n)がアグリゲータAgr1に送信される。
【0176】
そして、アグリゲータAgr1は、ユーザー端末UEkから送信された差分プライバシー処理を行ったデータD_LDP(UEk)を受信し、受信したデータを、例えば、記憶装置(例えば、データベース)に記憶保持する。そして、アグリゲータAgr1は、外部のユーザーから、アグリゲータAgr1で記憶保持されているデータの統計データの取得要求を受けたとき、アグリゲータAgr1が記憶保持している差分プライバシー処理済みのデータ(ユーザー端末UEkから送信された差分プライバシー処理を行ったデータD_LDP(UEk))の統計データを、上記外部のユーザーに提供する。これにより、
図9に示した形態により、アグリゲータAgr1から統計データの提供をしつつ、統計データの個々のデータのプライバシーを保護することができる。
【0177】
なお、上記では、差分プライバシー処理装置100がユーザー端末に搭載される例であるが、アグリゲータAgr1に差分プライバシー処理装置100を搭載し、アグリゲータAgr1側で、差分プライバシー処理装置100による差分プライバシー処理を行うようにしてもよい。
【0178】
[他の実施形態]
なお、上記実施形態の差分プライバシー処理装置100でのパラメータの設定値は一例であり、上記に限定されることはなく、差分プライバシー処理装置100でのパラメータの設定値を他の設定値としてもよい。例えば、第1プライバシーパラメータε1、第2プライバシーパラメータε2については、設定したいプライバシー強度に応じて適切な値に設定するようにしてもよい。
【0179】
また、第2プライバシーパラメータε2については、例えば、ステップS405での上限、下限リミット処理にかかるデータが多い場合(上限を超えるデータ、および/または、下限を下回るデータが多い場合)、上限、下限リミット処理にかかるデータが減少するように調整してもよい。
【0180】
また、例えば、ステップS405での上限、下限リミット処理にかかるデータが多い場合(上限を超えるデータ、および/または、下限を下回るデータが多い場合)、上限、下限リミット処理にかかるデータが減少するように、第2プライバシーパラメータε2、値C、値d’、ゲイン値(例えば、レンジ変換用のゲイン)および/または、オフセット値(例えば、レンジ変換用のオフセット値)等を調整してもよい。このような調整をすることで、リミットされるデータが減少し、入力データの分布と、差分プライバシー処理装置100により差分プライバシー処理を施されたデータ(摂動データ)の分布とが近くなる。
【0181】
また、上記実施形態で説明した差分プライバシー処理装置100において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
【0182】
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0183】
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【0184】
また、上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
【0185】
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
【0186】
例えば、上記実施形態の各機能部を、ソフトウェアにより実現する場合、
図10に示したハードウェア構成(例えば、CPU(GPUを含む)、ROM、RAM、入力部、出力部等をバスBusにより接続したハードウェア構成)を用いて、各機能部をソフトウェア処理により実現するようにしてもよい。
【0187】
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【0188】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、大容量DVD、次世代DVD、半導体メモリを挙げることができる。
【0189】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【0190】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【符号の説明】
【0191】
100 差分プライバシー処理装置
11 パラメータ設定部
12 二値化処理部
13 二値LDP処理部
14 多値LDP処理部