(57)【要約】【課題】データセットの有用性を維持して匿名化できる匿名化装置、匿名化方法及び匿名化プログラムを提供すること。【解決手段】匿名化装置１は、ユーザ情報のデータセットが記述されたテンソルの入力を受け付ける入力部１１と、テンソルを、所定のテンソル分解のアルゴリズムにより、複数の因子の積に分解するテンソル分解部１２と、複数の因子のうち、ユーザ毎の特徴を示す特定の因子に対して、匿名化の演算を行う匿名化演算部１３と、匿名化された因子で特定の因子を置き換え、匿名化テンソルを算出して出力する出力部１４と、を備える。【選択図】図１
2020017101.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ情報のデータセットが記述されたテンソルの入力を受け付ける入力部と、
前記テンソルを、所定のテンソル分解のアルゴリズムにより、複数の因子の積に分解するテンソル分解部と、
前記複数の因子のうち、ユーザ毎の特徴を示す特定の因子に対して、匿名化の演算を行う匿名化演算部と、
匿名化された因子で前記特定の因子を置き換え、前記テンソルに近似した匿名化テンソルを算出して出力する出力部と、を備える匿名化装置。
【請求項２】
前記匿名化演算部は、前記特定の因子に対して、ｋ−匿名化の演算を行う請求項１に記載の匿名化装置。
【請求項３】
前記匿名化演算部は、前記特定の因子に対して、ノイズを付加する演算を行う請求項１に記載の匿名化装置。
【請求項４】
前記テンソル分解におけるランク、及び前記匿名化の強度をパラメータとして受け付けて設定する設定部を備える請求項１から請求項３のいずれかに記載の匿名化装置。
【請求項５】
ユーザ情報のデータセットが記述されたテンソルの入力を受け付ける入力ステップと、
前記テンソルを、所定のテンソル分解のアルゴリズムにより、複数の因子の積に分解するテンソル分解ステップと、
前記複数の因子のうち、ユーザ毎の特徴を示す特定の因子に対して、匿名化の演算を行う匿名化演算ステップと、
匿名化された因子で前記特定の因子を置き換え、前記テンソルに近似した匿名化テンソルを算出して出力する出力ステップと、をコンピュータが実行する匿名化方法。
【請求項６】
ユーザ情報のデータセットが記述されたテンソルの入力を受け付ける入力ステップと、
前記テンソルを、所定のテンソル分解のアルゴリズムにより、複数の因子の積に分解するテンソル分解ステップと、
前記複数の因子のうち、ユーザ毎の特徴を示す特定の因子に対して、匿名化の演算を行う匿名化演算ステップと、
匿名化された因子で前記特定の因子を置き換え、前記テンソルに近似した匿名化テンソルを算出して出力する出力ステップと、をコンピュータに実行させるための匿名化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データセットを匿名化する匿名化装置、匿名化方法及び匿名化プログラムに関する。
【背景技術】
【０００２】
従来、ユーザ情報を含むデータセットを活用する際に、個人のプライバシを保護するために、データの匿名化が行われている。
匿名化手法として、例えば、非特許文献１〜３ではｋ−匿名化手法が、非特許文献４〜６ではデータにノイズを付加する手法が提案されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｐ．  Ｓａｍａｒａｔｉ  ａｎｄ  Ｌ．  Ｓｗｅｅｎｅｙ，  “Ｇｅｎｅｒａｌｉｚｉｎｇ  ｄａｔａ  ｔｏ  ｐｒｏｖｉｄｅ  ａｎｏｎｙｍｉｔｙ  ｗｈｅｎ  ｄｉｓｃｌｏｓｉｎｇ  ｉｎｆｏｒｍａｔｉｏｎ，”  ｉｎ  Ｐｒｏｃ．  ｏｆ  ＰＯＤＳ  １９９８，  １９９８，  ｐ．  １８８．
【非特許文献２】Ｐ．  Ｓａｍａｒａｔｉ，  “Ｐｒｏｔｅｃｔｉｎｇ  ｒｅｓｐｏｎｄｅｎｔｓ’  ｉｄｅｎｔｉｔｉｅｓ  ｉｎ  ｍｉｃｒｏｄａｔａ  ｒｅｌｅａｓｅ，”  ＩＥＥＥ  Ｔｒａｎｓ．  ｏｎ  Ｋｎｏｗｌｅｄｇｅ  ａｎｄ  Ｄａｔａ  Ｅｎｇｉｎｅｅｒｉｎｇ，  ｖｏｌ．  １３，  ｎｏ．  ６，  ｐｐ．  １０１０−１０２７，  ２００１．
【非特許文献３】Ｌ．  Ｓｗｅｅｎｅｙ，  “Ａｃｈｉｅｖｉｎｇ  ｋ−ａｎｏｎｙｍｉｔｙ  ｐｒｉｖａｃｙ  ｐｒｏｔｅｃｔｉｏｎ  ｕｓｉｎｇ  ｇｅｎｅｒａｌｉｚａｔｉｏｎ  ａｎｄ  ｓｕｐｐｒｅｓｓｉｏｎ，”  ｉｎ  Ｊ．  Ｕｎｃｅｒｔａｉｎｔｙ，  Ｆｕｚｚｉｎｅｓｓ，  ａｎｄ  Ｋｎｏｗｌｅｄｇｅ−Ｂａｓｅ  Ｓｙｓｔｅｍｓ，  ｖｏｌ．  １０（５），  ２００２，  ｐｐ．  ５７１−５８８．
【非特許文献４】Ｋ．  Ｍｉｖｕｌｅ，  “Ｕｔｉｌｉｚｉｎｇ  ｎｏｉｓｅ  ａｄｄｉｔｉｏｎ  ｆｏｒ  ｄａｔａ  ｐｒｉｖａｃｙ，  ａｎ  ｏｖｅｒｖｉｅｗ，”  ａｒＸｉｖ  ｐｒｅｐｒｉｎｔ  ａｒＸｉｖ：１３０９．３９５８，  ２０１３．
【非特許文献５】Ｊ．  Ｊ．  Ｋｉｍ，  “Ａ  ｍｅｔｈｏｄ  ｆｏｒ  ｌｉｍｉｔｉｎｇ  ｄｉｓｃｌｏｓｕｒｅ  ｉｎ  ｍｉｃｒｏｄａｔａ  ｂａｓｅｄ  ｏｎ  ｒａｎｄｏｍ  ｎｏｉｓｅ  ａｎｄ  ｔｒａｎｓｆｏｒｍａｔｉｏｎ，”  ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ｓｅｃｔｉｏｎ  ｏｎ  ｓｕｒｖｅｙ  ｒｅｓｅａｒｃｈ  ｍｅｔｈｏｄｓ．  Ａｍｅｒｉｃａｎ  Ｓｔａｔｉｓｔｉｃａｌ  Ａｓｓｏｃｉａｔｉｏｎ，  １９８６，  ｐｐ．  ３０３−３０８．
【非特許文献６】Ｔ．  Ｙｕ  ａｎｄ  Ｓ．  Ｊａｊｏｄｉａ，  “Ｓｅｃｕｒｅ  ｄａｔａ  ｍａｎａｇｅｍｅｎｔ  ｉｎ  ｄｅｃｅｎｔｒａｌｉｚｅｄ  ｓｙｓｔｅｍｓ，”  Ｓｐｒｉｎｇｅｒ  Ｓｃｉｅｎｃｅ  ＆  Ｂｕｓｉｎｅｓｓ  Ｍｅｄｉａ，  ２００７，  ｖｏｌ．  ３３．
【発明の概要】
【発明が解決しようとする課題】
【０００４】
データの匿名化の目的は、個人のプライバシを守ることと、データの有用性を維持することとの相反する二つの両立にある。しかしながら、従来の匿名化手法では、データの匿名性を向上させると、有用性が大きく低下してしまう場合があった。
【０００５】
本発明は、データセットの有用性を維持して匿名化できる匿名化装置、匿名化方法及び匿名化プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る匿名化装置は、ユーザ情報のデータセットが記述されたテンソルの入力を受け付ける入力部と、前記テンソルを、所定のテンソル分解のアルゴリズムにより、複数の因子の積に分解するテンソル分解部と、前記複数の因子のうち、ユーザ毎の特徴を示す特定の因子に対して、匿名化の演算を行う匿名化演算部と、匿名化された因子で前記特定の因子を置き換え、前記テンソルに近似した匿名化テンソルを算出して出力する出力部と、を備える。
【０００７】
前記匿名化演算部は、前記特定の因子に対して、ｋ−匿名化の演算を行ってもよい。
【０００８】
前記匿名化演算部は、前記特定の因子に対して、ノイズを付加する演算を行ってもよい。
【０００９】
前記匿名化装置は、前記テンソル分解におけるランク、及び前記匿名化の強度をパラメータとして受け付けて設定する設定部を備えてもよい。
【００１０】
本発明に係る匿名化方法は、ユーザ情報のデータセットが記述されたテンソルの入力を受け付ける入力ステップと、前記テンソルを、所定のテンソル分解のアルゴリズムにより、複数の因子の積に分解するテンソル分解ステップと、前記複数の因子のうち、ユーザ毎の特徴を示す特定の因子に対して、匿名化の演算を行う匿名化演算ステップと、匿名化された因子で前記特定の因子を置き換え、前記テンソルに近似した匿名化テンソルを算出して出力する出力ステップと、をコンピュータが実行する。
【００１１】
本発明に係る匿名化プログラムは、ユーザ情報のデータセットが記述されたテンソルの入力を受け付ける入力ステップと、前記テンソルを、所定のテンソル分解のアルゴリズムにより、複数の因子の積に分解するテンソル分解ステップと、前記複数の因子のうち、ユーザ毎の特徴を示す特定の因子に対して、匿名化の演算を行う匿名化演算ステップと、匿名化された因子で前記特定の因子を置き換え、前記テンソルに近似した匿名化テンソルを算出して出力する出力ステップと、をコンピュータに実行させるためのものである。
【発明の効果】
【００１２】
本発明によれば、データセットの有用性を維持して匿名化できる。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係る匿名化装置の機能構成を示すブロック図である。
【図２】実施形態に係る匿名化方法のアルゴリズムを例示する図である。
【図３】実施形態に係る匿名化方法の従来との比較実験結果を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態の一例について説明する。
図１は、本実施形態に係る匿名化装置１の機能構成を示すブロック図である。
匿名化装置１は、サーバ装置又はパーソナルコンピュータ等の情報処理装置（コンピュータ）であり、制御部１０、記憶部２０、及び各種の入出力デバイスを備える。
【００１５】
制御部１０は、匿名化装置１の全体を制御する部分であり、記憶部２０に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における機能を実現している。制御部１０は、ＣＰＵであってよい。
【００１６】
記憶部２０は、ハードウェア群を匿名化装置１として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ＲＯＭ、ＲＡＭ、フラッシュメモリ又はハードディスク（ＨＤＤ）等であってよい。具体的には、記憶部２０は、本実施形態の機能を制御部１０に実行させるための匿名化プログラムの他、処理対象のデータセット及び各種パラメータ等を記憶する。
【００１７】
また、制御部１０は、入力部１１と、テンソル分解部１２と、匿名化演算部１３と、出力部１４と、設定部１５とを備える。これらの機能部は、記憶部２０に記憶された匿名化プログラムを制御部１０が実行することにより実現される。
【００１８】
入力部１１は、ユーザの個人情報を含んだデータセットが記述されたテンソルの入力を受け付ける。
なお、本実施形態では、入力されるテンソルは、一例として２階テンソルである行列として説明するが、これには限られない。
【００１９】
匿名化の対象とするデータセットは、例えば、ある期間におけるユーザの移動履歴、購買履歴、アクセス履歴等である。このようなデータセットは、ｎ人のユーザに対してｍ個の位置、商品、サイト等のうち実績のあり／なしがｎ行ｍ列の行列において各要素の１／０として記述される。
【００２０】
テンソル分解部１２は、入力されたテンソルを、所定のテンソル分解のアルゴリズムにより、複数の因子の積に分解する。
テンソル分解には、既知のアルゴリズムが利用可能である。例えば、２階テンソルの場合には、ＳＶＤ（Ｓｉｎｇｕｌａｒ  Ｖａｌｕｅ  Ｄｅｃｏｍｐｏｓｉｔｉｏｎ）又はＮＭＦ（Ｎｏｎ−ｎｅｇａｔｉｖｅ  Ｍａｔｒｉｘ  Ｆａｃｔｏｒｉｚａｔｉｏｎ）等の行列分解アルゴリズムが利用可能である。
【００２１】
これにより、行列Ｍ∈Ｒｎ×ｍは、Ｕ∈Ｒｎ×ｒ及びＶ∈Ｒｒ×ｍという２つの行列に分割される。Ｕは、行の特徴、すなわちユーザ毎の特徴を示す行列である。一方、Ｖは、列の特徴、すなわち履歴データ等の特徴を示しており、ユーザ固有の情報を含まない。
ここで、行列分解のパラメータであるランクｒが小さくなるほど、特徴量の数が削減され、分解された行列Ｕ及びＶの積ＵＶの元の行列Ｍとの近似精度が低くなる。
【００２２】
匿名化演算部１３は、分解された複数の因子のうち、ユーザ毎の特徴を示す特定の因子に対して、匿名化の演算を行う。
例えば、匿名化の対象とする行列ＭがＵとＶとに分解された場合、匿名化演算部１３は、ユーザ毎の特徴を示す行列Ｕのみに匿名化の演算を行う。
匿名化の演算には、例えば、ｋ−匿名化、又はノイズを付加する演算が採用されてよい。
【００２３】
出力部１４は、匿名化された因子で特定の因子を置き換え、元のテンソルに近似した匿名化テンソルを算出して出力する。
例えば、行列に対する匿名化関数をＡ（）とすると、出力部１４は、元の行列Ｍの近似行列Ａ（Ｕ）Ｖを算出することで、ユーザの特徴のみを匿名化した行列を出力する。
【００２４】
設定部１５は、テンソル分解におけるランク、及び匿名化の強度をパラメータとして受け付けて設定する。
匿名化の強度とは、ｋ−匿名化におけるｋの値、又はノイズの大きさ、例えばノイズの一例であるラプラス分布における分散２φ２の値等である。
【００２５】
図２は、本実施形態に係る匿名化方法のアルゴリズムを例示する図である。
この例は、ＮＭＦのアルゴリズムに対して、匿名化の演算を組み入れたものである。
まず、匿名化の対象となる元の行列Ｍに対して、ランクｒと、交互最適化の繰り返し回数Ｉとが与えられる。
【００２６】
ステップ１〜２において、テンソル分解部１２は、行列Ｍの分解後の行列Ｕ及びＶの初期値として、ｔ＝０，Ｕｔ∈Ｒｎ×ｒ及びＶｔ∈Ｒｒ×ｍをランダムに生成する。
【００２７】
ステップ３〜７において、テンソル分解部１２は、交互最適化により、Ｕｔ＋１＝Ｕｔ・（ＭＶｔＴ）／（ＵｔＶｔＶｔＴ）及びＶｔ＋１＝Ｖｔ・（Ｕｔ＋１ＴＭ）／（Ｕｔ＋１ＴＵｔ＋１Ｖｔ）を計算し、ｔをカウントアップする処理を繰り返し、ＵＩ及びＶＩを算出する。
【００２８】
ステップ８〜９において、匿名化演算部１３は、ＵＩに対して匿名化の演算を行い、ｔ＝Ｉ，Ｕ’ｔ＋１＝Ａ（ａｎｏ）（Ｕｔ）及びＶ’ｔ＋１＝Ｖｔ・（Ｕ’ｔ＋１ＴＭ）／（Ｕ’ｔ＋１ＴＵ’ｔ＋１Ｖｔ）を算出する。
【００２９】
このアルゴリズムにより、匿名化された行列Ｕ’ｔ＋１と、元の行列Ｍを近似するためのＶ’ｔ＋１とが得られるので、出力部１４は、Ｕ’ｔ＋１Ｖ’ｔ＋１を、行列Ｍを匿名化した結果として出力する。
【００３０】
図３は、本実施形態に係る匿名化方法の従来との比較実験結果を示す図である。
ここでは、匿名化の演算としてノイズ付加を採用した場合に、元の行列Ｍ全体を匿名化する従来の手法と、ノイズの大きさとランクとを調整してユーザ行列Ｕのみを匿名化する本実施形態の手法とを示している。
【００３１】
この実験に用いた匿名化の対象は、ｎ×ｍ＝２００×１０００の行列Ｍである。行列Ｍにφ＝１．５のノイズを付加した場合、ランクｒ＝４０の行列Ｕにφ＝１．５のノイズを付加した場合、ランクｒ＝８０の行列Ｕにφ＝２．５のノイズを付加した場合、ランクｒ＝１２０の行列Ｕにφ＝３．５のノイズを付加した場合の４パターンの有用性Ｕｔｉｌｉｔｙ（Ｄ）を算出した。
なお、これらの４パターンのデータセットは、匿名化の前後で同一ユーザをマッチング、すなわち再識別（ｒｅ−ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）できる確率が同等（約０．６３）のものである。
【００３２】
有用性の評価には、データセットを教師データとした機械学習による予測精度であるＦ値を用い、匿名化前の元の行列ＭのＦ値に対する比を評価値Ｕｔｉｌｉｔｙ（Ｄ）とした。
従来の手法に比べて、本実施形態の手法では、特に、ランクｒ＝４０の行列Ｕにφ＝１．５のノイズを付加した場合には、高い有用性が認められる。
【００３３】
ランクを小さくすることで、元の行列からの近似精度が低くなることから、テンソル分解自体にも匿名化の効果がある。ノイズ付加等の匿名化の演算と組み合わせることにより、これらのパラメータを適切に選択することで、同程度の安全性を持つ有用性の高い匿名化データセットが得られた。
【００３４】
本実施形態によれば、匿名化装置１は、行列等のテンソルで記述されたデータセットを、テンソル分解するによって、ユーザ毎の特徴を示す特定の因子（行列等のテンソル）を抽出する。匿名化装置１は、この特定の因子のみに対して匿名化の演算を行うことにより、ユーザ情報である履歴データ等、他の情報（特徴量）間の相関を維持しつつ、ユーザの特徴のみを匿名化できる。
したがって、匿名化装置１は、データセットの有用性を維持して匿名化できる。
【００３５】
匿名化装置１は、匿名化の演算として、既知の手法を適用でき、例えば、ｋ−匿名化又はノイズ付加といった手法を容易に組み合わせて用いることができる。
また、匿名化装置１は、テンソル分解におけるランク、及び匿名化の強度をパラメータとして受け付けることにより、匿名化の対象とするデータセットに応じて、適切な設定により演算可能であり、データの匿名性と有用性とを高度に両立できる。
【００３６】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【００３７】
匿名化装置１による匿名化方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置（コンピュータ）にインストールされる。また、これらのプログラムは、ＣＤ−ＲＯＭのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したＷｅｂサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【００３８】
１  匿名化装置
１０  制御部
１１  入力部
１２  テンソル分解部
１３  匿名化演算部
１４  出力部
１５  設定部
２０  記憶部
【図１】
2020017101.tif 000003
【図２】
2020017101.tif 000004
【図３】
2020017101.tif 000005