(57)【要約】【課題】ラベルの序列関係を踏まえた学習を実行することを課題とする。【解決手段】学習装置は、複数のノードと複数のノードそれぞれに設定される各属性とを含むグラフ構造を有するデータの入力を受け付ける。学習装置は、複数のノードと各属性とのそれぞれに対応した次元を有し、複数のノードと各属性との関係、および、複数のノード間の関係に対応した値を設定したテンソルデータを生成する。その後、学習装置は、各属性をラベルとして各属性間の序列関係を学習する場合に、テンソルデータが有する各属性に対して、序列関係に対応する範囲に値を設定する。【選択図】図１１
2020119101.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
複数のノードと前記複数のノードそれぞれに設定される各属性とを含むグラフ構造を有するデータの入力を受け付け、
前記複数のノードと前記各属性とのそれぞれに対応した次元を有し、前記複数のノードと前記各属性との関係、および、前記複数のノード間の関係に対応した値を設定したテンソルデータを生成し、
前記各属性をラベルとして前記各属性間の序列関係を学習する場合に、前記テンソルデータが有する各属性に対して、前記序列関係に対応する範囲に値を設定する
処理を実行させることを特徴とするテンソル生成プログラム。
【請求項２】
前記設定する処理は、所定値以上の属性値が設定される属性の序列関係を学習する場合、所定の属性間の関係に対応する前記データから生成されたテンソルデータの各要素のうち、前記所定の属性それぞれに設定される属性値以下の属性に対応する要素に値を設定することを特徴とする請求項１に記載のテンソル生成プログラム。
【請求項３】
前記設定する処理は、所定値以下の属性値が設定される属性の序列関係を学習する場合、所定の属性間の関係に対応する前記データから生成されたテンソルデータの各要素のうち、前記所定の属性それぞれに設定される属性値以上の属性に対応する要素に値を設定することを特徴とする請求項１に記載のテンソル生成プログラム。
【請求項４】
前記序列関係に対応する範囲に値が設定された更新後のテンソルデータを用いて、ニューラルネットワークの学習を実行して、学習モデルを生成する処理を前記コンピュータにさらに実行させることを特徴とする請求項１から３のいずれか一つに記載のテンソル生成プログラム。
【請求項５】
前記受け付ける処理は、前記複数のノードとして各人を示す人情報が設定され、前記複数のノードそれぞれには前記各属性として各人の年代が設定されるとともに、関係性がある人情報間が接続された、人と人のつながりを示す前記データの入力を受け付け、
前記生成する処理は、各人情報と各人情報に設定される各年代とを次元とし、前記各人情報に設定される年代、および、前記関係性がある各人情報に設定される年代に対応する各要素に値を設定したテンソルデータを生成し、
前記設定する処理は、前記各年代間の序列関係を学習する場合に、前記テンソルデータにおいて前記序列関係に対応する前記各年代の範囲の各要素に値を設定することを特徴とする請求項１に記載のテンソル生成プログラム。
【請求項６】
コンピュータが、
複数のノードと前記複数のノードそれぞれに設定される各属性とを含むグラフ構造を有するデータの入力を受け付け、
前記複数のノードと前記各属性とのそれぞれに対応した次元を有し、前記複数のノードと前記各属性との関係、および、前記複数のノード間の関係に対応した値を設定したテンソルデータを生成し、
前記各属性をラベルとして前記各属性間の序列関係を学習する場合に、前記テンソルデータが有する各属性に対して、前記序列関係に対応する範囲に値を設定する
処理を実行することを特徴とするテンソル生成方法。
【請求項７】
複数のノードと前記複数のノードそれぞれに設定される各属性とを含むグラフ構造を有するデータの入力を受け付ける受付部と、
前記複数のノードと前記各属性とのそれぞれに対応した次元を有し、前記複数のノードと前記各属性との関係、および、前記複数のノード間の関係に対応した値を設定したテンソルデータを生成する生成部と、
前記各属性をラベルとして前記各属性間の序列関係を学習する場合に、前記テンソルデータが有する各属性に対して、前記序列関係に対応する範囲に値を設定する設定部と
を有することを特徴とするテンソル生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テンソル生成プログラム、テンソル生成方法およびテンソル生成装置に関する。
【背景技術】
【０００２】
人と人の繋がりである組織の健全性や原子と原子の繋がりである化合物の活性などのように、人や物の繋がりに関するデータ（以降では、関係データと表記する場合がある）に対して学習や予測が行われている。このような学習では、関係データをグラフで表現し、グラフを学習可能な技術で学習させる技術が利用されている。関係データをグラフで表現する場合、ノードに付されるラベルについては、ラベルの異同を判別する学習が行われる。例えば、人物Ａのノードにラベル「２０代」が付されていれば正例、付されていなければ負例として学習が実行される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１０／１３４３１９号
【特許文献２】特開２０１８−０５５５８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、関係データをグラフで表現する場合、「３０代以上の人同士に繋がりがあれば正例」などのように、ラベルについて序列関係に基づくルールが存在することがある。しかしながら、上記技術では、ラベルについては異同の判別に留まるので、序列関係に基づくルールを判定した学習を行うことができない。
【０００５】
一つの側面では、ラベルの序列関係を踏まえた学習を実行することができるテンソル生成プログラム、テンソル生成方法およびテンソル生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
第１の案では、テンソル生成プログラムは、コンピュータに、複数のノードと前記複数のノードそれぞれに設定される各属性とを含むグラフ構造を有するデータの入力を受け付ける処理を実行させる。テンソル生成プログラムは、コンピュータに、前記複数のノードと前記各属性とのそれぞれに対応した次元を有し、前記複数のノードと前記各属性との関係、および、前記複数のノード間の関係に対応した値を設定したテンソルデータを生成する処理を実行させる。テンソル生成プログラムは、コンピュータに、前記各属性をラベルとして前記各属性間の序列関係を学習する場合に、前記テンソルデータが有する各属性に対して、前記序列関係に対応する範囲に値を設定する処理を実行させる。
【発明の効果】
【０００７】
一つの側面では、ラベルの序列関係を踏まえた学習を実行することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例１にかかる学習装置を説明する図である。
【図２】図２は、ディープテンソルの学習例を説明する図である。
【図３】図３は、グラフ表現とテンソル表現を説明する図である。
【図４】図４は、ラベルが付与されたグラフ表現とテンソル表現を説明する図である。
【図５】図５は、人と年代に着目した各表現を説明する図である。
【図６】図６は、一般技術の問題点を説明する図である。
【図７】図７は、実施例１にかかる学習装置の機能構成を示す機能ブロック図である。
【図８】図８は、入力データＤＢに記憶される情報の例を示す図である。
【図９】図９は、入力データから学習データへの変換を説明する図である。
【図１０】図１０は、学習データの生成例を説明する図である。
【図１１】図１１は、学習処理および予測処理を説明する図である。
【図１２】図１２は、実施例１にかかる処理の流れを示すフローチャートである。
【図１３】図１３は、実施例２にかかる入力データから学習データへの変換を説明する図である。
【図１４】図１４は、実施例２にかかる学習処理および予測処理を説明する図である。
【図１５】図１５は、実施例３にかかる学習データのテンソル表現を説明する図である。
【図１６】図１６は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【０００９】
以下に、本願の開示するテンソル生成プログラム、テンソル生成方法およびテンソル生成装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１０】
［学習装置の説明］
図１は、実施例１にかかる学習装置１０を説明する図である。図１に示す学習装置１０は、テンソル生成装置の一例であり、学習対象である入力データをグラフで表現してグラフを学習できるディープテンソル（参考：特開２０１８−０５５５８０号公報）などの機械学習技術を用いて、学習モデルを構築する。例えば、学習装置１０は、グラフで表現される入力データをテンソル形式のテンソルデータに変換する。そして、学習装置１０は、ニューラルネットワークを用いたディープテンソルにテンソルデータを入力して、ディープテンソルを用いて学習を実行し、学習モデルを構築する。
【００１１】
ここで、ディープテンソルによる学習を説明する。図２は、ディープテンソルの学習例を説明する図である。図２に示すように、学習装置１０は、ラベルが付与された入力データのグラフ構造をテンソル表現で表したテンソルデータを生成する。そして、学習装置１０は、生成したテンソルデータを入力テンソルとしてテンソル分解を行って、初回にランダムに生成されたターゲットコアテンソルに類似するようにコアテンソルを生成する。そして、学習装置１０は、コアテンソルをニューラルネットワークに入力して分類結果（ラベルＡ：７０％、ラベルＢ：３０％）を得る。その後、学習装置１０は、分類結果（ラベルＡ：７０％、ラベルＢ：３０％）と教師ラベル（ラベルＡ：１００％、ラベルＢ：０％）との分類誤差を算出する。
【００１２】
ここで、学習装置１０は、誤差逆伝搬法を拡張した拡張誤差伝搬法を用いて予測モデルの学習を実行する。すなわち、学習装置１０は、ニューラルネットワークが有する入力層、中間層、出力層に対して、分類誤差を下層に伝搬させる形で、分類誤差を小さくするようにニューラルネットワークの各種パラメータを修正する。さらに、学習装置１０は、分類誤差をターゲットコアテンソルまで伝搬させ、予測に寄与するグラフの部分構造、すなわち各ラベルの特徴を示す特徴パターンに近づくように、ターゲットコアテンソルを修正する。このようにすることで、最適化されたターゲットコアテンソルには予測に寄与する部分パターンが抽出されるようになる。
【００１３】
一般的に、上述したディープテンソルによる学習では、グラフをテンソルで表現し、テンソルデータを学習する。図３は、グラフ表現とテンソル表現を説明する図である。図３に示すように、入力データは、ＡさんやＢさんなどの各人を示す人間情報をノードとし、各人との間とのつながり（関係性）を示すグラフ構造を有する関係データである。この入力データのグラフ表現をテンソル表現で表すと、一例として、人１と人２から構成される隣接行列で表すことができる。
【００１４】
この隣接表現では、つながりがある要素に属性値として１が設定され、つながりがない要素に属性値として０が設定される。例えば、人１（Ａさん）と人２（Ｂさん）にはつながり（関係性）があるので１が設定され、人１（Ａさん）と人２（Ｅさん）にはつながりがないので０が設定される。なお、図３では、０を省略し、本実施例の図面においても、０を省略する。
【００１５】
そして、各人に属性としてラベルを設定した図が図４である。図４は、ラベルが付与されたグラフ表現とテンソル表現を説明する図である。図４に示すように、グラフ表現では、Ａさんなどの各人に、１０代などの年代がラベルとして付与される。この状態をテンソル表現で表すと、各属性を次元として付与することになるので、人１、人１の年代（ラベル）、人２、人２の年代（ラベル）の各軸で表される４次元空間上に１が設定される。
【００１６】
この４次元空間上を簡略化した図が図５である。図５は、人と年代に着目した各表現を説明する図である。図５に示すように、ラベルが付与されたグラフ表現を、人と年代との関係に着目したテンソル表現で表すと、人１と人１に設定される年代（ラベル）とから構成される隣接表現で表すことができる。例えば、Ａさんかつ１０代に該当する要素には１が設定され、Ａさんかつ他の年代に該当する各要素には０が設定される。
【００１７】
このような年代などのラベルが付与されたデータを学習データとして用いる場合、例えば「３０代以上の人同士のつながりがあれば正例」のようなラベルの序列関係に基づくルールを学習することも考えられる。このとき、一般的なディーテンソルなどの機械学習であっても、３０代および５０代の属性（ラベル）についてのデータが十分に存在する場合には、これらの年代についてルールを学習することができる。しかし、４０代のデータが少ない場合、３０代から５０代まで連続してルールが成立するかを学習することができない。
【００１８】
図６は、一般技術の問題点を説明する図である。図６では、テンソル表現として、つながっている人同士の年代だけに着目した表現を用いる。例えば、各年代を縦軸および横軸とする隣接行列において、３０代の人１と５０代の人２とがつながっている関係の場合、縦軸（３０代）かつ横軸（５０代）の要素に１が設定されるとともに、縦軸（５０代）かつ横軸（３０代）の要素に１が設定される。なお、以下では、縦軸および横軸を省略して、単に、３０代かつ５０代の要素などと記載する場合がある。
【００１９】
図６の例では、正例の学習データとして、３０代と３０代とがつながっているデータ、３０代と５０代とがつながっているデータ、５０代と５０代とがつながっているデータを用意する。また、負例の学習データとして、１０代と２０代とがつながっているデータ、２０代と５０代とがつながっているデータ、１０代と３０代とがつながっているデータを用意する。
【００２０】
このような学習データを用いて、「３０代以上の人同士のつながりがあれば正例」のルールを、ディープテンソルにより学習する例を考える。この場合、ディープテンソルは、正例の学習データの特徴をコアテンソルとして抽出して学習するので、（１）３０代かつ３０代、（２）３０代かつ５０代、（３）５０代かつ３０代、（４）５０代かつ５０代のいずれかの要素が１であることを特徴とするコアテンソルを抽出して、学習モデルを学習する。
【００２１】
学習完了後、４０代と５０代とがつながっている予測データを、学習済みの学習モデルに入力して予測する場合を考える。この予測データは、「３０代以上の人同士のつながりがある」に該当するので、正例と予測されるはずであるが、「１」が設定される要素が上記（１）から（４）のいずれにも該当しない。したがって、一般技術では、予測データが学習した特徴に一致しないので、正例と予測できない。このように、一般技術では、ラベルについては異同の判別に留まるので、序列関係に基づくルールを判定した学習を行うことができない。
【００２２】
そこで、実施例１では、グラフとして表現しようとするノードのラベルとしてしては表現できない序列関係に基づくルールについても、テンソル表現に対応付けることで、序列関係を含めた学習を実現する。例えば、実施例１にかかる学習装置１０は、入力データのグラフ構造から、複数のノードと、複数のノードそれぞれに付されたラベルの元となる属性に対応した次元を有するテンソルデータを生成する。このとき、学習装置１０は、複数のノードと複数のノードそれぞれに付されたラベルの元となる属性との関係、および、複数のノード間の関係に対応した値を有するテンソルデータを生成する。さらに、学習装置１０は、複数のノードそれぞれに付されたラベルの元となる属性のうち序列関係を有する属性について、当該属性の値および序列関係に対応した範囲に値を有するテンソルデータを生成する。
【００２３】
このように、学習装置１０は、グラフ構造をそのままテンソル化したテンソルデータに対して、序列関係の範囲に該当する要素に対しても値（例えば１）を設定した新たなテンソルデータを学習データに用いる。この結果、学習装置１０は、例えば序列関係に基づくルールのように、グラフとして表現しようとするとノードのラベルとしては表現できない事項についても、テンソルの表現として対応づけることにより、これらの事項を含めた学習を実行することができる。
【００２４】
［機能構成］
図７は、実施例１にかかる学習装置１０の機能構成を示す機能ブロック図である。図７に示すように、学習装置１０は、通信部１１、記憶部１２、制御部２０を有する。
【００２５】
通信部１１は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部１１は、管理者が使用する管理者端末から学習開始の指示や各種データを受信し、学習結果や予測結果などを管理者端末に送信する。
【００２６】
記憶部１２は、データや制御部２０が実行する各種プログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部１２は、入力データＤＢ１３、学習データＤＢ１４、学習結果ＤＢ１５、予測対象ＤＢ１６を記憶する。
【００２７】
入力データＤＢ１３は、学習データの生成元となる入力データを記憶するデータベースである。具体的には、入力データＤＢ１３は、グラフ構造を有する入力データから生成されたテンソルデータを記憶する。
【００２８】
図８は、入力データＤＢ１３に記憶される情報の例を示す図である。図８に示すように、入力データＤＢ１３は、正例の入力データと負例の入力データとを記憶する。例えば、入力データＤＢ１３は、正例の入力データとして、３０代と３０代とがつながっているデータ、３０代と５０代とがつながっているデータ、５０代と５０代とがつながっているデータを記憶する。また、入力データＤＢ１３は、負例の入力データとして、１０代と２０代とがつながっているデータ、２０代と５０代とがつながっているデータ、１０代と３０代とがつながっているデータを記憶する。
【００２９】
なお、ここでは、テンソルデータの一例である、つながっている人同士の年代だけに着目した隣接行列を記憶する例を説明したが、これに限定されるものではない。例えば、グラフ構造のデータを記憶し、学習装置１０がグラフ構造のデータからテンソルデータを生成することもできる。また、管理者などによって生成されたテンソルデータを記憶することもできる。
【００３０】
学習データＤＢ１４は、ディープテンソルの学習に利用される学習データを記憶するデータベースである。具体的には、学習データＤＢ１４は、後述する制御部２０によって、入力データＤＢ１３に記憶される各入力データから生成された学習データを記憶する。なお、詳細は後述する。
【００３１】
学習結果ＤＢ１５は、学習結果を記憶するデータベースである。例えば、学習結果ＤＢ１５は、制御部２０による学習データの判別結果（分類結果）、ディープテンソルによる学習結果であるニューラルネットワークの各種パラメータや最適化されたターゲットコアテンソルの情報を含む各種パラメータなどを記憶する。
【００３２】
予測対象ＤＢ１６は、学習された学習モデルを用いて予測する対象のデータを記憶するデータベースである。例えば、予測対象ＤＢ１６は、予測対象のグラフ構造のデータなどを記憶する。
【００３３】
制御部２０は、学習装置１０全体の処理を司る処理部であり、例えばプロセッサなどである。この制御部２０は、学習処理部３０と予測処理部４０を有する。なお、学習処理部３０と予測処理部４０は、プロセッサなどが有する電子回路やプロセッサなどが実行するプロセスの一例である。
【００３４】
学習処理部３０は、生成部３１と学習部３２とを有し、ディープテンソルを用いた学習を実行して学習モデルを構築する処理部である。実施例１では、学習処理部３０は、ラベルの序列関係に基づくルールとして、「３０代以上の人同士のつながりがあれば正例」というルールを学習する例で説明する。
【００３５】
生成部３１は、入力データＤＢ１３に記憶される正例と負例の各入力データに対して、ルールに示される序列関係に該当する範囲の属性に値を設定して、学習データを生成し、学習データＤＢ１４に格納する処理部である。
【００３６】
具体的には、生成部３１は、「〜以上」のようなルールを学習したい場合、つまり、ある序列について当てはまるルールが上位の序列にも当てはまることが期待できる場合、該当する年代以下の年代にも「１」を設定した学習データを生成する。図９は、入力データから学習データへの変換を説明する図である。なお、図９は、人と年代の関係だけに着目した簡略化した表現である。図９に示すように、生成部３１は、３０代以上のルールを学習する際には、３０代に該当する人に対して２０代と１０代にも「１」を設定する。
【００３７】
ここで、図８に示す入力データから、「３０代以上の人同士のつながりがあれば正例」というルールを学習するための学習データを生成する例を説明する。図１０は、学習データの生成例を説明する図である。図１０に示すように、生成部３１は、図８に示す３０代と３０代とがつながっている正例のデータに対して、３０代以下の要素にも「１」を設定して、正例の学習データを生成する。つまり、生成部３１は、当該正例のデータに対して、「１」が元々設定されている３０代かつ３０代の要素に加えて、１０代かつ１０代、１０代かつ２０代、１０代かつ３０代、２０代かつ１０代、２０代かつ２０代、２０代かつ３０代、３０代かつ１０代、３０代かつ２０代の各要素にも「１」を設定する。
【００３８】
同様に、生成部３１は、図８に示す３０代と５０代とがつながっている正例のデータに対して、３０代以下かつ５０代以下の各要素、および、５０代以下かつ３０代以下の各要素にも「１」を設定して、正例の学習データを生成する。つまり、生成部３１は、当該正例のデータに対して、４０代かつ４０代、４０代かつ５０代、５０代かつ４０代、５０代かつ５０代の４つの要素以外の各要素に「１」を設定する。
【００３９】
同様に、生成部３１は、図８に示す５０代と５０代とがつながっている正例のデータに対して、「１」が元々設定されている５０代かつ５０代の要素に加えて、５０代以下の各要素にも「１」を設定して、正例の学習データを生成する。つまり、生成部３１は、当該正例のデータの全要素に「１」を設定する。
【００４０】
また、生成部３１は、図８に示す各負例のデータに対しても同様に実行する。例えば、生成部３１は、１０代と２０代とがつながっている負例のデータに対して、１０代以下かつ２０代以下の各要素、および、２０代以下かつ１０代以下の各要素に「１」を設定して負例の学習データを生成する。また、生成部３１は、２０代と５０代とがつながっている負例のデータに対して、２０代以下かつ５０代以下の各要素、および、５０代以下かつ２０代以下の各要素に「１」を設定して負例の学習データを生成する。また、生成部３１は、１０代と３０代とがつながっている負例のデータに対して、１０代以下かつ３０代以下の各要素、および、３０代以下かつ１０代以下の各要素に「１」を設定して負例の学習データを生成する。
【００４１】
学習部３２は、学習データを用いて学習モデルを学習する処理部である。具体的には、学習部３２は、学習データＤＢ１４から正例の学習データまたは負例の学習データを読み出してディープテンソルに入力し、図２の手法を用いて学習を実行する。その後、学習部３２は、学習が完了すると、学習結果を学習結果ＤＢ１５に格納する。
【００４２】
例えば、学習部３２は、図１０の学習データを用いる場合、各正例の学習データの共通点として、３０代かつ３０代、１０代かつ１０代、１０代かつ２０代、１０代かつ３０代、２０代かつ１０代、２０代かつ２０代、２０代かつ３０代、３０代かつ１０代、３０代かつ２０代の各要素に「１」が設定されているデータを、正例の特徴として抽出してディープテンソルの学習を実行する。なお、学習処理を終了するタイミングは、所定数以上の学習データを用いた学習が完了した時点や復元誤差が閾値未満となった時点など、任意に設定することができる。
【００４３】
図７に戻り、予測処理部４０は、生成部４１と予測部４２とを有し、学習済みの学習モデルを用いて、予測を実行する処理部である。
【００４４】
生成部４１は、予測対象ＤＢ１６に記憶される予測対象データに対して、上記学習対象のルールに示される序列関係に該当する範囲の属性に値を設定して、予測可能な入力データを生成する処理部である。なお、生成部４１は、生成部３１と同様の手法により、予測可能な入力データを生成して予測部４２に出力する。
【００４５】
予測部４２は、予測対象ＤＢ１６に記憶される予測対象データに対して、正例または負例の予測を実行する処理部である。例えば、予測部４２は、学習結果ＤＢ１５から各種パラメータを読み出し、各種パラメータを設定したニューラルネットワーク等を含むディープテンソルを構築する。そして、予測部４２は、生成部４１から取得した予測可能な入力データを、構築した学習済みの学習モデルに入力して、出力結果（予測結果）を取得する。
【００４６】
その後、予測部４２は、出力結果に基づき予測を実行する。例えば、予測部４２は、ディープテンソルの出力結果として正例である正例確率と負例である負例確率とを取得し、正例確率の方が高い場合は、予測対象データを正例と判定する。なお、予測部４２は、予測結果を記憶部１２に格納したり、ディスプレイ等の表示部に表示したり、管理者端末に送信したりする。
【００４７】
［処理の説明］
図１１は、学習処理および予測処理を説明する図である。図１１に示すように、学習処理部３０によるディープテンソルを用いた学習時に、３０代かつ３０代、１０代かつ１０代、１０代かつ２０代、１０代かつ３０代、２０代かつ１０代、２０代かつ２０代、２０代かつ３０代、３０代かつ１０代、３０代かつ２０代の各要素が「１」であることを特徴として特定できる（図１１の（ａ）参照）。
【００４８】
したがって、ディープテンソルは、上記各要素が「１」であることを特徴としてコアテンソルを抽出して学習を実行することで、学習モデルを構築できる（図１１の（ｂ）参照）。
【００４９】
その後、予測処理部４０は、図１１の（ｃ）に示す４０代と５０代とがつながっている予測対象データを、学習済みの学習モデルに入力する。ここで、予測対象データは、４０代以下かつ５０代以下の各要素、および、５０代以下かつ４０代以下の各要素に「１」が設定される、予測可能な入力データである。すなわち、５０代かつ５０代の要素のみが「０」である予測可能な入力データである。
【００５０】
したがって、予測対象データは、３０代かつ３０代、１０代かつ１０代、１０代かつ２０代、１０代かつ３０代、２０代かつ１０代、２０代かつ２０代、２０代かつ３０代、３０代かつ１０代、３０代かつ２０代の各要素が「１」である、学習した特徴に一致する。この結果、予測対象データは、正例と判定される。
【００５１】
［処理の流れ］
図１２は、実施例１にかかる処理の流れを示すフローチャートである。図１２に示すように、処理開始が指示されると（Ｓ１０１：Ｙｅｓ）、学習処理部３０は、入力データＤＢ１３から入力データを読み込み（Ｓ１０２）、学習データを生成して学習データＤＢ１４に格納する（Ｓ１０３）。
【００５２】
その後、全入力データに対する学習データの生成が完了するまで（Ｓ１０４：Ｎｏ）、Ｓ１０２以降を繰り返す。一方、学習データの生成が完了すると（Ｓ１０４：Ｙｅｓ）、学習処理部３０は、学習データを用いた学習処理を実行して、学習モデルを構築する（Ｓ１０５）。
【００５３】
その後、予測処理部４０は、予測対象ＤＢ１６から予測対象データを読み込み（Ｓ１０６）、予測可能な入力データを生成して、学習済みの学習モデルに入力する（Ｓ１０７）。そして、予測処理部４０は、学習済みの学習モデルから予測結果を取得する（Ｓ１０８）。
【００５４】
［効果］
上述したように、学習装置１０は、序列関係に対応した範囲にも値を有するテンソル表現とすることにより、属性値間に序列に応じた共通の特徴が生じることを利用する。そして、このようなテンソル表現を入力として、ディープテンソルにより学習を行うと、学習データに含まれる属性値に共通する特徴がコアテンソルに抽出される。一般技術の問題点で述べたような属性値を個別に考慮した特徴よりも、属性値の共通点を考慮した特徴の方がより簡潔となるので、実施例１による手法の方がコアテンソルに抽出されやすい。このとき、抽出した特徴は序列関係を考慮した内容になっており、序列関係に基づいたルールを学習できる。したがって、学習装置１０は、学習データが十分でない（属性値が揃っていない）場合でも、適切な学習や予測を実行することができる。
【実施例２】
【００５５】
ところで、実施例１では、「〜以上」のようなルールを学習する場合を説明したが、これに限定されるものではなく、「〜以下」のようなルールを学習することもできる。そこで、実施例２では、「３０代以下の人同士のつながりがあれば正例」というルールを学習する例を説明する。
【００５６】
「〜以下」のようなルールを学習したい場合、つまり、ある序列について当てはまるルールが下位の序列にも当てはまることが期待できる場合、該当する年代以上の年代にも「１」を設定した学習データを生成する。図１３は、実施例２にかかる入力データから学習データへの変換を説明する図である。なお、図１３は、人と年代の関係だけに着目した簡略化した表現である。図１３に示すように、学習処理部３０は、３０代以下のルールを学習する際には、３０代に該当する人に対して４０代と５０代にも「１」を設定する。
【００５７】
ここで、図１４を用いて、「３０代以下の人同士のつながりがあれば正例」というルールを学習する例を説明する。図１４は、実施例２にかかる学習処理および予測処理を説明する図である。
【００５８】
図１４に示すように、学習処理部３０は、図８に示す３０代と３０代とがつながっている正例のデータに対して、３０代以上の要素にも「１」を設定した正例の学習データを生成する。つまり、学習処理部３０は、当該正例のデータに対して、「１」が元々設定されている３０代かつ３０代の要素に加えて、３０代かつ４０代、３０代かつ５０代、４０代かつ３０代、４０代かつ４０代、４０代かつ５０代、５０代かつ３０代、５０代かつ４０代、５０代かつ５０代の各要素にも「１」を設定する。
【００５９】
同様に、学習処理部３０は、３０代と１０代とがつながっている正例のデータに対して、３０代以上の各年代と１０代以上の各年代の各要素、および、１０代以上の各年代と３０代以上の各年代の各要素に「１」を設定した正例の学習データを生成する。つまり、学習処理部３０は、当該正例のデータに対して、１０代かつ１０代、１０代かつ２０代、２０代かつ１０代、２０代かつ２０代の４つの要素以外の各要素に「１」を設定する。
【００６０】
同様に、学習処理部３０は、１０代と１０代とがつながっている正例のデータに対して、１０代以上の各要素に「１」を設定した正例の学習データを生成する。つまり、学習処理部３０は、当該正例のデータに対して、全ての要素に「１」を設定する。
【００６１】
また、学習処理部３０は、５０代と４０代とがつながっている負例のデータに対して、５０代と４０代以上の各年代の各要素、および、４０代以上の各年代と５０代の各年代の各要素に「１」を設定した負例の学習データを生成する。
【００６２】
同様に、学習処理部３０は、４０代と１０代とがつながっている負例のデータに対して、４０代以上の各年代と１０代以上の各年代の各要素、および、４０代以上の各年代と５０代の各年代の各要素に「１」を設定した負例の学習データを生成する。
【００６３】
同様に、学習処理部３０は、５０代と３０代とがつながっている負例のデータに対して、５０代以上の各年代と３０代以上の各年代の各要素、および、３０代以上の各年代と５０代の各年代の各要素に「１」を設定した負例の学習データを生成する。
【００６４】
そして、学習処理部３０は、これらの学習データをディープテンソルで学習することにより、各正例の学習データの共通点である、３０代以上同士の各要素に「１」が設定されることを、正例の特徴として学習する（図１４の（ａ）参照）。すなわち、ディープテンソルは、３０代以上同士の各要素が「１」であることを特徴としてコアテンソルを抽出して学習を実行して、学習モデルを構築できる（図１４の（ｂ）参照）。
【００６５】
その後、予測処理部４０は、図１４の（ｃ）に示す２０代と１０代とがつながっている予測対象データを、学習済みの学習モデルに入力する。この予測対象データは、２０代以上かつ１０代以上の各要素、および、１０代以上かつ２０代以上の各要素に「１」が設定される、予測可能な入力データである。すなわち、１０代かつ１０代の要素のみが「０」である予測可能な入力データである。
【００６６】
したがって、予測対象データは、３０代以上かつ３０代以上の各要素が「１」である、学習した特徴に一致する。すなわち、予測対象データが学習した特徴を含む結果、予測対象データは、正例と判定される。
【実施例３】
【００６７】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００６８】
［数値等］
また、上記実施例で用いたデータ例、数値、正例／負例の設定内容、テンソルの次元数等は、あくまで一例であり、任意に変更することができる。また、年代や人などを用いた入力データも一例であり、様々な関係データを用いることができる。また、上記実施例で「１」を設定するとは、いわゆるフラグを立てる処理と同様、値を設定することの一例であり、値が設定される要素が処理対象の該当要素であることを示す。
【００６９】
［ルール例］
上記実施例で説明したルール以外にも、例えば「〜以上、〜以下」のようなルールを学習することができる。図１５は、実施例３にかかる学習データのテンソル表現を説明する図である。図１５に示すように、「〜以上、〜以下」のようなルールを学習する場合、学習データのテンソル表現は、各属性を次元として付与することになるので、人１、人１の年代（実施例１）、人１の年代（実施例２）、人２、人２の年代（実施例１）、人２の年代（実施例２）の各軸で表される空間上に１が設定される。つまり、ある２つの序列について当てはまるルールが当該序列の間の序列にも当てはまることが期待できる場合、テンソル表現における年代を、実施例１の方法に基づく年代と実施例２の方法に基づく年代に分けた表現とする。すなわち、「〜以上」の部分は実施例１の年代、「〜以下」の部分は実施例２の年代でそれぞれ学習することで、「〜以上、〜以下」のようなルールを学習することができる。
【００７０】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７１】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、学習処理部３０と予測処理部４０とを別々の装置で実現することもできる。
【００７２】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７３】
［ハードウェア］
図１６は、ハードウェア構成例を説明する図である。図１６に示すように、学習装置１０は、通信装置１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。また、図１６に示した各部は、バス等で相互に接続される。
【００７４】
通信装置１０ａは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。ＨＤＤ１０ｂは、図８に示した機能を動作させるプログラムやＤＢを記憶する。
【００７５】
プロセッサ１０ｄは、図８に示した各処理部と同様の処理を実行するプログラムをＨＤＤ１０ｂ等から読み出してメモリ１０ｃに展開することで、図８等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、学習装置１０が有する各処理部と同様の機能を実行する。具体的には、プロセッサ１０ｄは、学習処理部３０と予測処理部４０等と同様の機能を有するプログラムをＨＤＤ１０ｂ等から読み出す。そして、プロセッサ１０ｄは、学習処理部３０と予測処理部４０等と同様の処理を実行するプロセスを実行する。
【００７６】
このように学習装置１０は、プログラムを読み出して実行することで学習方法を実行する情報処理装置として動作する。また、学習装置１０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、学習装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【００７７】
１０  学習装置
１１  通信部
１２  記憶部
１３  入力データＤＢ
１４  学習データＤＢ
１５  学習結果ＤＢ
１６  予測対象ＤＢ
２０  制御部
３０  学習処理部
３１  生成部
３２  学習部
４０  予測処理部
４１  生成部
４２  予測部
【図１】
2020119101.tif 000003
【図２】
2020119101.tif 000004
【図３】
2020119101.tif 000005
【図４】
2020119101.tif 000006
【図５】
2020119101.tif 000007
【図６】
2020119101.tif 000008
【図７】
2020119101.tif 000009
【図８】
2020119101.tif 000010
【図９】
2020119101.tif 000011
【図１０】
2020119101.tif 000012
【図１１】
2020119101.tif 000013
【図１２】
2020119101.tif 000014
【図１３】
2020119101.tif 000015
【図１４】
2020119101.tif 000016
【図１５】
2020119101.tif 000017
【図１６】
2020119101.tif 000018