(57)【要約】  擬似データ生成装置は、オリジナルデータに含まれるカテゴリ属性の値を符号化ルールに従い数値属性の値に符号化し、数値属性のための擬似データ生成方法を用いて符号化後のオリジナルデータから第一擬似データを生成し、第一擬似データに含まれる、カテゴリ属性の値に対応する数値属性の値が、その数値属性の値が取り得る値の範囲を超えている場合には、その数値属性の値を、その数値属性の値が取り得る値の範囲に含まれる値に変換し、変換後の第一擬似データに含まれるカテゴリ属性の値に対応する数値属性の値を符号化ルールに従いカテゴリ属性の値に復号し、擬似データとする。
2019073912.tif 000002
【特許請求の範囲】
【請求項１】
オリジナルデータに含まれるカテゴリ属性の値を符号化ルールに従い数値属性の値に符号化する符号化部と、
数値属性のための擬似データ生成方法を用いて符号化後のオリジナルデータから第一擬似データを生成するデータ整形部と、
前記第一擬似データに含まれる、前記カテゴリ属性の値に対応する前記数値属性の値が、その数値属性の値が取り得る値の範囲を超えている場合には、その数値属性の値を、その数値属性の値が取り得る値の範囲に含まれる値に変換する変換部と、
変換後の第一擬似データに含まれる前記カテゴリ属性の値に対応する前記数値属性の値を前記符号化ルールに従いカテゴリ属性の値に復号し、擬似データとする復号部と、を含む、
擬似データ生成装置。
【請求項２】
擬似データ生成装置が行う擬似データ生成方法であって、
オリジナルデータに含まれるカテゴリ属性の値を符号化ルールに従い数値属性の値に符号化する符号化ステップと、
数値属性のための擬似データ生成方法を用いて符号化後のオリジナルデータから第一擬似データを生成するデータ整形ステップと、
前記第一擬似データに含まれる、前記カテゴリ属性の値に対応する前記数値属性の値が、その数値属性の値が取り得る値の範囲を超えている場合には、その数値属性の値を、その数値属性の値が取り得る値の範囲に含まれる値に変換する変換ステップと、
変換後の第一擬似データに含まれる前記カテゴリ属性の値に対応する前記数値属性の値を前記符号化ルールに従いカテゴリ属性の値に復号し、擬似データとする復号ステップと、を含む、
擬似データ生成方法。
【請求項３】
請求項１の擬似データ生成装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、擬似データ生成技術に関する。
【背景技術】
【０００２】
プライバシ保護の分野では、セキュリティなどの問題で個人情報を含んだオリジナルデータを扱えない場合、代用として擬似データを生成して分析等を行うことがある。ここでは表形式のオリジナルデータから表形式の擬似データを作成するケースを考える。表形式のデータの例を図１に示す。表形式のデータを行列とみなし、行ベクトルをレコード、列ベクトルを属性と呼ぶ。オリジナルデータと擬似データとは、行数は異なることもあるが、列数は同じである。オリジナルデータの行数をn>0、擬似データの行数をn'>0とする。オリジナルデータと擬似データには、文字列のみが格納されているとする。【０００３】
図１のように表形式のデータには、年齢、身長、体重などの数値属性と、職業、最終学歴、血液型などのカテゴリ属性とが含まれることがある。従来、作成したい擬似データが数値属性のみを持つ表の場合、乱数群をオリジナルデータ内の属性間の関係性(分散共分散や相関など)を保持できるよう整形することで擬似データを生成する方法がある。また、数値属性とカテゴリ属性とを含むオリジナルデータの全ての属性間の関係性を保持する擬似データの生成方法として、非特許文献１が知られている。非特許文献１では、オリジナルデータ内に存在するカテゴリの組を全て列挙し、そのカテゴリの組毎にオリジナルデータの数値属性の性質を保持する擬似データを生成し、統合することでオリジナルデータ全体の属性間の性質を保持する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】独立行政法人統計センター、「教育用擬似ミクロデータの開発とその利用〜平成16年全国消費実態調査を例として〜」、2012年.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来手法によるカテゴリ属性を含む擬似データの生成では、オリジナルデータ内に存在するカテゴリの組の個数分、属性間の性質を保持する擬似データを生成する必要がある。そのため、カテゴリの組が増えるほど計算効率が悪くなる。【０００６】
本発明は、カテゴリ属性を含む擬似データに対しても、数値属性のみを含む擬似データと同様の効率で、カテゴリ属性を含むオリジナルデータの全ての属性間の関係性を保持する擬似データを生成する擬似データ生成装置、その方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明の一態様によれば、擬似データ生成装置は、オリジナルデータに含まれるカテゴリ属性の値を符号化ルールに従い数値属性の値に符号化する符号化部と、数値属性のための擬似データ生成方法を用いて符号化後のオリジナルデータから第一擬似データを生成するデータ整形部と、第一擬似データに含まれる、カテゴリ属性の値に対応する数値属性の値が、その数値属性の値が取り得る値の範囲を超えている場合には、その数値属性の値を、その数値属性の値が取り得る値の範囲に含まれる値に変換する変換部と、変換後の第一擬似データに含まれるカテゴリ属性の値に対応する数値属性の値を符号化ルールに従いカテゴリ属性の値に復号し、擬似データとする復号部と、を含む。【０００８】
上記の課題を解決するために、本発明の他の態様によれば、擬似データ生成装置が行う擬似データ生成方法は、オリジナルデータに含まれるカテゴリ属性の値を符号化ルールに従い数値属性の値に符号化する符号化ステップと、数値属性のための擬似データ生成方法を用いて符号化後のオリジナルデータから第一擬似データを生成するデータ整形ステップと、第一擬似データに含まれる、カテゴリ属性の値に対応する数値属性の値が、その数値属性の値が取り得る値の範囲を超えている場合には、その数値属性の値を、その数値属性の値が取り得る値の範囲に含まれる値に変換する変換ステップと、変換後の第一擬似データに含まれるカテゴリ属性の値に対応する数値属性の値を符号化ルールに従いカテゴリ属性の値に復号し、擬似データとする復号ステップと、を含む。
【発明の効果】
【０００９】
本発明によれば、カテゴリ属性を含む擬似データに対しても、数値属性のみを含む擬似データと同様の効率で、カテゴリ属性を含むオリジナルデータの全ての属性間の関係性を保持する擬似データを生成することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】本願明細書で扱う表形式のデータの例を示す図。
【図２】第一実施形態に係る擬似データ生成装置の機能ブロック図。
【図３】第一実施形態に係る擬似データ生成装置の処理フローの例を示す図。
【図４】符号化ルールの例を示す図。
【図５】符号化部における符号化前のデータと符号化後のデータの例を示す図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。以下の説明において、テキスト中で使用する記号「-」等は、本来直前の文字の真上に記載されるべきものであるが、テキスト記法の制限により、当該文字の直後に記載する。式中においてはこれらの記号は本来の位置に記述している。また、ベクトルや行列の各要素単位で行われる処理は、特に断りが無い限り、そのベクトルやその行列の全ての要素に対して適用されるものとする。
【００１２】
＜第一実施形態のポイント＞
カテゴリ属性を符号化(例えばバイナリ化)して数値属性に変換する。例えば、オリジナルデータのカテゴリ属性を符号化して数値属性のみを持つ表に変換する。変換した表を元に任意の数値属性のための擬似データ生成方法により数値属性のみの擬似データを生成する。数値属性のみの擬似データのカテゴリ属性の数値を元のカテゴリ値に復号することで、カテゴリ属性を含む擬似データを生成する。これにより、計算量の大きい擬似データ生成処理が1回のみですむ。そのため、カテゴリの組の数が増えても効率的に擬似データ生成が行える。言い換えると、一度に属性間の性質を保持する処理を行うことができるため、計算効率が向上する。
【００１３】
＜第一実施形態＞
図２は第一実施形態に係る擬似データ生成装置の機能ブロック図を、図３はその処理フローを示す。
第一実施形態に係る擬似データ生成装置は、符号化部１１０、符号化ルール記憶部１２０、データ整形部１３０、変換部１４０及び復号部１５０を含む。
【００１４】
擬似データ生成装置は、例えば、中央演算処理装置（CPU: Central Processing Unit）、主記憶装置（RAM: Random Access Memory）などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。擬似データ生成装置は、例えば、中央演算処理装置の制御のもとで各処理を実行する。擬似データ生成装置に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。擬似データ生成装置の各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。擬似データ生成装置が備える各記憶部は、例えば、RAM（Random Access Memory）などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリ（Flash Memory）のような半導体メモリ素子により構成される補助記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。
【００１５】
第一実施形態に係る擬似データ生成装置は、オリジナルデータDと生成する擬似データに含まれるレコード数n'を入力とし、擬似データD'を生成し、出力する。なお、オリジナルデータの各属性のヒストグラム及び二次元クロス集計表と、擬似データの各属性のヒストグラム及び二次元クロス集計表とが近似するように擬似データD'を生成するものとする。なお、近似の精度は、擬似データに含まれるレコード数n'が大きさと関連し、n'が大きくなるほど近似の精度は高くなりやすい。
【００１６】
以下、各部の処理内容を説明する。
＜符号化ルール記憶部１２０＞
符号化ルール記憶部１２０には、符号化ルールが記憶される。図４は、符号化ルールの例を示す。例えば、符号化ルールは、符号とカテゴリ属性の値との対応関係を示す。
【００１７】
＜符号化部１１０＞
入力:オリジナルデータD
出力:カテゴリ属性の各値が符号化(数値ベクトル化)された表形式のデータ(符号化後のオリジナルデータ)X
【００１８】
符号化部１１０は、オリジナルデータDに含まれるカテゴリ属性の値を符号化ルール(例えば図４参照)に従い数値属性の値に符号化(数値ベクトル化)し（Ｓ１１０）、符号化後のオリジナルデータXを出力する。図５は、符号化前のオリジナルデータと符号化後のオリジナルデータの例を示す。
【００１９】
例えば、オリジナルデータD内の全てのカテゴリ属性の値を公知の1-of-K符号化法によって数値ベクトルへ変換し、変換したオリジナルデータXを出力する。
【００２０】
例えば、1-of-K符号化法は下記の四種類がある。ここでは便宜上、符号化法A、B、C、Dとして記載する。使用する方法によって、最終的に得られる擬似データD'の結果が異なるため、本手法内では、擬似データD'がオリジナルデータDに近似できる方を用いる。
【００２１】
符号化法A：ある属性の取りうる値が(S1,S2,S3)であるとき、S1=(0,0)、S2=(1,0)、S3=(0,1)とする方法。この方法では、長さpのビット列を用いて、2p種類のカテゴリ属性の値を表現することができる。
符号化法B：ある属性の取りうる値が(S1,S2,S3)であるとき、S1=(1,0,0)、S2=(0,1,0)、S3=(0,0,1)とする方法。この方法では、長さpのビット列を用いて、p種類のカテゴリ属性の値を表現することができる。
符号化法C：ある属性の取りうる値が(S1,S2,S3)であるとき、S1=0、S2=1、S3=2とする方法。
符号化法D：ある属性の取りうる値が(S1,S2,S3)であるとき、S1=1、S2=2、S3=3とする方法。符号化法C,Dでは、p個の数値を使ってp種類のカテゴリ属性の値を表現することができる。
【００２２】
例えば、図４では符号化法Dを用いている。
【００２３】
＜データ整形部１３０＞
入力:符号化後のオリジナルデータX,擬似データに含まれるレコード数n'
出力:第一擬似データY
【００２４】
データ整形部１３０は、数値属性のための擬似データ生成方法を用いて符号化後のオリジナルデータXから所望のレコード数n'を含む第一擬似データYを生成し（Ｓ１３０）、出力する。数値属性のための擬似データ生成方法には様々な公知の技術を利用できる。例えば、参考文献１または参考文献２の方法を利用することができる。
(参考文献１)Zhengli Huang, Wenliang Du, and Biao Chen. "Deriving private information from randomized data", In Proceedings of the 2005 ACM SIGMOD international conference on Management of data, pp. 37-48. ACM, 2005.
(参考文献２)Haoran Li, Li Xiong, and Xiaoqian Jiang. "Differentially private synthesization of multi-dimensional data using copula functions", In Advances in database technology: proceedings. International Conference on Extending Database Technology, Vol. 2014, p. 475. NIH Public Access, 2014.
【００２５】
＜変換部１４０＞
入力:第一擬似データY
出力:変換後の第一擬似データZ
【００２６】
変換部１４０は、第一擬似データYに含まれる、カテゴリ属性の値に対応する数値属性の値が、その数値属性の値が取り得る値の範囲を超えている場合には、その数値属性の値を、その数値属性の値が取り得る値の範囲に含まれる値に変換し（Ｓ１４０）、変換後の第一擬似データZを出力する。
【００２７】
第一擬似データY内のカテゴリ属性部分の値は、データ整形部１３０にて元の符号の形式ではなくなってしまっている可能性がある。そこで、変換部１４０は、第一擬似データY内のカテゴリ属性部分の値が元の符号の形式ではない場合、元の符号の形式に再形式化する。以下、その例を示す。
【００２８】
（符号化部１１０において、符号化法A、Bを用いた場合）
i番目のレコードにおけるj番目の長さljのカテゴリ属性の値をSj(i)=(s1(i),s2(i),…,sl_j(i))とし(ただし、下付き添え字l_jはljを意味する)、
【００２９】
【数１】
2019073912.tif 000003
【００３０】
とする。このとき、各Sj(i)の各要素がs-jを超えるか確認し、超える要素があれば、超える要素集合内の最大値を1へ、それ以外の全ての要素を0にする。超える要素が無ければ、全ての要素を0にする。ただし、s-jを任意の値にする方法でも良い。
【００３１】
（符号化部１１０において、符号化法Cを用いた場合）
i番目のレコードにおけるj番目の長さljのカテゴリ属性の値をSj(i)とする。このとき、各Sj(i)が0より小さい値であればSj(i)←0とし、lj-1より大きい値であればSj(i)←lj-1とする。なお、0≦Sj(i)≦lj-1であれば、Sj(i)の整数部分をそのまま用いる。
【００３２】
（符号化部１１０において、符号化法Dを用いた場合）
i番目のレコードにおけるj番目の長さljのカテゴリ属性の値をSj(i)とする。このとき、各Sj(i)が1より小さい値であればSj(i)←1とし、ljより大きい値であればSj(i)←ljとする。なお、1≦Sj(i)≦ljであれば、Sj(i)の整数部分をそのまま用いる。
【００３３】
＜復号部１５０＞
入力:変換後の第一擬似データZ
出力:変換後の第一擬似データZ内の数値化されていたカテゴリ属性をカテゴリ値に復号した表形式の擬似データD'
【００３４】
復号部１５０は、変換後の第一擬似データZに含まれるカテゴリ属性の値に対応する数値属性の値を符号化ルール(図４参照)に従いカテゴリ属性の値に復号し(Ｓ１５０)、擬似データD'とし、出力する。
【００３５】
例えば、上述の符号化法A、B、C、Dは全単射(一対一対応)なため、その対応関係を保持しておけば逆の操作(復号)も一意に行うことができる。
【００３６】
＜効果＞
以上の構成により、カテゴリ属性を含む擬似データに対しても、数値属性のみを含む擬似データと同様の効率で、カテゴリ属性を含むオリジナルデータの全ての属性間の関係性を保持する擬似データを生成することができる。
【００３７】
＜その他の変形例＞
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【００３８】
＜プログラム及び記録媒体＞
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００３９】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００４０】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
【００４１】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００４２】
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2019073912.tif 000004
【図２】
2019073912.tif 000005
【図３】
2019073912.tif 000006
【図４】
2019073912.tif 000007
【図５】
2019073912.tif 000008
【国際調査報告】
2019073912.tif 000009
2019073912.tif 000010
2019073912.tif 000011
2019073912.tif 000012