(57)【要約】【課題】巨大な知識ベースの中から問題設定に適切な学習データの範囲を決定することを課題とする。【解決手段】学習装置は、複数のノードが接続される全体グラフから選択された起点ノードに接続される複数のノードまたはエッジそれぞれの属性と設定問題との関連性に基づき、探索対象のノードおよびエッジである探索範囲を設定する。学習装置は、全体グラフから探索範囲で抽出された複数のグラフによる設定問題の学習モデルによる学習結果に基づき、探索範囲に含まれるノードおよびエッジそれぞれの評価値を生成する。学習装置は、探索範囲に含まれるノードおよびエッジそれぞれの評価値、および、探索範囲に含まれるノードおよびエッジそれぞれの属性と設定問題との関連性に基づき、探索対象のノードおよびエッジを更新し探索する。【選択図】図２
2019056960.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
複数のノードが接続される全体グラフから選択された起点ノードに接続される複数のノードまたはエッジそれぞれの属性と設定問題との関連性に基づき、探索対象のノードおよびエッジである探索範囲を設定し、
前記全体グラフから前記探索範囲で抽出された複数のグラフによる前記設定問題の学習モデルによる学習結果に基づき、前記探索範囲に含まれるノードおよびエッジそれぞれの評価値を生成し、
前記探索範囲に含まれるノードおよびエッジそれぞれの前記評価値、および、前記探索範囲に含まれるノードおよびエッジそれぞれの前記属性と前記設定問題との関連性に基づき、探索対象のノードおよびエッジを更新し探索を行う処理を実行する、探索方法。
【請求項２】
前記複数のノードおよびエッジそれぞれの前記評価値として、前記関連性に基づき設定される第１の評価値と、前記学習結果によって更新される第２の評価値とを付与し、
前記起点ノードから所定範囲内にあるエッジのうち、前記第１の評価値が閾値以上のノードおよびエッジを含む探索範囲を設定し、
前記学習結果に基づき、前記探索範囲に含まれるノードおよびエッジそれぞれの前記第２の評価値を生成または更新し、
前記第１の評価値と前記第２の評価値とを用いた前記探索範囲の再設定、および、再設定された前記探索範囲に基づく前記学習モデルの前記学習結果による前記第２の評価値の更新、を所定回数繰り返して、前記全体グラフから学習対象となる前記複数のグラフの範囲を決定して抽出する処理を、前記コンピュータが実行する請求項１に記載の探索方法。
【請求項３】
前記探索範囲内の末端のノードおよび末端のエッジのうち、前記学習結果による前記第２の評価値が閾値未満のノードおよびエッジを除外した探索範囲を再設定する処理を、前記コンピュータが実行する請求項２に記載の探索方法。
【請求項４】
前記探索範囲に含まれないノードおよびエッジのうち、前記探索範囲の末端のノードから所定範囲に位置し、前記第１の評価値が閾値以上であるノードおよびエッジを含めた探索範囲を再設定する処理を、前記コンピュータが実行する請求項２に記載の探索方法。
【請求項５】
前記探索範囲内の末端で除外対象となるノードまたはエッジを除外保留に設定し、前記探索範囲内における前記末端とは異なる方向の末端のノードまたはエッジについて、前記探索範囲の再設定および前記学習モデルによる学習を行って、前記第２の評価値を更新する処理を、前記コンピュータが実行する請求項３に記載の探索方法。
【請求項６】
前記探索範囲内の末端とは異なる末端のノードまたはエッジに関し、前記第１の評価値と前記第２の評価値とに基づく総合評価値を算出し、
前記学習モデルによる学習が行われるたびに、前記総合評価値が所定条件を満たすか否かを判定し、
前記総合評価値が前記所定条件を満たさない場合に、前記異なる末端のノードまたはエッジを前記探索範囲から除外する処理を、前記コンピュータが実行する請求項５に記載の探索方法。
【請求項７】
前記全体グラフから抽出された前記複数のグラフの範囲を用いて学習済みモデルを構築し、
判別対象の全体グラフから前記複数のグラフの範囲に対応した判別対象グラフを抽出して前記学習済みモデルに入力し、判別結果を取得する処理を、前記コンピュータが実行する請求項２に記載の探索方法。
【請求項８】
コンピュータに、
複数のノードが接続される全体グラフから選択された起点ノードに接続される複数のノードまたはエッジそれぞれの属性と設定問題との関連性に基づき、探索対象のノードおよびエッジである探索範囲を設定し、
前記全体グラフから前記探索範囲で抽出された複数のグラフによる前記設定問題の学習モデルによる学習結果に基づき、前記探索範囲に含まれるノードおよびエッジそれぞれの評価値を生成し、
前記探索範囲に含まれるノードおよびエッジそれぞれの前記評価値、および、前記探索範囲に含まれるノードおよびエッジそれぞれの前記属性と前記設定問題との関連性に基づき、探索対象のノードおよびエッジを更新し探索を行う処理を実行させる、探索プログラム。
【請求項９】
複数のノードが接続される全体グラフから選択された起点ノードに接続される複数のノードまたはエッジそれぞれの属性と設定問題との関連性に基づき、探索対象のノードおよびエッジである探索範囲を設定する設定部と、
前記全体グラフから前記探索範囲で抽出された複数のグラフによる前記設定問題の学習モデルによる学習結果に基づき、前記探索範囲に含まれるノードおよびエッジそれぞれの評価値を生成する生成部と、
前記探索範囲に含まれるノードおよびエッジそれぞれの前記評価値、および、前記探索範囲に含まれるノードおよびエッジそれぞれの前記属性と前記設定問題との関連性に基づき、探索対象のノードおよびエッジを更新し探索する探索部と
を有する、探索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、探索方法、探索プログラムおよび探索装置に関する。
【背景技術】
【０００２】
グラフ構造のデータを機械学習する技術が知られている。具体的には、巨大な知識ベースの中で与えられた設定問題に適したグラフを切り出して、ニューラルネットワークに入力して学習モデルの学習を行わせることが知られている。ここで、設定問題とは、設定した集合に対して設定した分類を判別することであり、例えば「企業が優良かどうか。」という問題である。
【０００３】
図２２は、グラフ構造の学習を説明する図である。図２２に示すように、一般的には、複数のグラフ構造の学習データを学習し、学習データのうちどの部分が設定問題と関連が強かった、すなわち判別の推定に有用だったかを判別する。図２２の例は、企業の格付けがＡＡであることが、優良かどうかの判別に関連が強いことがわかった例を示している。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“人やモノのつながりを表すグラフ構造のデータから新たな知見を導く新技術「Deep  Tensor」を開発”、［online］、２０１６年１０月２０日、富士通、［２０１７年９月１日検索］、インターネット（URL：http://pr.fujitsu.com/jp/news/2016/10/20.html）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記技術では、複数のノードおよび複数のエッジを有する巨大な知識ベースの中から設定問題に適切な学習データの範囲を決定することが難しい。例えば、学習のためのメモリやプロセッサなどのリソースには限りがあるので、全てのノードやエッジを学習対象とすることは難しいが、設定問題に影響を与えるノードを人為的に決定することは現実的ではない。
【０００６】
また、設定問題の起点からのホップ数で区切ることも考えられるが、ホップ数が少ないノード等の設定問題に与える影響度が大きいとは限らず、ホップ数が多いノード等の設定問題に与える影響度が小さいとは限らない。このため、起点から遠い位置にある有用なノード等を切り出すことができない場合があり、結果として学習精度が劣化する。
【０００７】
一つの側面では、巨大な知識ベースの中から問題設定に適切な学習データの範囲を決定することができる探索方法、探索プログラムおよび探索装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の案では、探索方法は、コンピュータが、複数のノードが接続される全体グラフから選択された起点ノードに接続される複数のノードまたはエッジそれぞれの属性と設定問題との関連性に基づき、探索対象のノードおよびエッジである探索範囲を設定する。探索方法は、コンピュータが、前記全体グラフから前記探索範囲で抽出された複数のグラフによる前記設定問題の学習モデルによる学習結果に基づき、前記探索範囲に含まれるノードおよびエッジそれぞれの評価値を生成する。探索方法は、コンピュータが、前記探索範囲に含まれるノードおよびエッジそれぞれの前記評価値、および、前記探索範囲に含まれるノードおよびエッジそれぞれの前記属性と前記設定問題との関連性に基づき、探索対象のノードおよびエッジを更新し探索を行う。
【発明の効果】
【０００９】
一実施形態によれば、巨大な知識ベースの中から問題設定に適切な学習データの範囲を決定することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１にかかる学習の全体構成例を説明する図である。
【図２】図２は、実施例１にかかる学習装置の機能構成を示す機能ブロック図である。
【図３】図３は、知識ベースＤＢに記憶される情報の例を示す図である。
【図４】図４は、属性情報ＤＢに記憶される情報の例を示す図である。
【図５】図５は、学習データＤＢに記憶される情報の例を示す図である。
【図６】図６は、切出し処理を説明する図である。
【図７】図７は、拡大縮小処理を説明する図である。
【図８】図８は、優先末端の設定処理を説明する図である。
【図９】図９は、削除遅延処理を説明する図である。
【図１０Ａ】図１０Ａは、学習データの生成処理の流れを示すフローチャートである。
【図１０Ｂ】図１０Ｂは、学習データの生成処理の流れを示すフローチャートである。
【図１１】図１１は、探索開始時のメモリの初期化状況を説明する図である。
【図１２】図１２は、起点と空パスの対をリーフ集合に追加した状態を説明する図である。
【図１３Ａ】図１３Ａは、探索開始時を説明する図である。
【図１３Ｂ】図１３Ｂは、探索開始時のメモリ格納状況を説明する図である。
【図１４Ａ】図１４Ａは、探索開始後の状態１を説明する図である。
【図１４Ｂ】図１４Ｂは、状態１のメモリ格納状況を説明する図である。
【図１４Ｃ】図１４Ｃは、状態１での切出し範囲の追加を説明する図である。
【図１４Ｄ】図１４Ｄは、状態１での学習結果を示す図である。
【図１５Ａ】図１５Ａは、状態２のメモリ格納状況を説明する図である。
【図１５Ｂ】図１５Ｂは、状態２での学習結果を示す図である。
【図１６Ａ】図１６Ａは、状態３のメモリ格納状態を説明する図である。
【図１６Ｂ】図１６Ｂは、状態３での切出し範囲の追加を説明する図である。
【図１７Ａ】図１７Ａは、切出し範囲の縮小を説明する図である。
【図１７Ｂ】図１７Ｂは、切出し範囲の更なる縮小を説明する図である。
【図１８】図１８は、パス長制約の変更例を示す図である。
【図１９】図１９は、切出し範囲の縮小を説明する図である。
【図２０】図２０は、学習結果を示す図である。
【図２１】図２１は、ハードウェア構成例を示す図である。
【図２２】図２２は、グラフ構造の学習を説明する図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する探索方法、探索プログラムおよび探索装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１２】
［全体構成例］
図１は、実施例１にかかる学習の全体構成例を説明する図である。図１に示すように、実施例１にかかる学習装置１０は、探索装置の一例である。学習装置１０は、知識ベースから学習データとなるグラフを抽出して学習することで、学習モデルを生成する。そして、学習装置１０は、生成された学習モデルに、判別したいデータを入力して判別結果を出力する。
【００１３】
ここで、知識ベースとは、企業内のデータ、Ｗｅｂデータ、ＳＮＳ（Social  Networking  Service）などから取得した情報を解析して、データ間の関係をグラフで表現したものである。なお、本実施例では、一例として、ＳＮＳに投稿されたメッセージを収集して解析することで得られた知識ベースを用いる。
【００１４】
そして、本実施例では、図１に示す知識ベースにおいてＡ社やＢ社が「優良」企業であるという問題を設定し、この設定問題に対して関連性が強い部分を抽出して学習することで、学習モデルを生成する。
【００１５】
具体的には、学習装置１０は、知識ベースから、Ａ社が「優良」企業であることと関連性が強い部分のグラフを学習データ（Ａ社）として抽出するとともに、Ｂ社が「優良」企業であることと関連性が強い部分のグラフを学習データ（Ｂ社）として抽出する。
【００１６】
ここで、学習装置１０の限られたリソースの中で、どの範囲のグラフを学習データとして抽出するかが重要である。つまり、設定問題の起点からどの範囲までを学習データとするかが重要であり、ホップ数が少ない場合は起点から遠くになる重要なデータの取りこぼしが発生し、ホップ数が多い場合は不要なデータが多数含まれてしまうことやリソースの枯渇などが発生する。
【００１７】
そこで、学習装置１０は、知識ベースを利用して、与えられた設定問題に対応して適切な学習データの抽出を行うために、設定問題に対応したグラフの切り出しの起点の設定、リソース制約の範囲内で起点からの最適な切出し範囲（抽出範囲）の探索、探索した切出し範囲の学習データを用いて学習された学習モデルによる判別を実行する。
【００１８】
例えば、学習装置１０は、複数のノードが接続される全体グラフから選択された起点ノードに接続される複数のノードまたはエッジそれぞれの属性と設定問題との関連性に基づき、探索対象のノードおよびエッジである探索範囲を設定する。続いて、学習装置１０は、全体グラフから探索範囲で抽出された複数のグラフによる設定問題の学習モデルによる学習結果に基づき、探索範囲に含まれるノードおよびエッジそれぞれの評価値を生成する。その後、学習装置１０は、探索範囲に含まれるノードおよびエッジそれぞれの評価値、および、探索範囲に含まれるノードおよびエッジそれぞれの属性と設定問題との関連性に基づき、探索対象のノードおよびエッジを更新し探索を行う。この結果、学習装置１０は、巨大な知識ベースの中から問題設定に適切な学習データの範囲を決定することができる。
【００１９】
そして、学習装置１０は、このような探索によって得られた学習データを教師データとしてニューラルネットワークに入力して学習することで、学習モデルを生成する。その後、学習装置１０は、判別したＣ社のデータを学習モデルに入力し、Ｃ社が「優良」企業であるなどの判別結果を出力する。なお、学習データの数、判別結果、設定問題、知識ベースなどはあくまで一例であり、これに限定されるものではない。また、ここでは、学習装置１０が学習と判別とを実行する例を説明するが、学習装置と判別装置とは別々の筐体で実現することもできる。
【００２０】
［機能構成］
図２は、実施例１にかかる学習装置１０の機能構成を示す機能ブロック図である。図２に示すように、学習装置１０は、通信部１１、記憶部１２、制御部２０を有する。
【００２１】
通信部１１は、他の装置の間の通信を制御する処理部であり、例えば通信インタフェースカードなどである。例えば、通信部１１は、管理者などの端末から学習指示や判別対象データを受信し、管理者などの端末やディスプレイなどの表示部に、学習結果や判別結果を出力する。
【００２２】
記憶部１２は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部１２は、知識ベースＤＢ１３、属性情報ＤＢ１４、学習データＤＢ１５、学習済みモデルＤＢ１６を記憶する。
【００２３】
知識ベースＤＢ１３は、学習データの抽出元である知識ベースを記憶するデータベースである。図３は、知識ベースＤＢ１３に記憶される情報の例を示す図である。図３に示す知識ベースは、ＳＮＳに投稿されたメッセージを解析して得られたデータ間の関係性を示すグラフ構造のデータである。
【００２４】
図３の丸内の文字列は、ＵＲＩ（Uniform  Resource  Identifier）などを特定するノードであり、四角内の文字列は、数値や文字列を直接に記述したノードであり、いわゆるリテラルなどと呼ばれる。また、図３内の矢印は、ノード間の関係性を示すエッジである。また、図３内の太線の矢印は、後述する静的評価値が高いエッジを示す。
【００２５】
例えば、図３の例では、ノード「Ａ、Ｂ」とノード「ＳＮＳ  Ｔ」とがエッジ「発言者」で接続されるとともに、ノード「ＳＮＳ  Ｔ」とノード「Ａ社」とがエッジ「企業」で接続される。この関係性は、「Ａ」と「Ｂ」が企業である「Ａ社」に対する発言をＳＮＳに投稿したことを示す。
【００２６】
また、ノード「Ｅ、Ｆ」とノード「ＳＮＳ  Ｔ」とがエッジ「発言者」で接続され、ノード「ＳＮＳ  Ｔ」とノード「Ｂ社」とがエッジ「企業」で接続され、ノード「Ｂ社」とノード「優良」とがエッジ「優良」で接続され、ノード「Ｂ社」とノード「大工工事業」とがエッジ「業種」で接続され、ノード「Ｂ社」とノード「Ａ」とがエッジ「格付」で接続される。この関係性は、「Ｅ」と「Ｆ」が企業である「Ｂ社」に対する発言をＳＮＳに投稿したことを示し、「Ｂ社」は、「優良」企業であり、「大工工事業」を行う業種であり、格付が「Ａ」であることを示す。
【００２７】
図２に戻り、属性情報ＤＢ１４は、知識ベースを構成する各ノードおよび各エッジに関する情報を記憶するデータベースである。具体的には、属性情報ＤＢ１４は、ノードやエッジに付加される付加情報を記憶する。図４は、属性情報ＤＢ１４に記憶される情報の例を示す図である。図４に示すように、属性情報ＤＢ１４は、「Ｎｏ、種別、属性、関連性、静的評価値、動的評価値」を対応付けて記憶する。
【００２８】
ここで記憶される「Ｎｏ」は、属性情報ＤＢ１４のレコードを識別する情報である。「種別」は、ノードかエッジかを示す情報である。「属性」は、ノードやエッジに付されているラベルである。「関連性」は、該属性と他の属性との関連性を特定する情報であり、該属性と接続される各ノード、該属性と他の属性とを接続するエッジ、接続関係などを示し、例えば「ノード（エッジ）」などで示される。「静的評価値」は、予め定められた評価値であり、例えば語彙のオントロジー上での近さなどを用いた指標である。「動的評価値」は、学習グラフの探索過程で実行される機械学習時によって算出される評価値であり、機械学習のたびに更新される。例えば、「動的評価値」は、対象のグラフの分類を判別するために、そのノードおよびエッジがどれだけ関与したかを表すものであり、通常の機械学習においては、特徴量の特徴ランキングによって特徴選択が行われ、特徴ランキングに使う指標を採用することができる。
【００２９】
図４の例では、ノードである「Ａ社」は、ノード「優良」とエッジ「優良」で接続されるとともに、ノード「ＡＡ」とエッジ「格付」で接続され、静的評価値として「１」が設定されており、動的評価値が未設定であることを示す。なお、接続関係は、エッジの向きなどを対応付けることもできる。また、静的評価値や動的評価値は、算出または設定される値そのものを設定することもできるが、ここでは、説明を簡略化するために、一例として、閾値以上の値を有する場合に「１」、閾値未満の値を有する場合に「０」を設定した例で説明する。
【００３０】
学習データＤＢ１５は、後述する制御部２０によって生成された学習データであり、設定問題に対して適切なノードおよびエッジが抽出された学習データを記憶するデータベースである。図５は、学習データＤＢ１５に記憶される情報の例を示す図である。図５に示すように、学習データＤＢ１５は、学習データ（Ａ社）と学習データ（Ｂ社）を記憶する。なお、学習データ（Ａ社）は、ノード「Ａ社、ＳＮＳ  Ｔ、ＳＮＳ  Ｔ、がたいがいい、色黒、ＡＡ、優良」から構成されるグラフ構造のデータである。また、学習データ（Ｂ社）は、ノード「Ｂ社、ＳＮＳ  Ｔ、がたいがいい、Ａ、優良」から構成されるグラフ構造のデータである。
【００３１】
学習済みモデルＤＢ１６は、学習データＤＢ１５に記憶される学習データを用いて学習された結果である学習モデルを記憶するデータベースである。例えば、学習済みモデルＤＢ１６は、ニューラルネットワークの各種重み係数などを記憶する。
【００３２】
制御部２０は、学習装置１０全体を司る処理部であり、例えばプロセッサなどである。この制御部２０は、学習データ生成部２１、学習部２２、判別部２３を有する。なお、学習データ生成部２１、学習部２２、判別部２３は、プロセッサなどの電子回路の一例やプロセッサが実行するプロセスの一例である。
【００３３】
学習データ生成部２１は、設定部２１ａと探索部２１ｂを有し、知識データから学習に最適な学習データの探索を実行し、学習データの生成を実行する処理部である。また、学習データ生成部２１は、メモリなどのリソースの制約を考慮して、動的評価数の高いノードが所定数以上含まれるように、定められたリソースの範囲内で切出し範囲の探索を実行する。
【００３４】
設定部２１ａは、問題設定に対応したグラフの切り出しの起点と解へのパスの設定を実行する処理部である。具体的には、設定部２１ａは、管理者等による指示にしたがって、問題、起点、解、解へのパスなどを設定する。すなわち、設定部２１ａは、設定問題をグラフ問題へ変換する。具体的には、入力となるグラフの起点の集合とその解へのパスを設定する。起点からパスをたどった先に値がない部分の値を推定し、パスをたどった先に値がある場合は学習データのサンプルの一つとして利用する。
【００３５】
例えば、設定部２１ａは、図３に示す知識ベースに対して、「起点、解」として「Ａ社、優良」と「Ｂ社、優良」を設定する。さらに、設定部２１ａは、起点であるノード「Ａ社」から解であるノード「優良」へのパスを設定することで、「Ａ社→優良」の問題を設定する。同様に、設定部２１ａは、起点であるノード「Ｂ社」から解であるノード「優良」へのパスを設定することで、「Ｂ社→優良」の問題を設定する。
【００３６】
探索部２１ｂは、設定部２１ａによって設定された設定問題に対して、関係性の学習に適したグラフの切り出し範囲を探索する処理部である。具体的には、探索部２１ｂは、学習に入力するための学習データの最適な範囲を探索する。グラフの範囲が小さいと解を判別するための情報が少ないために、判別精度が落ちてしまう。精度を向上させるために、グラフの範囲は大きくしたいが、リソースの制約があるために、それほど大きくすることはできない。すなわち、探索部２１ｂは、グラフサイズを抑えつつ、判別精度があがるような情報が学習データの切り出し範囲に入るように、最適なグラフ範囲を探索する。
【００３７】
例えば、探索部２１ｂは、（１）優先切出し処理、（２）拡大縮小処理、（３）優先末端の設定処理、（４）削除遅延処理を任意に組み合わせて、グラフの切り出し範囲を探索する。ここでは、各処理について具体的に説明する。
【００３８】
（１）優先切出し処理
優先切出し処理は、静的評価値の高い属性を探索した場合に、そのノードかエッジを優先的に切出し範囲に入れる処理である。図６は、切出し処理を説明する図である。図６では、Ａ社の学習データの探索を例にして説明するが、Ｂ社についても同様に処理することができる。
【００３９】
図６に示すように、探索部２１ｂは、起点から数ホップ以内にあるノードおよびエッジの中から静的評価値が高いノードまたはエッジを切出し範囲に含める。例えば、探索部２１ｂは、起点から１ホップに位置するノードおよびエッジについては、すべて切出し範囲に含め、起点から２ホップに位置するノードおよびエッジについては、静的評価値の高いエッジおよびそのエッジに接続されるノードのみを切出し範囲に含める。
【００４０】
図６の例では、探索部２１ｂは、起点「Ａ社」から１ホップに位置するエッジ「業種、格付、事業部、＾企業」を切出し範囲に入れるとともに、起点「Ａ社」から１ホップに位置するノード「ＳＮＳ  Ｔ」、「土木工事業」、「ＡＡ」、「ＡＸ事業部」を切出し範囲に入れる。ここで、ノード「優良」は、解であることから切出し範囲には入れず、エッジ「優良」も解へのパスであることから切出し範囲には入れない。なお、本実施例では、矢印の向きを遡る逆パスについては「＾」で記述することとする。例えば、「＾企業」は、エッジ「企業」の逆パスを示す。
【００４１】
続いて、探索部２１ｂは、起点「Ａ社」から２ホップに位置するエッジのうち、静的評価値が高い「評判」を切出し範囲に含めるとともに、エッジ「評判」の葉であるノード「がたいがいい」と「色黒」を切出し範囲に含める。この結果、探索部２１ｂは、図６の点線の範囲を切出し範囲に含めることができる。
【００４２】
（２）拡大縮小処理
拡大縮小処理は、静的評価値または動的評価値の高い属性を切出し範囲に含めるように、切出し範囲の末端に対して、周辺のノードとエッジの各評価値を用いて、切出し範囲のどこを拡大し、どこを縮小するかを決定する処理である。図７は、拡大縮小処理を説明する図である。図７では、Ａ社の学習データの探索を例にして説明するが、Ｂ社についても同様に処理することができる。
【００４３】
図７の（ａ）は、上記（１）から（４）の処理や探索時の学習処理によって探索された切出し範囲を示す図である。この状態で、探索部２１ｂは、ノード「がたいがいい」とノード「ＳＮＳ  Ｔ」とを接続するエッジ「評判」の静的評価値が高いことから、エッジ「評判」の葉である各ノード「ＳＮＳ  Ｔ」を切出し範囲に含める。また、探索部２１ｂは、切出し範囲にあるノード「ＡＸ事業部」の静的評価値と動的評価値がともに低いことから、ノード「ＡＸ事業部」以降のノードおよびエッジを切出し範囲から除外する。
【００４４】
したがって、探索部２１ｂは、図７の（ｂ）に示すように、図７の（ａ）の状態から領域Ａの部分を新たに追加し、領域Ｂの部分を削除した切出し範囲に変更する。この結果、探索部２１ｂは、多少距離が遠いエッジでも静的評価値が高ければ、優先的に切り出し範囲に含めることができる。また、探索部２１ｂは、静的評価値や動的評価値が高いノードやエッジについては、切り出し範囲を縮めるときに、優先的に切り出し範囲に残すことができる。
【００４５】
（３）優先末端の設定処理
優先末端の設定処理は、静的評価値や動的評価値により単純に削除対象と決定されるノードであっても、複合的に設定問題と関連する組を見つけるために、片側にあたるものについては一定の範囲で削除せずに残しておけるように、削除の対象とならない切り出し範囲内の末端を決める処理である。すなわち、優先末端の設定処理は、通常であれば、上記（１）や（２）などの処理によって削除されるノードについて、他のノードやエッジとの関係性を判断するまで、一時的に削除対象から除外する。なお、本実施例では、削除の対象とならない切り出し範囲内の末端を「優先末端」と記載する場合がある。
【００４６】
図８は、優先末端の設定処理を説明する図である。図８の（ａ）の状態では、探索部２１ｂは、ノード「Ａ社」から繋がる２つのノードのうち、エッジ「業種」に関連するノード「土木工事業」とノード「建設業」とを含む領域Ｃを「優先末端」に設定して削除対象から除外した上で、図８の（ｂ）に示すように、ノード「ＳＮＳ  Ｔ」側の探索を行う。
【００４７】
このようにすることで、ノード「ＳＮＳ  Ｔ」側の探索時に、各評価値が低いことから削除される対象ノードであっても、領域Ｃと関係性が強く、学習によって動的評価値が高くなるノードを探索することができる。
【００４８】
したがって、一定の範囲は入れ替わらずに残るので、その範囲と、次々と入れ替わる他の範囲との組み合わせが設定問題と関連するかを調べることができる。また、削除しない末端を変更するタイミングを調整することで、網羅的に隅々探索するか、全体的にざっくり探索するかを調整できる。
【００４９】
また、削除しない末端が少ないと、他を削除しないパターンが増えるが、他の範囲を深くすることができ、削除しない末端が多ければ、他のパターンが減るが、リソース制限により他の範囲を深くすることができない。したがって、削除しない末端の数を調整することで、他の範囲を深く探索するようにするのか、試行回数を減らすのかを調整できる。
【００５０】
（４）削除遅延処理
削除遅延処理は、各評価値により単純に一斉に削除されると決まってしまうノードであっても、複合的に設定問題と関連する組を見つけるために、各評価値の高さに応じてノードの削除を遅延させて、多くの組み合わせを試せるように、ノードの総合評価値に応じた遅延条件を設定する処理である。
【００５１】
具体的には、探索部２１ｂは、評価値が高いか低いかによって決定される総合評価値が予め設定した遅延条件を満たすか否かを判定して、該当ノードの削除を遅延させるか否かを判定する。例えば、探索部２１ｂは、総合評価値として、動的評価値が高いときは「ホップ数−２」を算出し、静的評価値が高いときは「ホップ数−８」を算出し、各評価値がともに高いときは「ホップ数−１０」を算出し、各評価値がともに低いときは「ホップ数−０」を算出する。そして、探索部２１ｂは、遅延条件「総合評価値≦判定値（４−伸ばしたホップ数）」を満たす場合は、該当ノードの削除を遅延させ、遅延条件を満たさない場合は該当ノードを削除する。なお、伸ばしたホップ数とは、直前に切り出し範囲に含まれるようになったノードの起点からのパスのホップ数を示す。
【００５２】
図９は、削除遅延処理を説明する図である。図９に示すように、探索部２１ｂは、起点「Ａ社」から２ホップ目のノード「ＡＸＸ部」を削除するときに、このノード「ＡＸＸ部」の削除を遅延させるか否かを判定する。つまり、探索部２１ｂは、３ホップ目に位置するノード「Ｘ  Ｐｒｏ．」を探索範囲に入れるかどうかを判定する。
【００５３】
例えば、探索部２１ｂは、各評価値がともに低いときは、総合評価値「２ホップ数−０＝２」が判定値「４−３ホップ＝１」よりも大きくなり、遅延条件を満たさないので、３ホップ目に位置するノード「Ｘ  Ｐｒｏ．」を探索範囲に入れずに、他の探索を実行する。一方、探索部２１ｂは、各評価値がともに高いときは、総合評価値「２ホップ数−２＝０」が判定値「４−３ホップ＝１」よりも小さくなり、遅延条件を満たすので、３ホップ目に位置するノード「Ｘ  Ｐｒｏ．」を探索範囲に入れて、次の探索を実行する。このようにすることで、一部のノードは削除が遅延されるので、複合条件を見つけられる可能性を高めることができる。
【００５４】
図２に戻り、学習部２２は、学習データＤＢ１５に記憶される学習データをニューラルネットワークに入力して学習する処理部である。具体的には、学習部２２は、学習データ生成部２１で探索して切り出された範囲に対応するグラフを構築し、グラフの分類が学習できる学習技術を用いて学習する。例えば、学習部２２は、学習データＤＢ１５から学習データＡを読み出してニューラルネットワークに入力して出力を得る。そして、学習部２２は、出力値とラベル「優良」との誤差が小さくなるように学習する。
【００５５】
その後、学習部２２は、所定回数の学習が実行された場合誤差が所定値より小さくなった場合に学習を終了し、各種パラメータを学習済みモデルＤＢ１６に格納する。なお、ニューラルネットワークは、ＲＮＮ（再帰型ニューラルネットワーク：Recurrent  Neural  Network）など様々なニューラルネットワークを用いることができる。また、学習方法は、誤差逆伝播法など様々な手法を採用することができる。
【００５６】
判別部２３は、学習結果を用いて、判別対象のデータを判別する処理部である。具体的には、判別部２３は、学習部２２で学習した結果の学習モデルをつかって、解が未知のものを推定する。すなわち、判別部２３は、入力に対して起点を検索し、その起点から、学習データ生成部２１で設定した切り出し範囲のグラフを構築し、そのグラフを学習モデルで判別し、推定値を得る。
【００５７】
例えば、判別部２３は、学習済みモデルＤＢ１６から各種パラメータを読み出し、各種パラメータを設定したニューラルネットワークを構築する。そして、判別部２３は、判別対象のデータから、学習データ生成部２１で設定した範囲のグラフを切出して、ニューラルネットワークに入力して、判別結果を取得する。その後、判別部２３は、判別結果をディスプレイに出力したり、管理端末に送信したり、記憶部１２に格納したりする。
【００５８】
［処理の流れ］
図１０Ａと図１０Ｂは、学習データの生成処理の流れを示すフローチャートである。図１０Ａに示すように、学習データ生成部２１は、優先末端数とパス長制約を設定し（Ｓ１０１）、知識ベースの各属性が問題設定と関連するか評価し、静的評価値として属性情報ＤＢ１４に登録する（Ｓ１０２）。なお、静的評価値は、管理者によって設定することもできる。
【００５９】
続いて、学習データ生成部２１は、起点ごとの探索済み集合を空に設定し（Ｓ１０３）、起点と空パスの対を各リーフ集合に追加する（Ｓ１０４）。ここで、リーフ集合とは、知識ノードの各ノードおよび各エッジのうち、切り出し範囲に含まれるノードの集合である。また、探索済み集合とは、知識ノードの各ノードおよび各エッジのうち、接続しているエッジがすべて切り出し範囲に含まれているノードの集合である。
【００６０】
その後、学習データ生成部２１は、各リーフ集合内のノードから数ホップを探索し（Ｓ１０５）、探索結果中に静的評価値が高いノードまたはエッジが存在するか否かを判定する（Ｓ１０６）。
【００６１】
そして、学習データ生成部２１は、静的評価値が高いノードまたはエッジが存在する場合（Ｓ１０６：Ｙｅｓ）、探索開始ノードから見つけたエッジまでのエッジを切出し範囲に追加する（Ｓ１０７）。また、学習データ生成部２１は、探索開始ノードから見つけたエッジまでのパスにあるノードすべてに対して、そのノードとそのノードの起点からのパスの対をリーフ集合に追加する（Ｓ１０８）。
【００６２】
続いて、学習データ生成部２１は、エッジの外側ノードと起点から見つけたエッジまでのパスの対をリーフ集合に追加する（Ｓ１０９）。そして、学習データ生成部２１は、リーフ集合からランダムに探索済みでないパスをいくつか選択し（Ｓ１１０）、選択したパスと対になっているノードに接続しているエッジを検索する（Ｓ１１１）。
【００６３】
その後、学習データ生成部２１は、未処理のエッジがある場合（Ｓ１１２：Ｙｅｓ）、エッジの外側ノードが探索済み集合に入っているか否かを判定する（Ｓ１１３）。ここで、学習データ生成部２１は、エッジの外側ノードが探索済み集合に入っていない場合（Ｓ１１３：Ｎｏ）、エッジを切出し範囲に追加し（Ｓ１１４）、外側ノードをリーフ集合に追加して（Ｓ１１５）、Ｓ１１２以降の処理を繰り返す。
【００６４】
一方、学習データ生成部２１は、エッジの外側ノードが探索済み集合に入っている場合（Ｓ１１３：Ｙｅｓ）、ノードのパスが優先末端である、あるいは、優先末端が規定数存在しないか否かを判定する（Ｓ１１６）。
【００６５】
ここで、学習データ生成部２１は、ノードのパスが優先末端である、あるいは、優先末端が規定数存在しない場合（Ｓ１１６：Ｙｅｓ）、元の選んだパスを優先末端に変更（新規の時は追加）して（Ｓ１１７）、Ｓ１１２以降を繰り返す。一方、学習データ生成部２１は、ノードのパスが優先末端ではない、あるいは、優先末端が規定数存在する場合（Ｓ１１６：Ｎｏ）、Ｓ１１７を実行することなく、Ｓ１１２以降を繰り返す。
【００６６】
そして、Ｓ１１２において、未処理のエッジがない場合（Ｓ１１２：Ｎｏ）、学習データ生成部２１は、元の選んだパスとノードの対を探索済み集合に追加する（Ｓ１１８）。そして、学習データ生成部２１は、切り出し範囲のサイズがリソース上限を超えた場合（Ｓ１１９：Ｙｅｓ）、優先末端以外の探索済み集合にある極大なパスを検索する（Ｓ１２０）。
【００６７】
続いて、学習データ生成部２１は、その先のパスで遅延条件を満たさないものがあれば残し（Ｓ１２１）、残ったパスに対応するノードを探索済み集合から検索し（Ｓ１２２）、探索済み集合からノードを削除する（Ｓ１２３）。
【００６８】
その後、学習データ生成部２１は、図１０Ｂの示すように、そのノードが接続しているエッジを切り出し範囲から検索し（Ｓ１２４）、未処理のエッジがあるか否かを判定する（Ｓ１２５）。
【００６９】
そして、学習データ生成部２１は、未処理のエッジがあり（Ｓ１２５：Ｙｅｓ）、エッジの反対側のノードが探索済み集合に含まれていない、かつ、遅延条件を満たさない場合（Ｓ１２６：Ｎｏ）、そのエッジを切出し範囲から除外する（Ｓ１２７）。一方、学習データ生成部２１は、エッジの反対側のノードが探索済み集合に含まれている、または、遅延条件を満たす場合（Ｓ１２６：Ｙｅｓ）、Ｓ１２７を実行せずにＳ１２５以降を繰り返す。
【００７０】
そして、学習データ生成部２１は、反対側ノードが接続しているエッジが切り出し範囲に存在しない場合（Ｓ１２８：Ｙｅｓ）、リーフ集合から反対側ノードを削除し（Ｓ１２９）、Ｓ１２５以降を繰り返す。一方、学習データ生成部２１は、反対側ノードが接続しているエッジが切り出し範囲に存在する場合（Ｓ１２８：Ｎｏ）、Ｓ１２９を実行せずにＳ１２５以降を繰り返す。
【００７１】
そして、Ｓ１２５において未処理のエッジがない場合（Ｓ１２５：Ｎｏ）、学習データ生成部２１は、切り出し範囲のサイズがリソース上限をまだ超えているかを判定し（Ｓ１３０）、超えている場合（Ｓ１３０：Ｙｅｓ）、パス長制約を１減らすか、優先末端を変更するかを実行して（Ｓ１３１）、Ｓ１２０以降の処理を実行する。
【００７２】
一方、学習データ生成部２１は、切り出し範囲のサイズがリソース上限を超えていない場合（Ｓ１３０：Ｎｏ）、規定以上のグラフになっているか否かを判定する（Ｓ１３２）。ここで、学習データ生成部２１は、規定以上のグラフになっていない場合（Ｓ１３２：Ｎｏ）、Ｓ１０５以降を繰り返す。
【００７３】
一方、学習データ生成部２１は、規定以上のグラフになっている場合（Ｓ１３２：Ｙｅｓ）、切り出し範囲でグラフを作成し、ニューラルネットワークを用いて学習し（Ｓ１３３）、学習グラフ中の各エッジの動的評価を実行して属性情報ＤＢ１４に登録する（Ｓ１３４）。
【００７４】
そして、学習データ生成部２１は、高い動的評価値が規定数以上存在する場合（Ｓ１３５：Ｙｅｓ）、その時点のグラフを学習データとして学習データＤＢ１５に登録して生成処理を終了し、高い動的評価値が規定数未満しか存在しない場合（Ｓ１３５：Ｎｏ）、Ｓ１０５以降を繰り返す。
【００７５】
なお、Ｓ１０６において、静的評価値が高いノードまたはエッジが存在しない場合（Ｓ１０６：Ｎｏ）、Ｓ１１０以降が実行される。また、切り出し範囲のサイズがリソース上限を超えない場合（Ｓ１１９：Ｎｏ）、Ｓ１３２以降が実行される。
【００７６】
［具体例］
次に、図１１から図２０を用いて、上述した処理の具体例を説明する。ここでは、図３に示した知識ベースから適切なグラフの範囲を探索して、学習データ（Ａ社）と学習データ（Ｂ社）とを生成する例で説明する。また、ここでは、説明をわかりやすくするために、図１１に示す図を用いて、メモリ状況を可視化して説明する。図１１は、探索開始時のメモリの初期化状況を説明する図である。図１１に示すように、本実施例では、Ａ社とＢ社のそれぞれについて、リーフ集合と切出し範囲と動的評価結果を示す領域と、探索済み集合を示す領域とを用いて説明する。
【００７７】
また、具体例では、計算機のリソース制限は切り出し範囲に合計３５エッジ（リソース制限値）まで入れられるものとする。また、総合評価値は、静的評価値が高い属性＝２、動的評価値が高い属性＝８、両評価値が高い＝１０、両評価値が低い＝０と定義する。また、高い動的評価値が６つ以上入った時点で終了とする。また、優先末端数に１を設定、パス長制約に７を設定する。また、遅延条件の定義を「パス長＋優先末端側の最大パス長−総合評価値≦パス長制約」とする。なお、優先末端側の最大パス長とは、起点から辿って対象となる優先末端を通ってリーフまで行くまでのパスの中で最大のパスの長さを示す。
【００７８】
（初期化）
まず、学習データ生成部２１は、起点ごとに探索済み集合を空に設定し、起点と空パスの対をリーフ集合に追加する。図１２は、起点と空パスの対をリーフ集合に追加した状態を説明する図である。図１２に示すように、学習データ生成部２１は、Ａ社に関して、リーフ集合に、起点であるノード「Ａ社」と「／（空パス）」との対を追加するとともに、探索済み集合を空にする。同様に、学習データ生成部２１は、Ｂ社に関して、リーフ集合に、起点であるノード「Ｂ社」と「／（空パス）」との対を追加するとともに、探索済み集合を空にする。
【００７９】
（探索開始時）
続いて、学習データ生成部２１は、リーフ集合内のノードから数ホップ先まで探索して、静的評価値が高いエッジを探索する。図１３Ａは、探索開始時を説明する図であり、図１３Ｂは、探索開始時のメモリ格納状況を説明する図である。図１３Ａに示すように、学習データ生成部２１は、起点「Ａ社」および起点「Ｂ社」について、例えば２ホップ先までを探索範囲に決定する。そして、学習データ生成部２１は、静的評価値が高いエッジである「格付」と「評判」を見つける。なお、エッジ「優良」は、解なので除外する。
【００８０】
その後、学習データ生成部２１は、開始探索ノードから見つけたエッジまでのエッジを切り出し範囲に追加する。また、学習データ生成部２１は、探索開始ノードから見つけたエッジまでのパスにあるノードすべてに対して、そのノードとそのノードの起点からのパスの対をリーフ集合に追加する。さらに、学習データ生成部２１は、エッジの外側ノードと起点から見つけたエッジまでのパスの対をリーフ集合に追加する。
【００８１】
この結果、学習データ生成部２１は、図１３Ｂに示すように、ノードおよびエッジを切出し範囲に追加する。具体的には、学習データ生成部２１は、「Ａ社」について、開始探索ノード「Ａ社」から２ホップ以内にあるエッジのうち、静的評価値の高いエッジ「格付」の葉ノードであるノード「ＡＡ」を追加する。同様に、学習データ生成部２１は、静的評価値の高いエッジ「評判」の葉ノードである「がたいがいい」までのルートであるエッジ「企業」とノード「ＳＮＳ  Ｔ」とノード「がたいがいい」を追加する。また、学習データ生成部２１は、静的評価値の高いエッジ「評判」の葉ノードである「色黒」までのルートであるエッジ「企業」とノード「ＳＮＳ  Ｔ」とノード「色黒」を追加する。
【００８２】
また、学習データ生成部２１は、「Ｂ社」について、開始探索ノード「Ｂ社」から２ホップ以内にあるエッジのうち、静的評価値の高いエッジ「格付」の葉ノードであるノード「Ａ」を追加する。同様に、学習データ生成部２１は、静的評価値の高いエッジ「評判」の葉ノードである「がたいがいい」までのルートであるエッジ「企業」とノード「ＳＮＳ  Ｔ」とノード「がたいがいい」を追加する。この結果、Ａ社について登録されたエッジ数が「６」、Ｂ社について登録されたエッジ数が「３」となる。まだ、学習が実行されていないので、動的評価値は未算出である。
【００８３】
（状態１）
続いて、学習データ生成部２１は、リーフ集合から探索済みでないパスをランダムにいくつか選択し、選んだパスと対になっているノードに接続しているエッジを検索する。図１４Ａは、探索開始後の状態１を説明する図であり、図１４Ｂは、状態１のメモリ格納状況を説明する図である。
【００８４】
具体的には、学習データ生成部２１は、Ａ社とＢ社の両方について、図１３Ｂの状態から探索済みでない「／（空パス）」と「＾企業」とを選択する。そして、学習データ生成部２１は、Ａ社について、図１４Ａに示すように、「／」と対になっているノードに接続するエッジとして、エッジ「業種」、「＾企業」、「格付」、「優良」、「事業部」を検出し、「＾企業」と対になっているノードに接続するエッジとして、エッジ「企業」、「発言者」、「評判」を検出する。
【００８５】
同様に、学習データ生成部２１は、Ｂ社について、図１４Ａに示すように、「／」と対になっているノードに接続するエッジとして、エッジ「業種」、「＾企業」、「格付」、「優良」を検出し、「＾企業」と対になっているノードに接続するエッジとして、エッジ「企業」、「発言者」、「評判」を検出する。
【００８６】
その後、Ａ社について、学習データ生成部２１は、図１４Ｂに示すように、エッジ「業種」の外側（葉）ノード「土木工事業」と、エッジ「事業部」の外側ノード「ＡＸ事業部」とが探索済み集合に入っていないので、切出し範囲にエッジ「業種」とエッジ「事業部」とを追加するとともに、リーフ集合にノード「土木工事業」と「ＡＸ事業部」とを追加する。また、学習データ生成部２１は、「＾企業」の外側ノード「Ａ、Ｂ」および「Ｃ、Ｄ」と、エッジ「発言者」とが探索済み集合に入っていないので、切出し範囲にエッジ「発言者」を追加するとともに、リーフ集合にノード「Ａ、Ｂ」と「Ｃ、Ｄ」とを追加する。
【００８７】
そして、学習データ生成部２１は、自ノードと接続される周辺の各ノードがすでに探索済みであるノード「Ａ社」とノード「ＳＮＳ  Ｔ」とノード「ＳＮＳ  Ｔ」とを、探索済み集合に入れる。
【００８８】
同様に、Ｂ社について、学習データ生成部２１は、図１４Ｂに示すように、エッジ「業種」の外側ノード「大工工事業」が探索済み集合に入っていないので、切出し範囲にエッジ「業種」を追加するとともに、リーフ集合にノード「大工工事業」を追加する。また、学習データ生成部２１は、「＾企業」の外側ノード「Ｅ、Ｆ」と、エッジ「発言者」とが探索済み集合に入っていないので、切出し範囲にエッジ「発言者」を追加するとともに、リーフ集合にノード「Ｅ、Ｆ」とを追加する。
【００８９】
そして、学習データ生成部２１は、自ノードと接続される周辺の各ノードがすでに探索済みであるノード「Ｂ社」と、エッジ「＾企業」で接続されるノード「ＳＮＳ  Ｔ」とを、探索済み集合に入れる。
【００９０】
この結果、Ａ社について登録されたエッジ数が「１０」、Ｂ社について登録されたエッジ数が「５」となる。まだ、学習が実行されていないので、動的評価値は未算出である。さらに、学習データ生成部２１は、「企業」は外部ノードであり、優先末端が規定されていないので、「＾企業」を優先末端に設定する。
【００９１】
ここで、初期学習基準をエッジ数の合計を「２０」とすると、図１４Ｂの段階では、切出し対象のエッジ数の合計が「１５」であり、初期学習基準を満たさない。そこで、学習データ生成部２１は、静的評価値の高いエッジ等を切出し範囲にさらに追加する。図１４Ｃは、状態１での切出し範囲の追加を説明する図である。
【００９２】
学習データ生成部２１は、企業Ａについて、図１４Ｂの状態から優先末端と接続されるエッジのうち、静的評価値が高いエッジ「＾評判」を検出し、「＾評判」の外部ノードであるノード「ＳＮＳ  Ｔ」を検索する。この結果、図１４Ｃに示すように、学習データ生成部２１は、ノード「がたいがいい」とエッジ「＾評判」で接続されるノード「ＳＮＳ  Ｔ」と、ノード「色黒」とエッジ「＾評判」で接続されるノード「ＳＮＳ  Ｔ」とをリーフ集合に追加し、エッジ「＾評判」を切出し範囲に追加する。
【００９３】
同様に、学習データ生成部２１は、企業Ｂについて、図１４Ｂの状態から優先末端と接続されるエッジのうち、静的評価値が高いエッジ「＾評判」を検出し、「＾評判」の外部ノードであるノード「ＳＮＳ  Ｔ」を検索する。この結果、図１４Ｃに示すように、学習データ生成部２１は、ノード「がたいがいい」とエッジ「＾評判」で接続される３つのノード「ＳＮＳ  Ｔ」をリーフ集合に追加し、エッジ「＾評判」を切出し範囲に追加する。
【００９４】
この結果、Ａ社について登録されたエッジ数が「１２」、Ｂ社について登録されたエッジ数が「９」となり、合計エッジ数が「２１」で初期学習基準「２０」を越えたので、学習データ生成部２１は、状態１で特定された切出し範囲で学習グラフを生成して、ニューラルネットワークに入力して学習を実行する。そして、学習データ生成部２１は、学習結果で得られる動的評価値を属性情報ＤＢ１４に登録する。
【００９５】
図１４Ｄは、状態１での学習結果を示す図である。図１４Ｄに示すように、状態１での学習グラフの学習によって、「格付＝ＡＡ」の動的評価値が高くなった。しかし、動的評価値が高いものが１で目標の６に足りないので、切り出し範囲の変更を行う。
【００９６】
（状態２：切出し範囲の拡大）
続いて、学習データ生成部２１は、状態１と同様の処理を実行して切出し範囲の拡大を実行する。具体的には、学習データ生成部２１は、リーフ集合からランダムに探索済みでないパスをいくつか選択し、選んだパスと対になっているノードに接続しているエッジを検索する。ここでは、Ａ社とＢ社とについて、学習データ生成部２１は、「業種」と「＾企業／評判」を選択し、「業種」では「＾業種」と「＾subClass」を検出し、「＾企業／評判」では「＾評判」を検出する。
【００９７】
そして、学習データ生成部２１は、Ａ社とＢ社とについて、エッジ「業種」−エッジ「＾subClass」の外側ノード「建設業」が探索済み集合に入っていないので、切り出し範囲に「＾subClass」を、リーフ集合に「建設業」を追加する。なお「＾企業／評判」のエッジ「＾評判」の一部はすでに探索済み集合入っているので、それについては何もしない。状態２で検出された残りのエッジについても同様に処理し、すべてのエッジが処理済みとなり、図１５Ａの状態がメモリに格納される。
【００９８】
図１５Ａは、状態２のメモリ格納状況を説明する図である。図１５Ａに示すメモリ格納状況は、図１４Ｄと比較して、パス「業種／＾subClass」のノード「建設業」がＡ社とＢ社の両方に追加されている。また、探索済みノードとして、Ａ社に関してはノード「がたいがいい、色黒、工事業」が追加され、Ｂ社に関してはノード「がたいがいい、大工工事業」が追加される。また、学習データ生成部２１は、「がたいがいい」および「色黒」が外部ノードであるので、「＾企業／評判」を優先末端に設定する。
【００９９】
そして、学習データ生成部２１は、切り出し範囲の合計エッジ数「２２」がリソース制限「３５」を超えていないので、状態２で特定された切出し範囲で学習グラフを生成して、ニューラルネットワークに入力して学習を実行する。そして、学習データ生成部２１は、学習結果で得られる動的評価値を属性情報ＤＢ１４に登録する。
【０１００】
図１５Ｂは、状態２での学習結果を示す図である。図１５Ｂに示すように、状態２での学習グラフの学習によって、Ａ社については、「格付＝ＡＡ」と「業種／＾subClass＝建設業」と「＾企業／評判＝がたいがいい」の動的評価値が高くなり、Ｂ社については、「業種／＾subClass＝建設業」と「＾企業／評判＝がたいがいい」の動的評価値が高くなった。この結果、「業種」と「評判」の組み合わせで判別精度を向上できることを発見できた。また、静的評価値の高い評判情報を早々に切り出し範囲に含めていたために、この組み合わせを少ない試行回数で見つけることができた。しかし、動的評価値が高いものが５で目標の６に足りないので、切り出し範囲の変更を行う。
【０１０１】
（状態３）
続いて、学習データ生成部２１は、状態１や状態２と同様の処理を実行して切出し範囲の拡大を実行する。具体的には、学習データ生成部２１は、リーフ集合内のノードから２ホップ以内を探索し、静的評価値が高い「優良」と「格付」を見つけ、切り出し範囲にそれらが入るようにする。これにより、学習データ生成部２１は、静的評価値が高く、起点から遠い「＾企業／評判／＾評判／＾企業／優良」と「＾企業／評判／＾評判／＾企業／格付」のパスを優先的に切り出し範囲に入れる。
【０１０２】
この結果、状態３では、図１６Ａのようなメモリ格納状態となる。図１６Ａは、状態３のメモリ格納状態を説明する図である。図１６Ａに示すように、学習データ「Ａ社」に関して、ノード「Ｂ社」およびノード「Ｂ社」に接続されるノード「優良」や「Ａ」が追加されるとともに、ノード「Ｃ社」およびノード「Ｃ社」に接続されるノード「ＢＢ」が追加される。また、図１６Ａに示すように、学習データ「Ｂ社」に関して、起点「Ａ社」に関連する各ノードが追加されるとともに、ノード「Ｃ社」およびノード「Ｃ社」に接続されるノード「ＢＢ」が追加される。この状態で、エッジ数の合計が「３３」であり、動的評価値の高いエッジ数は変わらず「５」のままである。
【０１０３】
さらに、学習データ生成部２１は、継続して、静的評価値が低いものについても切り出し範囲を広げる。具体的には、学習データ生成部２１は、学習データ「Ａ社」に関して、エッジ「発言者」−ノード「Ｅ、Ｆ」と、エッジ「発言者」−ノード「Ｉ、Ｊ」と、エッジ「格付」−ノード「ＡＸＸ部」とを追加する。同様に、学習データ生成部２１は、学習データ「Ｂ社」に関して、エッジ「発言者」−ノード「Ａ、Ｂ」と、エッジ「発言者」−ノード「Ｃ、Ｄ」と、エッジ「発言者」−ノード「Ｉ、Ｊ」とを追加する。
【０１０４】
この結果、メモリ格納状態は、図１６Ａの状態から図１６Ｂのように更新される。図１６Ｂは、状態３での切出し範囲の追加を説明する図である。図１６Ｂに示すように、学習データ「Ａ社」に関して、上述したように３つのエッジとそれに関連するノードが追加される。また、図１６Ｂに示すように、学習データ「Ｂ社」に関して、上述したように３つのエッジとそれに関連するノードが追加される。また、学習データ生成部２１は、Ａ社に関して、周辺ノードが探索されたノード「ＡＸ事業部」と２つの「ＳＮＳ  Ｔ」とを探索済み集合に入れ、Ｂ社に関して、周辺ノードが探索された２つの「ＳＮＳ  Ｔ」を探索済み集合に入れる。
【０１０５】
この状態で、動的評価値の高いエッジ数は変わらず「５」のままであるが、エッジ数の合計が「３８」となり、リソース制限値の「３５」を超える。このため、学習データ生成部２１は、リソースの関係上、切出し範囲の縮小を行う。
【０１０６】
（状態４：切出し範囲の縮小）
続いて、学習データ生成部２１は、優先末端以外の探索済み集合にある極大なパスである「業種」と「事業部」を特定し、これらについて切出し範囲の縮小を判定する。
【０１０７】
まず、学習データ生成部２１は、「業種」の先のパス「業種／＾subClass」に関して遅延条件をチェックする。ここでは、学習データ生成部２１は、パス「業種／＾subClass」の動的評価値が高いことから、総合評価値「ホップ数−８」がパス長制約よりも小さいか否かを判定する。ホップ数は、「業種／＾subClass」のパス長２と「＾企業／評判／＾評判／＾企業／格付」の最大パス長５を加算した７である。したがって、学習データ生成部２１は、総合評価値「７−８＝−１」≦パス長制約（７）を満たすので、遅延条件を満たすと判定する。この結果、学習データ生成部２１は、パス「業種／＾subClass」を削除対象外とする。
【０１０８】
次に、学習データ生成部２１は、「事業部」の先のパス「事業部/部署」に関して遅延条件をチェックする。ここでは、学習データ生成部２１は、パス「事業部/部署」の静的評価値も動的評価値もともに低いことから、総合評価値「ホップ数−０」がパス長制約よりも小さいか否かを判定する。ホップ数は、「事業部／部署」のパス長２と「＾企業／評判／＾評判／＾企業／格付」の最大パス長５を加算した７である。したがって、学習データ生成部２１は、総合評価値「７−０＝７」≦パス長制約（７）を満たすので、遅延条件を満たすと判定する。この結果、学習データ生成部２１は、パス「事業部／部署」を削除対象外とする。
【０１０９】
ここで、切り出し範囲の合計エッジ数「３９」から変化がなく、リソース制限「３５」をまだ超えているので、パス長制約を一時的に減らして「６」にする。すると、学習データ生成部２１は、「業種」の先のパス「業種／＾subClass」に関しては、総合評価値「７−８＝−１」≦パス長制約（６）を満たすので、依然として遅延条件を満たすと判定する。しかし、学習データ生成部２１は、「事業部」の先のパス「事業部/部署」に関しては、総合評価値「７−０＝７」≦パス長制約（６）を満たさないので、削除対象と判定する。
【０１１０】
この結果、図１７Ａに示すように、学習データ生成部２１は、リーフ集合と探索済み集合を更新する。図１７Ａは、切出し範囲の縮小を説明する図である。図１７Ａに示すように、学習データ生成部２１は、「事業部」に対応するノードを探索済み集合から検索し、「ＡＸ事業部」を得る。続いて、学習データ生成部２１は、「ＡＸ事業部」を探索済み集合から削除する。
【０１１１】
また、学習データ生成部２１は、「ＡＸ事業部」に接続しているエッジを切出し範囲から検索し、「Ａ社」→「ＡＸ事業部」と「ＡＸ事業部」→「ＡＸＸ部」を得る。そして、学習データ生成部２１は、切出し範囲に関して、反対側のノード「Ａ社」は探索済み集合に含まれているので何もしないが、反対側のノード「ＡＸＸ部」は探索済み集合に含まれていないのでエッジを削除する。この結果、Ａ社の切出し範囲のエッジ数が「２１」から「２０」になる。
【０１１２】
続いて、学習データ生成部２１は、縮小した切出し範囲について、エッジがないノードを検索する。図１７Ｂは、切出し範囲の更なる縮小を説明する図である。図１７Ｂに示すように、学習データ生成部２１は、Ａ社の切出し範囲にあるノード「ＡＸＸ事業部」については、エッジが切り出し範囲内に存在しないので、切出し範囲から削除する。このようして、学習データ生成部２１は、すべての削除候補エッジに対する処理を実行するが、切出し範囲の合計エッジ数「３８」がリソース制限「３５」をまだ超えているので、今度は優先末端を「業種」に変更する。
【０１１３】
（状態５：切出し範囲の縮小）
続いて、学習データ生成部２１は、優先末端「業種」以外の探索済み集合にある極大なパスである「＾企業／評判／＾評判」を特定する。そして、学習データ生成部２１は、Ａ社とＢ社に関して、その先パス「評判、企業／格付、企業／優良、発言者」のうち該当するパスについて切出し範囲の縮小を判定する。
【０１１４】
具体的には、学習データ生成部２１は、パス「＾企業／評判／＾評判／評判」について切出し範囲の縮小を判定する。例えば、学習データ生成部２１は、静的評価値が高いことから、総合評価値「（評判）のパス長２＋優先末端「業種」の最大パス長２−２＝２」≦パス長制約（６）を満たすので、遅延条件を満たすと判定する。この結果、学習データ生成部２１は、パス「＾企業／評判／＾評判／評判」を削除対象外とする。
【０１１５】
また、学習データ生成部２１は、パス「＾企業／評判／＾評判／発言者」について切出し範囲の縮小を判定する。例えば、学習データ生成部２１は、各評価値が低いことから、総合評価値「（発言者）のパス長４＋優先末端「業種」の最大パス長２−０＝６」≦パス長制約（６）を満たすので、遅延条件を満たすと判定する。この結果、学習データ生成部２１は、パス「＾企業／評判／＾評判／発言者」を削除対象外とする。
【０１１６】
また、学習データ生成部２１は、パス「＾企業／評判／＾評判／企業／格付」について切出し範囲の縮小を判定する。例えば、学習データ生成部２１は、静的評価値が高いことから、総合評価値「（企業／格付）のパス長５＋優先末端「業種」の最大パス長２−２＝５」≦パス長制約（６）を満たすので、遅延条件を満たすと判定する。この結果、学習データ生成部２１は、パス「＾企業／評判／＾評判／企業／格付」を削除対象外とする。
【０１１７】
同様に、学習データ生成部２１は、パス「＾企業／評判／＾評判／企業／優良」について切出し範囲の縮小を判定する。例えば、学習データ生成部２１は、静的評価値が高いことから、総合評価値「（企業／優良）のパス長５＋優先末端「業種」の最大パス長２−２＝５」≦パス長制約（６）を満たすので、遅延条件を満たすと判定する。この結果、学習データ生成部２１は、パス「＾企業／評判／＾評判／企業／優良」を削除対象外とする。
【０１１８】
（状態６：パス長制約の変更後に再度の縮小）
ここで、学習データ生成部２１は、すべてが遅延条件を満たすので、パス長制約を減らす。図１８は、パス長制約の変更例を示す図である。図１８に示すように、学習データ生成部２１は、パス長制約を「６」から「５」に減らし、その他の情報は維持する。そして、学習データ生成部２１は、再度、優先末端「業種」以外の探索済み集合にある極大なパスである「＾企業／評判／＾評判」のその先のパス「評判、企業／格付、企業／優良、発言者」のうち該当するパスについて切出し範囲の縮小を判定する。
【０１１９】
すると、上述したように、パス「＾企業／評判／＾評判／発言者」については、総合評価値「２＋２−２＝２」≦パス長制約（５）を満たし、パス「＾企業／評判／＾評判／企業／優良」とパス「＾企業／評判／＾評判／企業／格付」についても、総合評価値「５＋２−２＝５」≦パス長制約（５）を満たす。しかし、パス「＾企業／評判／＾評判／発言者」については、総合評価値「４＋２−０＝６」≦パス長制約（５）を満たさない。このため、学習データ生成部２１は、「発言者」が遅延条件を満たさないので、削除対象と判定する。
【０１２０】
この結果、図１９に示すように、学習データ生成部２１は、リーフ集合と探索済み集合を更新する。図１９は、切出し範囲の縮小を説明する図である。図１９に示すように、学習データ生成部２１は、「発言者」に対応するノードを探索済み集合から検索し、「ＳＮＳ  Ｔ」を得る。続いて、学習データ生成部２１は、該当する「ＳＮＳ  Ｔ」をＡ社とＢ社の探索済み集合から削除する。
【０１２１】
また、学習データ生成部２１は、「ＳＮＳ  Ｔ」に接続しているエッジを切出し範囲から検索し、Ａ社の切出し範囲から「ＳＮＳ  Ｔ」→「Ｅ、Ｆ」と「ＳＮＳ  Ｔ」→「Ｉ、Ｊ」を得る。そして、学習データ生成部２１は、切出し範囲に関して、反対側のノード「ＳＮＳ  Ｔ」は探索済み集合に含まれていないので、「Ｅ、Ｆ」のノードおよびエッジと「Ｉ、Ｊ」のノードおよびエッジを削除する。この結果、Ａ社の切出し範囲のエッジ数が「２０」から「１８」になる。
【０１２２】
また、学習データ生成部２１は、「ＳＮＳ  Ｔ」に接続しているエッジを切出し範囲から検索し、Ｂ社の切出し範囲から「ＳＮＳ  Ｔ」→「Ａ、Ｂ」、「ＳＮＳ  Ｔ」→「Ｃ、Ｄ」、「ＳＮＳ  Ｔ」→「Ｉ、Ｊ」を得る。そして、学習データ生成部２１は、切出し範囲に関して、反対側のノード「ＳＮＳ  Ｔ」は探索済み集合に含まれていないので、検索された各ノードおよびエッジを削除する。この結果、Ｂ社の切出し範囲のエッジ数が「１８」から「１５」になる。
【０１２３】
このような処理によって、学習データ生成部２１は、切り出し範囲の合計エッジ数が「３３」であり、リソース制限「３５」に収まったことから、切出し範囲で学習データを生成して、ニューラルネットワークに入力して学習を実行する。そして、学習データ生成部２１は、学習結果で得られる動的評価値を属性情報ＤＢ１４に登録する。
【０１２４】
図２０は、学習結果を示す図である。図２０に示すように、Ａ社については、「格付＝ＡＡ」と「業種／＾subClass＝建設業」と「＾企業／評判＝がたいがいい」と「＾企業／評判／＾評判／＾企業／優良＝優良」の動的評価値が高くなり、Ｂ社については、「業種／＾subClass＝建設業」と「＾企業／評判＝がたいがいい」と「＾企業／評判／＾評判／＾企業／優良＝優良」の動的評価値が高くなった。この結果、学習データ生成部２１は、動的評価値の高いノードが７個で規定数の６個以上あるので、学習データの生成を終了する。そして、学習データ生成部２１は、この時点で切出し範囲に設定されたノードおよびエッジを切出して、学習データ（Ａ社）と学習データ（Ｂ社）とを生成して、学習データＤＢ１５に格納する。
【０１２５】
［効果］
上述したように、学習装置１０は、推定に有用な情報が規定ホップ数外にある場合でも、推定に有用な情報が入っているパスを検出することができる。また、学習装置１０は、様々なデータを連結して構築されている巨大な知識ベースの中で、データが抜け落ちた部分を他の周辺情報から推測するために、設定問題が与えられたときに、与えられた設定問題を解くのに十分な情報を含んでいる適切なグラフを切り出すことができる。また、学習装置１０は、計算機のメモリなどの限られたリソース内での探索を行い、設定問題を解くのに最適な学習データの範囲を決定して、モデルの学習を行うことができる。
【０１２６】
また、学習装置１０は、学習に入力するための学習データの最適な範囲を探索する際に、グラフサイズを抑えつつ、判別精度があがるような情報が学習データの切り出し範囲を探索することができる。
【実施例２】
【０１２７】
ところで、実施例１の具体例で説明したいくつかの条件等は、あくまで一例であり、実施例１に限定されるものではない。そこで、実施例２では、各処理のバリエーションについて説明する。
【０１２８】
（探索処理に事前条件に関するバリエーション）
具体例においては、切出し範囲の拡張時はランダムにリーフノードを選び、選ばれたノードは接続している全エッジを１ホップ拡張する例で説明したが、これに限定されるものではない。例えば、切出し範囲に含まれるノードのすべてについて１ホップ拡張するようにしてもいい。短いホップ数の範囲については網羅的に探索を行いたい場合は、ランダムに選ぶ方が好ましく、メモリ使用量を極力抑えたい場合は、ランダム以外の他の手法の方が好ましい。
【０１２９】
また、ホップ数を複数ホップにしてもよい。特に実行初期の段階では、グラフも小さいため、１ホップずつ拡張するのではなく、数ホップをまとめて処理をしてしまった方が、処理速度の高速化が図れる。グラフは分岐をしているので、通常はホップ数が増えれば増えるほど、１ホップで増加するノードの数は多くなる。そのため、ホップ数が大きいときに、ホップ数を複数増やしてしまうと、リソース制限を大きく超えてしまう可能性が高まるので、実行中盤以降、拡張するホップ数は１に設定する方が好ましい。
【０１３０】
また、具体例では、初期学習のタイミングとして、合計エッジ数が２０以上（初期学習基準）のときに学習を開始する例を説明したが、これに限定されるものではない。例えば、切り出し範囲が小さい段階で早めに動的評価を行って、後の探索を効率的にやる場合には、初期学習基準に小さい値を設定することもできる。また、メモリに入るだけいれて、大きい切り出し範囲で、組み合わせの関連の発見を見据えて一気に学習する場合には、初期学習基準に大きい値を設定することもできる。
【０１３１】
なお、具体例では、学習は早い段階で起こるよう閾値を下げておき、早めに動的評価値を出すことで、早い段階では、複合条件の一方だけが、切り出し範囲に入っている状態で判別特徴量評価を行い、単独では設定問題と関係しないことを示した。さらに、その後の段階で、もう片方の範囲が切り出し範囲に入ったときに、判別特徴量評価の結果、前者の動的評価値が高いということが分かるようになり、２つの範囲が組み合わせで関係することを示唆した。
【０１３２】
（優先切出し処理に関するバリエーション）
具体例においては、静的評価値は高いか低いかの２値とし、静的評価値の高いエッジは切り出し範囲の端から例えば２ホップ先まで探索する例を説明した。また、具体例においては、静的評価値の高いエッジおよびノードが優先的に切り出し範囲に入るように、探索のホップ数は上述した通常の拡張よりも長いように規定した。なお、静的評価値は動的評価値よりも精度は高くないが、学習および判別特徴量評価を行わずに、事前に評価ができるので、メモリ制約がある中で優先的に切り出し範囲に含めることは有用である。
【０１３３】
しかし、実施例はこれらの制約に限定されるものではない。例えば、静的評価値を多段階にすることにより、静的評価値に基づいてホップ数を変化させることもできる。例としては、静的評価値＞第１の閾値のように、非常に静的評価値が高い場合は４ホップ先まで探索、第２の閾値＜静的評価値＜第１の閾値のように、ある程度高い場合は２ホップ先まで探索など、任意に設定することができる。
【０１３４】
（拡大縮小処理に関するバリエーション）
具体例においては、動的評価値を高いか低いかの２値とする例を説明したが、これに限定されるものではない。例えば、動的評価値を多段階にすることにより、動的評価値に基づいて遅延条件を変化させることもできる。なお、動的評価値は、静的評価値よりも精度は高いので、メモリ制約がある中で遅延条件により優先的に切り出し範囲に留めておくことは有用である。
【０１３５】
（優先末端の設定処理に関するバリエーション）
具体例では、優先末端数が１の場合を説明しているが、優先末端数を調整し、優先末端に関連した範囲に関連するメモリ使用量と、他の範囲のメモリ使用量とのバランスを制御することができる。
【０１３６】
例えば、優先末端数を少なくすることで、他の範囲のメモリ使用量を相対的に増やし、他の範囲を深く探索することができる。また、高い動的評価値が存在する範囲が深い場所にある可能性が高い場合、優先末端あたりのメモリ使用量、および、他の末端のメモリ使用量の双方が多くなる可能性が高くなるので、優先末端数を少なくする探索を用いることもできる。また、高い動的評価値が存在する範囲が浅い場所にある可能性が高い場合は、優先末端数を多くしてもメモリ使用量の増加は、上述した場合に比べて多くはないので、優先末端数を多くすることで優先末端を取り換える回数を削減し、試行回数を減らした探索を行うこともできる。
【０１３７】
（優先末端の変更契機に関するバリエーション）
具体例では、優先末端の変更契機を「切り出し範囲を狭くしても、まだリソース上限を超えている場合」として設定しているが、優先末端を変更するタイミングを調整することで、網羅的に隅々探索するか、全体的にざっくり探索するかを調整することもできる。
【０１３８】
例えば、他の領域がすべて入れ替わるまで、優先末端を変化させない場合には、すべての組み合わせを試すことができるが、試行回数が増える。逆に、他の領域を網羅しきらないうちに優先末端を変更した場合には、試行回数が減るが、試していない組み合わせが増える。実施例１の方式では、他の領域の網羅はできないが、リソース上限までは探索できるので、効率的な探索を実行することができる。なお、変更契機としては、他の領域がとりうる範囲すべてのパターンを実行して網羅的な探索を行ってから変更する場合、ランダムに変更する場合、規定回数で変更する場合などを採用することができる。
【０１３９】
（優先末端に関するバリエーション）
具体例においては、優先末端は探索済みノードの極大に設定する例を説明したが、これに限定されるものではない。ここで、グラフは分岐しているので、根元に優先末端があるとその先はすべて削除対象外となり、優先末端の範囲を広くできる。優先末端を伸ばすようにするほど、優先末端の範囲が狭くなり、極大に設定すると優先末端の範囲を最小にできる。優先末端の範囲の大きさは、他の範囲が利用できるメモリ使用量に影響し、深く探索できるかに影響する。
【０１４０】
具体例においては、ノードの削除は探索済みノードを対象としているので、優先末端も探索済みノードとしている。探索済みでないノードを対象にした場合には、そのノードを優先末端に設定しても削除の対象には選ばれないので、効果が限定的となる。
【０１４１】
例えば、優先末端の設定としては、規定ホップ数以上は優先末端を設定しないことで、規定ホップ数での分岐数で優先末端の選ばれる候補が規定され、処理すべき全体の量の見通しを予想できる。ただし、優先末端の範囲が大きくなると、他の範囲が利用できるメモリ使用量が減り、あまり深く探索できなくなることを考慮して、規定ホップ数を設定することが好ましい。
【０１４２】
（削除遅延処理に関するバリエーション）
具体例では、遅延条件の定義を「パス長＋優先末端側の最大パス長−総合評価値≦パス長制約」とした例で説明したが、これに限定されるものではない。例えば、遅延条件の定義においては、基本的には、静的評価値や動的評価値が高いものが遅延条件を満たすようにできればよい。
【０１４３】
具体例では、最長パスが長く、対象ノードのパスが長く、静的評価値や動的評価値が低いときに削除されやすいように定義している。最長パスと対象ノードのパスの和は２つのパスの長さを示しており、どれだけ情報としての距離が遠いかを示す。情報としての距離が長いものは複合的に設定問題に関係する可能性は低いため、最長パスと距離が遠いパスを削除するようにしている。静的評価値や動的評価値が高いときは、設定問題との関連性が高い可能性が高いので、それよりは、静的評価値や動的評価値の低いものを削除するようにしている。
【０１４４】
削除遅延処理に関するバリエーションとしては、最長パスと対象のパスの起点からの距離の和ではなく、パスの終点ノード間の距離で判定することにより、より正確に２ノード間の距離を測れ、２ノード間の関係性を考慮して削除判定ができる。また、伸ばしたパスで判定することで、最長パスを中心として探索するのではなく、切り出し範囲が伸ばしたパスの方向に移動して探索することができる。また、最長パスはどのパスからも遠いため、削除される可能性が高まる。
【０１４５】
さらに、静的評価値や動的評価結果による補正値を大きくすることで、評価の高いノードまたはエッジの削除を評価の低いノードやエッジと比べ、より遅延させることができる。また、補正値を小さくすることで、評価の高いノードまたはエッジの削除を評価の低いノードやエッジと比べ、早めることができる。
【０１４６】
（削除遅延処理のパス長制約に関するバリエーション）
具体例では、削除しても切り出し範囲がリソース制限を満たせないときに、パス長制約を１減らす例を説明したが、これに限定されるものではない。パス長制約は、リソース制約に比べて、パス長の制約が緩い場合には、制約を常に満たすようになり、制約が意味をなさなくなる。制約が緩すぎて、リソース削減をすることができない場合に、制約を厳しくして、制約がかかるように補正する。例えば、遅延条件が満たされなくなる最小の差分を減らすようにパス長制約を再設定することもできる。これにより、１ずつ減らして何度も遅延条件のチェックを行うことを抑制でき、処理の高速化が図れる。
【０１４７】
（リソース制限に関するバリエーション）
具体例では、ソース制限を合計３５エッジとして例で説明したが、これに限定されるものではない。例えば、学習時の学習装置１０のメモリの使用量は、学習グラフのエッジ数に大きく依存するので、使用する計算機のメモリに応じて、リソース制限を設定することができる。
【０１４８】
（切出し範囲の縮小に関するバリエーション）
具体例では、削除は、探索済み集合の極大なパスにし、ノードごとに一括で行う例で説明したが、これに限定されるものではない。これは、極大でない部分での削除を許容して、グラフが途切れてしまうようなことを許容したり、同一ノードと接続しているエッジを消したり消さなかったりして、エッジ単位での削除を許容したりすると、切出し範囲の管理が非常に煩雑になってしまうからである。このようなことから、一例として、具体例では極大なパスに対して、ノードごとに削除するか削除しないかを一括で処理する方式を採用した。
【０１４９】
また、具体例では、エッジの削除時に反対側のノードにエッジがない場合に、当該エッジを削除する例を説明したが、これに限定されるものではない。これは、起点からの削除の対象となるノードへのパスが複数ある場合、削除するパスの終点であるノードに接続するエッジを削除しても、もう片側からのパスの最後から２番目のノードが探索済みである場合、最後のエッジが残る。すなわち、場合によっては、エッジの削除の処理後に削除対象のノードに接続するエッジがすべて消されてしまうケースと消されずに残るケースがある。接続するエッジが存在するのにノードを削除すると、ノードがないのにエッジがあるという矛盾が起こり、接続するエッジが存在しないのにノードが残ると、離れ小島のような連結していないノードができてしまうからである。これらを回避するために、エッジが消されずに残ったノードは残しておき、エッジが消されたノードを削除する処理を実行する。
【０１５０】
（探索の終了条件に関するバリエーション）
具体例では、高い動的評価値が６個以上あるときに、切出し範囲の探索を終了する例を説明したが、これに限定されるものではない。例えば、学習した結果できた学習モデルを学習で用いたサンプルとは別のテスト用サンプルで判別を行い、その正解率（分別精度）がある一定以上になる契機を設定することもできる。また、学習モデルがうまくできたかにかかわらず、任意の試行回数を設定することもできる。
【実施例３】
【０１５１】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【０１５２】
［ニューラルネットワーク］
本実施例では、ＲＮＮやＣＮＮ（Convolutional  Neural  Network）など様々なニューラルネットワークを用いることができる。また、学習の手法も、誤差逆伝播以外にも公知の様々な手法を採用することができる。また、ニューラルネットワークは、例えば入力層、中間層（隠れ層）、出力層から構成される多段構成であり、各層は複数のノードがエッジで結ばれる構造を有する。各層は、「活性化関数」と呼ばれる関数を持ち、エッジは「重み」を持ち、各ノードの値は、前の層のノードの値、接続エッジの重みの値、層が持つ活性化関数から計算される。なお、計算方法については、公知の様々な手法を採用できる。
【０１５３】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１５４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１５５】
［ハードウェア構成］
図２１は、ハードウェア構成例を示す図である。図２１に示すように、学習装置１０は、通信インタフェース１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。
【０１５６】
通信インタフェース１０ａは、他の装置の通信を制御するネットワークインタフェースカードなどである。ＨＤＤ１０ｂは、プログラムやデータなどを記憶する記憶装置の一例である。
【０１５７】
メモリ１０ｃの一例としては、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等のＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ等が挙げられる。プロセッサ１０ｄの一例としては、ＣＰＵ（Central  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）、ＦＰＧＡ（Field  Programmable  Gate  Array）、ＰＬＤ（Programmable  Logic  Device）等が挙げられる。
【０１５８】
また、学習装置１０は、プログラムを読み出して実行することで学習方法を実行する情報処理装置として動作する。つまり、学習装置１０は、学習データ生成部２１、学習部２２、判別部２３と同様の機能を実行するプログラムを実行する。この結果、学習装置１０は、学習データ生成部２１、学習部２２、判別部２３と同様の機能を実行するプロセスを実行することができる。なお、この他の実施例でいうプログラムは、学習装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【０１５９】
１０  学習装置
１１  通信部
１２  記憶部
１３  知識ベースＤＢ
１４  属性情報ＤＢ
１５  学習データＤＢ
１６  学習済みモデルＤＢ
２０  制御部
２１  学習データ生成部
２１ａ  設定部
２１ｂ  探索部
２２  学習部
２３  判別部
【図１】
2019056960.tif 000003
【図２】
2019056960.tif 000004
【図３】
2019056960.tif 000005
【図４】
2019056960.tif 000006
【図５】
2019056960.tif 000007
【図６】
2019056960.tif 000008
【図７】
2019056960.tif 000009
【図８】
2019056960.tif 000010
【図９】
2019056960.tif 000011
【図１０Ａ】
2019056960.tif 000012
【図１０Ｂ】
2019056960.tif 000013
【図１１】
2019056960.tif 000014
【図１２】
2019056960.tif 000015
【図１３Ａ】
2019056960.tif 000016
【図１３Ｂ】
2019056960.tif 000017
【図１４Ａ】
2019056960.tif 000018
【図１４Ｂ】
2019056960.tif 000019
【図１４Ｃ】
2019056960.tif 000020
【図１４Ｄ】
2019056960.tif 000021
【図１５Ａ】
2019056960.tif 000022
【図１５Ｂ】
2019056960.tif 000023
【図１６Ａ】
2019056960.tif 000024
【図１６Ｂ】
2019056960.tif 000025
【図１７Ａ】
2019056960.tif 000026
【図１７Ｂ】
2019056960.tif 000027
【図１８】
2019056960.tif 000028
【図１９】
2019056960.tif 000029
【図２０】
2019056960.tif 000030
【図２１】
2019056960.tif 000031
【図２２】
2019056960.tif 000032