JP6897446B2 - 探索方法、探索プログラムおよび探索装置 - Google Patents

探索方法、探索プログラムおよび探索装置 Download PDF

Info

Publication number
JP6897446B2
JP6897446B2 JP2017179396A JP2017179396A JP6897446B2 JP 6897446 B2 JP6897446 B2 JP 6897446B2 JP 2017179396 A JP2017179396 A JP 2017179396A JP 2017179396 A JP2017179396 A JP 2017179396A JP 6897446 B2 JP6897446 B2 JP 6897446B2
Authority
JP
Japan
Prior art keywords
node
search
evaluation value
learning
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017179396A
Other languages
English (en)
Other versions
JP2019056960A (ja
Inventor
多湖 真一郎
真一郎 多湖
小林 健一
健一 小林
喜則 坂本
喜則 坂本
井形 伸之
伸之 井形
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017179396A priority Critical patent/JP6897446B2/ja
Priority to US16/134,161 priority patent/US10977313B2/en
Publication of JP2019056960A publication Critical patent/JP2019056960A/ja
Application granted granted Critical
Publication of JP6897446B2 publication Critical patent/JP6897446B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/042Knowledge-based neural networks; Logical representations of neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、探索方法、探索プログラムおよび探索装置に関する。
グラフ構造のデータを機械学習する技術が知られている。具体的には、巨大な知識ベースの中で与えられた設定問題に適したグラフを切り出して、ニューラルネットワークに入力して学習モデルの学習を行わせることが知られている。ここで、設定問題とは、設定した集合に対して設定した分類を判別することであり、例えば「企業が優良かどうか。」という問題である。
図22は、グラフ構造の学習を説明する図である。図22に示すように、一般的には、複数のグラフ構造の学習データを学習し、学習データのうちどの部分が設定問題と関連が強かった、すなわち判別の推定に有用だったかを判別する。図22の例は、企業の格付けがAAであることが、優良かどうかの判別に関連が強いことがわかった例を示している。
"人やモノのつながりを表すグラフ構造のデータから新たな知見を導く新技術「Deep Tensor」を開発"、[online]、2016年10月20日、富士通、[2017年9月1日検索]、インターネット(URL:http://pr.fujitsu.com/jp/news/2016/10/20.html)
しかしながら、上記技術では、複数のノードおよび複数のエッジを有する巨大な知識ベースの中から設定問題に適切な学習データの範囲を決定することが難しい。例えば、学習のためのメモリやプロセッサなどのリソースには限りがあるので、全てのノードやエッジを学習対象とすることは難しいが、設定問題に影響を与えるノードを人為的に決定することは現実的ではない。
また、設定問題の起点からのホップ数で区切ることも考えられるが、ホップ数が少ないノード等の設定問題に与える影響度が大きいとは限らず、ホップ数が多いノード等の設定問題に与える影響度が小さいとは限らない。このため、起点から遠い位置にある有用なノード等を切り出すことができない場合があり、結果として学習精度が劣化する。
一つの側面では、巨大な知識ベースの中から問題設定に適切な学習データの範囲を決定することができる探索方法、探索プログラムおよび探索装置を提供することを目的とする。
第1の案では、探索方法は、コンピュータが、複数のノードが接続される全体グラフから選択された起点ノードに接続される複数のノードまたはエッジそれぞれの属性と設定問題との関連性に基づき、探索対象のノードおよびエッジである探索範囲を設定する。探索方法は、コンピュータが、前記全体グラフから前記探索範囲で抽出された複数のグラフによる前記設定問題の学習モデルによる学習結果に基づき、前記探索範囲に含まれるノードおよびエッジそれぞれの評価値を生成する。探索方法は、コンピュータが、前記探索範囲に含まれるノードおよびエッジそれぞれの前記評価値、および、前記探索範囲に含まれるノードおよびエッジそれぞれの前記属性と前記設定問題との関連性に基づき、探索対象のノードおよびエッジを更新し探索を行う。
一実施形態によれば、巨大な知識ベースの中から問題設定に適切な学習データの範囲を決定することができる。
図1は、実施例1にかかる学習の全体構成例を説明する図である。 図2は、実施例1にかかる学習装置の機能構成を示す機能ブロック図である。 図3は、知識ベースDBに記憶される情報の例を示す図である。 図4は、属性情報DBに記憶される情報の例を示す図である。 図5は、学習データDBに記憶される情報の例を示す図である。 図6は、切出し処理を説明する図である。 図7は、拡大縮小処理を説明する図である。 図8は、優先末端の設定処理を説明する図である。 図9は、削除遅延処理を説明する図である。 図10Aは、学習データの生成処理の流れを示すフローチャートである。 図10Bは、学習データの生成処理の流れを示すフローチャートである。 図11は、探索開始時のメモリの初期化状況を説明する図である。 図12は、起点と空パスの対をリーフ集合に追加した状態を説明する図である。 図13Aは、探索開始時を説明する図である。 図13Bは、探索開始時のメモリ格納状況を説明する図である。 図14Aは、探索開始後の状態1を説明する図である。 図14Bは、状態1のメモリ格納状況を説明する図である。 図14Cは、状態1での切出し範囲の追加を説明する図である。 図14Dは、状態1での学習結果を示す図である。 図15Aは、状態2のメモリ格納状況を説明する図である。 図15Bは、状態2での学習結果を示す図である。 図16Aは、状態3のメモリ格納状態を説明する図である。 図16Bは、状態3での切出し範囲の追加を説明する図である。 図17Aは、切出し範囲の縮小を説明する図である。 図17Bは、切出し範囲の更なる縮小を説明する図である。 図18は、パス長制約の変更例を示す図である。 図19は、切出し範囲の縮小を説明する図である。 図20は、学習結果を示す図である。 図21は、ハードウェア構成例を示す図である。 図22は、グラフ構造の学習を説明する図である。
以下に、本願の開示する探索方法、探索プログラムおよび探索装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は矛盾のない範囲内で適宜組み合わせることができる。
[全体構成例]
図1は、実施例1にかかる学習の全体構成例を説明する図である。図1に示すように、実施例1にかかる学習装置10は、探索装置の一例である。学習装置10は、知識ベースから学習データとなるグラフを抽出して学習することで、学習モデルを生成する。そして、学習装置10は、生成された学習モデルに、判別したいデータを入力して判別結果を出力する。
ここで、知識ベースとは、企業内のデータ、Webデータ、SNS(Social Networking Service)などから取得した情報を解析して、データ間の関係をグラフで表現したものである。なお、本実施例では、一例として、SNSに投稿されたメッセージを収集して解析することで得られた知識ベースを用いる。
そして、本実施例では、図1に示す知識ベースにおいてA社やB社が「優良」企業であるという問題を設定し、この設定問題に対して関連性が強い部分を抽出して学習することで、学習モデルを生成する。
具体的には、学習装置10は、知識ベースから、A社が「優良」企業であることと関連性が強い部分のグラフを学習データ(A社)として抽出するとともに、B社が「優良」企業であることと関連性が強い部分のグラフを学習データ(B社)として抽出する。
ここで、学習装置10の限られたリソースの中で、どの範囲のグラフを学習データとして抽出するかが重要である。つまり、設定問題の起点からどの範囲までを学習データとするかが重要であり、ホップ数が少ない場合は起点から遠くになる重要なデータの取りこぼしが発生し、ホップ数が多い場合は不要なデータが多数含まれてしまうことやリソースの枯渇などが発生する。
そこで、学習装置10は、知識ベースを利用して、与えられた設定問題に対応して適切な学習データの抽出を行うために、設定問題に対応したグラフの切り出しの起点の設定、リソース制約の範囲内で起点からの最適な切出し範囲(抽出範囲)の探索、探索した切出し範囲の学習データを用いて学習された学習モデルによる判別を実行する。
例えば、学習装置10は、複数のノードが接続される全体グラフから選択された起点ノードに接続される複数のノードまたはエッジそれぞれの属性と設定問題との関連性に基づき、探索対象のノードおよびエッジである探索範囲を設定する。続いて、学習装置10は、全体グラフから探索範囲で抽出された複数のグラフによる設定問題の学習モデルによる学習結果に基づき、探索範囲に含まれるノードおよびエッジそれぞれの評価値を生成する。その後、学習装置10は、探索範囲に含まれるノードおよびエッジそれぞれの評価値、および、探索範囲に含まれるノードおよびエッジそれぞれの属性と設定問題との関連性に基づき、探索対象のノードおよびエッジを更新し探索を行う。この結果、学習装置10は、巨大な知識ベースの中から問題設定に適切な学習データの範囲を決定することができる。
そして、学習装置10は、このような探索によって得られた学習データを教師データとしてニューラルネットワークに入力して学習することで、学習モデルを生成する。その後、学習装置10は、判別したC社のデータを学習モデルに入力し、C社が「優良」企業であるなどの判別結果を出力する。なお、学習データの数、判別結果、設定問題、知識ベースなどはあくまで一例であり、これに限定されるものではない。また、ここでは、学習装置10が学習と判別とを実行する例を説明するが、学習装置と判別装置とは別々の筐体で実現することもできる。
[機能構成]
図2は、実施例1にかかる学習装置10の機能構成を示す機能ブロック図である。図2に示すように、学習装置10は、通信部11、記憶部12、制御部20を有する。
通信部11は、他の装置の間の通信を制御する処理部であり、例えば通信インタフェースカードなどである。例えば、通信部11は、管理者などの端末から学習指示や判別対象データを受信し、管理者などの端末やディスプレイなどの表示部に、学習結果や判別結果を出力する。
記憶部12は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部12は、知識ベースDB13、属性情報DB14、学習データDB15、学習済みモデルDB16を記憶する。
知識ベースDB13は、学習データの抽出元である知識ベースを記憶するデータベースである。図3は、知識ベースDB13に記憶される情報の例を示す図である。図3に示す知識ベースは、SNSに投稿されたメッセージを解析して得られたデータ間の関係性を示すグラフ構造のデータである。
図3の丸内の文字列は、URI(Uniform Resource Identifier)などを特定するノードであり、四角内の文字列は、数値や文字列を直接に記述したノードであり、いわゆるリテラルなどと呼ばれる。また、図3内の矢印は、ノード間の関係性を示すエッジである。また、図3内の太線の矢印は、後述する静的評価値が高いエッジを示す。
例えば、図3の例では、ノード「A、B」とノード「SNS T」とがエッジ「発言者」で接続されるとともに、ノード「SNS T」とノード「A社」とがエッジ「企業」で接続される。この関係性は、「A」と「B」が企業である「A社」に対する発言をSNSに投稿したことを示す。
また、ノード「E、F」とノード「SNS T」とがエッジ「発言者」で接続され、ノード「SNS T」とノード「B社」とがエッジ「企業」で接続され、ノード「B社」とノード「優良」とがエッジ「優良」で接続され、ノード「B社」とノード「大工工事業」とがエッジ「業種」で接続され、ノード「B社」とノード「A」とがエッジ「格付」で接続される。この関係性は、「E」と「F」が企業である「B社」に対する発言をSNSに投稿したことを示し、「B社」は、「優良」企業であり、「大工工事業」を行う業種であり、格付が「A」であることを示す。
図2に戻り、属性情報DB14は、知識ベースを構成する各ノードおよび各エッジに関する情報を記憶するデータベースである。具体的には、属性情報DB14は、ノードやエッジに付加される付加情報を記憶する。図4は、属性情報DB14に記憶される情報の例を示す図である。図4に示すように、属性情報DB14は、「No、種別、属性、関連性、静的評価値、動的評価値」を対応付けて記憶する。
ここで記憶される「No」は、属性情報DB14のレコードを識別する情報である。「種別」は、ノードかエッジかを示す情報である。「属性」は、ノードやエッジに付されているラベルである。「関連性」は、該属性と他の属性との関連性を特定する情報であり、該属性と接続される各ノード、該属性と他の属性とを接続するエッジ、接続関係などを示し、例えば「ノード(エッジ)」などで示される。「静的評価値」は、予め定められた評価値であり、例えば語彙のオントロジー上での近さなどを用いた指標である。「動的評価値」は、学習グラフの探索過程で実行される機械学習時によって算出される評価値であり、機械学習のたびに更新される。例えば、「動的評価値」は、対象のグラフの分類を判別するために、そのノードおよびエッジがどれだけ関与したかを表すものであり、通常の機械学習においては、特徴量の特徴ランキングによって特徴選択が行われ、特徴ランキングに使う指標を採用することができる。
図4の例では、ノードである「A社」は、ノード「優良」とエッジ「優良」で接続されるとともに、ノード「AA」とエッジ「格付」で接続され、静的評価値として「1」が設定されており、動的評価値が未設定であることを示す。なお、接続関係は、エッジの向きなどを対応付けることもできる。また、静的評価値や動的評価値は、算出または設定される値そのものを設定することもできるが、ここでは、説明を簡略化するために、一例として、閾値以上の値を有する場合に「1」、閾値未満の値を有する場合に「0」を設定した例で説明する。
学習データDB15は、後述する制御部20によって生成された学習データであり、設定問題に対して適切なノードおよびエッジが抽出された学習データを記憶するデータベースである。図5は、学習データDB15に記憶される情報の例を示す図である。図5に示すように、学習データDB15は、学習データ(A社)と学習データ(B社)を記憶する。なお、学習データ(A社)は、ノード「A社、SNS T、SNS T、がたいがいい、色黒、AA、優良」から構成されるグラフ構造のデータである。また、学習データ(B社)は、ノード「B社、SNS T、がたいがいい、A、優良」から構成されるグラフ構造のデータである。
学習済みモデルDB16は、学習データDB15に記憶される学習データを用いて学習された結果である学習モデルを記憶するデータベースである。例えば、学習済みモデルDB16は、ニューラルネットワークの各種重み係数などを記憶する。
制御部20は、学習装置10全体を司る処理部であり、例えばプロセッサなどである。この制御部20は、学習データ生成部21、学習部22、判別部23を有する。なお、学習データ生成部21、学習部22、判別部23は、プロセッサなどの電子回路の一例やプロセッサが実行するプロセスの一例である。
学習データ生成部21は、設定部21aと探索部21bを有し、知識データから学習に最適な学習データの探索を実行し、学習データの生成を実行する処理部である。また、学習データ生成部21は、メモリなどのリソースの制約を考慮して、動的評価数の高いノードが所定数以上含まれるように、定められたリソースの範囲内で切出し範囲の探索を実行する。
設定部21aは、問題設定に対応したグラフの切り出しの起点と解へのパスの設定を実行する処理部である。具体的には、設定部21aは、管理者等による指示にしたがって、問題、起点、解、解へのパスなどを設定する。すなわち、設定部21aは、設定問題をグラフ問題へ変換する。具体的には、入力となるグラフの起点の集合とその解へのパスを設定する。起点からパスをたどった先に値がない部分の値を推定し、パスをたどった先に値がある場合は学習データのサンプルの一つとして利用する。
例えば、設定部21aは、図3に示す知識ベースに対して、「起点、解」として「A社、優良」と「B社、優良」を設定する。さらに、設定部21aは、起点であるノード「A社」から解であるノード「優良」へのパスを設定することで、「A社→優良」の問題を設定する。同様に、設定部21aは、起点であるノード「B社」から解であるノード「優良」へのパスを設定することで、「B社→優良」の問題を設定する。
探索部21bは、設定部21aによって設定された設定問題に対して、関係性の学習に適したグラフの切り出し範囲を探索する処理部である。具体的には、探索部21bは、学習に入力するための学習データの最適な範囲を探索する。グラフの範囲が小さいと解を判別するための情報が少ないために、判別精度が落ちてしまう。精度を向上させるために、グラフの範囲は大きくしたいが、リソースの制約があるために、それほど大きくすることはできない。すなわち、探索部21bは、グラフサイズを抑えつつ、判別精度があがるような情報が学習データの切り出し範囲に入るように、最適なグラフ範囲を探索する。
例えば、探索部21bは、(1)優先切出し処理、(2)拡大縮小処理、(3)優先末端の設定処理、(4)削除遅延処理を任意に組み合わせて、グラフの切り出し範囲を探索する。ここでは、各処理について具体的に説明する。
(1)優先切出し処理
優先切出し処理は、静的評価値の高い属性を探索した場合に、そのノードかエッジを優先的に切出し範囲に入れる処理である。図6は、切出し処理を説明する図である。図6では、A社の学習データの探索を例にして説明するが、B社についても同様に処理することができる。
図6に示すように、探索部21bは、起点から数ホップ以内にあるノードおよびエッジの中から静的評価値が高いノードまたはエッジを切出し範囲に含める。例えば、探索部21bは、起点から1ホップに位置するノードおよびエッジについては、すべて切出し範囲に含め、起点から2ホップに位置するノードおよびエッジについては、静的評価値の高いエッジおよびそのエッジに接続されるノードのみを切出し範囲に含める。
図6の例では、探索部21bは、起点「A社」から1ホップに位置するエッジ「業種、格付、事業部、^企業」を切出し範囲に入れるとともに、起点「A社」から1ホップに位置するノード「SNS T」、「土木工事業」、「AA」、「AX事業部」を切出し範囲に入れる。ここで、ノード「優良」は、解であることから切出し範囲には入れず、エッジ「優良」も解へのパスであることから切出し範囲には入れない。なお、本実施例では、矢印の向きを遡る逆パスについては「^」で記述することとする。例えば、「^企業」は、エッジ「企業」の逆パスを示す。
続いて、探索部21bは、起点「A社」から2ホップに位置するエッジのうち、静的評価値が高い「評判」を切出し範囲に含めるとともに、エッジ「評判」の葉であるノード「がたいがいい」と「色黒」を切出し範囲に含める。この結果、探索部21bは、図6の点線の範囲を切出し範囲に含めることができる。
(2)拡大縮小処理
拡大縮小処理は、静的評価値または動的評価値の高い属性を切出し範囲に含めるように、切出し範囲の末端に対して、周辺のノードとエッジの各評価値を用いて、切出し範囲のどこを拡大し、どこを縮小するかを決定する処理である。図7は、拡大縮小処理を説明する図である。図7では、A社の学習データの探索を例にして説明するが、B社についても同様に処理することができる。
図7の(a)は、上記(1)から(4)の処理や探索時の学習処理によって探索された切出し範囲を示す図である。この状態で、探索部21bは、ノード「がたいがいい」とノード「SNS T」とを接続するエッジ「評判」の静的評価値が高いことから、エッジ「評判」の葉である各ノード「SNS T」を切出し範囲に含める。また、探索部21bは、切出し範囲にあるノード「AX事業部」の静的評価値と動的評価値がともに低いことから、ノード「AX事業部」以降のノードおよびエッジを切出し範囲から除外する。
したがって、探索部21bは、図7の(b)に示すように、図7の(a)の状態から領域Aの部分を新たに追加し、領域Bの部分を削除した切出し範囲に変更する。この結果、探索部21bは、多少距離が遠いエッジでも静的評価値が高ければ、優先的に切り出し範囲に含めることができる。また、探索部21bは、静的評価値や動的評価値が高いノードやエッジについては、切り出し範囲を縮めるときに、優先的に切り出し範囲に残すことができる。
(3)優先末端の設定処理
優先末端の設定処理は、静的評価値や動的評価値により単純に削除対象と決定されるノードであっても、複合的に設定問題と関連する組を見つけるために、片側にあたるものについては一定の範囲で削除せずに残しておけるように、削除の対象とならない切り出し範囲内の末端を決める処理である。すなわち、優先末端の設定処理は、通常であれば、上記(1)や(2)などの処理によって削除されるノードについて、他のノードやエッジとの関係性を判断するまで、一時的に削除対象から除外する。なお、本実施例では、削除の対象とならない切り出し範囲内の末端を「優先末端」と記載する場合がある。
図8は、優先末端の設定処理を説明する図である。図8の(a)の状態では、探索部21bは、ノード「A社」から繋がる2つのノードのうち、エッジ「業種」に関連するノード「土木工事業」とノード「建設業」とを含む領域Cを「優先末端」に設定して削除対象から除外した上で、図8の(b)に示すように、ノード「SNS T」側の探索を行う。
このようにすることで、ノード「SNS T」側の探索時に、各評価値が低いことから削除される対象ノードであっても、領域Cと関係性が強く、学習によって動的評価値が高くなるノードを探索することができる。
したがって、一定の範囲は入れ替わらずに残るので、その範囲と、次々と入れ替わる他の範囲との組み合わせが設定問題と関連するかを調べることができる。また、削除しない末端を変更するタイミングを調整することで、網羅的に隅々探索するか、全体的にざっくり探索するかを調整できる。
また、削除しない末端が少ないと、他を削除しないパターンが増えるが、他の範囲を深くすることができ、削除しない末端が多ければ、他のパターンが減るが、リソース制限により他の範囲を深くすることができない。したがって、削除しない末端の数を調整することで、他の範囲を深く探索するようにするのか、試行回数を減らすのかを調整できる。
(4)削除遅延処理
削除遅延処理は、各評価値により単純に一斉に削除されると決まってしまうノードであっても、複合的に設定問題と関連する組を見つけるために、各評価値の高さに応じてノードの削除を遅延させて、多くの組み合わせを試せるように、ノードの総合評価値に応じた遅延条件を設定する処理である。
具体的には、探索部21bは、評価値が高いか低いかによって決定される総合評価値が予め設定した遅延条件を満たすか否かを判定して、該当ノードの削除を遅延させるか否かを判定する。例えば、探索部21bは、総合評価値として、動的評価値が高いときは「ホップ数−2」を算出し、静的評価値が高いときは「ホップ数−8」を算出し、各評価値がともに高いときは「ホップ数−10」を算出し、各評価値がともに低いときは「ホップ数−0」を算出する。そして、探索部21bは、遅延条件「総合評価値≦判定値(4−伸ばしたホップ数)」を満たす場合は、該当ノードの削除を遅延させ、遅延条件を満たさない場合は該当ノードを削除する。なお、伸ばしたホップ数とは、直前に切り出し範囲に含まれるようになったノードの起点からのパスのホップ数を示す。
図9は、削除遅延処理を説明する図である。図9に示すように、探索部21bは、起点「A社」から2ホップ目のノード「AXX部」を削除するときに、このノード「AXX部」の削除を遅延させるか否かを判定する。つまり、探索部21bは、3ホップ目に位置するノード「X Pro.」を探索範囲に入れるかどうかを判定する。
例えば、探索部21bは、各評価値がともに低いときは、総合評価値「2ホップ数−0=2」が判定値「4−3ホップ=1」よりも大きくなり、遅延条件を満たさないので、3ホップ目に位置するノード「X Pro.」を探索範囲に入れずに、他の探索を実行する。一方、探索部21bは、各評価値がともに高いときは、総合評価値「2ホップ数−2=0」が判定値「4−3ホップ=1」よりも小さくなり、遅延条件を満たすので、3ホップ目に位置するノード「X Pro.」を探索範囲に入れて、次の探索を実行する。このようにすることで、一部のノードは削除が遅延されるので、複合条件を見つけられる可能性を高めることができる。
図2に戻り、学習部22は、学習データDB15に記憶される学習データをニューラルネットワークに入力して学習する処理部である。具体的には、学習部22は、学習データ生成部21で探索して切り出された範囲に対応するグラフを構築し、グラフの分類が学習できる学習技術を用いて学習する。例えば、学習部22は、学習データDB15から学習データAを読み出してニューラルネットワークに入力して出力を得る。そして、学習部22は、出力値とラベル「優良」との誤差が小さくなるように学習する。
その後、学習部22は、所定回数の学習が実行された場合誤差が所定値より小さくなった場合に学習を終了し、各種パラメータを学習済みモデルDB16に格納する。なお、ニューラルネットワークは、RNN(再帰型ニューラルネットワーク:Recurrent Neural Network)など様々なニューラルネットワークを用いることができる。また、学習方法は、誤差逆伝播法など様々な手法を採用することができる。
判別部23は、学習結果を用いて、判別対象のデータを判別する処理部である。具体的には、判別部23は、学習部22で学習した結果の学習モデルをつかって、解が未知のものを推定する。すなわち、判別部23は、入力に対して起点を検索し、その起点から、学習データ生成部21で設定した切り出し範囲のグラフを構築し、そのグラフを学習モデルで判別し、推定値を得る。
例えば、判別部23は、学習済みモデルDB16から各種パラメータを読み出し、各種パラメータを設定したニューラルネットワークを構築する。そして、判別部23は、判別対象のデータから、学習データ生成部21で設定した範囲のグラフを切出して、ニューラルネットワークに入力して、判別結果を取得する。その後、判別部23は、判別結果をディスプレイに出力したり、管理端末に送信したり、記憶部12に格納したりする。
[処理の流れ]
図10Aと図10Bは、学習データの生成処理の流れを示すフローチャートである。図10Aに示すように、学習データ生成部21は、優先末端数とパス長制約を設定し(S101)、知識ベースの各属性が問題設定と関連するか評価し、静的評価値として属性情報DB14に登録する(S102)。なお、静的評価値は、管理者によって設定することもできる。
続いて、学習データ生成部21は、起点ごとの探索済み集合を空に設定し(S103)、起点と空パスの対を各リーフ集合に追加する(S104)。ここで、リーフ集合とは、知識ノードの各ノードおよび各エッジのうち、切り出し範囲に含まれるノードの集合である。また、探索済み集合とは、知識ノードの各ノードおよび各エッジのうち、接続しているエッジがすべて切り出し範囲に含まれているノードの集合である。
その後、学習データ生成部21は、各リーフ集合内のノードから数ホップを探索し(S105)、探索結果中に静的評価値が高いノードまたはエッジが存在するか否かを判定する(S106)。
そして、学習データ生成部21は、静的評価値が高いノードまたはエッジが存在する場合(S106:Yes)、探索開始ノードから見つけたエッジまでのエッジを切出し範囲に追加する(S107)。また、学習データ生成部21は、探索開始ノードから見つけたエッジまでのパスにあるノードすべてに対して、そのノードとそのノードの起点からのパスの対をリーフ集合に追加する(S108)。
続いて、学習データ生成部21は、エッジの外側ノードと起点から見つけたエッジまでのパスの対をリーフ集合に追加する(S109)。そして、学習データ生成部21は、リーフ集合からランダムに探索済みでないパスをいくつか選択し(S110)、選択したパスと対になっているノードに接続しているエッジを検索する(S111)。
その後、学習データ生成部21は、未処理のエッジがある場合(S112:Yes)、エッジの外側ノードが探索済み集合に入っているか否かを判定する(S113)。ここで、学習データ生成部21は、エッジの外側ノードが探索済み集合に入っていない場合(S113:No)、エッジを切出し範囲に追加し(S114)、外側ノードをリーフ集合に追加して(S115)、S112以降の処理を繰り返す。
一方、学習データ生成部21は、エッジの外側ノードが探索済み集合に入っている場合(S113:Yes)、ノードのパスが優先末端である、あるいは、優先末端が規定数存在しないか否かを判定する(S116)。
ここで、学習データ生成部21は、ノードのパスが優先末端である、あるいは、優先末端が規定数存在しない場合(S116:Yes)、元の選んだパスを優先末端に変更(新規の時は追加)して(S117)、S112以降を繰り返す。一方、学習データ生成部21は、ノードのパスが優先末端ではない、あるいは、優先末端が規定数存在する場合(S116:No)、S117を実行することなく、S112以降を繰り返す。
そして、S112において、未処理のエッジがない場合(S112:No)、学習データ生成部21は、元の選んだパスとノードの対を探索済み集合に追加する(S118)。そして、学習データ生成部21は、切り出し範囲のサイズがリソース上限を超えた場合(S119:Yes)、優先末端以外の探索済み集合にある極大なパスを検索する(S120)。
続いて、学習データ生成部21は、その先のパスで遅延条件を満たさないものがあれば残し(S121)、残ったパスに対応するノードを探索済み集合から検索し(S122)、探索済み集合からノードを削除する(S123)。
その後、学習データ生成部21は、図10Bの示すように、そのノードが接続しているエッジを切り出し範囲から検索し(S124)、未処理のエッジがあるか否かを判定する(S125)。
そして、学習データ生成部21は、未処理のエッジがあり(S125:Yes)、エッジの反対側のノードが探索済み集合に含まれていない、かつ、遅延条件を満たさない場合(S126:No)、そのエッジを切出し範囲から除外する(S127)。一方、学習データ生成部21は、エッジの反対側のノードが探索済み集合に含まれている、または、遅延条件を満たす場合(S126:Yes)、S127を実行せずにS125以降を繰り返す。
そして、学習データ生成部21は、反対側ノードが接続しているエッジが切り出し範囲に存在しない場合(S128:Yes)、リーフ集合から反対側ノードを削除し(S129)、S125以降を繰り返す。一方、学習データ生成部21は、反対側ノードが接続しているエッジが切り出し範囲に存在する場合(S128:No)、S129を実行せずにS125以降を繰り返す。
そして、S125において未処理のエッジがない場合(S125:No)、学習データ生成部21は、切り出し範囲のサイズがリソース上限をまだ超えているかを判定し(S130)、超えている場合(S130:Yes)、パス長制約を1減らすか、優先末端を変更するかを実行して(S131)、S120以降の処理を実行する。
一方、学習データ生成部21は、切り出し範囲のサイズがリソース上限を超えていない場合(S130:No)、規定以上のグラフになっているか否かを判定する(S132)。ここで、学習データ生成部21は、規定以上のグラフになっていない場合(S132:No)、S105以降を繰り返す。
一方、学習データ生成部21は、規定以上のグラフになっている場合(S132:Yes)、切り出し範囲でグラフを作成し、ニューラルネットワークを用いて学習し(S133)、学習グラフ中の各エッジの動的評価を実行して属性情報DB14に登録する(S134)。
そして、学習データ生成部21は、高い動的評価値が規定数以上存在する場合(S135:Yes)、その時点のグラフを学習データとして学習データDB15に登録して生成処理を終了し、高い動的評価値が規定数未満しか存在しない場合(S135:No)、S105以降を繰り返す。
なお、S106において、静的評価値が高いノードまたはエッジが存在しない場合(S106:No)、S110以降が実行される。また、切り出し範囲のサイズがリソース上限を超えない場合(S119:No)、S132以降が実行される。
[具体例]
次に、図11から図20を用いて、上述した処理の具体例を説明する。ここでは、図3に示した知識ベースから適切なグラフの範囲を探索して、学習データ(A社)と学習データ(B社)とを生成する例で説明する。また、ここでは、説明をわかりやすくするために、図11に示す図を用いて、メモリ状況を可視化して説明する。図11は、探索開始時のメモリの初期化状況を説明する図である。図11に示すように、本実施例では、A社とB社のそれぞれについて、リーフ集合と切出し範囲と動的評価結果を示す領域と、探索済み集合を示す領域とを用いて説明する。
また、具体例では、計算機のリソース制限は切り出し範囲に合計35エッジ(リソース制限値)まで入れられるものとする。また、総合評価値は、静的評価値が高い属性=2、動的評価値が高い属性=8、両評価値が高い=10、両評価値が低い=0と定義する。また、高い動的評価値が6つ以上入った時点で終了とする。また、優先末端数に1を設定、パス長制約に7を設定する。また、遅延条件の定義を「パス長+優先末端側の最大パス長−総合評価値≦パス長制約」とする。なお、優先末端側の最大パス長とは、起点から辿って対象となる優先末端を通ってリーフまで行くまでのパスの中で最大のパスの長さを示す。
(初期化)
まず、学習データ生成部21は、起点ごとに探索済み集合を空に設定し、起点と空パスの対をリーフ集合に追加する。図12は、起点と空パスの対をリーフ集合に追加した状態を説明する図である。図12に示すように、学習データ生成部21は、A社に関して、リーフ集合に、起点であるノード「A社」と「/(空パス)」との対を追加するとともに、探索済み集合を空にする。同様に、学習データ生成部21は、B社に関して、リーフ集合に、起点であるノード「B社」と「/(空パス)」との対を追加するとともに、探索済み集合を空にする。
(探索開始時)
続いて、学習データ生成部21は、リーフ集合内のノードから数ホップ先まで探索して、静的評価値が高いエッジを探索する。図13Aは、探索開始時を説明する図であり、図13Bは、探索開始時のメモリ格納状況を説明する図である。図13Aに示すように、学習データ生成部21は、起点「A社」および起点「B社」について、例えば2ホップ先までを探索範囲に決定する。そして、学習データ生成部21は、静的評価値が高いエッジである「格付」と「評判」を見つける。なお、エッジ「優良」は、解なので除外する。
その後、学習データ生成部21は、開始探索ノードから見つけたエッジまでのエッジを切り出し範囲に追加する。また、学習データ生成部21は、探索開始ノードから見つけたエッジまでのパスにあるノードすべてに対して、そのノードとそのノードの起点からのパスの対をリーフ集合に追加する。さらに、学習データ生成部21は、エッジの外側ノードと起点から見つけたエッジまでのパスの対をリーフ集合に追加する。
この結果、学習データ生成部21は、図13Bに示すように、ノードおよびエッジを切出し範囲に追加する。具体的には、学習データ生成部21は、「A社」について、開始探索ノード「A社」から2ホップ以内にあるエッジのうち、静的評価値の高いエッジ「格付」の葉ノードであるノード「AA」を追加する。同様に、学習データ生成部21は、静的評価値の高いエッジ「評判」の葉ノードである「がたいがいい」までのルートであるエッジ「企業」とノード「SNS T」とノード「がたいがいい」を追加する。また、学習データ生成部21は、静的評価値の高いエッジ「評判」の葉ノードである「色黒」までのルートであるエッジ「企業」とノード「SNS T」とノード「色黒」を追加する。
また、学習データ生成部21は、「B社」について、開始探索ノード「B社」から2ホップ以内にあるエッジのうち、静的評価値の高いエッジ「格付」の葉ノードであるノード「A」を追加する。同様に、学習データ生成部21は、静的評価値の高いエッジ「評判」の葉ノードである「がたいがいい」までのルートであるエッジ「企業」とノード「SNS T」とノード「がたいがいい」を追加する。この結果、A社について登録されたエッジ数が「6」、B社について登録されたエッジ数が「3」となる。まだ、学習が実行されていないので、動的評価値は未算出である。
(状態1)
続いて、学習データ生成部21は、リーフ集合から探索済みでないパスをランダムにいくつか選択し、選んだパスと対になっているノードに接続しているエッジを検索する。図14Aは、探索開始後の状態1を説明する図であり、図14Bは、状態1のメモリ格納状況を説明する図である。
具体的には、学習データ生成部21は、A社とB社の両方について、図13Bの状態から探索済みでない「/(空パス)」と「^企業」とを選択する。そして、学習データ生成部21は、A社について、図14Aに示すように、「/」と対になっているノードに接続するエッジとして、エッジ「業種」、「^企業」、「格付」、「優良」、「事業部」を検出し、「^企業」と対になっているノードに接続するエッジとして、エッジ「企業」、「発言者」、「評判」を検出する。
同様に、学習データ生成部21は、B社について、図14Aに示すように、「/」と対になっているノードに接続するエッジとして、エッジ「業種」、「^企業」、「格付」、「優良」を検出し、「^企業」と対になっているノードに接続するエッジとして、エッジ「企業」、「発言者」、「評判」を検出する。
その後、A社について、学習データ生成部21は、図14Bに示すように、エッジ「業種」の外側(葉)ノード「土木工事業」と、エッジ「事業部」の外側ノード「AX事業部」とが探索済み集合に入っていないので、切出し範囲にエッジ「業種」とエッジ「事業部」とを追加するとともに、リーフ集合にノード「土木工事業」と「AX事業部」とを追加する。また、学習データ生成部21は、「^企業」の外側ノード「A、B」および「C、D」と、エッジ「発言者」とが探索済み集合に入っていないので、切出し範囲にエッジ「発言者」を追加するとともに、リーフ集合にノード「A、B」と「C、D」とを追加する。
そして、学習データ生成部21は、自ノードと接続される周辺の各ノードがすでに探索済みであるノード「A社」とノード「SNS T」とノード「SNS T」とを、探索済み集合に入れる。
同様に、B社について、学習データ生成部21は、図14Bに示すように、エッジ「業種」の外側ノード「大工工事業」が探索済み集合に入っていないので、切出し範囲にエッジ「業種」を追加するとともに、リーフ集合にノード「大工工事業」を追加する。また、学習データ生成部21は、「^企業」の外側ノード「E、F」と、エッジ「発言者」とが探索済み集合に入っていないので、切出し範囲にエッジ「発言者」を追加するとともに、リーフ集合にノード「E、F」とを追加する。
そして、学習データ生成部21は、自ノードと接続される周辺の各ノードがすでに探索済みであるノード「B社」と、エッジ「^企業」で接続されるノード「SNS T」とを、探索済み集合に入れる。
この結果、A社について登録されたエッジ数が「10」、B社について登録されたエッジ数が「5」となる。まだ、学習が実行されていないので、動的評価値は未算出である。さらに、学習データ生成部21は、「企業」は外部ノードであり、優先末端が規定されていないので、「^企業」を優先末端に設定する。
ここで、初期学習基準をエッジ数の合計を「20」とすると、図14Bの段階では、切出し対象のエッジ数の合計が「15」であり、初期学習基準を満たさない。そこで、学習データ生成部21は、静的評価値の高いエッジ等を切出し範囲にさらに追加する。図14Cは、状態1での切出し範囲の追加を説明する図である。
学習データ生成部21は、企業Aについて、図14Bの状態から優先末端と接続されるエッジのうち、静的評価値が高いエッジ「^評判」を検出し、「^評判」の外部ノードであるノード「SNS T」を検索する。この結果、図14Cに示すように、学習データ生成部21は、ノード「がたいがいい」とエッジ「^評判」で接続されるノード「SNS T」と、ノード「色黒」とエッジ「^評判」で接続されるノード「SNS T」とをリーフ集合に追加し、エッジ「^評判」を切出し範囲に追加する。
同様に、学習データ生成部21は、企業Bについて、図14Bの状態から優先末端と接続されるエッジのうち、静的評価値が高いエッジ「^評判」を検出し、「^評判」の外部ノードであるノード「SNS T」を検索する。この結果、図14Cに示すように、学習データ生成部21は、ノード「がたいがいい」とエッジ「^評判」で接続される3つのノード「SNS T」をリーフ集合に追加し、エッジ「^評判」を切出し範囲に追加する。
この結果、A社について登録されたエッジ数が「12」、B社について登録されたエッジ数が「9」となり、合計エッジ数が「21」で初期学習基準「20」を越えたので、学習データ生成部21は、状態1で特定された切出し範囲で学習グラフを生成して、ニューラルネットワークに入力して学習を実行する。そして、学習データ生成部21は、学習結果で得られる動的評価値を属性情報DB14に登録する。
図14Dは、状態1での学習結果を示す図である。図14Dに示すように、状態1での学習グラフの学習によって、「格付=AA」の動的評価値が高くなった。しかし、動的評価値が高いものが1で目標の6に足りないので、切り出し範囲の変更を行う。
(状態2:切出し範囲の拡大)
続いて、学習データ生成部21は、状態1と同様の処理を実行して切出し範囲の拡大を実行する。具体的には、学習データ生成部21は、リーフ集合からランダムに探索済みでないパスをいくつか選択し、選んだパスと対になっているノードに接続しているエッジを検索する。ここでは、A社とB社とについて、学習データ生成部21は、「業種」と「^企業/評判」を選択し、「業種」では「^業種」と「^subClass」を検出し、「^企業/評判」では「^評判」を検出する。
そして、学習データ生成部21は、A社とB社とについて、エッジ「業種」−エッジ「^subClass」の外側ノード「建設業」が探索済み集合に入っていないので、切り出し範囲に「^subClass」を、リーフ集合に「建設業」を追加する。なお「^企業/評判」のエッジ「^評判」の一部はすでに探索済み集合入っているので、それについては何もしない。状態2で検出された残りのエッジについても同様に処理し、すべてのエッジが処理済みとなり、図15Aの状態がメモリに格納される。
図15Aは、状態2のメモリ格納状況を説明する図である。図15Aに示すメモリ格納状況は、図14Dと比較して、パス「業種/^subClass」のノード「建設業」がA社とB社の両方に追加されている。また、探索済みノードとして、A社に関してはノード「がたいがいい、色黒、工事業」が追加され、B社に関してはノード「がたいがいい、大工工事業」が追加される。また、学習データ生成部21は、「がたいがいい」および「色黒」が外部ノードであるので、「^企業/評判」を優先末端に設定する。
そして、学習データ生成部21は、切り出し範囲の合計エッジ数「22」がリソース制限「35」を超えていないので、状態2で特定された切出し範囲で学習グラフを生成して、ニューラルネットワークに入力して学習を実行する。そして、学習データ生成部21は、学習結果で得られる動的評価値を属性情報DB14に登録する。
図15Bは、状態2での学習結果を示す図である。図15Bに示すように、状態2での学習グラフの学習によって、A社については、「格付=AA」と「業種/^subClass=建設業」と「^企業/評判=がたいがいい」の動的評価値が高くなり、B社については、「業種/^subClass=建設業」と「^企業/評判=がたいがいい」の動的評価値が高くなった。この結果、「業種」と「評判」の組み合わせで判別精度を向上できることを発見できた。また、静的評価値の高い評判情報を早々に切り出し範囲に含めていたために、この組み合わせを少ない試行回数で見つけることができた。しかし、動的評価値が高いものが5で目標の6に足りないので、切り出し範囲の変更を行う。
(状態3)
続いて、学習データ生成部21は、状態1や状態2と同様の処理を実行して切出し範囲の拡大を実行する。具体的には、学習データ生成部21は、リーフ集合内のノードから2ホップ以内を探索し、静的評価値が高い「優良」と「格付」を見つけ、切り出し範囲にそれらが入るようにする。これにより、学習データ生成部21は、静的評価値が高く、起点から遠い「^企業/評判/^評判/^企業/優良」と「^企業/評判/^評判/^企業/格付」のパスを優先的に切り出し範囲に入れる。
この結果、状態3では、図16Aのようなメモリ格納状態となる。図16Aは、状態3のメモリ格納状態を説明する図である。図16Aに示すように、学習データ「A社」に関して、ノード「B社」およびノード「B社」に接続されるノード「優良」や「A」が追加されるとともに、ノード「C社」およびノード「C社」に接続されるノード「BB」が追加される。また、図16Aに示すように、学習データ「B社」に関して、起点「A社」に関連する各ノードが追加されるとともに、ノード「C社」およびノード「C社」に接続されるノード「BB」が追加される。この状態で、エッジ数の合計が「33」であり、動的評価値の高いエッジ数は変わらず「5」のままである。
さらに、学習データ生成部21は、継続して、静的評価値が低いものについても切り出し範囲を広げる。具体的には、学習データ生成部21は、学習データ「A社」に関して、エッジ「発言者」−ノード「E、F」と、エッジ「発言者」−ノード「I、J」と、エッジ「格付」−ノード「AXX部」とを追加する。同様に、学習データ生成部21は、学習データ「B社」に関して、エッジ「発言者」−ノード「A、B」と、エッジ「発言者」−ノード「C、D」と、エッジ「発言者」−ノード「I、J」とを追加する。
この結果、メモリ格納状態は、図16Aの状態から図16Bのように更新される。図16Bは、状態3での切出し範囲の追加を説明する図である。図16Bに示すように、学習データ「A社」に関して、上述したように3つのエッジとそれに関連するノードが追加される。また、図16Bに示すように、学習データ「B社」に関して、上述したように3つのエッジとそれに関連するノードが追加される。また、学習データ生成部21は、A社に関して、周辺ノードが探索されたノード「AX事業部」と2つの「SNS T」とを探索済み集合に入れ、B社に関して、周辺ノードが探索された2つの「SNS T」を探索済み集合に入れる。
この状態で、動的評価値の高いエッジ数は変わらず「5」のままであるが、エッジ数の合計が「38」となり、リソース制限値の「35」を超える。このため、学習データ生成部21は、リソースの関係上、切出し範囲の縮小を行う。
(状態4:切出し範囲の縮小)
続いて、学習データ生成部21は、優先末端以外の探索済み集合にある極大なパスである「業種」と「事業部」を特定し、これらについて切出し範囲の縮小を判定する。
まず、学習データ生成部21は、「業種」の先のパス「業種/^subClass」に関して遅延条件をチェックする。ここでは、学習データ生成部21は、パス「業種/^subClass」の動的評価値が高いことから、総合評価値「ホップ数−8」がパス長制約よりも小さいか否かを判定する。ホップ数は、「業種/^subClass」のパス長2と「^企業/評判/^評判/^企業/格付」の最大パス長5を加算した7である。したがって、学習データ生成部21は、総合評価値「7−8=−1」≦パス長制約(7)を満たすので、遅延条件を満たすと判定する。この結果、学習データ生成部21は、パス「業種/^subClass」を削除対象外とする。
次に、学習データ生成部21は、「事業部」の先のパス「事業部/部署」に関して遅延条件をチェックする。ここでは、学習データ生成部21は、パス「事業部/部署」の静的評価値も動的評価値もともに低いことから、総合評価値「ホップ数−0」がパス長制約よりも小さいか否かを判定する。ホップ数は、「事業部/部署」のパス長2と「^企業/評判/^評判/^企業/格付」の最大パス長5を加算した7である。したがって、学習データ生成部21は、総合評価値「7−0=7」≦パス長制約(7)を満たすので、遅延条件を満たすと判定する。この結果、学習データ生成部21は、パス「事業部/部署」を削除対象外とする。
ここで、切り出し範囲の合計エッジ数「39」から変化がなく、リソース制限「35」をまだ超えているので、パス長制約を一時的に減らして「6」にする。すると、学習データ生成部21は、「業種」の先のパス「業種/^subClass」に関しては、総合評価値「7−8=−1」≦パス長制約(6)を満たすので、依然として遅延条件を満たすと判定する。しかし、学習データ生成部21は、「事業部」の先のパス「事業部/部署」に関しては、総合評価値「7−0=7」≦パス長制約(6)を満たさないので、削除対象と判定する。
この結果、図17Aに示すように、学習データ生成部21は、リーフ集合と探索済み集合を更新する。図17Aは、切出し範囲の縮小を説明する図である。図17Aに示すように、学習データ生成部21は、「事業部」に対応するノードを探索済み集合から検索し、「AX事業部」を得る。続いて、学習データ生成部21は、「AX事業部」を探索済み集合から削除する。
また、学習データ生成部21は、「AX事業部」に接続しているエッジを切出し範囲から検索し、「A社」→「AX事業部」と「AX事業部」→「AXX部」を得る。そして、学習データ生成部21は、切出し範囲に関して、反対側のノード「A社」は探索済み集合に含まれているので何もしないが、反対側のノード「AXX部」は探索済み集合に含まれていないのでエッジを削除する。この結果、A社の切出し範囲のエッジ数が「21」から「20」になる。
続いて、学習データ生成部21は、縮小した切出し範囲について、エッジがないノードを検索する。図17Bは、切出し範囲の更なる縮小を説明する図である。図17Bに示すように、学習データ生成部21は、A社の切出し範囲にあるノード「AXX事業部」については、エッジが切り出し範囲内に存在しないので、切出し範囲から削除する。このようして、学習データ生成部21は、すべての削除候補エッジに対する処理を実行するが、切出し範囲の合計エッジ数「38」がリソース制限「35」をまだ超えているので、今度は優先末端を「業種」に変更する。
(状態5:切出し範囲の縮小)
続いて、学習データ生成部21は、優先末端「業種」以外の探索済み集合にある極大なパスである「^企業/評判/^評判」を特定する。そして、学習データ生成部21は、A社とB社に関して、その先パス「評判、企業/格付、企業/優良、発言者」のうち該当するパスについて切出し範囲の縮小を判定する。
具体的には、学習データ生成部21は、パス「^企業/評判/^評判/評判」について切出し範囲の縮小を判定する。例えば、学習データ生成部21は、静的評価値が高いことから、総合評価値「(評判)のパス長2+優先末端「業種」の最大パス長2−2=2」≦パス長制約(6)を満たすので、遅延条件を満たすと判定する。この結果、学習データ生成部21は、パス「^企業/評判/^評判/評判」を削除対象外とする。
また、学習データ生成部21は、パス「^企業/評判/^評判/発言者」について切出し範囲の縮小を判定する。例えば、学習データ生成部21は、各評価値が低いことから、総合評価値「(発言者)のパス長4+優先末端「業種」の最大パス長2−0=6」≦パス長制約(6)を満たすので、遅延条件を満たすと判定する。この結果、学習データ生成部21は、パス「^企業/評判/^評判/発言者」を削除対象外とする。
また、学習データ生成部21は、パス「^企業/評判/^評判/企業/格付」について切出し範囲の縮小を判定する。例えば、学習データ生成部21は、静的評価値が高いことから、総合評価値「(企業/格付)のパス長5+優先末端「業種」の最大パス長2−2=5」≦パス長制約(6)を満たすので、遅延条件を満たすと判定する。この結果、学習データ生成部21は、パス「^企業/評判/^評判/企業/格付」を削除対象外とする。
同様に、学習データ生成部21は、パス「^企業/評判/^評判/企業/優良」について切出し範囲の縮小を判定する。例えば、学習データ生成部21は、静的評価値が高いことから、総合評価値「(企業/優良)のパス長5+優先末端「業種」の最大パス長2−2=5」≦パス長制約(6)を満たすので、遅延条件を満たすと判定する。この結果、学習データ生成部21は、パス「^企業/評判/^評判/企業/優良」を削除対象外とする。
(状態6:パス長制約の変更後に再度の縮小)
ここで、学習データ生成部21は、すべてが遅延条件を満たすので、パス長制約を減らす。図18は、パス長制約の変更例を示す図である。図18に示すように、学習データ生成部21は、パス長制約を「6」から「5」に減らし、その他の情報は維持する。そして、学習データ生成部21は、再度、優先末端「業種」以外の探索済み集合にある極大なパスである「^企業/評判/^評判」のその先のパス「評判、企業/格付、企業/優良、発言者」のうち該当するパスについて切出し範囲の縮小を判定する。
すると、上述したように、パス「^企業/評判/^評判/発言者」については、総合評価値「2+2−2=2」≦パス長制約(5)を満たし、パス「^企業/評判/^評判/企業/優良」とパス「^企業/評判/^評判/企業/格付」についても、総合評価値「5+2−2=5」≦パス長制約(5)を満たす。しかし、パス「^企業/評判/^評判/発言者」については、総合評価値「4+2−0=6」≦パス長制約(5)を満たさない。このため、学習データ生成部21は、「発言者」が遅延条件を満たさないので、削除対象と判定する。
この結果、図19に示すように、学習データ生成部21は、リーフ集合と探索済み集合を更新する。図19は、切出し範囲の縮小を説明する図である。図19に示すように、学習データ生成部21は、「発言者」に対応するノードを探索済み集合から検索し、「SNS T」を得る。続いて、学習データ生成部21は、該当する「SNS T」をA社とB社の探索済み集合から削除する。
また、学習データ生成部21は、「SNS T」に接続しているエッジを切出し範囲から検索し、A社の切出し範囲から「SNS T」→「E、F」と「SNS T」→「I、J」を得る。そして、学習データ生成部21は、切出し範囲に関して、反対側のノード「SNS T」は探索済み集合に含まれていないので、「E、F」のノードおよびエッジと「I、J」のノードおよびエッジを削除する。この結果、A社の切出し範囲のエッジ数が「20」から「18」になる。
また、学習データ生成部21は、「SNS T」に接続しているエッジを切出し範囲から検索し、B社の切出し範囲から「SNS T」→「A、B」、「SNS T」→「C、D」、「SNS T」→「I、J」を得る。そして、学習データ生成部21は、切出し範囲に関して、反対側のノード「SNS T」は探索済み集合に含まれていないので、検索された各ノードおよびエッジを削除する。この結果、B社の切出し範囲のエッジ数が「18」から「15」になる。
このような処理によって、学習データ生成部21は、切り出し範囲の合計エッジ数が「33」であり、リソース制限「35」に収まったことから、切出し範囲で学習データを生成して、ニューラルネットワークに入力して学習を実行する。そして、学習データ生成部21は、学習結果で得られる動的評価値を属性情報DB14に登録する。
図20は、学習結果を示す図である。図20に示すように、A社については、「格付=AA」と「業種/^subClass=建設業」と「^企業/評判=がたいがいい」と「^企業/評判/^評判/^企業/優良=優良」の動的評価値が高くなり、B社については、「業種/^subClass=建設業」と「^企業/評判=がたいがいい」と「^企業/評判/^評判/^企業/優良=優良」の動的評価値が高くなった。この結果、学習データ生成部21は、動的評価値の高いノードが7個で規定数の6個以上あるので、学習データの生成を終了する。そして、学習データ生成部21は、この時点で切出し範囲に設定されたノードおよびエッジを切出して、学習データ(A社)と学習データ(B社)とを生成して、学習データDB15に格納する。
[効果]
上述したように、学習装置10は、推定に有用な情報が規定ホップ数外にある場合でも、推定に有用な情報が入っているパスを検出することができる。また、学習装置10は、様々なデータを連結して構築されている巨大な知識ベースの中で、データが抜け落ちた部分を他の周辺情報から推測するために、設定問題が与えられたときに、与えられた設定問題を解くのに十分な情報を含んでいる適切なグラフを切り出すことができる。また、学習装置10は、計算機のメモリなどの限られたリソース内での探索を行い、設定問題を解くのに最適な学習データの範囲を決定して、モデルの学習を行うことができる。
また、学習装置10は、学習に入力するための学習データの最適な範囲を探索する際に、グラフサイズを抑えつつ、判別精度があがるような情報が学習データの切り出し範囲を探索することができる。
ところで、実施例1の具体例で説明したいくつかの条件等は、あくまで一例であり、実施例1に限定されるものではない。そこで、実施例2では、各処理のバリエーションについて説明する。
(探索処理に事前条件に関するバリエーション)
具体例においては、切出し範囲の拡張時はランダムにリーフノードを選び、選ばれたノードは接続している全エッジを1ホップ拡張する例で説明したが、これに限定されるものではない。例えば、切出し範囲に含まれるノードのすべてについて1ホップ拡張するようにしてもいい。短いホップ数の範囲については網羅的に探索を行いたい場合は、ランダムに選ぶ方が好ましく、メモリ使用量を極力抑えたい場合は、ランダム以外の他の手法の方が好ましい。
また、ホップ数を複数ホップにしてもよい。特に実行初期の段階では、グラフも小さいため、1ホップずつ拡張するのではなく、数ホップをまとめて処理をしてしまった方が、処理速度の高速化が図れる。グラフは分岐をしているので、通常はホップ数が増えれば増えるほど、1ホップで増加するノードの数は多くなる。そのため、ホップ数が大きいときに、ホップ数を複数増やしてしまうと、リソース制限を大きく超えてしまう可能性が高まるので、実行中盤以降、拡張するホップ数は1に設定する方が好ましい。
また、具体例では、初期学習のタイミングとして、合計エッジ数が20以上(初期学習基準)のときに学習を開始する例を説明したが、これに限定されるものではない。例えば、切り出し範囲が小さい段階で早めに動的評価を行って、後の探索を効率的にやる場合には、初期学習基準に小さい値を設定することもできる。また、メモリに入るだけいれて、大きい切り出し範囲で、組み合わせの関連の発見を見据えて一気に学習する場合には、初期学習基準に大きい値を設定することもできる。
なお、具体例では、学習は早い段階で起こるよう閾値を下げておき、早めに動的評価値を出すことで、早い段階では、複合条件の一方だけが、切り出し範囲に入っている状態で判別特徴量評価を行い、単独では設定問題と関係しないことを示した。さらに、その後の段階で、もう片方の範囲が切り出し範囲に入ったときに、判別特徴量評価の結果、前者の動的評価値が高いということが分かるようになり、2つの範囲が組み合わせで関係することを示唆した。
(優先切出し処理に関するバリエーション)
具体例においては、静的評価値は高いか低いかの2値とし、静的評価値の高いエッジは切り出し範囲の端から例えば2ホップ先まで探索する例を説明した。また、具体例においては、静的評価値の高いエッジおよびノードが優先的に切り出し範囲に入るように、探索のホップ数は上述した通常の拡張よりも長いように規定した。なお、静的評価値は動的評価値よりも精度は高くないが、学習および判別特徴量評価を行わずに、事前に評価ができるので、メモリ制約がある中で優先的に切り出し範囲に含めることは有用である。
しかし、実施例はこれらの制約に限定されるものではない。例えば、静的評価値を多段階にすることにより、静的評価値に基づいてホップ数を変化させることもできる。例としては、静的評価値>第1の閾値のように、非常に静的評価値が高い場合は4ホップ先まで探索、第2の閾値<静的評価値<第1の閾値のように、ある程度高い場合は2ホップ先まで探索など、任意に設定することができる。
(拡大縮小処理に関するバリエーション)
具体例においては、動的評価値を高いか低いかの2値とする例を説明したが、これに限定されるものではない。例えば、動的評価値を多段階にすることにより、動的評価値に基づいて遅延条件を変化させることもできる。なお、動的評価値は、静的評価値よりも精度は高いので、メモリ制約がある中で遅延条件により優先的に切り出し範囲に留めておくことは有用である。
(優先末端の設定処理に関するバリエーション)
具体例では、優先末端数が1の場合を説明しているが、優先末端数を調整し、優先末端に関連した範囲に関連するメモリ使用量と、他の範囲のメモリ使用量とのバランスを制御することができる。
例えば、優先末端数を少なくすることで、他の範囲のメモリ使用量を相対的に増やし、他の範囲を深く探索することができる。また、高い動的評価値が存在する範囲が深い場所にある可能性が高い場合、優先末端あたりのメモリ使用量、および、他の末端のメモリ使用量の双方が多くなる可能性が高くなるので、優先末端数を少なくする探索を用いることもできる。また、高い動的評価値が存在する範囲が浅い場所にある可能性が高い場合は、優先末端数を多くしてもメモリ使用量の増加は、上述した場合に比べて多くはないので、優先末端数を多くすることで優先末端を取り換える回数を削減し、試行回数を減らした探索を行うこともできる。
(優先末端の変更契機に関するバリエーション)
具体例では、優先末端の変更契機を「切り出し範囲を狭くしても、まだリソース上限を超えている場合」として設定しているが、優先末端を変更するタイミングを調整することで、網羅的に隅々探索するか、全体的にざっくり探索するかを調整することもできる。
例えば、他の領域がすべて入れ替わるまで、優先末端を変化させない場合には、すべての組み合わせを試すことができるが、試行回数が増える。逆に、他の領域を網羅しきらないうちに優先末端を変更した場合には、試行回数が減るが、試していない組み合わせが増える。実施例1の方式では、他の領域の網羅はできないが、リソース上限までは探索できるので、効率的な探索を実行することができる。なお、変更契機としては、他の領域がとりうる範囲すべてのパターンを実行して網羅的な探索を行ってから変更する場合、ランダムに変更する場合、規定回数で変更する場合などを採用することができる。
(優先末端に関するバリエーション)
具体例においては、優先末端は探索済みノードの極大に設定する例を説明したが、これに限定されるものではない。ここで、グラフは分岐しているので、根元に優先末端があるとその先はすべて削除対象外となり、優先末端の範囲を広くできる。優先末端を伸ばすようにするほど、優先末端の範囲が狭くなり、極大に設定すると優先末端の範囲を最小にできる。優先末端の範囲の大きさは、他の範囲が利用できるメモリ使用量に影響し、深く探索できるかに影響する。
具体例においては、ノードの削除は探索済みノードを対象としているので、優先末端も探索済みノードとしている。探索済みでないノードを対象にした場合には、そのノードを優先末端に設定しても削除の対象には選ばれないので、効果が限定的となる。
例えば、優先末端の設定としては、規定ホップ数以上は優先末端を設定しないことで、規定ホップ数での分岐数で優先末端の選ばれる候補が規定され、処理すべき全体の量の見通しを予想できる。ただし、優先末端の範囲が大きくなると、他の範囲が利用できるメモリ使用量が減り、あまり深く探索できなくなることを考慮して、規定ホップ数を設定することが好ましい。
(削除遅延処理に関するバリエーション)
具体例では、遅延条件の定義を「パス長+優先末端側の最大パス長−総合評価値≦パス長制約」とした例で説明したが、これに限定されるものではない。例えば、遅延条件の定義においては、基本的には、静的評価値や動的評価値が高いものが遅延条件を満たすようにできればよい。
具体例では、最長パスが長く、対象ノードのパスが長く、静的評価値や動的評価値が低いときに削除されやすいように定義している。最長パスと対象ノードのパスの和は2つのパスの長さを示しており、どれだけ情報としての距離が遠いかを示す。情報としての距離が長いものは複合的に設定問題に関係する可能性は低いため、最長パスと距離が遠いパスを削除するようにしている。静的評価値や動的評価値が高いときは、設定問題との関連性が高い可能性が高いので、それよりは、静的評価値や動的評価値の低いものを削除するようにしている。
削除遅延処理に関するバリエーションとしては、最長パスと対象のパスの起点からの距離の和ではなく、パスの終点ノード間の距離で判定することにより、より正確に2ノード間の距離を測れ、2ノード間の関係性を考慮して削除判定ができる。また、伸ばしたパスで判定することで、最長パスを中心として探索するのではなく、切り出し範囲が伸ばしたパスの方向に移動して探索することができる。また、最長パスはどのパスからも遠いため、削除される可能性が高まる。
さらに、静的評価値や動的評価結果による補正値を大きくすることで、評価の高いノードまたはエッジの削除を評価の低いノードやエッジと比べ、より遅延させることができる。また、補正値を小さくすることで、評価の高いノードまたはエッジの削除を評価の低いノードやエッジと比べ、早めることができる。
(削除遅延処理のパス長制約に関するバリエーション)
具体例では、削除しても切り出し範囲がリソース制限を満たせないときに、パス長制約を1減らす例を説明したが、これに限定されるものではない。パス長制約は、リソース制約に比べて、パス長の制約が緩い場合には、制約を常に満たすようになり、制約が意味をなさなくなる。制約が緩すぎて、リソース削減をすることができない場合に、制約を厳しくして、制約がかかるように補正する。例えば、遅延条件が満たされなくなる最小の差分を減らすようにパス長制約を再設定することもできる。これにより、1ずつ減らして何度も遅延条件のチェックを行うことを抑制でき、処理の高速化が図れる。
(リソース制限に関するバリエーション)
具体例では、ソース制限を合計35エッジとして例で説明したが、これに限定されるものではない。例えば、学習時の学習装置10のメモリの使用量は、学習グラフのエッジ数に大きく依存するので、使用する計算機のメモリに応じて、リソース制限を設定することができる。
(切出し範囲の縮小に関するバリエーション)
具体例では、削除は、探索済み集合の極大なパスにし、ノードごとに一括で行う例で説明したが、これに限定されるものではない。これは、極大でない部分での削除を許容して、グラフが途切れてしまうようなことを許容したり、同一ノードと接続しているエッジを消したり消さなかったりして、エッジ単位での削除を許容したりすると、切出し範囲の管理が非常に煩雑になってしまうからである。このようなことから、一例として、具体例では極大なパスに対して、ノードごとに削除するか削除しないかを一括で処理する方式を採用した。
また、具体例では、エッジの削除時に反対側のノードにエッジがない場合に、当該エッジを削除する例を説明したが、これに限定されるものではない。これは、起点からの削除の対象となるノードへのパスが複数ある場合、削除するパスの終点であるノードに接続するエッジを削除しても、もう片側からのパスの最後から2番目のノードが探索済みである場合、最後のエッジが残る。すなわち、場合によっては、エッジの削除の処理後に削除対象のノードに接続するエッジがすべて消されてしまうケースと消されずに残るケースがある。接続するエッジが存在するのにノードを削除すると、ノードがないのにエッジがあるという矛盾が起こり、接続するエッジが存在しないのにノードが残ると、離れ小島のような連結していないノードができてしまうからである。これらを回避するために、エッジが消されずに残ったノードは残しておき、エッジが消されたノードを削除する処理を実行する。
(探索の終了条件に関するバリエーション)
具体例では、高い動的評価値が6個以上あるときに、切出し範囲の探索を終了する例を説明したが、これに限定されるものではない。例えば、学習した結果できた学習モデルを学習で用いたサンプルとは別のテスト用サンプルで判別を行い、その正解率(分別精度)がある一定以上になる契機を設定することもできる。また、学習モデルがうまくできたかにかかわらず、任意の試行回数を設定することもできる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
[ニューラルネットワーク]
本実施例では、RNNやCNN(Convolutional Neural Network)など様々なニューラルネットワークを用いることができる。また、学習の手法も、誤差逆伝播以外にも公知の様々な手法を採用することができる。また、ニューラルネットワークは、例えば入力層、中間層(隠れ層)、出力層から構成される多段構成であり、各層は複数のノードがエッジで結ばれる構造を有する。各層は、「活性化関数」と呼ばれる関数を持ち、エッジは「重み」を持ち、各ノードの値は、前の層のノードの値、接続エッジの重みの値、層が持つ活性化関数から計算される。なお、計算方法については、公知の様々な手法を採用できる。
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[ハードウェア構成]
図21は、ハードウェア構成例を示す図である。図21に示すように、学習装置10は、通信インタフェース10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。
通信インタフェース10aは、他の装置の通信を制御するネットワークインタフェースカードなどである。HDD10bは、プログラムやデータなどを記憶する記憶装置の一例である。
メモリ10cの一例としては、SDRAM(Synchronous Dynamic Random Access Memory)等のRAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等が挙げられる。プロセッサ10dの一例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)、PLD(Programmable Logic Device)等が挙げられる。
また、学習装置10は、プログラムを読み出して実行することで学習方法を実行する情報処理装置として動作する。つまり、学習装置10は、学習データ生成部21、学習部22、判別部23と同様の機能を実行するプログラムを実行する。この結果、学習装置10は、学習データ生成部21、学習部22、判別部23と同様の機能を実行するプロセスを実行することができる。なお、この他の実施例でいうプログラムは、学習装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
10 学習装置
11 通信部
12 記憶部
13 知識ベースDB
14 属性情報DB
15 学習データDB
16 学習済みモデルDB
20 制御部
21 学習データ生成部
21a 設定部
21b 探索部
22 学習部
23 判別部

Claims (9)

  1. コンピュータが、
    複数のノードが接続される全体グラフから選択された起点ノードに接続される複数のノードまたはエッジそれぞれの属性と設定問題との関連性に基づき、探索対象のノードおよびエッジである探索範囲を設定し、
    前記全体グラフから前記探索範囲で抽出された複数のグラフによる前記設定問題の学習モデルによる学習結果に基づき、前記探索範囲に含まれるノードおよびエッジそれぞれの評価値を生成し、
    前記探索範囲に含まれるノードおよびエッジそれぞれの前記評価値、および、前記探索範囲に含まれるノードおよびエッジそれぞれの前記属性と前記設定問題との関連性に基づき、探索対象のノードおよびエッジを更新し探索を行う処理を実行する、探索方法。
  2. 前記複数のノードおよびエッジそれぞれの前記評価値として、前記関連性に基づき設定される第1の評価値と、前記学習結果によって更新される第2の評価値とを付与し、
    前記起点ノードから所定範囲内にあるエッジのうち、前記第1の評価値が閾値以上のノードおよびエッジを含む探索範囲を設定し、
    前記学習結果に基づき、前記探索範囲に含まれるノードおよびエッジそれぞれの前記第2の評価値を生成または更新し、
    前記第1の評価値と前記第2の評価値とを用いた前記探索範囲の再設定、および、再設定された前記探索範囲に基づく前記学習モデルの前記学習結果による前記第2の評価値の更新、を所定回数繰り返して、前記全体グラフから学習対象となる前記複数のグラフの範囲を決定して抽出する処理を、前記コンピュータが実行する請求項1に記載の探索方法。
  3. 前記探索範囲内の末端のノードおよび末端のエッジのうち、前記学習結果による前記第2の評価値が閾値未満のノードおよびエッジを除外した探索範囲を再設定する処理を、前記コンピュータが実行する請求項2に記載の探索方法。
  4. 前記探索範囲に含まれないノードおよびエッジのうち、前記探索範囲の末端のノードから所定範囲に位置し、前記第1の評価値が閾値以上であるノードおよびエッジを含めた探索範囲を再設定する処理を、前記コンピュータが実行する請求項2に記載の探索方法。
  5. 前記探索範囲内の末端で除外対象となるノードまたはエッジを除外保留に設定し、前記探索範囲内における前記末端とは異なる方向の末端のノードまたはエッジについて、前記探索範囲の再設定および前記学習モデルによる学習を行って、前記第2の評価値を更新する処理を、前記コンピュータが実行する請求項3に記載の探索方法。
  6. 前記探索範囲内の末端とは異なる末端のノードまたはエッジに関し、前記第1の評価値と前記第2の評価値とに基づく総合評価値を算出し、
    前記学習モデルによる学習が行われるたびに、前記総合評価値が所定条件を満たすか否かを判定し、
    前記総合評価値が前記所定条件を満たさない場合に、前記異なる末端のノードまたはエッジを前記探索範囲から除外する処理を、前記コンピュータが実行する請求項5に記載の探索方法。
  7. 前記全体グラフから抽出された前記複数のグラフの範囲を用いて学習済みモデルを構築し、
    判別対象の全体グラフから前記複数のグラフの範囲に対応した判別対象グラフを抽出して前記学習済みモデルに入力し、判別結果を取得する処理を、前記コンピュータが実行する請求項2に記載の探索方法。
  8. コンピュータに、
    複数のノードが接続される全体グラフから選択された起点ノードに接続される複数のノードまたはエッジそれぞれの属性と設定問題との関連性に基づき、探索対象のノードおよびエッジである探索範囲を設定し、
    前記全体グラフから前記探索範囲で抽出された複数のグラフによる前記設定問題の学習モデルによる学習結果に基づき、前記探索範囲に含まれるノードおよびエッジそれぞれの評価値を生成し、
    前記探索範囲に含まれるノードおよびエッジそれぞれの前記評価値、および、前記探索範囲に含まれるノードおよびエッジそれぞれの前記属性と前記設定問題との関連性に基づき、探索対象のノードおよびエッジを更新し探索を行う処理を実行させる、探索プログラム。
  9. 複数のノードが接続される全体グラフから選択された起点ノードに接続される複数のノードまたはエッジそれぞれの属性と設定問題との関連性に基づき、探索対象のノードおよびエッジである探索範囲を設定する設定部と、
    前記全体グラフから前記探索範囲で抽出された複数のグラフによる前記設定問題の学習モデルによる学習結果に基づき、前記探索範囲に含まれるノードおよびエッジそれぞれの評価値を生成する生成部と、
    前記探索範囲に含まれるノードおよびエッジそれぞれの前記評価値、および、前記探索範囲に含まれるノードおよびエッジそれぞれの前記属性と前記設定問題との関連性に基づき、探索対象のノードおよびエッジを更新し探索する探索部と
    を有する、探索装置。
JP2017179396A 2017-09-19 2017-09-19 探索方法、探索プログラムおよび探索装置 Active JP6897446B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017179396A JP6897446B2 (ja) 2017-09-19 2017-09-19 探索方法、探索プログラムおよび探索装置
US16/134,161 US10977313B2 (en) 2017-09-19 2018-09-18 Search method, computer-readable recording medium, and search device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017179396A JP6897446B2 (ja) 2017-09-19 2017-09-19 探索方法、探索プログラムおよび探索装置

Publications (2)

Publication Number Publication Date
JP2019056960A JP2019056960A (ja) 2019-04-11
JP6897446B2 true JP6897446B2 (ja) 2021-06-30

Family

ID=65720342

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017179396A Active JP6897446B2 (ja) 2017-09-19 2017-09-19 探索方法、探索プログラムおよび探索装置

Country Status (2)

Country Link
US (1) US10977313B2 (ja)
JP (1) JP6897446B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7036689B2 (ja) * 2018-08-10 2022-03-15 株式会社日立製作所 計算機システム
WO2020261484A1 (ja) * 2019-06-27 2020-12-30 日本電気株式会社 矛盾検知装置、矛盾検知方法およびコンピュータ読み取り可能な記録媒体
US20220358378A1 (en) * 2019-06-27 2022-11-10 Nec Corporation Minimal unsatisfiable set detection apparatus, minimal unsatisfiable set detection method, and computer-readable recording medium
JP7411977B2 (ja) * 2019-07-05 2024-01-12 国立研究開発法人物質・材料研究機構 機械学習支援方法及び機械学習支援装置
US11475255B2 (en) * 2019-08-30 2022-10-18 Kabushiki Kaisha Toshiba Method for adaptive context length control for on-line edge learning
JP7242508B2 (ja) * 2019-10-29 2023-03-20 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
CN111105167A (zh) * 2019-12-24 2020-05-05 河南祥辰工程管理有限公司 一种基于bim技术的钢结构工程可视化验收方法
JP6893600B1 (ja) * 2020-05-28 2021-06-23 篤師 眞野 情報処理装置及びプログラム
US11720927B2 (en) * 2021-01-13 2023-08-08 Samsung Electronics Co., Ltd. Method and apparatus for generating user-ad matching list for online advertisement
KR102485944B1 (ko) * 2021-11-19 2023-01-10 주식회사 스탠다임 트랜스포머 신경망에서의 그래프 인코딩 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007304685A (ja) * 2006-05-09 2007-11-22 Hitachi Ltd ソフトウェア部品の検索システム及びプログラム
US20140099623A1 (en) * 2012-10-04 2014-04-10 Karmarkar V. Amit Social graphs based on user bioresponse data

Also Published As

Publication number Publication date
US10977313B2 (en) 2021-04-13
JP2019056960A (ja) 2019-04-11
US20190087509A1 (en) 2019-03-21

Similar Documents

Publication Publication Date Title
JP6897446B2 (ja) 探索方法、探索プログラムおよび探索装置
US11032391B2 (en) Social network grouping method and system, and computer storage medium
WO2019128529A1 (zh) Url攻击检测方法、装置以及电子设备
Alvari et al. Community detection in dynamic social networks: A game-theoretic approach
US20200265044A1 (en) Path searching method, storage medium and path searching apparatus
JPWO2016151618A1 (ja) 予測モデル更新システム、予測モデル更新方法および予測モデル更新プログラム
KR101965276B1 (ko) 그래프 기반의 데이터 분석 시스템 및 방법과, 이를 위한 컴퓨터 프로그램
CN112784961A (zh) 超网络的训练方法、装置、电子设备和存储介质
Wang et al. Modeling information diffusion in online social networks with partial differential equations
US9674083B2 (en) Path calculation order deciding method, program and calculating apparatus
JP2018518764A (ja) オブジェクト検索方法、装置およびサーバ
CN112948608A (zh) 图片查找方法、装置、电子设备及计算机可读存储介质
CN112800286A (zh) 用户关系链的构建方法、装置及电子设备
JP2018170008A (ja) エンティティの属性をマッピングする方法及びシステム
US9928313B2 (en) Seasonal query suggestion system and method
EP3336719A1 (en) Future scenario generation device and method, and computer program
KR20210031094A (ko) 트리 기반 이상치 탐지 장치 및 방법, 컴퓨터 프로그램
US11669727B2 (en) Information processing device, neural network design method, and recording medium
CN114143035A (zh) 知识图谱推荐系统的对抗攻击方法、系统、设备及介质
KR101890207B1 (ko) 개체명 연결 방법, 장치 및 컴퓨터 프로그램
JP6338618B2 (ja) 生成装置、生成方法、及び生成プログラム
CN115665082A (zh) 基于信息熵改进的社交网络关键节点识别方法及系统
Kong et al. Taprank: A time-aware author ranking method in heterogeneous networks
Kozak et al. Association ACDT as a tool for discovering the financial data rules
KR20210058533A (ko) 복수개의 커뮤니티를 포함하는 네트워크에서 커뮤니티 재구성 방법 및 이를 위한 전자 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210422

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210511

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210524

R150 Certificate of patent or registration of utility model

Ref document number: 6897446

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150