JP6917942B2 - データ分析サーバ、データ分析システム、及びデータ分析方法 - Google Patents

データ分析サーバ、データ分析システム、及びデータ分析方法 Download PDF

Info

Publication number
JP6917942B2
JP6917942B2 JP2018076363A JP2018076363A JP6917942B2 JP 6917942 B2 JP6917942 B2 JP 6917942B2 JP 2018076363 A JP2018076363 A JP 2018076363A JP 2018076363 A JP2018076363 A JP 2018076363A JP 6917942 B2 JP6917942 B2 JP 6917942B2
Authority
JP
Japan
Prior art keywords
value
information
decision tree
data analysis
encrypted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018076363A
Other languages
English (en)
Other versions
JP2019184852A (ja
Inventor
雅之 吉野
雅之 吉野
尚宜 佐藤
尚宜 佐藤
健 長沼
健 長沼
鈴木 貴之
貴之 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018076363A priority Critical patent/JP6917942B2/ja
Priority to US16/379,457 priority patent/US11120143B2/en
Priority to DE102019205130.8A priority patent/DE102019205130A1/de
Publication of JP2019184852A publication Critical patent/JP2019184852A/ja
Application granted granted Critical
Publication of JP6917942B2 publication Critical patent/JP6917942B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/045Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ分析サーバ、データ分析システム、及びデータ分析方法に関する。
近年、効率的なデータ分析を目的に、近年、情報システムを自組織が維持するのではなく、他組織が提供する情報システムにデータ分析を依頼するデータ分析代行サービスが注目されている。また、データ分析手法の一種である決定木分析や、これを拡張したランダムフォレストは広く使われており、例えば、非特許文献1に決定木分析とランダムフォレストが記載されている。
上述したようなデータ分析代行サービスを利用する場合、分析を代行する外部組織へデータ内容が漏洩してしまう。そこで、非特許文献2には、プライバシ情報などの機微情報が含まれているデータに対して暗号化技術を適用することにより安全に、ランダムフォレスト分析を行う技術が記載されている。具体的には、非特許文献2には、ランダムフォレスト分析を、学習フェーズと分析フェーズに分類し、分析フェーズにおいてデータ内容が漏洩しない手法が記載されている。
Trevor Hastie,Robert Tibshirani,Jerome Friedman,"The Element of Statistical Learning" Springer Series in Statics. Springer New York Inc.,2001、p.305−316、p.587−604 David J. Wu,Tony Feng,Michael Naehrig, and Kristin Lauter,"Privately Evaluating Decision Trees and Random Forests"米国PETS学会、2016
しかしながら、例えば学習用データに機微情報が含まれている可能性もあるため、決定木分析の学習フェーズにおいても、データの秘匿性を向上させる必要がある。そこで本発明の一態様は、決定木分析の学習フェーズにおけるデータの秘匿性を向上させることを目的とする。
上記課題を解決するため、本発明の一態様は以下の構成を採用する。データ分析サーバであって、プロセッサと、メモリと、を含み、前記メモリは、学習用情報から生成された基礎点付き情報を保持し、前記基礎点付き情報は、第1高機能暗号で暗号化された説明変数の値と、所定の暗号方式で暗号化された目的変数の値と、前記説明変数の値の前記学習用情報における出現件数に基づく基礎点と、が対応づけられた複数のレコードを含み、前記基礎点付き情報が保持する基礎点は、第2高機能暗号で暗号化されており、前記プロセッサは、前記基礎点付き情報に含まれる前記所定の暗号方式で暗号化された目的変数の値、に対応づけられた葉ノードを有する決定木を生成する決定木生成処理を実行し、前記決定木生成処理において、前記決定木における前記説明変数の値による分岐規則を決定し、前記分岐規則の決定において、1以上の分岐規則候補を生成し、前記1以上の分岐規則候補それぞれについて、前記基礎点付き情報を参照して、当該分岐規則候補における説明変数の値に前記基礎点付き情報において対応する基礎点を集計する処理と、前記1以上の分岐規則候補それぞれについて、前記集計した基礎点と所定の評価関数とに基づいて当該分岐規則候補における評価点を算出する処理と、前記算出した評価点に基づいて、前記1以上の分岐規則候補から採用する分岐規則を決定する処理と、を前記1以上の分岐規則候補における説明変数の値及び当該説明変数の値に対応する基礎点を暗号化したまま実行する、データ分析サーバ。
本発明の一態様によれば、決定木分析の学習フェーズにおけるデータの秘匿性を向上させることができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
実施例1におけるデータ分析システムの構成例を示すブロック図である。 実施例1における提供者サーバの構成例を示すブロック図である。 実施例1における分析代行サーバの構成例を示すブロック図である。 実施例1における委託者サーバの構成例を示すブロック図である。 実施例1における学習用テーブルの一例である。 実施例1における決定木の一例を示す説明図である。 実施例1におけるデータ分析システムによる処理の一例を示すシーケンス図である。 実施例1における基礎点付きテーブル生成処理の一例を示すフローチャートである。 実施例1における、学習用テーブルから基礎点付きテーブルが作成される処理の概要の一例を示す説明図である。 実施例1における決定木の生成処理の一例を示すフローチャートである。 実施例1における決定木の生成処理の概要の一例を示す説明図である。 実施例1における決定木の一例である。 実施例1における決定木テーブルの一例である。 実施例1におけるノード探索処理の一例を示すフローチャートである。 実施例1における分析用テーブルの暗号化処理の一例を示す説明図である。 実施例1における分析処理の一例を示すフローチャートである。 実施例1における分析処理の概要の一例を示す説明図である。 実施例1における葉ノードテーブルの一例である。 実施例2における決定木生成処理の一例を示すフローチャートである。 実施例2における、暗号化された基礎点付きテーブルからのレコード抽出処理の概要の一例を示す説明図である。 実施例2における、複数の決定木テーブルを用いた分析処理の一例を示すフローチャートである。
以下、本発明の実施形態を図面に基づいて詳細に説明する。本実施形態において、同一の構成には原則として同一の符号を付け、繰り返しの説明は省略する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。
まず、本発実施形態で使用される用語と記号を定義する。
(1)テーブル
テーブルとは、データ構造の一種である。本実施形態では表形式で取り扱われるデータをテーブルと呼ぶ。また、テーブルを行単位(横軸)に分割した際のデータの集合をレコードと呼び、テーブル内の一要素をセルと呼ぶ。セルにはデータが入力されている。さらに、テーブルを列単位(縦軸)に分割し、各列はそれぞれ属性を示す。例えば、名前、性別、年齢等がテーブルの属性に用いられる。属性ごとに、入力可能な値が定められており、これらの値の集合を平文空間と呼ぶ。属性が「性別」である場合は、(男、女)が平文空間である。属性が「がん」である場合は、食道、大腸、皮膚、膀胱などが平文空間の一例である。属性が年齢である場合は、0から100程度の整数からなる集合は平文空間の一例である。
なお、本実施形態において後述するデータ分析システムが使用する情報がテーブルである例を説明するが、当該情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブルの他、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。
学習用テーブルを例にとって、テーブルについて説明する。図5は、学習用テーブルの一例である。学習用テーブルの0行目のレコード内の各セルにはある病院の患者の属性が記載されている。1列目の属性は患者の性別であり、性別の平文空間は男性と女性で構成される。従って、1列目の各セルの値は男性、女性のいずれかである。また、2列目の属性は患者の癌(がん)の発生個所が記載されており、2列目の各セルの値は、平文空間(食道、大腸、皮膚、膀胱)に含まれる値のいずれかである。3列目の属性は患者が併発しやすいがんの部位が記載されている。
(2)暗号化と復号化
本実施形態では、暗号化されていないデータを平文データと呼ぶ。暗号化とは、暗号鍵と平文データを入力として受け付け、平文データを変換した暗号化データを出力することを指す。本実施形態では、暗号化したデータをE()で表す。例えば0と1を暗号化すると、それぞれ暗号化データE(0)、E(1)が得られる。また、復号化とは、復号鍵と暗号化データを入力として受け付け、暗号化データから逆変換した平文データを出力することを指す。
(3)標準暗号
標準暗号とは、暗号化と復号化の機能を備えた暗号化方式である。
(4)検索可能暗号
検索可能暗号とは、暗号化と復号化の機能に加え、検索可能暗号で暗号化したデータを、暗号化したままで等号を判定する機能を備えた暗号化方式である。この判定機能は、2つの暗号化データを入力として受け付け、それぞれの暗号化前の平文データの値に基づき判定する。例えば、E(0)とE(1)が入力された場合、検索可能暗号の検索機能は、値が異なること(0=!1)を意味する記号を出力する。また、E(0)とE(0)が入力された場合は、検索機能は、値が同じであること(0=0)を意味する記号を出力する。検索可能暗号は、高機能暗号及び関数型暗号の一例である。
(5)集計比較可能暗号
集計比較可能暗号とは、暗号化と復号化の機能に加え、暗号化したまま集計する機能と、集計した暗号化データを暗号化したまま値の大小を比較する機能を備えた暗号化方式である。比較機能は、2つの暗号化データを入力として受け付け、それぞれの値に基づき、大小関係の判定結果を出力する。例えば、E(0)とE(1)が入力された場合は一方の値が大きいこと(0<1)を意味する記号を出力する。また、比較機能は、E(0)とE(0)が入力された場合は値が同じであること(0=0)を意味する記号を出力する。また、比較機能は、E(0)とE(1)を集計したE(0+1)と、E(1)とE(1)を集計したE(1+1)とを比較し、E(0+1)<E(1+1)を判定できる。集計比較可能暗号として、暗号化状態での任意の演算を実現可能とする完全準同型暗号や、ネットワーク経由で実施する秘匿計算などの手段が知られている。集計比較可能暗号は、高機能暗号及び関数型暗号の一例である。
(6)決定木と決定木分析
決定木分析とは、予測や判別等を目的とした機械学習の一種である。一般に、決定木分析では、学習用テーブルを用いた学習フェーズにおいて決定木と呼ばれる学習モデルを構築し、分析フェーズにおいて決定木を用いて分析用テーブルの判別や予測を実施する。決定木の最上位である根ノード、及び根ノード以外の内部ノードには学習用テーブルの変数(レコード)が関連付けられ、最下位の葉ノードには判別や予測結果に関する値が関連付けられている。
図6は、図5の学習用テーブルの属性1と属性2の値を用いて、属性3の値を予測する場合の決定木の一例を示す説明図である。根ノードには学習用テーブル222が関連付けられており、ノード番号として1番が割り当てられている。学習用テーブル222の属性1(性別)で、根ノードから分岐する枝が設定されている場合、男性又は女性で、学習用テーブル222を振り分ける。すなわち、「男性」で分岐したノードには、2番が割り振られ、属性1(性別)が男性のレコードのみが関連付けられる。同様に、「女性」で分岐したノードには、3番が割り振られ、属性1(性別)が女性のレコードのみが関連付けられる。
2番のノード以下及び3番のノード以下の分岐は、属性2(がん)が用いられた、最下位の葉ノードに到達するまでの分岐用の枝、が伸びている。葉ノードには条件を満たす学習用テーブル222が分類や予測に関連する結果として関連付けられている。例えば、決定木分析の結果、8番の葉ノードに至った場合、分析結果として属性3の口腔がんを得る。
決定木分析では、決定木を構築した後、分析用のテーブルの判別や分類をする分析フェーズを実施する。分析フェーズでは決定木による分岐に従い、根ノードから葉ノードまでの経路を辿り、葉ノードに関連付けられた分類や予測に関連する結果を出力する。
(7)ランダムフォレスト分析
ランダムフォレスト分析は、決定木分析の一種である。学習フェーズにおいて、学習用テーブルからランダムなデータ抽出を繰り返し行うことにより多数の決定木を作成し、分析フェーズにおいて多数の決定木による決定木分析の結果を集約し、最終的な分類や予測結果を作成する手法である。結果を集約する際には、多数決による判定方法や、複数の結果の平均値や中央値等が利用される。
図1は、本実施例のデータ分析システムの構成例を示すブロック図である。データ分析システムは、例えば、提供者サーバ200、分析代行サーバ300、及び委託者サーバ400を含む。例えば、提供者サーバ200と分析代行サーバ300、委託者サーバ400と分析代行サーバ300は、ネットワーク100を介して互いにデータを送受信できる。
提供者サーバ200は、分析代行サーバ300に対して、決定木を作成するための学習用テーブルを暗号化した上で提供する。委託者サーバ400は、分析用データを暗号化した上で分析代行サーバ300に送信し、分析代行サーバ300に分析を委託する。分析代行サーバ300は、暗号化された学習用テーブルから決定木を生成し、決定木を用いて分析用データを分析する。
図2は、本実施例の提供者サーバ200の構成例を示すブロック図である。提供者サーバ200は、例えば、入力部201、出力部202、通信部203、演算部210、及び記憶部220を含む。入力部201は、例えば、キーボード及びマウス等の周辺機器に接続され、オペレータからの入力を受け付けるインターフェースである。
出力部202は、例えば、ディスプレイ及びプリンタ等の周辺機器に接続され、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースである。通信部203は、ネットワーク100を介して所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
演算部210は、プロセッサを含み、記憶部220に格納されたプログラムを実行する。記憶部220は、メモリ及び補助記憶装置を含む。メモリは、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサが実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
補助記憶装置は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置であり、演算部210に含まれるプロセッサが実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置から読み出されて、メモリにロードされて、プロセッサによって実行される。
演算部210が実行するプログラムは、リムーバブルメディア(CD−ROM、フラッシュメモリなど)又はネットワーク100を介して提供者サーバ200に提供され、非一時的記憶媒体である不揮発性の補助記憶装置に格納される。このため、提供者サーバ200は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。分析代行サーバ300及び委託者サーバ400についても同様である。
提供者サーバ200は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。分析代行サーバ300及び委託者サーバ400についても同様である。
演算部210は、例えば、基礎点付きテーブル生成部211及び暗号化部212を含む。例えば、演算部210は、記憶部220にロードされた基礎点付きテーブル生成プログラムに従って動作することで、基礎点付きテーブル生成部211として機能し、記憶部220にロードされた暗号化プログラムに従って動作することで、暗号化部212として機能する。分析代行サーバ300及び委託者サーバ400の演算部に含まれる各部についても同様である。記憶部220は、暗号化鍵221、学習用テーブル222、及び評価関数223を格納する。
基礎点付きテーブル生成部211は、学習用テーブル222と評価関数223とを用いて、基礎点付きテーブルを生成する。暗号化部212は、暗号化鍵221を用いて、学習用テーブル222内の定められた領域に対して、標準暗号や集計比較可能暗号で暗号化し、基礎点付きテーブルを暗号化する。
暗号化鍵221は、学習用テーブル222の値を暗号化するための暗号化鍵である。学習用テーブル222は、分析代行サーバ300が決定木を生成するための学習用テーブルを格納する。評価関数223は、学習用テーブルから基礎点を算出するための関数である。
図3は、本実施例の分析代行サーバ300の構成例を示すブロック図である。分析代行サーバ300は、例えば、入力部301、出力部302、通信部303、演算部310、及び記憶部320を含む。入力部301、出力部302、通信部303、演算部310、及び記憶部320についての説明は、それぞれ、入力部201、出力部202、通信部203、演算部210、及び記憶部220についての説明と同様であるため省略する。
演算部310は、例えば、決定木生成部311、ノード探索部312、決定木分析部313、暗号判定部314を含む。記憶部320は、例えば、評価関数321を格納する。決定木生成部311は、暗号化された基礎点付きテーブルを用いて、暗号化された状態のまま、決定木を生成する。ノード探索部312は、決定木生成部311が決定木を生成する際に、ノード探索を実施する。
決定木分析部313は、決定木生成部311が生成した決定木と、後述する暗号化された分析用テーブルと、を用いて、暗号化したまま、分析用テーブルを分析する。暗号判定部314は、分析用テーブルにおいて、暗号化したまま、比較や一致判定を実施する。評価関数321は、ノード探索における評価点を算出するための関数である。
図4は、本実施例の委託者サーバ400の構成例を示すブロック図である。委託者サーバ400は、例えば、入力部401、出力部402、通信部403、演算部410、及び記憶部420を含む。入力部401、出力部402、通信部403、演算部410、及び記憶部420についての説明は、それぞれ、入力部201、出力部202、通信部203、演算部210、及び記憶部220についての説明と同様であるため省略する。
演算部410は、暗号化部411及び復号化部412を含む。記憶部420は、分析用テーブル421、暗号化鍵422、及び復号化鍵423を格納する。暗号化部411は、暗号化鍵422を用いて、学習用テーブル222内の定められた領域に対し、標準暗号や集計比較可能暗号で暗号化する。復号化部412は、受け取った分析結果を復号する。
分析用テーブル421は、分析代行サーバ300による決定木を用いた分析対象のデータである。暗号化鍵422は、分析用テーブル421の値を暗号化するための暗号化鍵である。復号化鍵423は、分析代行サーバ300から受信した分析結果を復号化するための復号化鍵である。
なお、委託者サーバ400の一部又は全部の機能を提供者サーバ200が担ってもよいし、提供者サーバ200の一部又は全部の機能を委託者サーバ400が担ってもよい。
図7は、本実施例のデータ分析システムによる処理の一例を示すシーケンス図である。具体的には、図7は、具体的には、提供者サーバ200、分析代行サーバ300、及び委託者サーバ400それぞれによる処理の概要の一例と、ネットワーク100経由で送受信されるデータの概要の一例を示す。
データ分析システムによる処理は、学習フェーズと分析フェーズとを含む。学習フェーズにおいて、提供者サーバ200が学習用テーブル222を暗号化し、分析代行サーバ300は暗号化された学習用テーブル222から決定木を生成する。分析フェーズにおいて、委託者サーバ400が分析用テーブルを暗号化し、分析代行サーバ300は暗号化された分析用テーブルから決定木を用いて分析し、分析結果を委託者サーバ400に提供するまでの分析フェーズと、を含む。
まず、学習フェーズについて説明する。基礎点付きテーブル生成部211は、学習用テーブル222の基礎点を算出し、算出した基礎点を学習用テーブル222に付加した基礎点付きテーブルを生成する(S210)。基礎点付きテーブルの生成処理の詳細については後述する。次に、暗号化部212は、基礎点付きテーブルを暗号化し(S220)、分析代行サーバ300へ送信する(S230)。
分析代行サーバ300が基礎点付きテーブルを受信すると、決定木生成部311、決定木分析部313、及び暗号判定部314は、受信した基礎点付きテーブルから、決定木を作成する(S330)。決定木の作成処理の詳細については後述する。
続いて、分析フェーズを表すシーケンスを説明する。暗号化部411は、分析用テーブル421を暗号化し(S410)、分析代行サーバ300へ送信する(S420)。分析代行サーバ300が分析用テーブルを受信すると、決定木分析部313は、分析用テーブルを分析し(S350)、分析結果を、委託者サーバ400へ送信する(S370)。分析処理の詳細については後述する。委託者サーバ400は、受信した分析結果が暗号化されている場合、復号する(S430)。
図8は、ステップS210における、基礎点付きテーブル生成処理の一例を示すフローチャートである。基礎点付きテーブル生成部211は、学習用テーブル222における属性を、説明変数と目的変数に分類し、説明変数に分類した属性それぞれの平文空間の値の組合せから一時テーブルを作成する(S211)。なお、どの属性を説明変数に分類し、どの属性を目的変数に分類するかは、例えば、予め定められていてもよいし、提供者サーバ200のユーザの入力によって定められてもよい。
図9は、学習用テーブル222から基礎点付きテーブルが作成される処理の概要の一例を示す説明図である。例えば、学習用テーブル222が3種類の属性(性別、がん、併発)を有している場合、基礎点付きテーブル生成部211は、ステップS211において、「性別」と「がん」を説明変数に、「併発」を目的変数に分類する。
基礎点付きテーブル生成部211は、ステップS211において説明変数それぞれの平文空間の値の組合せである(男性、食道)(女性、食道)(男性、大腸)(女性、大腸)(男性、皮膚)、(女性、皮膚)、(男性、膀胱)、(女性、膀胱)それぞれを、レコードとして有する一時テーブル251を作成する。また、基礎点付きテーブル生成部211は、一時テーブル251に目的変数欄を追加する。
なお、基礎点付きテーブル生成部211は、学習用テーブル222に出現しない属性の値を含む、平文空間の値の組み合わせを生成してもよい。具体的には、例えば、「年齢」のような、数値型の属性については、学習用テーブル222に出現しない値であっても、所定の範囲(例えば0歳〜100歳)に含まれる値であれば、平文空間の値として扱われる。また、例えば、「性別」のような文字型の属性(又は数値型であるが名義尺度を示す属性)については、学習用テーブル222に「男性」のレコードしかない場合であっても、予め定められた値である「男性」、「女性」の双方を平文空間の値として扱われる。これにより、学習用テーブル222の秘匿性が向上する。
また、基礎点付きテーブル生成部211は、平文空間の値を集約してもよい。具体的には、基礎点付きテーブル生成部211は、例えば、「年齢」のような、数値型の属性については、所定の範囲ごとに(例えば0〜9歳、10〜19歳、・・・、90〜99歳、100歳以上)値を集約して、平文空間の新たな値としてもよい。また、例えば、基礎点付きテーブル生成部211は、例えば、「併発」のような文字型の属性(又は数値型であるが名義尺度を示す属性)については、予め定められたグループに値を集約して(例えば、「大腸」及び「小腸」をグループ1、「食道」及び「膀胱」をグループ2、・・・等)、平文空間の新たな値としてもよい。これにより、学習フェーズ及び分析フェーズの処理量、及び後述する決定木のデータ量が低減する。
また、基礎点付きテーブル生成部211は、例えば、一時テーブル251のレコードの説明変数の値の組み合わせそれぞれについて、学習用テーブル222において対応する目的変数の属性値のうち最も出現件数が多い属性値を抽出する。基礎点付きテーブル生成部211は、抽出した属性値それぞれを、一時テーブル251における説明変数の値の組合わせに対応する目的変数の値として、一時テーブル251の目的変数欄に格納する。
図9では、例えば、説明変数の値の組み合わせ(男性、食道)に学習用テーブル222において対応する目的変数の値のうち、最も出現件数の多いものが「口腔」であったため、一時テーブル251の、説明変数の値の組み合わせ(男性、食道)のレコードにおける目的変数欄に値「口腔」が格納されている。また、図9では、例えば、説明変数の値の組み合わせ(男性、皮膚)に学習用テーブル222において対応する目的変数の値がない、又は学習用テーブル222に説明変数の値の組み合わせ(男性、皮膚)が存在しないため、一時テーブル251の説明変数の値の組み合わせ(男性、食道)のレコードにおける目的変数欄の値が空白値(例えば、null値)である。
なお、基礎点付きテーブル生成部211は、一時テーブル251に付加する目的変数の値として、学習用テーブル222に存在しない値を新たに生成してもよい。説明変数の値の組み合わせ(男性、食道)に、学習用テーブル222において対応する目的変数の値として、「口腔」が80件、「小腸」が20件あった場合を想定する。この場合、基礎点付きテーブル生成部211は、例えば、併発の割合を示す新たな目的変数の値「口腔:80%、小腸:20%」を生成し、一時テーブル251の対応するレコードに格納してもよい。
次に、基礎点付きテーブル生成部211は、一時テーブル251の各レコードの説明変数の組み合わせが、学習用テーブル222において出現する出現件数を集計する(S212)。例えば、学習用テーブル222において平文空間の値の組み合わせが(男性、食道)であるレコードが100件あった場合は、一時テーブル251の(男性、食道)レコードの出現件数を100件と評価する。基礎点付きテーブル生成部211は、同様の処理を一時テーブル251の各レコードについて行い、図9の例における出現件数を示すカラム252を生成する。
次に、基礎点付きテーブル生成部211は評価関数223に基づいて、基礎点を算出する(S213)。誤り率、情報エントロピー、及びジニ係数等はいずれも評価関数223の一例である。本実施例では、評価関数223が誤り率である場合の処理を説明する(評価関数223がジニ係数又は情報エントロピーの場合であっても同様の処理であるため、これらの場合における説明は省略する)。
評価関数223が誤り率の場合、基礎点付きテーブル生成部211は、出現件数をそのまま基礎点として算出し、基礎点を示すカラムを一時テーブル251に付加した、基礎点付きテーブルを生成する(S214)。なお、図9では、基礎点付きテーブルにおける各レコードに説明変数が1つだけ格納されている(即ち、目的変数の組み合わせに対して説明変数が一意に定まる)例を説明したが、基礎点付きテーブルにおけるレコードに複数の目的変数が格納されていてもよい。
また、前述したようにステップS220において暗号化部212は、基礎点付きテーブルの各セルを暗号化する。具体的には、例えば、暗号化部212は、基礎点欄を集計比較可能暗号により暗号化し、説明変数欄を検索可能暗号で暗号化し、目的変数欄を標準暗号で暗号化する。なお、目的変数欄は標準暗号以外の暗号(例えば、検索可能暗号や集計比較可能暗号)で暗号化されていてもよいが、暗号化処理及び復号化処理の処理量が少なく、かつセキュリティレベルが高い暗号方式である標準暗号が採用されることが望ましい。基礎点付きテーブルが暗号化されることにより、暗号化された基礎点付きテーブル253が生成される。
図10は、ステップS330における決定木生成処理の一例を示すフローチャートである。図11は、決定木生成処理の概要の一例を示す説明図である。図12Aは、決定木の一例である。図12Bは、図12Aの決定木を表す決定木テーブルの一例である。図16Bは、葉ノードテーブルの一例である。
決定木の生成処理において、決定木生成部311は、最上位のノードである根ノードから下位に向かい、評価関数321を用いて、もっとも良い値を出力する枝を逐次的に探索しながら、決定木を生成する。
まず、決定木生成部311は、変数iを0で初期化し、基礎点付きテーブル253に親ノード番号と子ノード番号それぞれの管理用の列(それぞれ、親ノード管理列、子ノード管理列と呼ぶ)を追加する(S331)。但し、親ノード管理列の番号の初期値は1(根ノードの番号)、子ノード管理列の番号の初期値は−(値なし)とする(図11の上部に描かれた基礎点付きテーブル253を参照)。
続いて、決定木生成部311は、各セルに値が格納されていない決定木テーブルを生成する(S332)。決定木テーブルは4列(親ノード番号、分岐属性、分岐条件、子ノード番号)のテーブルである。決定木テーブルの1行目は根ノード、を示し、1行目の親ノード番号欄には1が格納されている(図12Bを参照)。決定木生成部311は、変数iに親ノード番号の最小値を設定する(S333)。
続いて、決定木生成部311は、変数iの親ノードから子ノードを探索する(S334)。なお、子ノードの探索処理の詳細については後述する。決定木生成部311は、子ノードを発見できたか否かを判定する(S335)。決定木生成部311は、子ノードを発見できた場合は(S335:Yes)、ステップS336へ進み、発見できなかった場合は(S335:No)、ステップS337へ進む。
決定木生成部311は、発見した子ノードの子ノード番号を、決定木テーブルの子ノード番号欄に記入する(S336)。本実施例では二分木を生成する例を説明するため、子ノード番号は、iの2倍(2i)と2倍に1を加えた値(2i+1)とする。図11の中部に描かれた基礎点付きテーブル253は、親ノード(根ノード)からの分岐を決定する属性(以下、分岐属性とも呼ぶ)が「性別」であることを示す。さらに、当該基礎点付きテーブル253は、「性別」が「男性」である場合には親ノードからノード番号2の子ノードへ、「女性」である場合には親ノードからノード番号2の子ノードへ分岐することを示す。分岐属性における分岐先のノードを決定する属性値を分岐条件とも呼ぶ。
また、ステップS336において、決定木生成部311は、基礎点付きテーブル253の子ノード番号欄の値を親ノード番号欄に上書きし、子ノード番号を空白値(例えばnull値)に変更する(図11の下部に描かれた基礎点付きテーブル253を参照)。また、ステップS336において、決定木生成部311は、決定木テーブルにおいて、分岐属性を当該親ノード番号に対応する分岐属性欄に、分岐条件を当該親ノード番号に対応する分岐条件欄に、さらに発見した子ノードの子ノード番号を子ノード番号欄に、それぞれに格納する。さらに、子ノード番号はそれぞれ親ノード番号に登録する。
図12Bの例における、決定木テーブルの1行目は、ノード番号1の親ノード(根ノード)からの分岐属性がE(性別)であり、分岐条件がE(男性)及びE(女性)であり、分岐先の子ノードがノード番号2の子ノード及びノード番号3の子ノードであることを示す。なお、分岐条件欄の値と、子ノード欄の値、について同じ順番の値が対応する。即ち、図12Bの決定木テーブルの1行目は、属性値がE(男性)である場合の分岐先がノード番号2の子ノードであり、属性値がE(情勢)である場合の分岐先がノード番号3の子ノードであることを示す。
図10の説明に戻る。決定木生成部311は、子ノードを発見できなかった場合は(S335:No)、葉ノードテーブル336を更新する(S337)。具体的には、決定木生成部311は、iを葉ノード番号として登録し、基礎点付きテーブル253の該当する目的変数を分析結果として登録する。
図16Bの例では、葉ノードテーブル336は、葉ノード番号欄と目的変数欄を含む。続いて、決定木生成部311、親ノードの管理列において、iよりも大きな親ノード番号が存在するか判定する(S338)。決定木生成部311は、iよりも大きな親ノード番号が存在すると判定した場合(S338:Yes)、ステップS333へ戻る。決定木生成部311は、iよりも大きな親ノード番号が存在しないと判定した場合(S338:No)、決定木の生成処理を終了する。
図12Aの決定木について説明する。図12Aの決定木において、根ノード(1番)から二分木で枝が伸びており、枝は内部ノード(2番、3番、・・・・、7番)を経由し、葉ノード(8番、9番、・・・・・、15番)に至るまで伸びている。枝上には分岐条件が記載されており(分岐属性も記すことが望ましいが、スペースの都合上省略されている)、例えば根ノードから2番の内部ノードへの分岐条件は、分岐属性がE(性別)かつ値がE(男性)に一致することである。同様に3番の内部ノードへの分岐条件は、分岐属性がE(性別)かつ値がE(女性)に一致することである。
図13は、ステップS334におけるノード探索処理の一例を示すフローチャートである。ノード探索部312は暗号化された基礎点付きテーブル253から属性を1つ選択する(S334−1)。例えば、図9等の例では、ノード探索部312は、暗号化された基礎点付きテーブル253から、E(性別)又はE(がん)を選択する。
続いて、ノード探索部312は、選択した属性において、暗号化データの分岐規則を探索し、分岐規則を一つ選択する(S334−2)。例えば、ノード探索部312が属性E(性別)による分岐を選択した場合、属性E(性別)における平文空間の点はE(男性)とE(女性)の2種類のみであるため、E(男性)とE(女性)のいずれかに分岐させる1通りの分岐規則しか存在しない。従って、この場合には、ノード探索部312は、ステップS334−2において、当該分岐規則を選択する。
一方、例えば、ノード探索部312が属性E(がん)を選択した場合、属性E(がん)の平文空間の点としてはE(食道)、E(大腸)、E(皮膚)、及びE(膀胱)の4種類の値が存在する。従って、この場合、E(食道)orE(大腸)とE(皮膚)orE(膀胱)のいずれかに分岐させる分岐規則、E(食道)orE(皮膚)とE(大腸)orE(膀胱)のいずれかに分岐させる分岐規則、及びE(食道)とor(膀胱)とE(大腸)orE(皮膚)のいずれかに分岐される分岐規則、からなる3通りの分岐規則が存在する。ステップS334−2において、ノード探索部312によって、これらの分岐規則のうち未選択の一つの分岐規則を、例えばランダムに選択する。
なお、上述した例では、平文空間の値が2n個(nは1以上の自然数)の場合には、当該2n個の値のうちのn個の値からなる集合と、他のn個の値からなる集合と、のいずれかに分岐させる分岐規則が選択対象の分岐規則であるが、これらの集合における値の数がn個ずつでなくてもよい。具体的には、例えば、前述の、属性E(がん)の平文空間の値として、E(食道)、E(大腸)、E(皮膚)、及びE(膀胱)の4種類の値が存在する例において、E(食道)orE(大腸)orE(皮膚)と、E(膀胱)と、のいずれかに分岐させる分岐規則が存在してもよい。
同様に平文空間の値が2n+1個(nは1以上の自然数)の場合には、当該2n個の値のうちのn個の値からなる集合と、他のn+1個の値からなる集合と、のいずれかに分岐させる分岐規則が選択対象の分岐規則であるが、これらの集合における値の数がn個とn+1個でなくてもよい。
続いて、ノード探索部312は、選択した分岐規則に従い、分岐規則の基礎点を集計する(S334−3)。例えば、図9の基礎点付きテーブル253でE(性別)を選択した場合、E(男性)の基礎点はレコード1行目、3行目、5行目、7行目の基礎点(本実施例では出現件数)の合計であり、E(100+60+40+20)=E(220)である。同様に、E(女性)の基礎点はE(100+60+20+5)=E(185)である。
続いて、ノード探索部312は、集計した全ての基礎点を評価関数321に入力し、評価点を得る(S334−4)。評価点を算出するための評価関数321としては、以下のような計算式が知られている。
(1)誤り率:E(t)=1−max{Pr(C|t)}
(2)情報エントロピー:−ΣPr(C|t)log{Pr(C|t)}
(3)ジニ係数:1−Σ{Pr(C|t)
ただし、Prは出現確率、Ciはレコードの値、tはノードの番号を指す。一般に、決定木分析では、これらの評価関数321を用い、評価点を算出し、もっとも評価点が低いものを子ノードとして採用する。なお、出現確率がノードの出現レコード数を全レコードで割った値であるため、本実施例では、評価関数321において出現確率ではなく、出現件数を用いるものとする。
例えば、誤り率の場合、レコード件数をnとし、評価関数321がnE(t)=n−nmax{Pr(C|t)}であるとする。即ち、nmax{Pr(C|t)}はノードtの出現件数なので、評価関数321がレコード件数で表される。例えば、男性と女性による分岐規則における評価点として、E(220+185)−max{E(220)、E(185)}=E(405)−E(220)=E(185)が得られる。
続いて、ノード探索部312は、選択した属性のすべての分岐規則を評価したか否かを判定する(S334−5)。ノード探索部312は、評価していない分岐規則があると判定した場合(S334−5:No)、ステップS334−2に戻る。ノード探索部312は、すべての分岐規則を評価したと判定した場合(S334−5:Yes)、すべての属性を選択済であるか否かを判定する(S334−6)。
ノード探索部312は、未選択の属性があると判定した場合(S334−6:No)、ステップS334−1に戻る。ノード探索部312は、すべての属性を選択済であると判定した場合(S334−6:Yes)、最小の評価点を求め(S334−7)、当該最小の評価値を有する分岐手段を決定木の枝として採用する(S334−8)。
なお、評価関数321が誤り率である例を前述したが、情報エントロピーやジニ係数の式を用いてもよい。その場合、ノード探索部312は、基礎点として、(出現件数)×log(出現件数)又は(出現件数)の自乗を基礎点として設定する。
ここまで、分析代行サーバ300が暗号化された学習用テーブル222から決定木を生成するまでの学習フェーズに関する処理を説明した。前述した学習フェーズにより、学習用テーブル222を暗号化したまま、即ち分析代行サーバ300に対して学習用テーブル222を秘匿した状態で、決定木を作成することできる。
続いて、分析代行サーバ300が暗号化された分析用テーブルから分析結果を出力するまでの分析フェーズに関する処理を説明する。図14は、ステップS410における分析用テーブル421の暗号化処理の一例を示す説明図である。暗号化部212は、分析用テーブル421の各セルを、検索可能暗号で暗号化する。
図15は、ステップS350における分析処理の一例を示すフローチャートである。まず、決定木分析部313は、暗号化された分析用テーブルからレコードを選択する(S351)。以下、このレコードを分析用レコードと呼ぶ。
次に、決定木分析部313は、変数iを0で初期化する(S352)。決定木分析部313は、決定木テーブルから、親ノードをi番とするレコードを選択し、暗号判定部314は、当該選択されたレコードの属性と一致する分析用レコードの属性を選択する(S353)。以下、決定木分析部313が決定木テーブルから選択したレコードを決定木レコードと呼ぶ。
ステップS353において、暗号判定部314は、検索可能暗号の判定機能を用いて、決定木レコード及び分析用レコードが暗号化されたまま、双方の属性が同じであるかを判定する。また、暗号判定部314は、分析用レコードの選択した属性に関する暗号化データが、決定木レコードの分岐条件に列挙される暗号化データが同じかを判定する(S354)。
暗号判定部314は、分岐条件において同じである暗号化データが存在すると判定した場合(S354;Yes)、変数iに子ノード番号を割り当て(ステップS355)、ステップS353に戻る。一方、暗号判定部314は、分岐条件において同じである暗号化データが存在しないと判定した場合(S354:No)、葉ノードテーブル336における葉ノード番号と同レコードの目的変数のセルの値を、分析結果として出力する(S336)。
なお、ステップS351〜S356において、分析用テーブルから1レコードが選択された場合の処理について説明したが、分析代行サーバ300は、ステップS350において、これらの処理を分析用テーブルのすべてのレコードに対して行い、分析結果を出力する。
図16Aは、分析処理の概要の一例を示す説明図である。図16Aは、属性E(性別)がE(男性)であり、属性E(がん)がE(大腸)である例を示す。また、図16Aの分析処理で用いられる葉ノードテーブル335は、図16Bの葉ノードテーブルである。図16Aの例では、分析結果として、属性値E(併発)がE(口腔)であることが委託者サーバ400に返される。
以上、本実施例のデータ分析システムは、学習用テーブル222を分析代行サーバ300に対して秘匿した状態で学習を行う(決定木を生成する)ことができ、さらに分析用テーブル421を分析代行サーバ300に対して秘匿した状態で、決定木分析を実行することができる。
なお、本実施例では分析代行サーバ300が決定木を生成する例を説明したが、提供者サーバ200自身が決定木を生成して、生成した決定木を分析代行サーバ300に送信してもよい。この場合、提供者サーバ200は、基礎点付きテーブル253を暗号化することなく、決定木テーブルを生成してもよい。但し、提供者サーバ200は、決定木テーブルを分析代行サーバ300に送信する前には、決定木テーブルの各列の値が暗号化されている必要がある。
本実施例のデータ分析システムは、決定木分析を拡張したデータ分析手法の一つである、ランダムフォレストを実現する。以下では、実施例1と異なる点を説明する。実施例2におけるステップS330における決定木の生成処理、及びステップS350における分析処理が、実施例1と異なる。
図17は、ステップS330における決定木生成処理の一例を示すフローチャートである。まず、決定木生成部311は、生成する決定木の本数(1以上)を、設定する(S330−A)。生成する決定木の本数は、例えば、予め定められていてもよいし、分析代行サーバ300のユーザ等によって決定木生成処理開始時に指定されてもよい。決定木生成部311は、暗号化された基礎点付きテーブルから、ランダムにレコードを抽出する(S330−B)。
図18は、ステップS330−Bにおける、暗号化された基礎点付きテーブルからのレコード抽出処理の概要の一例を示す説明図である。決定木生成部311は、抽出処理において、暗号化された基礎点付きテーブルに抽出チェック列を追加し、抽出チェック列の全てのセルの値としてFalseを格納する。
次に、決定木生成部311は、基礎点付きテーブルのレコード数を上限、1を下限とする異なる乱数(例えば1以上の自然数)を、所定数(但し、1以上かつ基礎点付きテーブルのレコード数以下であり、基礎点付きテーブルのレコード数の1/2以上であることが望ましい)生成する。最後に、決定木生成部311は、生成した乱数を行数とする抽出チェック列のセルの値をTrueに変更する。これにより、基礎点付きテーブルからランダムなレコードの抽出処理が実現できる。
続いて、決定木生成部311は、基礎点付きテーブルの抽出チェック用の列がTrueであるレコードのみから、決定木テーブルを生成する(S331〜S338)。なお、ステップS331〜S338は実施例1と同様である。
決定木生成部311は、ステップS330−Aで設定した本数の決定木テーブルを生成したか判定する(S330−C)。決定木生成部311は、当該本数の決定木テーブルを生成していないと判定した場合は(S330−C:No)、基礎点付きテーブルの抽出チェック列の値を全てFalseに再設定し、ステップS330−Bへ戻る。決定木生成部311は、当該本数の決定木テーブルを生成したと判定した場合は(S330−C:Yes)、決定木の生成処理を終了する。この結果、複数の決定木テーブルが生成される。
なお、実施例2におけるステップS330の処理において、複数の演算部(CPU)を備える計算機等が、複数の決定木を並列処理で生成してもよい。具体的には例えば、乱数生成処理の並列実行し、複数の抽出チェック列を用意することにより、複数の決定木を並列処理で生成できる。
図19は、複数の決定木テーブルを用いた、ステップS350における分析処理の一例を示すフローチャートである。ステップS351〜S355の処理は、実施例1と同様である。本実施例では、これらの処理にステップS350−A、ステップS350−B、ステップS350−Cが追加される。
ステップS351に続いて、決定木分析部313は、ステップS352〜S355の決定木分析に用いる決定木テーブルを選択する(S350−A)。但し、決定木分析部313は、ステップS351で選択した分析用レコードの決定木分析には利用していない決定木テーブルを選択し、同じ分析用レコードの分析に同一の決定木テーブルの再選択は行わないものとする。
続いて、ステップS352〜S355の処理が実行された後、決定木分析部313は、ステップS351で選択した分析用レコードに対し、全ての決定木テーブルを選択したかを判定する(S350−B)。決定木分析部313は、未選択の決定木テーブルがあるいと判定した場合は(S350−B:No)ステップS350−Aへ戻る。決定木分析部313が、全ての決定木テーブルを選択したと判定した場合(ステップS350−B:Yes)、暗号判定部314は、複数の決定木分析の分析結果の集約を行う(S350−C)。
一般に、決定木の構造が異なれば、分析結果が異なる場合がある。暗号判定部314は、例えば、多数決方式及び、並びに平均値及び代表値の算出によりステップS350−Cの集約処理を行う。例えば、目的変数が標準暗号の一例である決定性暗号で暗号化されている場合には、暗号判定部314は、どの暗号化データが多数であるか判定でき、即ち多数決方式を採用することができ、多数の暗号化データを集約した分析結果として採用することができる。
また、例えば、集計比較可能暗号等の暗号化状態での演算が可能な暗号化方式で目的変数が暗号化されている場合には、暗号判定部314は、平均値や中央値の導出が可能な状態に集約できる、即ち平均値及び代表値の算出による集約処理ができる。
なお、委託者サーバ400のユーザ等が高度な集約を分析結果として望む場合は、分析代行サーバ300が決定木毎の分析結果を委託者サーバに送信(S370)した後に、委託者サーバ400が分析結果を復号後、平文で分析結果をさらに算出してもよい。
なお、上述のステップS351〜S350−Cにおける説明は、分析用テーブルから1レコードを選択した場合の処理についての説明である。ステップS350では、分析代行サーバ300は、当該処理を分析用テーブルのすべてのレコードに対して行う。
なお、ステップS350の処理は、複数の演算部(CPU)を備える計算機が、並列処理で決定木の選択処理と分析処理とを並列実行してもよい。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
200 提供者サーバ、210 演算部、211 基礎点付きテーブル生成部、212 暗号化部、220 記憶部、221 暗号化鍵、222 学習用テーブル、223 評価関数、300 分析代行サーバ、310 演算部、311 決定木生成部、312 ノード探索部、313 決定木分析部、314 暗号判定部、320 記憶部、321 評価関数、400 委託者サーバ、410 演算部、411 暗号化部、412 復号化部、420 記憶部、421 暗号化鍵、423 復号化鍵

Claims (9)

  1. データ分析サーバであって、
    プロセッサと、メモリと、を含み、
    前記メモリは、学習用情報から生成された基礎点付き情報を保持し、
    前記基礎点付き情報は、第1高機能暗号で暗号化された説明変数の値と、所定の暗号方式で暗号化された目的変数の値と、前記説明変数の値の前記学習用情報における出現件数に基づく基礎点と、が対応づけられた複数のレコードを含み、
    前記基礎点付き情報が保持する基礎点は、第2高機能暗号で暗号化されており、
    前記プロセッサは、
    前記基礎点付き情報に含まれる前記所定の暗号方式で暗号化された目的変数の値、に対応づけられた葉ノードを有する決定木を生成する決定木生成処理を実行し、
    前記決定木生成処理において、前記決定木における前記説明変数の値による分岐規則を決定し、
    前記分岐規則の決定において、
    1以上の分岐規則候補を生成し、
    前記1以上の分岐規則候補それぞれについて、前記基礎点付き情報を参照して、当該分岐規則候補における説明変数の値に前記基礎点付き情報において対応する基礎点を集計する処理と、
    前記1以上の分岐規則候補それぞれについて、前記集計した基礎点と所定の評価関数とに基づいて当該分岐規則候補における評価点を算出する処理と、
    前記算出した評価点に基づいて、前記1以上の分岐規則候補から採用する分岐規則を決定する処理と、を前記1以上の分岐規則候補における説明変数の値及び当該説明変数の値に対応する基礎点が暗号化されたまま実行する、データ分析サーバ。
  2. 請求項1に記載のデータ分析サーバであって、
    前記第1高機能暗号は検索可能暗号である、データ分析サーバ。
  3. 請求項1に記載のデータ分析サーバであって、
    前記第2高機能暗号は集計比較可能暗号である、データ分析サーバ。
  4. 請求項1に記載のデータ分析サーバであって、
    前記プロセッサは、
    複数の前記決定木を生成する処理を実行し、
    前記複数の決定木それぞれを生成する処理において、
    前記基礎点付き情報から複数のレコードを抽出し、
    前記抽出した複数のレコードについて、前記決定木生成処理を実行する、データ分析サーバ。
  5. 請求項1に記載のデータ分析サーバであって、
    前記メモリは、前記第1高機能暗号で暗号化された説明変数の値を含む分析用情報を保持し、
    前記プロセッサは、
    前記分析用情報に含まれる説明変数の値と、前記生成した決定木における分岐規則と、を比較して、当該説明変数の値に対応する葉ノードを特定する処理を、前記決定木に含まれる説明変数の値と前記分析用情報に含まれる説明変数の値とが暗号化されたまま実行し、
    前記特定した葉ノードに対応する、前記所定の暗号方式で暗号化された目的変数の値、を出力する、データ分析サーバ。
  6. データ提供サーバと、データ分析サーバと、を含むデータ分析システムであって、
    前記データ提供サーバは、
    説明変数の値と、目的変数の値と、が対応づけられた複数のレコードを含む学習用情報を保持し、
    前記説明変数の値の前記学習用情報における出現件数と、所定の関数と、に基づいて基礎点を算出し、
    前記説明変数の値と、前記学習用情報において前記説明変数に対応する目的変数の値に基づく目的変数と、前記算出した基礎点と、を対応付けたレコードを含む基礎点付き情報を生成し、
    前記基礎点付き情報に含まれる、説明変数の値を第1高機能暗号で、目的変数の値を所定の暗号方式で、基礎点を第2高機能暗号で、それぞれ暗号化し、
    暗号化後の前記基礎点付き情報を、前記データ分析サーバに送信し、
    前記データ分析サーバは、
    前記基礎点付き情報に含まれる前記所定の暗号方式で暗号化された目的変数の値、に対応づけられた葉ノードを有する決定木を生成する決定木生成処理を実行し、
    前記決定木生成処理において、前記決定木における前記説明変数の値による分岐規則を決定し、
    前記分岐規則の決定において、
    1以上の分岐規則候補を生成し、
    前記1以上の分岐規則候補それぞれについて、前記基礎点付き情報を参照して、当該分岐規則候補における説明変数の値に前記基礎点付き情報において対応する基礎点を集計する処理と、
    前記1以上の分岐規則候補それぞれについて、前記集計した基礎点と所定の評価関数とに基づいて当該分岐規則候補における評価点を算出する処理と、
    前記算出した評価点に基づいて、前記1以上の分岐規則候補から採用する分岐規則を決定する処理と、を前記1以上の分岐規則候補における説明変数の値及び当該説明変数の値に対応する基礎点が暗号化されたまま実行する、データ分析システム。
  7. 請求項6に記載のデータ分析システムであって、
    前記データ提供サーバは、
    前記学習用情報に含まれない説明変数の値を生成し、
    前記生成した説明変数の値と、空白値である目的変数の値と、が対応付けられた追加レコードを学習用情報に追加し、
    前記追加レコードを追加した学習用情報を用いて、前記基礎点付き情報を生成する、データ分析システム。
  8. 請求項6に記載のデータ分析システムであって、
    分析委託サーバを含み、
    前記分析委託サーバは、
    説明変数の値を含む分析用情報を保持し、
    前記分析用情報に含まれる説明変数の値を、前記第1高機能暗号で暗号化し、
    暗号化後の前記分析用情報を、前記データ分析サーバに送信し、
    前記データ分析サーバは、
    前記分析用情報に含まれる説明変数の値と、前記生成した決定木における分岐規則と、を比較して、当該説明変数の値に対応する葉ノードを特定する処理を、前記決定木に含まれる説明変数の値と前記分析用情報に含まれる説明変数の値とが暗号化されたまま実行し、
    前記特定した葉ノードに対応する、前記所定の暗号方式で暗号化された目的変数の値、を前記分析委託サーバに送信し、
    前記分析委託サーバは、前記データ分析サーバから受信した前記所定の暗号方式で暗号化された目的変数の値を復号する、データ分析システム。
  9. データ分析サーバによるデータ分析方法であって、
    前記データ分析サーバは、学習用情報から生成された基礎点付き情報を保持し、
    前記基礎点付き情報は、第1高機能暗号で暗号化された説明変数の値と、所定の暗号方式で暗号化された目的変数の値と、前記説明変数の値の前記学習用情報における出現件数に基づく基礎点と、が対応づけられた複数のレコードを含み、
    前記基礎点付き情報が保持する基礎点は、第2高機能暗号で暗号化されており、
    前記データ分析方法は、
    前記データ分析サーバが、
    前記基礎点付き情報に含まれる前記所定の暗号方式で暗号化された目的変数の値、に対応づけられた葉ノードを有する決定木を生成する決定木生成処理を実行し、
    前記決定木生成処理において、前記決定木における前記説明変数の値による分岐規則を決定し、
    前記分岐規則の決定において、
    1以上の分岐規則候補を生成し、
    前記1以上の分岐規則候補それぞれについて、前記基礎点付き情報を参照して、当該分岐規則候補における説明変数の値に前記基礎点付き情報において対応する基礎点を集計する処理と、
    前記1以上の分岐規則候補それぞれについて、前記集計した基礎点と所定の評価関数とに基づいて当該分岐規則候補における評価点を算出する処理と、
    前記算出した評価点に基づいて、前記1以上の分岐規則候補から採用する分岐規則を決定する処理と、を前記1以上の分岐規則候補における説明変数の値及び当該説明変数の値に対応する基礎点が暗号化されたまま実行する、ことを含むデータ分析方法。
JP2018076363A 2018-04-11 2018-04-11 データ分析サーバ、データ分析システム、及びデータ分析方法 Active JP6917942B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018076363A JP6917942B2 (ja) 2018-04-11 2018-04-11 データ分析サーバ、データ分析システム、及びデータ分析方法
US16/379,457 US11120143B2 (en) 2018-04-11 2019-04-09 Data analysis server, data analysis system, and data analysis method
DE102019205130.8A DE102019205130A1 (de) 2018-04-11 2019-04-10 Datenanalyse-Server, Datenanalysesystem und Datenanalyseverfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018076363A JP6917942B2 (ja) 2018-04-11 2018-04-11 データ分析サーバ、データ分析システム、及びデータ分析方法

Publications (2)

Publication Number Publication Date
JP2019184852A JP2019184852A (ja) 2019-10-24
JP6917942B2 true JP6917942B2 (ja) 2021-08-11

Family

ID=68053014

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018076363A Active JP6917942B2 (ja) 2018-04-11 2018-04-11 データ分析サーバ、データ分析システム、及びデータ分析方法

Country Status (3)

Country Link
US (1) US11120143B2 (ja)
JP (1) JP6917942B2 (ja)
DE (1) DE102019205130A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11934931B2 (en) 2018-12-17 2024-03-19 Shape Security, Inc. Decision tree training using a database system
US20230032646A1 (en) * 2020-01-22 2023-02-02 Nec Corporation Information processing apparatus, information processing method, and recording medium
CN114328525A (zh) * 2021-12-27 2022-04-12 深圳前海微众银行股份有限公司 数据处理方法及设备
CN116779003B (zh) * 2023-06-21 2023-12-08 广州市动易网络科技有限公司 用于硬盘数据销毁和安全性评估的方法及***
CN116611097B (zh) * 2023-07-17 2023-09-19 山东金田测绘地理信息有限公司 基于行政数据的土地资源管理方法、装置及电子设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451065B2 (en) * 2002-03-11 2008-11-11 International Business Machines Corporation Method for constructing segmentation-based predictive models
WO2009019612A2 (en) 2007-08-03 2009-02-12 Institut Pasteur Lentiviral gene transfer vectors and their medicinal applications
JP5135389B2 (ja) * 2010-06-30 2013-02-06 株式会社日立情報システムズ 情報漏えいファイル検知装置、及びその方法とプログラム
US9002007B2 (en) * 2011-02-03 2015-04-07 Ricoh Co., Ltd. Efficient, remote, private tree-based classification using cryptographic techniques
EP2874341B1 (en) * 2013-09-26 2019-03-06 Koninklijke KPN N.V. Secure evaluation of a program
JPWO2015063905A1 (ja) * 2013-10-31 2017-03-09 株式会社日立製作所 データ分析システム
US9787647B2 (en) * 2014-12-02 2017-10-10 Microsoft Technology Licensing, Llc Secure computer evaluation of decision trees
JP6458157B2 (ja) * 2015-09-16 2019-01-23 株式会社日立製作所 データ分析装置および分析方法
US11196541B2 (en) * 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US10491373B2 (en) * 2017-06-12 2019-11-26 Microsoft Technology Licensing, Llc Homomorphic data analysis
US10554390B2 (en) * 2017-06-12 2020-02-04 Microsoft Technology Licensing, Llc Homomorphic factorization encryption

Also Published As

Publication number Publication date
DE102019205130A1 (de) 2019-10-17
US11120143B2 (en) 2021-09-14
US20190318104A1 (en) 2019-10-17
JP2019184852A (ja) 2019-10-24

Similar Documents

Publication Publication Date Title
JP6917942B2 (ja) データ分析サーバ、データ分析システム、及びデータ分析方法
Ramírez‐Gallego et al. Fast‐mRMR: Fast minimum redundancy maximum relevance algorithm for high‐dimensional big data
JP5531395B2 (ja) 単語親和度による単語クラスタの識別
Kalyanam et al. Leveraging social context for modeling topic evolution
JP6141305B2 (ja) 画像検索
JP6782858B2 (ja) 文献分類装置
Yang et al. Characterizing malicious android apps by mining topic-specific data flow signatures
CN108292310A (zh) 用于数字实体相关的技术
Zhao et al. Topic exploration in spatio-temporal document collections
WO2018040942A1 (zh) 一种校验方法及装置
Alzhrani et al. Automated big text security classification
JP2019204246A (ja) 学習データ作成方法及び学習データ作成装置
Ma et al. Divtheft: An ensemble model stealing attack by divide-and-conquer
JP5952441B2 (ja) 秘密データを識別する方法、電子装置及びコンピュータ読み取り可能な記録媒体
US20230273771A1 (en) Secret decision tree test apparatus, secret decision tree test system, secret decision tree test method, and program
US11281688B2 (en) Ranking and de-ranking data strings
JP7389389B2 (ja) 処理装置、処理方法および処理プログラム
US20170302437A1 (en) Nondecreasing sequence determining device, method and program
US11755671B2 (en) Projecting queries into a content item embedding space
Sade et al. Diverse enumeration of maximal cliques
US11113314B2 (en) Similarity calculating device and method, and recording medium
JP2010191962A (ja) オントロジーの類似性行列の効率的な計算
CN105917400A (zh) 元素复制装置、元素复制方法、以及程序
JPWO2018012413A1 (ja) 類似データ検索装置、類似データ検索方法および記録媒体
US12045209B2 (en) Method and apparatus for smart and extensible schema matching framework

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200902

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210528

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210622

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210720

R150 Certificate of patent or registration of utility model

Ref document number: 6917942

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150