(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-29
(45)【発行日】2024-12-09
(54)【発明の名称】対話履歴をリセットして応答文を生成するプログラム、装置及び方法
(51)【国際特許分類】
G10L 15/22 20060101AFI20241202BHJP
G10L 15/16 20060101ALI20241202BHJP
G10L 13/00 20060101ALI20241202BHJP
【FI】
G10L15/22 300Z
G10L15/16
G10L13/00 100M
(21)【出願番号】P 2021190599
(22)【出願日】2021-11-24
【審査請求日】2024-01-17
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100135068
【氏名又は名称】早原 茂樹
(72)【発明者】
【氏名】呉 剣明
(72)【発明者】
【氏名】楊 博
【審査官】大野 弘
(56)【参考文献】
【文献】特開2020-126186(JP,A)
【文献】特表2019-512760(JP,A)
【文献】特開2018-173456(JP,A)
【文献】特開2020-149264(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/00-15/34
G10L 13/00-13/10
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
発話文に対して応答文を生成するようにコンピュータを機能させるプログラムにおいて、
訓練段階として、教師データにおける発話文及び応答文を時系列に入力し、潜在変数に基づく学習モデルを構築すると共に、推定段階として、推定データとなる発話文を時系列に入力する毎に、応答文を出力する再帰型ニューラルネットワークと、
訓練段階として、教師データとして発話文及び正当な応答文を対応付けて学習モデルを構築すると共に、推定段階として、推定データとなる発話文と、再帰型ニューラルネットワークから出力された応答文とを入力し、正当のスコアを出力する対話学習エンジンと、
推定段階として、
対話学習エンジンから出力されたスコアが所定閾値以下となる場合に、対話破綻として真と判定する対話関係判定手段と、
対話関係判定手段によって真と判定された際に、再帰型ニューラルネットワークに対して過去の対話履歴に基づく潜在変数をリセットする対話履歴リセット手段と
して機能させ、
再帰型ニューラルネットワークは、過去の対話履歴に基づく潜在変数がリセットされた後の発話文のみから推定された応答文を出力する
ようにコンピュータを機能させることを特徴とするプログラム。
【請求項2】
相槌文を予め登録した相槌文登録手段を有し、
対話関係判定手段は、推定段階として、再帰型ニューラルネットワークから出力された応答文が、相槌文登録手段に登録された相槌文が時系列に所定回数以上連続した場合に、相槌連続として真と判定する
ようにコンピュータを機能させることを特徴とする請求項1に記載のプログラム。
【請求項3】
語彙を概念的に階層型に構成した語彙データベースと、
過去の対話履歴に基づく前話題語を特定し、当該前話題語と同じカテゴリとなる別の現話題語を選択する現話題語選択手段と
して機能させ、
再帰型ニューラルネットワークは、過去の対話履歴に基づく潜在変数がリセットされた後、現話題語に基づく応答文を出力する
ようにコンピュータを更に機能させることを特徴とする請求項
2に記載のプログラム。
【請求項4】
訓練段階として、教師データとして、発話文と、ポジティブ又はネガティブのフラグとを対応付けて学習モデルを構築すると共に、推定段階として、推定データとなる発話文を入力し、ポジティブ又はネガティブのフラグを出力する発話文ポジネガ学習エンジンと
して機能させ、
対話関係判定手段は、推定段階として、発話文ポジネガ学習エンジンから出力されたフラグがネガティブと判定された場合に、話題変更として真と判定する
ようにコンピュータを機能させることを特徴とする請求項1に記載のプログラム。
【請求項5】
訓練段階として、教師データとして、発話するユーザの顔表情を撮影した映像と、ポジティブ又はネガティブのフラグとを対応付けて学習モデルを構築すると共に、推定段階として、発話するユーザの顔表情の映像を入力し、ポジティブ又はネガティブのフラグを出力する顔映像ポジネガ学習エンジンと
して機能させ、
対話関係判定手段は、推定段階として、顔映像ポジネガ学習エンジンから出力されたフラグがネガティブと判定された場合に、話題変更として真と判定する
ようにコンピュータを機能させることを特徴とする請求項1に記載のプログラム。
【請求項6】
語彙を概念的に階層型に構成した語彙データベースと、
過去の対話履歴に基づく前話題語を特定し、当該前話題語の反義又は別カテゴリとなる現話題語を選択する現話題語選択手段と
して機能させ、
再帰型ニューラルネットワークは、過去の対話履歴に基づく潜在変数がリセットされた後、現話題語に基づく応答文を出力する
ようにコンピュータを更に機能させることを特徴とする請求項
2に記載のプログラム。
【請求項7】
再帰型ニューラルネットワーク(RNN(Recurrent Neural Network))は、カリキュラム学習(Curriculum Learning)エンジン、LSTM(Long Short Term Memory)、又は、GRU(Gated Recurrent Unit)である
ようにコンピュータを機能させることを特徴とする請求項1から
6のいずれか1項に記載のプログラム。
【請求項8】
発話文に対して応答文を生成する対話装置において、
訓練段階として、教師データにおける発話文及び応答文を時系列に入力し、潜在変数に基づく学習モデルを構築すると共に、推定段階として、推定データとなる発話文を時系列に入力する毎に、応答文を出力する再帰型ニューラルネットワークと、
訓練段階として、教師データとして発話文及び正当な応答文を対応付けて学習モデルを構築すると共に、推定段階として、推定データとなる発話文と、再帰型ニューラルネットワークから出力された応答文とを入力し、正当のスコアを出力する対話学習エンジンと、
推定段階として、
対話学習エンジンから出力されたスコアが所定閾値以下となる場合に、対話破綻として真と判定する対話関係判定手段と、
対話関係判定手段によって真と判定された際に、再帰型ニューラルネットワークに対して過去の対話履歴に基づく潜在変数をリセットする対話履歴リセット手段と
を有し、
再帰型ニューラルネットワークは、過去の対話履歴に基づく潜在変数がリセットされた後の発話文のみから推定された応答文を出力する
ことを特徴とする対話装置。
【請求項9】
発話文に対して応答文を生成する装置の対話方法において、
装置は
訓練段階として、教師データにおける発話文及び応答文を時系列に入力し、潜在変数に基づく学習モデルを構築すると共に、推定段階として、推定データとなる発話文を時系列に入力する毎に、応答文を出力する再帰型ニューラルネットワークと、
訓練段階として、教師データとして発話文及び正当な応答文を対応付けて学習モデルを構築すると共に、推定段階として、推定データとなる発話文と、再帰型ニューラルネットワークから出力された応答文とを入力し、正当のスコアを出力する対話学習エンジンと
を有し、
推定段階として、
対話学習エンジンから出力されたスコアが所定閾値以下となる場合に、対話破綻として真と判定する第1のステップと、
第1のステップによって真と判定された際に、再帰型ニューラルネットワークに対して過去の対話履歴に基づく潜在変数をリセットする第2のステップと
、
再帰型ニューラルネットワークは、過去の対話履歴に基づく潜在変数がリセットされた後の発話文のみから推定された応答文を出力する第3のステップと
を実行することを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザと自然な対話を実現する対話装置の技術に関する。
【背景技術】
【0002】
対話装置は、ユーザの発話文に対して、雑談のような自然な対話となる応答文を生成することができる。ユーザの発話文は、テキストベースであってもよいし、発話音声をテキストに変換するものであってもよい。システムの応答文も、テキストベースであってもよいし、テキストを音声合成によって発声するものであってもよい。このような対話装置としては、例えば「Siri(登録商標)」や「しゃべってコンシェル(登録商標)」がある。
【0003】
従来、雑談のような自然な対話を実現するために、LSTM(Long Short-Term Memory)を用いたエンコーダ・デコーダから構成されたSeq2Seqモデルの技術がある(例えば非特許文献1参照)。この技術によれば、エンコーダは、発話文の単語トークン系列を入力し、LSTMによって潜在変数(ベクトル表現)を保存する。デコーダは、エンコーダが作成した隠れ層の潜在変数を用いて、応答文の単語トークン系列を生成する。但し、一般的な対話の学習データでは、「いいですね」、 「そうですね」、「だよね」など相槌が比較的多いため、確率的には無難な相槌を生成しがちとなってしまう。
【0004】
また、エンコーダ・デコーダのモデルとして、過去の対話履歴(発話文及び応答文の組)を用いた1対多学習の技術もある(例えば非特許文献2参照)。この技術は、話題遷移のタイミングを判定すると共に、次の話題トピックを決定することができる。即ち、同じ話題の中でも深堀りの対話を可能とし、次の話題トピックへ展開することができる。これは、隠れ条件の遷移確率を自動的に学習することによって、発話の多様性・情報量・キャラクタ性の豊富さを実現する。
【先行技術文献】
【非特許文献】
【0005】
【文献】Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. In Advances in neural information processing systems (pp. 3104-3112). 、[online]、[令和3年11月11日検索]、インターネット<URL:https://www.semanticscholar.org/paper/Sequence-to-Sequence-Learning-with-Neural-Networks-Sutskever-Vinyals/cea967b59209c6be22829699f05b8b1ac4dc092d>
【文献】Bao, S., He, H., Wang, F., Wu, H., Wang, H., Wu, W., ... & Xu, X. (2020). Plato-2: Towards building an open-domain chatbot via curriculum learning. arXiv preprint arXiv:2006.16779. 、[online]、[令和3年11月11日検索]、インターネット<URL:https://arxiv.org/pdf/2006.16779.pdf>
【文献】AIと機械学習プロダクト、「感情分析」、[online]、[令和3年11月11日検索]、インターネット<URL:https://cloud.google.com/natural-language/docs/analyzing-sentiment?hl=ja>
【文献】Jianming Wu et al. “Effects of objective feedback of facial expression recognition during video support chat”, MUM '17: Proceedings of the 16th International Conference on Mobile and Ubiquitous Multimedia.、[online]、[令和3年11月11日検索]、インターネット<URL:https://www.researchgate.net/profile/Jianming-Wu-8/publication/320268230_Effects_of_Objective_Feedback_of_Facial_Expression_Recognition_during_Video_Support_Chat/links/5a655a99a6fdccb61c57fee2/Effects-of-Objective-Feedback-of-Facial-Expression-Recognition-during-Video-Support-Chat.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、非特許文献1及び2に記載の技術によれば、例えば、以下のように、対話が破綻する場合がある。
<事例1>
発話文: 腹が空いた
応答文: 何か食べる?
発話文: 餃子を食べたいな
応答文: 餃子は美味しいよね
発話文: 急にお腹が痛くなった <-(急に別の話題が発話される)
応答文:★餃子の配達は、手伝いましょうか <-(対話が破綻)
このように、話の途中で急に、ユーザが別の話題トピックについて発話すると、過去の話題トピックに引っ張られすぎで、対話が破綻してしまう。これは、エンコーダ・デコーダが過去の対話履歴によって訓練されているために、急な話題トピックの変更に対応できないことによる。
【0007】
また、例えば、以下のように、無関心な対話が継続する場合もある。
<事例2>
発話文: 腹が空いた
応答文: 何か食べる?
発話文: 餃子を食べたいな
応答文: 餃子は美味しいよね
発話文: だよね
応答文: それはそうだね <-(相槌)
発話文: いいよ
応答文:★いいね <-(相槌)
このように、同意を意味する相槌が続くことによって、無関心な対話が継続し、結局、別の話題トピックへ変更することもできなくなってしまう。これも、エンコーダ・デコーダが過去の相槌文ばかりで訓練されてしまうことによる。
【0008】
そこで、本発明は、ユーザの発話文に対して、対話が破綻せず、且つ、相槌が継続することがない応答文を生成することができるプログラム、装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明によれば、発話文に対して応答文を生成するようにコンピュータを機能させるプログラムにおいて、
訓練段階として、教師データにおける発話文及び応答文を時系列に入力し、潜在変数に基づく学習モデルを構築すると共に、推定段階として、推定データとなる発話文を時系列に入力する毎に、応答文を出力する再帰型ニューラルネットワークと、
訓練段階として、教師データとして発話文及び正当な応答文を対応付けて学習モデルを構築すると共に、推定段階として、推定データとなる発話文と、再帰型ニューラルネットワークから出力された応答文とを入力し、正当のスコアを出力する対話学習エンジンと、
推定段階として、対話学習エンジンから出力されたスコアが所定閾値以下となる場合に、対話破綻として真と判定する対話関係判定手段と、
対話関係判定手段によって真と判定された際に、再帰型ニューラルネットワークに対して過去の対話履歴に基づく潜在変数をリセットする対話履歴リセット手段と
して機能させ、
再帰型ニューラルネットワークは、過去の対話履歴に基づく潜在変数がリセットされた後の発話文のみから推定された応答文を出力する
ようにコンピュータを機能させることを特徴とする。
【0012】
本発明のプログラムにおける他の実施形態によれば、
相槌文を予め登録した相槌文登録手段を有し、
対話関係判定手段は、推定段階として、再帰型ニューラルネットワークから出力された応答文が、相槌文登録手段に登録された相槌文が時系列に所定回数以上連続した場合に、相槌連続として真と判定する
ようにコンピュータを機能させることも好ましい。
【0013】
本発明のプログラムにおける他の実施形態によれば、
語彙を概念的に階層型に構成した語彙データベースと、
過去の対話履歴に基づく前話題語を特定し、当該前話題語と同じカテゴリとなる別の現話題語を選択する現話題語選択手段と
して機能させ、
再帰型ニューラルネットワークは、過去の対話履歴に基づく潜在変数がリセットされた後、現話題語に基づく応答文を出力する
ようにコンピュータを更に機能させることも好ましい。
【0014】
本発明のプログラムにおける他の実施形態によれば、
訓練段階として、教師データとして、発話文と、ポジティブ又はネガティブのフラグとを対応付けて学習モデルを構築すると共に、推定段階として、推定データとなる発話文を入力し、ポジティブ又はネガティブのフラグを出力する発話文ポジネガ学習エンジンと
して機能させ、
対話関係判定手段は、推定段階として、発話文ポジネガ学習エンジンから出力されたフラグがネガティブと判定された場合に、話題変更として真と判定する
ようにコンピュータを機能させることも好ましい。
【0015】
本発明のプログラムにおける他の実施形態によれば、
訓練段階として、教師データとして、発話するユーザの顔表情を撮影した映像と、ポジティブ又はネガティブのフラグとを対応付けて学習モデルを構築すると共に、推定段階として、発話するユーザの顔表情の映像を入力し、ポジティブ又はネガティブのフラグを出力する顔映像ポジネガ学習エンジンと
して機能させ、
対話関係判定手段は、推定段階として、顔映像ポジネガ学習エンジンから出力されたフラグがネガティブと判定された場合に、話題変更として真と判定する
ようにコンピュータを機能させることも好ましい。
【0016】
本発明のプログラムにおける他の実施形態によれば、
語彙を概念的に階層型に構成した語彙データベースと、
過去の対話履歴に基づく前話題語を特定し、当該前話題語の反義又は別カテゴリとなる現話題語を選択する現話題語選択手段と
して機能させ、
再帰型ニューラルネットワークは、過去の対話履歴に基づく潜在変数がリセットされた後、現話題語に基づく応答文を出力する
ようにコンピュータを更に機能させることも好ましい。
【0017】
本発明のプログラムにおける他の実施形態によれば、
再帰型ニューラルネットワーク(RNN(Recurrent Neural Network))は、カリキュラム学習(Curriculum Learning)エンジン、LSTM(Long Short Term Memory)、又は、GRU(Gated Recurrent Unit)である
ようにコンピュータを機能させることも好ましい。
【0018】
本発明によれば、発話文に対して応答文を生成する対話装置において、
訓練段階として、教師データにおける発話文及び応答文を時系列に入力し、潜在変数に基づく学習モデルを構築すると共に、推定段階として、推定データとなる発話文を時系列に入力する毎に、応答文を出力する再帰型ニューラルネットワークと、
訓練段階として、教師データとして発話文及び正当な応答文を対応付けて学習モデルを構築すると共に、推定段階として、推定データとなる発話文と、再帰型ニューラルネットワークから出力された応答文とを入力し、正当のスコアを出力する対話学習エンジンと、
推定段階として、対話学習エンジンから出力されたスコアが所定閾値以下となる場合に、対話破綻として真と判定する対話関係判定手段と、
対話関係判定手段によって真と判定された際に、再帰型ニューラルネットワークに対して過去の対話履歴に基づく潜在変数をリセットする対話履歴リセット手段と
を有し、
再帰型ニューラルネットワークは、過去の対話履歴に基づく潜在変数がリセットされた後の発話文のみから推定された応答文を出力する
ことを特徴とする。
【0019】
本発明によれば、発話文に対して応答文を生成する装置の対話方法において、
装置は
訓練段階として、教師データにおける発話文及び応答文を時系列に入力し、潜在変数に基づく学習モデルを構築すると共に、推定段階として、推定データとなる発話文を時系列に入力する毎に、応答文を出力する再帰型ニューラルネットワークと、
訓練段階として、教師データとして発話文及び正当な応答文を対応付けて学習モデルを構築すると共に、推定段階として、推定データとなる発話文と、再帰型ニューラルネットワークから出力された応答文とを入力し、正当のスコアを出力する対話学習エンジンと
を有し、
推定段階として、対話学習エンジンから出力されたスコアが所定閾値以下となる場合に、対話破綻として真と判定する第1のステップと、
第1のステップによって真と判定された際に、再帰型ニューラルネットワークに対して過去の対話履歴に基づく潜在変数をリセットする第2のステップと、
再帰型ニューラルネットワークは、過去の対話履歴に基づく潜在変数がリセットされた後の発話文のみから推定された応答文を出力する第3のステップと
を実行することを特徴とする。
【発明の効果】
【0020】
本発明のプログラム、装置及び方法によれば、ユーザの発話文に対して、対話が破綻せず、且つ、相槌が継続することがない応答文を生成することができる。
【図面の簡単な説明】
【0021】
【
図1】本発明における対話装置の機能構成図である。
【
図2】スコアを出力する対話学習エンジンを更に有する対話装置の機能構成図である。
【
図3】相槌文登録部を更に有する対話装置の機能構成図である。
【
図4】語彙データベースの探索を表す説明図である。
【
図5】発話文ポジネガ学習エンジンを更に有する対話装置の機能構成図である。
【
図6】顔映像ポジネガ学習エンジンを更に有する対話装置の機能構成図である。
【発明を実施するための形態】
【0022】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【0023】
図1は、本発明における対話装置の機能構成図である。
【0024】
図1によれば、対話装置1は、ユーザの発話文に対して、システムの応答文を生成する。対話装置1は、教師データベース101と、再帰型ニューラルネットワーク11と、対話関係判定部12と、対話履歴リセット部13とを有する。これら機能構成部は、装置に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。また、これら機能構成部の処理の流れは、対話方法としても理解できる。
【0025】
[教師データベース101]
教師データベース101は、過去の対話コーパスであって、発話文に対する正当な応答文を時系列に対応付けて記録したものである。教師データベース101は、再帰型ニューラルネットワーク11の訓練段階で用いられる。
【0026】
再帰型ニューラルネットワーク11は、発話文及び応答文を、形態素解析に基づく形態素毎に生成された言語特徴ベクトルとして入力する。言語特徴ベクトルは、具体的には、ニューラルネットワークによって、単語を高次元ベクトルの分散表現(単語埋め込み表現)に変換したものである。例えばWord2vec(登録商標)を用いることができる。
【0027】
教師データベース101は、発話文及び応答文を言語特徴ベクトルとして予め記録したものであってもよい。
また、教師データベース101は、発話文及び応答文をテキストベースで記録したものであって、再帰型ニューラルネットワーク11に入力される際に、言語特徴ベクトルに変換されるものであってもよい。
【0028】
[再帰型ニューラルネットワーク11]
再帰型ニューラルネットワーク(RNN(Recurrent Neural Network))11は、訓練段階と推定段階として、以下のように機能する。
(訓練段階)教師データにおける発話文及び応答文を時系列に入力し、潜在変数に基づく学習モデルを構築する。
(推定段階)推定データとなる発話文を時系列に入力する毎に、応答文を出力する。
【0029】
再帰型ニューラルネットワーク11は、具体的には、カリキュラム学習(Curriculum Learning)エンジン、LSTM(Long Short Term Memory)、又は、GRU(Gated Recurrent Unit)であってもよい。
【0030】
カリキュラム学習とは、相対的に容易な事例を最初に学習し、徐々に事例の難易度を高くすることによって、ランダムに事例を学習するよりも予測精度を高くする深層学習に基づくものである。カリキュラム学習は、例えばLSTMにおける確率的勾配降下法の学習が困難な場合に特に効果がある。
LSTMは、長期依存(long-term dependencies)を学習可能であって、入力ゲートと忘却ゲートを「更新ゲート」として、1つのゲートに統合したものである。これは、内部に状態を持ち、各時点における入力値及び状態に基づいて、次の状態に遷移させることができる。
GRUも同様に、忘却・更新ゲートを導入することによって、長いステップ前の計測値の特徴の記憶を維持しやすくする。これは、各時間ステップ間を迂回するショートカットパスを効率的に生成し、高速化を図ったものである。
勿論これに限らず、再帰型ニューラルネットワーク11は、汎用的な発話文及び応答文の間の特徴を抽出可能なSeq2Seqベースのものであってもよいし、seq2seq+attentionやtransformerのような改良モデルであってもよい。
【0031】
図1によれば、再帰型ニューラルネットワーク11は、N個のエンコーダ・デコーダを並べて、過去N個の発話文及び応答文の組をまとめて訓練するものである。エンコーダは発話文を入力し、デコーダは応答文を出力するように訓練したものである。
現時点Nの発話文及び応答文は、最初に、N時点のエンコーダ・デコーダで訓練される。そして、現時点Nの発話文及び応答文は、未来時点N+1の発話文及び応答文が入力された際に、過去時点N-1の発話文及び応答文としてシフトされる。このとき、過去時点N-1のエンコーダ・デコーダに入力される。また、過去時点N-1のエンコーダ・デコーダで構築される潜在変数zが、現時点Nのエンコーダに入力される。
即ち、現時点Nのエンコーダは、現時点Nの発話文と過去時点N-1の潜在変数zとを入力し、現時点Nのデコーダから現時点Nの応答文を出力するように訓練される。
同様に、過去時点N-1のエンコーダは、過去時点N-1の発話文と過去時点N-2の潜在変数zとを入力し、過去時点N-1のデコーダから過去時点N-1の応答文を出力するように訓練される。
【0032】
[対話関係判定部12]
対話関係判定部12は、推定段階として、推定データの「発話文」と、再帰型ニューラルネットワーク11から出力された「応答文」との対話関係が所定条件となるか否かを判定する。
ここで、所定条件としては、以下の4つの中でいずれかの条件に適合した際に、真と判定するものであってもよい。
<条件1:発話文と応答文との関係で、対話が破綻した場合>
<条件2:発話文と応答文とについて、相槌文が所定回数以上連続した場合>
<条件3:発話文がネガティブと判定された場合>
<条件4:ユーザの顔画像がネガティブと判定された場合>
【0033】
[対話履歴リセット部13]
対話履歴リセット部13は、対話関係判定部12によって真と判定された際に、再帰型ニューラルネットワーク11に対して過去の対話履歴に基づく潜在変数をリセットする。
再帰型ニューラルネットワーク11は、過去の対話履歴に基づく潜在変数がリセットされた後、現在の発話文のみから推定された応答文を出力する。これによって、過去の話題トピックに引っ張られることなく、新たな話題トピックのみで応答文を生成することとなる。
【0034】
<条件1:発話文と応答文との関係で、対話が破綻した場合>
図2は、スコアを出力する対話学習エンジンを更に有する対話装置の機能構成図である。
図2によれば、
図1と比較して、対話学習エンジン14更に有する。
【0035】
[対話学習エンジン14]
対話学習エンジン14は、訓練段階と推定段階として、以下のように機能する。
(訓練段階)教師データとして発話文及び正当な応答文を対応付けて学習モデルを構築する。
(推定段階)推定データとなる発話文及び応答文を入力し、正当のスコアを出力する。
対話学習エンジン14は、例えばBERT(Bidirectional Encoder Representations from Transformers)のような機械学習エンジンであってもよい。
【0036】
この場合、対話関係判定部12は、推定段階として、対話学習エンジンから出力されたスコアが所定閾値以下となる場合に、対話破綻として真と判定する。即ち、所定閾値によって、対話破綻か否かを分類する。
そして、対話履歴リセット部13は、再帰型ニューラルネットワーク11に対して過去の対話履歴に基づく潜在変数をリセットする。
【0037】
これによって、前述した事例1は、以下のように改善される。
<事例1>
発話文: 腹が空いた
応答文: 何か食べる?
発話文: 餃子を食べたいな
応答文: 餃子は美味しいよね
発話文: 急にお腹が痛くなった
<-(ここで、応答文「餃子の配達は、手伝いましょうか」を生成す
ると、発話文「急にお腹が痛くなった」に対してスコアが低下)
<-(対話破綻と判定し、過去の対話履歴に基づく潜在変数をリセット)
<-(発話文「急にお腹が痛くなった」のみに対する応答文を生成)
応答文: 体調大丈夫なの?腹痛薬を買いに行く?
【0038】
<条件2:発話文と応答文とについて、相槌文が所定回数以上連続した場合>
図3は、相槌文登録部を更に有する対話装置の機能構成図である。
図3によれば、
図2と比較して、相槌文登録部102と、語彙データベース103と、現話題語選択部15とを更に有する。
【0039】
[相槌文登録部102]
相槌文登録部102は、相槌文を予め登録したものである。具体的には、例えば「そうだね」「だよね」「いいよ」「いいね」などの同意を意味する口語を登録したものである。
【0040】
これに対し、対話関係判定部12は、推定段階として、再帰型ニューラルネットワーク11から出力された応答文が、相槌文登録部102に登録された相槌文が時系列に所定回数以上連続した場合に、相槌連続として真と判定する。
そして、対話履歴リセット部13は、再帰型ニューラルネットワーク11に対して過去の対話履歴に基づく潜在変数をリセットする。
【0041】
[語彙データベース103]
語彙データベース103は、語彙を概念的に階層型に構成したものである。
【0042】
図4は、語彙データベースの探索を表す説明図である。
図4によれば、語彙データベースは、自然言語における多数の語彙を、話題トピックとして、階層的に構造化して集積したものである。
例えば「人工物」の下位概念には、「食料」「薬品」「衣料」などが対応付けられている。
また、「人工物」->「食料」->「料理」->「その他・料理」の下位概念には、「焼肉」「煮魚」「餃子」が対応付けられている。
更に、例えば「人工物」->「薬品」->「第3種」の下位概念には、「漢方」「風邪薬」「腹痛薬」が対応付けられている。
【0043】
[現話題語選択部15]
現話題語選択部15は、過去の対話履歴に基づく「前話題語」を特定し、語彙データベース103を用いて、前話題語と同じカテゴリとなる別の「現話題語」を選択する。尚、前話題語が、語彙データベース103に登録されていない未知語彙であっても、言語特徴ベクトル(例えばWord2Vec)として最も近い類義語彙に紐付けることができる。
そして、再帰型ニューラルネットワーク11は、過去の対話履歴に基づく潜在変数がリセットされた後、現話題語に基づく応答文を出力する。
【0044】
尚、現話題語選択部15は、以下のように様々態様で、現話題語を選択してもよい。
(1)前話題語から同一カテゴリ又は別カテゴリの現話題語を選択
(2)前話題語から上位概念(又は下位概念)の現話題語を選択
(3)前話題語に対する反義語を、現話題語として選択
【0045】
図4によれば、語彙データベース103に存在する語彙「餃子」を、前話題語として特定したとする。
これによって、前述した事例2は、以下のように改善される。
<事例2>
発話文: 腹が空いた
応答文: 何か食べる?
発話文: 餃子を食べたいな
応答文: 餃子は美味しいよね
発話文: だよね
応答文: それはそうだね <-(相槌1回目)
発話文: いいよ
<-(ここで、応答文「いいね」を生成すると、相槌文が連続する)
<-(相槌連続と判定し、過去の対話履歴に基づく潜在変数をリセット)
<-(前話題語「餃子」から同一のカテゴリの現話題語「焼肉」を選択)
<-(現話題語「焼肉」に対する応答文を生成)
応答文:★ところで、最近の話題の焼肉の情報を知りたい?
ここでは、相槌の連続回数2回で、ユーザが無関心と判定としているが、適宜設定することもできる。
【0046】
<条件3:発話文がネガティブと判定された場合>
図5は、発話文ポジネガ学習エンジンを更に有する対話装置の機能構成図である。
図5によれば、
図1と比較して、発話文ポジネガ学習エンジン16を更に有する。
【0047】
[発話文ポジネガ学習エンジン16]
発話文ポジネガ学習エンジン16は、訓練段階と推定段階として、以下のように機能する。
(訓練段階)教師データとして、発話文と、ポジティブ又はネガティブのフラグとを対応付けて学習モデルを構築する。
(推定段階)推定データとなる発話文を入力し、ポジティブ又はネガティブのフラグを出力する。
発話文ポジネガ学習エンジン16は、具体的には、Support Vector Machine等の判定器や、Google(登録商標)社が提供しているCloud Natural Language APIであってもよい(例えば非特許文献3参照)。
【0048】
対話関係判定部12は、推定段階として、ポジネガ学習エンジンから出力されたフラグがネガティブと判定された場合に、話題変更として真と判定する。
そして、対話履歴リセット部13は、再帰型ニューラルネットワーク11に対して過去の対話履歴に基づく潜在変数をリセットする。
【0049】
これによって、例えば以下のように改善される。
<事例2>
発話文: 腹が空いた
応答文: 何か食べる?
発話文: 餃子を食べたいな
応答文: 餃子は美味しいよね
発話文: 餃子は直ぐ作れないからなあ
<-(ネガティブによる話題変更と判定し、過去の対話履歴に基づく
潜在変数をリセット)
<-(前話題語「餃子」から同一のカテゴリの現話題語「焼肉」を選択)
<-(現話題語「焼肉」に対する応答文を生成)
応答文:★ところで、最近の話題の焼肉の情報を知りたい?
【0050】
<条件4:ユーザの顔画像がネガティブと判定された場合>
図6は、顔映像ポジネガ学習エンジンを更に有する対話装置の機能構成図である。
図6によれば、
図1と比較して、顔映像ポジネガ学習エンジン17を更に有する。
【0051】
[顔映像ポジネガ学習エンジン17]
顔映像ポジネガ学習エンジン17は、訓練段階と推定段階として、以下のように機能する。
(訓練段階)教師データとして、発話するユーザの顔表情を撮影した映像と、ポジティブ又はネガティブのフラグとを対応付けて学習モデルを構築する。
(推定段階)発話するユーザの顔表情の映像を入力し、ポジティブ又はネガティブのフラグを出力する。
ユーザの顔画像から3つの感情極性(ポジティブ/ネガティブ/ニュートラル)を判定する既存技術を用いることができる(例えば非特許文献4参照)。映像は、複数のフレーム(静止画)から構成されるが、各フレームに映るユーザの顔表情から感情極性を判定し、最も多く出現した感情極性に決定する。
【0052】
具体的には、ユーザの顔映像から、時系列の映像特徴量を抽出する。映像特徴量としては、例えば68個の顔特徴点や、AU(Action Unit)特徴、目線、表情などの特徴量がある。例えばAU特徴とは、顔の唇、目、眉の3領域の動きに対し 複数種類の動きを定義したものである。これは、FACS(Facial Action Coding System)という表情記述法で用いられる表情動作の最小単位であり、これらAUの組み合わせによって構成される。
顔映像ポジネガ学習エンジン17は、これらの映像特徴量と、ポジティブ又はネガティブのフラグとを対応付けて訓練する。
【0053】
対話関係判定部12は、推定段階として、ポジネガ学習エンジンから出力されたフラグがネガティブと判定された場合に、話題変更として真と判定する。
そして、対話履歴リセット部13は、再帰型ニューラルネットワーク11に対して過去の対話履歴に基づく潜在変数をリセットする。
【0054】
このとき、現話題語選択部15は、語彙データベース103を用いて、前話題語の反義又は別カテゴリとなる現話題語を選択することも好ましい。
これによって、例えば以下のように改善される。
<事例2>
発話文: 腹が空いた
応答文: 何か食べる?
発話文: 冷蔵庫の餃子でも食べようかね
応答文: 餃子は美味しいよね
(顔映像: ネガティブと判定し、過去の対話履歴に基づく潜在変数をリセット)
<-(前話題語「餃子」から別カテゴリの現話題語「衣料」を選択)
<-(現話題語「衣料」に対する応答文を生成)
応答文:★ところで、今年の冬に話題のジャケットの情報を知りたい?
【0055】
以上、詳細に説明したように、本発明のプログラム、装置及び方法によれば、ユーザの発話文に対して、対話が破綻せず、且つ、相槌が継続することがない応答文を生成することができる。即ち、話題の豊富さと対話の深堀りを両立する雑談対話を実現する。
【0056】
尚、これにより、例えば「システムが、ユーザとの間で十分なコミュニケーションをとることができる」ことから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【0057】
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【0058】
1 対話装置
101 教師データベース
102 相槌文登録部
103 語彙データベース
104 教師データベース
11 再帰型ニューラルネットワーク
12 対話関係判定部
13 対話履歴リセット部
14 対話学習エンジン
15 現話題語選択部
16 発話文ポジネガ学習エンジン
17 顔映像ポジネガ学習エンジン