以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図1は、本発明による情報処理システムの第一の実施形態の構成例を示すブロック図である。本実施形態の情報処理システム100は、記憶部11と、受付部12と、関数(descriptor)生成部13と、特徴量生成部14と、説明文生成部15とを備えている。
記憶部11は、予測対象(すなわち、目的変数)の変数を含む表(以下、第一の表と記すこともある。)、および、第一の表に含まれるデータの集合(以下、第一表データと記すこともある。)を記憶する。以下の説明では、第一の表をターゲットテーブルと記すこともある。また、記憶部11は、第一の表と異なる表(以下、第二の表と記すことある。)、および、第二の表に含まれるデータの集合(以下、第二表データと記すこともある。)を記憶する。以下の説明では、この第二の表をソーステーブルと記すこともある。
第一の表および第二の表は、データの属性を表わす列(カラム)の組合せにより定義される。また、各表は、各属性の値を示すデータを組み合わせた1つ以上の行(レコード)を含む。例えば、それぞれの顧客からは個人情報を利用することについて予め同意を得られている状況において、顧客の契約情報や顧客の通話情報履歴に基づき、ある顧客が来月携帯電話を解約するか否かを推定する状況を想定する。この場合、予測対象は、顧客の解約の有無である。この場合、第一の表(ターゲットテーブル)には、顧客を識別する情報(顧客ID)と、その顧客の解約の有無を示す値が含まれる(後述する図3におけるターゲットテーブルT11参照。ターゲットテーブルT11における「解約」の列が予測対象(すなわち、目的変数)に相当する。)。また、第二の表(ソーステーブル)には、第一の表とは異なる情報が含まれる(後述する図3におけるソーステーブルS11参照)。
第一の表の粒度は、第二の表の粒度と同一であってもよく、異なっていてもよい。ここで、表の粒度とは、表に含まれるデータの細かさを表す指標であり、具体的には、その表に含まれるデータがどの項目で一意に特定できるかを表す指標である。例えば、ターゲットテーブルに含まれる各データが、顧客を識別するID(顧客ID)で特定できる場合、この顧客IDが表の粒度に相当する。データベースの場合、この粒度は、例えば、プライマリキーに相当する。よって、ターゲットテーブル(第一の表)と粒度が異なる表とは、ターゲットテーブルの各行に対して、行が一対一に対応していない表を意味する。なお、後述する特徴量生成関数(feature descriptor)を生成する際、記憶部11は、第一表データおよび第二表データを記憶していなくてもよい。
受付部12は、後述する関数生成部13が特徴量生成関数を生成するために必要な各種情報、および、後述する説明文生成部15が特徴量生成関数または特徴量の意味を表す説明文(feature explanation)を生成するために必要な情報の入力を受け付ける。
受付部12は、通信ネットワーク(図示せず)を介して受信する情報を受け付けてもよく、これらの情報を記憶する記憶装置(図示せず)から情報を読み取って受け付けてもよい。また、この記憶装置の機能を記憶部11が兼ねていてもよい。受付部12が受け付ける入力の内容は、後述される。
以下の説明で、特徴量とは、予測対象に影響を及ぼし得る変数を意味する。また、特徴量のベクトル(特徴量ベクトル)とは、第一の表の行数に対応する次元のベクトルであり、説明変数(予測変数)を意味するデータである。なお、複数の特徴量ベクトルからなる情報を、特徴量テーブルと記すこともある。特徴量生成関数は、具体的には、特徴量ベクトルを生成する関数である。すなわち、特徴量を生成するとは、特徴量ベクトルを生成することを意味する。一方、特徴量を設計するとは、特徴量生成関数を設計することを意味する。以下の説明では、特徴量と特徴量ベクトルとを区別なく“特徴量”と表現する。
関数生成部13は、受付部12が受け付けた情報を用いて特徴量生成関数を生成する。特徴量生成関数は、第一の表および第二の表から予測対象(すなわち、目的変数)に影響を及ぼし得る変数である特徴量を生成するために用いられる。
特徴量は、機械学習を用いてモデルを生成する際の説明変数の候補になる。言い換えると、本実施形態で生成される特徴量生成関数を用いることで、機械学習を用いてモデルを生成する際の説明変数の候補を自動的に生成することが可能になる。
関数生成部13は、予め用意されたテンプレート(以下、第一のテンプレートと記す。)を用いて特徴量生成関数を生成する。第一のテンプレートには、例えば、3種類のパラメータが含まれる。具体的には、受付部12が第一のテンプレートに代入する値として3種類のパラメータに代入する値を受け付け、関数生成部13は、受け付けられた値を第一のテンプレートの各パラメータに代入して特徴量生成関数を生成する。以下、第一のテンプレートに含まれる各パラメータの内容を説明する。
第一のパラメータは、第二の表に含まれる行の抽出条件を表わすパラメータである。より具体的には、第一のパラメータには、第二の表から条件を満たす行を選択するため、その条件と選択の対象になる列とを示す値(以下、選択情報と記す。)が代入される。以下の説明では、第一のパラメータを選択パラメータと記すこともある。第一のパラメータが示す選択情報は、ソーステーブル(第二の表)に対する条件式として定義されてもよい。以下、第一のパラメータに基づいて第二の表から行を抽出する処理を「filter」と記載する場合がある。また、この条件式のリストを「Fリスト」と記載する場合がある。
抽出条件は任意であり、例えば、指定された列の値と同じ(大きいまたは小さい)か否か判断する条件が挙げられる。
図2は、filterの例を示す説明図である。図2に例示するソーステーブルS11(第二の表)は、顧客の通話記録(具体的には、通話時刻、通話方向、通話タイプおよび通話時間)を含む表とする。図2に示す例では、ソーステーブルS11の属性に、「顧客ID」、「時刻」、「通話方向」、「タイプ」および「通話時間」が含まれる。ここで、第一のパラメータに、選択の対象になる列として属性「通話方向」が指定され、選択の条件に属性「通話方向」の示す値「OUT」が指定されたとする。この場合、ソーステーブルから、通話方向=OUTを満たす行を含む表R11が選択される。図2に示される「通話情報=OUT」が選択情報に相当する。
第二のパラメータは、第一の表の列と第二の表の列との対応条件を表わすパラメータである。より具体的には、第二のパラメータには、第一の表と第二の表とを結合する際のキー列を示す値(以下、結合情報と記す。)が代入される。以下の説明では、第二のパラメータを結合パラメータと記すこともある。第二のパラメータが示す結合情報は、ターゲットテーブル(第一の表)の列とソーステーブル(第二の表)の列を対応付ける列のペアとして定義されてもよい。以下、第二のパラメータに基づいて各テーブルの列を対応付ける処理を「map」と記載する場合がある。また、この列のペアのリストを「Mリスト」と記載する場合がある。また、mapによる各表の列の対応付けは、対応付けられた列で複数の表を1つの表に結合(join)することとも言える。
図3は、mapの例を示す説明図である。図3に例示するターゲットテーブルT11(第一の表)は、顧客を識別する顧客IDと解約の有無を示す変数とを含む表とする。図3に例示するターゲットテーブルT11は、「顧客ID」、「プラン」、「機器」および「解約(の有無)」を属性に含む。なお、図3に例示するソーステーブルS11の内容は、図2に例示するソーステーブルS11と同様である。
図3に示す例で、第二のパラメータにおける結合するキー列として、ターゲットテーブルT11の「顧客ID」列と、ソーステーブルS11の「顧客ID」列とが指定されたとする。このパラメータは、ターゲットテーブルT11とソーステーブルS11とを、それぞれの「顧客ID」列で結合することを示す。なお、粒度が異なるテーブルの場合、ターゲットテーブルに含まれる各属性の値が、ソーステーブルの「顧客ID」列に応じてそれぞれ展開される。その結果、2つの表から1つの表R12が生成される。図3に示される「ターゲットテーブル列名:顧客ID、ソーステーブル列名:顧客ID」が結合情報に相当する。
第三のパラメータは、第二の表に含まれるある列に関して、複数の行を集約する方法を示すパラメータである。より具体的には、第三のパラメータには、第一の表と第二の表とを結合する際、第二の表における複数の行に対する集約演算と、その集約演算の対象になる列とを示す値(以下、集約情報と記す。)が代入される。例えば、ターゲットテーブルにおいて結合情報に指定される列が主キーである場合、結合情報にて指定された列の値が定まれば目的変数列の値が一意に定まる。この場合、Reduce処理によって、ソーステーブルにおけるある列のレコード数が、目的変数列のレコード数と同じレコード数まで、結果として集約される。
以下の説明では、第三のパラメータを集約パラメータと記すこともある。第三のパラメータが示す集約情報は、ソーステーブル(第二の表)の列に対する集約関数として定義されてもよい。以下、第三のパラメータが示す方法により各列のデータを集約する処理を「reduce」と記載する場合がある。また、この集約関数のリストを「Rリスト」と記載する場合がある。
集約方法は任意であり、例えば、列の総数、最大値、最小値、平均値、中央値、分散などが挙げられる。また、列の総数の集計は、重複データを除外する、または、重複データを除外しない、のいずれかの観点で行われてもよい。
図4は、reduceの例を示す説明図である。図4に例示するテーブルR13は、図3に例示する表R12の一部の列を示している。図4に示す例では、第三のパラメータとして、第二の表に対して行われる集約演算に最大値の抽出、その集約演算の対象になる列に通話時間を指定したとする。この場合、キーである「顧客ID」ごとに、通話時間の最大値を選択した結果、表R14が生成される。図4に示される「列名:通話時間、集約関数:MAX」が集約情報に相当する。
図5は、各パラメータが示す処理の例を示す説明図である。図5に示す例では、ターゲットテーブルTとソーステーブルSがそれぞれ1つずつ存在し、key列が両テーブルを対応付ける列である。また、ターゲットテーブルのY列が目的変数である。図5におけるS1は、ソーステーブルS内の列の集合のサブセットである。
まず、filterで、ソーステーブルSにおけるX’列の値valueが所定の条件を満たす行が選択され、サブセットS1が生成される。次に、mapで、ターゲットテーブルTの行とソーステーブルSの行とが、それぞれのkey列を介して結合される。例えば、key列の値が同じ列同士が結合される。そして、reduceで、ターゲットテーブルTの各行に対してmapで対応付けられたソーステーブルSの列のうちfilterで選び出された行の集合の値を用いて、集約演算が行われる。
図6は、第一のテンプレートに値を適用して特徴量生成関数を生成する処理の例を示す説明図である。図6に例示する第一のテンプレートTempにおいて、アンダーラインを付した個所が各パラメータに該当する。図6に例示するテンプレート内のTは、第一の表を意味し、Sは、第二の表を示す。また、「$M.T列名」は、第二のパラメータに含まれる第一の表のキー列を示す。「$R.集約関数($R.列名)」は、第三のパラメータに含まれる集約演算およびその集約演算の対象になる列を示す。「F.条件式」は、第一のパラメータに含まれる第二の表から行を選択する条件を示す。「$M.S列名」は、第二のパラメータに含まれる第二の表のキー列を示す。関数生成部13は、これらの各パラメータに受け付けたパラメータの値を代入することで特徴量生成関数を生成する。
受付部12が、例えば、選択情報として「通話方向=IN」、結合情報として「T.顧客ID=S.顧客ID」、集約情報として、「通話時間=COUNT」を受け付けたとする。このとき、関数生成部13は、第一のパラメータに、「通話方向=IN」、第二のパラメータに、「T.顧客ID=S.顧客ID」、第三のパラメータに、「通話時間=COUNT」をそれぞれ代入して、特徴量生成関数D11を生成する。
第一のテンプレートは、図6に例示するように、問合せ言語であるSQLに従って用意されてもよい。この場合、関数生成部13は、SQL文を生成するテンプレートに抽出条件、対応条件および集約方法を適用して特徴量生成関数を生成すればよい。したがって、特徴量生成関数は、第一の表および第二の表に対する問合せ文(クエリ)と言うことができる。なお、以下の説明では、リレーショナルデータベースを例示するが、分散処理実行基盤で用いられるような抽象的なデータ構造を有する場合も、本発明を同様に適用可能である。
また、受付部12が、複数の結合情報、集約情報または選択情報を受け付けた場合、関数生成部13は、受け付けられた結合情報、集約情報および選択情報の組み合わせを複数生成し、生成された組み合わせごとに特徴量生成関数を生成してもよい。
以下、関数生成部13が特徴量生成関数を複数生成する手順を具体的に説明する。図7は、特徴量生成関数の生成に用いる情報の例を示す説明図である。図7に示す例では、予測対象の変数(目的変数)が顧客の解約の有無を示す変数であるとする。なお、ターゲットテーブルT11およびソーステーブルS11の内容は、図2および図3に例示する内容と同様である。
Fリストは、第一のパラメータに代入される選択情報のリストである。図7に示すFリストは、18の選択情報の候補を含む。Mリストは、第二のパラメータに代入される結合情報のリストである。図7に示すMリストは、1つの結合情報の候補を含む。Rリストは、第三のパラメータに代入される集約情報のリストである。図7に示すRリストは、6つの集約情報の候補を含む。
なお、Fリスト、MリストおよびRリストは、機械で自動的に作成されてもよく、人間によって手動で作成されてもよい。ここでは、図7に例示するFリスト、MリストおよびRリストが予め作成されているものとする。
まず、関数生成部13は、Fリスト、MリストおよびRリストから、それぞれ1つずつ候補を選択し、各候補の組合せを生成する。関数生成部13は、例えば、組合せの一つとして、Fリストから「通話方向=IN」、Mリストから「T.顧客ID=S.顧客ID」、Rリストから「通話時間=COUNT」を選択する。他にも、関数生成部13は、例えば、Fリストから「通話方向=OUT and タイプ=call」、Mリストから「T.顧客ID=S.顧客ID」、Rリストから「時刻=MAX」を選択する。図7に示す例では、Fリストに18通りの条件式、Mリストに1通りの対応条件、および、Rリストに6通りの集約方法が含まれる。そのため、これらの各リストの候補から108通りの組み合わせが生成される。
次に、関数生成部13は、生成された組み合わせごとに特徴量生成関数を生成する。具体的には、関数生成部13は、生成された組合せに含まれる結合情報、集約情報および選択情報を、第一のテンプレートに代入して特徴量生成関数を生成する。上記例では、結合情報は、Mリストから選択された候補に該当し、集約情報は、Rリストから選択された候補に該当し、選択情報は、Fリストから選択された候補に該当する。
例えば、問合せ言語にSQLを用いる場合、特徴量生成関数は、SQL文として定義され、Fリスト、MリストおよびRリストからそれぞれ選択される3つの候補の値が、SQL文を生成するためのパラメータに代入される。
図8は、第一のテンプレートに値を適用して特徴量生成関数を生成する処理の他の例を示す説明図である。図8に例示するテンプレートの内容は、図6に例示するテンプレートTempの内容と同様であり、予め用意される。関数生成部13は、テンプレートTempの下線で示すパラメータに、結合情報、集約情報および選択情報を適用することで特徴量生成関数を生成する。
組み合わせが複数生成された場合であっても、特徴量生成関数を生成する方法は同様である。例えば、図8に例示するように、Fリストから「通話方向=IN」という条件式、Mリストから「顧客ID同士で対応づけ」という対応条件、Rリストから「通話時間の列をカウント」という集約方法を選択した組合せが生成されたとする。この場合、関数生成部13は、この組合せをテンプレートTempに適用し、図8に例示する特徴量生成関数D21を生成する。この特徴量生成関数D21によって表現される特徴量は、かかって来た通話または届いたメッセージの総数を表わす。
他にも、図8に例示するように、Fリストから「通話方向=OUT AND タイプ=call」という条件式、Mリストから「顧客ID同士で対応づけ」という対応条件、Rリストから「時刻が最大」という集約方法を選択した組合せが生成されたとする。この場合、関数生成部13は、この組合せをテンプレートTempに適用し、図8に例示する特徴量生成関数D22を生成する。この特徴量生成関数D22によって表現される特徴量は、音声通話をかけた時刻の最新値を表わす。
上記に例示する以外にも、様々な特徴量を生成することが可能である。例えば、Fリストから「タイプ=call AND 通話方向=OUT AND HOUR(時刻)<7」という条件式、Mリストから「顧客ID同士で対応づけ」という対応条件、Rリストから「通話時間の平均」という集約方法を選択した組合せが生成されたとする。この組合せによって表現される特徴量は、7時前にかけられた音声通話の平均時間を表わす。
また、Fリストから「タイプ=call AND 通話方向=IN」という条件式、Mリストから「顧客ID同士で対応づけ」という対応条件、Rリストから「通話時間の分散」という集約方法を選択した組合せが生成されたとする。この組合せによって表現される特徴量は、かかって来た通話における通話時間のばらつき度合いを表わす。
特徴量生成部14は、生成された特徴量生成関数を第一の表および第二の表に適用して特徴量(具体的には、特徴量ベクトル)を生成する。特徴量生成部14は、予測対象の値を予測するためのモデルを学習する際に、説明変数の候補として用いられる特徴量を生成する。
特徴量生成部14は、上述するパラメータを用いた特徴量生成関数によって、以下の処理に基づき特徴量を生成する。特徴量生成部14は、まず、第一のパラメータで指定されたソーステーブルの抽出条件に基づき、ソーステーブルから1つ以上の行を抽出する(filter)。
特徴量生成部14は、次に、第二のパラメータで指定された結合情報を介して、ターゲットテーブルとソーステーブルとを対応付ける(Map)。なお、ターゲットテーブルとソーステーブルとを対応付ける際、結合情報で示す列の値が完全一致する行同士だけでなく、指定された類似度により対応付けられてもよい。例えば、日時データで対応を取る際に、日時が完全に一致する行同士だけでなく、二つの行の日時の差が所定の範囲内(例えば、6時間以内)であれば対応付ける、という例が挙げられる。また、ターゲットテーブルとソーステーブルにそれぞれ、経度・緯度の列があり、これらを用いて対応条件を記載する際に、2地点の距離が所定の範囲内(例えば、5Km以内)、といった距離に基づく対応付けを行う例も挙げられる。
特徴量生成部14は、次に、第三のパラメータで指定された集約方法に基づいて、ターゲットテーブルの各行に対してfilterによって選び出された行のうち、mapにより対応付けられた行を集約する(reduce)。この集約により、ターゲットテーブルの各行に対して得られた値を含むベクトルが特徴量とされる。
図9は、特徴量を生成する処理の例を示す説明図である。図9に示す例では、図2に例示するターゲットテーブルT11と図3に例示するソーステーブルS11を利用し、特徴量として「顧客の最大通話時間」を生成するものとする。この場合、第一のパラメータには、選択情報として「タイプ=call」が代入される。また、第二のパラメータには、結合情報として「T.顧客ID=S.顧客ID」が代入される。また、第三のパラメータには、集約情報として、「通話時間=MAX」が代入される。その結果、図9に例示する特徴量生成関数D31が生成される。
特徴量生成部14は、この特徴量生成関数D31を、ターゲットテーブルT11およびソーステーブルS11に適用することで、「顧客の最大通話時間」を示す特徴量R21を生成する。特徴量生成部14は、例えば図9のテーブルR21に示すように、結合情報にて指定された列(ここでは顧客ID)と生成した特徴量とが紐付された形式のデータを出力することが好ましい。
説明文生成部15は、生成された特徴量生成関数または特徴量についての説明文を生成する。本実施形態で生成する説明文は、抽象的な特徴量の生成モデルを自然言語で表現したものであり、特徴量生成関数または特徴量の意味を表す文のことである。すなわち、説明文は、特徴量そのものに対する説明文であってもよいし、説明量生成関数に対する説明文であってもよい。
具体的には、説明文生成部15は、特徴量生成関数または特徴量についての説明文を、テンプレート(以下、第二のテンプレートと記す。)に基づいて生成する。第一のテンプレートに代入された情報は第二のテンプレートにも代入される。すなわち、説明文生成部15は、第一のテンプレートに代入された値を第二のテンプレートにも代入して説明文を生成する。
第二のテンプレートは、ソーステーブルの情報(以下、表情報と記す。)から説明文の一部(表ラベル)を生成する表テンプレートと、結合パラメータから説明文の一部(結合ラベル)を生成する結合テンプレートと、集約パラメータから説明文の一部(集約ラベル)を生成する集約テンプレートと、選択パラメータから説明文の一部(選択ラベル)を生成する選択テンプレートを含む。さらに、第二のテンプレートは、表ラベル、結合ラベル、集約ラベルおよび選択ラベルが代入されるラベルパラメータから説明文を生成するラベルテンプレートを含む。
説明文生成部15は、表情報を表パラメータに代入することにより、表テンプレートから自然言語表現された表ラベルを生成する。表情報は、受付部12が明示的に受け付けた情報であってもよく、選択パラメータ、結合パラメータまたは集約パラメータから説明文生成部15によって特定されてもよい。
同様に、説明文生成部15は、結合情報を結合パラメータに代入することにより、結合テンプレートから自然言語表現された結合ラベルを生成する。また、説明文生成部15は、集約情報を集約パラメータに代入することにより、集約テンプレートから自然言語表現された集約ラベルを生成する。また、説明文生成部15は、選択情報を選択パラメータに代入することにより、選択テンプレートから自然言語表現された選択ラベルを生成する。
そして、説明文生成部15は、表ラベル、結合ラベル、集約ラベルおよび選択ラベルをラベルパラメータにそれぞれ代入することにより、ラベルテンプレートから説明文を生成する。
図10は、各ラベルを生成する処理の例を示す説明図である。表ラベルの生成では、図10に例示するような、表テンプレートTemp11が用いられる。表テンプレートTemp11において、「$ソーステーブル名」が表パラメータを表す。表パラメータには、例えば、第一のテンプレートに代入された結合情報における第二の表の値が代入される。説明文生成部15は、例えば、表情報として第二の表の名称「call_log」を受け付けると、その名称を表パラメータ「$ソーステーブル名」に代入することにより、表テンプレートTemp11から自然言語表現された表ラベル「call_log」を生成する。なお、例えば第二の表が一つしかない場合など、表情報が自明である場合については、必ずしも表情報を明示的に受け付ける必要は無く、表パラメータに予め表情報が代入されていてもよい。
同様に、選択ラベルの生成では、図10に例示するような、選択テンプレートTemp12が用いられる。選択テンプレートTemp12において、「$条件式」が選択パラメータを表す。選択パラメータには、第一のテンプレートに代入された選択情報が代入される。説明文生成部15は、例えば、選択情報として「通話方向=IN」を受け付けると、その値を選択パラメータ「$条件式」に代入することにより、選択テンプレートTemp12から自然言語表現された選択ラベル「通話方向=INである」を生成する。
同様に、結合ラベルの生成では、図10に例示するような、結合テンプレートTemp13が用いられる。結合テンプレートTemp13において、「$T列名」が結合パラメータを表す。結合パラメータには、第一のテンプレートに代入された結合情報が代入される。説明文生成部15は、例えば、結合情報として「T.顧客ID=S.顧客ID」を受け付けると、その値を結合パラメータ「$T列名」に代入することにより、結合テンプレートTemp13から自然言語表現された結合ラベル「顧客IDが同じ」を生成する。
同様に、集約ラベルの生成では、図10に例示するような、集約テンプレートTemp14が用いられる。集約テンプレートTemp14において、「$列名」および「$集約関数」が集約パラメータを表す。集約パラメータには、第一のテンプレートに代入された集約情報が代入される。
ここで、集約関数は、自然言語表現されていない場合も考えられる。そこで、集約関数に応じた変換ルールを定義しておき、説明文生成部15は、その変換ルールに基づいて、集約情報を変換してもよい。説明文生成部15が、例えば、集約情報として「通話時間=SUM」を受け付け、図10に例示する変換ルール101が予め定められていたとする。この場合、説明文生成部15は、この変換ルール101に基づいて、集約関数「SUM」を「合計」に変換する。
その後、説明文生成部15は、集約情報および変換された集約関数名を集約パラメータ「$列名」および「$集約関数」にそれぞれ代入することにより、集約テンプレートTemp14から自然言語表現された集約ラベル「通話時間の合計」を生成する。
図11は、生成されたラベルから説明文を生成する処理の例を示す説明図である。説明文の生成では、図11に例示するような、ラベルテンプレートTemp21が用いられる。ラベルテンプレートTemp21において、「$表ラベル」、「$結合ラベル」、「$選択ラベル」および「$集約ラベル」がラベルパラメータを表す。
説明文生成部15は、表ラベル、結合ラベル、集約ラベルおよび選択ラベルをそれぞれのラベルパラメータに適用することにより、ラベルテンプレートから説明文を生成する。ラベルパラメータには、生成された表ラベル、結合ラベル、集約ラベルおよび選択ラベルが適用される。説明文生成部15は、例えば、図11で生成された表ラベル「call_log」、結合ラベル「顧客IDが同じ」、集約ラベル「通話時間の合計」および選択ラベル「通話方向=INである」を各ラベルパラメータに適用することにより、ラベルテンプレートTemp21から、説明文E11を生成する。
なお、上記説明では、集約関数を別の表現に変換する変換ルール101について説明した。ただし、代入する値を変換する処理は、集約ラベルを生成する場合に限定されず、また、変換ルールも、上述するような辞書型の変換に限定されない。説明文生成部15は、想定される入力に応じて、様々な変換ルールを定義しておいてもよい。
変換ルールとして、例えば、不要な文字の削除が挙げられる。上述する例において、表情報に「call_log」を受け付けた場合、説明文生成部15は、単語を結びつけるアンダーラインを不要と判断し、アンダーラインを削除した「call log」を生成してもよい。
また、説明文生成部15は、生成されたラベルが表す言語を相互に翻訳してもよい。上述する例において、表ラベルが「call log」と生成されたとする。このとき、説明文生成部15は、英語から日本語への翻訳を行うことにより、「通話記録」という訳語を生成してもよい。これらの処理を行うことによって、例えば、「call_logテーブル」というラベルを、「通話記録テーブル」というラベルに変換できる。
また、期間に応じた別の呼び方が知られている場合、説明文生成部15は、生成されたラベルで表現される期間を別の呼び方に変換してもよい。例えば、「6時から12時の間」は、一般に午前中と呼ぶことができる。この場合、説明文生成部15は、「6時から12時の間」を示す条件式(HOUR(時刻)>6 and HOUR(時刻)<12)を「時刻が午前中」と変換してもよい。このようにすることで、生成される特徴量の説明を人間により理解しやすくできる。
また、複数の特徴量生成関数(または複数の特徴量)と複数の説明文とが一度に生成された場合、説明文生成部15は、生成された特徴量生成関数(または特徴量)と生成された説明文との対応付けを行う。この場合、説明文生成部15は、説明文付与部として動作する。具体的には説明文生成部15は、同じ値の組み合わせ(すなわち、表情報、選択情報、結合情報および集約情報のうち必要な情報の組み合わせ)に基づいて生成された特徴量生成関数と説明文とを、互いに対応しているとみなす。説明文生成部15は、特徴量と説明文との対応付けをする場合についても同様に対応付けを行う。
記憶部11は、例えば、磁気ディスク装置により実現される。また、受付部12と、関数生成部13と、特徴量生成部14と、説明文生成部15とは、プログラム(特徴量説明プログラム)に従って動作するコンピュータのCPUによって実現される。例えば、プログラムは、記憶部11に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、受付部12、関数生成部13、特徴量生成部14および説明文生成部15として動作してもよい。また、本情報処理システムの機能がSaaS(Software as a Service )形式で提供されてもよい。
また、受付部12と、関数生成部13と、特徴量生成部14と、説明文生成部15とは、それぞれが専用のハードウェアで実現されていてもよい。受付部12と、関数生成部13と、特徴量生成部14と、説明文生成部15とは、それぞれが汎用または専用の回路(circuitry )により実現されていてもよい。ここで、汎用または専用の回路(circuitry )は、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。また、各装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、 集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本実施形態の情報処理システムの動作を説明する。図12は、第一の実施形態の情報処理システムの動作例を示すフローチャートである。受付部12は、各テンプレートに代入する値(すなわち、表情報、選択情報、結合情報および集約情報のうち必要な情報)を受け付ける(ステップS101)。関数生成部13は、受け付けた値を第一のテンプレートに代入して特徴量生成関数を生成する(ステップS102)。特徴量生成部14は、第一の表および第二の表に特徴量生成関数を適用して特徴量を生成する(ステップS103)。そして、説明文生成部15は、第一のテンプレートに代入された値を第二のテンプレートに代入して説明文を生成する(ステップS104)。なお、ステップS104は、必ずしもステップS102またはステップS103よりも後に実行される必要はない。例えば、ステップS104は、ステップS101の直後に実行されるとしてもよい。
以上のように、本実施形態では、関数生成部13が、受け付けた値を第一のテンプレートに代入することにより特徴量生成関数を生成し、特徴量生成部14が、第一の表および第二の表に対して特徴量生成関数を適用することにより、予測対象の値を予測するモデルを学習する際に説明変数の候補として用いられる特徴量を生成する。そして、説明文生成部15は、特徴量生成関数または特徴量についての説明文を、第一のテンプレートに代入された値を第二のテンプレートに代入することにより生成する。よって、生成される特徴量の説明を人間に理解しやすい態様で提供できる。
すなわち、本実施形態では、SQL文に代表される問合せ言語に即して作成された第一のテンプレートと、その第一のテンプレートと共通のパラメータを有する第二のテンプレートとを用いて、説明文が生成される。そのため、特徴量生成関数(または特徴量)の生成とともに、その特徴量生成関数(または特徴量)の説明文を人間に理解しやすい態様で提供できる。
次に、本実施形態の情報処理システムの第一の変形例を説明する。第一の実施形態では、受付部12が、結合パラメータに代入される値を示す結合情報と、集約パラメータに代入される値を示す集約情報と、選択パラメータに代入される値を示す選択情報とを受け付ける場合について説明した。一方、第二の表からすべての行を選択する場合、選択情報は不要になる。
この場合、関数生成部13は、第一の実施形態で説明した結合パラメータと集約パラメータを用いて特徴量生成関数を生成することが可能である。この場合、第一のテンプレートおよび第二のテンプレートは、結合パラメータと、集約パラメータとを含んでいればよい。また、受付部12は、結合情報と集約情報とを受け付ければよい。この場合、説明文生成部15は、この2つのパラメータ(結合パラメータおよび集約パラメータ)を用いて説明文を生成すればよい。
具体的には関数生成部13は、受け付けた結合情報および集約情報を第一のテンプレートに代入して特徴量生成関数を生成する。特徴量生成部14は、生成された特徴量生成関数を第一の表および第二の表に適用して特徴量を生成する。説明文生成部15は、第一のテンプレートに代入された情報(すなわち、結合情報および集約情報)を第二のテンプレートに代入して、説明文を生成する。
図13は、特徴量生成関数を生成する処理の変形例を示す説明図である。図13に例示するソーステーブルS12は、タイプ=callのみの通話記録を含むとする。この場合、ソーステーブルS12に含まれるすべてのデータが特徴量の生成の対象になる。したがって、選択情報は不要になる。この場合、関数生成部13は、受け付けた結合情報「T.顧客ID=S.顧客ID」および集約情報「通話時間=MAX」を第一のテンプレートに代入して特徴量生成関数D32を生成すればよい。
なお、第一のテンプレートに、選択パラメータが含まれている場合、関数生成部13は、選択パラメータにダミー条件(例えば、1=1)を代入して特徴量生成関数を生成すればよい。また、このとき、説明文生成部15は、第二のテンプレートに、ダミー条件を表す選択ラベル(例えば、「すべてを対象とした」)を適用した説明文E12を生成すればよい。
次に、本実施形態の情報処理システムの第二の変形例を説明する。第一の実施形態では、第一の表と第二の表を結合する際、第一の表における行と第二の表における行とが一対多対応する場合について説明した。一方、第一の表と第二の表が一対一に対応する場合、集約情報は不要になる。
この場合、関数生成部13は、第一の実施形態で説明した結合パラメータと選択パラメータを用いて特徴量生成関数を生成することが可能である。この場合、第一のテンプレートおよび第二のテンプレートは、結合パラメータと、選択パラメータとを含んでいればよい。また、受付部12は、結合情報と選択情報とを受け付ければよい。この場合、説明文生成部15は、この2つのパラメータ(結合パラメータおよび選択パラメータ)を用いて説明文を生成すればよい。
具体的には関数生成部13は、受け付けた結合情報および選択情報を第一のテンプレートに代入して特徴量生成関数を生成する。特徴量生成部14は、生成された特徴量生成関数を第一の表および第二の表に適用して特徴量を生成する。説明文生成部15は、第一のテンプレートに代入された情報(すなわち、結合情報および選択情報)を第二のテンプレートに代入して、説明文を生成する。
図14は、特徴量生成関数を生成する処理の他の変形例を示す説明図である。図14に例示するソーステーブルS13は、顧客の年齢、性別および住所を含む表とする。この場合、ターゲットテーブルT11とソーステーブルS13とは一対一に対応する。したがって、集約情報は不要になる。この場合、男性および女性の年齢を対象にして特徴量を生成したい場合、関数生成部13は、受け付けた結合情報「T.顧客ID=S.顧客ID」および選択情報「性別=男or女」を第一のテンプレートに代入して特徴量生成関数D33を生成すればよい。
なお、第一のテンプレートに、集約パラメータが含まれている場合、関数生成部13は、集約パラメータにダミー条件(例えば、最頻値:MODE(年齢))を代入して特徴量生成関数を生成すればよい。また、このとき、説明文生成部15は、第二のテンプレートに、集約関数を削除した集約ラベル(例えば、「年齢」)を適用した説明文E13を生成すればよい。
実施形態2.
次に、本発明による情報処理システムの第二の実施形態を説明する。第一の実施形態では、第二の表の情報を受け付けずに特徴量および説明文を生成する方法を説明した。本実施形態では、表情報を明示的に受け付ける場合について説明する。なお、本実施形態の構成は、第一の実施形態と同様である。
本実施形態では、第一のテンプレートおよび第二のテンプレートは、第二の表を識別する値が代入される表パラメータを含む。受付部12は、結合情報、集約情報および選択情報に加え、表パラメータに代入される値である表情報を更に受け付ける。なお、第一の表と第二の表との粒度は同一であってもよく、異なっていてもよい。
図15は、複数のソーステーブルの例を示す説明図である。図15に例示するソーステーブルS14は、支払テーブルの例であり、ターゲットテーブルと、1対多に対応する。また、図15に例示するソーステーブルS15は、コールセンターへの問合せテーブルの例であり、ターゲットテーブルと、1対(0~多)に対応する。なお、図15に例示するソーステーブルS13は、顧客テーブルであり、図14に例示する内容と同様に、ターゲットテーブルと一対一に対応する。
図16は、表パラメータを含む第一のテンプレートの例を示す説明図である。図16に例示する第一のテンプレートTemp31は、表パラメータとして「ソーステーブル名」を含む。複数のソーステーブルを利用する場合、受付部12は、特徴量生成関数を生成するごとにソーステーブル名を含む表情報を受け付ければよい。
図17は、特徴量生成関数を生成する方法の例を示す説明図である。図17に例示するターゲットテーブルT11とソーステーブルS14を用いて、特徴量「顧客の2010年2月の総支払金額」を生成するとする。このとき、受付部12は、結合情報として「T.顧客ID=payment.顧客ID」を、集約情報として「SUM(支払金額)」を、選択情報として「時刻 in 2010年2月」をそれぞれ受け付ける。さらに、受付部12は、これらの情報に加え、表情報として表名「payment」を受け付ける。関数生成部13は、受け付けた各情報を、例えば、図16に例示する第一のテンプレートTemp31に代入して特徴量生成関数D34を生成する。
以上のように、本実施形態では、第一のテンプレートおよび第二のテンプレートが、第二の表を識別する値が代入される表パラメータを更に含む。そして、受付部12が、表パラメータに代入される値である表情報を更に受け付ける。このような構成によっても、生成される特徴量の説明を人間に理解しやすい態様で提供できる。
実施形態3.
次に、本発明による情報処理システムの第三の実施形態を説明する。本実施形態の情報処理システムは、生成された特徴量に基づいて訓練データを作成し、作成された訓練データを用いて予測モデルを学習し、その予測モデルを用いて予測結果を出力する。
図18は、本発明による情報処理システムの第三の実施形態の構成例を示すブロック図である。本実施形態の情報処理システム200は、記憶部11と、受付部12と、関数生成部13と、特徴量生成部14と、説明文生成部15と、学習部16と、予測部17と、訓練データ生成部18と、予測用データ生成部19とを備えている。
すなわち、本実施形態の情報処理システム200は、第一の実施形態の情報処理システム100と比較し、学習部16、予測部17、訓練データ生成部18および予測用データ生成部19とをさらに備えている。なお、記憶部11、受付部12、関数生成部13、特徴量生成部14および説明文生成部15の内容は、第一の実施形態または第二の実施形態と同様であるため、詳細な説明は省略する。
訓練データ生成部18は、特徴量生成部14が生成した特徴量と、第一の表とに基づいて、後述する学習部16が学習に用いる訓練データを生成する。
また、予測用データ生成部19は、特徴量生成部14が生成した特徴量と、第一の表とに基づいて、後述する予測部17が用いる予測用データを生成する。
学習部16は、生成された特徴量を説明変数の候補として用いて、予測対象の値を予測するモデルを学習する。なお、モデルの学習方法は任意である。学習部16は、特徴量選択(Feature Selection )機能を備えていても良い。学習部16に説明変数の候補が複数入力され、学習部16が特徴量選択を行い、学習部16が選択された特徴量を用いて学習処理を行ってもよい。学習部16は、特徴量選択処理の後処理として学習処理を行ってもよいし、特徴量選択処理と学習処理とを一体として実行してもよい。
予測部17は、学習部16によって学習されたモデルと予測用データとを用いて予測を行う。具体的には、予測部17は、予測用データ生成部19によって生成された予測用データを、学習部16によって学習されたモデルに適用して予測結果を得る。
以下、生成された特徴量を用いて学習部16がモデルを生成し、予測部17が予測結果を得る方法を具体例を用いて説明する。図19は、本具体例で用いるターゲットテーブルおよびソーステーブルの例を示す説明図である。本具体例では、2010年2月のデータを含むターゲットテーブルT11と、2010年3月のデータを含むターゲットテーブルT21が存在するものとする。ターゲットテーブルT11のプライマリキーおよびターゲットテーブルT21のプライマリキーは、両者ともに顧客IDである。また、本具体例では、2010年3月のデータに含まれる顧客(顧客ID=1021)の解約の有無を予測するものとする。
また、図19に例示するソーステーブルS16は、顧客の通話記録を表わす。ソーステーブルS16は、ターゲットテーブルT11に含まれる解約の有無が既知の顧客の通話記録のほか、ターゲットテーブルT21に含まれる顧客の通話記録も含む。
理解を容易にするために、本具体例では、受付部12が、ターゲットテーブルのプライマリキーを示す列(T11およびT21に示す例では顧客ID)を結合情報として受け付けたことを想定する。特徴量生成部14は、図19に例示するターゲットテーブル11 およびソーステーブルS16に特徴量生成関数を適用して特徴量(訓練データ用の特徴量ベクトル)を生成する。また、特徴量生成部14は、図19に例示するターゲットテーブル21 およびソーステーブルS16に同じ特徴量生成関数を適用して特徴量(予測用データ用の特徴量ベクトル)を生成する。本具体例では、第一の特徴量として「顧客の最大通話時間」が生成され、第二の特徴量として、「顧客の総通話時間」が生成され、第三の特徴量として、「SMSの総回数」が生成されるものとする。前述した通り、特徴量生成部14は、結合情報にて指定された列(ここでは顧客ID)と生成した特徴量とが紐付された形式のデータを出力するものとする。
図20は、訓練データと予測用データとの具体例を示す説明図である。訓練データ生成部18は、ターゲットテーブルT11および特徴量生成部14が生成した特徴量(訓練データ用の特徴量ベクトル)を用いて訓練データR22を生成する。例えば訓練データ生成部18は、ターゲットテーブルT11と特徴量生成部14が生成した各特徴量(前述したように顧客IDと紐付されているとする)とを、顧客IDを結合キーとして結合することにより訓練データR22を生成する。図20に示されるように、訓練データR22に含まれるレコードは目的変数の値を有している。また、予測用データ生成部19は、ターゲットテーブルT21および特徴量生成部14が生成した特徴量(予測用データ用の特徴量ベクトル)を用いて、予測用データR23を生成する。例えば予測用データ生成部19は、ターゲットテーブルT21と特徴量生成部14が生成した特徴量(前述したように顧客IDと紐付されているとする)とを、顧客IDを結合キーとして結合することにより予測用データR23を生成する。図20に示されるように、予測用データR23に含まれるレコードは目的変数の値を有していない。
学習部16は、生成された訓練データR22を用いてモデルを学習する。図20に示す例では学習部16は、「解約」を目的変数として、その他の特徴量(プラン、機器、生成した特徴量1、2および3)を説明変数の候補として、モデルを学習する。モデルは、例えば、以下に例示する式1で表されていてもよい。
解約Y=F(プラン,特徴量2,特徴量3,…) (式1)
予測部17は、予測用データR23のうち必要な特徴量の値を上述する式1に代入して予測結果を得る。上述の例では、モデルに、プランの値としてP2を、特徴量2の値として240を、特徴量3の値として1を代入することにより、予測結果を得る。このようにして、顧客ID=1021で識別される顧客の解約有無が予測される。
受付部12と、関数生成部13と、特徴量生成部14と、説明文生成部15と、学習部16と、予測部17と、訓練データ生成部18と、予測用データ生成部19とは、プログラム(特徴量説明プログラム)に従って動作するコンピュータのCPUによって実現される。
図21は、本実施形態の情報処理システム200の動作例を示す説明図である。なお、図21に例示する第一のテンプレート61、第二のテンプレート62、第一の表63、第二の表64、訓練データ65および予測用データ66は、記憶部11に記憶されていてもよい。
まず、受付部12が、特徴量生成関数および説明文の生成に必要な各種情報を受け付ける。関数生成部13は、受け付けた情報および第一のテンプレート61を用いて特徴量生成関数51を生成する。説明文生成部15は、受け付けた情報および第二のテンプレート62を用いて説明文52を生成する。
特徴量生成部14は、特徴量生成関数51を、第一の表63および第二の表64に適用して特徴量53を生成する。特徴量生成部14は、生成された特徴量53に説明文52を付加してもよい。
訓練データ生成部18は、生成した特徴量53および第一の表63のデータから、訓練データ65を生成する。学習部16は、訓練データ65を用いて学習済モデル54を学習する。
予測用データ生成部19は、生成した特徴量53および第一の表63のデータから、予測用データ66を生成する。そして、予測部17は、学習済モデル54および予測用データ66を用いて、予測結果55を出力する。
以上のように、本実施形態では、学習部16が、生成された特徴量を説明変数の候補として用いて、予測対象の値を予測するモデルを学習する。また、本実施形態では、予測部17が、第一の表および第二の表に対して特徴量生成関数を適用して、モデルに代入する特徴量を生成し、その特徴量をモデルに適用して予測値を得る。そのような構成により、新たに生成された特徴量を用いてモデルを学習し、予測をすることが可能なため、より精度の高い予測を行うことが可能になる。
実施形態4.
次に、本発明による情報処理システムの第四の実施形態を説明する。第一の実施形態から第三の実施形態では、情報処理システムが特徴量生成関数の生成とともに説明文を生成した。本実施形態では、すでに作成された特徴量生成関数から、説明文を生成する方法を説明する。
図22は、本発明による情報処理システムの第四の実施形態の構成例を示すブロック図である。本実施形態の情報処理システム300は、記憶部21と、受付部22と、抽出部23と、説明文生成部24とを備えている。
記憶部21は、第一の実施形態から第三の実施形態と同様に、第一の表(ターゲットテーブル)および第二の表(ソーステーブル)を記憶する。また、第一の表および第二の表の内容は、第一の実施形態から第三の実施形態と同様である。
受付部22は、第一の実施形態から第三の実施形態で説明した特徴量生成関数を受け付ける。すなわち、受付部22は、予測対象の変数を含む第一の表、および、第二の表から予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付ける。
第一の実施形態で説明したように、特徴量生成関数は、予め用意された第一のテンプレートのパラメータに各種情報を適用して生成されるものである。そして、第一のテンプレートは、第一の表と第二の表とを結合する際のキー列を示す値が代入される結合パラメータおよび第二の表における複数の行に対する集約演算とその集約演算の対象になる列とを示す値が代入される集約パラメータを含む。また、第一のテンプレートは、第二の表から条件を満たす行を選択するための、条件と選択の対象となる列とを示す値が代入される選択パラメータを含む場合もある。さらに、第一のテンプレートは、第二の表を識別する値が代入される表パラメータを含む場合もある。
抽出部23は、受付部22が受け付けた特徴量生成関数から、第二の表の名称を示す表情報、第一の表と第二の表とを結合する際のキー列を示す結合情報、および、第二の表における複数の行に対する集約演算と集約演算の対象となる列を示す集約情報とを抽出する。また、抽出部23は、第二の表から条件を満たす行を選択するための、条件と選択の対象となる列とを示す選択情報を抽出してもよい。
具体的には、抽出部23は、特徴量生成関数と比較する1以上のテンプレート(以下、関数テンプレートと記す。)を保持しておき、受け付けた特徴量生成関数と関数テンプレートとを比較して、表情報、結合情報および集約情報を抽出する。
関数テンプレートは、表パラメータ、結合パラメータおよび集約パラメータを含む。関数テンプレートは、比較対象(すなわち、特徴量生成関数)との位置関係から上記各パラメータ(すなわち、表パラメータ、結合パラメータおよび集約パラメータ)を抽出可能に設計される。関数テンプレートは、例えば、表情報、結合情報および集約情報が対応する各パラメータに代入された場合に、特徴量生成関数を生成できるように設計されていてもよい。また、関数テンプレートは、選択パラメータを含んでいてもよい。
図23は、関数テンプレートの例を示す説明図である。図23には、2つの関数テンプレートを例示している。図23に例示するテンプレートTemp41は、図16に例示するテンプレートTemp31と同様である。例えば、図23に例示するテンプレートTemp41を用いることで、特徴量生成関数と比較して各パラメータを抽出可能であり、また、テンプレートTemp41の各パラメータに表情報、結合情報、集約情報および選択情報を代入することにより、特徴量生成関数を生成することが可能である。
抽出部23は、表パラメータに対応する箇所に設定された値を表情報として抽出し、集約パラメータに対応する箇所に設定された値を集約情報として抽出し、結合パラメータに対応する箇所に設定された値を結合情報として抽出する。また、関数テンプレートに選択パラメータを含む場合、抽出部23は、選択パラメータに対応する箇所に設定された値を選択情報として抽出する。
図24は、特徴量生成関数から各情報を抽出する処理の例を示す説明図である。図24は、特徴量生成関数D41が受け付けられ、関数テンプレートTemp41を用いて抽出処理が行われる例を示す。
例えば、関数テンプレートTemp41の表パラメータである「ソーステーブル名」に対応する特徴量生成関数D41の位置には、「call_log」が設定されている。そこで、抽出部23は、この「call_log」を表情報として抽出する。
同様に、集約パラメータである「R.集約関数」および「R.列名」に対応する位置には、それぞれ「SUM」および「通話時間」が設定されている。そこで、抽出部23は、この「通話時間、SUM」を集約情報として抽出する。
また、結合パラメータの一部である「$M.T列名」に対応する位置には、「顧客ID」が設定されている。そこで、抽出部23は、「T.$M.T列名=Temp.$M.S列名」に対応する「T.顧客ID=Temp(call_log).顧客ID」を結合情報として抽出する。
また、選択パラメータである「F.条件式」に対応する位置には、「通話方向=IN」が設定されている。そこで、抽出部23は、この「通話方向=IN」を選択情報として抽出する。
なお、図23に例示するように、関数テンプレートが複数存在する場合、抽出部23は、特徴量生成関数との類似性が最も高い関数テンプレートを選択してもよい。なお、類似性の判断には、文同士の類似度を算出する任意の方法が用いられれば良い。
また、図23に例示するテンプレートTemp42は、第一の実施形態から第三の実施形態で用いられるテンプレートとは異なるものである。生成される特徴量生成関数の構文に揺れが生じることを考慮し、想定される特徴量生成関数のフォーマットに応じて、複数の関数テンプレートを用意しておくことが好ましい。
説明文生成部24は、抽出した情報をテンプレート(第二のテンプレート)に代入して、第一の表および第二の表に対して特徴量生成関数を適用して得られる特徴量の説明文を生成する。なお、説明文生成部24が、説明文を生成する方法は、第一の実施形態から第三の実施形態における説明文生成部15が説明文を生成する方法と同様である。
記憶部21は、例えば、磁気ディスク装置により実現される。また、受付部22と、抽出部23と、説明文生成部24とは、プログラム(特徴量説明プログラム)に従って動作するコンピュータのCPUによって実現される。例えば、プログラムは、記憶部21に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、受付部22、抽出部23および説明文生成部24として動作してもよい。また、本情報処理システムの機能がSaaS(Software as a Service )形式で提供されてもよい。また、受付部22と、抽出部23と、説明文生成部24とは、それぞれが専用のハードウェアで実現されていてもよい。
受付部22と、抽出部23と、説明文生成部24とは、それぞれが汎用または専用の回路(circuitry )により実現されていてもよい。ここで、汎用または専用の回路(circuitry )は、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。また、各装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、 集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本実施形態の情報処理システムの動作を説明する。図25は、第四の実施形態の情報処理システムの動作例を示すフローチャートである。
受付部22は、特徴量生成関数を受け付ける(ステップS111)。抽出部23は、特徴量生成関数から、表情報と、結合情報と、集約情報とを抽出する(ステップS112)。なお、受付部22は、特徴量生成関数から、さらに選択情報を抽出してもよい。説明文生成部24は、抽出した情報をテンプレート(第二のテンプレート)に代入して、特徴量の説明文を生成する(ステップS113)。
以上のように、本実施形態では、受付部22が、第一の表および第二の表から特徴量を生成する特徴量生成関数を受け付け、抽出部23が、特徴量生成関数から、表情報と結合情報と集約情報とを抽出する。そして、説明文生成部24が、抽出した情報をテンプレート(第二のテンプレート)に代入して、第一の表および第二の表に対して特徴量生成関数を適用して得られる特徴量の説明文を生成する。よって、生成される特徴量の説明を人間に理解しやすい態様で提供できる。
すなわち、上述する特徴量生成関数は、各表から特徴を抽出するために用いられるものであるため、その特徴量生成関数を参照しても、生成される特徴量の意味を即座に理解することは難しい場合も多い。一方、本実施形態では、抽出部23が、意味を理解するために必要な各情報を抽出し、説明文生成部24が、抽出された情報を整形して提供する。そのため、生成される特徴量が、人間に理解しやすい態様で説明される。
次に、本発明の概要を説明する。図26は、本発明による情報処理システムの概要を示すブロック図である。本発明による情報処理システム70(例えば、情報処理システム300)は、予測対象の変数を含む第一の表(例えば、ターゲットテーブル)、および、第二の表(例えば、ソーステーブル)から予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付ける受付部71(例えば、受付部22)と、特徴量生成関数から、第二の表の名称を示す表情報と、第一の表と第二の表とを結合する際のキー列を示す結合情報と、第二の表における複数の行に対する集約演算と集約演算の対象となる列を示す集約情報とを抽出する抽出部72(例えば、抽出部23)と、抽出した情報を説明文テンプレート(例えば、第二のテンプレート)に代入して、第一の表および第二の表に対して特徴量生成関数を適用して得られる特徴量の説明文を生成する説明文生成部73(例えば、説明文生成部24)とを備えている。
そのような構成により、生成される特徴量の説明を人間に理解しやすい態様で提供できる。
また、特徴量生成関数は、予め用意された関数生成用テンプレート(例えば、第一のテンプレート)のパラメータに、表情報、結合情報および集約情報を適用して生成されてもよい。そして、抽出部72は、関数生成用テンプレートの対応する位置に存在する表情報、結合情報および集約情報を抽出してもよい。
また、説明文テンプレートおよび関数生成用テンプレートは、第二の表を識別する値が代入される表パラメータと、第一の表と第二の表とを結合する際のキー列を示す値が代入される結合パラメータと、第二の表における複数の行に対する集約演算とその集約演算の対象となる列とを示す値が代入される集約パラメータとを含んでいてもよい。そして、抽出部72は、表パラメータに対応する箇所に設定された値を表情報として抽出し、結合パラメータに対応する箇所に設定された値を結合情報として抽出し、集約パラメータに対応する箇所に設定された値を集約情報として抽出してもよい。
また、説明文テンプレートおよび関数生成用テンプレートは、第二の表から条件を満たす行を選択するための、その条件と選択の対象となる列とを示す値が代入される選択パラメータを更に含んでいてもよい。そして、抽出部72は、選択パラメータに対応する箇所に設定された値を選択情報として抽出してもよい。
また、抽出部72は、表パラメータ、結合パラメータおよび集約パラメータを含み、比較対象との位置関係から各パラメータを抽出可能に設計された関数テンプレートと、特徴量生成関数とを比較して、その特徴量生成関数の表パラメータ、結合パラメータおよび集約パラメータに対応する位置に存在する情報を、それぞれ表情報、結合情報および集約情報として抽出してもよい。
一方、抽出部72は、表パラメータ、結合パラメータ、集約パラメータおよび選択パラメータを含み、比較対象との位置関係から各パラメータを抽出可能に設計された関数テンプレートと、特徴量生成関数とを比較して、その特徴量生成関数の表パラメータ、結合パラメータ、集約パラメータおよび選択パラメータに対応する位置に存在する情報を、それぞれ表情報、結合情報、集約情報および選択情報として抽出してもよい。
また、抽出部72は、複数の関数テンプレートのうち、特徴量生成関数との類似性が最も高い関数テンプレートを選択してもよい。
図27は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。コンピュータ1000は、CPU1001、主記憶装置1002、補助記憶装置1003、インタフェース1004を備える。
上述の情報処理システムは、コンピュータ1000に実装される。そして、上述した各処理部の動作は、プログラム(特徴量説明プログラム)の形式で補助記憶装置1003に記憶されている。CPU1001は、プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、当該プログラムに従って上記処理を実行する。
なお、少なくとも1つの実施形態において、補助記憶装置1003は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000が当該プログラムを主記憶装置1002に展開し、上記処理を実行しても良い。
また、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、当該プログラムは、前述した機能を補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であっても良い。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)予測対象の変数を含む第一の表、および、第二の表から前記予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付ける受付部と、前記特徴量生成関数から、前記第二の表の名称を示す表情報と、前記第一の表と前記第二の表とを結合する際のキー列を示す結合情報と、前記第二の表における複数の行に対する集約演算と前記集約演算の対象となる列を示す集約情報とを抽出する抽出部と、前記抽出した情報を説明文テンプレートに代入して、前記第一の表および前記第二の表に対して前記特徴量生成関数を適用して得られる特徴量の説明文を生成する説明文生成部とを備えたことを特徴とする情報処理システム。
(付記2)特徴量生成関数は、予め用意された関数生成用テンプレートのパラメータに、表情報、結合情報および集約情報を適用して生成され、抽出部は、前記関数生成用テンプレートの対応する位置に存在する表情報、結合情報および集約情報を抽出する付記1記載の情報処理システム。
(付記3)説明文テンプレートおよび関数生成用テンプレートは、第二の表を識別する値が代入される表パラメータと、第一の表と第二の表とを結合する際のキー列を示す値が代入される結合パラメータと、第二の表における複数の行に対する集約演算と当該集約演算の対象となる列とを示す値が代入される集約パラメータとを含み、抽出部は、前記表パラメータに対応する箇所に設定された値を表情報として抽出し、前記結合パラメータに対応する箇所に設定された値を結合情報として抽出し、前記集約パラメータに対応する箇所に設定された値を集約情報として抽出する付記2記載の情報処理システム。
(付記4)説明文テンプレートおよび関数生成用テンプレートは、第二の表から条件を満たす行を選択するための、当該条件と当該選択の対象となる列とを示す値が代入される選択パラメータを更に含み、抽出部は、前記選択パラメータに対応する箇所に設定された値を選択情報として抽出する付記3記載の情報処理システム。
(付記5)抽出部は、表パラメータ、結合パラメータおよび集約パラメータを含み、比較対象との位置関係から前記各パラメータを抽出可能に設計された関数テンプレートと、特徴量生成関数とを比較して、当該特徴量生成関数の前記表パラメータ、結合パラメータおよび集約パラメータに対応する位置に存在する情報を、それぞれ表情報、結合情報および集約情報として抽出する付記3記載の情報処理システム。
(付記6)抽出部は、表パラメータ、結合パラメータ、集約パラメータおよび選択パラメータを含み、比較対象との位置関係から前記各パラメータを抽出可能に設計された関数テンプレートと、特徴量生成関数とを比較して、当該特徴量生成関数の前記表パラメータ、結合パラメータ、集約パラメータおよび選択パラメータに対応する位置に存在する情報を、それぞれ表情報、結合情報、集約情報および選択情報として抽出する付記4記載の情報処理システム。
(付記7)抽出部は、複数の関数テンプレートのうち、特徴量生成関数との類似性が最も高い関数テンプレートを選択する付記5または付記6記載の情報処理システム。
(付記8)予測対象の変数を含む第一の表、および、第二の表から前記予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付け、前記特徴量生成関数から、前記第二の表の名称を示す表情報と、前記第一の表と前記第二の表とを結合する際のキー列を示す結合情報と、前記第二の表における複数の行に対する集約演算と前記集約演算の対象となる列を示す集約情報とを抽出し、前記抽出した情報を説明文テンプレートに代入して、前記第一の表および前記第二の表に対して前記特徴量生成関数を適用して得られる特徴量の説明文を生成することを特徴とする説明文生成方法。
(付記9)特徴量生成関数は、予め用意された関数生成用テンプレート(第一のテンプレート)のパラメータに、表情報、結合情報および集約情報を適用して生成され、前記関数生成用テンプレートの対応する位置に存在する表情報、結合情報および集約情報を抽出する付記8記載の説明文生成方法。
(付記10)コンピュータに、予測対象の変数を含む第一の表、および、第二の表から前記予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付ける受付処理、前記特徴量生成関数から、前記第二の表の名称を示す表情報と、前記第一の表と前記第二の表とを結合する際のキー列を示す結合情報と、前記第二の表における複数の行に対する集約演算と前記集約演算の対象となる列を示す集約情報とを抽出する抽出処理、および、前記抽出した情報を説明文テンプレートに代入して、前記第一の表および前記第二の表に対して前記特徴量生成関数を適用して得られる特徴量の説明文を生成する説明文生成処理を実行させるための説明文生成プログラム。
(付記11)特徴量生成関数は、予め用意された関数生成用テンプレートのパラメータに、表情報、結合情報および集約情報を適用して生成され、コンピュータに、抽出処理で、前記関数生成用テンプレートの対応する位置に存在する表情報、結合情報および集約情報を抽出させる付記10記載の説明文生成プログラム。
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2017年3月30日に出願された米国仮出願第62/478,871号を基礎とする優先権を主張し、その開示の全てをここに取り込む。