(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-22
(45)【発行日】2024-12-02
(54)【発明の名称】情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
G06N 5/04 20230101AFI20241125BHJP
G06N 20/00 20190101ALI20241125BHJP
【FI】
G06N5/04
G06N20/00
(21)【出願番号】P 2022000157
(22)【出願日】2022-01-04
【審査請求日】2024-02-26
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】張 瑞剛
(72)【発明者】
【氏名】細川 晃
(72)【発明者】
【氏名】長野 伸一
【審査官】多賀 実
(56)【参考文献】
【文献】国際公開第2020/198249(WO,A1)
【文献】白井 詩沙香 外2名,「数式予測アルゴリズムを実装した数式入力インタフェースMathTOUCHの試作と評価」,情報処理学会研究報告 コンピュータと教育(CE) [オンライン],情報処理学会,2017年03月04日,第2017-CE-139巻, 第7号,pp.1-6,[検索日 2017.03.17], インターネット:<URL: https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_uri&item_id=178433&file_id=1&file_no=1>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 30/00-30/398
G05B 23/02
(57)【特許請求の範囲】
【請求項1】
それぞれ属性が対応づけられる複数の第1ノードの接続関係を示す第1グラフに含まれる複数の前記第1ノードのうち、複数のノード間の接続関係を定めたスキーマに適合する前記第1ノードの接続関係を示す第1サブグラフを抽出し、
複数のノード間の接続関係を示すサブグラフに基づく入力情報を入力し、前記入力情報に対応するサブグラフに含まれる1以上のノードの属性を変数として用いる計算式のテンプレートを出力するように学習された第1モデルに対して、前記第1サブグラフに基づく前記入力情報を入力し、前記第1モデルが出力する前記テンプレートを求め、
複数の前記第1ノードに対応づけられる属性のいずれかを、求められた前記テンプレートで用いる前記変数として設定することにより、前記計算式を生成する、
生成部、
を備える情報処理装置。
【請求項2】
前記入力情報は、前記第1サブグラフに含まれる前記第1ノードの特徴量、および、前記第1サブグラフに含まれる前記第1ノードの接続関係を行列形式で表した隣接行列を含む、
請求項1に記載の情報処理装置。
【請求項3】
前記特徴量は、前記第1ノードの種類、および、前記第1ノードに接続される他のノードの種類を含む、
請求項2に記載の情報処理装置。
【請求項4】
前記変数は、前記属性を前記計算式の入力値として用いる変数と、前記属性を前記計算式の出力値として用いる変数と、を含み、
前記生成部は、複数の前記第1ノードに対応づけられる前記属性のいずれかを前記入力値として設定し、前記入力値として設定した前記属性と異なる前記属性のいずれかを前記出力値として設定する、
請求項1から3のいずれか1項に記載の情報処理装置。
【請求項5】
前記生成部は、それぞれ属性が対応づけられる複数の第2ノードの接続関係を示し、少なくとも一部の前記第2ノードに前記テンプレートが対応づけられた第2グラフの入力を受け付け、受け付けた前記第2グラフに含まれる複数の前記第2ノードのうち、前記スキーマに適合する前記第2ノードの接続関係を示す第2サブグラフを抽出し、
前記第2サブグラフに基づく入力情報と、前記第2ノードに対応づけられた前記テンプレートと、を含む学習データを用いて、前記第1モデルを学習する学習部をさらに備える、
請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
生成された前記計算式を表示装置に表示する処理を制御する表示制御部をさらに備える、
請求項1から5のいずれか1項に記載の情報処理装置。
【請求項7】
新たなテンプレートが追加されたときに、追加されたテンプレートを出力可能とするように前記第1モデルを修正する修正部をさらに備える、
請求項1に記載の情報処理装置。
【請求項8】
前記生成部は、前記第1モデルが出力する中間データに基づく入力情報を入力し、前記テンプレートを出力するように学習された第2モデルに対して、前記第1モデルが出力する中間データに基づく入力情報を入力し、前記第2モデルが出力する前記テンプレートを求める、
請求項1から7のいずれか1項に記載の情報処理装置。
【請求項9】
前記生成部は、前記スキーマに適合する前記第1ノード、および、前記スキーマに適合する前記第1ノードの属性を示す属性ノードの接続関係を示す前記第1サブグラフを抽出する、
請求項1から8のいずれか1項に記載の情報処理装置。
【請求項10】
前記生成部は、
前記第1サブグラフを抽出する抽出部と、
前記第1モデルに対して前記第1サブグラフに基づく前記入力情報を入力することにより、前記テンプレートを推論する推論部と、を備える、
請求項1から9のいずれか1項に記載の情報処理装置。
【請求項11】
情報処理装置で実行される情報処理方法であって、
それぞれ属性が対応づけられる複数の第1ノードの接続関係を示す第1グラフに含まれる複数の前記第1ノードのうち、複数のノード間の接続関係を定めたスキーマに適合する前記第1ノードの接続関係を示す第1サブグラフを抽出するステップと、
複数のノード間の接続関係を示すサブグラフに基づく入力情報を入力し、前記入力情報に対応するサブグラフに含まれる1以上のノードの属性を変数として用いる計算式のテンプレートを出力するように学習された第1モデルに対して、前記第1サブグラフに基づく前記入力情報を入力し、前記第1モデルが出力する前記テンプレートを求めるステップと、
複数の前記第1ノードに対応づけられる属性のいずれかを、求められた前記テンプレートで用いる前記変数として設定することにより、前記計算式を生成するステップと、
を含む情報処理方法。
【請求項12】
コンピュータに、
それぞれ属性が対応づけられる複数の第1ノードの接続関係を示す第1グラフに含まれる複数の前記第1ノードのうち、複数のノード間の接続関係を定めたスキーマに適合する前記第1ノードの接続関係を示す第1サブグラフを抽出するステップと、
複数のノード間の接続関係を示すサブグラフに基づく入力情報を入力し、前記入力情報に対応するサブグラフに含まれる1以上のノードの属性を変数として用いる計算式のテンプレートを出力するように学習された第1モデルに対して、前記第1サブグラフに基づく前記入力情報を入力し、前記第1モデルが出力する前記テンプレートを求めるステップと、
複数の前記第1ノードに対応づけられる属性のいずれかを、求められた前記テンプレートで用いる前記変数として設定することにより、前記計算式を生成するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
産業システムにおいて運転状態監視および性能管理などを行う技術が提案されている。性能を計算するための計算式は、産業システムごとにカスタマイズし、定義する必要がある。例えば、性能管理機能を構築するユーザ(エンジニアなど)は、産業システムの構成を示す図(配置図、系統図、機器図、計器配線図、電気配線図、基礎図、および、建造物図等)を参照して、産業システムの構成要素である複数の資産(ハードウェアデバイスなど)の属性のいずれかを、計算式の変数として選択する。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【文献】Arquimedes Canedo et al., “ArduCode: Predictive Framework for Automation Engineering”,arXiv:1909.04503([2021年11月22日検索],インターネット<URL:https://arxiv.org/pdf/1909.04503.pdf>),2020.
【文献】Antoine Bordes et al., “Translating Embeddings for Modeling Multi-relational Data”, Advances in Neural Information Processing Systems 26 (NIPS 2013)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、計算式を生成する作業をユーザが手動で実行する必要あり、計算式の生成作業を効率的に実行できない場合があった。
【課題を解決するための手段】
【0006】
実施形態の情報処理装置は、生成部を備える。生成部は、それぞれ属性が対応づけられる複数の第1ノードの接続関係を示す第1グラフに含まれる複数の第1ノードのうち、複数のノード間の接続関係を定めたスキーマに適合する第1ノードの接続関係を示す第1サブグラフを抽出する。生成部は、複数のノード間の接続関係を示すサブグラフに基づく入力情報を入力し、入力情報に対応するサブグラフに含まれる1以上のノードの属性を変数として用いる計算式のテンプレートを出力するように学習された第1モデルに対して、第1サブグラフに基づく入力情報を入力し、第1モデルが出力するテンプレートを求める。生成部は、複数の第1ノードに対応づけられる属性のいずれかを、求められたテンプレートで用いる変数として設定することにより、計算式を生成する。
【図面の簡単な説明】
【0007】
【
図1】実施形態にかかる情報処理装置のブロック図。
【
図2】資産間の接続関係を示す図面データのデータ構造の一例を示す図。
【
図5】テンプレートデータのデータ構造の一例を示す図。
【
図12】テンプレートの予測に用いられるモデルの構造の一例を示す図。
【
図13】本実施形態における学習処理のフローチャート。
【
図14】本実施形態における推論処理のフローチャート。
【
図15】複数の資産の候補からいずれかを選択する例を説明するための図。
【
図16】変形例1で用いられるモデルの構造の一例を示す図。
【
図17】実施形態にかかる情報処理装置のハードウェア構成図。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、この発明にかかる情報処理装置の好適な実施形態を詳細に説明する。
【0009】
以下では、産業システムでの性能管理などに用いられる計算式を生成する情報処理装置を例に説明する。なお適用可能なシステムは産業システムに限られない。産業システムは、複数の種類のセンサおよび電子機器などの複数の構成要素により構築される。以下では、産業システムの構成要素を資産という。各資産は、計算式の変数として用いることができる属性を有する。例えば、モータ(資産の一例)の電力を監視する場合、以下のような資産の属性が、電力を計算する計算式の変数になりうる。
・資産:モータの電流を検知するセンサ、属性:検知された電流値(計算式の入力値)
・資産:モータの電圧を検知するセンサ、属性:検知された電圧値(計算式の入力値)
・資産:モータ、属性:電力値(計算式の出力値)
【0010】
センサは電流または電圧を検知するセンサに限られず、温度などの他のどのような物理量を検知するセンサであってもよい。また属性は上記に限られず、どのような情報であってもよい。例えば、属性は、資産の種類(クラス)、資産のメーカ、および、物理量の単位を含んでもよい。
【0011】
産業システムの性能管理などに用いる計算式を生成するために、予め用意された計算式のテンプレートを利用する方法もある。しかし、テンプレートを利用するとしても、適切なテンプレートを選択する作業、および、選択したテンプレートに対して、計算に用いる変数を指定する作業が必要となる。
【0012】
モータの電力を監視する例では、ユーザは、モータに接続される近隣の他の資産に応じて適切なテンプレートを選択するとともに、テンプレート内の変数に対して、資産の属性のいずれかを指定する必要がある。なお、テンプレートの変数に対して、実際の資産のいずれかの属性を指定することは、テンプレートの計算式の変数をインスタンス化するとも表現される。
【0013】
本実施形態の情報処理装置は、過去に生成した計算式を含む図面データを用いて、計算式のテンプレートを求めるモデルを学習する。そして、本実施形態の情報処理装置は、学習済のモデルを用いて新たな図面データに対して適用するテンプレートを求め、テンプレートに含まれる変数をインスタンス化する。これにより、計算式の生成作業をより効率的に実行可能となる。
【0014】
本実施形態の情報処理装置は、例えば以下のような機能を備える。
・産業システムの構成を示す図から、各資産の間の接続関係、および、資産に付与される計算式を表すグラフを生成する。
・複数の資産の間の接続関係を予め定めたスキーマを用いて、生成したグラフからサブグラフを抽出する。
・サブグラフを入力してテンプレートを予測するモデル(第1モデルの一例)を学習する。
・学習済みモデルによって、新しい図面データに含まれる資産に対してテンプレートを予測する。
・予測されたテンプレートの整合性を検証し、不整合となった場合に別のテンプレートを予測結果として出力する。
・予測されたテンプレートの変数をインスタンス化する。
・生成された計算式を確認および修正できるように表示装置に表示する。
【0015】
図1は、本実施形態にかかる情報処理装置100の構成の一例を示すブロック図である。
図1に示すように、情報処理装置100は、受付部101と、変換部102と、抽出部103と、推論部104と、生成部105と、修正部106と、学習部107と、表示制御部108と、記憶部121と、ディスプレイ122と、を備えている。
【0016】
ディスプレイ122は、情報処理装置100による各種処理で扱われる情報を表示するための表示装置であり、例えば液晶ディスプレイ、および、表示機能を備えるタッチパネルなどにより実現される。
【0017】
記憶部121は、情報処理装置100による各種処理で用いられる各種データを記憶する。例えば記憶部121は、学習に用いるための過去の図面データ、および、学習したモデルのデータ(パラメータなど)を記憶する。記憶部121は、フラッシュメモリ、メモリカード、RAM(Random Access Memory)、HDD(Hard Disk Drive)、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0018】
記憶部121に記憶される各種データの例について、
図2~
図5を用いて説明する。
図2は、資産間の接続関係を示す図面データのデータ構造の一例を示す図である。
図2の図面データは、産業システムの構成要素となる複数の資産の間の接続関係を示すグラフにより表されるデータの例である。
【0019】
図2に示すように、図面データは、資産に対応する複数のノードを矢印で対応づけることにより、複数の資産の間の接続関係を示す。
図2では、T字管(Tee)、ヒータ(Heater)、オープンタンク(Opentank)、タンク(Tank)、ポンプ(Pump)、および、制御バルブ(Ctrlvalve)などの種類の資産を含む産業システムのグラフの例が示されている。各ノード内の記号「B-400」などは、対応する資産の識別情報を表す。
【0020】
図3は、ノードリストのデータ構造の一例を示す図である。
図3に示すように、ノードリストは、資産の識別情報と、資産の種類と、を含む。なお
図3の例では、識別情報それぞれに対して、0~10までの数値が対応づけられている。この数値は、
図4で説明する隣接行列の行および列に対応する。
【0021】
図4は、隣接行列のデータ構造の一例を示す図である。
図4は、
図2および
図3で示される資産の例に対応する隣接行列の例である。隣接行列は、
図2のようなグラフに含まれる各ノード間の接続関係を行列形式で表した情報である。
図3で説明したように、行および列の数値0~10は、グラフに含まれる各ノード(資産)のいずれかに対応する。行列の各要素は、対応する行のノードと列のノードとが接続されているか否かを表す値が設定される。
図4の例では、接続されている場合に「1」が設定され、接続されていない場合に「0」が設定される。
【0022】
なお
図2~
図4では、資産に相当するノード(資産ノード)のみを含むグラフ、ノードリスト、および、対応する隣接行列の例が示されている。後述するように、ノードは、属性に相当するノード(属性ノード)を含んでもよい。
【0023】
図5は、資産に対して採用されたテンプレートを示すテンプレートデータのデータ構造の一例を示す図である。
図5に示すように、テンプレートデータは、産業システムに含まれる資産と、当該資産の1以上の属性に対する計算式に対して採用されたテンプレートと、を階層化して表したデータ構造となっている。例えば、ポンプについては、属性「pro1」に対して3つのテンプレートである「formula1」、「formula2」および「formula3」が採用され、属性「pro2」に対して2つのテンプレートである「formula1」および「formula2」が採用されている。
【0024】
このように、同じ種類の資産であっても、異なるテンプレートが適用されうる。従って、同じ種類の資産に対して、複数の候補となるテンプレートから適切なテンプレートを選択する必要がある。本実施形態で用いるモデルは、計算式を生成する資産の情報のみでなく、この資産と近傍の他の資産との接続関係も考慮して、適切なテンプレートを選択するように学習される。
【0025】
図2~
図5に示すデータは、例えば外部のシステムで作成された、産業システムの構成を示す図から、情報処理装置100(変換部102)により作成される。
図2~
図5に示すデータは、外部のシステムにより作成され、情報処理装置100に入力されてもよい。
【0026】
受付部101は、情報処理装置100で用いられる各種データの入力を受け付ける。例えば受付部101は、外部のシステムから産業システムの構成を示す図の入力を受け付ける。入力される図は、以下の2種類の図面データを含みうる。
・計算式の生成の対象となるデータであって、計算式が対応づけられていない図面データ(以下、図面データDAともいう)
・モデルの学習に用いられるデータであって、決定された計算式が対応づけられた図面データ(以下、図面データDBともいう)
【0027】
変換部102は、外部のシステムなどから入力された産業システムの構成を示す図を、例えば
図2~
図5に示すような形式のデータに変換する。産業システムの構成を示す図は、例えば、P&ID(Piping & Instrumentation Diagram)であるが、その他のどのような方法で作成されてもよい。変換部102は、例えば、XML(Extensible Markup Language)およびjson(JavaScript(登録商標) Object Notation)などのフォーマットで表された図面データを外部のシステムから入力し、入力した図面データを変換することにより、
図2~
図5に示すようなデータを作成する。
【0028】
例えば
図2に示す資産間の接続関係を示すグラフは、図面データDAおよび図面データDBのそれぞれに対して作成されうる。以下では、図面データDAから変換されたグラフをグラフGA(第1グラフの一例)といい、図面データDBから変換されたグラフをグラフGB(第2グラフの一例)という場合がある。
【0029】
抽出部103は、
図2に示すようなグラフからサブグラフを抽出する。サブグラフは、例えば、
図2に示すようなグラフ全体に含まれる複数のノードのうち、予め定められたスキーマに適合する資産ノード(第1ノードの一例)の接続関係を示すグラフである。サブグラフは、スキーマに適合する資産ノードの属性に相当する属性ノードをさらに含んでもよい。例えば抽出部103は、スキーマに適合する資産ノードを求めた後、求めた資産ノードと、求めた資産ノードの属性を示す属性ノードとを含むサブグラフを抽出してもよい。スキーマは、複数のノード間の接続関係を定めた情報である。スキーマおよびスキーマを用いたサブグラフの抽出方法の詳細は後述する。
【0030】
以下では、グラフGAから抽出されたサブグラフをサブグラフSA(第1サブグラフの一例)といい、グラフGBから抽出されたグラフをサブグラフSB(第2サブグラフの一例)という場合がある。
【0031】
なお、変換部102は、抽出部103による抽出に用いられるスキーマと同様の形式のスキーマに適合するように、入力された図面データを変換して
図2に示すようなグラフを生成してもよい。
【0032】
推論部104は、学習済のモデルを用いて、計算式の生成の対象となる図面データDAに対して適用するテンプレートを予測(推論)する。モデルは、例えば、複数のノード間の接続関係を示すサブグラフに基づく入力情報を入力し、入力情報に対応するサブグラフに含まれる1以上のノードの属性を変数として用いる計算式のテンプレートを出力するように学習される。なお推論とは、学習済のモデルを用いて、新たな入力(入力情報)に対する予測を行うことを意味する。
【0033】
推論部104は、例えば、抽出部103により抽出されたサブグラフ(サブグラフSA)から、モデルに入力する入力情報を生成する。例えば入力情報は、サブグラフに含まれるノードの特徴量、および、サブグラフに含まれるノードの接続関係を表す隣接行列を含む。ノードの特徴量は、当該ノードの種類、および、当該ノードに接続される他のノードの種類を含む。推論部104は、生成した入力情報を学習済のモデルに入力し、モデルが出力するテンプレートを求める。
【0034】
生成部105は、求められたテンプレートで用いる変数をインスタンス化することにより、計算式を生成する。生成部105は、グラフGAに含まれる複数の資産ノードに対応づけられる属性のいずれかを、求められたテンプレートで用いる変数として設定する。
【0035】
計算式(テンプレート)の変数は、資産の属性を計算式の入力値として用いる変数と、属性を計算式の出力値として用いる変数とを含みうる。従って、生成部105は、複数の資産ノードに対応づけられる属性のいずれかを入力値として設定し、入力値として設定した属性と異なる属性のいずれかを出力値として設定する。
【0036】
例えばテンプレートは、入力値または出力値として用いる変数に設定可能な資産の種類および属性を含む。生成部105は、サブグラフに含まれる資産から、テンプレートに含まれる種類に適合する資産を選択し、選択した資産の属性のうち、テンプレートに含まれる属性を、求められたテンプレートで用いる変数として設定する。
【0037】
表示制御部108は、ディスプレイ122に対する情報の表示を制御する。例えば表示制御部108は、予測されたテンプレート、および、生成された計算式をディスプレイ122に表示する処理を制御する。表示制御部108は、テンプレートまたは計算式を確認および修正できるようにディスプレイ122に表示してもよい。これにより、ユーザは、予測されたテンプレートおよび生成された計算式が適切であるかを確認すること、および、必要に応じてテンプレートまたは計算式を修正することが可能となる。
【0038】
修正部106は、例えば、表示された計算式またはテンプレートに対するユーザによる修正指示に基づいてモデルを修正する。
【0039】
学習部107は、テンプレートの予測に用いるモデルを学習する。例えば学習部107は、図面データDBから得られる学習データを用いてモデルを学習する。学習データは、例えば以下の情報を含む。
・図面データDBを変換したグラフGBから抽出されたサブグラフSBに基づく入力情報
・グラフGBに含まれる資産ノード(第2ノードの一例)に対応づけられたテンプレート
【0040】
学習部107は、テンプレートの情報を、学習時の正解データとして使用することができる。テンプレートの情報は、例えば<インスタンス化された属性、使用されたテンプレート>の形式で表される。以下にテンプレートの情報の例を示す。なお、1つの属性に対して複数のテンプレートが正解データとして指定されてもよい。また、サブグラフとテンプレート(1つのテンプレート、または、複数のテンプレートを含むテンプレートリスト)とが対応づけられた情報が正解データとして用いられてもよい。
<X1.proA、X_proA_formula1>
<X2.proA、X_proA_formula2>
<W1.proZ、W_proZ_formula1>
【0041】
上記各部(受付部101、変換部102、抽出部103、推論部104、生成部105、修正部106、学習部107、および、表示制御部108)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
【0042】
また、上記各部の一部または全部は、1つの構成部に統合されてもよい。例えば、生成部105は、抽出部103および推論部104の機能を備えるように構成されてもよい。
【0043】
以下、情報処理装置100の各部による処理の詳細についてさらに説明する。
【0044】
図6は、テンプレートおよび計算式などを表示する表示画面の一例を示す図である。表示画面は、例えば表示制御部108によりディスプレイ122に表示される。
図6では、右部に表示されるグラフに含まれる資産X1に対して計算式が生成される。なおこのグラフは、5個の資産W1、X1、X2、Y1、Z1の接続関係を示す。X1、X2は、同じ種類(X)の資産であることを意味する。
【0045】
フィールド601は、計算式の出力値となる変数を設定するためのフィールドである。フィールド601では、例えば、計算式の出力値が対応づけられる資産の識別情報、計算式により出力値を計算する対象となる属性、および、計算結果の単位が設定される。フィールド602は、計算式のテンプレートを設定するためのフィールドである。
【0046】
フィールド603は、計算式の入力値となる変数を設定するためのフィールドである。フィールド603では、例えば、入力値として用いられる属性を有する資産の識別情報(資産id)、属性、単位、および、インスタンス化した変数の識別情報(id)が設定される。フィールド604は、変数がインスタンス化された計算式を表示するためのフィールドである。
【0047】
従来技術では、例えば
図6に示すような表示画面を用いる場合、適用するテンプレート、および、入力値として用いられる属性などを、ユーザが指定する必要があった。これに対して、本実施形態では、ユーザの指定によらず、事前に学習したモデルを用いて、これらの情報を予測することができる。予測された情報は、
図6のような表示画面に表示され、ユーザにより確認および修正可能とされる。
【0048】
図7は、グラフGAの一例を示す図である。
図7のグラフGAは、5個の資産W1、X1、X2、Y1、Z1の接続関係を示す。各資産は、1以上の属性が対応づけられる。例えば資産W1には、2つの属性W1.proC、W1.proZが対応づけられる。
【0049】
ある資産の属性の値(出力値)は、他の1以上の資産の属性の値(入力値)から計算される場合がある。
図7では、複数の属性から他の属性へ向かう矢印が、このような入力値と出力値との対応を示している。例えば、資産X1の属性X1.proAの値は、資産Y1の属性Y1.proBおよび属性Y1.proXを入力値として計算される。本実施形態の情報処理装置100は、このような計算に用いる計算式のテンプレートを予測するとともに、入力値および出力値とする属性を決定することにより、計算式を生成する。
【0050】
図8は、スキーマの一例を示す図である。
図8に示すように、スキーマは、複数のノードと、複数の種類のノードの関係または同一の種類のノードの関係を示すエッジと、を含む。ノードの種類は、例えば、資産、属性、変数、および、計算式のテンプレートである。このように、スキーマでのノードの種類は、上記のグラフなどに含まれる資産の種類とは異なる。エッジは、例えば以下のような関係を示す。
・link:エッジの元のノードが、エッジの先のノードと接続される関係
・has:エッジの元のノードが、エッジの先のノードを所有する関係
・calculated_by:エッジの元のノードが、エッジの先のノードを用いて計算される関係
・contains:エッジの元のノードが、エッジの先のノードを含む関係
・type of:エッジの元のノードが、エッジの先のノードの種類を示す関係
【0051】
以下に、エッジの定義の例(E1)~(E5)を示す。
(E1)<資産,link,資産>
(E2)<資産,has,資産.属性>
(E3)<資産.属性,calculated_by,テンプレート>
(E4)<テンプレート,contains,変数>
(E5)<変数,type_of,資産.属性>
【0052】
以下に、(E1)~(E5)に該当するデータ(D1)~(D5)の具体例を記載する。
(D1)<X1,link,Y1>
(D2)<X1,has,X1.proA>
(D3)<W1.proZ,calculated_by,W_proZ_formula1>
(D4)<W_proZ_formula1,contains,Z1.proE>
(D5)<X1.proA,type_of,X.proA>
【0053】
(E1)は、資産が相互に接続される関係を示す。従って、2個のみでなく3個以上の資産が連続して接続される場合にも、この関係が満たされうる。一方、ある資産の属性の出力値は、近傍の他の資産の属性の値を入力値として計算される場合が多い。このため、抽出する他の資産は、近傍の資産に制限することが望ましい場合がある。そこで、抽出部103は、連続する資産の個数(以下、ホップ数ともいう)の上限を設けて、上限以内のホップ数までの資産の接続関係に適合するサブグラフを抽出してもよい。ホップ数の上限は、パラメータとして調整可能とされてもよい。
【0054】
また、計算式が対応づけられていない図面データDAを変換したグラフGAは、テンプレートを含まない場合がある。このため、グラフGAに対しては、抽出部103は、テンプレートおよび変数を含まないスキーマに適合するサブグラフSAを抽出してもよい。
【0055】
図9~
図11は、抽出されるサブグラフの一例を示す図である。
図9~
図11はいずれも、
図7に示すグラフGAから、
図8に示すスキーマに適合するグラフとして抽出されるサブグラフSAの例である。例えば
図9は、資産X1から1ホップ(ホップ数の上限=1)までの資産Y1、Z1、および、各資産の属性を含むサブグラフSAを示す。
図10は、資産X2から1ホップまでの資産Y1、W1、および、各資産の属性を含むサブグラフSAを示す。
図11は、資産W1から1ホップまでの資産X2、Y1、Z1、および、各資産の属性を含むサブグラフSAを示す。
【0056】
図12は、テンプレートの予測に用いられるモデル1210の構造の一例を示す図である。モデル1210は、入力情報1201を入力し、予測結果に相当するベクトル1202を出力する。モデル1210は、2つのGGNN(Gated Graph Neural Network)1211、1212と、関数1213と、を含む。ベクトル1221は、GGNN1212の出力するデータであり、サブグラフの特徴量を示すベクトルSである。
【0057】
入力情報1201は、サブグラフに含まれるノードの特徴量Zと、サブグラフの隣接行列Aと、を含む。なお、Nは、サブグラフに含まれるノードの数を示し、dは、各ノードの特徴量の次元数を示す。特徴量Zの各行は、ある1つのノードの特徴量に相当する。
【0058】
ノードの特徴量は、例えば以下の手順で作成される。
(M1)ノードが資産ノードの場合:以下の三種類のベクトルを連結する。
・V1:資産ノードの種類を示すワンホットベクトル(資産の種類の数をMとすると、M次元のベクトル)
・V2:メーカを示すワンホットベクトル(メーカの数をLとすると、L次元のベクトル)
・V3:資産の種類それぞれについて、当該資産ノードからkホップ(kは1以上の整数)以内に対応する資産ノードが存在する個数(M次元のベクトル)
【0059】
なお、次元数dは、以下のように求めることができる。
次元数d=資産の種類の数M+メーカの数L+資産の種類の数M
【0060】
(M2)ノードが属性ノードの場合:
<資産.属性,usedin,資産.属性のテンプレート>の3つ組を入力データとし、次元数dの出力データを特徴量として出力するように学習されたモデルを用いて、属性ノードの特徴量を算出する。このモデルは、例えば、非特許文献2で提案されているTransEにより実現できる。
【0061】
ベクトル1202は、例えば、すべてのテンプレートに対応するC個(Cはテンプレートの総数)の要素を含み、予測されたテンプレートに対応する要素のみ「1」となり、他の要素は「0」となるワンホットベクトルyiである。なお、iは、入力情報1201のインデックスである。例えば学習時には、複数のインデックスiに対応する複数の入力情報1201が学習データとして用いられる。
【0062】
モデル1210は、例えば各テンプレートに対するスコアを算出し、算出したスコアが最大となるテンプレートに対応する要素を「1」とし、その他のテンプレートに対応する要素を「0」とするように構成されてもよい。スコアは、入力されたサブグラフに対するテンプレートの確からしさが大きいほど大きい値となる情報を表す。ベクトル1202は、ワンホットベクトルの形式ではなく、各テンプレートに対するスコアを要素とするベクトルであってもよい。
【0063】
GGNN1211、1212は、エッジの種類と方向とを考慮するグラフニューラルネットワークである。関数1213は、例えば、MLP(MultiLayer Perceptron)関数fcである。関数fcの出力の次元数はテンプレートの総数Cと同じである。
【0064】
推論時には、推論部104は、サブグラフSAから生成される入力情報1201をモデル1210に入力し、モデル1210が出力するベクトル1202から、予測結果となるテンプレートを求める。
【0065】
学習時には、学習部107は、サブグラフSBから生成される入力情報1201をモデル1210に入力し、モデル1210が出力するベクトル1202を求める。そして学習部107は、求められたベクトル1202と、正解データに相当するテンプレートのベクトルl
iとに基づく損失関数を用いてモデル1210を学習する。学習方法はどのような方法であってもよいが、損失関数を最小化するようなモデル1210のパラメータを求める方法を適用することができる。損失関数は、例えば以下の(1)式で表される。
【数1】
【0066】
なお、
図5で説明したように、同じ種類の資産であっても、異なるテンプレートが適用される場合がある。例えば、
図7のX1、X2が
図5のモータ(Motor)に相当し、X1の属性proAについてはテンプレートformula1が用いられ、X2の属性proAについてはテンプレートformula2が用いられたとする。本実施形態では、このような場合であっても、当該資産(ノード)の特徴量(V1、V2)のみでなく、近傍の他の資産(ノード)の特徴量(V3)を考慮することにより、X.proAに対して適用しうる2つのテンプレート(formula1、formula2)のうち、適切なテンプレートを予測できる。
【0067】
次に、本実施形態にかかる情報処理装置100による学習処理について説明する。学習処理は、学習部107によりモデルを学習する処理である。
図13は、本実施形態における学習処理の一例を示すフローチャートである。
【0068】
受付部101は、例えば外部のシステムから、計算式が対応づけられた図面データDBの入力を受け付ける(ステップS101)。変換部102は、図面データDBの変換を行う(ステップS102)。例えば変換部102は、図面データDBを、
図2に示すようなグラフGB、
図3に示すようなノードリスト、
図4に示すような隣接行列、および、
図5に示すようなテンプレートデータに変換する。抽出部103は、グラフGBからサブグラフSBを抽出する(ステップS103)。学習部107は、サブグラフSB、隣接行列、および、テンプレートの正解データなどを用いてモデルを学習する(ステップS104)。
【0069】
次に、本実施形態にかかる情報処理装置100による推論処理について説明する。推論処理は、推論部104による、学習済のモデルを用いてテンプレートを予測する処理である。
図14は、本実施形態における推論処理の一例を示すフローチャートである。
【0070】
なお、ステップS201からステップS203は、図面データDBの代わりに図面データDAが用いられる以外は、
図13のステップS101からステップS103と同様である。
【0071】
すなわち、受付部101は、例えば外部のシステムから、計算式が対応づけられていない図面データDAの入力を受け付ける(ステップS201)。変換部102は、図面データDAの変換を行う(ステップS202)。例えば変換部102は、図面データDAを、
図2に示すようなグラフGA、
図3に示すようなノードリスト、
図4に示すような隣接行列、および、
図5に示すようなテンプレートデータに変換する。抽出部103は、グラフGAからサブグラフSAを抽出する(ステップS203)。
【0072】
推論部104は、学習済のモデルを用いて、サブグラフSAに対するテンプレートを予測する(ステップS204)。例えば推論部104は、まず、サブグラフSAから、
図12に示すような入力情報を生成する。推論部104は、生成した入力情報をモデルに入力し、モデルの出力から、サブグラフSAに対するテンプレートを求める。
【0073】
生成部105は、求められたテンプレートで用いる変数をインスタンス化することにより、計算式を生成する(ステップS205)。表示制御部108は、生成された計算式を、例えば
図6に示すような表示画面に表示する(ステップS206)。上記のように、表示制御部108は、計算式を確認および修正できるような表示画面をディスプレイ122に表示してもよい。
【0074】
なお、サブグラフの中に、テンプレートの変数として設定可能な種類の資産が複数含まれる場合がある。このような場合は、生成部105は、複数の資産のうちいずれかを選択してテンプレートの変数として設定する。
図15は、複数の資産の候補からいずれかを選択する例を説明するための図である。
【0075】
図15では、種類が「n」であるノードn1~n7と、種類が「f」であるノードf1~f3とを含むグラフから、ノードn6から1ホップのノードn3、n7、f3を含むサブグラフが抽出された場合の例が示されている。このサブグラフに対して、例えば種類nの資産の属性と、種類fの資産の属性とを変数として設定可能なテンプレートが予測されたとする。この例では、種類nの資産に相当するノードとして、n3およびn7の2つのノードがサブグラフ内に含まれる。このような場合、生成部105は、n3およびn7のいずれかを選択してテンプレートの変数としてインスタンス化する必要がある。
【0076】
例えば生成部105は、資産を選択するための表示画面を表示制御部108を用いて表示させ、表示画面を用いてユーザが指定した資産を選択してもよい。生成部105は、複数の資産の候補から適切な資産を選択するように学習されたモデルを用いて資産を選択してもよい。このようなモデルは、上記のテンプレートを予測するためのモデルと統合されてもよい。
【0077】
次に、修正部106によるモデルの修正処理について説明する。表示制御部108は、新たなテンプレートを追加するための画面をディスプレイ122に表示するように構成されてもよい。ユーザは、このような画面を用いて新たなテンプレートを追加することができる。
【0078】
新たなテンプレートが追加された場合、追加されたテンプレートを予測結果として出力できるようにモデルを修正する必要がある。まず修正部106は、追加されたテンプレートを予測結果として出力できるようにモデルを修正する。例えば修正部106は、予測結果に相当するベクトル1202の要素として、追加されたテンプレートに対応する要素を追加する。また修正部106は、追加されたテンプレートを考慮した学習データを作成する。例えば修正部106は、追加されたテンプレートを含む3つ組を入力データとしてTranEに入力し、属性ノードの特徴量を求める。修正部106は、求めた特徴量を含む学習データを用いてモデルを再学習することにより、モデルを修正する。
【0079】
(変形例1)
ホップ数を増やせば、より多くの近傍の資産の特徴を考慮してテンプレートを予測することになるため、予測の精度を向上させることが可能となる。一方、ホップ数を増やすと、抽出されるサブグラフに対して、正解データとすべきテンプレート(予測すべきテンプレート)が決定できない状況が生じうる。例えば、指定された資産から2ホップまでのサブグラフSBを、
図7のグラフGAと同様の構造のグラフGBから抽出する場合を考える。このグラフGBに含まれる資産について、以下の3つのテンプレートが採用されていたとする。
(T1)資産X1の属性proAに対して「formula1」(変数はY.proB、Y.proX)
(T2)資産X2の属性proAに対して「formula2」(変数はY.proX、W.proC)
(T3)資産W1の属性proZに対して「formula1」(変数はZ.proE、W.proC)
【0080】
この場合、グラフGBに含まれるいずれの資産(W1、X1、X2、Y1、Z1)を指定したとしても、抽出されるサブグラフSBは同じ(グラフGB全体)となる。例えば、種類が同じ資産Xである資産X1および資産X2に対しても、同じサブグラフSBが抽出される。このような場合、サブグラフSBをモデルに入力したときに予測すべきテンプレートとして、「formula1」および「formula2」のいずれを正解データとすべきか決定することができない。
【0081】
また、正解データを決定して学習が実行できたとしても、モデルにより予測したテンプレートが、実際の資産のいずれに対応するかを決定できない場合が生じうる。例えば、1つの属性に対して複数のテンプレートを予測できるような正解データを用いてモデルが学習され、このモデルにより2つのテンプレートX_proA_formula1およびX_proA_formula2が予測されたとする。このような場合、テンプレートX_proA_formula1およびX_proA_formula2と、サブグラフSBに含まれる2つの資産X1および資産X2と、がどのように対応するか決定できない場合がある。例えば、テンプレートX_proA_formula1に対しては資産X1が用いられ、テンプレートX_proA_formula2に対しては資産X2が用いられるべきであったとしても、予測結果のみからこのような対応を特定できない場合がある。
【0082】
そこで、本変形例では、資産ごとの特徴量を入力情報としてテンプレートを予測するモデル(第2モデルの一例)をさらに用いる。このモデルは、上記実施形態のテンプレートを予測するモデル(例えば
図12のモデル1210)を利用して、上記実施形態のテンプレートを予測するモデルとは別のモデルとして学習される。
【0083】
図16は、本変形例で用いられるモデル1610の構造の一例を示す図である。モデル1610は、資産ごとに学習されてもよいし、すべての資産に対して共通のモデルとして学習されてもよい。モデル1610は、入力情報1601を入力し、予測結果に相当するベクトル1602を出力する。モデル1610は、MLP1611と、関数1612と、を含む。
【0084】
関数1612は、例えば、MLP関数fc’である。関数fc’の出力(ベクトル1602)の次元数は、モデル1610に対応する資産に対して予測されうるテンプレートの総数C’と同じである。総数C’は、資産ごとに異なる値となりうる。モデル1610が、すべての資産に対して共通のモデルとして学習される場合、C’は、上記実施形態のモデルが出力するベクトル1202の次元数であるCと同じ値になりうる。
【0085】
入力情報1601は、モデルを学習する対象となる資産の特徴量に相当するm次元(mは2以上の整数)のベクトルである。資産の特徴量は、例えば、モデル1210に含まれるGGNN1211またはGGNN1212の出力(中間データの一例)のうち、当該資産に対応する資産ノードに相当する情報(ベクトル)として抽出することができる。
【0086】
学習部107は、以下のようにしてモデル1610を学習する。学習部107は、学習済のモデル1210を用いて、指定された資産の特徴量に相当する入力情報1601を求める。学習部107は、求めた入力情報1601をモデル1610に入力し、モデル1610が出力するベクトル1602を求める。そして学習部107は、求められたベクトル1602と、指定された資産に対する正解データに相当するテンプレートのベクトルliとに基づく損失関数を用いてモデル1610を学習する。学習方法はどのような方法であってもよいが、損失関数を最小化するようなモデル1610のパラメータを求める方法を適用することができる。損失関数は、例えば上記の(1)式と同様の関数を用いることができる。
【0087】
モデル1210およびモデル1610は、それぞれホップ数1およびホップ数2が指定されたときに用いられるモデルであると解釈することができる。そこで推論部104は、指定されたホップ数に応じて、以下のようにしてモデル1210およびモデル1610のいずれかを用いて、図面データDAに対して適用するテンプレートを予測する。
【0088】
ホップ数1が指定された場合、推論部104は、上記実施形態の手順によりモデル1210を用いてテンプレートを予測する。ホップ数2が指定された場合、推論部104は、まず、上記実施形態と同様の手順により入力情報1201を生成し、生成した入力情報1201をモデル1210に入力する。推論部104は、モデル1210に含まれるGGNN1211またはGGNN1212の出力のうち、指定された資産に対応する資産ノードに相当する情報(ベクトル)を、入力情報1601として抽出する。推論部104は、入力情報1601を、指定された資産に対応するモデルとして学習されたモデル1610に入力し、モデル1610が出力するテンプレートを求める。
【0089】
(変形例2)
モデルにより予測されたテンプレートが適切でない場合がありうる。例えば、資産Xに対して予測されたテンプレート「formula2」が、資産Yの属性proXと、資産Wの属性proCと、を変数として用いるものとする。しかし資産Xが例えば資産Wに接続されていない場合は、このテンプレートを採用することができない。
【0090】
そこで、本変形例では、例えば推論部104は、予測されたテンプレートの整合性を検証し、不整合となった場合に別のテンプレートをさらに予測して、予測結果として出力する。推論部104は、例えば、過去の図面データDBなどから得られる知識データベースを参照して、テンプレートの整合性を検証する。知識データベースは、例えば上記の(T1)~(T3)のように、資産ごとの採用されたテンプレート、および、当該テンプレートで使用された変数(隣接するノードの属性など)を含む。
【0091】
推論部104は、各テンプレートに対するスコアを算出して中間データまたは予測結果として出力することができるモデルを用いてテンプレートを予測する。推論部104は、予測されたテンプレートの整合性を検証する。例えば推論部104は、指定された資産に対して予測されたテンプレートで変数として使用される他の資産ノードおよびその資産ノードの属性を、知識データベースから求める。推論部104は、求めた資産ノードが、指定された資産に接続されているか、および、求めた属性が、指定された資産に接続されている他の資産ノードの属性に含まれるか、などを検証する。推論部104は、求めた資産ノードが、指定された資産に接続されていない場合、および、求めた属性が、指定された資産に接続されている他の資産ノードの属性に含まれない場合は、不整合が生じたと判定する。
【0092】
不整合が生じたと判定した場合、推論部104は、例えば、スコアが次に大きいテンプレートを求め、求めたテンプレートについて整合性の検証を繰り返す。推論部104は、整合性が検証されたテンプレートを、予測結果として出力する。
【0093】
なお、整合性の検証は、ユーザによりテンプレートの指定が変更されたときに、変更されたテンプレートが、指定された資産に対して適用しうるか判定するための機能としても使用することができる。
【0094】
このように、本実施形態の情報処理装置は、学習済のモデルを用いて新たな図面データに対して適用するテンプレートを求め、テンプレートに含まれる計算に用いる変数を指定することができる。これにより、計算式の生成作業をより効率的に実行可能となる。
【0095】
次に、実施形態にかかる情報処理装置のハードウェア構成について
図17を用いて説明する。
図17は、実施形態にかかる情報処理装置のハードウェア構成例を示す説明図である。
【0096】
実施形態にかかる情報処理装置は、CPU51などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
【0097】
実施形態にかかる情報処理装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
【0098】
実施形態にかかる情報処理装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0099】
さらに、実施形態にかかる情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施形態にかかる情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0100】
実施形態にかかる情報処理装置で実行されるプログラムは、コンピュータを上述した情報処理装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【0101】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0102】
100 情報処理装置
101 受付部
102 変換部
103 抽出部
104 推論部
105 生成部
106 修正部
107 学習部
108 表示制御部
121 記憶部
122 ディスプレイ