(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-17
(45)【発行日】2022-10-25
(54)【発明の名称】発話生成装置、方法、及びプログラム
(51)【国際特許分類】
G06F 40/56 20200101AFI20221018BHJP
【FI】
G06F40/56
(21)【出願番号】P 2018195371
(22)【出願日】2018-10-16
【審査請求日】2021-01-22
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】片山 太一
(72)【発明者】
【氏名】大塚 淳史
(72)【発明者】
【氏名】光田 航
(72)【発明者】
【氏名】東中 竜一郎
(72)【発明者】
【氏名】富田 準二
【審査官】長 由紀子
(56)【参考文献】
【文献】特開2016-048463(JP,A)
【文献】下岡 和也 外4名,音声対話ロボットのための傾聴システムの開発,自然言語処理,日本,一般社団法人言語処理学会,2017年02月15日,第24巻第1号,pp.3-47
【文献】片山 太一 外4名,相手の発話を深掘りするための質問生成技術,一般社団法人 人工知能学会 第32回全国大会論文集DVD [DVD-ROM] 2018年度 人工知能学会全国大会(第32回),日本,(一社)人工知能学会,2018年06月08日,pp.1-3
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-58
(57)【特許請求の範囲】
【請求項1】
発話文であるテキストを入力として、所定のルールまたは予め学習済みの推定器により、前記テキストに関連した
既知の情報の質問を含む疑問詞である推定使用疑問詞の推定を行う疑問詞探索部と、
前記テキストを入力として、自動発話生成により前記発話文に対する発話文候補の各々を生成する発話文候補生成部と、
前記発話文候補の各々と、前記推定使用疑問詞の推定結果と
を入力として、以下(1)式に従って、前記発話文候補の各々に対してスコアを計算し、当該スコアに基づき発話文候補の各々の順位付けを行うランキング部と、
を含む
発話生成装置。
T^=argmaxT{log P(T|S)+log P(S|T)-wh_penalty(T,S)} ・・・(1)
ただし、(S)は前記発話文、(T)は前記発話文候補とし、log P(T|S)は、前記発話文(S)から前記発話文候補(T)を生成する予め学習済みのモデルから得た生成確率P(T|S)による、前記入力された前記発話文(S)が与えられたときに前記発話文候補(T)が出現する尤もらしさを表す値であり、
log p(S|T)は、前記発話文候補(T)から前記発話文(S)を生成する予め学習済みのモデルから得た生成確率P(S|T)による、前記発話文候補(T)が与えたられたときに入力が前記発話文(S)となる尤もらしさを表す値であり、
wh_penalty(T,S)は、前記発話文候補(T)に前記推定使用疑問詞が含まれるか否かに応じて定まるペナルティ値であり、含まれる場合に1、含まれない場合に0又は-1を与える。
【請求項2】
前記ランキング部は、前記発話文候補のうち、前記推定使用疑問詞を含む発話文候補と、前記推定使用疑問詞を含まない発話文候補とを比較し、前記推定使用疑問詞を含む発話文候補が選択されにくくなるように、前記発話文候補の各々に対してスコアを計算する請求項1に記載の発話生成装置。
【請求項3】
前記発話文候補生成部について、発話文を入力とし、前記発話文に対する発話文候補を出力するように予め学習された機械学習モデルに前記テキストを入力し、前記発話文候補の各々を生成する請求項1または請求項2に記載の発話生成装置。
【請求項4】
対話システムにおける対話が継続しているものとし、
前記疑問詞探索部は、前記対話の文脈となるテキストと、前記入力された前記発話文の前記テキストとを入力として、前記所定のルールまたは前記推定器により、前記推定使用疑問詞の推定を行う請求項1~請求項3の何れか1項に記載の発話生成装置。
【請求項5】
疑問詞探索部が、発話文であるテキストを入力として、所定のルールまたは予め学習済みの推定器により、前記テキストに関連した
既知の情報の質問を含む疑問詞である推定使用疑問詞の推定を行うステップと、
発話文候補生成部が、前記テキストを入力として、自動発話生成により前記発話文に対する発話文候補の各々を生成するステップと、
ランキング部が、前記発話文候補の各々と、前記推定使用疑問詞の推定結果と
を入力として、以下(2)式に従って、前記発話文候補の各々に対してスコアを計算し、当該スコアに基づき発話文候補の各々の順位付けを行うステップと、
を含むか発話生成方法。
T^=argmaxT{log P(T|S)+log P(S|T)-wh_penalty(T,S)} ・・・(2)
ただし、(S)は前記発話文、(T)は前記発話文候補とし、log P(T|S)は、前記発話文(S)から前記発話文候補(T)を生成する予め学習済みのモデルから得た生成確率P(T|S)による、前記入力された前記発話文(S)が与えられたときに前記発話文候補(T)が出現する尤もらしさを表す値であり、
log p(S|T)は、前記発話文候補(T)から前記発話文(S)を生成する予め学習済みのモデルから得た生成確率P(S|T)による、前記発話文候補(T)が与えたられたときに入力が前記発話文(S)となる尤もらしさを表す値であり、
wh_penalty(T,S)は、前記発話文候補(T)に前記推定使用疑問詞が含まれるか否かに応じて定まるペナルティ値であり、含まれる場合に1、含まれない場合に0又は-1を与える。
【請求項6】
コンピュータを、請求項1~請求項
4のいずれか1項に記載の発話生成装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、発話生成装置、方法、及びプログラムに係り、特に、発話文に対する応答発話を生成するための発話生成装置、方法、及びプログラムに関する。
【背景技術】
【0002】
対話システムでインタビュー等を行おうとする際、対話システムが対話相手(ユーザ、ロボット、又は対話システム等)に対して質問するための発話文はルール等で事前に準備しておくことが可能である。しかし、相手の情報をより聞き出すための質問、つまり深掘りの質問は相手の発話内容によって聞くべきことが変化するため、ルールでの準備が困難であるという問題がある。
【0003】
このような問題を解決するために、最近では、自動発話生成に関する技術が提案されている(非特許文献1)。
【先行技術文献】
【非特許文献】
【0004】
【文献】Oriol Vinyals, Quoc V. Le, "A Neural Conversational Model", 22 Jul 2015.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、自動発話生成を用いた深掘りの質問による応答発話の生成では、例えば以下の2つの問題がある。
【0006】
(1)どんな発話にも対応できる質問(例えば、「なんで」、「どうして」等)が多く生成されてしまう。
(2)ユーザの発話から既知の内容を聞くための質問が生成されてしまう。
【0007】
本発明は、上記事情を鑑みて成されたものであり、自動生成した複数個の質問から、相手の発話を深掘りするための適切な質問を選定することを可能にする発話生成装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、第1の発明に係る発話生成装置は、発話文であるテキストを入力として、所定のルールまたは予め学習済みの推定器により、前記テキストに関連した疑問詞である推定使用疑問詞の推定を行う疑問詞探索部と、前記テキストを入力として、自動発話生成により前記発話文に対する発話文候補の各々を生成する発話文候補生成部と、前記発話文候補の各々と、前記推定使用疑問詞の推定結果とに基づいて、前記発話文候補の各々に対してスコアを計算し、当該スコアに基づき前記発話候補の各々の順位付けを行うランキング部と、を含んで構成されている。
【0009】
また、第1の発明に係る発話生成装置において、前記ランキング部は、前記発話文候補のうち、前記推定使用疑問詞を含む発話文候補と、前記推定使用疑問詞を含まない発話文候補とを比較し、前記推定使用疑問詞を含む発話文候補が選択されにくくなるように、前記発話文候補の各々に対してスコアを計算するようにしてもよい。
【0010】
また、第1の発明に係る発話生成装置において、前記発話文候補生成部について、発話文を入力とし、前記発話文に対する発話文候補を出力するように予め学習された機械学習モデルに前記テキストを入力し、前記発話文候補の各々を生成するようにしてもよい。
【0011】
また、第1の発明に係る発話生成装置において、対話システムにおける対話が継続しているものとし、前記疑問詞探索部は、前記対話の文脈となるテキストと、前記入力された前記発話文の前記テキストとを入力として、前記所定のルールまたは前記推定器により、前記推定使用疑問詞の推定を行うようにしてもよい。
【0012】
また、第1の発明に係る発話生成装置において、前記ランキング部は、前記入力された前記発話文が与えられたときに前記発話文候補が出現する尤もらしさを表す値と、前記発話文候補が与えたられたときに入力が前記発話文となる尤もらしさを表す値と、前記発話文候補に前記推定使用疑問詞が含まれるか否かに応じて定まるペナルティ値とに基づいて、前記スコアを計算するようにしてもよい。
【0013】
第2の発明に係る発話生成方法は、疑問詞探索部が、発話文であるテキストを入力として、所定のルールまたは予め学習済みの推定器により、前記テキストに関連した疑問詞である推定使用疑問詞の推定を行うステップと、発話文候補生成部が、前記テキストを入力として、自動発話生成により前記発話文に対する発話文候補の各々を生成するステップと、ランキング部が、前記発話文候補の各々と、前記推定使用疑問詞の推定結果とに基づいて、前記発話文候補の各々に対してスコアを計算し、当該スコアに基づき前記発話候補の各々の順位付けを行うステップと、を含んで実行することを特徴とする。
【0014】
第3の発明に係るプログラムは、コンピュータを、第1の発明に記載の発話生成装置の各部として機能させるためのプログラムである。
【発明の効果】
【0015】
本発明の発話生成装置、方法、及びプログラムによれば、相手の発話を深掘りするための適切な質問を生成することができる、という効果が得られる。
【図面の簡単な説明】
【0016】
【
図1】本発明の実施の形態に係る発話生成装置の構成を示すブロック図である。
【
図2】疑問詞探索部の構成を示すブロック図である。
【
図4】発話文候補のうち推定使用疑問詞が使用されている箇所を抽出した場合の一例を示す図である。
【
図6】本発明の実施の形態に係る発話生成装置における発話生成処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明の実施の形態を詳細に説明する。本実施の形態の発話生成装置は、雑談対話における相手の発話を深掘りするための質問等の発話を生成する発話生成装置であり、対話システムにおける雑談対話の一処理として利用される。発話生成装置は、自動発話生成で出力された、応答発話として尤もらしい上位N個(Nbest)の発話文候補を上記で述べた2つの問題に対応できる変数を用いてランキングすることで、問題を解決する。
【0018】
対話システムに本実施の形態の手法を用いることで、会話を精度良く深掘りできるようになる。対話システムはユーザの情報をより収集することができるようになり、収集した情報を活用した応答発話をユーザに返すことで、ユーザは対話システムとより話しやすくなり、対話システムとユーザのインタラクションが円滑になることが期待できる。
【0019】
<本発明の実施の形態に係る発話生成装置の構成>
【0020】
次に、本発明の実施の形態に係る発話生成装置の構成について説明する。
図1に示すように、本発明の実施の形態に係る発話生成装置100は、CPUと、RAMと、後述する発話生成処理ルーチンを実行するためのプログラムや各種データを記憶したROMと、を含むコンピュータで構成することが出来る。この発話生成装置100は、機能的には
図1に示すように入力部10と、演算部20と、出力部50とを備えている。
【0021】
入力部10は、対話相手であるユーザが発話した発話文のテキストを受け付ける。
【0022】
演算部20は、疑問詞探索部30と、発話文候補生成部32と、ランキング部34とを含んで構成されている。
【0023】
疑問詞探索部30は、入力部10で受け付けた発話文のテキストを入力として、所定のルールにより、テキストに含まれる発話の内容に関連した疑問詞である推定使用疑問詞の推定を行う。
【0024】
疑問詞探索部30は、
図2に示すように、形態素解析器301と、使用疑問詞推定部302とを含んで構成されている。
【0025】
形態素解析器301は、発話文のテキストの入力を受け付けて、形態素解析をかける。
【0026】
使用疑問詞推定部302は、発話文のテキストの形態素解析の結果から、品詞や語彙大系(参考文献1参照)や表記を用いた所定のルールのマッチによって、推定使用疑問詞を推定する。推定使用疑問詞とは、発話文のテキストに関連した疑問詞であり、例えば、発話文の内容で既知となっている情報について質問する際に用いられる疑問詞が挙げられる。つまり、この推定使用疑問詞を含む発話文候補は、既知の情報の質問を含むものである。この性質に鑑み、後述するランキング部34による処理で推定使用疑問詞を含む発話文候補のランキングの順位が下がるような処理を行うために推定使用疑問詞は用いられる。本実施の形態では、所定のルールのマッチによる推定使用疑問詞を推定しているが、これに限定されるものではなく、学習データを用いて予め学習しておいた推定器を用意して推定使用疑問詞を推定するようにしてもよい。推定器はニューラルネットワークやSVMなど既知の手法を用いればよい。
【0027】
[参考文献1]池原悟, 宮崎正弘, 白井諭, 横尾昭男, 中岩浩巳, 小倉健太郎, 大山芳史, 林良彦,日本語語彙大系. 岩波書店,1997.
【0028】
疑問詞探索部30の処理の一例を
図3に示す。例えば、入力されたテキストが、「昨日、私は彼女と横須賀で花見をした。」という発話文であるとする。疑問詞探索部30により、所定のルールにおいて、「いつ」、「だれが」、「だれと」、「どこで」、「なにを」を推定使用疑問詞として推定する。ここで推定された推定使用疑問詞は、「昨日/いつ」、「私/だれが」、「彼女/だれと」、「横須賀で/どこで」、「花見を/なにを」というように、ユーザの発話から既知となった内容に対応する疑問詞であり、ユーザ側としてみれば既に回答した内容といえる。
【0029】
また、上記
図3の以外の例として、「なんで」、「どうして」が推定使用疑問詞として推定される例を挙げる。例えば、所定のルールでは、「動詞+助詞の「に」」について「なんで」、「どうして」の疑問詞が対応付けられているとする。この場合、発話文のテキストが「ご飯を食べに横浜に行きました」の場合は、「食べ(動詞)+に(助詞)」が所定のルールにマッチし、「なんで」、「どうして」を推定使用疑問詞として推定する。推定使用疑問詞は、
図3に記載したものや、「なんで」、「どうして」以外にも、「どうやって」、「どれぐらい」、「どちらが」等複数考えられる。推定使用疑問詞として何を指定し、どのような発話文に対応付けるかは、任意に定義・設定してよい。
【0030】
また、疑問詞探索部30は、ユーザと対話システムとの間で複数回対話が継続している場合には、入力部10に入力された発話文のテキストとして、継続中の対話におけるユーザや対話システムの対話履歴(複数の発話文のテキスト)を用いてもよい。具体的には、対話システムにおいてK回の対話が行われることを想定する。現在の対話がK回目であり、入力部10にK番目の発話文が入力された際に、それ以前の対話履歴(すなわち、1,2,...,K-1までの対話履歴)から得られる対話の文脈となるテキストも用いて推定使用疑問詞を推定する。対話の文脈となるテキストとしては、以前出力部50が出力したK-1番目以前の応答発話のテキストまたは、その応答発話を生成する際に入力部10に入力されていたK-1番目以前の発話文のテキストの少なくとも一方を用いる。この対話の文脈となるテキストと、K番目の発話文のテキストとを入力として、所定のルールまたは推定器により、推定使用疑問詞の推定を行うようにしてもよい。これにより、K回目の対話以前に既知となった情報に対応する推定使用疑問詞も推定できる。例えば、それまでの対話履歴が「(K=1:ユーザ)昨日、横須賀に行ってきたよ。」「(K=1:対話システム)昨日、横須賀では何をしたんですか?」「(K=2:ユーザ)花見をしに行ったよ」であったとする。この場合、K-1番目以前の対話履歴から「昨日/いつ」、「横須賀で/どこで」が推定使用疑問詞として推定でき、入力されたK番目の発話文から推定できる「花見を/何を」以外の推定使用疑問詞も補完することができる。なお、何番目の対話まで遡って推定使用疑問詞を補完するかは、任意に設定すればよい。
【0031】
また、疑問詞探索部30は、ユーザと対話システムとの間で対話が継続している場合に、推定した推定使用疑問詞の履歴を蓄積して、推定使用疑問詞の履歴に新たに推定された推定使用疑問詞を加えてランキング部34に推定使用疑問詞の推定結果として出力するようにしてもよい。これにより、継続中の対話において既知となった情報、つまり対話の文脈を考慮してランキング部34の処理を行うことができる。
【0032】
発話文候補生成部32は、入力部10で受け付けた発話文のテキストを入力として、機械学習モデルを用いた自動発話生成により発話文に対する発話文候補の各々を生成する。発話文候補は、例えばNbestならN個生成することになる。発話候補は、複数生成することを前提にしており、例えばN=5の5bestなら、5つの発話文候補、N=10の10bestなら10個の発話文候補を生成することになる。本実施の形態では、発話文候補の自動発話生成に、機械学習モデルとしてニューラルネットワークによるencoder-decoderモデル(非特許文献1参照)を用いることを想定するが、これに限定されるものではなくHMM等別の生成モデルを用いてもよい。
【0033】
ランキング部34は、発話文候補生成部32で生成された発話文候補の各々と、疑問詞探索部30の推定使用疑問詞の推定結果とに基づいて、発話文候補の各々に対してスコアを計算しすることにより、発話候補の順位付けを行う。
【0034】
出力部50は、発話文候補の各々と、ランキング部34のスコアの計算結果に基づいて発話候補を選択し、選択された発話文候補を、対話システムの応答発話として出力する。
【0035】
ランキング部34は、具体的には、発話文候補生成部32から得られた発話文候補の各々と、疑問詞探索部30から得られた推定使用疑問詞の推定結果を入力として、以下(1)式に従って、発話文候補の各々のスコアを計算し、発話文候補をランキングする。
【0036】
T^=argmaxT{log P(T|S)+log P(S|T)-wh_penalty(T,S)} ・・・(1)
【0037】
ここで、Sは入力された発話文のテキスト、Tは発話文候補生成部32から得られた発話文候補の各々うちの一つの発話文候補である。log P(T|S)は発話文(S)が与えられたときに、応答発話が発話文候補(T)が出現する尤もらしさを表す値、log p(S|T)は発話文候補(T)が与えられたときに、入力が発話文(S)となる尤もらしさを表す値である。これらの値は、入力された発話文Sと、発話文候補の各々であるTとの、対話の対としての尤もらしさを表すものであれば何でもよい。本実施の形態においては、機械学習モデルとして、SからTを生成するよう予め学習済みのニューラルネットワークと、TからSを生成するよう予め学習済みのニューラルネットワークとの、2つのモデルを用いて確率を算出する。SからTを生成するモデルからは、SからTを生成する際の生成確率P(T|S)が得られ、TからSを生成するモデルからは、TからSを生成する際の生成確率P(S|T)が得られる。ただし、P(T|S)のみを用いるようにしてもよい。wh_penalty(T,S)は発話文候補に推定使用疑問詞が含まれるか否かに応じて定まる値である。発話文候補(T)の中に推定使用疑問詞が含まれている場合は、wh_penaltyの値として、ペナルティであるαの値(例えばα=1)を与える。なお、推定使用疑問詞が含まれていない発話文候補について、選択されやすくなるようなwh_penaltyの値(例えば-1)を与えるようにしてもよい。
【0038】
ただし、スコアT^を計算する際、Nbestを生成した時点で、生成確率がある程度担保される場合には、上記(1)式のうちwh_penaltyの値のみで充分な場合もある。これは、例えば決まりきった応答しか考えられない場合や、N=3等、Nが少ない場合が考えられる。N=30のように、Nの数を多くして発話文候補を増やす場合、十分な生成確率が担保できなくなることもある。この場合、生成確率をスコアに入れて計算することで、入力発話と応答発話の、対話の対としての尤もらしさと、対話の文脈との両方を考慮して、発話文候補にスコアを付与することができる。
【0039】
以下にランキング部34の処理の具体例を示す。
【0040】
発話文候補生成部32からは、「昨日、私は彼女と横須賀で花見をした。」の入力に対して、「なんで?」、「どこでやってたの?」、「いつの花見?」、「どんな感じだった?」、「誰といったの?」の5つの発話文候補が得られているものとする。
【0041】
ランキング部34は、推定使用疑問詞と、発話文候補とを対応付け、
図4に示す下線が引いてある箇所のように、発話文候補のうち推定使用疑問詞が使用されている箇所を抽出し、推定使用疑問詞が含まれる発話文候補のwh_penaltyに1を与える。
【0042】
ランキング部34は、発話文候補をランキングするために必要なスコアを上記(1)式に従って計算する。発話文候補の各々のスコアの計算結果を
図5に示す。
【0043】
図5の例では、最大のスコアをもつ発話文候補は「どんな感じだったの?」となり、この発話文候補を選択して、対話システムの応答発話として出力部50に出力する。
【0044】
以上のように、ランキング部34は、上記(1)式を用いて、発話文候補のうち、推定使用疑問詞を含む発話文候補と、推定使用疑問詞を含まない発話文候補とを比較し、推定使用疑問詞を含む発話文候補が選択されにくくなるように、発話文候補の各々に対してスコアを計算する。
【0045】
また、上記(1)式のように、log P(S|T)を考慮することで、例えば、発話文のテキストが「横浜に行ったんです」である場合に発話文候補として「赤レンガに行ったんですか?」が与えられたときの確率が高くなることを考慮できる。これにより、どんな発話にでも対応できる汎用的な疑問詞の質問をしてしまうことの抑制につながる。
【0046】
<本発明の実施の形態に係る発話生成装置の作用>
【0047】
次に、本発明の実施の形態に係る発話生成装置100の作用について説明する。入力部10において対話相手であるユーザが発話した発話文のテキストを受け付けると、発話生成装置100は、
図6に示す発話生成処理ルーチンを実行する。
【0048】
まず、ステップS100では、疑問詞探索部30は、入力部10で受け付けた発話文のテキストに形態素解析をかける。
【0049】
次に、ステップS102では、疑問詞探索部30は、形態素解析の結果から、所定のルールにより、テキストに含まれる発話の内容に関連した疑問詞である推定使用疑問詞の推定を行う。
【0050】
ステップS104では、発話文候補生成部32は、入力部10で受け付けた発話文のテキストを入力として、機械学習モデルを用いた自動発話生成により発話文に対する発話文候補の各々を生成する。
【0051】
ステップS106では、ランキング部34は、発話文候補生成部32で生成された発話文候補の各々と、疑問詞探索部30の推定使用疑問詞の推定結果とに基づいて、発話文候補の各々に対してスコアを計算する。
【0052】
ステップS108では、出力部50は、ステップS106のスコアの計算結果に基づいて発話文候補を選択し、選択された発話文候補を対話システムの応答発話として出力する。
【0053】
以上説明したように、本発明の実施の形態に係る発話生成装置によれば、相手の発話を深掘りするための適切な質問をすることができる。例えば、従来技術では、どんな発話にも対応できる質問(例えば、「なんで」、「どうして」等)が多く生成しまうのに対し、本発明の実施の形態に係る発話生成装置では、入力された発話文から、「なんで」、「どうして」に対する内容が既知であれば、「なんで」、「どうして」を含む発話文候補が選択されにくくなる。また、入力された発話文から既知の内容に対応する疑問詞を含む発話文候補が選択されにくくなる。
【0054】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0055】
例えば、上述した実施の形態では、ランキング部34ではスコアが高い発話文候補をランキングする場合を例に説明したが、これに限定されるものではない。例えば、上記(1)式をスコアが低くなるような式に置き換えて設計し、置き換えた式に基づいてスコアを計算して、スコアが低い発話文候補をランキングするようにしてもよい。この場合には、発話文候補(T)の中に推定使用疑問詞が含まれていればwh_penaltyの値はスコアが高くなるように与え、選択されにくくなるように設計する。
【符号の説明】
【0056】
10 入力部
20 演算部
30 疑問詞探索部
32 発話文候補生成部
34 ランキング部
50 出力部
100 発話生成装置
301 形態素解析器
302 使用疑問詞推定部