(57)【要約】【課題】データの有用性の低下を抑えつつ、データのセキュリティを向上させることを支援することを目的とする。【解決手段】複数の項目の組み合わせに対応する予め定められた項目の値を示す複数次元の配列状の情報を第１の対応情報として、第１の対応情報が複数次元の配列状の複数の情報の掛け合わせとして分解されることで得られる複数の情報のうち複数の情報に含まれる他の情報それぞれと掛け合わされる情報を配列情報として、配列情報が要素の一部について値を減ずるように修正された情報である修正配列情報を取得し、取得された修正配列情報に基づいて、複数の項目の組み合わせに対応する予め定められた項目の値を示す複数次元の配列状の情報である第２の対応情報を生成する。【選択図】図７
2019200605.tif 000002
【特許請求の範囲】
【請求項１】
複数の項目の組み合わせに対応する予め定められた項目の値を示す複数次元の配列状の情報を第１の対応情報として、前記第１の対応情報が複数次元の配列状の複数の情報の掛け合わせとして分解されることで得られる前記複数の情報のうち前記複数の情報に含まれる他の情報それぞれと掛け合わされる情報を配列情報として、前記配列情報が要素の一部について値を減ずるように修正された情報である修正配列情報を取得する取得手段と、
前記取得手段により取得された前記修正配列情報に基づいて、前記複数の項目の組み合わせに対応する前記予め定められた項目の値を示す複数次元の配列状の情報である第２の対応情報を生成する第１の生成手段と、
を有する情報処理装置。
【請求項２】
前記取得手段は、要素の一部について値を０に減ずるように修正された前記配列情報である前記修正配列情報を取得する請求項１記載の情報処理装置。
【請求項３】
前記取得手段は、前記配列情報の要素のうち値が小さいものから選択された一部の要素について値を減ずるように修正された前記配列情報である前記修正配列情報を取得する請求項１又は２記載の情報処理装置。
【請求項４】
前記取得手段は、前記配列情報の要素のうち値が予め定められた閾値以下の要素について値を減ずるように修正された前記配列情報である前記修正配列情報を取得する請求項３記載の情報処理装置。
【請求項５】
前記取得手段は、前記配列情報の要素のうち値が小さいものから順に予め定められた個数の要素について値を減ずるように修正された前記配列情報である前記修正配列情報を取得する請求項３記載の情報処理装置。
【請求項６】
前記取得手段は、２次元の配列状の情報である前記第１の対応情報が、２次元の配列状の複数の情報の掛け合わせとして特異値分解されることで得られる各要素が前記第１の対応情報の特異値となる情報である前記配列情報が要素の一部について値を減ずるように修正された前記修正配列情報を取得する請求項１乃至５何れか１項記載の情報処理装置。
【請求項７】
前記取得手段は、複数次元の配列状の情報である前記第１の対応情報が、複数次元の配列状の複数の情報の掛け合わせとしてテンソル分解されることで得られるコアテンソルである前記配列情報が要素の一部について値を減ずるように修正された情報である前記修正配列情報を取得する請求項１乃至５何れか１項記載の情報処理装置。
【請求項８】
前記第１の生成手段により生成された前記第２の対応情報の各要素の値を調整する調整手段を更に有する請求項１乃至７何れか１項記載の情報処理装置。
【請求項９】
前記調整手段は、前記第１の生成手段により生成された前記第２の対応情報の各要素について、端数処理を行うこととで、前記第２の対応情報の各要素の値を調整する請求項８記載の情報処理装置。
【請求項１０】
前記第１の生成手段により生成された前記第２の対応情報に含まれる複数の要素の間で入れ替え処理を行う入れ替え手段を更に有する請求項１乃至９何れか１項記載の情報処理装置。
【請求項１１】
前記取得手段は、第１のデータ集合に基づいて生成された前記第１の対応情報が複数次元の配列状の複数の情報の掛け合わせとして分解されることで得られる前記配列情報が要素の一部について値を減ずるように修正された情報である前記修正配列情報を取得する請求項１乃至１０何れか１項記載の情報処理装置。
【請求項１２】
前記第１の生成手段により生成された前記第２の対応情報に基づいて、前記第１のデータ集合に近似する第２のデータ集合を生成する第２の生成手段を更に有する請求項１１記載の情報処理装置。
【請求項１３】
前記第１のデータ集合は、複数のユーザそれぞれについての商品の購買履歴のデータの集合であり、
前記第１の対応情報は、ユーザの項目と商品の項目との組み合わせに対応する商品の購買数の項目の値を示す２次元の配列状の情報である請求項１１又は１２記載の情報処理装置。
【請求項１４】
複数の項目の組み合わせに対応する予め定められた項目の値を示す複数次元の配列状の情報を第１の対応情報として、前記第１の対応情報が複数次元の配列状の複数の情報の掛け合わせとして分解されることで得られる前記複数の情報のうち前記複数の情報に含まれる他の情報それぞれと掛け合わされる情報を配列情報として、前記配列情報が要素の一部について値を減ずるように修正された情報である修正配列情報を取得する取得手段と、
前記取得手段により取得された前記修正配列情報に基づいて、前記複数の項目の組み合わせに対応する前記予め定められた項目の値を示す複数次元の配列状の情報である第２の対応情報を生成する生成手段と、
を有するシステム。
【請求項１５】
情報処理装置が実行する情報処理方法であって、
複数の項目の組み合わせに対応する予め定められた項目の値を示す複数次元の配列状の情報を第１の対応情報として、前記第１の対応情報が複数次元の配列状の複数の情報の掛け合わせとして分解されることで得られる前記複数の情報のうち前記複数の情報に含まれる他の情報それぞれと掛け合わされる情報を配列情報として、前記配列情報が要素の一部について値を減ずるように修正された情報である修正配列情報を取得する取得ステップと、
前記取得ステップで取得された前記修正配列情報に基づいて、前記複数の項目の組み合わせに対応する前記予め定められた項目の値を示す複数次元の配列状の情報である第２の対応情報を生成する生成ステップと、
を含む情報処理方法。
【請求項１６】
システムが実行する情報処理方法であって、
複数の項目の組み合わせに対応する予め定められた項目の値を示す複数次元の配列状の情報を第１の対応情報として、前記第１の対応情報が複数次元の配列状の複数の情報の掛け合わせとして分解されることで得られる前記複数の情報のうち前記複数の情報に含まれる他の情報それぞれと掛け合わされる情報を配列情報として、前記配列情報が要素の一部について値を減ずるように修正された情報である修正配列情報を取得する取得ステップと、
前記取得ステップで取得された前記修正配列情報に基づいて、前記複数の項目の組み合わせに対応する前記予め定められた項目の値を示す複数次元の配列状の情報である第２の対応情報を生成する生成ステップと、
を含む情報処理方法。
【請求項１７】
コンピュータを、請求項１乃至１３何れか１項記載の情報処理装置の各手段として、機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、システム、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
個人情報等の流出の防止等のセキュリティの向上を目的として、データに対して加工を施す匿名化技術等の技術がある。
非特許文献１には、同じ属性値を持つデータがｋ件以上存在するようにデータを変換することで、データの匿名化を行う手法であるｋ−匿名化が開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“ｋ−匿名化技術と実用化に向けた取り組み”  情報処理  Ｖｏｌ．５４  Ｎｏ．１１  竹之内  隆夫  ［平成３０年３月２２日検索］、インターネット  ＜ＵＲＬ  ｈｔｔｐｓ：／／ｉｐｓｊ．ｉｘｓｑ．ｎｉｉ．ａｃ．ｊｐ／ｅｊ／ｉｎｄｅｘ．ｐｈｐ？ａｃｔｉｖｅ＿ａｃｔｉｏｎ＝ｒｅｐｏｓｉｔｏｒｙ＿ｖｉｅｗ＿ｍａｉｎ＿ｉｔｅｍ＿ｄｅｔａｉｌ＆ｐａｇｅ＿ｉｄ＝１３＆ｂｌｏｃｋ＿ｉｄ＝８＆ｉｔｅｍ＿ｉｄ＝９５３８２＆ｉｔｅｍ＿ｎｏ＝１＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、データを加工することで、データの有用性が低下する場合がある。例えば、非特許文献１に開示されているｋ−匿名化では、同じ属性を持つデータがｋ件以上存在するようにデータが加工されることとなる。これにより、セキュリティは向上するが、データが加工されることにより、元のデータが有していた情報の一部が消失することとなり、データの有用性は低下する。同じ属性となるように加工されるデータが特定の分析に重要な情報であると、ｋ−匿名化により、データの有用性が顕著に低下することとなる。
そこで、本発明は、データの有用性の低下を抑えつつ、データのセキュリティを向上させることを支援することを目的とする。
【課題を解決するための手段】
【０００５】
そこで、本発明の情報処理装置は、複数の項目の組み合わせに対応する予め定められた項目の値を示す複数次元の配列状の情報を第１の対応情報として、前記第１の対応情報が複数次元の配列状の複数の情報の掛け合わせとして分解されることで得られる前記複数の情報のうち前記複数の情報に含まれる他の情報それぞれと掛け合わされる情報を配列情報として、前記配列情報が要素の一部について値を減ずるように修正された情報である修正配列情報を取得する取得手段と、前記取得手段により取得された前記修正配列情報に基づいて、前記複数の項目の組み合わせに対応する前記予め定められた項目の値を示す複数次元の配列状の情報である第２の対応情報を生成する第１の生成手段と、を有する。
【発明の効果】
【０００６】
本発明によれば、データの有用性の低下を抑えつつ、データのセキュリティを向上させることを支援することができる。
【図面の簡単な説明】
【０００７】
【図１】図１は、情報処理装置の処理の一例の概要を説明する図である。
【図２】図２は、ｉｔｅｍ−Ｕｓｅｒ行列の生成処理の一例を説明する図である。
【図３】図３は、類似度間行列の生成処理の一例を説明する図である。
【図４】図４は、予測評価値の決定処理の一例を説明する図である。
【図５】図５は、情報処理装置のハードウェア構成の一例を示す図である。
【図６】図６は、情報処理装置の機能構成の一例を示す図である。
【図７】図７は、情報処理装置の処理の一例を示すフローチャートである。
【図８】図８は、要素の入れ替え処理の一例を説明する図である。
【図９】図９は、要素の入れ替え処理の一例を説明する図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
＜実施形態１＞
（本実施形態の処理の概要）
図１は、本実施形態の処理の一例の概要を説明する図である。本実施形態の処理の主体は、図５で後述する情報処理装置５００であるとする。
本実施形態では、予め、複数のユーザそれぞれについての商品の購買履歴のデータの集合である購買履歴データ１００が用意されているとする。購買履歴データ１００は、例えば、何時、誰が、何を、どれだけ購買したかを示すデータの集合である。以下では、購買履歴データ１００のように、分析に用いられる蓄積されたデータの集合を、元データとする。購買履歴データ１００のような元データは、第１のデータ集合の一例である。購買履歴データ１００は、図３、４で後述する予測評価値の決定等の分析に用いることができるデータであり、特定の分析に対して有用性を有するデータである。しかし、購買履歴データ１００には、ユーザの情報が含まれるため、個人の識別ができる情報である個人情報や、個人に関する情報が含まれる場合がある。そのため、購買履歴データ１００をそのまま保持していると、個人情報等の漏洩の可能性があるという問題がある。また、購買履歴データ１００を非特許文献１に記載のｋ−匿名化の技術で匿名化すると購買履歴データ１００の有用性が顕著に低下してしまう場合がある。
そこで、本実施形態では、情報処理装置５００は、購買履歴データ１００を、購買履歴データ１００を有用性の低下を防ぎつつ、購買履歴データ１００内のデータを個人の特定を困難にするように加工する処理を行う。
【０００９】
情報処理装置５００は、まず、購買履歴データ１００内のデータを集計し、商品とユーザとの組み合わせに対応する商品の購買数を示す行列状の情報であるｉｔｅｍ−Ｕｓｅｒ行列１０１を生成する。図２は、ｉｔｅｍ−Ｕｓｅｒ行列１０１の生成処理の一例を説明する図である。図２の例では、購買履歴データ１００内のデータには、何時、誰が、何を、どれだけ購買したかを示すデータが４５０００個保存されている。
情報処理装置５００は、この４５０００個のデータを集計し、誰が、どの商品（アイテム）を合計でいくつ購買したかを特定する。図２の例では、ユーザは５００人存在して、ユーザにより購買され得る商品は、３０００種類存在する。そのため、図２の例では、情報処理装置５００は、ｉｔｅｍ−Ｕｓｅｒ行列１０１として、３０００×５００の行列を生成する。即ち、ｉｔｅｍ−Ｕｓｅｒ行列１０１の各行が、商品それぞれに対応し、ｉｔｅｍ−Ｕｓｅｒ行列１０１の各列が、ユーザそれぞれに対応することとなる。ｉｔｅｍ−Ｕｓｅｒ行列１０１のｉ行ｊ列目の要素の値は、ｊ列目に対応するユーザが、ｉ行目に対応する商品を購買した購買数を示す。
【００１０】
そして、情報処理装置５００は、ｉｔｅｍ−Ｕｓｅｒ行列１０１を、特異値分解する。情報処理装置５００は、ｉｔｅｍ−Ｕｓｅｒ行列１０１に対する特異値分解により得られた特異値を成分とする行列を、その行列の要素のうち、絶対値の小さなものから選択された一部の要素の値を減ずるように、修正する。そして、情報処理装置５００は、修正した行列を用いて、ｉｔｅｍ−Ｕｓｅｒ行列１０１を近似する。より具体的には、情報処理装置５００は、ｉｔｅｍ−Ｕｓｅｒ行列１０１に対する特異値分解により得られた特異値を成分とする行列を、その行列の要素のうち、絶対値の小さなものから選択された一部の要素の値を０に減ずるように修正し、特異値分解で得られた各行列の掛け合わせの式を、各要素がその行列の特異値となる行列の代わりに、修正されたその行列を用いて計算することで、ｉｔｅｍ−Ｕｓｅｒ行列１０１を低ランク近似する。情報処理装置５００は、このようにｉｔｅｍ−Ｕｓｅｒ行列１０１を低ランク近似することで、ｉｔｅｍ−Ｕｓｅｒ行列１０１に近似する近似ｉｔｅｍ−Ｕｓｅｒ行列１０２を生成する。以下では、ｉｔｅｍ−Ｕｓｅｒ行列１０１、近似ｉｔｅｍ−Ｕｓｅｒ行列１０２のように複数の項目の組み合わせに対応する予め定められた項目の値を示す情報を、対応情報とする。ｉｔｅｍ−Ｕｓｅｒ行列１０１は、第１の対応情報の一例である。近似ｉｔｅｍ−Ｕｓｅｒ行列１０２は、第２の対応情報の一例である。
近似ｉｔｅｍ−Ｕｓｅｒ行列１０２は、ｉｔｅｍ−Ｕｓｅｒ行列１０１の低ランク近似であり、ｉｔｅｍ−Ｕｓｅｒ行列１０１の特徴的な成分を有し、微細な成分を除外した行列であるとみなせる。
【００１１】
例えば、あるユーザがある時刻にある商品を少量（例えば１個、２個等）購買した場合、そのユーザによるその商品の購買履歴の情報は、購買された商品の数量が少量なので、分析への影響は、軽微であるとみなせる場合がある。また、あるユーザがある商品をある時刻に少量（例えば１個、２個等）購買した場合、その時刻に少量のその商品を購買したという情報から、誰の購買履歴なのかを第３者に類推されてしまう可能性がある。例えば、その時刻に少量のその商品を購買した人物を知っている第３者は、その購買履歴がその人物の情報であると類推する場合があり、特定のユーザの情報が漏れてしまう場合がある。このように有用性にはあまり寄与しないデータであっても、個人の特定に利用されてしまう場合がある。
そこで、情報処理装置５００は、近似ｉｔｅｍ−Ｕｓｅｒ行列１０２を生成することで、ｉｔｅｍ−Ｕｓｅｒ行列１０１から、特徴的な成分を残し、微細な成分を除外することとした。
情報処理装置５００は、生成した近似ｉｔｅｍ−Ｕｓｅｒ行列１０２に基づいて、例えば、ｉｔｅｍ−Ｕｓｅｒ行列１０１を生成する際の処理と逆の処理を行うことで、匿名化された購買履歴データ１００である匿名化購買履歴データ１０３を生成する。匿名化購買履歴データ１０３は、匿名化された元データである匿名化データの一例である。
【００１２】
以上が、本実施形態の情報処理装置５００の処理の概要である。
本実施形態の情報処理装置５００の処理は、例えば、以下のような処理と見なせる。即ち、購買履歴データ１００を特定の分析に用いられる形式であるｉｔｅｍ−Ｕｓｅｒ行列１０１に変換して、変換したｉｔｅｍ−Ｕｓｅｒ行列１０１を、特徴的な成分を残し、微細な成分を除外することで近似ｉｔｅｍ−Ｕｓｅｒ行列１０２を生成し、生成した近似ｉｔｅｍ−Ｕｓｅｒ行列１０２から、購買履歴データ１００に近似するデータを生成することで、匿名化された購買履歴データ１００である匿名化購買履歴データ１０３を生成する処理である。
【００１３】
（購買履歴データ１００の分析の一例）
図３、図４を用いて、購買履歴データ１００を用いた分析処理の一例として、あるユーザがある商品を購入したり、評価したりしたある商品を購入したりした際に、そのユーザが他の商品について、どの程度の評価をするかを予測する処理を説明する。より具体的には、予測の結果として、予測された評価の度合いを示す指標である予測評価値を求める処理について説明する。
図３は、商品同士の類似度を示すｉｔｅｍ間類似度行列１０４を生成する処理の一例を説明する図である。情報処理装置５００は、例えば、ｉｔｅｍ−ｕｓｅｒ行列１０１に基づいて、商品間の類似度を示すｉｔｅｍ間類似度行列１０４を生成する。ｉｔｅｍ−ｕｓｅｒ行列１０１の各行は、対応する商品を各ユーザがどれだけ購買したかを示す要素で構成された行となる。ここで、ｉｔｅｍ−ｕｓｅｒ行列１０１のｉ行の各要素を並べたベクトルを、Ｖｉとする。Ｖｉは、ｉ行目に対応する商品を各ユーザがどれだけ購買したかを示すベクトルとみなすことができる。ここで、ｉ行目に対応する商品と、ｊ行目に対応する商品と、の類似度を以下の式１で表されるＷｉｊとして定義する。
Ｗｉｊ＝Ｖｉ・Ｖｊ／（｜Ｖｉ｜｜Ｖｊ｜）      （式１）
情報処理装置５００は、例えば、式１を用いて、全てのｉ、ｊの組について、Ｗｉｊを求める。そして、情報処理装置５００は、Ｗｉｊが表す行列を、ｉｔｅｍ間類似度行列１０４として決定する。
【００１４】
図４は、予測評価値の決定処理の一例を説明する図である。
図４の例では、あるユーザについての各商品の評価値を含むベクトルであるｉｔｅｍ評価ベクトル４０１が用意されているとする。情報処理装置５００は、例えば、そのユーザが評価済みの商品について、ｉｔｅｍ間類似度行列１０４に、ｉｔｅｍ評価ベクトル４０１を掛け、得られたベクトルの第ｉ要素を、類似度行列のｉ行目の行絶対値和で割ることで、そのユーザがある商品を購買した際の予測評価値を含むベクトルである予測評価ベクトル４０２を生成する。予測評価ベクトル４０２の各行には、その行に対応する商品についてのそのユーザの評価値の予測値が格納されることとなる。ｊ行目に対応する商品についてのユーザｕの評価値をｒｕｊ、ユーザｕが評価済みのアイテムの集合をＹｕ、ｙ行目に対応する商品についてのユーザｕの評価値の予測値をｒ’ｕｙとすると、ｒ’ｕｙは以下の式２で表されることになる。
【００１５】
【数１】
2019200605.tif 000003
【００１６】
情報処理装置５００は、例えば、予測評価ベクトル４０２の各行のうち、予め定められた閾値以上の行を特定し、特定した行に対応する商品を、そのユーザがより評価するであろう商品として特定する。そして、情報処理装置５００は、例えば、特定した商品をそのユーザに対するお勧めの商品として、そのユーザに提示することとしてもよい。
例えば、以上のような処理で、購買履歴データ１００が分析に用いられることとなる。
【００１７】
（情報処理装置５００のハードウェア構成）
図５は、情報処理装置５００のハードウェア構成の一例を示す図である。情報処理装置５００は、例えば、パーソナルコンピュータ（ＰＣ）、サーバ装置、タブレット装置等である。
情報処理装置５００は、ＣＰＵ５０１、主記憶装置５０２、補助記憶装置５０３、入力Ｉ／Ｆ５０４、出力Ｉ／Ｆ５０５、ネットワークＩ／Ｆ５０６を含む。各要素は、システムバス５０７を介して、相互に通信可能に接続されている。
ＣＰＵ５０１は、情報処理装置５００を制御する中央演算装置である。主記憶装置５０２は、ＣＰＵ５０１のワークエリアやデータの一時的な記憶領域として機能するＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）等の記憶装置である。主記憶装置５０２は、記憶媒体の一例である。補助記憶装置５０３は、各種プログラム、各種設定情報、購買履歴データ１００等の元データ、元データから生成される各種情報等を記憶する記憶装置である。補助記憶装置５０３は、例えば、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）等である。補助記憶装置５０３は、記憶媒体の一例である。
【００１８】
入力Ｉ／Ｆ５０４は、マウス、キーボード、タッチパネル等の入力装置との接続に用いられるインターフェースである。ＣＰＵ５０１は、入力Ｉ／Ｆ５０４を介して、入力装置からの情報の入力を受付ける。出力Ｉ／Ｆ５０５は、モニタ、タッチパネルの表示部、スピーカ等の出力装置との接続に用いられるインターフェースである。ＣＰＵ５０１は、出力Ｉ／Ｆ５０５を介して、出力装置へ情報を出力する。ネットワークＩ／Ｆ５０６は、ネットワークを介した外部の装置との間での通信に用いられるインターフェースである。ＣＰＵ５０１は、ネットワークＩ／Ｆ５０６を介して、外部の装置都の間で通信を行う。
ＣＰＵ５０１が、補助記憶装置５０３等に記憶されたプログラムにしたがって処理を実行することで、図６で後述する情報処理装置５００の機能、図７で後述するフローチャートの処理等が実現される。
【００１９】
（情報処理装置５００の機能構成）
図６は、情報処理装置５００の機能構成の一例を示す図である。情報処理装置５００は、データ取得部６０１、データ生成部６０２、判定部６０３、更新部６０４、出力部６０５を含む。
データ取得部６０１は、補助記憶装置５０３から元データを取得し、取得した元データに基づいて、複数の項目の組み合わせに対応する特定の項目の値を示す複数次元の配列状の情報である対応情報を取得する。
データ生成部６０２は、データ取得部６０１により取得された対応情報を、複数の複数次元の配列状の情報の掛け合わせとして分解する。そして、データ生成部６０２は、分解により得られた情報のうち、他の情報それぞれと掛け合わされる情報について、含まれる要素のうちの一部の要素の値を減ずるように修正する。以下では、対応情報の分解により得られた情報のうち、他の情報それぞれと掛け合わされる情報を、配列情報とする。また、以下では、含まれる要素のうちの一部の要素の値を減ずるように修正された配列情報は、修正配列情報とする。そして、データ生成部６０２は、修正した修正配列情報に基づいて、対応情報を近似することで、対応情報を生成しなおす。以下では、修正配列情報に基づいて、生成された対応情報を、近似対応情報とする。またデータ生成部６０２は、生成した近似対応情報に基づいて、匿名化された元データである匿名化データを生成する。生成された匿名化データは、第２のデータ集合の一例である。
【００２０】
判定部６０３は、データ生成部６０２により生成された匿名化データを、最終的な結果として採用するか否かを判定する。
更新部６０４は、判定部６０３によりデータ生成部６０２により生成された匿名化データを採用しないと判定された場合、データ生成部６０２による近似対応情報の生成に用いられるパラメータの値を更新する。更新部６０４によるパラメータの更新後に、データ生成部６０２は、改めて、更新されたパラメータに基づいて、近似対応情報、及び匿名化データを生成する。
出力部６０５は、データ生成部６０２により生成された匿名化データを出力する。
【００２１】
（情報処理装置５００の処理）
図７は、情報処理装置５００の処理の一例を示すフローチャートである。
Ｓ７０１において、データ取得部６０１は、例えば、補助記憶装置５０３から、元データを取得する。図７の例では、データ取得部６０１は、補助記憶装置５０３から、元データとして、購買履歴データ１００を取得することとする。
Ｓ７０２において、データ取得部６０１は、Ｓ７０１で取得した元データに基づいて、予め指定された複数の項目の組み合わせに対応する予め定められた項目の値を示す対応情報を生成する。本実施形態では、この複数の項目として、予め、ユーザの項目と商品の項目とが指定されているとする。また、この複数の項目の組み合わせに対応する項目として、商品の購買数が指定されているとする。図７の例では、データ取得部６０１は、元データ内のデータを集計することで、各ユーザが各商品をどれだけ購買したかを特定し、２次元の配列状の対応情報として、Ｉｔｅｍ−Ｕｓｅｒ行列１０１を生成する。
【００２２】
Ｓ７０３において、データ生成部６０２は、Ｓ７０２で取得された２次元の配列状の対応情報を特異値分解することで、対応情報の特異値を取得する。ここで、対応情報を、Ａとおくと、Ａを特異値分解することで、Ａ＝ＵΣＶが得られる。即ち、Ａが３つの行列の掛け合わせで表されることとなる。行列Σは、対角成分を対応情報の特異値とする行列である。データ生成部６０２は、例えば、行列Σの対角成分の各要素の値を取得することで、対応情報の特異値を取得する。行列Σは、特異値分解により得られた他の行列Ｕ、Ｖとそれぞれ掛け合わされるため、配列情報の一例となる。行列Ｕは、行列Ｖとは掛け合わされず、行列Ｖは、行列Ｕとは掛け合わされない。そのため、行列Ｕ、Ｖは、配列情報ではない。
データ生成部６０２は、取得した特異値のうち値の小さなものから一部を選択する。データ生成部６０２は、例えば、取得した特異値のうち、予め定められた閾値以下の特異値を全て選択する。また、データ生成部６０２は、取得した特異値のうち、値の小さなものから順に予め定められた個数だけ特異値を選択してもよい。また、データ生成部６０２は、選択した特異値の合計の全ての特異値の合計に対する割合が、予め定められた閾値以下となるように、値の小さなものから順に特異値を選択してもよい。
そして、データ生成部６０２は、行列Σについて、対角成分のうち、選択した特異値に対応する要素を０にするように修正する。修正後の行列をΣ’とする。Σ’は、修正配列情報の一例である。データ生成部６０２は、例えば、行列Σ’と、行列Ｕと、行列Ｖと、に基づいて、ＵΣ’Ｖを求めることで、対応情報を低ランク近似し、近似対応情報を生成する。即ち、本実施形態では、データ生成部６０２は、対応情報であるＩｔｅｍ−Ｕｓｅｒ行列１０１を低ランク近似することで、近似対応情報である近似Ｉｔｅｍ−Ｕｓｅｒ行列１０２を生成する。
【００２３】
また、データ生成部６０２は、生成した近似対応情報の各要素について、小数点以下について、四捨五入、切捨て、切上げ等の端数処理を行うことで、各要素の値を調整することとしてもよい。データの端数部分は、細かい値であり、データの分析等の処理の際に計算処理の負担が増大する原因となる。データ生成部６０２は、生成した近似対応情報の各要素について端数処理を行うことで、計算処理の負担の原因を低減できる。
また、近似対応情報に示されるあるユーザがある商品を購買した個数が、小数点以下の端数がある値である場合、この近似対応情報に基づいて匿名化データが生成されると、匿名化データには、そのユーザがその商品を小数点以下の端数がある値の個数（例えば、０．５個）だけ購入したというデータが含まれることとなり得る。商品を購買した個数は、整数であるため、このような匿名化データは、不自然なデータとなってしまう。データ生成部６０２は、近似対応情報の各要素について端数処理を行うことで、匿名化データが不自然なデータとなる可能性を低減できる。
また、データ生成部６０２は、生成した近似対応情報における配列の要素ベクトル同士を入れ替えることとしてもよい。例えば、データ生成部６０２は、生成した近似対応情報におけるｊ1列目の各要素と、ｊ2列目の各要素と、ｊ3列目の各要素と、（ｊ1≠ｊ2、ｊ1≠ｊ3、ｊ2≠ｊ3、）を入れ替えることとしてもよい。例えば、データ生成部６０２は、近似対応情報におけるｊ1列目の各要素を、元のｊ3列目の各要素として、ｊ2列目の各要素を、元のｊ1列目の各要素として、ｊ3列目の各要素を、元のｊ2列目の各要素としてもよい。
また、データ生成部６０２は、生成した近似対応情報における各列に対応するユーザ同士を入れ替えることとしてもよい。例えば、近似対応情報において、ｊ1列目がユーザＡに対応し、ｊ2列目がユーザＢに対応し、ｊ3列目がユーザＣに対応するとする。この場合、データ生成部６０２は、例えば、近似対応情報におけるｊ1列目を、ユーザＣに対応する列として修正し、ｊ2列目をユーザＡに対応する列として修正し、ｊ3列目をユーザＢに対応する列として修正してもよい。
これにより、データ生成部６０２は、近似対応情報に含まれるデータがどのようなデータかを特定しにくいように加工することができ、結果的に、Ｓ７０４で生成する匿名化データを更に匿名化することができるようになる。
【００２４】
Ｓ７０４において、データ生成部６０２は、Ｓ７０３で生成した近似対応情報に基づいて、匿名化された元データである匿名化データを生成する。本実施形態では、データ生成部６０２は、匿名化購買履歴データ１０３を生成するとする。
本実施形態では、何時、誰が、何を、どれだけ購買したかを示すデータの集合である元データ内のデータを集計することで、誰が何をどれだけ購買したかを示す対応情報が生成された。そして、対応情報が低ランク近似されることで、誰が何をどれだけ購買したかを示す情報である近似対応情報が得られた。
データ生成部６０２が匿名化データを生成する処理の一例について説明する。データ生成部６０２は、元データを加工することで、匿名化データを生成することとする。データ生成部６０２は、まず、近似対応情報の各要素のうち、対応情報と同一の要素と、異なる要素と、を特定する。
【００２５】
データ生成部６０２は、対応情報と同一と特定した要素に対応するユーザと、商品と、を特定する。データ生成部６０２は、元データのうち、特定したユーザと、商品と、に対応する情報については、加工を加えないことを決定する。
データ生成部６０２は、対応情報と同一でないと特定した要素に対応するユーザと、商品と、を特定する。データ生成部６０２は、元データのうち、特定したユーザと、商品と、に対応するデータについては、加工する対象のデータとして決定する。データ生成部６０２は、加工する対象として決定したあるユーザとある商品とに対応するデータそれぞれについて、対応する商品の購買数の項目の値を、合計が、近似対応情報におけるそのユーザとその商品とに対応する要素の値となるように、調整する。
【００２６】
例えば、元データに含まれるユーザＡと商品αとに対応するデータが、「１月１０日に、ユーザＡが、商品αを、ａ個購買した」ことを示すデータ（１）と、「１月２０日に、ユーザＡが、商品αを、ｂ個購買した」ことを示すデータ（２）と、「１月３０日に、ユーザＡが、商品αを、ｃ個購買した」ことを示すデータ（３）であるとする。この場合、対応情報におけるユーザＡと商品αとに対応する要素の値は、ａ＋ｂ＋ｃとなる。また、近似対応情報におけるユーザＡと商品αとに対応する要素の値がａ＋ｂ＋ｃ−１となったとする。この場合、データ生成部６０２は、データ（１）〜（３）それぞれについて、商品を購買した数の部分を合計がａ＋ｂ＋ｃ−１となるように調整する。データ生成部６０２は、例えば、データ（１）〜（３）の何れかについて、購買した数を、１だけ減ずるようにデータを加工する。例えば、データ（１）を加工する場合、データ生成部６０２は、データ（１）を、「１月１０日に、ユーザＡが、商品αを、ａ−１個購買した」ことを示すデータに加工する。
データ生成部６０２は、加工対象として決定したデータそれぞれについて、購買した数の項目の値を調整することで、匿名化データを生成する。
【００２７】
また、対応情報におけるあるユーザとある商品とに対応する要素の値が１以上であり、近似対応情報におけるそのユーザとその商品とに対応する要素の値が０である場合がある。即ち、そのユーザがその商品を購入した情報が、有用性にあまり寄与しないとして削除されてしまった場合である。このような場合、データ生成部６０２は、例えば、匿名化データを生成する際に、元データにおけるその商品とそのユーザとに対応するデータを削除する。
また、データ生成部６０２は、例えば、そのユーザがその商品を購買したという情報を残すために、元データにおけるそのユーザとその商品とに対応するデータを、「ある時点で、そのユーザがその商品を０個購買した」ことを示すデータに修正することとしてもよい。
【００２８】
また、近似対応情報に対して、要素の入れ替えが行われている場合、データ生成部６０２は、更に、以下で説明するような処理を行うこととしてもよい。
近似対応情報に対して、ユーザＡとユーザＢとユーザＣとに対応するそれぞれの列（それぞれ、ｊ1列、ｊ2列、ｊ3列とする）を入れ替える処理が行われたとする。データ生成部６０２は、近似対応情報におけるｊ1列目の各要素を、元のｊ3列目の各要素として、ｊ2列目の各要素を、元のｊ1列目の各要素として、ｊ3列目の各要素を、元のｊ2列目の各要素としたとする。
元データに含まれるユーザＡに対応するデータが、「１月１０日に、ユーザＡが、商品αを、ａ個購買した」ことを示すデータと、「１月２０日に、ユーザＡが、商品βを、ｂ個購買した」ことを示すデータであるとする。また、元データに含まれるユーザＢに対応するデータが、「２月１０日に、ユーザＢが、商品βを、ｃ個購買した」ことを示すデータと、「２月２０日に、ユーザＢが、商品γを、ｄ個購買した」ことを示すデータであるとする。また、元データに含まれるユーザＣに対応するデータが、「３月１０日に、ユーザＣが、商品αを、ｅ個購買した」ことを示すデータと、「３月２０日に、ユーザＣが、商品γを、ｆ個購買した」ことを示すデータであるとする。
【００２９】
この場合、対応情報において、ユーザＡと商品αとに対応する購買数は、ａとなる。また、ユーザＡと商品βとに対応する購買数は、ｂとなる。また、ユーザＢと商品βとに対応する購買数は、ｃとなる。また、ユーザＢと商品γとに対応する購買数は、ｄとなる。また、ユーザＣと商品αとに対応する購買数は、ｅとなる。また、ユーザＣと商品γとに対応する購買数は、ｆとなる。
要素の入れ替えが行われる前の近似対応情報において、これらの値が、以下のようになるとする。ユーザＡと商品αとに対応する購買数は、ａ−１となる。また、ユーザＡと商品βとに対応する購買数は、ｂとなる。また、ユーザＢと商品βとに対応する購買数は、ｃ−１となる。また、ユーザＢと商品γとに対応する購買数は、ｄとなる。また、ユーザＣと商品αとに対応する購買数は、ｅ−１となる。また、ユーザＣと商品γとに対応する購買数は、ｆとなる。
そして、要素の入れ替えが行われた後の近似対応情報において、ユーザＡと商品αとに対応する購買数は、ｅ−１となる。また、ユーザＡと商品βとに対応する購買数は、０となる。また、また、ユーザＡと商品γとに対応する購買数は、ｆとなる。また、ユーザＢと商品αとに対応する購買数は、ａ―１となる。また、ユーザＢと商品βとに対応する購買数は、ｂとなる。また、ユーザＢと商品γとに対応する購買数は、０となる。また、ユーザＣと商品αとに対応する購買数は、０となる。また、ユーザＣと商品βとに対応する購買数は、ｃ−１となる。また、ユーザＣと商品γとに対応する購買数は、ｄとなる。
【００３０】
この場合、データ生成部６０２は、例えば、近似対応情報のｊ1列目の各要素を参照することで、ユーザＡが商品αをｅ−１個、商品γをｆ個購買したこととなっていることを把握する。そして、データ生成部６０２は、元データにおけるユーザＡに対応するデータを把握した内容に合わせるように調整する。
近似対応情報においてユーザＡに対応する列は、元々ユーザＣに対応する列となっている。これは、元データに含まれる各データにおいて、ユーザの入れ替えが生じたことと解釈できる。そこで、データ生成部６０２は、元データに含まれるユーザＣに対応するデータである「３月１０日に、ユーザＣが、商品αを、ｅ個購買した」ことを示すデータと、「３月２０日に、ユーザＣが、商品γを、ｆ個購買した」ことを示すデータと、におけるユーザＣをユーザＡに入れ替えるように修正する。これにより、「３月１０日に、ユーザＡが、商品αを、ｅ個購買した」ことを示すデータと、「３月２０日に、ユーザＡが、商品γを、ｆ個購買した」ことを示すデータと、が生成される。近似対応情報には、ユーザＡが商品αをｅ−１個、商品γをｆ個購買したことが示されているので、データ生成部６０２は、生成した「３月１０日に、ユーザＡが、商品αを、ｅ個購買した」ことを示すデータにおける購買数を近似対応情報に併せるように修正して、「３月１０日に、ユーザＡが、商品αを、ｅ−１個購買した」ことを示すデータを生成する。
また、データ生成部６０２は、元データに含まれる各ユーザに対応するデータにおけるユーザを修正せずに、各ユーザに対応するデータにおける購買した数を修正することとしてもよい。データ生成部６０２は、例えば、「１月１０日に、ユーザＡが、商品αを、ａ個購買した」ことを示すデータについて、購買した数を修正し、「１月１０日に、ユーザＡが、商品αを、ｅ−１個購買した」ことを示すデータに変更し、「１月２０日に、ユーザＡが、商品βを、ｂ個購買した」ことを示すデータについて、購買した商品と、購買した数と、を修正し、「１月２０日に、ユーザＡが、商品γを、ｆ個購買した」ことを示すデータに変更することとしてもよい。
【００３１】
データ生成部６０２は、例えば、近似対応情報のｊ2列目の各要素を参照することで、ユーザＢが商品αをａ−１個、商品βをｂ個購買したこととなっていることを把握する。そして、データ生成部６０２は、元データにおけるユーザＢに対応するデータを把握した内容に合わせるように調整する。
近似対応情報においてユーザＢに対応する列は、元々ユーザＡに対応する列となっている。そこで、データ生成部６０２は、元データに含まれるユーザＡに対応するデータである「１月１０日に、ユーザＡが、商品αを、ａ個購買した」ことを示すデータと、「１月２０日に、ユーザＡが、商品βを、ｂ個購買した」ことを示すデータと、におけるユーザＡを、ユーザＢに入れ替えるように修正する。これにより、「１月１０日に、ユーザＢが、商品αを、ａ個購買した」ことを示すデータと、「１月２０日に、ユーザＢが、商品βを、ｂ個購買した」ことを示すデータと、が生成される。近似対応情報には、ユーザＢが商品αをａ−１個、商品βをｂ個購買したことが示されているので、データ生成部６０２は、生成した「１月１０日に、ユーザＢが、商品αを、ａ個購買した」ことを示すデータにおける購買数を近似対応情報に併せるように修正して、「１月１０日に、ユーザＢが、商品αを、ａ−１個購買した」ことを示すデータを生成する。
また、データ生成部６０２は、元データに含まれるユーザＢに対応するデータである「２月１０日に、ユーザＢが、商品βを、ｃ個購買した」ことを示すデータについて、購買した数を修正し、「２月１０日に、ユーザＢが、商品βを、ｂ個購買した」ことを示すデータに変更し、「２月２０日に、ユーザＢが、商品γを、ｄ個購買した」ことを示すデータについて、購買した商品と、購買した数と、を修正し、「２月２０日に、ユーザＢが、商品αを、ａ−１個購買した」ことを示すデータに変更することとしてもよい。
【００３２】
データ生成部６０２は、例えば、近似対応情報のｊ3列目の各要素を参照することで、ユーザＣが商品βをｃ−１個、商品γをｄ個購買したこととなっていることを把握する。そして、データ生成部６０２は、元データにおけるユーザＣに対応するデータを把握した内容に合わせるように調整する。
近似対応情報においてユーザＣに対応する列は、元々ユーザＢに対応する列となっている。そこで、データ生成部６０２は、元データに含まれるユーザＢに対応するデータである「２月１０日に、ユーザＢが、商品βを、ｃ個購買した」ことを示すデータと、「２月２０日に、ユーザＢが、商品γを、ｄ個購買した」ことを示すデータと、におけるユーザＢを、ユーザＣに入れ替えるように修正する。これにより、「２月１０日に、ユーザＣが、商品βを、ｃ個購買した」ことを示すデータと、「２月２０日に、ユーザＣが、商品γを、ｄ個購買した」ことを示すデータと、が生成される。近似対応情報には、ユーザＣが商品βをｃ−１個、商品γをｄ個購買したことが示されているので、データ生成部６０２は、生成した「２月１０日に、ユーザＣが、商品βを、ｃ個購買した」ことを示すデータにおける購買数を近似対応情報に併せるように修正して、「２月１０日に、ユーザＣが、商品βを、ｃ−１個購買した」ことを示すデータを生成する。
また、データ生成部６０２は、元データに含まれるユーザＣに対応するデータである「３月２０日に、ユーザＣが、商品γを、ｆ個購買した」ことを示すデータについて、購買した数を修正し、「３月２０日に、ユーザＣが、商品γを、ｄ個購買した」ことを示すデータに変更し、「３月１０日に、ユーザＣが、商品αを、ｅ個購買した」ことを示すデータについて、購買した商品を修正し、「３月１０日に、ユーザＣが、商品βを、ｃ−１個購買した」ことを示すデータに変更することとしてもよい。
【００３３】
以上のようにして、データ生成部６０２は、要素の入れ替えが行われた近似対応情報から、匿名化データを生成する。
このように、情報処理装置５００は、要素が入れ替えられた近似対応情報に基づいて、匿名化データを生成することで、各データが、誰に関するデータであるかをより把握しにくくすることができ、セキュリティをより向上できる。また、図３、４で説明したような分析を行う際には、各商品を購買したユーザが誰であるかは、影響がない。そのため、情報処理装置５００は、このような要素の入れ替えを行っても、特定の分析に対するデータの有用性を維持できる。
【００３４】
Ｓ７０５において、判定部６０３は、Ｓ７０４で生成された匿名化データを、最終的な結果として採用するか否かを判定する。判定部６０３は、例えば、データ集合についての匿名化の度合い、有用性の度合いを評価する評価アプリケーションにＳ７０４で生成された匿名化データを入力し、得られた評価結果に基づいて、最終的な結果として採用するか否かを判定する。判定部６０３は、Ｓ７０４で生成された匿名化データを、最終的な結果として採用すると判定した場合、Ｓ７０６の処理に進み、最終的な結果として採用しないと判定した場合、Ｓ７０７の処理に進む。
また、判定部６０３は、出力Ｉ／Ｆ５０５に接続されたモニタに匿名化データを表示し、表示された匿名化データを確認したユーザによる入力Ｉ／Ｆ５０４に接続された入力装置を介した指示に基づいて、Ｓ７０４で生成された匿名化データを、最終的な結果として採用するか否かを判定することとしてもよい。
【００３５】
Ｓ７０６において、出力部６０５は、例えば、Ｓ７０４で生成された匿名化データを、予め定められた記憶先（例えば、補助記憶装置５０３等）に記憶することで出力する。また、出力部６０５は、Ｓ７０４で生成された匿名化データを、外部の装置等の予め定められた送信先に送信することで出力することとしてもよい。また、出力部６０５は、Ｓ７０４で生成された匿名化データを、出力Ｉ／Ｆ５０５に接続されたモニタ等に表示することで出力することとしてもよい。
Ｓ７０７において、更新部６０４は、匿名化データの生成に関するパラメータ（例えば、配列情報の要素のうち選択される要素の数、配列情報の要素から要素を選択する際に用いられる閾値等）を更新する。更新部６０４は、例えば、ユーザにより入力Ｉ／Ｆ５０４に接続された入力装置を介して指定された値に、このパラメータを更新する。その後、情報処理装置５００は、更新されたパラメータを用いて、再度、匿名化データを生成することとなる。
【００３６】
（効果）
以上、本実施形態の処理により、情報処理装置５００は、元データから匿名化データを生成した。
生成された匿名化データは、元データから加工され、内部の各データが誰に関するデータであるかを特定することが困難なデータとなっており、セキュリティが向上している。また、匿名化データを、集計することで、近似対応情報を復元することが可能となっている。近似対応情報は、元データに関する特定の分析に有用な対応情報について、主要な成分を残したまま近似した情報となっており、この特定の分析にも有用である。即ち、匿名化データから、特定の分析に有用な情報が生成できることとなる。したがって、匿名化データは、元データに比べて、有用性の低下が抑えられていることとなる。
このように、情報処理装置５００は、元データの有用性の低下を抑えつつ、元データのセキュリティを向上させることができる。
また、情報処理装置５００は、近似対応情報を生成する処理まで行うこととして、近似対応情報から匿名化データを生成する処理については、他の装置が実行することとしてもよい。また、近似対応情報から匿名化データをどのようにするかを人が決定して、人が、情報処理装置５００等に決定した匿名化データの情報を入力することとしてもよい。
その場合、情報処理装置５００は、近似対応情報を生成することで、元データの有用性の低下を抑えつつ、元データのセキュリティを向上させることを支援することができる。
【００３７】
（変形例）
本実施形態では、情報処理装置５００は、配列情報について、一部の要素の値を０にするように修正して、修正配列情報を取得することとした。しかし、情報処理装置５００は、配列情報について、一部の要素の値を、現在の値よりも小さくするような、他の修正を行うことで、修正配列情報を取得することとしてもよい。例えば、情報処理装置５００は、配列情報について、一部の要素の値を、現在の値の予め定められた割合（例えば、１０分の１、１００分の１等）で縮小させるように修正することで、修正配列情報を取得することとしてもよい。
また、本実施形態では、情報処理装置５００は、配列情報について、配列情報の要素のうち、小さなものから選択された一部の要素の値を減ずるように修正した。これは、情報処理装置５００が、配列情報について、配列情報の要素のうち、大きなものから選択された一部の要素以外の要素の値を減ずるように修正することと同義である。
【００３８】
また、本実施形態では、データ取得部６０１は、Ｓ７０２で、元データに基づいて、指定された２つの項目の組み合わせに対応する予め定められた項目の値を示す２次元配列状の対応情報を生成することとした。しかし、データ取得部６０１は、指定された３つ以上の項目の組み合わせに対応する予め定められた項目の値を示す３次元以上の配列状の対応情報を生成することとしてもよい。
例えば、データ取得部６０１は、指定された３つの項目であるユーザの項目と商品の項目と購買月の項目との組み合わせに対応する商品の購買数の項目の値を示す３次元の配列状の対応情報を生成することとしてもよい。その場合、対応情報の各要素は、その要素に対応するユーザにより、その要素に対応する月に、購入されたその要素に対応する商品の数を示すこととなる。
【００３９】
ここで、データ取得部６０１により３次元以上の配列状の対応情報が生成された場合に、データ生成部６０２が近似対応情報を生成する処理について説明する。
対応情報が３次元以上の配列状である場合、対応情報は、３階以上のテンソルとして表すことができる。データ生成部６０２は、例えば、対応情報に対して、Ｔｕｃｋｅｒ分解等のテンソル分解を施すことで、対応情報を、複数の複数次元の配列状の情報の掛け合わせとして表すことができる。そして、データ生成部６０２は、これらの複数次元の配列状の情報のうち、他の情報それぞれと掛け合わされる情報（配列情報）であるコアテンソルの各要素のうち値の小さなものから一部を選択する。データ生成部６０２は、例えば、取得した各要素のうち、予め定められた閾値以下の要素を全て選択する。また、データ生成部６０２は、取得した各要素のうち、値の小さなものから順に予め定められた個数だけ要素を選択してもよい。また、データ生成部６０２は、選択した要素の値の合計の全ての要素の値の合計に対する割合が、予め定められた閾値以下となるように、値の小さなものから順に要素を選択してもよい。
そして、データ生成部６０２は、コアテンソルについて、各要素のうち、選択した要素の値を減ずる（例えば、０にする、１０分の１にする、１００分の１にする等）ように修正する。データ生成部６０２は、例えば、修正したコアテンソルと、対応情報に対するテンソル分解で得られたコアテンソル以外の複数次元の配列状の情報と、を掛け合わせることで、対応情報を近似し、近似対応情報を生成することとなる。
【００４０】
また、本実施形態では、情報処理装置５００は、近似対応情報について、要素の入れ替えを行ってもよいこととした。図７の例では、近似対応情報における要素が入れ替えられる各ユーザが行った購買の回数は、共に２回であるとした。しかし、ユーザ毎に行った購買の数が異なる場合がある。ユーザが購買を行った回数を保存しておきたいと要望されることがある。このような場合、図８、９を用いて説明する以下のような問題が生じることがある。
図８は、近似対応情報に含まれるデータ等の一例を示す図である。図８の例では、近似対応情報におけるユーザｉと商品Ｊ３に対応する要素は、２０となっており、「ユーザｉが商品Ｊ３を２０個購買したこと」を示す。また、元データには、「ユーザｊが５月２５日に商品Ｔ−８００を５０個購買したこと」を示すデータ、「ユーザｊが１０月３０日に商品Ｔ−１０００を１５０個購買したこと」を示すデータが含まれるとする。このように、ユーザｉが購買した商品の種類の数の方が、ユーザｊの行った購買の回数よりも少ない。
近似対応情報におけるユーザｉに対応する要素が、ユーザｊに対応する要素に入れ替えられる場合、データ生成部６０２は、ユーザｊが商品Ｊ３を２０個購買したことを示すように、「ユーザｊが５月２５日に商品Ｔ−８００を５０個購買したこと」を示すデータ、「ユーザｊが１０月３０日に商品Ｔ−１０００を１５０個購買したこと」を示すデータを修正する。例えば、データ生成部６０２は、これらのデータを、「ユーザｊが５月２５日に商品Ｊ３を５個購買したこと」を示すデータ、「ユーザｊが１０月３０日に商品Ｊ３を１５個購買したこと」を示すデータに修正する。このように、ユーザｉの購買した商品の種類の数が、ユーザｊの行った購買の回数よりも少ない場合、データ生成部６０２は、ユーザｊが２回購買を行ったことと矛盾がないように、ユーザｉに対応するデータを、ユーザｊに対応するデータとして入れ替えることができる。
【００４１】
図９は、近似対応情報に含まれるデータ等の一例を示す図である。図９の例では、近似対応情報におけるユーザｉと商品Ｊ１に対応する要素は、１となっており、ユーザｉと商品Ｊ２に対応する要素は、５となっており、ユーザｉと商品Ｊ３に対応する要素は、２５となっており、「ユーザｉが商品Ｊ１を１個、商品Ｊ２を５個、商品Ｊ３を２５個購買したこと」を示す。
また、元データには、「ユーザｊが５月２５日に商品Ｔ−８００を５０個購買したこと」を示すデータ、「ユーザｊが１０月３０日に商品Ｔ−１０００を１５０個購買したこと」を示すデータが含まれる。図９の例では、ユーザｉが購買した商品の種類の数の方が、ユーザｊの行った購買の回数よりも多い。
ここで、近似対応情報におけるユーザｉに対応する要素が、ユーザｊに対応する要素に入れ替えられる場合、データ生成部６０２は、ユーザｊが２回購買を行ったことと矛盾のないようには、データを入れ替えることができないという問題が生じる。ユーザｉが購買した商品の種類が３種類であるため、２回の購買のデータに変換できないためである。なお、本実施形態では、商品単位で購買履歴が生成されることとしており、１つの購買履歴に複数商品の購買データが含まれることはないこととする。
【００４２】
そのため、ユーザ間でデータの入れ替えを行う場合、入れ替えの組み合わせが多い程、よりデータを匿名化できる。そのため、各ユーザが購買した商品の種類の数を少なくして、入れ替え可能な組み合わせを、増大させたいという要望がある。
そこで、情報処理装置５００は、以下のようにしてもよい。情報処理装置５００は、Ｓ７０３で対応情報を分解して、得られたパラメータ（例えば、特異値）のうちの一部のパラメータを用いて、対応情報を近似することとした。そして、情報処理装置５００は、近似対応情報の各要素の値について、小数点以下を切り捨てる端数処理を行うことで、近似対応情報において値が０となる要素を増やすことができる。これにより、情報処理装置５００は、近似対応情報い示される各ユーザが購買した商品の種類を低減させることができる。また、情報処理装置５００は、近似対応情報の各要素の値について、予め定められた閾値以下の値の要素の値を、０に変更することとしてもよい。
【００４３】
また、本実施形態では、情報処理装置５００は、元データとして、何時、誰が、何を、どれだけ購買したかを示すデータの集合である購買履歴データ１００を元データとして用いることとした。本実施形態での元データは、ユーザに対応する購買した商品に関する情報とみなすことができる。即ち、ユーザと商品との間には、ｈａｓ−ａ関係が存在する。情報処理装置５００は、元データが本実施形態で説明したデータと異なるデータであっても、元データがｈａｓ−ａ関係を有する複数データに関するデータである場合、元データに基づいて、対応情報を生成できる。元データがＡ  ｈａｓ  Ｂの関係を有するＡとＢとのデータを含む場合、情報処理装置５００は、例えば、Ａに含まれるＢの個数、割合、頻度等を集計・解析等して、対応情報を生成できる。
例えば、情報処理装置５００は、タスク管理システムにおけるチケットデータ、テキストのアップロードアプリにアップロードされたテキスト等のテキストデータの集合等の他のデータの集合を元データとして用いることとしてもよい。この場合、元データは、テキストデータに対応する出現する単語の情報とみなすことができ、テキストデータと単語との間には、ｈａｓ−ａ関係が存在する。その場合、情報処理装置５００は、元データに基づいて、各テキストにおける指定された単語の出現頻度を示す対応情報を生成できる。その場合、例えば、対応情報における各列は、各テキストの識別情報を示し、各行は、単語を示す。対応情報の各要素は、その要素に対応するテキストにおけるその要素に対応する単語の出現頻度を示す情報となる。
そして、情報処理装置５００は、本実施形態で説明した処理と同様の処理で、対応情報から、近似対応情報を生成し、生成した近似対応情報から匿名化データを生成することとなる。
【００４４】
本実施形態では、情報処理装置５００は、単体の情報処理装置であるとした。しかし、情報処理装置５００は、ネットワーク（ＬＡＮやインターネット）を介して相互に通信可能に接続された複数の情報処理装置を含むシステムとして構成されることとしてもよい。その場合、情報処理装置５００に含まれる複数の情報処理装置それぞれのＣＰＵが、それぞれの情報処理装置の補助記憶装置に記憶されたプログラムに基づき処理を連携して実行することで、図６の機能及び図７のフローチャートの処理等が実現される。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
例えば、上述した情報処理装置５００の機能構成の一部又は全てをハードウェアとして情報処理装置５００に実装してもよい。
【符号の説明】
【００４５】
５００  情報処理装置
５０１  ＣＰＵ
【図１】
2019200605.tif 000004
【図２】
2019200605.tif 000005
【図３】
2019200605.tif 000006
【図４】
2019200605.tif 000007
【図５】
2019200605.tif 000008
【図６】
2019200605.tif 000009
【図７】
2019200605.tif 000010
【図８】
2019200605.tif 000011
【図９】
2019200605.tif 000012