(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024054431
(43)【公開日】2024-04-17
(54)【発明の名称】推定装置、訓練装置、グラフ生成方法、分子構造、ネットワーク生成方法及びネットワーク
(51)【国際特許分類】
G16Z 99/00 20190101AFI20240410BHJP
G06N 99/00 20190101ALI20240410BHJP
【FI】
G16Z99/00
G06N99/00
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2020219430
(22)【出願日】2020-12-28
(71)【出願人】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】100091487
【弁理士】
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100105153
【弁理士】
【氏名又は名称】朝倉 悟
(74)【代理人】
【識別番号】100118876
【弁理士】
【氏名又は名称】鈴木 順生
(74)【代理人】
【識別番号】100202429
【弁理士】
【氏名又は名称】石原 信人
(72)【発明者】
【氏名】石谷 隆一郎
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049DD01
(57)【要約】 (修正有)
【課題】高速に化合物のグラフ構造を推定する推定装置、訓練装置、グラフ生成方法、分子構造、ネットワーク生成方法及びネットワークを提供する。
【解決手段】推定装置1は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。1又は複数のプロセッサは、潜在表現及び部分構造に基づいて、ノードの情報、エッジの情報及びノードの接続情報を含む木の情報を取得し、木の情報からグラフを生成し、推論モデルを自己回帰的に用いて、潜在表現から木の情報を取得し、起点ノードを部分構造に関するノードとして、潜在表現から木の情報を取得する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記1又は複数のプロセッサは、
潜在表現及び部分構造に基づいて、ノードの情報、エッジの情報及び前記ノードの接続情報を含む木の情報を取得し、
前記木の情報からグラフを生成する、
推定装置。
【請求項2】
前記1又は複数のプロセッサは、
訓練済の推論モデルにより、前記潜在表現から前記木の情報を取得する、
請求項1に記載の推定装置。
【請求項3】
前記1又は複数のプロセッサは、
前記推論モデルを自己回帰的に用いて、前記潜在表現から前記木の情報を取得する、
請求項2に記載の推定装置。
【請求項4】
前記1又は複数のプロセッサは、
起点ノードを前記部分構造に関するノードとして、前記潜在表現から前記木の情報を取得する、
請求項3に記載の推定装置。
【請求項5】
前記グラフは、分子構造のグラフである、
請求項1から請求項4のいずれかに記載の推定装置。
【請求項6】
前記ノードの接続情報は、前記エッジが接続する前記ノードの接続位置の情報及び前記ノードの接続方向の情報を含む、
請求項1から請求項5のいずれかに記載の推定装置。
【請求項7】
前記1又は複数のプロセッサは、さらに、
生成した前記グラフから、前記部分構造を固定して、前記グラフの前記ノード間における3次元情報を復元する、
請求項1から請求項6のいずれかに記載の推定装置。
【請求項8】
前記3次元情報の復元は、ドッキングシミュレーションにより実行される、
請求項7に記載の推定装置。
【請求項9】
1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記1又は複数のプロセッサは、
ノードの情報及びエッジの情報を含む木の情報を取得し、
前記木の情報から、第1ネットワークに基づいて潜在表現を生成し、
前記潜在表現から、第2ネットワークに基づいて部分構造を含むノードの情報及びエッジの情報を含む木の情報を取得し、
前記第1ネットワークの入力と、前記第2ネットワークからの出力との比較結果に基づいて、前記第1ネットワークと、前記第2ネットワークのパラメータを更新する、
訓練装置。
【請求項10】
前記エッジの情報は、前記エッジにより接続される前記ノードの接続情報を含む、
請求項9に記載の訓練装置。
【請求項11】
1又は複数のプロセッサにより、
潜在表現及び所定部分構造に基づいてノードの情報、エッジの情報及び前記ノードの接続情報を含む木の情報を取得し、
前記木の情報からグラフを生成する、
グラフ生成方法。
【請求項12】
請求項11に記載された方法で生成されたグラフに基づく分子構造。
【請求項13】
1又は複数のプロセッサにより、
ノードの情報及びエッジの情報を含む木の情報を取得し、
前記木の情報から、第1ネットワークに基づいて潜在表現を生成し、
前記潜在表現から、第2ネットワークに基づいて部分構造を含むノードの情報及びエッジの情報を含む木の情報を取得し、
前記第1ネットワークへの入力と、前記第2ネットワークからの出力との比較結果に基づいて、前記第1ネットワークと、前記第2ネットワークのパラメータを更新する、
ネットワーク生成方法。
【請求項14】
請求項13に記載された方法で生成された、ネットワーク。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、推定装置、訓練装置、グラフ生成方法、分子構造、ネットワーク生成方法及びネットワークに関する。
【背景技術】
【0002】
今日、スーパーコンピュータを含むコンピュータにより新薬の候補となりうる化合物を効率よく探索するインシリコ創薬の手法が用いられている。インシリコ創薬のプロセスにおいて、すでによく結合する化合物はわかっているが、その化合物の性質、物性(毒性、動態等)が好ましくないので改善したいという場合がある。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Q. Liu, et.al., “Tagged Fragment Method for Evolutionary Structure-Based De Novo Lead Generation and Optimization,” Journal of Medicinal Chemistry, 2007, Volume 50, Issue 22, pp. 5392-5402, October 6, 2007
【非特許文献2】R. Gomez-Bombarelli, et.al., “Automatic Chemical Design Using a Data-Driven Continuous Representation of Molecules,” ACS Central Science, 2018, Volume 4, Issue 2, pp. 268-276, January 12, 2018
【非特許文献3】G. M. Morris, et.al., “AutoDock4 and AutoDockTools4: Automated docking with selective receptor flexibility,” Journal of Computational Chemistry, 2009, Volume 30, Issue 16, pp. 2785-2791, December, 2009
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の一実施形態は、望ましい新規化合物に関する情報を取得する、推定装置及びこの推定装置に用いるモデルの訓練装置を提案する。
【課題を解決するための手段】
【0005】
一実施形態によれば、推定装置は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサは、潜在表現及び部分構造に基づいて、ノードの情報、エッジの情報及び前記ノードの接続情報を含む木の情報を取得し、前記木の情報からグラフを生成する。
【図面の簡単な説明】
【0006】
【
図1】一実施形態に係る推定装置の構成を示すブロック図。
【
図2】一実施形態に係る推定における変換を示す図。
【
図3】一実施形態に係る訓練装置の構成を示すブロック図。
【
図4】一実施形態に係る訓練における変換を示す図。
【
図5】一実施形態に係るサイト情報の一例を示す図。
【
図6】一実施形態に係るサイト情報の一例を示す図。
【
図7】一実施形態に係るサイト情報の一例を示す図。
【
図8】一実施形態に係るサイト情報の一例を示す図。
【
図9】一実施形態に係るアセンブルの一例を示す図。
【
図10】一実施形態に係るデコード部におけるモデルの例を示す図。
【
図11】一実施形態に係る推定装置又は訓練装置の実装の一例を示す図。
【
図12】一実施形態に係るドッキングシミュレーションの一例を示す図。
【
図13】一実施形態に係るハードウェア実装例を示す図。
【発明を実施するための形態】
【0007】
まず、本開示における用語の説明をする。
【0008】
「木分解」とは、分子構造のグラフ表現からツリー表現へとマッピングする手法を示す。
【0009】
「シングルトン」とは、化合物分子のグラフ表現を木分解する場合に、分岐点となる原子に対応するノードを示す。グラフの分岐点は、その分岐点が環構造に属していない場合、このシングルトンのノードとなる。
【0010】
「ボンド」とは、共有結合している2原子を1つのノードとして表現したものである。ただし、環構造に属する共有結合を除く。
【0011】
「リング」とは、化合物分子のグラフ表現を木分解する場合に、環構造に対応するノードである。リングとして表現される化合物は、例えば、ベンゼン、ピリジン、ピリミジン等、又は、シクロブタジエン、シクロペンタジエン、ピロール、シクロオクタテトラエン、シクロオクタン等が代表的なものであるが、これらには限られず、環状のものであればよい。
【0012】
「サイト情報」とは、木分解されたノードが、元の分子構造において、どのように接続されていたかの関係を示す情報である。一般的な木分解は、不可逆であるが、このサイト情報を用いることにより、本開示における実施形態においては、木分解したツリー表現からグラフ表現に逆変換できる可逆性を担保する。また、このサイト情報を付加したツリー表現を、サイト情報付きツリー表現と呼ぶ。
【0013】
「ノード」、「エッジ」は、本開示においては、主にツリー表現のノード、エッジを示すが、木分解する前後においては、グラフ表現におけるノード、エッジと、ツリー表現におけるノード、エッジと、適宜読み替えるものとする。
【0014】
以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。本開示においては、グラフで表現されたデータを第1タイプのデータ、サイト情報付きツリーで表現されたデータを第2タイプのデータ、潜在表現を第3タイプのデータと記載することがある。
【0015】
以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。
【0016】
例えば、タンパク質に結合する化合物において、当該化合物のどの部分構造(フラグメント: fragment)がタンパク質に良好に結合するかが実験的にわかっていることが多い。このような場合に、この結合する所定の部分構造(シードフラグメント: seed fragment)を有する新規化合物をデザインすることにより、タンパク質に良好に結合する化合物を探索することが可能となる。本実施形態においては、一例として、部分構造としてタンパク質に結合するシードフラグメントを設定し、このシードフラグメントからノードを自己回帰的に推定するモデルを訓練する装置、及び、このモデルにより化合物を推定する装置について説明する。
【0017】
一実施形態による推定装置は、このようなシードフラグメントを有する新規化合物を生成可能とする。
【0018】
(推定装置)
図1は、一実施形態に係る推定装置1の構成の一例を模式的に示すブロック図である。推定装置1は、入力部100と、記憶部102と、探索部104と、デコード部106と、復元部108と、出力部110と、を備える。推定装置1は、入力部100から入力された情報、又は、推定装置1において自動的に生成される潜在状態に基づいて、化合物の化学式を生成して出力する。
【0019】
入力部100は、外部からの入力を受け付ける。入力部100が受信したデータは、必要であれば記憶部102に格納する。例えば、入力部100は、ユーザからの要求を受信したり、探索部104における探索のシードとなる情報を受け付けたりする。
【0020】
記憶部102は、推定装置1の動作に必要となる情報を格納する。また、推定装置1の処理における中間生成データ、最終的な生成データ等を格納してもよい。例えば、推定装置1の少なくとも1つの処理が、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実現される場合には、このソフトウェアに係るプログラムを格納する。また、訓練済のニューラルネットワークモデルを構成するハイパーパラメータ及びパラメータを格納してもよい。
【0021】
探索部104は、化合物を生成するための潜在表現(第3タイプ)のデータを取得する。例えば、この潜在変数は、乱数値を用いて取得されてもよい。別の例としては、探索部104は、入力された潜在変数又はすでに取得されている化合物に基づいた潜在変数に乱数値を加算、乗算等したものを潜在変数として取得してもよい。
【0022】
さらに別の例として、探索部104は、デコード部106がデコードした結果、又は、復元部108が復元した結果に基づいて、よりよい結果が取得できるように潜在表現を最適化してもよい。この最適化には、例えば、PSO(粒子群最適化: Particle Swarm Optimization)等のメタヒューリスティクスに基づいた手法を用いてもよい。
【0023】
デコード部106は、訓練済のニューラルネットワークモデルを用いて探索部104が探索した潜在変数をデコードする。デコード部106は、潜在変数をデコードすることにより、潜在変数に対応するサイト情報付ツリー表現を取得する。
【0024】
デコード部106は、例えば、記憶部102に記憶されている各種パラメータを用いて、デコーダニューラルネットワーク(以下デコーダNN 120と記載する。)を構成する。そして、デコード部106は、このデコーダNN 120に潜在変数を入力することによりサイト情報付ツリー表現(第2タイプ)のデータを取得する。このデコーダNN 120は、例えば、オートエンコーダを生成する手法により最適化されたモデルである。
【0025】
すなわち、デコード部106は、第3タイプのデータを入力すると、第2タイプのデータを出力するデコードNN 120を用いて、第3タイプから第2タイプへとデータを変換する。
【0026】
これと併せて、デコード部106は、さらに、上述した化合物におけるターゲットとなる物質との結合部についてのシードフラグメントを固定して潜在変数をデコードする。このように、デコード部106は、潜在表現から、シードフラグメントが少なくとも1つのノードとして含まれるサイト情付ツリー表現を取得する。
【0027】
換言すると、デコーダNN 120は、潜在表現から、シードフラグメントを含むサイト情報付ツリー表現を取得するニューラルネットワークモデルとして訓練されたモデルであり、デコード部106は、このデコーダNN 120に潜在変数を入力することにより、シードフラグメントを含むサイト情報付ツリー表現を取得する。
【0028】
復元部108は、デコード部106が出力したサイト情報付ツリー表現から、化合物の化学構造式を出力する。復元部108は、木分解の逆操作を実行することにより、サイト情報付ツリー表現をグラフ表現である化学構造式表現(第1タイプ)のデータへと変換する。すなわち、復元部108は、データを第2タイプから第1タイプへと変換する。このグラフ表現への逆変換をアセンブルと呼ぶ。
【0029】
このアセンブルの方法及び上述したシードフラグメントを含む情報を取得するニューラルネットワークモデルの生成については、後述する訓練装置の説明においてより詳しく説明する。
【0030】
なお、デコード部106又は復元部108の少なくとも一方は、取得された結果を判定する動作をしてもよい。例えば、デコード部106は、出力されたサイト情報付ツリー表現を評価関数により評価して、そのスコア値に基づいて出力するか、再探索するかを選択してもよい。例えば、デコード部106は、出力されたサイト情報付ツリー表現を評価関数により評価して、そのスコア値に基づいて出力するか、再探索するかを選択してもよい。復元部108も同様に、出力された化学構造式の情報を評価関数により評価して、そのスコア値に基づいて出力するか、再探索するかを選択してもよい。
【0031】
探索部104は、デコード部106又は復元部108の少なくとも一方において再探索すると判断された場合には、再探索を実行する。なお、この判断は、デコード部106又は復元部108において実行されるのではなく、探索部104がデコード部106又は復元部108の出力に基づいて判断するものであってもよい。
【0032】
探索部104は、複数の潜在変数を同じタイミングで探索してもよい。例えば、探索手法としてPSOを用いる場合には、複数の粒子となる潜在変数について並行して探索を実行する。この場合、デコード部106もまた、並行して複数の潜在変数から複数の木の情報を生成してもよい。ここで、木の情報とは、ノードの情報及びエッジの情報を含む木の情報のことを表す。以下、ノードの情報及びエッジの情報を含む情報を単に木の情報と記載することがある。
【0033】
出力部110は、適切な情報を出力する。例えば、出力部110が出力する情報は、化学構造式である。例えば、出力部110は、化学構造式の情報を外部へと出力する。また、出力部110は、記憶部102に化学構造式の情報を格納することにより出力としてもよい。このように、出力とは、外部への出力と併せて、内部の記憶部102へと記憶することをも含む概念である。
【0034】
出力部110は、探索が一回で終了する場合には、当該情報を出力する。探索部104により出力情報の最適化がされる場合には、最終的なデータのみを出力してもよいし、最終的なデータとともに、途中経過のデータを含む複数のステップにおけるデータを出力してもよい。
【0035】
図2は、推定装置1の推定処理を示す概念をチャートとして示すものである。この
図2を用いて、推定装置1の処理の流れを説明する。
【0036】
まず、探索部104は、潜在変数(第3タイプのデータ)z’を探索する(S100)。上述したように、この潜在表現は、乱数として取得してもよいし、予め生成した化合物の潜在表現に近い潜在変数を取得してもよい。例えば、ある化合物に性質、又は、構造の近い化合物を推定したい場合には、当該化合物の構造式(グラフ表現)を木分解及びエンコーダを介して潜在表現zとして取得する。そして、この潜在表現zに対して、微小値等を加算したり、1に近い値を乗算したりすることにより、探索の対象となる潜在表現z’を取得する。
【0037】
エンコーダ及びデコーダの訓練においては、その訓練データとして多種多様な化合物のデータを用いる。上述したようなシードフラグメントは、訓練データとして用いられるデータの一部に存在している可能性が高い。このため、エンコーダにシードフラグメントを含む化合物のグラフに関する情報を入力すると、適切な潜在変数を取得することができる。そして、この潜在変数の近傍の潜在変数を選択することにより、少なくとも1ノードにシードフラグメントを含む化合物の潜在変数を取得することが統計的に可能である。
【0038】
例えば、一般的な創薬等に用いられる化合物におけるタンパク質との結合をするシードフラグメントは、適切に収集された訓練データにおいては含まれる可能性が非常に高く、適切な訓練データを収集することにより、シードフラグメントを少なくとも1つ含む化合物の潜在変数を取得することが可能となる。製薬に限られず、他の用途、例えば、触媒等の化合物についても、同様に適切な訓練データを用いて訓練されたエンコーダを用いることで適切な潜在変数を取得することが可能となる。
【0039】
また、復元においては、デコーダNN 120においてシードフラグメントを固定して与えて自己回帰型のニューラルネットワークモデルを用いることにより、シードフラグメントを起点ノードとして有する化合物を取得することができる。このため、上記のように訓練データにおいてシードフラグメントを含む化合物を有するデータセットを選択することが望ましいが、必ずしもシードフラグメントを含むデータセットが必要というわけではない。例えば、自己回帰型のニューラルネットワークとして、種々のRNN(Recurrent Neural Network)を用いてもよい。
【0040】
例えば、目的に応じた適切なデータセットを用いて訓練をしておくことにより、復元部108におけるアセンブルにおいてデコーダNN 120を用いた自己回帰処理をするタイミングで、シードフラグメントを含む、適切なデータセットに基づいた化合物を推定することができる。そして、この化合物は、目的に応じた適切な形状、形態を有する化合物であることが期待される。
【0041】
また、別の例として、エンコーダを利用して少なくとも1ノードとしてシードフラグメントを含む化合物の潜在変数を適切に取得できる態様としてもよい。このようなエンコーダは、例えば、後述する訓練時に、化合物内に構造を有することが望ましいシードフラグメントが出力されるように、オートエンコーダを形成して訓練することにより取得することができる。
【0042】
次に、デコード部106は、デコーダNN 120に探索部104が生成した潜在表現z’を入力して、サイト情報付ツリー表現(第2タイプ)のデータを取得する(S102)。図に示される個々の分子式がサイト情報付ツリー表現におけるノードであり、矢印がサイト情報を示す。個々のノード間におけるサイト情報を矢印として示している。デコーダNN 120は、基本的には上述のエンコーダの訓練と並行して訓練される。すなわち、デコーダNN 120は、自己回帰型のニューラルネットワークモデル、例えば、RNNを形成するニューラルネットワークモデルとして訓練される。
【0043】
デコード部106は、後述するように、このデコーダNN 120に対して生成された潜在変数と、起点ノードとしてシードフラグメントと、を入力する。この結果、次のサイト情報付ツリーのノードを取得する。次に、潜在変数と、シードフラグメントと、取得されたノードと、の情報をデコーダNN 120に入力することにより、さらに次のノードの情報を取得する。このように、シードフラグメントから開始して潜在変数に基づいたサイト情報付ツリーのノードを次々にデコードする。
【0044】
次に、復元部108は、デコード部106が生成したサイト情報付ツリー表現を用いてアセンブルを行うことにより、化合物のグラフ表現x’(第1タイプ)のデータを取得する(S104)。なお、デコード部106と復元部108は、サイト情報付ツリー情報へのデコードと化合物へのアセンブルについて、ツリー情報全てのデコードを実行してから全てのツリー情報からのアセンブルが実行されることには限られず、ツリー情報に含まれるノードごとに、デコードとアセンブリとが繰り返して実行されるものであってもよい。
【0045】
復元部108により化合物のデータが取得された後、さらなる探索が必要であれば、探索部104は、デコード部106又は復元部108の少なくとも一方の生成したデータを用いて新たな潜在表現(第3タイプ)のデータを取得し、探索を繰り返してもよい(S106)。
【0046】
そして、最終的に取得された化合物のデータを出力して処理を終了する。このように、推定装置1は、化合物x’の情報を生成することが可能となる。
【0047】
(訓練装置)
次に、訓練装置の構成、動作について説明する。
【0048】
図3は、一実施形態に係る訓練装置の構成を示すブロック図である。訓練装置2は、入力部200と、記憶部202と、分解部204と、エンコード部206と、デコード部208と、復元部210と、更新部212と、出力部214と、を備える。
【0049】
入力部200は、訓練装置2の動作に必要となるデータの入力を受け付ける。訓練装置2は、例えば、入力部200を介して訓練データとなる化合物のグラフ表現(第1タイプ)のデータを取得する。また、最適化を行うニューラルネットワークモデルのハイパーパラメータ等の入力を受け付けてもよい。
【0050】
記憶部202は、訓練装置2の動作に必要となるデータを格納する。訓練装置2が入力部200を介して取得した訓練データが記憶部202に格納されてもよい。この他の動作は、推定装置1の記憶部102とほぼ同じものであるので詳しい説明については省略する。
【0051】
分解部204は、入力部200を介して取得した第1タイプのデータについて木分解を実行することにより、サイト情報付ツリー表現(第2タイプ)のデータへと変換する。また、別の例として、分解部204は、記憶部202に格納されている第1タイプのデータに基づいて第2タイプのデータを取得してもよい。すなわち、分解部204は、データを第1タイプから第2タイプへと変換する。
【0052】
エンコード部206は、分解部204が生成した第2データをエンコーダNN 20に入力して潜在表現(第3タイプ)のデータを取得する。エンコード部206は、例えば、記憶部202に格納されているモデルの各種パラメータに基づいてエンコーダNN 220を形成し、第2タイプのデータから第3タイプのデータを生成する。すなわち、エンコード部206は、データを第2タイプから第3タイプへと変更する。
【0053】
デコード部208は、エンコード部206が生成した第3タイプのデータをデコーダNN 222に入力して第2タイプのデータを生成する。このデコーダNN 222及びデコード部208は、上述した推定装置1のデコーダNN 120及びデコード部106とそれぞれ対応するものである。すなわち、デコード部208は、データを第3タイプから第2タイプへと変換する。
【0054】
復元部210は、デコード部208が出力した第2タイプのデータについてアセンブルを実行することにより、第1タイプのデータを取得する。この復元部210は、上述した推定装置1の復元部108と対応するものである。すなわち、復元部210は、データを第2タイプから第1タイプへと変換する。
【0055】
更新部212は、復元部210が出力した化合物の第1タイプのデータに基づいて、エンコーダNN 220と、デコーダNN 222とを最適化する。この最適化には、オートエンコーダの最適化に用いられる種々の最適化が用いられてもよい。また、オートエンコーダの最適化として、確率分布として潜在変数を扱うVAE(Variational Autoencoder)の手法を用いてもよい。
【0056】
別の例として、更新部212は、第1タイプのデータに基づいてモデルの更新を行うのではなく、デコード部208の出力した第2タイプのデータに基づいてモデルの更新を実行してもよい。この場合、訓練データの第1タイプのデータを第2タイプに変換したデータと、デコード部208が出力したデータとを比較することにより最適化が実行される。
【0057】
更新部212は、このように、第1タイプ又は第2タイプの少なくともいずれか一方のデータを用いてエンコーダとデコーダのパラメータ更新を実行する。望ましくは、更新部212は、第2タイプのデータを用いたパラメータ更新を実行する。
【0058】
出力部214は、更新部212によりパラメータが更新されて最適化されたエンコーダ及びデコーダの各種パラメータ等を出力する。推定装置1と同様に、出力部214は、取得したデータを外部に出力してもよいし、記憶部202に出力してもよい。
【0059】
記憶部202にパラメータ等を格納した場合には、訓練後の訓練装置2を推定装置1として利用してもよい。
【0060】
図4は、訓練装置2の訓練処理を示す概念をチャートとして示すものである。
図4を用いて、訓練装置2の処理の流れを説明する。
【0061】
まず、訓練装置2は、入力部200を介して化合物のデータxを取得する。このデータは、例えば、第1タイプ、すなわち、グラフ形式の表現のデータであってもよい。本実施形態において、このデータは、シードフラグメントを含む第1タイプのデータである。すなわち、エンコーダNN 220と、デコーダNN 222の訓練データとして、シードフラグメントを含むデータを用いる。
【0062】
次に、分解部204は、この第1タイプの化合物データを木分解し、第2タイプのデータ、すなわち、サイト情報付ツリー表現のデータを取得する(S200)。
【0063】
次に、エンコード部206は、分解部204が生成した第2タイプのデータをエンコーダNN 220に入力して、第3タイプのデータである潜在表現zを生成する(S202)。訓練データとして本開示における推定装置1の目的に対して適切な多種多様な化合物のデータを用いることにより、統計的にシードフラグメントを少なくとも1つを備える化合物のデータ潜在変数へと変換するエンコーダNN 220を形成することができる。上述したように、シードフラグメントを備えるデータが含まれていないデータセットを訓練データとすることもできる。別の例としては、訓練データとして明示的にシードフラグメントを含むデータを用いてもよい。
【0064】
次に、デコード部208は、エンコード部206が生成した第3タイプのデータである潜在表現zをデコーダNN 222に入力して、第2タイプのデータを取得する(S204)。推定装置1において説明した処理と同様に、シードフラグメントを起点としたデコーダNN 222を含む自己回帰型モデルを用いることにより、シードフラグメントを含む化合部のサイト情報付ツリー表現として各ノードの情報を取得する。
【0065】
次に、復元部210は、デコード部208が生成した第2タイプのデータから、アセンブルを実行して第1タイプのデータである化合物のグラフ表現を取得する(S206)。
【0066】
次に、更新部212は、復元部210が復元したデータに基づいて、エンコーダNN 220及びデコーダNN 222のパラメータの更新を実行する(S208)。なお、上述したように、復元部210が復元した第1タイプのデータではなく、デコード部208が生成した第2タイプのデータに基づいてパラメータの更新をしてもよい。この場合、S206の処理は必須ではない。
【0067】
例えば、更新部212は、分解部204が分解したシードフラグメントを含む第1タイプの化合物データである第2タイプのデータを教師データ(ラベルデータ)として用いてパラメータの更新を行う。より具体的には、この第2タイプのデータをエンコーダNN 220に入力し(S202)、取得された第3タイプのデータをデコーダNN 222に入力して(S204)、第2タイプのデータを取得する。そして、このデコーダNN 222が出力した第2タイプのデータと、エンコーダNN 220に入力した第2タイプのデータとを比較することにより損失を算出して、エンコーダNN 220及びデコーダNN 222のパラメータを更新する。
【0068】
上記のように、オートエンコーダの訓練を実行することにより、エンコーダNN 220とデコーダNN 222を最適化し、潜在空間における変数を入力すると、シードフラグメントを含むサイト情報付ツリー情報を取得することが可能なデコーダNN 222を形成する。
【0069】
上記においては、エンコーダNN 220と、デコーダNN 222との双方を訓練することを説明したが、これには限られない。例えば、訓練装置2は、デコーダNN 222を固定して、エンコーダNN 220だけを更新する構成であってもよいし、エンコーダNN 220を固定して、デコーダNN 222だけを更新する構成であってもよい。また、訓練装置2は、エンコーダNN 220、デコーダNN 222の少なくとも1つのいずれかのパラメータのみを更新できる構成であってもよい。
【0070】
なお、オートエンコーダには、上述したように、VAEを用いてもよい。この場合、エンコーダNN 220が出力した潜在変数を確率変数に変換し、変換された確率分布を用いて、それぞれのモデルを訓練する。例えば、エンコーダNN 220により取得された第3タイプのデータについて、平均値及び分散値を算出し、この算出された平均値及び分散値を用いてデコーダNN 222に入力する第3タイプのデータを生成する。そして、この生成された第3タイプのデータをデコーダNN 222に入力することにより取得された第2タイプのデータを用いて、更新部212が損失を算出して、パラメータの更新を実行してもよい。
【0071】
最終的に取得されたデコーダNN 222のパラメータ等を、出力部214が出力することにより、訓練装置2は、処理を終了する。このように、訓練装置2は、少なくともデコーダNN 222に関する情報を生成することができる。
【0072】
なお、出力部214は、デコーダNN 222だけではなく、エンコーダNN 220のパラメータ等を出力してもよい。この場合、将来的にさらなる学習等にエンコーダNN 220のパラメータを用いることができる。
【0073】
訓練装置2により最適化されたデコーダNN 222は、推定装置1におけるデコーダNN 120として用いることができる。この訓練済の推論モデルを用いることにより、推定装置1は、第3タイプのデータ空間において1点を指定することにより、第1タイプのデータを生成する推論を実現することができる。
【0074】
(木分解)
次に、本開示におけるサイト情報付木分解について説明する。訓練装置2の分解部204、復元部210、及び、推定装置1の復元部108は、以下の説明にあるように、木分解による変換及びアセンブルを実行する。
【0075】
木分解されたノードは、シングルトンノード、ボンドノード、リングノードのいずれかのノードとなる。ノード間の接続は、ボンド-ボンド、ボンド-シングルトン(又はシングルトン-ボンド)、リング-ボンド(又はボンド-リング)、リング-リングの4種類のケースがある。
【0076】
ボンド-ボンドは、2つのボンド同士が接続するケースである。
【0077】
ボンド-シングルトンは、1つのボンドが分岐点であるシングルトンに接続するケースである。
【0078】
リング-ボンドは、1つのボンドがリングに接続しているケースである。
【0079】
リング-リングは、2つのリングが直接接続しているケースである。この場合、縮合している(1つのボンドを共有して接続している)ケースと、スピロ結合(1つの原子のみを共有して接続している)ケースとがある。
【0080】
一般的な木分解を化合物のグラフ表現に対して実行すると、リングが関連するケースに関して、接続する位置等の情報が失われる。このため、ツリー情報単独では、一意性を持った復元が不可能である。本実施形態においては、ツリー情報とグラフ表現とを一意的に変換するために、ノード同士が接続する関係を示すノード接続情報を机上法にサイトに関する情報として付与する。この接続情報は、後述で詳しく説明するように、例えばノードが接続する位置の情報、及び、ノードが接続する方向の情報を含む。
【0081】
上記の4つのケースについて、それぞれ木分解、アセンブルにおいてどのように処理するかを以下詳しく記載する。
【0082】
ボンド-ボンドの接続について説明する。例えば、ノードC-Nと、ノードC-Nが1つのエッジで接続している場合、元のグラフ表現においては、炭素原子を共有してボンドノードが接続したケースと、窒素原子を共有してボンドノードが接続したケースがあり得る。すなわち、ツリー表現では、元の化合物において、どちらの原子が共有されていたかの情報が失われるため、ツリー表現のみからグラフ表現を復元することができない。
【0083】
これに対応するため、分解部204は、サイト情報として、どの原子がノード間で共有されていたかを記憶しておく。このサイト情報を用いることにより、復元部108、210は、グラフ表現を復元することが可能となる。
【0084】
ボンド-シングルトンの接続の場合は、一般的な木分解によるツリー表現のみであっても復元可能である。例えば、ノードC-NとノードCが1つのエッジで接続している場合、両ノードは炭素原子を共有していると一意的に決定することができる。そのため、復元部108、210は、付加情報なしにグラフ表現を取得することができる。
【0085】
リング-ボンドの接続の場合、一般的な木分解においては、ボンドノードが、リングノードの環構造中のいずれの原子に接続しているかの情報が失われる。このため、ツリー表現のみからでは、グラフ表現を復元することができない。
【0086】
これに対応するために、分解部204は、サイト情報として、ボンドがリングのいずれの位置、すなわち、どの原子に接続していたかを記憶する。復元部108、210は、このサイト情報に基づいて、リングに対するボンドの接続位置を一意的に決定することが可能となる。
【0087】
リング-リングの接続の場合、縮合しているケースと、スピロ結合しているケースで状況が異なる。
【0088】
縮合している場合、2つのリングノードが、互いの環構造中のどのボンドを共有して縮合していたかの情報が木分解により失われる。このため、ツリー表現からだけではグラフ表現を復元することができない。これに対応するために、分解部204は、サイト情報として、どのボンドを共有していたかを記憶する。さらに、サイト方向情報として、そのボンドが接続していた向きを記録しておく。このサイト情報及びサイト方向情報を用いることにより、復元部108、210は、グラフ表現を復元することが可能となる。
【0089】
スピロ結合している場合、2つのリングノードが、互いの環構造中のどの原子を共有して結合していたかの情報が木分解により失われる。このため、ツリー表現からだけではグラフ表現を復元することができない。これに対応するために、リング-ボンドの接続の場合と同様に、サイト情報として、どの原子を共有して接続していたかを記憶しておけば、復元可能となる。
【0090】
このように、リングが関連している接続に関してサイト情報をツリー表現に付加することにより、グラフ表現への復元をすることが可能となる。サイト情報の一例を以下説明する。
【0091】
サイト情報は、ノードが表現する化合物の部分原子群(ボンドノードの場合は共有結合で接続された2つの原子、リングノードの場合は環構造に属する3つ以上の原子)をノード内で一意に表現できるようにあらかじめ適切に決めておく。ボンドノードであれば、例えば、ノードに含まれる各原子に0、1等の数値をサイト情報として付与される。リングノードであれば、例えば、基準となる原子から時計回りで全ての原子を通るように、番号が付与される。サイト情報が0となる基準の原子は、例えば、元素名をアスキーコードで表して辞書ソートした昇順であってもよい。また、別の例としては、原子番号に基づいて、決定してもよい。
【0092】
0となる複数の候補があるボンドノードは、いずれの原子を0としてもよい。リングノードの場合は、例えば、当該候補から数値を振る順に原子を並べた場合に、アスキーコードによる辞書順が一番若くなる、又は、原子番号を順番に並べた場合に一番小さくなる順番としてもよい。原子番号の場合は、1~2桁の番号であっても、3桁に拡張したものを用いてもよい。例えば、6個の原子を有するリングノードの場合には、18桁の数値として、一番若くなるようにサイト情報を付与してもよい。
【0093】
また、上記に限定されるものではなく、同じ構成を有するボンドノード、又は、リングノードにおいては、同じサイト情報が適切に付与される手法であればよい。同じ手法でサイト情報を付与する場合に、辞書順等に差異が出ない、例えばベンゼン環のように対称性を有するノードにおいては、候補となる原子のうち、いずれの原子を基準としてもよい。
【0094】
サイト情報(サイト方向情報を含む)は、実装においては、全ての木のノードに付加されてもよい。例えば、ボンド-シングルトンの接続においては、サイト情報が任意の値に設定されてもよいし、0として設定されてもよい。以下の説明においては、全てのノードにサイト情報を付加するものとして説明する。もちろん、ボンド-シングルトンの接続においては、サイト情報を付加しない構成であってもよい。
【0095】
まず、付加するサイト情報について説明する。
【0096】
図5は、サイト情報についての一例を示す図である。
図5は、ボンド-ボンドの接続に関するサイト情報を示すものであるが、ボンド-シングルトンの場合であっても同様に処理することができる。以下の図においては、○は、ノードを示し、矢印は、特徴を付加した有向のエッジを示す。
【0097】
例えば、ノードA及びノードBは、双方C-Nを示すノードであり、これらのノードが接続する。ノード内の炭素原子(C)には0、窒素原子(N)には1の番号が付与されているとする。このツリー表現があらわす分子構造としては、
図5のようにCH
3NHCH
3と NH
2CH
2NH
2、の二通りがありうるが、エッジA → Bに0の情報が付加され、エッジB → Aに0の情報が付加されていた場合、このツリー表現をアセンブルして得られるグラフ表現(化合物)は NH
2CH
2NH
2と一意に決定できる。
【0098】
また、シングルトンについて、サイト情報は、必須ではないが、実装上においては付加してもよい。
【0099】
復元部108、210は、このサイト情報を元に復元を行う。
【0100】
図6は、サイト情報についての一例を示す図であり、リング-ボンドの接続に関するサイト情報を示すものである。ノードAは、リングであり、ノードBは、ボンドである。
【0101】
ノードAの「2」は、ノードAのグラフのリングにおいて所定の原子から出発し、全ての原子を通るように、番号が付与される。
図6に示すように、図のSから始まり、順に0、1、…、4と番号が付与される。ノードBについては、
図5の場合と同様に、0、1と番号が付与される。
【0102】
ノードAからノードBに向かうエッジには、接続する原子の番号である2がサイト情報として付加され、ノードBからノードAに向かうエッジには、0がサイト情報として付加される。
【0103】
このようなサイト情報を有する場合、復元部108、210は、下方の図における左のグラフではなく、右のグラフを当該サイト情報付の木の情報から一意に復元することができる。復元部108、210は、例えば、ノードAからノードBに向かうエッジの情報に基づいたノードAの2の位置の原子と、ノードBからノードAに向かうエッジの情報に基づいたノードBの0の位置の原子とを接続する。
【0104】
リングとボンドの接続の場合、復元部108、210は、リングにおける接続する原子の位置を、上記のようにサイト情報として付加することにより、木の情報から、原子グラフを一意的に復元することが可能となる。
【0105】
図7は、サイト情報についての一例を示す図であり、リング-リングの縮合接続に関するサイト情報を示すものである。ノードA、ノードBともにリングである。例えば、ノードAは、6員環の芳香族化合物であり、ノードBは、5員環の芳香族化合物である。
【0106】
ノードAは、原子グラフにおいて、ある辺から順番に0~5の番号が付加される。ノードBも同様に、0~4の番号が付加される。
図6の場合とは異なり、原子グラフのノードではなく、原子グラフのエッジに対してサイト情報となる番号が付加される。
【0107】
縮合接続の場合には、ノードのサイト情報として、原子グラフのエッジの番号と、接続する方向とを指定する。例えば、エッジA → Bのサイト情報として、番号0と方向+1が付加される。同様に、エッジB → Aのサイト情報として、番号3と方向+1が付加される。方向は、例えば、番号が付加されている順番に接続するか、逆順に接続するかを意味する。例えば、方向は、時計方向に付与されるが、一例として示すものであり、一意的に指定できるものであれば反時計回りであってもよい。
【0108】
図7の例においては、エッジA → Bのサイト情報が0(+1)、エッジB → Aのサイト情報が3(+1)であれば、ノードAは、原子グラフの0が方向+で接続され、ノードBは、原子グラフの3が方向+で接続されるものとする。このため、復元部108、210は、図の下方の右側の接続状態であることを一意的に復元することができる。
【0109】
図7の例のケースでは、エッジA → Bのサイト情報が0(+1)である場合には、同じ接続を示すのに、エッジB → Aのサイト情報を1(-1)としてもよい。このように、サイト情報の付与の仕方は、同じ接続に関して複数存在してもよいが、サイト情報を含めた木の情報から、原子グラフが、一意的に復号できればよい。
【0110】
図8は、サイト情報についての一例を示す図であり、リング-リングのスピロ接続に関するサイト情報を示すものである。ノードA、ノードBは、ともにリングであり、
図7と同様の構成である。
【0111】
スピロ接続の場合は、サイト方向情報を0とする。復元部108、210は、リング-リングを示す木からグラフへと復元する場合に、まず、サイト方向情報を参照してもよい。サイト方向情報が0であれば、この
図8に示すように、復元部108、210は、サイト情報が原子の番号を示すものとして判断し、指定された原子同士を接続してグラフ情報を復元する。一方で、サイト方向情報が±1の場合は、
図7のケースに基づいて、エッジ同士を接続してグラフ情報を復元する。
【0112】
(訓練方法)
上記のようにサイト情報を付与した木分解をすることにより、ニューラルネットワークモデル(エンコーダNN、デコーダNN)の訓練方法も、通常の機械学習の手法から変更する。
【0113】
一例として、上記のサイト付情報を訓練するために、TreeGRU(Tree Gated Recurrent Unit)を用いるが、例えば、Tree LSTM(Tree Long Short Term Memory)でも同様に実装することができる。TreeGRUは、例えば、W. Jin, et.al., “Junction Tree Variational Autoencoder for Molecular Graph Generation,” arXiv:1802.04364v4, March 29, 2019に示す方法を用いる。例えば、このTreeGRUでは、VAEによるオートエンコーダの最適化が実現できる。これらは一例であり、他の適切なネットワークの形成方法及び最適化方法を適用してもよい。
【0114】
本実施形態においては、訓練は、以下の式により表すことができる。
【数1】
【数2】
【数3】
【数4】
【数5】
【数6】
【0115】
式(1)のEdgeTreeGRU()は、サイト情報付ツリー表現をメッセージとして入出力するように設計されたGRUである。xは、ノードの種類等を示す特徴量を示すベクトルであり、例えば、ワンホットベクトルで表現される。eは、エッジの情報、すなわち、サイト情報(サイト方向情報を含む)の特徴量を示すベクトルであり、例えば、ワンホットベクトルで表現される。hは、ノード間のメッセージベクトルである。このように、サイト情報を含む特徴量ベクトルを定義し、ノード間のメッセージベクトルをGRUの隠れベクトルとして与えることで、GRUと同様に処理を実行する。
【0116】
また、各式におけるσ()は、シグモイド関数、odotは、要素同士の積を示す。W、Uは、重みを表し、bは、バイアス項を表す。
【0117】
式(1)から式(6)にしたがって、メッセージベクトルhが演算される。ここで、サイト情報は、式(2)、式(4)、式(5)に示すように、GRUのメッセージベクトルにその情報が含まれるように連結(concatenate)されて演算される。
【0118】
エンコード部206は、GRUを表すネットワークとして、上記の式(1)のEdgeTreeGRU()を用いて、エンコーダNN 220を形成する。デコード部208も同様に、EdgeTreeGRU()を用いてデコーダNN 222を形成する。デコード部208は、以下の式に基づいて、グラフ情報のデコードとともに、サイト情報のデコードを実行する。
【数7】
【数8】
【数9】
【数10】
【数11】
【0119】
各式において、u、Wは、重みを表す。
【0120】
式(7)のτ()は、ReLUを表す。あるノードのデコードにおいて、デコード部208は、式(7)に基づいて当該ノードがさらに子ノードを有するか否かの確率を、前ステップにおける出力z、ノードの特徴x、受信したメッセージhに基づいて算出する。
【0121】
式(8)のqは、子ノードが生成された場合の当該ノードの特徴を示す。
【0122】
さらに、本実施形態においては、デコード部208は、上記の木のノード情報の推論に加えて、サイト情報、サイト方向情報を推論する。
【0123】
デコード部208は、式(9)に基づいて前ステップの出力と入力メッセージとを用いて中間変数を算出する。
【0124】
さらに、デコード部208は、式(10)に基づいて式(9)の結果と重みとからサイト情報を取得し、式(11)に基づいて、式(9)の結果と重みとからサイト方向情報を推論する。
【0125】
この結果、デコード部208は、潜在変数からサイト付の木の情報を取得する。上記は、オートエンコーダとしてのエンコード部206、デコード部208の動作であるが、デコードNNだけを用いることも可能である。推定装置1においては、潜在変数に対する式(7)から式(11)の演算に基づいて、デコード部106がサイト付の木の情報を取得する。
【0126】
更新部212は、訓練データに対する上記の式に基づいてエンコード及びデコードされた木の情報との評価値(損失、Loss)を算出し、この評価値に基づいて各式の重みU、W、u、及び、場合によってはバイアスbを更新する。損失は、例えば、以下の式により表される。
【数12】
【数13】
【0127】
p_hat、q_hat、s_hat、d_hatは、それぞれ、予測値p、q、s、dに対するgrand truth値を表す。ws、wdは、サイト情報とサイト方向情報とのバランスを調整するためのハイパーパラメータであり、適切に設定される必要がある。また、各Lは、それぞれの変数に対して適切に設定される損失関数である。式(13)において、一般的なTLSTMについてのロス関数である式(12)に対してサイト付情報を利用するために修正を加えたロス関数が定義される。
【0128】
式(13)に示されるクロスエントロピーロスを最小化するように、更新部212は、ネットワークのパラメータの更新を実行する。この操作を繰り返すことにより、更新部212は、エンコーダNN 220及びデコーダNN 222(デコーダNN 120)の最適化を実行する。例えば、q_hatは、分解部204が訓練データとして取得される原子グラフをサイト付木分解することにより取得できる。
【0129】
更新部212による最適化は、一般的な手法を用いて実行される。例えば、GRUの次のステップに正解データを入力するTeacher Forcingの方法を用いてもよい。もちろん、Scheduled Sampling、Professor Forcingといった他の手法を用いることも可能である。
【0130】
(符号化)
図5から
図8を用いて、サイト情報について説明したが、次に、このサイト情報をどのように符号化するかについて説明する。以下に示す符号化を用いることにより、上記の訓練にサイト情報付ツリー情報を反映した訓練を実行することができる。分解部204は、原子グラフが入力されると、木分解するタイミングにおいてボンド、シングルトン、リングとなるノードに、サイト情報及びサイト方向情報を付加する。
【0131】
(一方向)
サイト情報は、一方向に向けて付与してもよい。分解部204は、1つのエッジに片方のサイト情報をエンコードする。エッジの出発側のサイト情報をエンコードする方法と、エッジの到着側のサイト情報をエンコードする方法と、がある。
【0132】
エッジの出発側のサイト情報をエンコードする場合、ノードAからノードBへのエッジには、(ノードAのサイト、サイト方向)がエッジ特徴として付与されることにより、サイト情報がエンコードされる。
【0133】
例えば、
図6のノードAからノードBのエッジに付与されるサイト情報は、(2, 0)、ノードBからノードAのエッジに付与されるサイト情報は、(0, 0)とエンコードされる。
【0134】
例えば、
図7のノードAからノードBのエッジに付与されるサイト情報は、(0, +1)であり、ノードBからノードAのエッジに付与されるサイト情報は、(3, +1)である。また、ノードBからノードAのエッジに付与されるサイト情報は、(1, -1)であってもよい。
【0135】
例えば、
図8のノードAからノードBのエッジに付与されるサイト情報は、(0, 0)であり、ノードBからノードAのエッジに付与されるサイト情報は、(3, 0)である。この場合、上述したように、サイト方向を0とすることにより、スピロ接続であることを示し、サイトが示す情報がグラフのエッジではなく、グラフのノードであることを読み取ることができる。
【0136】
エッジの到着側のサイト情報をエンコードする場合、ノードAからノードBへのエッジには、(ノードBのサイト、サイト方向)がエッジ特徴として付与されることによりサイト情報がエンコードされる。
【0137】
例えば、
図6のノードAからノードBのエッジに付与されるサイト情報は、(0, 0)、ノードBからノードAのエッジに付与されるサイト情報は、(2, 0)とエンコードされる。
【0138】
例えば、
図7のノードAからノードBのエッジに付与されるサイト情報は、(3, +1)であり、ノードBからノードAのエッジに付与されるサイト情報は、(0, +1)である。
【0139】
このように、自ノードから見た情報を用いてサイト情報を付与することができる。また、例えば、
図6の状況であれば、一方のサイト情報があれば、他方のサイト情報は、必須ではない。例えば、接続する原子は、同じ原子であるので、一方のサイト情報から他方のノード内から同じ原子を抽出して当該結果をサイト情報としてもよい。このように、状況に応じて、サイト情報は省略できる場合もある。
【0140】
(双方向)
また、上記のように自ノード側、又は、相手ノード側のみのサイト情報ではなく、双方のサイト情報をエッジの特徴として付与してもよい。すなわち、1つの有向エッジに、双方のサイト情報をエンコードしてもよい。
【0141】
例えば、
図6のノードAからノードBのエッジに付与されるサイト情報は、(2, 0, 0)、ノードBからノードAのエッジに付与されるサイト情報は、(0, 2, 0)とエンコードされる。
【0142】
例えば、
図7のノードAからノードBのエッジに付与されるサイト情報は、(0, 3, +1)、ノードBからノードAのエッジに付与されるサイト情報は、(3, 0, +1)とエンコードされる。
【0143】
サイト方向は、例えば、グラフのノードに付与された番号により算出されてもよい。ノードA内の隣り合う原子ノードをaiとaj(i, jは、原子ノードの番号でi < j、又は、iが原子ノードの番号の最大値かつj = 0)とおく。また、ノードBの隣り合う原子ノードをblとbk(l, kは、原子ノードの番号)とおく。このとき、一例として、ai-ajのボンドと、bl-bkのボンドが接続する場合を考える。
【0144】
l < kである場合には、サイト方向を+1とする。例えば、ノードAからノードBのエッジのサイト情報は、(i, l, +1)となる。一方で、l > kである場合には、サイト方向を-1とする。例えば、ノードAからノードBのエッジのサイト情報は、(i, l, -1)となる。ただし、l, kのうち一方が0であり、他方が原子ノードの番号の最大値である場合には、逆とする。
【0145】
このようにサイト方向情報を取得することにより、一意的に分解した木の情報をグラフへと復元することが可能となる。なお、上記のサイト方向の付与は、一例として記載したものであり、この手法ではなくとも、リング内において縮合して接続されるボンドにおいて、サイト方向情報からグラフへの変換が一意的にできる適切な付与の手法であればよい。
【0146】
こちらの場合も、
図6の場合は、一方のサイト情報があれば、他方のサイト情報は必須ではない。
【0147】
訓練においては、双方向のサイト情報を利用することが望ましいが、これに限られるものではない。これは、デコードにおいて、双方向のサイト情報があることにより、あるノードに接続するノードの情報が相手側のノードからの情報で与えられるのではなく、双方のノードから読み取ることができるためであると考えられる。
【0148】
推定装置1又は訓練装置2において、デコード部が出力したサイト付の木の情報に基づいて、復元部108、210は、原子グラフを再構成する。例えば、自己回帰手法によりグラフの1ノードから順々にノードを復元してもよい。本実施形態においては、木の情報に加えてサイト情報が存在するので、各ノードから次のノードへの推論は、一意的に決定することができる。ノードの推論は、上述したサイト情報の付与についての逆操作を実行すればよい。
【0149】
図9は、原子グラフの再構成について説明する図である。木構造の生成は、RNNの自己回帰モデルと同様の手法により実行されてもよい。
【0150】
まず、復元部は、所定の起点ノードであるノード0として、シードフラグメントを設定する。
【0151】
デコード部は、潜在ベクトルと、ノード0との情報に基づいて、自己回帰的にノード1を生成する。このステップにおいて、図の右側に示すように、ノード0とノード1とを接続する木の構造を表すサイト情報付ツリー表現を取得する。このノード1の生成には、RNNに表されるように、自己回帰する構成を有するニューラルネットワークモデルを用いてもよい。
【0152】
デコード部は、全てのノード(例えば、ノードNまでのノード)が生成されるまでこの操作を繰り返す。この繰り返し演算により、化合物を示す木構造に関するノードのサイト情報付ツリー表現を取得することができる。そして、復元部がこのサイト情報付ツリー表現に基づいて、分子構造を取得することが可能となる。
【0153】
図10は、デコード部における自己回帰的モデルの形成についての例を示す図である。デコード部は、例えば、推定装置1及び訓練装置2において、デコーダNNに対して自己回帰的にデータを入力することによりノードを順次推定する。図において自己回帰ブロック内にデコーダNNが備えられる。自己回帰ブロック内には、他に、メモリと、入出力を集約するためのゲートと、が備えられていてもよい。
【0154】
サイト情報付ツリー表現を用いたノードの情報は、デコード部106により自己回帰的にデコーダNNに入力される。以下、
図9と
図10とを参照して、ノードの生成について説明する。
【0155】
例えば、Step 1においては、潜在ベクトルlと、シードフラグメントに対するノードの情報n0とをデコーダNNに入力し、ノード1の情報n1を取得する。
【0156】
次に、Step 2として、潜在ベクトルlと、過去の情報を集約した情報であるノード1とシードフラグメントとを集約した情報o1と、をデコーダNNに入力してノード2を取得する。
【0157】
次に、Step 3として、潜在ベクトルlと、ノード2とシードフラグメントとノード1との情報を集約した情報o2と、をデコーダNNに入力し、ノード3の情報n3を取得する。この処理を繰り返すことにより、望ましいノードの情報を取得する。
【0158】
このように、次々に潜在ベクトルと、集約された過去の情報と、を用いて自己回帰的に次のノードを取得する。ニューラルネットワークモデルの接続は、ノード情報をルートから次々に生成可能な自己回帰的に実現できるものであればよい。限定されない一例として、LSTM(Long Short-Term Memory)の手法で接続されてもよいし、適切なゲートを用いた他のRNNモデルであってもよいし、この他のモデルであってもよい。もちろん、自己回帰的なモデルは、RNNモデル以外のモデルであってもよい。
【0159】
また、
図10の自己回帰ブロックの例においては、潜在変数lを各ステップにおいて入力するものとしたが、これには限られず、最初のStep 1のみで潜在変数lを入力する形態としてもよい。
【0160】
推定装置1においては、このデコード部106を用いて、ノードの情報を順次取得し、復元部108により分子構造に関する情報を取得する。訓練装置2においては、このデコード部208を用いて、ノードの情報を順次取得し、この取得された情報と、訓練データとして与えられるノードの情報とを比較して、例えば、更新部212が誤差を逆伝播してデコーダNNのパラメータを更新する。
【0161】
以上のように、本実施形態によれば、原子グラフから木分解するタイミングにおいてサイト情報を付与することにより、木の情報から原子グラフへの復元を一意的に実現することが可能となる。本実施形態において、一意的な復元を解決する手法として、サイト付木分解の手法が提案された。さらに、このサイト付木分解の情報を潜在変数から推論する手法として、オートエンコーダを用いることが可能であることを説明した。
【0162】
また、エンコーダ及びデコーダの訓練時において、潜在変数が属する潜在空間内の任意の点(第3タイプのデータ)に対するデコードされた第2タイプのデータには、シードフラグメントの情報が含まれる。本実施形態によれば、このようなエンコーダ及びデコーダを生成することが可能となる。このため、グラフを生成する前段階の木の情報として、シードフラグメントの構造を有するデータを取得することが可能となる。このシードフラグメントを起点として第2タイプのデータから第1タイプのデータを回帰的に取得することにより、シードフラグメントを含む化学構造式を適切に取得することが可能となる。
【0163】
本実施形態の方法を用いることにより、木の情報から、高速に原子グラフの情報を復元することが可能となる。このことから、潜在表現から化合物へのマッピングを学習することにより、新規化合物のデザインに使用可能な分子生成モデルを構築することが可能となる。このようなモデルの構築は、様々な化合物群に対して高速に実現することができる。また、学習したモデルを用いることにより、高速に新規化合物の生成、デザインが可能となる。このモデルは、創薬、材料探索に応用することができる。
【0164】
さらに、構造の取得について高速化することも可能である。
【0165】
図11は、この構造(第1タイプのデータ)の取得する構造を、上記の実施形態よりも高速に精度を落とすことなく取得する一例を示す推定装置1の別形態の構成を示すブロック図である。推定装置1は、
図1の構成に加え、さらに、結合部112を備える。
【0166】
結合部112は、復元部108が取得した化学構造式について、ドッキングシミュレーションを実行する。上述したように、本実施形態において、復元部108は、シードフラグメントの構造を含む化合物の構造に関する情報を出力する。
【0167】
ドッキングにおいて、ターゲットとなるタンパク質と、復元部108により取得された化合物は、シードフラグメントの位置において結合する。このため、シードフラグメントが取得できていると、このシードフラグメントの位置を基準にドッキングシミュレーションを実現することが可能となる。
【0168】
図12は、ドッキングにおける自由度の一例を示す図である。例えば、図に示す化合物においては、一般的には、一次独立な3次元方向の並進の自由度と、それぞれの並進軸に対する回転の自由度と、分子間における回転の自由度(内部自由度)がある。ドッキングシミュレーションにおいては、このような全ての自由度に対して、種々の最適化法を用いて適切なドッキングの状態を探索することが必要となる。
【0169】
一方で、本実施形態のようにシードフラグメントを含む化合物を推定することにより、ドッキングの対象となるタンパク質等に対するシードフラグメントの位置、方向を固定することが可能となる。
【0170】
このため、図において点線で示される、一次独立な3方向の軸に対する並進性、回転性について、ドッキングの処理を低減することが可能となる。より具体的には、本実施形態における推定装置1により推定された化合物に対しては、ドッキングシミュレーションにおける自由度を削減することが可能となり、このため、シミュレーションの精度を落とすことなく、高速化をすることが可能となる。
【0171】
上記の全ての訓練済モデルは、例えば、説明したように訓練した上で、さらに、一般的な手法により蒸留されたモデルを含む概念であってもよい。
【0172】
前述した実施形態における各装置(推定装置1又は訓練装置2)の一部又は全部は、ハードウェアで構成されていてもよいし、CPU(Central Processing Unit)、又はGPU(Graphics Processing Unit)等が実行するソフトウェア(プログラム)の情報処理で構成されてもよい。ソフトウェアの情報処理で構成される場合には、前述した実施形態における各装置の少なくとも一部の機能を実現するソフトウェアを、フレキシブルディスク、CD-ROM(Compact Disc-Read Only Memory)又はUSB(Universal Serial Bus)メモリ等の非一時的な記憶媒体(非一時的なコンピュータ可読媒体)に収納し、コンピュータに読み込ませることにより、ソフトウェアの情報処理を実行してもよい。また、通信ネットワークを介して当該ソフトウェアがダウンロードされてもよい。さらに、ソフトウェアがASIC(Application Specific Integrated Circuit)又はFPGA(Field Programmable Gate Array)等の回路に実装されることにより、情報処理がハードウェアにより実行されてもよい。
【0173】
ソフトウェアを収納する記憶媒体の種類は限定されるものではない。記憶媒体は、磁気ディスク、又は光ディスク等の着脱可能なものに限定されず、ハードディスク、又はメモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし、コンピュータ外部に備えられてもよい。
【0174】
図13は、前述した実施形態における各装置(推定装置1又は訓練装置2)のハードウェア構成の一例を示すブロック図である。各装置は、一例として、プロセッサ71と、主記憶装置72(メモリ)と、補助記憶装置73(メモリ)と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたコンピュータ7として実現されてもよい。
【0175】
図13のコンピュータ7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、
図13では、1台のコンピュータ7が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース74等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、前述した実施形態における各装置(推定装置1又は訓練装置2)は、7又は複数の記憶装置に記憶された命令を7台又は複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータで処理し、この処理結果を端末に送信するような構成であってもよい。
【0176】
前述した実施形態における各装置(推定装置1又は訓練装置2)の各種演算は、1又は複数のプロセッサを用いて、又は、ネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ7と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実行されてもよい。このように、前述した実施形態における各装置は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
【0177】
プロセッサ71は、コンピュータの制御装置及び演算装置を含む電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA又はASIC等)であってもよい。また、プロセッサ71は、専用の処理回路を含む半導体装置等であってもよい。プロセッサ71は、電子論理素子を用いた電子回路に限定されるものではなく、光論理素子を用いた光回路により実現されてもよい。また、プロセッサ71は、量子コンピューティングに基づく演算機能を含むものであってもよい。
【0178】
プロセッサ71は、コンピュータ7の内部構成の各装置等から入力されたデータやソフトウェア(プログラム)に基づいて演算処理を行い、演算結果や制御信号を各装置等に出力することができる。プロセッサ71は、コンピュータ7のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ7を構成する各構成要素を制御してもよい。
【0179】
前述した実施形態における各装置(推定装置1及び/又は訓練装置2)は、1又は複数のプロセッサ71により実現されてもよい。ここで、プロセッサ71は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいは2つ以上のデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
【0180】
主記憶装置72は、プロセッサ71が実行する命令及び各種データ等を記憶する記憶装置であり、主記憶装置72に記憶された情報がプロセッサ71により読み出される。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ、不揮発性メモリのいずれでもよい。前述した実施形態における各装置(推定装置1又は訓練装置2)において各種データを保存するための記憶装置は、主記憶装置73又は補助記憶装置73により実現されてもよく、プロセッサ71に内蔵される内蔵メモリにより実現されてもよい。例えば、前述した実施形態における記憶部102は、主記憶装置72又は補助記憶装置73により実現されてもよい。
【0181】
記憶装置(メモリ)1つに対して、複数のプロセッサが接続(結合)されてもよいし、単数のプロセッサが接続されてもよい。プロセッサ1つに対して、複数の記憶装置(メモリ)が接続(結合)されてもよい。前述した実施形態における各装置(推定装置1又は訓練装置2)が、少なくとも1つの記憶装置(メモリ)とこの少なくとも1つの記憶装置(メモリ)に接続(結合)される複数のプロセッサで構成される場合、複数のプロセッサのうち少なくとも1つのプロセッサが、少なくとも1つの記憶装置(メモリ)に接続(結合)される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置(メモリ))とプロセッサによって、この構成が実現されてもよい。さらに、記憶装置(メモリ)がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
【0182】
ネットワークインタフェース74は、無線又は有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したもの等、適切なインタフェースを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して接続された外部装置9Aと情報のやり取りが行われてもよい。なお、通信ネットワーク8は、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等のいずれか、又は、それらの組み合わせであってよく、コンピュータ7と外部装置9Aとの間で情報のやりとりが行われるものであればよい。WANの一例としてインターネット等があり、LANの一例としてIEEE802.11やイーサネット(登録商標)等があり、PANの一例としてBluetooth(登録商標)やNFC(Near Field Communication)等がある。
【0183】
デバイスインタフェース75は、外部装置9Bと直接接続するUSB等のインタフェースである。
【0184】
外部装置9Aは、コンピュータ7とネットワークを介して接続されている装置である。外部装置9Bは、コンピュータ7と直接接続されている装置である。
【0185】
外部装置9A又は外部装置9Bは、一例として、入力装置であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ等、キーボード、マウス、又は、タッチパネル等のデバイスであり、取得した情報をコンピュータ7に与える。また、パーソナルコンピュータ、タブレット端末、又は、スマートフォン等の入力部とメモリとプロセッサを備えるデバイスであってもよい。
【0186】
また、外部装置9A又は外部装置9Bは、一例として、出力装置でもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、又は、有機EL(Electro Luminescence)パネル等の表示装置であってもよいし、音声等を出力するスピーカ等であってもよい。また、パーソナルコンピュータ、タブレット端末、又は、スマートフォン等の出力部とメモリとプロセッサを備えるデバイスであってもよい。
【0187】
また、外部装置9A又は外部装置9Bは、記憶装置(メモリ)であってもよい。例えば、外部装置9Aは、ネットワークストレージ等であってもよく、外部装置9Bは、HDD等のストレージであってもよい。
【0188】
また、外部装置9A又は外部装置9Bは、前述した実施形態における各装置(推定装置1又は訓練装置2)の構成要素の一部の機能を有する装置でもよい。つまり、コンピュータ7は、外部装置9A又は外部装置9Bの処理結果の一部又は全部を送信又は受信してもよい。
【0189】
本明細書(請求項を含む)において、「a、b及びcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)が用いられる場合は、a、b、c、a-b、a-c、b-c、又は、a-b-cのいずれかを含む。また、a-a、a-b-b、a-a-b-b-c-c等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a-b-c-dのようにdを有する等、列挙された要素(a、b及びc)以外の他の要素を加えることも含む。
【0190】
本明細書(請求項を含む)において、「データを入力として/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、各種データそのものを入力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を入力として用いる場合を含む。また「データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合、当該データのみに基づいて当該結果が得られる場合を含むとともに、当該データ以外の他のデータ、要因、条件、及び/又は状態等にも影響を受けて当該結果が得られる場合をも含み得る。また、「データを出力する」旨が記載されている場合、特に断りがない場合、各種データそのものを出力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を出力とする場合も含む。
【0191】
本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
【0192】
本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現が用いられる場合は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ又は専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造が動作Bを実際に実行するように構築(implemented)されていればよい。
【0193】
本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」及び「有する(having)等)」が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
【0194】
本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」又は「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
【0195】
本明細書において、ある実施例の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施例についても当該効果が得られると理解されるべきである。但し当該効果の有無は、一般に種々の要因、条件、及び/又は状態等に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件、及び/又は状態等が満たされたときに実施例に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
【0196】
本明細書(請求項を含む)において、「最大化(maximize)」等の用語が用いられる場合は、グローバルな最大値を求めること、グローバルな最大値の近似値を求めること、ローカルな最大値を求めること、及びローカルな最大値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最大値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最小化(minimize)」等の用語が用いられる場合は、グローバルな最小値を求めること、グローバルな最小値の近似値を求めること、ローカルな最小値を求めること、及びローカルな最小値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最小値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最適化(optimize)」等の用語が用いられる場合は、グローバルな最適値を求めること、グローバルな最適値の近似値を求めること、ローカルな最適値を求めること、及びローカルな最適値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最適値の近似値を確率的又はヒューリスティックに求めることを含む。
【0197】
本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが第1の処理を行い、前記1又は複数のハードウェアが第2の処理を行う」等の表現が用いられている場合、第1の処理を行うハードウェアと第2の処理を行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまり、第1の処理を行うハードウェア及び第2の処理を行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、又は、電子回路を含む装置等を含んでもよい。
【0198】
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更、置き換え及び部分的削除等が可能である。例えば、前述した全ての実施形態において、数値又は数式を説明に用いている場合は、一例として示したものであり、これらに限られるものではない。また、実施形態における各動作の順序は、一例として示したものであり、これらに限られるものではない。
【符号の説明】
【0199】
1:推定装置、
100:入力部、
102:記憶部、
104:探索部、
106:デコード部、
108:復元部、
110:出力部、
112:結合部、
2:訓練装置、
200:入力部、
202:記憶部、
204:分解部、
206:エンコード部、
208:デコード部、
210:復元部、
212:更新部、
214:出力部