(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024135440
(43)【公開日】2024-10-04
(54)【発明の名称】機械学習プログラム、機械学習方法、及び機械学習装置
(51)【国際特許分類】
G06N 3/09 20230101AFI20240927BHJP
G06N 5/02 20230101ALI20240927BHJP
【FI】
G06N3/09
G06N5/02
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023046120
(22)【出願日】2023-03-23
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100147164
【弁理士】
【氏名又は名称】向山 直樹
(72)【発明者】
【氏名】ユニ スサンティ
(57)【要約】
【課題】単語間の因果関係の特徴を因果関係抽出モデルに入力し、機械学習を実行する。
【解決手段】学習装置10は、訓練データ135のテキストに含まれる単語それぞれに対応して、単語埋め込みに基づいて単語とベクトルとが対応付けられた第1の対応情報と、原因を示す第1単語と第1単語が示す原因に基づいた結果を示す第2単語との単語ペアの関係性に基づいて単語とベクトルとが対応付けられた第2の対応情報と、に基づいて生成された第3の対応情報を取得する。学習装置10は、取得した第3の対応情報を用いて、自然言語処理を行うニューラルネットワークの訓練を実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1のテキストに含まれる単語それぞれに対応して、単語埋め込みに基づいて単語とベクトルとが対応付けられた第1の対応情報と、原因を示す第1単語と前記原因に基づいた結果を示す第2単語との単語ペアの関係性に基づいて単語とベクトルとが対応付けられた第2の対応情報と、に基づいて生成された第3の対応情報を取得し、
取得した前記第3の対応情報を用いて、自然言語処理を行うニューラルネットワークの訓練を実行する
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【請求項2】
前記第3の対応情報は、各単語に対して、前記第1の対応情報において対応付けられたベクトルと前記第2の対応情報において対応付けられたベクトルとを組み合わせた情報を対応付けた対応情報である
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項3】
第2のテキストに含まれる因果関係を示すキーワードを含む文を、前記キーワードに基づいて第1の部分と第2の部分に分割し、
前記第1単語は、前記第1の部分から抽出された単語であり、
前記第2単語は、前記第2の部分から抽出された単語であり、
前記第2の対応情報は、前記単語ペアと、前記単語ペアに含まれる単語間の因果関係の強さと、に基づいて単語とベクトルとが対応付けられた対応情報である
ことを特徴とする請求項1又は2に記載の機械学習プログラム。
【請求項4】
前記因果関係の強さは、前記単語ペアが前記第2のテキストにおいて前記キーワードと共に出現する頻度に基づいて算出される
ことを特徴とする請求項3に記載の機械学習プログラム。
【請求項5】
前記単語ペアと前記単語ペアのそれぞれに対応する前記因果関係の強さとに基づいてナレッジグラフを生成し、
前記第2の対応情報は、前記ナレッジグラフを用いたグラフ埋め込みによって生成される対応情報である
ことを特徴とする請求項4に記載の機械学習プログラム。
【請求項6】
前記第2の対応情報は、前記単語ペアと前記単語ペアのそれぞれに対応する前記因果関係の強さとに基づいて生成された隣接行列に基づいて生成された対応情報である
ことを特徴とする請求項4に記載の機械学習プログラム。
【請求項7】
第1のテキストに含まれる単語それぞれに対応して、単語埋め込みに基づいて単語とベクトルとが対応付けられた第1の対応情報と、原因を示す第1単語と前記原因に基づいた結果を示す第2単語との単語ペアの関係性に基づいて単語とベクトルとが対応付けられた第2の対応情報と、に基づいて生成された第3の対応情報を取得し、
取得した前記ベクトルを用いて、自然言語処理を行うニューラルネットワークの訓練を実行する
処理をコンピュータで実行することを特徴とする機械学習方法。
【請求項8】
第1のテキストに含まれる単語それぞれに対応して、単語埋め込みに基づいて単語とベクトルとが対応付けられた第1の対応情報と、原因を示す第1単語と前記原因に基づいた結果を示す第2単語との単語ペアの関係性に基づいて単語とベクトルとが対応付けられた第2の対応情報と、に基づいて生成された第3の対応情報を取得し、
取得した前記ベクトルを用いて、自然言語処理を行うニューラルネットワークの訓練を実行する
制御部を有することを特徴とする機械学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習に関するものである。
【背景技術】
【0002】
自然言語処理の分野において、テキストから因果関係の有無を予測する技術(因果関係抽出:Causal Relation Extraction)がある。因果関係抽出の手法の一例として、テキストに含まれる2つの単語(以下、「単語ペア」と記載する場合がある)の単語間の因果関係の有無を予測する技術が提案されている。因果関係を有する単語ペアとは、例えば一方の単語が示す事物が他方の単語が示す事物の原因となり、他方の単語が示す事物が一方の単語が示す事物に基づいた結果となる関係にある単語のペアである。因果関係を有する単語ペアは、例えば、「喫煙が原因で肺がんになる」というテキストの「喫煙」と「肺がん」である。因果関係抽出は、例えば創薬や材料開発の分野において、膨大なデータの中から重要な因果関係を発見するのに用いられる。
【0003】
因果関係抽出の従来技術として、機械学習により因果関係抽出の機械学習モデル(以下、「因果関係抽出モデル」と記載する場合がある)を生成する技術が提案されている。例えば、因果関係抽出モデルは、ラベルを付したテキストを訓練データとして用いる教師あり学習により生成される。一例として、ラベルは、テキストに含まれる単語間の因果関係の有無に基づいて付される。訓練データのテキストは、テキストに含まれる単語ごとに分散表現に変換されたのち因果関係抽出モデルに入力され、因果関係抽出モデルの出力とラベルとの誤差が小さくなるように訓練が実行される。
【0004】
分散表現とは、単語をベクトルで表現した際のベクトルを示す。分散表現は単語埋め込みにより得られる。単語埋め込みとは、単語の持つ意味を文脈や文章中の単語の前後関係から学習し、単語をベクトルで表現する技術である。単語埋め込みはone-hotエンコーディングを通じて得られるベクトルと比較して低次元のベクトルで単語を表現することができ、テキストをニューラルネットワークに入力する際に用いられる技術の一つである。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2015-200961号公報
【特許文献2】特開2018-060364号公報
【特許文献3】米国特許出願公開第2021/0117509号明細書
【特許文献4】米国特許出願公開第2019/0197104号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
単語埋め込みは単語の様々な特徴を取り込んで単語をベクトル空間上に位置付け、単語間の類似性や関係性を分散表現(以下、「ベクトル」や「ベクトル表現」と記載する場合がある)で表す技術である。しかしながら、単語埋め込みは単語間の因果関係の特徴を分散表現に表していない。
【0007】
従来技術では、因果関係抽出モデルに入力される分散表現に因果関係が表されていないため、因果関係抽出モデルはテキストの文脈や単語の前後関係に依存して訓練される。そのため従来技術では、予測対象のテキストの単語の並びによっては、因果関係が抽出されない場合があった。
【0008】
一つの側面では、本発明は、単語間の因果関係の特徴を因果関係抽出モデルに入力し、機械学習を実行することが可能な機械学習プログラム、機械学習方法、機械学習装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
一つの態様では、第1のテキストに含まれる単語それぞれに対応して、単語埋め込みに基づいて単語とベクトルとが対応付けられた第1の対応情報と、原因を示す第1単語と第1単語が示す原因に基づいた結果を示す第2単語との単語ペアの関係性に基づいて単語とベクトルとが対応付けられた第2の対応情報と、に基づいて生成された第3の対応情報を取得し、取得した第3の対応情報を用いて、自然言語処理を行うニューラルネットワークの訓練を実行する、処理をコンピュータに実行させる機械学習プログラムが提供される。
【0010】
一つの態様では、上記機械学習プログラムに基づく処理と同様の処理をコンピュータが実行する機械学習方法が提供される。
【0011】
一つの態様では、上記機械学習プログラムに基づく処理と同様の処理を実行する機械学習装置が提供される。
【発明の効果】
【0012】
一つの側面では、単語間の因果関係の特徴を因果関係抽出モデルに入力し、機械学習を実行することができる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、実施例1に係る学習装置及び推論装置を説明する図である。
【
図2】
図2は、因果関係を表すナレッジグラフの例を説明する図である。
【
図3】
図3は、実施例1に係る学習装置の機能構成の例を示す機能ブロック図である。
【
図4】
図4は、キーワードDBに記憶される情報の例を説明する図である。
【
図5】
図5は、マーキングを施す処理の例を説明する図である。
【
図6】
図6は、キーワードを含む文を抽出する処理の例を説明する図である。
【
図7】
図7は、KG生成用単語ペアを生成する処理の例を説明する図である。
【
図8】
図8は、因果関係スコアの算出方法の例を説明する図である。
【
図9】
図9は、ベクトルを組み合わせる処理の例(スタッキング)を説明する図である。
【
図10】
図10は、実施例1に係る推論装置の機能構成の例を示す機能ブロック図である。
【
図11】
図11は、実施例1に係るグラフ埋め込みの処理の流れを示すフローチャートである。
【
図12】
図12は、実施例1に係る学習処理の流れを示すフローチャートである。
【
図13】
図13は、実施例1に係る推論処理の流れを示すフローチャートである。
【
図14】
図14は、実施例1に係る学習装置のハードウェア構成例を説明する図である。
【
図15】
図15は、実施例1に係る推論装置のハードウェア構成例を説明する図である。
【発明を実施するための形態】
【0014】
以下、図面を参照しながら本発明に係る機械学習プログラム、機械学習方法、機械学習装置の実施例を詳細に説明する。なお、これらの実施例は本発明を実施するための一例に過ぎず、本発明を限定するものではない。また、以下の実施例では英語のテキストや文書を対象とした実施の形態が説明されているが、対象となる言語は英語に限られない。実施例は、例えば、日本語のテキストや文書に適用されてもよい。
【実施例0015】
[学習装置10及び推論装置20の説明]
図1は、実施例1に係る学習装置及び推論装置を説明する図である。
図1を参照し、実施例1に係る学習装置10及び推論装置20を説明する。
【0016】
学習装置10は、因果関係抽出モデルの訓練を実行する機械学習装置である。因果関係抽出モデルは、テキストに含まれる単語ペアの因果関係の有無を予測する機械学習モデルである。本実施例では、ラベル付けされたテキストを訓練データ135に用いる教師あり学習が実行される。本実施例では、機械学習モデルはニューラルネットワーク(Neural Network)である。
【0017】
学習装置10は、訓練データ135のテキストに含まれる各単語を分散表現のベクトルに変換する。学習装置10は、単語とベクトルとが対応付けられた対応情報を用いて各単語をベクトルに変換する。単語とベクトルとが対応付けられた対応情報は、一例として単語埋め込み(Word Embedding)により得られる。学習装置10は、単語間の因果関係の特徴に基づいて単語とベクトルとが対応付けられた対応情報を用いて、各単語をベクトルに変換する。単語間の因果関係の特徴に基づいて単語とベクトルとが対応付けられた対応情報は、一例としてグラフ埋め込み(Graph Embedding)により得られる。このように学習装置10は、単語埋め込み及びグラフ埋め込みに基づいて各単語をベクトルに変換する。学習装置10は、単語埋め込み及びグラフ埋め込みに基づいて取得したベクトルを統合したデータ形式で因果関係抽出モデルに入力し、因果関係抽出モデルの訓練を実行する。グラフ埋め込みには、単語間の因果関係を表したナレッジグラフ(Knowledge Graph、KG)が用いられる。学習装置10は、テキスト131から因果関係を表すナレッジグラフを生成する。
【0018】
推論装置20は、学習装置10で生成された訓練済みの因果関係抽出モデルを使用し、予測対象データ235のテキストに含まれる単語ペアの因果関係の有無を予測する推論を実行する。推論装置20は、予測対象データ235に含まれる各単語を、単語埋め込み及びグラフ埋め込みに基づいてベクトルに変換する。推論装置20は、単語埋め込み及びグラフ埋め込みに基づいて取得したベクトルを統合したデータ形式にし、訓練済みの因果関係抽出モデルに入力し、推論を実行する。
【0019】
単語埋め込みは、単語の様々な特徴をベクトル空間に取り込み、単語をベクトルで表現する手法である。単語埋め込みは、テキストを訓練データとしたタスクの機械学習の過程で、文脈や単語の前後関係から単語の持つ意味などの特徴をベクトルに反映する。そのため単語埋め込みは、結果として単語間の類似性や関係性をベクトルで表現することができるものの、単語間の因果関係の情報や特徴はベクトルに反映していない。
【0020】
グラフ埋め込みは、グラフデータに基づいて単語をベクトルで表現する手法である。グラフデータはグラフ構造で表されたデータであって、例えば様々な知識(ナレッジ)をグラフ構造で表現したものがナレッジグラフである。グラフ構造とは、ノードと、ノード間を接続するエッジとを含む抽象データ型である。知識を表現するナレッジグラフでは、ノードがエンティティ(実体)を表し、エッジはエンティティ間の関係性を表す。単語間の因果関係を表すナレッジグラフでは、ノードが単語に相当し、エッジが単語間の因果関係を表す。グラフ埋め込みは、単語間の因果関係を表したナレッジグラフをベクトル空間に落とし込むことにより、単語間の因果関係に関する関連性をベクトルに反映する。
【0021】
単語間の因果関係を表すナレッジグラフ(以下、「因果関係を表すナレッジグラフ」や「ナレッジグラフ」と記載する場合がある)の一例を、
図2を参照して説明する。
図2は、因果関係を表すナレッジグラフの例を説明する図である。単語がノードに相当し、因果関係のある単語がエッジで連結される。ナレッジグラフ30では、ノード31の単語「mutation」とノード32の単語「Parkinson Disease」とがエッジ33で連結され、単語「mutation」と単語「Parkinson Disease」との間に因果関係があることが示されている。また、エッジの重みはエッジの両端にある単語(ノード)間の因果関係の強さを示す。因果関係の強さとは、単語間に因果関係があるかを示す重みであり、値が大きいほど因果関係が強い、つまり単語間に因果関係がある確率が高いことを示す。ナレッジグラフ30では、数値34で表された「0.16」がエッジの重みであり、単語「mutation」と単語「Parkinson Disease」との間の因果関係の強さが示されている。ある単語が複数の単語と因果関係を有する場合、ある単語は複数の単語とエッジで連結されてもよい。因果関係を表すナレッジグラフ30は、エッジを表す線に矢印を用いる有向グラフでもよい。
【0022】
学習装置10は、単語間の因果関係の特徴を含んだベクトルを因果関係抽出モデルに入力し、因果関係抽出モデルを訓練することができる。これにより、学習装置10は、因果関係抽出モデルの予測精度を向上させることができる。
【0023】
[機能構成]
図3を参照し、実施例1に係る学習装置の機能構成を説明する。
図3は、実施例1に係る学習装置の機能構成の例を示す機能ブロック図である。学習装置10は、通信部11と、制御部12と、記憶部13とを含む。
【0024】
通信部11は外部装置との通信を制御する。通信部11は、例えばネットワークインターフェースカード(Network Interface Card、NIC)などの通信インターフェースによって実現される。通信部11を介して、例えばテキスト131やキーワードデータベース(キーワードDB)132、単語埋め込み対応情報133、グラフ埋め込み対応情報134、訓練データ135、因果関係抽出モデル136が入出力されてもよい。
【0025】
記憶部13は制御部12で実行される各種プログラムや各種プログラムの実行に用いられるデータを記憶する。記憶部13は、例えばRadom Access Memory(RAM)などの主記憶装置や、Hard Disk Drive(HDD)などの補助記憶装置により実現される。記憶部13で記憶されるデータは、例えば、テキスト131、キーワードDB132、単語埋め込み対応情報133、グラフ埋め込み対応情報134、訓練データ135、因果関係抽出モデル136である。
【0026】
テキスト131は、グラフ埋め込み部121が因果関係を表すナレッジグラフを生成する際に使用されるデータである。テキスト131は、例えば、学術論文や専門分野の文書に含まれるテキストや、web上にアーカイブされたテキストである。テキスト131は複数の文書や媒体から生成されてもよい。テキスト131は複数のテキストを含んでもよい。テキスト131に含まれるテキストは、複数の文を含んでもよい。
【0027】
キーワードDB132は、グラフ埋め込み部121が因果関係を表すナレッジグラフを生成する際に使用する因果関係を示すキーワード(以下、「キーワード」と記載する場合がある)が記憶されたデータベースである。因果関係を示すキーワードとは、その単語の近くにある名詞のペアが因果関係を有すると推測される単語である。
図4はキーワードDBに記憶される情報の例を説明する図である。一例として、キーワードDB132は、因果関係を示すキーワードとして「cause」や「causes」、「as a result」などを記憶する。因果関係を示すキーワードは、動詞の場合、時制などによる変化形を含んでもよい。因果関係を示すキーワードは、複数の単語を含む語句であってもよい。因果関係を示すキーワードは、人手によって選定されキーワードDB132に記憶されてもよい。
【0028】
単語埋め込み対応情報133は、単語とベクトルとが対応づけられた情報であって、一例として単語埋め込みにより得られる。単語埋め込み対応情報133は、学習処理部122が訓練データ135に含まれる単語をベクトルに変換する際に用いられる。単語埋め込みには、例えばn-gram言語モデルを用いた機械学習により分散表現を取得する手法が用いられてもよい。単語埋め込みには、例えば事前学習型の言語モデルであるWord2VecやBERTが用いられてもよい。単語埋め込み対応情報133は、第1の対応情報の一例である。
【0029】
グラフ埋め込み対応情報134は、単語間の因果関係の特徴に基づいて単語とベクトルとが対応づけられた情報であって、一例としてグラフ埋め込みにより得られる。グラフ埋め込み対応情報134は、学習処理部122が訓練データ135に含まれる単語をベクトルに変換する際に用いられる。グラフ埋め込み対応情報134は、グラフ埋め込み部121で生成されてもよい。グラフ埋め込み対応情報134は、第2の対応情報の一例である。
【0030】
訓練データ135は、因果関係抽出モデル136の訓練に使用されるデータである。訓練データ135は、例えば、学術論文や専門分野の文書に含まれるテキストや、web上にアーカイブされたテキストから生成されてもよい。訓練データ135は、複数のテキストを含んでもよい。訓練データ135に含まれるテキストは、複数の文を含んでもよい。訓練データ135に含まれるテキストは、テキストごとにラベルが付されている。ラベルは各テキストに含まれる単語ペアの因果関係の有無に基づいて付される。一例として、ラベルは「因果関係あり:1、因果関係なし:0」と定義されてもよい。
【0031】
各テキストに付されるラベルの根拠となる単語ペアはマーキングが施される。一例として、
図5を参照しながらマーキングを施す処理を説明する。
図5は、マーキングを施す処理の例を説明する図である。例えばテキストに、因果関係を有する「smoking」と「lung cancer」との単語ペアが含まれているとする。この場合、「smoking」と「lung cancer」とは因果関係を有するためラベルは「1」となり、両者の単語は「$」と「@」との記号によってマーキングされる。記号は単語の前後に付与される。例えば、「smoking」はマーキングを施されることで「$smoking@」となり、「lung cancer」はマーキングを施されることで「$lung cancer@」となる。マーキングに用いられる記号は任意で選定されてよいが、単語の文字列と一体化し単語の意味に影響を及ぼすような記号は避けられたほうが好ましい。
【0032】
このように、訓練データ135に含まれるテキストの各々はラベルが付され、テキストに含まれるラベルの根拠となる単語ペアはマーキングが付されている。テキスト131に含まれるテキストが訓練データ135に使用されてもよい。一つのテキスト内に複数の単語ペアが含まれる場合は、単語ペアの数だけテキストが複製され、各単語ペアを含むテキストごとにラベル及びマーキングが付されてもよい。ラベル及びマーキングはテキストに含まれる文ごとに付されてもよい。一つの文内に複数の単語ペアが含まれる場合は、単語ペアの数だけ文が複製され、各単語ペアを含む文ごとにラベル及びマーキングが付されてもよい。
【0033】
ラベル及びマーキングはユーザからの入力に応じて学習装置10によって付されてもよい。テキストにラベル及びマーキングを付する処理は、学習装置10以外の外部装置によって行われてもよい。学習装置10は、ラベル及びマーキングが付された訓練データ135を外部装置から通信部11を介して取得してもよい。訓練データ135は、例えばテキストに因果関係の情報が含まれるか否かという観点でラベルが付される場合は、マーキングが付されなくてもよい。
【0034】
因果関係抽出モデル136は、学習処理部122により生成された機械学習モデルである。因果関係抽出モデル136は、ニューラルネットワークであり、一例として、Recurrent Neural Network(RNN)やConvolutional Neural Network(CNN)などの順伝播型ニューラルネットワーク(FNN、Feedforward Neural Network)であってもよい。因果関係抽出モデル136は、機械学習により得られた特徴量などの各種パラメータを含む。
【0035】
次に制御部12を説明する。制御部12は学習装置10の処理全体を制御する。制御部12は、例えばCentral Processing Unit(CPU)やGraphics Processing Unit(GPU)、Digital Signal Processor(DSP)などのプロセッサが、記憶装置に記憶されているプログラムを読み出し、RAMなどの主記憶装置に展開し実行することにより実現される。制御部12は、Application Specific Integrated Circuit(ASIC)やField Programmable Gate Array(FPGA)などの集積回路を含んで実現されてもよい。制御部12は、グラフ埋め込み部121と学習処理部122とを含む。
【0036】
グラフ埋め込み部121は、テキスト131を用いて因果関係を表すナレッジグラフを生成し、グラフ埋め込み対応情報134を生成する。因果関係を表すナレッジグラフは、テキスト131に含まれる単語間の因果関係の情報をグラフ構造で表現したものである。因果関係を表すナレッジグラフを生成する処理の一例を
図6~
図8を参照して説明する。
【0037】
図6は、キーワードを含む文を抽出する処理の例を説明する図である。
図6に示すように、グラフ埋め込み部121は、テキスト131を取得すると、テキスト131から因果関係を示すキーワードを含む文40を抽出する。因果関係を示すキーワードは、例えば、テキスト131に含まれるキーワード41「cause」やキーワード42「causes」、キーワード43「As a result」である。グラフ埋め込み部121は、因果関係を示すキーワードをキーワードDB132から取得し、テキスト131に含まれる各テキストと照合することで、因果関係を示すキーワードを含む文40を抽出してもよい。
【0038】
図7は、KG生成用の単語ペア(以下、「KG生成用単語ペア」と記載する場合がある)を生成する処理の例を説明する図である。文50は、
図6で抽出した因果関係を示すキーワードを含む文40に含まれる文の一例である。
図7に示すように、グラフ埋め込み部121は、文50を因果関係を示すキーワードの前後で原因部51と結果部52に分割する。各文において、因果関係を示すキーワードの前方の単語列が原因部、後方の単語列が結果部である。
【0039】
グラフ埋め込み部121は、原因部51と結果部52の単語列から、品詞が名詞の単語(以下、「名詞」と記載する場合がある)を抽出する。一例として、原因名詞53が原因部51から名詞を抽出した結果であり、結果名詞54が結果部52から名詞を抽出した結果である。名詞の抽出には形態素解析が用いられてもよい。
【0040】
グラフ埋め込み部121は、抽出した原因名詞53と結果名詞54とを組み合わせてKG生成用単語ペア55を生成する。一例として、原因部51から「mutation」「UCH-L1」「gene」の3つの名詞が、結果部52から「Parkinson Disease」「human」の2つの名詞が抽出された場合、グラフ埋め込み部121は各名詞をそれぞれ組み合わせて最大で6組のKG生成用単語ペアを生成する。このようにグラフ埋め込み部121は、因果関係を示すキーワードを含む文の各々からKG生成用単語ペアを生成する。グラフ埋め込み部121は、生成したすべてのKG生成用単語ペアをナレッジグラフの生成に用いてもよいし、一部のKG生成用単語ペアのみを用いてもよい。
【0041】
グラフ埋め込み部121は、他の方法でKG生成用単語ペアを生成してもよい。例えば、グラフ埋め込み部121は、因果関係を示すキーワードの前方を結果部、後方を原因部としてもよい。また、グラフ埋め込み部121は、因果関係を示すキーワードの位置に関わらずKG生成用単語ペアを生成してもよい。例えば、テキストが「喫煙は肺がんの原因になる。」の場合、グラフ埋め込み部121は、因果関係を示すキーワード「原因」の前方にある名詞「喫煙」と「肺がん」とを用いてKG生成用単語ペアを作成してもよい。また、テキストが「肺がんの可能性があります。なぜなら喫煙の習慣があるからです。」の場合、因果関係にある単語「肺がん」と「喫煙」とは別々の文に含まれる。このような場合、グラフ埋め込み部121は、テキストに含まれる別々の文からKG生成用単語ペアを作成してもよい。
【0042】
グラフ埋め込み部121は、生成したKG生成用単語ペアの因果関係の強さを示す因果関係スコア(Causal Score)を算出する。一例として、因果関係スコアは式(1)で算出されてもよい。
【0043】
式(1)について説明する。x
i(iは0以上の任意の整数)は原因部に含まれる名詞、y
j(jは0以上の任意の整数)は結果部に含まれる名詞である。freq(x
i、y
i)は、x
iとy
iとを含むKG生成用単語ペアが、
図6及び
図7の手法によって、テキスト131から生成された数を示す。つまりfreq(x
i、y
i)は、x
iとy
iとを含むKG生成用単語ペアが、テキスト131において因果関係を示すキーワードの近くに出現する頻度を示す。
【0044】
一例として、
図8を参照して因果関係スコアの算出方法を説明する。
図8は、因果関係スコアの算出方法の例を説明する図である。一例として、テキスト131はテキスト1乃至4を含む。
図8のテキスト1乃至4には、一例として、キーワードに基づいて各テキストから生成されたKG生成用単語ペアのみが記載されている。例えば、x
iが単語「UCH-L1」、y
iが単語「Parkinson Disease」とする。テキスト131において、「UCH-L1」と「Parkinson Disease」とのKG生成用単語ペアが生成された数が、テキスト1で2、テキスト2で1だった場合、freq(UCH-L1、Parkinson Disease)は3となる。NはKG生成用単語ペアの種類の総数である。同じ単語の組み合わせのKG生成用単語ペアが複数生成された場合、KG生成用単語ペアの種類は1と数える。一例として、
図8ではテキスト1乃至4に12種類のKG生成用単語ペアがあるため、Nは12となる。よって、「UCH-L1」と「Parkinson Disease」とのKG生成用単語ペアの因果関係スコアは「0.25」となる。
【0045】
このように、式(1)に係る因果関係スコアは、KG生成用単語ペアがキーワードと共に現れる出現頻度のパラメータを有し、KG生成用単語ペアごとの因果関係の強さを表す。因果関係の強いKG生成用単語ペアは、キーワードと共にテキスト中に出現する頻度が高いため、因果関係スコアの数値が大きくなる。仮に因果関係の弱いKG生成用単語ペアが生成された場合、因果関係の弱いKG生成用単語ペアはキーワードと共にテキスト中に出現する頻度が少ないため、因果関係スコアの値は小さくなる。よって、式(1)に係る因果関係スコアは、KG生成用単語ペアそれぞれの因果関係の強さを数値に反映する。
【0046】
グラフ埋め込み部121は、生成したKG生成用単語ペア55とKG生成用単語ペア55それぞれに対応する因果関係スコア56とに基づいてナレッジグラフ30を生成する。KG生成用単語ペア55の各単語がナレッジグラフ30のノードに相当し、KG生成用単語ペア55の各単語(ノード)はエッジで連結される。因果関係スコア56はナレッジグラフ30のエッジの重みになる。エッジの重みはエッジの両端にある単語(ノード)間の因果関係の強さを示し、値が大きいほど単語間の因果関係が強い、すなわち単語間に因果関係がある可能性が高いことを示す。このようにしてグラフ埋め込み部121は、テキスト131に含まれる単語間の因果関係の特徴を表すナレッジグラフ30を生成する。
【0047】
グラフ埋め込み部121は、生成したナレッジグラフ30を用いて、グラフ埋め込みによりグラフ埋め込み対応情報134を生成する。グラフ埋め込みは、ノードとエッジとを含むグラフ構造をベクトル空間上に埋め込み、ノードの分散表現を得る手法である。グラフ埋め込み部121は、ナレッジグラフ30をグラフ埋め込みによりベクトル空間上に埋め込み、単語の分散表現であるグラフ埋め込み対応情報134を取得する。グラフ埋め込みには、例えばTransEやComplExが用いられてもよい。グラフ埋め込みには、例えばナレッジグラフ30を隣接行列で表し単語の分散表現を取得する手法が用いられてもよい。この場合、エッジの重みが隣接行列の要素になってもよい。このようにしてグラフ埋め込み部121は、単語間の因果関係の特徴に基づいて、単語に対応するベクトルを生成する。
【0048】
なお、グラフ埋め込み部121は、学習装置10以外の外部装置に備えられてもよい。学習装置10は、外部装置で生成されたグラフ埋め込み対応情報134を通信部11などを介して取得し、記憶部13に記憶してもよい。学習装置10は、外部装置で生成した因果関係を表すナレッジグラフを通信部11などを介して取得し、グラフ埋め込み対応情報134を生成してもよい。また、グラフ埋め込み対応情報134を作成する方法は、ナレッジグラフを用いたグラフ埋め込みに限られない。グラフ埋め込み部121は、必ずしもナレッジグラフを生成しなくてもよい。グラフ埋め込み部121は、必ずしもグラフ埋め込みを用いてグラフ埋め込み対応情報134を生成しなくてもよい。例えば、グラフ埋め込み部121は、KG生成用単語ペア55と因果関係スコア56とから生成した隣接行列に基づいて、グラフ埋め込み対応情報134を生成してもよい。
【0049】
次に学習処理部122について説明する。学習処理部122は、因果関係抽出モデル136の訓練を実行する処理部である。
【0050】
学習処理部122は、訓練データ135を取得すると、単語埋め込み対応情報133とグラフ埋め込み対応情報134とに基づいて、訓練データ135に含まれる単語列の各単語をベクトルに変換する。
【0051】
学習処理部122は、単語埋め込み対応情報133から得られたベクトルと、グラフ埋め込み対応情報134から得られたベクトルとを統合する。言い換えると、学習処理部122は、単語埋め込み対応情報133から得られたベクトルと、グラフ埋め込み対応情報134から得られたベクトルとを組み合わせる。組み合わせの手法は、例えば、スタッキング(stacking)やコンカチネーション(concatenation)、サメーション(summation)である。
【0052】
図9を参照しながら、単語をベクトルに変換し、変換したベクトルを組み合わせる処理の一例を説明する。
図9は、ベクトルを組み合わせる処理の例(スタッキング)を説明する図である。例えば学習処理部122に訓練データ135に含まれる訓練データ60「The mutation of $UCH-L1@」の単語列が入力されると、学習処理部122は、単語埋め込み対応情報133及びグラフ埋め込み対応情報134を参照し、各単語をベクトルに変換する。
図9は、一例として、単語埋め込み対応情報133とグラフ埋め込み対応情報134のうち、訓練データ60に含まれる単語に関連する情報が抜粋して記載されている。単語列に含まれる単語に対応するベクトル表現がない場合は、対応するベクトル表現がない当該単語は任意のベクトルに変換されてもよい。例えば単語埋め込み対応情報133及びグラフ埋め込み対応情報134において、対応するベクトル表現がない単語に対して付与されるベクトルが事前に定義されていてもよい。
図9に示すように、例えば学習処理部122は、単語埋め込み対応情報133に、マーキングが付された単語「$UCH-L1@」に対応するベクトル表現がない場合、「$UCH-L1@」を「unknown」として定義されたベクトルv5に変換してもよい。例えば学習処理部122は、グラフ埋め込み対応情報134において「The」と「of」と「$UCH-L1@」とに対応するベクトル情報がない場合、「The」と「of」と「$UCH-L1@」とを「unknown」として定義されたベクトルv8に変換してもよい。単語埋め込み対応情報133及びグラフ埋め込み対応情報134において、マーキングが付された単語に対して付与されるベクトルが定義されてもよい。
【0053】
その後学習処理部122は、単語埋め込み対応情報133及びグラフ埋め込み対応情報134に基づいて生成したベクトルを組み合わせる。学習処理部122は、スタッキングの場合各ベクトルを縦方向に結合し、行列を生成する。例えば「The」の場合、「The」は単語埋め込み対応情報133に基づいてベクトルv1に、グラフ埋め込み対応情報134に基づいてベクトルv8に変換される。学習処理部122は、ベクトルv1とベクトルv8とを縦方向に結合し、行列を生成する。学習処理部122は、単語列に含まれるすべての単語に対してベクトルへの変換と各ベクトルの結合とを行う。このようにして学習処理部122は、因果関係抽出モデル136に入力するデータ61を生成する。
【0054】
学習処理部122は、ベクトルの組み合わせにコンカチネーションを用いる場合、単語埋め込み対応情報133及びグラフ埋め込み対応情報134に基づいて生成した各ベクトルを横方向に組み合わせ、新たなベクトルを生成してもよい。学習処理部122は、ベクトルの組み合わせにサメーションを用いる場合、単語埋め込み対応情報133及びグラフ埋め込み対応情報134に基づいて生成した各ベクトルの総和をベクトルの値に用いることで、新たなベクトルを生成してもよい。
【0055】
学習処理部122は、生成したデータ61を因果関係抽出モデル136に入力し、因果関係抽出モデル136の訓練を実行する。学習処理部122は、因果関係抽出モデル136の出力と訓練データ135に付されたラベルとの誤差を損失関数により算出する。学習処理部122は、算出した誤差が小さくなるように、因果関係抽出モデル136の各種パラメータを更新する。学習処理部122は、訓練が完了すると、訓練済みの因果関係抽出モデル136を出力する。
【0056】
なお、学習処理部122は、各単語に対応する単語埋め込みに基づくベクトルとグラフ埋め込みに基づくベクトルとが組み合わされた形式で記憶部13などに記憶されている場合、ベクトルを組み合わせる処理を行わなくてもよい。その場合、学習処理部122は、記憶部13から組み合わされた形式の対応情報を取得し、単語列に基づいて因果関係抽出モデル136に入力する。学習処理部122は、各単語に対応する単語埋め込みに基づくベクトルとグラフ埋め込みに基づくベクトルとが組み合わされた形式の対応情報を、学習装置10以外の外部装置から通信部11を介して取得してもよい。各単語に対応する単語埋め込みに基づくベクトルとグラフ埋め込みに基づくベクトルとが組み合わされた形式の対応情報は、第3の対応情報の一例である。第3の対応情報はテンソルであって、ベクトルや行列でもよい。
【0057】
図10を参照し、実施例1に係る推論装置の機能構成を説明する。
図10は、実施例1に係る推論装置の機能構成の例を示す機能ブロック図である。推論装置20は、通信部21と、制御部22と、記憶部23を含む。
【0058】
通信部21は、外部装置との通信を制御する。通信部21は、例えばNICなどの通信インターフェースによって実現される。通信部21を介して、例えば単語埋め込み対応情報233やグラフ埋め込み対応情報234、因果関係抽出モデル136、予測対象データ235が入出力されてもよい。
【0059】
記憶部23は、制御部22で実行される各種プログラムや各種プログラムの実行に用いられるデータを記憶する。記憶部23は、例えばRAMなどの主記憶装置や、HDDなどの補助記憶装置により実現される。記憶部23で記憶されるデータは、例えば単語埋め込み対応情報233と、グラフ埋め込み対応情報234と、因果関係抽出モデル136と、予測対象データ235とである。
【0060】
単語埋め込み対応情報233は、単語とベクトルとが対応づけられた情報であって、一例として単語埋め込みにより得られる。単語埋め込み対応情報233は、推論処理部221で予測対象データ235に含まれる単語をベクトルに変換する際に用いられる。単語埋め込み対応情報233は、学習装置10が因果関係抽出モデル136を訓練する際に使用した単語埋め込み対応情報133と同じ対応情報を示す。
【0061】
推論装置20は、学習装置10から単語埋め込み対応情報133を取得し、単語埋め込み対応情報233として使用してもよい。推論装置20は、学習装置10が因果関係抽出モデル136を訓練する際に使用した単語埋め込み対応情報133を生成した手法と同じ手法で単語埋め込み対応情報233を生成してもよい。
【0062】
グラフ埋め込み対応情報234は、単語間の因果関係の特徴に基づいて単語とベクトルとが対応づけられた情報であって、一例としてグラフ埋め込みにより得られる。グラフ埋め込み対応情報234は、推論処理部221で予測対象データ235に含まれる単語をベクトルに変換する際に用いられる。グラフ埋め込み対応情報234は、学習装置10が因果関係抽出モデル136を訓練する際に使用したグラフ埋め込み対応情報134と同じ対応情報を示す。
【0063】
推論装置20は、学習装置10からグラフ埋め込み対応情報134を取得し、グラフ埋め込み対応情報234として使用してもよい。推論装置20は、学習装置10がグラフ埋め込み対応情報134を生成する際に使用したデータと同じデータを用いて、学習装置10がグラフ埋め込み対応情報134を生成した手法と同じ手法を用いて、グラフ埋め込み対応情報234を生成してもよい。
【0064】
因果関係抽出モデル136は、学習装置10で訓練された訓練済みの因果関係抽出モデル136である。因果関係抽出モデル136は、推論処理部221が予測対象データ235から因果関係を予測する際に用いられる。
【0065】
予測対象データ235は、推論処理部221が因果関係抽出モデル136を用いて因果関係を予測する際の対象データである。予測対象データ235は、例えば、学術論文や専門分野の文書に含まれるテキストである。予測対象データ235は、複数のテキストを含んでもよい。予測対象データ235に含まれるテキストは、複数の文を含んでもよい。
【0066】
予測対象データ235に含まれるテキストは、予測したい単語ペアに対してマーキングが付される。マーキングは、
図6のように、学習装置10が訓練データ135にマーキングを付する手法と同様の手法で付されてもよい。マーキングに用いる記号は、訓練データ135のマーキングに使用された記号と同じ記号が使用されてもよい。
【0067】
マーキングは、ユーザからの入力に応じて推論装置20によって付されてもよい。マーキングを付する処理は、推論装置20以外の外部装置によって行われてもよい。推論装置20は、マーキングが付された予測対象データ235を外部装置から通信部21を介して取得してもよい。予測対象データ235は、例えば因果関係抽出モデル136がマーキングが付されていない訓練データ135を用いて訓練された場合は、マーキングが付されなくてもよい。
【0068】
制御部22は、推論装置20の処理全体を制御する。制御部22は、例えばCPUやGPU、DSPなどのプロセッサが記憶装置に記憶されているプログラムを呼び出し、RAMなどの主記憶装置に展開し実行することにより実現される。制御部22は、ASICやFPGAなどの集積回路を含んで実現されてもよい。制御部22は、推論処理部221を含む。
【0069】
推論処理部221は、予測対象データ235を訓練済みの因果関係抽出モデル136に入力し、予測対象データ235の因果関係を予測する推論を実行する処理部である。
【0070】
推論処理部221は、予測対象データ235を取得すると、単語埋め込み対応情報233とグラフ埋め込み対応情報234とに基づいて、予測対象データ235に含まれる単語列の各単語をベクトルに変換する。
【0071】
推論処理部221は、単語埋め込み対応情報233から得られたベクトルと、グラフ埋め込み対応情報234から得られたベクトルとを組み合わせる。組み合わせの手法は、学習装置10が因果関係抽出モデル136を訓練した際に使用した手法と同じものを用いる。
【0072】
推論処理部221は、単語埋め込み対応情報233から得られたベクトルと、グラフ埋め込み対応情報234から得られたベクトルとが組み合わされた形式のデータを訓練済みの因果関係抽出モデル136に入力し、推論を実行する。推論処理部221は、推論が完了すると、予測対象データ235に対する推論結果を出力する。
【0073】
推論装置20は、例えば学習装置10に推論処理部221を備えることで実現されてもよい。
【0074】
[処理の流れ]
図11は、実施例1に係るグラフ埋め込みの処理の流れを示すフローチャートである。
図11を参照しながら、学習装置10がナレッジグラフを生成しグラフ埋め込みを行う処理の流れを説明する。
【0075】
まず、グラフ埋め込み部121は、テキスト131を取得する(S100)。テキスト131は記憶部13から取得してもよいし、通信部11を介して外部装置やウェブ上から取得してもよい。テキスト131は、複数の文書や媒体から生成されてもよく、複数のテキストを含んでもよい。テキスト131に含まれるテキストは複数の文を含んでもよい。
【0076】
次に、グラフ埋め込み部121は、取得したテキスト131からテキストを1つ選択する(S101)。グラフ埋め込み部121は、ステップS101で選択したテキストから因果関係を示すキーワードを含む文を抽出する(S102)。グラフ埋め込み部121は、因果関係を示すキーワードをキーワードDB132から取得し、選択したテキストに含まれる各文と照合することで、因果関係を示すキーワードを含む文を抽出してもよい。
【0077】
次に、グラフ埋め込み部121は、ステップS102で抽出した因果関係を示すキーワードを含む文から、文を1つ選択する(S103)。グラフ埋め込み部121は、ステップS103で選択した文を、因果関係を示すキーワードに基づいて原因部と結果部に分割する。本実施例では、各文のうちキーワードの前方にある単語列が原因部、後方にある単語列が結果部である。そして、グラフ埋め込み部121は、原因部と結果部のそれぞれに含まれる名詞を抽出する(S104)。グラフ埋め込み部121は、名詞の抽出に形態素解析を用いてもよい。
【0078】
次に、グラフ埋め込み部121は、ステップS104で原因部と結果部とから抽出された名詞の各々を組み合わせてKG生成用単語ペアを生成する(S105)。
【0079】
グラフ埋め込み部121は、ステップS102で抽出した文に、未処理の文が含まれているか判断する(S106)。グラフ埋め込み部121は、ステップS102で抽出した文に未処理の文が含まれると判断した場合(S106Yes)、ステップS103に戻る。グラフ埋め込み部121は、ステップS102で抽出した文に未処理の文が含まれていないと判断した場合(S106No)、ステップS107に進む。
【0080】
グラフ埋め込み部121は、テキスト131に未処理のテキストが含まれているか判定する(S107)。グラフ埋め込み部121は、テキスト131に未処理のテキストが含まれると判定した場合(S107Yes)、ステップS101に戻る。グラフ埋め込み部121は、テキスト131に未処理のテキストが含まれないと判定した場合(S107No)、ステップS108に進む。
【0081】
グラフ埋め込み部121は、ステップS105で生成したKG生成用単語ペアごとに因果関係の特徴を示す因果関係スコアを算出する(S108)。因果関係スコアは、例えば式(1)を用いて算出される。
【0082】
次に、グラフ埋め込み部121は、ステップS105で生成したKG生成用単語ペアと、それに対応するステップS108で算出した因果関係スコアとを用いて、単語間の因果関係を表すナレッジグラフを生成する(S109)。KG生成用単語ペアの各単語がナレッジグラフのノードに相当し、ノード間はエッジで接続される。エッジの重みは因果関係スコアである。これにより、単語間の因果関係の特徴がナレッジグラフの形式で表現される。
【0083】
次に、グラフ埋め込み部121は、ステップS109で生成した因果関係を表すナレッジグラフを用いてグラフ埋め込みを行い、単語の分散表現を取得する(S110)。グラフ埋め込み部121は、グラフ埋め込みにより取得した単語の分散表現を用いて、グラフ埋め込み対応情報134を生成する。グラフ埋め込み部121は、生成したグラフ埋め込み対応情報134を記憶部13に記憶する。
【0084】
図12は、実施例1に係る学習処理の流れを説明するフローチャートである。
図12を参照しながら、学習装置10の学習処理の流れを説明する。
【0085】
まず、学習処理部122は、訓練データ135を取得する(S200)。学習処理部122は、訓練データ135を記憶部13から取得してもよいし、通信部11を介して外部装置から取得してもよい。訓練データ135に用いられるテキストはテキストごとにラベルが付され、テキストに含まれる単語ペアにマーキングが付されている。ラベルとマーキングは、ユーザからの入力に応じて学習装置10によって付されてもよい。学習処理部122は、ラベルとマーキングが付された訓練データ135を通信部11を介して取得してもよい。
【0086】
次に、学習処理部122は、訓練データ135に含まれるテキストの単語列を、単語埋め込み対応情報133及びグラフ埋め込み対応情報134に基づいてベクトルに変換する(S201)。学習処理部122は、各単語に対し、単語埋め込み対応情報133に基づくベクトルと、グラフ埋め込み対応情報134に基づくベクトルとを取得する。
【0087】
次に、学習処理部122は、ステップS201で単語ごとに取得した、単語埋め込み対応情報133に基づくベクトルとグラフ埋め込み対応情報134に基づくベクトルとを組み合わせる(S202)。組み合わせる手法は、例えば、スタッキング、コンカチネーション、サメーションである。
【0088】
次に、学習処理部122は、ステップS202で取得した、単語埋め込み対応情報133に基づくベクトルとグラフ埋め込み対応情報134に基づくベクトルとが組み合わされた形式のデータを因果関係抽出モデル136に入力し、因果関係抽出モデル136の訓練を実行する(S203)。学習処理部122は、損失関数を用いて、因果関係抽出モデル136の出力と訓練データ135に含まれる各テキストに付されたラベルとの誤差を算出する。学習処理部122は、算出した誤差が小さくなるように因果関係抽出モデル136の各種パラメータを更新する。学習処理部122は、所定の停止条件を満たすまで因果関係抽出モデル136の訓練を実行する。
【0089】
学習処理部122は、訓練済みの因果関係抽出モデル136を出力する(S204)。学習処理部122は、出力した因果関係抽出モデル136を記憶部13に記憶してもよいし、通信部11を介して、例えば推論装置20などの外部装置に送信してもよい。
【0090】
図13は、実施例1に係る推論処理の流れを示すフローチャートである。
図13を参照しながら、推論装置20における因果関係抽出の推論処理の流れを説明する。
【0091】
まず、推論装置20は、推論対象となる予測対象データ235を取得する(S300)。推論装置20は、予測対象データ235を推論装置20以外の外部装置から通信部21を介して取得してもよいし、記憶部23から取得してもよい。予測対象データ235に含まれるテキストは、因果関係の有無を予測したい単語ペアにマーキングが付されている。マーキングは、ユーザからの入力に応じて推論装置20によって付されてもよい。推論装置20は、マーキングが付された予測対象データ235を外部装置から取得してもよい。
【0092】
次に、推論装置20は、予測対象データ235に含まれる単語列の各単語を、単語埋め込み対応情報233及びグラフ埋め込み対応情報234に基づいてベクトルに変換する(S301)。推論装置20は、各単語に対し、単語埋め込み対応情報233に基づくベクトルと、グラフ埋め込み対応情報234に基づくベクトルとを取得する。推論装置20は、学習装置10が因果関係抽出モデル136を訓練する際に用いた単語埋め込み対応情報133とグラフ埋め込み対応情報134とを、単語埋め込み対応情報233とグラフ埋め込み対応情報234として用いてもよい。
【0093】
次に、推論装置20は、ステップS301で単語ごとに取得した、単語埋め込み対応情報233に基づくベクトルとグラフ埋め込み対応情報234に基づくベクトルとを組み合わせる(S302)。推論装置20は、学習装置10が因果関係抽出モデル136を訓練する際に用いた組み合わせ方を使用する。例えば、学習装置10がスタッキングで組み合わされたベクトルを用いて因果関係抽出モデル136を訓練した場合、推論装置20はスタッキングでベクトルを組み合わせる。
【0094】
そして、推論装置20は、ステップS302で取得した、単語埋め込み対応情報233に基づくベクトルとグラフ埋め込み対応情報234に基づくベクトルとが組み合わされた形式のデータを訓練済みの因果関係抽出モデル136に入力し、推論処理を実行する(S303)。訓練済みの因果関係抽出モデル136は、予測対象データ235に含まれる単語ペアの因果関係の有無の予測結果を出力する(S304)。
【0095】
[効果]
上述したように、学習装置10は、単語埋め込み及びグラフ埋め込みに基づく単語とベクトルとの対応情報を用いて、訓練データに含まれる各単語に対応するベクトルを取得し、取得したベクトルを因果関係抽出モデルに入力し、因果関係抽出モデルの訓練を実行する。学習装置10は、単語間の因果関係の情報を含んだ単語の分散表現を用いることで、単語の因果関係の特徴を因果関係抽出モデルに入力することができる。これにより、学習装置10は、因果関係抽出モデルの予測精度を向上させることができる。
【0096】
また、自然言語処理の分野において訓練データが少ないタスクの機械学習を実行する場合、単語埋め込みにWord2VecやBERTといった事前学習型の言語モデルが使用される場合がある。事前学習型の言語モデルは大量のデータを用いた機械学習により生成されるため、高い精度が期待でき、訓練データが入手しづらいタスクに用いられる技術である。しかしながら、事前学習型の言語モデルでは因果関係に関する特徴がベクトルに組み込まれておらず、またあとから因果関係に関する特徴を言語モデルに組み込むことも難しい。学習装置10は、事前学習型の言語モデルで生成されたベクトルに対し、グラフ埋め込みにより得られる因果関係の特徴に基づいたベクトルを後付けで組み込むことができる。これにより、学習装置10は、事前学習型の言語モデルの精度を生かしたうえで、さらに因果関係抽出モデルの予測精度を向上させることができる。
【0097】
また、学習装置10は、グラフ埋め込み部121の処理により、自動で単語間の因果関係を表すナレッジグラフを生成することができる。
【0098】
[ハードウェア]
図14は、実施例1に係る学習装置のハードウェア構成例を説明する図である。
図14を参照しながら、学習装置10のハードウェア構成の一例を説明する。
図14に示すように、学習装置10は一例として、CPU101と、RAM102と、入出力インターフェース103と、通信インターフェース104とHDD105とを構成要素に含み、これらの構成要素はバス106を介して接続される。
【0099】
CPU101は、制御部12の各機能を実行するプロセスを動作させるプロセッサである。具体的には、CPU101は、グラフ埋め込み部121及び学習処理部122と同様の機能を実行するプログラムをHDD105などから読み出してRAM102などに展開し、グラフ埋め込み部121及び学習処理部122の機能を実行するプロセスを実行する。CPU101は、媒体読取装置から上記プログラムや上記プログラムを実行する際に用いられるデータを取得してもよいし、通信インターフェース104を介して取得してもよい。CPU101は一又は複数のプロセッサコアを有してもよい。学習装置10はCPU以外のプロセッサを備えてもよく、複数の種類のプロセッサを備えてもよい。
【0100】
RAM102は学習装置10の主記憶装置として動作し、HDD105などの補助記憶装置から読み出されたプログラムやプログラムの実行に用いるデータなどを記憶する。学習装置10はRAM以外のメモリを備えてもよく、複数のメモリを備えてもよい。
【0101】
入出力インターフェース103は、学習装置10に信号を入力したり、学習装置10から信号を出力するインターフェースである。一例として、入出力インターフェース103は、学習装置10に接続されたキーボードやマウスなどの入力装置から信号を受け取ったり、学習装置10に接続されたディプレイなどの出力装置に画像などの信号を送信する。学習装置10には、入出力インターフェース103を介して複数の入力装置や出力装置が接続されてもよい。
【0102】
通信インターフェース104は、学習装置10をネットワークに接続するためのインターフェースである。一例として、通信インターフェース104の規格は、イーサネット(Ethernet)など有線LANの通信規格でもよいし、WiFiなど無線LANの通信規格でもよいし、ローカル5Gなど移動体通信の無線規格でもよい。
【0103】
HDD105は、学習装置10のOperating System(OS)や制御部12で示す機能を実行するためのプログラムやプログラムで用いるデータを記憶するための補助記憶装置として動作する。学習装置10はHDD以外の、例えばSolid State Drive(SSD)などの補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【0104】
図15は、実施例1に係る推論装置のハードウェア構成例を説明する図である。
図15を参照しながら、推論装置20のハードウェア構成の一例を説明する。
図15に示すように、推論装置20は一例として、CPU201と、RAM202と、入出力インターフェース203と、通信インターフェース204とHDD205とを構成要素に含み、これらの構成要素はバス206を介して接続される。
【0105】
CPU201は、制御部22の各機能を実行するプロセスを動作させるプロセッサである。具体的には、CPU201は、推論処理部221と同様の機能を実行するプログラムをHDD205などから読み出してRAM202などに展開し、推論処理部221の機能を実行するプロセスを実行する。CPU201は、媒体読取装置から上記プログラムや上記プログラムを実行する際に用いられるデータを取得してもよいし、通信インターフェース204を介して取得してもよい。CPU201は一又は複数のプロセッサコアを有してもよい。推論装置20はCPU以外のプロセッサを備えてもよく、複数の種類のプロセッサを備えてもよい。
【0106】
RAM202は推論装置20の主記憶装置として動作し、HDD205などの補助記憶装置から読み出されたプログラムやプログラムの実行に用いるデータなどを記憶する。推論装置20はRAM以外のメモリを備えてもよく、複数のメモリを備えてもよい。
【0107】
入出力インターフェース203は、推論装置20に信号を入力したり、推論装置20から信号を出力するインターフェースである。一例として、入出力インターフェース203は、推論装置20に接続されたキーボードやマウスなどの入力装置から信号を受け取ったり、推論装置20に接続されたディプレイなどの出力装置に画像などの信号を送信する。推論装置10には、入出力インターフェース203を介して複数の入力装置や出力装置が接続されてもよい。
【0108】
通信インターフェース204は、推論装置20をネットワークに接続するためのインターフェースである。一例として、通信インターフェース204の規格は、イーサネットなど有線LANの通信規格でもよいし、WiFiなど無線LANの通信規格でもよいし、ローカル5Gなど移動体通信の無線規格でもよい。
【0109】
HDD205は、推論装置20のOSや制御部22で示す機能を実行するためのプログラムやプログラムで用いるデータを記憶するための補助記憶装置として動作する。推論装置20はHDD以外の、例えばSSDなどの記憶装置を備えてもよく、複数の記憶装置を備えてもよい。
【0110】
これまで本発明の実施例を説明したが、本発明の実施例はこれまで説明したものに限られない。本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてもよい。
【0111】
実施例や図面で示した計算式や処理手順、処理方法、各部の名称、各種データやパラメータなどはあくまで一例のため、特記する場合を除いて任意に変更してもよい。
【0112】
実施例や図面で示した機能構成やハードウェア構成などはあくまで一例のため、必ずしも図示の通りに構成や配置がされなくてもよく、特記する場合を除いて任意に変更してもよい。例えば、機能構成やハードウェア構成の構成要素を、機能といった任意の単位で分散または統合してもよい。
【0113】
実施例に係る機械学習プログラムは、学習装置10によって実行されるものに限らない。例えば、複数の装置にまたがって実施例に係る機械学習プログラムが実行されてもよい。
【0114】
また、実施例に係る機械学習プログラムはインターネットなどのネットワークを介して配布されてもよい。また、実施例に係る機械学習プログラムは、コンピュータで読み取り可能な記録媒体に記録され販売されてもよい。コンピュータで読み取り可能な記録媒体は、例えば、Compact Disc Read only memory(CD-ROM)やDigital Versatile Disc(DVD)、Universal Serial Busメモリ(USBメモリ)、フロッピーディスク(Floppy Disk)、Magneto-Optical Disk(MO)である。実施例に係る機械学習プログラムは、コンピュータによりコンピュータで読み取り可能な記録媒体から読み出され、コンピュータで実行されてもよい。