以下に、本願に係る情報処理装置、情報処理方法、および情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法、および情報処理プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
〔1.情報処理の一例〕
まず、図1を用いて、実施形態に係る情報処理の一例について説明する。図1は、実施形態に係る情報処理の一例を示す図である。
図1に示す情報処理装置1は、複数の組織(例えば、企業や自治体など)の各々から複数のユーザUのデータを収集し、収集した複数のユーザUのデータを個々のユーザUのデータを特定できないように匿名加工する。
そして、情報処理装置1は、匿名加工したデータから利用対象データを生成し、かかる利用対象データを提供する。かかる利用対象データは、データ利用者による利用対象となるデータであり、かかる利用対象データによって、例えば、データ分析などを行うことができる。
図1に示すように、サーバ31~3mの各々は、端末装置2のユーザUに対してオンラインサービスを提供する(ステップS11~S1m)。mは2以上の整数である。サーバ31~3mの各々は、例えば、互いに異なる組織が提供するオンラインサービスを提供するサーバである。
組織が提供するオンラインサービスは、組織が企業であれば、例えば、ショッピングサイト、ニュースサイト、オークションサイト、フリーマケットサイト、天気予報サイト、ファイナンス(株価)サイトなどによるオンラインサービスである。また、企業が提供するオンラインサービスは、例えば、検索サイト、地図提供サイト、旅行サイト、飲食店紹介サイト、ウェブブログサイト、またはSNSサイトなどによるオンラインサービスであってもよい。
組織が提供するオンラインサービスは、組織が自治体であれば、行政サービスであり、例えば、電子申請、電子入札、電子申告、電子納税、公共施設予約、図書貸し出し予約、行政サービスに関する各種の情報提供などのオンラインサービスである。
サーバ31~3mの各々は、ユーザUに対して個人情報の利用可否に関する問い合わせを行い、ユーザUからの個人情報の利用可否に関する応答を受け付ける(ステップS21~S2m)。個人情報は、例えば、サーバ31~3mの各々が提供するオンラインサービスのユーザUによる利用履歴およびユーザUの属性情報などを含むユーザ情報である。
個人情報の利用可否に関する問い合わせは、個人情報の利用を拒否するか、個人情報の利用を条件付きで許諾するかの問い合わせであり、条件付きの許諾は、ユーザU毎の利用条件およびデータ毎の利用条件のうちの少なくとも1つを含む。ユーザU毎の利用条件およびデータ毎の利用条件の各々は、データが利用される際の個人情報の保護レベルで示され、各ユーザUによって決定される。
例えば、各利用条件は、複数の保護レベルAL1,AL2,・・・,ALnの中からユーザUによって選択される。保護レベルAL1,AL2,・・・,ALnのうち、保護レベルAL1は、個人情報の保護の度合いが最も低く、保護レベルAL2は、個人情報の保護の度合いが保護レベルAL1の次に低く、保護レベルALnは、個人情報の保護の度合いが最も高い。以下において、保護レベルAL1,AL2,・・・,ALnのうちユーザUによって選択された保護レベルを選択保護レベルSALと記載する場合がある。また、保護レベルAL1,AL2,・・・,ALnの各々を個別に区別せずに示す場合、保護レベルALと記載する場合がある。
個人情報の利用を条件付きで許諾するユーザUが上述した利用条件を選択しない場合、情報処理装置1は、ユーザUの情報に基づいて、利用条件を決定することもできる。情報処理装置1は、例えば、ユーザUの情報を入力とし、保護レベル毎のスコアを出力する保護レベル決定モデルによって、利用条件を決定することができる。
この場合、情報処理装置1は、利用条件を選択しないユーザUを保護レベル決定モデルに入力し、保護レベル決定モデルから出力される保護レベル毎のスコアのうち最も高いスコアの保護レベルを、利用条件を選択しないユーザUの保護レベルとして決定する。
情報処理装置1は、例えば、ユーザUの情報とユーザUが選択した保護レベルとを含むデータセットを学習用データとして用いて、保護レベル決定モデルを機械学習によって生成することができる。
保護レベル決定モデルは、例えば、GBDT(Gradient Boosting Decision Tree)によって生成される学習モデルまたはディープニューラルネットワーク(DNN:Deep Neural Network)を利用した深層学習(Deep Learning)によって生成される学習モデルなどであるが、かかる例に限定されず、その他の機械学習方法で生成される学習モデルであってもよい。
サーバ31~3mの各々は、情報処理装置1に情報を送信する(ステップS31~S3m)。サーバ31~3mの各々から送信される情報は、オンラインサービスのサービスログのデータと、オンラインサービスのサービスログのデータの利用可否を示す情報とを含む。なお、サーバ31~3mの各々から送信される情報には、オンラインサービスを提供する組織を示す提供組織情報、サービスログのデータの利用を許可する組織を示す許可組織情報などが含まれてもよい。
オンラインサービスのサービスログのデータは、サーバ31~3mの各々が提供するオンラインサービスの利用ログのデータであり、例えば、ユーザUによるオンラインサービスの利用履歴の情報およびユーザUの登録情報などを含む。以下において、オンラインサービスのサービスログのデータをサービスログのデータまたはサービスログと記載する場合がある。サービスログのデータは、提供データの一例である。
ユーザUの登録情報は、例えば、ユーザUの属性情報および保護レベルの情報などを含む。保護レベルの情報には、複数の保護レベルAL1,AL2,・・・,ALnの中からユーザUに選択された保護レベルである選択保護レベルSALを示す情報が含まれる。
サーバ31~3mから情報処理装置1に送信される情報に含まれるサービスログのデータには、ユーザUが個人情報の利用を拒否したデータが含まれない。すなわち、サーバ31~3mの各々は、オンラインサービスを利用する複数のユーザUのデータのうち個人情報の利用を条件付きでユーザUが許諾したデータが含まれ、個人情報の利用をユーザUが拒否したデータは含まれない。個人情報の利用をユーザUが拒否したデータは、ユーザU単位で拒否されたデータまたはデータ単位で拒否されたデータである。
また、サービスログのデータの利用可否を示す情報には、サービスログのデータの利用を拒否する拒否情報およびサービスログのデータの利用を許諾する許諾情報のいずれかが含まれる。サービスログのデータの利用可否を示す情報は、例えば、オンラインサービスを提供する組織によって設定される情報である。
情報処理装置1は、サーバ31~3mの各々から送信される情報を受信し、受信したサーバ31~3mの各々の情報を対応する組織に紐付けて記憶する(ステップS4)。以下において、サーバ31~3mの各々を個別に区別せずに示す場合、サーバ3と記載する場合があり、ステップS31~S3mの各々を個別に区別せずに示す場合、ステップS3と記載する場合がある。
ステップS4の処理において、情報処理装置1は、各サーバ3から送信されるサービスログのデータを複数の組織のうち紐付け条件を満たす組織に紐付けて記憶する。紐付け条件を満たす組織は、例えば、オンラインサービスを提供する組織、またはサービスログのデータを提供した組織である。
例えば、情報処理装置1は、サーバ31がオンラインサービスを提供する組織が管理する組織のサーバである場合、サーバ31から送信されたサービスログのデータを、サーバ31を管理する組織に紐付ける。
また、情報処理装置1は、例えば、サーバ3mがサーバ3mを管理する組織とは異なる組織のオンラインサービスを提供するサーバである場合、サーバ3mから送信されたサービスログのデータを、サーバ3mによってオンラインサービスが提供される組織に紐付ける。
情報処理装置1は、ステップS3においてサーバ3から送信される情報にオンラインサービスを提供する組織を示す提供組織情報が含まれている場合、提供組織情報で示される組織を、紐付け条件を満たす組織として判定することができる。
また、紐付け条件を満たす組織は、関連性推定モデルから出力されるスコアが予め設定された条件を満たす組織であってもよい。関連性推定モデルは、例えば、サービスログのデータを入力とし、サービスログのデータの要求元との組織毎の関連性を示すスコアを出力とする学習モデルである。
関連性推定モデルは、各組織と関連性があると予め判定されたサービスログのデータを各組織の正解データとし、各組織の正解データが有する特徴をモデルに学習させることによって生成される。関連性推定モデルは、複数の組織に共通する学習モデルであるが、組織毎の学習モデルであってもよい。
情報処理装置1は、サービスログのデータを関連性推定モデルに入力し、関連性推定モデルから出力される組織毎のスコアのうち所定条件を満たすスコアの組織を、関連性推定モデルから出力されるスコアが予め設定された条件を満たす組織として特定する。所定条件を満たすスコアは、例えば、最も高いスコアであるが、例えば、閾値以上のスコアであってもよい。閾値以上のスコアの組織が複数ある場合、情報処理装置1は、サービスログのデータを複数の組織に紐付けることができる。
関連性推定モデルは、例えば、GBDTによって生成される学習モデルまたはディープニューラルネットワークを利用した深層学習によって生成される学習モデルなどであるが、かかる例に限定されず、その他の機械学習方法で生成される学習モデルであってもよい。
例えば、関連性推定モデルは、線形回帰、重回帰、またはロジスティック回帰といった回帰手法やサポートベクタマシンなどの学習アルゴリズムなどのように他の学習アルゴリズムによる機械学習を用いて生成されてもよい。
情報処理装置1は、例えば、利用を不可とされたサービスログのデータを、組織に紐付けずに記憶することもできる。情報処理装置1は、サーバ3から送信される情報に含まれるサービスログのデータの利用可否を示す情報に基づいて、利用を不可とされたサービスログのデータであるか否かを判定することができる。
つづいて、情報処理装置1には、要求者装置4からのクエリをデータの提供要求として受け付ける(ステップS5)。要求者装置4からのクエリには、例えば、利用対象データまたは処理対象データなどを特定するためのデータ特定情報、および要求元の組織の組織ID(IDentifier)の組織特定情報などが含まれる。要求元の組織は、例えば、要求者装置4を操作する操作者が所属する組織またはかかる操作者が所属する組織に分析を依頼した組織などである。
データ特定情報には、対象組織情報および処理対象情報などが含まれる。対象組織情報には、利用対象となるデータを有する組織である対象組織の組織IDなどが含まれる。例えば、要求元の組織が分析したいデータが組織Bによって提供されるオンラインサービスのサービスログのデータである場合、対象組織の組織IDは、組織Bの組織IDである。
処理対象情報には、処理対象となるデータである処理対象データの種別を示すデータ種別情報や処理対象データの処理内容を示す処理内容情報などが含まれる。データ種別情報は、例えば、オンラインサービスを利用したユーザUである利用ユーザの位置を示す情報、利用ユーザによるオンラインサービスの利用履歴の種別を示す情報、利用ユーザの属性の種別を示す情報、学習モデルの入力情報および出力情報の種別を示す情報などである。
利用ユーザの位置を示す情報は、例えば、端末装置2に設けられた不図示の位置検出部によって検出された位置を示す情報であり、利用ユーザによるオンラインサービス時に端末装置2からサーバ3に送信される情報である。
オンラインサービスの利用履歴は、オンラインサービスの利用日時およびオンラインサービスの利用内容などを含む。オンラインサービスの利用内容は、例えば、オンラインサービスがショッピングサイトによるサービスであれば、取引対象の利用ユーザによる閲覧の内容、取引対象の利用ユーザによる購入の内容、取引対象に対する利用ユーザによる評価の内容、および取引対象に対する利用ユーザによるお気に入り登録の内容などである。
オンラインサービスの利用内容は、例えば、オンラインサービスが行政サービスであれば、利用ユーザによる電子申請の内容、利用ユーザによる電子入札の内容、利用ユーザによる電子申告の内容、利用ユーザによる電子納税の内容、利用ユーザによる公共施設予約の内容、利用ユーザによる図書貸し出し予約の内容、利用ユーザによる各種の情報の閲覧などである。
ユーザUの属性は、デモグラフィック属性およびサイコグラフィック属性のうちの少なくともいずれか1つである。デモグラフィック属性は、人口統計学的属性であり、例えば、年齢、性別、職業、居住地、年収、家族構成などである。サイコグラフィック属性は、心理学的属性であり、例えば、ライフスタイル、価値観、興味関心などである。
処理内容情報は、例えば、平均、合計、分散といった統計演算種別や学習モデルのパラメータの生成演算種別などを示す情報を含む。処理対象情報によって特定される処理内容は、例えば、京都府の20代の男性の平均年収、バイクが好きな人の平均の分散、電子納税を行ったユーザUの合計数などでの算出や、ユーザUの位置や属性を示す情報を入力とし、ユーザUによるオンラインサービスの利用可能性を示すスコアを出力する学習モデルの生成などである。
つづいて、情報処理装置1は、ステップS5で受け付けたクエリで特定されるデータである提供候補データが、特定関係組織に紐付けられたデータであるか否かを判定する(ステップS6)。特定関係組織は、提供要求の要求元と予め定められた関係性を有する組織である。提供要求の要求元は、クエリに含まれる組織特定情報で示される組織IDの組織である。
情報処理装置1は、例えば、対象組織情報に含まれる組織IDで示される対象組織が提供要求の要求元と予め定められた競合関係にある組織である場合に、提供候補データが、特定関係組織のデータであると判定する。情報処理装置1は、例えば、予め定められた競合関係にある組織を示す情報を組織毎に含む関係性テーブルを有し、かかる関係性テーブルを用いて、提供候補データが特定関係組織のデータであるか否かを判定する。
情報処理装置1は、ステップS3においてサーバ3から送信される情報にサービスログのデータの利用を許可する組織を示す許可組織情報が含まれている場合、許可組織情報で示される組織を予め定められた競合関係にある組織として判定することもできる。
また、情報処理装置1は、競合関係にある組織の情報を正解データとし、競合関係にある組織の正解データが有する特徴を学習した関係組織推定モデルを用いて、競合関係にある組織であるかを推定することもできる。関係組織推定モデルは、提供要求の要求元の組織毎の学習モデルである。この場合、情報処理装置1は、例えば、提供要求の要求元の組織の関係組織推定モデルに各組織の情報を入力し、関係組織推定モデルから出力されるスコアが閾値以上である組織を競合関係の組織であると判定する。
なお、上述した例では、特定関係組織として、提供要求の要求元と予め定められた競合関係にある組織を例に挙げて説明したが、かかる例に限定されない。例えば、情報処理装置1は、提供要求の要求元と予め定められた競合関係にない組織を、特定関係組織として判定することもできる。
例えば、情報処理装置1は、予め定められた競合関係にない組織を示す情報を組織毎に含む関係性テーブルを有し、かかる関係性テーブルを用いて、特定関係組織を判定する。
また、情報処理装置1は、例えば、競合関係にない組織の情報を正解データとし、競合関係にない組織の正解データが有する特徴を学習した関係組織推定モデルを用いて、特定関係組織を判定することもできる。
つづいて、情報処理装置1は、提供候補データが特定関係組織に紐付けられたデータがあると判定した場合、特定関係組織に紐付けられたデータであってステップS5で受け付けたクエリに応じたデータの種別を特定する(ステップS7)。
ステップS5で受け付けたクエリには上述したように処理対象情報が含まれており、情報処理装置1は、処理対象情報に含まれるデータ種別情報に基づいて、クエリに応じたデータである対象データの種別を特定する。情報処理装置1は、例えば、データ種別情報が京都府の20代の男性の年収を示す情報である場合、京都府の20代の男性の年収を対象データの種別として特定する。
また、情報処理装置1は、データ種別情報が、学習モデルの入力情報および出力情報の各々の種別を示す情報を含む場合、学習モデルの入力情報および出力情報の各々の種別を対象データの種別として特定する。入力情報は、例えば、ユーザUの位置や属性を示す情報であり、出力情報は、例えば、ユーザUによるオンラインサービスの利用内容を示す情報であるが、かかる例に限定されない。
なお、情報処理装置1は、ステップS7の処理において、対象データの数や対象データの元となるユーザUの数が閾値以上になるようにデータの指定を受け付けることもできる。例えば、情報処理装置1は、対象データの数や対象データの元となるユーザUの数が閾値以上である属性のリストを要求者装置4に送信することで、操作者に属性のリストの中から属性を選択させることができる。
つづいて、情報処理装置1は、特定関係組織に紐付けられたデータであってステップS7で特定した種別のデータに匿名加工を行う(ステップS8)。
例えば、特定関係組織が組織Bであり、ステップS7で特定した種別がユーザUの特定の属性であるとする。この場合、情報処理装置1は、組織Bのサービスログのデータのうち特定の属性のデータに対して匿名加工を行う。例えば、ステップS7で特定した種別が京都府の20代の男性の年収である場合、京都府の20代の男性である複数のユーザUの年収を特定の属性のデータとして、匿名加工を行う。以下において、特定関係組織に紐付けられたデータであってステップS7で特定した種別のデータを匿名加工対象データと記載する。匿名加工対象データには、ステップS7で特定した種別のデータが複数含まれており、匿名加工対象データ群とも言える。
ステップS8において、情報処理装置1は、まず、匿名加工対象データに含まれる各データをユーザUが設定した利用条件に応じたグループに分類する。匿名加工対象データに含まれるデータは、ユーザUによって利用が許諾されたデータである。
例えば、ユーザUによって設定された利用条件が、複数の保護レベルAL1,AL2,・・・,ALnの中からユーザUによって選択された保護レベルで示されるとする。この場合、情報処理装置1は、複数の保護レベルAL1,AL2,・・・,ALnに対応する複数のグループG1,G2,・・・,Gnに匿名加工対象データに含まれるデータを分類する。
例えば、保護レベルAL1で示される利用条件が設定されたデータは、グループG1に分類され、保護レベルAL2で示される利用条件が設定されたデータは、グループG2に分類され、保護レベルALnで示される利用条件が設定されたデータは、グループGnに分類される。以下において、複数のグループG1,G2,・・・,Gnの各々を個別に区別せずに示す場合、グループGと記載する場合がある。
情報処理装置1は、匿名加工対象データに含まれる各データをユーザUが設定した利用条件に応じたグループGに分類した後、同一のグループGに分類された複数のデータを含むユーザデータ群に基づく演算結果(例えば、平均、合計、分散などの統計量)のデータをグループGに応じたノイズを付加したノイズ付加データまたはユーザデータ群にグループGに応じたノイズを付加したノイズ付加データ群をグループG毎に生成する。
情報処理装置1は、差分プライバシーによる匿名加工またはk-匿名化による匿名加工によって、ノイズ付加データまたはノイズ付加データ群を生成する。まず、差分プライバシーによる匿名加工について説明した後、k-匿名化による匿名加工について説明する。
情報処理装置1は、クエリに含まれる処理内容情報で示される処理内容に基づいて、グループG毎のユーザデータ群からグループG毎の演算結果のデータを算出する。処理内容情報で示される処理内容は、例えば、特定のデータに対する平均、合計、分散といった統計演算や学習モデルのパラメータの生成などである。
例えば、処理内容情報で示される処理内容がユーザUの平均年収であるとする。この場合、情報処理装置1は、グループG毎の演算結果のデータとして、グループG毎のユーザUの平均年収を示すデータを算出する。
また、処理内容情報で示される処理内容がユーザUの年齢の分布であるとする。この場合、情報処理装置1は、グループG毎の演算結果のデータとして、グループG毎のユーザUの年齢の分布または分散を示すデータを算出する。
また、処理内容情報で示される処理内容が学習モデルのパラメータの生成であるとする。この場合、情報処理装置1は、確率的勾配降下法を使って学習モデルを最適化する際の、トレーニングデータのサンプルに起因する複数の勾配の平均値を示すデータをグループG毎に算出する。
また、情報処理装置1は、処理内容情報で示される処理内容に加えて、グループG毎のユーザUの数(合計)を示すデータおよび統計処理対象のグループG毎の分散を示すデータの各々を演算結果のデータとして算出する。以下において、ユーザUの数をユーザ数と記載する場合がある。
そして、情報処理装置1は、グループG毎の演算結果のデータにグループGに応じたノイズを付加したグループG毎のノイズ付加データを生成する。例えば、複数の保護レベルAL1,AL2,・・・,ALnに対応する複数のグループG1,G2,・・・,Gnに匿名加工対象データに含まれるデータが分類されたとする。
この場合、情報処理装置1は、グループG1,G2,・・・,Gnの順に演算結果のデータにノイズレベルが高くなるノイズを付加する。このように、データの保護レベルALが高い利用条件に応じたグループGほどノイズレベルが高いノイズを付加したグループG毎のノイズ付加データを生成する。
ノイズは、例えば、固定ノイズ、ガウシアンノイズ、またはラプラスノイズなどである。情報処理装置1は、演算結果のデータに付加されるノイズが固定ノイズである場合、ノイズレベルが高い固定ノイズほど値を大きくする。
また、情報処理装置1は、演算結果のデータに付加されるノイズがガウシアンノイズである場合、ノイズの平均値の絶対値を大きくしたり、ノイズの標準偏差を大きくしたりすることで、ノイズレベルを高くすることができる。また、情報処理装置1は、演算結果のデータに付加されるノイズがラプラスノイズである場合、ノイズの平均値の絶対値を大きくしたり、ノイズの標準偏差を大きくしたりすることで、ノイズレベルを高くすることができる。
このように、情報処理装置1は、差分プライバシーによる匿名加工の処理において、グループG毎の演算結果のデータにグループGに応じたノイズを付加したグループG毎のノイズ付加データを生成する。
次に、情報処理装置1におけるk-匿名化による匿名加工について説明する。k-匿名化は、個人が特定される確率をk分の1以下に変換して個人の特定を困難にする技術であり、例えば、ユーザUのデータに含まれる準識別子の組み合わせが同じであるユーザUをk人以上にするように、匿名加工対象データにノイズを付加する。
準識別子の組み合わせは、例えば、年齢、性別、生年月日、および居住地(または位置)などといった属性項目の組み合わせである。情報処理装置1は、例えば、ある属性項目をアスタリスク「*」などに変換することによってノイズを付加する抑制処理を行ったり、属性項目の階層を上げることによってノイズを付加する一般化処理を行ったりすることで、匿名加工を行う。一般化処理は、例えば、属性項目が居住地(または位置)である場合、「東京都千代田区」を「東京都」にするなどの処理である。
また、情報処理装置1は、ある閾値以上の値を1つのカテゴリにまとめるトップコーディング、またはある閾値以下の値を1つのカテゴリにまとめるボトムコーティングによってノイズを付加することもできる。トップコーディングは、例えば、属性項目が年齢である場合、「80才」、「81才」、および「92才」などを「80才以上」などとする処理である。また、ボトムコーティングは、例えば、属性項目が年齢である場合、「0才」、「1才」、および「3才」などを「3才以下」などとする処理である。
情報処理装置1は、データの保護レベルALが高い利用条件に応じたグループGのユーザデータ群ほどノイズレベルが高いノイズを付加したグループG毎のノイズ付加データ群を生成する。例えば、情報処理装置1は、データの保護レベルALが高いグループGほどノイズとして追加するデータの量である追加量を増やしたり、ノイズとして変更するデータの量である変更量を増やしたりする。
情報処理装置1は、一般化処理において、例えば、一般化のレベルを高くすることによってノイズレベルを高くすることができる。一般化のレベルは、1つ上の階層よりも2つ上の階層が高く、2つ上の階層よりも3つ上の階層が高い。
また、情報処理装置1は、例えば、抑制処理において、アスタリスク「*」に変換する属性項目を増やすことによってノイズレベルを高くすることができる。また、情報処理装置1は、ある閾値以上の値を1つのカテゴリにまとめる際に閾値を小さくすることによってノイズレベルを高くすることができる。また、情報処理装置1は、ある閾値以下の値を1つのカテゴリにまとめる際に閾値を大きくすることによってノイズレベルを高くすることができる。
例えば、保護レベルAL1~ALnのうちユーザUによって選択された保護レベルである選択保護レベルSALに応じたグループGに各ユーザUが分類されたとする。この場合、情報処理装置1は、データの保護レベルALが高いグループGほどノイズレベルが高いノイズを付加する。
情報処理装置1は、グループG毎のユーザデータ群に対して、データの保護レベルALが高い利用条件に応じた数または内容のダミーデータを追加するダミー追加処理を行うこともできる。ダミーデータは、例えば、グループG毎のユーザデータ群に含まれるデータと同じであってもよく、ユーザデータ群に含まれるデータを加工したデータであってもよい。また、ダミーデータは、ランダムまたは所定の規則に従って生成したデータであってもよい。
情報処理装置1は、例えば、データの保護レベルALが高いほど、追加するダミーデータの数を多くしたり、ユーザデータ群に含まれるデータに対する加工度合いを高めたデータをダミーデータとしたりすることができる。
情報処理装置1は、各グループGの全体的な傾向が変化しないようにダミーデータをユーザデータ群に付加することもできる。例えば、情報処理装置1は、各グループGの全体的な傾向が変化しないように、ダミーデータを付加する前と後とでユーザデータ群に基づく演算結果(例えば、平均、合計、分散などの統計量)が閾値範囲内になるように、ダミーデータをユーザデータ群に付加する。
情報処理装置1は、保護レベルAL毎に異なるノイズ付加方法でユーザデータ群にノイズを付加することもできる。ノイズ付加方法は、例えば、抑制処理、一般化処理、およびダミー追加処理などであり、抑制処理にも、アスタリスク「*」への変換、トップコーティング、およびボトムコーティングなどのノイズ付加方法がある。なお、ノイズ付加方法は上述した例に限定されない。
このように、情報処理装置1は、k-匿名化による匿名加工の処理において、グループG毎のユーザデータ群にグループGに応じたノイズを付加したグループG毎のノイズ付加データ群を生成する。
次に、情報処理装置1は、ステップS8において匿名加工によって生成したグループG毎のノイズ付加データまたはグループG毎のノイズ付加データ群に基づいて、利用対象データを生成する(ステップS9)。
まず、ステップS8においてグループG毎のノイズ付加データが匿名加工によって生成された場合について説明する。この場合、情報処理装置1は、グループG毎のノイズ付加データを重み付け加算することによって、利用対象データを生成する。重み付けは、グループG毎のユーザデータ群に含まれるユーザ数にノイズを付加した値に応じた重み、またはグループG毎のユーザデータ群に含まれるユーザ数にノイズを付加した値をグループG毎の分散にノイズを付加した値で除算した値に応じた重みなどが用いられる。
例えば、グループG1,G2,・・・,Gnの演算結果をMs1,Ms2,・・・,Msnとし、グループG1,G2,・・・,GnのノイズをMn1,Mn2,・・・,Mnnとする。また、グループG1,G2,・・・,Gnの重みをk1,k2,・・・,knとする。
この場合、情報処理装置1は、下記式(1)で表される値Daを利用対象データの値として算出することができる。
Da=k1(Ms1+Mn1)+k2(Ms2+Mn2)+・・・
+kn・(Msn+Mnn) ・・・(1)
ここで、グループG1,G2,・・・,Gnのノイズ付きユーザ数をNg1,Ng2,・・・,Ngnとし、ノイズ付きユーザ数Ng1,Ng2,・・・,Ngnの総数をNtとする。ノイズ付きユーザ数Ng1,Ng2,・・・,Ngnは、グループG1,G2,・・・,Gnのユーザデータ群に含まれるユーザ数にグループGに応じたノイズが付加されたユーザ数であり、上述したノイズ付加データと同様のノイズ付加処理によって生成される。
この場合、重みk1,k2,・・・,knは、ユーザ数Ng1/Nt,Ng2/Nt,・・・,Ngn/Ntで表される。すなわち、k1=Ng1/Ntであり、k2=Ng2/Ntであり、・・・、kn=Ngn/Ntである。
このように、情報処理装置1は、グループG毎のユーザデータ群に含まれるユーザ数に基づく重みを用いてグループG毎のノイズ付加データを重み付け加算することによって、利用対象データを生成することができる。
また、グループG1,G2,・・・,Gnのノイズ付き分散がσ1
2、σ2
2、・・・、σn
2であるとする。ノイズ付き分散σ1
2、σ2
2、・・・、σn
2は、グループG毎のユーザデータ群に含まれるデータで示される値の分散にグループGに応じたノイズが付加されたノイズ付き演算結果のデータである。例えば、ノイズ付き分散σ1
2、σ2
2、・・・、σn
2は、統計処理対象がユーザUの年収である場合、グループG毎のユーザUの年収の分散にグループGに応じたノイズが付加された分散である。
重みk1,k2,・・・,knは、ノイズ付きユーザ数Ng1,Ng2,・・・,Ngnの各々をグループG毎のノイズ付き分散σ1
2、σ2
2、・・・、σn
2のうち対応する分散で除算した値に応じた値で表されてもよい。この場合、重みk1,k2,・・・,knは、例えば、k1=Ng1/Nt・σ1
2、k2=Ng2/Nt・σ2
2、・・・、kn=Ngn/Nt・σn
2などで表される。
このように、情報処理装置1は、グループG毎のノイズ付きユーザ数をグループG毎のノイズ付き分散で除算した値に応じた重みを用いてグループG毎のノイズ付加データを重み付け加算することによって、利用対象データを生成することができる。
なお、情報処理装置1は、上述した複数の勾配の平均値をグループG毎の演算結果とした場合、ノイズ付き演算結果のデータを用いた機械学習によって決定された学習モデルのパラメータを利用対象データとして算出する。
また、情報処理装置1は、ノイズ付きユーザ数Ng1,Ng2,・・・,Ngnに代えて、ノイズが付加されないグループG毎のユーザ数を用いてグループG毎のノイズ付加データを重み付け加算することもできる。また、情報処理装置1は、ノイズが付加されないグループG毎のユーザ数と分散とを用いて、グループG毎のノイズ付加データを重み付け加算することもできる。なお、分散は、σ1
2、σ2
2、・・・、σn
2の平方根であってもよい。
情報処理装置1は、ノイズ付きユーザ数に応じた重みを用いた第1の加重平均方法と、ノイズ付きユーザ数をノイズ付き分散で除算した値に応じた重みを用いた第2の加重平均方法とを選択的に用いることができる。
情報処理装置1は、ユーザデータ群に含まれるデータのばらつきをグループG間で比較し、比較した結果に基づいて、第1の加重平均方法および第2の加重平均方法の一方の加重平均方法を選択する。そして、情報処理装置1は、選択した加重平均方法を用いて、グループG毎のノイズ付加データを重み付け加算する。
例えば、情報処理装置1は、ユーザデータ群に含まれるデータのばらつきをグループG毎に算出し、グループG間でのデータのばらつきの傾向の類似度である傾向類似度が高い場合に、第1の加重平均方法を選択し、傾向類似度が低い場合に第2の加重平均方法を選択する。
例えば、情報処理装置1は、グループG毎の分散の分散またはグループG毎の分散の標準偏差が閾値未満である場合に、傾向類似度が高いと判定し、グループG毎の分散の分散またはグループG毎の分散の標準偏差が閾値以上である場合に、傾向類似度が低いと判定する。
また、情報処理装置1は、グループG毎の標準偏差の分散またはグループG毎の標準偏差の標準偏差が閾値未満である場合に、傾向類似度が高いと判定し、グループG毎の標準偏差の分散またはグループG毎の標準偏差の標準偏差が閾値以上である場合に、傾向類似度が低いと判定することもできる。なお、情報処理装置1は、グループG毎のばらつきの比較結果に基づいて、加重平均方法を選択すればよく、上述した例に限定されない。
次に、ステップS8においてグループG毎のノイズ付加データ群が匿名加工データ群として生成された場合の利用対象データの生成方法について説明する。
情報処理装置1は、処理内容情報で示される処理内容に基づいて、匿名加工データ群に基づく演算結果(例えば、平均、合計、分散などの統計量)のデータを算出する。処理内容情報で示される処理内容は、平均、合計、分散といった統計演算種別や学習モデルのパラメータの生成演算種別などを示す情報を含む。
例えば、処理対象情報によって特定される処理内容がユーザUの年収の平均であるとする。この場合、情報処理装置1は、匿名加工データ群に基づく演算結果のデータとして、匿名加工データ群に含まれるユーザUの平均年収を示すデータを利用対象データとして算出する。
また、処理対象情報によって特定される処理内容がユーザUの年齢の分散であるとする。この場合、情報処理装置1は、匿名加工データ群に基づく演算結果のデータとして、匿名加工データ群に含まれるユーザUの年齢の分散を示すデータを利用対象データとして、算出する。
また、処理対象情報によって特定される処理内容が匿名加工対象データを学習用データとして用いて生成される学習モデルのパラメータであるとする。この場合、情報処理装置1は、例えば、確率的勾配降下法を使ってモデルを最適化する際の、匿名加工データ群から得られるトレーニングデータのサンプルに起因する複数の勾配の平均値を用いた機械学習によって決定された学習モデルのパラメータを利用対象データとして算出する。
次に、情報処理装置1は、ステップS9で生成した利用対象データを提供情報として要求者装置4に送信することで、操作者に対して提供情報を提供する(ステップS10)。
このように、情報処理装置1は、ユーザUによって利用が許諾されたデータをユーザUが設定した利用条件に応じたグループGに分類し、同一のグループGに分類した複数のデータを含むユーザデータ群に基づく演算結果のデータにグループGに応じたノイズを付加したノイズ付加データまたはユーザデータ群にグループGに応じたノイズを付加したノイズ付加データ群をグループG毎に生成する。そして、情報処理装置1は、グループG毎のノイズ付加データまたはノイズ付加データ群を用いて利用対象データを生成する。これにより、情報処理装置1は、ユーザUが設定した利用条件に応じたノイズを付加することで、保護レベルによっては個人情報の利用の許諾をするユーザUのデータを用いることができ、より多くの個人情報を活用可能にすることができる。
また、情報処理装置1は、データの提供要求を受け付け、提供要求で特定されるデータである提供候補データが、提供要求の要求元と予め定められた関係性を有する組織である特定関係組織に紐付けられたデータであるか否かを判定する。そして、情報処理装置1は、提供候補データが要求元と予め定められた関係性を有する組織に紐付けられたデータであると判定した場合に、提供候補データに匿名加工を行って匿名加工データを生成し、生成した匿名加工データに基づいて、提供要求に応じたデータを提供する。これにより、情報処理装置1は、個人情報の提供をより適切に行うことができる。
以下、このような処理を行う情報処理装置1、端末装置2、サーバ3、および要求者装置4を含む情報提供システムの構成などについて、詳細に説明する。
〔2.情報提供システムの構成〕
図2は、実施形態に係る情報提供システムの構成の一例を示す図である。図2に示すように、実施形態に係る情報提供システム100は、情報処理装置1と、複数の端末装置2と、複数のサーバ31~3mと、要求者装置4とを含む。nは、例えば、3以上の整数である。
情報処理装置1、複数の端末装置2、複数のサーバ31~3m、および要求者装置4は、ネットワークNを介して、有線または無線により互いに通信可能に接続される。なお、図2に示す情報提供システム100には、情報処理装置1および要求者装置4の各々が複数含まれてもよい。
端末装置2は、例えば、デスクトップ型PC(Personal Computer)、ノート型PC、タブレット端末、スマートフォン、携帯電話機、またはPDA(Personal Digital Assistant)などである。なお、端末装置2は、上述した例に限定されず、例えば、スマートウォッチまたはウェアラブルデバイス(Wearable Device)などであってもよい。
サーバ31~3mの各々は、端末装置2のユーザUに対してオンラインサービスを提供する。サーバ31~3mは、例えば、互いに異なる組織が提供するオンラインサービスを提供するサーバであるが、一部において同じ組織が提供するオンラインサービスを提供するサーバであってもよい。
組織が提供するオンラインサービスは、組織が企業であれば、例えば、ショッピングサイト、ニュースサイト、オークションサイト、フリーマケットサイト、天気予報サイト、ファイナンス(株価)サイトなどによるオンラインサービスである。また、企業が提供するオンラインサービスは、例えば、検索サイト、地図提供サイト、旅行サイト、飲食店紹介サイト、ウェブブログサイト、またはSNSサイトなどによるオンラインサービスであってもよい。
組織が提供するオンラインサービスは、組織が自治体であれば、行政サービスであり、例えば、電子申請、電子入札、電子申告、電子納税、公共施設予約、図書貸し出し予約、行政サービスに関する各種の情報提供などのオンラインサービスである。
要求者装置4は、例えば、デスクトップ型PCまたはノート型PCであるが、タブレット端末、スマートフォン、携帯電話機、またはPDAであってもよい。要求者装置4を操作する操作者は、自己が所属する組織または自己が所属する組織に分析を依頼した組織のサービスログのデータから演算によって得られる利用対象データなどを得るために、要求者装置4を操作する。
〔3.情報処理装置1の構成〕
図3は、実施形態に係る情報処理装置1の構成の一例を示す図である。図3に示すように、情報処理装置1は、通信部10と、記憶部11と、処理部12とを有する。
〔3.1.通信部10〕
通信部10は、例えば、NICなどによって実現される。そして、通信部10は、ネットワークNと有線または無線で接続され、他の各種装置との間で情報の送受信を行う。例えば、通信部10は、端末装置2との間でネットワークNを介して情報の送受信を行う。
〔3.2.記憶部11〕
記憶部11は、例えば、RAM、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置によって実現される。記憶部11は、組織情報記憶部20と、サービスログ記憶部21とを有する。
〔3.2.1.組織情報記憶部20〕
組織情報記憶部20は、企業や自治体などの組織毎の情報を含む組織情報テーブルを記憶する。図4は、実施形態に係る情報処理装置1の組織情報記憶部20に記憶される組織情報テーブルの一例を示す図である。
図4に示す例では、組織情報記憶部20に記憶される組織情報テーブルは、「組織ID」、「組織名」、および「関係組織ID」といった項目の情報を含む。「組織ID」は、組織を識別する識別子である。「組織名」は、組織の名称を示す情報でわる。「関係組織ID」は、「組織ID」で示される組織と予め定められた関係性を有する組織の組織IDである。
図4に示す例では、組織ID「O1」の組織は、組織名が「組織A」であり、予め定められた関係性を有する組織が組織ID「O1」の組織Bであり、組織ID「O2」の組織は、組織名が「組織B」であり、予め定められた関係性を有する組織が組織ID「O3」の組織Cである。また、織ID「O1」の組織は、組織名が「組織C」であり、予め定められた関係性を有する組織が組織ID「O1,O2」の組織A,Bである。
なお、組織情報記憶部20に記憶される組織情報テーブルは、「組織ID」に代えて、「関係組織推定モデル」を有していてもよい。「関係組織推定モデル」は、関係組織推定モデルの情報であり、例えば、関係組織推定モデルのパラメータの情報である。
〔3.2.2.サービスログ記憶部21〕
サービスログ記憶部21は、組織が提供するオンラインサービスのサービスログのデータなどの情報を含むサービスログ情報テーブルを記憶する。図5は、実施形態に係る情報処理装置1のサービスログ記憶部21に記憶されるサービスログテーブルの一例を示す図である。
図5に示す例では、サービスログ記憶部21に記憶されるサービスログテーブルは、「組織ID」、「サービスログ」、および「利用条件情報」といった項目の情報を含む。「組織ID」は、組織を識別する識別子である。「サービスログ」は、組織が提供するオンラインサービスのサービスログのデータを示す情報でわる。
「利用条件情報」は、サービスログのデータに含まれる複数のデータのうち自己に対応するデータの利用を条件付きで許諾する各ユーザUが選択した利用条件を示す情報である。利用条件を示す情報は、例えば、保護レベルAL1,AL2,・・・,ALnの中からユーザUによって選択された保護レベルで示され、例えば、サービスログのデータに含まれるユーザIDなどに関連付けられる。
図5に示す例では、組織ID「O1」の組織は、サービスログのデータが「DA1」であり、利用条件情報が「RA1」であり、組織ID「O2」の組織は、サービスログのデータが「DA2」であり、利用条件情報が「RA2」である。また、組織ID「O3」の組織は、サービスログのデータが「DA3」であり、利用条件情報が「RA3」である。
なお、図5に示した例では、サービスログのデータを「DA1」~「DA3」などの抽象的な符号で表現したが、サービスログのデータは、例えば、各ユーザUのデータを含むファイル形式のデータである。
また、図5に示した例では、利用条件情報を「RA1」~「RA3」などの抽象的な符号で表現したが、利用条件情報は、例えば、各ユーザUのユーザIDと選択保護レベルSALとを含む情報をユーザU毎に含むデータを含むファイル形式のデータである。なお、利用条件情報は、「サービスログ」に含まれていてもよい。例えば、サービスログのデータに含まれるユーザUのデータの一部として保護レベルALの情報が含まれていてもよい。
〔3.3.処理部12〕
処理部12は、コントローラであり、例えば、CPUまたはMPUなどのプロセッサによって、情報処理装置1内部の記憶装置(例えば、記憶部11)に記憶されている各種プログラム(情報提供プログラムの一例)がRAMを作業領域として実行されることにより実現される。また、処理部12は、例えば、ASICやFPGAなどの集積回路により一部または全部が実現されてもよい。
図3に示すように、処理部12は、受付部30と、紐付部31と、判定部32と、匿名加工部33と、提供部34とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、処理部12の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
〔3.3.1.受付部30〕
受付部30は、各種のデータやクエリを受け付ける。受付部30は、データ受付部40と、提供要求受付部41とを備える。
〔3.3.1.1.データ受付部40〕
データ受付部40は、各種の装置から送信されるデータを受け付け、受け付けたデータを記憶部11に記憶させる。
例えば、データ受付部40は、各サーバ3から情報処理装置1にアップロードされるサービスログのデータを受け付け、受け付けたデータを記憶部11に記憶させる。また、データ受付部40は、不図示の情報提供装置からアップロードされるデータを受け付け、受け付けたデータを記憶部11に記憶させる。
〔3.3.1.2.提供要求受付部41〕
提供要求受付部41は、データの提供要求を受け付ける。例えば、提供要求受付部41は、要求者装置4から送信されるクエリをデータの提供要求として受け付ける。
要求者装置4からのクエリには、例えば、利用対象データまたは処理対象データなどを特定するためのデータ特定情報、および要求元の組織の組織IDの組織特定情報などが含まれる。要求元の組織は、例えば、要求者装置4を操作する操作者が所属する組織またはかかる操作者が所属する組織に分析を依頼した組織などである。
データ特定情報には、対象組織情報および処理対象情報などが含まれる。対象組織情報には、利用対象となるデータを有する組織である対象組織の組織IDなどが含まれる。例えば、要求元の組織が分析したいデータが組織Bによって提供されるオンラインサービスのサービスログのデータである場合、対象組織の組織IDは、組織Bの組織IDである。
処理対象情報には、処理対象となるデータである処理対象データの種別を示すデータ種別情報や処理対象データの処理内容を示す処理内容情報などが含まれる。データ種別情報は、例えば、オンラインサービスを利用したユーザUである利用ユーザの位置を示す情報、利用ユーザによるオンラインサービスの利用履歴の種別を示す情報、利用ユーザの属性の種別を示す情報、学習モデルの入力情報および出力情報の種別を示す情報などである。
利用ユーザの位置を示す情報は、例えば、端末装置2に設けられた不図示の位置検出部によって検出された位置を示す情報であり、利用ユーザによるオンラインサービス時に端末装置2からサーバ3に送信される情報である。
オンラインサービスの利用履歴は、オンラインサービスの利用日時およびオンラインサービスの利用内容などを含む。オンラインサービスの利用内容は、例えば、オンラインサービスがショッピングサイトによるサービスであれば、取引対象の利用ユーザによる閲覧の内容、取引対象の利用ユーザによる購入の内容、取引対象に対する利用ユーザによる評価の内容、および取引対象に対する利用ユーザによるお気に入り登録の内容などである。
オンラインサービスの利用内容は、例えば、オンラインサービスが行政サービスであれば、利用ユーザによる電子申請の内容、利用ユーザによる電子入札の内容、利用ユーザによる電子申告の内容、利用ユーザによる電子納税の内容、利用ユーザによる公共施設予約の内容、利用ユーザによる図書貸し出し予約の内容、利用ユーザによる各種の情報の閲覧などである。
ユーザUの属性は、デモグラフィック属性およびサイコグラフィック属性のうちの少なくともいずれか1つである。デモグラフィック属性は、人口統計学的属性であり、例えば、年齢、性別、職業、居住地、年収、家族構成などである。サイコグラフィック属性は、心理学的属性であり、例えば、ライフスタイル、価値観、興味関心などである。
処理内容情報は、例えば、平均、合計、分散といった統計演算種別や学習モデルのパラメータの生成演算種別などを示す情報を含む。処理対象情報によって特定される処理内容は、例えば、京都府の20代の男性の平均年収、バイクが好きな人の平均の分散、電子納税を行ったユーザUの合計数などでの算出や、ユーザUの位置や属性を示す情報を入力とし、ユーザUによるオンラインサービスの利用可能性を示すスコアを出力する学習モデルの生成などである。
〔3.3.2.紐付部31〕
紐付部31は、データ受付部40によって受け付けられた提供データを複数の組織のうちの紐付け条件を満たす組織に紐付ける。提供データは、例えば、サービスログのデータ、すなわち、オンラインサービスの利用ログのデータを含む。
紐付け条件を満たす組織は、例えば、オンラインサービスを提供する組織、またはサービスログのデータを提供した組織である。例えば、紐付部31は、サーバ31がオンラインサービスを提供する組織が管理する組織のサーバである場合、サーバ31から送信されたサービスログのデータを、サーバ31を管理する組織に紐付ける。
また、紐付部31は、例えば、サーバ3mがサーバ3mを管理する組織とは異なる組織のオンラインサービスを提供するサーバである場合、サーバ3mから送信されたサービスログのデータを、サーバ3mによってオンラインサービスが提供される組織に紐付ける。
紐付部31は、サーバ3から送信される情報にオンラインサービスを提供する組織を示す提供組織情報が含まれている場合、提供組織情報で示される組織を、紐付け条件を満たす組織として判定することができる。
また、紐付け条件を満たす組織は、関連性推定モデルから出力されるスコアが予め設定された条件を満たす組織であってもよい。関連性推定モデルは、例えば、サービスログのデータを入力とし、サービスログのデータの要求元との組織毎の関連性を示すスコアを出力とする学習モデルである。
関連性推定モデルは、各組織と関連性があると予め判定されたサービスログのデータを各組織の正解データとし、各組織の正解データが有する特徴をモデルに学習させることによって生成される。関連性推定モデルは、複数の組織に共通する学習モデルであるが、組織毎の学習モデルであってもよい。
紐付部31は、サービスログのデータを関連性推定モデルに入力し、関連性推定モデルから出力される組織毎のスコアのうち所定条件を満たすスコアの組織を、関連性推定モデルから出力されるスコアが予め設定された条件を満たす組織として特定する。所定条件を満たすスコアは、例えば、最も高いスコアであるが、例えば、閾値以上のスコアであってもよい。閾値以上のスコアの組織が複数ある場合、紐付部31は、サービスログのデータを複数の組織に紐付けることができる。
関連性推定モデルは、例えば、GBDTによって生成される学習モデルまたはディープニューラルネットワークを利用した深層学習によって生成される学習モデルなどであるが、かかる例に限定されず、その他の機械学習方法で生成される学習モデルであってもよい。
例えば、関連性推定モデルは、線形回帰、重回帰、またはロジスティック回帰といった回帰手法やサポートベクタマシンなどの学習アルゴリズムなどのように他の学習アルゴリズムによる機械学習を用いて生成されてもよい。
紐付部31は、例えば、利用を不可とされたサービスログのデータを、組織に紐付けずに記憶することもできる。紐付部31は、サーバ3から送信される情報に含まれるサービスログのデータの利用可否を示す情報に基づいて、利用を不可とされたサービスログのデータであるか否かを判定することができる。
〔3.3.3.判定部32〕
判定部32は、提供要求受付部41によって受け付けられた提供要求であるクエリで特定されるデータである提供候補データが、特定関係組織に紐付けられたデータであるか否かを判定する。特定関係組織は、提供要求の要求元と予め定められた関係性を有する組織である。提供要求の要求元は、クエリに含まれる組織特定情報で示される組織IDで示される組織である。
判定部32は、例えば、対象組織情報に含まれる組織IDで示される対象組織が提供要求の要求元と予め定められた競合関係にある組織である場合に、提供候補データが、特定関係組織のデータであると判定する。判定部32は、例えば、予め定められた競合関係にある組織を示す情報を組織毎に含む関係性テーブルを有し、かかる関係性テーブルを用いて、提供候補データが特定関係組織のデータであるか否かを判定する。
判定部32は、サーバ3から送信される情報にサービスログのデータの利用を許可する組織を示す許可組織情報が含まれている場合、許可組織情報で示される組織を予め定められた競合関係にある組織として判定することもできる。
また、判定部32は、競合関係にある組織の情報を正解データとし、競合関係にある組織の正解データが有する特徴を学習した関係組織推定モデルを用いて、競合関係にある組織であるかを推定することもできる。関係組織推定モデルは、提供要求の要求元の組織毎の学習モデルである。この場合、判定部32は、例えば、提供要求の要求元の組織の関係組織推定モデルに各組織の情報を入力し、関係組織推定モデルから出力されるスコアが閾値以上である組織を競合関係の組織であると判定する。
なお、上述した例では、特定関係組織として、提供要求の要求元と予め定められた競合関係にある組織を例に挙げて説明したが、かかる例に限定されない。例えば、判定部32は、提供要求の要求元と予め定められた競合関係にない組織を、特定関係組織として判定することもできる。
例えば、判定部32は、予め定められた競合関係にない組織を示す情報を組織毎に含む関係性テーブルを有し、かかる関係性テーブルを用いて、特定関係組織を判定する。
また、判定部32は、例えば、競合関係にない組織の情報を正解データとし、競合関係にない組織の正解データが有する特徴を学習した関係組織推定モデルを用いて、特定関係組織を判定することもできる。
判定部32は、提供候補データが特定関係組織に紐付けられたデータがあると判定した場合、特定関係組織に紐付けられたデータであって提供要求受付部41によって受け付けられたクエリに応じたデータの種別を特定する。
提供要求受付部41によって受け付けられたクエリには上述したように処理対象情報が含まれており、判定部32は、処理対象情報に含まれるデータ種別情報に基づいて、クエリに応じたデータである対象データの種別を特定する。判定部32は、例えば、データ種別情報が京都府の20代の男性の年収を示す情報である場合、京都府の20代の男性の年収を対象データの種別として特定する。
また、判定部32は、データ種別情報が、学習モデルの入力情報および出力情報の各々の種別を示す情報を含む場合、学習モデルの入力情報および出力情報の各々の種別を対象データの種別として特定する。入力情報は、例えば、ユーザUの位置や属性を示す情報であり、出力情報は、例えば、ユーザUによるオンラインサービスの利用内容を示す情報であるが、かかる例に限定されない。
なお、判定部32は、対象データの数や対象データの元となるユーザUの数が閾値以上になるようにデータの指定を受け付けることもできる。例えば、判定部32は、対象データの数や対象データの元となるユーザUの数が閾値以上である属性のリストを要求者装置4に送信することで、操作者に属性のリストの中から属性を選択させることができる。
〔3.3.4.匿名加工部33〕
匿名加工部33は、判定部32によって提供候補データが特定関係組織に紐付けられたデータであると判定された場合に、提供候補データに匿名加工を行って匿名加工データを生成する。匿名加工部33は、分類部50とノイズ付加処理部51とを備える。
〔3.3.4.1.分類部50〕
分類部50は、匿名加工対象データに含まれる各データをユーザUが設定した利用条件に応じたグループGに分類する。匿名加工対象データに含まれる各データは、ユーザUによって利用が許諾されたデータである。
例えば、ユーザUによって設定された利用条件が、複数の保護レベルAL1,AL2,・・・,ALnの中からユーザUによって選択された保護レベルで示されるとする。この場合、分類部50は、複数の保護レベルAL1,AL2,・・・,ALnに対応する複数のグループG1,G2,・・・,Gnに匿名加工対象データに含まれるデータを分類する。
例えば、保護レベルAL1で示される利用条件が設定されたデータは、グループG1に分類され、保護レベルAL2で示される利用条件が設定されたデータは、グループG2に分類され、保護レベルALnで示される利用条件が設定されたデータは、グループGnに分類される。
〔3.3.4.2.ノイズ付加処理部51〕
ノイズ付加処理部51は、分類部50によって同一のグループGに分類された複数のデータを含むグループG毎のユーザデータ群に基づいて、ノイズ付加データまたはノイズ付加データ群をグループG毎に生成する。
ノイズ付加データは、分類部50によって同一のグループGに分類された複数のデータを含むユーザデータ群に基づく演算結果(例えば、平均、合計、分散などの統計量)のデータにグループGに応じたノイズを付加したデータである。また、ノイズ付加データ群は、分類部50によって同一のグループGに分類された複数のデータを含むユーザデータ群にグループGに応じたノイズを付加したデータ群である。
ノイズ付加処理部51は、差分プライバシーによる匿名加工またはk-匿名化による匿名加工によって、ノイズ付加データまたはノイズ付加データ群を生成する。ノイズ付加処理部51は、例えば、サーバ3から送信される情報にノイズ付加種別を示すノイズ付加種別情報が含まれている場合、差分プライバシーによる匿名加工およびk-匿名化による匿名加工のうちノイズ付加種別情報で示される匿名加工を行うことができる。
また、ノイズ付加処理部51は、例えば、提供要求受付部41によって受け付けられたクエリにノイズ付加種別を示すノイズ付加種別情報が含まれている場合、差分プライバシーによる匿名加工およびk-匿名化による匿名加工のうちノイズ付加種別情報で示される匿名加工を行うことができる。
まず、差分プライバシーによる匿名加工について説明する。ノイズ付加処理部51は、提供要求受付部41によって受け付けられたクエリに含まれる処理内容情報で示される処理内容に基づいて、グループG毎のユーザデータ群からグループG毎の演算結果のデータを算出する。処理内容情報で示される処理内容は、例えば、特定のデータに対する平均、合計、分散といった統計演算や学習モデルのパラメータの生成などである。
例えば、処理内容情報で示される処理内容がユーザUの平均年収であるとする。この場合、ノイズ付加処理部51は、グループG毎の演算結果のデータとして、グループG毎のユーザUの平均年収を示すデータを算出する。
また、処理内容情報で示される処理内容がユーザUの年齢の分布であるとする。この場合、ノイズ付加処理部51は、グループG毎の演算結果のデータとして、グループG毎のユーザUの年齢の分布または分散を示すデータを算出する。
また、処理内容情報で示される処理内容が学習モデルのパラメータの生成であるとする。この場合、ノイズ付加処理部51は、確率的勾配降下法を使って学習モデルを最適化する際の、トレーニングデータのサンプルに起因する複数の勾配の平均値を示すデータをグループG毎に算出する。
また、ノイズ付加処理部51は、処理内容情報で示される処理内容に加えて、グループG毎のユーザUの数(合計)を示すデータおよび統計処理対象のグループG毎の分散を示すデータの各々を演算結果のデータとして算出する。以下において、ユーザUの数をユーザ数と記載する場合がある。
そして、ノイズ付加処理部51は、グループG毎の演算結果のデータにグループGに応じたノイズを付加したグループG毎のノイズ付加データを生成する。例えば、複数の保護レベルAL1,AL2,・・・,ALnに対応する複数のグループG1,G2,・・・,Gnに匿名加工対象データに含まれるデータが分類されたとする。
この場合、ノイズ付加処理部51は、グループG1,G2,・・・,Gnの順に演算結果のデータにノイズレベルが高くなるノイズを付加する。このように、データの保護レベルALが高い利用条件に応じたグループGほどノイズレベルが高いノイズを付加したグループG毎のノイズ付加データを生成する。
ノイズは、例えば、固定ノイズ、ガウシアンノイズ、またはラプラスノイズなどである。ノイズ付加処理部51は、演算結果のデータに付加されるノイズが固定ノイズである場合、ノイズレベルが高い固定ノイズほど値を大きくする。
また、ノイズ付加処理部51は、演算結果のデータに付加されるノイズがガウシアンノイズである場合、ノイズの平均値の絶対値を大きくしたり、ノイズの標準偏差を大きくしたりすることで、ノイズレベルを高くすることができる。また、ノイズ付加処理部51は、演算結果のデータに付加されるノイズがラプラスノイズである場合、ノイズの平均値の絶対値を大きくしたり、ノイズの標準偏差を大きくしたりすることで、ノイズレベルを高くすることができる。
このように、ノイズ付加処理部51は、差分プライバシーによる匿名加工の処理において、グループG毎の演算結果のデータにグループGに応じたノイズを付加したグループG毎のノイズ付加データを生成する。
次に、k-匿名化による匿名加工について説明する。ノイズ付加処理部51は、例えば、ある属性項目をアスタリスク「*」などに変換することによってノイズを付加する抑制処理を行ったり、属性項目の階層を上げることによってノイズを付加する一般化処理を行ったりすることで、匿名加工を行う。
また、ノイズ付加処理部51は、ある閾値以上の値を1つのカテゴリにまとめるトップコーディング、またはある閾値以下の値を1つのカテゴリにまとめるボトムコーティングによってノイズを付加することもできる。
ノイズ付加処理部51は、データの保護レベルALが高い利用条件に応じたグループGのユーザデータ群ほどノイズレベルが高いノイズを付加したグループG毎のノイズ付加データ群を生成する。例えば、ノイズ付加処理部51は、データの保護レベルALが高いグループGほどノイズとして追加するデータの量である追加量を増やしたり、ノイズとして変更するデータの量である変更量を増やしたりする。
ノイズ付加処理部51は、一般化処理において、例えば、一般化のレベルを高くすることによってノイズレベルを高くすることができる。一般化のレベルは、1つ上の階層よりも2つ上の階層が高く、2つ上の階層よりも3つ上の階層が高い。
また、ノイズ付加処理部51は、例えば、抑制処理において、アスタリスク「*」に変換する属性項目を増やすことによってノイズレベルを高くすることができる。また、ノイズ付加処理部51は、ある閾値以上の値を1つのカテゴリにまとめる際に閾値を小さくすることによってノイズレベルを高くすることができる。また、ノイズ付加処理部51は、ある閾値以下の値を1つのカテゴリにまとめる際に閾値を大きくすることによってノイズレベルを高くすることができる。
例えば、保護レベルAL1~ALnのうちユーザUによって選択された保護レベルである選択保護レベルSALに応じたグループGに各ユーザUが分類されたとする。この場合、ノイズ付加処理部51は、データの保護レベルALが高いグループGほどノイズレベルが高いノイズを付加する。
ノイズ付加処理部51は、グループG毎のユーザデータ群に対して、データの保護レベルALが高い利用条件に応じた数または内容のダミーデータを追加するダミー追加処理を行うこともできる。ダミーデータは、例えば、グループG毎のユーザデータ群に含まれるデータと同じであってもよく、ユーザデータ群に含まれるデータを加工したデータであってもよい。また、ダミーデータは、ランダムまたは所定の規則に従って生成したデータであってもよい。
ノイズ付加処理部51は、例えば、データの保護レベルALが高いほど、追加するダミーデータの数を多くしたり、ユーザデータ群に含まれるデータに対する加工度合いを高めたデータをダミーデータとしたりすることができる。
ノイズ付加処理部51は、各グループGの全体的な傾向が変化しないようにダミーデータをユーザデータ群に付加することもできる。例えば、ノイズ付加処理部51は、各グループGの全体的な傾向が変化しないように、ダミーデータを付加する前と後とでユーザデータ群に基づく演算結果(例えば、平均、合計、分散などの統計量)が閾値範囲内になるように、ダミーデータをユーザデータ群に付加する。
ノイズ付加処理部51は、保護レベルAL毎に異なるノイズ付加方法でユーザデータ群にノイズを付加することもできる。ノイズ付加方法は、例えば、抑制処理、一般化処理、およびダミー追加処理などであり、抑制処理にも、アスタリスク「*」への変換、トップコーティング、およびボトムコーティングなどのノイズ付加方法がある。なお、ノイズ付加方法は上述した例に限定されない。
このように、ノイズ付加処理部51は、k-匿名化による匿名加工の処理において、グループG毎のユーザデータ群にグループGに応じたノイズを付加したグループG毎のノイズ付加データ群を生成する。
〔3.3.5.提供部34〕
提供部34は、匿名加工部33によって生成された匿名加工データまたは匿名加工データ群に基づいて、提供要求受付部41によって受け付けられた提供要求に応じたデータを分析対象データとして提供する。
提供部34は、匿名加工部33によって生成された匿名加工データまたは匿名加工データ群に基づいて、利用対象データを生成する利用対象データ生成部60と、利用対象データ生成部60によって生成された利用対象データなどを提供する提供処理部61とを備える。
〔3.3.5.1.利用対象データ生成部60〕
利用対象データ生成部60は、匿名加工部33によって生成された匿名加工データまたは匿名加工データ群を用いて、利用対象データを生成する。匿名加工データは、上述したように、グループG毎のノイズ付加データまたはノイズ付加データ群である。
利用対象データ生成部60は、比較部70と、選択部71と、加重平均演算部72と、演算処理部73とを備える。
〔3.3.5.1.1.比較部70〕
比較部70は、ユーザデータ群に含まれるデータのばらつきをグループG間で比較する。例えば、比較部70は、ユーザデータ群に含まれるデータのばらつきをグループG毎に算出し、グループG間でのデータのばらつきの傾向の類似度である傾向類似度を算出する。
傾向類似度は、例えば、グループG毎の分散の分散またはグループG毎の分散の標準偏差で示される値であるが、かかる例に限定されない。例えば、傾向類似度は、グループG毎の標準偏差の分散またはグループG毎の標準偏差の標準偏差で示される値であってもよい。
〔3.3.5.1.2.選択部71〕
選択部71は、比較部70による比較結果に基づいて、複数の加重平均方法の中から1つの加重平均方法を選択する。複数の加重平均方法には、第1の加重平均方法および第2の加重平均方法などが含まれる。
第1の加重平均方法は、グループG毎のノイズ付きユーザ数に応じた重みを用いた加重平均方法であり、第2の加重平均方法は、ノイズ付きユーザ数をグループG毎のノイズ付き分散で除算した値に応じた重みを用いた加重平均方法である。
例えば、選択部71は、傾向類似度が高い場合に、第1の加重平均方法を選択し、傾向類似度が低い場合に第2の加重平均方法を選択する。例えば、選択部71は、グループG毎の分散の分散またはグループG毎の分散の標準偏差が閾値未満である場合に、傾向類似度が高いと判定し、グループG毎の分散の分散またはグループG毎の分散の標準偏差が閾値以上である場合に、傾向類似度が低いと判定する。
また、選択部71は、グループG毎の標準偏差の分散またはグループG毎の標準偏差の標準偏差が閾値未満である場合に、傾向類似度が高いと判定し、グループG毎の標準偏差の分散またはグループG毎の標準偏差の標準偏差が閾値以上である場合に、傾向類似度が低いと判定することもできる。なお、選択部71は、グループG毎のばらつきの比較結果に基づいて、加重平均方法を選択すればよく、上述した例に限定されない。
〔3.3.5.1.3.加重平均演算部72〕
加重平均演算部72は、匿名加工部33によって生成された匿名加工データがグループG毎のノイズ付加データである場合に、匿名加工データに基づいて、利用対象データを生成する。例えば、加重平均演算部72は、上記式(1)の演算によって、利用対象データを生成することができる。
加重平均演算部72は、グループG毎のノイズ付加データを重み付け加算することによって、利用対象データを生成する。重み付けは、グループG毎のユーザデータ群に含まれるユーザ数にノイズを付加した値に応じた重み、またはグループG毎のユーザデータ群に含まれるユーザ数にノイズを付加した値をグループG毎の分散にノイズを付加した値で除算した値に応じた重みなどが用いられる。
例えば、加重平均演算部72は、選択部71によって第1の加重平均方法が選択された場合、グループG毎のユーザデータ群に含まれるユーザ数にノイズを付加した値(ノイズ付きユーザ数)に応じた重みを用いてグループG毎のノイズ付加データを重み付け加算することによって、利用対象データを生成する。
また、加重平均演算部72は、選択部71によって第2の加重平均方法が選択された場合、グループG毎のノイズ付きユーザ数をグループG毎のノイズ付き分散で除算した値に応じた重みを用いてグループG毎のノイズ付加データを重み付け加算することによって、利用対象データを生成する。
なお、加重平均演算部72は、上述した複数の勾配の平均値をグループG毎の演算結果とした場合、ノイズ付き演算結果のデータを用いた機械学習によって決定された学習モデルのパラメータを利用対象データとして算出する。
また、加重平均演算部72は、ノイズ付きユーザ数に代えて、ノイズが付加されないグループG毎のユーザ数を用いてグループG毎のノイズ付加データを重み付け加算することもできる。また、加重平均演算部72は、ノイズが付加されないグループG毎のユーザ数と分散とを用いて、グループG毎のノイズ付加データを重み付け加算することもできる。なお、分散は、σ1
2、σ2
2、・・・、σn
2の平方根であってもよい。
〔3.3.5.1.4.演算処理部73〕
演算処理部73は、匿名加工部33によってグループG毎のノイズ付加データ群、すなわち匿名加工データ群が生成された場合に、利用対象データを生成する。
演算処理部73は、処理内容情報で示される処理内容に基づいて、匿名加工データ群に基づく演算結果(例えば、平均、合計、分散などの統計量)のデータを算出する。処理内容情報で示される処理内容は、平均、合計、分散といった統計演算種別や学習モデルのパラメータの生成演算種別などを示す情報を含む。
例えば、処理対象情報によって特定される処理内容がユーザUの年収の平均であるとする。この場合、演算処理部73は、匿名加工データ群に基づく演算結果のデータとして、匿名加工データ群に含まれるユーザUの平均年収を示すデータを利用対象データとして算出する。
また、処理対象情報によって特定される処理内容がユーザUの年齢の分散であるとする。この場合、演算処理部73は、匿名加工データ群に基づく演算結果のデータとして、匿名加工データ群に含まれるユーザUの年齢の分散を示すデータを利用対象データとして、算出する。
また、処理対象情報によって特定される処理内容が匿名加工対象データを学習用データとして用いて生成される学習モデルのパラメータであるとする。この場合、演算処理部73は、例えば、確率的勾配降下法を使ってモデルを最適化する際の、匿名加工データ群から得られるトレーニングデータのサンプルに起因する複数の勾配の平均値を用いた機械学習によって決定された学習モデルのパラメータを利用対象データとして算出する。
〔3.3.5.2.提供処理部61〕
提供処理部61は、例えば、提供要求受付部41によって受け付けられた提供要求に応じたデータを提供する。
例えば、提供処理部61は、利用対象データ生成部60によって生成された利用対象データを提供要求に応じたデータとして要求者装置4に送信することで、操作者に対して提供情報を提供する。これにより、提供処理部61は、個人情報の提供をより適切に行うことができる。
〔4.処理手順〕
次に、図6用いて、実施形態に係る情報処理装置1の処理部12が実行する情報処理の手順について説明する。図6は、情報処理装置1の処理部12が実行する情報処理の一例を示すフローチャートである。
図6に示すように、情報処理装置1の処理部12は、アップロードデータがあるか否かを判定する(ステップS20)。例えば、処理部12は、サーバ3からサービスログのデータが情報処理装置1に送信されて通信部10で受信された場合に、アップロードデータがあると判定する。
処理部12は、アップロードデータがあると判定した場合(ステップS20:Yes)、アップロードデータであるサービスログのデータに組織を紐付ける(ステップS21)。そして、処理部12は、組織が紐付けられたアップロードデータであるサービスログのデータを記憶部11に記憶させる(ステップS22)。
処理部12は、ステップS22の処理が終了した場合、またはアップロードデータがないと判定した場合(ステップS20:No)、データの提供要求があるか否かを判定する(ステップS23)。例えば、処理部12は、要求者装置4からクエリが情報処理装置1に送信されて通信部10で受信された場合に、データの提供要求があると判定する。
処理部12は、データの提供要求があると判定した場合(ステップS23:Yes)、クエリで特定されるデータである提供候補データが、特定関係組織に紐付けられたデータであるか否かを判定する(ステップS24)。
処理部12は、提供候補データが特定関係組織に紐付けられたデータであると判定した場合(ステップS24:Yes)、匿名加工処理を行う(ステップS25)。匿名加工処理は、図7に示すステップS30,S31の処理であり、後で詳述する。
次に、処理部12は、ステップS25の匿名加工処理において生成したグループG毎のノイズ付加データを含む匿名加工データまたはグループG毎のノイズ付加データ群を含む匿名加工データ群に基づいて、利用対象データを生成する(ステップS26)。そして、処理部12は、ステップS26で生成した利用対象データを提供要求の提供元に提供する(ステップS27)。
処理部12は、ステップS27の処理が終了した場合、データの提供要求がないと判定した場合(ステップS23:No)、または提供候補データが特定関係組織に紐付けられたデータでないと判定した場合(ステップS24:No)、終了タイミングになったか否かを判定する(ステップS28)。処理部12は、例えば、情報処理装置1の電源がオフにされた場合、または情報処理装置1の不図示の操作部への操作によって終了操作が行われたと判定した場合に、終了タイミングになったと判定する。
処理部12は、終了タイミングになっていないと判定した場合(ステップS28:No)、処理をステップS20へ移行し、終了タイミングになったと判定した場合(ステップS28:Yes)、図6に示す処理を終了する。
図7は、情報処理装置1の処理部12が実行する匿名加工処理の一例を示すフローチャートである。図7に示すように、処理部12は、提供候補データに含まれる各データをユーザが設定した利用条件に応じたグループGに分類する(ステップS30)。
次に、処理部12は、ユーザデータ群に基づく演算結果のデータまたはユーザデータ群にグループGに応じたノイズを付加したノイズ付加データまたはノイズ付加データ群をグループG毎に生成し(ステップS31)、図7に示す処理を終了する。
〔5.変形例〕
上述した例では、匿名加工処理の対象となるデータがサービスログのデータである例を説明したが、匿名加工処理の対象となるデータは、サービスログデータに限定されず、例えば、オフラインで収集したデータであってもよい。
また、上述した例では、ユーザUが設定した利用条件で示される保護レベルに応じたノイズを付加する例を説明したが、かかる例に限定されない。例えば、匿名加工部33は、サーバ3からサービスログのデータの保護レベルを示す保護レベル情報が情報処理装置1に送信される場合、保護レベル情報で示される保護レベルを最も低い保護レベルとすることができる。
例えば、サービスログのデータに含まれるデータの保護レベルとして保護レベルAL1,AL2,・・・,ALnが含まれるとする。この場合、匿名加工部33は、保護レベル情報で示される保護レベルが保護レベルAL2であれば、ユーザUが利用条件として設定した保護レベルAL1を保護レベルAL2に変更する。また、匿名加工部33は、保護レベル情報で示される保護レベルが保護レベルALnであれば、ユーザUが利用条件として設定した保護レベルALの保護レベルALnに変更する。
また、保護レベル情報は、保護レベルALを挙げるための値pを示す情報であってもよい。この場合、匿名加工部33は、サービスログのデータに含まれるデータの保護レベルとして保護レベルAL1,AL2,・・・,ALnが含まれていれば、保護レベルAL1,AL2,・・・,ALnを保護レベルAL1+p,AL2+p,・・・,ALn+pに変更して、匿名加工処理を行う。
〔6.ハードウェア構成〕
上述してきた実施形態に係る情報処理装置1または端末装置2は、例えば図8に示すような構成のコンピュータ80によって実現される。以下、情報処理装置1を例に挙げて説明する。図8は、実施形態に係る情報処理装置1の機能を実現するコンピュータ80の一例を示すハードウェア構成図である。コンピュータ80は、CPU81、RAM82、ROM(Read Only Memory)83、HDD(Hard Disk Drive)84、通信インターフェイス(I/F)85、入出力インターフェイス(I/F)86、およびメディアインターフェイス(I/F)87を有する。
CPU81は、ROM83またはHDD84に記憶されたプログラムに基づいて動作し、各部の制御を行う。ROM83は、コンピュータ80の起動時にCPU81によって実行されるブートプログラムや、コンピュータ80のハードウェアに依存するプログラムなどを記憶する。
HDD84は、CPU81によって実行されるプログラム、および、かかるプログラムによって使用されるデータなどを記憶する。通信インターフェイス85は、ネットワークN(図2参照)を介して他の機器からデータを受信してCPU81へ送り、CPU81が生成したデータを、ネットワークNを介して他の機器に送信する。
CPU81は、入出力インターフェイス86を介して、ディスプレイやプリンタなどの出力装置、および、キーボードまたはマウスなどの入力装置を制御する。CPU81は、入出力インターフェイス86を介して、入力装置からデータを取得する。また、CPU81は、入出力インターフェイス86を介して生成したデータを出力装置へ出力する。
メディアインターフェイス87は、記録媒体88に記憶されたプログラムまたはデータを読み取り、RAM82を介してCPU81に提供する。CPU81は、かかるプログラムを、メディアインターフェイス87を介して記録媒体88からRAM82上にロードし、ロードしたプログラムを実行する。記録媒体88は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)などの光学記録媒体、MO(Magneto-Optical disk)などの光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリなどである。
例えば、コンピュータ80が実施形態に係る情報処理装置1として機能する場合、コンピュータ80のCPU81は、RAM82上にロードされたプログラムを実行することにより、処理部12の機能を実現する。また、HDD84には、記憶部11内のデータが記憶される。コンピュータ80のCPU81は、これらのプログラムを記録媒体88から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
〔7.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
例えば、上述した情報処理装置1は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットホームなどをAPIやネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
また、例えば、図3に示した記憶部11の一部または全部は、各装置によって保持されるのではなく、ストレージサーバなどに保持されてもよい。この場合、各装置は、ストレージサーバにアクセスすることで、各種情報を取得する。
〔8.効果〕
上述してきたように、実施形態に係る情報処理装置1は、分類部50と、ノイズ付加処理部51と、利用対象データ生成部60とを備える。分類部50は、ユーザUによって利用が許諾されたデータをユーザUが設定した利用条件に応じたグループGに分類する。ノイズ付加処理部51は、分類部50によって同一のグループGに分類された複数のデータを含むユーザデータ群に基づく演算結果のデータにグループGに応じたノイズを付加したノイズ付加データまたはユーザデータ群にグループGに応じたノイズを付加したノイズ付加データ群をグループG毎に生成する。利用対象データ生成部60は、ノイズ付加処理部51によって生成されたグループG毎のノイズ付加データまたはノイズ付加データ群を用いて利用対象データを生成する。これにより、情報処理装置1は、ユーザUが設定した利用条件に応じたノイズを付加することで、保護レベルによっては個人情報の利用の許諾をするユーザUのデータを用いることができ、より多くの個人情報を活用可能にすることができる。
また、ノイズ付加処理部51は、データの保護レベルが高い利用条件に応じたグループGほどノイズレベルが高いノイズを付加したノイズ付加データまたはノイズ付加データ群を生成する。これにより、情報処理装置1は、ユーザUが設定した利用条件に応じたノイズをより適切に付加することができる。
また、利用対象データ生成部60は、ノイズ付加処理部51によって生成されたグループG毎のノイズ付加データを、グループG毎のユーザデータ群に含まれるユーザUの数にノイズを付加した値に基づく重みを用いて、加重平均して得られるデータを、利用対象データとして生成する。これにより、情報処理装置1は、ユーザUが設定した利用条件に応じたノイズをより適切に付加することができる。
また、利用対象データ生成部60は、ノイズ付加処理部51によって生成されたグループG毎のノイズ付加データを、グループG毎のユーザデータ群に含まれるユーザUの数を演算結果の算出に用いたデータのグループG毎の分散にノイズを付加した値で除算した値に応じた重みを用いて、加重平均して得られるデータを、利用対象データとして生成する。これにより、情報処理装置1は、ユーザUが設定した利用条件に応じたノイズをより適切に付加することができる。
また、利用対象データ生成部60は、比較部70と、選択部71と、加重平均演算部72とを備える。比較部70は、ユーザデータ群に含まれるデータのばらつきをグループG間で比較する。選択部71は、比較部70による比較結果に基づいて、グループG毎のユーザデータ群に含まれるユーザUの数にノイズを付加した値に応じた重みを用いる方法と、グループG毎のユーザデータ群に含まれるユーザUの数にノイズを付加した値を演算結果の算出に用いたデータのグループG毎の分散にノイズを付加した値で除算した値に応じた重みを用いる方法のいずれかを加重平均の方法として選択する。加重平均演算部72は、選択部71によって選択された加重平均の方法によって、ノイズ付加処理部51によって算出されたグループG毎の演算結果のデータの加重平均を算出する。これにより、情報処理装置1は、ユーザUが設定した利用条件に応じたノイズをより適切に付加することができる。
また、演算結果の算出に用いられるデータは、ユーザUの属性のデータである。これにより、情報処理装置1は、ユーザUの属性の保護を適切に行うことができる。
また、演算結果の算出に用いられるデータは、モデルの学習に用いられる勾配のデータである。これにより、情報処理装置1は、機械学習に用いるパラメータの算出の際にユーザUの個人情報の保護を適切に行うことができる。
また、情報処理装置1は、提供部34と、受付部30とを備える。提供部34は、利用対象データ生成部60によって生成された利用対象データを提供する。受付部30は、利用内容を指定するクエリを受け付ける。利用対象データ生成部60は、クエリで指定される利用内容に対応する演算結果のデータをグループG毎に算出する。これにより、情報処理装置1は、個人情報の提供をより適切に行うことができる。
また、利用条件は、ユーザU毎の利用条件およびデータ毎の利用条件のうちの少なくとも1つを含む。これにより、情報処理装置1は、より多くの個人情報を活用可能にすることができる。
以上、本願の実施形態を図面に基づいて詳細に説明したが、これは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、提供部は、提供手段や提供回路に読み替えることができる。