(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024060429
(43)【公開日】2024-05-02
(54)【発明の名称】文の知識誤りを検出する知識判定装置、プログラム及び方法
(51)【国際特許分類】
G06F 16/90 20190101AFI20240424BHJP
【FI】
G06F16/90 100
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022167793
(22)【出願日】2022-10-19
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100135068
【弁理士】
【氏名又は名称】早原 茂樹
(72)【発明者】
【氏名】古舞 千暁
(72)【発明者】
【氏名】王 亜楠
(72)【発明者】
【氏名】池田 和史
(72)【発明者】
【氏名】和田 真弥
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175EA01
5B175FA03
5B175KA12
(57)【要約】
【課題】文の知識誤りを検出する装置等を提供する。
【解決手段】実体語同士を関係語で結び付けた知識を蓄積した知識データベースと、文から、所定条件の実体語を抽出する実体語抽出手段と、実体語同士の組合せとなる実体語ペアを抽出する実体語ペア抽出手段と、当該文から実体語ペアにおける関係語を推定する関係語推定手段と、実体語ペアを、関係語推定手段によって推定された関係語で結んだ対話グラフを生成する対話グラフ生成手段と、知識データベースを用いて、実体語ペアにおける関係語を検索し、実体語ペアを当該関係語で結んだ知識グラフを生成する知識グラフ生成手段と、対話グラフ及び知識グラフそれぞれから、実体語毎に特徴量を生成する特徴量生成手段と、実体語毎に、対話グラフの当該実体語の特徴量と、知識グラフの当該実体語の特徴量とを入力し、知識正当又は知識誤りに分類する分類学習エンジンとを有する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
文の知識誤りを検出する知識判定装置において、
実体語同士を関係語で結び付けた知識を蓄積した知識データベースと、
文から、所定条件の実体語を抽出する実体語抽出手段と、
実体語同士の組合せとなる実体語ペアを抽出する実体語ペア抽出手段と、
当該文から実体語ペアにおける関係語を推定する関係語推定手段と、
実体語ペアを、関係語推定手段によって推定された関係語で結んだ対話グラフを生成する対話グラフ生成手段と、
知識データベースを用いて、実体語ペアにおける関係語を検索し、実体語ペアを当該関係語で結んだ知識グラフを生成する知識グラフ生成手段と、
対話グラフ及び知識グラフそれぞれから、実体語毎に特徴量を生成する特徴量生成手段と、
実体語毎に、対話グラフの当該実体語の特徴量と、知識グラフの当該実体語の特徴量とを入力し、知識正当又は知識誤りに分類する分類学習エンジンと
を有することを特徴とする知識判定装置。
【請求項2】
ユーザの発話文に対する応答文の知識誤りを検出するために、
実体語抽出手段は、発話文及び応答文から、所定条件の実体語を抽出し、
実体語ペア抽出手段は、発話文の実体語と応答文の実体語とのペア、及び/又は、応答文の実体語同士の組合せとなる実体語ペアを抽出し、
分類学習エンジンは、応答文に含まれる実体語について分類する
ことを特徴とする請求項1に記載の知識判定装置。
【請求項3】
実体語抽出手段は、所定条件として、固有表現の実体語、及び/又は、予め登録された実体語を抽出する
ことを特徴とする請求項1又は2に記載の知識判定装置。
【請求項4】
対話グラフを視覚的に表示すると共に、知識誤りに分類された実体語のノードを強調的に表示する対話グラフ表示手段を
更に有することを特徴とする請求項1又は2に記載の知識判定装置。
【請求項5】
関係語推定手段は、
当該文から、実体語ペアにおける関係語を推定する対話関係語推定エンジンと、
実体語ペア抽出手段によって抽出された実体語ペアの中で、対話関係語推定エンジンによって関係語が推定されていない実体語ペアを削除する実体語ペア削除機能と
を含むことを特徴とする請求項1又は2に記載の知識判定装置。
【請求項6】
対話グラフ生成手段は、関係語推定手段の対話関係語推定エンジンによって推定された関係語で実体語ペアを結んだ対話グラフを生成し、
知識グラフ生成手段は、知識データベースを用いて、関係語推定手段の実体語ペア削除機能によって削除されなかった実体語ペアに対する関係語を検索し、実体語ペアを当該関係語で結んだ知識グラフを生成する
ことを特徴とする請求項5に記載の知識判定装置。
【請求項7】
知識データベースは、正しい知識として、実体語同士を関係語で結んだトリプルの表現形式で蓄積したものである
ことを特徴とする請求項1又は2に記載の知識判定装置。
【請求項8】
特徴量生成手段は、GNN(Graph Neural Network)であり、
分類学習エンジンは、FFN(Feed Forward Neural network)である
ことを特徴とする請求項1又は2に記載の知識判定装置。
【請求項9】
分類学習エンジンを事前に訓練するために、
当該文に代えて、正しい知識に基づく発話文及び応答文を蓄積した対話データベースを有すると共に、
対話データベースの発話文及び応答文から実体語抽出手段及び実体語ペア抽出手段によって抽出された所定範囲の実体語ペアを、関係語推定手段によって推定された関係語で結んだ正例グラフを生成する正例グラフ生成手段と、
正例グラフから、任意の実体語を他の実体語に置換し、且つ/又は、任意の関係語を他の関係語に置換した若しくは当該関係語を削除した負例グラフを生成する負例グラフ生成手段と
を更に有し、
特徴量生成手段は、正例グラフ及び負例グラフそれぞれから、実体語毎に特徴量を生成し、
分類学習エンジンは、訓練段階として、実体語毎に、正例グラフの特徴量及び負例グラフの特徴量を入力し、負例グラフとして当該実体語が置換されたものでない場合には知識正当のラベルを出力し、当該実体語が置換されたものである場合には知識誤りのラベルを出力するように訓練する
ことを特徴とする請求項1又は2に記載の知識判定装置。
【請求項10】
文の知識誤りを検出する装置に搭載されたコンピュータを機能させるプログラムにおいて、
実体語同士を関係語で結び付けた知識を蓄積した知識データベースと、
文から、所定条件の実体語を抽出する実体語抽出手段と、
実体語同士の組合せとなる実体語ペアを抽出する実体語ペア抽出手段と、
当該文から実体語ペアにおける関係語を推定する関係語推定手段と、
実体語ペアを、関係語推定手段によって推定された関係語で結んだ対話グラフを生成する対話グラフ生成手段と、
知識データベースを用いて、実体語ペアにおける関係語を検索し、実体語ペアを当該関係語で結んだ知識グラフを生成する知識グラフ生成手段と、
対話グラフ及び知識グラフそれぞれから、実体語毎に特徴量を生成する特徴量生成手段と、
実体語毎に、対話グラフの当該実体語の特徴量と、知識グラフの当該実体語の特徴量とを入力し、知識正当又は知識誤りに分類する分類学習エンジンと
してコンピュータを機能させることを特徴とするプログラム。
【請求項11】
文の知識誤りを検出する装置の知識判定方法において、
装置は、実体語同士を関係語で結び付けた知識を蓄積した知識データベースを有し、
文から、所定条件の実体語を抽出する第1のステップと、
実体語同士の組合せとなる実体語ペアを抽出する第2のステップと、
当該文から実体語ペアにおける関係語を推定する第3のステップと、
実体語ペアを、第3のステップによって推定された関係語で結んだ対話グラフを生成すると共に、知識データベースを用いて、実体語ペアにおける関係語を検索し、実体語ペアを当該関係語で結んだ知識グラフを生成する第4のステップと、
対話グラフ及び知識グラフそれぞれから、実体語毎に特徴量を生成する第5のステップと、
分類学習エンジンを用いて、実体語毎に、対話グラフの当該実体語の特徴量と、知識グラフの当該実体語の特徴量とを入力し、知識正当又は知識誤りに分類する第6のステップと
を実行することを特徴とする知識判定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文の知識誤りを検出する技術に関する。特に、ユーザの発話文に対して応答文を生成する対話サーバの技術に適する。
【背景技術】
【0002】
対話サーバは、ユーザの発話文に対して、AI(Artificial Intelligence)を用いることによって自然な応答文を返答し、ユーザの対話意欲を高めることが期待されている。一方で、対話サーバは、ユーザへの応答文における知識を強化する必要性もある。このとき、ユーザの発話文に対して、対話サーバが生成した応答文に知識的な誤りが生じていないことが重要となる。
【0003】
従来、例えば言語モデルとしてRoBERTa(Robustly optimized BERT(Bidirectional Encoder Representations from Transformers) approach)を用いて、応答文に含まれる各単語の知識的な誤りを判定する技術がある(例えば非特許文献1参照)。この技術によれば、知識を「トリプル」として表現する。トリプルとは、始点となる「ヘッドエンティティ」と、関係を表す「リレーション」と、終点となる「テイルエンティティ」との3つの組で、知識を表現したものである。
RoBERTaは、入力として、知識のトリプルの単語列と、ユーザの発話文の単語列と、対話サーバの応答文の単語列とを入力し、各単語について知識正当(ラベルF)又は知識誤り(ラベルT)を出力する。この技術は、応答文毎に、関連知識を人手で事前に紐付けたアノテーションを必要とする。
【0004】
尚、BERT(登録商標)とは、分散表現生成アルゴリズム(embedding)を適用し、高次元ベクトルに置き換える技術である。これは、Transformerアーキテクチャによる双方向学習のエンコード表現であり、Google(登録商標)の自然言語処理モデルである。また、BERTは、Seq2seqベースの事前学習モデルであり、ラベルが付与されていない特徴量(分散表現)をTransformerで処理して学習する。これは、連続する文章の中で、次に来る単語を単に予測するだけでなく、周りの文脈からマスクされている単語を双方向で予測する。これによって、単語に対応する文脈情報を学習し、自然言語処理が可能となる。
【0005】
また、文章中の知識を抽出し、知識グラフ(Knowledge Graph)を作成する技術もある(例えば非特許文献2参照)。この技術によれば、多くの知識を蓄積する事前学習済みの言語モデルを用いて、文章が示している知識の候補を抽出し、知識グラフへマッピングすることができる。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】N. Dziri, A. Madotto, O. Zaiane, and A. Bose. Neural Path Hunter: Reducing Hallucination in Dialogue Systems via Path Grounding, 2021, Empirical Methods in Natural Language Processing, pp. 2197-2214.、[online]、[令和4年9月17日検索]、インターネット<URL:https://arxiv.org/abs/2104.08455>
【非特許文献2】C. Wang, X. Liu, D. Song . Language Models are Open Knowledge Graphs, 2021、[online]、[令和4年9月17日検索]、インターネット<URL:https://openreview.net/forum?id=aRTRjVPkm->
【非特許文献3】OpenNRE、[online]、[令和4年9月17日検索]、インターネット<URL:https://github.com/thunlp/OpenNRE>
【非特許文献4】OpenDialKG、[online]、[令和4年10月5日検索]、インターネット<URL:https://github.com/facebookresearch/opendialkg>
【発明の概要】
【発明が解決しようとする課題】
【0007】
対話サーバは、ユーザの発話文に対して、多くの知識を含む応答文で返答することができる。これに対し、ユーザは、対話サーバが生成した応答文は、当然正しいものと認識するのが一般的である。しかしながら、その応答文に含まれる知識について、正当か又は誤りなのかを判定することは難しい。
【0008】
これに対し、前述した非特許文献1に記載の技術によれば、以下のような課題がある。
(A)学習モデルがブラックボックスであるために、文章に含まれる知識のつながりの中で、知識誤りとの判断根拠が明確でない。
(B)事前に人手による関連知識(例えば関係語)のアノテーションが必要となり、知識誤りの検出精度に影響を与える。
【0009】
また、前述した非特許文献2に記載の技術によれば、以下のような課題がある。
(C)文章に含まれる知識として、単語としての知識誤りを検出することができない。
(D)対話構造を考慮していないために、無駄な知識の結び付きまで抽出してしまう。
【0010】
これに対し、本願の発明者らは、文(例えばユーザの発話文に対する応答文)について、関連知識のアノテーションを要することなく、単語の知識誤りを検出すると共に、その判断根拠を明確にすることができないか、と考えた。
【0011】
そこで、本発明は、文について、関連知識のアノテーションを要することなく、単語の知識誤りを検出すると共に、その判断根拠を明確にすることができる知識判定装置、プログラム及び方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明によれば、文の知識誤りを検出する知識判定装置において、
実体語同士を関係語で結び付けた知識を蓄積した知識データベースと、
文から、所定条件の実体語を抽出する実体語抽出手段と、
実体語同士の組合せとなる実体語ペアを抽出する実体語ペア抽出手段と、
当該文から実体語ペアにおける関係語を推定する関係語推定手段と、
実体語ペアを、関係語推定手段によって推定された関係語で結んだ対話グラフを生成する対話グラフ生成手段と、
知識データベースを用いて、実体語ペアにおける関係語を検索し、実体語ペアを当該関係語で結んだ知識グラフを生成する知識グラフ生成手段と、
対話グラフ及び知識グラフそれぞれから、実体語毎に特徴量を生成する特徴量生成手段と、
実体語毎に、対話グラフの当該実体語の特徴量と、知識グラフの当該実体語の特徴量とを入力し、知識正当又は知識誤りに分類する分類学習エンジンと
を有することを特徴とする。
【0013】
本発明の知識判定装置における他の実施形態によれば、
ユーザの発話文に対する応答文の知識誤りを検出するために、
実体語抽出手段は、発話文及び応答文から、所定条件の実体語を抽出し、
実体語ペア抽出手段は、発話文の実体語と応答文の実体語とのペア、及び/又は、応答文の実体語同士の組合せとなる実体語ペアを抽出し、
分類学習エンジンは、応答文に含まれる実体語について分類する
ことも好ましい。
【0014】
本発明の知識判定装置における他の実施形態によれば、
実体語抽出手段は、所定条件として、固有表現の実体語、及び/又は、予め登録された実体語を抽出する
ことも好ましい。
【0015】
本発明の知識判定装置における他の実施形態によれば、
対話グラフを視覚的に表示すると共に、知識誤りに分類された実体語のノードを強調的に表示する対話グラフ表示手段を
更に有することも好ましい。
【0016】
本発明の知識判定装置における他の実施形態によれば、
関係語推定手段は、
当該文から、実体語ペアにおける関係語を推定する対話関係語推定エンジンと、
実体語ペア抽出手段によって抽出された実体語ペアの中で、対話関係語推定エンジンによって関係語が推定されていない実体語ペアを削除する実体語ペア削除機能と
を含むことも好ましい。
【0017】
本発明の知識判定装置における他の実施形態によれば、
対話グラフ生成手段は、関係語推定手段の対話関係語推定エンジンによって推定された関係語で実体語ペアを結んだ対話グラフを生成し、
知識グラフ生成手段は、知識データベースを用いて、関係語推定手段の実体語ペア削除機能によって削除されなかった実体語ペアに対する関係語を検索し、実体語ペアを当該関係語で結んだ知識グラフを生成する
ことも好ましい。
【0018】
本発明の知識判定装置における他の実施形態によれば、
知識データベースは、正しい知識として、実体語同士を関係語で結んだトリプルの表現形式で蓄積したものである
ことも好ましい。
【0019】
本発明の知識判定装置における他の実施形態によれば、
特徴量生成手段は、GNN(Graph Neural Network)であり、
分類学習エンジンは、FFN(Feed Forward Neural network)である
ことも好ましい。
【0020】
本発明の知識判定装置における他の実施形態によれば、
分類学習エンジンを事前に訓練するために、
当該文に代えて、正しい知識に基づく発話文及び応答文を蓄積した対話データベースを有すると共に、
対話データベースの発話文及び応答文から実体語抽出手段及び実体語ペア抽出手段によって抽出された所定範囲の実体語ペアを、関係語推定手段によって推定された関係語で結んだ正例グラフを生成する正例グラフ生成手段と、
正例グラフから、任意の実体語を他の実体語に置換し、且つ/又は、任意の関係語を他の関係語に置換した若しくは当該関係語を削除した負例グラフを生成する負例グラフ生成手段と
を更に有し、
特徴量生成手段は、正例グラフ及び負例グラフそれぞれから、実体語毎に特徴量を生成し、
分類学習エンジンは、訓練段階として、実体語毎に、正例グラフの特徴量及び負例グラフの特徴量を入力し、負例グラフとして当該実体語が置換されたものでない場合には知識正当のラベルを出力し、当該実体語が置換されたものである場合には知識誤りのラベルを出力するように訓練する
ことも好ましい。
【0021】
本発明によれば、文の知識誤りを検出する装置に搭載されたコンピュータを機能させるプログラムにおいて、
実体語同士を関係語で結び付けた知識を蓄積した知識データベースと、
文から、所定条件の実体語を抽出する実体語抽出手段と、
実体語同士の組合せとなる実体語ペアを抽出する実体語ペア抽出手段と、
当該文から実体語ペアにおける関係語を推定する関係語推定手段と、
実体語ペアを、関係語推定手段によって推定された関係語で結んだ対話グラフを生成する対話グラフ生成手段と、
知識データベースを用いて、実体語ペアにおける関係語を検索し、実体語ペアを当該関係語で結んだ知識グラフを生成する知識グラフ生成手段と、
対話グラフ及び知識グラフそれぞれから、実体語毎に特徴量を生成する特徴量生成手段と、
実体語毎に、対話グラフの当該実体語の特徴量と、知識グラフの当該実体語の特徴量とを入力し、知識正当又は知識誤りに分類する分類学習エンジンと
してコンピュータを機能させることを特徴とする。
【0022】
本発明によれば、文の知識誤りを検出する装置の知識判定方法において、
装置は、実体語同士を関係語で結び付けた知識を蓄積した知識データベースを有し、
文から、所定条件の実体語を抽出する第1のステップと、
実体語同士の組合せとなる実体語ペアを抽出する第2のステップと、
当該文から実体語ペアにおける関係語を推定する第3のステップと、
実体語ペアを、第3のステップによって推定された関係語で結んだ対話グラフを生成すると共に、知識データベースを用いて、実体語ペアにおける関係語を検索し、実体語ペアを当該関係語で結んだ知識グラフを生成する第4のステップと、
対話グラフ及び知識グラフそれぞれから、実体語毎に特徴量を生成する第5のステップと、
分類学習エンジンを用いて、実体語毎に、対話グラフの当該実体語の特徴量と、知識グラフの当該実体語の特徴量とを入力し、知識正当又は知識誤りに分類する第6のステップと
を実行することを特徴とする。
【発明の効果】
【0023】
本発明の知識判定装置、プログラム及び方法によれば、文について、関連知識のアノテーションを要することなく、単語の知識誤りを検出すると共に、その判断根拠を明確にすることができる。
【図面の簡単な説明】
【0024】
【
図1】ユーザとの対話を実現するシステム構成図である。
【
図2】本発明における知識判定装置の機能構成図である。
【
図3】本発明における実体語抽出部及び実体語ペア抽出部の説明図である。
【
図4】本発明における関係語推定部の説明図である。
【
図5】本発明における対話グラフ生成部及び知識グラフ生成部の説明図である。
【
図6】本発明における特徴量生成部及び分類学習エンジンの説明図である。
【
図7】本発明における訓練段階の知識判定装置の機能構成図である。
【
図8】本発明における正例グラフ生成部及び負例グラフ生成部によって分類学習エンジンを訓練する説明図である。
【発明を実施するための形態】
【0025】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【0026】
図1は、ユーザとの対話を実現するシステム構成図である。
【0027】
図1のシステムによれば、知識判定装置1と、端末2と、対話サーバ3とを有する。
端末2は、ユーザの発話文を対話サーバ3へ送信する。対話サーバ3は、その発話文に対して自然な対話となる応答文を生成し、その応答文を端末2へ返信する。そして、端末2は、その応答文を音声又はテキストによって、ユーザへ返答する。
対話サーバ3は、過去にユーザと対話した発話文及び応答文を、対話履歴として蓄積する。
【0028】
尚、端末2は、ユーザインタフェースとして、ユーザの発話音声の音声認識機能、及び、ユーザへの応答文の音声合成機能を有する。音声認識機能は、端末2のマイクによって取得されたユーザの発話音声を、テキストベースの発話文に変換する。音声合成機能は、対話サーバ3によって生成された応答文を、音声信号に変換する。
勿論、音声認識機能及び音声合成機能は、端末2に搭載されるものであってもよいし、対話サーバ3に搭載されるものであってもよい。
【0029】
図1によれば、対話サーバ3は、ユーザとの間で、例えば以下のような対話履歴を蓄積しているとする。
ユーザの発話文 :Could you recommend a couple of books by Richard Adams?
対話サーバの応答文:Sure!
He wrote Watership Down in 1991.
It is speculative fiction.
【0030】
本発明における知識判定装置1は、最も簡単には、「文」の知識誤りを検出する。
図1によれば、ユーザの発話文に対して対話サーバ3が生成する応答文の知識誤りを検出するものであってもよい。知識判定装置1は、発話文及び応答文の組を、対話履歴として、対話サーバ3から取得する。
尚、知識判定装置1が判定する応答文は、対話サーバ3によって生成されたものに限られず、他のユーザによって応答されたものであってもよい。即ち、応答文は、ユーザの発話文に対するものであればよく、その応答文の生成主体を問わない。
【0031】
図2は、本発明における知識判定装置の機能構成図である。
【0032】
図2によれば、知識判定装置1は、対話履歴蓄積部100と、知識データベース101とを有する。
【0033】
[対話履歴蓄積部100]
対話履歴蓄積部100は、過去に大量にやりとりされた一連の対話履歴を蓄積する。対話履歴は、発話文と応答文との組を複数含む。勿論、対話履歴蓄積部100は、知識判定装置1自らが記憶しておく必要はないが、判定時に外部から入力する必要がある。
【0034】
他の実施形態として、知識判定装置1は、リアルタイムの発話文及び応答文から、知識誤りを検出するものであってもよい。その場合、知識判定装置1へ、ユーザの発話文と、当該ユーザに応答しようとする応答文とが、リアルタイムに入力される。
【0035】
[知識データベース101]
知識データベース101は、知識として、実体語(entity、エンティティ)同士を、関係語(relation、リレーション)で結び付けて蓄積したものである。
知識データベース101に蓄積された知識は、実体語同士を関係語で結んだ「トリプル」の表現形式であってもよい。トリプルとは、前述したように、始点となる実体語(ヘッドエンティティ)と、関係語(リレーション)と、終点となる実体語(テイルエンティティ)との3つの組で、知識を表現したものである。
【0036】
知識データベース101は、例えばWikipedia(登録商標)から構築された大規模なトリプルの集合体であってもよい。Wikipediaに記述された単語をエンティティとして、単語同士を結ぶ関係語をリレーションとして蓄積する。即ち、知識データベース101は、人手で整備された公開済みのデータセットであって、知識として正しいことを前提としたものである。
【0037】
また、知識判定装置1は、実体語抽出部11と、実体語ペア抽出部12と、関係語推定部13と、対話グラフ生成部141と、知識グラフ生成部142と、特徴量生成部15と、分類学習エンジン16と、対話グラフ表示部17とを有する。これら機能構成部は、装置に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。また、これら機能構成部の処理の流れは、知識判定方法としても理解できる。
【0038】
図3は、本発明における実体語抽出部及び実体語ペア抽出部の説明図である。
【0039】
[実体語抽出部11]
実体語抽出部11は、「文」から所定条件の実体語を抽出する。
実体語抽出部11は、文として、対話履歴蓄積部100に蓄積された一連の発話文及び応答文を入力する。勿論、他の実施形態として、知識誤りを検出する対象とする「文」のみを入力するものであってもよい。
【0040】
このとき、どのような実体語を抽出すればよいか、を判断することは難しい。全ての単語を実体語とした場合、知識と言えないような大量且つ無駄なトリプルを抽出してしまう恐れがあり、判定精度の低下を招く。
【0041】
そのために、実体語抽出部11は、所定条件の実体語を抽出する。ここで、「所定条件」として、固有表現の実体語、及び/又は、予め登録された実体語を抽出することが好ましい。固有表現は、特に知識として重要な単語といえる。
固有表現(named entity)とは、固有名詞(人名、組織名、地名など)や日付、時間、数量、金額、割合などをいう。例えば、固有表現抽出API(gooラボ)、Apache OpenNLP、CaboCha(LGPL/BSDライセンス)のような、事前学習済みの日本語の表現抽出エンジンを用いて、固有表現を抽出するものであってもよい。
【0042】
図3によれば、実体語抽出部11は、前述した発話文及び応答文に対して、例えば以下のように実体語を抽出している。
発話文の実体語:book
Richard Adams
応答文の実体語:Watership Down
1991
speculative fiction.
発話文の実体語と応答文の実体語とは両方とも、実体語ペア抽出部12へ出力される。
【0043】
[実体語ペア抽出部12]
実体語ペア抽出部12は、実体語同士の組合せとなる「実体語ペア」を抽出する。
このとき、実体語ペア抽出部12は、発話文の実体語と応答文の実体語とのペア、及び/又は、応答文の実体語同士の組合せとなる実体語ペアを抽出する。
【0044】
図3によれば、入力された発話文の実体語と応答文の実体語とから、例えば以下のような実体語ペアが抽出される。
(Richard Adams, Watership Down)
(Richard Adams, 1991)
(Richard Adams, speculative fiction)
(book, Watership Down)
(book, 1991)
(book, speculative fiction)
(Watership Down, 1991)
(Watership Down, speculative fiction)
(1991, speculative fiction)
【0045】
尚、
図3によれば、発話文のみに含まれる(book, Richard Adams)は、削除される。即ち、発話文の実体語同士は、実体語ペアとして抽出する必要はない。発話文は、ユーザ自ら発話したものであって、知識誤りを検出する必要はないためである。このように、不要な実体語ペアをできる限り削減し、必要な知識のみに絞り込んでいく。
【0046】
図4は、本発明における関係語推定部の説明図である。
【0047】
実体語ペア抽出部12によって抽出される実体語ペアの中には、直接的な関係は無いように思われるものもある。しかしながら、これを、知識誤りとして自動的に検出することは難しい。例えば実体語ペア(1911, speculative fiction)は、直接的な関係が無いように思えるが、「知識誤りの判定に考慮すべきものではない」と判定することは難しい。そのために、関係語推定部13によって実体語ペアにおける関係語を推定し、実体語ペアを更に絞り込んでいく。
【0048】
[関係語推定部13]
関係語推定部13は、発話文及び/又は応答文から、実体語ペア抽出部12によって抽出された実体語ペアにおける関係語を推定する。これによって、関係語が存在する実体語ペアであるか否かを判定すると共に、実体語同士を関係語で結んだ表現形式のトリプルを得ることができる。
【0049】
図4によれば、関係語推定部13は、対話関係語推定エンジンと、実体語ペア削減機能とからなる。
【0050】
(対話関係語推定エンジン)
対話関係語推定エンジンは、発話文及び/又は応答文から、実体語ペアにおける関係語を推定する。事前学習の言語モデルを転移学習したものとして、例えばOpenNREを用いることができる(例えば非特許文献3参照)。これによって、発話文及び応答文に、どのような知識が含まれているかを抽出する。
【0051】
図4によれば、対話関係語推定エンジンは、例えば以下のようなトリプルを推定する。
(Richard Adams, (written-by), Watership Down)
(Richard Adams, (wrote), speculative fiction)
(book, (is a), Watership Down)
(Watership Down, (release-year), 1991)
(Watership Down, (has-genre),speculative fiction)
これらトリプルは、対話グラフ生成部141へ出力される。
【0052】
ここで、対話関係語推定エンジンによって実体語ペアにおける関係語が推定されても、その尤度(確率)が低い場合もある。その場合、オプション的に、所定尤度以下の実体語ペアを削除するべく、実体語ペア削減機能を有するものであってもよい。
【0053】
(実体語ペア削減機能)
実体語ペア削除機能は、実体語ペア抽出部12によって抽出された実体語ペアの中で、対話関係語推定エンジンによって関係語が推定されていない実体語ペアを削除する。
図4によれば、例えば以下の実体語ペアについては、関係語を高い尤度で推定できなかったとする。
(Richard Adams, 1991)
(book, 1991)
(book, speculative fiction)
(1991, speculative fiction)
【0054】
実体語ペア削除機能は、関係語を高い尤度で推定できなかったような実体語ペアを削除し、最終的に必要と想定されるトリプルのみを知識として処理するようにする。これによって、関連性の低いトリプルを枝刈りし、知識の増加による判定精度の低下や、消費メモリ量を削減する。
【0055】
実体語ペア削除機能を採用する背景として、例えば関係語を高い尤度で推定できないような実体語ペアは、一方を他の実体語と入れ替えたとしても、正しい知識になりようがないと想定される。このような場合は大抵、実体語の誤りというよりも、無関係な実体語ペアで無理に関係語を予測させてしまっている可能性が高い。
【0056】
尚、実体語ペア削除機能は、他の実施形態として、知識データベース101を参照するものであってもよい。例えば実体語ペア(Richard Adams, 1911)に対して関係語(release-year)のトリプルを予測した場合に、知識データベース101を参照する。そして、具体的には、(Richard Adams, release-year, “何らかの実体語”)のようなトリプルが存在するか否か、即ち、ヘッドエンティティのRichard Adamsに関連語release-yearが紐づいた知識が存在するか否かを参照する。そのような知識が存在しなかった場合は、その実体語ペアを削除することもできる。
【0057】
図4によれば、関係語推定部13は、以下のような実体語ペアを、知識グラフ生成部142へ出力する。
(Richard Adams, Watership Down)
(Richard Adams, speculative fiction)
(book, Watership Down)
(Watership Down, 1991)
(Watership Down, speculative fiction)
【0058】
図5は、本発明における対話グラフ生成部及び知識グラフ生成部の説明図である。
【0059】
[対話グラフ生成部141]
対話グラフ生成部141は、実体語ペアを、関係語推定部13によって推定された関係語で結んだ「対話グラフ」を生成する。
関係語推定部13の対話関係語推定エンジンから出力された実体語ペア及び関係語によって対話グラフを生成する。
【0060】
「対話グラフ」や「知識グラフ」は、知識表現のトリプルについて、始点となる実体語(ヘッドエンティティ)から、関係を表す関係語(リレーション)を矢印として、終点となる実体語(テイルエンティティ)までを結んだグラフである。
図5によれば、トリプルの(Watership Down, (release-year), 1991)について、始点となる実体語(Watership Down)から、関係語(release-year)を矢印として、終点となる実体語(1991)までが結ばれている。
【0061】
[知識グラフ生成部142]
知識グラフ生成部142は、知識データベース101を用いて、実体語ペアにおける関係語を検索し、実体語ペアを当該関係語で結んだ「知識グラフ」を生成する。
図5によれば、関係語推定部13の実体語ペア削除機能によって削除されなかった実体語ペアに対して、知識データベース101を用いて関係語を検索し、実体語ペアを当該関係語で結んだ知識グラフを生成する。
【0062】
実体語ペアの実体語それぞれ、知識グラフのノードを構成する。ここで、重要な点として、知識データベース101を検索しても、実体語ペアに関係語が検索できず、トリプルが存在しなかった場合であっても、その実体語のノードは残存させる。
図5によれば、実体語ペア(Watership Down, 1991)について、対話グラフでは関係語(release-year)で結ばれているが、知識グラフでは関係語で結ばれていない。
これは、ユーザの発話文に対する応答文には、トリプル(Watership Down, (release-year), 1991)が知識として検出されているが、この知識は、知識データベース101によれば誤っている恐れがある、ことを意味する。
【0063】
前述した従来技術によれば、自然文として知識を処理しようとしているために、単純に入力される単語長が伸びてしまうだけでなく、知識誤りの判定精度の低下や、消費メモリ量の増加という問題が発生しやすくなる。
これに対し、本発明によれば、グラフデータとしてトリプルの単位で知識を処理するために、知識誤りの判定精度の向上と、消費メモリ量の削減につながる。
【0064】
図6は、本発明における特徴量生成部及び分類学習エンジンの説明図である。
【0065】
[特徴量生成部15]
特徴量生成部15は、対話グラフ及び知識グラフから、実体語毎に「特徴量」(特徴ベクトル)を生成する。
特徴量生成部15は、GNN(Graph Neural Network)であることが好ましい。例えばCNN(Convolutional Neural Network)は、画像の上下左右斜めの8方向からの情報を畳み込むものである。これに対し、GNNは、ノードと、そのノードにリンクする他のノードの情報を畳み込むものである。これによって、グラフのノード(実体語)毎に、分散表現生成アルゴリズム(embedding)を適用した高次元ベクトルに変換することができる。
【0066】
図6によれば、実体語ペア(Watership Down, 1991)について、対話グラフでは関係語(release-year)で結ばれているが、知識グラフでは関係語で結ばれていない。この場合、実体語(Watership Down)及び(1991)について、対話グラフにおける特徴量と、知識グラフにおける特徴量との間に相違が生じることとなる。
このとき、トリプルにおける実体語(Watership Down)と(1991)と比較として、いずれが知識誤りなのかを判定することは難しい。しかしながら、対話グラフから得られた特徴量によれば、実体語を中心として結び付く関係語やその他の実体語との関係から、知識グラフから得られた特徴量との間の差が大きくなる。
例えば、実体語(Watership Down)に対して、実体語(1991)が知識誤りであって、正しくは実体語(1990)であったとする。この場合、
図6によれば、実体語(Watership Down)における対話グラフの特徴量と知識グラフの特徴量との間の差よりも、実体語(1991)における対話グラフ特徴量と知識グラフの特徴量との間の差が、確実に大きくなる。
【0067】
[分類学習エンジン16]
対話グラフと知識グラフについて、実体語を表すノードの特徴量を、単なる閾値距離のみで判別することは難しい。そのために、分類学習エンジン16は、例えばFFN(Feed forward neural network)のような事前学習のクラス分類識別器である。
分類学習エンジン16は、<推定段階>と<訓練段階>とに分けられる。訓練段階では、後述する
図7のように、教師データから学習モデルを構築する。
【0068】
分類学習エンジン16は、<推定段階>のクラス分類として、実体語毎に、対話グラフの当該実体語の特徴量と、知識グラフの当該実体語の特徴量とを比較し、知識正当又は知識誤りに分類する。
本発明によれば、ユーザの発話文に対する応答文における知識誤りを検出するものであるために、分類学習エンジンは、応答文に含まれる実体語についてのみ分類すればよい。
図6によれば、分類学習エンジン16は、応答文に含まれる実体語(1991)について、知識誤りと判定している。この判定結果は、対話グラフ表示部17へ出力される。
【0069】
[対話グラフ表示部17]
対話グラフ表示部17は、対話グラフを視覚的に表示すると共に、知識誤りとして分類された実体語に対応するノードを強調的に表示する。
オペレータは、対話グラフが表示された際に、知識誤りとして分類された実体語(1991)が強調されており、その周辺のトリプルのつながりも視認することができる。これによって、オペレータは、応答文の知識の中で、知識誤りとなった実体語の判断根拠を認識することができる。
【0070】
<分類学習エンジンの訓練段階>
図7は、本発明における訓練段階の知識判定装置の機能構成図である。
【0071】
図7の分類学習エンジン16は、訓練段階について、
図2の対話履歴蓄積部100に代えて、対話データベース102を有する。また、
図7の分類学習エンジン16は、正例グラフ生成部181及び負例グラフ生成部182を更に有する。これら機能構成部も、装置に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
【0072】
[対話データベース102]
対話データベース102は、正しい知識に基づいた人間同士の会話を収録した発話文及び応答文からなる対話データセットである。
対話データベース102としては、例えばOpenDialKGがある(例えば非特許文献4参照)。これは、具体的には本と映画について推薦する雑談的な対話が含まれたものである。システムの応答者は、正しい知識に基づく実体語を含むように発話している。尚、これは、人手で整備された公開済みのデータセットであるために、ノイズを減らすべく、実体語同士の関連度が低い関係語は除外されている。
【0073】
対話データベース102の発話文及び応答文は、実体語抽出部11へ入力される。その後、実体語抽出部11と、実体語ペア抽出部12と、関係語推定部13とは、前述した推定段階と全く同じである。そして、関係語推定部13から出力されたトリプルの群は、正例グラフ生成部181へ出力される。
【0074】
図8は、本発明における正例グラフ生成部及び負例グラフ生成部によって分類学習エンジンを訓練する説明図である。
【0075】
[正例グラフ生成部181]
正例グラフ生成部181は、対話データベース102の発話文及び応答文から実体語抽出部11及び実体語ペア抽出部12によって抽出された所定範囲の実体語ペアを、関係語推定部13によって推定された関係語で結んだ正例グラフを生成する。
【0076】
[負例グラフ生成部182]
負例グラフ生成部182は、正例グラフから、任意の実体語を他の実体語に置換した負例グラフを生成する。負例グラフは、正例グラフに対して意図的な知識誤りを引き起こしたものである。
勿論、関係語の置換又は削除によって負例グラフを生成するものであってもよい。
このような実体語の置換は、自動的にランダムに実行するものであってもよい。
【0077】
その後、特徴量生成部15は、正例グラフ及び負例グラフそれぞれから、実体語毎に特徴量を生成する。これも、前述した特徴量生成部15と全く同じ処理である。
【0078】
そして、分類学習エンジン16は、訓練段階として、「実体語」毎に、以下の要素を入力して訓練する。
実体語->正例グラフの特徴量
負例グラフの特徴量
ラベル(正負)
ラベル(正負)とは、以下のようなものである。
知識正当:当該実体語が正例グラフから負例グラフへ置換されたものでない
知識誤り:当該実体語が置換正例グラフから負例グラフへ置換されたものである
【0079】
図8の正例グラフによれば、実体語ペア(Watership Down, 1990)を関係語(release-year)で結んでいる場合、例えばその実体語(1990)を実体語(1992)に置換した負例グラフを作成する。
【0080】
その後、特徴量生成部15は、正例グラフ及び負例グラフそれぞれから、実体語毎に特徴量を生成する。これも、前述したGNNと同様のものである。
【0081】
そして、分類学習エンジン16は、訓練段階として、実体語毎に、正例グラフの特徴量と、負例グラフの特徴量と、ラベル(正負)とをそれぞれ対応付けて入力して訓練する。
ここで、負例グラフとして置換されていない実体語については、正(知識正当)のラベルが入力され、負例グラフとして置換された実体語については、負(知識誤り)のラベルが付与される。尚、置換されていない実体語であっても、正例グラフの特徴量と負例グラフの特徴量とは差が生じる。少なくとも1つの実体語が置換されることによって、有向グラフ全体の構成は異なるためである。
分類学習エンジン16は、実体語毎に、2つの特徴量を入力し、クラス分類となるラベル(正負)を出力するように訓練する。その誤差を逆伝搬させて、特徴量生成部15及び分類学習エンジン16の内部の重みの更新を繰り返す。
【0082】
以上、詳細に説明したように、本発明の知識判定装置、プログラム及び方法によれば、文について、関連知識のアノテーションを要することなく、単語の知識誤りを検出すると共に、その判断根拠を明確にすることができる。
【0083】
本発明は、従来技術と比較して、以下のような効果を奏する。
(A)発話文及び応答文に含まれる知識のつながりの中で、対話グラフを視認することによって、知識誤りとの判断根拠が明確となる。
(B)事前に人手による関連知識(例えば関係語)のアノテーションを必要とせず、既存の知識データベースから関連知識を自動的に抽出するために、知識誤りの検出精度に影響を与えない。
(C)発話文及び応答文に含まれる知識として、単語としての知識誤りを検出することができる。
(D)発話文及び応答文の対話構造を前提としており、無駄な知識の結び付きまで抽出しない。
【0084】
尚、これにより、例えば「知識誤りの無い対話システムが可能となる」ことから、国連が主導する持続可能な開発目標(SDGs)の目標8「すべての人々のための包摂的かつ持続可能な経済成長、雇用およびディーセント・ワークを推進する」に貢献することが可能となる。
【0085】
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【0086】
1 知識判定装置
100 対話履歴蓄積部
101 知識データベース
102 対話データベース
11 実体語抽出部
12 実体語ペア抽出部
13 関係語推定部
141 対話グラフ生成部
142 知識グラフ生成部
15 特徴量生成部
16 分類学習エンジン
17 対話グラフ表示部
181 正例グラフ生成部
182 負例グラフ生成部
2 端末、スマートフォン
3 対話サーバ