(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023059787
(43)【公開日】2023-04-27
(54)【発明の名称】情報処理方法、プログラム及び情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20230420BHJP
G06F 16/17 20190101ALI20230420BHJP
【FI】
G06N20/00
G06F16/17 100
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022003266
(22)【出願日】2022-01-12
(31)【優先権主張番号】63/256,121
(32)【優先日】2021-10-15
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】302064762
【氏名又は名称】株式会社日本総合研究所
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】染田 拓
(72)【発明者】
【氏名】長田 繁幸
(57)【要約】
【課題】異なるエンティティ間におけるデータを好適に活用することができる情報処理方法等を提供する。
【解決手段】情報処理方法は、第1エンティティの第1識別器及び前記第1識別器に対する第1損失関数を取得し、前記第1エンティティとは異なる第2エンティティのデータのうち前記第1エンティティ及び前記第2エンティティで合意したデータ列のデータを、前記第1エンティティ及び前記第2エンティティで共通する共通データ構造に変換し、変換後の前記第2エンティティのデータ及び前記第1損失関数に基づき前記第1識別器を学習する処理をコンピュータが実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1エンティティの第1識別器及び前記第1識別器に対する第1損失関数を取得し、
前記第1エンティティとは異なる第2エンティティのデータのうち前記第1エンティティ及び前記第2エンティティで合意したデータ列のデータを、前記第1エンティティ及び前記第2エンティティで共通する共通データ構造に変換し、
変換後の前記第2エンティティのデータ及び前記第1損失関数に基づき前記第1識別器を学習する
処理をコンピュータが実行する情報処理方法。
【請求項2】
前記第1損失関数の評価値に基づいて前記第1識別器の学習を実行する
請求項1に記載の情報処理方法。
【請求項3】
前記第2エンティティにおける前記第1識別器の学習に対する前記第1損失関数の評価値を前記第1エンティティへ送信し、
前記第1エンティティから終了命令を受信した場合に、前記第2エンティティにおける前記第1識別器の学習を終了する
請求項1又は請求項2に記載の情報処理方法。
【請求項4】
前記第2エンティティにおける学習済みの前記第1識別器を前記第1エンティティへ送信する
請求項1から請求項3のいずれか1項に記載の情報処理方法。
【請求項5】
前記第2エンティティのデータには含まれない偽データを生成し、
前記共通データ構造に変換した偽データ、前記第2エンティティのデータ及び前記第1損失関数に基づき前記第1識別器を学習する
請求項1から請求項4のいずれか1項に記載の情報処理方法。
【請求項6】
前記第1エンティティ及び前記第2エンティティで合意したデータ列におけるデータのN-gramに基づいて前記共通データ構造を規定する
請求項1から請求項5のいずれか1項に記載の情報処理方法。
【請求項7】
前記第2エンティティの第2識別器及び前記第2識別器に対する第2損失関数を前記第1エンティティへ送信し、
前記第1エンティティにおける前記第2識別器の学習に対する前記第2損失関数の評価値が所定値未満となった場合に、前記第1エンティティにおける学習済みの前記第2識別器を前記第1エンティティから受信する
請求項1から請求項6のいずれか1項に記載の情報処理方法。
【請求項8】
前記第1識別器は、前記共通データ構造における列数に対応するノード数を有する入力層と、前記第1エンティティのデータに含まれるサンプル数に所定のオフセット数を加えた数に対応するノード数を有する出力層とを備える
請求項1から請求項7のいずれか1項に記載の情報処理方法。
【請求項9】
前記第1エンティティのデータのうち前記第1エンティティ及び前記第2エンティティで合意したデータ列のデータを前記共通データ構造に変換し、
変換後の前記第1エンティティのデータを前記第1識別器に入力し、
前記第1識別器から出力される識別結果に基づいて、前記第1エンティティ及び前記第2エンティティに共通するデータを特定する
請求項1から請求項8のいずれか1項に記載の情報処理方法。
【請求項10】
第1エンティティの第1識別器及び前記第1識別器に対する第1損失関数を取得し、
前記第1エンティティとは異なる第2エンティティのデータのうち前記第1エンティティ及び前記第2エンティティで合意したデータ列のデータを、前記第1エンティティ及び前記第2エンティティで共通する共通データ構造に変換し、
変換後の前記第2エンティティのデータ及び前記第1損失関数に基づき前記第1識別器を学習する
処理をコンピュータに実行させるためのプログラム。
【請求項11】
第1エンティティの第1識別器及び前記第1識別器に対する第1損失関数を取得し、
前記第1エンティティとは異なる第2エンティティのデータのうち前記第1エンティティ及び前記第2エンティティで合意したデータ列のデータを、前記第1エンティティ及び前記第2エンティティで共通する共通データ構造に変換し、
変換後の前記第2エンティティのデータ及び前記第1損失関数に基づき前記第1識別器を学習する
処理を実行する制御部を備える
情報処理装置。
【請求項12】
第1識別器及び前記第1識別器に対する第1損失関数を第2エンティティへ出力し、
前記第2エンティティのデータを用いて学習された前記第1識別器を前記第2エンティティから取得し、
前記第2エンティティとは異なる第1エンティティのデータを前記第1識別器に入力し、
前記第1識別器から出力される識別結果に基づいて、前記第1エンティティ及び前記第2エンティティに共通するデータを特定する
処理をコンピュータが実行する情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理方法、プログラム及び情報処理装置に関する。
【背景技術】
【0002】
情報処理技術の進化に伴い、データ分析などを目的として異なる事業者間でデータを共有することが重要視されている。しかし、プライバシー保護の観点から、顧客の同意を得ることなく個人の特定につながるデータを事業者間で共有することはできない。そこで、プライバシーを保護した状態のままデータを分析する手法が提案されている。
【0003】
例えば特許文献1には、共同分析する企業間でデータを共有することなく深層学習を行う連合学習の技術が開示されている。
【0004】
特許文献2には、各企業の保有するデータを暗号化された状態のまま演算するPSI(Private Set Intersection)の技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【非特許文献1】Jiang Jichu,Kantarci Burak,Oktug Sema and Soyata Tolga,“Federated Learning in Smart City Sensing:Challenges and Opportunities,” Sensors 2020; 20.6230.10.3390/s20216230,October 2020.
【非特許文献2】長尾 佳高、宮地 充子、“プライバシを保護したデータ突合プロトコル”、情報処理学会コンピュータセキュリティシンポジウム2020、2020年10月。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の手法においては、異なるエンティティ間におけるデータを好適に活用するという観点において改善の余地がある。
【0007】
本開示の目的は、異なるエンティティ間におけるデータを好適に活用することができる情報処理方法等を提供することである。
【課題を解決するための手段】
【0008】
本開示の一態様に係る情報処理方法は、第1エンティティの第1識別器及び前記第1識別器に対する第1損失関数を取得し、前記第1エンティティとは異なる第2エンティティのデータのうち前記第1エンティティ及び前記第2エンティティで合意したデータ列のデータを、前記第1エンティティ及び前記第2エンティティで共通する共通データ構造に変換し、変換後の前記第2エンティティのデータ及び前記第1損失関数に基づき前記第1識別器を学習する処理をコンピュータが実行する。
【0009】
本開示の一態様に係る情報処理方法は、第1識別器及び前記第1識別器に対する第1損失関数を第2エンティティへ出力し、前記第2エンティティのデータを用いて学習された前記第1識別器を前記第2エンティティから取得し、前記第2エンティティとは異なる第1エンティティのデータを前記第1識別器に入力し、前記第1識別器から出力される識別結果に基づいて、前記第1エンティティ及び前記第2エンティティに共通するデータを特定する処理をコンピュータが実行する。
【発明の効果】
【0010】
本開示によれば、異なるエンティティ間におけるデータを好適に活用することができる。
【図面の簡単な説明】
【0011】
【
図1】情報処理システムの構成例を示す模式図である。
【
図2】顧客DBに記憶されるデータの内容例を示す図である。
【
図3】ユーザDBに記憶されるデータの内容例を示す図である。
【
図5】情報処理システムにおける処理の流れを説明する説明図である。
【
図6】共通データ構造の定義に関する処理手順の一例を示すシーケンス図である。
【
図7】第1識別器の生成に関する処理手順の一例を示すシーケンス図である。
【
図8】第1識別器の生成に関する処理手順の一例を示すシーケンス図である。
【
図9】共通データを特定する処理手順の一例を示すシーケンス図である。
【
図10】第2実施形態における情報処理システムの構成例を示す模式図である。
【
図11】第2識別器の生成に関する処理手順の一例を示すシーケンス図である。
【
図12】第2識別器の生成に関する処理手順の一例を示すシーケンス図である。
【発明を実施するための形態】
【0012】
本発明の実施形態に係る情報処理方法、プログラム及び情報処理装置の具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
なお、以下に記載する実施形態に示すシーケンスは限定されるものではなく、矛盾の無い範囲で、各処理手順はその順序を変更して実行されてもよく、また並行して複数の処理が実行されてもよい。各処理の処理主体は限定されるものではなく、矛盾の無い範囲で、各装置の処理を他の装置が実行してもよい。
【0013】
(第1実施形態)
図1は、情報処理システム100の構成例を示す模式図である。情報処理システム100は、第1情報処理装置1及び第2情報処理装置2を備える。第1情報処理装置1及び第2情報処理装置2は、インターネット等のネットワークNに通信接続され、ネットワークNを介してデータの送受信が可能である。
【0014】
第1情報処理装置1及び第2情報処理装置2はそれぞれ、例えばサーバコンピュータ、パーソナルコンピュータ、量子コンピュータ等であり、種々の情報処理、情報の送受信を行う。第1情報処理装置1及び第2情報処理装置2はそれぞれ、異なる事業者(エンティティ)により管理されている。本実施形態では、一例として、第1情報処理装置1が銀行業者に管理され、第2情報処理装置2がウェブサービス提供業者に管理されているものとする。銀行業者が第1エンティティ、すなわち第1情報処理装置1を管理する事業者に対応する。ウェブサービス提供業者が第2エンティティ、すなわち第2情報処理装置2を管理する事業者に対応する。なお第1エンティティ及び第2エンティティの業種は上記の例に限定されるものでないことは勿論である。例えば、第1エンティティが電気事業者であり、第2エンティティがウェブサービス提供業者であってもよい。
【0015】
図1では、情報処理システム100が2つの情報処理装置により構成される例を示しているが、本実施形態は限定されるものではない。情報処理システム100は、3つ以上の情報処理装置を備え、3つ以上のエンティティを含む構成であってもよい。
【0016】
本実施形態の情報処理システム100では、複数の事業者それぞれの保有するデータを連携し、後述する第1識別器を用いて複数の事業者間におけるデータの共通集合を識別する。本実施形態において、データの共通集合とは、複数の事業者に共通して存在するユーザ(顧客)に関するデータを意味する。共通集合の識別結果を活用することで、よりユーザに適した情報の提供が可能となる。例えば、銀行業者は、ウェブサービスの利用実態のある顧客に対し、ウェブサービスと連携したキャンペーンの情報を優先的に提供することができる。情報処理システム100では、後述する共通データ構造Cを定義することにより、複数の事業者間においてそれぞれの保有するデータそのものを直接共有することなく、上述のような一連の処理を実行する。これにより容易且つ秘匿性を向上したデータ連携が可能となる。
【0017】
このような情報処理システム100の構成及び詳細な処理内容について以下に説明する。
【0018】
図1に示すように、第1情報処理装置1は、制御部11、記憶部12、通信部13及び入出力部14を備える。第1情報処理装置1は複数のコンピュータからなるマルチコンピュータであってもよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
【0019】
制御部11は、一又は複数のCPU(Central Processing Unit)、GPU(Graphics Processing Unit)等を用いたプロセッサを備える。制御部11は、内蔵するROM(Read Only Memory)又はRAM(Random Access Memory)等のメモリ、クロック、カウンタ等を用い、各構成部を制御して処理を実行する。
【0020】
記憶部12は、例えばハードディスク、フラッシュメモリ、SSD(Solid State Drive)等の不揮発性メモリを備える。記憶部12は、制御部11が参照するプログラム及びデータを記憶する。記憶部12は、複数の記憶装置により構成されていてもよく、第1情報処理装置1に接続された外部記憶装置であってもよい。記憶部12に記憶されるプログラムには、後述する第1識別器を用いた処理をコンピュータに実行させるためのプログラム1Pが含まれる。
【0021】
記憶部12に記憶されるデータには、第1エンティティの有する顧客情報(第1エンティティデータ)を格納する顧客DB121(Data Base :データベース)、第1識別器122及び第1損失関数123が含まれる。
【0022】
第1識別器122は、第1情報処理装置1及び第2情報処理装置2それぞれに保有されるデータにおける共存データを識別するための識別器である。第1識別器122は、例えばニューラルネットワークにより構成される機械学習モデルである。第1識別器122は、人工知能ソフトウェアを構成するプログラムモジュールとしての利用が想定される。第1識別器122は、その定義情報によって定義される。第1識別器122の定義情報は、例えば、第1識別器122の構造情報や層の情報、各層が備えるノードの情報、ノード間の重み及びバイアスなどのパラメータを含む。記憶部12には、第1識別器122に関する定義情報が記憶される。第1損失関数123は、第1識別器122の学習に用いる損失関数(誤差関数)である。
【0023】
記憶部12に記憶されるプログラム(プログラム製品)は、記録媒体にコンピュータ読み取り可能に記録されている態様であってもよい。記憶部12は、図示しない読出装置によって記録媒体1Aから読み出されたプログラムを記憶する。また、図示しない通信網に接続されている図示しない外部コンピュータからプログラムをダウンロードし、記憶部12に記憶させたものであってもよい。プログラム1Pは、単一のコンピュータ上で、また
は1つのサイトにおいて配置されるか、もしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。
【0024】
通信部13は、ネットワークNを介した外部装置との通信に関する処理を行うための通信モジュールを備える。制御部11は、通信部13を介し、第2情報処理装置2との間でデータを送受信する。
【0025】
入出力部14は、外部装置を接続するための入出力I/F(インタフェース)である。入出力部14に接続される外部装置には、例えば各種の情報を表示する表示装置、ユーザの入力操作を受け付ける入力装置(いずれも不図示)等が含まれてもよい。
【0026】
第2情報処理装置2は、第1情報処理装置1と同様のハードウェア構成であり、制御部21、記憶部22、通信部23及び入出力部24を備える。第2情報処理装置2は複数のコンピュータからなるマルチコンピュータであってもよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
【0027】
記憶部22は、不揮発性メモリを備え、制御部21が参照するプログラム及びデータを記憶する。記憶部22に記憶されるプログラムには、第1識別器122の学習に関する処理をコンピュータに実行させるためのプログラム2Pが含まれる。記憶部22に記憶されるデータには、第2エンティティの有するユーザ情報(第2エンティティデータ)を格納するユーザDB221が含まれる。
【0028】
図2は、顧客DB121に記憶されるデータの内容例を示す図である。顧客DB121には、銀行業者の顧客に関する各種データを含む顧客情報が記憶されている。顧客情報には、例えば複数の顧客それぞれの顧客ID、氏名、年齢、性別、住所、電話番号、口座情報等が含まれている。顧客情報は、複数の顧客に関するデータ(サンプル)により構成されるデータ集合である。顧客DB121は、顧客情報の内容に適したデータ構造により各種データを記憶する。
【0029】
図3は、ユーザDB221に記憶されるデータの内容例を示す図である。ユーザDB221には、ウェブサービス提供業者のユーザに関する各種データを含むユーザ情報が記憶されている。ユーザ情報には、例えば複数のユーザそれぞれのユーザID、氏名、性別、住所、電話番号、購入日、カード番号等が含まれている。ユーザ情報は、複数のユーザに関するデータ(サンプル)により構成されるデータ集合である。ユーザDB221は、ユーザ情報の内容に適したデータ構造により各種データを記憶する。
【0030】
図4は、第1識別器122の概要を示す説明図である。第1識別器122は、各事業者におけるデータのサンプルが入力された場合、当該サンプルのクラスを示す情報を出力するように構成される。第1識別器122の識別結果は、当該サンプルが他の事業者におけるデータに存在するか否かを示す情報となる。なお「サンプル」とは、各事業者におけるデータ集合から抽出されたデータを意味する。
【0031】
詳細は後述するが、本実施形態の情報処理システム100では、第1エンティティの第1情報処理装置1において未学習状態の第1識別器122が生成される。未学習状態の第1識別器122は、第2エンティティの第2情報処理装置2へ送信され、第2エンティティの保有する第2エンティティデータ(ユーザ情報)を用いて学習される。学習完了後、学習済みの第1識別器122が第2情報処理装置2から第1情報処理装置1へ送信される。第1エンティティの第1情報処理装置1は、第1エンティティの保有する第1エンティティデータ(顧客情報)及び学習済みの第1識別器122を用いて演算を行い、第1デー
タ及び第2データの両方に存在するサンプルを特定する。以下では、入力情報が顧客情報のサンプルである場合を例に挙げて説明する。
【0032】
第1識別器122は、例えばニューラルネットワークより構成される学習モデルである。第1識別器122は、顧客情報の入力を受け付ける入力層と、当該顧客情報の特徴量を抽出する中間層(隠れ層)と、クラスを示す情報を出力する出力層とを有する。中間層は、入力されたそれぞれの値の特徴量を抽出する複数のノードを有し、各種パラメータを用いて抽出された特徴量を出力層に受け渡す。出力層は、例えば全結合層により構成され、中間層から出力された特徴量に基づいてクラスを示す情報を出力する。
【0033】
第1識別器122の入力層は、顧客情報における所定列(例えば電話番号列)の各データが入力される。入力層に入力される電話番号は、顧客情報及びユーザ情報の構造を共通化させるための共通データ構造Cに変換して入力される。共通データ構造Cの詳細は後述する。入力層の有するノード数は、共通データ構造Cの列数と同じとなるよう構成されている。共通データ構造Cに変換後の各サンプルにおける各列の値がそれぞれ、入力層の各ノードに入力される。
【0034】
第1識別器122の出力層は、設定されているクラスに各々対応する複数のノードを有する。出力層は、例えば活性化関数としてソフトマックス関数を用いて構成される。出力層の各ノードは、各クラスに対する確度をスコアとして出力する。第1情報処理装置1は、スコアが最も高いクラス、あるいはスコアが閾値以上であるクラスを出力層の出力値とすることができる。なお出力層は、それぞれのクラスの確度を出力する複数の出力ノードを有する代わりに、最も確度の高いクラスを出力する1個の出力ノードを有してもよい。出力層の有するノード数は、顧客情報に含まれるサンプル数に、所定のオフセット数を加算した数となるよう構成されている。オフセット数は、例えばユーザ情報に含まれるサンプル数や後述するガベージデータ数等に基づいて適宜設定されてよい。
【0035】
本実施形態では、第1識別器122がニューラルネットワークであるとしたが、第1識別器122の構成は限定されず、例えばCNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、SVM(Support Vector Machine)、決定木、Transformer等、その他の学習アルゴリズムに基づくモデルであってもよい。
【0036】
第1識別器122は、共通データ構造Cに変換したユーザ情報における電話番号列の各データと、各データのクラスとが対応付けられた訓練データを用意し、当該訓練データを用いて未学習のニューラルネットワークを機械学習させることにより生成することができる。各データに対応付けられるクラスは、例えば各データのユーザID等に基づいて、一のクラスに対し一のユーザIDが対応するよう設定されてよい。すなわち、ユーザ情報に含まれる全てのサンプルに対して異なるクラスが割り当てられる。
【0037】
訓練データにはさらに、実際のユーザ情報には含まれない電話番号であるガベージデータ(偽データ)が含まれてもよい。第2情報処理装置2は、ユーザ情報には含まれないランダムに生成した電話番号を共通データ構造Cに変換したガベージデータと、ガベージデータ用に割り当てられたクラスとを対応付たデータセットを生成し、訓練データに追加する。訓練データにガベージデータを加えることにより、第1識別器122の識別精度を向上させることができる。ガベージデータは、乱数発生器等により生成されてもよい。
【0038】
第2情報処理装置2は、サンプルに対し、サンプルのクラスを示すラベルが付与された情報群を訓練データとして取得する。第2情報処理装置2は、取得した訓練データを用いて第1識別器122を学習する。第2情報処理装置2は、サンプルに応じたクラスを出力するよう、例えば誤差逆伝播法を用いて、第1識別器122を構成する各種パラメータを
最適化する。
【0039】
図5は、情報処理システム100における処理の流れを説明する説明図である。上述したように、情報処理システム100では、第1情報処理装置1により生成された第1識別器122に対し、第2情報処理装置2のユーザ情報を用いて学習を行う。そして学習済みの第1識別器122を用いて、第1情報処理装置1の顧客情報に対する識別処理を行う。このように、情報処理システム100では、第1エンティティ及び第2エンティティそれぞれが、互いに保有するデータを共有することなく第1識別器122を構築する、所謂連合学習を実行する。
【0040】
連合学習においては、連携する各事業者の有するデータ構造が異なることが想定される。特に、本実施形態のように異業種間においてはデータ構造の異なる可能性が高い。データ構造が類似性を有さない場合、各事業者の有するデータをそのまま第1識別器122に用いることは困難である。そこで、従来、各事業者間におけるデータの連携にあたり、それぞれの保有するデータに関する各種情報を共有し、業界の用語などを用いて、各種情報に対し相互に分析を繰り返す事前処理が行われている。事前処理は煩雑でありコストを要する。
【0041】
本実施形態では、簡略化された事前処理により、事業者間におけるデータ構造を共通化するための共通データ構造Cを定義することで、事業者間における連合学習を可能にする。以下、
図5を用いて処理の流れを具体的に説明する。
【0042】
まず初めに、第1情報処理装置1は、顧客DB121に記憶する顧客情報のデータ構造、サンプル数、列数、各列の名称、意味、入力規則などを含むデータ概要情報を第2情報処理装置2へ公開する。同様に、第2情報処理装置2は、ユーザDB221に記憶するユーザ情報のデータ概要情報を第1情報処理装置1へ公開する。第1情報処理装置1及び第2情報処理装置2は、互いのデータ概要情報に基づいて、相互に保有するデータの中から重複する可能性が高いと合意した1つ以上の列を決定する。以下では、一例として電話番号列を使用する場合を説明する。
【0043】
第1情報処理装置1及び第2情報処理装置2は、指定した電話番号列に係るデータの構造を共通化するための共通データ構造Cと、電話番号列に係るデータを当該共通データ構造Cへ変換するためのデータ変換方法とを定義する。
【0044】
例えば電話番号を変換対象データとする場合、共通データ構造Cとして二次元配列、データ変換方法としてN-gramが定義される。
図5の中央下側に示すように、共通データ構造Cは、文字種類のN乗数の列を有するマトリクスとして定義される。一例として、電話番号に対しN=4のN-gramを用いる場合、文字種類は0~9の10種類であり、共通データ構造Cの列数は10
4である。共通データ構造Cの行数は、サンプル数に対応して適宜設定される。このように、データ変換方法に応じた共通データ構造Cが規定される。
【0045】
第1情報処理装置1は、顧客情報の電話番号列に格納される各電話番号(サンプル)に対しN=4のN-gram分割を行い、各値の出現有無を判定する。
図5中央では、簡易的に顧客情報が6列×3行のデータであり、第4列目の電話番号列を共通データ構造Cへ変換する概念を例示している。
【0046】
第1情報処理装置1は、共通データ構造Cの各列(0000~9999)に、各値の出現有無の判定結果を示す情報を格納する。
図5の例において、0は出現無、1は出現有を示す。これにより、
図5の下側に示すように、共通データ構造Cに変換した変換後顧客情
報が得られる。
【0047】
同様に、第2情報処理装置2においても、ユーザ情報の電話番号列(
図5の例にて第3列目)に格納される各電話番号に対し、データ変換方法に従ってデータ構造の変換が行われ、共通データ構造Cに変換した変換後ユーザ情報が得られる。
【0048】
上記の変換後ユーザ情報を用いて、第2情報処理装置2側で第1識別器122が学習される。学習が完了すると、サンプルに対し当該サンプルのクラスを適切に認識可能に学習された第1識別器122が構築される。
【0049】
学習済みの第1識別器122を用いて、第1情報処理装置1側で顧客情報の各サンプルに対するクラスが推定される。具体的には、第1識別器122に変換後顧客情報の各サンプルを入力し、顧客情報における全てのサンプルのクラスの識別結果を求める。
【0050】
ここで、活性化関数としてソフトマックス関数を用いたニューラルネットワークにより識別器を生成した場合において、訓練データに一様に分布したクラスに属するデータを用いたときには、未学習のクラスに属するデータのクラスが少数の特定クラスにバイアスされて予測されるという知見がある。このような知見に基づき、ユーザ情報を用いて十分に学習させた第1識別器122によりクラスを推定した場合において、複数のサンプルに対し共通するクラスを示す認識結果が得られたときは、それら共通するクラスに対応付けられた複数のサンプルは全て、訓練データに含まれないデータ、すなわちユーザ情報に存在しないデータであるとみなすことができる。
【0051】
上記より、1つのクラスに対し1つのサンプルのみが対応するとの識別結果が得られた場合、当該サンプルは顧客情報及びユーザ情報の両方に存在するとみなす。1つのクラスに対し複数のサンプルが対応するとの識別結果が得られた場合、当該クラスに対応付けられるサンプルは顧客情報にのみ存在し、ユーザ情報に存在しないとみなす。
【0052】
上述の判定基準に従い、第1識別器122によるクラスの識別結果に基づいて、顧客情報のサンプルのうちユーザ情報に含まれるサンプル、すなわち顧客情報及びユーザ情報の共通集合を特定することができる。
【0053】
上記では、事業者間の重複データとして電話番号を使用する例を説明したが、顧客情報及びユーザ情報から選択されるデータの種類は限定されないことは勿論である。重複データとして指定されるデータは、例えばカード番号、氏名、住所等であってもよい。データが氏名又は住所等の文字を含む場合、例えば各文字列を所定のハッシュ関数によりハッシュ値へ変換し、変換後のハッシュ値に対しN-gram分割を行ってもよい。共通データ構造C及びデータ変換方法は、指定されるデータに応じて適宜に定義されてよい。
【0054】
図6は、共通データ構造の定義に関する処理手順の一例を示すシーケンス図である。以下の処理は、第1情報処理装置1の記憶部12に記憶するプログラム1Pに従って制御部11により実行されるとともに、第2情報処理装置2の記憶部22に記憶するプログラム2Pに従って制御部21により実行される。
【0055】
第1情報処理装置1の制御部11は、顧客DB121に記憶する顧客情報に基づき顧客情報のデータ概要情報を生成し、生成したデータ概要情報を公開する(ステップS101)。同様に第2情報処理装置2の制御部21は、ユーザDB221に記憶するユーザ情報に基づきユーザ情報のデータ概要情報を生成し、生成したデータ概要情報を公開する(ステップS201)。データ概要情報の公開は、例えば、情報処理システム100に含まれる各装置がアクセス可能な記憶領域に記憶させることにより行われてよい。
【0056】
第1情報処理装置1の制御部11は、公開された第2エンティティにおけるユーザ情報のデータ概要情報を取得する(ステップS102)。同様に第2情報処理装置2の制御部21は、公開された第1エンティティにおける顧客情報のデータ概要情報を取得する(ステップS202)。なおデータ概要情報は、第1情報処理装置1及び第2情報処理装置2間で直接送受信されることにより、相互にデータ概要情報を取得するものであってもよい。
【0057】
第1情報処理装置1の制御部11は、取得したユーザ情報のデータ概要情報に基づいて、ユーザ情報における1つ以上の列(例えば電話番号列)を特定し、特定した列を指定するための情報を第2情報処理装置2へ送信する(ステップS103)。制御部11は、例えばデータ概要における各列の名称、意味、入力規則等と、顧客情報とを比較することにより、顧客情報と重複する可能性が高いユーザ情報の列を特定する。
【0058】
第2情報処理装置2の制御部21は、特定した列を指定するための情報を受信する(ステップS203)。制御部21は、列の指定に対する応答として、受信した列の指定に合意する旨を示す情報を第1情報処理装置1へ送信する(ステップS204)。
【0059】
第1情報処理装置1の制御部11は、合意する旨を示す情報を受信する(ステップS104)。これにより、第1情報処理装置1及び第2情報処理装置2間で、それぞれの保有するデータのうち連合学習に使用するデータ列が共有される。
【0060】
第1情報処理装置1の制御部11は、合意に係る電話番号列のデータ内容に応じて、共通データ構造C及び当該共通データ構造Cとするためのデータ変換方法を定義する(ステップS105)。例えば、データ変換方法はN=4のN-gramを用いた文字列の出現頻度の算出を含み、共通データ構造Cは、0000から9999までの104の列数を有する二次元配列である。制御部11は、共通データ構造C及びデータ変換方法の定義情報を記憶部12に記憶するとともに、第2情報処理装置2へ送信する(ステップS106)。
【0061】
第2情報処理装置2の制御部21は、共通データ構造C及びデータ変換方法の定義情報を受信し(ステップS205)、記憶部22に記憶する。
【0062】
上述の処理において、各処理の主体は限定されるものではない。例えば、第2情報処理装置2がデータ列の特定を行ってもよく、共通データ構造C及びデータ変換方法の定義を行うものであってもよい。
【0063】
図7及び
図8は、第1識別器122の生成に関する処理手順の一例を示すシーケンス図である。
【0064】
第1情報処理装置1の制御部11は、第1識別器122及び該第1識別器122に対する第1損失関数123を生成する(ステップS111)。生成される第1識別器122は、未学習状態のニューラルネットワークモデルである。制御部11は、共通データ構造C、顧客情報及びユーザ情報のサンプル数等に基づいて、第1識別器122の構造情報、層の情報及びノードの情報等の定義情報を決定する。また制御部11は、第1識別器122に応じて、第1識別器122の評価に適した第1損失関数123を決定する。第1損失関数123は、例えば負の対数尤度、平均二乗誤差等であってもよい。
【0065】
制御部11は、生成した第1識別器122及び第1損失関数123を第2情報処理装置2へ送信する(ステップS112)。
【0066】
第2情報処理装置2の制御部21は、第1識別器122及び第1損失関数123を受信する(ステップS211)。制御部21は、ガベージクラスに属するデータ、すなわちユーザ情報に存在しないランダムな値を持つガベージデータを生成する(ステップS212)。
【0067】
制御部21は、ユーザDB221を参照して、ユーザ情報のデータのうち予め合意したデータ列のデータ(サンプル)を抽出する。制御部21は、抽出したサンプル及びガベージデータを含むユーザ情報を共通データ構造Cに変換し(ステップS213)、変換後ユーザ情報を生成する。制御部21は、生成した変換後ユーザ情報を記憶部22に一時的に記憶する。
【0068】
第1情報処理装置1の制御部11は、第1識別器122の学習要求を第2情報処理装置2へ送信する(ステップS113)。
【0069】
第2情報処理装置2の制御部21は、学習要求を受信する(ステップS214)。なお、制御部21は、第1識別器122及び第1損失関数123を受信した後、学習要求を受信することなくステップS215以降の処理を実行してもよい。
【0070】
制御部21は、第1識別器122の学習のための訓練データを取得する(ステップS215)。具体的には、制御部21は、変換後ユーザ情報の各データに対し、サンプルのクラスを示すラベルを付与したデータセットを生成することにより、訓練データとして取得する。
【0071】
制御部21は、取得した訓練データを用いて第1識別器122の学習を行う(ステップS216)。具体的には、制御部21は、訓練データに含まれる変換後ユーザ情報を入力データとして第1識別器122に入力し、第1識別器122から出力されるクラスを取得する。制御部21は、出力されたクラスと、正解値であるクラスとの誤差を最適化するよう、例えば誤差逆伝播法を用いて、各種パラメータを調整する。
【0072】
制御部21は、例えば所定のエポック数の学習を終了した後、第1損失関数123を用いて求められる第1識別器122の評価値を取得する(ステップS217)。制御部21は、取得した評価値を第1情報処理装置1へ送信する(ステップS218)。
【0073】
第1情報処理装置1の制御部11は、第1識別器122の評価値を受信する(ステップS114)。制御部11は、受信した評価値に基づいて、第1識別器122の学習を終了する否かを判定する(ステップS115)。制御部11は、例えば、受信した評価値が予め設定される閾値未満であるか否かを判定することにより、学習を終了するか否かを判定してよい。
【0074】
受信した評価値が予め設定される閾値以上であることにより、学習を終了しないと判定した場合(ステップS115:NO)、制御部11は、処理をステップS113へ戻し、第2情報処理装置2に対する学習及び評価値送信の要求を繰り返す。
【0075】
受信した評価値が予め設定される閾値未満であることにより、学習を終了すると判定した場合(ステップS115:YES)、制御部11は、第1識別器122の学習に対する終了命令及び第1識別器122の要求を第2情報処理装置2へ送信する(ステップS116)。
【0076】
第2情報処理装置2の制御部21は、終了命令及び第1識別器122の要求を受信する
(ステップS219)。制御部21は、第1識別器122の学習を終了し、学習済みの第1識別器122の定義情報を第1情報処理装置1へ送信する(ステップS220)。なお、学習を終了するか否かの判定は、第2情報処理装置2が実行してもよい。この場合、第2情報処理装置2は、予め第1情報処理装置1から判定基準となる閾値を取得し、取得した閾値を用いて学習を終了するか否かを判定するものであってよい。
【0077】
第1情報処理装置1の制御部11は、学習済みの第1識別器122を受信し(ステップS117)、記憶部12に記憶する第2識別器222の定義情報を更新する。
【0078】
制御部11は、第2情報処理装置2における学習に対するインセンティブを決定する(ステップS118)。インセンティブは、例えば学習料金、ポイント等により第2情報処理装置2へ与えられる。制御部11は、例えば第2エンティティにおける第1識別器122の学習量、第1識別器122における第1損失関数123の評価値、及び第1識別器122の学習に使用された前記第2エンティティのデータ量(ユーザ情報のデータ量)の少なくとも1つに応じて、第2エンティティに対するインセンティブを決定する。第1識別器122の学習量(例えば学習に要した学習時間)が大きい程、より多くのインセンティブが付与される。第1損失関数123の評価値が小さい程、より多くのインセンティブが付与される。ユーザ情報のデータ量(例えばサンプル数)が大きい程、より多くのインセンティブが付与される。制御部11は、決定したインセンティブを第2情報処理装置2へ送信してもよい。
【0079】
上述の処理において、第2情報処理装置2における学習の進捗状況が第1情報処理装置1において認識可能に構成されてもよい。例えば、第2情報処理装置2は、第2情報処理装置2における学習実行の有無、学習を開始してからの経過時間、学習回数等の進捗状況を所定間隔で第1情報処理装置1へ送信する。学習の進捗状況を情報処理システム100内で共有することにより、自装置以外で実行される学習状況を適切に把握することができるため、利便性を向上し得る。
【0080】
図9は、共通データを特定する処理手順の一例を示すシーケンス図である。
【0081】
第1情報処理装置1の制御部11は、顧客DB121を参照して、顧客情報のデータのうち予め合意したデータ列のデータ(サンプル)を抽出する。制御部11は、定義済みのデータ変換方法に従い、抽出した各サンプルを共通データ構造Cに変換し(ステップS131)、変換後顧客情報を生成する。
【0082】
制御部11は、変換後顧客情報のサンプルを第1識別器122に入力する(ステップS132)。詳細には、制御部11は、共通データ構造Cにおける各列の値をそれぞれ、各列に対応付けられる第1識別器122の入力ノードに入力する。制御部11は、第1識別器122から出力されるクラスの識別結果を取得する(ステップS133)。制御部11は、顧客情報の全てサンプルに対し上記第1識別器122による識別処理を行い、全てのサンプルに対するクラスを推定する。
【0083】
制御部11は、全てのサンプルに対するクラスの識別結果に基づいて、顧客情報及びユーザ情報に共通して存在するサンプル、すなわち顧客情報及びユーザ情報の共通集合を特定する(ステップS134)。
【0084】
上述の処理において、第1識別器122は、第2情報処理装置2側のみにおいて学習されるものに限定されず、第1情報処理装置1側においてさらに学習されるものであってもよい。第1情報処理装置1は、例えばステップS114において評価値とともに、学習途中の第1識別器122を取得する。第1情報処理装置1は、共通データ構造に変換した顧
客情報の各データと、サンプルのクラスを示すラベルとを対応付けた訓練データを用いて、第1識別器122の学習を実行する。第1情報処理装置1は、学習を行った第1識別器122における評価値を算出し、学習を終了するか否かを判定する。学習を終了しない場合、再度第1情報処理装置1による学習を行ってもよく、学習を行った第1識別器122を第2情報処理装置2へ送信し、更なる第1識別器122の学習を第2情報処理装置2へ要求してもよい。第2情報処理装置2及び第1情報処理装置1の両方で学習を行うことにより、第1識別器122の精度をより向上することができる。
【0085】
上記では、第1エンティティ及び第2エンティティ間でデータ連携を行う構成を説明したが本実施形態は限定されるものではなく、情報処理システム100は3つ以上のエンティティを含むものであってもよい。例えば、第1情報処理装置1の要求に応じて、第2エンティティの第2情報処理装置2及び第3エンティティの第3情報処理装置(不図示)を含む複数の情報処理装置において、各エンティティの保有するデータを用いて第1識別器122の学習が行われてもよい。第1情報処理装置1は、複数の情報処理装置それぞれから受信する第1識別器122の定義情報を統合して、第1識別器122を構築する。
【0086】
上述の処理によれば、共通データ構造Cを定義することにより、第1情報処理装置1及び第2情報処理装置2それぞれの保有する構造の異なるデータを好適に活用することができる。第1情報処理装置1又は第2情報処理装置2は、データ概要情報のうち必要な情報(認識可能な情報)のみに基づいて、共通データ構造Cに変換するデータ列を指定できるため、データ連携のための事前準備が容易となる。
【0087】
例えば、事業者間におけるデータそのものを共有する場合には、共有する事業者に対しデータを送信することが必要とされる。個人情報保護の観点から、送信対象のデータが個人を特定し得るデータであるときはデータの暗号化が必要であるといったことに加え、個人を特定し得る情報を暗号化したものについても個人情報として保護を行うことが必要とされている。このため、個人情報に係るデータを使用するためには個人の同意を取得しなければならず、容易にデータを利用することができない。本実施形態では、第1識別器122を通して事業者間におけるデータ連携を実現することで、事業者間におけるデータそのものの共有を不要とするため、それぞれの事業者におけるデータを容易に活用でき、データの秘匿性を向上し得る。
【0088】
第1情報処理装置1は、第1識別器122を用いて、精度よく顧客情報とユーザ情報との共通集合を得ることができる。第1識別器122は、予めユーザ情報に存在しないガベージデータを訓練データに加えて学習を行う。これにより、本実施形態の共通データ構造Cのように、文字列の出現頻度に基づいてデータ変換を行うものであっても、偽陽性と判定される可能性を低減し、第1識別器122の認識精度を向上することができる。
【0089】
(第2実施形態)
第2実施形態では、第2情報処理装置2の学習要求に応じて、第1情報処理装置1側で第2識別器を学習する構成を説明する。以下では主に第1実施形態との相違点を説明し、第1実施形態と共通する構成については同一の符号を付してその詳細な説明を省略する。
【0090】
図10は、第2実施形態における情報処理システム100の構成例を示す模式図である。第2情報処理装置2の記憶部22には、プログラム2P及びユーザDB221に加えて、第2識別器222及び第2損失関数223が記憶されている。
【0091】
第2識別器222は、第1情報処理装置1及び第2情報処理装置2それぞれに保有されるデータにおける共存データを識別するための識別器である。第2識別器222は、例えばニューラルネットワークにより構成される機械学習モデルである。第2識別器222は
、人工知能ソフトウェアを構成するプログラムモジュールとしての利用が想定される。第2損失関数223は、第2識別器222の学習に用いる損失関数である。第2損失関数223は、例えば負の対数尤度であってもよい。
【0092】
第2識別器222は、各事業者におけるデータから抽出したサンプルが入力された場合、当該サンプルのクラスを示す情報を出力するように構成される。第2識別器222の構成は、
図4に示した第1識別器122と同様であってよい。
【0093】
第2実施形態では、第2情報処理装置2の学習要求に応じて、第1情報処理装置1が顧客情報を用いて第2識別器222を学習する。第2情報処理装置2は、学習済みの第2識別器222を第1情報処理装置1から受信し、ユーザ情報及び学習済みの第2識別器222を用いて演算を行い、ユーザ情報と顧客情報との共通集合を特定する。
【0094】
図11及び
図12は、第2識別器222の生成に関する処理手順の一例を示すシーケンス図である。
【0095】
第2情報処理装置2の制御部21は、第2識別器222及び該第2識別器222に対する第2損失関数223を生成する(ステップS241)。生成される第2識別器222は、未学習状態のニューラルネットワークモデルである。制御部21は、生成した第2識別器222及び第2損失関数223を第1情報処理装置1へ送信する(ステップS242)。
【0096】
第1情報処理装置1の制御部11は、第2識別器222及び第2損失関数223を受信する(ステップS141)。制御部21は、顧客情報に存在しないランダムな値を持つガベージクラスに属するガベージデータを生成する(ステップS142)。
【0097】
制御部11は、顧客DB121を参照して、顧客情報のデータのうち予め合意したデータ列のデータ(サンプル)を抽出する。制御部21は、抽出したサンプル及びガベージデータを含む顧客情報を共通データ構造Cに変換し(ステップS143)、変換後顧客情報を生成する。使用するデータ列は、第1識別器122の学習に用いるデータ列と同一であってもよく、異なるものであってもよい。
【0098】
第2情報処理装置2の制御部21は、第2識別器222の学習要求を第1情報処理装置1へ送信する(ステップS243)。
【0099】
第1情報処理装置1の制御部11は、学習要求を受信する(ステップS144)。制御部11は、変換後顧客情報の各データに対し、サンプルのクラスを示すラベルを付与したデータセットを生成することにより、第2識別器222の学習のための訓練データを取得する(ステップS145)。
【0100】
制御部11は、取得した訓練データを用いて第2識別器222の学習を行う(ステップS146)。具体的には、制御部11は、訓練データに含まれる変換後顧客情報を入力データとして第2識別器222に入力し、第2識別器222から出力されるクラスを取得する。制御部11は、出力されたクラスと、正解値であるクラスとの誤差を最適化するよう、例えば誤差逆伝播法を用いて、各種パラメータを調整する。
【0101】
制御部11は、例えば所定のエポック数の学習を終了した後、第2損失関数223を用いて求められる第2識別器222の評価値を取得する(ステップS147)。制御部11は、取得した評価値を第2情報処理装置2へ送信する(ステップS148)。
【0102】
第2情報処理装置2の制御部21は、第2損失関数223の評価値を受信する(ステップS244)。制御部11は、受信した評価値に基づいて、第2識別器222の学習を終了する否かを判定する(ステップS245)。
【0103】
例えば受信した評価値が予め設定される閾値以上であることにより、学習を終了しないと判定した場合(ステップS245:NO)、制御部21は、処理をステップS243へ戻し、第1情報処理装置1に対する学習及び評価値送信の要求を繰り返す。
【0104】
受信した評価値が予め設定される閾値未満であることにより、学習を終了すると判定した場合(ステップS245:YES)、制御部21は、第2識別器222の学習に対する終了命令及び第2識別器222の要求を第1情報処理装置1へ送信する(ステップS246)。
【0105】
第1情報処理装置1の制御部11は、終了命令及び第2識別器222の要求を受信する(ステップS149)。制御部11は、第2識別器222の学習を終了し、学習済みの第2識別器222として、学習済みの第2識別器222の定義情報を第2情報処理装置2へ送信する(ステップS150)。
【0106】
第2情報処理装置2の制御部21は、学習済みの第2識別器222を受信し(ステップS247)、記憶部22に記憶する第2識別器222の定義情報を更新する。制御部21は、第1情報処理装置1における学習に対するインセンティブを決定する(ステップS248)。
【0107】
以降、第2情報処理装置2の制御部21は、
図9で示した第1実施形態における第1情報処理装置1と同様の処理を実行することによりユーザ情報と顧客情報とに共通して存在するサンプルを特定することができる。具体的には、第2情報処理装置2は、ユーザ情報を共通データ構造Cに変換した変換後ユーザ情報を生成し、生成した変換後ユーザ情報のサンプルをそれぞれ学習済みの第2識別器222へ入力する。第2情報処理装置2は、全てのサンプルに対し第2識別器222から出力されるクラスの識別結果を取得する。第2情報処理装置2は、取得した全てのサンプルに対する識別結果に基づいて、ユーザ情報と顧客情報との共通集合を特定する。
【0108】
本実施形態によれば、第1情報処理装置1及び第2情報処理装置2のそれぞれにおいて識別器の学習を行う。各エンティティはそれぞれ、学習済みの識別器を取得することができるため、情報処理システム100におけるデータの活用度を向上することができる。
【符号の説明】
【0109】
100 情報処理システム
1 第1情報処理装置
11 制御部
12 記憶部
13 通信部
14 入出力部
1P プログラム
1A 記録媒体
121 顧客DB
122 第1識別器
123 第1損失関数
2 第2情報処理装置
21 制御部
22 記憶部
23 通信部
24 入出力部
2P プログラム
2A 記録媒体
221 ユーザDB
222 第2識別器
223 第2損失関数