(57)【要約】      （修正有）【課題】知識グラフ補完の精度を向上させることができる知識グラフ補完装置及び知識グラフ補完方法を提供する。【解決手段】知識グラフ補完装置１は、グラフ構造の知識グラフを記憶する知識グラフ記憶部１３と、発話を取得する取得部（収音部１１）と、取得した発話の中に未知エンティティがある場合、既知グラフのパターンに基づき識別文字列を考慮した埋め込み表現に展開し、展開した結果に基づき未知エンティティについてのトリプル候補を生成し、トリプル候補の確信度を算出して、未知エンティティに関する知識を獲得する補完部１５と、を備える。補完部１５は、既存エンティティと未知エンティティの識別文字列の部分文字列を擬似エンティティとして生成し、既存エンティティ又は未知エンティティと擬似エンティティとの関係を形成した擬似トリプルを生成し、トリプルと擬似トリプルの集合に基づきトリプル候補の確信度を算出する。【選択図】図１
2020191009.tif 000002
【特許請求の範囲】
【請求項１】
２つのエンティティのそれぞれの識別文字列と前記エンティティ間の関係を示すラベルによるトリプルを要素とする集合であって、
グラフ構造を持つデータベースである知識グラフを記憶する知識グラフ記憶部と、
発話を取得する取得部と、
取得された発話の中に、前記知識グラフ記憶部に記憶されていない未知のエンティティがある場合、前記知識グラフ記憶部が記憶する既知のグラフのパターンに基づいて、識別文字列を考慮した埋め込み表現に展開し、展開した結果に基づいて前記未知のエンティティについてのトリプル候補を生成し、前記トリプル候補の確信度を算出し、算出した確信度に基づいて、前記未知のエンティティに関する知識を獲得する補完部と、を備え、
前記補完部は、
前記知識グラフ記憶部に記憶された既存のエンティティおよび前記未知のエンティティの識別文字列の部分文字列を擬似エンティティとして生成し、前記既存のエンティティ又は前記未知のエンティティと、前記擬似エンティティとの関係を部分文字列であることを示すラベルを付与して形成した擬似トリプルを生成し、前記トリプルおよび擬似トリプルの集合に基づいて、前記トリプル候補の確信度を算出する、
知識グラフ補完装置。
【請求項２】
前記補完部は、
前記確信度の順位が所定の順位より高く且つ所定の値よりも高いトリプル候補についての質問を生成し、又は、前記確信度の順位が所定の順位より高く又は所定の値よりも高いトリプル候補についての質問を生成し、
前記質問に対する回答が肯定の場合に、前記未知のエンティティについての情報を確定する、
請求項１に記載の知識グラフ補完装置。
【請求項３】
前記補完部は、
複素数表現とエルミート内積を利用したモデルであるＣｏｍｐｌＥｘによって前記確信度を算出する、
請求項１又は請求項２に記載の知識グラフ補完装置。
【請求項４】
グラフ構造を持つデータベースである知識グラフにおける知識グラフ補完方法であって、
前記知識グラフは、前記知識グラフ中の２つのエンティティのそれぞれの識別文字列とこれらエンティティの関係を示すラベルによるトリプルを要素とする集合であって、
知識グラフ補完装置は、
前記エンティティの識別文字列の部分文字列による擬似エンティティを生成するとともに、前記エンティティと前記擬似エンティティの間の関係として部分文字列であることを示すラベルで擬似トリプルを形成して、前記２つのエンティティ間のトリプルの集合である知識グラフに前記擬似トリプルを追加した第２の知識グラフを形成し、
前記第２の知識グラフについて、知識グラフ埋め込みモデルに従ってエンティティに関する未知のトリプルの確信度を計算し、確信度の順位の高く且つ確信度が所定値以上のものを新たな情報として推定し補完する、又は、確信度の順位の高く又は確信度が所定値以上のものを新たな情報として推定し補完する、
知識グラフ補完方法。
【請求項５】
前記新たな情報についての質問を人に対して行い、前記質問に対する回答が肯定の場合、
前記新たな情報を確定した情報として補完する、
請求項４に記載の知識グラフ補完方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、知識グラフ補完装置、および知識グラフ補完方法に関する。
【背景技術】
【０００２】
対話システムでは、利用者に対して質問を行って情報を聞き出すことが行われる（例えば特許文献１参照）。必要な情報が知識ベース上にない場合、現状の対話システムは、話題を転換したり「わかりません」といった文脈上不自然な応答を行う場合がある。このように、データベースを参照して応答を行うタイプの対話システムは、データベースに明示的に記述されていない情報についてうまく応答できない。そこで、データベースに無い情報を自ら獲得できる対話システムの構築が望まれる。
【０００３】
これに対して、本発明の発明者らは、グラフ構造を持つ知識ベースである知識グラフから潜在的な情報を推論することで，従来困難であった応答が可能な対話システムの構築することを提案している（非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特願２０１８−０６２０５５号
【非特許文献】
【０００５】
【非特許文献１】藤岡勇真、林克彦、中野幹生、駒谷和範、“対話システムにおける知識グラフの埋め込み表現を用いた応答生成の試み”、人工知能学会研究資料、人工知能学会、２０１８、SIG-SLUD, Vol. B5, No. 02, pp. 88-89
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、このような従来のシステムにおいて、さらなる知識グラフ補完の精度を向上が望まれている。
【０００７】
本発明は、上記の問題点に鑑みてなされたものであって、知識グラフ補完の精度を向上させることができる知識グラフ補完装置、および知識グラフ補完方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
（１）上記目的を達成するため、本発明の一態様に係る知識グラフ補完装置＜１＞は、２つのエンティティのそれぞれの識別文字列と前記エンティティ間の関係を示すラベルによるトリプルを要素とする集合であって、グラフ構造を持つデータベースである知識グラフを記憶する知識グラフ記憶部＜１３＞と、発話を取得する取得部＜収音部１１、音声認識部１２、言語理解部１４＞と、取得された発話の中に、前記知識グラフ記憶部に記憶されていない未知のエンティティがある場合、前記知識グラフ記憶部が記憶する既知のグラフのパターンに基づいて、識別文字列を考慮した埋め込み表現に展開し、展開した結果に基づいて前記未知のエンティティについてのトリプル候補を生成し、前記トリプル候補の確信度を算出し、算出した確信度に基づいて、前記未知のエンティティに関する知識を獲得する補完部＜１５＞と、を備え、前記補完部は、前記知識グラフ記憶部に記憶された既存のエンティティおよび前記未知のエンティティの識別文字列の部分文字列を擬似エンティティとして生成し、前記既存のエンティティ又は前記未知のエンティティと、前記擬似エンティティとの関係を部分文字列であることを示すラベルを付与して形成した擬似トリプルを生成し、前記トリプルおよび擬似トリプルの集合に基づいて、前記トリプル候補の確信度を算出する。
【０００９】
（２）また、前記補完部は、前記確信度の順位が所定の順位より高く且つ所定の値よりも高いトリプル候補についての質問を生成し、又は、前記確信度の順位が所定の順位より高く又は所定の値よりも高いトリプル候補についての質問を生成し、
前記質問に対する回答が肯定の場合に、前記未知のエンティティについての情報を確定するようにしてもよい。
【００１０】
（３）また、本発明の一態様に係る知識グラフ補完装置において、前記補完部は、
複素数表現とエルミート内積を利用したモデルであるＣｏｍｐｌＥｘによって前記確信度を算出するようにしてもよい。
【００１１】
（４）上記目的を達成するため、本発明の一態様に係る知識グラフ補完方法は、グラフ構造を持つデータベースである知識グラフにおける知識グラフ補完方法であって、前記知識グラフは、前記知識グラフ中の２つのエンティティのそれぞれの識別文字列とこれらエンティティの関係を示すラベルによるトリプルを要素とする集合であって、知識グラフ補完装置は、前記エンティティの識別文字列の部分文字列による擬似エンティティを生成するとともに、前記エンティティと前記擬似エンティティの間の関係として部分文字列であることを示すラベルで擬似トリプルを形成して、前記２つのエンティティ間のトリプルの集合である知識グラフに前記擬似トリプルを追加した第２の知識グラフを形成し、前記第２の知識グラフについて、知識グラフ埋め込みモデルに従ってエンティティに関する未知のトリプルの確信度を計算し、確信度の順位の高く且つ確信度が所定値以上のものを新たな情報として推定し補完する、又は、確信度の順位の高く又は確信度が所定値以上のものを新たな情報として推定し補完する。
【００１２】
（５）また、本発明の一態様に係る知識グラフ補完方法において、前記新たな情報についての質問を人に対して行い、前記質問に対する回答が肯定の場合、
前記新たな情報を確定した情報として補完するようにしてもよい。
【発明の効果】
【００１３】
上述した（１）又は（４）によれば、知識グラフ補完の精度を向上させることができる。
【００１４】
また、上述した（２）によれば、知識グラフ上にないトリプル候補についてユーザに質問することで知識獲得を試みることができる。また、確信度が低い、すなわち推定結果が不確かな場合にも利用者に不確かな質問を問いかけてしまうことを防ぎ、明らかに間違っているような質問で利用者の対話意欲を削がないようにすることができる。
また、上述した（３）によれば、トリプルの存在尤度を適切に計算することができる。
【図面の簡単な説明】
【００１５】
【図１】実施形態に係る知識グラフ補完装置の構成例を示す図である。
【図２】実施形態の知識グラフ記憶部が記憶する知識グラフの例を示す図である。
【図３】知識グラフの情報が獲得されていない例を示す図である。
【図４】実施形態に係る知識獲得を行う対話の例と知識グラフ補完装置が行う処理の概略を示す図である。
【図５】実施形態に係る「もみじ丼」と「親子丼」に対するＮ＝２での展開例を示す図である。
【図６】質問リストに確信度を付与した例である。
【図７】実施形態に係る知識グラフ補完装置が行う知識獲得処理のフローチャートである。
【図８】検証における各設定における精度指標及び学習データと検証結果を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について図面を参照しながら説明する。なお、以下の説明に用いる図面では、各部材を認識可能な大きさとするため、各部材の縮尺を適宜変更している。
【００１７】
［知識グラフ補完装置１の構成］
図１は、本実施形態に係る知識グラフ補完装置１の構成例を示す図である。
図１に示すように、知識グラフ補完装置１は、収音部１１（取得部）、音声認識部１２（取得部）、知識グラフ記憶部１３（取得部）、言語理解部１４、補完部１５、対話生成部１６、シナリオ記憶部１７、および出力部１８（対話生成部）を備える。
【００１８】
知識グラフ補完装置１は、利用者との対話を行い、記憶する知識グラフに無い情報を補完する。なお、知識グラフについては後述する。
【００１９】
収音部１１は、マイクロホンであり、音声信号を収音し、収音した音声信号を音声認識部１２に出力する。なお、収音部１１は、複数のマイクロホンで構成されるマイクロホンアレイであってもよい。
【００２０】
音声認識部１２は、収音部１１が出力する音声信号に対して音声認識処理を行う。音声認識処理は、例えば音源定位処理、雑音抑圧処理、音源同定処理、音源分離処理等の処理である。音声認識部１２は、認識した結果を例えばテキスト形式で言語理解部１４に出力する。
【００２１】
知識グラフ記憶部１３は、知識グラフを記憶する。なお、知識グラフ記憶部１３は、ネットワーク上に置かれていてもよい。ここで、知識グラフとは、エンティティ（Ｅｎｔｉｔｙ）の繋がりの関係で示されている。また、知識グラフ記憶部１３は、後述する確信度との比較で用いられるしきい値を記憶する。
【００２２】
言語理解部１４は、音声認識部１２が出力するテキストを、知識グラフ記憶部１３が記憶する知識グラフを参照して、発話内容を理解する。言語理解部１４は、音声認識部１２が出力するテキストを理解できた場合、すなわち知識グラフに情報が存在していた場合、理解した結果を対話生成部１６に出力する。言語理解部１４は、音声認識部１２が出力するテキストを理解できなかった場合、すなわち知識グラフに情報が存在していなかった場合、知識グラフに情報が無かった単語を補完部１５に出力する。また、言語理解部１４は、質問文に対する利用者の応答が肯定を示す内容の場合、質問内容に基づいて知識グラフを補完する補完指示を補完部１５に出力する。言語理解部１４は、質問文に対する利用者の応答が否定を示す内容の場合、理解できなかったことを示す情報を対話生成部１６に出力する。
【００２３】
補完部１５は、言語理解部１４が出力する知識グラフに情報が存在していなかった単語を取得する。補完部１５は、取得した単語に対して質問情報を生成し、生成した質問情報を対話生成部１６に出力する。なお、質問情報の生成方法については後述する。補完部１５は、言語理解部１４が出力する補完指示に基づいて、質問内容に基づいて知識グラフを補完するように知識グラフに記憶させる。
【００２４】
対話生成部１６は、補完部１５が出力する質問情報と、シナリオ記憶部１７が記憶する言語モデルに基づいて質問文を生成し、生成した質問文を出力部１８に出力する。又は、言語理解部１４が出力する理解した結果と、シナリオ情報に基づいて例えば対話を継続する対話文を生成し、生成した対話文を出力部１８に出力する。
【００２５】
シナリオ記憶部１７は、対話シーンに応じたシナリオを記憶する。また、シナリオ記憶部１７は、言語モデルも記憶する。
【００２６】
出力部１８は、スピーカーである。出力部１８は、対話生成部１６が出力する音声信号を再生する。
【００２７】
［知識グラフの例］
次に、知識グラフ（参考文献１参照）の例を説明する。
図２は、本実施形態の知識グラフ記憶部１３が記憶する知識グラフの例を示す図である。図２に示す例は、知識グラフが記憶する単語が「親子丼」の例である。符号ｇ１０１、ｇ１４１、ｇ１５１〜ｇ１５４、およびｇ１６１は、ノードである。符号ｇ１１１、ｇ１２１〜１２４、およびｇ１３１は、エッジである。例えば、符号ｇ１１１のエッジは味である。符号ｇ１２１のエッジは材料である。符号ｇ１３１のエッジは料理種である。このように、「親子丼」については、味、材料、および料理種が獲得されている。なお、図２に示した知識グラフは一例であり、知識グラフの構成は、これに限らない。
【００２８】
ここで、知識グラフにおいて知識を獲得できていない例を説明する。
図３は、知識グラフの情報が獲得されていない例を示す図である。図３に示す例は、単語が「もみじ丼」の例である。符号ｇ１０１ａ、ｇ１４１ａ、ｇ１５１ａ〜ｇ１５３ａ、およびｇ１６１ａは、ノードである。符号ｇ１１１ａ、ｇ１２１ａ〜１２３ａ、およびｇ１３１ａは、エッジである。例えば、符号ｇ１１１ａのエッジは味である。符号ｇ１２１ａのエッジは材料である。符号ｇ１３１ａのエッジは料理種である。このように、「もみじ丼」については、味、材料が獲得されているが、料理種が獲得できていない。
【００２９】
参考文献１；Angles, R. and Gutierrez, C., “Survey of Graph Database Models”, ACM Comput, Surv., 2008, Vol. 40, No. 1, pp. 1:1-1:39
【００３０】
［知識獲得を行う対話の枠組み］
次に、知識獲得を行う対話の例と知識グラフ補完装置１が行う処理の概略を説明する。
図４は、本実施形態に係る知識獲得を行う対話の例と知識グラフ補完装置１が行う処理の概略を示す図である。
【００３１】
まず、知識グラフ補完装置１は、利用者が発話した「この前、もみじ丼を初めて食べたんですけど  美味しかったですね」を取得する。
【００３２】
知識グラフ補完装置１は、知識グラフ記憶部１３を探索して「もみじ丼」に関する情報が不足していることを認識する。この場合、図３に示したように、料理種の情報が不足していたとする。
【００３３】
次に、知識グラフ補完装置１は、不明な情報がある「料理種」の関係（リレーション）に基づいて、質問リストを生成する。
【００３４】
次に、知識グラフ補完装置１は、既知のグラフパターンに基づき埋め込み表現に変換する。なお、埋め込み表現については後述する。
【００３５】
次に、知識グラフ補完装置１は、埋め込み表現から質問リスト内のトリプルに対し存在尤度を表すスコアを計算し確信度として付与する。
【００３６】
次に、知識グラフ補完装置１は、最も確信度が高く、かつその確信度がしきい値以上の質問を選択し、利用者に質問「もみじ丼って和食ですか？」を発することで、知識獲得を試みる。なお、本実施形態では、確信度による順位だけでなく、確信度の絶対値も、しきい値によって考慮する。この理由は、確信度が低い、すなわち推定結果が不確かな場合にも利用者に問いかけてしまうことを防ぎ、明らかに間違っているような質問で利用者の対話意欲を削がないようにするためである。
【００３７】
次に、知識グラフ補完装置１は、利用者の発話「そうですね！」が肯定を表しているため、「もみじ丼」の料理種が「和食」であることを知識として獲得し、知識グラフに記憶する。
【００３８】
このように、本実施形態では、利用者が発した音声信号の中に知識グラフに無い情報があった場合、その情報を獲得するための質問を生成し、その質問に基づいて知識グラフを補完する。
【００３９】
［知識グラフの補完方法］
次に、知識グラフの補完方法例を説明する。
図４に示したように、補完部１５は、トリプルをユーザから獲得するために質問リストを生成する。
【００４０】
一般に知識グラフは、ラベル付き有向グラフとして表される。有向グラフ上のエッジには、リレーションを表すラベルが付与されている。ノードはエンティティに相当する。知識グラフ上のエンティティの集合をε、リレーションの集合をＲとする。ｅｉ、ｅｋ∈ε、ωｊ∈Ｒに対して三つ組（ｉ，ｊ，ｋ）をトリプルと定義する。この時ｉ，ｊ，ｋをそれぞれ主語、述語、目的語と定義する。トリプルは、２つのエンティティ間の関係を表現する知識グラフの基本的な要素である。知識グラフＧはトリプルを要素とする集合として表せる。
【００４１】
図４に示した例では、「もみじ丼」に対して料理種の情報が獲得されていない。このため、補完部１５は、トリプル（もみじ丼、料理種、？）と目的語を穴埋めするように質問リストを生成する。本実施形態で生成する質問リストは、この例のように目的語を穴埋めするような形式で生成する。補完部１５は、質問において、シナリオ記憶部１７が記憶する情報を参照して、対話の文脈や話題に関連する質問リストを生成するようにし、急な話題転換を避けるようにする。
【００４２】
［識別文字列を用いた知識グラフ埋め込み］
次に、補完部１５は、既知のグラフパターンに基づいて、埋め込み表現（参考文献２参照）に変換する。モデルはエンティティ同士がどのようにリンクしているかを元に埋め込み表現を学習するが、全てのエンティティが持つ識別文字列（名称）に関する情報は学習に組み込まれていない。そこで、本実施形態では、知識グラフ上のエンティティの識別文字列を部分文字列に分解し、先頭もしくは末尾の数文字を擬似エンティティとして作成し、組み込む。似た部分文字列を持つエンティティ同士は似た性質を持つ可能性が高いという仮定のもとで、このようなエンティティ同士の関連性が強くなり補完精度の向上に結びつける。なお、埋め込み表現は、潜在空間への埋め込みである。
【００４３】
本実施形態では、Ｎ文字以下の先頭もしくは末尾の部分文字列で擬似的にエンティティを作成し新たにトリプルを構成することを、Ｎ文字で展開すると記述する。図５は、本実施形態に係る「もみじ丼」と「親子丼」に対するＮ＝２での展開例を示す図である。また、図５は、２文字で展開を行った例である。
【００４４】
補完部１５は、展開の対象となっている「もみじ丼」と「親子丼」の先頭と末尾それぞれの１文字と２文字を抽出する。補完部１５は、「もみじ丼」に対して、先頭１文字の「も」と、先頭２文字の「もみ」と、末尾２文字の「じ丼」と、末尾１文字の「丼」を抽出する。補完部１５は、「親子丼」に対して、先頭１文字の「親」と、先頭２文字の「親子」と、末尾２文字の「子丼」と、末尾１文字の「丼」を抽出する。本実施形態では、抽出した先頭１、２文字、末尾１、２文字を、疑似エンティティという。
【００４５】
また、補完部１５は、展開した先頭１、２文字、末尾１、２文字に対して、部分文字列であることを示すｓｕｂｓを先頭に付けた識別子を持つエンティティ（擬似エンティティ）を作成する。この結果、擬似エンティティとして、「ｓｕｂｓ＿も」、「ｓｕｂｓ＿もみ」、「ｓｕｂｓ＿じ丼」、「ｓｕｂｓ＿丼」、「ｓｕｂｓ＿親」、「ｓｕｂｓ＿子」、「ｓｕｂｓ＿子丼」、「ｓｕｂｓ＿丼」が作成される。
【００４６】
ここで、図５において、ラベル「ｐｒｅｆｉｘ＿１」は先頭１文字を表す。ラベル「ｐｒｅｆｉｘ＿２」は先頭２文字を表す。ラベル「ｓｕｆｆｉｘ＿１」は末尾１文字を表す。ラベル「ｓｕｆｆｉｘ＿２」は末尾２文字を表す。そして展開元のエンティティから作成した疑似エンティティに向けてｐｒｅｘ＿Ｎもしくはｓｕｆｆｉｘ＿Ｎというリレーションでトリプルを構成する。図５の例では、２つの料理が「ｓｕｂｓ＿丼」という疑似エンティティを経由して繋がっている。本実施形態では、このような展開を、部分文字列を用いた知識グラフ埋め込みと呼ぶ。
【００４７】
なお、図５に示した例では、Ｎ＝２、すなわち２文字の例を説明したが、Ｎは３以上（３文字以上）であってもよい。例えば、補完部１５は、料理種が未知の「たらこ茶漬け」に対して、先頭から１文字を「た」、先頭から２文字を「たら」、先頭から３文字が「たらこ」、末尾から３文字を「茶漬け」、末尾から２文字を「漬け」、末尾から１文字を「け」を抽出するようにしてもよい。また、補完部１５は、料理種が既知の「のり茶漬け」に対して、先頭から１文字を「の」、先頭から２文字を「のり」、先頭から３文字が「のり茶」、末尾から３文字を「茶漬け」、末尾から２文字を「漬け」、末尾から１文字を「け」を抽出するようにしてもよい。
【００４８】
参考文献２；Kadlec, R., Bajgar, O., and Kleindienst, J., “ Knowledge Base Completion: Baselines Strike Back”,2017, in Proceedings of the 2nd Workshop on Representation Learning for NLP, pp. 69-74
【００４９】
［知識グラフ埋め込みとＣｏｍｐｌＥｘ］
トリプルの存在尤度の計算は、知識グラフの埋め込み表現を利用する。知識グラフ埋め込みは、知識グラフに対する代表的な解析手法として知られている。低次元線形空間に知識グラフを埋め込み汎化させることで、グラフ上の欠損したリンクの有無を推論し補完する。知識グラフは、｜ε｜×｜Ｒ｜×｜ε｜の３階テンソルＸとして表現することができ、Ｘの（ｉ，ｊ，ｋ）  要素ｘｉ，ｊ，ｋは次式（１）のように表される。
【００５０】
【数１】
2020191009.tif 000003
【００５１】
この表現を用いて、知識グラフ埋め込みではトリプル（ｉ，ｊ，ｋ）が知識グラフ上に存在する確率Ｐ（ｘｉ，ｊ，ｋ＝１）を、モデルに対応したスコア関数φを用いて次式（２）のように表す。
【００５２】
【数２】
2020191009.tif 000004
【００５３】
式（２）においてσ（・）はシグモイド関数であり、Θは各モデルにおけるパラメータを表す。
ここで、ＣｏｍｐｌＥｘ（参考文献３）は知識グラフ埋め込みモデルの一種である。なお、ＣｏｍｐｌＥｘは、ノードとノードとの関係を表す行列である。ＣｏｍｐｌＥｘは、複素数表現とエルミート内積を利用したモデルとして知られる。ここで、Ｃｎ（Ｃは複素数全体の集合）を複素ｎ−次元空間とし、ｅｉ，ｅｋ∈ＣＤ，ｗｊ∈ＣＤをそれぞれエンティティの関連性（リレーション）に関するＤ次元の埋め込みベクトルとし、Ｒｅ（ｘ）をｘの実部とする。これによりＣｏｍｐｌＥｘにおけるスコア関数φＣｏｍｐは、次式（３）のように表される。
【００５４】
【数３】
2020191009.tif 000005
【００５５】
ここでベクトルｖのｌ番目の要素をｖｌとした時、＜ａ，ｂ，ｃ＞：＝Σｋａｋｂｋｃｋと定義する。ｖ＿はｖの複素共役ベクトルである。
【００５６】
補完部１５は、このように求めたスコア関数を確信度とし、質問リストにこの確信度を付与する。図６は、質問リストに確信度を付与した例である。図６に示す例では、（もみじ丼，料理種，和食）のトリプルの確信度が０．００１５で最も大きい。
【００５７】
参考文献３；Trouillon, T., Welbl, J., Riedel, S., Gaussier, E., and Bouchard, G.:”Complex Embeddings for Simple Link Prediction”, 2016, in Proceedings of the 33rd International Conference on International Conference on Machine Learning, pp. 2071-2080 
【００５８】
このように、本実施形態では、取得した発話の中に知識グラフ記憶部１３に記憶されていない未知のエンティティがある場合、補完部１５が、知識グラフ記憶部１３が記憶する既知のグラフのパターンに基づいて、識別文字列を考慮したの埋め込み表現に展開するようにした。そして、補完部１５が、展開した結果に基づいて未知のエンティティについてのトリプル候補を生成し、生成したトリプル候補の確信度を算出するようにした。そして、補完部１５が、算出した確信度に基づいて、未知のエンティティに関する知識を獲得するようにした。
【００５９】
例えば「もみじ丼」と「親子丼」の間にはリンクがなく、「もみじ丼」が未知のエンティティである場合に、疑似エンティティ「ｓｕｂｓ＿丼」を介して（親子丼，ｓｕｆｆｉｘ＿１，ｓｕｂｓ＿丼）と（もみじ丼，ｓｕｆｆｉｘ＿１，ｓｕｂｓ＿丼）という述語と目的語が同一の関係を持つことになる。このことから「もみじ丼」と「親子丼」は、類似している可能性があるという情報をモデルに与えることができる。本実施形態では、この情報を用いて、例えば「親子丼」が持つ「料理種が和食」という属性を、「もみじ丼」も同様に持つかもしれない、という推論をＣｏｍｐｌＥｘにより行うようにした。そして、本実施形態では、（親子丼，料理種，和食）というトリプルが学習データに含まれる場合（既知の場合）に、学習データには存在しない（もみじ丼，料理種，？）のようなトリプルのうち、ＣｏｍｐｌＥｘによって求めた確信度が最も高い（もみじ丼，料理種，和食）トリプルを用いて、知識を獲得するようにした。これにより、本実施形態によれば、未知のエンティティに関する知識を獲得することができる。
【００６０】
［処理手順例］
次に、処理手順例を説明する。図７は、本実施形態に係る知識グラフ補完装置が行う知識獲得処理のフローチャートである。
【００６１】
（ステップＳ１）収音部１１は、音声信号を収音する。続けて、音声認識部１２は、音声信号を取得する。
【００６２】
（ステップＳ２）音声認識部１２は、取得した音声信号に対して音声認識処理を行う。
【００６３】
（ステップＳ３）言語理解部１４は、音声認識処理されたフレーズの中に、リレーションが不明な情報があるか否かを判別する。言語理解部１４は、リレーションが不明な情報がないと判別した場合（ステップＳ３；ＮＯ）、処理を終了する。言語理解部１４は、リレーションが不明な情報があると判別した場合（ステップＳ３；ＹＥＳ）、ステップＳ４の処理に進める。
【００６４】
（ステップＳ４）補完部１５は、不明な情報があるリレーションから質問リストを生成する。
【００６５】
（ステップＳ５）補完部１５は、既知のグラフパターンに基づいて、不明な情報を埋め込み表現に変換する。
【００６６】
（ステップＳ６）補完部１５は、変換した埋め込み表現を、部分文字列を用いた知識グラフの埋め込みに展開する。
【００６７】
（ステップＳ７）補完部１５は、展開した結果に基づいて、質問リストの質問毎に確信度（スコア）を計算して、質問に確信度を付与する。
【００６８】
（ステップＳ８）補完部１５は、確信度が最も大きく、かつ確信度の絶対値がしきい値以上であるトリプル（主語、述語、目的語）を選択する。
【００６９】
（ステップＳ９）対話生成部１６は、補完部１５が選択したトリプルと、シナリオ記憶部１７が記憶する言語モデルに基づいて質問文を生成する。続けて、出力部１８は質問文を出力する。
【００７０】
（ステップＳ１０）収音部１１は、音声信号を収音する。続けて、音声認識部１２は、音声信号を取得する。
【００７１】
（ステップＳ１１）音声認識部１２は、取得した音声信号に対して音声認識処理を行う。
【００７２】
（ステップＳ１２）言語理解部１４は、音声認識処理された結果、肯定的な発話であったか否かを判別する。言語理解部１４は、肯定的な発話であったと判別した場合（ステップＳ１２；ＹＥＳ）、ステップＳ１３の処理に進める。言語理解部１４は、否定的な発話であったと判別した場合（ステップＳ１２；ＮＯ）、ステップＳ１４の処理に進める。
【００７３】
（ステップＳ１３）補完部１５は、質問に用いたトリプルに基づいて、未知の情報が獲得できたとして、知識グラフに情報を記憶させる。処理後、知識獲得処理を終了する。
【００７４】
（ステップＳ１４）対話生成部１６は、ステップＳ１で収音された発話に不明な情報があったため、不明な情報に対する質問文を、シナリオ記憶部１７が記憶するシナリオに基づいて質問文を生成する。続けて、出力部１８は質問文を出力する。処理後、知識獲得処理を終了する。
【００７５】
なお、ステップＳ１４で出力する質問文は、例えばステップＳ１の発話が「この前  もみじ丼を初めて食べたんですけど  美味しかったですね」の場合、「もみじ丼は、どのような料理ですか？」等の質問文を生成する。そして、知識グラフ補完装置１は、本実施形態の保管方法で知識を獲得できなかった場合に、この質問に対する回答に基づいて、不明な情報を獲得するようにしてもよい。
【００７６】
［検証例］
次に、上述した部分文字列を用いた知識グラフ埋め込みによる補完の精度を検証し，その効果を確認した結果を説明する。
【００７７】
まず、検証に用いたデータについて説明する。
検証に使用した知識グラフは、対話システムでの運用を目的として、料理に関する表形式のデータベースを元に作成されたものである。詳述すると、知識グラフには、料理やその材料、料理種、味、食べられる場所などが格納されている．このデータベースは、人手で作成されたものであり部分的にしか情報がない。このデータベースから作成される知識グラフに対して、上述した手法を適用して情報の補完を行った。
【００７８】
この知識グラフはエンティティ数｜ε｜＝７２８９、リレーション数｜Ｒ｜＝１４であり、そのトリプル数は２２３２１である。エンティティに付与された識別文字列の長さの平均は５．８８（文字）であり、標準偏差は３．１８（文字）である。
【００７９】
次に、検証方法を説明する。
精度検証では、検証用の知識グラフを無作為に５分割し、その内４つをトレーニングデータＧ’、１つをテストデータＨ’とする５分割交差検証を行った。また精度検証では、トレーニングデータを埋め込み、その埋め込み表現とＨ’から知識グラフ補完で一般に用いられる精度指標であるＨｉｔｓ＠ＫとＭＲＲを算出した。なお、Ｈｉｔｓ＠Ｋは、（ｉ’，ｊ’，ｋ’；Θ）の内ｋ’を全エンティティと入れ替えてスコアを計算し、得られるランキング中でφＣｏｍｐ（ｉ’，ｊ’，ｋ’；Θ）が上位Ｋ位に入る割合を指す。また、ＭＲＲは、平均逆順位とも呼ばれ，前述のランキングにおけるφＣｏｍｐ（ｉ’，ｊ’，ｋ’；Θ）の順位の逆数の平均として表される。
【００８０】
部分文字列を用いた知識グラフ埋め込みの効果を検証するため、展開文字数Ｎ＝１，２，…，７としてトレーニングデータを展開した場合に加え、比較対象として展開を行わない場合のＨｉｔｓ＠ＫとＭＲＲを算出した。展開時のトレーニングデータに関する詳細を図６の右部に示す。また、図８の左部は５分割交差検証の結果を示す。図８は、検証における各設定における精度指標及び学習データと検証結果を示す図である。
【００８１】
テストデータ数は４４６４個である。検証では、全ての場合に共通してＣｏｍｐｌＥｘによる埋め込みを適用した。埋め込み次元は複素２００次元としてロジスティック回帰による学習を行った。学習率調整は参考文献３の手法に倣いＡｄａｇｒａｄを利用し、イテレーション数は１０００、負例サンプリング数は５とした。指標算出時のランキングでは、展開して得られた部分文字列エンティティを含むトリプルをランキングの対象外とした．検証では、同様に既にテストデータに含まれるトリプルに関してもランキングの対象外とした。
【００８２】
次に、検証結果を説明する。
図８の左部に示すように、展開文字数Ｎに関わらず、比較対象（Ｂａｓｅｌｉｎｅ）に対して全ての指標が上昇していることわかった。
また、Ｈｉｔｓ＠３，５，１０については、Ｎに比例して上昇していた。一方、Ｈｉｔｓ＠１は、Ｎ＝３の時に最大値をとり、Ｎ＝４，５，…と増加するにつれ減少する傾向が見られた。ＭＲＲに関しても同様に、Ｎ＝３の時が最大であった。
【００８３】
この分割したデータで補完された実例を説明する。例えば（たらこ茶漬け，ｉｓ＿ａ，お茶漬け）といった部分文字列がそのまま結びついた単純な補完例があり、２９８７位から１位に改善されていた。なお、ｉｓ＿ａは、上述したように述語であり、“たらこ茶漬け”＋“は〜である”を表している。また（ホットケーキ，味，甘い）といったように、部分文字列で結びついたエンティティの情報から改善されたと考えられる例もあり、８位から１位に改善されていた。
【００８４】
次に、リレーション毎の精度を確認した。ある分割データに対し、上述した方法によって算出されたＨｉｔｓ＠Ｋをリレーション毎に分類して算出した。Ｈｉｔｓ＠３，５，１０の精度が悪化しているリレーションは無く、全体としては比較対象以上の精度を保持していることがわかった。また“ｉｓ＿ａ”や“料理種”といったような階層構造やタイプ等を表しているリレーションは、比較対象に対し精度が大きく上昇していた。またそれ以外にも“味”や“温度”といったリレーションに関しても同等の精度上昇が確認できた。
【００８５】
［質問例］
生成できる質問例について説明する。学習方法は検証と同様であるが、知識グラフを分割せず、すべてを学習に用いた。比較対象とＮ＝３で展開した場合の２設定を説明する。例えば（月見団子，味，甘い）という事実について、質問リストを（月見団子，味，？）として順位とそのスコアを算出した。比較対象設定では、順位が５位、スコアが−４．００であった。Ｎ＝３とした場合は、順位が１位、スコアが−１．６８であった。「月見団子」と「甘い」が部分文字列の展開によって結びついたわけではないが、”団子”を末尾に持つ他のエンティティの味に関する情報を元に順位とスコアが改善されたものと考えられる。
【００８６】
また（五目炊き込みご飯，温度，あたたかい）という事実に関しても同様に順位とスコアを算出した。比較対象設定では、順位が７位、スコアが−４．１３であった。Ｎ＝３とした場合は、順位が１位、スコアが−１．６６であった。この例でも、"ご飯"を末尾に持つ料理との関連性が上がったことが改善の理由だと推察できる。
【００８７】
以上のように、本実施形態では、未知のワードが出現したときに、そのワードについての知識（属性）を既存の知識グラフ（データベース）に基づいて獲得する際の精度を向上させる。本実施形態では、知識グラフ中のワード（エンティティあるいはノード）の文字列の先頭又は末尾の数文字を擬似エンティティとして知識グラフに組み込む。本実施形態では、同じ部分文字列を持つエンティティ同士は似た性質を持つ可能性が高いという仮定において、擬似エンティティを介して繋がるエンティティの関連性が強くなり精度向上する。
【００８８】
なお、上述した例では、利用者の発話を音声信号として取得する例を説明したが、これに限らない。取得する発話は、テキストファイルであってもよい。この場合、言語理解部１４は、図１の鎖線のように、利用者が例えばキーボード（不図示）を操作して入力したテキストを取得するようにしてもよい。これにより、利用者が発話を行うことが困難であっても、知識グラフ補完装置１は未知の情報を取得することができる。
【００８９】
なお、上述した知識グラフ補完装置１は、例えば人型ロボット、受付システム、車両等の応答システム、スマートフォン等の応答システムに適用することも可能である。これらの装置やシステムに適用することで、これらの装置やシステムが利用する知識グラフを効率よく補完して、未知の情報を取得することができる。
【００９０】
なお、本発明における知識グラフ補完装置１の機能の全て又は一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより知識グラフ補完装置１が行う処理の全て一部を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００９１】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００９２】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形および置換を加えることができる。
【符号の説明】
【００９３】
１…知識グラフ補完装置、１１…収音部、１２…音声認識部、１３…知識グラフ記憶部、１４…言語理解部、１５…補完部、１６…対話生成部、１７…シナリオ記憶部、１８…出力部
【図１】
2020191009.tif 000006
【図２】
2020191009.tif 000007
【図３】
2020191009.tif 000008
【図４】
2020191009.tif 000009
【図５】
2020191009.tif 000010
【図６】
2020191009.tif 000011
【図７】
2020191009.tif 000012
【図８】
2020191009.tif 000013