(57)【要約】  擬似データ生成装置は、擬似対象データの各属性の度数分布の割合へ各属性の度数分布の割合が近似する第一擬似データを生成する乱数生成部と、第一擬似データの平均ベクトル及び相関行列が擬似対象データの平均ベクトル及び相関行列と一致し、第一擬似データの最小値及び最大値が擬似対象データの最小値及び最大値の範囲内に存在するように、擬似対象データの分散共分散行列をコレスキー分解して得られる行列または擬似対象データの分散共分散行列を特異値分解して得られる拡大縮小行列を用いて、第一擬似データを整形し、整形後の第一擬似データを擬似データとするデータ整形部とを含む。
2019073913.tif 000002
【特許請求の範囲】
【請求項１】
擬似対象データの各属性の度数分布の割合へ各属性の度数分布の割合が近似する第一擬似データを生成する乱数生成部と、
前記第一擬似データの平均ベクトル及び相関行列が前記擬似対象データの平均ベクトル及び相関行列と一致し、前記第一擬似データの最小値及び最大値が前記擬似対象データの最小値及び最大値の範囲内に存在するように、前記擬似対象データの分散共分散行列をコレスキー分解して得られる行列または前記擬似対象データの分散共分散行列を特異値分解して得られる拡大縮小行列を用いて、前記第一擬似データを整形し、整形後の前記第一擬似データを擬似データとするデータ整形部とを含む、
擬似データ生成装置。
【請求項２】
請求項１の擬似データ生成装置であって、
前記データ整形部は、αを1より大きい実数の何れかとし、Iを単位行列とし、前記第一擬似データの平均ベクトルμと分散共分散行列Σとを求め、前記分散共分散行列Σに基づき計算される行列Qを用いて、第一擬似データが含むレコードrをr=Q-1(r-μ)により更新し、前記擬似対象データの平均ベクトル及び分散共分散行列をそれぞれμD及びΣDとし、ΣD=QDQDTを満たすQDを計算し、Y=X(p・QD)T+I diag(μD)を計算し、Y内の各i番目の属性の取り得る範囲RY(i)が擬似対象データ内の各i番目の属性の取り得る範囲RD(i)の範囲外にある場合、p=p/αとし、Y=X(p・QD)T+I diag(μD)を再計算し、全ての前記範囲RY(i)が前記範囲RD(i)の範囲内にあるときYを前記擬似データとする、
擬似データ生成装置。
【請求項３】
請求項１の擬似データ生成装置であって、
前記データ整形部は、αを1より大きい実数の何れかとし、Iを単位行列とし、前記第一擬似データの平均ベクトルμと分散共分散行列Σとを求め、前記分散共分散行列Σに基づき計算される行列Qを用いて、第一擬似データが含むレコードrをr=Q-1(r-μ)により更新し、前記擬似対象データの平均ベクトル及び分散共分散行列をそれぞれμD及びΣDとし、ΣD=UDΛDUDTを満たすUD及びΛDを計算し、Y=X(p・UDΛD1/2)T+Idiag(μD)を計算し、Y内の各i番目の属性の取り得る範囲RY(i)が擬似対象データ内の各i番目の属性の取り得る範囲RD(i)の範囲外にある場合、p=p/αとし、Y=X(p・UDΛD1/2)T+I diag(μD)を再計算し、全ての前記範囲RY(i)が前記範囲RD(i)の範囲内にあるときYを前記擬似データとする、
擬似データ生成装置。
【請求項４】
請求項２または３の擬似データ生成装置であって、
前記データ整形部は、コレスキー分解によりΣ=QQTを満たすQを計算するか、または、特異値分解によりΣ=UΛUTを満たすU、Λを計算してQ=UΛ1/2とする、
擬似データ生成装置。
【請求項５】
擬似データ生成装置が行う擬似データ生成方法であって、
擬似対象データの各属性の度数分布の割合へ各属性の度数分布の割合が近似する第一擬似データを生成する乱数生成ステップと、
前記第一擬似データの平均ベクトル及び相関行列が前記擬似対象データの平均ベクトル及び相関行列と一致し、前記第一擬似データの最小値及び最大値が前記擬似対象データの最小値及び最大値の範囲内に存在するように、前記擬似対象データの分散共分散行列をコレスキー分解して得られる行列または前記擬似対象データの分散共分散行列を特異値分解して得られる拡大縮小行列を用いて、前記第一擬似データを整形し、整形後の前記第一擬似データを擬似データとするデータ整形ステップとを含む、
擬似データ生成方法。
【請求項６】
請求項５の擬似データ生成方法であって、
前記データ整形ステップは、αを1より大きい実数の何れかとし、Iを単位行列とし、前記第一擬似データの平均ベクトルμと分散共分散行列Σとを求め、前記分散共分散行列Σに基づき計算される行列Qを用いて、第一擬似データが含むレコードrをr=Q-1(r-μ)により更新し、前記擬似対象データの平均ベクトル及び分散共分散行列をそれぞれμD及びΣDとし、ΣD=QDQDTを満たすQDを計算し、Y=X(p・QD)T+I diag(μD)を計算し、Y内の各i番目の属性の取り得る範囲RY(i)が擬似対象データ内の各i番目の属性の取り得る範囲RD(i)の範囲外にある場合、p=p/αとし、Y=X(p・QD)T+I diag(μD)を再計算し、全ての前記範囲RY(i)が前記範囲RD(i)の範囲内にあるときYを前記擬似データとする、
擬似データ生成方法。
【請求項７】
請求項６の擬似データ生成方法であって、
前記データ整形ステップは、コレスキー分解によりΣ=QQTを満たすQを計算するか、または、特異値分解によりΣ=UΛUTを満たすU、Λを計算してQ=UΛ1/2とする、
擬似データ生成方法。
【請求項８】
請求項１から請求項４の何れかの擬似データ生成装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、擬似データ生成技術に関する。
【背景技術】
【０００２】
プライバシ保護の分野では、セキュリティなどの問題で個人情報を含んだオリジナルデータを扱えない場合、代用として擬似データを生成して分析等を行うことがある。ここでは表形式のオリジナルデータから表形式の擬似データを作成するケースを考える。表形式のデータの例を図１に示す。【０００３】
表形式のオリジナルデータから表形式の擬似データを作成する従来技術として、非特許文献１や非特許文献２が知られている。これらの従来技術では、作成したい擬似データが数値属性のみを持つ表の場合、乱数群をオリジナルデータ内の属性間の性質（分散共分散、相関、平均ベクトル等）を保持できるよう整形することで擬似データを生成する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】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, pages 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.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、この従来手法では、平均ベクトルや相関については保持できるが、度数分布や各属性の最大値、最小値が保持されない。そのため、データを可視化して分析する場合などにオリジナルデータと擬似データとの間に大きな乖離が出るという課題がある。【０００６】
本発明は、データを可視化して分析する場合もオリジナルデータと大きな乖離がない擬似データを生成できる擬似データ生成装置、その方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明の一態様によれば、擬似データ生成装置は、擬似対象データの各属性の度数分布の割合へ各属性の度数分布の割合が近似する第一擬似データを生成する乱数生成部と、第一擬似データの平均ベクトル及び相関行列が擬似対象データの平均ベクトル及び相関行列と一致し、第一擬似データの最小値及び最大値が擬似対象データの最小値及び最大値の範囲内に存在するように、擬似対象データの分散共分散行列をコレスキー分解して得られる行列または擬似対象データの分散共分散行列を特異値分解して得られる拡大縮小行列を用いて、第一擬似データを整形し、整形後の第一擬似データを擬似データとするデータ整形部とを含む。【０００８】
上記の課題を解決するために、本発明の他の態様によれば、擬似データ生成方法は、擬似データ生成装置が行う擬似データ生成方法であって、擬似対象データの各属性の度数分布の割合へ各属性の度数分布の割合が近似する第一擬似データを生成する乱数生成ステップと、第一擬似データの平均ベクトル及び相関行列が擬似対象データの平均ベクトル及び相関行列と一致し、第一擬似データの最小値及び最大値が擬似対象データの最小値及び最大値の範囲内に存在するように、擬似対象データの分散共分散行列をコレスキー分解して得られる行列または擬似対象データの分散共分散行列を特異値分解して得られる拡大縮小行列を用いて、第一擬似データを整形し、整形後の第一擬似データを擬似データとするデータ整形ステップとを含む。
【発明の効果】
【０００９】
本発明によれば、データを可視化して分析する場合もオリジナルデータと大きな乖離がない擬似データを生成できるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】本願明細書で扱う表形式のデータの例を示す図。
【図２】第一実施形態に係る擬似データ生成装置の機能ブロック図。
【図３】第一実施形態に係る擬似データ生成装置の処理フローの例を示す図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。以下の説明において、ベクトルや行列の各要素単位で行われる処理は、特に断りが無い限り、そのベクトルやその行列の全ての要素に対して適用されるものとする。
【００１２】
＜第一実施形態のポイント＞
オリジナルデータの分散共分散行列をコレスキー分解して得られる行列Qに注目する。行列Qに比例係数pをかけることによって、オリジナルデータの平均ベクトル、相関行列を完全に保持し、度数分布を近似しつつ、各属性の最大値・最小値の範囲内にデータが存在する擬似データを作ることができる。
【００１３】
＜第一実施形態＞
図２は第一実施形態に係る擬似データ生成装置の機能ブロック図を、図３はその処理フローを示す。
【００１４】
第一実施形態に係る擬似データ生成装置は、乱数生成部２１０及びデータ整形部２３０を含む。
【００１５】
擬似データ生成装置は、例えば、中央演算処理装置（CPU: Central Processing Unit）、主記憶装置（RAM: Random Access Memory）などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。擬似データ生成装置は、例えば、中央演算処理装置の制御のもとで各処理を実行する。擬似データ生成装置に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。擬似データ生成装置の各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。擬似データ生成装置が備える各記憶部は、例えば、RAM（Random Access Memory）などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリ（Flash Memory）のような半導体メモリ素子により構成される補助記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。
【００１６】
第一実施形態に係る擬似データ生成装置は、オリジナルデータDと生成する擬似データD'に含まれるレコード数n'とを入力とし、擬似データD'を生成し、出力する。ただし、擬似データD'∈Rn'×dは、オリジナルデータDの平均ベクトルμD、相関行列を完全に保持し、度数分布を近似しつつ、各属性の最大値・最小値の範囲内にデータが存在する。
【００１７】
図１のような表形式のデータを行列とみなし、行ベクトルをレコード、列ベクトルを属性と呼ぶ。なお、オリジナルデータDと擬似データD'は、行数は異なることもあるが、列数は同じである。オリジナルデータDの行数をn>0、擬似データD'の行数をn'>0、それぞれの列数をd>0とする。オリジナルデータDと擬似データD'には、実数空間R上で表現可能な数値のみが格納されているとする。以降では、各属性における平均値をオリジナルデータDの並びと同じ並びで並べたリストを平均ベクトルμとする。例えば、図１の表データにおける平均ベクトルはμ=(43.66,166,60.66)Tとなる。なお、「行ベクトル」という記載のないベクトルは全て「列ベクトル」とする。
【００１８】
また、本実施形態において適用可能な数値属性として日付属性も含む。日付属性を本実施形態に適用する場合は、予めオリジナルデータベース内の対象となる日付をある特定の日付に対してmミリ秒前、mミリ秒後などの連続値に変換する。
【００１９】
＜乱数生成部２１０＞
入力:オリジナルデータD∈Rn×d、生成するレコード数n'
出力:第一擬似データX∈Rn'×d
乱数生成部２１０は、オリジナルデータDの各属性の度数分布の割合へ各属性の度数分布の割合が近似する第一擬似データXを生成し（Ｓ２１０）、出力する。なお、近似の精度は、擬似データに含まれるレコード数n'が大きさと関連し、n'が大きくなるほど近似の精度は高くなりやすい。
【００２０】
例えば、まず、乱数生成部２１０は、オリジナルデータDの各属性の度数分布{hi}di=1を計算する。
【００２１】
次に、乱数生成部２１０は、第一擬似データXに対するi番目の属性の度数分布の割合がオリジナルデータDに対する度数分布hiの割合に近似するようランダムにi番目の列ベクトルを生成する。この操作をiが１からdになるまで繰り返す。なお、列ベクトルを生成する方法には様々な公知の技術を利用できる。例えば、参考文献１等で公知の棄却法または逆関数法を用いることができる。
(参考文献１)脇本 和昌、「乱数の知識」、森北出版株式会社、1970年,p.61-71
乱数生成部２１０は、生成したd個の列ベクトルをオリジナルデータDの並びと同じ並びで並べ、表形式の第一擬似データXとして出力する。
【００２２】
＜データ整形部２３０＞
入力:オリジナルデータD∈Rn×d、第一擬似データX∈Rn'×d
出力:擬似データD'∈Rn'×d
データ整形部２３０は、第一擬似データXの平均ベクトルμ及び相関行列がオリジナルデータDの平均ベクトルμD及び相関行列と一致し、第一擬似データXの最小値及び最大値がオリジナルデータDの最小値及び最大値の範囲内に存在するように、オリジナルデータDの分散共分散行列をコレスキー分解して得られる行列を用いて、第一擬似データXを整形し（Ｓ２３０）、整形後の第一擬似データを擬似データD'として出力する。
【００２３】
例えば、以下の処理1.〜11.により、第一擬似データXを整形する。
1.変数p=1とする。なお、変数pを比例係数ともいう。
2.オリジナルデータD内の各i番目の属性の取りうる値の範囲をR(i)Dとする。この操作はiを1からdまで繰り返す。
3.第一擬似データXの平均ベクトルμと分散共分散行列Σとを計算する。
4.Σ=QQTを満たすQを計算する。なお、Q,QTを算出する方法として例えば、コレスキー分解を用いることができる。
5.全てのr∈Xに対して、r=Q-1(r-μ)を計算する。つまり、第一擬似データXが含むレコードrをr=Q-1(r-μ)により更新する。
6.上記にて計算した全てのレコードr∈RdをまとめてZ'∈Rn'×dとする。
7.オリジナルデータDの平均ベクトルμDと分散共分散行列ΣDを計算する。
8.ΣD=QDQDTを満たすQDを計算する。この処理は、オリジナルデータDの分散共分散行列ΣDをコレスキー分解する処理に相当し、QDは分散共分散行列ΣDをコレスキー分解して得られる行列である。
9.Y=X(p・QD)T+I diag(μD)を計算する。ここでのIは単位行列、diag(μD)は対角成分に平均ベクトルμDの各要素があり、それ以外の成分は0である対角行列とする。p2・ΣD=p2・QDQDT=(p・QD)(p・QD)Tを相関行列と呼び、p=1のときのp2・ΣD=p2・QDQDT=(p・QD)(p・QD)Tを分散共分散行列ともいう。X(p・QD)Tを計算しながら擬似データを生成することで、第一擬似データXの相関行列がオリジナルデータDの相関行列と一致するように第一擬似データXを整形することができる。また、I diag(μD)を計算しながら擬似データを生成することで、第一擬似データXの平均ベクトルがオリジナルデータDの平均ベクトルと一致するように第一擬似データXを整形することができる。
10.上述のY内の各i番目の属性の取りうる値の範囲をR(i)Yとする。この操作はiを1からdまで繰り返す。
11.全てのiに対してR(i)YがR(i)Dの範囲外になければYを擬似データD'として出力する。言い換えると、全てのRY(i)がRD(i)の範囲内にあるときYを擬似データD'として出力する。R(i)YがR(i)Dの範囲外にある場合p=p/2として、上述の9.に戻る。なお、変数pの更新式は非負実数全体の集合R+の範囲で現在のpより小さくするものであればよい。言い換えると、αを1より大きい実数の何れかとし、p=p/αとする。
【００２４】
＜効果＞
以上の構成により、オリジナルデータDの平均ベクトル、相関行列を完全に保持、度数分布を近似しつつ、各属性の最大値・最小値の範囲内にデータが存在する擬似データD'を生成することができる。これにより、生成した擬似データD'は，オリジナルデータDの平均ベクトル、相関行列を完全に保持することができるため、オリジナルデータDと全く同じ線形回帰モデルを得ることができる。特に、オリジナルデータD内の各属性の取り得る値の範囲が同じような場合は、オリジナルデータDの各属性の度数分布と最大値最小値の近似を保持することができるため、データを可視化して分析する場合もオリジナルデータDと大きな乖離がない擬似データD'を生成できる。例えば、身長-170cmというプロフィールを持つレコードが生成されることなく、オリジナルデータDの各属性の度数分布を近似することができる。
【００２５】
＜変形例＞
本実施形態において、オリジナルデータDは無いが、再現したいデータ(擬似対象データ)がある場合は、オリジナルデータDに限らず、擬似対象データの統計値(各属性の度数分布、平均ベクトル、分散共分散行列、各属性の取りうる値の範囲等)を入力としてもよい。オリジナルデータDは擬似対象データの一例とも言える。
【００２６】
本実施形態では、オリジナルデータDの各属性の度数分布、平均ベクトル、分散共分散行列、各属性の取りうる値の範囲(最大値・最小値)を各部内で計算しているが、それぞれを予め各部外で計算し、乱数生成部２１０、データ整形部２３０の入力とし、各部内での計算を省略してもよい。
【００２７】
本実施形態では、データ整形部２３０においてコレスキー分解を用いて第一擬似データXを整形しているが、特異値分解を用いて第一擬似データXを整形してもよい。その処理例について説明する。例えば、処理1.〜7.及び処理10.,11.については本実施形態と同様の処理を行い、処理8.,9.において、以下のように処理を行う。
8.ΣD=UDΛDUTDを満たすUD、ΛDを計算する。なお、UDは、固有ベクトルが集まった行列である。ΛDは固有値を対角成分とし、それ以外の成分は0である対角行列であり、拡大縮小行列ともいう。この処理は、オリジナルデータDの分散共分散行列ΣDを特異値分解し、UD、拡大縮小行列ΛDを求める処理に相当する。さらに、ΛD1/2を計算する。ΛD1/2は拡大縮小行列ΛDの対角成分を全て平方した行列である。本実施形態のQDが、本変形例のUDΛD1/2に相当する。
9. Y=X(p・UDΛD1/2)T+I diag(μD) を計算する。ΣD=p2・UDΛDUDT=(p・UDΛD1/2)(p・UDΛD1/2)Tを相関行列と呼び、p=1のときのΣ=p2・UDΛDUDT=(p・UDΛD1/2)(p・UDΛD1/2)Tを分散共分散行列ともいう。 X(p・UDΛD1/2)T を計算しながら擬似データを生成することで、第一擬似データXの相関行列がオリジナルデータDの相関行列と一致するように第一擬似データXを整形することができる。
【００２８】
なお、処理4.においても同様に、コレスキー分解に代えて特異値分解を用いてもよい。つまり、以下の処理4.を行う。
4.Σ=UΛUTを満たすU、Λを計算する。なお、Uは、固有ベクトルが集まった行列である。Λは固有値を対角成分とし、それ以外の成分は0である対角行列であり、拡大縮小行列ともいう。この処理は、第一擬似データの分散共分散行列Σを特異値分解し、U、拡大縮小行列Λを求める処理に相当する。さらに、Λ1/2を計算する。Λ1/2は拡大縮小行列Λの対角成分を全て平方した行列である。処理4.以降において、Q=UΛ1/2として処理を行う。
【００２９】
理論上、分散共分散行列は正定値行列であるため、コレスキー分解によってΣ=QQT、ΣD=QDQDTとなるQ、QDを計算することは可能である。しかし、コンピュータでの数値計算では、オリジナルデータのレコード数nやXのレコード数n’が少ない場合はQ、QDが不安定になり、計算できなくなることが多い。そこで、直接コレスキー分解によってQ、QDを求めるのではなく、特異値分解によってUとΛ、UDとΛDを計算することで、Q=UΛ1/2、QD=UDΛD1/2を計算することができる。
【００３０】
以上の処理によって、第一実施形態と同様の効果を得ることができる。
【００３１】
＜その他の変形例＞
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【００３２】
＜プログラム及び記録媒体＞
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００３３】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００３４】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
【００３５】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００３６】
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2019073913.tif 000003
【図２】
2019073913.tif 000004
【図３】
2019073913.tif 000005
【国際調査報告】
2019073913.tif 000006
2019073913.tif 000007
2019073913.tif 000008
2019073913.tif 000009