IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 本田技研工業株式会社の特許一覧 ▶ 国立大学法人大阪大学の特許一覧

特許7270188知識グラフ補完装置、および知識グラフ補完方法
<>
  • 特許-知識グラフ補完装置、および知識グラフ補完方法 図1
  • 特許-知識グラフ補完装置、および知識グラフ補完方法 図2
  • 特許-知識グラフ補完装置、および知識グラフ補完方法 図3
  • 特許-知識グラフ補完装置、および知識グラフ補完方法 図4
  • 特許-知識グラフ補完装置、および知識グラフ補完方法 図5
  • 特許-知識グラフ補完装置、および知識グラフ補完方法 図6
  • 特許-知識グラフ補完装置、および知識グラフ補完方法 図7
  • 特許-知識グラフ補完装置、および知識グラフ補完方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-27
(45)【発行日】2023-05-10
(54)【発明の名称】知識グラフ補完装置、および知識グラフ補完方法
(51)【国際特許分類】
   G06F 16/28 20190101AFI20230428BHJP
   G06F 16/90 20190101ALI20230428BHJP
【FI】
G06F16/28
G06F16/90 100
【請求項の数】 5
(21)【出願番号】P 2019097044
(22)【出願日】2019-05-23
(65)【公開番号】P2020191009
(43)【公開日】2020-11-26
【審査請求日】2021-12-16
(73)【特許権者】
【識別番号】000005326
【氏名又は名称】本田技研工業株式会社
(73)【特許権者】
【識別番号】504176911
【氏名又は名称】国立大学法人大阪大学
(74)【代理人】
【識別番号】100165179
【弁理士】
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100126664
【弁理士】
【氏名又は名称】鈴木 慎吾
(74)【代理人】
【識別番号】100154852
【弁理士】
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100194087
【弁理士】
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】中野 幹生
(72)【発明者】
【氏名】駒谷 和範
(72)【発明者】
【氏名】林 克彦
(72)【発明者】
【氏名】藤岡 勇真
【審査官】松尾 真人
(56)【参考文献】
【文献】特開2018-092585(JP,A)
【文献】特開2018-151800(JP,A)
【文献】特開2019-074843(JP,A)
【文献】特開2019-020774(JP,A)
【文献】国際公開第2013/080406(WO,A1)
【文献】藤岡 勇真,対話システムにおける知識グラフの埋め込み表現を用いた応答生成の試み,第84回 言語・音声理解と対話処理研究会資料 (SIG-SLUD-B802) ,一般社団法人人工知能学会,2018年11月15日,pp.88~89,SIG-SLUD-B082-25
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06N 5/00-5/04
(57)【特許請求の範囲】
【請求項1】
2つのエンティティのそれぞれの前記エンティティを識別するための名称である識別文字列と前記エンティティ間の関係を示すラベルによるトリプルを要素とする集合であって、
グラフ構造を持つデータベースである知識グラフを記憶する知識グラフ記憶部と、
発話を取得する取得部と、
取得された発話の中に、前記知識グラフ記憶部に記憶されていない未知のエンティティがある場合、前記知識グラフ記憶部が記憶する既知のエンティティに関するノードとエッジの構成である既知のグラフのパターンに基づいて、前記識別文字列の先頭または末尾の部分文字列を抽出して先頭であるかを示す情報または末尾であるかを示し情報あるいは部分文字数を示す情報である識別子を前記識別文字列に付与して疑似エンティティとして作成し、前記エンティティと前記疑似エンティティとの関係をグラフで構成してトリプルを構成することで展開し、前記展開した結果に基づいて前記未知のエンティティについてのトリプル候補を生成し、スコア関数を計算することで前記トリプル候補の確信度を算出し、算出した確信度に基づいて、前記未知のエンティティに関する知識を獲得する補完部と
備える知識グラフ補完装置。
【請求項2】
前記補完部は、
前記確信度の順位が所定の順位より高く且つ所定の値よりも高いトリプル候補についての質問を生成し、又は、前記確信度の順位が所定の順位より高く又は所定の値よりも高いトリプル候補についての質問を生成し、
前記質問に対する回答が肯定の場合に、前記未知のエンティティについての情報を確定する、
請求項1に記載の知識グラフ補完装置。
【請求項3】
前記補完部は、
前記エンティティと前記疑似エンティティとのノードとノードの関係を、複素数表現とエルミート内積を利用したモデルであるComplExによって前記スコア関数を計算することで前記確信度を算出する、
請求項1又は請求項2に記載の知識グラフ補完装置。
【請求項4】
グラフ構造を持つデータベースである知識グラフにおける知識グラフ補完方法であって、
前記知識グラフは、前記知識グラフ中の2つのエンティティのそれぞれの前記エンティティを識別するための名称である識別文字列とこれらエンティティの関係を示すラベルによるトリプルを要素とする集合であって、
知識グラフ補完装置は、
記憶されている既知のエンティティに関するノードとエッジの構成である既知のグラフのパターンに基づいて、前記識別文字列の先頭または末尾の部分文字列を抽出して先頭であるかを示す情報または末尾であるかを示し情報あるいは部分文字数を示す情報である識別子を前記識別文字列に付与して擬似エンティティを生成するとともに、前記エンティティと前記擬似エンティティの間の関係として部分文字列であることを示すラベルで擬似トリプルを形成して、前記2つのエンティティ間のトリプルの集合である知識グラフに前記擬似トリプルを追加した第2の知識グラフを形成し、
未知のエンティティがある場合、前記第2の知識グラフについて、知識グラフ埋め込みモデルにおいてスコア関数を計算することで前記エンティティに関する前記未知のトリプルの確信度を計算し、確信度の順位の高く且つ確信度が所定値以上のものを新たな情報として推定し補完する、又は、確信度の順位の高く又は確信度が所定値以上のものを新たな情報として推定し補完する、
知識グラフ補完方法。
【請求項5】
前記新たな情報についての質問を人に対して行い、前記質問に対する回答が肯定の場合、
前記新たな情報を確定した情報として補完する、
請求項4に記載の知識グラフ補完方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、知識グラフ補完装置、および知識グラフ補完方法に関する。
【背景技術】
【0002】
対話システムでは、利用者に対して質問を行って情報を聞き出すことが行われる(例えば特許文献1参照)。必要な情報が知識ベース上にない場合、現状の対話システムは、話題を転換したり「わかりません」といった文脈上不自然な応答を行う場合がある。このように、データベースを参照して応答を行うタイプの対話システムは、データベースに明示的に記述されていない情報についてうまく応答できない。そこで、データベースに無い情報を自ら獲得できる対話システムの構築が望まれる。
【0003】
これに対して、本発明の発明者らは、グラフ構造を持つ知識ベースである知識グラフから潜在的な情報を推論することで,従来困難であった応答が可能な対話システムの構築することを提案している(非特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【文献】特願2018-062055号
【非特許文献】
【0005】
【文献】藤岡勇真、林克彦、中野幹生、駒谷和範、“対話システムにおける知識グラフの埋め込み表現を用いた応答生成の試み”、人工知能学会研究資料、人工知能学会、2018、SIG-SLUD, Vol. B5, No. 02, pp. 88-89
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、このような従来のシステムにおいて、さらなる知識グラフ補完の精度を向上が望まれている。
【0007】
本発明は、上記の問題点に鑑みてなされたものであって、知識グラフ補完の精度を向上させることができる知識グラフ補完装置、および知識グラフ補完方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
(1)上記目的を達成するため、本発明の一態様に係る知識グラフ補完装置<1>は、2つのエンティティのそれぞれの識別文字列と前記エンティティ間の関係を示すラベルによるトリプルを要素とする集合であって、グラフ構造を持つデータベースである知識グラフを記憶する知識グラフ記憶部<13>と、発話を取得する取得部<収音部11、音声認識部12、言語理解部14>と、取得された発話の中に、前記知識グラフ記憶部に記憶されていない未知のエンティティがある場合、前記知識グラフ記憶部が記憶する既知のグラフのパターンに基づいて、識別文字列を考慮した埋め込み表現に展開し、展開した結果に基づいて前記未知のエンティティについてのトリプル候補を生成し、前記トリプル候補の確信度を算出し、算出した確信度に基づいて、前記未知のエンティティに関する知識を獲得する補完部<15>と、を備え、前記補完部は、前記知識グラフ記憶部に記憶された既存のエンティティおよび前記未知のエンティティの識別文字列の部分文字列を擬似エンティティとして生成し、前記既存のエンティティ又は前記未知のエンティティと、前記擬似エンティティとの関係を部分文字列であることを示すラベルを付与して形成した擬似トリプルを生成し、前記トリプルおよび擬似トリプルの集合に基づいて、前記トリプル候補の確信度を算出する。
【0009】
(2)また、前記補完部は、前記確信度の順位が所定の順位より高く且つ所定の値よりも高いトリプル候補についての質問を生成し、又は、前記確信度の順位が所定の順位より高く又は所定の値よりも高いトリプル候補についての質問を生成し、
前記質問に対する回答が肯定の場合に、前記未知のエンティティについての情報を確定するようにしてもよい。
【0010】
(3)また、本発明の一態様に係る知識グラフ補完装置において、前記補完部は、
複素数表現とエルミート内積を利用したモデルであるComplExによって前記確信度を算出するようにしてもよい。
【0011】
(4)上記目的を達成するため、本発明の一態様に係る知識グラフ補完方法は、グラフ構造を持つデータベースである知識グラフにおける知識グラフ補完方法であって、前記知識グラフは、前記知識グラフ中の2つのエンティティのそれぞれの識別文字列とこれらエンティティの関係を示すラベルによるトリプルを要素とする集合であって、知識グラフ補完装置は、前記エンティティの識別文字列の部分文字列による擬似エンティティを生成するとともに、前記エンティティと前記擬似エンティティの間の関係として部分文字列であることを示すラベルで擬似トリプルを形成して、前記2つのエンティティ間のトリプルの集合である知識グラフに前記擬似トリプルを追加した第2の知識グラフを形成し、前記第2の知識グラフについて、知識グラフ埋め込みモデルに従ってエンティティに関する未知のトリプルの確信度を計算し、確信度の順位の高く且つ確信度が所定値以上のものを新たな情報として推定し補完する、又は、確信度の順位の高く又は確信度が所定値以上のものを新たな情報として推定し補完する。
【0012】
(5)また、本発明の一態様に係る知識グラフ補完方法において、前記新たな情報についての質問を人に対して行い、前記質問に対する回答が肯定の場合、
前記新たな情報を確定した情報として補完するようにしてもよい。
【発明の効果】
【0013】
上述した(1)又は(4)によれば、知識グラフ補完の精度を向上させることができる。
【0014】
また、上述した(2)によれば、知識グラフ上にないトリプル候補についてユーザに質問することで知識獲得を試みることができる。また、確信度が低い、すなわち推定結果が不確かな場合にも利用者に不確かな質問を問いかけてしまうことを防ぎ、明らかに間違っているような質問で利用者の対話意欲を削がないようにすることができる。
また、上述した(3)によれば、トリプルの存在尤度を適切に計算することができる。
【図面の簡単な説明】
【0015】
図1】実施形態に係る知識グラフ補完装置の構成例を示す図である。
図2】実施形態の知識グラフ記憶部が記憶する知識グラフの例を示す図である。
図3】知識グラフの情報が獲得されていない例を示す図である。
図4】実施形態に係る知識獲得を行う対話の例と知識グラフ補完装置が行う処理の概略を示す図である。
図5】実施形態に係る「もみじ丼」と「親子丼」に対するN=2での展開例を示す図である。
図6】質問リストに確信度を付与した例である。
図7】実施形態に係る知識グラフ補完装置が行う知識獲得処理のフローチャートである。
図8】検証における各設定における精度指標及び学習データと検証結果を示す図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について図面を参照しながら説明する。なお、以下の説明に用いる図面では、各部材を認識可能な大きさとするため、各部材の縮尺を適宜変更している。
【0017】
[知識グラフ補完装置1の構成]
図1は、本実施形態に係る知識グラフ補完装置1の構成例を示す図である。
図1に示すように、知識グラフ補完装置1は、収音部11(取得部)、音声認識部12(取得部)、知識グラフ記憶部13(取得部)、言語理解部14、補完部15、対話生成部16、シナリオ記憶部17、および出力部18(対話生成部)を備える。
【0018】
知識グラフ補完装置1は、利用者との対話を行い、記憶する知識グラフに無い情報を補完する。なお、知識グラフについては後述する。
【0019】
収音部11は、マイクロホンであり、音声信号を収音し、収音した音声信号を音声認識部12に出力する。なお、収音部11は、複数のマイクロホンで構成されるマイクロホンアレイであってもよい。
【0020】
音声認識部12は、収音部11が出力する音声信号に対して音声認識処理を行う。音声認識処理は、例えば音源定位処理、雑音抑圧処理、音源同定処理、音源分離処理等の処理である。音声認識部12は、認識した結果を例えばテキスト形式で言語理解部14に出力する。
【0021】
知識グラフ記憶部13は、知識グラフを記憶する。なお、知識グラフ記憶部13は、ネットワーク上に置かれていてもよい。ここで、知識グラフとは、エンティティ(Entity)の繋がりの関係で示されている。また、知識グラフ記憶部13は、後述する確信度との比較で用いられるしきい値を記憶する。
【0022】
言語理解部14は、音声認識部12が出力するテキストを、知識グラフ記憶部13が記憶する知識グラフを参照して、発話内容を理解する。言語理解部14は、音声認識部12が出力するテキストを理解できた場合、すなわち知識グラフに情報が存在していた場合、理解した結果を対話生成部16に出力する。言語理解部14は、音声認識部12が出力するテキストを理解できなかった場合、すなわち知識グラフに情報が存在していなかった場合、知識グラフに情報が無かった単語を補完部15に出力する。また、言語理解部14は、質問文に対する利用者の応答が肯定を示す内容の場合、質問内容に基づいて知識グラフを補完する補完指示を補完部15に出力する。言語理解部14は、質問文に対する利用者の応答が否定を示す内容の場合、理解できなかったことを示す情報を対話生成部16に出力する。
【0023】
補完部15は、言語理解部14が出力する知識グラフに情報が存在していなかった単語を取得する。補完部15は、取得した単語に対して質問情報を生成し、生成した質問情報を対話生成部16に出力する。なお、質問情報の生成方法については後述する。補完部15は、言語理解部14が出力する補完指示に基づいて、質問内容に基づいて知識グラフを補完するように知識グラフに記憶させる。
【0024】
対話生成部16は、補完部15が出力する質問情報と、シナリオ記憶部17が記憶する言語モデルに基づいて質問文を生成し、生成した質問文を出力部18に出力する。又は、言語理解部14が出力する理解した結果と、シナリオ情報に基づいて例えば対話を継続する対話文を生成し、生成した対話文を出力部18に出力する。
【0025】
シナリオ記憶部17は、対話シーンに応じたシナリオを記憶する。また、シナリオ記憶部17は、言語モデルも記憶する。
【0026】
出力部18は、スピーカーである。出力部18は、対話生成部16が出力する音声信号を再生する。
【0027】
[知識グラフの例]
次に、知識グラフ(参考文献1参照)の例を説明する。
図2は、本実施形態の知識グラフ記憶部13が記憶する知識グラフの例を示す図である。図2に示す例は、知識グラフが記憶する単語が「親子丼」の例である。符号g101、g141、g151~g154、およびg161は、ノードである。符号g111、g121~124、およびg131は、エッジである。例えば、符号g111のエッジは味である。符号g121のエッジは材料である。符号g131のエッジは料理種である。このように、「親子丼」については、味、材料、および料理種が獲得されている。なお、図2に示した知識グラフは一例であり、知識グラフの構成は、これに限らない。
【0028】
ここで、知識グラフにおいて知識を獲得できていない例を説明する。
図3は、知識グラフの情報が獲得されていない例を示す図である。図3に示す例は、単語が「もみじ丼」の例である。符号g101a、g141a、g151a~g153a、およびg161aは、ノードである。符号g111a、g121a~123a、およびg131aは、エッジである。例えば、符号g111aのエッジは味である。符号g121aのエッジは材料である。符号g131aのエッジは料理種である。このように、「もみじ丼」については、味、材料が獲得されているが、料理種が獲得できていない。
【0029】
参考文献1;Angles, R. and Gutierrez, C., “Survey of Graph Database Models”, ACM Comput, Surv., 2008, Vol. 40, No. 1, pp. 1:1-1:39
【0030】
[知識獲得を行う対話の枠組み]
次に、知識獲得を行う対話の例と知識グラフ補完装置1が行う処理の概略を説明する。
図4は、本実施形態に係る知識獲得を行う対話の例と知識グラフ補完装置1が行う処理の概略を示す図である。
【0031】
まず、知識グラフ補完装置1は、利用者が発話した「この前、もみじ丼を初めて食べたんですけど 美味しかったですね」を取得する。
【0032】
知識グラフ補完装置1は、知識グラフ記憶部13を探索して「もみじ丼」に関する情報が不足していることを認識する。この場合、図3に示したように、料理種の情報が不足していたとする。
【0033】
次に、知識グラフ補完装置1は、不明な情報がある「料理種」の関係(リレーション)に基づいて、質問リストを生成する。
【0034】
次に、知識グラフ補完装置1は、既知のグラフパターンに基づき埋め込み表現に変換する。なお、埋め込み表現については後述する。
【0035】
次に、知識グラフ補完装置1は、埋め込み表現から質問リスト内のトリプルに対し存在尤度を表すスコアを計算し確信度として付与する。
【0036】
次に、知識グラフ補完装置1は、最も確信度が高く、かつその確信度がしきい値以上の質問を選択し、利用者に質問「もみじ丼って和食ですか?」を発することで、知識獲得を試みる。なお、本実施形態では、確信度による順位だけでなく、確信度の絶対値も、しきい値によって考慮する。この理由は、確信度が低い、すなわち推定結果が不確かな場合にも利用者に問いかけてしまうことを防ぎ、明らかに間違っているような質問で利用者の対話意欲を削がないようにするためである。
【0037】
次に、知識グラフ補完装置1は、利用者の発話「そうですね!」が肯定を表しているため、「もみじ丼」の料理種が「和食」であることを知識として獲得し、知識グラフに記憶する。
【0038】
このように、本実施形態では、利用者が発した音声信号の中に知識グラフに無い情報があった場合、その情報を獲得するための質問を生成し、その質問に基づいて知識グラフを補完する。
【0039】
[知識グラフの補完方法]
次に、知識グラフの補完方法例を説明する。
図4に示したように、補完部15は、トリプルをユーザから獲得するために質問リストを生成する。
【0040】
一般に知識グラフは、ラベル付き有向グラフとして表される。有向グラフ上のエッジには、リレーションを表すラベルが付与されている。ノードはエンティティに相当する。知識グラフ上のエンティティの集合をε、リレーションの集合をRとする。e、e∈ε、ω∈Rに対して三つ組(i,j,k)をトリプルと定義する。この時i,j,kをそれぞれ主語、述語、目的語と定義する。トリプルは、2つのエンティティ間の関係を表現する知識グラフの基本的な要素である。知識グラフGはトリプルを要素とする集合として表せる。
【0041】
図4に示した例では、「もみじ丼」に対して料理種の情報が獲得されていない。このため、補完部15は、トリプル(もみじ丼、料理種、?)と目的語を穴埋めするように質問リストを生成する。本実施形態で生成する質問リストは、この例のように目的語を穴埋めするような形式で生成する。補完部15は、質問において、シナリオ記憶部17が記憶する情報を参照して、対話の文脈や話題に関連する質問リストを生成するようにし、急な話題転換を避けるようにする。
【0042】
[識別文字列を用いた知識グラフ埋め込み]
次に、補完部15は、既知のグラフパターンに基づいて、埋め込み表現(参考文献2参照)に変換する。モデルはエンティティ同士がどのようにリンクしているかを元に埋め込み表現を学習するが、全てのエンティティが持つ識別文字列(名称)に関する情報は学習に組み込まれていない。そこで、本実施形態では、知識グラフ上のエンティティの識別文字列を部分文字列に分解し、先頭もしくは末尾の数文字を擬似エンティティとして作成し、組み込む。似た部分文字列を持つエンティティ同士は似た性質を持つ可能性が高いという仮定のもとで、このようなエンティティ同士の関連性が強くなり補完精度の向上に結びつける。なお、埋め込み表現は、潜在空間への埋め込みである。
【0043】
本実施形態では、N文字以下の先頭もしくは末尾の部分文字列で擬似的にエンティティを作成し新たにトリプルを構成することを、N文字で展開すると記述する。図5は、本実施形態に係る「もみじ丼」と「親子丼」に対するN=2での展開例を示す図である。また、図5は、2文字で展開を行った例である。
【0044】
補完部15は、展開の対象となっている「もみじ丼」と「親子丼」の先頭と末尾それぞれの1文字と2文字を抽出する。補完部15は、「もみじ丼」に対して、先頭1文字の「も」と、先頭2文字の「もみ」と、末尾2文字の「じ丼」と、末尾1文字の「丼」を抽出する。補完部15は、「親子丼」に対して、先頭1文字の「親」と、先頭2文字の「親子」と、末尾2文字の「子丼」と、末尾1文字の「丼」を抽出する。本実施形態では、抽出した先頭1、2文字、末尾1、2文字を、疑似エンティティという。
【0045】
また、補完部15は、展開した先頭1、2文字、末尾1、2文字に対して、部分文字列であることを示すsubsを先頭に付けた識別子を持つエンティティ(擬似エンティティ)を作成する。この結果、擬似エンティティとして、「subs_も」、「subs_もみ」、「subs_じ丼」、「subs_丼」、「subs_親」、「subs_子」、「subs_子丼」、「subs_丼」が作成される。
【0046】
ここで、図5において、ラベル「prefix_1」は先頭1文字を表す。ラベル「prefix_2」は先頭2文字を表す。ラベル「suffix_1」は末尾1文字を表す。ラベル「suffix_2」は末尾2文字を表す。そして展開元のエンティティから作成した疑似エンティティに向けてprex_Nもしくはsuffix_Nというリレーションでトリプルを構成する。図5の例では、2つの料理が「subs_丼」という疑似エンティティを経由して繋がっている。本実施形態では、このような展開を、部分文字列を用いた知識グラフ埋め込みと呼ぶ。
【0047】
なお、図5に示した例では、N=2、すなわち2文字の例を説明したが、Nは3以上(3文字以上)であってもよい。例えば、補完部15は、料理種が未知の「たらこ茶漬け」に対して、先頭から1文字を「た」、先頭から2文字を「たら」、先頭から3文字が「たらこ」、末尾から3文字を「茶漬け」、末尾から2文字を「漬け」、末尾から1文字を「け」を抽出するようにしてもよい。また、補完部15は、料理種が既知の「のり茶漬け」に対して、先頭から1文字を「の」、先頭から2文字を「のり」、先頭から3文字が「のり茶」、末尾から3文字を「茶漬け」、末尾から2文字を「漬け」、末尾から1文字を「け」を抽出するようにしてもよい。
【0048】
参考文献2;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
【0049】
[知識グラフ埋め込みとComplEx]
トリプルの存在尤度の計算は、知識グラフの埋め込み表現を利用する。知識グラフ埋め込みは、知識グラフに対する代表的な解析手法として知られている。低次元線形空間に知識グラフを埋め込み汎化させることで、グラフ上の欠損したリンクの有無を推論し補完する。知識グラフは、|ε|×|R|×|ε|の3階テンソルXとして表現することができ、Xの(i,j,k) 要素xi,j,kは次式(1)のように表される。
【0050】
【数1】
【0051】
この表現を用いて、知識グラフ埋め込みではトリプル(i,j,k)が知識グラフ上に存在する確率P(xi,j,k=1)を、モデルに対応したスコア関数φを用いて次式(2)のように表す。
【0052】
【数2】
【0053】
式(2)においてσ(・)はシグモイド関数であり、Θは各モデルにおけるパラメータを表す。
ここで、ComplEx(参考文献3)は知識グラフ埋め込みモデルの一種である。なお、ComplExは、ノードとノードとの関係を表す行列である。ComplExは、複素数表現とエルミート内積を利用したモデルとして知られる。ここで、C(Cは複素数全体の集合)を複素n-次元空間とし、e,e∈C,w∈Cをそれぞれエンティティの関連性(リレーション)に関するD次元の埋め込みベクトルとし、Re(x)をxの実部とする。これによりComplExにおけるスコア関数φCompは、次式(3)のように表される。
【0054】
【数3】
【0055】
ここでベクトルvのl番目の要素をvlとした時、<a,b,c>:=Σと定義する。v_はvの複素共役ベクトルである。
【0056】
補完部15は、このように求めたスコア関数を確信度とし、質問リストにこの確信度を付与する。図6は、質問リストに確信度を付与した例である。図6に示す例では、(もみじ丼,料理種,和食)のトリプルの確信度が0.0015で最も大きい。
【0057】
参考文献3;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
【0058】
このように、本実施形態では、取得した発話の中に知識グラフ記憶部13に記憶されていない未知のエンティティがある場合、補完部15が、知識グラフ記憶部13が記憶する既知のグラフのパターンに基づいて、識別文字列を考慮したの埋め込み表現に展開するようにした。そして、補完部15が、展開した結果に基づいて未知のエンティティについてのトリプル候補を生成し、生成したトリプル候補の確信度を算出するようにした。そして、補完部15が、算出した確信度に基づいて、未知のエンティティに関する知識を獲得するようにした。
【0059】
例えば「もみじ丼」と「親子丼」の間にはリンクがなく、「もみじ丼」が未知のエンティティである場合に、疑似エンティティ「subs_丼」を介して(親子丼,suffix_1,subs_丼)と(もみじ丼,suffix_1,subs_丼)という述語と目的語が同一の関係を持つことになる。このことから「もみじ丼」と「親子丼」は、類似している可能性があるという情報をモデルに与えることができる。本実施形態では、この情報を用いて、例えば「親子丼」が持つ「料理種が和食」という属性を、「もみじ丼」も同様に持つかもしれない、という推論をComplExにより行うようにした。そして、本実施形態では、(親子丼,料理種,和食)というトリプルが学習データに含まれる場合(既知の場合)に、学習データには存在しない(もみじ丼,料理種,?)のようなトリプルのうち、ComplExによって求めた確信度が最も高い(もみじ丼,料理種,和食)トリプルを用いて、知識を獲得するようにした。これにより、本実施形態によれば、未知のエンティティに関する知識を獲得することができる。
【0060】
[処理手順例]
次に、処理手順例を説明する。図7は、本実施形態に係る知識グラフ補完装置が行う知識獲得処理のフローチャートである。
【0061】
(ステップS1)収音部11は、音声信号を収音する。続けて、音声認識部12は、音声信号を取得する。
【0062】
(ステップS2)音声認識部12は、取得した音声信号に対して音声認識処理を行う。
【0063】
(ステップS3)言語理解部14は、音声認識処理されたフレーズの中に、リレーションが不明な情報があるか否かを判別する。言語理解部14は、リレーションが不明な情報がないと判別した場合(ステップS3;NO)、処理を終了する。言語理解部14は、リレーションが不明な情報があると判別した場合(ステップS3;YES)、ステップS4の処理に進める。
【0064】
(ステップS4)補完部15は、不明な情報があるリレーションから質問リストを生成する。
【0065】
(ステップS5)補完部15は、既知のグラフパターンに基づいて、不明な情報を埋め込み表現に変換する。
【0066】
(ステップS6)補完部15は、変換した埋め込み表現を、部分文字列を用いた知識グラフの埋め込みに展開する。
【0067】
(ステップS7)補完部15は、展開した結果に基づいて、質問リストの質問毎に確信度(スコア)を計算して、質問に確信度を付与する。
【0068】
(ステップS8)補完部15は、確信度が最も大きく、かつ確信度の絶対値がしきい値以上であるトリプル(主語、述語、目的語)を選択する。
【0069】
(ステップS9)対話生成部16は、補完部15が選択したトリプルと、シナリオ記憶部17が記憶する言語モデルに基づいて質問文を生成する。続けて、出力部18は質問文を出力する。
【0070】
(ステップS10)収音部11は、音声信号を収音する。続けて、音声認識部12は、音声信号を取得する。
【0071】
(ステップS11)音声認識部12は、取得した音声信号に対して音声認識処理を行う。
【0072】
(ステップS12)言語理解部14は、音声認識処理された結果、肯定的な発話であったか否かを判別する。言語理解部14は、肯定的な発話であったと判別した場合(ステップS12;YES)、ステップS13の処理に進める。言語理解部14は、否定的な発話であったと判別した場合(ステップS12;NO)、ステップS14の処理に進める。
【0073】
(ステップS13)補完部15は、質問に用いたトリプルに基づいて、未知の情報が獲得できたとして、知識グラフに情報を記憶させる。処理後、知識獲得処理を終了する。
【0074】
(ステップS14)対話生成部16は、ステップS1で収音された発話に不明な情報があったため、不明な情報に対する質問文を、シナリオ記憶部17が記憶するシナリオに基づいて質問文を生成する。続けて、出力部18は質問文を出力する。処理後、知識獲得処理を終了する。
【0075】
なお、ステップS14で出力する質問文は、例えばステップS1の発話が「この前 もみじ丼を初めて食べたんですけど 美味しかったですね」の場合、「もみじ丼は、どのような料理ですか?」等の質問文を生成する。そして、知識グラフ補完装置1は、本実施形態の保管方法で知識を獲得できなかった場合に、この質問に対する回答に基づいて、不明な情報を獲得するようにしてもよい。
【0076】
[検証例]
次に、上述した部分文字列を用いた知識グラフ埋め込みによる補完の精度を検証し,その効果を確認した結果を説明する。
【0077】
まず、検証に用いたデータについて説明する。
検証に使用した知識グラフは、対話システムでの運用を目的として、料理に関する表形式のデータベースを元に作成されたものである。詳述すると、知識グラフには、料理やその材料、料理種、味、食べられる場所などが格納されている.このデータベースは、人手で作成されたものであり部分的にしか情報がない。このデータベースから作成される知識グラフに対して、上述した手法を適用して情報の補完を行った。
【0078】
この知識グラフはエンティティ数|ε|=7289、リレーション数|R|=14であり、そのトリプル数は22321である。エンティティに付与された識別文字列の長さの平均は5.88(文字)であり、標準偏差は3.18(文字)である。
【0079】
次に、検証方法を説明する。
精度検証では、検証用の知識グラフを無作為に5分割し、その内4つをトレーニングデータG’、1つをテストデータH’とする5分割交差検証を行った。また精度検証では、トレーニングデータを埋め込み、その埋め込み表現とH’から知識グラフ補完で一般に用いられる精度指標であるHits@KとMRRを算出した。なお、Hits@Kは、(i’,j’,k’;Θ)の内k’を全エンティティと入れ替えてスコアを計算し、得られるランキング中でφComp(i’,j’,k’;Θ)が上位K位に入る割合を指す。また、MRRは、平均逆順位とも呼ばれ,前述のランキングにおけるφComp(i’,j’,k’;Θ)の順位の逆数の平均として表される。
【0080】
部分文字列を用いた知識グラフ埋め込みの効果を検証するため、展開文字数N=1,2,…,7としてトレーニングデータを展開した場合に加え、比較対象として展開を行わない場合のHits@KとMRRを算出した。展開時のトレーニングデータに関する詳細を図6の右部に示す。また、図8の左部は5分割交差検証の結果を示す。図8は、検証における各設定における精度指標及び学習データと検証結果を示す図である。
【0081】
テストデータ数は4464個である。検証では、全ての場合に共通してComplExによる埋め込みを適用した。埋め込み次元は複素200次元としてロジスティック回帰による学習を行った。学習率調整は参考文献3の手法に倣いAdagradを利用し、イテレーション数は1000、負例サンプリング数は5とした。指標算出時のランキングでは、展開して得られた部分文字列エンティティを含むトリプルをランキングの対象外とした.検証では、同様に既にテストデータに含まれるトリプルに関してもランキングの対象外とした。
【0082】
次に、検証結果を説明する。
図8の左部に示すように、展開文字数Nに関わらず、比較対象(Baseline)に対して全ての指標が上昇していることわかった。
また、Hits@3,5,10については、Nに比例して上昇していた。一方、Hits@1は、N=3の時に最大値をとり、N=4,5,…と増加するにつれ減少する傾向が見られた。MRRに関しても同様に、N=3の時が最大であった。
【0083】
この分割したデータで補完された実例を説明する。例えば(たらこ茶漬け,is_a,お茶漬け)といった部分文字列がそのまま結びついた単純な補完例があり、2987位から1位に改善されていた。なお、is_aは、上述したように述語であり、“たらこ茶漬け”+“は~である”を表している。また(ホットケーキ,味,甘い)といったように、部分文字列で結びついたエンティティの情報から改善されたと考えられる例もあり、8位から1位に改善されていた。
【0084】
次に、リレーション毎の精度を確認した。ある分割データに対し、上述した方法によって算出されたHits@Kをリレーション毎に分類して算出した。Hits@3,5,10の精度が悪化しているリレーションは無く、全体としては比較対象以上の精度を保持していることがわかった。また“is_a”や“料理種”といったような階層構造やタイプ等を表しているリレーションは、比較対象に対し精度が大きく上昇していた。またそれ以外にも“味”や“温度”といったリレーションに関しても同等の精度上昇が確認できた。
【0085】
[質問例]
生成できる質問例について説明する。学習方法は検証と同様であるが、知識グラフを分割せず、すべてを学習に用いた。比較対象とN=3で展開した場合の2設定を説明する。例えば(月見団子,味,甘い)という事実について、質問リストを(月見団子,味,?)として順位とそのスコアを算出した。比較対象設定では、順位が5位、スコアが-4.00であった。N=3とした場合は、順位が1位、スコアが-1.68であった。「月見団子」と「甘い」が部分文字列の展開によって結びついたわけではないが、”団子”を末尾に持つ他のエンティティの味に関する情報を元に順位とスコアが改善されたものと考えられる。
【0086】
また(五目炊き込みご飯,温度,あたたかい)という事実に関しても同様に順位とスコアを算出した。比較対象設定では、順位が7位、スコアが-4.13であった。N=3とした場合は、順位が1位、スコアが-1.66であった。この例でも、"ご飯"を末尾に持つ料理との関連性が上がったことが改善の理由だと推察できる。
【0087】
以上のように、本実施形態では、未知のワードが出現したときに、そのワードについての知識(属性)を既存の知識グラフ(データベース)に基づいて獲得する際の精度を向上させる。本実施形態では、知識グラフ中のワード(エンティティあるいはノード)の文字列の先頭又は末尾の数文字を擬似エンティティとして知識グラフに組み込む。本実施形態では、同じ部分文字列を持つエンティティ同士は似た性質を持つ可能性が高いという仮定において、擬似エンティティを介して繋がるエンティティの関連性が強くなり精度向上する。
【0088】
なお、上述した例では、利用者の発話を音声信号として取得する例を説明したが、これに限らない。取得する発話は、テキストファイルであってもよい。この場合、言語理解部14は、図1の鎖線のように、利用者が例えばキーボード(不図示)を操作して入力したテキストを取得するようにしてもよい。これにより、利用者が発話を行うことが困難であっても、知識グラフ補完装置1は未知の情報を取得することができる。
【0089】
なお、上述した知識グラフ補完装置1は、例えば人型ロボット、受付システム、車両等の応答システム、スマートフォン等の応答システムに適用することも可能である。これらの装置やシステムに適用することで、これらの装置やシステムが利用する知識グラフを効率よく補完して、未知の情報を取得することができる。
【0090】
なお、本発明における知識グラフ補完装置1の機能の全て又は一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより知識グラフ補完装置1が行う処理の全て一部を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0091】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0092】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形および置換を加えることができる。
【符号の説明】
【0093】
1…知識グラフ補完装置、11…収音部、12…音声認識部、13…知識グラフ記憶部、14…言語理解部、15…補完部、16…対話生成部、17…シナリオ記憶部、18…出力部
図1
図2
図3
図4
図5
図6
図7
図8