(57)【要約】【課題】欠落した関係の推定精度を向上することを課題とする。【解決手段】知識補完装置は、主語から目的語を推定する第１の学習モデルに、主語と目的語の関係が欠落したテキストデータの主語に対応するベクトル値、および、テキストデータの主語と目的語をマスクしたマスクデータに対応するベクトル値を入力して第１の出力結果を取得する。知識補完装置は、関係から目的語を推定する第２の学習モデルに、テキストデータへの補完対象である関係に対応するベクトル値、および、テキストデータの主語に対応するベクトル値を入力して第２の出力結果を取得する。知識補完装置は、テキストデータの目的語と第１の出力結果と第の出力結果とを用いて、補完対象の関係の補完可否を判定する。【選択図】図１
2020086566.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
主語から目的語を推定する第１の学習モデルに、主語と目的語の関係が欠落したテキストデータの主語に対応するベクトル値、および、前記テキストデータの主語と目的語をマスクしたマスクデータに対応するベクトル値を入力して第１の出力結果を取得し、
前記関係から目的語を推定する第２の学習モデルに、前記テキストデータへの補完対象である関係に対応するベクトル値、および、前記テキストデータの主語に対応するベクトル値を入力して第２の出力結果を取得し、
前記テキストデータの目的語と前記第１の出力結果と前記第２の出力結果とを用いて、前記補完対象の関係の補完可否を判定する
処理を実行させることを特徴する知識補完プログラム。
【請求項２】
前記判定する処理は、前記テキストデータの目的語に対応するベクトル値と、前記第１の学習モデルから取得されたベクトル値である前記第１の出力結果と、前記第２の学習モデルから取得されたベクトル値である前記第２の出力結果との標準偏差を算出し、前記標準偏差が閾値未満であれば、前記補完対象の関係を補完対象と判定し、前記標準偏差が閾値以上であれば、前記補完対象の関係を補完対象外と判定することを特徴とする請求項１に記載の知識補完プログラム。
【請求項３】
前記補完対象の関係を補完対象と判定された場合に、前記テキストデータにおける欠落している関係に、前記補完対象の関係を付与する処理を、前記コンピュータに実行させることを特徴とする請求項２に記載の知識補完プログラム。
【請求項４】
主語と目的語を含む第１の学習データを用いて、前記第１の学習モデルを学習し、
主語と目的語の関係が規定された第２の学習データを用いて、前記第２の学習モデルを学習する処理を、前記コンピュータに実行させることを特徴とする請求項１に記載の知識補完プログラム。
【請求項５】
前記学習する処理は、前記第１の学習モデルとして、前記第１の学習データの前記主語をベクトル値に変換するエンコーダと、前記第１の学習データの主語と目的語をマスクしたマスクデータおよび前記主語に対応するベクトル値を用いてパターンベクトル値を出力するニューラルネットワークと、前記ベクトル値およびパターンベクトル値を用いて目的語に対応するベクトル値を出力するニューラルネットワークとのそれぞれを学習することを特徴とする請求項４に記載の知識補完プログラム。
【請求項６】
前記学習する処理は、前記第２の学習モデルとして、前記第２の学習データの前記主語をベクトル値に変換するエンコーダと、前記第２の学習データの関係に対応するベクトル値および前記主語に対応するベクトル値を用いてパターンベクトル値を出力するニューラルネットワークと、前記ベクトル値およびパターンベクトル値を用いて目的語に対応するベクトル値を出力するニューラルネットワークとのそれぞれを学習することを特徴とする請求項４に記載の知識補完プログラム。
【請求項７】
前記第１の学習モデルおよび前記第２の学習モデルに利用される前記ニューラルネットワークは、中間層の出力を次の中間層に入力するニューラルネットワーク、または、中間層の出力および当該中間層内で取得される特徴量を次の中間層に入力するニューラルネットワークであることを特徴とする請求項５または６に記載の知識補完プログラム。
【請求項８】
コンピュータが、
主語から目的語を推定する第１の学習モデルに、主語と目的語の関係が欠落したテキストデータの主語に対応するベクトル値、および、前記テキストデータの主語と目的語をマスクしたマスクデータに対応するベクトル値を入力して第１の出力結果を取得し、
前記関係から目的語を推定する第２の学習モデルに、前記テキストデータへの補完対象である関係に対応するベクトル値、および、前記テキストデータの主語に対応するベクトル値を入力して第２の出力結果を取得し、
前記テキストデータの目的語と前記第１の出力結果と前記第２の出力結果とを用いて、前記補完対象の関係の補完可否を判定する
処理を実行することを特徴する知識補完方法。
【請求項９】
主語から目的語を推定する第１の学習モデルに、主語と目的語の関係が欠落したテキストデータの主語に対応するベクトル値、および、前記テキストデータの主語と目的語をマスクしたマスクデータに対応するベクトル値を入力して第１の出力結果を取得する取得部と、
前記関係から目的語を推定する第２の学習モデルに、前記テキストデータへの補完対象である関係に対応するベクトル値、および、前記テキストデータの主語に対応するベクトル値を入力して第２の出力結果を取得する取得部と、
前記テキストデータの目的語と前記第１の出力結果と前記第２の出力結果とを用いて、前記補完対象の関係の補完可否を判定する判定部と
を有することを特徴する知識補完装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、知識補完プログラム、知識補完方法および知識補完装置に関する。
【背景技術】
【０００２】
機械学習等に利用されるナレッジグラフは、大規模なものが人手により作られているが、要素間の関係が欠落することがある。欠落した関係に対して、ナレッジグラフ上に三つ組（主語、関係、目的語）があるとき、同じ主語と目的語のペアを含む文をその関係を表す文として学習して補う手法として、Distant  Supervisionが知られている。例えば、主語と目的語を含むテキストを選択し、テキストから関係を表すベクトルを出力するＲＮＮ（Recurrent  Neural  Network）を学習する。その後、学習済みのＲＮＮに、関係が欠落したナレッジグラフの各情報を入力し、出力された情報を欠落した関係と推定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−７６４０３号公報
【特許文献２】国際公開第２０１６／０２８４４６号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、Distant  Supervisionで学習する際に選択されるテキストには、主語と目的語の間に関係が無いものが含まれることから、間違った関係を学習することもある。この場合、欠落したナレッジグラフに間違った関係が推定されるので、学習を行う際にノイズとなり学習精度も低下する。
【０００５】
一つの側面では、欠落した関係の推定精度を向上することができる知識補完プログラム、知識補完方法および知識補完装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
第１の案では、知識補完プログラムは、コンピュータに、主語から目的語を推定する第１の学習モデルに、主語と目的語の関係が欠落したテキストデータの主語に対応するベクトル値、および、前記テキストデータの主語と目的語をマスクしたマスクデータに対応するベクトル値を入力して第１の出力結果を取得する処理を実行させる。知識補完プログラムは、コンピュータに、前記関係から目的語を推定する第２の学習モデルに、前記テキストデータへの補完対象である関係に対応するベクトル値、および、前記テキストデータの主語に対応するベクトル値を入力して第２の出力結果を取得する処理を実行させる。知識補完プログラムは、コンピュータに、前記テキストデータの目的語と前記第１の出力結果と前記第２の出力結果とを用いて、前記補完対象の関係の補完可否を判定する処理を実行させる。
【発明の効果】
【０００７】
一実施形態によれば、欠落した関係の推定精度を向上することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例１にかかる知識補完装置の機能構成を示す機能ブロック図である。
【図２】図２は、関係が欠落したナレッジグラフの一例を示す図である。
【図３】図３は、テキスト学習処理を説明する図である。
【図４】図４は、関係学習処理を説明する図である。
【図５】図５は、関係推定処理を説明する図である。
【図６】図６は、テキスト学習処理の流れを示すフローチャートである。
【図７】図７は、関係学習処理の流れを示すフローチャートである。
【図８】図８は、関係推定処理の流れを示すフローチャートである。
【図９】図９は、ニューラルネットワークを説明する図である。
【図１０】図１０は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【０００９】
以下に、本願の開示する知識補完プログラム、知識補完方法および知識補完装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１０】
［機能構成］
図１は、実施例１にかかる知識補完装置１０の機能構成を示す機能ブロック図である。図１に示す知識補完装置１０は、機械学習などに利用されるナレッジグラフの要素間の関係（関係性）が欠落している場合に、その関係を推定して補完するコンピュータ装置の一例である。具体的には、知識補完装置１０は、テキストと関係（列）に対して統一的な学習の枠組みを生成し、テキストと関係（列）のエンコーディングを、三つ組みの主語から目的語を推定するモデルとして学習する。そして、知識補完装置１０は、特定の関係が存在するかどうかを、テキストでの推定と関係（列）での推定結果の差を用いて判定する。
【００１１】
つまり、知識補完装置１０は、既存のナレッジグラフに欠けている三つ組（主語、関係、目的語）を、テキストを用いたLink  Predictionによって補完する。そして、知識補完装置１０は、Link  Predictionに利用するテキストのエンコーディングを、三つ組みの主語から目的語を推定するモデルとして学習する。このようにすることで、知識補完装置１０は、欠落した関係の推定精度を向上することができる。
【００１２】
図１に示すように、知識補完装置１０は、通信部１１、記憶部１２、制御部２０を有する。通信部１１は、他の装置の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部１１は、データベースサーバなどから各種データを受信し、管理者端末などから各種指示を受信する。
【００１３】
記憶部１２は、データや制御部２０が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部１２は、コーパス１３、ナレッジグラフ１４、パラメータＤＢ１５を記憶する。
【００１４】
コーパス１３は、学習対象であるテキストデータを記憶するデータベースの一例である。例えば、コーパス１３は、「ZZZ  is  president  of  U.S.」などの複数の文から構成される。
【００１５】
ナレッジグラフ１４は、学習対象である、要素間の関係が定義されたテキストデータを記憶するデータベースの一例である。また、ナレッジグラフ１４には、要素間の関係が欠落しているテキストデータも含まれる。図２は、関係が欠落したナレッジグラフの一例を示す図である。図２に示すナレッジグラフでは、XXXとJapanとの間の関係が「leader_of」であり、XXXとKanteiとの間の関係が「live_in」であり、KanteiとOfficial  residencesとの間の関係が「is_a」であることが示される。また、YYYとHouseの間の関係が「live_in」であり、HouseとOfficial  residencesとの間の関係が「is_a」である。また、ZZZとUnited  Statesとの間の関係が「leader_of」である。そして、この例では、YYYとUnited  Statesとの間の関係が欠落している。
【００１６】
パラメータＤＢ１５は、学習結果を記憶するデータベースである。例えば、パラメータＤＢ１５は、制御部２０による学習データの判別結果（分類結果）、機械学習等によって学習された各種パラメータを記憶する。
【００１７】
制御部２０は、知識補完装置１０全体を司る処理部であり、例えばプロセッサなどである。この制御部２０は、テキスト学習部３０、関係学習部４０、関係推定部５０を有する。なお、テキスト学習部３０、関係学習部４０、関係推定部５０は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【００１８】
テキスト学習部３０は、抽出部３１、エンコーダ部３２、ＲＮＮ処理部３３、推定部３４、更新部３５を有し、主語から目的語を推定するモデルを学習して、学習モデルを構築する処理部である。図３は、テキスト学習処理を説明する図である。図３に示すように、テキスト学習部３０は、テキストデータを用いて、既知である主語と目的語とをマスクしたマスク済みテキストデータを生成する。そして、テキスト学習部３０は、マスク済みテキストデータをＲＮＮ（Recurrent  Neural  Network）に入力して、パターンベクトルの値（Pattern  Vector）を取得する。
【００１９】
一方で、テキスト学習部３０は、既知の主語である「EGFR」をエンコーダに入力して、主語ベクトルの値（Term  Vector）を取得する。なお、エンコーダは、単語とベクトルの変換を行うニューラルネットワーク（ＮＮ：Neural  Network）や、単語とベクトルとを対応付けた変換テーブルなどである。なお、本実施例では、ベクトルの値を単にベクトル、パターンベクトルの値を単にパターンベクトルと表記することがある。
【００２０】
そして、テキスト学習部３０は、パターンベクトルと主語ベクトルとをＮＮに入力して、出力結果である目的語ベクトル（Term  Vector）を取得する。続いて、テキスト学習部３０は、取得した目的語ベクトルと、既知である目的語に対応する目的語ベクトルとを比較し、その誤差が小さくなるように、誤差逆伝搬法などを用いて、エンコーダ、ＲＮＮ、ＮＮのそれぞれが有する各種パラメータを更新する。このようにして、テキスト学習部３０は、学習処理を実行し、主語から目的語を推定する学習モデルを構築する。
【００２１】
抽出部３１は、コーパス１３からテキストデータを抽出する処理部である。例えば、抽出部３１は、コーパス１３からテキストデータを抽出し、主語と目的語の一覧を規定した辞書などを用いて、抽出したテキストデータから主語と目的語を抽出する。そして、抽出部３１は、抽出した主語を推定部３４に出力し、抽出した目的語や目的語に対応する目的語ベクトルを更新部３５に出力する。また、抽出部３１は、抽出したテキストデータ、主語、目的語に関する情報を、ＲＮＮ処理部３３に通知する。
【００２２】
エンコーダ部３２は、データを一定の規則に従って別のデータに変換したりするエンコーダ処理を実行し、主語をベクトル値に変換した主語ベクトルを生成する処理部である。例えば、エンコーダ部３２は、エンコーダを用いて、抽出部３１から入力された主語を主語ベクトルに変換する。そして、エンコーダ部３２は、得られた主語ベクトルをＲＮＮ処理部３３や推定部３４などに出力する。
【００２３】
ＲＮＮ処理部３３は、ＲＮＮを用いて、マスク済みテキストデータからパターンベクトルを生成する処理部である。例えば、ＲＮＮ処理部３３は、抽出部３１からテキスト、主語、目的語に関する情報を取得し、主語と目的語が既知であるテキストデータに対して、主語を［Subj］でマスクし、目的語を［Obj］でマスクしたマスク済みテキストデータを生成する。そして、ＲＮＮ処理部３３は、エンコーダ部３２から取得した主語ベクトルとマスク済みテキストデータとをＲＮＮに入力して、パターンベクトルを取得する。その後、ＲＮＮ処理部３３は、パターンベクトルを推定部３４に出力する。
【００２４】
推定部３４は、ＮＮを用いて、目的語ベクトルを推定する処理部である。例えば、推定部３４は、エンコーダ部３２から、テキストデータにおいて既知である主語に対応する主語ベクトルを取得する。また、推定部３４は、ＲＮＮ処理部３３から、マスク済みテキストデータに対応するパターンベクトルを取得する。そして、推定部３４は、主語ベクトルとパターンベクトルとをＮＮに入力し、ＮＮからの出力結果として、目的語ベクトルを取得する。その後、推定部３４は、ＮＮを用いて推定された目的語ベクトルを更新部３５に出力する。
【００２５】
更新部３５は、推定部３４の推定結果に基づいて、エンコーダ部３２のエンコーダ、ＲＮＮ処理部３３のＲＮＮ、推定部３４のＮＮを学習する処理部である。例えば、更新部３５は、抽出部３１が抽出した既知の目的語に対応する目的語ベクトルと、推定部３４によって推定された目的語ベクトルとの誤差を算出し、この誤差が最小になるように、誤差逆伝搬法などによってエンコーダ、ＲＮＮ、ＮＮのそれぞれが有する各種パラメータを更新する。
【００２６】
このようにして、テキスト学習部３０は、主語から目的語を推定する学習器を学習する。なお、学習を終了するタイミングは、所定数以上の学習データを用いた学習が完了した時点、コーパス１３に含まれる全テキストデータについての学習が終了した時点、復元誤差が閾値未満となった時点など、任意に設定することができる。そして、テキスト学習部３０は、学習が終了すると、エンコーダ、ＲＮＮ、ＮＮのそれぞれの各学習済みパラメータをパラメータＤＢ１５に格納する。
【００２７】
関係学習部４０は、エンコーダ部４１、ＲＮＮ処理部４２、推定部４３、更新部４４を有し、主語と目的語とを繋ぐ関係（関係列：Relation）から目的語を推定するモデルを学習して、学習モデルを構築する処理部である。図４は、関係学習処理を説明する図である。図４に示すように、関係学習部４０は、関係が既知であるテキストデータの関係をＲＮＮに入力して、既知である関係に対応するパターンベクトルを取得する。
【００２８】
一方で、関係学習部４０は、既知の主語である「EGFR」をエンコーダに入力して、主語ベクトルを取得する。なお、ここでのエンコーダもテキスト学習部３０と同様、単語とベクトルの変換を行うニューラルネットワークや変換テーブルなどである。
【００２９】
そして、関係学習部４０は、パターンベクトルと主語ベクトルとをＮＮに入力して、出力結果である目的語ベクトルを取得する。続いて、関係学習部４０は、取得した目的語ベクトルと、既知である目的語に対応する目的語ベクトルとを比較し、その誤差が小さくなるように、誤差逆伝搬法などを用いて、エンコーダ、ＲＮＮ、ＮＮのそれぞれが有する各種パラメータを更新する。このようにして、関係学習部４０は、学習処理を実行し、関係から目的語を推定する学習モデルを構築する。
【００３０】
エンコーダ部４１は、エンコーダ処理を実行し、主語をベクトル値に変換した主語ベクトルを生成する処理部である。例えば、エンコーダ部４１は、ナレッジグラフ１４から、関係が既知であるテキストデータを特定し、当該テキストデータの主語と目的語とを特定する。そして、エンコーダ部４１は、エンコーダを用いて、特定した主語を主語ベクトルに変換する。そして、エンコーダ部４１は、得られた主語ベクトルや、特定した関係、主語、目的語に関する情報などを、ＲＮＮ処理部４２や推定部４３などに出力する。
【００３１】
ＲＮＮ処理部４２は、ＲＮＮを用いて、既知の関係（関係列）からパターンベクトルを生成する処理部である。例えば、ＲＮＮ処理部４２は、エンコーダ部４１が特定した関係が既知であるテキストデータを取得する。そして、ＲＮＮ処理部４２は、当該関係およびエンコーダ部４１から取得された主語ベクトルをＲＮＮに入力して、ＲＮＮの出力結果であり、当該関係に対応するパターンベクトルを取得する。その後、ＲＮＮ処理部４２は、パターンベクトルを推定部４３などに出力する。
【００３２】
推定部４３は、ＮＮを用いて、目的語ベクトルを推定する処理部である。例えば、推定部４３は、エンコーダ部４１から、関係が既知であるテキストデータの主語に対応する主語ベクトルを取得する。また、推定部４３は、ＲＮＮ処理部４２から、既知である関係に対応するパターンベクトルを取得する。そして、推定部４３は、取得された主語ベクトルとパターンベクトルとをＮＮに入力し、ＮＮからの出力結果として、目的語ベクトルを取得する。その後、推定部４３は、目的語ベクトルを更新部４４に出力する。
【００３３】
更新部４４は、推定部４３の推定結果に基づいて、エンコーダ部４１のエンコーダ、ＲＮＮ処理部４２のＲＮＮ、推定部４３のＮＮを学習する処理部である。例えば、更新部４４は、エンコーダ部４１によって特定されたテキストデータの既知の目的語に対応する目的語ベクトルと、推定部４３によって推定された目的語ベクトルとの誤差を算出し、この誤差が最小になるように、誤差逆伝搬法などによってエンコーダ、ＲＮＮ、ＮＮのそれぞれが有する各種パラメータを更新する。
【００３４】
このようにして、関係学習部４０は、関係から目的語を推定する学習器を学習する。なお、学習を終了するタイミングは、所定数以上の学習データを用いた学習が完了した時点、ナレッジグラフに含まれる全テキストデータについての学習が終了した時点、復元誤差が閾値未満となった時点など、任意に設定することができる。そして、関係学習部４０は、学習が終了すると、エンコーダ、ＲＮＮ、ＮＮのそれぞれの各学習済みパラメータをパラメータＤＢ１５に格納する。
【００３５】
関係推定部５０は、選択部５１、テキスト処理部５２、関係処理部５３、推定部５４を有し、欠落した関係を推定する処理部である。具体的には、関係推定部５０は、テキスト学習部３０によって学習された学習モデルと、関係学習部４０によって学習された学習モデルとを用いて、推定対象のテキストデータにおいて欠落した関係を推定する。
【００３６】
図５は、関係推定処理を説明する図である。図５に示すように、関係推定部５０は、テキスト学習部３０によって学習された学習モデルに、関係が欠落した推定対象のテキストデータの主語と目的語をマスクしたマスク済みテキストデータなどを入力して、推定結果である目的語ベクトル「Term  Vector  Ｖ１」を取得する。
【００３７】
また、関係推定部５０は、関係が欠落した推定対象のテキストデータに判定対象となる関係を仮定し、関係学習部４０によって学習された学習モデルに、仮定した関係（仮定関係）などを入力して、推定結果である目的語ベクトル「Term  Vector  Ｖ２」を取得する。また、関係推定部５０は、エンコーダを用いて、関係が欠落した推定対象のテキストデータの目的語から目的語ベクトル「Term  Vector  Ｖ３」を取得する。
【００３８】
その後、関係推定部５０は、目的語ベクトル「Term  Vector  Ｖ１」、「Term  Vector  Ｖ２」、「Term  Vector  Ｖ３」に基づいて、仮定した関係が適切か否かを判定する。そして、関係推定部５０は、仮定した関係が適切である場合は、テキストデータに当該関係を付与し、仮定した関係が適切ではない場合は、別の関係を仮定して同様の処理を実行する。
【００３９】
選択部５１は、推定対象のテキストデータを選択する処理部である。具体的には、選択部５１は、ナレッジグラフ１４から、関係が欠落した主語と目的語を含むテキストデータを選択する。そして、選択部５１は、選択したテキストデータや、ナレッジグラフに関する情報をテキスト処理部５２、関係処理部５３、推定部５４などに出力する。
【００４０】
テキスト処理部５２は、テキスト学習部３０により学習された学習モデルを用いて、既知の主語から目的語ベクトル「Term  Vector  Ｖ１」を取得する処理部である。例えば、テキスト処理部５２は、パラメータＤＢ１５に記憶されるパラメータを用いて、学習済みの学習モデルを構築する。
【００４１】
そして、テキスト処理部５２は、エンコーダを用いて、推定対象のテキストデータの主語に対応する主語ベクトルを取得する。また、テキスト処理部５２は、推定対象のテキストデータの主語と目的語とをマスクしたマスク済みテキストデータを生成し、マスク済みテキストデータと主語ベクトルとを学習済みモデルのＲＮＮに入力して、パターンベクトルを取得する。
【００４２】
その後、テキスト処理部５２は、学習済みの学習モデルのＮＮに、パターンベクトルと主語ベクトルを入力し、目的語ベクトル「Term  Vector  Ｖ１」を取得する。そして、テキスト処理部５２は、取得した目的語ベクトル「Term  Vector  Ｖ１」を、推定部５４に出力する。
【００４３】
関係処理部５３は、関係学習部４０により学習された学習モデルを用いて、関係から目的語ベクトル「Term  Vector  Ｖ２」を取得する処理部である。例えば、関係処理部５３は、パラメータＤＢ１５に記憶されるパラメータを用いて、学習済みの学習モデルを構築する。
【００４４】
そして、関係処理部５３は、エンコーダを用いて、推定対象のテキストデータの主語に対応する主語ベクトルを取得する。また、関係処理部５３は、主語ベクトルおよび仮定した関係を学習済みモデルのＲＮＮに入力して、パターンベクトルを取得する。
【００４５】
その後、関係処理部５３は、学習済みの学習モデルのＮＮに、パターンベクトルと主語ベクトルを入力し、目的語ベクトル「Term  Vector  Ｖ２」を取得する。そして、関係処理部５３は、取得した目的語ベクトル「Term  Vector  Ｖ２」を推定部５４に出力する。
【００４６】
推定部５４は、テキスト処理部５２と関係処理部５３との結果を用いて、仮定した関係が適切か否かを推定する処理部である。例えば、推定部５４は、テキスト処理部５２から目的語ベクトル「Term  Vector  Ｖ１」を取得し、関係処理部５３から目的語ベクトル「Term  Vector  Ｖ２」を取得する。また、推定部５４は、学習済みエンコーダを用いて、推定対象のテキストデータの目的語に対応する目的語ベクトル「Term  Vector  Ｖ３」を取得する。
【００４７】
そして、推定部５４は、式（１）を用いて、目的語ベクトル「Term  Vector  Ｖ１」、「Term  Vector  Ｖ２」、「Term  Vector  Ｖ３」の標準偏差を算出する。そして、推定部５４は、標準偏差が閾値未満であれば、仮定した関係を適切な関係と推定し、関係が欠落しているナレッジグラフの欠落部分に、当該関係を付与する。一方、推定部５４は、
標準偏差が閾値以上であれば、仮定した関係を適切ではないと推定する。この場合、別の関係を仮定して同様の処理が実行される。
【００４８】
【数１】
2020086566.tif 000003
【００４９】
［処理の流れ］
次に、テキスト学習、関係学習、関係推定の各処理の流れを説明する。ここでは、各処理のフローチャートを説明した後、具体例を挙げて説明する。
【００５０】
（テキスト学習処理の流れ）
図６は、テキスト学習処理の流れを示すフローチャートである。図６に示すように、テキスト学習部３０は、コーパス１３に未処理の文（テキストデータ）があるか否かを判定する（Ｓ１０１）。
【００５１】
続いて、テキスト学習部３０は、コーパス１３に未処理の文が存在する場合（Ｓ１０１：Ｙｅｓ）、コーパス１３から文Ｓｉを取得する（Ｓ１０２）。そして、テキスト学習部３０は、予め用意した主語や目的語を規定する辞書などを用いて、文Ｓｉから、主語、目的語、述語、助詞などのエンティティを抽出する（Ｓ１０３）。
【００５２】
続いて、テキスト学習部３０は、文Ｓｉにエンティティ（主語：ｅ１）とエンティティ（目的語：ｅ２）が含まれるか否かを判定する（Ｓ１０４）。そして、テキスト学習部３０は、文Ｓｉに主語ｅ１と目的語ｅ２とが含まれる場合（Ｓ１０４：Ｙｅｓ）、文Ｓｉからｅ１およびｅ２をマスクしたマスク文Ｓｉ´を生成する（Ｓ１０５）。
【００５３】
その後、テキスト学習部３０は、エンコーダを用いて、主語ｅ１から主語ベクトルＶｅ１を生成し、ベクトルＶｅ１およびマスク文Ｓｉ´をＲＮＮに入力してパターンベクトルＶｓｉ´を生成する（Ｓ１０６）。そして、テキスト学習部３０は、主語ベクトルＶｅ１とパターンベクトルＶｓｉ´とをＮＮに入力して目的語ｅ２を推定し、推定結果として推定目的語ｅ２´を取得する（Ｓ１０７）。
【００５４】
ここで、テキスト学習部３０は、既知の目的語ｅ２と推定目的語ｅ２´とが異なる場合（Ｓ１０８：Ｙｅｓ）、その誤差が最小となるように、エンコーダ、ＲＮＮ、ＮＮなどのパラメータを学習する（Ｓ１０９）。その後は、Ｓ１０２以降が実行される。
【００５５】
一方、テキスト学習部３０は、既知の目的語ｅ２と推定目的語ｅ２´とが等しい場合（Ｓ１０８：Ｎｏ）、文Ｓｉに主語と目的語のエンティティが含まれない場合（Ｓ１０４：Ｎｏ）、Ｓ１０２以降を繰り返す。なお、テキスト学習部３０は、コーパス１３に未処理の文が存在しなくなると（Ｓ１０１：Ｎｏ）、処理を終了する。
【００５６】
ここで具体例を用いて説明する。テキスト学習部３０は、テキストデータの一例である文Ｓｉとして「ZZZ  is  president  of  U.S.」をコーパス１３から取得する。そして、テキスト学習部３０は、文Ｓｉに形態素解析などを行って、エンティティｅ１として「ZZZ」を抽出し、エンティティｅ２として「U.S.」を抽出する。
【００５７】
続いて、テキスト学習部３０は、文Ｓｉのｅ１（主語）とｅ２（目的語）をマスクしたマスク文Ｓｉ´「［Subj］  is  president  of  ［Obj］」を生成する。その後、テキスト学習部３０は、エンコーダを用いて、エンティティｅ１である「ZZZ」から主語ベクトルＶｅ１［0，0.8，0.5，1，15，-0.6，・・・]を生成する。また、テキスト学習部３０は、主語ベクトルＶｅ１［0，0.8，0.5，1，15，-0.6，・・・]およびマスク文Ｓｉ´をＲＮＮに入力して、パターンベクトルＶｓｉ´［0，1，-0.6，15，0.8，0.5，・・・]を生成する。
【００５８】
そして、テキスト学習部３０は、主語ベクトルＶｅ１［0，0.8，0.5，1，15，-0.6，・・・]とパターンベクトルＶｓｉ´［0，1，-0.6，15，0.8，0.5，・・・]をＮＮに入力して、目的語ｅ２の推定結果である推定目的語ｅ２´のベクトルデータを推定する。
【００５９】
その後、テキスト学習部３０は、推定された推定目的語ｅ２´と既知の目的語ｅ２である「U.S.」との誤差が最小となるように学習する。すなわち、テキスト学習部３０は、推定されたｅ２´に対応するベクトル値と、既知のエンティティｅ２である「U.S.」に対応するベクトル値との誤差を算出し、その誤差が最小となるように、誤差逆伝搬法を用いて学習する。
【００６０】
（関係学習処理の流れ）
図７は、関係学習処理の流れを示すフローチャートである。図７に示すように、関係学習部４０は、ナレッジグラフから三つ組（主語ｅ１、関係ｒ、目的語ｅ２）を取得する（Ｓ２０１）。ここで、関係学習部４０は、ナレッジグラフから三つ組が取得できない場合（Ｓ２０２：Ｎｏ）、処理を終了する。
【００６１】
一方、関係学習部４０は、ナレッジグラフから三つ組が取得できた場合（Ｓ２０２：Ｙｅｓ）、エンコーダを用いて、主語ｅ１から主語ベクトルＶｅ１を生成し、主語ベクトルＶｅ１およびエンティティｅ２をＲＮＮに入力して、パターンベクトルＶｅ２を生成する（Ｓ２０３）。そして、関係学習部４０は、主語ベクトルＶｅ１とパターンベクトルＶｅ２とをＮＮに入力して目的語ｅ２を推定し、推定結果として推定目的語ｅ２´を取得する（Ｓ２０４）。
【００６２】
ここで、関係学習部４０は、既知である目的語ｅ２と推定目的語ｅ２´とが異なる場合（Ｓ２０５：Ｙｅｓ）、その誤差が最小となるように、エンコーダ、ＲＮＮ、ＮＮなどのパラメータを学習する（Ｓ２０６）。その後は、Ｓ２０１以降が実行される。一方、関係学習部４０は、既知である目的語ｅ２と推定目的語ｅ２´とが等しい場合（Ｓ２０５：Ｎｏ）、Ｓ２０６を実行せずに、Ｓ２０１以降が実行される。
【００６３】
ここで上記具体例を用いて説明する。関係学習部４０は、ナレッジグラフから、エンティティｅ１として「ZZZ」、エンティティｒとして「leader_of」、エンティティｅ２として「U.S.」を取得する。
【００６４】
そして、関係学習部４０は、エンコーダを用いて、エンティティｅ１である「ZZZ」から主語ベクトルＶｅ１［0，0.8，0.5，1，15，-0.6，・・・]を生成する。また、関係学習部４０は、主語ベクトルＶｅ１［0，0.8，0.5，1，15，-0.6，・・・]およびエンティティｒである「leader_of」をＲＮＮに入力して、パターンベクトルＶｒ［0，1，-0.6，15，0.8，・・・]を生成する。
【００６５】
そして、関係学習部４０は、主語ベクトルＶｅ１［0，0.8，0.5，1，15，-0.6，・・・]とパターンベクトルＶｒ［0，1，-0.6，15，0.8，・・・]をＮＮに入力し、目的語ｅ２の推定結果である推定目的語ｅ２´のベクトルデータを推定する。
【００６６】
その後、関係学習部４０は、推定された推定目的語ｅ２´と既知の目的語ｅ２である「U.S.」との誤差が最小となるように、学習する。すなわち、関係学習部４０は、推定されたｅ２´に対応するベクトル値と、既知のエンティティｅ２である「U.S.」に対応するベクトル値との誤差を算出し、その誤差が最小となるように誤差逆伝搬法を用いて学習する。
【００６７】
（関係推定処理の流れ）
図８は、関係推定処理の流れを示すフローチャートである。図８に示すように、関係推定部５０は、ナレッジグラフ１４から、関係が欠落した推定対象の文Ｓｉを取得する（Ｓ３０１）。
【００６８】
続いて、関係推定部５０は、予め用意した主語や目的語を規定する辞書などを用いて、文Ｓｉから、主語、目的語、述語、助詞などのエンティティを抽出する（Ｓ３０２）。続いて、関係推定部５０は、文Ｓｉにエンティティ（主語：ｅ１）とエンティティ（目的語：ｅ２）が含まれるか否かを判定する（Ｓ３０３）。ここで、関係推定部５０は、文Ｓｉに主語ｅ１と目的語ｅ２とが含まれない場合（Ｓ３０３：Ｎｏ）、処理を終了する。
【００６９】
一方、関係推定部５０は、文Ｓｉに主語ｅ１と目的語ｅ２とが含まれる場合（Ｓ３０３：Ｙｅｓ）、文Ｓｉからｅ１およびｅ２をマスクしたマスク文Ｓｉ´を生成する（Ｓ３０４）。
【００７０】
そして、関係推定部５０は、エンコーダを用いて、エンティティｅ１から主語ベクトルＶｅ１を生成するとともに、エンティティｅ２から目的語ベクトルＶｅ２を生成する（Ｓ３０５）。また、関係推定部５０は、主語ベクトルＶｅ１およびマスク文Ｓｉ´をＲＮＮに入力してパターンベクトルＶｓｉ´を生成するとともに、主語ベクトルＶｅ１およびエンティティｒをＲＮＮに入力してパターンベクトルＶｒを生成する（Ｓ３０６）。
【００７１】
その後、関係推定部５０は、テキスト学習部３０によって学習された学習済みモデルに、主語ベクトルＶｅ１とパターンベクトルＶｓｉ´を入力して、出力値Ｖｅ２Ｓ´を取得する（Ｓ３０７）。また、関係推定部５０は、関係学習部４０によって学習された学習済みモデルに、主語ベクトルＶｅ１とパターンベクトルＶｒを入力して、出力値Ｖｅ２ｒ´を取得する（Ｓ３０８）。
【００７２】
そして、関係推定部５０は、出力値Ｖｅ２Ｓ´と出力値Ｖｅ２ｒ´と目的語ベクトルＶｅ２の標準偏差Ｄを算出する（Ｓ３０９）。ここで、関係推定部５０は、標準偏差Ｄが閾値（ｄ）未満である場合（Ｓ３１０：Ｙｅｓ）、エンティティｒを適切な関係と推定し（Ｓ３１１）、Ｓ３０１以降を実行する。一方、関係推定部５０は、標準偏差Ｄが閾値（ｄ）以上である場合（Ｓ３１０：Ｎｏ）、エンティティｒを不適切な関係と推定し（Ｓ３１２）、Ｓ３０１以降を実行する。
【００７３】
ここで具体例を用いて説明する。関係推定部５０は、主語と述語の関係が欠落し文Ｓｉとして「YYY  is  president  of  U.S.」を取得する。ここで、仮に設定した関係ｒを「leader_of」とし、閾値ｄを「0.3」とする。
【００７４】
そして、関係推定部５０は、文Ｓｉに形態素解析などを行って、エンティティｅ１として「YYY」を抽出し、エンティティｅ２として「U.S.」を抽出する。続いて、関係推定部５０は、文Ｓｉのｅ１とｅ２をマスクしたマスク文Ｓｉ´「［Subj］  is  president  of  ［Obj］」を生成する。
【００７５】
その後、関係推定部５０は、エンコーダを用いて、エンティティｅ１である「ZZZ」から主語ベクトルＶｅ１［0，0.8，0.5，1，15，-0.6，・・・]を生成し、エンティティｅ２である「ZZZ」から目的語ベクトルＶｅ２［0，1，5，0.8，-0.6，0.5・・・]を生成する。
【００７６】
また、関係推定部５０は、主語ベクトルＶｅ１［0，0.8，0.5，1，15，-0.6，・・・]およびマスク文Ｓｉ´をＲＮＮに入力して、パターンベクトルＶｓｉ´［0，1，-0.6，15，0.8，0.5，・・・]を生成する。同様に、関係推定部５０は、主語ベクトルＶｅ１［0，0.8，0.5，1，15，-0.6，・・・]および関係ｒ「leader_of」をＲＮＮに入力して、パターンベクトルＶｒ［0，1，-0.3，2，1.8，-0.2，・・・]を生成する。
【００７７】
そして、関係推定部５０は、主語ベクトルＶｅ１［0，0.8，0.5，1，15，-0.6，・・・]とパターンベクトルＶｓｉ´［0，1，-0.6，15，0.8，0.5，・・・]とをＮＮに入力して、出力値Ｖｅ２Ｓ´［0，1，-0.6，15，0.8，0.5，・・・]を取得する。同様に、関係推定部５０は、主語ベクトルＶｅ１［0，0.8，0.5，1，15，-0.6，・・・]とパターンベクトルＶｒ［0，1，-0.3，2，1.8，-0.2，・・・]とをＮＮに入力して、出力値Ｖｅ２ｒ´［0，1，-0.6，15，0.8，0.5，・・・]を取得する。
【００７８】
その後、関係推定部５０は、式（１）を用いて、出力値Ｖｅ２Ｓ´［0，1，-0.6，15，0.8，0.5，・・・]と、出力値Ｖｅ２ｒ´［0，1，-0.6，15，0.8，0.5，・・・]と、目的語ベクトルＶｅ２［0，1，5，0.8，-0.6，0.5・・・]との標準偏差Ｄを［0.01］と算出する。
【００７９】
そして、この例の場合、関係推定部５０は、標準偏差Ｄ［0.01］が閾値［0.3］未満であることから、仮定した関係ｒを適切と判定する。すなわち、関係推定部５０は、関係が欠落している文Ｓｉの「YYY  is  president  of  U.S.」に対して、「YYY」と「U.S.」との関係を関係ｒ「leader_of」と推定し、文Ｓｉに関係ｒを付与する。
【００８０】
［効果］
上述したように、知識補完装置１０は、ノイズを含むテキストの影響を避けることができ、テキストを用いたLink  Predictionを高精度に行うことができる。例えば、一般的な方法では、ノイズになるテキストデータ「ZZZ  tweeted  about  US  Post  Office.」を「leader_of」を表す関係であると学習すると、「AAA  tweeted  about  US  Post  Office」という文を使ってLink  Prediction  したときに、「AAA」と「US」の間の関係を「leader_of」と分類するよう誤って学習する。
【００８１】
これに対して、ナレッジグラフで「AAA」と「Fujitsu」の間に「leader_of」が定義されていると想定し、知識補完装置１０が、同じ文を学習し、同じ文でLink  Predictionした場合、テキストデータの学習モデルからは、「AAA」から「US」が推定され、関係の学習モデルからは「AAA」から「Fujitsu」が推定されるので、ノイズを含むテキストの影響を避けることができる。
【実施例２】
【００８２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００８３】
［学習モデル］
上記実施例では、ＲＮＮを用いた例で説明したが、これに限定されるものではなく、ＬＳＴＭ（Long  Short  Term  Memory）などの他のニューラルネットワークを利用することもできる。なお、上記例で説明したベクトル値は、あくまで一例であり、数値等を限定するものではない。
【００８４】
図９は、ニューラルネットワークを説明する図である。図９の（ａ）にはＲＮＮの一例を示し、図９の（ｂ）にはＬＳＴＭの一例を示す。図９の（ａ）に示すＲＮＮは、自身の出力を、次ステップの自身が受け取るニューラルネットワークである。具体的には、第１の入力値（ｘ０）をＲＮＮ（Ａ）に入力して出力された出力値（ｈ０）を、第２の入力値（ｘ１）とともに第２のＲＮＮ（Ａ）に入力する。このように、中間層（隠れ層）からの出力値を次の中間層（隠れ層）に入力することで、可変のデータサイズを用いて学習を実行することができる。
【００８５】
また、図９の（ｂ）に示すＬＳＴＭは、入力と出力の間の長期的な依存関係を学習するため、内部に状態を持つニューラルネットワークである。具体的には、第１の入力値（ｘ０）をＬＳＴＭ（Ａ）に入力して出力された出力値（ｈ０）と第１のＬＳＴＭで算出される特徴量とを、第２の入力値（ｘ１）とともに第２のＬＳＴＭ（Ａ）に入力する。このように、中間層（隠れ層）の出力値および中間層で取得される特徴量を次の中間層に入力することで、過去の入力に関する記憶を保つことができる。
【００８６】
［学習装置と判定装置］
上記実施例では、知識補完装置１０が学習と推定とを実行する例を説明したが、これに限定されるものではなく、学習処理と推定処理とを別々の装置で実現することもできる。例えば、テキスト学習部３０と関係学習部４０とを実行する学習装置と、学習装置の結果を用いて関係推定部５０を実行する推定装置とを用いることもできる。
【００８７】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、テキスト学習部３０、関係学習部４０、関係推定部５０を別々の筐体で実現することもできる。
【００８９】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００９０】
［ハードウェア］
図１０は、ハードウェア構成例を説明する図である。図１０に示すように、知識補完装置１０は、通信装置１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。また、図１０に示した各部は、バス等で相互に接続される。
【００９１】
通信装置１０ａは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。ＨＤＤ１０ｂは、図２に示した機能を動作させるプログラムやＤＢを記憶する。
【００９２】
プロセッサ１０ｄは、図２に示した各処理部と同様の処理を実行するプログラムをＨＤＤ１０ｂ等から読み出してメモリ１０ｃに展開することで、図１等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、知識補完装置１０が有する各処理部と同様の機能を実行する。具体的には、プロセッサ１０ｄは、テキスト学習部３０、関係学習部４０、関係推定部５０等と同様の機能を有するプログラムをＨＤＤ１０ｂ等から読み出す。そして、プロセッサ１０ｄは、テキスト学習部３０、関係学習部４０、関係推定部５０等と同様の処理を実行するプロセスを実行する。
【００９３】
このように知識補完装置１０は、プログラムを読み出して実行することで知識補完方法を実行する情報処理装置として動作する。また、知識補完装置１０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、知識補完装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【００９４】
１０  知識補完装置
１１  通信部
１２  記憶部
１３  コーパス
１４  ナレッジグラフ
１５  パラメータＤＢ
２０  制御部
３０  テキスト学習部
３１  抽出部
３２  エンコーダ部
３３  ＲＮＮ処理部
３４  推定部
３５  更新部
４０  関係学習部
４１  エンコーダ部
４２  ＲＮＮ処理部
４３  推定部
４４  更新部
５０  関係推定部
５１  選択部
５２  テキスト処理部
５３  関係処理部
５４  推定部
【図１】
2020086566.tif 000004
【図２】
2020086566.tif 000005
【図３】
2020086566.tif 000006
【図４】
2020086566.tif 000007
【図５】
2020086566.tif 000008
【図６】
2020086566.tif 000009
【図７】
2020086566.tif 000010
【図８】
2020086566.tif 000011
【図９】
2020086566.tif 000012
【図１０】
2020086566.tif 000013