(57)【要約】  受付部７１は、予測対象の変数を含む第一の表、および、第二の表から予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付ける。抽出部７２は、特徴量生成関数から、第二の表の名称を示す表情報と、第一の表と第二の表とを結合する際のキー列を示す結合情報と、第二の表における複数の行に対する集約演算と集約演算の対象となる列を示す集約情報とを抽出する。説明文生成部７３は、抽出した情報を説明文テンプレートに代入して、第一の表および第二の表に対して特徴量生成関数を適用して得られる特徴量の説明文を生成する。
2018180971.tif 000002
【特許請求の範囲】
【請求項１】
予測対象の変数を含む第一の表、および、第二の表から前記予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付ける受付部と、
前記特徴量生成関数から、前記第二の表の名称を示す表情報と、前記第一の表と前記第二の表とを結合する際のキー列を示す結合情報と、前記第二の表における複数の行に対する集約演算と前記集約演算の対象となる列を示す集約情報とを抽出する抽出部と、
前記抽出した情報を説明文テンプレートに代入して、前記第一の表および前記第二の表に対して前記特徴量生成関数を適用して得られる特徴量の説明文を生成する説明文生成部とを備えた
ことを特徴とする情報処理システム。
【請求項２】
特徴量生成関数は、予め用意された関数生成用テンプレートのパラメータに、表情報、結合情報および集約情報を適用して生成され、
抽出部は、前記関数生成用テンプレートの対応する位置に存在する表情報、結合情報および集約情報を抽出する
請求項１記載の情報処理システム。
【請求項３】
説明文テンプレートおよび関数生成用テンプレートは、第二の表を識別する値が代入される表パラメータと、第一の表と第二の表とを結合する際のキー列を示す値が代入される結合パラメータと、第二の表における複数の行に対する集約演算と当該集約演算の対象となる列とを示す値が代入される集約パラメータとを含み、
抽出部は、前記表パラメータに対応する箇所に設定された値を表情報として抽出し、前記結合パラメータに対応する箇所に設定された値を結合情報として抽出し、前記集約パラメータに対応する箇所に設定された値を集約情報として抽出する
請求項２記載の情報処理システム。
【請求項４】
説明文テンプレートおよび関数生成用テンプレートは、第二の表から条件を満たす行を選択するための、当該条件と当該選択の対象となる列とを示す値が代入される選択パラメータを更に含み、
抽出部は、前記選択パラメータに対応する箇所に設定された値を選択情報として抽出する
請求項３記載の情報処理システム。
【請求項５】
抽出部は、表パラメータ、結合パラメータおよび集約パラメータを含み、比較対象との位置関係から前記各パラメータを抽出可能に設計された関数テンプレートと、特徴量生成関数とを比較して、当該特徴量生成関数の前記表パラメータ、結合パラメータおよび集約パラメータに対応する位置に存在する情報を、それぞれ表情報、結合情報および集約情報として抽出する
請求項３記載の情報処理システム。
【請求項６】
抽出部は、表パラメータ、結合パラメータ、集約パラメータおよび選択パラメータを含み、比較対象との位置関係から前記各パラメータを抽出可能に設計された関数テンプレートと、特徴量生成関数とを比較して、当該特徴量生成関数の前記表パラメータ、結合パラメータ、集約パラメータおよび選択パラメータに対応する位置に存在する情報を、それぞれ表情報、結合情報、集約情報および選択情報として抽出する
請求項４記載の情報処理システム。
【請求項７】
抽出部は、複数の関数テンプレートのうち、特徴量生成関数との類似性が最も高い関数テンプレートを選択する
請求項５または請求項６記載の情報処理システム。
【請求項８】
予測対象の変数を含む第一の表、および、第二の表から前記予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付け、
前記特徴量生成関数から、前記第二の表の名称を示す表情報と、前記第一の表と前記第二の表とを結合する際のキー列を示す結合情報と、前記第二の表における複数の行に対する集約演算と前記集約演算の対象となる列を示す集約情報とを抽出し、
前記抽出した情報を説明文テンプレートに代入して、前記第一の表および前記第二の表に対して前記特徴量生成関数を適用して得られる特徴量の説明文を生成する
ことを特徴とする説明文生成方法。
【請求項９】
特徴量生成関数は、予め用意された関数生成用テンプレートのパラメータに、表情報、結合情報および集約情報を適用して生成され、
前記関数生成用テンプレートの対応する位置に存在する表情報、結合情報および集約情報を抽出する
請求項８記載の説明文生成方法。
【請求項１０】
コンピュータに、
予測対象の変数を含む第一の表、および、第二の表から前記予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付ける受付処理、
前記特徴量生成関数から、前記第二の表の名称を示す表情報と、前記第一の表と前記第二の表とを結合する際のキー列を示す結合情報と、前記第二の表における複数の行に対する集約演算と前記集約演算の対象となる列を示す集約情報とを抽出する抽出処理、および、
前記抽出した情報を説明文テンプレートに代入して、前記第一の表および前記第二の表に対して前記特徴量生成関数を適用して得られる特徴量の説明文を生成する説明文生成処理
を実行させるための説明文生成プログラム。
【請求項１１】
特徴量生成関数は、予め用意された関数生成用テンプレートのパラメータに、表情報、結合情報および集約情報を適用して生成され、
コンピュータに、
抽出処理で、前記関数生成用テンプレートの対応する位置に存在する表情報、結合情報および集約情報を抽出させる
請求項１０記載の説明文生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習や予測に用いる特徴量を生成するための情報処理システム並びに生成した特徴量を説明する特徴量説明方法および特徴量説明プログラムに関する。
【背景技術】
【０００２】
予測分析のプロセスは、下記に示す３つの段階に大別できる。【０００３】
１つ目の段階（工程）は、「前処理段階」である。「前処理段階」は、予測分析アルゴリズムが効果的に機能するようにするために、予測分析アルゴリズムに従って動作する装置などに入力する属性（feature ）を加工する段階である。【０００４】
２つ目の段階は、「分析処理段階」である。「分析処理段階」は、予測分析アルゴリズムに従って動作する装置などに属性を入力し、係る予測分析アルゴリズムに従って動作する装置などの出力である分析結果を得る段階である。【０００５】
３つめの段階は、「後処理段階」である。「後処理段階」は、分析結果を、見やすいグラフや他の機器に入力するための制御信号等に変換する段階である。【０００６】
このように予測分析により有用な知見を得るためには、「前処理段階」が適切に行われる必要がある。「前処理段階」をどのような手順で実行すべきかを設計する作業は、分析技術の熟練技術者（データサイエンティスト）の知識に依存する。前処理段階の設計作業は、情報処理技術によって十分には支援されておらず、未だ熟練技術者の手作業による試行錯誤に依存する部分が大きい。【０００７】
有用な知見を見つけるためには、より多くの属性の候補を生成することが重要である。具体的には、予測対象である変数（目的変数）に影響を及ぼし得る多くの属性（説明変数）の候補を生成することが重要である。このような多くの候補を生成することにより、予測に役立つ属性がこの候補の中に含まれる可能性を高めることができるからである。【０００８】
例えば、特許文献１には、学習データの属性を組み合わせた新たな属性を列挙する属性列挙システムが記載されている。特許文献１に記載されたシステムは、学習データの属性とその属性の組み合わせの最大数とから属性の組み合わせを表わす論理式表現の組み合わせ方を表現したＤＮＦラベルの集合を生成する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】国際公開第２０１５／１８６２７８号
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、予測分析の過程において、データ分析者は、生成された新たな属性がどのような意味を有する属性であるか解釈する必要がある。なお、属性は、特徴量（ｆｅａｔｕｒｅ）ということもある。【００１１】
特許文献１は、新たな属性を生成することを開示しているが、生成した属性の意味を分かり易い態様にて提供することを開示してない。そのため、新たな特徴量を生成する方法の提供だけでは、その特徴量の意味を把握することは難しいという技術的課題がある。そのため、新たな特徴量を生成する場合には、生成された特徴量の説明をデータ分析者に理解しやすい態様で提供できることが好ましい。【００１２】
そこで、本発明は、生成される特徴量の説明を人間に理解しやすい態様で提供できる情報処理システム、特徴量説明方法および特徴量説明プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明による情報処理システムは、予測対象の変数を含む第一の表、および、第二の表から予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付ける受付部と、特徴量生成関数から、第二の表の名称を示す表情報と、第一の表と第二の表とを結合する際のキー列を示す結合情報と、第二の表における複数の行に対する集約演算と集約演算の対象となる列を示す集約情報とを抽出する抽出部と、抽出した情報を説明文テンプレートに代入して、第一の表および第二の表に対して特徴量生成関数を適用して得られる特徴量の説明文を生成する説明文生成部とを備えたことを特徴とする。【００１４】
本発明による説明文生成方法は、予測対象の変数を含む第一の表、および、第二の表から予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付け、特徴量生成関数から、第二の表の名称を示す表情報と、第一の表と第二の表とを結合する際のキー列を示す結合情報と、第二の表における複数の行に対する集約演算と集約演算の対象となる列を示す集約情報とを抽出し、抽出した情報を説明文テンプレートに代入して、第一の表および第二の表に対して特徴量生成関数を適用して得られる特徴量の説明文を生成することを特徴とする。【００１５】
本発明による説明文生成プログラムは、コンピュータに、予測対象の変数を含む第一の表、および、第二の表から予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付ける受付処理、特徴量生成関数から、第二の表の名称を示す表情報と、第一の表と第二の表とを結合する際のキー列を示す結合情報と、第二の表における複数の行に対する集約演算と集約演算の対象となる列を示す集約情報とを抽出する抽出処理、および、抽出した情報を説明文テンプレートに代入して、第一の表および第二の表に対して特徴量生成関数を適用して得られる特徴量の説明文を生成する説明文生成処理を実行させることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、上述した技術的手段により、生成される特徴量の説明を人間に理解しやすい態様で提供できるという技術的効果を奏する。
【図面の簡単な説明】
【００１７】
【図１】本発明による情報処理システムの第一の実施形態の構成例を示すブロック図である。
【図２】ｆｉｌｔｅｒの例を示す説明図である。
【図３】ｍａｐの例を示す説明図である。
【図４】ｒｅｄｕｃｅの例を示す説明図である。
【図５】各パラメータが示す処理の例を示す説明図である。
【図６】第一のテンプレートに値を適用して特徴量生成関数を生成する処理の例を示す説明図である。
【図７】特徴量生成関数の生成に用いる情報の例を示す説明図である。
【図８】第一のテンプレートに値を適用して特徴量生成関数を生成する処理の他の例を示す説明図である。
【図９】特徴量を生成する処理の例を示す説明図である。
【図１０】各ラベルを生成する処理の例を示す説明図である。
【図１１】生成されたラベルから説明文を生成する処理の例を示す説明図である。
【図１２】第一の実施形態の情報処理システムの動作例を示すフローチャートである。
【図１３】特徴量生成関数を生成する処理の変形例を示す説明図である。
【図１４】特徴量生成関数を生成する処理の他の変形例を示す説明図である。
【図１５】複数のソーステーブルの例を示す説明図である。
【図１６】表パラメータを含む第一のテンプレートの例を示す説明図である。
【図１７】特徴量生成関数を生成する方法の例を示す説明図である。
【図１８】本発明による情報処理システムの第三の実施形態の構成例を示すブロック図である。
【図１９】ターゲットテーブルおよびソーステーブルの例を示す説明図である。
【図２０】生成される特徴量の例を示す説明図である。
【図２１】情報処理システム２００の動作例を示す説明図である。
【図２２】本発明による情報処理システムの第四の実施形態の構成例を示すブロック図である。
【図２３】関数テンプレートの例を示す説明図である。
【図２４】特徴量生成関数から各情報を抽出する処理の例を示す説明図である。
【図２５】第四の実施形態の情報処理システムの動作例を示すフローチャートである。
【図２６】本発明による情報処理システムの概要を示すブロック図である。
【図２７】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態を図面を参照して説明する。
【００１９】
実施形態１．
図１は、本発明による情報処理システムの第一の実施形態の構成例を示すブロック図である。本実施形態の情報処理システム１００は、記憶部１１と、受付部１２と、関数（ｄｅｓｃｒｉｐｔｏｒ）生成部１３と、特徴量生成部１４と、説明文生成部１５とを備えている。
【００２０】
記憶部１１は、予測対象（すなわち、目的変数）の変数を含む表（以下、第一の表と記すこともある。）、および、第一の表に含まれるデータの集合（以下、第一表データと記すこともある。）を記憶する。以下の説明では、第一の表をターゲットテーブルと記すこともある。また、記憶部１１は、第一の表と異なる表（以下、第二の表と記すことある。）、および、第二の表に含まれるデータの集合（以下、第二表データと記すこともある。）を記憶する。以下の説明では、この第二の表をソーステーブルと記すこともある。
【００２１】
第一の表および第二の表は、データの属性を表わす列（カラム）の組合せにより定義される。また、各表は、各属性の値を示すデータを組み合わせた１つ以上の行（レコード）を含む。例えば、それぞれの顧客からは個人情報を利用することについて予め同意を得られている状況において、顧客の契約情報や顧客の通話情報履歴に基づき、ある顧客が来月携帯電話を解約するか否かを推定する状況を想定する。この場合、予測対象は、顧客の解約の有無である。この場合、第一の表（ターゲットテーブル）には、顧客を識別する情報（顧客ＩＤ）と、その顧客の解約の有無を示す値が含まれる（後述する図３におけるターゲットテーブルＴ１１参照。ターゲットテーブルＴ１１における「解約」の列が予測対象（すなわち、目的変数）に相当する。）。また、第二の表（ソーステーブル）には、第一の表とは異なる情報が含まれる（後述する図３におけるソーステーブルＳ１１参照）。
【００２２】
第一の表の粒度は、第二の表の粒度と同一であってもよく、異なっていてもよい。ここで、表の粒度とは、表に含まれるデータの細かさを表す指標であり、具体的には、その表に含まれるデータがどの項目で一意に特定できるかを表す指標である。例えば、ターゲットテーブルに含まれる各データが、顧客を識別するＩＤ（顧客ＩＤ）で特定できる場合、この顧客ＩＤが表の粒度に相当する。データベースの場合、この粒度は、例えば、プライマリキーに相当する。よって、ターゲットテーブル（第一の表）と粒度が異なる表とは、ターゲットテーブルの各行に対して、行が一対一に対応していない表を意味する。なお、後述する特徴量生成関数（ｆｅａｔｕｒｅ  ｄｅｓｃｒｉｐｔｏｒ）を生成する際、記憶部１１は、第一表データおよび第二表データを記憶していなくてもよい。
【００２３】
受付部１２は、後述する関数生成部１３が特徴量生成関数を生成するために必要な各種情報、および、後述する説明文生成部１５が特徴量生成関数または特徴量の意味を表す説明文（ｆｅａｔｕｒｅ  ｅｘｐｌａｎａｔｉｏｎ）を生成するために必要な情報の入力を受け付ける。
【００２４】
受付部１２は、通信ネットワーク（図示せず）を介して受信する情報を受け付けてもよく、これらの情報を記憶する記憶装置（図示せず）から情報を読み取って受け付けてもよい。また、この記憶装置の機能を記憶部１１が兼ねていてもよい。受付部１２が受け付ける入力の内容は、後述される。
【００２５】
以下の説明で、特徴量とは、予測対象に影響を及ぼし得る変数を意味する。また、特徴量のベクトル（特徴量ベクトル）とは、第一の表の行数に対応する次元のベクトルであり、説明変数（予測変数）を意味するデータである。なお、複数の特徴量ベクトルからなる情報を、特徴量テーブルと記すこともある。特徴量生成関数は、具体的には、特徴量ベクトルを生成する関数である。すなわち、特徴量を生成するとは、特徴量ベクトルを生成することを意味する。一方、特徴量を設計するとは、特徴量生成関数を設計することを意味する。以下の説明では、特徴量と特徴量ベクトルとを区別なく“特徴量”と表現する。
【００２６】
関数生成部１３は、受付部１２が受け付けた情報を用いて特徴量生成関数を生成する。特徴量生成関数は、第一の表および第二の表から予測対象（すなわち、目的変数）に影響を及ぼし得る変数である特徴量を生成するために用いられる。
【００２７】
特徴量は、機械学習を用いてモデルを生成する際の説明変数の候補になる。言い換えると、本実施形態で生成される特徴量生成関数を用いることで、機械学習を用いてモデルを生成する際の説明変数の候補を自動的に生成することが可能になる。
【００２８】
関数生成部１３は、予め用意されたテンプレート（以下、第一のテンプレートと記す。）を用いて特徴量生成関数を生成する。第一のテンプレートには、例えば、３種類のパラメータが含まれる。具体的には、受付部１２が第一のテンプレートに代入する値として３種類のパラメータに代入する値を受け付け、関数生成部１３は、受け付けられた値を第一のテンプレートの各パラメータに代入して特徴量生成関数を生成する。以下、第一のテンプレートに含まれる各パラメータの内容を説明する。
【００２９】
第一のパラメータは、第二の表に含まれる行の抽出条件を表わすパラメータである。より具体的には、第一のパラメータには、第二の表から条件を満たす行を選択するため、その条件と選択の対象になる列とを示す値（以下、選択情報と記す。）が代入される。以下の説明では、第一のパラメータを選択パラメータと記すこともある。第一のパラメータが示す選択情報は、ソーステーブル（第二の表）に対する条件式として定義されてもよい。以下、第一のパラメータに基づいて第二の表から行を抽出する処理を「ｆｉｌｔｅｒ」と記載する場合がある。また、この条件式のリストを「Ｆリスト」と記載する場合がある。
【００３０】
抽出条件は任意であり、例えば、指定された列の値と同じ（大きいまたは小さい）か否か判断する条件が挙げられる。
【００３１】
図２は、ｆｉｌｔｅｒの例を示す説明図である。図２に例示するソーステーブルＳ１１（第二の表）は、顧客の通話記録（具体的には、通話時刻、通話方向、通話タイプおよび通話時間）を含む表とする。図２に示す例では、ソーステーブルＳ１１の属性に、「顧客ＩＤ」、「時刻」、「通話方向」、「タイプ」および「通話時間」が含まれる。ここで、第一のパラメータに、選択の対象になる列として属性「通話方向」が指定され、選択の条件に属性「通話方向」の示す値「ＯＵＴ」が指定されたとする。この場合、ソーステーブルから、通話方向＝ＯＵＴを満たす行を含む表Ｒ１１が選択される。図２に示される「通話情報＝ＯＵＴ」が選択情報に相当する。
【００３２】
第二のパラメータは、第一の表の列と第二の表の列との対応条件を表わすパラメータである。より具体的には、第二のパラメータには、第一の表と第二の表とを結合する際のキー列を示す値（以下、結合情報と記す。）が代入される。以下の説明では、第二のパラメータを結合パラメータと記すこともある。第二のパラメータが示す結合情報は、ターゲットテーブル（第一の表）の列とソーステーブル（第二の表）の列を対応付ける列のペアとして定義されてもよい。以下、第二のパラメータに基づいて各テーブルの列を対応付ける処理を「ｍａｐ」と記載する場合がある。また、この列のペアのリストを「Ｍリスト」と記載する場合がある。また、ｍａｐによる各表の列の対応付けは、対応付けられた列で複数の表を１つの表に結合（ｊｏｉｎ）することとも言える。
【００３３】
図３は、ｍａｐの例を示す説明図である。図３に例示するターゲットテーブルＴ１１（第一の表）は、顧客を識別する顧客ＩＤと解約の有無を示す変数とを含む表とする。図３に例示するターゲットテーブルＴ１１は、「顧客ＩＤ」、「プラン」、「機器」および「解約（の有無）」を属性に含む。なお、図３に例示するソーステーブルＳ１１の内容は、図２に例示するソーステーブルＳ１１と同様である。
【００３４】
図３に示す例で、第二のパラメータにおける結合するキー列として、ターゲットテーブルＴ１１の「顧客ＩＤ」列と、ソーステーブルＳ１１の「顧客ＩＤ」列とが指定されたとする。このパラメータは、ターゲットテーブルＴ１１とソーステーブルＳ１１とを、それぞれの「顧客ＩＤ」列で結合することを示す。なお、粒度が異なるテーブルの場合、ターゲットテーブルに含まれる各属性の値が、ソーステーブルの「顧客ＩＤ」列に応じてそれぞれ展開される。その結果、２つの表から１つの表Ｒ１２が生成される。図３に示される「ターゲットテーブル列名：顧客ＩＤ、ソーステーブル列名：顧客ＩＤ」が結合情報に相当する。
【００３５】
第三のパラメータは、第二の表に含まれるある列に関して、複数の行を集約する方法を示すパラメータである。より具体的には、第三のパラメータには、第一の表と第二の表とを結合する際、第二の表における複数の行に対する集約演算と、その集約演算の対象になる列とを示す値（以下、集約情報と記す。）が代入される。例えば、ターゲットテーブルにおいて結合情報に指定される列が主キーである場合、結合情報にて指定された列の値が定まれば目的変数列の値が一意に定まる。この場合、Ｒｅｄｕｃｅ処理によって、ソーステーブルにおけるある列のレコード数が、目的変数列のレコード数と同じレコード数まで、結果として集約される。
【００３６】
以下の説明では、第三のパラメータを集約パラメータと記すこともある。第三のパラメータが示す集約情報は、ソーステーブル（第二の表）の列に対する集約関数として定義されてもよい。以下、第三のパラメータが示す方法により各列のデータを集約する処理を「ｒｅｄｕｃｅ」と記載する場合がある。また、この集約関数のリストを「Ｒリスト」と記載する場合がある。
【００３７】
集約方法は任意であり、例えば、列の総数、最大値、最小値、平均値、中央値、分散などが挙げられる。また、列の総数の集計は、重複データを除外する、または、重複データを除外しない、のいずれかの観点で行われてもよい。
【００３８】
図４は、ｒｅｄｕｃｅの例を示す説明図である。図４に例示するテーブルＲ１３は、図３に例示する表Ｒ１２の一部の列を示している。図４に示す例では、第三のパラメータとして、第二の表に対して行われる集約演算に最大値の抽出、その集約演算の対象になる列に通話時間を指定したとする。この場合、キーである「顧客ＩＤ」ごとに、通話時間の最大値を選択した結果、表Ｒ１４が生成される。図４に示される「列名：通話時間、集約関数：ＭＡＸ」が集約情報に相当する。
【００３９】
図５は、各パラメータが示す処理の例を示す説明図である。図５に示す例では、ターゲットテーブルＴとソーステーブルＳがそれぞれ１つずつ存在し、ｋｅｙ列が両テーブルを対応付ける列である。また、ターゲットテーブルのＹ列が目的変数である。図５におけるＳ１は、ソーステーブルＳ内の列の集合のサブセットである。
【００４０】
まず、ｆｉｌｔｅｒで、ソーステーブルＳにおけるＸ’列の値ｖａｌｕｅが所定の条件を満たす行が選択され、サブセットＳ１が生成される。次に、ｍａｐで、ターゲットテーブルＴの行とソーステーブルＳの行とが、それぞれのｋｅｙ列を介して結合される。例えば、ｋｅｙ列の値が同じ列同士が結合される。そして、ｒｅｄｕｃｅで、ターゲットテーブルＴの各行に対してｍａｐで対応付けられたソーステーブルＳの列のうちｆｉｌｔｅｒで選び出された行の集合の値を用いて、集約演算が行われる。
【００４１】
図６は、第一のテンプレートに値を適用して特徴量生成関数を生成する処理の例を示す説明図である。図６に例示する第一のテンプレートＴｅｍｐにおいて、アンダーラインを付した個所が各パラメータに該当する。図６に例示するテンプレート内のＴは、第一の表を意味し、Ｓは、第二の表を示す。また、「＄Ｍ．Ｔ列名」は、第二のパラメータに含まれる第一の表のキー列を示す。「＄Ｒ．集約関数（＄Ｒ．列名）」は、第三のパラメータに含まれる集約演算およびその集約演算の対象になる列を示す。「Ｆ．条件式」は、第一のパラメータに含まれる第二の表から行を選択する条件を示す。「＄Ｍ．Ｓ列名」は、第二のパラメータに含まれる第二の表のキー列を示す。関数生成部１３は、これらの各パラメータに受け付けたパラメータの値を代入することで特徴量生成関数を生成する。
【００４２】
受付部１２が、例えば、選択情報として「通話方向＝ＩＮ」、結合情報として「Ｔ．顧客ＩＤ＝Ｓ．顧客ＩＤ」、集約情報として、「通話時間＝ＣＯＵＮＴ」を受け付けたとする。このとき、関数生成部１３は、第一のパラメータに、「通話方向＝ＩＮ」、第二のパラメータに、「Ｔ．顧客ＩＤ＝Ｓ．顧客ＩＤ」、第三のパラメータに、「通話時間＝ＣＯＵＮＴ」をそれぞれ代入して、特徴量生成関数Ｄ１１を生成する。
【００４３】
第一のテンプレートは、図６に例示するように、問合せ言語であるＳＱＬに従って用意されてもよい。この場合、関数生成部１３は、ＳＱＬ文を生成するテンプレートに抽出条件、対応条件および集約方法を適用して特徴量生成関数を生成すればよい。したがって、特徴量生成関数は、第一の表および第二の表に対する問合せ文（クエリ）と言うことができる。なお、以下の説明では、リレーショナルデータベースを例示するが、分散処理実行基盤で用いられるような抽象的なデータ構造を有する場合も、本発明を同様に適用可能である。
【００４４】
また、受付部１２が、複数の結合情報、集約情報または選択情報を受け付けた場合、関数生成部１３は、受け付けられた結合情報、集約情報および選択情報の組み合わせを複数生成し、生成された組み合わせごとに特徴量生成関数を生成してもよい。
【００４５】
以下、関数生成部１３が特徴量生成関数を複数生成する手順を具体的に説明する。図７は、特徴量生成関数の生成に用いる情報の例を示す説明図である。図７に示す例では、予測対象の変数（目的変数）が顧客の解約の有無を示す変数であるとする。なお、ターゲットテーブルＴ１１およびソーステーブルＳ１１の内容は、図２および図３に例示する内容と同様である。
【００４６】
Ｆリストは、第一のパラメータに代入される選択情報のリストである。図７に示すＦリストは、１８の選択情報の候補を含む。Ｍリストは、第二のパラメータに代入される結合情報のリストである。図７に示すＭリストは、１つの結合情報の候補を含む。Ｒリストは、第三のパラメータに代入される集約情報のリストである。図７に示すＲリストは、６つの集約情報の候補を含む。
【００４７】
なお、Ｆリスト、ＭリストおよびＲリストは、機械で自動的に作成されてもよく、人間によって手動で作成されてもよい。ここでは、図７に例示するＦリスト、ＭリストおよびＲリストが予め作成されているものとする。
【００４８】
まず、関数生成部１３は、Ｆリスト、ＭリストおよびＲリストから、それぞれ１つずつ候補を選択し、各候補の組合せを生成する。関数生成部１３は、例えば、組合せの一つとして、Ｆリストから「通話方向＝ＩＮ」、Ｍリストから「Ｔ．顧客ＩＤ＝Ｓ．顧客ＩＤ」、Ｒリストから「通話時間＝ＣＯＵＮＴ」を選択する。他にも、関数生成部１３は、例えば、Ｆリストから「通話方向＝ＯＵＴ  ａｎｄ  タイプ＝ｃａｌｌ」、Ｍリストから「Ｔ．顧客ＩＤ＝Ｓ．顧客ＩＤ」、Ｒリストから「時刻＝ＭＡＸ」を選択する。図７に示す例では、Ｆリストに１８通りの条件式、Ｍリストに１通りの対応条件、および、Ｒリストに６通りの集約方法が含まれる。そのため、これらの各リストの候補から１０８通りの組み合わせが生成される。
【００４９】
次に、関数生成部１３は、生成された組み合わせごとに特徴量生成関数を生成する。具体的には、関数生成部１３は、生成された組合せに含まれる結合情報、集約情報および選択情報を、第一のテンプレートに代入して特徴量生成関数を生成する。上記例では、結合情報は、Ｍリストから選択された候補に該当し、集約情報は、Ｒリストから選択された候補に該当し、選択情報は、Ｆリストから選択された候補に該当する。
【００５０】
例えば、問合せ言語にＳＱＬを用いる場合、特徴量生成関数は、ＳＱＬ文として定義され、Ｆリスト、ＭリストおよびＲリストからそれぞれ選択される３つの候補の値が、ＳＱＬ文を生成するためのパラメータに代入される。
【００５１】
図８は、第一のテンプレートに値を適用して特徴量生成関数を生成する処理の他の例を示す説明図である。図８に例示するテンプレートの内容は、図６に例示するテンプレートＴｅｍｐの内容と同様であり、予め用意される。関数生成部１３は、テンプレートＴｅｍｐの下線で示すパラメータに、結合情報、集約情報および選択情報を適用することで特徴量生成関数を生成する。
【００５２】
組み合わせが複数生成された場合であっても、特徴量生成関数を生成する方法は同様である。例えば、図８に例示するように、Ｆリストから「通話方向＝ＩＮ」という条件式、Ｍリストから「顧客ＩＤ同士で対応づけ」という対応条件、Ｒリストから「通話時間の列をカウント」という集約方法を選択した組合せが生成されたとする。この場合、関数生成部１３は、この組合せをテンプレートＴｅｍｐに適用し、図８に例示する特徴量生成関数Ｄ２１を生成する。この特徴量生成関数Ｄ２１によって表現される特徴量は、かかって来た通話または届いたメッセージの総数を表わす。
【００５３】
他にも、図８に例示するように、Ｆリストから「通話方向＝ＯＵＴ  ＡＮＤ  タイプ＝ｃａｌｌ」という条件式、Ｍリストから「顧客ＩＤ同士で対応づけ」という対応条件、Ｒリストから「時刻が最大」という集約方法を選択した組合せが生成されたとする。この場合、関数生成部１３は、この組合せをテンプレートＴｅｍｐに適用し、図８に例示する特徴量生成関数Ｄ２２を生成する。この特徴量生成関数Ｄ２２によって表現される特徴量は、音声通話をかけた時刻の最新値を表わす。
【００５４】
上記に例示する以外にも、様々な特徴量を生成することが可能である。例えば、Ｆリストから「タイプ＝ｃａｌｌ  ＡＮＤ  通話方向＝ＯＵＴ  ＡＮＤ  ＨＯＵＲ（時刻）＜７」という条件式、Ｍリストから「顧客ＩＤ同士で対応づけ」という対応条件、Ｒリストから「通話時間の平均」という集約方法を選択した組合せが生成されたとする。この組合せによって表現される特徴量は、７時前にかけられた音声通話の平均時間を表わす。
【００５５】
また、Ｆリストから「タイプ＝ｃａｌｌ  ＡＮＤ  通話方向＝ＩＮ」という条件式、Ｍリストから「顧客ＩＤ同士で対応づけ」という対応条件、Ｒリストから「通話時間の分散」という集約方法を選択した組合せが生成されたとする。この組合せによって表現される特徴量は、かかって来た通話における通話時間のばらつき度合いを表わす。
【００５６】
特徴量生成部１４は、生成された特徴量生成関数を第一の表および第二の表に適用して特徴量（具体的には、特徴量ベクトル）を生成する。特徴量生成部１４は、予測対象の値を予測するためのモデルを学習する際に、説明変数の候補として用いられる特徴量を生成する。
【００５７】
特徴量生成部１４は、上述するパラメータを用いた特徴量生成関数によって、以下の処理に基づき特徴量を生成する。特徴量生成部１４は、まず、第一のパラメータで指定されたソーステーブルの抽出条件に基づき、ソーステーブルから１つ以上の行を抽出する（ｆｉｌｔｅｒ）。
【００５８】
特徴量生成部１４は、次に、第二のパラメータで指定された結合情報を介して、ターゲットテーブルとソーステーブルとを対応付ける（Ｍａｐ）。なお、ターゲットテーブルとソーステーブルとを対応付ける際、結合情報で示す列の値が完全一致する行同士だけでなく、指定された類似度により対応付けられてもよい。例えば、日時データで対応を取る際に、日時が完全に一致する行同士だけでなく、二つの行の日時の差が所定の範囲内（例えば、６時間以内）であれば対応付ける、という例が挙げられる。また、ターゲットテーブルとソーステーブルにそれぞれ、経度・緯度の列があり、これらを用いて対応条件を記載する際に、２地点の距離が所定の範囲内（例えば、５Ｋｍ以内）、といった距離に基づく対応付けを行う例も挙げられる。
【００５９】
特徴量生成部１４は、次に、第三のパラメータで指定された集約方法に基づいて、ターゲットテーブルの各行に対してｆｉｌｔｅｒによって選び出された行のうち、ｍａｐにより対応付けられた行を集約する（ｒｅｄｕｃｅ）。この集約により、ターゲットテーブルの各行に対して得られた値を含むベクトルが特徴量とされる。
【００６０】
図９は、特徴量を生成する処理の例を示す説明図である。図９に示す例では、図２に例示するターゲットテーブルＴ１１と図３に例示するソーステーブルＳ１１を利用し、特徴量として「顧客の最大通話時間」を生成するものとする。この場合、第一のパラメータには、選択情報として「タイプ＝ｃａｌｌ」が代入される。また、第二のパラメータには、結合情報として「Ｔ．顧客ＩＤ＝Ｓ．顧客ＩＤ」が代入される。また、第三のパラメータには、集約情報として、「通話時間＝ＭＡＸ」が代入される。その結果、図９に例示する特徴量生成関数Ｄ３１が生成される。
【００６１】
特徴量生成部１４は、この特徴量生成関数Ｄ３１を、ターゲットテーブルＴ１１およびソーステーブルＳ１１に適用することで、「顧客の最大通話時間」を示す特徴量Ｒ２１を生成する。特徴量生成部１４は、例えば図９のテーブルＲ２１に示すように、結合情報にて指定された列（ここでは顧客ＩＤ）と生成した特徴量とが紐付された形式のデータを出力することが好ましい。
【００６２】
説明文生成部１５は、生成された特徴量生成関数または特徴量についての説明文を生成する。本実施形態で生成する説明文は、抽象的な特徴量の生成モデルを自然言語で表現したものであり、特徴量生成関数または特徴量の意味を表す文のことである。すなわち、説明文は、特徴量そのものに対する説明文であってもよいし、説明量生成関数に対する説明文であってもよい。
【００６３】
具体的には、説明文生成部１５は、特徴量生成関数または特徴量についての説明文を、テンプレート（以下、第二のテンプレートと記す。）に基づいて生成する。第一のテンプレートに代入された情報は第二のテンプレートにも代入される。すなわち、説明文生成部１５は、第一のテンプレートに代入された値を第二のテンプレートにも代入して説明文を生成する。
【００６４】
第二のテンプレートは、ソーステーブルの情報（以下、表情報と記す。）から説明文の一部（表ラベル）を生成する表テンプレートと、結合パラメータから説明文の一部（結合ラベル）を生成する結合テンプレートと、集約パラメータから説明文の一部（集約ラベル）を生成する集約テンプレートと、選択パラメータから説明文の一部（選択ラベル）を生成する選択テンプレートを含む。さらに、第二のテンプレートは、表ラベル、結合ラベル、集約ラベルおよび選択ラベルが代入されるラベルパラメータから説明文を生成するラベルテンプレートを含む。
【００６５】
説明文生成部１５は、表情報を表パラメータに代入することにより、表テンプレートから自然言語表現された表ラベルを生成する。表情報は、受付部１２が明示的に受け付けた情報であってもよく、選択パラメータ、結合パラメータまたは集約パラメータから説明文生成部１５によって特定されてもよい。
【００６６】
同様に、説明文生成部１５は、結合情報を結合パラメータに代入することにより、結合テンプレートから自然言語表現された結合ラベルを生成する。また、説明文生成部１５は、集約情報を集約パラメータに代入することにより、集約テンプレートから自然言語表現された集約ラベルを生成する。また、説明文生成部１５は、選択情報を選択パラメータに代入することにより、選択テンプレートから自然言語表現された選択ラベルを生成する。
【００６７】
そして、説明文生成部１５は、表ラベル、結合ラベル、集約ラベルおよび選択ラベルをラベルパラメータにそれぞれ代入することにより、ラベルテンプレートから説明文を生成する。
【００６８】
図１０は、各ラベルを生成する処理の例を示す説明図である。表ラベルの生成では、図１０に例示するような、表テンプレートＴｅｍｐ１１が用いられる。表テンプレートＴｅｍｐ１１において、「＄ソーステーブル名」が表パラメータを表す。表パラメータには、例えば、第一のテンプレートに代入された結合情報における第二の表の値が代入される。説明文生成部１５は、例えば、表情報として第二の表の名称「ｃａｌｌ＿ｌｏｇ」を受け付けると、その名称を表パラメータ「＄ソーステーブル名」に代入することにより、表テンプレートＴｅｍｐ１１から自然言語表現された表ラベル「ｃａｌｌ＿ｌｏｇ」を生成する。なお、例えば第二の表が一つしかない場合など、表情報が自明である場合については、必ずしも表情報を明示的に受け付ける必要は無く、表パラメータに予め表情報が代入されていてもよい。
【００６９】
同様に、選択ラベルの生成では、図１０に例示するような、選択テンプレートＴｅｍｐ１２が用いられる。選択テンプレートＴｅｍｐ１２において、「＄条件式」が選択パラメータを表す。選択パラメータには、第一のテンプレートに代入された選択情報が代入される。説明文生成部１５は、例えば、選択情報として「通話方向＝ＩＮ」を受け付けると、その値を選択パラメータ「＄条件式」に代入することにより、選択テンプレートＴｅｍｐ１２から自然言語表現された選択ラベル「通話方向=ＩＮである」を生成する。
【００７０】
同様に、結合ラベルの生成では、図１０に例示するような、結合テンプレートＴｅｍｐ１３が用いられる。結合テンプレートＴｅｍｐ１３において、「＄Ｔ列名」が結合パラメータを表す。結合パラメータには、第一のテンプレートに代入された結合情報が代入される。説明文生成部１５は、例えば、結合情報として「Ｔ．顧客ＩＤ＝Ｓ．顧客ＩＤ」を受け付けると、その値を結合パラメータ「＄Ｔ列名」に代入することにより、結合テンプレートＴｅｍｐ１３から自然言語表現された結合ラベル「顧客ＩＤが同じ」を生成する。
【００７１】
同様に、集約ラベルの生成では、図１０に例示するような、集約テンプレートＴｅｍｐ１４が用いられる。集約テンプレートＴｅｍｐ１４において、「＄列名」および「＄集約関数」が集約パラメータを表す。集約パラメータには、第一のテンプレートに代入された集約情報が代入される。
【００７２】
ここで、集約関数は、自然言語表現されていない場合も考えられる。そこで、集約関数に応じた変換ルールを定義しておき、説明文生成部１５は、その変換ルールに基づいて、集約情報を変換してもよい。説明文生成部１５が、例えば、集約情報として「通話時間＝ＳＵＭ」を受け付け、図１０に例示する変換ルール１０１が予め定められていたとする。この場合、説明文生成部１５は、この変換ルール１０１に基づいて、集約関数「ＳＵＭ」を「合計」に変換する。
【００７３】
その後、説明文生成部１５は、集約情報および変換された集約関数名を集約パラメータ「＄列名」および「＄集約関数」にそれぞれ代入することにより、集約テンプレートＴｅｍｐ１４から自然言語表現された集約ラベル「通話時間の合計」を生成する。
【００７４】
図１１は、生成されたラベルから説明文を生成する処理の例を示す説明図である。説明文の生成では、図１１に例示するような、ラベルテンプレートＴｅｍｐ２１が用いられる。ラベルテンプレートＴｅｍｐ２１において、「＄表ラベル」、「＄結合ラベル」、「＄選択ラベル」および「＄集約ラベル」がラベルパラメータを表す。
【００７５】
説明文生成部１５は、表ラベル、結合ラベル、集約ラベルおよび選択ラベルをそれぞれのラベルパラメータに適用することにより、ラベルテンプレートから説明文を生成する。ラベルパラメータには、生成された表ラベル、結合ラベル、集約ラベルおよび選択ラベルが適用される。説明文生成部１５は、例えば、図１１で生成された表ラベル「ｃａｌｌ＿ｌｏｇ」、結合ラベル「顧客ＩＤが同じ」、集約ラベル「通話時間の合計」および選択ラベル「通話方向=ＩＮである」を各ラベルパラメータに適用することにより、ラベルテンプレートＴｅｍｐ２１から、説明文Ｅ１１を生成する。
【００７６】
なお、上記説明では、集約関数を別の表現に変換する変換ルール１０１について説明した。ただし、代入する値を変換する処理は、集約ラベルを生成する場合に限定されず、また、変換ルールも、上述するような辞書型の変換に限定されない。説明文生成部１５は、想定される入力に応じて、様々な変換ルールを定義しておいてもよい。
【００７７】
変換ルールとして、例えば、不要な文字の削除が挙げられる。上述する例において、表情報に「ｃａｌｌ＿ｌｏｇ」を受け付けた場合、説明文生成部１５は、単語を結びつけるアンダーラインを不要と判断し、アンダーラインを削除した「ｃａｌｌ  ｌｏｇ」を生成してもよい。
【００７８】
また、説明文生成部１５は、生成されたラベルが表す言語を相互に翻訳してもよい。上述する例において、表ラベルが「ｃａｌｌ  ｌｏｇ」と生成されたとする。このとき、説明文生成部１５は、英語から日本語への翻訳を行うことにより、「通話記録」という訳語を生成してもよい。これらの処理を行うことによって、例えば、「ｃａｌｌ＿ｌｏｇテーブル」というラベルを、「通話記録テーブル」というラベルに変換できる。
【００７９】
また、期間に応じた別の呼び方が知られている場合、説明文生成部１５は、生成されたラベルで表現される期間を別の呼び方に変換してもよい。例えば、「６時から１２時の間」は、一般に午前中と呼ぶことができる。この場合、説明文生成部１５は、「６時から１２時の間」を示す条件式（ＨＯＵＲ（時刻）＞６  ａｎｄ  ＨＯＵＲ（時刻）＜１２）を「時刻が午前中」と変換してもよい。このようにすることで、生成される特徴量の説明を人間により理解しやすくできる。
【００８０】
また、複数の特徴量生成関数（または複数の特徴量）と複数の説明文とが一度に生成された場合、説明文生成部１５は、生成された特徴量生成関数（または特徴量）と生成された説明文との対応付けを行う。この場合、説明文生成部１５は、説明文付与部として動作する。具体的には説明文生成部１５は、同じ値の組み合わせ（すなわち、表情報、選択情報、結合情報および集約情報のうち必要な情報の組み合わせ）に基づいて生成された特徴量生成関数と説明文とを、互いに対応しているとみなす。説明文生成部１５は、特徴量と説明文との対応付けをする場合についても同様に対応付けを行う。
【００８１】
記憶部１１は、例えば、磁気ディスク装置により実現される。また、受付部１２と、関数生成部１３と、特徴量生成部１４と、説明文生成部１５とは、プログラム（特徴量説明プログラム）に従って動作するコンピュータのＣＰＵによって実現される。例えば、プログラムは、記憶部１１に記憶され、ＣＰＵは、そのプログラムを読み込み、プログラムに従って、受付部１２、関数生成部１３、特徴量生成部１４および説明文生成部１５として動作してもよい。また、本情報処理システムの機能がＳａａＳ（Software as a Service ）形式で提供されてもよい。
【００８２】
また、受付部１２と、関数生成部１３と、特徴量生成部１４と、説明文生成部１５とは、それぞれが専用のハードウェアで実現されていてもよい。受付部１２と、関数生成部１３と、特徴量生成部１４と、説明文生成部１５とは、それぞれが汎用または専用の回路（circuitry ）により実現されていてもよい。ここで、汎用または専用の回路（circuitry ）は、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。また、各装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、 集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【００８３】
次に、本実施形態の情報処理システムの動作を説明する。図１２は、第一の実施形態の情報処理システムの動作例を示すフローチャートである。受付部１２は、各テンプレートに代入する値（すなわち、表情報、選択情報、結合情報および集約情報のうち必要な情報）を受け付ける（ステップＳ１０１）。関数生成部１３は、受け付けた値を第一のテンプレートに代入して特徴量生成関数を生成する（ステップＳ１０２）。特徴量生成部１４は、第一の表および第二の表に特徴量生成関数を適用して特徴量を生成する（ステップＳ１０３）。そして、説明文生成部１５は、第一のテンプレートに代入された値を第二のテンプレートに代入して説明文を生成する（ステップＳ１０４）。なお、ステップＳ１０４は、必ずしもステップＳ１０２またはステップＳ１０３よりも後に実行される必要はない。例えば、ステップＳ１０４は、ステップＳ１０１の直後に実行されるとしてもよい。
【００８４】
以上のように、本実施形態では、関数生成部１３が、受け付けた値を第一のテンプレートに代入することにより特徴量生成関数を生成し、特徴量生成部１４が、第一の表および第二の表に対して特徴量生成関数を適用することにより、予測対象の値を予測するモデルを学習する際に説明変数の候補として用いられる特徴量を生成する。そして、説明文生成部１５は、特徴量生成関数または特徴量についての説明文を、第一のテンプレートに代入された値を第二のテンプレートに代入することにより生成する。よって、生成される特徴量の説明を人間に理解しやすい態様で提供できる。
【００８５】
すなわち、本実施形態では、ＳＱＬ文に代表される問合せ言語に即して作成された第一のテンプレートと、その第一のテンプレートと共通のパラメータを有する第二のテンプレートとを用いて、説明文が生成される。そのため、特徴量生成関数（または特徴量）の生成とともに、その特徴量生成関数（または特徴量）の説明文を人間に理解しやすい態様で提供できる。
【００８６】
次に、本実施形態の情報処理システムの第一の変形例を説明する。第一の実施形態では、受付部１２が、結合パラメータに代入される値を示す結合情報と、集約パラメータに代入される値を示す集約情報と、選択パラメータに代入される値を示す選択情報とを受け付ける場合について説明した。一方、第二の表からすべての行を選択する場合、選択情報は不要になる。
【００８７】
この場合、関数生成部１３は、第一の実施形態で説明した結合パラメータと集約パラメータを用いて特徴量生成関数を生成することが可能である。この場合、第一のテンプレートおよび第二のテンプレートは、結合パラメータと、集約パラメータとを含んでいればよい。また、受付部１２は、結合情報と集約情報とを受け付ければよい。この場合、説明文生成部１５は、この２つのパラメータ（結合パラメータおよび集約パラメータ）を用いて説明文を生成すればよい。
【００８８】
具体的には関数生成部１３は、受け付けた結合情報および集約情報を第一のテンプレートに代入して特徴量生成関数を生成する。特徴量生成部１４は、生成された特徴量生成関数を第一の表および第二の表に適用して特徴量を生成する。説明文生成部１５は、第一のテンプレートに代入された情報（すなわち、結合情報および集約情報）を第二のテンプレートに代入して、説明文を生成する。
【００８９】
図１３は、特徴量生成関数を生成する処理の変形例を示す説明図である。図１３に例示するソーステーブルＳ１２は、タイプ＝ｃａｌｌのみの通話記録を含むとする。この場合、ソーステーブルＳ１２に含まれるすべてのデータが特徴量の生成の対象になる。したがって、選択情報は不要になる。この場合、関数生成部１３は、受け付けた結合情報「Ｔ．顧客ＩＤ＝Ｓ．顧客ＩＤ」および集約情報「通話時間＝ＭＡＸ」を第一のテンプレートに代入して特徴量生成関数Ｄ３２を生成すればよい。
【００９０】
なお、第一のテンプレートに、選択パラメータが含まれている場合、関数生成部１３は、選択パラメータにダミー条件（例えば、１＝１）を代入して特徴量生成関数を生成すればよい。また、このとき、説明文生成部１５は、第二のテンプレートに、ダミー条件を表す選択ラベル（例えば、「すべてを対象とした」）を適用した説明文Ｅ１２を生成すればよい。
【００９１】
次に、本実施形態の情報処理システムの第二の変形例を説明する。第一の実施形態では、第一の表と第二の表を結合する際、第一の表における行と第二の表における行とが一対多対応する場合について説明した。一方、第一の表と第二の表が一対一に対応する場合、集約情報は不要になる。
【００９２】
この場合、関数生成部１３は、第一の実施形態で説明した結合パラメータと選択パラメータを用いて特徴量生成関数を生成することが可能である。この場合、第一のテンプレートおよび第二のテンプレートは、結合パラメータと、選択パラメータとを含んでいればよい。また、受付部１２は、結合情報と選択情報とを受け付ければよい。この場合、説明文生成部１５は、この２つのパラメータ（結合パラメータおよび選択パラメータ）を用いて説明文を生成すればよい。
【００９３】
具体的には関数生成部１３は、受け付けた結合情報および選択情報を第一のテンプレートに代入して特徴量生成関数を生成する。特徴量生成部１４は、生成された特徴量生成関数を第一の表および第二の表に適用して特徴量を生成する。説明文生成部１５は、第一のテンプレートに代入された情報（すなわち、結合情報および選択情報）を第二のテンプレートに代入して、説明文を生成する。
【００９４】
図１４は、特徴量生成関数を生成する処理の他の変形例を示す説明図である。図１４に例示するソーステーブルＳ１３は、顧客の年齢、性別および住所を含む表とする。この場合、ターゲットテーブルＴ１１とソーステーブルＳ１３とは一対一に対応する。したがって、集約情報は不要になる。この場合、男性および女性の年齢を対象にして特徴量を生成したい場合、関数生成部１３は、受け付けた結合情報「Ｔ．顧客ＩＤ＝Ｓ．顧客ＩＤ」および選択情報「性別＝男ｏｒ女」を第一のテンプレートに代入して特徴量生成関数Ｄ３３を生成すればよい。
【００９５】
なお、第一のテンプレートに、集約パラメータが含まれている場合、関数生成部１３は、集約パラメータにダミー条件（例えば、最頻値：ＭＯＤＥ（年齢））を代入して特徴量生成関数を生成すればよい。また、このとき、説明文生成部１５は、第二のテンプレートに、集約関数を削除した集約ラベル（例えば、「年齢」）を適用した説明文Ｅ１３を生成すればよい。
【００９６】
実施形態２．
次に、本発明による情報処理システムの第二の実施形態を説明する。第一の実施形態では、第二の表の情報を受け付けずに特徴量および説明文を生成する方法を説明した。本実施形態では、表情報を明示的に受け付ける場合について説明する。なお、本実施形態の構成は、第一の実施形態と同様である。
【００９７】
本実施形態では、第一のテンプレートおよび第二のテンプレートは、第二の表を識別する値が代入される表パラメータを含む。受付部１２は、結合情報、集約情報および選択情報に加え、表パラメータに代入される値である表情報を更に受け付ける。なお、第一の表と第二の表との粒度は同一であってもよく、異なっていてもよい。
【００９８】
図１５は、複数のソーステーブルの例を示す説明図である。図１５に例示するソーステーブルＳ１４は、支払テーブルの例であり、ターゲットテーブルと、１対多に対応する。また、図１５に例示するソーステーブルＳ１５は、コールセンターへの問合せテーブルの例であり、ターゲットテーブルと、１対（０〜多）に対応する。なお、図１５に例示するソーステーブルＳ１３は、顧客テーブルであり、図１４に例示する内容と同様に、ターゲットテーブルと一対一に対応する。
【００９９】
図１６は、表パラメータを含む第一のテンプレートの例を示す説明図である。図１６に例示する第一のテンプレートＴｅｍｐ３１は、表パラメータとして「ソーステーブル名」を含む。複数のソーステーブルを利用する場合、受付部１２は、特徴量生成関数を生成するごとにソーステーブル名を含む表情報を受け付ければよい。
【０１００】
図１７は、特徴量生成関数を生成する方法の例を示す説明図である。図１７に例示するターゲットテーブルＴ１１とソーステーブルＳ１４を用いて、特徴量「顧客の２０１０年２月の総支払金額」を生成するとする。このとき、受付部１２は、結合情報として「Ｔ．顧客ＩＤ＝ｐａｙｍｅｎｔ．顧客ＩＤ」を、集約情報として「ＳＵＭ（支払金額）」を、選択情報として「時刻 ｉｎ  ２０１０年２月」をそれぞれ受け付ける。さらに、受付部１２は、これらの情報に加え、表情報として表名「ｐａｙｍｅｎｔ」を受け付ける。関数生成部１３は、受け付けた各情報を、例えば、図１６に例示する第一のテンプレートＴｅｍｐ３１に代入して特徴量生成関数Ｄ３４を生成する。
【０１０１】
以上のように、本実施形態では、第一のテンプレートおよび第二のテンプレートが、第二の表を識別する値が代入される表パラメータを更に含む。そして、受付部１２が、表パラメータに代入される値である表情報を更に受け付ける。このような構成によっても、生成される特徴量の説明を人間に理解しやすい態様で提供できる。
【０１０２】
実施形態３．
次に、本発明による情報処理システムの第三の実施形態を説明する。本実施形態の情報処理システムは、生成された特徴量に基づいて訓練データを作成し、作成された訓練データを用いて予測モデルを学習し、その予測モデルを用いて予測結果を出力する。
【０１０３】
図１８は、本発明による情報処理システムの第三の実施形態の構成例を示すブロック図である。本実施形態の情報処理システム２００は、記憶部１１と、受付部１２と、関数生成部１３と、特徴量生成部１４と、説明文生成部１５と、学習部１６と、予測部１７と、訓練データ生成部１８と、予測用データ生成部１９とを備えている。
【０１０４】
すなわち、本実施形態の情報処理システム２００は、第一の実施形態の情報処理システム１００と比較し、学習部１６、予測部１７、訓練データ生成部１８および予測用データ生成部１９とをさらに備えている。なお、記憶部１１、受付部１２、関数生成部１３、特徴量生成部１４および説明文生成部１５の内容は、第一の実施形態または第二の実施形態と同様であるため、詳細な説明は省略する。
【０１０５】
訓練データ生成部１８は、特徴量生成部１４が生成した特徴量と、第一の表とに基づいて、後述する学習部１６が学習に用いる訓練データを生成する。
【０１０６】
また、予測用データ生成部１９は、特徴量生成部１４が生成した特徴量と、第一の表とに基づいて、後述する予測部１７が用いる予測用データを生成する。
【０１０７】
学習部１６は、生成された特徴量を説明変数の候補として用いて、予測対象の値を予測するモデルを学習する。なお、モデルの学習方法は任意である。学習部１６は、特徴量選択（Feature Selection ）機能を備えていても良い。学習部１６に説明変数の候補が複数入力され、学習部１６が特徴量選択を行い、学習部１６が選択された特徴量を用いて学習処理を行ってもよい。学習部１６は、特徴量選択処理の後処理として学習処理を行ってもよいし、特徴量選択処理と学習処理とを一体として実行してもよい。
【０１０８】
予測部１７は、学習部１６によって学習されたモデルと予測用データとを用いて予測を行う。具体的には、予測部１７は、予測用データ生成部１９によって生成された予測用データを、学習部１６によって学習されたモデルに適用して予測結果を得る。
【０１０９】
以下、生成された特徴量を用いて学習部１６がモデルを生成し、予測部１７が予測結果を得る方法を具体例を用いて説明する。図１９は、本具体例で用いるターゲットテーブルおよびソーステーブルの例を示す説明図である。本具体例では、２０１０年２月のデータを含むターゲットテーブルＴ１１と、２０１０年３月のデータを含むターゲットテーブルＴ２１が存在するものとする。ターゲットテーブルＴ１１のプライマリキーおよびターゲットテーブルＴ２１のプライマリキーは、両者ともに顧客ＩＤである。また、本具体例では、２０１０年３月のデータに含まれる顧客（顧客ＩＤ＝１０２１）の解約の有無を予測するものとする。
【０１１０】
また、図１９に例示するソーステーブルＳ１６は、顧客の通話記録を表わす。ソーステーブルＳ１６は、ターゲットテーブルＴ１１に含まれる解約の有無が既知の顧客の通話記録のほか、ターゲットテーブルＴ２１に含まれる顧客の通話記録も含む。
【０１１１】
理解を容易にするために、本具体例では、受付部１２が、ターゲットテーブルのプライマリキーを示す列（Ｔ１１およびＴ２１に示す例では顧客ＩＤ）を結合情報として受け付けたことを想定する。特徴量生成部１４は、図１９に例示するターゲットテーブル１１ およびソーステーブルＳ１６に特徴量生成関数を適用して特徴量（訓練データ用の特徴量ベクトル）を生成する。また、特徴量生成部１４は、図１９に例示するターゲットテーブル２１ およびソーステーブルＳ１６に同じ特徴量生成関数を適用して特徴量（予測用データ用の特徴量ベクトル）を生成する。本具体例では、第一の特徴量として「顧客の最大通話時間」が生成され、第二の特徴量として、「顧客の総通話時間」が生成され、第三の特徴量として、「ＳＭＳの総回数」が生成されるものとする。前述した通り、特徴量生成部１４は、結合情報にて指定された列（ここでは顧客ＩＤ）と生成した特徴量とが紐付された形式のデータを出力するものとする。
【０１１２】
図２０は、訓練データと予測用データとの具体例を示す説明図である。訓練データ生成部１８は、ターゲットテーブルＴ１１および特徴量生成部１４が生成した特徴量（訓練データ用の特徴量ベクトル）を用いて訓練データＲ２２を生成する。例えば訓練データ生成部１８は、ターゲットテーブルＴ１１と特徴量生成部１４が生成した各特徴量（前述したように顧客ＩＤと紐付されているとする）とを、顧客ＩＤを結合キーとして結合することにより訓練データＲ２２を生成する。図２０に示されるように、訓練データＲ２２に含まれるレコードは目的変数の値を有している。また、予測用データ生成部１９は、ターゲットテーブルＴ２１および特徴量生成部１４が生成した特徴量（予測用データ用の特徴量ベクトル）を用いて、予測用データＲ２３を生成する。例えば予測用データ生成部１９は、ターゲットテーブルＴ２１と特徴量生成部１４が生成した特徴量（前述したように顧客ＩＤと紐付されているとする）とを、顧客ＩＤを結合キーとして結合することにより予測用データＲ２３を生成する。図２０に示されるように、予測用データＲ２３に含まれるレコードは目的変数の値を有していない。
【０１１３】
学習部１６は、生成された訓練データＲ２２を用いてモデルを学習する。図２０に示す例では学習部１６は、「解約」を目的変数として、その他の特徴量（プラン、機器、生成した特徴量１、２および３）を説明変数の候補として、モデルを学習する。モデルは、例えば、以下に例示する式１で表されていてもよい。
解約Ｙ＝Ｆ（プラン，特徴量２，特徴量３，…）    （式１）
【０１１４】
予測部１７は、予測用データＲ２３のうち必要な特徴量の値を上述する式１に代入して予測結果を得る。上述の例では、モデルに、プランの値としてＰ２を、特徴量２の値として２４０を、特徴量３の値として１を代入することにより、予測結果を得る。このようにして、顧客ＩＤ＝１０２１で識別される顧客の解約有無が予測される。
【０１１５】
受付部１２と、関数生成部１３と、特徴量生成部１４と、説明文生成部１５と、学習部１６と、予測部１７と、訓練データ生成部１８と、予測用データ生成部１９とは、プログラム（特徴量説明プログラム）に従って動作するコンピュータのＣＰＵによって実現される。
【０１１６】
図２１は、本実施形態の情報処理システム２００の動作例を示す説明図である。なお、図２１に例示する第一のテンプレート６１、第二のテンプレート６２、第一の表６３、第二の表６４、訓練データ６５および予測用データ６６は、記憶部１１に記憶されていてもよい。
【０１１７】
まず、受付部１２が、特徴量生成関数および説明文の生成に必要な各種情報を受け付ける。関数生成部１３は、受け付けた情報および第一のテンプレート６１を用いて特徴量生成関数５１を生成する。説明文生成部１５は、受け付けた情報および第二のテンプレート６２を用いて説明文５２を生成する。
【０１１８】
特徴量生成部１４は、特徴量生成関数５１を、第一の表６３および第二の表６４に適用して特徴量５３を生成する。特徴量生成部１４は、生成された特徴量５３に説明文５２を付加してもよい。
【０１１９】
訓練データ生成部１８は、生成した特徴量５３および第一の表６３のデータから、訓練データ６５を生成する。学習部１６は、訓練データ６５を用いて学習済モデル５４を学習する。
【０１２０】
予測用データ生成部１９は、生成した特徴量５３および第一の表６３のデータから、予測用データ６６を生成する。そして、予測部１７は、学習済モデル５４および予測用データ６６を用いて、予測結果５５を出力する。
【０１２１】
以上のように、本実施形態では、学習部１６が、生成された特徴量を説明変数の候補として用いて、予測対象の値を予測するモデルを学習する。また、本実施形態では、予測部１７が、第一の表および第二の表に対して特徴量生成関数を適用して、モデルに代入する特徴量を生成し、その特徴量をモデルに適用して予測値を得る。そのような構成により、新たに生成された特徴量を用いてモデルを学習し、予測をすることが可能なため、より精度の高い予測を行うことが可能になる。
【０１２２】
実施形態４．
次に、本発明による情報処理システムの第四の実施形態を説明する。第一の実施形態から第三の実施形態では、情報処理システムが特徴量生成関数の生成とともに説明文を生成した。本実施形態では、すでに作成された特徴量生成関数から、説明文を生成する方法を説明する。
【０１２３】
図２２は、本発明による情報処理システムの第四の実施形態の構成例を示すブロック図である。本実施形態の情報処理システム３００は、記憶部２１と、受付部２２と、抽出部２３と、説明文生成部２４とを備えている。
【０１２４】
記憶部２１は、第一の実施形態から第三の実施形態と同様に、第一の表（ターゲットテーブル）および第二の表（ソーステーブル）を記憶する。また、第一の表および第二の表の内容は、第一の実施形態から第三の実施形態と同様である。
【０１２５】
受付部２２は、第一の実施形態から第三の実施形態で説明した特徴量生成関数を受け付ける。すなわち、受付部２２は、予測対象の変数を含む第一の表、および、第二の表から予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付ける。
【０１２６】
第一の実施形態で説明したように、特徴量生成関数は、予め用意された第一のテンプレートのパラメータに各種情報を適用して生成されるものである。そして、第一のテンプレートは、第一の表と第二の表とを結合する際のキー列を示す値が代入される結合パラメータおよび第二の表における複数の行に対する集約演算とその集約演算の対象になる列とを示す値が代入される集約パラメータを含む。また、第一のテンプレートは、第二の表から条件を満たす行を選択するための、条件と選択の対象となる列とを示す値が代入される選択パラメータを含む場合もある。さらに、第一のテンプレートは、第二の表を識別する値が代入される表パラメータを含む場合もある。
【０１２７】
抽出部２３は、受付部２２が受け付けた特徴量生成関数から、第二の表の名称を示す表情報、第一の表と第二の表とを結合する際のキー列を示す結合情報、および、第二の表における複数の行に対する集約演算と集約演算の対象となる列を示す集約情報とを抽出する。また、抽出部２３は、第二の表から条件を満たす行を選択するための、条件と選択の対象となる列とを示す選択情報を抽出してもよい。
【０１２８】
具体的には、抽出部２３は、特徴量生成関数と比較する１以上のテンプレート（以下、関数テンプレートと記す。）を保持しておき、受け付けた特徴量生成関数と関数テンプレートとを比較して、表情報、結合情報および集約情報を抽出する。
【０１２９】
関数テンプレートは、表パラメータ、結合パラメータおよび集約パラメータを含む。関数テンプレートは、比較対象（すなわち、特徴量生成関数）との位置関係から上記各パラメータ（すなわち、表パラメータ、結合パラメータおよび集約パラメータ）を抽出可能に設計される。関数テンプレートは、例えば、表情報、結合情報および集約情報が対応する各パラメータに代入された場合に、特徴量生成関数を生成できるように設計されていてもよい。また、関数テンプレートは、選択パラメータを含んでいてもよい。
【０１３０】
図２３は、関数テンプレートの例を示す説明図である。図２３には、２つの関数テンプレートを例示している。図２３に例示するテンプレートＴｅｍｐ４１は、図１６に例示するテンプレートＴｅｍｐ３１と同様である。例えば、図２３に例示するテンプレートＴｅｍｐ４１を用いることで、特徴量生成関数と比較して各パラメータを抽出可能であり、また、テンプレートＴｅｍｐ４１の各パラメータに表情報、結合情報、集約情報および選択情報を代入することにより、特徴量生成関数を生成することが可能である。
【０１３１】
抽出部２３は、表パラメータに対応する箇所に設定された値を表情報として抽出し、集約パラメータに対応する箇所に設定された値を集約情報として抽出し、結合パラメータに対応する箇所に設定された値を結合情報として抽出する。また、関数テンプレートに選択パラメータを含む場合、抽出部２３は、選択パラメータに対応する箇所に設定された値を選択情報として抽出する。
【０１３２】
図２４は、特徴量生成関数から各情報を抽出する処理の例を示す説明図である。図２４は、特徴量生成関数Ｄ４１が受け付けられ、関数テンプレートＴｅｍｐ４１を用いて抽出処理が行われる例を示す。
【０１３３】
例えば、関数テンプレートＴｅｍｐ４１の表パラメータである「ソーステーブル名」に対応する特徴量生成関数Ｄ４１の位置には、「ｃａｌｌ＿ｌｏｇ」が設定されている。そこで、抽出部２３は、この「ｃａｌｌ＿ｌｏｇ」を表情報として抽出する。
【０１３４】
同様に、集約パラメータである「Ｒ．集約関数」および「Ｒ．列名」に対応する位置には、それぞれ「ＳＵＭ」および「通話時間」が設定されている。そこで、抽出部２３は、この「通話時間、ＳＵＭ」を集約情報として抽出する。
【０１３５】
また、結合パラメータの一部である「＄Ｍ．Ｔ列名」に対応する位置には、「顧客ＩＤ」が設定されている。そこで、抽出部２３は、「Ｔ．＄Ｍ．Ｔ列名=Ｔｅｍｐ．＄Ｍ．Ｓ列名」に対応する「Ｔ．顧客ＩＤ＝Ｔｅｍｐ（ｃａｌｌ＿ｌｏｇ）．顧客ＩＤ」を結合情報として抽出する。
【０１３６】
また、選択パラメータである「Ｆ．条件式」に対応する位置には、「通話方向＝ＩＮ」が設定されている。そこで、抽出部２３は、この「通話方向＝ＩＮ」を選択情報として抽出する。
【０１３７】
なお、図２３に例示するように、関数テンプレートが複数存在する場合、抽出部２３は、特徴量生成関数との類似性が最も高い関数テンプレートを選択してもよい。なお、類似性の判断には、文同士の類似度を算出する任意の方法が用いられれば良い。
【０１３８】
また、図２３に例示するテンプレートＴｅｍｐ４２は、第一の実施形態から第三の実施形態で用いられるテンプレートとは異なるものである。生成される特徴量生成関数の構文に揺れが生じることを考慮し、想定される特徴量生成関数のフォーマットに応じて、複数の関数テンプレートを用意しておくことが好ましい。
【０１３９】
説明文生成部２４は、抽出した情報をテンプレート（第二のテンプレート）に代入して、第一の表および第二の表に対して特徴量生成関数を適用して得られる特徴量の説明文を生成する。なお、説明文生成部２４が、説明文を生成する方法は、第一の実施形態から第三の実施形態における説明文生成部１５が説明文を生成する方法と同様である。
【０１４０】
記憶部２１は、例えば、磁気ディスク装置により実現される。また、受付部２２と、抽出部２３と、説明文生成部２４とは、プログラム（特徴量説明プログラム）に従って動作するコンピュータのＣＰＵによって実現される。例えば、プログラムは、記憶部２１に記憶され、ＣＰＵは、そのプログラムを読み込み、プログラムに従って、受付部２２、抽出部２３および説明文生成部２４として動作してもよい。また、本情報処理システムの機能がＳａａＳ（Software as a Service ）形式で提供されてもよい。また、受付部２２と、抽出部２３と、説明文生成部２４とは、それぞれが専用のハードウェアで実現されていてもよい。
【０１４１】
受付部２２と、抽出部２３と、説明文生成部２４とは、それぞれが汎用または専用の回路（circuitry ）により実現されていてもよい。ここで、汎用または専用の回路（circuitry ）は、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。また、各装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、 集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【０１４２】
次に、本実施形態の情報処理システムの動作を説明する。図２５は、第四の実施形態の情報処理システムの動作例を示すフローチャートである。
受付部２２は、特徴量生成関数を受け付ける（ステップＳ１１１）。抽出部２３は、特徴量生成関数から、表情報と、結合情報と、集約情報とを抽出する（ステップＳ１１２）。なお、受付部２２は、特徴量生成関数から、さらに選択情報を抽出してもよい。説明文生成部２４は、抽出した情報をテンプレート（第二のテンプレート）に代入して、特徴量の説明文を生成する（ステップＳ１１３）。
【０１４３】
以上のように、本実施形態では、受付部２２が、第一の表および第二の表から特徴量を生成する特徴量生成関数を受け付け、抽出部２３が、特徴量生成関数から、表情報と結合情報と集約情報とを抽出する。そして、説明文生成部２４が、抽出した情報をテンプレート（第二のテンプレート）に代入して、第一の表および第二の表に対して特徴量生成関数を適用して得られる特徴量の説明文を生成する。よって、生成される特徴量の説明を人間に理解しやすい態様で提供できる。
【０１４４】
すなわち、上述する特徴量生成関数は、各表から特徴を抽出するために用いられるものであるため、その特徴量生成関数を参照しても、生成される特徴量の意味を即座に理解することは難しい場合も多い。一方、本実施形態では、抽出部２３が、意味を理解するために必要な各情報を抽出し、説明文生成部２４が、抽出された情報を整形して提供する。そのため、生成される特徴量が、人間に理解しやすい態様で説明される。
【０１４５】
次に、本発明の概要を説明する。図２６は、本発明による情報処理システムの概要を示すブロック図である。本発明による情報処理システム７０（例えば、情報処理システム３００）は、予測対象の変数を含む第一の表（例えば、ターゲットテーブル）、および、第二の表（例えば、ソーステーブル）から予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付ける受付部７１（例えば、受付部２２）と、特徴量生成関数から、第二の表の名称を示す表情報と、第一の表と第二の表とを結合する際のキー列を示す結合情報と、第二の表における複数の行に対する集約演算と集約演算の対象となる列を示す集約情報とを抽出する抽出部７２（例えば、抽出部２３）と、抽出した情報を説明文テンプレート（例えば、第二のテンプレート）に代入して、第一の表および第二の表に対して特徴量生成関数を適用して得られる特徴量の説明文を生成する説明文生成部７３（例えば、説明文生成部２４）とを備えている。
【０１４６】
そのような構成により、生成される特徴量の説明を人間に理解しやすい態様で提供できる。
【０１４７】
また、特徴量生成関数は、予め用意された関数生成用テンプレート（例えば、第一のテンプレート）のパラメータに、表情報、結合情報および集約情報を適用して生成されてもよい。そして、抽出部７２は、関数生成用テンプレートの対応する位置に存在する表情報、結合情報および集約情報を抽出してもよい。
【０１４８】
また、説明文テンプレートおよび関数生成用テンプレートは、第二の表を識別する値が代入される表パラメータと、第一の表と第二の表とを結合する際のキー列を示す値が代入される結合パラメータと、第二の表における複数の行に対する集約演算とその集約演算の対象となる列とを示す値が代入される集約パラメータとを含んでいてもよい。そして、抽出部７２は、表パラメータに対応する箇所に設定された値を表情報として抽出し、結合パラメータに対応する箇所に設定された値を結合情報として抽出し、集約パラメータに対応する箇所に設定された値を集約情報として抽出してもよい。
【０１４９】
また、説明文テンプレートおよび関数生成用テンプレートは、第二の表から条件を満たす行を選択するための、その条件と選択の対象となる列とを示す値が代入される選択パラメータを更に含んでいてもよい。そして、抽出部７２は、選択パラメータに対応する箇所に設定された値を選択情報として抽出してもよい。
【０１５０】
また、抽出部７２は、表パラメータ、結合パラメータおよび集約パラメータを含み、比較対象との位置関係から各パラメータを抽出可能に設計された関数テンプレートと、特徴量生成関数とを比較して、その特徴量生成関数の表パラメータ、結合パラメータおよび集約パラメータに対応する位置に存在する情報を、それぞれ表情報、結合情報および集約情報として抽出してもよい。
【０１５１】
一方、抽出部７２は、表パラメータ、結合パラメータ、集約パラメータおよび選択パラメータを含み、比較対象との位置関係から各パラメータを抽出可能に設計された関数テンプレートと、特徴量生成関数とを比較して、その特徴量生成関数の表パラメータ、結合パラメータ、集約パラメータおよび選択パラメータに対応する位置に存在する情報を、それぞれ表情報、結合情報、集約情報および選択情報として抽出してもよい。
【０１５２】
また、抽出部７２は、複数の関数テンプレートのうち、特徴量生成関数との類似性が最も高い関数テンプレートを選択してもよい。
【０１５３】
図２７は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。コンピュータ１０００は、ＣＰＵ１００１、主記憶装置１００２、補助記憶装置１００３、インタフェース１００４を備える。
【０１５４】
上述の情報処理システムは、コンピュータ１０００に実装される。そして、上述した各処理部の動作は、プログラム（特徴量説明プログラム）の形式で補助記憶装置１００３に記憶されている。ＣＰＵ１００１は、プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、当該プログラムに従って上記処理を実行する。
【０１５５】
なお、少なくとも１つの実施形態において、補助記憶装置１００３は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース１００４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ１０００に配信される場合、配信を受けたコンピュータ１０００が当該プログラムを主記憶装置１００２に展開し、上記処理を実行しても良い。
【０１５６】
また、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、当該プログラムは、前述した機能を補助記憶装置１００３に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【０１５７】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１５８】
（付記１）予測対象の変数を含む第一の表、および、第二の表から前記予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付ける受付部と、前記特徴量生成関数から、前記第二の表の名称を示す表情報と、前記第一の表と前記第二の表とを結合する際のキー列を示す結合情報と、前記第二の表における複数の行に対する集約演算と前記集約演算の対象となる列を示す集約情報とを抽出する抽出部と、前記抽出した情報を説明文テンプレートに代入して、前記第一の表および前記第二の表に対して前記特徴量生成関数を適用して得られる特徴量の説明文を生成する説明文生成部とを備えたことを特徴とする情報処理システム。
【０１５９】
（付記２）特徴量生成関数は、予め用意された関数生成用テンプレートのパラメータに、表情報、結合情報および集約情報を適用して生成され、抽出部は、前記関数生成用テンプレートの対応する位置に存在する表情報、結合情報および集約情報を抽出する付記１記載の情報処理システム。
【０１６０】
（付記３）説明文テンプレートおよび関数生成用テンプレートは、第二の表を識別する値が代入される表パラメータと、第一の表と第二の表とを結合する際のキー列を示す値が代入される結合パラメータと、第二の表における複数の行に対する集約演算と当該集約演算の対象となる列とを示す値が代入される集約パラメータとを含み、抽出部は、前記表パラメータに対応する箇所に設定された値を表情報として抽出し、前記結合パラメータに対応する箇所に設定された値を結合情報として抽出し、前記集約パラメータに対応する箇所に設定された値を集約情報として抽出する付記２記載の情報処理システム。
【０１６１】
（付記４）説明文テンプレートおよび関数生成用テンプレートは、第二の表から条件を満たす行を選択するための、当該条件と当該選択の対象となる列とを示す値が代入される選択パラメータを更に含み、抽出部は、前記選択パラメータに対応する箇所に設定された値を選択情報として抽出する付記３記載の情報処理システム。
【０１６２】
（付記５）抽出部は、表パラメータ、結合パラメータおよび集約パラメータを含み、比較対象との位置関係から前記各パラメータを抽出可能に設計された関数テンプレートと、特徴量生成関数とを比較して、当該特徴量生成関数の前記表パラメータ、結合パラメータおよび集約パラメータに対応する位置に存在する情報を、それぞれ表情報、結合情報および集約情報として抽出する付記３記載の情報処理システム。
【０１６３】
（付記６）抽出部は、表パラメータ、結合パラメータ、集約パラメータおよび選択パラメータを含み、比較対象との位置関係から前記各パラメータを抽出可能に設計された関数テンプレートと、特徴量生成関数とを比較して、当該特徴量生成関数の前記表パラメータ、結合パラメータ、集約パラメータおよび選択パラメータに対応する位置に存在する情報を、それぞれ表情報、結合情報、集約情報および選択情報として抽出する付記４記載の情報処理システム。
【０１６４】
（付記７）抽出部は、複数の関数テンプレートのうち、特徴量生成関数との類似性が最も高い関数テンプレートを選択する付記５または付記６記載の情報処理システム。
【０１６５】
（付記８）予測対象の変数を含む第一の表、および、第二の表から前記予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付け、前記特徴量生成関数から、前記第二の表の名称を示す表情報と、前記第一の表と前記第二の表とを結合する際のキー列を示す結合情報と、前記第二の表における複数の行に対する集約演算と前記集約演算の対象となる列を示す集約情報とを抽出し、前記抽出した情報を説明文テンプレートに代入して、前記第一の表および前記第二の表に対して前記特徴量生成関数を適用して得られる特徴量の説明文を生成することを特徴とする説明文生成方法。
【０１６６】
（付記９）特徴量生成関数は、予め用意された関数生成用テンプレート（第一のテンプレート）のパラメータに、表情報、結合情報および集約情報を適用して生成され、前記関数生成用テンプレートの対応する位置に存在する表情報、結合情報および集約情報を抽出する付記８記載の説明文生成方法。
【０１６７】
（付記１０）コンピュータに、予測対象の変数を含む第一の表、および、第二の表から前記予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付ける受付処理、前記特徴量生成関数から、前記第二の表の名称を示す表情報と、前記第一の表と前記第二の表とを結合する際のキー列を示す結合情報と、前記第二の表における複数の行に対する集約演算と前記集約演算の対象となる列を示す集約情報とを抽出する抽出処理、および、前記抽出した情報を説明文テンプレートに代入して、前記第一の表および前記第二の表に対して前記特徴量生成関数を適用して得られる特徴量の説明文を生成する説明文生成処理を実行させるための説明文生成プログラム。
【０１６８】
（付記１１）特徴量生成関数は、予め用意された関数生成用テンプレートのパラメータに、表情報、結合情報および集約情報を適用して生成され、コンピュータに、抽出処理で、前記関数生成用テンプレートの対応する位置に存在する表情報、結合情報および集約情報を抽出させる付記１０記載の説明文生成プログラム。
【０１６９】
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１７０】
この出願は、２０１７年３月３０日に出願された米国仮出願第６２／４７８，８７１号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１７１】
１１，２１  記憶部
１２，２２  受付部
１３  関数生成部
１４  特徴量生成部
１５，２４  説明文生成部
１６  学習部
１７  予測部
１８  訓練データ生成部
１９  予測用データ生成部
２３  抽出部
１００，２００  情報処理システム
Ｓ１１，Ｓ１３，Ｓ１４，Ｓ１５  ソーステーブル
Ｔ１１，Ｔ２１  ターゲットテーブル
Ｄ１１，Ｄ２１，Ｄ２２，Ｄ３１，Ｄ３２，Ｄ３３，Ｄ３４  特徴量生成関数
Ｅ１１，Ｅ１２，Ｅ１３  説明文
【図１】
2018180971.tif 000003
【図２】
2018180971.tif 000004
【図３】
2018180971.tif 000005
【図４】
2018180971.tif 000006
【図５】
2018180971.tif 000007
【図６】
2018180971.tif 000008
【図７】
2018180971.tif 000009
【図８】
2018180971.tif 000010
【図９】
2018180971.tif 000011
【図１０】
2018180971.tif 000012
【図１１】
2018180971.tif 000013
【図１２】
2018180971.tif 000014
【図１３】
2018180971.tif 000015
【図１４】
2018180971.tif 000016
【図１５】
2018180971.tif 000017
【図１６】
2018180971.tif 000018
【図１７】
2018180971.tif 000019
【図１８】
2018180971.tif 000020
【図１９】
2018180971.tif 000021
【図２０】
2018180971.tif 000022
【図２１】
2018180971.tif 000023
【図２２】
2018180971.tif 000024
【図２３】
2018180971.tif 000025
【図２４】
2018180971.tif 000026
【図２５】
2018180971.tif 000027
【図２６】
2018180971.tif 000028
【図２７】
2018180971.tif 000029
【手続補正書】
【提出日】令和1年8月22日(2019.8.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
予測対象の変数を含む第一の表、および、第二の表から前記予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付ける受付部と、
前記特徴量生成関数から、前記第二の表の名称を示す表情報と、前記第一の表と前記第二の表とを結合する際のキー列を示す結合情報と、前記第二の表における複数の行に対する集約演算と前記集約演算の対象となる列を示す集約情報とを抽出する抽出部と、
前記抽出した情報を説明文テンプレートに代入して、前記第一の表および前記第二の表に対して前記特徴量生成関数を適用して得られる特徴量の説明文を生成する説明文生成部とを備えた
ことを特徴とする情報処理システム。
【請求項２】
特徴量生成関数は、予め用意された関数生成用テンプレートのパラメータに、表情報、結合情報および集約情報を適用して生成され、
抽出部は、前記関数生成用テンプレートの対応する位置に存在する表情報、結合情報および集約情報を抽出する
請求項１記載の情報処理システム。
【請求項３】
説明文テンプレートおよび関数生成用テンプレートは、第二の表を識別する値が代入される表パラメータと、第一の表と第二の表とを結合する際のキー列を示す値が代入される結合パラメータと、第二の表における複数の行に対する集約演算と当該集約演算の対象となる列とを示す値が代入される集約パラメータとを含み、
抽出部は、前記表パラメータに対応する箇所に設定された値を表情報として抽出し、前記結合パラメータに対応する箇所に設定された値を結合情報として抽出し、前記集約パラメータに対応する箇所に設定された値を集約情報として抽出する
請求項２記載の情報処理システム。
【請求項４】
説明文テンプレートおよび関数生成用テンプレートは、第二の表から条件を満たす行を選択するための、当該条件と当該選択の対象となる列とを示す値が代入される選択パラメータを更に含み、
抽出部は、前記選択パラメータに対応する箇所に設定された値を選択情報として抽出する
請求項３記載の情報処理システム。
【請求項５】
抽出部は、表パラメータ、結合パラメータおよび集約パラメータを含み、比較対象との位置関係から前記各パラメータを抽出可能に設計された関数テンプレートと、特徴量生成関数とを比較して、当該特徴量生成関数の前記表パラメータ、結合パラメータおよび集約パラメータに対応する位置に存在する情報を、それぞれ表情報、結合情報および集約情報として抽出する
請求項３記載の情報処理システム。
【請求項６】
抽出部は、表パラメータ、結合パラメータ、集約パラメータおよび選択パラメータを含み、比較対象との位置関係から前記各パラメータを抽出可能に設計された関数テンプレートと、特徴量生成関数とを比較して、当該特徴量生成関数の前記表パラメータ、結合パラメータ、集約パラメータおよび選択パラメータに対応する位置に存在する情報を、それぞれ表情報、結合情報、集約情報および選択情報として抽出する
請求項４記載の情報処理システム。
【請求項７】
抽出部は、複数の関数テンプレートのうち、特徴量生成関数との類似性が最も高い関数テンプレートを選択する
請求項５または請求項６記載の情報処理システム。
【請求項８】
予測対象の変数を含む第一の表、および、第二の表から前記予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付け、
前記特徴量生成関数から、前記第二の表の名称を示す表情報と、前記第一の表と前記第二の表とを結合する際のキー列を示す結合情報と、前記第二の表における複数の行に対する集約演算と前記集約演算の対象となる列を示す集約情報とを抽出し、
前記抽出した情報を説明文テンプレートに代入して、前記第一の表および前記第二の表に対して前記特徴量生成関数を適用して得られる特徴量の説明文を生成する
ことを特徴とする説明文生成方法。
【請求項９】
特徴量生成関数は、予め用意された関数生成用テンプレートのパラメータに、表情報、結合情報および集約情報を適用して生成され、
前記関数生成用テンプレートの対応する位置に存在する表情報、結合情報および集約情報を抽出する
請求項８記載の説明文生成方法。
【請求項１０】
コンピュータに、
予測対象の変数を含む第一の表、および、第二の表から前記予測対象に影響を及ぼし得る変数である特徴量を生成する特徴量生成関数を受け付ける受付処理、
前記特徴量生成関数から、前記第二の表の名称を示す表情報と、前記第一の表と前記第二の表とを結合する際のキー列を示す結合情報と、前記第二の表における複数の行に対する集約演算と前記集約演算の対象となる列を示す集約情報とを抽出する抽出処理、および、
前記抽出した情報を説明文テンプレートに代入して、前記第一の表および前記第二の表に対して前記特徴量生成関数を適用して得られる特徴量の説明文を生成する説明文生成処理
を実行させるための説明文生成プログラム。
【国際調査報告】
2018180971.tif 000030
2018180971.tif 000031