(57)【特許請求の範囲】
【請求項１】
人同士の対話テキストデータを、対話ＩＤと、発話順番号と、対話行為と、発話文と、の組から成る発話情報として、上記対話ＩＤと上記発話順番号とで検索できる様に記憶した対話記憶部と、
上記対話記憶部を参照して、対話行為推定学習に用いるための対話ＩＤと発話順番号を持つ発話情報のまとまりの最後の発話順番号を持つ発話情報の対話行為を出力対話行為列、当該出力対話行為列の直前のＮ個の発話情報を入力発話情報列とし、出力対話行為列と入力発話情報列の組を教師発話ペアとして選択して出力する教師発話ペア選択部と、
上記教師発話ペアの入力発話情報列の各発話文の対話行為を表すベクトル列と又は及び上記発話文に含まれる特徴量を示すベクトル列と、から成る発話情報特徴ベクトルを抽出し、上記教師発話ペアの出力対話行為列と発話情報特徴ベクトルを組にして教師データとして出力する発話特徴抽出部と、
上記教師データを記憶する教師データ記憶部と、
上記出力対話行為列と発話情報特徴ベクトルの組を入力として、当該出力対話行為列の生成確率を計算するためのパラメータ行列を求め、当該パラメータ行列を対話行為推定器パラメータとして出力する対話行為推定器学習部と、
を具備する対話制御学習装置。
【請求項２】
請求項１に記載した対話制御学習装置において、
上記対話行為推定器学習部は、上記出力対話行為列と発話情報特徴ベクトルの組を入力として、当該発話情報特徴ベクトルを入力特徴ベクトルとして確率的分類を行うためのパラメータ行列を求めるものであることを特徴とする対話制御学習装置。
【請求項３】
請求項１に記載した対話制御学習装置において、
上記対話行為推定器学習部は、
出力発話情報列と発話情報特徴ベクトルとの組を入力として、１個の発話順番号の出力発話情報が複数個ある場合、当該複数個の数に上記出力発話情報列を分割して出力する出力発話情報列分割手段と、
上記出力発話情報列分割手段が出力する出力発話情報と発話情報特徴ベクトルとの組を入力として、当該発話情報特徴ベクトルを入力特徴ベクトルとして確率的分類を行うためのパラメータ行列を求める請求項２に記載した対話行為推定器学習部と、
上記対話記憶部に記憶された全ての対話テキストデータの内、同一の発話順番が付与された対話行為列に現れた対話行為間の接続確率を、上記対話行為列の先頭に開始対話行為、終端に終了対話行為が付与されるとして、各対話行為間の接続確率を計算した対話行為間接続行列を求める対話行為間の接続確率計算手段と、
を備え、
上記パラメータ行列と上記対話行為間接続行列を上記対話行為推定器パラメータとして出力するものであることを特徴とする対話制御学習装置。
【請求項４】
入力された発話の発話情報列の各発話文の対話行為を表すベクトル列又は及び上記各発話文に含まれる特徴量を示すベクトル列と、から成る発話情報特徴ベクトルを抽出して出力する発話特徴抽出部と、
請求項１乃至３の何れかに記載した対話制御学習装置で学習した対話行為推定器パラメータと、
上記発話情報特徴ベクトルを入力として、上記対話行為推定器パラメータを参照して次の対話行為の生成確率を求め、当該生成確率の値を元に次のユーザ発話の出力対話行為を決定して出力する対話行為決定部と、
を具備する対話制御装置。
【請求項５】
人同士の対話テキストデータを、対話ＩＤと、発話順番号と、対話行為と、発話文と、の組から成る発話情報として、上記対話ＩＤと上記発話順番号とで検索できる様に記憶した対話記憶部を参照して、対話行為推定学習に用いるための対話ＩＤと発話順番号を持つ発話情報のまとまりの最後の発話順番号を持つ発話情報の対話行為を出力対話行為列、当該出力対話行為列の直前のＮ個の発話情報を入力発話情報列とし、出力対話行為列と入力発話情報列の組を教師発話ペアとして選択して出力する教師発話ペア選択過程と、
上記教師発話ペアの入力発話情報列の各発話文の対話行為を表すベクトル列と又は及び上記発話文に含まれる特徴量を示すベクトル列と、から成る発話情報特徴ベクトルを抽出し、上記教師発話ペアの出力対話行為列と発話情報特徴ベクトルを組にして教師データとして出力する発話特徴抽出過程と、
教師データ記憶部に記憶された上記出力対話行為列と発話情報特徴ベクトルの組を入力として、当該出力対話行為列の生成確率を計算するためのパラメータ行列を求め、当該パラメータ行列を対話行為推定器パラメータとして出力する対話行為推定器学習過程と、
を備える対話制御学習方法。
【請求項６】
請求項５に記載した対話制御学習方法において、
上記対話行為推定器学習過程は、上記出力対話行為列と発話情報特徴ベクトルの組を入力として、当該発話情報特徴ベクトルを入力特徴ベクトルとして確率的分類を行うためのパラメータ行列を求める過程であることを特徴とする対話制御学習方法。
【請求項７】
入力された発話の発話情報列の各発話文の対話行為を表すベクトル列又は及び上記各発話文に含まれる特徴量を示すベクトル列と、から成る発話情報特徴ベクトルを抽出して出力する発言特徴抽出過程と、
上記発話情報特徴ベクトルを入力として、請求項５又は６に記載した対話制御学習方法で学習した対話行為推定器パラメータを参照して次の対話行為の生成確率を求め、当該生成確率の値を元に次のユーザ発話の出力対話行為を決定して出力する対話行為決定過程と、
を備える対話制御方法。
【請求項８】
請求項１，２，３の何れかに記載した対話制御学習装置、請求項４に記載した対話制御装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、利用者と自然言語を用いて対話するシステム（以下、対話システム）における対話制御学習装置と対話制御装置とそれらの方法と、プログラムに関する。
【背景技術】
【０００２】
人と対話システムが対話する際、対話システムは、利用者の発話に応じて適切な対話行為（「挨拶」や「質問」のような内容を伴わない抽象表現）を推定し、それに基づいて発話を生成する必要がある。例えば、利用者が何らかの「質問」を行った場合に、「挨拶」を返してしまうと不自然な発話となってしまう。このような不自然な対話行為を避け、より適切な「自己開示」などを推定する技術として、例えば非特許文献１〜３に記載された対話制御が知られている。
【０００３】
これら従来の対話制御は、１ターン（人と対話システムとの一発話対）に出力する対話行為の数は、１個と仮定している。図１に、対話ＩＤで特定される人同士の対話の例を示す。発話文の最初の数字は発話順番号、次のアルファベットと数字で表される１〜３桁の記号は対話者ＩＤ、次の＜ｓ＝″・ ″＞が対話行為、その次が発話文である。
【０００４】
図１からも分かるように、人同士の対話は、一発話毎のキャッチボールでは無く、一方の１人が複数の発話を繰り返す場面が頻繁に発生する。例えば、発話順番号の７は、＜自己開示＿事実＞と＜質問＿事実＞の２つの＜対話行為＞から成る。このような対話に対して、従来の対話制御のように、１ターンの＜対話行為＞を１個と仮定した方法では、人と対話する対話制御装置としては不十分である。
【０００５】
例えば、対話制御装置が何度か連続して「質問」の＜対話行為＞を繰り返す場合、利用者は尋問されていると錯覚してしまうこともある。複数の＜対話行為＞から成る発話が出力可能な対話制御であれば、対話の間に「相槌」や「自己開示」の＜対話行為＞を挟むことができ、より人間に近い形の対話制御を行うことが可能になる。
【０００６】
この問題に対して、例えば、マルコフ決定過程（ＭＤＰ）の派生系である部分観測マルコフ決定過程（ＰＯＭＤＰ）を用いて対話行為列を出力する対話制御が実現している（非特許文献４）。但し、非特許文献４に開示された方法でも、＜対話行為＞は１ターンに１個と仮定している。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】J. Weizenbaum, “ELIZA-A Computer Program For the Study of Natural Language Communication Between Man and Machine”, Commun. ACM 9[1] 36-45(1966).
【非特許文献２】杉山弘晃ほか、「順序学習に基づく逆強化学習による対話制御」、人工知能学会全国大会、2012.
【非特許文献３】Teruhisa Misu, Komei Sugiura, Tatsuya Kawahara, Kiyonori Ohtake, Chiori Hori, Hideki Kashioka, Hisashi Kawai and Satoshi Nakamura.”Modeling Spoken Decision Support Dialoge and Optimization of its Dialoge Stategy, ACM Transactions on Speech and Language Processing, Vol.7 Issue 3, pp.10:1-10:18,2011.
【非特許文献４】目黒豊美ほか、「POMDPを用いた聞き役対話制御部のWizard of Oz 実験による評価」、人工知能学会全国大会、2012.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来のＭＤＰを用いた手法では、「スキップ」という＜対話行為＞を導入して、擬似的に１ターンに複数の＜対話行為＞が出力できる枠組みを実現していた。この手法では、扱う状態数が極めて多くなるため、数ステップにわたって複数の＜対話行為＞を扱うことが困難である。そのため、対話制御の入力情報として直前の発話を用いて＜対話行為＞を予測するため、予測精度が悪い課題があった。
【０００９】
本発明は、この課題に鑑みてなされたものであり、複数の発話を用いて１ターンに複数の＜対話行為＞が出力できる対話制御を行うための対話制御学習装置と対話制御装置と、それらの方法とプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の対話制御学習装置は、対話記憶部と、教師発話ペア選択部と、発話特徴抽出部と、教師データ記憶部と、対話行為推定器学習部と、を具備する。対話記憶部は、人同士の対話テキストデータを、対話ＩＤと、発話順番号と、対話行為と、発話文と、の組から成る発話情報を、当該対話ＩＤと当該発話順番号とで検索できる様に記憶する。教師発話ペア選択部は、対話記憶部を参照して、対話行為推定学習に用いるための対話ＩＤと発話順番号を持つ発話情報のまとまりの最後の発話順番号を持つ発話情報の対話行為を出力対話行為列、当該出力対話行為列の直前のＮ個の発話情報を入力発話情報列とし、出力対話行為列と入力発話情報列の組を教師発話ペアとして選択して出力する。発話特徴抽出部は、教師発話ペアの入力発話情報列の各発話文の対話行為を表すベクトル列と又は及び各発話文に含まれる特徴量を示すベクトル列、から成る発話情報特徴ベクトルを抽出し、教師発話ペアの出力対話行為列と発話情報特徴ベクトルを組にして教師データとして出力する。対話行為推定器学習部は、教師データ記憶部に記憶された出力対話行為列と発話情報特徴ベクトルの組を入力として、対話行為の生成確率を計算するためのパラメータ行列を求め、当該パラメータ行列を対話行為推定器パラメータとして出力する。
【００１１】
また、この発明の対話制御装置は、発話特徴抽出部と、対話行為推定器パラメータと、対話行為決定部と、を具備する。発話特徴抽出部は、発話ペアの入力発話情報列の各発話文の対話行為を表すベクトル列と又は及び各発話文に含まれる特徴量を示すベクトル列と、から成る発話情報特徴ベクトルを抽出して出力する。対話行為推定器パラメータは、上記した対話制御学習装置で求めたパラメータ行列である。対話行為決定部は、発言特徴ベクトルを入力として、対話行為推定器パラメータを参照して次の対話行為列の生成確率を求め、当該生成確率の値を元に次のユーザ発話の対話行為列を決定して推定対話行為列として出力する。
【発明の効果】
【００１２】
本発明の対話制御学習装置によれば、発話情報のまとまりの最後の発話順番号を持つ発話情報の出力対話行為列と、その直前のＮ個の発話情報の入力発話情報列と、を用いて対話行為の生成確率を計算するパラメータ行列を求めるので、従来法よりも対話行為の推定精度を高めることが可能なパラメータ学習を実現することが出来る。また、出力対話行為列は、複数の＜対話行為＞を含む形で扱われるので、複数の＜対話行為＞に対応することが可能である。
【００１３】
また、本発明の対話制御装置によれば、この発明の対話制御学習装置で求めたパラメータ行列を用いて＜対話行為＞を推定するので、従来法よりもより人間に近い形の対話制御を可能にする。
【図面の簡単な説明】
【００１４】
【図１】人同士の対話の例を示す図。
【図２】本発明の対話制御学習装置１００の機能構成例を示す図。
【図３】対話制御学習装置１００の動作フローを示す図。
【図４】発話情報特徴ベクトルの例を示す図。
【図５】本発明の対話制御装置２００の機能構成例を示す図。
【図６】対話制御装置２００の動作フローを示す図。
【図７】対話行為決定部２４０の機能構成例を示す図。
【図８】本発明の対話制御学習装置３００の機能構成例を示す図。
【図９】対話行為推定器学習部３５０の機能構成例を示す図。
【図１０】対話行為間接続行列の一例を示す概念的な図。
【図１１】本発明の対話制御装置４００の機能構成例を示す図。
【図１２】対話行為決定部４４０の機能構成例を示す図。
【図１３】各対話行為列の確率を計算する方法を説明する図。
【発明を実施するための形態】
【００１５】
以下、この発明の実施の形態を図面を参照して説明する。複数の図面中同一のものには同じ参照符号を付し、説明は繰り返さない。
【実施例１】
【００１６】
〔対話制御学習装置〕
図２に、この発明の対話制御学習装置１００の機能構成例を示す。その動作フローを図３に示す。対話制御学習装置１００は、対話記憶部１１０と、教師発話ペア選択部１２０と、発話特徴抽出部１３０と、教師データ記憶部１４０と、対話行為推定器学習部１５０と、制御部１６０と、を具備する。対話制御学習装置１００は、例えばＲＯＭ、ＲＡＭ、ＣＰＵ等で構成されるコンピュータに所定のプログラムが読み込まれて、ＣＰＵがそのプログラムを実行することで実現されるものである。以下説明する各装置についても同じである。
【００１７】
対話記憶部１１０は、人同士の対話テキストデータを、対話ＩＤと、発話順番号と、対話行為と、発話文と、の組から成る発話情報として、発話順番号と対話ＩＤで検索できるように記憶したものである。対話テキストデータは例えば図１に示したものである。対話テキストデータは、コーパス（corpus）と称される程度に大規模な数を記憶するようにしても良い。
【００１８】
対話テキストデータの１行の最初の数字は発話順番号であり、発話者ＩＤが切り替わる度に１増えるものとする。発話者ＩＤの次のｓタグの値＜ｓ＝″・ ″＞は対話行為を表す。＜対話行為＞の付与の仕方は、予め人手で付与しても良いし、非特許文献３に開示されているように自動で推定して付与するようにしても良い。
【００１９】
対話記憶部１１０は、対話ＩＤ、発話順番号、発話者ＩＤ、対話行為、各発話文を組として記憶する。この組を発話情報と称する。対話ＩＤと発話順番号を指定することで、対応する発話情報を検索することができる。また、ある発話文を問い合わせる（クエリ）ことで、直前の数発話順番号を持つ発話情報を検索することも可能である。
【００２０】
教師発話ペア選択部１２０は、対話記憶部１１０を参照して、対話行為推定学習に用いるための対話ＩＤと発話順番号を持つ発話情報のまとまりの最後の発話順番号を持つ発話情報の対話行為を出力対話行為列、当該出力対話行為列の直前のＮ個の発話情報を入力発話情報列とし、出力対話行為列と入力発話情報列の組を教師発話ペアとして選択して出力する（ステップＳ１２０）。
【００２１】
ここで発話情報のまとまりとは、図１の対話テキストの例において、例えば対話順番号１〜７で表せる発話情報のまとまりのことである。その発話情報のまとまりの最後の発話順番号である７の、「７  Ａ：＜ｓ＝“自己開示＿事実”＞私も学生です＜/ｓ＞」と「７  Ａ：＜ｓ＝“質問＿事実”＞何かバイトしてますか？＜/ｓ＞」の２つの発話情報が、出力発話情報列となる。入力発話情報列は、この例では発話順番号１〜６の６個の発話情報である。
【００２２】
この場合の出力対話行為列は、＜自己開示＿事実・質問＿事実＞となる。この例ではＮ個は６個であるが、Ｎをいくつにするかは任意である。但し、Ｎを大きくするとデータが疎になるため、Ｎは４個程度を目安にする。また、どの発話情報を出力発話情報列とするかも任意である。
【００２３】
発話特徴抽出部１３０は、教師発話ペアの入力発話情報列の各発話文の対話行為を表すベクトル列と又は及び各発話文に含まれる特徴量を示すベクトル列と、から成る発話情報特徴ベクトルを抽出し、教師発話ペアの出力対話行為列と発話情報特徴ベクトルを組にして教師データとして出力する（ステップＳ１３０）。発話情報特徴ベクトルは、各発話文に含まれる特徴量を示すベクトル列のみで構成しても良いし、又は、入力発話情報列の各発話文の対話行為を表すベクトル列のみで構成しても良い。又は、各発話文に含まれる特徴量を示すベクトル列と入力発話情報列の各発話文の対話行為を表すベクトル列とを組にして構成しても良い。
【００２４】
図４に、発話情報特徴ベクトルの例を示す。対話行為を表すベクトル列とは、対話行為である＜挨拶＞、＜情報提供＞、＜質問＿事実＞、…の種類に対応したビットの並んだベクトル列である。＜対話行為＞の種類を例えば３２種類と仮定した場合、対話行為を表す１つのベクトル列は、３２個のビットの何れかの＜対話行為＞に対応するビットが１になったベクトルである。
【００２５】
図４に示す例では、発話順番号６の対話行為を表すベクトル列の次に発話順番号５の対話行為を表すベクトル列が接続され、発話順番号１までの対話行為を表すベクトル列を構成する。この例では、３２×６＝１９２ビットのビットの並びで、対話行為を表すベクトル列が表現される。
【００２６】
発話文に含まれる特徴量を示すベクトル列とは、対象とする発話情報の発話文の中に存在する特徴量に対応させたベクトル列のことである。例えば、特徴量をユニグラムのBag of words（語の袋）とした場合、特徴量を例えば「こんばんは」、「よろしく」、「お願いします」、「こちらこそ」の４種類とすると、発話情報「こんばんは」からは、特徴を示すベクトル列として{1,0,0,0}が抽出される。また、発話情報「こちらこそよろしくお願いします」からは、ベクトル列として{0,1,1,1}が抽出される。発話文に含まれる特徴量を示すベクトル列も、対話行為を表すベクトル列と同様にＮ個のベクトル列を並べて表現する。
【００２７】
図４に示す例では、例えば発話情報１つ当たりの特徴量を１０００個とした場合、１０００×６ビットのベクトル列で発話文に含まれる特徴量が表される。この発話文に含まれる特徴量を表すベクトル列と、対話行為を表すベクトル列と、で発話情報特徴ベクトルが構成される。なお、図４に示す例では、発話順番号の後ろ側から前の順番でベクトルを配列したが、その順番は逆でも良い。その規則が固定されていれば並べる順番は昇順でも降順でもどちらでも良い。
【００２８】
また、特徴量は、日本語語彙体系（参考文献１：池原悟ほか、「日本語語彙体系」、岩波書店）やつつじ（参考文献２：松吉俊ほか、「日本語機能表現辞書の編纂」自然言語処理、Vol.14, No.5, pp123-146, 2007）Wikipediaオントロジー（参考文献３：玉川奨ほか、「日本語Wikipediaからの大規模オントロジー学習」、人工知能学会論文誌論文特集Vol.25 No.5 pp.623-636, 2010.）のような、語彙カテゴリをまとめた辞書を用いて抽象化を行っても良い。例えば、「あさごはん」、「あさめし」、を「朝食」と抽象化することで、特徴量の抽出漏れを防止することができる。
【００２９】
発話特徴抽出部１３０が出力する教師発話ペアの出力対話行為列と発話情報特徴ベクトルの組は、教師データ記憶部１４０に記憶される。教師発話ペア選択部１２０と発話特徴抽出部１３０の動作は、全ての教師発話ペアについての処理が終了するまで繰り返される（ステップＳ１６０のＮｏ）。この繰り返し動作の制御は制御部１６０が行う。制御部１６０は、対話制御学習装置１００の各部の時系列動作を制御する一般的なものであって、特別な処理を行うものではない。
【００３０】
対話行為推定器学習部１５０は、教師データ記憶部１４０に記憶された出力対話行為列と発話情報特徴ベクトルの組を入力として、確率的分類を行うためのパラメータ行列を求め、当該パラメータ行列を対話行為推定器パラメータとして出力する（ステップＳ１５０）。このパラメータ行列は、確率的分類を行うためのパラメータである。
【００３１】
パラメータ行列は、ロジスティック回帰、ナイーブベイズ、決定木、などの各次元を独立に扱える線形の学習器や、入力情報が存在する近辺のみで計算処理するカーネルベースの学習器（例えばＳＶＭ）などを用いて求めることができる。パラメータ行列を求める手法は周知である。
【００３２】
このように、対話制御学習装置１００が、入力発話情報列に対応する出力対話行為列の生成確率を計算するためのパラメータ行列を求めることで、上記した発話順番号７の出力対話行為列＜自己開示＿事実・質問＿事実＞のように複数の対話行為を含む出力対話行為列に対応することが可能になる。
【００３３】
〔対話制御装置〕
図５に、この発明の対話制御装置２００の機能構成例を示す。その動作フローを図６に示す。対話制御装置２００は、発話特徴抽出部２３０と、出力対話行為推定部２４０と、対話行為推定器パラメータ２５０と、制御装置２６０と、を具備する。
【００３４】
発話特徴抽出部２３０は、ある発話を入力として、当該発話の発話情報列の各発話文の＜対話行為＞を表すベクトル列と又は及び各発話文に含まれる特徴量を示すベクトル列と、から成る発話情報特徴ベクトルを抽出して出力する（ステップＳ２３０）。発話情報特徴ベクトルは、対話行為推定パラメータ２５０が推定対象の対話行為を持つ発話情報の直前Ｎ個の発話情報を入力発話情報列として求めたパラメータ行列である場合は、Ｎ個の学習用とは異なる発話情報を１セットとして求めたベクトルである。Ｎ個は、学習装置と一致している必要がある。発話特徴抽出部２３０が出力する発話特徴ベクトルは、上記（図４）で説明したものと同じものである。
【００３５】
対話行為推定器パラメータ２５０は、対話制御学習装置１００を用いてＮ個の発話情報を入力発話情報列として求めたパラメータ行列である。出力対話行為推定部２４０は、発話特徴抽出部２３０が出力する発話特徴ベクトルを入力として、対話行為推定器パラメータ２５０を参照して次の対話行為の生成確率を求め、当該生成確率の値を元に次のユーザ発話の対話行為を決定して推定対話行為として出力する（ステップＳ２４０）。
【００３６】
図７に、出力対話行為推定部２４０より具体的な機能構成例を示す。出力対話行為推定部２４０は、内積手段２４１と、ロジスティック関数処理手段２４２と、出力対話行為決定手段２４３と、を備える。
【００３７】
内積手段２４１は、発話特徴抽出部２３０が出力する発話情報特徴ベクトルと対話行為推定器パラメータ２５０との内積演算を行い類似度ベクトルを出力する。ロジスティック関数処理手段２４２は、類似度ベクトルを構成する各対話行為の出現確率を０〜１の値に射影して確率値に変換する。出力対話行為決定手段２４３は、各対話行為の確率値を正規化して、最も確率の高い＜対話行為＞を出力対話行為に決定して出力する。
【００３８】
出力対話行為の決定は、単純に最も高い確率値の＜対話行為＞を出力するのでは無く、確率値の値に応じた出力にしても良い。例えば、確率値が０．２５の物が４つ有った場合、それぞれの＜対話行為＞が４回に１回の割合で出力されるようにしても良い。
【００３９】
なお、発話特徴抽出部２３０に発話が直接入力される例で説明を行ったが、発話を発話履歴から抽出するようにしても良い。その場合の対話制御装置２００は、利用者の発話とその履歴を入力とする発話対応関係解析部２７０を備える。発話対応関係解析部２７０は、利用者の発話とその履歴のテキストデータを入力として、利用者の＜対話行為＞と、対話者ＩＤと、発話文と、の対応関係を解析すると共に、対話ＩＤと発話順番号を持つ発話情報のまとまりの最後のＮ個の発話情報を入力発話情報列として出力する。
【００４０】
次に、対話行為列に含まれる各対話行為の出現確率を＜対話行為＞ごとに計算し、それらと対話行為間の接続確率を用いて対話行為の出現確率を推定する方法の対話制御学習装置３００と対話制御装置４００について説明する。
【実施例２】
【００４１】
〔対話制御学習装置〕
図８に、この発明の対話制御学習装置３００の機能構成例を示す。対話制御学習装置３００は、対話記憶部１１０と、教師発話ペア選択部１２０と、発話特徴抽出部１３０と、教師データ記憶部１４０と、対話行為推定器学習部３５０と、制御部３６０と、を具備する。参照符号から明らかなように、対話記憶部１１０と、教師発話ペア選択部１２０と、発話特徴抽出部１３０と、教師データ記憶部１４０と、は対話制御学習装置１００と同じものである。
【００４２】
図９に、対話行為推定器学習部３５０の機能構成例を示す。対話行為推定器学習部３５０は、出力発話情報列分割手段３５１と、対話行為間の接続確率計算手段３５２と、対話行為推定器学習部１５０′と、を備える。
【００４３】
出力発話情報列分割手段３５１は、教師データ記憶部１４０に記憶された出力発話情報列と発話情報特徴ベクトルとの組を入力として、１個の発話順番号の出力対話行為が上記出力発話情報列中に複数個ある場合、当該複数個の数に上記出力対話行為列を分割して出力する（ステップＳ３５１）。１個の発話順番号の出力発話情報が複数個ある場合とは、図１に示した例では、発話順番号７と９と１０と１１等の場合である。
【００４４】
対話制御学習装置３００では、同じ発話順番号でも発話情報毎に＜対話行為＞を扱う点で対話制御学習装置１００と異なる。出力発話情報分割手段３５１によって、例えば発話順番号７の場合、「７  Ａ：＜ｓ＝“自己開示＿事実”＞私も学生です＜/ｓ＞」と「７  Ａ：＜ｓ＝“質問＿事実”＞何かバイトしてますか？＜/ｓ＞」の２つの発話情報が、それぞれ別々に対話行為推定器学習部１５０′に入力される。
【００４５】
対話行為推定器学習部１５０′は、対話行為推定器学習部１５０と同じ処理を行って、対話行為の生成確率を計算するためのパラメータ行列を求める。
【００４６】
対話行為間の接続確率計算手段３５２は、対話記憶部１１０に記憶された全ての対話テキストデータの内、同一の発話順番が付与された対話行為列に現れる対話行為のバイグラムを数え上げ、対話行為間の接続確率を計算する。ただし、上記対話行為列の先頭に開始対話行為（ｓ）、終端に終了対話行為（ｅ）が付与されるとして、上記接続確率を計算する。例えば、図１の発話順番号７を例に取ると、対話行為列が＜ｓ，自己開示＿事実，質問＿事実，ｅ＞のように（ｓ）と（ｅ）に挟まれると考え、＜ｓ，自己開示＿事実＞，＜自己開示＿事実，質問＿事実＞，＜質問＿事実，ｅ＞のバイグラムを接続確率の計算に用いる。この方法で計算された各対話行為間の接続確率を用いて、対話行為間接続行列を求める（ステップＳ３５２）。
【００４７】
図１０に、対話行為間接続行列の概念的な図を示す。１行目の２列以降は、接続される一方の＜対話行為＞ａ＿ｎのａ＿１〜ａ＿Ｎ、１列目の２行以降は接続される他方の＜対話行為＞ａ＿ｍのａ＿１〜ａ＿Ｎである。図中のｓは開始対話行為を表し、ｓの行の２列目以降はｓと任意のａ＿ｎとの接続確率を表す。同様に、ｅは終了対話行為を表し、ｅの列の２行目以降は任意のａ＿ｍと終了対話行為ｅとの接続確率を表す。
【００４８】
図１０に示す各対話行為の接続確率は、対話行為記憶部１１０内の全ての発話情報の＜対話行為＞の接続関係から、予め計算して求めて置く。
【００４９】
対話制御学習装置３００は、対話行為推定器学習部１５０′で求めた対話行為の生成確率を計算するためのパラメータ行列と、対話行為間の接続確率計算手段３５２で計算した対話行為間接続行列と、を対話行為推定器パラメータとして出力する。
【００５０】
〔対話制御装置〕
図１１に、この発明の対話制御装置４００の機能構成例を示す。対話制御装置４００は、対話制御装置２００に対して、対話制御学習装置３００で求めた対話行為推定器パラメータ４５０を用いる点と、その対話行為推定器パラメータ４５０を用いて出力対話行為列を決定する対話行為決定部４４０と、を備える点で異なる。
【００５１】
対話行為推定器パラメータ４５０は、対話行為の生成確率を計算するためのパラメータ行列と対話行為間接続行列から成る。対話行為決定部４４０は、ロジスティック関数処理手段２４２で求めた、各対話行為の確率値に、対話行為間接続確率を掛け合わせて、各対話行為の出力確率を再計算して出力対話行為を決定するものである。
【００５２】
図１２に、対話行為決定部４４０のより具体的な機能構成例を示す。対話行為決定部４４０は、内積手段２４１と、ロジスティック関数処理手段２４２と、乗算手段４４１と、出力対話行為決定手段２４３と、を備える。対話行為決定部４４０は、乗算手段４４１を備える点で対話行為決定部２４０（図７）と異なる。他の構成は、参照番号から明らかなように対話行為決定部２４０（図７）と同じものである。
【００５３】
図１３を参照して、乗算手段４４１で計算する確率を説明する。乗算手段４４１は、一方の対話行為（ａ＿ｎ）ごとに開始対話行為（ｓ）から接続される確率と、発話情報特徴ベクトルから求めた各対話行為の生成確率ｐ（ａ＿ｎ｜ｖ）を掛け合わせる。
【００５４】
次に、対話行為（ａ＿ｎ）ごとに終了対話行為（ｅ）への接続確率ｐ（ｅ｜ａ＿ｎ）を計算する。ｐ（ｅ｜ａ＿ｎ）が指定の閾値θ（通常０．５）以上であればａ＿ｎは終了対話行為（ｅ）へ接続し、対話行為列確率としてｐ（ｓ，ａ＿ｎ，ｅ｜ｖ）を出力する。一方、ｐ（ｅ｜ａ＿ｎ）が閾値θを下回った場合、終了対話行為ｅ以外へのバイグラム確率ｐ（ａ′＿ｍ｜ａ＿ｎ）とａ′＿ｍの生成確率ｐ（ａ′＿ｍ｜ｖ）を計算し、これらを掛け合わせｐ（ｓ，ａ＿ｎ，ａ′＿ｍ｜ｖ）を計算すると共に、先ほどと同様にａ′＿ｍから終了対話行為（ｅ）への接続確率に依って次の対話行為へ接続するか接続を終了するかを決定する。なお、開始対話行為（ｓ）と終了対話行為（ｅ）は、デコード用に用意した特殊対話行為のため、対話行為決定部４４０の出力には含まれない。
【００５５】
以上説明した対話制御学習装置１００，３００と、対話制御装置２００，４００を用いることで、１ターン中に複数回発話を行うような、より人間に近い形の対話が可能になる。特に、複数発話をルールで記述する場合には組み合わせの多さが問題となるため、これを自動で適切に推定する本発明の機能は、優れた対話システムの開発を容易にする効果を奏する。
【００５６】
上記装置における処理手段をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、各装置における処理手段がコンピュータ上で実現される。
【００５７】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記録装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００５８】
また、各手段は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【要約】
【課題】複数の発話を用いて１ターンに複数の＜対話行為＞が出力できる対話制御を行うための対話制御学習装置と対話制御装置を提供する。
【解決手段】教師発話ペア選択部は、対話記憶部を参照して、対話行為推定学習に用いるための対話ＩＤと発話順番号を持つ発話情報のまとまりの最後の発話順番号を持つ発話情報の対話行為を出力対話行為列、当該出力対話行為列の直前のＮ個の発話情報を入力発話情報とし、その組を教師発話ペアとして選択して出力し、発話特徴抽出部は、教師発話ペアの出力対話行為列と発話情報特徴ベクトルを組にして教師データとして出力し、対話行為推定器学習部は、出力対話行為列と発話情報特徴ベクトルの組を入力として、当該対話行為列の生成確率を計算するためのパラメータ行列を求め、当該パラメータ行列を対話行為推定器パラメータとして出力する。
【選択図】図２【図１】
0005612720.tif 000002
【図２】
0005612720.tif 000003
【図３】
0005612720.tif 000004
【図４】
0005612720.tif 000005
【図５】
0005612720.tif 000006
【図６】
0005612720.tif 000007
【図７】
0005612720.tif 000008
【図８】
0005612720.tif 000009
【図９】
0005612720.tif 000010
【図１０】
0005612720.tif 000011
【図１１】
0005612720.tif 000012
【図１２】
0005612720.tif 000013
【図１３】
0005612720.tif 000014