IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ドットデータ インコーポレイテッドの特許一覧

特許7098327情報処理システム、関数作成方法および関数作成プログラム
<>
  • 特許-情報処理システム、関数作成方法および関数作成プログラム 図1
  • 特許-情報処理システム、関数作成方法および関数作成プログラム 図2
  • 特許-情報処理システム、関数作成方法および関数作成プログラム 図3
  • 特許-情報処理システム、関数作成方法および関数作成プログラム 図4
  • 特許-情報処理システム、関数作成方法および関数作成プログラム 図5
  • 特許-情報処理システム、関数作成方法および関数作成プログラム 図6
  • 特許-情報処理システム、関数作成方法および関数作成プログラム 図7
  • 特許-情報処理システム、関数作成方法および関数作成プログラム 図8
  • 特許-情報処理システム、関数作成方法および関数作成プログラム 図9
  • 特許-情報処理システム、関数作成方法および関数作成プログラム 図10
  • 特許-情報処理システム、関数作成方法および関数作成プログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-01
(45)【発行日】2022-07-11
(54)【発明の名称】情報処理システム、関数作成方法および関数作成プログラム
(51)【国際特許分類】
   G06F 16/28 20190101AFI20220704BHJP
【FI】
G06F16/28
【請求項の数】 11
(21)【出願番号】P 2017552365
(86)(22)【出願日】2016-11-14
(86)【国際出願番号】 JP2016083680
(87)【国際公開番号】W WO2017090475
(87)【国際公開日】2017-06-01
【審査請求日】2019-10-08
(31)【優先権主張番号】62/259,896
(32)【優先日】2015-11-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520052374
【氏名又は名称】ドットデータ インコーポレイテッド
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100122563
【弁理士】
【氏名又は名称】越柴 絵里
(72)【発明者】
【氏名】楠村 幸貴
(72)【発明者】
【氏名】藤巻 遼平
【審査官】早川 学
(56)【参考文献】
【文献】特開2015-075970(JP,A)
【文献】特開2002-007435(JP,A)
【文献】特開2011-242851(JP,A)
【文献】Michele Samorani,DATA MINING FOR ENHANCED OPERATIONS MANAGEMENT DECISION MAKING:APPLICATIONS IN HEALTH CARE,2012年,1-151ページ
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
目的変数を含む第一の表、および、第二の表を記憶する表記憶部とを備え、前記第一の表および前記第二の表はそれぞれ複数の行及び列を含み、且つ前記第一の表の少なくとも1つの行は前記第二の表の複数の行と関連し、前記第二の表の少なくとも1つの行は前記第一の表の複数の行と関連し、
前記第一の表および前記第二の表から前記目的変数に影響を及ぼし得る変数である特徴量を生成するための特徴量生成関数を作成する関数作成部とを備え、
前記関数作成部は、前記第一の表と前記第二の表の行の対応条件を表わす対応条件要素、および、前記第二の表に含まれる各列のデータを各目的変数のために集約する集約方法を表わす集約方法要素の組合せを生成することで、複数の特徴量生成関数を作成する、
ことを特徴とする情報処理システム。
【請求項2】
関数作成部は、第二の表に含まれる行の抽出条件を表わす条件式を含む抽出条件要素、第一の表と第二の表の行の対応条件を表わす対応条件要素、および、第二の表に含まれるデータを集約する集約方法を表わす集約方法要素の組合せを生成することで、複数の特徴量生成関数を作成し、
前記対応条件が、前記第一の表及び前記第二の表における行の関連付けのために使用される特定列の列を含み、前記第一の表の複数の行及び前記第二の表の複数の行は、前記列名の特定列において関連付けされると異なる1以上の値を含む、
請求項1記載の情報処理システム。
【請求項3】
抽出条件要素が示す抽出条件に含まれる一の条件式である原子条件式を組み合わせて、複数の条件式を生成する抽出条件生成部を備え、
前記抽出条件生成部は、指定される最大長が示す数までの前記原子条件式を組み合わせた複数の条件式を生成し、
関数作成部は、生成された各条件式を抽出条件要素として特徴量生成関数を作成する、
請求項2記載の情報処理システム。
【請求項4】
関数作成部は、抽出条件要素で指定される抽出条件に基づいて1つ以上の行を抽出する処理、対応条件要素が示す対応条件で指定された対応条件を介して第一の表と第二の表とを対応付ける処理、および、集約方法要素で指定された集約方法に基づいて第二の表の行を集約する処理を行う特徴量生成関数を作成する、
請求項2または請求項3記載の情報処理システム。
【請求項5】
関数作成部は、抽出条件要素が示す抽出条件と対応条件要素が示す対応条件と集約方法要素が示す集約方法とをそれぞれ1つずつ選択し、選択した条件式、対応条件および集約方法の組合せを生成することで、複数の特徴量生成関数を作成する、
請求項2から請求項4のうちのいずれか1項に記載の情報処理システム。
【請求項6】
抽出条件要素は、第二の表の列に対する条件式および当該条件式の最大長で表わされ、対応条件要素は、第一の表の列と第二の表の列を対応付ける列のペアで表され、集約方法要素は、第二の表の列に対して行う集約方法で表される、
請求項3記載の情報処理システム。
【請求項7】
特徴量生成関数は、第一の表および第二の表からデータを抽出するSQL文で定義される、
請求項1から請求項6のうちのいずれか1項に記載の情報処理システム。
【請求項8】
目的変数を含む第一の表、および、第二の表から前記目的変数に影響を及ぼし得る変数である特徴量を生成するための複数の特徴量生成関数を、予め用意されたテンプレートを用いて生成する関数作成部であって、前記第一の表および前記第二の表はそれぞれ複数の行を含み、且つ前記第一の表の少なくとも1つの行は前記第二の表の複数の行と1対1でない関係を有する、前記関数作成部と、
前記第一の表および前記第二の表に対して複数の前記特徴量生成関数を適用して複数の前記特徴量を生成する特徴量生成部とを備え、
前記テンプレートは情報が代入される複数のパラメータを含み、
前記特徴量生成関数は、前記パラメータに代入する情報の組み合わせと、前記テンプレートとに基づいて生成され、
前記生成された複数の特徴量は、前記目的変数の値を予測するためのモデルを学習する際に、説明変数の候補として用いられる、
ことを特徴とする情報処理装置。
【請求項9】
プロセッサを有するコンピュータ上で実行される関数作成方法であって、前記プロセッサにより
目的変数を含む第一の表、および、第二の表から当該目的変数に影響を及ぼし得る変数である特徴量を生成するための特徴量生成関数であって、前記第一の表および前記第二の表はそれぞれ複数の行を含み、且つ前記第一の表の少なくとも1つの行は前記第二の表の複数の行と1対1でない関係を有する、前記特徴量生成関数を作成し、
前記特徴量生成関数の作成において、前記第一の表と前記第二の表の行の対応条件を表
わす対応条件要素、および、前記第二の表に含まれるデータを集約する集約方法を表わす集約方法要素の組合せを生成することで、複数の特徴量生成関数作成される、関数作成方法。
【請求項10】
コンピュータに、
目的変数を含む第一の表、および、第二の表から当該目的変数に影響を及ぼし得る変数である特徴量を生成するための特徴量生成関数を作成する関数作成処理を実行させ、前記第一の表および前記第二の表はそれぞれ複数の行を含み、且つ前記第一の表の少なくとも1つの行は前記第二の表の複数の行と1対1でない関係を有し、
前記関数作成処理で、前記第一の表と前記第二の表の行の対応条件を表わす対応条件要素、および、前記第二の表に含まれるデータを集約する集約方法を表わす集約方法要素の組合せを生成することで、複数の特徴量生成関数を作成させる、
ための関数作成プログラム。
【請求項11】
前記対応条件は、前記対応条件に含まれる或る列に対する、各行に含まれる特定列の値の類似性に基づき、前記第一の表および前記第二の表における前記列を関連付ける、
請求項1記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習や予測に用いる特徴量を生成するための情報処理システム、関数作成方法および関数作成プログラムに関する。
【背景技術】
【0002】
データマイニングは、大量の情報の中から、これまで未知であった有用な知見を見つける技術である。データマイニングを具体例に適用するプロセスは、下記に示す3つの段階に大別できる。
【0003】
1つ目の段階(工程)は、「前処理段階」である。「前処理段階」は、データマイニングアルゴリズムが効果的に機能するようにするために、データマイニングアルゴリズムに従って動作する装置などに入力する属性(feature )を加工することにより、その属性を新たな属性に変換する段階である。
【0004】
2つ目の段階は、「分析処理段階」である。「分析処理段階」は、データマイニングアルゴリズムに従って動作する装置などに属性を入力し、係るデータマイニングアルゴリズムに従って動作する装置などの出力である分析結果を得る段階である。
【0005】
3つめの段階は、「後処理段階」である。「後処理段階」は、分析結果を、見やすいグラフや他の機器に入力するための制御信号等に変換する段階である。
【0006】
このようにデータマイニングにより有用な知見を得るためには、「前処理段階」が適切に行われる必要がある。「前処理段階」をどのような手順で実行すべきかを設計する作業は、分析技術の熟練技術者(データサイエンティスト)の知識に依存する。前処理段階の設計作業は、情報処理技術によって十分には支援されておらず、未だ熟練技術者の手作業による試行錯誤に依存する部分が大きい。
【0007】
未知である有用な知見を見つけるためには、より多くの属性の候補を生成することが重要である。具体的には、予測対象である変数(目的変数)に影響を及ぼし得る多くの属性(説明変数)の候補を生成することが重要である。このような多くの候補を生成することにより、予測に役立つ属性がこの候補の中に含まれる可能性を高めることができるからである。
【0008】
例えば、特許文献1には、複数の属性を生成する方法が記載されている。特許文献1に記載された方法では、身長や体重、ビールの年間消費量の値などの属性を複数人の識別子と対応付けた1つのデータセットから、複数の属性を選択して新たな属性を生成する。
【先行技術文献】
【特許文献】
【0009】
【文献】国際公開第2015/045318号
【発明の概要】
【発明が解決しようとする課題】
【0010】
特許文献1に記載されている方法では、例示するデータセットに代表される1つの表データを利用して複数の属性の候補が生成される。一方、本発明者は、多くの属性の候補を生成するためには、1つの表データだけでなく、複数の表データを利用することが好ましいと考えた。様々な表データを利用することで、より多くの属性の候補を生成できるからである。なお、属性は、特徴量ということもある。
【0011】
しかし、1つの予測対象に対し、全ての表データの粒度が同一になることは稀である。すなわち、各表データは、収集されるデータの性質に応じてその内容が異なるため、予測対象ごとに複数の対応する行を有する表データや、予測対象との対応関係が自明でない表データも存在する。
【0012】
そのため、複数の表データを単純に利用して特徴量を生成することは容易ではない。また、熟練技術者が、生成しようとする特徴量ごとに加工方法を定義しようとした場合、非常に手間がかかってしまうという技術的課題がある。このような状況に鑑みると、複数の表データを利用する場合でも、効率よく多数の特徴量の候補を生成できることが望まれる。
【0013】
そこで、本発明は、複数の表データを利用して効率よく多数の特徴量の候補を生成できる情報処理システム、関数作成方法および関数作成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明による情報処理システムは、目的変数を含む第一の表、および、第二の表を記憶する表記憶部と、第一の表および第二の表から目的変数に影響を及ぼし得る変数である特徴量を生成するための特徴量生成関数を作成する関数作成部とを備え、関数作成部が、第一の表と第二の表の行の対応条件を表わす対応条件要素、および、第二の表に含まれるデータを集約する集約方法を表わす集約方法要素の組合せを生成することで、複数の特徴量生成関数を作成することを特徴とする。また、本発明による情報処理装置は、目的変数を含む第一の表、および、第二の表から目的変数に影響を及ぼし得る変数である特徴量を生成するための複数の特徴量生成関数を、予め用意されたテンプレートを用いて生成する関数作成部と、第一の表および第二の表に対して複数の特徴量生成関数を適用して複数の特徴量を生成する特徴量生成部とを備え、テンプレートが情報が代入される複数のパラメータを含み、特徴量生成関数が、パラメータに代入する情報の組み合わせと、テンプレートとに基づいて生成され、生成された複数の特徴量が、目的変数の値を予測するためのモデルを学習する際に、説明変数の候補として用いられることを特徴とする。
【0015】
本発明による関数作成方法は、目的変数を含む第一の表、および、第二の表からその目的変数に影響を及ぼし得る変数である特徴量を生成するための特徴量生成関数を作成し、特徴量生成関数の作成において、第一の表と第二の表の行の対応条件を表わす対応条件要素、および、第二の表に含まれるデータを集約する集約方法を表わす集約方法要素の組合せを生成することで、複数の特徴量生成関数を作成することを特徴とする。
【0016】
本発明による関数作成プログラムは、コンピュータに、目的変数を含む第一の表、および、第二の表からその目的変数に影響を及ぼし得る変数である特徴量を生成するための特徴量生成関数を作成する関数作成処理を実行させ、関数作成処理で、第一の表と第二の表の行の対応条件を表わす対応条件要素、および、第二の表に含まれるデータを集約する集約方法を表わす集約方法要素の組合せを生成することで、複数の特徴量生成関数を作成させることを特徴とする。
【発明の効果】
【0017】
本発明によれば、上述した技術的手段により、複数の表データを利用して効率よく多数の特徴量の候補を生成できるという技術的効果を奏する。
【図面の簡単な説明】
【0018】
図1】本発明による情報処理システムの第1の実施形態の構成例を示すブロック図である。
図2】各要素が示す処理の例を示す説明図である。
図3】第一の実施形態の情報処理システムの動作例を示すフローチャートである。
図4】特徴量生成関数の作成に用いる情報の例を示す説明図である。
図5】第一の実施形態で特徴量生成関数を作成する動作例を示すフローチャートである。
図6】SQL文を生成する処理の例を示す説明図である。
図7】本発明による情報処理システムの第2の実施形態の構成例を示すブロック図である。
図8】複数の条件式を生成する処理の例を示す説明図である。
図9】第二の実施形態で特徴量生成関数を作成する動作例を示すフローチャートである。
図10】本発明による情報処理システムの概要を示すブロック図である。
図11】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0019】
以下、本発明の実施形態を図面を参照して説明する。以下の説明では、単にデータと記載した場合、表に含まれる各セルの内容を表わし、表データと記載した場合、表に含まれるデータ全体を表わす。
【0020】
実施形態1.
図1は、本発明による情報処理システムの第1の実施形態の構成例を示すブロック図である。本実施形態の情報処理システムは、記憶部11と、入力部12と、関数作成部13とを備えている。
【0021】
記憶部11は、予測対象(すなわち、目的変数)の列を含む表(以下、第一の表と記すこともある。)、および、第一の表に含まれるデータの集合(以下、第一表データと記すこともある。)を記憶する。以下の説明では、第一の表をターゲットテーブルと記す。また、記憶部11は、第一の表と粒度の異なる表(以下、第二の表と記すことある。)、および、第二の表に含まれるデータの集合(以下、第二表データと記すこともある。)を記憶する。以下の説明では、この第二の表をソーステーブルと記す。
【0022】
第一の表および第二の表は、データの属性を表わす列の組合せにより定義される。また、各表は、各属性の値を示すデータを組み合わせた1つ以上の行を含む。ここで、ターゲットテーブル(第一の表)と粒度が異なる表とは、ターゲットテーブルの各行に対して、行が1対1に対応していない表を意味する。なお、後述する特徴量生成関数を生成する際、記憶部11は、第一表データおよび第二表データを記憶していなくてもよい。
【0023】
入力部12は、後述する関数作成部13が特徴量生成関数を作成するために必要な各種情報を入力する。入力部12は、通信ネットワーク(図示せず)を介して受信する情報を入力してもよく、これらの情報を記憶する記憶装置(図示せず)から情報を読み取って入力してもよい。また、この記憶装置の機能を記憶部11が兼ねていてもよい。なお、入力部12が入力する内容を、関数作成部13の機能に則して説明する。
【0024】
関数作成部13は、入力部12に入力された情報を用いて特徴量生成関数を生成する。特徴量生成関数は、第一表データおよび第二表データから目的変数に影響を及ぼし得る変数である特徴量を生成するために用いられる関数である。なお、ソーステーブルの数は1つに限られず、2つ以上であってもよい。生成された特徴量は、機械学習を用いてモデルを生成する際の説明変数の候補になる。言い換えると、本実施形態で生成される特徴量生成関数を用いることで、機械学習を用いてモデルを生成する際の説明変数の候補を自動的に生成することが可能になる。
【0025】
関数作成部13は、3つの要素の組合せを生成することで、複数の特徴量生成関数を作成する。第一の要素は、第二の表に含まれる行の抽出条件を表わす要素である。以下の説明では、第一の要素を抽出条件要素と記すこともある。具体的には、第一の要素が示す抽出条件は、ソーステーブル(第二の表)に対する条件式として定義される。以下、第一の要素に基づいて第二の表から行を抽出する処理を「filter」と記載する場合がある。また、この条件式のリストを「Fリスト」と記載する場合がある。
【0026】
抽出条件は任意であり、例えば、指定された列の値と同じ(大きいまたは小さい)か否か判断する条件が挙げられる。
【0027】
第二の要素は、第一表データと第二表データの行の対応条件を表わす要素である。以下の説明では、第二の要素を対応条件要素と記すこともある。具体的には、第二の要素は、ターゲットテーブル(第一の表)の列とソーステーブル(第二の表)の列を対応付ける列のペアとして定義される。以下、第二の要素に基づいて各テーブルの列を対応付ける処理を「map 」と記載する場合がある。また、この列のペアのリストを「Mリスト」と記載する場合がある。また、map による各表の列の対応付けは、対応付けられた列で複数の表を1つの表に結合(join)することとも言える。
【0028】
第三の要素は、第二の表に含まれる各列のデータを目的変数ごとに集約する集約方法を表わす要素である。以下の説明では、第三の要素を集約方法要素と記すこともある。具体的には、第三の要素は、ソーステーブル(第二の表)の列に対する集約関数として定義される。以下、第三の要素が示す方法により各列のデータを集約する処理を「reduce」と記載する場合がある。また、この集約関数のリストを「Rリスト」と記載する場合がある。第1の実施形態において、「目的変数ごとに集約する」とは、第二の表に含まれる列のうち、第一の要素(すなわち、抽出条件要素)に基づいて抽出され、かつ、第二の要素(すなわち、対応条件要素)に基づいて第一の表内の同じ列に対応付けられたデータを集約する、ことを意味する。
【0029】
集約方法は任意であり、例えば、列の総数、最大値、最小値、平均値、中央値、分散などが挙げられる。また、列の総数の集計は、重複データを除外する、または、重複データを除外しない、のいずれかの観点で行われてもよい。
【0030】
図2は、各要素が示す処理の例を示す説明図である。図2に示す例では、ターゲットテーブルTとソーステーブルSがそれぞれ1つずつ存在し、key列が両テーブルを対応付ける列である。また、ターゲットテーブルのY列に目的変数が含まれる。図2におけるSは、ソーステーブルS内の列の集合のサブセットである。
【0031】
filterは、ソーステーブルS内の列の集合のサブセットを選び出す処理と言える。map は、ターゲットテーブルTの行とソーステーブルSの行との対応関係をとる処理である。reduceは、ターゲットテーブルTの各行に対してmap により対応付けられたソーステーブルSの列のうちfilterによって選び出された行の集合の値を用いて、なんらかの集約演算を行うことにより1つの値を導出する処理であり、その導出には任意の集約関数が用いられる。
【0032】
また、この3つの要素をパラメータとする特徴量生成関数は、以下の処理に基づいて特徴量を生成する関数として定義される。まず、第一の要素で指定されたソーステーブルの抽出条件に基づき、ソーステーブルから1つ以上の行が抽出される(filter)。
【0033】
次に、第二の要素で指定された対応条件を介して、ターゲットテーブルとソーステーブルとが対応付けられる(Map )。ターゲットテーブルとソーステーブルとを対応付ける際、対応条件で示す列の値が完全一致する行同士だけでなく、指定された類似度により対応付けられてもよい。例えば、日時データで対応を取る際に、日時が完全に一致する行同士だけでなく、二つの行の日時の差が所定の範囲内(例えば、6時間以内)であれば対応付ける、という例が挙げられる。また、ターゲットテーブルとソーステーブルにそれぞれ、経度・緯度の列があり、これらを用いて対応条件を記載する際に、2地点の距離が所定の範囲内(例えば、5Km以内)、といった距離に基づく対応付けを行う例も挙げられる。
【0034】
次に、第三の要素で指定された集約方法に基づいて、ターゲットテーブルの各行に対してfilterによって選び出された行のうち、map により対応付けられた行を集約する(reduce)。この集約により、ターゲットテーブルの各行に対して得られた値を含むベクトルが特徴量とされる。
【0035】
関数作成部13は、生成した特徴量生成関数を利用して、複数の特徴量を生成してもよい。すなわち、関数作成部13が、特徴量を生成する特徴量生成部として機能してもよい。
【0036】
記憶部11は、例えば、磁気ディスク装置により実現される。また、入力部12と、関数作成部13とは、プログラム(関数作成プログラム)に従って動作するコンピュータのCPUによって実現される。例えば、プログラムは、記憶部11に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、入力部12および関数作成部13として動作してもよい。また、本情報処理システムの機能がSaaS(Software as a Service )形式で提供されてもよい。
【0037】
また、入力部12と、関数作成部13とは、それぞれが専用のハードウェアで実現されていてもよい。入力部12と、関数作成部13とは、それぞれが汎用または専用の回路(circuitry )により実現されていてもよい。ここで、汎用または専用の回路(circuitry )は、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。また、各装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、 集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【0038】
次に、本実施形態の情報処理システムの動作を説明する。図3は、本実施形態の情報処理システムの動作例を示すフローチャートである。入力部12は、特徴量生成関数の作成に必要な3つの要素を入力する(ステップS11)。そして、関数作成部13は、入力された3つの要素から特徴量生成関数を作成する(ステップS12)。なお、入力される3つの要素には、記憶部11に記憶されたターゲットテーブル(第一の表)または/およびソーステーブル(第二の表)の列が指定される。
【0039】
ここで、関数作成部13が特徴量生成関数を作成する手順を具体的に説明する。図4は、特徴量生成関数の作成に用いる情報の例を示す説明図である。図4に示す例では、予測対象の変数(目的変数)が顧客の解約の有無を示す変数であり、ターゲットテーブル(T)が顧客を識別する顧客IDと解約の有無を示す変数とを含む表とする。また、ソーステーブル(S)は、顧客の通話記録(具体的には、通話時刻、通話方向、通話タイプおよび通話時間)を含む表とする。
【0040】
filterで利用するFリストは、18の条件式の候補を含むとする。また、map で利用するMリストは、ターゲットテーブルとソーステーブルを顧客IDで対応付ける1つの条件を含むとする。また、reduceで利用するRリストは、通話時間または時刻に関する6つの集約関数を含むとする。
【0041】
なお、Fリスト、MリストおよびRリストは、機械で自動的に作成されてもよく、人間によって手動で作成されてもよい。ここでは、図4に例示するFリスト、MリストおよびRリストが予め作成されているものとする。
【0042】
図5は、本実施形態の関数作成部13が特徴量生成関数を作成する動作例を示すフローチャートである。まず、関数作成部13は、Fリスト、MリストおよびRリストから、それぞれ1つずつ要素を選択し、各要素の組合せを生成する(ステップS22)。図4に示す例では、Fリストに18通りの条件式、Mリストに1通りの対応条件、および、Rリストに6通りの集約方法が含まれる。そのため、これらの各リストの要素から108通りの組合せが生成される。
【0043】
次に、関数作成部13は、生成された組合せに基づいて特徴量生成関数を作成する(ステップS23)。具体的には、関数作成部13は、生成された組合せに含まれる条件や集約方法を、表データの操作や定義を行う問合せ言語の形式に変換する。関数作成部13は、例えば、問合せ言語としてSQLを用いてもよい。
【0044】
このとき、関数作成部13は、SQL文を生成するテンプレートに抽出条件、対応条件および集約方法を適用して特徴量生成関数を作成してもよい。具体的には、条件や集約方法を当て嵌めてSQL文を生成するためのテンプレートを予め用意しておき、関数作成部13は、生成された組合せに含まれる条件や集約方法を順次テンプレートに適用してSQL文を作成してもよい。この場合、特徴量生成関数は、SQL文として定義され、Fリスト、MリストおよびRリストからそれぞれ選択される3つの要素が、SQL文を生成するためのパラメータに対応する。
【0045】
図6は、テンプレートにあてはめてSQL文を生成する処理の例を示す説明図である。図6に示す例では、テンプレートTempが予め用意される。関数作成部13は、テンプレートTempの下線で示す部分に、生成された組合せに含まれる条件および集約方法を適用する。その結果、組合せ数の特徴量生成関数が生成される。
【0046】
例えば、Fリストから「通話方向=IN」という条件式、Mリストから「顧客ID同士で対応づけ」という対応条件、Rリストから「通話時間の列をカウント」という集約方法を選択した組合せが生成されたとする。この場合、この組合せをテンプレートTempに適用すると、図6に例示する問合せ文Q1が生成される。この問合せ文Q1によって作成される特徴量は、かかって来た通話または届いたメッセージの総数を表わす。
【0047】
他にも、例えば、Fリストから「通話方向=OUT AND タイプ=call」という条件式、Mリストから「顧客ID同士で対応づけ」という対応条件、Rリストから「時刻が最大」という集約方法を選択した組合せが生成されたとする。この場合、この組合せをテンプレートTempに適用すると、図6に例示する問合せ文Q2が生成される。この問合せ文Q2によって作成される特徴量は、音声通話をかけた時刻の最新値を表わす。
【0048】
上記に例示する以外にも、様々な特徴量を生成することが可能である。例えば、Fリストから「タイプ=call AND 通話方向=OUT AND HOUR(時刻)<7」という条件式、Mリストから「顧客ID同士で対応づけ」という対応条件、Rリストから「通話時間の平均」という集約方法を選択した組合せが生成されたとする。この組合せによって作成される特徴量は、7時前にかけられた音声通話の平均時間を表わす。
【0049】
また、Fリストから「タイプ=call AND 通話方向=IN」という条件式、Mリストから「顧客ID同士で対応づけ」という対応条件、Rリストから「通話時間の分散」という集約方法を選択した組合せが生成されたとする。この組合せによって作成される特徴量は、かかって来た通話における通話時間のばらつき度合いを表わす。
【0050】
以上のように、本実施形態では、関数作成部13が、3つの要素の組合せを生成することで、ターゲットテーブル(第一の表)およびソーステーブル(第二の表)から特徴量を生成するための特徴量生成関数を生成する。すなわち、本実施形態では、ソーステーブルおよびターゲットテーブルから特徴量生成する関数を、filter、map 、reduceという3つの要素の組み合わせで定義する。この3つの要素の組み合わせで特徴量生成関数を定義すると、たくさんの種類の特徴量生成関数を単純な要素の組み合わせとして表現することができる。よって、複数の表データを利用して効率よく多数の特徴量の候補を生成できる。例えば、図4に示す例の場合、18の条件式、1つの対応条件、および、6つの集約方法を定義するだけで、108種類の特徴量生成関数を容易に生成することが可能になる。また、一度作成したfilter、map 、およびreduceの定義は再利用できるため、特徴量生成関数を生成する工数自体も削減できるという効果も得られる。
【0051】
実施形態2.
次に、本発明による情報処理システムの第2の実施形態を説明する。第1の実施形態では、予め第一の要素が示す条件式を全て用意しておく場合について説明した。例えば、図4では、18の条件式をFリストに用意しておく場合を例示した。本実施形態では、第一の要素が示す条件式を効率的に多数作成する方法を説明する。
【0052】
図7は、本発明による情報処理システムの第2の実施形態の構成例を示すブロック図である。なお、第1の実施形態と同様の構成については、図1と同一の符号を付し、説明を省略する。本実施形態の情報処理システムは、記憶部11と、入力部12と、関数作成部13と、パラメータ生成部14とを備えている。すなわち、本実施形態の情報処理システムは、パラメータ生成部14をさらに備えている点において、第1の実施形態と異なる。
【0053】
パラメータ生成部14は、第一の要素が示す抽出条件に含まれる条件式(以下、原子条件式と記す。)を組み合わせて、複数の条件式を生成する。組み合わせる条件式の数は、予め定められる。以下、ANDで繋ぐ原子条件式の最大数のことを「条件式の最大長」と記すこともある。なお、原子条件式は、単一の論理式で表されていてもよく、複数の論理式を演算子で結合させた論理式で表されていてもよい。
【0054】
図8は、複数の条件式を生成する処理の例を示す説明図である。図8に示す例では、Fリストが6つの原子条件式を含むものとし、条件式の最大長は2であるとする。関数作成部13は、Fリストに含まれる原子条件式の中から「条件式の最大長」以下の個数の原子条件式を組み合わせて、複数の新たな条件式を生成する。図8では、Fリストから全部で18通りの条件式が生成されたことを示す。
【0055】
本実施形態では、パラメータ生成部14が原子条件式を組み合わせることで新しい条件式を生成する。条件式の組み合わせは本質的には、原子条件式の数の長さまで可能であるが、すべてを連結したような長い条件式はユーザにとってその意味を理解しづらく、実用的でないことが多い。一方、本実施形態では、ユーザが特徴量の意味を理解できるような範囲(例えば、条件式の最大長=2)で条件式の最大長を設定することで、生成される特徴量の複雑さを抑えることが可能である。すなわち、条件式の最大長を指定することで、ユーザが理解しやすい条件式に絞って特徴量を生成できる。
【0056】
なお、新たな条件式を生成する際、関数作成部13は、同じ属性に対する条件式のうち、矛盾する条件を除外するようにしてもよい。例えば、図8に例示する条件式のうち、通話方向がINとOUTの条件が両立することはない。この場合、関数作成部13は、そのような条件を含む組合せを除外すればよい。
【0057】
なお、入力部12と、関数作成部13と、パラメータ生成部14とは、プログラム(関数作成プログラム)に従って動作するコンピュータのCPUによって実現される。また、入力部12と、関数作成部13と、パラメータ生成部14とは、それぞれが専用または汎用のハードウェアや回路で実現されていてもよい。
【0058】
図9は、本実施形態の関数作成部13が特徴量生成関数を作成する動作例を示すフローチャートである。まず、関数作成部13は、Fリストに含まれる条件式を組み合わせた新たな条件式を生成する(ステップS21)。以降、各要素に基づいて特徴量生成関数を作成する処理は、図5のステップS22からステップS23に示す処理と同様である。
【0059】
以上のように、本実施形態によれば、パラメータ生成部14が、指定される最大長が示す数までの原子条件式を組み合わせて複数の条件式を生成する。そして、関数作成部13が、生成された各条件式を第一の要素として特徴量生成関数を作成する。よって、第1の実施形態の効果に加え、少ない条件式の指定で多数の特徴量生成関数を効率よく生成できる。例えば、6つの条件式とその条件式の最大長(例えば、最大長=2)、1つの対応条件、および、6つの集約方法を定義するだけで、108種類の特徴量生成関数を容易に生成することが可能になる。
【0060】
実施形態3.
次に、本発明による情報処理システムの第3の実施形態を説明する。第1の実施形態では、3つの要素(filter、map 、reduce)の組合せを生成することで、ターゲットテーブル(第一の表)およびソーステーブル(第二の表)から特徴量を生成するための特徴量生成関数を生成する方法を説明した。第3の実施形態では、第二の表(ソーステーブル)から行を抽出する処理(すなわち、filter)を行わずに特徴量生成関数を生成する方法を説明する。
【0061】
第3の実施形態の構成は、第1の実施形態の構成と同様である。ただし、関数作成部13が特徴量生成関数を生成する方法が、第1の実施形態と異なる。関数作成部13は、第1の実施形態と同様、入力部12に入力された情報を用いて特徴量生成関数を生成する。ただし、本実施形態では、関数作成部13は、第一の実施形態で説明した第二の要素(すなわち、対応条件要素)と、第三の要素(すなわち、集約方法要素)の2つの要素(map 、reduce)の組合せを生成することで、複数の特徴量生成関数を作成する。
【0062】
すなわち、本実施形態の関数作成部13は、第一の表(ターゲットテーブル)と第二の表(ソーステーブル)の行の対応条件を表わす対応条件要素(第1の実施形態の第二の要素に対応)、および、第二の表に含まれる各列のデータを目的変数ごとに集約する集約方法を表わす集約方法要素(第1の実施形態の第三の要素に対応)の組合せを生成することで、複数の特徴量生成関数を作成する。
【0063】
第3の実施形態において、「目的変数ごとに集約する」とは、第二の表に含まれる列のうち、対応条件要素に基づいて第一の表内の同じ列に対応付けられたデータを集約する、ことを意味する。
【0064】
関数作成部13が各要素の組合せを生成する方法や、各要素の内容、特徴量生成関数の内容は、要素として第一の要素(すなわち、抽出条件要素)を含まない以外、第1の実施形態と同様である。
【0065】
以上のように、本実施形態では、関数作成部13が、対応条件要素および集約方法要素の組合せを生成することで、複数の特徴量生成関数を作成する。そのため、第1の実施形態の効果と同様、複数の表データを利用して効率よく多数の特徴量の候補を生成できる。例えば、特徴量の生成に第二の表データを全て使用する場合、第二の表データのサブセットを使用する必要がないため、特徴量生成関数に抽出条件要素を含まなくても、各表データから特徴量を生成することが可能である。
【0066】
次に、本発明による情報処理システムの概要を説明する。図10は、本発明による情報処理システムの概要を示すブロック図である。本発明による情報処理システムは、目的変数を含む第一の表(例えば、ターゲットテーブル)およびその第一の表と粒度の異なる第二の表(例えば、ソーステーブル)を記憶する表記憶部81(例えば、記憶部11)と、第一の表および第二の表から目的変数に影響を及ぼし得る変数である特徴量を生成するための特徴量生成関数を作成する関数作成部82(例えば、関数作成部13)とを備えている。
【0067】
関数作成部82は、第一の表と第二の表の行の対応条件を表わす対応条件要素(例えば、第二の要素)、および、第二の表に含まれる各列のデータを目的変数ごとに集約する集約方法を表わす集約方法要素(例えば、第三の要素)の組合せを生成することで、複数の特徴量生成関数を作成する。
【0068】
そのような構成により、複数の表データを利用して効率よく多数の特徴量の候補を生成できる。
【0069】
また、関数作成部82は、第二の表に含まれる行の抽出条件を表わす条件式を含む抽出条件要素(例えば、第一の要素)、第一の表と第二の表の行の対応条件を表わす対応条件要素(例えば、第二の要素)、および、第二の表に含まれる各列のデータを目的変数ごとに集約する集約方法を表わす集約方法要素(例えば、第三の要素)の組合せを生成することで、複数の特徴量生成関数を作成してもよい。
【0070】
また、情報処理システムは、抽出条件要素が示す抽出条件に含まれる一の条件式である原子条件式を組み合わせて、複数の条件式を生成する抽出条件生成部(例えば、パラメータ生成部14)を備えていてもよい。このとき、抽出条件生成部は、指定される最大長が示す数までの原子条件式を組み合わせた複数の条件式を生成し、関数作成部82は、生成された各条件式を抽出条件要素として特徴量生成関数を作成してもよい。
【0071】
そのような構成により、少ない条件式の指定で多数の特徴量生成関数を効率よく生成できる。
【0072】
具体的には、関数作成部82は、抽出条件要素で指定される抽出条件に基づいて1つ以上の行を抽出する処理、対応条件要素が示す対応条件で指定された対応条件を介して第一の表と第二の表とを対応付ける処理、および、集約方法要素で指定された集約方法に基づいて第二の表の行を集約する処理を行う特徴量生成関数を生成する。
【0073】
そして、関数作成部82は、抽出条件要素が示す抽出条件と対応条件要素が示す対応条件と集約方法要素が示す集約方法とをそれぞれ1つずつ選択し、選択した条件式、対応条件および集約方法の組合せを生成することで、複数の特徴量生成関数を作成する。
【0074】
例えば、抽出条件要素は、第二の表の列に対する条件式およびその条件式の最大長で表わされ、対応条件要素は、第一の表の列と第二の表の列を対応付ける列のペアで表され、集約方法要素は、第二の表の列に対して行う集約方法で表される。
【0075】
また、特徴量生成関数は、第一の表および第二の表からデータを抽出するSQL文で定義されてもよい。このとき、関数作成部82は、SQL文を生成するテンプレートに抽出条件、対応条件および集約方法を適用して特徴量生成関数を作成してもよい。
【0076】
図11は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。コンピュータ1000は、CPU1001、主記憶装置1002、補助記憶装置1003、インタフェース1004を備える。
【0077】
上述の情報処理システムは、コンピュータ1000に実装される。そして、上述した各処理部の動作は、プログラム(関数作成プログラム)の形式で補助記憶装置1003に記憶されている。CPU1001は、プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、当該プログラムに従って上記処理を実行する。
【0078】
なお、少なくとも1つの実施形態において、補助記憶装置1003は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000が当該プログラムを主記憶装置1002に展開し、上記処理を実行しても良い。
【0079】
また、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、当該プログラムは、前述した機能を補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0080】
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0081】
この出願は、2015年11月25日に出願された米国仮出願第62/259,896号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【0082】
11 記憶部
12 入力部
13 関数作成部
14 パラメータ生成部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11