(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-27
(45)【発行日】2023-11-07
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
G06F 21/62 20130101AFI20231030BHJP
【FI】
G06F21/62 354
(21)【出願番号】P 2020019980
(22)【出願日】2020-02-07
【審査請求日】2023-01-27
(73)【特許権者】
【識別番号】000191076
【氏名又は名称】日鉄ソリューションズ株式会社
(74)【代理人】
【識別番号】110000660
【氏名又は名称】Knowledge Partners弁理士法人
(72)【発明者】
【氏名】中川 拓麻
(72)【発明者】
【氏名】波多野 卓磨
(72)【発明者】
【氏名】大坪 正典
【審査官】宮司 卓佳
(56)【参考文献】
【文献】国際公開第2013/088681(WO,A1)
【文献】特開2016-148993(JP,A)
【文献】特開2018-156427(JP,A)
【文献】米国特許出願公開第2018/322309(US,A1)
【文献】特開2016-110399(JP,A)
【文献】米国特許出願公開第2003/208457(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
マスタデータに対応付けられた履歴データをk-匿名化する情報処理装置であって、
マスタデータのk個以上のマスタレコードをグループ化することで、複数のグループを作成するグループ作成部と、
2以上のグループそれぞれに含まれる前記マスタレコードを入れ替える入替部と、
前記マスタレコードそれぞれに対応付けられた、前記履歴データの履歴レコードに対し、前記マスタレコードが含まれるグループ内における匿名化のための加工を行い、さらに、前記入れ替えが行われた場合に、前記入れ替えが行われたグループの前記マスタレコードに対応付けられた前記履歴レコードに対し、前記加工を行う加工部と、
前記加工による有用性損失を評価する評価部と、
前記入れ替えの前後における前記評価部による評価結果の変化に基づいて、前記入れ替えの許否を決定する許否決定部と、
前記入れ替えの前後における前記評価部による評価結果の変化に基づいて、k-匿名化におけるグループ分けを決定するグループ決定部と
を備えた情報処理装置。
【請求項2】
前記グループ作成部は、前記マスタレコードに対応付けられた前記履歴レコードの予め定められた属性に基づいて、前記グループ化を行う、請求項1に記載の情報処理装置。
【請求項3】
前記グループ作成部は、前記マスタレコードに対応付けられた前記履歴レコードの数に基づいて、前記マスタレコードのグループ化を行う、請求項2に記載の情報処理装置。
【請求項4】
前記マスタレコードを予め定められた属性順にソートするソート部をさらに備え、
前記グループ作成部は、ソート順に前記マスタレコードをグループ化することで複数のグループのグループ配列を作成し、
前記入替部は、前記グループ配列において隣接する2つのグループ間において、前記マスタレコードの入れ替えを行う、請求項1乃至3の何れか1項に記載の情報処理装置。
【請求項5】
前記入替部は、前記グループ配列から前記隣接する2つのグループをランダムに選択し、選択した2つのグループ間で、前記マスタレコードの入れ替えを行う、請求項4に記載の情報処理装置。
【請求項6】
前記マスタレコードを予め定められた属性順にソートするソート部をさらに備え、
前記グループ作成部は、ソート順に前記マスタレコードをグループ化することで複数のグループのグループ配列を作成し、
前記入替部は、前記グループ配列から、より近いグループほど選択率が高くなるように調整された確率に従い2つのグループを選択し、選択した2つのグループ間で、前記マスタレコードの入れ替えを行う、請求項1乃至3の何れか1項に記載の情報処理装置。
【請求項7】
前記許否決定部は、前記入れ替え後に、前記入れ替え前に比べて前記有用性損失の程度が小さくなった場合には、前記入れ替えを許可し、前記入れ替え後に、前記入れ替え前に比べて前記有用性損失の程度が大きくなった場合には、所定の確率に従い、前記入れ替えの許否を決定し、
前記入替部は、前記入れ替えが許可された場合には、さらに前記入れ替えを行い、前記入れ替えが許可されなかった場合には、前記入れ替え前の状態に戻した上で、前回の入れ替えと異なる入れ替えを行う、請求項1乃至6の何れか1項に記載の情報処理装置。
【請求項8】
前記加工部は、前記グループ内に3以上のマスタレコードが含まれる場合に、前記3以上のマスタレコードのうち2つのマスタレコードそれぞれに対応付けられた前記履歴レコードに対し匿名化のための前記加工を行い、さらに前記加工後の前記履歴レコードと、前記2つのマスタレコードと異なるマスタレコードに対応付けられた前記履歴レコードとに対し匿名化のための前記加工を行う処理を繰り返すことで、前記グループに含まれる前記3以上のマスタレコードそれぞれに対応付けられた前記履歴レコードに対し匿名化のための加工を行う、請求項1乃至7の何れか1項に記載の情報処理装置。
【請求項9】
前記加工部は、前記3以上のマスタレコードに対応付けられた前記履歴レコードの数に基づいて、前記履歴レコードに対し匿名化のための前記加工を行う処理の順序を決定し、決定した順序で前記加工を行う処理を繰り返す、請求項8に記載の情報処理装置。
【請求項10】
前記加工部は、ハンガリアン法に基づいて、前記2つのマスタレコードそれぞれに対応付けられた前記履歴レコードの加工を行う請求項8又は9に記載の情報処理装置。
【請求項11】
マスタデータに対応付けられた履歴データをk-匿名化する情報処理装置が実行する情報処理方法であって、
マスタデータのk個以上のマスタレコードをグループ化することで、複数のグループを作成するグループ作成ステップと、
2以上のグループそれぞれに含まれる前記マスタレコードを入れ替える入替ステップと、
前記マスタレコードそれぞれに対応付けられた、前記履歴データの履歴レコードに対し、前記マスタレコードが含まれるグループ内における匿名化のための加工を行い、さらに、前記入れ替えが行われた場合に、前記入れ替えが行われたグループの前記マスタレコードに対応付けられた前記履歴レコードに対し、前記加工を行う加工ステップと、
前記加工による有用性損失を評価する評価ステップと、
前記入れ替えの前後における前記評価ステップにおける評価結果の変化に基づいて、前記入れ替えの許否を決定する許否決定ステップと、
前記入れ替えの前後における前記評価ステップにおける評価結果の変化に基づいて、k-匿名化におけるグループ分けを決定するグループ決定ステップと
を含む情報処理方法。
【請求項12】
マスタデータに対応付けられた履歴データをk-匿名化するコンピュータを、
マスタデータのk個以上のマスタレコードをグループ化することで、複数のグループを作成するグループ作成部と、
2以上のグループそれぞれに含まれる前記マスタレコードを入れ替える入替部と、
前記マスタレコードそれぞれに対応付けられた、前記履歴データの履歴レコードに対し、前記マスタレコードが含まれるグループ内における匿名化のための加工を行い、さらに、前記入れ替えが行われた場合に、前記入れ替えが行われたグループの前記マスタレコードに対応付けられた前記履歴レコードに対し、前記加工を行う加工部と、
前記加工による有用性損失を評価する評価部と、
前記入れ替えの前後における前記評価部による評価結果の変化に基づいて、前記入れ替えの許否を決定する許否決定部と、
前記入れ替えの前後における前記評価部による評価結果の変化に基づいて、k-匿名化におけるグループ分けを決定するグループ決定部と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及びプログラム
【背景技術】
【0002】
複数のレコードを、同じ属性値を持つデータがk件以上存在するように変換することで匿名化を行うk-匿名化という手法が知られている。EC(electronic commerce)サイト等では、
図7に示すように、店舗情報や顧客情報が記録されたマスタデータ710と、購入履歴情報が記録されたトランザクションデータ720とが分けてデータ管理されることが多い。マスタデータにおいては、1ユーザのデータは1レコードに記録されるため、クラスタリングが比較的容易である。一方で、トランザクションデータにおいては、1ユーザに対し、複数のレコードが紐づいており、クラスタリングが困難である。しかしながら、マスタデータについて匿名化を行ったとしても、トランザクションデータから購入者を特定される可能性が残るため、トランザクションデータについても匿名化することが求められている。
【0003】
マスタデータについては、例えば、特許文献1に、k-匿名化のために互いに類似性の高い多変量データを同一のクラスターに分類し、同一のクラスターに属するサンプルを代表サンプルに集約する技術が開示されている。また、トランザクションデータの匿名化の技術としては、非特許文献1が挙げられる。非特許文献1には、一属性のみの履歴データに対し、k-匿名化を緩和した基準であるkm-匿名性に基づいて匿名化を行う技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【文献】Poulis, Giorgos, et al. "Apriori-based algorithms for km-anonymizing trajectory data" Transactions on Data Privacy 7(2), 2014.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、非特許文献1の技術においては、単一属性しかもたない履歴データが対象であり、データ形式が単純なものにしか適用できないという問題があった。また、非特許文献1の技術は、k-匿名化の条件を緩和した安全性基準に基づくものであり、厳密なk-匿名化を行うことができないという問題があった。
【0007】
本発明は、このような問題点に鑑みなされたもので、複数の属性を有する履歴データに対し、k-匿名化を行う技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記の目的を達成するため、本発明の情報処理装置は、マスタデータに対応付けられた履歴データをk-匿名化する情報処理装置であって、マスタデータのk個以上のマスタレコードをグループ化することで、複数のグループを作成するグループ作成部と、2以上のグループそれぞれに含まれる前記マスタレコードを入れ替える入替部と、前記マスタレコードそれぞれに対応付けられた、前記履歴データの履歴レコードに対し、前記マスタレコードが含まれるグループ内における匿名化のための加工を行い、さらに、前記入れ替えが行われた場合に、前記入れ替えが行われたグループの前記マスタレコードに対応付けられた前記履歴レコードに対し、前記加工を行う加工部と、前記加工による有用性損失を評価する評価部と、前記入れ替えの前後における前記評価部による評価結果の変化に基づいて、前記入れ替えの許否を決定する許否決定部と、前記入れ替えの前後における前記評価部による評価結果の変化に基づいて、k-匿名化におけるグループ分けを決定するグループ決定部とを備えた。
【0009】
また、本発明の他の形態は、マスタデータに対応付けられた履歴データをk-匿名化する情報処理装置が実行する情報処理方法であって、マスタデータのk個以上のマスタレコードをグループ化することで、複数のグループを作成するグループ作成ステップと、2以上のグループそれぞれに含まれる前記マスタレコードを入れ替える入替ステップと、前記マスタレコードそれぞれに対応付けられた、前記履歴データの履歴レコードに対し、前記マスタレコードが含まれるグループ内における匿名化のための加工を行い、さらに、前記入れ替えが行われた場合に、前記入れ替えが行われたグループの前記マスタレコードに対応付けられた前記履歴レコードに対し、前記加工を行う加工ステップと、前記加工による有用性損失を評価する評価ステップと、前記入れ替えの前後における前記評価ステップにおける評価結果の変化に基づいて、前記入れ替えの許否を決定する許否決定ステップと、前記入れ替えの前後における前記評価ステップにおける評価結果の変化に基づいて、k-匿名化におけるグループ分けを決定するグループ決定ステップとを含む。
【0010】
また、本発明の他の形態は、マスタデータに対応付けられた履歴データをk-匿名化するコンピュータを、マスタデータのk個以上のマスタレコードをグループ化することで、複数のグループを作成するグループ作成部と、2以上のグループそれぞれに含まれる前記マスタレコードを入れ替える入替部と、前記マスタレコードそれぞれに対応付けられた、前記履歴データの履歴レコードに対し、前記マスタレコードが含まれるグループ内における匿名化のための加工を行い、さらに、前記入れ替えが行われた場合に、前記入れ替えが行われたグループの前記マスタレコードに対応付けられた前記履歴レコードに対し、前記加工を行う加工部と、前記加工による有用性損失を評価する評価部と、前記入れ替えの前後における前記評価部による評価結果の変化に基づいて、前記入れ替えの許否を決定する許否決定部と、前記入れ替えの前後における前記評価部による評価結果の変化に基づいて、k-匿名化におけるグループ分けを決定するグループ決定部として機能させるためのプログラムである。
【発明の効果】
【0011】
本発明によれば、複数の属性を有する履歴データに対し、k-匿名化を行うことができる。
【図面の簡単な説明】
【0012】
【
図1】情報処理装置の構成を示すブロック図である。
【
図2】マスタデータ及びトランザクションデータの一例を示す図である。
【
図4】グループ作成処理及び入れ替え処理の説明図である。
【発明を実施するための形態】
【0013】
ここでは、下記の順序に従って本発明の実施の形態について説明する。
(1)情報処理装置の構成:
(2)情報処理:
(3)付記:
【0014】
(1)情報処理装置の構成:
図1は、情報処理装置10の全体構成図である。情報処理装置10は、CPU、RAM、ROM等を備える制御部120と、記録媒体130と、表示部140とを備えている。制御部120は、記録媒体130やROMに記憶された種々のプログラムを実行することにより、情報処理装置10の全体を制御する。記録媒体130は、各種データやプログラムを記憶している。表示部140は、各種データを表示する。
【0015】
記録媒体130には、マスタデータ131と、トランザクションデータ132と、が記憶されている。
図2は、マスタデータ131及びトランザクションデータ132のデータ構成の一例を示す図である。マスタデータ131は、複数のレコードを含む。各レコードは、1人の顧客に対応した顧客情報である。顧客情報は、顧客ID、顧客の性別、住所などを含む。顧客IDは、顧客の識別情報である。すなわち、顧客IDは、マスタデータの識別情報である。なお、マスタデータには、これ以外にも年齢など顧客に関する他の情報が含まれてもよい。以下、マスタデータ131のレコードをマスタレコードと称する。
【0016】
トランザクションデータ132は、各顧客の購入履歴を示す履歴データである。トランザクションデータ132は、複数のレコードを含む。各レコードは、1回の購入情報に相当する。購入情報は、顧客IDと、購入された商品と、数量とを含む。このように、トランザクションデータ132には、複数の属性に係る情報が含まれている。なお、購入情報は、さらに購入店、購入時間など、他の属性に係る情報を含んでもよい。以下、トランザクションデータ132に含まれるレコードを履歴レコードと称する。
【0017】
制御部120は、マスタデータに対応付けられたトランザクションデータに対し、k-匿名化を行う。トランザクションデータにおいては、1人の顧客に対する複数のレコードが存在し、また1人の顧客に対応付けられたレコードの数は一律ではない。制御部120は、このようなトランザクションデータに対するk-匿名化を行う。さらに、制御部120は、焼きなまし法を用いて、k-匿名化のためのk人以上のグループを決定する。焼きなまし法とは、複雑な最適化問題について、大域的最適解に近い解を探索するための汎用的な乱択アルゴリズムである。本実施形態においては、焼きなまし法において、以下のように各要素を定義する。
状態:顧客のグループ分け
状態の更新方法:隣り合うグループ間の顧客の入れ替え
状態の評価方法:履歴レコードの加工による有用性損失
【0018】
制御部120は、以下に示す手順により、グループ分けを行う。
1)初期状態からスタートする。
2)状態の有用性損失スコアを求める。
3)状態の更新を行い、再度有用性損失コアを求める。
4)有用性損失スコアが改善していれば更新を許可し、有用性損失スコアが改善していない場合には、確率に従い更新の許否を決定する。
【0019】
制御部120は、このような処理を実現するための機能構成として、
図1に示すように、ソート部121、グループ作成部122、入替部123、加工部124、評価部125、許否決定部126、グループ決定部127及び出力処理部128を備えている。ソート部121、グループ作成部122、入替部123、加工部124、評価部125、許否決定部126、グループ決定部127及び出力処理部128は、CPUが情報処理プログラムを実行することにより実現される。以下、各機能構成の概略を説明する。
【0020】
制御部120は、ソート部121の機能により、マスタデータ131のマスタレコードをソートする。制御部120は、グループ作成部122の機能により、顧客IDをグループ化することで、複数のグループを作成する。具体的には、制御部120は、ソート部121の機能により配列された顧客IDの先頭から順にk個以上の顧客IDを1つのグループとするグループ配列を作成する。なお、kの値は、管理者等により決定され、ROMや記録媒体130等に予め記憶されているものとする。ここで作成されたグループ配列が焼きなまし法における初期状態となる。制御部120は、入替部123の機能により、グループ間における顧客IDの入れ替えを行う。本処理は、状態の更新に対応する。
【0021】
制御部120は、加工部124の機能により、同一グループに含まれる複数の顧客IDに対応付けられた履歴レコード群が同一となるような、匿名化のための加工を行う。ここで、履歴レコード群とは、同一の顧客IDを含む履歴レコードの集合である。すなわち、履歴レコード群には、顧客IDが等しい、1又は2以上の履歴レコードが含まれる。例えば、
図2に示すトランザクションデータにおいては、顧客ID101を含む履歴レコードが4つ存在する。したがって、顧客ID101の履歴レコード群には、顧客ID101を含む4つの履歴レコードが含まれる。
【0022】
制御部120は、評価部125の機能により、加工後のグループの有用性損失スコアを求める。有用性損失スコアとは、履歴データ群の加工により失われた有用性の評価値、すなわち有用性損失の評価値である。すなわち、損失の程度が大きいほど、有用性損失スコアは大きくなる。制御部120は、許否決定部126の機能により、有用性損失スコアに基づいて、顧客IDの入れ替えの許否を決定する。制御部120は、グループ決定部127の機能により、有用性損失スコアに基づいて、k-匿名化に用いる顧客IDのグループ分けを決定する。制御部120は、出力処理部128の機能により、グループ決定部127により得られたk-匿名化における加工結果を表示部140に表示するよう制御する。
【0023】
(2)情報処理:
次に、制御部120により実行される情報処理を説明する。
図3は、情報処理を示すフローチャートである。制御部120は、まずソート部121の機能により、トランザクションデータ132に含まれる複数の顧客IDを、各顧客IDに対応付けられている履歴レコードのレコード数が昇順になるようにソートする(S100)。これにより、
図2に示すトランザクションデータ132から、
図4の上段に示すような顧客IDの配列200が得られる。配列200においては、対応付けられている履歴レコードの数が1つのマスタデータの顧客ID、対応する履歴レコード数が1つの顧客ID、履歴レコードのレコード数が2つの顧客ID、…というようにレコード数順に顧客IDが配列されている。本処理は、マスタレコードをマスタレコードに対応付けられた履歴レコードの数に従いソートする処理の一例である。
【0024】
次に、制御部120は、グループ作成部122の機能により、グループ化を行う(S102)。具体的には、制御部120は、ソート後の顧客IDの配列において、先頭から順にk個の顧客IDをグループ化することで複数のグループを含んだグループ配列を得る。例えば、k=3が指定されている場合には、3つの顧客IDを1つのグループとした複数のグループを含んだグループ配列が作成される。例えば、
図4の上段に示す顧客IDの配列200からは、
図4の中段に示すように、3つの顧客IDを1つのグループとするグループ配列210が得られる。このように、制御部120は、レコード数順にソートした上で、顧客IDを先頭から順にグループ化するので、履歴レコードの数に基づいたマスタレコードのグループ化を行うことができる。本処理は、マスタレコードをグループ化することで複数のグループを作成する処理の一例である。
【0025】
図3に戻り、S102の処理の後、制御部120は、加工部124の機能により、各グループに含まれる顧客IDに対応した履歴レコード群が同一となるように、加工処理を行う(S104)。ここで、加工処理について説明する。加工処理とは、k人のレコードを同一レコードとすることでk人を識別できないようにする、すなわち匿名化する処理である。k=2の場合には、ハンガリアン法により最適なレコードの組み合わせを求めることができる。しかしながら、kが3以上の場合には、適切な加工方法がない。そこで、本実施形態においては、制御部120はまず、グループ内の顧客IDのうちレコード数の小さい方から2つの顧客IDそれぞれに対応付けられている2つの履歴レコード群を処理対象として選択する。そして、制御部120は、この2つの履歴レコード群に対してハンガリアン法による最適マッチングを行う。ここで、マッチングとは、2つの履歴レコード群に対して、その要素間の1対1の対応を定めることである。制御部120は、さらに、マッチングの結果対応付けられた履歴レコード同士がそれぞれ区別できなくなるように履歴レコードの加工を行う。このとき、制御部120は、履歴レコード群を加工したことによる、データの有用性損失の程度が最小になるような加工を行う。
【0026】
制御部120は、さらに、マッチング後の履歴レコード群と、ソート順において次の顧客IDに対応付けられている履歴レコード群と、を処理対象として選択し、2つの履歴レコード群に対してハンガリアン法による最適マッチングを行う。k=3においては、以上で1つのグループに対する処理が終了する。制御部120は、k=4以上の場合には、以上の処理を、グループ内に含まれるすべての顧客IDに対応する履歴レコード群に対して行うまで繰り返すことで、すべての顧客IDに対応する履歴レコード群の加工を行う。制御部120は、以上の処理を、グループ配列に含まれるすべてのグループにおいて行う。
【0027】
図5は、加工処理の説明図である。
図5を参照しつつ、顧客101、顧客103及び顧客106のグループを例に、加工処理を具体的に説明する。制御部120は、まずレコード数の小さい順に2つのマスタレコード、すなわち顧客ID101及び顧客ID103のマスタレコードに対応付けられた履歴レコード群を処理対象として選択する。そして、制御部120は、これら2つの履歴レコード群を加工する。
図5の上段は、各顧客IDに対応した履歴レコード群を示している。
図5の上段の履歴レコード群は、加工前のものである。
図5の中段は、顧客ID101と顧客ID103に対応付けられた履歴レコード群に対する加工が行われた後の履歴レコード群を示している。
【0028】
図5の中段に示すように、顧客ID101の「商品A、数量3」の履歴レコードと、顧客ID103の「商品A、数量4」の履歴レコードは、「商品A、数量[3,4]」のレコードに統合されている。ここで、[x1,x2]は、x1からx2の範囲であることを示す。また、顧客ID101の「商品B,数量5」の履歴レコードと、顧客ID103の「商品B,数量8」の履歴レコードは、「商品B,数量[5,8]」のレコードに統合されている。また、顧客ID101の「商品D,数量6」の履歴レコードと、顧客ID103の「商品C,数量6」の履歴レコードは、「商品{C,D},数量6」のレコードに統合されている。ここで、{y,z}は、y又はzであることを示す。そして、顧客ID103の「商品E,数量12」の履歴レコードは削除されている。なお、いずれの履歴レコードを統合し、いずれの履歴レコードを削除するかはハンガリアン法により決定される。ハンガリアン法については後述する。
【0029】
続いて、制御部120は、顧客ID103のマスタレコードに対応付けられた、加工後の履歴レコード群と、顧客ID106のマスタレコードに対応付けられた履歴レコード群を処理対象として選択する。そして、制御部120は、これら2つの履歴レコード群を加工する。
図5の下段は、顧客ID103と顧客ID106に対応付けられた履歴レコード群に対する加工が行われた後の履歴レコード群を示している。
【0030】
図5の下段に示すように、顧客ID103の「商品A,数量[3,4]」の履歴レコードと顧客ID106の「商品A,数量5」の履歴レコードは、「商品A,数量[3,5]」のレコードに統合されている。これに対応し、顧客ID101の「商品A,数量[3,4]」の履歴レコードも「商品A,数量[3,5]」のレコードに統合されている。顧客ID106の「商品B,数量7」の履歴レコードは、「商品B,数量[5,8]」のレコードに統合されている。また、顧客ID103の「商品{C,D},数量6」の履歴レコードと、顧客ID106の「商品C,数量3」の履歴レコードは、「商品{C,D},数量[3,6]」のレコードに統合されている。これに対応し、顧客ID101の「商品{C,D},数量6」の履歴レコードも、「商品{C,D},数量[3,6]」のレコードに統合されている。そして、顧客ID106の「商品D,数量12」の履歴レコードは削除されている。このように、各グループに含まれる顧客IDに対応した履歴レコードを加工することにより、加工後の履歴データがk-匿名性を満たすようになるため、出力データのセキュリティを向上させることができる。
【0031】
なお、本実施形態においては、制御部120は、加工として商品及び数量の一般化、レコードの削除の2つの処理のみを行うものとした。ただし、他の例としては、制御部120は、複数のレコードの値を代表値に置き換えるといった値の置き換えや、ダミーレコードの追加といった加工を行ってもよい。
【0032】
次に、ハンガリアン法について説明する。ハンガリアン法においては、顧客のペアに対してコスト行列を求める。コスト行列のi行j列には、顧客xのi番目のレコードと、顧客yのj番目のレコードを加工したときの有用性損失の評価値が入る。ここで、有用性損失の評価値とは、加工による、レコードの有用性の損失の程度を示す指標値である。例えば、商品名が「A」から「A又はB」に加工された場合には、レコードの有用性は低くなる。同様に、商品数が「5」から「5~7の間」に加工された場合には、レコードの有用性は低くなる。さらに、商品数が「5」から「5~10の間」に加工された場合には、「5~7の間」に加工された場合に比べて有用性は低くなる。評価値は、このように、レコードの情報が抽象化される程度が大きいほど大きい値になるような指標値である。
【0033】
こうして作成されたコスト行列に対し、以下の処理を行う。
1)各行の各要素からその行の最小値を引き、各列の各要素からその列の最小値を引く。
2)0を各行各列から1つずつ選ぶことができれば、その組み合わせが最適マッチングである。選ぶことができなければ、ステップ3)へ進む。
3)すべての0をできるだけ少ない数の縦または横の線で覆う。
4)線で消されていないすべての要素から、それらの最小値を引き、線が重なっている要素に加える。ステップ2)へ戻る。
なお、ハンガリアン法によって最適なマッチングが得られることの証明については、以下の文献を参照することができる。
Korte, Bernhard, et al. Combinatiorial optimization. Vol.2. Heidelberg: Springer, 2012.
【0034】
以上のように、加工処理においては、レコード数を合わせるために履歴レコードが削除される。このため、加工におけるデータの有用性の損失を小さくするには、ハンガリアン法を適用する2つの履歴レコード群に含まれる履歴レコードの数をできるだけ近い値にすることが望ましい。そこで、本実施形態においては、制御部120は、上述のように、レコード数順に顧客IDをソートした上で、隣接する顧客IDの履歴レコード群に対しハンガリアン法を適用することとした。これにより加工による履歴データ群の有用性損失を小さくすることができる。また、履歴レコードの削除により、外れ値となるような履歴レコードを早い段階で削除することができるため、外れ値となるような履歴レコードに起因して、有用性が無駄に失われるのを防ぐことができる。
【0035】
図3に戻り、S104の処理の後、制御部120は、評価部125の機能により、有用性評価を行う(S106)。すなわち、制御部120は、S104における加工処理による有用性損失スコアを求める。ここで、有用性損失スコアとは、加工により失われたデータの有用性の指標値であり、損失の程度が大きいほど、有用性損失スコアは大きくなる。制御部120は、グループ配列に含まれる各グループについて有用性損失スコアを求める。
【0036】
なお、制御部120は、予め定められたルールに従い、履歴レコードの有用性損失スコアを求める。例えば、商品の情報に関しては、1つの商品が何個の商品に一般化されるかに応じて有用性損失スコアが算出されるようなルールが予め定められているものとする。より具体的には、一般化後の商品数が大きいほど有用性損失スコアが大きくなるようなルールが予め定められているものとする。また、数量の情報に関しては、一般化後の数量の幅が大きいほど有用性損失スコアが大きくなるようなルールが予め定められているものとする。このように、履歴レコードの属性毎に一般化(抽象化)の程度が大きくなるほど有用性損失スコアが大きくなるようなルールが定められている。制御部120は、このようなルールに従い、加工後のグループに含まれる各顧客IDに対応付けられた履歴レコードについて、有用性損失スコアを求める。
【0037】
次に、制御部120は、入替部123の機能により、顧客IDの入れ替えを行う(S108)。すなわち、制御部120は、グループ配列において隣接する2つのグループをランダムに選択する。そして、制御部120は、選択した2つのグループそれぞれからランダムに顧客IDを1つ選択し、これらを入れ替える。例えば、
図4の中段に示すグループ配列において、顧客ID「108,110,111」のグループと、顧客ID「115,119,122」のグループが選択され、各グループから顧客ID110と顧客ID115が選択される。そして、これらの顧客IDの入れ替えが行われる。これにより、
図4の下段に示すように、顧客ID「108,110,111」及び顧客ID「115,119,122」の2つのグループはそれぞれ顧客ID「108,115,111」及び顧客ID「110,119,122」に変更される。
【0038】
このように、入れ替えの対象を隣接するグループに限定することにより、入れ替え対象の顧客IDに対応した履歴レコードのレコード数の差が大きくなり、レコード数の差に起因して有用性損失が大きくなるのを防ぐことができる。一方で、グループの選択、及びグループ内での顧客IDの選択をランダムに行うことにより、最適なグループに到達しやすくなる。
【0039】
図3に戻り、S108の処理の後、制御部120は、加工部124の機能により、S106における入れ替え後のグループを対象として加工処理を行う(S110)。S110における加工処理は、S104における加工処理と同様である。次に、制御部120は、評価部125の機能により、S110において加工処理が行われたグループを対象として、有用性損失スコアを求める(S112)。S112における有用性損失スコアを算出する処理は、S106において有用性損失スコアを算出する処理と同様である。
【0040】
次に、制御部120は、許否決定部126の機能により、S108における顧客IDの入れ替えの許否を決定する(S114)。すなわち、制御部120は、S108における入れ替えの前後における入れ替え対象のグループにおける有用性損失スコアを比較する。例えば、
図4の中段及び下段に示すように、顧客ID「108,110,111」及び顧客ID「115,119,122」の2つのグループがそれぞれ顧客ID「108,115,111」及び顧客ID「110,119,122」のグループに変更されたとする。この場合には、入れ替え後の「108,115,111」及び「110,119,122」の2つのグループの有用性損失スコアの合計と、入れ替え前の「108,110,111」及び「115,119,122」の2つのグループの有用性損失スコアの合計とが比較される。
【0041】
そして、制御部120は、入れ替え後に有用性損失スコアが小さくなった場合、すなわち有用性が高くなった場合には入れ替えを許可する。一方で、制御部120は、入れ替え後に有用性損失スコアが高くなった場合、すなわち有用性が低下した場合には、予め定められた許可確率に従い入れ替えを許可するか否かを決定する。
【0042】
制御部120は、(式1)に示す許可の確率Aに従って、入れ替えの許否を決定する。
A=exp(-ΔE/T) …(式1)
ここで、Tは温度を表すパラメータであり、入れ替えの回数(入替回数)が小さい間は大きい値をとり、入替回数の増加に従い徐々に小さくなる。また、ΔEは、有用性損失スコアの増加量、すなわち悪化の程度を示す。(式1)の確率Aに基づいて許否が決定されるので、有用性損失スコアの増加の程度が大きいほど、また入替回数が大きくなるほど入れ替えが許可される可能性が小さくなる。このように、制御部120は、有用性が低下した場合には、一律に入れ替えを許可しないのではなく、一定の確率で許可する。したがって、顧客IDの入れ替えの結果が局所最適解に陥るのを防ぐことができる。
【0043】
制御部120は、入れ替えを許可しないと決定した場合には(S114でN)、顧客IDを入れ替え前の状態に戻す(S116)。入替を許可すると決定した場合(S114でY)、及びS116の処理が行われた後、制御部120は、グループ決定部127の機能により、S108において行われた入れ替えの回数(入替回数)と閾値を比較する(S118)。ここで、閾値は予め設定されているものとする。制御部120は、入替回数が閾値以下の場合には(S118でN)、処理をS108へ進め、再び顧客IDの入れ替えを行う。このように、制御部120は、予め定められた閾値に達するまで入れ替えを行い、入れ替えが行われる度に、加工処理を行い、有用性評価を行う。
【0044】
制御部120は、入替回数が閾値以上の場合には(S118でY)、グループ決定部127の機能により、最適に近いグループを決定し、このグループにおける加工結果を取得する。具体的には、制御部120は、入れ替えにより得られた複数のグループ配列それぞれの有用性損失スコアを参照し、最も有用性損失スコアの低いグループ配列に含まれる複数のグループを最適に近いグループ分けの結果として決定する。なお、制御部120は、各グループ配列に含まれる複数のグループそれぞれの有用性損失スコアの合計を、そのグループ配列の有用性損失スコアとして求めるものとする。そして、制御部120は、このグループ配列に対する加工結果をk-匿名化の結果として取得する。
【0045】
図6は、加工結果を示す図である。
図6の左に示すトランザクションデータ132から
図6の右に示すような加工データ300が得られる。なお、加工データ300においては、顧客IDも変更されている。ただし、顧客IDの変更に際し、顧客の同一性は保たれているものとする。
図3に戻り、S120の処理の後、制御部120は、出力処理部128の機能により、S120において得られた加工データ(加工結果)を表示部140に表示させる(S122)。以上で、情報処理が終了する。なお、出力処理部128は、外部機器に加工データを出力すればよく、出力先は実施形態に限定されるものではない。他の例としては、出力処理部128は、加工データを、ネットワークを介して他の装置に送信してもよい。
【0046】
以上のように、本実施形態の情報処理装置10は、複数の属性を有するトランザクションデータ(履歴データ)に対しても、k-匿名化を行うことができる。さらに、情報処理装置10は、レコード数順に配列されたグループ配列を初期状態として処理を行うので、効率よく、かつ有用性損失の少ないk-匿名化を実現できる。また、情報処理装置10は、2つの履歴レコードに対しハンガリアン法を適用することでマッチングを行うという処理を繰り返すことで、kが3以上の場合にも、効率よくマッチングを行うことができる。
【0047】
(3)付記:
以上の実施形態は、本発明を実施するための一例であり、他にも種々の実施形態を採用可能である。例えば、情報処理装置10は、複数の装置(例えば、クライアントとサーバ等)によって実現されるシステムであってもよい。情報処理装置10を構成するソート部121、グループ作成部122、入替部123、加工部124、評価部125、許否決定部126、グループ決定部127及び出力処理部128の少なくとも一部が複数の装置に分かれて存在してもよい。
【0048】
本実施形態においては、マスタデータに対応付けられた履歴データとしてトランザクションデータを例に履歴レコードのk-匿名化について説明したが、履歴データの種類はトランザクションデータに限定されるものではない。他の例としては、履歴データは、人物のマスタデータに対応付けられた、移動履歴データであってもよい。また、商品をマスタデータとし、顧客データがトランザクションデータに含まれるようなデータ構成に対し、トランザクションデータを加工するような場合にも適用可能である。すなわち、マスタデータは、顧客等の人物に限定されず、例えば商品であってもよい。
【0049】
また、本実施形態においては、制御部120は、顧客IDをレコード数の昇順にソートしたが、これに替えてレコード数の降順にソートしてもよい。さらに、制御部120は、降順にソートした上で、グループ内の履歴レコードのレコード数を一致させるために履歴レコードを削除するのにかえて、ダミーレコードを追加してもよい。また、他の例としては、制御部120は、顧客IDをレコード数の昇順または降順にソートした上で、レコード数を一致させるために履歴レコードの削除と追加の両方を行ってもよい。例えば、制御部120は、グループ内で、レコード数順で真ん中(平均値に最も近いレコード数)の顧客IDに対応した履歴レコード群と、これに隣接する顧客IDに対応した履歴レコード群とのマッチングを行う。このとき制御部120は、マッチング相手のレコード数が真ん中の履歴レコード群よりも大きい場合には、レコード数を合わせるためにマッチング相手の履歴レコードを削除する。また、制御部120は、マッチング相手のレコード数が真ん中の履歴レコード群よりも小さい場合には、レコード数を合わせるためにマッチング相手にダミーレコードを追加する。なお、ダミーレコードには、削除対象の履歴レコードと同一のレコードを用いることができる。
【0050】
また、本実施形態においては、制御部120は、レコード数順に顧客IDをソートした上でグループ配列を作成したが、これ以外のルールに従いグループ配列を作成してもよい。例えば、制御部120は、履歴レコードのレコード数以外の、予め定められた属性順に、顧客IDをソートしてもよい。この場合、参照される属性は、有用性損失スコアへの寄与度が大きいものが好ましい。有用性損失スコアへの寄与度が大きい属性に基づいてソートすることにより、隣接するグループ間での顧客IDの入れ替えに応じた履歴データ群の加工において、有用性の損失を小さく抑えることができる。例えば、トランザクションデータに替えて、移動履歴のレコードを対象とする場合において、ユーザの居住地域がデータの有用性に大きく影響する場合がある。この場合には、制御部120は、ユーザの居住地域に基づいてマスタデータ(ユーザID)をソートしてもよい。
【0051】
また、本実施形態においては、制御部120は、2つの履歴レコード群を加工する際に、統合する履歴レコードを1対1に対応付けたが、k-匿名性を満たすには2つの履歴レコード群が区別できないように加工すればよい。そこで、他の例としては、制御部120は、1対多や多対多で履歴レコードを対応付けてもよい。例えば、制御部120は、
図5において顧客ID103の「商品E,数量12」の履歴レコードを削除する代わりに、顧客ID101の「商品A、数量3」の履歴レコード及び顧客ID103の「商品A、数量4」の履歴レコードと合わせて、「商品{A,E}、数量[3,12]」のレコードに統合してもよい。このように、1対多や多対多で履歴レコードが対応付けられることで、k-匿名性以外の安全性指標を高めたり、有用性を高めたりすることができる場合がある。
【0052】
また、本実施形態においては、有用性損失が大きくなるのを防ぐ観点から、制御部120は、レコード数順に配列されたグループ配列において隣接するグループ間において顧客IDの入れ替えを行うこととした。ただし、他の例としては、制御部120は、隣接しない2つのグループそれぞれに含まれる顧客IDの入れ替えを行ってもよい。これにより、ランダム性をより高めることができる。また、他の例としては、制御部120は、グループ配列の順序に基づき定義されたグループ間の距離に応じて、より近いグループほど選ばれやすくなるように調整された確率(選択率)を用いて2つのグループを選択してもよい。これにより、効率とランダム性を柔軟に調整することができる。また他の例としては、制御部120は、2つの顧客IDの入れ替えに限らず、3以上の顧客IDの入れ替えを一度に行ってもよい。また、制御部120は、選択されたグループにおいて1つの顧客IDを選択する際にもランダムに選択するのに替えて、所定の規則に従い顧客IDを選択することとしてもよい。
【0053】
また、制御部120は、顧客IDのソートを行うことなく、ランダムに、またはトランザクションデータ132の並び順に沿って、顧客IDのグループ化を行ってもよい。この場合も、顧客IDの入れ替えにより、有用性損失の少ないグループ分けを行うことができる。
【0054】
本実施形態においては、制御部120は、焼きなまし法に従い、顧客IDの入れ替えにより有用性損失スコアが増大した場合には、確率に従い許否を決定することとした。ただし、他の例としては、制御部120は、山登り法を用いてグループの探索を行ってもよい。すなわち、制御部120は、顧客IDの入れ替えにより有用性損失スコアが増大した場合には、一律に入れ替えを許可しないこととしてもよい。これにより、処理効率を向上させることができる。また、他の例としては、制御部120は、タブーサーチを用いてグループの探索を行ってもよい。すなわち、制御部120は、複数のレコード配列を同時に探索し、最も結果のよいレコード配列を選ぶという操作を繰り返す。
【0055】
また、本実施形態においては、制御部120は、入替回数が閾値に到達するまで入れ替えを繰り返すこととしたが、繰り返しの終了条件はこれに限定されるものではない。他の例としては、制御部120は、有用性損失スコアが所定の値以下になるまで入れ替えを繰り返すこととしてもよい。また、他の例としては、制御部120は、入れ替えが許可されない回数が一定回数以上になった場合に、入れ替えを終了することとしてもよい。
【0056】
さらに、以上のような装置、プログラム、方法は、単独の装置として実現される場合もあれば、複数の装置で共有の部品を利用して実現される場合もあり、各種の態様を含むものである。また、一部がソフトウェアであり一部がハードウェアであったりするなど、適宜、変更可能である。さらに、装置を制御するプログラムの記録媒体としても発明は成立する。むろん、そのプログラムの記録媒体は、磁気記録媒体であってもよいし半導体メモリであってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。
【符号の説明】
【0057】
10…情報処理装置、120…制御部、121…ソート部、122…グループ作成部、123…入替部、124…加工部、125…評価部、126…許否決定部、127…グループ決定部、128…出力処理部、130…記録媒体、140…表示部