(57)【要約】【課題】機械学習の手法を用いてデータの予測を行う際、入力する素性の表現を人が作成する場合と比較して、データの予測精度を向上させることが可能な変換器生成装置及びプログラムを提供する。【解決手段】変換器生成装置１は、素性の種類ごとに素性の値を特徴量に変換する複数の変換器５１を有する変換部５と、変換部５により変換された特徴量を入力値とした場合に、実績データ２０に対応する出力値が得られるように予測モデルを学習するとともに、複数の変換器５１の変換処理を学習する学習部６とを備える。【選択図】図１
2019204166.tif 000002
【特許請求の範囲】
【請求項１】
素性の種類ごとに素性の値を特徴量に変換する複数の変換器を有する変換部と、
前記変換部により変換された前記特徴量を入力値とした場合に、実績データに対応する出力値が得られるように予測モデルを学習するとともに、前記複数の変換器の変換処理を学習する学習部と、
を備えた変換器生成装置。
【請求項２】
前記変換器が変換した前記特徴量に基づいて前記変換器による変換処理を前記素性の種類ごとに解析する解析手段、
をさらに備えた請求項１に記載の変換器生成装置。
【請求項３】
前記解析手段は、前記特徴量に基づいて前記素性の種類ごとに前記素性の値間の類似度を算出する、
請求項２に記載の変換器生成装置。
【請求項４】
前記変換器は、前記特徴量をｎ次元のベクトル値で出力するものであり、
前記解析手段は、各次元の前記出力値への寄与率を出力する、
請求項２又は３に記載の変換器生成装置。
【請求項５】
前記学習部は、前記出力値を前記変換部に出力する出力部、
を備えた請求項１から４のいずれか１項に記載の変換器生成装置。
【請求項６】
前記出力部は、前記出力値を前記複数の変換器に同時に出力する、
請求項５に記載の変換器生成装置。
【請求項７】
前記出力部は、前記出力値を異なるタイミングで前記複数の変換器の全部又は一部に出力する、
請求項５に記載の変換器生成装置。
【請求項８】
前記素性の値を数値化して前記複数の変換器に入力する素性数値化部、
をさらに備えた請求項１から７のいずれか１項に記載の変換器生成装置。
【請求項９】
前記素性数値化部は、前記素性の値をバイナリ列に変換して前記複数の変換器に入力する、
請求項８に記載の変換器生成装置。
【請求項１０】
コンピュータを、
素性の種類ごとに素性の値を特徴量に変換する複数の変換器を有する変換手段と、
前記変換手段により変換された前記特徴量を入力値とした場合に、実績データに対応する出力値が得られるように予測モデルを学習するとともに、前記複数の変換器の変換処理を学習する学習手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変換器生成装置及びプログラムに関する。
【背景技術】
【０００２】
近年、予測対象日の休日性や、所定期間及び季節を考慮することができ、需要予測のさらなる精度向上を図るようにした需要予測装置が提案されている（例えば、特許文献１参照。）。
【０００３】
特許文献１に記載された需要予測装置は、予測対象日の休日性を示す入力変数を休日フラグとして定義して、上記予測対象日の所定の予測対象についての需要予測値を演算する需要予測値演算手段を備えた需要予測装置であって、上記予測対象日に対して、暦上の曜日及び祝日に応じた第１の変数と、予め定められている所定期間に含まれるか否かに応じた第２の変数と、前後の日との関係に応じた第３の変数とのうち、少なくとも１つを割り当てる変数割り当て手段を備える。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４４４８２２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
機械学習の手法を用いてデータの予測を行う際、人が過去のデータの傾向を見ながら予測に用いる素性の表現を作成し入力するのが一般的であるが、この素性をどのような形で表現して入力するかは個人の経験によるものであり、予測に適切な表現が用いられているかが不明である。
【０００６】
本発明の課題は、機械学習の手法を用いてデータの予測を行う際、入力する素性の表現を人が作成する場合と比較して、データの予測精度を向上させることが可能な変換器生成装置及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
［１］素性の種類ごとに素性の値を特徴量に変換する複数の変換器を有する変換部と、
前記変換部により変換された前記特徴量を入力値とした場合に、実績データに対応する出力値が得られるように予測モデルを学習するとともに、前記複数の変換器の変換処理を学習する学習部と、を備えた変換器生成装置。
［２］前記変換器が変換した前記特徴量に基づいて前記変換器による変換処理を前記素性の種類ごとに解析する解析手段、をさらに備えた前記［１］に記載の変換器生成装置。
［３］前記解析手段は、前記特徴量に基づいて前記素性の種類ごとに前記素性の値間の類似度を算出する、前記［２］に記載の変換器生成装置。
［４］前記変換器は、前記特徴量をｎ次元のベクトル値で出力するものであり、
前記解析手段は、各次元の前記出力値への寄与率を出力する、前記［２］又は［３］に記載の変換器生成装置。
［５］前記学習部は、前記出力値を前記変換部に出力する出力部を備えた前記［１］から［４］のいずれか１つに記載の変換器生成装置。
［６］前記出力部は、前記出力値を前記複数の変換器に同時に出力する、前記［５］に記載の変換器生成装置。
［７］前記出力部は、前記出力値を異なるタイミングで前記複数の変換器の全部又は一部に出力する、前記［５］に記載の変換器生成装置。
［８］前記素性の値を数値化して前記複数の変換器に入力する素性数値化部、をさらに備えた前記［１］から［７］のいずれか１つに記載の変換器生成装置。
［９］前記素性数値化部は、前記素性の値をバイナリ列に変換して前記複数の変換器に入力する、前記［８］に記載の変換器生成装置。
［１０］コンピュータを、素性の種類ごとに素性の値を特徴量に変換する複数の変換器を有する変換手段と、
前記変換手段により変換された前記特徴量を入力値とした場合に、実績データに対応する出力値が得られるように予測モデルを学習するとともに、前記複数の変換器の変換処理を学習する学習手段、として機能させるためのプログラム。
【発明の効果】
【０００８】
請求項１、５、８−１０に係る発明によれば、機械学習の手法を用いてデータの予測を行う際、入力する素性の表現を人が作成する場合と比較して、データの予測精度を向上させることが可能になる。
請求項２に係る発明によれば、変換処理の素性の種類ごとの最適化が可能になる。
請求項３に係る発明によれば、素性の値間の類似性を知ることができる。
請求項４に係る発明によれば、素性の種類によっては次元数を減らすことができる。
請求項６に係る発明によれば、各変換器を一括して学習することができる。
請求項７に係る発明によれば、出力値を複数の変換器に同時に出力する場合と比較して各変換器を効率的に学習することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の第１の実施の形態に係る変換器生成装置の概略の構成例を示すブロック図である。
【図２】図２は、第１の記憶部に記憶された過去の実績データの一例を示す図である。
【図３】図３は、素性数値化部が保持するバイナリテーブルの一例を示す図である。
【図４】図４は、曜日に対応する変換器が変換した特徴量の一例を示す図である。
【図５】図５は、素性数値化部による素性の抽出例を示す図である。
【図６】図６は、素性数値化部により数値化されたバイナリ列の一例を示す図である。
【図７】図７は、初期化後に変換器が変換した特徴量の一例を示す図である。
【図８】図８は、学習後の変換器が変換した特徴量の一例を示す図である。
【図９】図９は、変換器生成装置の動作の一例を示すフローチャートである。
【図１０】図１０は、図１に示す変換器生成装置から取り出した変換部を他の予測モデル学習部に適用した場合を説明するための図である。
【図１１】図１１は、変換器生成装置の変形例１を示す図である。
【図１２】図１２は、変換器の変形例２を説明するための図であり、（ａ）は本実施の形態の変換器への入力例を示す図、（ｂ）は変形例２の変換器への入力例を示す図である。
【図１３】図１３は、変換器の変形例３を説明するための図であり、（ａ）は本実施の形態の変換器への入力例を示す図、（ｂ）は変形例３の変換器への入力例を示す図である。
【図１４】図１４は、本発明の第２の実施の形態に係る変換器生成装置の概略の構成例を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について図面を参照して説明する。なお、各図中、実質的に同一の機能を有する構成要素については、同一の符号を付してその重複した説明を省略する。
【００１１】
［実施の形態の要約］
本発明の実施の形態に係る変換器生成装置は、素性の種類ごとに素性の値を特徴量に変換する複数の変換器を有する変換部と、変換部により変換された特徴量を入力値とした場合に、実績データに対応する出力値が得られるように予測モデルを学習するとともに、複数の変換器の変換処理を学習する学習部とを備える。
【００１２】
「素性」とは、予測対象に影響を与え得る要素のことである。例えば、予測対象が売上であって、売上が天気に左右される場合には、素性として天気が含まれる。「素性の種類」とは、素性の内容のことであり、例えば、月、週、曜日、祝日等が該当する。「素性の値」とは、素性の具体的な値のことであり、例えば、素性の種類が曜日の場合は、日、月、火、水、木、金、土が該当する。
【００１３】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係る変換器生成装置の概略の構成例を示すブロック図である。
【００１４】
この変換器生成装置１は、過去の実績データ２０（図２参照）等を記憶する第１の記憶部２と、予測対象に応じた素性情報３０等を記憶する第２の記憶部３と、第２の記憶部３から複数の素性を抽出し、それらをバイナリテーブル４０（図３参照）を参照して数値化する素性数値化部４と、素性数値化部４によって数値化された値を特徴量に変換する変換部５と、変換部５によって変換された特徴量を入力して学習を行う予測モデル学習部６と、第１の記憶部２から実績データ２０を抽出して予測モデル学習部６に入力する実績データ入力部２１とを備える。
【００１５】
この変換器生成装置１は、例えば、コンピュータのＣＰＵ（Central Processing Unit）、インターフェース等から構成された制御部と、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ハードディスク等で構成された記憶部とを用いて実現することができる。変換器生成装置１の各部は、例えば、ＣＰＵが記憶部に記憶されたプログラムに従って動作することで機能する。
【００１６】
第２の記憶部３に記憶される素性情報３０には、予測対象に影響を与え得る各種の要素が含まれる。素性には、例えば、予測対象がある店で販売する商品（例えば、アイスクリーム）の売上だとした場合、売上に影響すると考えられる暦の情報（例えば、月、週、曜日、祝日）、気象情報（例えば、天気）等が含まれる。なお、暦の情報として、祝日の他に、休日、年末年始、ゴールデンウィーク（ＧＷ）、お盆等の素性を含めてもよい。
【００１７】
素性数値化部４は、第２の記憶部３から予測に使用する複数の素性を抽出し、素性の種類ごとに素性の値をバイナリ列４１１、４１２、・・・４１ｎに数値化し、後述する変換器５１に入力する。バイナリ列は、複数のバイナリ値（０又は１）からなる。バイナリ列は、素性の値が数値化された値の一例である。
【００１８】
変換部５は、素性の種類に対応して設けられた変換器１、変換器２、・・・変換器ｎと称する複数の変換器５１１、５１２、・・・５１ｎ（これらを総称するときは「変換器５１」ともいう。）を備えている。変換器５１は、素性数値化部４から出力されたバイナリ列４１を、例えば、ｎ次元のベクトル値で表された特徴量に変換する。特徴量のベクトルの次元数は、素性の種類に応じた次元数にしてもよい。
【００１９】
学習により最適化された変換器５１を有する変換部５を変換器生成装置１から取り出し、変換部５による素性の種類ごとの入力値に対する出力値を用いて、素性の性質等を把握、解析することができる。
【００２０】
予測モデル学習部６は、例えば、入力層、隠れ層及び出力層を備えたニューラルネットワークによって構成することができる。また、予測モデル学習部６は、出力層から出力された出力結果を変換部５に出力する出力部６０を有する。
【００２１】
図２は、第１の記憶部２に記憶された過去の実績データ２０の一例を示す図である。過去の実績データ２０は、日付、売上、月、週、曜日、祝日、天気等の複数の項目を有する。
【００２２】
図３は、素性数値化部４が保持するバイナリテーブル４０の一例を示す図である。同図に示すバイナリテーブル４０は、素性の種類として曜日を例にしたものである。素性数値化部４は、他の素性の種類も曜日と同様にバイナリテーブル４０を保持している。また、バイナリテーブル４０は、曜日の値の日、月、火、水、木、金、土に対して、日月火水木金土の順に並んだバイナリ値からなるバイナリ列を対応させたものである。バイナリ列とは、該当する素性の値（曜日）を肯定的なバイナリ値の「１」、該当しない素性の値（曜日）を否定的なバイナリ値の「０」で表現したものである。素性数値化部４は、例えば、曜日が木の場合は、バイナリテーブル４０を参照して木の曜日をバイナリ列「００００１００」に変換する。
【００２３】
図４は、曜日に対応する変換器５１が学習後に変換した特徴量の一例を示す図である。曜日に対応する変換器５１（例えば５番目の変換器５１５）は、例えば、図３に示すように、曜日の種類に対応するバイナリ列による表現を、図４に示すように、次元１から次元５の５つのベクトル値からなる特徴量による表現に変換する。図４に示すように変換器５１による変換処理が学習によって最適化された場合、次元４、次元５のベクトル値は、曜日に依らず同一の値を示していることから、次元４及び次元５は曜日に影響しないために不要と判断し、次元１、次元２、次元３のみを使用すると決定してもよい。
【００２４】
（実施の形態の動作）
次に、変換器生成装置１の動作の一例を図５〜図９を参照して説明する。図９は、変換器生成装置１の動作の一例を示すフローチャートである。
【００２５】
実績データ入力部２１は、第１の記憶部２から実績データ２０を抽出し、素性数値化部４は、第２の記憶部３から使用する複数の素性を抽出する（Ｓ１）。実績データ入力部２１は、抽出した実績データ２０を教師データとして予測モデル学習部６の出力層に入力する。ここでは、説明を簡単にするため、素性数値化部４は、素性として図５に示すように日付と曜日を抽出したとする。
【００２６】
素性数値化部４は、素性の値をバイナリ列に数値化する（Ｓ２）。素性の種類の一例として曜日について説明すると、素性数値化部４は、図６に示すように、４月１５日（日曜日）はバイナリ列「１００００００」に変換し、４月１６日（月曜日）はバイナリ列「０１０００００」に変換し、４月１７日（火曜日）はバイナリ列「００１００００」に変換する。
【００２７】
変換部５の各変換器５１を素性の種類ごとに初期化する（Ｓ３）。本実施の形態では、月、週、曜日、祝日、天気の５つの素性に対応する変換器５１１〜５１５を初期化したとする。初期化された変換器５１は、曜日については、例えば、図７に示すように、予め定められた次元数（例えば、５次元）のベクトルで表現した特徴量に変換する。各次元のベクトルの値は、例えば、０〜１．０の範囲内に収まるように正規化される。
【００２８】
予測モデル学習部６は、出力層に入力された実績データ２０に基づいて予測モデルを学習するとともに、各変換器５１の変換処理を学習する（Ｓ４）。曜日について説明すると、変換器５１は、図８に示すように、学習後は各次元のベクトルの値が現時点で最適な値に更新される。変換器５１の変換処理の学習では、変換器５１は実績値と、それに対応する予測モデル学習部６の出力値（予測値）の誤差、例えば二乗誤差、を最小化するように学習する。なお、ここでの学習は繰り返し処理である。ニューラルネットワークで予測モデル学習部６を構成している場合、一般的な誤差逆伝播法によって学習する。
【００２９】
変換器生成装置１から変換部５を取り出す（Ｓ５）。
【００３０】
図１０は、変換器生成装置１から取り出した変換部５を、予測対象が同一又は類似する他の予測モデル学習部６ａに適用した場合を説明するための図である。他の予測モデル学習部６ａでは、素性数値化部４により数値化された値（素性１のバイナリ列から素性ｎのバイナリ列）４１１〜４１ｎが対応する変換器（変換器１から変換器ｎ）５１１〜５１ｎに入力され、特徴量（変換後の表現１から変換後の表現ｎ）５２１〜５２ｎに変換されて別の予測モデル学習部６ａに入力される。変換処理が学習された変換器５１を用いているため、変換器５１の初期化及び学習のステップを省略又は抑制することができる。
【００３１】
（変形例１）
図１１は、変換器生成装置１の変形例１を示す図である。この変形例１は、変換部５の出力側に、類似度計算部７と、可視化部８とを設けたものである。類似度計算部７及び可視化部８は、解析手段の一例である。
【００３２】
類似度計算部７は、変換器５１が素性の値ごとに出力する特徴量を用いて各素性の値間の距離（例えばユークリッド距離）を類似度として算出する。
【００３３】
可視化部８は、変換器５１が出力する特徴量に対して主成分分析（ＰＣＡ）を行い可視化する。具体的には、ＰＣＡによって２次元又は３次元に次元を圧縮して表した散布図、及びＰＣＡ適用時の各主成分の寄与率を出力する。素性の値間の距離や可視化により素性の値の類似性を把握することができる。また、次元の寄与率から不要な次元を減らして次元数を最適化することができる。なお、各次元の出力値（予測値）の寄与率を別の手段で出してもよい。例えば、各次元の、特徴量の表現能力への（出力値を考慮しない）寄与率、あるいは出力値への寄与率としてもよい。
【００３４】
（変形例２）
図１２は、変換器５１の変形例２を示す図である。本実施の形態では、図１２（ａ）に示すように、予測の対象日の天気の素性の値として、晴れ、曇り、雨等の天気の種類（又は内容）としたが、図１２（ｂ）に示すように、天候不順の程度を示す天候不順度合として晴れを「０」、曇りを「１」、雨を「２」としてもよい。例えば、４月１７日の雨の日は、素性の値として「２」が入力される。また、天候良好の程度を示す天候良好度合として晴れを「２」、曇りを「１」、雨を「０」としてよい。天候不順度合及び天候良好度合は、評価値の一例である。素性数値化部４は、素性の値をバイナリ列に直接数値化してもよく、素性の値を評価値に一旦変換した後にバイナリ列に数値化してもよい。
【００３５】
（変形例３）
図１３は、変換器５１の変形例３を示す図である。本実施の形態では、素性の種類である天気に対応する変換器５１には、図１３（ａ）に示すように、天気の素性の値のみを入力したが、図１３（ｂ）に示すように、予測対象に最も影響する特定の日に関係して予測対象に他の関係よりも影響する情報、例えば特定の日の周辺日の評価値を入力してもよい。図１３（ｂ）の場合は、特定の日（当日）の予測対象に影響を与える評価値として、４月１５日に「０」、４月１６日に「１」、４月１７日に「２」を与えてもよい。４月１７日を当日とした場合、１日前（４月１６日）に「１」、２日前（４月１５日）に「０」、１日後（４月１８日）に「２」、２日後に「１」を与えてもよい。
【００３６】
「特定の日」とは、他の日よりも予測対象に大きな影響を与える日のことであり、例えば、休日、祝日、年末年始、ゴールデンウィーク（ＧＷ）、お盆が該当する。「特定の日の周辺日」とは、特定の日ではないが、特定の日の近くの日であって、特定の日と同等か他の日よりも予測対象に大きな影響を与える日のことであり、例えば、祝日の１日後、２日後、１日前、２日前のように、特定の日から予め定められた日の前又は後の日までが該当する。
【００３７】
［第２の実施の形態］
図１４は、本発明の第２の実施の形態に係る変換器生成装置の概略の構成例を示す図である。第１の実施の形態の出力部６０は、予測モデル学習部６の学習結果を同時に変換部５の各変換器５１に出力しているが、本実施の形態の出力部６０は、個々の変換器５１に異なるタイミングで学習結果を出力できるようにしたものである。
【００３８】
各変換器５１の更新のタイミングを可変にすることができる。例えば、複数の変換器５１のうち意図的に一部の変換器５１だけを更新してもよい。例えば、図２に示す月、週、曜日、祝日、天気に対応する５つの変換器５１１〜５１５に対応する予測モデルを学習する過程で繰り返し更新する際に、途中まで同時に更新した後、曜日の変換器５１３だけを更新してもよい。
【００３９】
以上、本発明の実施の形態を説明したが、本発明の実施の形態は上記実施の形態に限定されるものではなく、本発明の要旨を変更しない範囲内で種々の変形、実施が可能である。
【００４０】
制御部の各部は、それぞれ一部又は全部を再構成可能回路（ＦＰＧＡ：Field Programmable Gate array）、特定用途向け集積回路（ＡＳＩＣ：Application Specific Integrated Circuit）等のハードウエア回路によって構成してもよい。
【００４１】
また、本発明の要旨を変更しない範囲内で、上記実施の形態の構成要素の一部を省くことや変更することが可能である。また、本発明の要旨を変更しない範囲内で、上記実施の形態のフローにおいて、ステップの追加、削除、変更、入替え等が可能である。また、上記実施の形態で用いたプログラムをＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体に記録して提供することができる。また、上記実施の形態で用いたプログラムをクラウドサーバ等の外部サーバに格納しておき、ネットワークを介して利用することができる。
【符号の説明】
【００４２】
１…変換器生成装置、２…第１の記憶部、３…第２の記憶部、４…素性数値化部、５…変換部、６、６ａ…予測モデル学習部、７…類似度計算部、８…可視化部、２０…実績データ、２１…実績データ入力部、３０…素性情報、４０…バイナリテーブル、４１…バイナリ列、５１…変換器、６０…出力部
【図１】
2019204166.tif 000003
【図２】
2019204166.tif 000004
【図３】
2019204166.tif 000005
【図４】
2019204166.tif 000006
【図５】
2019204166.tif 000007
【図６】
2019204166.tif 000008
【図７】
2019204166.tif 000009
【図８】
2019204166.tif 000010
【図９】
2019204166.tif 000011
【図１０】
2019204166.tif 000012
【図１１】
2019204166.tif 000013
【図１２】
2019204166.tif 000014
【図１３】
2019204166.tif 000015
【図１４】
2019204166.tif 000016