IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 新日鉄住金ソリューションズ株式会社の特許一覧

特許7158175情報処理装置、システム、情報処理方法及びプログラム
<>
  • 特許-情報処理装置、システム、情報処理方法及びプログラム 図1
  • 特許-情報処理装置、システム、情報処理方法及びプログラム 図2
  • 特許-情報処理装置、システム、情報処理方法及びプログラム 図3
  • 特許-情報処理装置、システム、情報処理方法及びプログラム 図4
  • 特許-情報処理装置、システム、情報処理方法及びプログラム 図5
  • 特許-情報処理装置、システム、情報処理方法及びプログラム 図6
  • 特許-情報処理装置、システム、情報処理方法及びプログラム 図7
  • 特許-情報処理装置、システム、情報処理方法及びプログラム 図8
  • 特許-情報処理装置、システム、情報処理方法及びプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-13
(45)【発行日】2022-10-21
(54)【発明の名称】情報処理装置、システム、情報処理方法及びプログラム
(51)【国際特許分類】
   G06F 17/16 20060101AFI20221014BHJP
   G06F 16/20 20190101ALI20221014BHJP
   G06F 16/28 20190101ALI20221014BHJP
   G06F 21/62 20130101ALI20221014BHJP
【FI】
G06F17/16 Z
G06F16/20
G06F16/28
G06F21/62 354
【請求項の数】 13
(21)【出願番号】P 2018094817
(22)【出願日】2018-05-16
(65)【公開番号】P2019200605
(43)【公開日】2019-11-21
【審査請求日】2020-06-17
(73)【特許権者】
【識別番号】000191076
【氏名又は名称】日鉄ソリューションズ株式会社
(74)【代理人】
【識別番号】100117857
【弁理士】
【氏名又は名称】南林 薫
(72)【発明者】
【氏名】波多野 卓磨
(72)【発明者】
【氏名】大坪 正典
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2006-018828(JP,A)
【文献】特表2011-525305(JP,A)
【文献】米国特許出願公開第2013/0198188(US,A1)
【文献】米国特許出願公開第2016/0055124(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/16
G06F 21/62
G06F 16/20
G06F 16/28
(57)【特許請求の範囲】
【請求項1】
ユーザに対応する購買した商品に関する購買データの集合である第1のデータ集合について、前記第1のデータ集合内の商品の購買数を集計して、各ユーザが各商品をどれだけ購買したかを特定した商品-ユーザ行列を第1の対応情報として生成する第1の生成手段と、
前記第1の対応情報に対して低ランク近似を行うことで、前記第1の対応情報に近似する商品-ユーザ行列を第2の対応情報として生成する第2の生成手段と、
前記第1の対応情報と前記第2の対応情報とで値の異なる要素を特定する特定手段と、
前記第1のデータ集合に含まれる購買データのうち、前記特定手段により特定された要素に対応するユーザと商品とを特定し、前記特定されたユーザと商品とに対応する購買データを、加工対象データとして決定する決定手段と、
前記決定手段により特定されたユーザと商品とに対応する前記加工対象データの商品の購買数を集計した値が、前記第2の対応情報における前記特定手段により特定された要素の値と同一となるよう前記加工対象データを加工する加工手段と、
を有する情報処理装置。
【請求項2】
前記加工手段は、前記第2の対応情報の要素の値が整数でない場合に小数点以下を切り捨てる端数処理を行い、前記決定手段により特定されたユーザと商品とに対応する前記加工対象データの商品の購買数を集計した値が、前記端数処理を行った前記第2の対応情報における前記特定手段により特定された要素の値と同一になるように加工する
請求項記載の情報処理装置。
【請求項3】
前記第1のデータ集合に含まれる前記加工対象データを前記加工手段により加工した後の前記第1のデータ集合を表示する表示手段と、
前記表示手段により表示された加工後の第1のデータ集合を確認したユーザから前記第1のデータ集合を採用するか否かの入力を受け付ける入力手段と
を更に有する請求項1又は2記載の情報処理装置。
【請求項4】
前記第1の対応情報は2次元の行列であり、
前記第2の生成手段は、前記第1の対応情報を特異値分解することで得られる、前記第1の対応情報の特異値を対角成分とする行列について、要素の一部の値を0にすることで低ランク近似を行う
請求項1乃至何れか1項記載の情報処理装置。
【請求項5】
前記第1の対応情報は3階以上のテンソルであり、
前記第2の生成手段は、前記第1の対応情報をテンソル分解することで得られる、前記第1の対応情報のコアテンソルについて、要素の一部の値を0にすることで低ランク近似を行う
請求項1乃至何れか1項記載の情報処理装置。
【請求項6】
前記第2の生成手段において値を0にする要素を値が小さい要素から選択して低ランク近似を行う
請求項4又は5記載の情報処理装置。
【請求項7】
前記第2の生成手段において値が予め定められた閾値以下である要素の値を0にすることで低ランク近似を行う
請求項記載の情報処理装置。
【請求項8】
前記第2の生成手段において値が小さいものから順に予め定められた個数の要素の値を0にすることで低ランク近似を行う
請求項記載の情報処理装置。
【請求項9】
前記第2の生成手段により生成された前記第2の対応情報の任意の次元について、要素ベクトル同士を入れ替える入れ替え手段を更に有し、
前記特定手段は前記第1の対応情報と、入れ替え手段により値が入れ替えられた前記第2の対応情報とで値の異なる要素を特定する
請求項1乃至何れか1項記載の情報処理装置。
【請求項10】
ユーザに対応する購買した商品に関する購買データの集合である第1のデータ集合について、前記第1のデータ集合内の商品の購買数を集計して、各ユーザが各商品をどれだけ購買したかを特定した商品-ユーザ行列を第1の対応情報として生成する第1の生成手段と、
前記第1の対応情報に対して低ランク近似を行うことで、前記第1の対応情報に近似する商品-ユーザ行列を第2の対応情報として生成する第2の生成手段と、
前記第1の対応情報と前記第2の対応情報とで値の異なる要素を特定する特定手段と、
前記第1のデータ集合に含まれる購買データのうち、前記特定手段により特定された要素に対応するユーザと商品とを特定し、前記特定されたユーザと商品とに対応する購買データを、加工対象データとして決定する決定手段と、
前記決定手段により特定されたユーザと商品とに対応する前記加工対象データの商品の購買数を集計した値が、前記第2の対応情報における前記特定手段により特定された要素の値と同一となるよう前記加工対象データを加工する加工手段と、
を有するシステム。
【請求項11】
情報処理装置が実行する情報処理方法であって、
ユーザに対応する購買した商品に関する購買データの集合である第1のデータ集合について、前記第1のデータ集合内の商品の購買数を集計して、各ユーザが各商品をどれだけ購買したかを特定した商品-ユーザ行列を第1の対応情報として生成する第1の生成ステップと、
前記第1の対応情報に対して低ランク近似を行うことで、前記第1の対応情報に近似する商品-ユーザ行列を第2の対応情報として生成する第2の生成ステップと、
前記第1の対応情報と前記第2の対応情報とで値の異なる要素を特定する特定ステップと、
前記第1のデータ集合に含まれる購買データのうち、前記特定ステップにおいて特定された要素に対応するユーザと商品とを特定し、前記特定されたユーザと商品とに対応する購買データを、加工対象データとして決定する決定ステップと、
前記決定ステップにおいて特定されたユーザと商品とに対応する前記加工対象データの商品の購買数を集計した値が、前記第2の対応情報における前記特定ステップにおいて特定された要素の値と同一となるよう前記加工対象データを加工する加工ステップと、
を含む情報処理方法。
【請求項12】
システムが実行する情報処理方法であって、
ユーザに対応する購買した商品に関する購買データの集合である第1のデータ集合について、前記第1のデータ集合内の商品の購買数を集計して、各ユーザが各商品をどれだけ購買したかを特定した商品-ユーザ行列を第1の対応情報として生成する第1の生成ステップと、
前記第1の対応情報に対して低ランク近似を行うことで、前記第1の対応情報に近似する商品-ユーザ行列を第2の対応情報として生成する第2の生成ステップと、
前記第1の対応情報と前記第2の対応情報とで値の異なる要素を特定する特定ステップと、
前記第1のデータ集合に含まれる購買データのうち、前記特定ステップにおいて特定された要素に対応するユーザと商品とを特定し、前記特定されたユーザと商品とに対応する購買データを、加工対象データとして決定する決定ステップと、
前記決定ステップにおいて特定されたユーザと商品とに対応する前記加工対象データの商品の購買数を集計した値が、前記第2の対応情報における前記特定ステップにおいて特定された要素の値と同一となるよう前記加工対象データを加工する加工ステップと、
を含む情報処理方法。
【請求項13】
コンピュータを、請求項1乃至何れか1項記載の情報処理装置の各手段として、機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、システム、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
個人情報等の流出の防止等のセキュリティの向上を目的として、データに対して加工を施す匿名化技術等の技術がある。
非特許文献1には、同じ属性値を持つデータがk件以上存在するようにデータを変換することで、データの匿名化を行う手法であるk-匿名化が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】“k-匿名化技術と実用化に向けた取り組み” 情報処理 Vol.54 No.11 竹之内 隆夫 [平成30年3月22日検索]、インターネット <URL https://ipsj.ixsq.nii.ac.jp/ej/index.php?active_action=repository_view_main_item_detail&page_id=13&block_id=8&item_id=95382&item_no=1>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、データを加工することで、データの有用性が低下する場合がある。例えば、非特許文献1に開示されているk-匿名化では、同じ属性を持つデータがk件以上存在するようにデータが加工されることとなる。これにより、セキュリティは向上するが、データが加工されることにより、元のデータが有していた情報の一部が消失することとなり、データの有用性は低下する。同じ属性となるように加工されるデータが特定の分析に重要な情報であると、k-匿名化により、データの有用性が顕著に低下することとなる。
そこで、本発明は、データの有用性の低下を抑えつつ、データのセキュリティを向上させることを支援することを目的とする。
【課題を解決するための手段】
【0005】
そこで、本発明の情報処理装置は、ユーザに対応する購買した商品に関する購買データの集合である第1のデータ集合について、前記第1のデータ集合内の商品の購買数を集計して、各ユーザが各商品をどれだけ購買したかを特定した商品-ユーザ行列を第1の対応情報として生成する第1の生成手段と、前記第1の対応情報に対して低ランク近似を行うことで、前記第1の対応情報に近似する商品-ユーザ行列を第2の対応情報として生成する第2の生成手段と、前記第1の対応情報と前記第2の対応情報とで値の異なる要素を特定する特定手段と、前記第1のデータ集合に含まれる購買データのうち、前記特定手段により特定された要素に対応するユーザと商品とを特定し、前記特定されたユーザと商品とに対応する購買データを、加工対象データとして決定する決定手段と、前記決定手段により特定されたユーザと商品とに対応する前記加工対象データの商品の購買数を集計した値が、前記第2の対応情報における前記特定手段により特定された要素の値と同一となるよう前記加工対象データを加工する加工手段と、を有する。
【発明の効果】
【0006】
本発明によれば、データの有用性の低下を抑えつつ、データのセキュリティを向上させることを支援することができる。
【図面の簡単な説明】
【0007】
図1図1は、情報処理装置の処理の一例の概要を説明する図である。
図2図2は、item-User行列の生成処理の一例を説明する図である。
図3図3は、類似度間行列の生成処理の一例を説明する図である。
図4図4は、予測評価値の決定処理の一例を説明する図である。
図5図5は、情報処理装置のハードウェア構成の一例を示す図である。
図6図6は、情報処理装置の機能構成の一例を示す図である。
図7図7は、情報処理装置の処理の一例を示すフローチャートである。
図8図8は、要素の入れ替え処理の一例を説明する図である。
図9図9は、要素の入れ替え処理の一例を説明する図である。
【発明を実施するための形態】
【0008】
以下、本発明の実施形態について図面に基づいて説明する。
<実施形態1>
(本実施形態の処理の概要)
図1は、本実施形態の処理の一例の概要を説明する図である。本実施形態の処理の主体は、図5で後述する情報処理装置500であるとする。
本実施形態では、予め、複数のユーザそれぞれについての商品の購買履歴のデータの集合である購買履歴データ100が用意されているとする。購買履歴データ100は、例えば、何時、誰が、何を、どれだけ購買したかを示すデータの集合である。以下では、購買履歴データ100のように、分析に用いられる蓄積されたデータの集合を、元データとする。購買履歴データ100のような元データは、第1のデータ集合の一例である。購買履歴データ100は、図3、4で後述する予測評価値の決定等の分析に用いることができるデータであり、特定の分析に対して有用性を有するデータである。しかし、購買履歴データ100には、ユーザの情報が含まれるため、個人の識別ができる情報である個人情報や、個人に関する情報が含まれる場合がある。そのため、購買履歴データ100をそのまま保持していると、個人情報等の漏洩の可能性があるという問題がある。また、購買履歴データ100を非特許文献1に記載のk-匿名化の技術で匿名化すると購買履歴データ100の有用性が顕著に低下してしまう場合がある。
そこで、本実施形態では、情報処理装置500は、購買履歴データ100を、購買履歴データ100を有用性の低下を防ぎつつ、購買履歴データ100内のデータを個人の特定を困難にするように加工する処理を行う。
【0009】
情報処理装置500は、まず、購買履歴データ100内のデータを集計し、商品とユーザとの組み合わせに対応する商品の購買数を示す行列状の情報であるitem-User行列101を生成する。図2は、item-User行列101の生成処理の一例を説明する図である。図2の例では、購買履歴データ100内のデータには、何時、誰が、何を、どれだけ購買したかを示すデータが45000個保存されている。
情報処理装置500は、この45000個のデータを集計し、誰が、どの商品(アイテム)を合計でいくつ購買したかを特定する。図2の例では、ユーザは500人存在して、ユーザにより購買され得る商品は、3000種類存在する。そのため、図2の例では、情報処理装置500は、item-User行列101として、3000×500の行列を生成する。即ち、item-User行列101の各行が、商品それぞれに対応し、item-User行列101の各列が、ユーザそれぞれに対応することとなる。item-User行列101のi行j列目の要素の値は、j列目に対応するユーザが、i行目に対応する商品を購買した購買数を示す。
【0010】
そして、情報処理装置500は、item-User行列101を、特異値分解する。情報処理装置500は、item-User行列101に対する特異値分解により得られた特異値を成分とする行列を、その行列の要素のうち、絶対値の小さなものから選択された一部の要素の値を減ずるように、修正する。そして、情報処理装置500は、修正した行列を用いて、item-User行列101を近似する。より具体的には、情報処理装置500は、item-User行列101に対する特異値分解により得られた特異値を成分とする行列を、その行列の要素のうち、絶対値の小さなものから選択された一部の要素の値を0に減ずるように修正し、特異値分解で得られた各行列の掛け合わせの式を、各要素がその行列の特異値となる行列の代わりに、修正されたその行列を用いて計算することで、item-User行列101を低ランク近似する。情報処理装置500は、このようにitem-User行列101を低ランク近似することで、item-User行列101に近似する近似item-User行列102を生成する。以下では、item-User行列101、近似item-User行列102のように複数の項目の組み合わせに対応する予め定められた項目の値を示す情報を、対応情報とする。item-User行列101は、第1の対応情報の一例である。近似item-User行列102は、第2の対応情報の一例である。
近似item-User行列102は、item-User行列101の低ランク近似であり、item-User行列101の特徴的な成分を有し、微細な成分を除外した行列であるとみなせる。
【0011】
例えば、あるユーザがある時刻にある商品を少量(例えば1個、2個等)購買した場合、そのユーザによるその商品の購買履歴の情報は、購買された商品の数量が少量なので、分析への影響は、軽微であるとみなせる場合がある。また、あるユーザがある商品をある時刻に少量(例えば1個、2個等)購買した場合、その時刻に少量のその商品を購買したという情報から、誰の購買履歴なのかを第3者に類推されてしまう可能性がある。例えば、その時刻に少量のその商品を購買した人物を知っている第3者は、その購買履歴がその人物の情報であると類推する場合があり、特定のユーザの情報が漏れてしまう場合がある。このように有用性にはあまり寄与しないデータであっても、個人の特定に利用されてしまう場合がある。
そこで、情報処理装置500は、近似item-User行列102を生成することで、item-User行列101から、特徴的な成分を残し、微細な成分を除外することとした。
情報処理装置500は、生成した近似item-User行列102に基づいて、例えば、item-User行列101を生成する際の処理と逆の処理を行うことで、匿名化された購買履歴データ100である匿名化購買履歴データ103を生成する。匿名化購買履歴データ103は、匿名化された元データである匿名化データの一例である。
【0012】
以上が、本実施形態の情報処理装置500の処理の概要である。
本実施形態の情報処理装置500の処理は、例えば、以下のような処理と見なせる。即ち、購買履歴データ100を特定の分析に用いられる形式であるitem-User行列101に変換して、変換したitem-User行列101を、特徴的な成分を残し、微細な成分を除外することで近似item-User行列102を生成し、生成した近似item-User行列102から、購買履歴データ100に近似するデータを生成することで、匿名化された購買履歴データ100である匿名化購買履歴データ103を生成する処理である。
【0013】
(購買履歴データ100の分析の一例)
図3図4を用いて、購買履歴データ100を用いた分析処理の一例として、あるユーザがある商品を購入したり、評価したりしたある商品を購入したりした際に、そのユーザが他の商品について、どの程度の評価をするかを予測する処理を説明する。より具体的には、予測の結果として、予測された評価の度合いを示す指標である予測評価値を求める処理について説明する。
図3は、商品同士の類似度を示すitem間類似度行列104を生成する処理の一例を説明する図である。情報処理装置500は、例えば、item-user行列101に基づいて、商品間の類似度を示すitem間類似度行列104を生成する。item-user行列101の各行は、対応する商品を各ユーザがどれだけ購買したかを示す要素で構成された行となる。ここで、item-user行列101のi行の各要素を並べたベクトルを、Viとする。Viは、i行目に対応する商品を各ユーザがどれだけ購買したかを示すベクトルとみなすことができる。ここで、i行目に対応する商品と、j行目に対応する商品と、の類似度を以下の式1で表されるWijとして定義する。
Wij=Vi・Vj/(|Vi||Vj|) (式1)
情報処理装置500は、例えば、式1を用いて、全てのi、jの組について、Wijを求める。そして、情報処理装置500は、Wijが表す行列を、item間類似度行列104として決定する。
【0014】
図4は、予測評価値の決定処理の一例を説明する図である。
図4の例では、あるユーザについての各商品の評価値を含むベクトルであるitem評価ベクトル401が用意されているとする。情報処理装置500は、例えば、そのユーザが評価済みの商品について、item間類似度行列104に、item評価ベクトル401を掛け、得られたベクトルの第i要素を、類似度行列のi行目の行絶対値和で割ることで、そのユーザがある商品を購買した際の予測評価値を含むベクトルである予測評価ベクトル402を生成する。予測評価ベクトル402の各行には、その行に対応する商品についてのそのユーザの評価値の予測値が格納されることとなる。j行目に対応する商品についてのユーザuの評価値をruj、ユーザuが評価済みのアイテムの集合をYu、y行目に対応する商品についてのユーザuの評価値の予測値をr’uyとすると、r’uyは以下の式2で表されることになる。
【0015】
【数1】
【0016】
情報処理装置500は、例えば、予測評価ベクトル402の各行のうち、予め定められた閾値以上の行を特定し、特定した行に対応する商品を、そのユーザがより評価するであろう商品として特定する。そして、情報処理装置500は、例えば、特定した商品をそのユーザに対するお勧めの商品として、そのユーザに提示することとしてもよい。
例えば、以上のような処理で、購買履歴データ100が分析に用いられることとなる。
【0017】
(情報処理装置500のハードウェア構成)
図5は、情報処理装置500のハードウェア構成の一例を示す図である。情報処理装置500は、例えば、パーソナルコンピュータ(PC)、サーバ装置、タブレット装置等である。
情報処理装置500は、CPU501、主記憶装置502、補助記憶装置503、入力I/F504、出力I/F505、ネットワークI/F506を含む。各要素は、システムバス507を介して、相互に通信可能に接続されている。
CPU501は、情報処理装置500を制御する中央演算装置である。主記憶装置502は、CPU501のワークエリアやデータの一時的な記憶領域として機能するRandom Access Memory(RAM)等の記憶装置である。主記憶装置502は、記憶媒体の一例である。補助記憶装置503は、各種プログラム、各種設定情報、購買履歴データ100等の元データ、元データから生成される各種情報等を記憶する記憶装置である。補助記憶装置503は、例えば、Read Only Memory(ROM)、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)等である。補助記憶装置503は、記憶媒体の一例である。
【0018】
入力I/F504は、マウス、キーボード、タッチパネル等の入力装置との接続に用いられるインターフェースである。CPU501は、入力I/F504を介して、入力装置からの情報の入力を受付ける。出力I/F505は、モニタ、タッチパネルの表示部、スピーカ等の出力装置との接続に用いられるインターフェースである。CPU501は、出力I/F505を介して、出力装置へ情報を出力する。ネットワークI/F506は、ネットワークを介した外部の装置との間での通信に用いられるインターフェースである。CPU501は、ネットワークI/F506を介して、外部の装置都の間で通信を行う。
CPU501が、補助記憶装置503等に記憶されたプログラムにしたがって処理を実行することで、図6で後述する情報処理装置500の機能、図7で後述するフローチャートの処理等が実現される。
【0019】
(情報処理装置500の機能構成)
図6は、情報処理装置500の機能構成の一例を示す図である。情報処理装置500は、データ取得部601、データ生成部602、判定部603、更新部604、出力部605を含む。
データ取得部601は、補助記憶装置503から元データを取得し、取得した元データに基づいて、複数の項目の組み合わせに対応する特定の項目の値を示す複数次元の配列状の情報である対応情報を取得する。
データ生成部602は、データ取得部601により取得された対応情報を、複数の複数次元の配列状の情報の掛け合わせとして分解する。そして、データ生成部602は、分解により得られた情報のうち、他の情報それぞれと掛け合わされる情報について、含まれる要素のうちの一部の要素の値を減ずるように修正する。以下では、対応情報の分解により得られた情報のうち、他の情報それぞれと掛け合わされる情報を、配列情報とする。また、以下では、含まれる要素のうちの一部の要素の値を減ずるように修正された配列情報は、修正配列情報とする。そして、データ生成部602は、修正した修正配列情報に基づいて、対応情報を近似することで、対応情報を生成しなおす。以下では、修正配列情報に基づいて、生成された対応情報を、近似対応情報とする。またデータ生成部602は、生成した近似対応情報に基づいて、匿名化された元データである匿名化データを生成する。生成された匿名化データは、第2のデータ集合の一例である。
【0020】
判定部603は、データ生成部602により生成された匿名化データを、最終的な結果として採用するか否かを判定する。
更新部604は、判定部603によりデータ生成部602により生成された匿名化データを採用しないと判定された場合、データ生成部602による近似対応情報の生成に用いられるパラメータの値を更新する。更新部604によるパラメータの更新後に、データ生成部602は、改めて、更新されたパラメータに基づいて、近似対応情報、及び匿名化データを生成する。
出力部605は、データ生成部602により生成された匿名化データを出力する。
【0021】
(情報処理装置500の処理)
図7は、情報処理装置500の処理の一例を示すフローチャートである。
S701において、データ取得部601は、例えば、補助記憶装置503から、元データを取得する。図7の例では、データ取得部601は、補助記憶装置503から、元データとして、購買履歴データ100を取得することとする。
S702において、データ取得部601は、S701で取得した元データに基づいて、予め指定された複数の項目の組み合わせに対応する予め定められた項目の値を示す対応情報を生成する。本実施形態では、この複数の項目として、予め、ユーザの項目と商品の項目とが指定されているとする。また、この複数の項目の組み合わせに対応する項目として、商品の購買数が指定されているとする。図7の例では、データ取得部601は、元データ内のデータを集計することで、各ユーザが各商品をどれだけ購買したかを特定し、2次元の配列状の対応情報として、Item-User行列101を生成する。
【0022】
S703において、データ生成部602は、S702で取得された2次元の配列状の対応情報を特異値分解することで、対応情報の特異値を取得する。ここで、対応情報を、Aとおくと、Aを特異値分解することで、A=UΣVが得られる。即ち、Aが3つの行列の掛け合わせで表されることとなる。行列Σは、対角成分を対応情報の特異値とする行列である。データ生成部602は、例えば、行列Σの対角成分の各要素の値を取得することで、対応情報の特異値を取得する。行列Σは、特異値分解により得られた他の行列U、Vとそれぞれ掛け合わされるため、配列情報の一例となる。行列Uは、行列Vとは掛け合わされず、行列Vは、行列Uとは掛け合わされない。そのため、行列U、Vは、配列情報ではない。
データ生成部602は、取得した特異値のうち値の小さなものから一部を選択する。データ生成部602は、例えば、取得した特異値のうち、予め定められた閾値以下の特異値を全て選択する。また、データ生成部602は、取得した特異値のうち、値の小さなものから順に予め定められた個数だけ特異値を選択してもよい。また、データ生成部602は、選択した特異値の合計の全ての特異値の合計に対する割合が、予め定められた閾値以下となるように、値の小さなものから順に特異値を選択してもよい。
そして、データ生成部602は、行列Σについて、対角成分のうち、選択した特異値に対応する要素を0にするように修正する。修正後の行列をΣ’とする。Σ’は、修正配列情報の一例である。データ生成部602は、例えば、行列Σ’と、行列Uと、行列Vと、に基づいて、UΣ’Vを求めることで、対応情報を低ランク近似し、近似対応情報を生成する。即ち、本実施形態では、データ生成部602は、対応情報であるItem-User行列101を低ランク近似することで、近似対応情報である近似Item-User行列102を生成する。
【0023】
また、データ生成部602は、生成した近似対応情報の各要素について、小数点以下について、四捨五入、切捨て、切上げ等の端数処理を行うことで、各要素の値を調整することとしてもよい。データの端数部分は、細かい値であり、データの分析等の処理の際に計算処理の負担が増大する原因となる。データ生成部602は、生成した近似対応情報の各要素について端数処理を行うことで、計算処理の負担の原因を低減できる。
また、近似対応情報に示されるあるユーザがある商品を購買した個数が、小数点以下の端数がある値である場合、この近似対応情報に基づいて匿名化データが生成されると、匿名化データには、そのユーザがその商品を小数点以下の端数がある値の個数(例えば、0.5個)だけ購入したというデータが含まれることとなり得る。商品を購買した個数は、整数であるため、このような匿名化データは、不自然なデータとなってしまう。データ生成部602は、近似対応情報の各要素について端数処理を行うことで、匿名化データが不自然なデータとなる可能性を低減できる。
また、データ生成部602は、生成した近似対応情報における配列の要素ベクトル同士を入れ替えることとしてもよい。例えば、データ生成部602は、生成した近似対応情報におけるj1列目の各要素と、j2列目の各要素と、j3列目の各要素と、(j1≠j2、j1≠j3、j2≠j3、)を入れ替えることとしてもよい。例えば、データ生成部602は、近似対応情報におけるj1列目の各要素を、元のj3列目の各要素として、j2列目の各要素を、元のj1列目の各要素として、j3列目の各要素を、元のj2列目の各要素としてもよい。
また、データ生成部602は、生成した近似対応情報における各列に対応するユーザ同士を入れ替えることとしてもよい。例えば、近似対応情報において、j1列目がユーザAに対応し、j2列目がユーザBに対応し、j3列目がユーザCに対応するとする。この場合、データ生成部602は、例えば、近似対応情報におけるj1列目を、ユーザCに対応する列として修正し、j2列目をユーザAに対応する列として修正し、j3列目をユーザBに対応する列として修正してもよい。
これにより、データ生成部602は、近似対応情報に含まれるデータがどのようなデータかを特定しにくいように加工することができ、結果的に、S704で生成する匿名化データを更に匿名化することができるようになる。
【0024】
S704において、データ生成部602は、S703で生成した近似対応情報に基づいて、匿名化された元データである匿名化データを生成する。本実施形態では、データ生成部602は、匿名化購買履歴データ103を生成するとする。
本実施形態では、何時、誰が、何を、どれだけ購買したかを示すデータの集合である元データ内のデータを集計することで、誰が何をどれだけ購買したかを示す対応情報が生成された。そして、対応情報が低ランク近似されることで、誰が何をどれだけ購買したかを示す情報である近似対応情報が得られた。
データ生成部602が匿名化データを生成する処理の一例について説明する。データ生成部602は、元データを加工することで、匿名化データを生成することとする。データ生成部602は、まず、近似対応情報の各要素のうち、対応情報と同一の要素と、異なる要素と、を特定する。
【0025】
データ生成部602は、対応情報と同一と特定した要素に対応するユーザと、商品と、を特定する。データ生成部602は、元データのうち、特定したユーザと、商品と、に対応する情報については、加工を加えないことを決定する。
データ生成部602は、対応情報と同一でないと特定した要素に対応するユーザと、商品と、を特定する。データ生成部602は、元データのうち、特定したユーザと、商品と、に対応するデータについては、加工する対象のデータとして決定する。データ生成部602は、加工する対象として決定したあるユーザとある商品とに対応するデータそれぞれについて、対応する商品の購買数の項目の値を、合計が、近似対応情報におけるそのユーザとその商品とに対応する要素の値となるように、調整する。
【0026】
例えば、元データに含まれるユーザAと商品αとに対応するデータが、「1月10日に、ユーザAが、商品αを、a個購買した」ことを示すデータ(1)と、「1月20日に、ユーザAが、商品αを、b個購買した」ことを示すデータ(2)と、「1月30日に、ユーザAが、商品αを、c個購買した」ことを示すデータ(3)であるとする。この場合、対応情報におけるユーザAと商品αとに対応する要素の値は、a+b+cとなる。また、近似対応情報におけるユーザAと商品αとに対応する要素の値がa+b+c-1となったとする。この場合、データ生成部602は、データ(1)~(3)それぞれについて、商品を購買した数の部分を合計がa+b+c-1となるように調整する。データ生成部602は、例えば、データ(1)~(3)の何れかについて、購買した数を、1だけ減ずるようにデータを加工する。例えば、データ(1)を加工する場合、データ生成部602は、データ(1)を、「1月10日に、ユーザAが、商品αを、a-1個購買した」ことを示すデータに加工する。
データ生成部602は、加工対象として決定したデータそれぞれについて、購買した数の項目の値を調整することで、匿名化データを生成する。
【0027】
また、対応情報におけるあるユーザとある商品とに対応する要素の値が1以上であり、近似対応情報におけるそのユーザとその商品とに対応する要素の値が0である場合がある。即ち、そのユーザがその商品を購入した情報が、有用性にあまり寄与しないとして削除されてしまった場合である。このような場合、データ生成部602は、例えば、匿名化データを生成する際に、元データにおけるその商品とそのユーザとに対応するデータを削除する。
また、データ生成部602は、例えば、そのユーザがその商品を購買したという情報を残すために、元データにおけるそのユーザとその商品とに対応するデータを、「ある時点で、そのユーザがその商品を0個購買した」ことを示すデータに修正することとしてもよい。
【0028】
また、近似対応情報に対して、要素の入れ替えが行われている場合、データ生成部602は、更に、以下で説明するような処理を行うこととしてもよい。
近似対応情報に対して、ユーザAとユーザBとユーザCとに対応するそれぞれの列(それぞれ、j1列、j2列、j3列とする)を入れ替える処理が行われたとする。データ生成部602は、近似対応情報におけるj1列目の各要素を、元のj3列目の各要素として、j2列目の各要素を、元のj1列目の各要素として、j3列目の各要素を、元のj2列目の各要素としたとする。
元データに含まれるユーザAに対応するデータが、「1月10日に、ユーザAが、商品αを、a個購買した」ことを示すデータと、「1月20日に、ユーザAが、商品βを、b個購買した」ことを示すデータであるとする。また、元データに含まれるユーザBに対応するデータが、「2月10日に、ユーザBが、商品βを、c個購買した」ことを示すデータと、「2月20日に、ユーザBが、商品γを、d個購買した」ことを示すデータであるとする。また、元データに含まれるユーザCに対応するデータが、「3月10日に、ユーザCが、商品αを、e個購買した」ことを示すデータと、「3月20日に、ユーザCが、商品γを、f個購買した」ことを示すデータであるとする。
【0029】
この場合、対応情報において、ユーザAと商品αとに対応する購買数は、aとなる。また、ユーザAと商品βとに対応する購買数は、bとなる。また、ユーザBと商品βとに対応する購買数は、cとなる。また、ユーザBと商品γとに対応する購買数は、dとなる。また、ユーザCと商品αとに対応する購買数は、eとなる。また、ユーザCと商品γとに対応する購買数は、fとなる。
要素の入れ替えが行われる前の近似対応情報において、これらの値が、以下のようになるとする。ユーザAと商品αとに対応する購買数は、a-1となる。また、ユーザAと商品βとに対応する購買数は、bとなる。また、ユーザBと商品βとに対応する購買数は、c-1となる。また、ユーザBと商品γとに対応する購買数は、dとなる。また、ユーザCと商品αとに対応する購買数は、e-1となる。また、ユーザCと商品γとに対応する購買数は、fとなる。
そして、要素の入れ替えが行われた後の近似対応情報において、ユーザAと商品αとに対応する購買数は、e-1となる。また、ユーザAと商品βとに対応する購買数は、0となる。また、また、ユーザAと商品γとに対応する購買数は、fとなる。また、ユーザBと商品αとに対応する購買数は、a―1となる。また、ユーザBと商品βとに対応する購買数は、bとなる。また、ユーザBと商品γとに対応する購買数は、0となる。また、ユーザCと商品αとに対応する購買数は、0となる。また、ユーザCと商品βとに対応する購買数は、c-1となる。また、ユーザCと商品γとに対応する購買数は、dとなる。
【0030】
この場合、データ生成部602は、例えば、近似対応情報のj1列目の各要素を参照することで、ユーザAが商品αをe-1個、商品γをf個購買したこととなっていることを把握する。そして、データ生成部602は、元データにおけるユーザAに対応するデータを把握した内容に合わせるように調整する。
近似対応情報においてユーザAに対応する列は、元々ユーザCに対応する列となっている。これは、元データに含まれる各データにおいて、ユーザの入れ替えが生じたことと解釈できる。そこで、データ生成部602は、元データに含まれるユーザCに対応するデータである「3月10日に、ユーザCが、商品αを、e個購買した」ことを示すデータと、「3月20日に、ユーザCが、商品γを、f個購買した」ことを示すデータと、におけるユーザCをユーザAに入れ替えるように修正する。これにより、「3月10日に、ユーザAが、商品αを、e個購買した」ことを示すデータと、「3月20日に、ユーザAが、商品γを、f個購買した」ことを示すデータと、が生成される。近似対応情報には、ユーザAが商品αをe-1個、商品γをf個購買したことが示されているので、データ生成部602は、生成した「3月10日に、ユーザAが、商品αを、e個購買した」ことを示すデータにおける購買数を近似対応情報に併せるように修正して、「3月10日に、ユーザAが、商品αを、e-1個購買した」ことを示すデータを生成する。
また、データ生成部602は、元データに含まれる各ユーザに対応するデータにおけるユーザを修正せずに、各ユーザに対応するデータにおける購買した数を修正することとしてもよい。データ生成部602は、例えば、「1月10日に、ユーザAが、商品αを、a個購買した」ことを示すデータについて、購買した数を修正し、「1月10日に、ユーザAが、商品αを、e-1個購買した」ことを示すデータに変更し、「1月20日に、ユーザAが、商品βを、b個購買した」ことを示すデータについて、購買した商品と、購買した数と、を修正し、「1月20日に、ユーザAが、商品γを、f個購買した」ことを示すデータに変更することとしてもよい。
【0031】
データ生成部602は、例えば、近似対応情報のj2列目の各要素を参照することで、ユーザBが商品αをa-1個、商品βをb個購買したこととなっていることを把握する。そして、データ生成部602は、元データにおけるユーザBに対応するデータを把握した内容に合わせるように調整する。
近似対応情報においてユーザBに対応する列は、元々ユーザAに対応する列となっている。そこで、データ生成部602は、元データに含まれるユーザAに対応するデータである「1月10日に、ユーザAが、商品αを、a個購買した」ことを示すデータと、「1月20日に、ユーザAが、商品βを、b個購買した」ことを示すデータと、におけるユーザAを、ユーザBに入れ替えるように修正する。これにより、「1月10日に、ユーザBが、商品αを、a個購買した」ことを示すデータと、「1月20日に、ユーザBが、商品βを、b個購買した」ことを示すデータと、が生成される。近似対応情報には、ユーザBが商品αをa-1個、商品βをb個購買したことが示されているので、データ生成部602は、生成した「1月10日に、ユーザBが、商品αを、a個購買した」ことを示すデータにおける購買数を近似対応情報に併せるように修正して、「1月10日に、ユーザBが、商品αを、a-1個購買した」ことを示すデータを生成する。
また、データ生成部602は、元データに含まれるユーザBに対応するデータである「2月10日に、ユーザBが、商品βを、c個購買した」ことを示すデータについて、購買した数を修正し、「2月10日に、ユーザBが、商品βを、b個購買した」ことを示すデータに変更し、「2月20日に、ユーザBが、商品γを、d個購買した」ことを示すデータについて、購買した商品と、購買した数と、を修正し、「2月20日に、ユーザBが、商品αを、a-1個購買した」ことを示すデータに変更することとしてもよい。
【0032】
データ生成部602は、例えば、近似対応情報のj3列目の各要素を参照することで、ユーザCが商品βをc-1個、商品γをd個購買したこととなっていることを把握する。そして、データ生成部602は、元データにおけるユーザCに対応するデータを把握した内容に合わせるように調整する。
近似対応情報においてユーザCに対応する列は、元々ユーザBに対応する列となっている。そこで、データ生成部602は、元データに含まれるユーザBに対応するデータである「2月10日に、ユーザBが、商品βを、c個購買した」ことを示すデータと、「2月20日に、ユーザBが、商品γを、d個購買した」ことを示すデータと、におけるユーザBを、ユーザCに入れ替えるように修正する。これにより、「2月10日に、ユーザCが、商品βを、c個購買した」ことを示すデータと、「2月20日に、ユーザCが、商品γを、d個購買した」ことを示すデータと、が生成される。近似対応情報には、ユーザCが商品βをc-1個、商品γをd個購買したことが示されているので、データ生成部602は、生成した「2月10日に、ユーザCが、商品βを、c個購買した」ことを示すデータにおける購買数を近似対応情報に併せるように修正して、「2月10日に、ユーザCが、商品βを、c-1個購買した」ことを示すデータを生成する。
また、データ生成部602は、元データに含まれるユーザCに対応するデータである「3月20日に、ユーザCが、商品γを、f個購買した」ことを示すデータについて、購買した数を修正し、「3月20日に、ユーザCが、商品γを、d個購買した」ことを示すデータに変更し、「3月10日に、ユーザCが、商品αを、e個購買した」ことを示すデータについて、購買した商品を修正し、「3月10日に、ユーザCが、商品βを、c-1個購買した」ことを示すデータに変更することとしてもよい。
【0033】
以上のようにして、データ生成部602は、要素の入れ替えが行われた近似対応情報から、匿名化データを生成する。
このように、情報処理装置500は、要素が入れ替えられた近似対応情報に基づいて、匿名化データを生成することで、各データが、誰に関するデータであるかをより把握しにくくすることができ、セキュリティをより向上できる。また、図3、4で説明したような分析を行う際には、各商品を購買したユーザが誰であるかは、影響がない。そのため、情報処理装置500は、このような要素の入れ替えを行っても、特定の分析に対するデータの有用性を維持できる。
【0034】
S705において、判定部603は、S704で生成された匿名化データを、最終的な結果として採用するか否かを判定する。判定部603は、例えば、データ集合についての匿名化の度合い、有用性の度合いを評価する評価アプリケーションにS704で生成された匿名化データを入力し、得られた評価結果に基づいて、最終的な結果として採用するか否かを判定する。判定部603は、S704で生成された匿名化データを、最終的な結果として採用すると判定した場合、S706の処理に進み、最終的な結果として採用しないと判定した場合、S707の処理に進む。
また、判定部603は、出力I/F505に接続されたモニタに匿名化データを表示し、表示された匿名化データを確認したユーザによる入力I/F504に接続された入力装置を介した指示に基づいて、S704で生成された匿名化データを、最終的な結果として採用するか否かを判定することとしてもよい。
【0035】
S706において、出力部605は、例えば、S704で生成された匿名化データを、予め定められた記憶先(例えば、補助記憶装置503等)に記憶することで出力する。また、出力部605は、S704で生成された匿名化データを、外部の装置等の予め定められた送信先に送信することで出力することとしてもよい。また、出力部605は、S704で生成された匿名化データを、出力I/F505に接続されたモニタ等に表示することで出力することとしてもよい。
S707において、更新部604は、匿名化データの生成に関するパラメータ(例えば、配列情報の要素のうち選択される要素の数、配列情報の要素から要素を選択する際に用いられる閾値等)を更新する。更新部604は、例えば、ユーザにより入力I/F504に接続された入力装置を介して指定された値に、このパラメータを更新する。その後、情報処理装置500は、更新されたパラメータを用いて、再度、匿名化データを生成することとなる。
【0036】
(効果)
以上、本実施形態の処理により、情報処理装置500は、元データから匿名化データを生成した。
生成された匿名化データは、元データから加工され、内部の各データが誰に関するデータであるかを特定することが困難なデータとなっており、セキュリティが向上している。また、匿名化データを、集計することで、近似対応情報を復元することが可能となっている。近似対応情報は、元データに関する特定の分析に有用な対応情報について、主要な成分を残したまま近似した情報となっており、この特定の分析にも有用である。即ち、匿名化データから、特定の分析に有用な情報が生成できることとなる。したがって、匿名化データは、元データに比べて、有用性の低下が抑えられていることとなる。
このように、情報処理装置500は、元データの有用性の低下を抑えつつ、元データのセキュリティを向上させることができる。
また、情報処理装置500は、近似対応情報を生成する処理まで行うこととして、近似対応情報から匿名化データを生成する処理については、他の装置が実行することとしてもよい。また、近似対応情報から匿名化データをどのようにするかを人が決定して、人が、情報処理装置500等に決定した匿名化データの情報を入力することとしてもよい。
その場合、情報処理装置500は、近似対応情報を生成することで、元データの有用性の低下を抑えつつ、元データのセキュリティを向上させることを支援することができる。
【0037】
(変形例)
本実施形態では、情報処理装置500は、配列情報について、一部の要素の値を0にするように修正して、修正配列情報を取得することとした。しかし、情報処理装置500は、配列情報について、一部の要素の値を、現在の値よりも小さくするような、他の修正を行うことで、修正配列情報を取得することとしてもよい。例えば、情報処理装置500は、配列情報について、一部の要素の値を、現在の値の予め定められた割合(例えば、10分の1、100分の1等)で縮小させるように修正することで、修正配列情報を取得することとしてもよい。
また、本実施形態では、情報処理装置500は、配列情報について、配列情報の要素のうち、小さなものから選択された一部の要素の値を減ずるように修正した。これは、情報処理装置500が、配列情報について、配列情報の要素のうち、大きなものから選択された一部の要素以外の要素の値を減ずるように修正することと同義である。
【0038】
また、本実施形態では、データ取得部601は、S702で、元データに基づいて、指定された2つの項目の組み合わせに対応する予め定められた項目の値を示す2次元配列状の対応情報を生成することとした。しかし、データ取得部601は、指定された3つ以上の項目の組み合わせに対応する予め定められた項目の値を示す3次元以上の配列状の対応情報を生成することとしてもよい。
例えば、データ取得部601は、指定された3つの項目であるユーザの項目と商品の項目と購買月の項目との組み合わせに対応する商品の購買数の項目の値を示す3次元の配列状の対応情報を生成することとしてもよい。その場合、対応情報の各要素は、その要素に対応するユーザにより、その要素に対応する月に、購入されたその要素に対応する商品の数を示すこととなる。
【0039】
ここで、データ取得部601により3次元以上の配列状の対応情報が生成された場合に、データ生成部602が近似対応情報を生成する処理について説明する。
対応情報が3次元以上の配列状である場合、対応情報は、3階以上のテンソルとして表すことができる。データ生成部602は、例えば、対応情報に対して、Tucker分解等のテンソル分解を施すことで、対応情報を、複数の複数次元の配列状の情報の掛け合わせとして表すことができる。そして、データ生成部602は、これらの複数次元の配列状の情報のうち、他の情報それぞれと掛け合わされる情報(配列情報)であるコアテンソルの各要素のうち値の小さなものから一部を選択する。データ生成部602は、例えば、取得した各要素のうち、予め定められた閾値以下の要素を全て選択する。また、データ生成部602は、取得した各要素のうち、値の小さなものから順に予め定められた個数だけ要素を選択してもよい。また、データ生成部602は、選択した要素の値の合計の全ての要素の値の合計に対する割合が、予め定められた閾値以下となるように、値の小さなものから順に要素を選択してもよい。
そして、データ生成部602は、コアテンソルについて、各要素のうち、選択した要素の値を減ずる(例えば、0にする、10分の1にする、100分の1にする等)ように修正する。データ生成部602は、例えば、修正したコアテンソルと、対応情報に対するテンソル分解で得られたコアテンソル以外の複数次元の配列状の情報と、を掛け合わせることで、対応情報を近似し、近似対応情報を生成することとなる。
【0040】
また、本実施形態では、情報処理装置500は、近似対応情報について、要素の入れ替えを行ってもよいこととした。図7の例では、近似対応情報における要素が入れ替えられる各ユーザが行った購買の回数は、共に2回であるとした。しかし、ユーザ毎に行った購買の数が異なる場合がある。ユーザが購買を行った回数を保存しておきたいと要望されることがある。このような場合、図8、9を用いて説明する以下のような問題が生じることがある。
図8は、近似対応情報に含まれるデータ等の一例を示す図である。図8の例では、近似対応情報におけるユーザiと商品J3に対応する要素は、20となっており、「ユーザiが商品J3を20個購買したこと」を示す。また、元データには、「ユーザjが5月25日に商品T-800を50個購買したこと」を示すデータ、「ユーザjが10月30日に商品T-1000を150個購買したこと」を示すデータが含まれるとする。このように、ユーザiが購買した商品の種類の数の方が、ユーザjの行った購買の回数よりも少ない。
近似対応情報におけるユーザiに対応する要素が、ユーザjに対応する要素に入れ替えられる場合、データ生成部602は、ユーザjが商品J3を20個購買したことを示すように、「ユーザjが5月25日に商品T-800を50個購買したこと」を示すデータ、「ユーザjが10月30日に商品T-1000を150個購買したこと」を示すデータを修正する。例えば、データ生成部602は、これらのデータを、「ユーザjが5月25日に商品J3を5個購買したこと」を示すデータ、「ユーザjが10月30日に商品J3を15個購買したこと」を示すデータに修正する。このように、ユーザiの購買した商品の種類の数が、ユーザjの行った購買の回数よりも少ない場合、データ生成部602は、ユーザjが2回購買を行ったことと矛盾がないように、ユーザiに対応するデータを、ユーザjに対応するデータとして入れ替えることができる。
【0041】
図9は、近似対応情報に含まれるデータ等の一例を示す図である。図9の例では、近似対応情報におけるユーザiと商品J1に対応する要素は、1となっており、ユーザiと商品J2に対応する要素は、5となっており、ユーザiと商品J3に対応する要素は、25となっており、「ユーザiが商品J1を1個、商品J2を5個、商品J3を25個購買したこと」を示す。
また、元データには、「ユーザjが5月25日に商品T-800を50個購買したこと」を示すデータ、「ユーザjが10月30日に商品T-1000を150個購買したこと」を示すデータが含まれる。図9の例では、ユーザiが購買した商品の種類の数の方が、ユーザjの行った購買の回数よりも多い。
ここで、近似対応情報におけるユーザiに対応する要素が、ユーザjに対応する要素に入れ替えられる場合、データ生成部602は、ユーザjが2回購買を行ったことと矛盾のないようには、データを入れ替えることができないという問題が生じる。ユーザiが購買した商品の種類が3種類であるため、2回の購買のデータに変換できないためである。なお、本実施形態では、商品単位で購買履歴が生成されることとしており、1つの購買履歴に複数商品の購買データが含まれることはないこととする。
【0042】
そのため、ユーザ間でデータの入れ替えを行う場合、入れ替えの組み合わせが多い程、よりデータを匿名化できる。そのため、各ユーザが購買した商品の種類の数を少なくして、入れ替え可能な組み合わせを、増大させたいという要望がある。
そこで、情報処理装置500は、以下のようにしてもよい。情報処理装置500は、S703で対応情報を分解して、得られたパラメータ(例えば、特異値)のうちの一部のパラメータを用いて、対応情報を近似することとした。そして、情報処理装置500は、近似対応情報の各要素の値について、小数点以下を切り捨てる端数処理を行うことで、近似対応情報において値が0となる要素を増やすことができる。これにより、情報処理装置500は、近似対応情報い示される各ユーザが購買した商品の種類を低減させることができる。また、情報処理装置500は、近似対応情報の各要素の値について、予め定められた閾値以下の値の要素の値を、0に変更することとしてもよい。
【0043】
また、本実施形態では、情報処理装置500は、元データとして、何時、誰が、何を、どれだけ購買したかを示すデータの集合である購買履歴データ100を元データとして用いることとした。本実施形態での元データは、ユーザに対応する購買した商品に関する情報とみなすことができる。即ち、ユーザと商品との間には、has-a関係が存在する。情報処理装置500は、元データが本実施形態で説明したデータと異なるデータであっても、元データがhas-a関係を有する複数データに関するデータである場合、元データに基づいて、対応情報を生成できる。元データがA has Bの関係を有するAとBとのデータを含む場合、情報処理装置500は、例えば、Aに含まれるBの個数、割合、頻度等を集計・解析等して、対応情報を生成できる。
例えば、情報処理装置500は、タスク管理システムにおけるチケットデータ、テキストのアップロードアプリにアップロードされたテキスト等のテキストデータの集合等の他のデータの集合を元データとして用いることとしてもよい。この場合、元データは、テキストデータに対応する出現する単語の情報とみなすことができ、テキストデータと単語との間には、has-a関係が存在する。その場合、情報処理装置500は、元データに基づいて、各テキストにおける指定された単語の出現頻度を示す対応情報を生成できる。その場合、例えば、対応情報における各列は、各テキストの識別情報を示し、各行は、単語を示す。対応情報の各要素は、その要素に対応するテキストにおけるその要素に対応する単語の出現頻度を示す情報となる。
そして、情報処理装置500は、本実施形態で説明した処理と同様の処理で、対応情報から、近似対応情報を生成し、生成した近似対応情報から匿名化データを生成することとなる。
【0044】
本実施形態では、情報処理装置500は、単体の情報処理装置であるとした。しかし、情報処理装置500は、ネットワーク(LANやインターネット)を介して相互に通信可能に接続された複数の情報処理装置を含むシステムとして構成されることとしてもよい。その場合、情報処理装置500に含まれる複数の情報処理装置それぞれのCPUが、それぞれの情報処理装置の補助記憶装置に記憶されたプログラムに基づき処理を連携して実行することで、図6の機能及び図7のフローチャートの処理等が実現される。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
例えば、上述した情報処理装置500の機能構成の一部又は全てをハードウェアとして情報処理装置500に実装してもよい。
【符号の説明】
【0045】
500 情報処理装置
501 CPU
図1
図2
図3
図4
図5
図6
図7
図8
図9