(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-27
(45)【発行日】2024-03-06
(54)【発明の名称】機械学習プログラム、推定プログラム、装置、及び方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20240228BHJP
G06N 5/04 20230101ALI20240228BHJP
G06N 3/04 20230101ALI20240228BHJP
【FI】
G06N20/00 130
G06N5/04
G06N3/04
(21)【出願番号】P 2022558810
(86)(22)【出願日】2020-11-02
(86)【国際出願番号】 JP2020041077
(87)【国際公開番号】W WO2022091413
(87)【国際公開日】2022-05-05
【審査請求日】2023-03-16
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】鵜飼 孝典
【審査官】真木 健彦
(56)【参考文献】
【文献】米国特許出願公開第2008/201280(US,A1)
【文献】米国特許第10157226(US,B1)
【文献】特開2020-047209(JP,A)
【文献】特開2018-147238(JP,A)
【文献】特開2018-170004(JP,A)
【文献】小林賢司 ほか,エビデンスに基づく医療のための文献キュレーションシステムの開発,情報処理学会 研究報告 グループウェアとネットワークサービス(GN)[online],日本,一般社団法人情報処理学会,2019年03月11日,2019-GN-107巻, 2号,pp.1-8,ISSN: 2188-8744
【文献】市瀬 龍太郎,他,分散表象とオントロジーの関係,2015年度 人工知能学会全国大会(第29回)論文集,日本,一般社団法人 人工知能学会,2015年05月29日,1-2
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06N 5/04
G06N 3/04
(57)【特許請求の範囲】
【請求項1】
グラフデータの埋め込みベクトルとオントロジーの埋め込みベクトルと正解ラベルとを含む訓練データを入力し、
入力された訓練データのうちグラフデータの埋め込みベクトルのみで計算される活性化関数の値と、入力された訓練データのうちオントロジーの埋め込みベクトルのみで計算される活性化関数の値とを結合して得られた値と正解ラベルとによって計算される損失関数に基づいて、機械学習モデルの機械学習を実行する、
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【請求項2】
前記オントロジーの埋め込みベクトルを、前記グラフデータと前記オントロジーとの共通部分の初期値に用いて、前記グラフデータの埋め込みベクトルを計算する、
処理をさらに前記コンピュータに実行させることを特徴とする請求項1に記載の機械学習プログラム。
【請求項3】
前記オントロジーの埋め込みベクトルのみで計算される活性化関数の値は、前記共通部分の埋め込みベクトルで計算されることを含む、
ことを特徴とする請求項2に記載の機械学習プログラム。
【請求項4】
前記グラフデータに前記オントロジーを接続させた全体グラフデータに基づいて、前記グラフデータの埋め込みベクトル、及び前記オントロジーの埋め込みベクトルを計算する、
処理をさらに前記コンピュータに実行させることを特徴とする請求項1に記載の機械学習プログラム。
【請求項5】
前記グラフデータの埋め込みベクトルを計算する処理は、前記全体グラフデータに基づいて、前記オントロジーの埋め込みベクトルを計算し、前記オントロジーの埋め込みベクトルを、前記グラフデータと前記オントロジーとの共通部分の初期値に用いて、前記グラフデータの埋め込みベクトルを計算する、
ことを含むことを特徴とする請求項4に記載の機械学習プログラム。
【請求項6】
前記オントロジーは、前記グラフデータが示す元のデータに関する背景知識を体系化したデータである、
ことを特徴とする請求項1~請求項5のいずれか1項に記載の機械学習プログラム。
【請求項7】
グラフデータの埋め込みベクトルとオントロジーの埋め込みベクトルと正解ラベルとを含む訓練データを入力のうちグラフデータの埋め込みベクトルのみで計算される活性化関数の値と、入力された訓練データのうちオントロジーの埋め込みベクトルのみで計算される活性化関数の値とを結合して得られた値と正解ラベルとによって計算される損失関数に基づいて、機械学習が実行された機械学習モデルに、正解が未知の推定対象データを示すグラフデータの埋め込みベクトルとオントロジーの埋め込みベクトルとを入力し、前記推定対象データに関する推定結果を出力する
処理をコンピュータに実行させることを特徴とする推定プログラム。
【請求項8】
グラフデータの埋め込みベクトルとオントロジーの埋め込みベクトルと正解ラベルとを含む訓練データを入力し、
入力された訓練データのうちグラフデータの埋め込みベクトルのみで計算される活性化関数の値と、入力された訓練データのうちオントロジーの埋め込みベクトルのみで計算される活性化関数の値とを結合して得られた値と正解ラベルとによって計算される損失関数に基づいて、機械学習モデルの機械学習を実行する、
処理を実行する制御部を含むことを特徴とする機械学習装置。
【請求項9】
グラフデータの埋め込みベクトルとオントロジーの埋め込みベクトルと正解ラベルとを含む訓練データを入力のうちグラフデータの埋め込みベクトルのみで計算される活性化関数の値と、入力された訓練データのうちオントロジーの埋め込みベクトルのみで計算される活性化関数の値とを結合して得られた値と正解ラベルとによって計算される損失関数に基づいて、機械学習が実行された機械学習モデルに、正解が未知の推定対象データを示すグラフデータの埋め込みベクトルとオントロジーの埋め込みベクトルとを入力し、前記推定対象データに関する推定結果を出力する
処理を実行する制御部を含むことを特徴とする推定装置。
【請求項10】
グラフデータの埋め込みベクトルとオントロジーの埋め込みベクトルと正解ラベルとを含む訓練データを入力し、
入力された訓練データのうちグラフデータの埋め込みベクトルのみで計算される活性化関数の値と、入力された訓練データのうちオントロジーの埋め込みベクトルのみで計算される活性化関数の値とを結合して得られた値と正解ラベルとによって計算される損失関数に基づいて、機械学習モデルの機械学習を実行する、
処理をコンピュータに実行させることを特徴とする機械学習方法。
【請求項11】
グラフデータの埋め込みベクトルとオントロジーの埋め込みベクトルと正解ラベルとを含む訓練データを入力のうちグラフデータの埋め込みベクトルのみで計算される活性化関数の値と、入力された訓練データのうちオントロジーの埋め込みベクトルのみで計算される活性化関数の値とを結合して得られた値と正解ラベルとによって計算される損失関数に基づいて、機械学習が実行された機械学習モデルに、正解が未知の推定対象データを示すグラフデータの埋め込みベクトルとオントロジーの埋め込みベクトルとを入力し、前記推定対象データに関する推定結果を出力する
処理をコンピュータに実行させることを特徴とする推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、機械学習技術に関する。
【背景技術】
【0002】
従来、過去の事例を訓練データとして機械学習を実行した機械学習モデルを用いて、対象の事象を推定することが行われている。例えば、薬物の間の類似性を計算し、指定薬物の副作用を推定するシステムが提案されている。このシステムは、類似性計算装置と、副作用決定装置とを有する。類似性計算装置は、複数のオープンデータソースから薬物セットに関連するデータを得て、RDF(Resource Description Framework)トリプルを生成し、RDFトリプルのRDFグラフを格納する。類似性計算装置は、RDFトリプルに基づいて薬物毎の特徴ベクトルを生成し、特徴ベクトルを比較することにより、各々の薬物と全ての他の薬物との類似性を計算する。副作用決定装置は、薬物の類似性に基づいて、指定薬物の副作用を推定する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述の従来技術のように、特徴ベクトルを比較した医薬品(薬物)の類似性だけでは、副作用の推定精度が十分でない場合がある。例えば、同じ医薬品を投与している患者であっても、患者が罹患している疾病が相違する場合には、副作用の状況が異なる場合があるためである。上記のような状況は、医薬品の類似性で副作用を推定する場合に限らず、過去の事例を訓練データとして機械学習を実行した機械学習モデルを用いて、何らかの事象を推定する場合に起こり得る。
【0005】
一つの側面として、開示の技術は、事象の推定精度を向上させるように機械学習モデルを訓練することを目的とする。
【課題を解決するための手段】
【0006】
一つの態様として、開示の技術は、グラフデータの埋め込みベクトルとオントロジーの埋め込みベクトルと正解ラベルとを含む訓練データを入力する。また、開示の技術は、損失関数に基づいて、機械学習モデルの機械学習を実行する。損失関数は、入力された訓練データのうちグラフデータの埋め込みベクトルのみで計算される活性化関数の値と、訓練データのうちオントロジーの埋め込みベクトルのみで計算される活性化関数の値とを結合して得られた値と正解ラベルとによって計算される。
【発明の効果】
【0007】
一つの側面として、事象の推定精度を向上させるように機械学習モデルを訓練することができる、という効果を有する。
【図面の簡単な説明】
【0008】
【
図2】機械学習用事例データの一例を示す図である。
【
図4】事例グラフデータの生成を説明するための図である。
【
図5】事例グラフデータへのオントロジーの接続を説明するための図である。
【
図6】埋め込みベクトルの計算を説明するための図である。
【
図8】機械学習モデルのネットワーク構成を概略的に示す図である。
【
図10】推定対象事例データ及び推定結果の一例を示す図である。
【
図11】機械学習装置として機能するコンピュータの概略構成を示すブロック図である。
【
図12】推定装置として機能するコンピュータの概略構成を示すブロック図である。
【
図13】機械学習処理の一例を示すフローチャートである。
【
図14】推定処理の一例を示すフローチャートである。
【
図15】オントロジーの埋め込みベクトルを初期値として、事例グラフデータの埋め込みベクトルを計算する場合を説明するための図である。
【
図16】オントロジーの埋め込みベクトルを初期値として、事例グラフデータの埋め込みベクトルを計算する場合を説明するための図である。
【
図17】オントロジーの埋め込みベクトルを初期値として、事例グラフデータの埋め込みベクトルを計算する場合を説明するための図である。
【発明を実施するための形態】
【0009】
以下、図面を参照して、開示の技術に係る実施形態の一例を説明する。なお、以下の各実施形態では、医薬品の投与における、想定以外の作用(以下、「副作用」という)の推定に開示の技術を適用する場合を例に説明する。
【0010】
まず、実施形態の詳細を説明する前に、従来技術のように、医薬品の類似性を比較するのみでは精度良く副作用の推定が行えない場合があることを考慮して、過去の事例データに、オントロジーを組み合せた特徴ベクトルを用いる場合を考える。事例データは、患者の属性、投与した医薬品、患者が罹患している疾病等の情報を含むものとする。また、オントロジーとは、対象の分野における背景知識を体系化したものであり、本実施形態の場合、例えば、疾病の類似性や関係、医薬品の類似性や含まれている成分等の情報を木構造等の形式で整理したものである。疾病が類似する場合や、同じ成分が含まれている医薬品を投与する場合などには、同じような副作用が起こる可能性がある。そこで、上記のようなオントロジーの情報を素性として含む特徴ベクトルを用いることで、このような可能性を推定可能になると考えられる。
【0011】
しかし、事例データを示す素性と、オントロジーを示す素性とを並べて特徴ベクトルを生成することが困難な場合がある。例えば、医薬品に含まれる成分を素性として並べることはできるが、木構造の形式で整理された疾病の関係性を素性として利用することは困難である。
【0012】
そこで、以下のような方法が考えられる。その方法は、事例データを、ノードとノード間を接続するエッジとで構成されるグラフデータに変換し、このグラフデータに木構造のオントロジーを結合する。そして、その方法は、事例データとオントロジーとが組み合わされたグラフデータから、各ノードを表す埋め込みベクトルを計算する。さらに、その方法は、この埋め込みベクトルから生成される特徴ベクトルを訓練データとして用いて機械学習モデルを訓練する方法である。しかし、この方法の場合、特徴ベクトルに含まれる事例データに関する情報とオントロジーに関する情報との扱いに区別がなく、オントロジーの情報を、事象(ここでは、副作用)の推定に適切に反映することができない場合がある。そこで、以下の各実施形態では、オントロジーの情報が適切に機械学習モデルの機械学習に反映されるようにする。以下、各実施形態について詳述する。
【0013】
<第1実施形態>
第1実施形態に係る機械学習システムは、機械学習装置10と、推定装置30とを含む。まず、機械学習装置10について説明する。
図1に示すように、機械学習装置10には、機械学習用事例データ及びオントロジーが入力される。機械学習用事例データは、患者の属性、投与した医薬品、患者が罹患している疾病等の情報、及び、副作用の情報を含むデータである。
図2に、機械学習用事例データの一例を示す。
図2の例では、患者毎に、「ID」、「性別」、「年代」、「体重」、「身長」、「医薬品」、「疾病」、及び「副作用」の情報が含まれている。「ID」は、患者の識別情報である。「性別」、「年代」、「体重」、及び「身長」は、患者の属性の一例である。「医薬品」は、患者に投与された医薬品の名称である。「疾病」は、患者が罹患している原疾病の名称である。「副作用」は、「医薬品」に示す医薬品を投与した際に発生した副作用の情報である。
【0014】
図3に、オントロジーの一例を示す。本実施形態では、医薬品に関するオントロジー(以下、「医薬品オントロジー」という)、及び疾病に関するオントロジー(以下、「疾病オントロジー」という)を用いる場合について説明する。
図3に示すように、医薬品オントロジーは、医薬品を示すノード(中に医薬品名が表記された丸)と、背景知識を示すノード(中に背景知識が表記された楕円)と、関連するノード間を接続したエッジ(矢印)とを含む木構造の情報である。エッジには、医薬品と背景知識とがどのように関連するかを示す関連情報が対応付けられている場合がある。例えば、重症感染症の患者への投与が禁止される医薬品については、その医薬品を示すノードと、重症感染症を示すノードとがエッジで接続され、投与を禁止する関連情報(
図3では「禁忌」と表記)が付与される。
【0015】
疾病オントロジーも同様に、疾病を示すノード(中に疾病名が表記された丸)と、背景知識を示すノード(中に背景知識が表記された楕円)と、関連するノード間を接続したエッジ(矢印)を含む木構造の情報である。例えば、アルコール摂取という疾病が精神疾患に分類される場合、アルコール摂取を示すノードと、精神疾患を示すノードとがエッジで接続され、例えば「分類」という関連情報がエッジに付与される。
【0016】
機械学習装置10は、機能的には、
図1に示すように、グラフ生成部12と、埋め込みベクトル計算部14と、訓練データ生成部16と、機械学習部18とを含む。
【0017】
グラフ生成部12は、機械学習装置10に入力された機械学習用事例データを取得し、取得した機械学習用事例データから、ノードとノード間を接続するエッジとで構成されるグラフデータを生成する。例えば、グラフ生成部12は、
図4に示すように、機械学習用事例データに含まれる副作用以外の各項目の各値をノードとして生成する。
図4において、中に各値が表記された丸で示すノードは、属性、医薬品、及び疾病の各々を示すノードである。そして、グラフ生成部12は、各「ID」のノードから、そのIDが示す患者についての属性、医薬品、及び疾病の各々を示すノードへエッジを接続する。なお、
図4では、各事例データと副作用との関係を明確にするため、副作用を示すノード(中に副作用が表記された角丸の四角で示すノード)、及び「ID」のノードと副作用を示すノードとを接続するエッジも表記している。また、グラフデータの生成方法は上記の例に限定されず、他の方法を採用してもよい。以下、事例データから生成したグラフデータを「事例グラフデータ」という。なお、以下の説明では、事例グラフデータには、副作用を示すノードは含まれない。
【0018】
また、グラフ生成部12は、機械学習用事例データに基づく事例グラフデータにオントロジーを接続したグラフデータを生成する。具体的には、グラフ生成部12は、事例グラフデータとオントロジーとで一致するノードを共通化することで、事例グラフデータとオントロジーとを接続させる。例えば、グラフ生成部12は、事例グラフデータに含まれる「医薬品」及び「疾病」を示すノードと一致するノードを、医薬品オントロジー及び疾病オントロジーから検索し、検索したノード及びそのノードに接続する部分を抽出する。そして、グラフ生成部12は、
図5の破線で示す部分のように、オントロジーから抽出した部分を、一致する「医薬品」又は「疾病」を示すノードを重ね合わせるように、事例グラフデータに接続する。以下では、事例グラフデータにオントロジーから抽出した部分を接続したグラフデータを「全体グラフデータ」という。
【0019】
埋め込みベクトル計算部14は、全体グラフデータに基づいて、全体グラフデータに含まれる各ノードを表現する埋め込みベクトルを計算する。具体的には、埋め込みベクトル計算部14は、全体グラフデータに含まれるノード及びエッジの各々をn次元のベクトル空間に写像することにより埋め込みベクトルを計算する。より具体的に、
図6上段の図に示すように、ノードA、B、C、ノードA-B間のエッジr、及びノードC-B間のエッジrを含むグラフデータを例に、埋め込みベクトル計算部14による埋め込みベクトルの計算について説明する。ここでは、説明を簡単にするため、2次元のベクトル空間に写像する場合について説明する。
【0020】
まず、埋め込みベクトル計算部14は、
図6中段の図に示すように、グラフデータに含まれるノード及びエッジの各々を、初期値のベクトルとしてベクトル空間に配置する。そして、埋め込みベクトル計算部14は、ノードの接続関係を表現するように、各ベクトルの配置を最適化する。
図6の例では、埋め込みベクトル計算部14は、
図6下段の図に示すように、ベクトルA+ベクトルrがベクトルBに近くなるように、かつ、ベクトルC+ベクトルrがベクトルBに近くなるように、各ベクトルの配置を最適化する。最適化後のベクトルが、そのベクトルが示すノードの埋め込みベクトルとなる。埋め込みベクトル計算部14は、上記のような計算方法により、全体グラフデータに含まれる各ノードについての埋め込みベクトルを計算する。
【0021】
訓練データ生成部16は、埋め込みベクトル計算部14により計算された埋め込みベクトルと、副作用の情報から生成した正解ラベルとを用いて、機械学習モデルの機械学習に用いる訓練データを生成する。具体的には、訓練データ生成部16は、全体グラフデータに含まれる「ID」のノード毎に、そのノードに接続する各ノードについて計算された埋め込みベクトルのベクトル値を連結して素性を生成する。そして、訓練データ生成部16は、副作用の情報に基づいて、対象の副作用が生じている場合には「TRUE」を示す正解ラベル、対象の副作用が生じていない場合には、「FALSE」を示す正解ラベルを生成し、素性に付加して訓練データを生成する。
【0022】
図7に、訓練データの一例を示す。
図7に示すように、各ノードについての埋め込みベクトルのベクトル値を連結しているため、素性には、事例グラフデータのノードの埋め込みベクトルを連結した素性(以下、「事例データの素性」という)が含まれる。また、素性には、医薬品オントロジーのノードの埋め込みベクトルを連結した素性(以下、「医薬品の素性」という)、及び疾病オントロジーのノードの埋め込みベクトルを連結した素性(以下、「疾病の素性」という)が含まれることになる。なお、事例グラフデータとオントロジーとで共通するノード(事例データの項目「医薬品」及び「疾病」を示すノード)の埋め込みベクトルは、事例データの素性と、医薬品の素性又は疾病の素性との両方に含まれている。また、
図7の例では、対象の副作用を「静脈閉塞」とした場合を示している。
【0023】
機械学習部18は、訓練データ生成部16で生成された訓練データを用いて、例えばニューラルネットワーク等で構成される機械学習モデル20のパラメータを更新する。ここで、
図8に、機械学習モデル20のネットワーク構成を概略的に示す。
図8に示すように、機械学習モデル20は、第1隠れ層、第2隠れ層、第3隠れ層、及び第4隠れ層を含む。第1隠れ層には、訓練データのうち、事例データの素性が入力され、第2隠れ層には、医薬品の素性が入力され、第3隠れ層には、疾病の素性が入力される。第4隠れ層には、第1隠れ層、第2隠れ層、及び第3隠れ層の各々からの出力と、訓練データに含まれる全ての素性とが入力される。そして、機械学習モデル20は、第4隠れ層からの出力に基づいて、対象の副作用が生じる確率を出力する。
【0024】
機械学習部18は、上記のようなネットワーク構成の機械学習モデル20のパラメータを、下記に示す損失関数の値LOSSを最小化するように更新する。
LOSS=g(Label,Output)
Output
=f4(T,O1,O2,f1(T),f2(O1),f3(O2))
【0025】
g(A,B)は、AとBとの損失関数であり、例えば、2乗和誤差や交差エントロピー誤差等を算出する関数である。Labelは、正解ラベルがTRUEの場合には1、FALSEの場合には0を返す関数である。Outputは、機械学習モデル20に訓練データの素性を入力した際の出力値である。Tは、訓練データに含まれる素性のうち、事例データの素性からなるベクトルである。O1は、訓練データに含まれる素性のうち、医薬品の素性からなるベクトルである。O2は、訓練データに含まれる素性のうち、疾病の素性からなるベクトルである。f1は、第1隠れ層に相当する活性化関数、f2は、第2隠れ層に相当する活性化関数、f3は、第3隠れ層に相当する活性化関数である。この活性化関数は、例えば、ReLU(Rectified Linear Unit)である。すなわち、f1(T)は、入力された訓練データのうち、事例グラフデータのノードの埋め込みベクトルのみで計算される活性化関数の値である。また、f2(O1)は、入力された訓練データのうち、医薬品オントロジーのノードの埋め込みベクトルのみで計算される活性化関数の値である。また、f3(O2)は、入力された訓練データのうち、疾病オントロジーのノードの埋め込みベクトルのみで計算される活性化関数の値である。f4は、第4隠れ層に相当する活性化関数であり、例えば、シグモイド関数である。すなわち、f4(T,O1,O2,f1(T),f2(O1),f3(O2))は、全ての素性、及び第1~第3隠れ層の各々からの出力を結合したベクトルに活性化関数を適用した値である。
【0026】
機械学習部18は、上記の損失関数の値LOSSが所定の閾値以下となった場合、前回算出されたLOSSとの差が所定値以下となった場合、機械学習の繰り返し数が所定回数に到達した場合等の場合に、損失関数の値LOSSが最小化したと判断する。機械学習部18は、損失関数の値LOSSが最小化したと判断すると、機械学習を終了し、ネットワーク構成の情報、及び機械学習が終了した時点でのパラメータの値を含む機械学習モデル20を出力する。
【0027】
次に、推定装置30について説明する。
図9に示すように、推定装置30には、副作用を推定する対象となる、正解が未知の事例データである推定対象事例データ及びオントロジーが入力される。推定対象事例データは、機械学習用事例データから「副作用」の項目を除いた事例データである。
【0028】
推定装置30は、機能的には、
図9に示すように、グラフ生成部32と、埋め込みベクトル計算部34と、推定部36とを含む。また、推定装置30の所定の記憶領域には、機械学習装置10から出力された機械学習モデル20が記憶される。
【0029】
グラフ生成部32は、グラフデータを生成する元となるデータが、機械学習用事例データではなく推定対象事例データである点を除いて、機械学習装置10のグラフ生成部12と同様である。また、埋め込みベクトル計算部34も、機械学習装置10の埋め込みベクトル計算部14と同様である。
【0030】
推定部36は、グラフ生成部32により生成された全体グラフデータに含まれる「ID」のノード毎に、そのノードに接続する各ノードについて、埋め込みベクトル計算部34で計算された埋め込みベクトルのベクトル値を連結して素性を生成する。生成される素性には、機械学習装置10の訓練データ生成部16で生成される訓練データに含まれる素性と同様に、事例データの素性、医薬品の素性、及び疾病の素性の各々が含まれる。推定部36は、生成した素性を機械学習モデル20に入力することにより、推定対象事例データについて、対象の副作用が発生するか否かを示す推定結果を出力する。例えば、推定部36は、
図10に示すように、「ID」がC及びDの各々の患者についての推定対象事例データから生成した素性を機械学習モデル20に入力し、対象の副作用が発生する確率を取得する。推定部36は、取得した確率が所定値以上の場合には、TRUEを出力し、取得した確率が所定値未満の場合には、FALSEを出力する。なお、推定部36は、機械学習モデル20から出力される確率をそのまま推定結果として出力してもよい。
【0031】
機械学習装置10は、例えば
図11に示すコンピュータ40で実現することができる。コンピュータ40は、CPU(Central Processing Unit)41と、一時記憶領域としてのメモリ42と、不揮発性の記憶部43とを備える。また、コンピュータ40は、入力部、表示部等の入出力装置44と、記憶媒体49に対するデータの読み込み及び書き込みを制御するR/W(Read/Write)部45とを備える。また、コンピュータ40は、インターネット等のネットワークに接続される通信I/F(Interface)46を備える。CPU41、メモリ42、記憶部43、入出力装置44、R/W部45、及び通信I/F46は、バス47を介して互いに接続される。
【0032】
記憶部43は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部43には、コンピュータ40を、機械学習装置10として機能させるための機械学習プログラム50が記憶される。機械学習プログラム50は、グラフ生成プロセス52と、埋め込みベクトル計算プロセス54と、訓練データ生成プロセス56と、機械学習プロセス58とを有する。
【0033】
CPU41は、機械学習プログラム50を記憶部43から読み出してメモリ42に展開し、機械学習プログラム50が有するプロセスを順次実行する。CPU41は、グラフ生成プロセス52を実行することで、
図1に示すグラフ生成部12として動作する。また、CPU41は、埋め込みベクトル計算プロセス54を実行することで、
図1に示す埋め込みベクトル計算部14として動作する。また、CPU41は、訓練データ生成プロセス56を実行することで、
図1に示す訓練データ生成部16として動作する。また、CPU41は、機械学習プロセス58を実行することで、
図1に示す機械学習部18として動作する。これにより、機械学習プログラム50を実行したコンピュータ40が、機械学習装置10として機能することになる。なお、プログラムを実行するCPU41はハードウェアである。
【0034】
推定装置30は、例えば
図12に示すコンピュータ60で実現することができる。コンピュータ60は、CPU61と、メモリ62と、記憶部63と、入出力装置64と、R/W部65と、通信I/F66とを備える。CPU61、メモリ62、記憶部63、入出力装置64、R/W部65、及び通信I/F66は、バス67を介して互いに接続される。
【0035】
記憶部63は、HDD、SSD、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部63には、コンピュータ60を、推定装置30として機能させるための推定プログラム70が記憶される。推定プログラム70は、グラフ生成プロセス72と、埋め込みベクトル計算プロセス74と、推定プロセス76とを有する。また、記憶部63は、機械学習済みの機械学習モデル20を構成する情報が記憶される情報記憶領域80を有する。
【0036】
CPU61は、推定プログラム70を記憶部63から読み出してメモリ62に展開し、推定プログラム70が有するプロセスを順次実行する。CPU61は、グラフ生成プロセス72を実行することで、
図9に示すグラフ生成部32として動作する。また、CPU61は、埋め込みベクトル計算プロセス74を実行することで、
図9に示す埋め込みベクトル計算部34として動作する。また、CPU61は、推定プロセス76を実行することで、
図9に示す推定部36として動作する。また、CPU61は、情報記憶領域80から情報を読み出して、機械学習モデル20をメモリ62に展開する。これにより、推定プログラム70を実行したコンピュータ60が、推定装置30として機能することになる。なお、プログラムを実行するCPU61はハードウェアである。
【0037】
なお、機械学習プログラム50及び推定プログラム70の各々により実現される機能は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能である。
【0038】
次に、第1実施形態に係る機械学習システムの作用について説明する。まず、機械学習装置10に機械学習用事例データ及びオントロジーが入力されると、機械学習装置10が、
図13に示す機械学習処理を実行する。そして、機械学習処理の実行により機械学習された機械学習モデル20が機械学習装置10から出力される。推定装置30が、機械学習装置10から出力された機械学習モデル20を取得し、所定の記憶領域に記憶した状態で、推定装置30に推定対象事例データ及びオントロジーが入力されると、推定装置30が、
図14に示す推定処理を実行する。なお、機械学習処理は、開示の技術の機械学習方法の一例であり、推定処理は、開示の技術の推定方法の一例である。以下、機械学習処理及び推定処理の各々について詳述する。
【0039】
まず、
図13に示す機械学習処理について説明する。ステップS10で、グラフ生成部12が、機械学習用事例データの各項目の各値をノードとして生成する。そして、グラフ生成部12が、各「ID」のノードから、そのIDが示す患者についての属性、医薬品、及び疾病の各々を示すノードへエッジを接続することにより、事例グラフデータを生成する。
【0040】
次に、ステップS12で、グラフ生成部12が、事例グラフデータに含まれる「医薬品」及び「疾病」を示すノードと一致するノードを、医薬品オントロジー及び疾病オントロジーから検索し、検索したノード及びそのノードに接続する部分を抽出する。そして、グラフ生成部12が、オントロジーから抽出した部分を、一致する「医薬品」又は「疾病」を示すノードを重ね合わせるように、事例グラフデータに接続し、全体グラフデータを生成する。
【0041】
次に、ステップS14で、埋め込みベクトル計算部14が、全体グラフデータに含まれるノード及びエッジの各々を、初期値のベクトルとしてn次元のベクトル空間に配置する。そして、埋め込みベクトル計算部14が、ノードの接続関係を表現するように、各ベクトルの配置を最適化することにより、全体グラフデータに含まれる各ノードの埋め込みベクトルを計算する。したがって、事例グラフデータの各ノードの埋め込みベクトルと、オントロジーの各ノードの埋め込みベクトルとが計算される。
【0042】
次に、ステップS16で、訓練データ生成部16が、全体グラフデータに含まれる「ID」のノード毎に、そのノードに接続する各ノードについて計算された埋め込みベクトルのベクトル値を連結して素性を生成する。そして、訓練データ生成部16が、副作用の情報に基づいて、対象の副作用についての正解ラベルを生成し、素性に付加して訓練データを生成する。
【0043】
次に、ステップS18で、機械学習部18が、上記ステップS16で生成された訓練データを用いて、上述した損失関数の値LOSSを最小化するように、機械学習モデル20のパラメータを更新する。機械学習部18は、損失関数の値LOSSが最小化したと判断すると、機械学習を終了し、ネットワーク構成の情報、及び機械学習が終了した時点でのパラメータの値を含む機械学習モデル20を出力し、機械学習処理は終了する。
【0044】
次に、
図14に示す推定処理について説明する。ステップS20で、グラフ生成部32が、推定対象事例データから事例グラフデータを生成する。次に、ステップS22で、グラフ生成部32が、事例グラフデータにオントロジーを接続し、全体グラフデータを生成する。次に、ステップS24で、埋め込みベクトル計算部34が、全体グラフデータから、事例グラフデータ及びオントロジーの各ノードの埋め込みベクトルを計算する。次に、ステップS26で、推定部36が、全体グラフデータに含まれる「ID」のノード毎に、そのノードに接続する各ノードについて計算された埋め込みベクトルのベクトル値を連結して素性を生成する。次に、ステップS28で、推定部36が、上記ステップS26で生成した素性を機械学習モデル20に入力することにより、推定対象事例データについて、対象の副作用が発生するか否かを示す推定結果を出力し、推定処理は終了する。
【0045】
以上説明したように、第1実施形態に係る機械学習システムによれば、機械学習装置が、事例グラフデータの埋め込みベクトルと、オントロジーの埋め込みベクトルと、正解ラベルとを含む訓練データを入力する。そして、機械学習装置が、損失関数に基づいて、機械学習モデルの機械学習を実行する。損失関数の値は、入力された訓練データのうち事例グラフデータの埋め込みベクトルのみで計算される活性化関数の値と、オントロジーの埋め込みベクトルのみで計算される活性化関数の値とを結合して得られた値と正解ラベルとによって計算される。これにより、第1実施形態に係る機械学習装置は、事例データの情報とオントロジーの情報とがグループ化されて伝達される機械学習モデルを訓練することができる。したがって、第1実施形態に係る機械学習装置は、オントロジーの情報を適切に反映させて、事象の推定精度を向上させるように機械学習モデルを訓練することができる。
【0046】
また、第1実施形態に係る機械学習システムによれば、推定装置が、上記のように機械学習された機械学習モデルと、推定対象事例グラフデータ及びオントロジーから計算した埋め込みベクトルとを用いて、推定対象事例に対する事象を推定する。これにより、事象の推定精度が向上する。
【0047】
<第2実施形態>
次に、第2実施形態について説明する。なお、第2実施形態に係る機械学習システムにおいて、第1実施形態に係る機械学習システムと同様の部分については、同一符号を付して詳細な説明を省略する。
【0048】
第2実施形態に係る機械学習システムは、機械学習装置210と、推定装置230とを含む。まず、機械学習装置210について説明する。機械学習装置210は、機能的には、
図1に示すように、グラフ生成部12と、埋め込みベクトル計算部214と、訓練データ生成部16と、機械学習部18とを含む。
【0049】
埋め込みベクトル計算部214は、まず、事例グラフデータにオントロジーを接続させた全体グラフデータにおいて、オントロジーのノードについて埋め込みベクトルを計算する。例えば、埋め込みベクトル計算部214は、
図15に示すように、医薬品オントロジーのノード(
図15中の実線で示すノード)の埋め込みベクトルを計算する。また、埋め込みベクトル計算部214は、
図16に示すように、疾病オントロジーのノード(
図16中の実線で示すノード)の埋め込みベクトルを計算する。そして、埋め込みベクトル計算部214は、
図17に示すように、オントロジーのノードの埋め込みベクトルを初期値として(
図17中の破線部分)、事例グラフデータのノード(
図16中の実線で示すノード)の埋め込みベクトルを計算する。
【0050】
オントロジーは、背景知識を体系化したものであるため、オントロジーの埋め込みベクトルは、ノード間の接続が持つ意味が精度良く反映されたものとなる。埋め込みベクトルは、初期値が適切に与えられるほど、精度良く計算することができるため、オントロジーの埋め込みベクトルを初期値として用いることで、事例グラフデータの埋め込みベクトルを精度良く計算することができる。
【0051】
推定装置230は、機能的には、
図9に示すように、グラフ生成部32と、埋め込みベクトル計算部234と、推定部36とを含む。また、推定装置230の所定の記憶領域には、機械学習装置210から出力された機械学習モデル20が記憶される。埋め込みベクトル計算部234は、機械学習装置210の埋め込みベクトル計算部214と同様に、まず、オントロジーの埋め込みベクトルを計算し、これを初期値として、事例グラフデータの埋め込みベクトルを計算する。
【0052】
機械学習装置210は、例えば
図11に示すコンピュータ40で実現することができる。コンピュータ40の記憶部43には、コンピュータ40を、機械学習装置210として機能させるための機械学習プログラム250が記憶される。機械学習プログラム250は、グラフ生成プロセス52と、埋め込みベクトル計算プロセス254と、訓練データ生成プロセス56と、機械学習プロセス58とを有する。
【0053】
CPU41は、機械学習プログラム250を記憶部43から読み出してメモリ42に展開し、機械学習プログラム250が有するプロセスを順次実行する。CPU41は、埋め込みベクトル計算プロセス254を実行することで、
図1に示す埋め込みベクトル計算部214として動作する。他のプロセスについては、第1実施形態に係る機械学習プログラム50と同様である。これにより、機械学習プログラム250を実行したコンピュータ40が、機械学習装置210として機能することになる。
【0054】
推定装置230は、例えば
図12に示すコンピュータ60で実現することができる。コンピュータ60の記憶部63には、コンピュータ60を、推定装置230として機能させるための推定プログラム270が記憶される。推定プログラム270は、グラフ生成プロセス72と、埋め込みベクトル計算プロセス274と、推定プロセス76とを有する。また、記憶部63は、機械学習済みの機械学習モデル20を構成する情報が記憶される情報記憶領域80を有する。
【0055】
CPU61は、推定プログラム270を記憶部63から読み出してメモリ62に展開し、推定プログラム270が有するプロセスを順次実行する。CPU61は、埋め込みベクトル計算プロセス274を実行することで、
図9に示す埋め込みベクトル計算部234として動作する。他のプロセスについては、第1実施形態に係る推定プログラム70と同様である。これにより、推定プログラム270を実行したコンピュータ60が、推定装置230として機能することになる。
【0056】
なお、機械学習プログラム250及び推定プログラム270の各々により実現される機能は、例えば半導体集積回路、より詳しくはASIC等で実現することも可能である。
【0057】
第2実施形態に係る機械学習システムの作用については、
図13に示す機械学習処理のステップS14、及び
図14に示す推定処理のステップS24における埋め込みベクトルの計算手順が上記の通り第1実施形態と異なるだけであるため、説明を省略する。
【0058】
以上説明したように、第2実施形態における機械学習システムによれば、機械学習装置が、まず、オントロジーの埋め込みベクトルを計算し、これを初期値として、事例グラフデータの埋め込みベクトルを計算する。これにより、埋め込みベクトルを精度良く計算することができるため、事象の推定精度を向上させるように機械学習モデルを訓練することができる。また、第2実施形態に係る推定装置においては、事象の推定精度が向上する。
【0059】
なお、上記第2実施形態では、オントロジーに含まれるノードの埋め込みベクトルを全て素性として用いる場合について説明したが、これに限定されない。第2実施形態と同様の手順により埋め込みベクトルを計算した上で、医薬品の素性及び疾病の素性は、事例グラフデータとオントロジーとで共通するノードの埋め込みベクトルから生成するようにしてもよい。すなわち、
図17の例では、実線で示す事例グラフデータのノードの埋め込みグラフから事例データの素性が生成され、そのうちの破線で囲まれたノードの埋め込みグラフから医薬品の素性及び疾病の素性が生成されるようにしてもよい。この場合でも、オントロジーの埋め込みベクトルを初期値として事例グラフデータの埋め込みベクトルが計算されているため、オントロジーの情報は反映された素性となっている。さらに、素性の情報量を削減することができるため、機械学習処理及び推定処理の負荷が軽減される。また、この場合、事例グラフデータにオントロジーを接続することなく計算したオントロジーの埋め込みベクトルを事例グラフデータの埋め込みベクトルの初期値として与えてもよい。この場合のオントロジーの埋め込みベクトルは、事例グラフデータの医薬品及び疾病を示すノードと一致するノードを含むオントロジーの部分を特定して、特定したオントロジーの部分について計算すればよい。
【0060】
また、上記各実施形態では、患者への医薬品の投与に対する副作用を推定する場合に開示の技術を適用する例で説明したが、開示の技術は他の事象を推定する例にも適用可能である。例えば、複数の化学物質を調合する場合に発生する事象を推定する場合等にも適用することができる。この場合、事例データに、調合する化学物質、調合の条件(温度、触媒等)等の情報を含め、物質Aと物質Bとは融点が同一である等、性質が類似する化学物質の情報等をオントロジーとして用い、調合の際に発生した事象を正解ラベルとすればよい。
【0061】
また、上記各実施形態では、2種類のオントロジーを用いる場合について説明したが、用いるオントロジーは1種類であってもよいし、3種類以上であってもよい。この場合、用いるオントロジーの種類毎に、機械学習モデルの隠れ層を対応させて設ければよい。
【0062】
また、上記各実施形態では、機械学習装置と推定装置とを別々のコンピュータで構成する場合について説明したが、機械学習装置と推定装置とを1つのコンピュータで構成してもよい。
【0063】
また、上記各実施形態では、機械学習プログラム及び推定プログラムが記憶部に予め記憶(インストール)されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、CD-ROM、DVD-ROM、USBメモリ等の記憶媒体に記憶された形態で提供することも可能である。
【符号の説明】
【0064】
10、210 機械学習装置
12 グラフ生成部
14、214 埋め込みベクトル計算部
16 訓練データ生成部
18 機械学習部
20 機械学習モデル
30、230 推定装置
32 グラフ生成部
34、234 埋め込みベクトル計算部
36 推定部
40、60 コンピュータ
41、61 CPU
42、62 メモリ
43、63 記憶部
49 記憶媒体
50、250 機械学習プログラム
70、270 推定プログラム