(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-22
(45)【発行日】2023-12-01
(54)【発明の名称】化合物構造表現を生成するシステム
(51)【国際特許分類】
G16C 20/70 20190101AFI20231124BHJP
G06N 20/00 20190101ALI20231124BHJP
【FI】
G16C20/70
G06N20/00
(21)【出願番号】P 2020079790
(22)【出願日】2020-04-28
【審査請求日】2022-11-07
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】刑部 好弘
(72)【発明者】
【氏名】淺原 彰規
【審査官】塩田 徳彦
(56)【参考文献】
【文献】特開2020-9203(JP,A)
【文献】米国特許出願公開第2020/0050737(US,A1)
【文献】特開2003-14728(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G16C 10/00-99/00
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
化合物構造表現を生成するシステムであって、
1以上のプロセッサと、
1以上の記憶装置と、を含み、
前記
1以上の記憶装置は、構造モデルと、構造物性関係モデルと、1以上の既知物質の化合物構造表現と、1種以上の物性値それぞれの1以上の目標値と、を格納し、
前記構造モデルは、
化合物構造表現を実数ベクトルに変換する、第1エンコーダと、
前記第1エンコーダにより変換された前記実数ベクトルから前記化合物構造表現を推定する、第1デコーダと、を含み、
前記構造物性関係モデルは、
前記第1エンコーダにより生成された前記実数ベクトルと前記1種以上の物性値の目標値を含む目標値ベクトルとを構成要素として含む入力ベクトルを、実数ベクトルに変換する、第2エンコーダと、
前記第2エンコーダにより生成された前記実数ベクトルから前記入力ベクトルを推定する第2デコーダと、を含み、
前記1以上のプロセッサは、前記1以上の既知物質の化合物構造表現及び前記1種以上の物性値それぞれの1以上の目標値に基づき、前記構造モデルの前記第1エンコーダを使用して、1以上の構造発生ベクトルを生成し、
前記1以上の構造発生ベクトルのそれぞれは、一つの既知物質の化合物構造表現の前記第1エンコーダにより生成された実数ベクトルと、前記1種以上の物性値それぞれの目標値を含む目標値ベクトルとを、構成要素として含み、
前記1以上のプロセッサは、
前記1以上の構造発生ベクトルの各構造発生ベクトルを、前記構造物性関係モデルに入力し、
前記構造物性関係モデルの前記第2デコーダの出力から、化合物構造表現に対応する実数ベクトルを抽出し、
前記抽出した実数ベクトルを前記構造モデルの前記第1デコーダに入力して、新たな化合物構造表現を生成する、システム。
【請求項2】
請求項1に記載のシステムであって、
前記1以上の記憶装置は、
前記1種以上の物性値の測定値と関連づけられた第1化合物構造表現群を格納し、
前記1以上のプロセッサは、前記第1化合物構造表現群によって、前記構造モデルの学習を行い、
前記1種以上の物性値の測定値及び前記構造モデルによる前記第1化合物構造表現群の変換結果を使用して、前記構造物性関係モデルの学習を行う、システム。
【請求項3】
請求項1に記載のシステムであって、
前記1以上の記憶装置は、
前記1種以上の物性値の測定値と関連づけられた第1化合物構造表現群と、
前記1種以上の物性値の測定値と関連付けのない第2化合物構造表現群と、を格納し、
前記1以上のプロセッサは、前記第1化合物構造表現群及び前記第2化合物構造表現群を使用して、前記構造モデルの学習を行い、
前記1種以上の物性値の測定値及び前記第1エンコーダによる前記第1化合物構造表現群の変換結果を使用して、前記構造物性関係モデルの学習を行う、システム。
【請求項4】
請求項1に記載のシステムであって、
前記1以上の記憶装置は、前記1種以上の物性値それぞれの1以上の目標値に加えて、他の1種以上の物性値それぞれの1以上の目標値を含み、
前記構造物性関係モデルは、複数のオートエンコーダを含み、
前記複数のオートエンコーダの第1オートエンコーダは、前記第2エンコーダ及び前記第2デコーダで構成され、
前記複数のオートエンコーダにおいて、前記第1オートエンコーダ以外の各エンコーダは、他の一つのオートエンコーダのエンコーダとデコーダとの間に挟まれており、
前記第1オートエンコーダ以外の各オートエンコーダの入力は、前記他の一つのオートエンコーダのデコーダからの実数ベクトルと、前記他の1種以上の物性値から選択された1種以上の物性値それぞれの目標値を含む目標値ベクトルと、を構成要素として含む、システム。
【請求項5】
請求項4に記載のシステムであって、
前記複数のオートエンコーダの間において、入力される目標値の物性値の種類は異なり、
前記複数のオートエンコーダそれぞれに入力される目標値の数は1である、システム。
【請求項6】
請求項4に記載のシステムであって、
前記複数のオートエンコーダの間において、入力される目標値の物性値の種類は異なり、
前記複数のオートエンコーダは、入力される目標値の数が異なるオートエンコーダを含む、システム。
【請求項7】
請求項4に記載のシステムであって、
前記1以上の記憶装置は、前記構造物性関係モデルの学習データを格納し、
前記1以上のプロセッサは、前記学習データを使用して、前記構造物性関係モデルの学習を行い、
前記学習データは、前記複数のオートエンコーダのそれぞれの学習に使用される複数のグループで構成され、
前記複数のグループの各グループは、複数の化合物構造表現のそれぞれを、1以上の所定の物性値種類の測定値と関連付け、
前記複数のグループ
の二つのグループの間において、物性値種類数が多いグループは、物性値種類数が少ないグループの全ての物性値種類及び全ての化合物構造表現を含み、
前記物性値種類数が多いグループは、前記構造物性関係モデルにおけるより内側のオートエンコーダの学習に使用される、システム。
【請求項8】
請求項4に記載のシステムであって、
前記複数のオートエンコーダにおいて、より外側のオートエンコーダの学習データ量が、より内側のオートエンコーダの学習データ量より多い、システム。
【請求項9】
請求項1に記載のシステムであって、
前記1以上のプロセッサは、
前記構造モデル及び
前記構造物性関係モデルを含むネットワーク構造を表示し、
前記ネットワーク構造に対するユーザ入力に応じて前記ネットワーク構造を修正する、システム。
【請求項10】
システムが化合物構造表現を生成する方法であって、
前記システムは、
1以上のプロセッサと、
1以上の記憶装置と、を含み、
前記
1以上の記憶装置は、構造モデルと、構造物性関係モデルと、1以上の既知物質の化合物構造表現と、1種以上の物性値それぞれの1以上の目標値と、を格納し、
前記構造モデルは、
化合物構造表現を実数ベクトルに変換する、第1エンコーダと、
前記第1エンコーダにより変換された前記実数ベクトルから前記化合物構造表現を推定する、第1デコーダと、を含み、
前記構造物性関係モデルは、
前記第1エンコーダにより生成された前記実数ベクトルと前記1種以上の物性値の目標値を含む目標値ベクトルとを構成要素として含む入力ベクトルを、実数ベクトルに変換する、第2エンコーダと、
前記第2エンコーダにより生成された前記実数ベクトルから前記入力ベクトルを推定する第2デコーダと、を含み、
前記方法は、前記1以上のプロセッサが、前記1以上の既知物質の化合物構造表現及び前記1種以上の物性値それぞれの1以上の目標値に基づき、前記構造モデルの前記第1エンコーダを使用して、1以上の構造発生ベクトルを生成する、ことを含み、
前記1以上の構造発生ベクトルのそれぞれは、一つの既知物質の化合物構造表現の前記第1エンコーダにより生成された実数ベクトルと、前記1種以上の物性値それぞれの目標値を含む目標値ベクトルとを、構成要素として含み、
前記方法は、前記1以上のプロセッサが、
前記1以上の構造発生ベクトルの各構造発生ベクトルを、前記構造物性関係モデルに入力し、
前記構造物性関係モデルの前記第2デコーダの出力から、化合物構造表現に対応する実数ベクトルを抽出し、
前記抽出した実数ベクトルを前記構造モデルの前記第1デコーダに入力して、新たな化合物構造表現を生成する、ことを含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、所望の物性値を持つことが期待される化合物構造表現の候補を生成するシステムに関する。
【背景技術】
【0002】
新材料探索タスクに対してバーチャルスクリーニングの手法が利用されている。バーチャルスクリーニングの手法の例は、例えば、非特許文献1に開示されている。バーチャルスクリーニングは、既知の化合物のデータに機械学習モデルを適用し、所定の表現形式で表された化学構造式を入力とした物性値推定モデルを構成する。次に、ランダムに生成した化学構造式に対して、上記物性値推定モデルを適用する。こうして計算された予測値をもとにスクリーニングを行い、閾値を超える物性値を持つと期待される化学構造式を候補として提示する。
【0003】
他の先行技術文献である非特許文献2は、画像分類タスクを実行する、スタックされた半教師あり学習モデルを開示する。非特許文献2は、スタックされたモデルにおける外側のモデルの学習をラベルなし学習データで行い、内側のモデルの学習をラベル付き学習データで行うことを開示する。
【先行技術文献】
【非特許文献】
【0004】
【文献】R. Gomez-Bombarelli et al., “Automatic Chemical Design Using a Data-Driven Continuous Representation of Molecules,” ACS Cent. Sci., vol. 4, no. 2, pp. 268-276, Feb. 2018.
【文献】D. P. Kingma, D. J. Rezende, S. Mohamed, and M. Welling, “Semi-supervised Learning with Deep Generative Models,” NIPS 2014.
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の物性値推定モデルを使用した探索手法は、学習データの範囲内でしか推定することができない内挿的探索法であるため、既知材料の性能を超える物性値を持つ新材料を発見することを目的とする外挿的探索には不適切である。
【0006】
また、従来のバーチャルスクリーニング手法は、SMILES(Simplified Molecular Input Line Entry System)のような化学構造式の表現形式と物性値との関係を、ニューラルネットワークのようなモデルによって獲得する。これにより、所望の物性値を持つ化学構造式を生成することを目的とする。しかし、化学構造式の表現形式の文法規則と、化学構造式と物性値との間の関係との双方を学習により獲得するためには、化学構造式と物性値とがセットになった大量のデータが必要となる。しかし、実験データやシミュレーション結果のような、化学構造式と物性値がセットになったデータを大量に用意するのは困難である。
【0007】
したがって、学習データに含まれる物性値よりも良い物性値を持つ化合物の候補を提示することができる学習モデルを、少ない化学構造式と物性値がセットになったデータを使用して生成することができる技術が望まれる。
【課題を解決するための手段】
【0008】
本発明の一態様は、化合物構造表現を生成するシステムであって、1以上のプロセッサと、前記1以上のプロセッサが実行するプログラムを格納する1以上の記憶装置と、を含む。前記記憶装置は、構造モデルと、構造物性関係モデルと、1以上の既知物質の化合物構造表現と、1種以上の物性値それぞれの1以上の目標値と、を格納する。前記構造モデルは、化合物構造表現を実数ベクトルに変換する、第1エンコーダと、前記第1エンコーダにより変換された前記実数ベクトルから前記化合物構造表現を推定する、第1デコーダと、を含む。前記構造物性関係モデルは、前記第1エンコーダにより生成された前記実数ベクトルと前記1種以上の物性値の目標値を含む目標値ベクトルとを構成要素として含む入力ベクトルを、実数ベクトルに変換する、第2エンコーダと、前記第2エンコーダにより生成された前記実数ベクトルから前記入力ベクトルを推定する第2デコーダと、を含む。前記1以上のプロセッサは、前記1以上の既知物質の化合物構造表現及び前記1種以上の物性値それぞれの1以上の目標値に基づき、前記構造モデルの前記第1エンコーダを使用して、1以上の構造発生ベクトルを生成する。前記1以上の構造発生ベクトルのそれぞれは、一つの既知物質の化合物構造表現の前記第1エンコーダにより生成された実数ベクトルと、前記1種以上の物性値それぞれの目標値を含む目標値ベクトルとを、構成要素として含む。前記1以上のプロセッサは、前記1以上の構造発生ベクトルの各構造発生ベクトルを、前記構造物性関係モデルに入力する。前記1以上のプロセッサは、前記構造物性関係モデルの前記第2デコーダの出力から、化合物構造表現に対応する実数ベクトルを抽出する。前記1以上のプロセッサは、前記抽出した実数ベクトルを前記構造モデルの前記第1デコーダに入力して、新たな化合物構造表現を生成する。
【発明の効果】
【0009】
本発明の一態様によれば、学習データに含まれる物性値よりも良い物性値を持つ化合物の候補を提示することができる学習モデルを、少ない化学構造式と物性値がセットになったデータを使用して生成できる。
【図面の簡単な説明】
【0010】
【
図1】本明細書の実施例に係る化学構造式生成モデルの構成例を模式的に示す。
【
図2】実施例1に係る化学構造式生成システムの構成の一例を示す。
【
図3】構造式生成装置のハードウェア構成例を示す。
【
図6】構造式行列データベースに含まれるデータの例を示す。
【
図7】学習用データベースに含まれるデータの例を示す。
【
図9】表示装置において、表示部がユーザのために表示するネットワーク構造確認画面の例を示す。
【
図10】モデルデータに含まれるモデルテーブルの構成例を示す。
【
図11】構造式変換部の処理例のフローチャートを示す。
【
図12】学習データ生成部の処理例のフローチャートを示す。
【
図13】構造発生ベクトル群生成部の処理例のフローチャートを示す。
【
図14】ネットワーク構造決定部の処理例のフローチャートを示す。
【
図15】構造モデル学習部の処理例のフローチャートを示す。
【
図16】構造モデル追加学習部の処理例のフローチャートを示す。
【
図17】構造物性関係モデル学習部の処理例のフローチャートを示す。
【
図18】新構造式生成部の処理例のフローチャートを示す。
【
図19】構造式逆変換部の処理例のフローチャートを示す。
【
図20】構造式整形部の処理例のフローチャートを示す。
【
図21】実施例2に係る、表示部が表示装置においてユーザのために表示する、ネットワーク構造確認画面の例を示す。
【
図22】実施例2に係る、学習用データベースに含まれるデータの例を示す。
【
図23】実施例2に係る、モデルデータに含まれるモデルテーブルの構成例を示す。
【
図24】実施例3に係る、表示部が表示装置においてユーザのために表示する、ネットワーク構造確認画面の例を示す。
【
図25】実施例3に係る、学習用データベースDBに含まれるデータの例を示す。
【
図26】実施例3に係る、モデルデータDBに含まれるモデルテーブルの構成例を示す。
【
図27】実験データにおけるレコードが含む物性値(の種類)が満たすべき条件を模式的に示す。
【
図28】2種類の実験データで構成される構造物性関係モデル用学習データの例を模式的に示す。
【
図29】実施例4に係る、表示部が表示装置においてユーザのために表示する、ネットワーク構造確認画面の例を示す。
【
図30】実施例3に係る、モデルデータDBに含まれるモデルテーブルの構成例を示す。
【
図31】学習データ生成部が、実験データから構造物性関係モデル用学習データを生成する例を示している。
【発明を実施するための形態】
【0011】
以下においては、便宜上その必要があるときは、複数のセクションまたは実施例に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合及び原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【0012】
本システムは、物理的な計算機システム(一つ以上の物理的な計算機)でもよいし、クラウド基盤のような計算リソース群(複数の計算リソース)上に構築されたシステムでもよい。計算機システムあるいは計算リソース群は、1以上のインタフェース装置(例えば通信装置及び入出力装置を含む)、1以上の記憶装置(例えば、メモリ(主記憶)及び補助記憶装置を含む)、及び、1以上のプロセッサを含む。
【0013】
プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/またはインタフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有するシステムが行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機または計算機が読み取り可能な記憶媒体(例えば計算機読み取り可能な非一過性記憶媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
【0014】
〔概略〕
以下において、所望の物性値を有することが期待される化学構造式を推定する技術が開示される。化学構造式は、様々は表現形式で表され得る。化学構造式の表現形式は、例えば、一定の文法規則に従って記述された文字列や、行列であり得る。文法規則の例は、SMILES(Simplified Molecular Input Line Entry System)である。以下に説明する実施例は、化学構造式を記述する文法規則の一例として、SMILESを使用する。
【0015】
図1は、本明細書の実施例に係る化学構造式生成モデルの構成例を模式的に示す。化学構造式生成モデル10は、既知の化学構造式を表す表現と目標物性値を入力として受け付け、目標物性値に近い物性値を有することが期待される新たな化学構造式の表現を出力する。
【0016】
化学構造式生成モデル10は、化学構造式を学習対象とする構造モデル100と、化学構造式の特徴量と物性値との間の関係を学習する構造物性関係モデル104の、2種類のモデルを組み合わせる。構造モデル100は、一つの変分オートエンコーダ(VAE)で構成され、構造物性関係モデル104は1以上のVAEで構成される。
図1の構成例において、構造物性関係モデル104は、単一のVAEで構成されている。
【0017】
VAEは、オートエンコーダの一種であり、エンコーダとデコーダの二つのニューラルネットワークから構成される深層生成モデルである。エンコーダは、入力(ベクトル)を実数ベクトルに変換する。実数ベクトルが属する空間は潜在空間と呼ばれ、所定の分布、例えば正規分布に従うことが仮定される。デコーダは、その実数ベクトルを逆変換し、入力と等しい次元のベクトルを出力する。
【0018】
エンコーダ及びデコーダは、入力と出力とが等しくなるように訓練される(学習する)。中間出力の実数ベクトルから入力を再構成できることは、入力の十分な特徴が実数ベクトルに反映されていることを意味する。潜在空間の次元は、入力の次元よりも小さくなるように設定される。そのため、エンコーダは、入力の特徴量を抽出すると共に、入力の次元を圧縮することができる。
【0019】
中間出力のベクトルは、潜在変数又は潜在表現と呼ばれ、化学構造式を表す構造式行列から抽出した特徴を表す抽象表現である。構造式行列は、例えば、材料の化学構造式を表す文字列から変換できる。潜在変数は、所定の分布、例えばガウス分布に従うことが仮定される。したがって、デコーダは、ノイズが加えられたベクトルを受け取った場合に、入力の構造式行列を高い精度で復元することができる。このように、VAEは、生成モデルとして高いロバスト性を有する。
【0020】
図1に示すように、化学構造式生成モデル10は入れ子構造を有する。具体的には、構造モデル(外側VAE)100のエンコーダ101とデコーダ102との間に構造物性関係モデル104が配置される。
図1の例において、構造物性関係モデル104は、エンコーダ105及びデコーダ106で構成される。後述するように、構造物性関係モデル104は複数のVAE(内側VAE)を含むことができ、各内側VAEは、他のVAEのエンコーダとデコーダとの間に配置される。
【0021】
構造モデル100のエンコーダ101は、例えば、複数の1次元畳み込み層と、複数の全結合層で構成できる。エンコーダ101は、M×N次元の構造行列式(構造表現)を入力として受け取り、L次元ベクトルに変換する。デコーダ102は、例えば、複数の全結合層とRNN(Recurrent Neural Network)で構成できる。デコーダ102は、L次元ベクトルを入力として受け取り、M×N次元の構造行列式に逆変換する。
【0022】
構造物性関係モデル104の内側VAEのエンコーダ105及びデコーダ106は、例えば、複数の全結合層で構成することができる。エンコーダ105は、構造モデル100(外側VAE)の潜在変数(変換結果)であるL次元ベクトルと、P個の物性値の配列からなるP次元ベクトル(目標値ベクトル)を構成要素として含む、L+P次元ベクトル107(拡張ベクトル又は構造発生ベクトルとも呼ぶ)を入力として受け取る。エンコーダ105は、ベクトル107より小さい次元の中間ベクトル(潜在表現)108を出力する。構造物性関係モデル104の潜在空間は、構造的特徴と物性値的特徴の組み合わせが抽象化する潜在表現を与える。
【0023】
デコーダ106は、中間ベクトル108を入力として受け取り、L+P次元ベクトル109を出力する。L+P次元ベクトル109から抽出されるP個の要素は物性値の配列である。デコーダ106の出力から抽出されるL次元ベクトルは、構造モデル100のデコーダ102に入力され、M×N次元の構造行列式が出力される。
【0024】
例えば、システムは、既知化合物の化学構造式(の構造表現)と目標物性値を学習済みの化学構造式生成モデル10に順次入力する。これにより、目標物性値に近い値を示すと期待される新しい化学構造式を生成することができる。また、システムは、既知化合物のなかの性能上位の化合物の化学構造式それぞれと、所定の物性値及びその近傍の値(これらを目標値とも呼ぶ)それぞれとの組み合わせを、学習済みの化学構造式生成モデル10に順次入力してもよい。これにより、目標物性値に近い値を示すと新しい化学構造式が生成される蓋然性を高めることができる。
【0025】
本明細書の実施例が実行するタスクにおいて、化学構造式生成モデルが獲得すべき学習対象は、主に二つである。一つの学習対象は、化学構造式を表す表現形式の文法規則であり、もう一つの学習対象は、化学構造(化学構造式)と物性値との間の関係である。VAEの学習は、エンコーダの入力とデコーダの出力が等しくなるように損失関数を与え、エンコーダ及びデコーダのパラメータを更新(最適化)する。
【0026】
上記二つの学習対象において、物性値は、特徴と物性値との間の関係の学習においてのみ必要となる。物性値の種類は、物理的性質を表す種類と化学的性質を表す種類とを含む。いずれの種類の物性値も、主鎖構造や、末端構造、部分構造などの局所的な構造的特徴に強く影響を受ける。このため、化学構造と物性値との間の関係の学習は、化学構造式そのものに代えて、化学構造式から抽出した特徴量と物性値との間の関係を学習データとして利用することができる。
【0027】
本明細書の実施例は、主に以下のステップを実行する。まず、システムは、ユーザ設定とデータとを受け取って学習モデル(ネットワーク構造)を決定する。次に、システムは、化学構造式生成モデルの学習(訓練)を実行する。化学構造式生成モデルの学習は、構造モデル(外側VAE)100のカタログデータでの学習、構造モデル100の実験データの化学構造式での学習、そして構造物性関係モデル104(1以上の内側VAE)の実験データでの学習を含む。システムは、学習済みのVAEから化学構造式生成モデルを構築し、新規構造式を生成する。
【実施例1】
【0028】
図2に実施例1に係る化学構造式生成システムの構成の一例を示す。本システムは、ネットワークを介して互いに通信可能な、パラメータ設定装置M01、データ保存装置M02、モデル学習装置M03、構造式生成装置M04、及び表示装置M05を含む。
【0029】
パラメータ設定装置M01は、化学構造式生成システムの生成(学習を含む)のためのパラメータを含む、種々のデータを設定又は生成する。本例において、パラメータ設定装置M01は、構造式変換部P01、学習データ生成部P02、構造発生ベクトル群生成部P03、及びネットワーク構造決定部P04を含む。これらはプログラムである。パラメータ設定装置M01は、さらに、カタログデータDB10、実験データDB11、構造式語彙データDB12、及び初期パラメータDB13を格納する。
【0030】
データ保存装置M02は、他の装置が生成したデータ(情報)を含む、様々な種類のデータを格納することができる。本例において、データ保存装置M02は、構造式行列データベースDB14、学習用データベースDB15、構造発生ベクトルデータベースDB16、モデルデータDB17、及び候補構造式データベースDB18を格納している。
【0031】
モデル学習装置M03は、化学構造式生成システムに含まれる学習モデルの学習を行う。本例において、モデル学習装置M03は、構造モデル学習部P05、構造モデル追加学習部P06、及び構造物性関係モデル学習部P07を含む。これらはプログラムである。
【0032】
構造式生成装置M04は、学習済みの化学構造式生成モデルを使用して、所望の物性値を有ることが期待される新たな物質の化学構造式を生成(推定)する。本例において、構造式生成装置M04は、新構造式生成部P08、構造式逆変換部P09、および構造式整形部P10を含む。これらはプログラムである。
【0033】
表示装置M05は、他の装置から取得した情報をユーザに対して提示すると共に、ユーザから入力データを受け取り、他の装置に送信することができる。表示装置M05は、プログラムである、表示部P11を含む。
【0034】
図3は、構造式生成装置M04のハードウェア構成例を示す。構造式生成装置M04は、演算性能を有するプロセッサU111と、プロセッサU111が実行するプログラム及びデータを格納する揮発性一時記憶領域を与えるDRAMU112と、を含む。
【0035】
構造式生成装置M04は、さらに、本システムにおける他の装置を含む他の装置とデータ通信をおこなう通信装置U113と、HDD(Hard Disk Drive)やフラッシュメモリなどを利用した永続的な情報記憶領域を与える補助記憶装置U114と、を含む。また、構造式生成装置M04は、ユーザからの操作を受け付ける入力装置U115と、各プロセスでの出力結果をユーザに提示するモニタU116(出力装置の例)と、を含む。
【0036】
例えば、補助記憶装置U114は、新構造式生成部P08、構造式逆変換部P09、および構造式整形部P10等のプログラムを格納する。プロセッサU111が実行するプログラム及び処理対象のデータは、補助記憶装置U114からDRAMU112にロードされる。
【0037】
化学構造式生成システムに含まれる他の装置、具体的には、パラメータ設定装置M01、データ保存装置M02、モデル学習装置M03、及び表示装置M05それぞれを構成するハードウェア要素は、構造式生成装置M04と同様でよい。また、複数の装置に分かれている機能を一つの装置に統合してもよく、上記複数の装置機能をさらに多くの装置に分散してもよい。このように、化学構造式生成システムは、1以上の記憶装置及び1以上のプロセッサを含む。
【0038】
図4は、カタログデータDB10の構成例を示す。カタログデータDB10は、化合物構造式のデータベースであり、大量のレコードを含む。各レコードは、一つの化学構造式の情報を格納している。カタログデータDB10のデータは、例えば、自由な二次利用が可能な状態で公開された、入手容易なオープンデータを含むことができる。本明細書の実施例において、化学構造式は、SMILES記法に従った文字列(表現)で表される。
【0039】
図4に示す、カタログデータDB10の例において、TableIDカラムT0C1は、そのテーブル(
図4に示すテーブル)の識別子を示す。Table TypeカラムT0C2は、そのテーブルが格納しているデータのタイプを示す。Table TypeカラムT0C2は、本テーブルが、カタログデータのテーブルであることを示している。IDカラムT0C3は、化学構造式の識別子を示す。SMILESカラムT0C4は、化学構造式のSMILES表現を示す。
【0040】
図5は、実験データDB11の構成例を示す。実験データDB11は、化学構造式の注目している1以上の物性値を示す実験データを格納している。各レコードは、注目している1以上の物性値の実験結果と、一つの化学構造式の情報との組を含む。実験データDB11のレコード数は、カタログデータDB10のレコード数より少ないことが想定される。
【0041】
図5に示す実験データDB11の例において、TableIDカラムT1C1は、そのテーブル(
図5に示すテーブル)の識別子を示す。Table TypeカラムT1C2は、そのテーブルが格納しているデータのタイプを示す。Table TypeカラムT1C2は、本テーブルが、実験データのテーブルであることを示している。
【0042】
IDカラムT1C3は、化学構造式の識別子を示す。SMILESカラムT1C4は、化学構造式のSMILES表現を示す。MWtカラムT1C5は、化学構造式で表される化合物の分子量を示す。logPカラムT1C6は、化学構造式で表される化合物の分配係数を示す。分子量及び分配係数は、化学構造式の物性値の例であり、実験データは、任意の物性値を含むことができる。
【0043】
図6は、構造式行列データベースDB14に含まれるデータの例を示す。構造式行列データベースDB14は複数のテーブルを含む。構造式行列データベースDB14は、カタログデータDB10や実験データDB11のテーブルそれぞれに対し、付与した元データIDと構造式(SMILES)を変換した構造式行列のカラムを追加したテーブルをまとめたものである。そのため、実施例1において、構造式行列データベースDB14は、二つのテーブルを含む。
【0044】
構造式行列データベースDB14は、構造式変換部P01によりSMILES表現から変換された化学構造式の行列を格納している。このように、本明細書の実施例において、化学構造式を表す文字列は、行列に変換される。行列の縦軸は元素記号のような記号種を示し、横軸は出現位置を示す。
【0045】
本明細書において、この行列を構造式行列と呼ぶ。記号種数をM、化学構造を表す文字列の長さをNとすると、構造式列は、M×N次元となる。文字列の長さは、構造式に応じて変化し得る。そのため、負数やゼロ値によりパディングを行って、固定長行列を生成する。構造式行列は、どの位置にどの記号が出現するかについての情報を持つため、構造式が一意に決定され、構造式行列の逆変換により構造式を生成することができる。
【0046】
図6に例示するように、構造式行列データベースDB14は、カタログデータ構造式行列テーブル141及び実験データ構造式行列テーブル142を含む。カタログデータ構造式行列テーブル141は、カタログデータDB10から生成され、さらに構造式行列が追加されている。実験データ構造式行列テーブル142は、実験データDB11から生成され、さらに構造式行列が追加されている。
【0047】
カタログデータ構造式行列テーブル141において、TableIDカラムT3C1は、そのテーブル(
図6に示すテーブル)の識別子を示す。Table TypeカラムT3C2は、そのテーブルが格納しているデータのタイプを示す。Table TypeカラムT3C2は、本テーブルが、カタログデータから生成されたテーブルであることを示している。IDカラムT3C3は、化学構造式の識別子を示す。SMILESカラムT3C4は、化学構造式のSMILES表現を示す。構造式行列カラムT3C5は、構造式変換部P01によりSMILES表現から変換された化学構造式の構造式行列を示す。
【0048】
実験データ構造式行列テーブル142において、TableIDカラムT4C1は、そのテーブル(
図6に示すテーブル)の識別子を示す。Table TypeカラムT4C2は、そのテーブルが格納しているデータのタイプを示す。Table TypeカラムT4C2は、本テーブルが、実験データから生成されたテーブルであることを示している。IDカラムT4C3は、化学構造式の識別子を示す。SMILESカラムT4C4は、化学構造式のSMILES表現を示す。MWtカラムT4C5は、化学構造式で表される化合物の分子量を示す。logPカラムT4C6は、化学構造式で表される化合物の分配係数を示す。構造式行列カラムT4C7は、構造式変換部P01によりSMILES表現から変換された化学構造式の構造式行列を示す。
【0049】
図7は、学習用データベースDB15に含まれるデータの例を示す。学習用データベースDB15は、構造式行列データベースDB14から学習データ生成部P02により生成された、化学構造式生成モデルの学習に使用するデータを格納する。本明細書の実施例における化学構造式生成モデルは、構造モデル及び構造物性関係モデルを含む。
図6に示すように、学習用データベースDB15は、構造モデル用テーブル151及び構造物性関係モデル用テーブル152を含む。構造モデル用テーブル151は、物性値の測定値と関連付けのない化合物の構造式行列群(化合物構造表現群)を格納する。構造物性関係モデル用テーブル152は、物性値の測定値と関連づけられた化合物の構造式行列群(化合物構造表現群)を格納する。
【0050】
図7に示す構造モデル用テーブル151の例は、TableIDカラムT5C1を除き、カタログデータ構造式行列テーブル141と同一の情報を格納している。TableIDカラムT5C1は、
図7に示す構造モデル用テーブル151の識別子を示す。カラムT5C2~T5C5は、それぞれ、カタログデータ構造式行列テーブル141における同名のカラムT3C2~T3C5と同様である。
【0051】
図7に示す構造物性関係モデル用テーブル152の例は、TableIDカラムT6C1を除き、実験データ構造式行列テーブル142と同一の情報を格納している。TableIDカラムT6C1は、
図6に示す構造物性関係モデル用テーブル152の識別子を示す。カラムT6C2~T6C7は、それぞれ、実験データ構造式行列テーブル142における同名のカラムT4C2~T4C7と同様である。
【0052】
図8は、初期パラメータDB13に含まれる情報の例を示す。初期パラメータDB13は、ネットワーク構造の定義に必要なパラメータにおける初期値の全てを格納している。例えば、ニューラルネットワークの構造パラメータの初期値、学習用パラメータの初期値、そのほかのユーザ設定データの初期値が格納されている。更新されたパラメータは、モデルデータDB17に格納される。
【0053】
なお、デフォルト値が事前に与えられている場合は、一部の初期パラメータは省略されていてもよい。例えば、ニューラルネットワークを構成する層の種類、数、順序、次元数、ニューロンの重み、重みの更新率等、ニューラルネットワークのネットワーク定義に一般的に必要とされるパラメータは省略されてもよい。
【0054】
ユーザは、いずれかの装置の入力装置を介して、初期パラメータDB13を設定することができる。初期パラメータDB13は、化学構造式生成モデルの構成のために必要な情報を含む。
図8に示す例において、「CatalogData Tables」は、使用するカタログデータを示す。「ExperimentData Tables」は、使用する実験データを示す。「Target Properties」は、注目する物性値の種類を示す。「Target Property Values」は、注目する物性値の種類の目標値を示す。
【0055】
「Number_of_vae_relation」は、構造物性関係モデルのVAE(内側VAE)の段数を示す。「VAE_Initial_Params」は、化学構造式生成モデルのVAEそれぞれのパラメータの初期値を示す。より具体的には、「grammar_layer」は、構造モデルのVAE(外側VAE)層の数や次元数等の構成を示す。「vae_relation_layers」は、構造物性値関係モデルのVAEそれぞれの層の数や次元数等の構成を示す。「middle_dims」は、エンコーダ又はデコーダからの中間出力における次元数のリストを示す。
【0056】
図9は、表示装置M05において、表示部P11がユーザのために表示するネットワーク構造確認画面201の例を示す。表示部P11は、ネットワーク構造決定部P04から受信した化学構造式生成モデルの構成情報から、化学構造式生成モデルの構成図を生成し、モニタにおいて表示する。
【0057】
図9に示す構成例において、外側VAEである構造モデルは、外側エンコーダ#enc_01と外側デコーダ#dec_01で構成されている。内側VAEである構造物性関係モデルは、内側エンコーダ#enc_02と内側デコーダ#dec_02で構成されている。内側VAEは、外側エンコーダ#enc_01と外側デコーダ#dec_01とに挟まれている。
【0058】
外側エンコーダ#enc_01は、SMILES表現から生成された構造式行列を入力として受け付け、9次元の中間ベクトル(潜在表現)を出力する。内側エンコーダ#enc_02は、外側エンコーダ#enc_01の出力に二つの物性値(MWt及びlogP)を結合した11次元のベクトルを入力として受け付け、7次元の中間ベクトル(潜在表現)を出力する。
【0059】
内側デコーダ#dec_02は、内側エンコーダ#enc_02の出力を入力として受け付け、11次元のベクトルを出力する。このベクトルは、化学構造式に対応する9次元のベクトルと、二つの物性値を示す2次元のベクトルの結合である。外側デコーダ#dec_01は、内側デコーダ#dec_02の出力から抽出された9次元ベクトルを入力として受け付け、化学構造行列を示すベクトルを出力する。化学構造行列を逆変換することで、化学構造式のSMILES表現が得られる。
【0060】
ユーザは、ネットワーク構造確認画面201を参照することで、構成される化学構造式生成モデルが、所望の構成を有するか確認することができる。化学構造式生成モデルの構成の変更を望む場合、ユーザは、表示装置M05の入力装置から、修正のためのデータを入力することができる。
【0061】
表示部P11は、ネットワーク構造確認画面201の他に、化学構造式生成モデルが新たに生成した化学構造式及びそれに関連する情報を表示する。ユーザは、表示された化学構造式から、実際に実験を行う化学構造式を選択することができる。
【0062】
図10は、モデルデータDB17に含まれるモデルテーブル171の構成例を示す。モデルデータDB17は、化学構造式生成モデルのネットワーク構造の定義に必要なパラメータを格納する。初期パラメータには含まれないデフォルト値を含め、全てのパラメータが含まれる。例えば、ニューラルネットワークの構造パラメータ、学習用パラメータ、構造式行列の逆変換に必要な語彙データ、その他ユーザ設定データが含まれる。パラメータは、学習に従い逐次更新される。モデルデータDB17は、例えば、学習の開始時、学習中、学習終了時などのタイミングで読み書きされる。
【0063】
モデルテーブル171は、ネットワーク構造決定部P04に生成され、モデルデータDB17に含められる。
図10のモデルテーブル171は、
図9に示す化学構造式生成モデルの構成図と対応している。
図10の例において、Network IDカラムT7C1は、化学構造式生成モデルのエンコーダ又はデコーダの識別子を示す。Network OrderカラムT7C2は、エンコーダ又はデコーダの、入力からの順番を示す。Nest OrderカラムT7C3は、入れ子構造を有するVAEの入力からの順番を示す。TargetカラムT7C4は、VAEの学習に使用するデータの識別子を示す。
【0064】
図11は、構造式変換部P01の処理例のフローチャートを示す。構造式変換部P01は、カタログデータ及び実験データに含まれる化学構造式の文字列を、構造式行列に変換する。まず、構造式変換部P01は、初期パラメータDB13から、必要な初期パラメータを読み込む(S101)。構造式変換部P01は、さらに、構造式語彙データDB12を読み込む(S102)。構造式語彙データDB12は、構造式行列の縦に並ぶ元素の種類とSMILES表現における記号とを対応付ける。構造式行列の縦の次元数と語彙数とは一致する。
【0065】
次に、構造式変換部P01は、初期パラメータが示すカタログデータDB10及び実験データDB11から元データを読み込む(S103)。構造式変換部P01は、読み込んだデータにおける全ての構造式の末尾に、終了トークンを付加する(S104)。構造式変換部P01は、構造式語彙データDB12を参照して、全ての構造式それぞれを、構造式行列に変換する(S105)
【0066】
構造式変換部P01は、元データのテーブルそれぞれにカラムを追加し、変換した構造式行列を格納する(S106)。これにより、
図6に示す、カタログデータ構造式行列テーブル141及び実験データ構造式行列テーブル142が生成される。構造式変換部P01は、生成したテーブル141、142を構造式行列データベースDB14に書出して追加する(S107)。さらに、構造式変換部P01は、変換に用いた構造式語彙データを、モデルデータDB17の一部(構造式語彙辞書)として書き出す(S108)。構造式語彙データは、構造式行列を逆変換して化学構造式のSMILES表現を得るために参照される。
【0067】
図12は、学習データ生成部P02の処理例のフローチャートを示す。学習データ生成部P02は、化学構造式生成モデルのVAEそれぞれの学習データを生成する。まず、学習データ生成部P02は、初期パラメータDB13から、必要な初期パラメータを読み込む(S151)。次に、学習データ生成部P02は、構造式行列データベースDB14を読み込む(S152)。学習データ生成部P02は、読み込んだデータのレコードそれぞれのTable Typeを判定する(S153)。
【0068】
学習データ生成部P02は、Table Typeに応じて異なる処理を実行する。Table Typeが「Catalog」であるレコード(S153:Catalog)に対する処理を説明する。学習データ生成部P02は、該当するレコードを抽出し、一つのテーブルに集約する(S154)。
【0069】
次に、Table Typeが「Experiment」であるレコード(S153:Experiment)に対する処理を説明する。学習データ生成部P02は、該当するレコードを抽出し(S155)、1つのテーブルに集約する(S156)。レコードが、欠損した物性値を含む場合、学習データ生成部P02は、その物性値のフィールドをNullで補完する。欠損した物性値は、他のいずれかのレコードが含み当該レコードに含まれない物性値である。
【0070】
次に、学習データ生成部P02は、初期パラメータが示す構造物性関係モデルの段数に従って、テーブルを生成する(S157)。各テーブルは、一つの内側VAEの学習データを格納する。学習データ生成部P02は、生成したテーブルのNullを含むカラムを削除する(S158)。生成されるテーブルの物性値集合は、後述する包含関係を満たす(例えば実施例4を参照)。学習データ生成部P02は、生成したテーブルに新しいTable IDを付与し、Table IDカラムを上書き更新する(S159)。学習データ生成部P02は、生成したテーブルを学習用データベースに書き出す(S160)。
【0071】
図13は、構造発生ベクトル群生成部P03の処理例のフローチャートを示す。構造発生ベクトル群生成部P03は、化学構造式生成モデルの学習後に、目標の物性値を有すると期待される新たな化学構造式を生成(推定)するための入力データを生成する。
【0072】
まず、構造発生ベクトル群生成部P03は、初期パラメータDB13から、必要な初期パラメータを読み込む(S201)。次に、構造発生ベクトル群生成部P03は、学習用データベースDB15を読み込む(S202)。構造発生ベクトル群生成部P03は、学習用データベースから、Table Typeが「Experiment」のテーブルを抽出する(S203)。各テーブルは、対応する一つの内側VAEの学習データを示す。
【0073】
構造発生ベクトル群生成部P03は、抽出した各テーブルにおいて、レコードを各物性値でソートして、各テーブルの各物性値の上位S件を抽出する。Sは、初期パラメータが示す自然数である。テーブルが複数種類の物性値を含む場合、各種類の上位S件が抽出される。構造発生ベクトル群生成部P03は、IDカラムと構造式行列カラムのみの上位化合物テーブルとして集約する(S204)。なお、複数の同一IDのレコードが抽出されている場合、それらの一つレコードのみが上位化合物テーブルに格納される。
【0074】
上位化合物テーブルの生成は、上記方法に限定されない。例えば、一部のテーブル、例えば、最も多くの種類の物性値を含むテーブルのみからレコードを抽出してもよく、指定された種類の物性値のみの上位レコードを抽出してもよい。抽出する上位レコードの数は、物性値種類間で異なっていてもよい。
【0075】
次に、構造発生ベクトル群生成部P03は、初期パラメータに従って、各物性値目標値リストを生成する(S205)。各目標値リストは、対応する物性値種類の複数の目標値を示す。初期パラメータは、複数の目標値を生成するための情報を示し、例えば、上記複数の目標値を示してもよく、又は、基準目標値、生成目標値数及び基準目標値から他の目標値を生成する式を示してもよい。
【0076】
構造発生ベクトル群生成部P03は、物性値種類それぞれの目標値リストの直積により目標値行列を生成する(S206)。さらに、構造発生ベクトル群生成部P03は、上位化合物テーブルと目標値行列の直積によって、構造発生ベクトル群を生成する(S207)。構造発生ベクトル群生成部P03は、生成した構造発生ベクトル群を、構造発生ベクトルデータベースDB16に書き出す(S208)。
【0077】
図14は、ネットワーク構造決定部P04の処理例のフローチャートを示す。ネットワーク構造決定部P04は、初期パラメータ及び実験データに含まれる考慮対象物性値等xから、化学構造式生成モデルの構造を決定する(モデルデータ生成)。
【0078】
まず、ネットワーク構造決定部P04は、初期パラメータDB13から、必要な初期パラメータを読み込む(S251)。読み込まれる初期パラメータは、カタログデータ識別子、実験データ識別子、対象物性のカラム名、次元数リスト等を含む。
【0079】
次に、ネットワーク構造決定部P04は、構造モデルを構築して初期パラメータで初期化する(S252)。ネットワーク構造決定部P04は、学習用データベースDB15の構造物性関係モデル用テーブルを読み込む(S253)。ネットワーク構造決定部P04は、構造物性関係モデルとして、構造物性関係モデル用テーブルの数だけ、エンコーダ・デコーダペア(内側VAE)を構築し、初期パラメータで初期化する(S254)。
【0080】
ネットワーク構造決定部P04は、構造モデルのエンコーダ、構造物性関係モデルのエンコーダ群、構造物性関係モデルのデコーダ群、構造モデルのデコーダを順にならべ、各ネットワークに対して入力側から順に連番(Network Order)を付与する(S255)。
【0081】
ネットワーク構造決定部P04は、構造物性関係モデル用テーブルそれぞれの物性値カラム名(物性値種類)を集合化し、包含判定を行う(S256)。任意の二つの構造物性関係モデル用テーブルの間において、物性値カラム名の包含関係が成立する。具体的には、物性値カラム数が多いテーブルは、物性値カラム数が少ないテーブルの全ての物性値カラム名を含む。このような包含関係が成立するように、構造物性関係モデル用テーブルは学習データ生成部P02によって用意される。
【0082】
ネットワーク構造決定部P04は、含まれる物性値カラム数が少ないテーブル順に、Table IDを降順にソートする(S258)。ネットワーク構造決定部P04は、より上位のTable IDが、構造物性値関係モデルにおけるより外側のエンコーダ・デコーダペアと対応するように、各エンコーダ・デコーダペアと学習用テーブルを対応付ける。ネットワーク構造決定部P04は、初期パラメータに応じて、各エンコーダ・デコーダペアの入出力の次元数を決定する(S260)。
【0083】
次に、ネットワーク構造決定部P04は、モデル構造を表示する(S261)。具体的には、ネットワーク構造決定部P04は、モデル構造の情報を表示部P11に送信する。表示部P11は、受信した情報に従って、化学構造式生成モデルの構造画像を生成、表示する。
【0084】
ネットワーク構造決定部P04は、表示部P11を介して、化学構造式生成モデルの構造についてのユーザ入力を受け付け、ネットワーク構造の修正の有無を判定する(S262)。
【0085】
ネットワーク構造の修正のユーザ指示を受信した場合(S262:修正あり)、ネットワーク構造決定部P04は、ユーザ入力に従いネットワーク構造修正し(S263)、修正したネットワーク構造を、表示部P11を利用して表示する。
【0086】
ネットワーク構造の修正が不要である場合(S262:修正なし)、ネットワーク構造決定部P04は、エンコーダの入力とデコーダの出力が一致するエンコーダとデコーダをペアにし、各ペアに対して外側から順に連番(Nest Order)を付与する(S264)。各ペアがVAEを構成する。
【0087】
ネットワーク構造決定部P04は、全エンコーダ及びデコーダの全パラメータを、DB17の一部としてデータ保存装置M02に出力する(S265)。さらに、ネットワーク構造決定部P04は、モデルテーブル171をモデルデータDB17の一部としてデータ保存装置M02に出力する(S266)。
【0088】
図15は、構造モデル学習部P05の処理例のフローチャートを示す。構造モデル学習部P05は、カタログデータから生成した構造モデル用テーブルを使用して、構造モデル(外側VAE)の学習(訓練とも呼ぶ)を実行する。カタログデータDB10は、実験データDB11より多くのレコード(データ)を格納している。化学構造式のみであれば学習データとしてより多くのデータを用意することができるので、化学構造式生成モデル全体として効果的な学習が可能となる。
【0089】
まず、構造モデル学習部P05は、モデルデータDB17を読み込む(S301)。次に、構造モデル学習部P05は、モデルテーブルを参照し、Nest Orderが1のモデルを特定する(S302)。Nest Orderが1のモデルは、最も外側の構造モデルである。さらに、構造モデル学習部P05は、特定したモデルを構築する(S303)。
【0090】
構造モデル学習部P05は、学習用データベースDB15を参照し、構造モデル用テーブルを読み込む(S304)。構造モデル学習部P05は、構造式行列を構造モデルに順次入力して、ニューラルネットワークの学習を行う。構造モデル学習部P05は、ネットワークのパラメータを更新、最適化する(S305)。構造モデル学習部P05は、学習後のパラメータを書き出し、モデルデータDB17を更新する(S306)。
【0091】
図16は、構造モデル追加学習部P06の処理例のフローチャートを示す。構造モデル追加学習により、構造モデルの特徴抽出精度を高めることができる。構造モデル追加学習部P06は、構造物性関係モデル用テーブルの構造式行列を使用して、構造モデルの追加学習を行う。まず、構造モデル追加学習部P06は、モデルデータDB17を読み込む(S351)。
【0092】
次に、構造モデル追加学習部P06は、モデルテーブルを参照し、Nest Orderが1の学習済み構造モデルを再構築する(S352)。構造モデル追加学習部P06は、学習用データベースDB15を参照し、全ての構造物性関係モデル用テーブルを読み込み(S353)。
【0093】
構造モデル追加学習部P06は、構造物性関係モデル用テーブルの構造式行列を構造モデルに順次入力して、学習済み構造モデルの追加学習を行う。構造モデル追加学習部P06は、ネットワークのパラメータを更新、最適化する(S354)。構造モデル追加学習部P06は、追加学習後の構造モデルパラメータを書き出し、モデルデータDB17を更新する(S355)。
【0094】
図17は、構造物性関係モデル学習部P07の処理例のフローチャートを示す。構造物性関係モデル学習部P07は、構造物性関係モデル内のVAE(以下モデルとも呼ぶ)それぞれの学習を実行する。内側VAEの学習のため、そのVAEより外側の全てのエンコーダが再構築及び接続される。
【0095】
まず、構造物性関係モデル学習部P07は、モデルデータDB17を読み込む(S401)。構造物性関係モデル学習部P07は、Nを初期化して値を2に設定する(S402)。構造物性関係モデル学習部P07は、モデルテーブルのNest Orderの値がNに等しい行のNetwork ID列を参照し、学習対象モデルのVAEを構築する(S403)。
【0096】
構造物性関係モデル学習部P07は、モデルテーブルのNest Orderの値がNに等しい行のTarget列を参照し、学習用データベースDB15から、対応する学習用のテーブル(構造物性関係モデル用テーブル)を読み込む(S404)。
【0097】
構造物性関係モデル学習部P07は、追加学習済み構造モデルの(デコーダを構築することなく)エンコーダのみを再構築する(S405)。さらに、構造物性関係モデル学習部P07は、モデルテーブルのNest Orderの値がNより小さいNetwork ID列を参照し、(デコーダを構築することなく)学習済みエンコーダのみを再構築する(S406)。構造物性関係モデル学習部P07は、モデルテーブルのNetwork Order列を参照し、構築した学習済みエンコーダを順番に接続する(S407)。
【0098】
構造物性関係モデル学習部P07は、接続したエンコーダそれぞれに、構造式行列と対応する物性値を逐次入力し、学習対象ベクトルに変換する(S408)。構造モデルには、構造式行列のみが入力される。構造物性関係モデル学習部P07は、学習対象ベクトルを学習対象モデルであるVAEに入力して、当該モデルの学習を行い、ネットワークのパラメータを最適化する(S409)。N=2の場合、学習対象ベクトルは、構造モデルの構造行列の変換結果と物性値ベクトルを結合したベクトルである。構造物性関係モデル学習部P07は、学習後の当該モデルのパラメータを書き出し、モデルデータDB17を更新する(S410)。
【0099】
構造物性関係モデル学習部P07は、構造物性関係モデルの全てのモデル(VAE)の学習が終了したか判定する(S411)。未学習のモデルが残っている場合(S411:NO)、構造物性関係モデル学習部P07は、Nest Orderの値Nをインクリメントし(S412)、ステップS403に戻る。構造物性関係モデルの全てのモデルの学習が終了している場合(S411:YES)、本フローは終了する。
【0100】
図18は、新構造式生成部P08の処理例のフローチャートを示す。新構造式生成部P08は、学習済みの化学構造式生成モデルを使用して、所望の物性値を有することが期待される新たな化学構造式の候補を生成(推定)する。
【0101】
まず、新構造式生成部P08は、モデルデータDB17を読み込む(S451)。新構造式生成部P08は、学習済みの構造モデル及び構造物性値関係モデルを再構築し、化学構造式生成モデル(生成器)を構成する(S452)。新構造式生成部P08は、構造発生ベクトルデータベースDB16から、構造発生ベクトル群を読み込む(S453)。
【0102】
新構造式生成部P08は、構造発生ベクトル群を化学構造式生成モデルに入力し、構造式行列を生成する(S454)。新構造式生成部P08は、構造式行列をまとめて候補構造式として、候補構造式データベースDB18に書き出す(S455)。
【0103】
図19は、構造式逆変換部P09の処理例のフローチャートを示す。構造式逆変換部P09は、化学構造式生成モデルが出力した構造式行列を、構造式のSMILES表現(文字列)に変換する。
【0104】
まず、構造式逆変換部P09は、モデルデータDB17から構造式語彙辞書を読み込む(S501)。構造式逆変換部P09は、候補構造式データベースDB18を読み込む(S502)。構造式逆変換部P09は、構造式行列を構造式(SMILES表現)に変換する。(S503)。構造式逆変換部P09は、末尾の終了トークンを削除する。(S504)。構造式逆変換部P09は、構造式を候補構造式データベース18DBに上書きする。(S505)。
【0105】
図20は、構造式整形部P10の処理例のフローチャートを示す。VAEの性質から、化学構造式生成モデルが生成した化学構造式は、SMILESの文法に適合しない化学構造式を含み得る。構造式整形部P10は、SMILESの文法に適合しない化学構造式を補正し、さらに、補正できない化学構造式を除去する。
【0106】
まず、構造式整形部P10は、候補構造式データベース18DBを読み込む(S551)。構造式整形部P10は、各化学構造式について文法整合性判定する。(S552)。構造式整形部P10は、化学構造式が文法整合性を満たさない場合、その化学構造式を補正する。(S553)。構造式整形部P10は、補正した化学構造式の文法整合性再判定する。(S554)。構造式整形部P10は、候補構造式を棄却する。(S555)。
構造式整形部P10は、補正した化学構造式を、候補構造式データベース18DBに上書きする(S556)。
【0107】
以上のように、入れ子構造を有する化学構造生成モデルは、学習データに含まれる物性値よりも良い物性値を持つ化合物の候補を提示することができ、少ない実験データを使用して生成することができる。また、実験データを使用した構造モデルの追加学習により、構造モデルの特徴抽出精度をさらに高めることができる。
【実施例2】
【0108】
以下において、実施例2を説明する。主に、実施例1との相違点を説明する。実施例2に係る構造物性値関係モデルは、複数段のVAEからなる入れ子構造を有している。また、構造物性値関係モデルの各エンコーダ(各VAE)への入力は、前段エンコーダからの中間ベクトルと単一物性値とを結合したベクトルである。構造物性値関係モデルが複数段のVAEで構成されることで、例えば、分離することが好ましい物性値を異なるVAEの入力に含めることができる。
【0109】
実施例2において、学習のために使用される実験データの全ての化学構造式(レコード)が、共通の物性値種類(物性値名)の実験データを有しているとする(実験データの欠損なし)。以下において、各化学構造式に対して、MWtとlogPの二つの種類の物性値の実験データが関連付けられている例を説明する。
【0110】
図21は、実施例2に係る、表示部P11が表示装置M05においてユーザのために表示する、ネットワーク構造確認画面202の例を示す。表示部P11は、ネットワーク構造決定部P04から受信した化学構造式生成モデルの構成情報から、化学構造式生成モデルの構成図を生成し、モニタにおいて表示する。
【0111】
図21に示す構成例において、外側VAEである構造モデルは、外側エンコーダ#enc_01と外側デコーダ#dec_01で構成されている。構造物性関係モデルは、二つの内側VAEで構成されている。一つの内側VAEは、内側エンコーダ#enc_02と内側デコーダ#dec_02で構成されている。もう一つの内側VAEは、内側エンコーダ#enc_03と内側デコーダ#dec_03で構成されている。
【0112】
内側エンコーダ#enc_03と内側デコーダ#dec_03は、内側エンコーダ#enc_02と内側デコーダ#dec_02の間に挟まれている。内側エンコーダ#enc_03及び内側デコーダ#dec_03並びに内側エンコーダ#enc_02及び内側デコーダ#dec_02は、外側エンコーダ#enc_01と外側デコーダ#dec_01とに挟まれている。
【0113】
外側エンコーダ#enc_01は、SMILES表現から生成された構造式行列を入力として受け付け、中間ベクトル(潜在表現)を出力する。内側エンコーダ#enc_02は、外側エンコーダ#enc_01の出力に一つの物性値(MWt)を示す1次元ベクトルを結合したベクトルを入力として受け付け、中間ベクトル(潜在表現)を出力する。内側エンコーダ#enc_03は、内側エンコーダ#enc_02の出力に一つの物性値(logP)を示す1次元ベクトルを結合したベクトルを入力として受け付け、中間ベクトル(潜在表現)を出力する。
【0114】
内側デコーダ#dec_03は、内側エンコーダ#enc_03の出力を入力として受け付け、ベクトルを出力する。ベクトルの一部は、内側エンコーダ#enc_03への入力に対応し、他の一部は物性値(logP)に対応する。内側デコーダ#dec_03の出力ベクトルから物性値ベクトルを除いたベクトルが、内側デコーダ#dec_02に入力される。内側デコーダ#dec_02からの出力されたベクトルの一部は、内側エンコーダ#enc_02への入力、つまり、化学構造式(構造式行列)の特徴ベクトルであり、他の一部は物性値(MWt)の物性値ベクトルである。
【0115】
内側デコーダ#dec_02の出力ベクトルから物性値ベクトルを除いたベクトルが、外側デコーダ#dec_01に入力される。外側デコーダ#dec_01は、化学構造行列を示すベクトルを出力する。化学構造行列を逆変換することで、化学構造式のSMILES表現が得られる。
【0116】
図22は、実施例2に係る、学習用データベースDB15に含まれるデータの例を示す。
図22は、構造物性関係モデルの学習用データを示す。構造物性関係モデルの学習用データは、構造物性関係モデル内の外側の第1VAE(#enc_02及び#dec_02)用学習テーブル153と、構造物性関係モデル内の内側の第2VAE(#enc_03及び#dec_03)用学習テーブル154と、を格納している。
【0117】
第1VAE用学習テーブル153は、
図7に示す構造物性関係モデル用テーブル152からlogPカラムT6C6を除いた構造を有している。Table IDカラムT8C1は、第1VAE用学習テーブル153の識別子を示す。第1VAE用学習テーブル153のカラムT8C2~T8C5、T8C7は、構造物性関係モデル用テーブル152のカラムT6C2~T6C5、T6C7と、同じ情報を格納している。第1VAE(#enc_02及び#dec_02)の学習が必要とする物性値は、第1VAEの入出力に含まれるMWtのみである。
【0118】
第2VAE(#enc_03及び#dec_03)用学習テーブル154は、
図7に示す構造物性関係モデル用テーブル152と同様の構造を有している。Table IDカラムT9C1は、第2VAE用学習テーブル154の識別子を示す。第2VAE用学習テーブル154のカラムT9C2~T9C7は、構造物性関係モデル用テーブル152のカラムT6C2~T6C7と、同じ情報を格納している。
【0119】
第2VAEの学習のためには、より外側の二つのエンコーダ#enc_01、#enc_02を再構築して接続することが必要である。そのため学習データは、第2VAEの入出力物性値であるlogPに加え、エンコーダ#enc_02の入力物性値であるMWtを含む。
【0120】
一例において、第1VAEのための学習データは、第2VAEの学習データより多い。第2VAEより外側に配置された第1VAEの次元数がより多いため、構造物性関係モデルの学習を効果的に行うことができる。この点は、以下の実施例3及び4において同様である。
【0121】
図23は、実施例2に係る、モデルデータDB17に含まれるモデルテーブル172の構成例を示す。
図23のモデルテーブル172は、
図21に示す化学構造式生成モデルの構成図と対応している。
図23の例において、Network IDカラムT10C1は、化学構造式生成モデルの三つのエンコーダ及び三つデコーダそれぞれの識別子を示す。Network OrderカラムT10C2は、三つエンコーダ及び三つのデコーダそれぞれの、入力からの順番を示す。Nest OrderカラムT10C3は、エンコーダ及びデコーダが含まれる三つのVAEそれぞれの入力から(外側から)の順番を示す。TargetカラムT10C4は、VAEの学習に使用するデータの識別子及び対象物性値を示す。
【実施例3】
【0122】
以下において、実施例3を説明する。主に、実施例1及び2との相違点を説明する。実施例3に係る構造物性値関係モデルは、複数段のVAEからなる入れ子構造を有している。また、構造物性値関係モデルの各エンコーダ(各VAE)への入力は、前段エンコーダからの中間ベクトルと単一又は複数物性値とを結合したベクトルである。構造物性値関係モデルが複数段のVAEで構成されることで、例えば、結合することが好ましい物性値を同一のVAEの入力に含め、分離することが好ましい物性値を異なるVAEの入力に含めることができる。
【0123】
実施例3において、学習のために使用される実験データの全ての化学構造式(レコード)が、共通の物性値種類(物性値名)の実験データを有しているとする(実験データの欠損なし)。以下において、各化学構造式に対して、Prop1、Prop2、Prop3の、三つの種類の物性値の実験データが関連付けられている例を説明する。
【0124】
図24は、実施例3に係る、表示部P11が表示装置M05においてユーザのために表示する、ネットワーク構造確認画面203の例を示す。表示部P11は、ネットワーク構造決定部P04から受信した化学構造式生成モデルの構成情報から、化学構造式生成モデルの構成図を生成し、モニタにおいて表示する。
【0125】
図24に示すネットワーク構造は、実施例2の
図21に示すネットワーク構造と比較して、最も内側のVAE(#enc_03及び#dec_03)の物性値数が2である点が異なる。構造物性関係モデルにおけるより外側のVAE(#enc_02及び#dec_02)の入出力物性値は、Prop1であり、最も内側のVAE(#enc_03及び#dec_03)の入出力物性値は、Prop1及びProp2である。
【0126】
図25は、実施例3に係る、学習用データベースDB15に含まれるデータの例を示す。
図25は、構造物性関係モデルの学習用データを示す。構造物性関係モデルの学習用データは、構造物性関係モデル内の第1VAE(#enc_02及び#dec_02)用学習テーブル155と、構造物性関係モデル内の第2VAE(#enc_03及び#dec_03)用学習テーブル156と、を格納している。
【0127】
第1VAE用学習テーブル155は、
図22に示す第1VAE用学習テーブル153と同様の構造を有している。カラムT11C1~T11C4、T11C7のカラム名は、第1VAE用学習テーブル153と同様である。Prop1カラムT11C5は、各化学構造式のProp1の測定値を示す。第1VAE(#enc_02及び#dec_02)の学習が必要とする物性値は、第1VAEの入出力に含まれるProp1のみである。
【0128】
第2VAE(#enc_03及び#dec_03)用学習テーブル156は、
図25に示す第1VAE用学習テーブル155に対して二つの物性値のカラムを追加した構造を有している。カラムT12C1~T12C5、T12C8の情報は、第1VAE用学習テーブル155のカラムT11C1~T11C5、T11C7と同様である。追加されているProp2カラムT12C6、Prop3カラムT12C7は、それぞれ、各化学構造式のProp2、Prop3の実験測定値を示す。
【0129】
第2VAEの学習のためには、より外側の二つのエンコーダ#enc_01、#enc_02を再構築して接続することが必要である。そのため学習データは、第2VAEの入出力物性値であるProp2、Prop3に加え、エンコーダ#enc_02の入力物性値であるProp1を含む。
【0130】
図26は、実施例3に係る、モデルデータDB17に含まれるモデルテーブル173の構成例を示す。
図26のモデルテーブル173は、
図24に示す化学構造式生成モデルの構成図と対応している。カラムT13C1~T13C3の情報は、実施例2に係るモデルテーブル172のカラムT10C1~T10C3の情報と同様である。TargetカラムT13C5は、本例においてVAEの学習に使用するデータの識別子及び対象物性値を示す。
【実施例4】
【0131】
以下において、実施例4を説明する。主に、上記他の実施例との相違点を説明する。本実施例の実験データは、実験により得られる物性値の欠損を有する化学構造式を含む。関連付けられている物性値の組み合わせに応じて、入れ子構造内のVAEそれぞれに適用する学習データを実験データから構成することで、より適切な学習が可能となる。
【0132】
図27は、実験データにおけるレコードが含む物性値(の種類)が満たすべき条件を模式的に示す。
図27に示すように、レコードの物性値種類の組み合わせは、包含関係を満たすことが要求される。具体的には、より多くの物性値(の種類)を含むレコードは、より少ない物性値(の種類)を含むレコードの全ての物性値(の種類)を含む。例えば、3種類の実験データが存在するとする。
【0133】
第1の実験データは1種類の物性値の実験結果を含み、第2の実験データは2種類の物性値の実験結果を含み、第3の実験データは3種類の物性値の実験結果を含むとする。第3の実験データの3種類の物性値種類は、第1の実験データの物性値種類と、第2の実験データの二つの物性値種類で構成される。第2の実験データの物性値種類は、第1の実験データの物性値種類と、他の物性値種類で構成される。
【0134】
第1の実験データの物性値集合(物性値カラム集合又は物性値種類集合)は、第2及び第3の実験データの物性値集合に包含され、第2の実験データの物性値集合は、第3の実験データの物性値集合に包含されている。第1の実験データにおいて2種類の物性値のデータが欠けており、第2の実験データにおいて1種類の物性値のデータが欠けている。構造物性関係モデル用学習データは、上述のような包含関係を満たすように実験データから前処理される。
【0135】
図28は、2種類の実験データで構成される構造物性関係モデル用学習データの例を模式的に示す。第1の実験データ311は、物性値1(Prop1)の測定値のみ有している。第2の実験データ312は、物性値1(Prop1)及び物性値2(Prop2)の測定値を有している。つまり、第1の実験データの物性値集合は、第2の実験データの物性値集合に包含されている。
【0136】
図29は、実施例4に係る、表示部P11が表示装置M05においてユーザのために表示する、ネットワーク構造確認画面204の例を示す。
図30は、実施例3に係る、モデルデータDB17に含まれるモデルテーブル174の構成例を示す。
図30のモデルテーブル174は、
図29に示す化学構造式生成モデルの構成図と対応している。
【0137】
図29に示すネットワーク構造は、実施例2の
図21に示すネットワーク構造と同様である。物性値MWtが物性値Prop1に置き換えられ、物性値logPが物性値Prop2に置き換えられている。
図30のモデルテーブル174のカラムT14C1~T14C3の情報は、実施例2の
図23に示すモデルテーブル172のカラムT10C1~T10C3の情報と同様である。TargetカラムT14C4は、本実施例のテーブル名及び物性値名(Prop1、Prop2)を示す。
【0138】
図31は、学習データ生成部P02が、実験データから構造物性関係モデル用学習データを生成する例を示している。初期テーブル150は、実験データから生成され、物性値集合が包含関係を満たすように前処理された構造物性関係モデル用学習データを格納している。学習データ生成部P02は、初期テーブル150から、VAEそれぞれの学習データを生成する。初期テーブル150のカラムT15C1~T15C4、T15C7は、実施例2の
図22に示す学習テーブル154の同名のカラムと同様の種類の情報を示す。カラムT15C5及びT15C6は、それぞれ、Prop1及びProp2の測定値を示す。
【0139】
初期テーブル150は、物性値集合が異なるレコードを含む。Table IDが「Tbl_Exp_011」の各レコードは、Prop1及びProp2の測定値を含む。Table IDが「Tbl_Exp_012」の各レコードは、Prop1の測定値にみを含む。Table IDが「Tbl_Exp_013」のレコードは、Prop1及びProp1の測定値を含むレコードと、Prop1の測定値にみを含むレコードを含む。
【0140】
学習データ生成部P02は、実験データから、Prop1及びProp2を含むレコードと、Prop1のみを含むレコードを抽出し、Prop1のみを含むレコードに対して、Prop2のフィールドにNullを格納する。学習データ生成部P02は、これらレコードを初期テーブル150に格納して、Nullの数に従って(例えば昇順で)レコードをソートする。
【0141】
次に、学習データ生成部P02は、初期テーブル150から、構造物性関係モデル内第1VAE用学習テーブル157及び構造物性関係モデル内第2VAE用学習テーブル158を生成する。
【0142】
構造物性関係モデル内第1VAE用学習テーブル157は、構造物性関係モデルの外側のVAE(#enc_02及び#dec_02)の学習データである。第1VAE用学習テーブル157は、初期テーブル150においてProp1の測定値を含むレコード、つまり全てのレコードを含む。カラムT16C1~T16C5、T16C7は、初期テーブルの同名のカラムと同種の情報を示す。第1VAE用学習テーブル157において、初期テーブル150のProp2カラムが削除されている。第1VAE(#enc_02及び#dec_02)の学習が必要とする物性値は、第1VAEの入出力に含まれるProp1のみである。
【0143】
構造物性関係モデル内第2VAE用学習テーブル158は、構造物性関係モデルの内側側のVAE(#enc_03及び#dec_03)の学習データである。第2VAE用学習テーブル158は、初期テーブル150においてProp1及びProp2の測定値を含むレコードで構成されている。カラムT17C1~T17C7は、初期テーブルの同名のカラムと同種の情報を示す。
【0144】
第2VAEの学習のためには、より外側の二つのエンコーダ#enc_01、#enc_02を再構築して接続することが必要である。そのため学習データは、第2VAEの入出力物性値であるProp2に加え、エンコーダ#enc_02の入力物性値であるProp1を含む。
【0145】
実施例2-4で説明したように、構造物性関係モデルの学習データは、複数のVAEそれぞれの学習に使用される複数の学習テーブル(グループ)で構成される。各学習テーブルは、化合物構造表現のそれぞれを1以上の所定の物性値種類の測定値と関連付ける。任意の二つ学習テーブルの間において、物性値種類数が多い学習テーブルは、物性値種類数が少ない学習テーブルの全ての物性値種類及び全ての化合物構造表現を含む。より物性値種類数が多い学習テーブルは、構造物性関係モデルにおけるより内側のVAEの学習に使用される。
【0146】
本実施例4で説明したように、物性値の欠損を有するレコードを含む実験データから、上記物性値集合の包含関係を有するレコードで、学習データを構成する。これにより、構造物性関係モデル内のVAEのための学習データを、当該VAEの入出力物性値に加え、より外側のエンコーダに入力される全ての物性値を含むレコードで構成できる。この結果、各VAEの適切な学習が可能となる。
【0147】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0148】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。
【0149】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0150】
10 化学構造式生成モデル、100 構造モデル、101 エンコーダ、102 デコーダ、104 構造物性関係モデル、105 エンコーダ、106 デコーダ、M01 パラメータ設定装置、M02 データ保存装置、M03 モデル学習装置、M04 構造式生成装置、M05 表示装置、P01 構造式変換部、P02 学習データ生成部、P03 構造発生ベクトル群生成部、P04 ネットワーク構造決定部、P05 構造モデル学習部、P06 構造モデル追加学習部、P07 構造物性関係モデル学習部、P08 新構造式生成部、P09 構造式逆変換部、P10 構造式整形部、DB10 カタログデータ、DB11 実験データ、DB12 構造式語彙データ、DB13 初期パラメータ、DB14 構造式行列データベース、DB15 学習用データベース、DB16 構造発生ベクトルデータベース、DB17 モデルデータ、DB18 候補構造式データベース、U111 プロセッサ、U112 DRAM、U113 通信装置、U114 補助記憶装置、U115 入力装置