JPWO2014112045A1 - 秘匿化データ生成方法及び装置 - Google Patents

秘匿化データ生成方法及び装置 Download PDF

Info

Publication number
JPWO2014112045A1
JPWO2014112045A1 JP2014557220A JP2014557220A JPWO2014112045A1 JP WO2014112045 A1 JPWO2014112045 A1 JP WO2014112045A1 JP 2014557220 A JP2014557220 A JP 2014557220A JP 2014557220 A JP2014557220 A JP 2014557220A JP WO2014112045 A1 JPWO2014112045 A1 JP WO2014112045A1
Authority
JP
Japan
Prior art keywords
group
record
data
attribute value
data block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014557220A
Other languages
English (en)
Other versions
JP6015777B2 (ja
Inventor
裕司 山岡
裕司 山岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of JP6015777B2 publication Critical patent/JP6015777B2/ja
Publication of JPWO2014112045A1 publication Critical patent/JPWO2014112045A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本匿名化データ生成方法は、(A)各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部から、複数のデータブロックのうち、グループ化未了の第1のデータブロックを含み且つ機密属性値の度数分布が所定の条件を満たし且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックのグループを抽出し、(B)グループに属するデータブロックの数値属性値を、グループについて算出された数値属性値で置換する処理を含む。そして、上記所定の領域が、他のグループについての所定の領域とは無関係に決定されるものである。

Description

本技術は、情報の匿名化技術に関する。
複数の情報提供者から収集した、数値属性値を含むレコード群を、各レコードの情報提供者識別子(以下、単にIDと略す)を秘密にして、他者に開示又は提供したい場合がある。このとき、IDを削除して開示又は提供しても、特徴ある数値属性値を有するレコードについては他者が情報提供者を推定できてしまう場合がある。
例えば、個人の位置データの収集者が、情報提供者が分からない形で、分析者に位置データを提供することを考える。ここで、収集者としては位置データについてのサービス提供者、分析者としてはクラウドサービス提供者又はデータ二次利用者(例えば人口密度調査会社など)などが考えられる。
ここで、収集者が収集した位置データが図1に示すものであるとする。図1の例では、各レコードには、行番号と、IDと、X(緯度)と、Y(経度)とが含まれる。ここでは、各レコードは、A、B及びCの3人のいずれかの位置データを表しており、全部で7レコードある。すなわち、同じIDのレコードが複数回出現する場合がある。なお、IDは、個人のユーザIDである場合もあれば、測定機器のIDである場合もある。また、所属する組織のIDである場合もある。
図1に示されるデータを地図上にプロットすると、例えば図2に示すようになる。分析者は、図1及び図2のようなデータが得られれば、分析に役立てることができる。例えば、A宅及びB宅付近に人が集まっていることが分かる。
しかしながら、例えば、収集者が情報提供者との間で、匿名化しない限り他者にデータを提供しないという契約を結んでいる状況が考えられる。情報提供者は、特定の時期にどこにいたかを収集者以外に知られたくないなどの理由で、匿名化を希望する場合がある。
一方、分析者はID等の情報提供者の情報を利用しない場合もある。位置データの提供者が誰かを知らなくても人口密度調査のような分析はできるためである。
このような場合、収集者は図1のデータに対して匿名化を行って、情報提供者の推定を困難にすれば良い。
収集者による単純な匿名化方式として、IDを削除する方式がある。図1からIDを削除したデータを分析者が見ても、どのレコードが誰のデータなのかそのままでは分からない。しかし、位置データから情報提供者を推定可能なレコードがあるという問題がある。
図1からIDを削除したデータを図2のように地図上にプロットすると、例えば第1レコードの位置データ(X,Y)=(6,2)はA宅内であることが分かってしまう。すなわち、IDが削除されたデータしか見ることのできない分析者であっても、第1レコードの情報提供者がAであることが推定できてしまい、十分に匿名化されているとは言い難い。同様に、第7レコード以外は匿名化が不十分である。
従来技術として、事前に定められた、重なりのない複数の数値範囲をグループとして把握し、各グループ内のレコード群をそれらの統計値に変換する方法がある。
この従来技術では、緯度及び経度に基づいて地域をメッシングし、各メッシュ要素内のレコード群についての統計値を計算し、それを開示又は提供する。
統計値としては、例えば「メッシュ要素M1には3レコード」というように、メッシュ要素毎のレコード数が用いられる。もしくは、各レコードのIDを削除し、位置をメッシュ要素の中心点に変換しても良い。
例えば、図1の各レコードを一辺「5」のメッシュ要素によりグループ分けし、変換する場合を考える。その場合、例えば(X,Y)=([5, 10), [0, 5))などが1つのメッシュ要素、すなわちグループとなる。このメッシュ要素を仮にM10と名付けると、図1では第1レコードのみがM10に分類される。よって、「メッシュM10には1レコードあった」ことが開示される、あるいは第1レコードが(X,Y)=(7.5, 2.5)(M10の中心点)に変換され開示されることになる。
この従来技術では、メッシュサイズが十分大きければ匿名性に問題は生じないが、メッシュサイズを小さくすると匿名性が脅かされるという問題がある。例えば、メッシュ要素M10が、もしA宅の敷地内に包含された場合(例えば、A宅の敷地が(X,Y)=([2, 10], [0, 6])の場合など)、メッシュ要素M10に分類されたレコードの情報提供者はAだと推定できてしまう。メッシュサイズを小さくするほど、特定のIDしか存在し得ないような地域にメッシュ要素が包含される可能性が高くなる。
一方、メッシュサイズを大きくするほど、位置の一般化度合いが大きくなり、分析者による分析の精度に大きな悪影響を与えるという問題がある。例えば、統計調査では一辺約1kmのメッシュ要素が使われることがあるが、その結果だけを使う限り1km単位より詳細な地域に関する分析結果を出すことは一般的にはできない。
このように、この従来技術は、匿名性を担保するためにメッシュサイズを十分に大きくしなければならず、分析の精度に大きな悪影響を与えるという問題がある。
また、グループを生成する別の従来技術として、事前に決めた値d及びkに対し、大きさd未満の範囲内に、k個以上のレコードが含まれるように、且つ別の範囲と重ならないように範囲の位置を調整し、その範囲に基づきグループ化する技術がある。
この従来技術は対象データとして互いに異なるIDを有するレコード群を前提にしており、その場合は適切な匿名性が担保されるが、図1のように同じIDのレコードが複数存在し得るデータに対しては十分な匿名性を担保できないという問題がある。
例えば、この従来技術の一部を適用し、図1の各レコードを一辺「5」未満の矩形(d=(5, 5))で、3個以上(k=3)のレコードが含まれるようグループ分けする場合を考える。この場合、例えばレコード{1,2,3}を含む矩形R43:(X,Y)=([2, 6], [2, 4])と、レコード{4,5,6}を含む矩形R49:(X,Y)=([2, 6], [8, 10])の2つのグループができる。しかし、上でも述べた例と同じように、特定のIDしか存在し得ないような地域に矩形が包含される可能性がある。例えば矩形R43がA宅の敷地内に包含された場合には、矩形R43に分類されたレコード{1,2,3}の情報提供者がAだと推定できてしまう。
一般的に、図1のように同じIDのレコードが複数存在するレコード群をも取り扱うことができる手法の方が適用範囲が広くて良い。例えば、組織が情報提供者の場合は特に、複数の測定機器のデータに同じID(すなわち組織ID)が記録される場合もある。また、IDが同じ複数のレコードの存在を許すことで多くのレコードを一度に分析できるようになり、分析精度の向上が望める。しかしながら、この従来技術は、特殊な対象データでしか匿名性を担保できず、適用できる場面が少ないという問題がある。
さらに、グループ化する別の従来技術として、IDのような機密属性値の種類が各グループ内でl種類以上ある(すなわちl−多様性を満たす)ようにする技術がある。この従来技術はグループを事前に決めた大きさ未満の範囲内にすることが難しいという問題がある。事前に決めた大きさ未満の範囲内にできないと、分析の精度に大きな悪影響を与えるという問題がある。
O. Abul, F. Bonchi, and M. Nanni. Never Walk Alone: Uncertainty for Anonymity in Moving Objects Databases. In Proceedings of the 24th International Conference on Data Engineering, ICDE 2008, pp.376-385 (2008). A. Machanavajjhala, J. Gehrke, D. Kifer, M. Venkitasubramaniam. l-Diversity: Privacy Beyond k-Anonymity. ACM Transactions on Knowledge Discovery from Data, Vol. 1, Issue 1, Article No. 3, 2007.
従って、本技術の目的は、一側面によれば、適切な分析精度を出すことができるように数値属性値を含むデータの匿名化を可能にするための技術を提供することである。
本技術に係る匿名化データ生成方法は、(A)各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部から、複数のデータブロックのうち、グループ化未了の第1のデータブロックを含み且つ機密属性値の度数分布が所定の条件を満たし且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックのグループを抽出し、(B)グループに属するデータブロックの数値属性値を、グループについて算出された数値属性値で置換する処理を含む。そして、上記所定の領域が、他のグループについての所定の領域とは無関係に決定されるものである。
一側面によれば、適切な分析精度を出すことができるように数値属性値を含むデータを匿名化できるようになる。
図1は、データの一例を示す図である。 図2は、データと他のデータとの重ね合わせの一例を示す図である。 図3は、本実施の形態に係る情報処理装置の構成例を示す図である。 図4は、第1データ格納部に格納されるデータの一例を示す図である。 図5は、本技術の実施の形態における処理フローを示す図である。 図6は、レコードの配置例を示す図である。 図7は、固定メッシュ要素を配置した状態を示す図である。 図8は、固定メッシュ要素のIDとレコードとの対応表の一例を示す図である。 図9は、レコード群Rdについて説明するための図である。 図10は、レコードRlについて説明するための図である。 図11は、本技術の実施の形態における処理フローを示す図である。 図12は、レコードRlを包含する最小矩形を説明するための図である。 図13は、グループG生成処理の処理フローを示す図である。 図14は、グループGについての矩形rectを示す図である。 図15は、除外処理の処理フローを示す図である。 図16は、除外処理において生成される度数分布表の一例を示す図である。 図17は、除外処理において生成される度数分布表の一例を示す図である。 図18は、除外処理において生成される度数分布表の一例を示す図である。 図19は、除外処理において生成される度数分布表の一例を示す図である。 図20は、除外処理において生成される度数分布表の一例を示す図である。 図21は、除外処理において生成される度数分布表の一例を示す図である。 図22は、グループ分類処理の処理フローを示す図である。 図23は、譲渡可能レコードの抽出処理の処理フローを示す図である。 図24は、抽出処理において生成される度数分布表の一例を示す図である。 図25は、抽出処理において生成される度数分布表の一例を示す図である。 図26は、抽出処理において生成される度数分布表の一例を示す図である。 図27は、抽出処理において生成される度数分布表の一例を示す図である。 図28は、抽出処理において生成される度数分布表の一例を示す図である。 図29は、グループ対応表の一例を示す図である。 図30は、グループ情報表の一例を示す図である。 図31は、グループ対応表の一例を示す図である。 図32は、グループ情報表の一例を示す図である。 図33は、グループ対応表の一例を示す図である。 図34は、グループ情報表の一例を示す図である。 図35Aは、本技術の実施の形態における処理フローを示す図である。 図35Bは、本技術の実施の形態におけるレコード追加処理の処理フローを示す図である。 図36は、グループ化されなかったレコードのグループ化を説明するための図である。 図37は、グループ対応表の一例を示す図である。 図38は、グループ情報表の一例を示す図である。 図39は、本技術の実施の形態における処理フローを示す図である。 図40は、ランダムに生成される矩形を説明するための図である。 図41は、出力テーブルに登録されるレコードの一例を示す図である。 図42は、出力テーブルの例を示す図である。 図43は、コンピュータの機能ブロック図である。
図3に、本技術の実施の形態に係る情報処理装置100の機能ブロック図を示す。情報処理装置100は、第1データ格納部110と、設定データ格納部120と、グループ化処理部130と、第2データ格納部140と、匿名化処理部150と、第3データ格納部160と、出力部170とを有する。
第1データ格納部110は、例えば図4に示すような匿名化前のデータを格納している。図4の例では、各レコード(データブロックとも呼ぶ)は、IDと、X(緯度)と、Y(経度)と、速さと含む。行番号は、以下の説明のために付されている。
また、設定データ格納部120は、範囲のサイズdと、度数分布についての条件(度数分布パターンとも呼ぶ)と、第1データ格納部110に格納されているデータのうちの機密属性(例えばID属性。機微属性とも呼ぶ。)及び数値属性(例えば緯度X及び経度Yを含む位置データ)の指定とが格納される。度数分布パターンは、最小種類数lと、減衰率aとを含む。最小種類数lは2以上の整数であり、減衰率aは1以下の正の実数である。例えば、l種類のIDについて度数の多い順にn番目の度数がn−1番目の度数のa倍以上であるという度数分布パターンが条件として設定される。
グループ化処理部130は、第1データ格納部110に格納されているレコード群(以下では表D)をグループ化する処理を行い、処理結果を第2データ格納部140に格納する。匿名化処理部150は、グループ化の結果に基づき、各グループに属するレコードの数値属性値を変換する処理を行い、処理結果を第3データ格納部160に格納する。出力部170は、第3データ格納部160に格納されているデータを、他のコンピュータ、表示装置や印刷装置などに出力する。
次に、図5乃至図42を用いて、情報処理装置100の処理内容について説明する。
まず、グループ化処理部130は、第1データ格納部110に格納されている表D内の全レコードを、数値属性値に基づき大きさdの固定メッシュ要素に分類する(図5:ステップS1)。まず、設定データ格納部120において、緯度経度XYが数値属性として設定されており、さらに、d=(6,6)も設定されているものとする。そうすると、図4に示したレコード群は、XY平面上、図6に示すように配置される。なお、同じ形のプロットは、同じIDのレコードを表している。
そして、本ステップでは、図7に示すように、d=(dX,dY)=(6,6)の固定メッシュ要素を配置して各固定メッシュ要素に包含されるレコードを抽出することで分類を行う。なお、固定メッシュ要素の範囲の上限値に相当する辺については、その固定メッシュ要素の範囲には含まれないものとする。
これは以下の処理を高速化するための前処理であり、本実施の形態では、以下のようなグループID生成関数を使用する。
f(R)=(floor(X/6),floor(Y/6))
ここでfloor(Q/S)は、QをSの倍数に近い値に切り捨てる関数である。また、f(R)は、緯度X及び経度Yを含むレコードRのグループIDを算出する関数である。
図4の例であれば、図8に示すような分類がなされるようになる。図8の例では、メッシュID=(0,0)の固定メッシュ要素には、レコード{1,2,3,4,5}が属し、メッシュID=(0,1)の固定メッシュ要素には、レコード{6}が属し、メッシュID=(1,0)の固定メッシュ要素には、レコード{8,9}が属し、メッシュID=(1,1)の固定メッシュ要素には、レコード{7}が属する。
図8のような対応表において、レコードはメッシュIDの昇順でソートしておく。また、各メッシュの行番号集合については、所属するレコードの数値属性値の昇順でソートしておく。
その後、グループ化処理部130は、生成された対応表において、未処理の固定メッシュ要素mを1つ特定する(ステップS3)。さらに、グループ化処理部130は、固定メッシュ要素m内においてグループ化未了のレコードrを1つ特定する(ステップS5)。例えばメッシュID=(0,0)を処理対象の固定メッシュ要素mとして特定した場合、グループ化未了のレコード群は{1,2,3,4,5}であり、ここではレコードr=1を処理対象のレコードとして特定する。
そして、グループ化処理部130は、固定メッシュ要素の近隣固定メッシュ要素から、レコードrを中心としてサイズ2dの範囲に入るレコード群Rd(但し、グループ化済みで譲れないレコードを除く)を抽出する(ステップS7)。
近隣固定メッシュ要素は、メッシュIDの各要素の数値に−1/0/+1のいずれかを加えてできるメッシュIDを有する固定メッシュ要素であり、メッシュID=(0,0)の場合には、(−1,−1)、(−1,0)、(−1,1)、(0,−1)、(0,0)、(0,1)、(0,−1)、(1,−1)、(1,0)、(1,1)の固定メッシュ要素が近隣固定メッシュ要素となる。固定メッシュ要素mが(0,0)の場合、候補となるレコードは、{1,2,3,4,5,6,7,8,9}となる。
さらに、レコードrを中心としたサイズ2dの範囲は、rの座標(X,Y)=(0,1)であるから、(0−6)=−6<X<(0+6)=6、(1−6)=−5<Y<(1+6)=7の範囲となる。具体的には、図9に示すような状態となる。図9において、レコード1を中心とする1辺2dの点線矩形の範囲に入っているレコードを抽出することになる。但し、辺上のレコードは範囲に含まれない。従って、候補となるレコードのうち、{1,2,3,4,5}がレコード群Rdに含まれることになる。このレコード群Rdは、以下の処理でベースとなるレコードの集合となる。
そして、グループ化処理部130は、レコード群Rdのうち、レコードrからの距離が近い順にIDがl種類(度数パターンにおける最小種類数)のレコードRlを抽出する処理を行う(ステップS9)。例えば距離にはマンハッタン距離を用いる。本ステップでは、図10に示すように、レコードrを中心としてマンハッタン距離「3」の範囲内には、レコード「2」及び「3」が入っているが、それらは同じIDであるからいずれかが選択される。同じマンハッタン距離の場合には、ソート順で先に出現するレコードを選択する。さらに、また、マンハッタン距離「6」の範囲内には、レコード「4」が入っている。処理対象のレコード「1」、レコード「2」及びレコード「4」のIDはそれぞれ異なっているので、設定データ格納部120においてl=3が設定されている場合には、レコードRl={1,2,4}が抽出されることになる。
ここで、処理は、レコードRlが抽出できれば(ステップS11:Yesルート)、端子Aを介して図11のステップS13に移行し、レコードRlが抽出できなければ(ステップS11:Noルート)、端子Bを介して図11のステップS25に移行する。
図11の処理の説明に移行して、グループ化処理部130は、レコードRlを含む最小矩形を特定し、矩形の辺の長さを特定する(ステップS13)。上で述べた例では、図12に示すように(0,0)を左下の頂点とし、(3,4)を右上の頂点とする矩形が特定され、辺は縦「3」で横「4」であるからd=(6,6)未満となっている。
グループ化処理部130は、矩形の辺がd未満であるか判断する(ステップS15)。矩形の辺がd以上であれば、端子Bを介して処理はステップS25に移行する。一方、矩形の辺がd未満であれば、グループ化処理部130は、グループG生成処理を実行する(ステップS17)。グループG生成処理については、図13乃至図21を用いて説明する。
まず、グループ化処理部130は、レコード群Rdのうち、最小矩形の最大座標値を基準に1辺dの矩形に入るレコード群Gを抽出する(ステップS31)。最小矩形の最大座標値は、図12に示した点pの座標値のことである。具体的には、最小矩形の右上の頂点である。そして、図14に示すように、点pを右上の頂点とする1辺サイズdの矩形rectを生成する。この例の場合、p=(3,4)であるから、rect=((-3, 3], (-2, 4])すなわち、頂点pに接続する辺については辺上の点は含まれるが、それ以外の辺(点線)は辺上の点は含まれない。図14の例では、矩形rectに入るレコード群Gは、{1,2,3,4}となる。ここで、IDがAであるレコードは{1}のみで、IDがBであるレコードは{2,3}であり、IDがCであるレコードは{4}のみである。従って、ID属性の度数分布は、{A:1,B:2,C:1}となる。
このように、レコード群Rdを抽出するのは、処理の効率化のためである。レコードrを含み且つサイズdを有する任意の矩形に含まれるレコード群のグループGには、レコードrと共に大きさ2dの矩形内に入り得るレコードしか当然含まれない。そのため、その候補を最初に抽出することで、余計な計算をすることを防ぐことができる。
次に、レコードRlを抽出するのは、条件lを満たす矩形を作れそうな箇所を効率的に見つけるためである。レコード群RdのうちIDがl種類のレコードを包含する大きさdの矩形を効率的に探すのは難しい。そこで、レコードRlを抽出することで、r周辺であればそのような矩形dを効率的に探せるようにする。もし、レコードRlを抽出できなければ、レコード群RdのうちIDがl種類のレコードを包含する大きさdの矩形は存在し得ないことが分かる。また、レコードRlのうち最も遠いレコードがレコードrからdの半分の距離未満にあれば、IDがl種類のレコードを包含する大きさdの矩形は例えばレコードrを中心とする矩形として存在することが分かる。
そして、点pを右上の頂点とする大きさdの矩形rectを生成するのは、矩形rectは、IDがl種類のレコードを包含しやすく、IDがl種類のレコードを包含する場合には、グルーピングされ損なったレコードも包含しやすいためである。
例えば、上で述べたように、レコードRlのうち最も遠いレコードがrからサイズdの半分の距離未満にあれば、矩形rectはレコードRlを包含するため、IDがl種類のレコードを包含する。矩形rectが、IDがl種類のレコードを包含すれば、グループGが生成されるため、これにより、どのグループにもグルーピングされないレコードを減らす効果が期待できる。
また、上で述べたように、XY平面上で座標値が小さい順にレコードrを選択していっているため、レコードrから見て点pの方向にはまだレコードrとして選択されたことがない、すなわちまだグルーピングされる機会の多いレコードばかりである。一方、それ以外の方向には、レコードrとして選択されたが未グルーピングの、すなわちグルーピングされ損なったレコードがある可能性がある。矩形rectが、IDがl種類のレコードを包含する場合は、レコードRlが近くにある場合であることが多く、その場合は矩形rectはレコードrから見て点pでない方向に張り出す。すなわち、グルーピングされ損なったレコードを包含しやすくなる。よって、どのグループにもグルーピングされないレコードを減らす効果が期待できる。
そうすると、グループ化処理部130は、グループGについての度数分布を生成し、グループGにはl種類以上のID属性値が含まれるか判断する(ステップS33)。グループGにl種類以上のID属性値が含まれない場合には、端子Bを介して図11のステップS25に移行する。一方、グループGにl種類以上のID属性値が含まれる場合には、グループ化処理部130は、グループGについての度数分布が、度数分布パターンにおける条件a(=減衰率)を満たしているか判断する(ステップS34)。l=3及びa=0.5が設定されているものとする。度数が大きい順に並べて、n番目の度数が、n−1番目の度数のa=0.5以上であることが条件となっている。この場合、{B:2,A:1,C:1}となっているので、この条件を満たしている。
減衰率aを用いるのは、度数分布の偏りが大きすぎるグループを作らない、すなわち安全性を高めるためである。
グループGについての度数分布が、度数分布パターンにおける条件を満たしている場合には、処理は呼出元の処理に戻る。一方、グループGについての度数分布が、度数分布パターンにおける条件を満たしていない場合には、グループ化処理部130は、除外処理を実行する(ステップS35)。条件lを満たしていれば、条件aを満たすようにレコードを除外することが可能である。従って、除外処理を実行する。除外処理については、図15乃至図21を用いて説明する。
そして、グループ化処理部130は、予め定められている優先順位に従って、除外処理で決定された数の除外すべきレコードを特定し、グループGから除外する(ステップS37)。優先順位は、グルーピング済みのもの(譲ることができるレコード)をまずソート順で後ろのレコードから順番に除外し、残りをソート順で後ろのレコードから順番に除外する。そして処理は呼出元の処理に戻る。
ここで、除外処理について説明する。まず、グループ化処理部130は、グループGについて度数分布表Fを生成し、度数の昇順に整列させる(図15:ステップS41)。上で述べた例では、除外処理は行われないので、ここでは図16に示すような度数分布表Fが生成されたものとする。また、l=4且つa=0.5であるものとする。
そして、グループ化処理部130は、変数pを初期化し(ステップS43)、変数iを0に初期化する(ステップS45)。その後、グループ化処理部130は、iが度数分布表Fの行数|F|より小さいか判断する(ステップS47)。iが度数分布表Fの行数|F|より小さい場合には、グループ化処理部130は、i+l−1が|F|より小さいか判断する(ステップS49)。i+l−1が|F|より小さい場合には、グループ化処理部130は、変数pに対してF[i]を代入する(ステップS51)。F[i]は、Fのi+1行目の度数である。i=0であれば、変数pには、Fの1行目の度数「1」が代入される。
一方、i+l−1が|F|以上であれば、グループ化処理部130は、変数pに、min(F[i],floor(p/a))を代入する(ステップS53)。min(A,B)は、AとBのうち小さい方を出力する関数である。
ステップS51又はS53の後に、グループ化処理部130は、F[i]に、F[i]−pを代入する(ステップS55)。i=0の時に、S49を実行すると、度数分布表Fは、図17のようになる。
その後、グループ化処理部130は、変数iを1インクリメントし(ステップS57)、処理はステップS47に戻る。
2回目のステップS47では、|F|=5,i=1であるから、i<|F|となる。また、l=4であるので、i+l−1<|F|となる。従って、ステップS51でp=3であり、F[1]=3−3=0となる。そうすると、度数分布表Fは、図18のようになる。その後i=2となる。
3回目のステップS47では、|F|=5,i=2であるから、i<|F|となる。また、l=4であるので、i+l−1<|F|とはならず、ステップS53に移行して、a=0.5及びp=3であるから、min(F[i]=4,floor(p/a)=6)=4となる。従って、F[2]=4−4=0となる。そうすると、度数分布表Fは、図19のようになる。その後i=3となる。
4回目のステップS47では、|F|=5、i=3であるから、i<|F|となる。また、l=4であるので、i+l−1<|F|とはならず、ステップS53に移行して、a=0.5及びp=4であるから、min(F[i]=9,floor(p/a)=8)=8となる。従って、F[3]=9−8=1となる。そうすると、度数分布表Fは、図20のようになる。その後i=4となる。
5回目のステップS47では、|F|=5、i=4であるから、i<|F|となる。また、l=4であるので、i+l−1<|F|とはならず、ステップS53に移行して、a=0.5及びp=8であるから、min(F[i]=10,floor(p/a)=16)=10となる。従って、F[4]=10−10=0となる。そうすると、度数分布表Fは、図21のようになる。その後i=5となる。
6回目のステップS47では、|F|=5、i=5であるから、i<|F|が成り立たなくなる。そうすると、処理は呼出元の処理に戻る。すなわち、この時点における度数分布表F(図21)が、除外すべきレコードを示している。ここでは、IDが「E」のレコードを1つ除外することになる。除外するレコードについては、グループ化済みのレコード(譲ることができるレコード)をまずソート順で後ろのレコードから順番に除外し、残りをソート順で後ろのレコードから順番に除外する。
図11の処理の説明に戻って、ステップS17の後に、グループ化処理部130は、グループ分類処理を実行する(ステップS19)。グループ分類処理については、図22乃至図28を用いて説明する。
まず、グループ化処理部130は、譲渡可能レコードの抽出処理を実行する(図22:ステップS61)。すなわち、グループGのうち、度数分布パターンを満たす上で必須のレコード以外のレコードを抽出する処理を実行する。より具体的には、図23乃至図28を用いて説明する。
まず、グループ化処理部130は、グループGについて度数分布表Fを生成し、度数の昇順に整列させる(図23:ステップS71)。処理を分かり易くするために、図24に示すような度数分布表Fが生成されたものとする。
そして、グループ化処理部130は、変数ciに|F|−lを設定し、変数minに、ceil(F[ci]*a)を設定する(ステップS73)。ceil(x)は天井関数であり、実数xに対してx以上の最小の整数を出力する関数である。F[i]は度数分布表Fのi+1行目の度数を表し、|F|は度数分布表Fの行数を表す。ci=5−4=1であり、min=ceil(2*0.5)=1となる。
また、グループ化処理部130は、変数iを0に初期化し、変数maxを0に初期化する(ステップS75)。
その後、グループ化処理部130は、i<|F|であるか判断する(ステップS77)。i<|F|であれば、グループ化処理部130は、変数cを初期化する(ステップS79)。その後、グループ化処理部130は、i<ciであるか判断する(ステップS81)。i=0であれば、ci=1であるからこの条件は満たされている。
i<ciであれば、グループ化処理部130は、cに0を設定する(ステップS83)。そうすると、グループ化処理部130は、F[i]に、F[i]−cを設定する(ステップS85)。F[i]=1であり、c=0であるから、F[i]=1となる。その後、グループ化処理部130は、iを1インクリメントし(ステップS87)、処理はステップS77に戻る。
i=1になると、ステップS81では、i<ciは成り立たなくなるので、グループ化処理部130は、i+1=|F|であるか判断する(ステップS89)。i=1であれば、i+1=2であるから、この条件を満たさない。ステップS89の条件を満たさない場合には、グループ化処理部130は、cに、ceil(F[i+1]*a)を代入する(ステップS91)。c=ceil(F[2]*0.5)=2となる。そして、グループ化処理部130は、max<cであるか判断する(ステップS93)。max=0であるからこの条件を満たす。そうすると、グループ化処理部130は、maxにcを代入する(ステップS97)。すなわち、max=c=2となる。その後、処理はステップS85に移行する。従って、2回目のステップS85では、F[1]=2−2=0となる。従って、図25に示すような度数分布表Fになる。
i=2になると、ステップS81では、i<ciは成り立たなくなるので、ステップS89に移行する。但し、i+1<|F|であるから、ステップS91に処理は移行し、c=ceil(F[3]*a)=2となる。max=2であるから、max<cの条件を満たしていない。そうすると、グループ化処理部130は、cにminを代入する(ステップS95)。min=1であるから、c=1となる。そして処理はステップS85に移行して、3回目のステップS85では、F[2]=3−1=2となる。従って、図26に示すような度数分布表Fになる。
i=3になると、ステップS81では、i<ciは成り立たないので、ステップS89に移行する。但し、i+1<|F|であるから、ステップS91に処理は移行し、c=ceil(F[4]*a)=3となる。max=2でc=3であるから、max<cの条件を満たしている。従って、max=c=3となる。そして、3回目のステップS85では、F[3]=4−3=1となる。従って、図27に示すような度数分布表Fとなる。
i=4になると、ステップS81では、i<ciは成り立たないので、ステップS89に移行する。i+1<|F|は満たさなくなる。そうすると、ステップS95に処理は移行し、c=min=1となる。そして処理はステップS85に移行して、4回目のステップS85では、F[4]=F[4]−c=5−1=4となる。従って、図28に示すような度数分布表Fが得られる。
その後i=5になると、ステップS77ではi<|F|の条件を満たさなくなるので、処理は呼出元の処理に戻る。従って図28に示すように、IDがAの1レコード、IDがCの2レコード、IDがDの1レコード、及びIDがEの4レコードが、譲渡可能なレコードとして特定されたことになる。
図22の処理の説明に戻って、グループ化処理部130は、予め定められている優先順位に従って、譲渡可能なレコードを具体的に特定する(ステップS63)。優先順位については、固定メッシュ要素のIDがソート順でより後ろ、それが同じなら数値属性値がソート順でより後ろのレコードが、譲渡可能なレコード(譲って良いレコード)となる。
最初の例では、グループGにはレコード{1,2,3,4}が含まれており、上で述べた処理を行うと、IDがBの1レコードを譲って良いことになる。従って優先順位に従って選択すると、レコード{3}が選択される。
ここまでの処理によれば、図29に示すようなグループ対応表及び図30に示すようなグループ情報表が得られるようになる。
図29に示すようなグループ対応表は、行番号からグループIDを特定できるようになっている。グループIDはグループに一意なものを適宜設定する。例えば、レコードrの行番号を用いる。図30に示すグループ情報表は、各グループについて、譲れないレコードと譲って良いレコードを分別して記録したものである。条件a(減衰率)のように、どのIDをいくつ譲っても条件を満たすか計算できる条件を使用することは、処理効率が良い。
図11の処理の説明に戻って、グループ化処理部130は、レコードのグループGには他のグループG2に含まれるレコード(譲って良いレコード)が含まれるか判断する(ステップS21)。グループGに他のグループG2に含まれるレコードが含まれる場合には、グループ化処理部130は、他のグループG2についてのグループ対応表及びグループ情報表から、そのレコードについてデータを削除するように変更を行う(ステップS23)。一方、グループGに他のグループG2に含まれるレコードが含まれない場合には、処理はステップS25に移行する。
そして、グループ化処理部130は、特定された固定メッシュ要素mについてグループ化未了のレコードが存在するか判断する(ステップS25)。グループ化未了のレコードが存在する場合には、端子Cを介して図5のステップS5へ戻る。一方、特定された固定メッシュ要素mについてグループ化未了のレコードが存在しない場合には、グループ化処理部130は、対応表において未処理の固定メッシュ要素が存在するか判断する(ステップS27)。未処理の固定メッシュ要素が存在する場合には、端子Dを介して図5のステップS3へ処理は戻る。一方、未処理の固定メッシュ要素が存在しない場合には、処理は端子Eを介して図35の処理に移行する。
固定メッシュ要素m=(0,0)に属するレコード{1,2,3,4,5}のうちグループ化未了のレコードはレコード5((X,Y)=(4,4))であり、レコードrとなる。この場合、近隣固定メッシュ要素のレコードは、レコード{1,2,3,4,5,6,7,8,9}となる。但し、4−6<X<4+6、4−6<Y<4+6の範囲に入る数値属性値を有するレコード群のうち、既にグループ化されており、譲れないレコードである{1,2,4}を除くと、レコード群Rd={3,5,6,7,8,9}となる。
そして、レコード5を中心にしてl=3となるレコードRlを抽出すると、Rl={3,5,9}となる。そして、このレコードRlの最小矩形は(X,Y)=([3, 7], [1, 4])となる。この最小矩形の左上の点p=(7,4)であるから、この点pを基準にしてサイズd=(6,6)の矩形rectを生成すると、rect:(X,Y)=((1, 7], (-2, 4])となる。この矩形rectに含まれるレコード群Rdから、レコードのグループGは{3,5,8,9}が得られる。このグループGのID属性についての度数分布は、度数分布パターンにおける条件l及びaを満たしている。このグループGの度数分布は、{A:2,B:1,C:1}となり、IDがAであるレコード「9」は譲っても良いことになる。
従って、図31に示すようなグループ対応表及び図32に示すようなグループ情報表が得られる。ここで、レコード3は、グループ1から譲ってもらったことになるので、グループ1のレコード対応表及びグループ情報表を変更することになる。総合すると、ここまでの処理で、グループ対応表は図33のように変化し、グループ情報表は図34のように変化する。グループ1からレコード3が除外され、グループ5に所属することになる。
なお、レコード{6,7}だけが残っていることになるが、これらについてはここまでの処理ではグループ化されない。
そこで、処理は端子Eを介して図35Aの処理に移行する。グループ化処理部130は、グループ化できなかったレコードが存在するか判断する(図35A:ステップS101)。レコード対応表に登録されていないレコードについてはグループ化できなかったと判断できる。グループ化できなかったレコードが存在しない場合には、処理は端子Fを介して図39の処理に移行する。
一方、グループ化できなかったレコードが存在する場合には、グループ化処理部130は、グループ化できなかったレコードを含む未処理の固定メッシュ要素mを1つ特定する(ステップS103)。そして、グループ化処理部130は、レコード追加処理を実行する(ステップS105)。レコード追加処理については、図35Bを用いて説明する。グループ化処理部130は、固定メッシュ要素mの近隣固定メッシュ要素群に包含されるグループのリストGmを抽出する(ステップS201)。ここでは、グループに含まれる全レコードが近隣固定メッシュ要素群に包含される場合のみ、そのグループはリストGmの要素となる。さらに、グループ化処理部130は、特定された固定メッシュ要素m内のグループ化できなかった未処理のレコードrを1つ特定する(ステップS203)。そして、グループ化処理部130は、リストGmをレコードrからの距離でソートする(ステップS205)。ここで、グループとレコードの距離は、例えばグループの最小矩形の中心点と、レコードとのマンハッタン距離とする。さらに、グループ化処理部130は、距離が短い方からリストGm内の未処理のグループGを特定する(ステップS207)。そして、グループ化処理部130は、グループG及びレコードrを含む最小矩形がdより小さいか判断する(ステップS209)。例えば、グループ毎にその最小矩形が包含される固定メッシュ要素のIDを特定しておくと共に、中心座標を特定しておくと処理が高速化される。固定メッシュ要素(0,1)におけるレコード「6」((X,Y)=(5,7))がステップS203で特定されたとすると、この固定メッシュ要素の近隣固定メッシュ要素群に、グループ5及び1が含まれているので、グループ5及び1がリストGmに含まれることになる。ここでは、図36に示すような状態となる。レコード6を基準に各グループの最小矩形の中心点とのマンハッタン距離で両グループをソートすると、グループ5の方が近いことがわかる。グループ5とレコード6を含む最小矩形はdより大きい。従って、処理はステップS211に移行する。すなわち、ステップS209の条件が満たされない場合にはステップS211に移行する。そして、グループ化処理部130は、リストGmに未処理のグループが存在するか判断する(ステップS211)。未処理のグループが存在すれば処理はステップS207に戻る。図36の例では未処理のグループ1があるので、ステップS207に戻る。グループ1をグループGとして選択して同様に処理を進めると、ステップS209で条件を満たさないと判断され、処理はステップS211に移行する。もうリストGmには未処理のグループがないので、処理はステップS217に移行する。
一方、グループG及びレコードrを含む最小矩形がdより小さい場合には、グループ化処理部130は、レコードrをそのグループGに加えた場合に度数分布が、度数分布パターンを満たしているか判断する(ステップS213)。レコードrがレコード7であれば、グループ5とレコード7を含む最小矩形はdより小さくステップS213の条件を満たしており、度数分布も{A:2,B:1,C:2}となるので、条件l及びaを満たしている。
度数分布パターンが満たされない場合には処理はステップS211に移行する。一方、レコードrをそのグループに加えた場合に度数分布が、度数分布パターンを満たしている場合には、グループ化処理部130は、レコードrをグループGに追加登録する(ステップS215)。すなわち、図37のようなグループ対応表が得られ、図38のようなグループ情報表が得られるようになる。グループ対応表及びグループ情報表は、第2データ格納部140に格納される。
その後、グループ化処理部130は、特定された固定メッシュ要素について、グループ化できなかった未処理のレコードが存在するか判断する(ステップS217)。未処理のレコードが存在する場合には、処理はステップS203に戻る。一方、未処理のレコードが存在しない場合には、処理は図35Aの処理に戻る。図35Aの説明に戻って、グループ化処理部130は、グループ化できなかったレコードを含む未処理の固定メッシュ要素が存在するか判断する(ステップS115)。グループ化できなかったレコードを含む未処理の固定メッシュ要素が存在する場合には、処理はステップS103に戻る。一方、グループ化できなかったレコードを含む未処理の固定メッシュ要素が存在しない場合には、処理は端子Fを介して図39の処理に移行する。
図39の処理の説明に移行して、グループ化処理部130の処理が終了すると、匿名化処理部150は、第2データ格納部140において未処理のグループをランダムに1つ特定する(ステップS117)。また、匿名化処理部150は、特定されたグループの全レコードを包含する大きさdの矩形をランダムに決定する(ステップS119)。例えば、図40に示すように、レコード{1,2,4}を含むグループ1についての矩形Pを設定する。後には、レコード{3,5,7,8,9}を含むグループ5についての矩形Qをも設定される。なお、図40でもID毎に異なる形状の点をプロットしている。
このような矩形P及びQは、特定のIDしか存在し得ないような領域(例えばA氏宅敷地)に包含される可能性はない。また、レコード6は異なるIDのレコードが近くに十分にないため、開示対象外となっている。矩形P及びQ同士が重なっているが、それによりレコード3(ID=B)を上手く分け合っている様子がわかる。
そして、匿名化処理部150は、決定された矩形の中心座標を計算する(ステップS121)。中心以外の座標であっても良い。その後、匿名化処理部150は、特定されたグループに属する未処理のレコードを1つランダム特定する(ステップS123)。そして、匿名化処理部150は、特定されたレコードのデータを第1データ格納部110から読み出して、IDを削除し、位置座標XYを矩形中心座標に置換して、第3データ格納部160における出力テーブルに登録する(ステップS125)。例えば、図41に示すようにレコード2が最初に選択された場合、IDは削除されて、位置座標XYも(2,0)から、矩形の中心座標(2,2)に置換されている。速さという属性値については変更しない。但し、速さ属性の属性値についても変換しても良い。
そして、匿名化処理部150は、特定されたグループにおいて未処理のレコードが存在するか判断する(ステップS127)。未処理のレコードが存在する場合には処理はステップS123に戻る。一方、未処理のレコードが存在しない場合には、匿名化処理部150は、未処理のグループが存在しているか判断する(ステップS129)。未処理のグループが存在している場合には処理はステップS117に戻る。一方、未処理のグループが存在しない場合には、出力部170は、第3データ格納部160における出力テーブルを、表示装置や印刷装置などの出力装置に出力する(ステップS131)。
上で述べた例では、図42に示すようなデータが出力されるようになる。図42の例では、行番号が含まれているが、このようなデータについては削除しても良い。
以上のような処理を行うことで、グルーピングされたレコードだけが開示されるが、各グループは機密属性値についてl種類以上あるので、各グループの範囲が特定のIDしか存在し得ないような領域に包含されることはなく、匿名性が担保される。
また、開示されるレコードが存在する各範囲は大きさd未満となるため、小さいdを指定することで高精度の分析が可能となる。但し、dが小さいほどどの範囲にも分類されないレコードが増え、そのようなレコードは開示されないため、dを小さくし過ぎることは好ましくない。
さらに、グループのレコードを含む各範囲が重なることを許容することによって、どの範囲にも分類されないレコードの数を減らすことができる。これは、開示されるレコード数を増やす、すなわち分析に使えるデータ量が増えることになるので、高精度な分析が望める。
すなわち、本実施の形態によれば、dが指定された場合、匿名性を担保したままそのdに適した精度のデータを開示できる。例えば、測定誤差や、分析側の分析能に基づいてdを決めることで、最も良く匿名性と分析精度の両立をはかることができる。
以上本技術の実施の形態を説明したが、本技術は、これに限定されない。例えば、処理フローは一例であり、処理結果が変わらない限り、処理順番を入れ替えたり、複数のステップを並列実行する場合もある。
特に、上で述べた矩形rectを設定する方法は一例である。他のグループの矩形とは無関係に設定できるので、グループに包含されるレコードをメインに考慮して設定できる。
また、上で述べた例では数値属性が2次元であったが、1次元であっても3次元以上であっても良い。その場合、矩形ではなく線分や直方体など次元数に応じて変化する。
さらに、情報処理装置100は、1台のコンピュータではなく複数台のコンピュータで機能分担を行う場合もある。さらに、サーバクライアント型の実装形態である場合もある。
なお、上で述べた情報処理装置100は、例えばコンピュータ装置であって、図43に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本実施の形態をまとめると、以下のようになる。
本実施の形態に係る匿名化データ生成方法は、(A)各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部から、複数のデータブロックのうち、グループ化未了の第1のデータブロックを含み且つ機密属性値の度数分布が所定の条件を満たし且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックのグループを抽出し、(B)グループに属するデータブロックの数値属性値を、グループについて算出された数値属性値で置換する処理を含む。そして、上記所定の領域が、他のグループについての所定の領域とは無関係に決定されるものである。
上で述べた所定の領域が他のグループについての所定の領域とは無関係に決定されるので、一部重複することもあるが、そのために機密属性値の度数分布が所定の条件を満たすグループを生成しやすくなり、グループ化漏れも少なくできる。すなわち、分析に用いることができるデータ量が増加し、分析精度が向上する。また、所定の領域のサイズについても調整可能であり、この点についても分析精度向上の要因となる。
また、本匿名化データ生成方法は、(C)上記グループに属するデータブロックの機密属性値を削除する処理をさらに含むようにしても良い。機密保持のためである。
さらに、上で述べた抽出する処理は、(a1)グループ化未了の第1のデータブロックを含み且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックの集合についての機密属性値の度数分布が、所定の条件を満たすか判断し、(a2)データブロックの集合についての機密属性値の度数分布が所定の条件を満たさない場合には、所定の条件を満たすようにデータブロックの集合から第2のデータブロックを除外することでデータブロックのグループを生成する処理を含むようにしても良い。このように除外された第2のデータブロックは、他のグループの抽出に用いられるため、上で述べた所定の領域の重複が生じ得る。
さらに、上で述べた抽出する処理は、(a3)データブロックのグループから、機密属性値の度数分布が所定の条件を満たす上で必須となるデータブロック以外の第3のデータブロックを抽出する処理を含む場合もある。この場合、データブロックの他のグループを抽出する処理において、第3のデータブロックが抽出されるようにしても良い。第3のデータブロックを他のグループの抽出に用いることができるため、グループの抽出が容易になる。
また、上で述べた所定の条件が、機密属性値の種類数の下限値を含む場合もある。この場合、上で述べた抽出する処理が、(a4)第1のデータブロックを基準に機密属性値の種類数の下限値を満たすように第4のデータブロックを抽出し、(a5)抽出された第4のデータブロックの数値属性値に基づき所定サイズを有する所定の領域を決定する処理を含むようにしても良い。第4のデータブロックが第1のデータブロックから所定の範囲内で抽出できない場合にはグループの抽出は無理なので、他のデータブロックの処理に移行するものである。
さらに、本匿名化データ生成方法は、(D)いずれのグループにも属しないデータブロックが存在する場合には、所属する第5のデータブロックを包含する領域の基準位置と当該データブロックとの距離が所定のサイズに相当する距離以下であり且つ当該データブロックを加えることで機密属性値の度数分布が所定の条件を満たしたままであれば、当該データブロックを第5のデータブロックのグループに分類する処理をさらに含むようにしても良い。可能な限り漏れなくグループ化することができるようになる。
また、上で述べた置換する処理が、(b1)グループに属するデータブロックの数値属性値を包含する所定のサイズを有する領域をランダムに生成し、(b2)生成された領域内の位置に対応する数値属性値で、グループに属するデータブロックの数値属性値を置換する処理を含むようにしても良い。これによってグループの特性を保持しつつ匿名化できるようになる。
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
本技術は、情報の匿名化技術に関する。
複数の情報提供者から収集した、数値属性値を含むレコード群を、各レコードの情報提供者識別子(以下、単にIDと略す)を秘密にして、他者に開示又は提供したい場合がある。このとき、IDを削除して開示又は提供しても、特徴ある数値属性値を有するレコードについては他者が情報提供者を推定できてしまう場合がある。
例えば、個人の位置データの収集者が、情報提供者が分からない形で、分析者に位置データを提供することを考える。ここで、収集者としては位置データについてのサービス提供者、分析者としてはクラウドサービス提供者又はデータ二次利用者(例えば人口密度調査会社など)などが考えられる。
ここで、収集者が収集した位置データが図1に示すものであるとする。図1の例では、各レコードには、行番号と、IDと、X(緯度)と、Y(経度)とが含まれる。ここでは、各レコードは、A、B及びCの3人のいずれかの位置データを表しており、全部で7レコードある。すなわち、同じIDのレコードが複数回出現する場合がある。なお、IDは、個人のユーザIDである場合もあれば、測定機器のIDである場合もある。また、所属する組織のIDである場合もある。
図1に示されるデータを地図上にプロットすると、例えば図2に示すようになる。分析者は、図1及び図2のようなデータが得られれば、分析に役立てることができる。例えば、A宅及びB宅付近に人が集まっていることが分かる。
しかしながら、例えば、収集者が情報提供者との間で、匿名化しない限り他者にデータを提供しないという契約を結んでいる状況が考えられる。情報提供者は、特定の時期にどこにいたかを収集者以外に知られたくないなどの理由で、匿名化を希望する場合がある。
一方、分析者はID等の情報提供者の情報を利用しない場合もある。位置データの提供者が誰かを知らなくても人口密度調査のような分析はできるためである。
このような場合、収集者は図1のデータに対して匿名化を行って、情報提供者の推定を困難にすれば良い。
収集者による単純な匿名化方式として、IDを削除する方式がある。図1からIDを削除したデータを分析者が見ても、どのレコードが誰のデータなのかそのままでは分からない。しかし、位置データから情報提供者を推定可能なレコードがあるという問題がある。
図1からIDを削除したデータを図2のように地図上にプロットすると、例えば第1レコードの位置データ(X,Y)=(6,2)はA宅内であることが分かってしまう。すなわち、IDが削除されたデータしか見ることのできない分析者であっても、第1レコードの情報提供者がAであることが推定できてしまい、十分に匿名化されているとは言い難い。同様に、第7レコード以外は匿名化が不十分である。
従来技術として、事前に定められた、重なりのない複数の数値範囲をグループとして把握し、各グループ内のレコード群をそれらの統計値に変換する方法がある。
この従来技術では、緯度及び経度に基づいて地域をメッシングし、各メッシュ要素内のレコード群についての統計値を計算し、それを開示又は提供する。
統計値としては、例えば「メッシュ要素M1には3レコード」というように、メッシュ要素毎のレコード数が用いられる。もしくは、各レコードのIDを削除し、位置をメッシュ要素の中心点に変換しても良い。
例えば、図1の各レコードを一辺「5」のメッシュ要素によりグループ分けし、変換する場合を考える。その場合、例えば(X,Y)=([5, 10), [0, 5))などが1つのメッシュ要素、すなわちグループとなる。このメッシュ要素を仮にM10と名付けると、図1では第1レコードのみがM10に分類される。よって、「メッシュ要素M10には1レコードあった」ことが開示される、あるいは第1レコードが(X,Y)=(7.5, 2.5)(M10の中心点)に変換され開示されることになる。
この従来技術では、メッシュサイズが十分大きければ匿名性に問題は生じないが、メッシュサイズを小さくすると匿名性が脅かされるという問題がある。例えば、メッシュ要素M10が、もしA宅の敷地内に包含された場合(例えば、A宅の敷地が(X,Y)=([2, 10], [0, 6])の場合など)、メッシュ要素M10に分類されたレコードの情報提供者はAだと推定できてしまう。メッシュサイズを小さくするほど、特定のIDしか存在し得ないような地域にメッシュ要素が包含される可能性が高くなる。
一方、メッシュサイズを大きくするほど、位置の一般化度合いが大きくなり、分析者による分析の精度に大きな悪影響を与えるという問題がある。例えば、統計調査では一辺約1kmのメッシュ要素が使われることがあるが、その結果だけを使う限り1km単位より詳細な地域に関する分析結果を出すことは一般的にはできない。
このように、この従来技術は、匿名性を担保するためにメッシュサイズを十分に大きくしなければならず、分析の精度に大きな悪影響を与えるという問題がある。
また、グループを生成する別の従来技術として、事前に決めた値d及びkに対し、大きさd未満の範囲内に、k個以上のレコードが含まれるように、且つ別の範囲と重ならないように範囲の位置を調整し、その範囲に基づきグループ化する技術がある。
この従来技術は対象データとして互いに異なるIDを有するレコード群を前提にしており、その場合は適切な匿名性が担保されるが、図1のように同じIDのレコードが複数存在し得るデータに対しては十分な匿名性を担保できないという問題がある。
例えば、この従来技術の一部を適用し、図1の各レコードを一辺「5」未満の矩形(d=(5, 5))で、3個以上(k=3)のレコードが含まれるようグループ分けする場合を考える。この場合、例えばレコード{1,2,3}を含む矩形R43:(X,Y)=([2, 6], [2, 4])と、レコード{4,5,6}を含む矩形R49:(X,Y)=([2, 6], [8, 10])の2つのグループができる。しかし、上でも述べた例と同じように、特定のIDしか存在し得ないような地域に矩形が包含される可能性がある。例えば矩形R43がA宅の敷地内に包含された場合には、矩形R43に分類されたレコード{1,2,3}の情報提供者がAだと推定できてしまう。
一般的に、図1のように同じIDのレコードが複数存在するレコード群をも取り扱うことができる手法の方が適用範囲が広くて良い。例えば、組織が情報提供者の場合は特に、複数の測定機器のデータに同じID(すなわち組織ID)が記録される場合もある。また、IDが同じ複数のレコードの存在を許すことで多くのレコードを一度に分析できるようになり、分析精度の向上が望める。しかしながら、この従来技術は、特殊な対象データでしか匿名性を担保できず、適用できる場面が少ないという問題がある。
さらに、グループ化する別の従来技術として、IDのような機密属性値の種類が各グループ内でl種類以上ある(すなわちl−多様性を満たす)ようにする技術がある。この従来技術はグループを事前に決めた大きさ未満の範囲内にすることが難しいという問題がある。事前に決めた大きさ未満の範囲内にできないと、分析の精度に大きな悪影響を与えるという問題がある。
O. Abul, F. Bonchi, and M. Nanni. Never Walk Alone: Uncertainty for Anonymity in Moving Objects Databases. In Proceedings of the 24th International Conference on Data Engineering, ICDE 2008, pp.376-385 (2008). A. Machanavajjhala, J. Gehrke, D. Kifer, M. Venkitasubramaniam. l-Diversity: Privacy Beyond k-Anonymity. ACM Transactions on Knowledge Discovery from Data, Vol. 1, Issue 1, Article No. 3, 2007.
従って、本技術の目的は、一側面によれば、適切な分析精度を出すことができるように数値属性値を含むデータの匿名化を可能にするための技術を提供することである。
本技術に係る匿名化データ生成方法は、(A)各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部から、複数のデータブロックのうち、グループ化未了の第1のデータブロックを含み且つ機密属性値の度数分布が所定の条件を満たし且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックのグループを抽出し、(B)グループに属するデータブロックの数値属性値を、グループについて算出された数値属性値で置換する処理を含む。そして、上記所定の領域が、他のグループについての所定の領域とは無関係に決定されるものである。
一側面によれば、適切な分析精度を出すことができるように数値属性値を含むデータを匿名化できるようになる。
図1は、データの一例を示す図である。 図2は、データと他のデータとの重ね合わせの一例を示す図である。 図3は、本実施の形態に係る情報処理装置の構成例を示す図である。 図4は、第1データ格納部に格納されるデータの一例を示す図である。 図5は、本技術の実施の形態における処理フローを示す図である。 図6は、レコードの配置例を示す図である。 図7は、固定メッシュ要素を配置した状態を示す図である。 図8は、固定メッシュ要素のIDとレコードとの対応表の一例を示す図である。 図9は、レコード群Rdについて説明するための図である。 図10は、レコードRlについて説明するための図である。 図11は、本技術の実施の形態における処理フローを示す図である。 図12は、レコードRlを包含する最小矩形を説明するための図である。 図13は、グループG生成処理の処理フローを示す図である。 図14は、グループGについての矩形rectを示す図である。 図15は、除外処理の処理フローを示す図である。 図16は、除外処理において生成される度数分布表の一例を示す図である。 図17は、除外処理において生成される度数分布表の一例を示す図である。 図18は、除外処理において生成される度数分布表の一例を示す図である。 図19は、除外処理において生成される度数分布表の一例を示す図である。 図20は、除外処理において生成される度数分布表の一例を示す図である。 図21は、除外処理において生成される度数分布表の一例を示す図である。 図22は、グループ分類処理の処理フローを示す図である。 図23は、譲渡可能レコードの抽出処理の処理フローを示す図である。 図24は、抽出処理において生成される度数分布表の一例を示す図である。 図25は、抽出処理において生成される度数分布表の一例を示す図である。 図26は、抽出処理において生成される度数分布表の一例を示す図である。 図27は、抽出処理において生成される度数分布表の一例を示す図である。 図28は、抽出処理において生成される度数分布表の一例を示す図である。 図29は、グループ対応表の一例を示す図である。 図30は、グループ情報表の一例を示す図である。 図31は、グループ対応表の一例を示す図である。 図32は、グループ情報表の一例を示す図である。 図33は、グループ対応表の一例を示す図である。 図34は、グループ情報表の一例を示す図である。 図35Aは、本技術の実施の形態における処理フローを示す図である。 図35Bは、本技術の実施の形態におけるレコード追加処理の処理フローを示す図である。 図36は、グループ化されなかったレコードのグループ化を説明するための図である。 図37は、グループ対応表の一例を示す図である。 図38は、グループ情報表の一例を示す図である。 図39は、本技術の実施の形態における処理フローを示す図である。 図40は、ランダムに生成される矩形を説明するための図である。 図41は、出力テーブルに登録されるレコードの一例を示す図である。 図42は、出力テーブルの例を示す図である。 図43は、コンピュータの機能ブロック図である。
図3に、本技術の実施の形態に係る情報処理装置100の機能ブロック図を示す。情報処理装置100は、第1データ格納部110と、設定データ格納部120と、グループ化処理部130と、第2データ格納部140と、匿名化処理部150と、第3データ格納部160と、出力部170とを有する。
第1データ格納部110は、例えば図4に示すような匿名化前のデータを格納している。図4の例では、各レコード(データブロックとも呼ぶ)は、IDと、X(緯度)と、Y(経度)と、速さと含む。行番号は、以下の説明のために付されている。
また、設定データ格納部120は、範囲のサイズdと、度数分布についての条件(度数分布パターンとも呼ぶ)と、第1データ格納部110に格納されているデータのうちの機密属性(例えばID属性。機微属性とも呼ぶ。)及び数値属性(例えば緯度X及び経度Yを含む位置データ)の指定とが格納される。度数分布パターンは、最小種類数lと、減衰率aとを含む。最小種類数lは2以上の整数であり、減衰率aは1以下の正の実数である。例えば、l種類のIDについて度数の多い順にn番目の度数がn−1番目の度数のa倍以上であるという度数分布パターンが条件として設定される。
グループ化処理部130は、第1データ格納部110に格納されているレコード群(以下では表D)をグループ化する処理を行い、処理結果を第2データ格納部140に格納する。匿名化処理部150は、グループ化の結果に基づき、各グループに属するレコードの数値属性値を変換する処理を行い、処理結果を第3データ格納部160に格納する。出力部170は、第3データ格納部160に格納されているデータを、他のコンピュータ、表示装置や印刷装置などに出力する。
次に、図5乃至図42を用いて、情報処理装置100の処理内容について説明する。
まず、グループ化処理部130は、第1データ格納部110に格納されている表D内の全レコードを、数値属性値に基づき大きさdの固定メッシュ要素に分類する(図5:ステップS1)。まず、設定データ格納部120において、緯度経度XYが数値属性として設定されており、さらに、d=(6,6)も設定されているものとする。そうすると、図4に示したレコード群は、XY平面上、図6に示すように配置される。なお、同じ形のプロットは、同じIDのレコードを表している。
そして、本ステップでは、図7に示すように、d=(dX,dY)=(6,6)の固定メッシュ要素を配置して各固定メッシュ要素に包含されるレコードを抽出することで分類を行う。なお、固定メッシュ要素の範囲の上限値に相当する辺については、その固定メッシュ要素の範囲には含まれないものとする。
これは以下の処理を高速化するための前処理であり、本実施の形態では、以下のようなグループID生成関数を使用する。
f(R)=(floor(X/6),floor(Y/6))
ここでfloor(Q/S)は、QをSの倍数に近い値に切り捨てる関数である。また、f(R)は、緯度X及び経度Yを含むレコードRのグループIDを算出する関数である。
図4の例であれば、図8に示すような分類がなされるようになる。図8の例では、メッシュID=(0,0)の固定メッシュ要素には、レコード{1,2,3,4,5}が属し、メッシュID=(0,1)の固定メッシュ要素には、レコード{6}が属し、メッシュID=(1,0)の固定メッシュ要素には、レコード{8,9}が属し、メッシュID=(1,1)の固定メッシュ要素には、レコード{7}が属する。
図8のような対応表において、レコードはメッシュIDの昇順でソートしておく。また、各メッシュの行番号集合については、所属するレコードの数値属性値の昇順でソートしておく。
その後、グループ化処理部130は、生成された対応表において、未処理の固定メッシュ要素mを1つ特定する(ステップS3)。さらに、グループ化処理部130は、固定メッシュ要素m内においてグループ化未了のレコードrを1つ特定する(ステップS5)。例えばメッシュID=(0,0)を処理対象の固定メッシュ要素mとして特定した場合、グループ化未了のレコード群は{1,2,3,4,5}であり、ここではレコードr=1を処理対象のレコードとして特定する。
そして、グループ化処理部130は、固定メッシュ要素の近隣固定メッシュ要素から、レコードrを中心としてサイズ2dの範囲に入るレコード群Rd(但し、グループ化済みで譲れないレコードを除く)を抽出する(ステップS7)。
近隣固定メッシュ要素は、メッシュIDの各要素の数値に−1/0/+1のいずれかを加えてできるメッシュIDを有する固定メッシュ要素であり、メッシュID=(0,0)の場合には、(−1,−1)、(−1,0)、(−1,1)、(0,−1)、(0,0)、(0,1)、(0,−1)、(1,−1)、(1,0)、(1,1)の固定メッシュ要素が近隣固定メッシュ要素となる。固定メッシュ要素mが(0,0)の場合、候補となるレコードは、{1,2,3,4,5,6,7,8,9}となる。
さらに、レコードrを中心としたサイズ2dの範囲は、rの座標(X,Y)=(0,1)であるから、(0−6)=−6<X<(0+6)=6、(1−6)=−5<Y<(1+6)=7の範囲となる。具体的には、図9に示すような状態となる。図9において、レコード1を中心とする1辺2dの点線矩形の範囲に入っているレコードを抽出することになる。但し、辺上のレコードは範囲に含まれない。従って、候補となるレコードのうち、{1,2,3,4,5}がレコード群Rdに含まれることになる。このレコード群Rdは、以下の処理でベースとなるレコードの集合となる。
そして、グループ化処理部130は、レコード群Rdのうち、レコードrからの距離が近い順にIDがl種類(度数分布パターンにおける最小種類数)のレコードRlを抽出する処理を行う(ステップS9)。例えば距離にはマンハッタン距離を用いる。本ステップでは、図10に示すように、レコードrを中心としてマンハッタン距離「3」の範囲内には、レコード「2」及び「3」が入っているが、それらは同じIDであるからいずれかが選択される。同じマンハッタン距離の場合には、ソート順で先に出現するレコードを選択する。さらに、また、マンハッタン距離「6」の範囲内には、レコード「4」が入っている。処理対象のレコード「1」、レコード「2」及びレコード「4」のIDはそれぞれ異なっているので、設定データ格納部120においてl=3が設定されている場合には、レコードRl={1,2,4}が抽出されることになる。
ここで、処理は、レコードRlが抽出できれば(ステップS11:Yesルート)、端子Aを介して図11のステップS13に移行し、レコードRlが抽出できなければ(ステップS11:Noルート)、端子Bを介して図11のステップS25に移行する。
図11の処理の説明に移行して、グループ化処理部130は、レコードRlを含む最小矩形を特定し、矩形の辺の長さを特定する(ステップS13)。上で述べた例では、図12に示すように(0,0)を左下の頂点とし、(3,4)を右上の頂点とする矩形が特定され、辺は縦「3」で横「4」であるからd=(6,6)未満となっている。
グループ化処理部130は、矩形の辺がd未満であるか判断する(ステップS15)。矩形の辺がd以上であれば、端子Bを介して処理はステップS25に移行する。一方、矩形の辺がd未満であれば、グループ化処理部130は、グループG生成処理を実行する(ステップS17)。グループG生成処理については、図13乃至図21を用いて説明する。
まず、グループ化処理部130は、レコード群Rdのうち、最小矩形の最大座標値を基準に1辺dの矩形に入るレコード群抽出する(ステップS31)。最小矩形の最大座標値は、図12に示した点pの座標値のことである。具体的には、最小矩形の右上の頂点である。そして、図14に示すように、点pを右上の頂点とする1辺サイズdの矩形rectを生成する。この例の場合、p=(3,4)であるから、rect=((-3, 3], (-2, 4])すなわち、頂点pに接続する辺については辺上の点は含まれるが、それ以外の辺(点線)は辺上の点は含まれない。図14の例では、矩形rectに入るレコード群、{1,2,3,4}となる。ここで、IDがAであるレコードは{1}のみで、IDがBであるレコードは{2,3}であり、IDがCであるレコードは{4}のみである。従って、ID属性の度数分布は、{A:1,B:2,C:1}となる。
このように、レコード群Rdを抽出するのは、処理の効率化のためである。レコードrを含み且つサイズdを有する任意の矩形に含まれるレコード群のグループGには、レコードrと共に大きさ2dの矩形内に入り得るレコードしか当然含まれない。そのため、その候補を最初に抽出することで、余計な計算をすることを防ぐことができる。
次に、レコードRlを抽出するのは、条件lを満たす矩形を作れそうな箇所を効率的に見つけるためである。レコード群RdのうちIDがl種類のレコードを包含する大きさdの矩形を効率的に探すのは難しい。そこで、レコードRlを抽出することで、r周辺であればそのような矩形効率的に探せるようにする。もし、レコードRlを抽出できなければ、レコード群RdのうちIDがl種類のレコードを包含する大きさdの矩形は存在し得ないことが分かる。また、レコードRlのうち最も遠いレコードがレコードrからdの半分の距離未満にあれば、IDがl種類のレコードを包含する大きさdの矩形は例えばレコードrを中心とする矩形として存在することが分かる。
そして、点pを右上の頂点とする大きさdの矩形rectを生成するのは、矩形rectは、IDがl種類のレコードを包含しやすく、IDがl種類のレコードを包含する場合には、グルーピングされ損なったレコードも包含しやすいためである。
例えば、上で述べたように、レコードRlのうち最も遠いレコードがrからサイズdの半分の距離未満にあれば、矩形rectはレコードRlを包含するため、IDがl種類のレコードを包含する。矩形rectが、IDがl種類のレコードを包含すれば、グループGが生成されるため、これにより、どのグループにもグルーピングされないレコードを減らす効果が期待できる。
また、上で述べたように、XY平面上で座標値が小さい順にレコードrを選択していっているため、レコードrから見て点pの方向にはまだレコードrとして選択されたことがない、すなわちまだグルーピングされる機会の多いレコードばかりである。一方、それ以外の方向には、レコードrとして選択されたが未グルーピングの、すなわちグルーピングされ損なったレコードがある可能性がある。矩形rectが、IDがl種類のレコードを包含する場合は、レコードRlが近くにある場合であることが多く、その場合は矩形rectはレコードrから見て点pでない方向に張り出す。すなわち、グルーピングされ損なったレコードを包含しやすくなる。よって、どのグループにもグルーピングされないレコードを減らす効果が期待できる。
そうすると、グループ化処理部130は、グループGについての度数分布を生成し、グループGにはl種類以上のID属性値が含まれるか判断する(ステップS33)。グループGにl種類以上のID属性値が含まれない場合には、端子Bを介して図11のステップS25に移行する。一方、グループGにl種類以上のID属性値が含まれる場合には、グループ化処理部130は、グループGについての度数分布が、度数分布パターンにおける条件a(=減衰率)を満たしているか判断する(ステップS34)。l=3及びa=0.5が設定されているものとする。度数が大きい順に並べて、n番目の度数が、n−1番目の度数のa=0.5以上であることが条件となっている。この場合、{B:2,A:1,C:1}となっているので、この条件を満たしている。
減衰率aを用いるのは、度数分布の偏りが大きすぎるグループを作らない、すなわち安全性を高めるためである。
グループGについての度数分布が、度数分布パターンにおける条件を満たしている場合には、処理は呼出元の処理に戻る。一方、グループGについての度数分布が、度数分布パターンにおける条件を満たしていない場合には、グループ化処理部130は、除外処理を実行する(ステップS35)。条件lを満たしていれば、条件aを満たすようにレコードを除外することが可能である。従って、除外処理を実行する。除外処理については、図15乃至図21を用いて説明する。
そして、グループ化処理部130は、予め定められている優先順位に従って、除外処理で決定された数の除外すべきレコードを特定し、グループGから除外する(ステップS37)。優先順位については、グルーピング済みのもの(譲ることができるレコード)をまずソート順で後ろのレコードから順番に除外し、残りをソート順で後ろのレコードから順番に除外する。そして処理は呼出元の処理に戻る。
ここで、除外処理について説明する。まず、グループ化処理部130は、グループGについて度数分布表Fを生成し、度数の昇順に整列させる(図15:ステップS41)。上で述べた例では、除外処理は行われないので、ここでは図16に示すような度数分布表Fが生成されたものとする。また、l=4且つa=0.5であるものとする。
そして、グループ化処理部130は、変数pを初期化し(ステップS43)、変数iを0に初期化する(ステップS45)。その後、グループ化処理部130は、iが度数分布表Fの行数|F|より小さいか判断する(ステップS47)。iが度数分布表Fの行数|F|より小さい場合には、グループ化処理部130は、i+l−1が|F|より小さいか判断する(ステップS49)。i+l−1が|F|より小さい場合には、グループ化処理部130は、変数pに対してF[i]を代入する(ステップS51)。F[i]は、Fのi+1行目の度数である。i=0であれば、変数pには、Fの1行目の度数「1」が代入される。
一方、i+l−1が|F|以上であれば、グループ化処理部130は、変数pに、min(F[i],floor(p/a))を代入する(ステップS53)。min(A,B)は、AとBのうち小さい方を出力する関数である。
ステップS51又はS53の後に、グループ化処理部130は、F[i]に、F[i]−pを代入する(ステップS55)。i=0の時に、S49を実行すると、度数分布表Fは、図17のようになる。
その後、グループ化処理部130は、変数iを1インクリメントし(ステップS57)、処理はステップS47に戻る。
2回目のステップS47では、|F|=5,i=1であるから、i<|F|となる。また、l=4であるので、i+l−1<|F|となる。従って、ステップS51でp=3であり、F[1]=3−3=0となる。そうすると、度数分布表Fは、図18のようになる。その後i=2となる。
3回目のステップS47では、|F|=5,i=2であるから、i<|F|となる。また、l=4であるので、i+l−1<|F|とはならず、ステップS53に移行して、a=0.5及びp=3であるから、min(F[i]=4,floor(p/a)=6)=4となる。従って、F[2]=4−4=0となる。そうすると、度数分布表Fは、図19のようになる。その後i=3となる。
4回目のステップS47では、|F|=5、i=3であるから、i<|F|となる。また、l=4であるので、i+l−1<|F|とはならず、ステップS53に移行して、a=0.5及びp=4であるから、min(F[i]=9,floor(p/a)=8)=8となる。従って、F[3]=9−8=1となる。そうすると、度数分布表Fは、図20のようになる。その後i=4となる。
5回目のステップS47では、|F|=5、i=4であるから、i<|F|となる。また、l=4であるので、i+l−1<|F|とはならず、ステップS53に移行して、a=0.5及びp=8であるから、min(F[i]=10,floor(p/a)=16)=10となる。従って、F[4]=10−10=0となる。そうすると、度数分布表Fは、図21のようになる。その後i=5となる。
6回目のステップS47では、|F|=5、i=5であるから、i<|F|が成り立たなくなる。そうすると、処理は呼出元の処理に戻る。すなわち、この時点における度数分布表F(図21)が、除外すべきレコードを示している。ここでは、IDが「E」のレコードを1つ除外することになる。除外するレコードについては、グループ化済みのレコード(譲ることができるレコード)をまずソート順で後ろのレコードから順番に除外し、残りをソート順で後ろのレコードから順番に除外する。
図11の処理の説明に戻って、ステップS17の後に、グループ化処理部130は、グループ分類処理を実行する(ステップS19)。グループ分類処理については、図22乃至図28を用いて説明する。
まず、グループ化処理部130は、譲渡可能レコードの抽出処理を実行する(図22:ステップS61)。すなわち、グループGのうち、度数分布パターンを満たす上で必須のレコード以外のレコードを抽出する処理を実行する。より具体的には、図23乃至図28を用いて説明する。
まず、グループ化処理部130は、グループGについて度数分布表Fを生成し、度数の昇順に整列させる(図23:ステップS71)。処理を分かり易くするために、図24に示すような度数分布表Fが生成されたものとする。
そして、グループ化処理部130は、変数ciに|F|−lを設定し、変数minに、ceil(F[ci]*a)を設定する(ステップS73)。ceil(x)は天井関数であり、実数xに対してx以上の最小の整数を出力する関数である。F[i]は度数分布表Fのi+1行目の度数を表し、|F|は度数分布表Fの行数を表す。ci=5−4=1であり、min=ceil(2*0.5)=1となる。
また、グループ化処理部130は、変数iを0に初期化し、変数maxを0に初期化する(ステップS75)。
その後、グループ化処理部130は、i<|F|であるか判断する(ステップS77)。i<|F|であれば、グループ化処理部130は、変数cを初期化する(ステップS79)。その後、グループ化処理部130は、i<ciであるか判断する(ステップS81)。i=0であれば、ci=1であるからこの条件は満たされている。
i<ciであれば、グループ化処理部130は、cに0を設定する(ステップS83)。そうすると、グループ化処理部130は、F[i]に、F[i]−cを設定する(ステップS85)。F[i]=1であり、c=0であるから、F[i]=1となる。その後、グループ化処理部130は、iを1インクリメントし(ステップS87)、処理はステップS77に戻る。
i=1になると、ステップS81では、i<ciは成り立たなくなるので、グループ化処理部130は、i+1=|F|であるか判断する(ステップS89)。i=1であれば、i+1=2であるから、この条件を満たさない。ステップS89の条件を満たさない場合には、グループ化処理部130は、cに、ceil(F[i+1]*a)を代入する(ステップS91)。c=ceil(F[2]*0.5)=2となる。そして、グループ化処理部130は、max<cであるか判断する(ステップS93)。max=0であるからこの条件を満たす。そうすると、グループ化処理部130は、maxにcを代入する(ステップS97)。すなわち、max=c=2となる。その後、処理はステップS85に移行する。従って、2回目のステップS85では、F[1]=2−2=0となる。従って、図25に示すような度数分布表Fになる。
i=2になると、ステップS81では、i<ciは成り立たなくなるので、ステップS89に移行する。但し、i+1<|F|であるから、ステップS91に処理は移行し、c=ceil(F[3]*a)=2となる。max=2であるから、max<cの条件を満たしていない。そうすると、グループ化処理部130は、cにminを代入する(ステップS95)。min=1であるから、c=1となる。そして処理はステップS85に移行して、3回目のステップS85では、F[2]=3−1=2となる。従って、図26に示すような度数分布表Fになる。
i=3になると、ステップS81では、i<ciは成り立たないので、ステップS89に移行する。但し、i+1<|F|であるから、ステップS91に処理は移行し、c=ceil(F[4]*a)=3となる。max=2でc=3であるから、max<cの条件を満たしている。従って、max=c=3となる。そして、回目のステップS85では、F[3]=4−3=1となる。従って、図27に示すような度数分布表Fとなる。
i=4になると、ステップS81では、i<ciは成り立たないので、ステップS89に移行する。i+1<|F|は満たさなくなる。そうすると、ステップS95に処理は移行し、c=min=1となる。そして処理はステップS85に移行して、回目のステップS85では、F[4]=F[4]−c=5−1=4となる。従って、図28に示すような度数分布表Fが得られる。
その後i=5になると、ステップS77ではi<|F|の条件を満たさなくなるので、処理は呼出元の処理に戻る。従って図28に示すように、IDがAの1レコード、IDがCの2レコード、IDがDの1レコード、及びIDがEの4レコードが、譲渡可能なレコードとして特定されたことになる。
図22の処理の説明に戻って、グループ化処理部130は、予め定められている優先順位に従って、譲渡可能なレコードを具体的に特定する(ステップS63)。優先順位については、固定メッシュ要素のIDがソート順でより後ろ、それが同じなら数値属性値がソート順でより後ろのレコードが、譲渡可能なレコード(譲って良いレコード)となる。
最初の例では、グループGにはレコード{1,2,3,4}が含まれており、上で述べた処理を行うと、IDがBの1レコードを譲って良いことになる。従って優先順位に従って選択すると、レコード{3}が選択される。
ここまでの処理によれば、図29に示すようなグループ対応表及び図30に示すようなグループ情報表が得られるようになる。
図29に示すようなグループ対応表は、行番号からグループIDを特定できるようになっている。グループIDはグループに一意なものを適宜設定する。例えば、レコードrの行番号を用いる。図30に示すグループ情報表は、各グループについて、譲れないレコードと譲って良いレコードを分別して記録したものである。条件a(減衰率)のように、どのIDをいくつ譲っても条件を満たすか計算できる条件を使用することは、処理効率が良い。
図11の処理の説明に戻って、グループ化処理部130は、レコードのグループGには他のグループG2に含まれるレコード(譲って良いレコード)が含まれるか判断する(ステップS21)。グループGに他のグループG2に含まれるレコードが含まれる場合には、グループ化処理部130は、他のグループG2についてのグループ対応表及びグループ情報表から、そのレコードについてデータを削除するように変更を行う(ステップS23)。一方、グループGに他のグループG2に含まれるレコードが含まれない場合には、処理はステップS25に移行する。
そして、グループ化処理部130は、特定された固定メッシュ要素mについてグループ化未了のレコードが存在するか判断する(ステップS25)。グループ化未了のレコードが存在する場合には、端子Cを介して図5のステップS5へ戻る。一方、特定された固定メッシュ要素mについてグループ化未了のレコードが存在しない場合には、グループ化処理部130は、対応表において未処理の固定メッシュ要素が存在するか判断する(ステップS27)。未処理の固定メッシュ要素が存在する場合には、端子Dを介して図5のステップS3へ処理は戻る。一方、未処理の固定メッシュ要素が存在しない場合には、処理は端子Eを介して図35の処理に移行する。
固定メッシュ要素m=(0,0)に属するレコード{1,2,3,4,5}のうちグループ化未了のレコードはレコード5((X,Y)=(4,4))であり、レコードrとなる。この場合、近隣固定メッシュ要素のレコードは、レコード{1,2,3,4,5,6,7,8,9}となる。但し、4−6<X<4+6、4−6<Y<4+6の範囲に入る数値属性値を有するレコード群のうち、既にグループ化されており、譲れないレコードである{1,2,4}を除くと、レコード群Rd={3,5,6,7,8,9}となる。
そして、レコード5を中心にしてl=3となるレコードRlを抽出すると、Rl={3,5,9}となる。そして、このレコードRlの最小矩形は(X,Y)=([3, 7], [1, 4])となる。この最小矩形の左上の点p=(7,4)であるから、この点pを基準にしてサイズd=(6,6)の矩形rectを生成すると、rect:(X,Y)=((1, 7], (-2, 4])となる。この矩形rectに含まれるレコード群Rdから、レコードのグループGは{3,5,8,9}が得られる。このグループGのID属性についての度数分布は、度数分布パターンにおける条件l及びaを満たしている。このグループGの度数分布は、{A:2,B:1,C:1}となり、IDがAであるレコード「9」は譲っても良いことになる。
従って、図31に示すようなグループ対応表及び図32に示すようなグループ情報表が得られる。ここで、レコード3は、グループ1から譲ってもらったことになるので、グループ1のグループ対応表及びグループ情報表を変更することになる。総合すると、ここまでの処理で、グループ対応表は図33のように変化し、グループ情報表は図34のように変化する。グループ1からレコード3が除外され、グループ5に所属することになる。
なお、レコード{6,7}だけが残っていることになるが、これらについてはここまでの処理ではグループ化されない。
そこで、処理は端子Eを介して図35Aの処理に移行する。グループ化処理部130は、グループ化できなかったレコードが存在するか判断する(図35A:ステップS101)。グループ対応表に登録されていないレコードについてはグループ化できなかったと判断できる。グループ化できなかったレコードが存在しない場合には、処理は端子Fを介して図39の処理に移行する。
一方、グループ化できなかったレコードが存在する場合には、グループ化処理部130は、グループ化できなかったレコードを含む未処理の固定メッシュ要素mを1つ特定する(ステップS103)。そして、グループ化処理部130は、レコード追加処理を実行する(ステップS105)。レコード追加処理については、図35Bを用いて説明する。グループ化処理部130は、固定メッシュ要素mの近隣固定メッシュ要素群に包含されるグループのリストGmを抽出する(ステップS201)。ここでは、グループに含まれる全レコードが近隣固定メッシュ要素群に包含される場合のみ、そのグループはリストGmの要素となる。さらに、グループ化処理部130は、特定された固定メッシュ要素m内のグループ化できなかった未処理のレコードrを1つ特定する(ステップS203)。そして、グループ化処理部130は、リストGmをレコードrからの距離でソートする(ステップS205)。ここで、グループとレコードの距離は、例えばグループの最小矩形の中心点と、レコードとのマンハッタン距離とする。さらに、グループ化処理部130は、距離が短い方からリストGm内の未処理のグループGを特定する(ステップS207)。そして、グループ化処理部130は、グループG及びレコードrを含む最小矩形がdより小さいか判断する(ステップS209)。例えば、グループ毎にその最小矩形が包含される固定メッシュ要素のIDを特定しておくと共に、中心座標を特定しておくと処理が高速化される。固定メッシュ要素(0,1)におけるレコード「6」((X,Y)=(5,7))がステップS203で特定されたとすると、この固定メッシュ要素の近隣固定メッシュ要素群に、グループ5及び1が含まれているので、グループ5及び1がリストGmに含まれることになる。ここでは、図36に示すような状態となる。レコード6を基準に各グループの最小矩形の中心点とのマンハッタン距離で両グループをソートすると、グループ5の方が近いことがわかる。グループ5とレコード6を含む最小矩形はdより大きい。従って、処理はステップS211に移行する。すなわち、ステップS209の条件が満たされない場合にはステップS211に移行する。そして、グループ化処理部130は、リストGmに未処理のグループが存在するか判断する(ステップS211)。未処理のグループが存在すれば処理はステップS207に戻る。図36の例では未処理のグループ1があるので、ステップS207に戻る。グループ1をグループGとして選択して同様に処理を進めると、ステップS209で条件を満たさないと判断され、処理はステップS211に移行する。もうリストGmには未処理のグループがないので、処理はステップS217に移行する。
一方、グループG及びレコードrを含む最小矩形がdより小さい場合には、グループ化処理部130は、レコードrをそのグループGに加えた場合に度数分布が、度数分布パターンを満たしているか判断する(ステップS213)。レコードrがレコード7であれば、グループ5とレコード7を含む最小矩形はdより小さくステップS213の条件を満たしており、度数分布も{A:2,B:1,C:2}となるので、条件l及びaを満たしている。
度数分布パターンが満たされない場合には処理はステップS211に移行する。一方、レコードrをそのグループに加えた場合に度数分布が、度数分布パターンを満たしている場合には、グループ化処理部130は、レコードrをグループGに追加登録する(ステップS215)。すなわち、図37のようなグループ対応表が得られ、図38のようなグループ情報表が得られるようになる。グループ対応表及びグループ情報表は、第2データ格納部140に格納される。
その後、グループ化処理部130は、特定された固定メッシュ要素について、グループ化できなかった未処理のレコードが存在するか判断する(ステップS217)。未処理のレコードが存在する場合には、処理はステップS203に戻る。一方、未処理のレコードが存在しない場合には、処理は図35Aの処理に戻る。図35Aの説明に戻って、グループ化処理部130は、グループ化できなかったレコードを含む未処理の固定メッシュ要素が存在するか判断する(ステップS115)。グループ化できなかったレコードを含む未処理の固定メッシュ要素が存在する場合には、処理はステップS103に戻る。一方、グループ化できなかったレコードを含む未処理の固定メッシュ要素が存在しない場合には、処理は端子Fを介して図39の処理に移行する。
図39の処理の説明に移行して、グループ化処理部130の処理が終了すると、匿名化処理部150は、第2データ格納部140において未処理のグループをランダムに1つ特定する(ステップS117)。また、匿名化処理部150は、特定されたグループの全レコードを包含する大きさdの矩形をランダムに決定する(ステップS119)。例えば、図40に示すように、レコード{1,2,4}を含むグループ1についての矩形Pを設定する。後には、レコード{3,5,7,8,9}を含むグループ5についての矩形Qをも設定される。なお、図40でもID毎に異なる形状の点をプロットしている。
このような矩形P及びQは、特定のIDしか存在し得ないような領域(例えばA氏宅敷地)に包含される可能性はない。また、レコード6は異なるIDのレコードが近くに十分にないため、開示対象外となっている。矩形P及びQ同士が重なっているが、それによりレコード3(ID=B)を上手く分け合っている様子がわかる。
そして、匿名化処理部150は、決定された矩形の中心座標を計算する(ステップS121)。中心以外の座標であっても良い。その後、匿名化処理部150は、特定されたグループに属する未処理のレコードを1つランダム特定する(ステップS123)。そして、匿名化処理部150は、特定されたレコードのデータを第1データ格納部110から読み出して、IDを削除し、位置座標XYを矩形中心座標に置換して、第3データ格納部160における出力テーブルに登録する(ステップS125)。例えば、図41に示すようにレコード2が最初に選択された場合、IDは削除されて、位置座標XYも(2,0)から、矩形の中心座標(2,2)に置換されている。速さという属性値については変更しない。但し、速さ属性の属性値についても変換しても良い。
そして、匿名化処理部150は、特定されたグループにおいて未処理のレコードが存在するか判断する(ステップS127)。未処理のレコードが存在する場合には処理はステップS123に戻る。一方、未処理のレコードが存在しない場合には、匿名化処理部150は、未処理のグループが存在しているか判断する(ステップS129)。未処理のグループが存在している場合には処理はステップS117に戻る。一方、未処理のグループが存在しない場合には、出力部170は、第3データ格納部160における出力テーブルを、表示装置や印刷装置などの出力装置に出力する(ステップS131)。
上で述べた例では、図42に示すようなデータが出力されるようになる。図42の例では、行番号が含まれているが、このようなデータについては削除しても良い。
以上のような処理を行うことで、グルーピングされたレコードだけが開示されるが、各グループは機密属性値についてl種類以上あるので、各グループの範囲が特定のIDしか存在し得ないような領域に包含されることはなく、匿名性が担保される。
また、開示されるレコードが存在する各範囲は大きさd未満となるため、小さいdを指定することで高精度の分析が可能となる。但し、dが小さいほどどの範囲にも分類されないレコードが増え、そのようなレコードは開示されないため、dを小さくし過ぎることは好ましくない。
さらに、グループのレコードを含む各範囲が重なることを許容することによって、どの範囲にも分類されないレコードの数を減らすことができる。これは、開示されるレコード数を増やす、すなわち分析に使えるデータ量が増えることになるので、高精度な分析が望める。
すなわち、本実施の形態によれば、dが指定された場合、匿名性を担保したままそのdに適した精度のデータを開示できる。例えば、測定誤差や、分析側の分析能に基づいてdを決めることで、最も良く匿名性と分析精度の両立をはかることができる。
以上本技術の実施の形態を説明したが、本技術は、これに限定されない。例えば、処理フローは一例であり、処理結果が変わらない限り、処理順番を入れ替えたり、複数のステップを並列実行する場合もある。
特に、上で述べた矩形rectを設定する方法は一例である。他のグループの矩形とは無関係に設定できるので、グループに包含されるレコードをメインに考慮して設定できる。
また、上で述べた例では数値属性が2次元であったが、1次元であっても3次元以上であっても良い。その場合、矩形ではなく線分や直方体など次元数に応じて変化する。
さらに、情報処理装置100は、1台のコンピュータではなく複数台のコンピュータで機能分担を行う場合もある。さらに、サーバクライアント型の実装形態である場合もある。
なお、上で述べた情報処理装置100は、例えばコンピュータ装置であって、図43に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本実施の形態をまとめると、以下のようになる。
本実施の形態に係る匿名化データ生成方法は、(A)各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部から、複数のデータブロックのうち、グループ化未了の第1のデータブロックを含み且つ機密属性値の度数分布が所定の条件を満たし且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックのグループを抽出し、(B)グループに属するデータブロックの数値属性値を、グループについて算出された数値属性値で置換する処理を含む。そして、上記所定の領域が、他のグループについての所定の領域とは無関係に決定されるものである。
上で述べた所定の領域が他のグループについての所定の領域とは無関係に決定されるので、一部重複することもあるが、そのために機密属性値の度数分布が所定の条件を満たすグループを生成しやすくなり、グループ化漏れも少なくできる。すなわち、分析に用いることができるデータ量が増加し、分析精度が向上する。また、所定の領域のサイズについても調整可能であり、この点についても分析精度向上の要因となる。
また、本匿名化データ生成方法は、(C)上記グループに属するデータブロックの機密属性値を削除する処理をさらに含むようにしても良い。機密保持のためである。
さらに、上で述べた抽出する処理は、(a1)グループ化未了の第1のデータブロックを含み且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックの集合についての機密属性値の度数分布が、所定の条件を満たすか判断し、(a2)データブロックの集合についての機密属性値の度数分布が所定の条件を満たさない場合には、所定の条件を満たすようにデータブロックの集合から第2のデータブロックを除外することでデータブロックのグループを生成する処理を含むようにしても良い。このように除外された第2のデータブロックは、他のグループの抽出に用いられるため、上で述べた所定の領域の重複が生じ得る。
さらに、上で述べた抽出する処理は、(a3)データブロックのグループから、機密属性値の度数分布が所定の条件を満たす上で必須となるデータブロック以外の第3のデータブロックを抽出する処理を含む場合もある。この場合、データブロックの他のグループを抽出する処理において、第3のデータブロックが抽出されるようにしても良い。第3のデータブロックを他のグループの抽出に用いることができるため、グループの抽出が容易になる。
また、上で述べた所定の条件が、機密属性値の種類数の下限値を含む場合もある。この場合、上で述べた抽出する処理が、(a4)第1のデータブロックを基準に機密属性値の種類数の下限値以上となるように第4のデータブロックを抽出し、(a5)抽出された第4のデータブロックの数値属性値に基づき所定サイズを有する所定の領域を決定する処理を含むようにしても良い。第4のデータブロックが第1のデータブロックから所定の範囲内で抽出できない場合にはグループの抽出は無理なので、他のデータブロックの処理に移行するものである。
さらに、本匿名化データ生成方法は、(D)いずれのグループにも属しないデータブロックが存在する場合には、所属する第5のデータブロックを包含する領域の基準位置と当該データブロックとの距離が所定のサイズに相当する距離以下であり且つ当該データブロックを加えることで機密属性値の度数分布が所定の条件を満たしたままであれば、当該データブロックを第5のデータブロックのグループに分類する処理をさらに含むようにしても良い。可能な限り漏れなくグループ化することができるようになる。
また、上で述べた置換する処理が、(b1)グループに属するデータブロックの数値属性値を包含する所定のサイズを有する領域をランダムに生成し、(b2)生成された領域内の位置に対応する数値属性値で、グループに属するデータブロックの数値属性値を置換する処理を含むようにしても良い。これによってグループの特性を保持しつつ匿名化できるようになる。
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。

Claims (9)

  1. 各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部から、前記複数のデータブロックのうち、グループ化未了の第1のデータブロックを含み且つ機密属性値の度数分布が所定の条件を満たし且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックのグループを抽出し、
    前記グループに属するデータブロックの数値属性値を、前記グループについて算出された数値属性値で置換する
    処理を含み、コンピュータにより実行され、
    前記所定の領域が、他のグループについての所定の領域とは無関係に決定される
    匿名化データ生成方法。
  2. 前記グループに属するデータブロックの機密属性値を削除する
    処理をさらに含む請求項1記載の匿名化データ生成方法。
  3. 前記抽出する処理は、
    前記グループ化未了の第1のデータブロックを含み且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックの集合についての機密属性値の度数分布が、前記所定の条件を満たすか判断し、
    前記データブロックの集合についての機密属性値の度数分布が前記所定の条件を満たさない場合には、前記所定の条件を満たすように前記データブロックの集合から第2のデータブロックを除外することで前記データブロックのグループを生成する
    処理を含む請求項1又は2記載の匿名化データ生成方法。
  4. 前記抽出する処理は、
    前記データブロックのグループから、前記機密属性値の度数分布が前記所定の条件を満たす上で必須となるデータブロック以外の第3のデータブロックを抽出する処理
    を含み、
    データブロックの他のグループを抽出する処理において、前記第3のデータブロックが抽出される
    請求項1乃至3のいずれか1つ記載の匿名化データ生成方法。
  5. 前記所定の条件が、機密属性値の種類数の下限値を含み、
    前記抽出する処理が、
    前記第1のデータブロックを基準に機密属性値の種類数の下限値を満たすように第4のデータブロックを抽出し、
    抽出された前記第4のデータブロックの数値属性値に基づき前記所定サイズを有する所定の領域を決定する
    処理を含む請求項1乃至4のいずれか1つ記載の匿名化データ生成方法。
  6. いずれのグループにも属しないデータブロックが存在する場合には、所属する第5のデータブロックを包含する領域の基準位置と当該データブロックとの距離が前記所定のサイズに相当する距離以下であり且つ当該データブロックを加えることで前記機密属性値の度数分布が前記所定の条件を満たしたままであれば、当該データブロックを前記第5のデータブロックのグループに分類する処理
    をさらに含む請求項1乃至5のいずれか1つ記載の匿名化データ生成方法。
  7. 前記置換する処理が、
    前記グループに属するデータブロックの数値属性値を包含する前記所定のサイズを有する領域をランダムに生成し、
    生成された前記領域内の位置に対応する数値属性値で、前記グループに属するデータブロックの数値属性値を置換する
    処理を含む請求項1乃至6のいずれか1つ記載の匿名化データ生成方法。
  8. 各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部から、前記複数のデータブロックのうち、グループ化未了の第1のデータブロックを含み且つ機密属性値の度数分布が所定の条件を満たし且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックのグループを抽出し、
    前記グループに属するデータブロックの数値属性値を、前記グループについて算出された数値属性値で置換する
    処理を、コンピュータに実行させ、
    前記所定の領域が、他のグループについての所定の領域とは無関係に決定される
    匿名化データ生成プログラム。
  9. 各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部から、前記複数のデータブロックのうち、グループ化未了の第1のデータブロックを含み且つ機密属性値の度数分布が所定の条件を満たし且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックのグループを抽出するグループ化処理部と、
    前記グループに属するデータブロックの数値属性値を、前記グループについて算出された数値属性値で置換する匿名化処理部と、
    を有し、
    前記所定の領域が、他のグループについての所定の領域とは無関係に決定される
    情報処理装置。
JP2014557220A 2013-01-16 2013-01-16 秘匿化データ生成方法及び装置 Expired - Fee Related JP6015777B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/050631 WO2014112045A1 (ja) 2013-01-16 2013-01-16 秘匿化データ生成方法及び装置

Publications (2)

Publication Number Publication Date
JP6015777B2 JP6015777B2 (ja) 2016-10-26
JPWO2014112045A1 true JPWO2014112045A1 (ja) 2017-01-19

Family

ID=51209171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014557220A Expired - Fee Related JP6015777B2 (ja) 2013-01-16 2013-01-16 秘匿化データ生成方法及び装置

Country Status (4)

Country Link
US (1) US9747467B2 (ja)
EP (1) EP2947597B1 (ja)
JP (1) JP6015777B2 (ja)
WO (1) WO2014112045A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10069631B2 (en) * 2016-03-17 2018-09-04 Palo Alto Research Center Incorporated Fault-tolerant aggregation of encrypted data in a star network
WO2018028783A1 (en) * 2016-08-10 2018-02-15 Siemens Aktiengesellschaft Big data k-anonymizing by parallel semantic micro-aggregation
WO2019189969A1 (ko) * 2018-03-30 2019-10-03 주식회사 그리즐리 빅데이터 개인정보 익명화 및 익명 데이터 결합 방법
US20220215127A1 (en) * 2019-04-29 2022-07-07 Telefonaktiebolaget Lm Ericsson (Publ) Data anonymization views

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013472A (ja) 2002-06-06 2004-01-15 Video Research:Kk 顧客データベース融合方法及び融合処理プログラム、融合リレーショナルデータを記録したコンピュータ読み取り可能な記録媒体
US8112422B2 (en) * 2008-10-27 2012-02-07 At&T Intellectual Property I, L.P. Computer systems, methods and computer program products for data anonymization for aggregate query answering
JP5454262B2 (ja) 2010-03-18 2014-03-26 富士通株式会社 プライバシー保護装置、プライバシー保護方法、プライバシー保護プログラム、及びライフログ管理システム
JP5511532B2 (ja) 2010-06-16 2014-06-04 Kddi株式会社 公開情報のプライバシー保護装置、公開情報のプライバシー保護方法およびプログラム
JP2012079205A (ja) * 2010-10-05 2012-04-19 Hitachi Ltd 個人情報匿名化装置及び方法
US10148623B2 (en) * 2010-11-12 2018-12-04 Time Warner Cable Enterprises Llc Apparatus and methods ensuring data privacy in a content distribution network
CA2821438A1 (en) 2010-12-27 2012-07-05 Nec Corporation Information protection device and information protection method
US8555400B2 (en) 2011-02-04 2013-10-08 Palo Alto Research Center Incorporated Privacy-preserving aggregation of Time-series data
WO2012127572A1 (ja) 2011-03-18 2012-09-27 富士通株式会社 秘匿データ処理方法、プログラム及び装置

Also Published As

Publication number Publication date
US20150294121A1 (en) 2015-10-15
EP2947597B1 (en) 2019-06-19
EP2947597A1 (en) 2015-11-25
EP2947597A4 (en) 2016-01-06
WO2014112045A1 (ja) 2014-07-24
JP6015777B2 (ja) 2016-10-26
US9747467B2 (en) 2017-08-29

Similar Documents

Publication Publication Date Title
TWI718643B (zh) 異常群體識別方法及裝置
JP2019532370A (ja) ユーザ権限データ検索方法および電子機器
JP2014002519A (ja) 時空間データ管理システム、時空間データ管理方法、及びそのプログラム
KR102134952B1 (ko) 데이터 처리 방법 및 시스템
JP6015777B2 (ja) 秘匿化データ生成方法及び装置
Ullah et al. Identification of Influential Nodes via Effective Distance‐based Centrality Mechanism in Complex Networks
JP2010020490A (ja) 未訪問地の情報提供装置及び未訪問地の情報提供方法
ElBarawy et al. Improving social network community detection using DBSCAN algorithm
Elagib et al. Big data analysis solutions using MapReduce framework
JP2016018379A (ja) プライバシー保護装置、方法及びプログラム
JP2017041048A (ja) プライバシ保護装置、方法及びプログラム
Yin et al. An industrial dynamic skyline based similarity joins for multidimensional big data applications
Belcastro et al. Parallel extraction of Regions‐of‐Interest from social media data
US20120136911A1 (en) Information processing apparatus, information processing method and information processing program
JP2017107385A (ja) タスク割当装置、方法、及びプログラム
KR101638739B1 (ko) 비정형 텍스트 데이터 처리방법
Lee et al. Fast mining of spatial frequent wordset from social database
TW201828193A (zh) 一種用戶群體的劃分方法和裝置
CN111107493B (zh) 一种移动用户位置预测方法与系统
Koteshwariah et al. A fuzzy version of generalized DBSCAN clustering algorithm
Khare et al. Clustering networks based on physarum optimization for seismic catalogs analysis
Shelke et al. Origin identification of a rumor in social network
Zhang et al. Scalable iterative implementation of mondrian for big data multidimensional anonymisation
KR101760108B1 (ko) Sns 키워드 경로 분석 시스템
Dolgorsuren et al. SP2: Spanner construction for shortest path computation on streaming graph

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160830

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160912

R150 Certificate of patent or registration of utility model

Ref document number: 6015777

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees