以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形又は技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔1〕一実施形態
〔1-1〕比較例
図1は、比較例に係る手法を説明するための図である。図1に示すように、パーソナルデータ210の保有者200は、パーソナルデータ210を匿名化(処理P101)して得られる訓練データ220を、サービス提供者等の他者である受領者300に提供する。
匿名化とは、例えば、パーソナルデータ210から個人情報を削除する処理である。パーソナルデータ210に匿名化を行なう理由の1つに、平成27年度(2015年度)改正の改正個人情報保護法が挙げられる。改正個人情報保護法により、日本国内において、保有者200は、個人を識別できないようにパーソナルデータ210を匿名加工すると、各個人の同意が無くてもパーソナルデータ210を受領者300に提供することが可能となったためである。
受領者300は、保有者200から訓練データ220を取得し(処理P102)、モデル310を構築する(処理P103)。受領者300は、保有者から提供されるテストデータ230を用いて、モデル310の推論精度を評価(検証)し(処理P104)、評価結果に応じてモデル310の修正を行なうことで、保有者200に提供するサービスで用いる最終モデル320を完成させる。
最終モデル320が生データを推論する運営の場合、図2に例示するように、テストデータ(検証データ)230が匿名化されずに(生のまま)モデル310に入力される運営が理想的である。しかし、上述した改正個人情報保護法等の制約により、保有者200は、受領者300に提供するテストデータ230に生データを含めることが難しい。
このため、図1の例では、図3に例示するように、テストデータ230の性別や学歴の値が削除されて匿名化された状態でデータがモデル310に入力される運営を想定する。
しかしながら、最終モデル320が生データを推論する運営の場合、図3の例のように匿名データを利用して検証を行なったとしても、モデル310の性能の参考値として有効な検証結果を得ることは難しい。
図4及び図5は、比較例に係る有効な検証結果を得るための手法を説明する図である。図4及び図5に示すように、受領者300は、保有者200から、訓練データ220と、テストデータ230の属性情報231とを取得する。
属性情報231は、図4に例示するように、データに含まれる属性と、その属性の要素とが列挙された情報である。属性は、性別や学歴等の、テーブルデータの列名である。属性の要素は、属性(列)が取り得る値である。例えば属性が性別の場合、要素は女性及び男性となる。
図4及び図5に示すように、受領者300は、属性情報231に基づき、属性及び要素の考えられる組み合わせX′を生成し、組み合わせX′についてモデル310で推論した推論結果Y′を作成する。そして、受領者300は、組み合わせX′及び推論結果Y′を結合した推定表330を作成する。
受領者300は、保有者200に推定表330の推論精度の評価を依頼する。保有者200は、組み合わせXと正しい推論結果(分類結果)Yとを含むテストデータ230(生データ)と、推定表330とを比較することでモデル310の推論精度を検証し、精度を受領者300に送付する。これにより、受領者300は、生データにアクセスせずに、生データによるモデル310の評価を行なうことができる。図5の例では、テストデータ230に含まれる{女性,修士,1}及び{男性,高専,0}のデータと、推定表330に含まれる2つのデータとが一致するため、精度は100%となる。
しかしながら、図4及び図5に示す比較例に係る手法では、テストデータ230が高次元データになるほど組み合わせの数が増大し、推定表330のサイズが大きくなる。このため、受領者300及び保有者200がそれぞれ利用する各コンピュータの記憶領域の使用量、並びに、プロセッサの処理負荷及び処理時間、が増加することになる。
例えば、米国国勢調査によるオープンデータである“Adultデータ”のカテゴリカル属性をテストデータ230とした場合、属性情報231の組み合わせX′は、全部で37,195,200通りになる。このようなテストデータ230の属性がさらに増えると、組み合わせはより大きくなる。
そこで、一実施形態では、モデルの評価を行なうための負荷を軽減する手法を説明する。
〔1-2〕機械学習システムの説明
図6は、一実施形態に係るモデル3cの性能参考値として有効な検証結果を得るための手法の一例を説明するための図である。一実施形態に係る手法では、サービス提供者である受領者3が利用するコンピュータは、以下の(a)~(e)の処理を実行してよい。
(a)図6に示すように、コンピュータは、保有者2から訓練データを取得する。訓練データは、複数の属性値がそれぞれ定義された複数の属性項目のうち、少なくとも一部の属性項目の属性値が欠損したデータを含むデータ群の一例であり、例えば、保有者2によりパーソナルデータ2aに対して匿名加工処理が行なわれたデータである。また、コンピュータは、訓練データに基づき、属性情報3aを生成してもよく、或いは、保有者2から訓練データの属性情報3aを取得してもよい。
(b)コンピュータは、訓練データに含まれる複数の属性値それぞれの、訓練データでの出現頻度に基づき、複数の属性項目それぞれについて、属性項目に定義された複数の属性値に含まれる一又は複数の属性値を選定する。
(c)コンピュータは、選定した一又は複数の属性値に含まれるいずれかの属性値を、複数の属性項目それぞれの属性値とする組み合わせ3bを生成する。
例えば、上記(b)及び(c)の処理において、コンピュータは、テストデータに含まれる属性値を訓練データの属性情報3aに基づき絞り込んだ組み合わせ3bを生成する。
(d)コンピュータは、生成した組み合わせ3bと、組み合わせ3bを入力とした訓練済みモデル3cによる推論結果3dとを含む推定表3eを生成する。
(e)コンピュータは、生成した推定表3eの推論精度の評価依頼を、訓練データの提供元である保有者2が利用するコンピュータに送信する。
以上の(a)~(e)の処理により、保有者2が利用するコンピュータは、テストデータ2bと、推定表3eとを比較することにより、推定表3eを出力したモデル3cの精度を検証し、受領者3が利用するコンピュータに検証した精度を送付する。図6の例では、テストデータ2bに含まれる2つのデータのうちの{女性,修士,1}のデータが、推定表3eに含まれるデータと一致するため、精度は50%となる。
このように、(a)~(e)の処理によれば、訓練データでの出現頻度に基づき選定した一又は複数の属性値に基づいて、組み合わせ3bが生成され、推定表3eが生成される。例えば、出現頻度の高い一又は複数の属性値が選定される場合、推定表3eには、テストデータ2bにおいて出現する可能性の高い属性値のデータが含まれる。このため、選定を行なわない場合と比較して、推定表3eの有効行数の割合を向上又は維持する、換言すれば、有効行数減少を抑制できる。また、選定により属性値の組み合わせ数が減少するため、推定表3eの行数(レコード数)を抑制できる。
〔1-3〕機械学習システムの機能構成例
図7は、一実施形態に係る機械学習システム1の機能構成例を示すブロック図である。図7に示すように、一実施形態に係る機械学習システム1は、例示的に、1以上の端末20と、サーバ30とを備えてよい。端末20及びサーバ30間は、ネットワーク40により相互に通信可能に接続されてよい。
ネットワーク40は、WAN(Wide Area Network)、LAN(Local Area Network)、又はこれらの組み合わせを含んでよい。WANにはインターネットが含まれてよく、LANにはVPN(Virtual Private Network)が含まれてよい。
端末20は、パーソナルデータ21を保有し、訓練データ22の提供元である保有者2(図6参照)が利用するコンピュータの一例である。端末20は、例示的に、パーソナルデータ21、訓練データ22、テストデータ23、訓練データ属性情報24、テストデータ属性情報25、及び、検証部26を備えてよい。
パーソナルデータ21は、図6に示すパーソナルデータ2aの一例であり、個人を識別可能な個人情報、及び、個人を識別不可能な情報を含む、個人に関する種々の情報を収集し蓄積したデータ群(生データ)である。個人を識別不可能な情報とは、例えば、個人と紐付かない情報、及び、匿名加工された情報を含んでよい。パーソナルデータ21は、構築及び検証が完了したモデル31aを用いてサーバ30が提供するサービスに利用されてよい。
訓練データ22は、モデル31aの訓練(学習)に用いられるデータ群であり、匿名加工処理が施されたデータ群であってよい。匿名加工処理は、例えば、個人を識別できる情報が含まれるセルの削除等の既知の処理であってよい。訓練データ22は、パーソナルデータ21又はテストデータ23に含まれる少なくとも一部のデータ群であって、匿名加工処理等が施されたデータ群であってもよい。
テストデータ23は、図6に示すテストデータ2bの一例であり、推定表31kの推論精度の評価に用いられる評価用データ群の一例である。例えば、テストデータ23は、訓練データ22による訓練済みのモデル31aの推論精度を検証するために利用される、個人情報を含むデータ群(生データ)である。一例として、テストデータ23は、属性及び要素の組み合わせXと、正しい推論結果Yとを含んでよい。なお、属性は、「属性項目」と称されてもよく、要素は、「属性値」又は「項目値」と称されてもよい。
訓練データ属性情報24は、図6に示す属性情報3aの一例であり、訓練データ22に含まれる複数の属性項目の各々に定義された複数の属性値に関する第1情報の一例である。テストデータ属性情報25は、テストデータ23に含まれる複数の属性項目の各々に定義された複数の属性値に関する第2情報の一例である。各属性情報24及び25は、いずれも同様のデータ構成であってよい。
図8は、属性情報の一例を示す図である。図8に示すように、属性情報24及び25は、それぞれ、属性、要素、及び、要素数の項目を含んでよい。属性は、データに含まれる属性項目の一例であり、性別や学歴等の、テーブルデータの列名を示す。要素は、属性(列)が取り得る値である。要素数は、属性が取り得る値の数である。なお、これらの属性情報24及び25において、匿名加工処理により削除されたセルの要素には、例えば「不明」が設定されてよい。
検証部26は、サーバ30から、推論データの一例である推定表31kを受信すると、テストデータ23と推定表31kとを比較し、推定表31kの推論精度の検証(評価)を行なうとともに、検証結果をサーバ30に送信する。
サーバ30は、パーソナルデータ21を受領する受領者3(図6参照)が利用するコンピュータの一例であり、学習及び検証によりモデル31aを構築し、構築したモデル31aを利用するためのサービスを端末20に提供する情報処理装置の一例である。
サーバ30は、仮想サーバ(VM:Virtual Machine)であってもよいし、物理サーバであってもよい。また、サーバ30の機能は、1台のコンピュータにより実現されてもよいし、2台以上のコンピュータにより実現されてもよい。さらに、サーバ30の機能のうちの少なくとも一部は、クラウド環境により提供されるHW(Hardware)リソース及びNW(Network)リソースを用いて実現されてもよい。
サーバ30は、例示的に、メモリ部31、取得部32、モデル構築部33、組み合わせ生成部34、推論結果生成部35、依頼部36、及び、モデル提供部37を備えてよい。
メモリ部31は、記憶領域の一例であり、モデル31aの構築、検証及び提供等に用いられる種々の情報を記憶する。図7に示すように、メモリ部31は、例示的に、モデル31a、訓練データ31b、訓練データ属性情報31c、テストデータ属性情報31d、パラメータ31e、採用要素数情報31f、出現頻度情報31g、採用要素情報31h、組み合わせ情報31i、及び、推論結果情報31jを記憶可能であってよい。
取得部32は、モデル31aの構築及び検証に用いる情報を端末20から取得する。例えば、取得部32は、モデル31aの構築に用いる訓練データ22を端末20から取得し、訓練データ31bとしてメモリ部31に格納してよい。換言すれば、取得部32は、複数の属性値がそれぞれ定義された複数の属性項目のうち、少なくとも一部の属性項目の属性値が欠損したデータを含むデータ群を取得する。
また、取得部32は、モデル31aの検証に用いる訓練データ属性情報24及びテストデータ属性情報25を端末20から取得し、訓練データ属性情報31c及びテストデータ属性情報31dとしてメモリ部31に格納してよい。なお、取得部32は、訓練データ31bの集計及び分析等を行なうことにより、訓練データ属性情報31cを生成してもよい。
モデル構築部33は、訓練データ31bを用いてモデル31aの機械学習を実行することで、図6に示すモデル3cの一例であるモデル31aの訓練を行なう。モデル31aの機械学習の手法は、既知の種々の手法により実現可能である。モデル31aは、種々の機械学習モデルであってもよいが、一実施形態では、モデル31aは、例えば、入力されるデータの分類を行なう機械学習モデルであるものとする。
組み合わせ生成部34は、モデル構築部33による訓練済みのモデル31aの推論精度の検証を行なうための組み合わせ情報31iを生成する。例えば、図9に示すように、組み合わせX′生成器としての組み合わせ生成部34は、テストデータ属性情報31dに加えて、訓練データ31b及びパラメータ31eを用いることで、組み合わせ情報31iを生成する。このために、組み合わせ生成部34は、採用要素数決定部34a、要素絞り込み部34b及び生成部34cを備えてよい。
採用要素数決定部34aは、各属性の採用要素数を決定し、採用要素数情報31fとしてメモリ部31に格納する。
採用要素数は、図10に例示するように、組み合わせX′を生成する際に採用される属性ごとの要素の数(選定数)である。図10では、採用要素数情報31fが性別:1、学歴:2である場合に、テストデータ属性情報31dにおける、性別の要素のうちの1つ(例えば女性)と、学歴の2つの要素とを含む組み合わせX′が生成される例を示す。
採用要素数決定部34aは、例えば、図11に示すように、テストデータ属性情報31d、訓練データ属性情報31c、及び、パラメータ31eに基づき、各属性の採用要素数を決定する。パラメータ31eは、要素数閾値α及び採用要素数βを含んでよい。
要素数閾値αは、要素数が少ない属性の採用要素数の削減を抑制するための下限閾値である。例えば、要素数が少ない属性の採用要素数を削減すると、有効行数が減少し易いため、要素数閾値αには、有効行数の減少の抑制が期待できる閾値が設定されてよい。
採用要素数βは、採用要素数の減少のさせ方を定義する情報であり、所定のルールの一例である。採用要素数βとしては、例えば、元の要素数から1を減じる(“要素数-1”)、元の要素数に所定の割合を乗じる、元の要素数に応じて値を決定する、等の種々の規則が挙げられる。採用要素数βを利用する理由は、推定行数を減少させつつ、有効行数を保てる値を調整できるようにするためである。
図12は、採用要素数決定部34aによる処理の一例を説明するための図である。図12に示すように、採用要素数決定部34aは、テストデータ属性情報31d及び訓練データ属性情報31cを比較し、採用要素数を減らす属性と、その採用要素数とを決定する。
例えば、採用要素数決定部34aは、訓練データ属性情報31cにおいて、要素数が要素数閾値αよりも大きく、且つ、要素数が訓練データ属性情報31cとテストデータ属性情報31dとの間で一致する場合、当該属性の採用要素数をβに従い決定してよい。
訓練データ属性情報31cとテストデータ属性情報31dとの間で要素数が一致する属性は、訓練データ31bとテストデータ23との間で、同じようなデータの分布がある、換言すれば、分布の違いが小さいと想定される。従って、このような属性の採用要素数を減少させても、有効行数の減少を抑制できるという仮定に基づくものである。
なお、採用要素数決定部34aは、訓練データ属性情報31cにおける属性の要素数が、テストデータ属性情報31dにおける同一属性の要素数よりも大きい場合、当該属性の採用要素数に、テストデータ属性情報31dの要素数を設定(決定)する。また、採用要素数決定部34aは、上記以外の場合においては、採用要素数に、訓練データ属性情報31cにおける属性の採用要素数を設定する。
このように、訓練データ31bとテストデータ23との間で要素数が異なる属性の場合、訓練データ31b又はテストデータ23のいずれかに欠落した要素が存在するはずだが、出現頻度の低い要素が欠落しているとは限らない。また、サーバ30はテストデータ23の分布を把握できない。従って、このような、訓練データ31bとテストデータ23との間で要素の出現分布が異なる可能性の高い属性については、パラメータ31eに基づく採用要素数の減少対象から除外してよい。これにより、有効行数が減少するリスクを低減できる。
図12の例では、採用要素数決定部34aは、α=2、β=(要素数-1)のパラメータ31eに従い、属性情報31c及び31d間で要素数がいずれも“16”である属性A2の採用要素数を、“15”に決定する。なお、訓練データ属性情報31cの属性A3の要素数は、α以下の“2”であるため、採用要素数には訓練データ属性情報31cの要素数“2”が設定される。また、訓練データ属性情報31cの属性A1の要素数は、テストデータ属性情報31dの要素数“9”よりも小さい“7”であるため、採用要素数には訓練データ属性情報31cの要素数“7”が設定される。これにより、推定表31kの組み合わせ数(行数)を232から210に減少させることが可能となる。
このように、採用要素数決定部34aは、パラメータ31eに基づき、要素数の下限及び減らし方を決定してよい。パラメータ31eを用いることで、採用要素数の決定の柔軟度を向上させることができる。
また、テストデータ230の属性情報231に基づいて考え得る組み合わせX′を全て列挙する比較例とは異なり、採用要素数決定部34aは、訓練データ属性情報31cを用いてよい。訓練データ属性情報31cでは、匿名化により属性の要素数が減少している可能性が高いため、モデル31aの学習に利用されなかった要素を省くように、推定表31kの行数を抑制可能となる。
要素絞り込み部34bは、採用要素数情報31fと、要素の出現頻度とに基づき、図6に示す組み合わせ3bの一例である組み合わせX′として採用する要素を絞り込む。
要素絞り込み部34bは、図13に例示するように、各属性について、採用要素数情報31fに含まれる要素数となるように、出現頻度情報31gに含まれる出現頻度の高い要素順に採用要素を絞り込み、採用要素情報31hとしてメモリ部31に格納してよい。
出現頻度情報31gは、訓練データ31bに含まれる各属性の要素を、訓練データ31bにおける出現頻度の高い順にソートした情報である。上述のように、テストデータ23は個人情報を含むから、サーバ30には提供されない。一方、訓練データ31bは、モデル31aの学習のためにサーバ30に記憶される。
そこで、要素絞り込み部34bは、訓練データ31b中の要素を出現頻度に基づきソートし、出現頻度情報31gを生成してよい。なお、出現頻度情報31gには、少なくとも、採用要素数決定部34aが採用要素数を減少させた属性についての要素の頻度順位が含まれればよい。また、頻度は、訓練データ31bに要素が出現する「回数」と捉えられてもよい。
図13の例では、属性:性別の要素の出現頻度は、高い順に「女性」、「男性」であり、属性:学歴の要素の出現頻度は、高い順に「修士」、「高専」、「不明」である。出現頻度情報31gを用いることで、テストデータ23においても出現しやすい要素を取得することができるため、推定表31kの有効行数の減少を抑制できる。
なお、保有者2がテストデータ23における要素の頻度順位をサーバ30に提供(公開)している場合、サーバ30は、当該テストデータ23における要素の頻度順位を、出現頻度情報31gとして利用してもよい。
要素絞り込み部34bは、採用要素数情報31fに設定された採用要素数分の要素を、出現頻度情報31gの先頭から抽出することで、属性ごとの採用要素を決定する、換言すれば、採用要素情報31hを生成してよい。
図14は、要素絞り込み部34bによる処理の一例を説明するための図である。図14に示すように、要素絞り込み部34bは、採用要素数情報31fに設定された属性A2の採用要素数に従い、属性A2の要素を出現頻度の高い順にソートした出現頻度情報31gの先頭から順に要素を絞り込む。
図14の例では、要素絞り込み部34bは、訓練データ31bの属性A2の要素のうち、頻度順位が上位15までの要素(e1、e8、…、e2)を採用要素情報31hとして抽出する。
このように、各属性の頻度情報に基づき、例えば出現頻度の高い要素を優先的に、採用要素に選定することで、推定表31kの有効行数の減少を抑制できる。
ここで、訓練データ31bやテストデータ23では、複数の属性の組み合わせにより1つのレコード(行)が表される。従って、採用要素として、或る属性では出現頻度の高い要素を選定したとしても、他の属性では出現頻度の低い要素を選定した場合、これらの要素の組み合わせに一致するレコードが、テストデータ23に出現しない可能性がある。
例えば、訓練データ31b全体では、“性別:女性”、“学歴:修士”の出現頻度が高い場合であっても、“国:XX”ではその組み合わせの出現頻度が少ない場合、“性別:女性”、“学歴:修士”、“国:XX”の行は、推定表31kにおいて有効行数になり難い。
或る要素が採用要素として選定されない場合、当該或る要素の属性は、訓練データ31bとテストデータ23との間の分布が崩れることになる。この場合、採用要素を全て組み合わせたとしても、テストデータ23に存在しないレコードが出現することがある。すなわち、推定表31kの全レコードが有効なレコードになるわけではない。
そこで、一実施形態では、属性の組み合わせを考慮し、訓練データ31bをベースに、採用要素として、出現頻度の大きい要素を選定する、換言すれば、出現頻度の小さい要素を削除することで、有効行数の減少を抑制するのである。
以上のように、要素絞り込み部34bは、取得したデータ群に含まれる複数の属性値それぞれのデータ群での出現頻度に基づき、複数の属性項目それぞれについて、属性項目に定義された複数の属性値に含まれる1又は複数の属性値を選定する選定部の一例である。
生成部34cは、複数の属性項目それぞれについて選定した1又は複数の属性値に含まれるいずれかの属性値を、複数の属性項目それぞれの項目値とするデータを生成する第1生成部の一例である。例えば、生成部34cは、採用要素情報31hとして取得された各属性の要素に基づいて、採用要素情報31hに設定された属性及び要素の全ての組み合わせX′を網羅する組み合わせ情報31iを生成する。なお、上述のように、組み合わせ情報31iは、複数の属性項目それぞれの項目値の組み合わせX′を、全ての組み合わせ′を網羅するように列挙したデータである。
推論結果生成部35は、生成部34cが生成したデータ(複数の組み合わせそれぞれ)と、当該データ(複数の組み合わせのそれぞれ)を入力とした訓練済みモデル31aによる推論結果とを含む推論データを生成する第2生成部の一例である。推論結果生成部35は、組み合わせ情報31iとモデル31aとに基づき、図6に示す推論結果3dの一例である推論結果Y′を生成し、推論結果情報31jとしてメモリ部31に格納してよい。例えば、推論結果生成部35は、組み合わせ情報31iをモデル31aに入力し、モデル31aからの出力(一例として、分類結果)である推論結果Y′を取得する。
推論結果情報31jの生成手法は、図4及び図5に示す比較例と同様であってよい。なお、一実施形態においては、推論結果Y′は、{0,1}の2値で表される分類結果であるものとするが、これに限定されるものではない。
以上のように、組み合わせ生成部34により組み合わせ情報31iが生成され、推論結果生成部35により推論結果情報31jが生成される(図15参照)。また、例えば、推論結果生成部35は、生成した推論結果情報31jを組み合わせ情報31iと結合して、図6に示す推定表3eの一例である推定表31kを生成してよい。換言すれば、組み合わせ生成部34及び推論結果生成部35は、推定表31kを生成する推定表生成部の一例である。
依頼部36は、推定表31kを端末20に送信し、推定表31kの推論精度の検証を端末20(保有者2)に依頼するとともに、端末20からの応答として検証結果を受け付ける。例えば、依頼部36は、受け付けた検証結果を受領者3に提示してもよいし、モデル構築部33にフィードバックすることでモデル31aの修正が行なわれてもよい。このように、依頼部36は、生成した推論データの推論精度の評価依頼を、データ群の提供元に送信する送信部の一例である。
モデル提供部37は、モデル構築部33による学習(訓練)、並びに、組み合わせ生成部34、推論結果生成部35及び依頼部36による検証、が行なわれたモデル31aを利用するためのサービスを、端末20に提供する。例えば、モデル提供部37は、端末20に対して、モデル31aへのパーソナルデータ21の入力、及び、出力結果の取得を行なうサービスを提供してよい。或いは、モデル提供部37は、モデル31aの実行環境を端末20に送信することで、端末20上でモデル31aを利用できるようにしてもよい。
〔1-4〕動作例
次に、一実施形態に係る機械学習システム1の動作例を説明する。以下、“Adultデータ”のカテゴリカル属性のデータを用いてモデル31aの学習及び検証を行なう場合を例に挙げて説明する。
〔1-4-1〕サーバの動作例
まず、サーバ30の動作例を説明する。図16は、サーバ30の動作例を説明するフローチャートである。
図16に示すように、サーバ30において、取得部32は、端末20から訓練データ22を取得し、訓練データ31bとしてメモリ部31に格納する(ステップS1)。
モデル構築部33は、訓練データ31bを入力としてモデル31aの学習(訓練)を行なう(ステップS2)。
取得部32は、端末20から訓練データ属性情報24及びテストデータ属性情報25を取得し、訓練データ属性情報31c及びテストデータ属性情報31dとしてメモリ部31に格納する(ステップS3)。なお、ステップS3は、ステップS1又はS2と並行して、又は、ステップS1の前に実行されてもよい。
組み合わせ生成部34の採用要素数決定部34aは、メモリ部31に格納された匿名加工済みの訓練データ31b、訓練データ属性情報31c、テストデータ属性情報31d、及び、パラメータ31eを用いて、各属性の採用要素数を決定する(ステップS4)。
例えば、図17に示すように、訓練データ31bがA1~A8の属性を含むデータAであり、パラメータ31eがα=2、β=(要素数-1)である場合を想定する。
この場合、採用要素数決定部34aは、訓練データ属性情報31cとテストデータ属性情報31dとを比較し、要素数がα以上、且つ、訓練データ31b及びテストデータ23間で要素数が一致する属性A2、A3、A5及びA6を選定する。そして、採用要素数決定部34aは、βに基づき、選定した各属性A2、A3、A5及びA6の“要素数-1”を採用要素数に決定し、採用要素数情報31fをメモリ部31に格納する。
なお、採用要素数決定部34aは、訓練データ31bの要素数がテストデータ23の要素数よりも大きい属性の採用要素数を、テストデータ属性情報31dの要素数とする。また、採用要素数決定部34aは、それ以外、例えばテストデータ23の要素数が訓練データ31bの要素数よりも大きい属性の採用要素数を、訓練データ属性情報31cの要素数とする(属性A1、A4、A7、A8参照)。
要素絞り込み部34bは、採用要素数情報31fと出現頻度情報31gとに基づき、採用要素数決定部34aが選定した属性の採用要素を決定する(ステップS5)。
例えば、図18に示すように、属性A6及びA7に着目すると、要素絞り込み部34bは、訓練データ31bのA6及びA7のそれぞれの要素を出現頻度の高い順にソートした出現頻度情報31gを作成する。そして、要素絞り込み部34bは、採用要素数情報31fの属性A6及びA7の採用要素数(4、2)に従い、属性A6の出現頻度の高い上位4要素、及び、属性A7の出現頻度の高い上位2要素をそれぞれ取り出し、採用要素情報31hとして記録する。
図18の例では、要素絞り込み部34bは、属性A6及びA7のそれぞれの要素について、出現頻度の高い下記の要素を抽出し、採用要素情報31hとしてメモリ部31に格納する。
A6:{White, Black Asian-Pac-Islander,Amer-Indian-Eskimo}
A7:{Male, Female}
生成部34cは、要素絞り込み部34bにより得られた各属性の要素(採用要素情報31h)に基づき、組み合わせ情報31iを生成する(ステップS6)。
例えば、図19に示すように、属性A6及びA7に着目すると、生成部34cは、A6×A7(4×2=8)の下記の組み合わせX′を作成する。
X’={(White,Male), (White,Female),(Black,Male), (Black,Female), (Asian-Pac-Islander, Male), (Asian-Pac-Islander, Female),(Amer-Indian-Eskimo,Male), (Amer-Indian-Eskimo,Male)}
“Adultデータ”全体としては、生成部34cは、図19に例示するように、各属性の採用要素数に基づき、A1×A2×A3×A4×A5×A6×A7×A8の組み合わせX′を作成し、組み合わせ情報31iとしてメモリ部31に格納する。図19の例では、属性A2、A3、A6、A7の採用要素数が訓練データ31bの要素数よりも減少し(絞り込まれ)、組み合わせX′の数(行数)の削減が実現されている。
推論結果生成部35は、組み合わせ生成部34が生成した組み合わせ情報31iと、モデル31aとに基づき、推論結果情報31jを生成する(ステップS7)。例えば、推論結果生成部35は、モデル31aに推論結果情報31jを入力として与え、モデル31aからの出力を推論結果情報31jとして取得してよい。また、推論結果生成部35は、組み合わせ情報31iと推論結果情報31jとを結合して推定表31kを生成してよい。
依頼部36は、推論結果生成部35が生成した推定表31kを端末20に送信して(ステップS8)、推定表31kを利用したモデル31aの検証(評価)を依頼する。依頼部36は、端末20から検証結果を受信し(ステップS9)、処理が終了する。検証結果は、受領者3に提示されてもよいし、モデル構築部33にフィードバックされてもよい。
〔1-4-2〕端末の動作例
次に、端末20の動作例を説明する。図20は、端末20の動作例を説明するフローチャートである。
図20に例示するように、端末20は、サーバ30から推定表31kを受信する(ステップS11)。
端末20の検証部26は、テストデータ23と推定表31kとを比較し(ステップS12)、比較結果に基づき、推定表31kの推論精度を算出する(ステップS13)。
一例として、検証部26は、テストデータ23のレコード数に対する、テストデータ23のレコード(組み合わせX及び推論結果Y)に一致する推定表31kのレコード数の割合を、推論精度として算出してよい。なお、推論精度の算出手法は、これに限定されるものではなく、既知の種々の手法が採用されてよい。
そして、端末20は、算出した推論精度をサーバ30に送信し(ステップS14)、処理が終了する。
〔1-5〕一実施形態の効果
以上のように、一実施形態に係る機械学習システム1は、匿名加工データで学習したモデル31aの、生データによる精度評価を行なうために、受領者3が推定表31kを作成する際に適用可能である。
例えば、一実施形態に係る機械学習システム1によれば、サーバ30は、訓練データ31bでの出現頻度に基づき、推定表31kにおいて、各要素を採用対象とするか否か、換言すれば、削除対象とするか否かを判定する。これにより、推定表31kに適切な要素の組み合わせを含めることができるから、推定表31kの有効行数の割合を向上又は維持する、換言すれば、有効行数減少を抑制できる。また、選定により属性値の組み合わせ数が減少するため、推定表31kの行数(レコード数)を抑制できる。すなわち、モデル評価に要する負荷を軽減できる。
例えば、訓練データ31bが32,561行のレコードを含み、テストデータ23が16,281行のレコードを含む“Adultデータ”のカテゴリカル属性を用いて、モデル31aの学習及び検証を行なう場合を想定する。なお、パラメータ31eは、要素数閾値α=2、採用要素数β=(要素数-1)であるものとする。
この条件において、図4及び図5に示す比較例に係る手法を実施した場合、推定表330の行数は38,102,400行となり、有効行数は5,335行となり、推定表330中の有効行数割合は、0.014%となる。
一方、この条件において、一実施形態に係る手法を実施した場合、推定表31kの行数は5,644,800行となり、有効行数は4,379行となり、推定表31k中の有効行数割合は、0.077%となる。
このように、一実施形態に係る手法によれば、比較例に係る手法と比較して、推定表31kの行数を1/7程度に縮小しつつ、有効行数の割合を向上させることができる。
〔2〕変形例
次に、一実施形態の変形例について説明する。
〔2-1〕第1変形例
第1変形例に係るサーバ30は、図21に例示するように、図7に示す一実施形態に係る組み合わせ生成部34とは異なる組み合わせ生成部34Aを備えてよい。なお、サーバ30及び端末20の他の構成については、一実施形態と同様であり、その説明及び図示を省略する。
第1変形例に係る組み合わせ生成部34Aは、図21に例示するように、出現頻度情報生成部34d、採用要素決定部34e及び生成部34cを備えてよい。生成部34cは、一実施形態に係る生成部34cと同様である。
出現頻度情報生成部34d及び採用要素決定部34eは、それぞれ、要素絞り込み部34b及び採用要素数決定部34aと共通する機能を含んでよい。例えば、組み合わせ生成部34Aは、組み合わせ生成部34による、採用要素数の決定と、採用要素数及び出現頻度に基づく採用要素の決定と、を逆順で実行するといえる。
出現頻度情報生成部34dは、全ての属性についての出現頻度情報31gを生成する(図22のステップS21参照)。出現頻度情報31gの生成手法は、一実施形態に係る要素絞り込み部34bと同様の手法が採用されてよい。
採用要素決定部34eは、一実施形態に係る採用要素数決定部34aと同様に、パラメータ31eに基づき、訓練データ属性情報31cとテストデータ属性情報31dとを比較して、要素数を減少させる属性と採用要素数とを決定する。
また、採用要素決定部34eは、決定した属性ごとに、出現頻度情報31gに基づき、出現頻度の高い要素から順に、採用要素数の分だけ採用要素を選定する(図22のステップS22参照)。
このように、出現頻度情報生成部34d及び採用要素決定部34eは、取得したデータ群に含まれる複数の属性値それぞれのデータ群での出現頻度に基づき、複数の属性項目それぞれについて、属性項目に定義された複数の属性値に含まれる1又は複数の属性値を選定する選定部の一例である。
以上のように、第1変形例に係る手法によっても、一実施形態と同様の効果を奏することができる。
〔2-2〕第2変形例
第2変形例に係るサーバ30は、図23に例示するように、図7に示す一実施形態に係る組み合わせ生成部34とは異なる組み合わせ生成部34Bを備えてよい。なお、サーバ30及び端末20の他の構成については、一実施形態と同様であり、その説明及び図示を省略する。
第2変形例に係る組み合わせ生成部34Bは、図23に例示するように、採用要素選定部34f及び生成部34cを備えてよい。生成部34cは、一実施形態に係る生成部34cと同様である。
採用要素選定部34fは、全ての属性についての出現頻度情報31gを生成する。出現頻度情報31gの生成手法は、一実施形態に係る要素絞り込み部34bと同様の手法が採用されてよい。
そして、採用要素選定部34fは、属性ごとに、出現頻度が所定頻度以上の要素を採用要素として選定する、換言すれば、所定頻度未満の要素を切り捨てる。
例えば、図24に示すように、“Adultデータ”のカテゴリカル属性の属性A6及びA7に着目すると、採用要素選定部34fは、A6及びA7のそれぞれから、所定頻度(一例として50)以上の要素を採用要素として取り出し、採用要素情報31hを生成する。なお、閾値としての所定頻度は、属性ごとに異なる値が設定されてもよい。また、所定頻度は、頻度又は回数の他に、属性内の全要素の出現総数に対する、各要素の出現数の割合(%)であってもよい。
このように、採用要素選定部34fは、取得したデータ群に含まれる複数の属性値それぞれのデータ群での出現頻度に基づき、複数の属性項目それぞれについて、属性項目に定義された複数の属性値に含まれる1又は複数の属性値を選定する選定部の一例である。
以上のように、第2変形例に係る組み合わせ生成部34Bは、一実施形態及び第1変形例において行なった採用要素数の決定を省略し、各属性について、所定頻度以上の要素を採用要素として選定するのである。第2変形例に係る手法によっても、出現頻度の高い要素が優先的に採用要素として選定されるため、一実施形態と同様の効果を奏することができる。また、一実施形態及び第1変形例と比較して、組み合わせ生成部34Bの処理を簡略化できるため、サーバ30の処理負荷を低減させることができる。
なお、採用要素選定部34fは、全ての属性について、所定頻度以上の要素を採用要素として選定するものとしたが、これに限定されるものではない。
例えば、採用要素選定部34fは、訓練データ属性情報31cとテストデータ属性情報31dとを比較し、要素数がα以上、且つ、訓練データ31bとテストデータ23との間で要素数が一致する属性(要素数の削減を行なう属性)を決定してもよい。この属性の決定は、一実施形態に係る採用要素数決定部34aと同様の手法が採用されてよい。
そして、採用要素選定部34fは、決定した属性を対象として、所定頻度以上の要素を採用要素として選定してもよい。
これにより、訓練データ31bとテストデータ23との間で要素の出現分布が異なる可能性の高い属性については、採用要素数の減少対象から除外することができ、有効行数が減少するリスクを低減できる。
〔3〕ハードウェア構成例
図25は、サーバ30の機能を実現するコンピュータ10のハードウェア(HW)構成例を示すブロック図である。サーバ30の機能を実現するHWリソースとして、複数のコンピュータが用いられる場合は、各コンピュータが図25に例示するHW構成を備えてよい。
図25に示すように、コンピュータ10は、HW構成として、例示的に、プロセッサ10a、メモリ10b、記憶部10c、IF(Interface)部10d、I/O(Input / Output)部10e、及び読取部10fを備えてよい。
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ10aは、コンピュータ10内の各ブロックとバス10iで相互に通信可能に接続されてよい。なお、プロセッサ10aは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
プロセッサ10aとしては、例えば、CPU、MPU、GPU、APU、DSP、ASIC、FPGA等の集積回路(IC:Integrated Circuit)が挙げられる。なお、プロセッサ10aとして、これらの集積回路の2以上の組み合わせが用いられてもよい。
例えば、サーバ30の取得部32、組み合わせ生成部34、34A及び34B、推論結果生成部35、並びに、依頼部36の処理機能は、プロセッサ10aとしてのCPU又はMPU等により実現されもよい。また、サーバ30のモデル構築部33及びモデル提供部37の処理機能は、プロセッサ10aのうちのGPU又はASIC(例えばTPU)等のアクセラレータにより実現されてもよい。
CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。GPUはGraphicsProcessing Unitの略称であり、APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplicationSpecific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。TPUはTensor Processing Unitの略称である。
メモリ10bは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ10bとしては、例えばDRAM(Dynamic Random Access Memory)等の揮発性メモリ、及び、PM(PersistentMemory)等の不揮発性メモリ、の一方又は双方が挙げられる。
記憶部10cは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部10cとしては、HDD(Hard Disk Drive)等の磁気ディスク装置、SSD(Solid StateDrive)等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。
また、記憶部10cは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10g(制御プログラム)を格納してよい。例えば、サーバ30のプロセッサ10aは、記憶部10cに格納されたプログラム10gをメモリ10bに展開して実行することにより、図7、図21又は図23に例示するサーバ30としての機能を実現できる。
なお、メモリ10b及び記憶部10cの少なくとも1つが有する記憶領域は、図7に示す各情報31a~31kを記憶可能であってよい。換言すれば、図7に示すメモリ部31は、メモリ10b及び記憶部10cの少なくとも1つが有する記憶領域により実現されてよい。
IF部10dは、ネットワーク40との間の接続及び通信の制御等を行なう通信IFの一例である。例えば、IF部10dは、イーサネット(登録商標)等のLAN、或いは、FC(Fibre Channel)等の光通信等に準拠したアダプタを含んでよい。当該アダプタは、無線及び有線の一方又は双方の通信方式に対応してよい。例えば、サーバ30は、IF部10dを介して、端末20と相互に通信可能に接続されてよい。また、例えば、プログラム10gは、当該通信IFを介して、ネットワーク40からコンピュータ10にダウンロードされ、記憶部10cに格納されてもよい。
I/O部10eは、入力装置、及び、出力装置、の一方又は双方を含んでよい。入力装置としては、例えば、キーボード、マウス、タッチパネル等が挙げられる。出力装置としては、例えば、モニタ、プロジェクタ、プリンタ等が挙げられる。
読取部10fは、記録媒体10hに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部10fは、記録媒体10hを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部10fとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10hにはプログラム10gが格納されてもよく、読取部10fが記録媒体10hからプログラム10gを読み出して記憶部10cに格納してもよい。
記録媒体10hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(HolographicVersatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
上述したコンピュータ10のHW構成は例示である。従って、コンピュータ10内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。例えば、サーバ30において、I/O部10e及び読取部10fの少なくとも一方は、省略されてもよい。
なお、端末20は、上述したコンピュータ10と同様のHW構成により実現されてよい。例えば、端末20のプロセッサ10aは、記憶部10cに格納されたプログラム10gをメモリ10bに展開して実行することにより、図7に示す端末20としての機能を実現できる。
〔4〕その他
上述した一実施形態、第1変形例及び第2変形例に係る技術は、以下のように変形、変更して実施することができる。
例えば、図7に示すサーバ30が備える取得部32、モデル構築部33、組み合わせ生成部34、推論結果生成部35、依頼部36、及び、モデル提供部37は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。また、図7に示す組み合わせ生成部34が備える採用要素数決定部34a、要素絞り込み部34b及び生成部34cは、任意の組み合わせで併合してもよく、それぞれ分割してもよい。さらに、図21に示す組み合わせ生成部34Aが備える出現頻度情報生成部34d、採用要素決定部34e及び生成部34cは、任意の組み合わせで併合してもよく、それぞれ分割してもよい。また、図23に示す組み合わせ生成部34Bが備える採用要素選定部34f及び生成部34cは、併合してもよく、それぞれ分割してもよい。
また、図7、図21及び図23に示すサーバ30は、複数の装置がネットワークを介して互いに連携することにより、各処理機能を実現する構成であってもよい。一例として、取得部32、依頼部36及びモデル提供部37はWebサーバ、モデル構築部33、組み合わせ生成部34及び推論結果生成部35はアプリケーションサーバ、メモリ部31はDB(Database)サーバ、であってもよい。この場合、Webサーバ、アプリケーションサーバ及びDBサーバが、ネットワークを介して互いに連携することにより、サーバ30としての各処理機能を実現してもよい。
さらに、モデル31aの構築(取得部32及びモデル構築部33)、検証(取得部32、組み合わせ生成部34、推論結果生成部35及び依頼部36)、並びに、提供(モデル提供部37)に係る各処理機能が、互いに異なる装置により提供されてもよい。この場合においても、これらの装置がネットワークを介して互いに連携することにより、サーバ30としての各処理機能を実現してもよい。
また、一実施形態並びに第1及び第2変形例では、訓練データ31bとして匿名データが用いられ、テストデータ23及びパーソナルデータ21として生データが用いられるものとしたが、これに限定されるものではない。
例えば、サーバ30の管理者が第1教育データを所有し、サーバ30が当該第1教育データを用いてモデル31aの学習を行なってもよい。例えば、管理者が、他人(例えば保有者2)が有する第2教育データであって、第1教育データと同様のデータ分布である第2教育データを利用してモデル31aの検証を行なう場合においても、一実施形態並びに第1及び第2変形例に係る手法を適用可能である。なお、この場合、訓練データ31bとしての第1教育データは、管理者が所有するデータであり、保有者2のデータではないため、生データであってもよい。