(57)【特許請求の範囲】
【請求項１】
返信関係にある２つの発話データからなる複数の対話データを入力とし、１つの対話データに含まれるいずれかの発話データと、他の対話データに含まれるいずれかの発話データとが類似する場合に、該類似する発話データ同士をクラスタリングすることを、各発話データの配置が収束するまで繰り返して、前記１つの対話データと前記他の対話データとを、該１つの対話データと該他の対話データの各々に含まれる各発話データが配置されたクラスタと、各クラスタに含まれる発話データ間の返信関係とに基づいてまとめたクラスタリング結果を、前記各発話データが配置されたクラスタを示す状態と、前記各クラスタに含まれる発話データ間の返信関係を示す状態間の遷移で表される、３つ以上の前記状態間の遷移を含む対話モデルとする学習手段
を含む対話モデル構築装置。
【請求項２】
請求項１記載の対話モデル構築装置は、
予め定めた見出し語と該見出し語のカテゴリ及び上位カテゴリとを対応させた見出し語・カテゴリ情報に基づいて、前記複数の対話データ各々に含まれる発話データ内の各単語から前記見出し語・カテゴリ情報の見出し語に対応する単語を検知し、検知された単語に見出し語・カテゴリ情報に応じたカテゴリ及び上位カテゴリを付与し、発話データ内の各単語、該単語に付与されたカテゴリ、及び上位カテゴリの少なくとも１つと、入力されたキーワードとが一致する場合に、該発話データを含む対話データを部分集合として抽出する部分集合抽出手段をさらに有し、
前記学習手段は、前記部分集合に含まれる対話データを入力とする請求項１記載の対話モデル構築装置。
【請求項３】
見出し語と該見出し語のカテゴリが付与された辞書データから見出し語を抽出すると共に、抽出された見出し語に付与されたカテゴリ、及びカテゴリ間の予め定められた関係に基づいて得られる見出し語に付与されたカテゴリの上位カテゴリを抽出し、抽出された見出し語とカテゴリ及び上位カテゴリとのペアを、前記見出し語・カテゴリ情報として作成する作成手段を含む請求項２記載の対話モデル構築装置。
【請求項４】
学習手段を含む対話モデル構築装置における対話モデル構築方法であって、
前記学習手段は、返信関係にある２つの発話データからなる複数の対話データを入力とし、１つの対話データに含まれるいずれかの発話データと、他の対話データに含まれるいずれかの発話データとが類似する場合に、該類似する発話データ同士をクラスタリングすることを、各発話データの配置が収束するまで繰り返して、前記１つの対話データと前記他の対話データとを、該１つの対話データと該他の対話データの各々に含まれる各発話データが配置されたクラスタと、各クラスタに含まれる発話データ間の返信関係とに基づいてまとめたクラスタリング結果を、前記各発話データが配置されたクラスタを示す状態と、前記各クラスタに含まれる発話データ間の返信関係を示す状態間の遷移で表される、３つ以上の前記状態間の遷移を含む対話モデルとするステップを有する
対話モデル構築方法。
【請求項５】
コンピュータを、請求項１〜請求項３のいずれか１項記載の対話モデル構築装置を構成する各手段として機能させるための対話モデル構築プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話モデル構築装置、方法、及びプログラムに係り、特に、対話の分析や対話システム等で利用可能な対話モデルを構築するための対話モデル構築装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、複数の対話データを学習することにより、対話の分析や対話システム等で利用可能な対話モデルを構築することが行われている。対話モデルとは、対話における発話の遷移を有限状態オートマトンなどの状態と遷移とを持つ構造で表したものである。このような対話モデルを利用すると、対話において話者がどのような流れで話をしているのかを分析したり、対話システムが次にどのような発話を行えばよいかに関する知見を得たりすることが可能である。対話モデルとしては、隠れマルコフモデル（Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌ：ＨＭＭ）が用いられることが多く、例えば、人同士が傾聴を行っている対話をＨＭＭによってモデル化した対話モデルが提案されている（例えば、非特許文献１参照）。非特許文献１の対話モデルを用いた分析により、傾聴行為に重要な発言などが分かる。
【０００３】
対話のモデル化を行うためには、元となる対話データが必要である。しかし、対話データを大量に収集することは被験者を雇ったりする必要があり、コストが高い。そして、対話データを大量に収集することが困難であるため、対話内容を限定したデータ収集をせざるを得ず、対話データの内容も特定の話題に限られてしまう。そのため、近年流行しているマイクロブログサービスのデータを用いる手法が提案されている（例えば、非特許文献２参照）。マイクロブログサービスとは、ユーザが短いテキスト（「つぶやき」等と称される）をインターネットに投稿するサービスのことである。このようなサービスではユーザ同士がつぶやきのやりとりを行うため、そのやりとりのデータは対話的な側面を持つ。ここで、「やりとりのデータ」とは、あるユーザの投稿に対して、別のユーザが返信の投稿を行うような返信関係にある一連のデータをいう。マイクロブログサービスにおける投稿数は一日に二億とも言われ、非常に量が多く、また、多くのユーザが投稿するため、内容に多様性があり、従来のデータ収集では不可能だった対話データの量及び質を確保できる可能性がある。
【０００４】
非特許文献２の手法では、マイクロブログサービスのデータにおいて、ユーザ間の３回以上のやりとりを抽出し、それらを用いてＨＭＭを学習することで対話モデルを構築している。３回以上のやりとりを用いているのは、単純な一問一答ではない対話（一往復のやりとりを超える対話）をモデル化するためには、３回以上のやりとりが必要と考えられるためである。非特許文献２では、発話が３種類（英語一般、トピック、対話行為）の多項分布（単語が複数出力される分布）から生成されるモデルを提案している。ここで、対話行為とは発話意図を表すラベルを指す。このようなモデル化をしている理由は、ありふれた表現や特定のトピック（話題）に特化した表現を差し引いて、対話行為に特に関連する単語のみを分析したいためである。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】T. Meguro, R. Higashinaka, K. Dohsaka, Y. Minami, and H. Isozaki,” Analysis of listening-oriented dialogue for building listening agents,” in Proc. SIGDIAL, 2009, pp. 124-127.
【非特許文献２】A. Ritter, C. Cherry, and B. Dolan, “Unsupervised modeling of Twitter conversations,” in Proc. NAACL-HLT, 2010, pp. 172-180.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献２の手法のように、マイクロブログサービスのデータを用いて対話モデルを構築する場合、やりとりのデータ、すなわち、返信関係にある一連のやりとりが実際には非常に少ない、という問題がある。また、その少ないやりとりのうち、ほとんどが２回のやりとりから成り立っている。そのため、従来の方法では、マイクロブログサービスからデータを収集したとしても、非常に数が少ない３回以上のやりとりからしか対話モデルが学習できない。このように、対話モデルの学習に使えるデータが少ないため、構築される対話モデルの性能が低くなる場合がある、という問題がある。
【０００７】
本発明は上記問題点に鑑みてなされたものであり、３回以上のやりとりが少ない対話データを学習データとして用いた場合でも、精度の良い対話モデルを構築することができる対話モデル構築装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の対話モデル構築装置は、返信関係にある２つの発話データからなる複数の対話データを入力とし、１つの対話データに含まれるいずれかの発話データと、他の対話データに含まれるいずれかの発話データとが類似する場合に、該類似する発話データ同士をクラスタリングすることを、各発話データの配置が収束するまで繰り返して、前記１つの対話データと前記他の対話データとを、該１つの対話データと該他の対話データの各々に含まれる各発話データが配置されたクラスタと、各クラスタに含まれる発話データ間の返信関係とに基づいてまとめたクラスタリング結果を、前記各発話データが配置されたクラスタを示す状態と、前記各クラスタに含まれる発話データ間の返信関係を示す状態間の遷移で表される、３つ以上の前記状態間の遷移を含む対話モデルとする学習手段を含んで構成されている。
【０００９】
本発明の対話モデル構築装置によれば、学習手段が、返信関係にある２つの発話データからなる複数の対話データを入力とし、１つの対話データに含まれるいずれかの発話データと、他の対話データに含まれるいずれかの発話データとが類似する場合に、類似する発話データ同士をクラスタリングすることを、各発話データの配置が収束するまで繰り返して、１つの対話データと他の対話データとを、１つの対話データと他の対話データの各々に含まれる各発話データが配置されたクラスタと、各クラスタに含まれる発話データ間の返信関係とに基づいてまとめたクラスタリング結果を、各発話データが配置されたクラスタを示す状態と、各クラスタに含まれる発話データ間の返信関係を示す状態間の遷移で表される、３つ以上の状態間の遷移を含む対話モデルとする。
【００１０】
このように、内容が類似する発話データをクラスタリングすることを、各発話データの配置が収束するまで繰り返すことにより、各発話データが配置されたクラスタを示す状態と、各クラスタに含まれる発話データ間の返信関係を示す状態間の遷移で表される、３つ以上の状態間の遷移を含む対話モデルを学習するため、学習データの量及び多様性を確保することができ、３回以上のやりとりが少ない対話データを学習データとして用いた場合でも、精度の良い対話モデルを構築することができる。
【００１１】
また、本発明の対話モデル構築装置は、予め定めた見出し語と該見出し語のカテゴリ及び上位カテゴリとを対応させた見出し語・カテゴリ情報に基づいて、前記取得手段により取得した複数の対話データ各々に含まれる発話データ内の各単語から前記見出し語・カテゴリ情報の見出し語に対応する単語を検知し、検知された単語に見出し語・カテゴリ情報に応じたカテゴリ及び上位カテゴリを付与し、発話データ内の各単語、該単語に付与されたカテゴリ、及び上位カテゴリの少なくとも１つと、入力されたキーワードとが一致する場合に、該発話データを含む対話データを部分集合として抽出する部分集合抽出手段をさらに有し、前記学習手段は、前記部分集合に含まれる対話データを入力とすることができる。学習データの量及び多様性が確保できることから、キーワードを用いた対話データの部分抽出にも対応することができるため、任意の話題に応じた対話モデルを構築することができる。
【００１２】
また、本発明の対話モデル構築装置は、見出し語と該見出し語のカテゴリが付与された辞書データから見出し語を抽出すると共に、抽出された見出し語に付与されたカテゴリ、及びカテゴリ間の予め定められた関係に基づいて得られる見出し語に付与されたカテゴリの上位カテゴリを抽出し、抽出された見出し語とカテゴリ及び上位カテゴリとのペアを、前記見出し語・カテゴリ情報として作成する作成手段を含んで構成することができる。見出し語と該見出し語のカテゴリを予め定められたものではなく、辞書データから抽出し作成された見出し語・カテゴリ情報に基づいて各単語にカテゴリ及び上位カテゴリを付与することで、直接キーワードを含む対話データだけでなく、キーワードに関連する対話データも漏れなく抽出することができる。
【００１３】
また、本発明の対話モデル構築方法は、学習手段を含む対話モデル構築装置における対話モデル構築方法であって、前記学習手段は、返信関係にある２つの発話データからなる複数の対話データを入力とし、１つの対話データに含まれるいずれかの発話データと、他の対話データに含まれるいずれかの発話データとが類似する場合に、該類似する発話データ同士をクラスタリングすることを、各発話データの配置が収束するまで繰り返して、前記１つの対話データと前記他の対話データとを、該１つの対話データと該他の対話データの各々に含まれる各発話データが配置されたクラスタと、各クラスタに含まれる発話データ間の返信関係とに基づいてまとめたクラスタリング結果を、前記各発話データが配置されたクラスタを示す状態と、前記各クラスタに含まれる発話データ間の返信関係を示す状態間の遷移で表される、３つ以上の前記状態間の遷移を含む対話モデルとするステップを有する方法である。
【００１４】
また、本発明の対話モデル構築プログラムは、コンピュータを、上記の対話モデル構築装置を構成する各手段として機能させるためのプログラムである。
【発明の効果】
【００１５】
以上説明したように、本発明の対話モデル構築装置、方法、及びプログラムによれば、内容が類似する発話データをクラスタリングすることを、各発話データの配置が収束するまで繰り返すことにより、各発話データが配置されたクラスタを示す状態と、各クラスタに含まれる発話データ間の返信関係を示す状態間の遷移で表される、３つ以上の状態間の遷移を含む対話モデルを学習するため、学習データの量及び多様性を確保することができ、３回以上のやりとりが少ない対話データを学習データとして用いた場合でも、精度の良い対話モデルを構築することができる、という効果が得られる。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態の対話モデル構築装置の構成を示すブロック図である。
【図２】本実施の形態における対話モデル構築処理ルーチンの内容を示すフローチャートである。
【図３】Ｆｏｏｄ−Ｓｅｔにおける学習曲線を示す図である。
【図４】Ｓｐｏｒｔｓ−Ｓｅｔにおける学習曲線を示す図である。
【図５】２回やりとりデータを増やした場合における、無限ＨＭＭの状態数の推移を示す図である。
【図６】Ｆｏｏｄ−Ｓｅｔにおける２回やりとりモデルがテストデータをデコードした際のパスを可視化したネットワーク図である。
【図７】各状態の代表語を示す一覧表である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１８】
＜本実施の形態の構成＞
本実施の形態に係る対話モデル構築装置１０は、ＣＰＵと、ＲＡＭと、後述する対話モデル構築処理ルーチンを実行するためのプログラム及び各種データを記憶したＲＯＭとを備えたコンピュータで構成することができる。このコンピュータは、機能的には、図１に示すように、部分集合抽出部１２と、見出し抽出部１４と、カテゴリ抽出部１６と、対話モデル学習部１８とを含んだ構成で表すことができる。なお、見出し抽出部１４及びカテゴリ抽出部１６が本発明の作成手段の一例である。
【００１９】
また、対話データＤＢ（データベース）２４に、対話モデル構築装置１０への入力となる複数の対話データが保持されている。ここで、対話データとは、マイクロブログサービスやＦＡＱのような発話データ（１回の投稿に相当するデータ）同士が返信関係にある一連のやりとりを表すデータである。表１に、対話データＤＢ２４に保持された複数の対話データ（以下、「対話コーパス」ともいう）の統計情報の一例を示す。
【００２０】
【表１】
0005698105.tif 000002
【００２１】
ｆｏｏｄ及びｓｐｏｒｔｓのカラムについては詳しくは後述するが、発話データの内容が食事及びスポーツに関するものであることを表し、ａｌｌがコーパス全体を表す。上記表１の例では、全部で１，２１１，７２５の対話データが存在する。なお、上記の例では、マイクロブログサービスから収集した発話データは全部で９５，５０１，８９４であったが、そのうち、対話データを構成する発話データは２，５００，９１８であることから、対話データは全体の２．６２％しか存在しないことが分かる。また、表２に、対話が何回のやりとりから構成されるか、すなわち対話データが何個の発話データを含むかを示す。以下では、Ｎ個の発話データを含む対話データを「Ｎ回のやりとり」という。例えば、発話Ａに対する返信の発話Ｂのみがあった場合、発話データＡ及び発話データＢの２個の発話データを含む対話データは、２回のやりとりの対話データである。
【００２２】
【表２】
0005698105.tif 000003
【００２３】
表２に示すように、対話データの９０％以上が２回のやりとりからなっていることが分かる。このように、マイクロブログサービスから収集されたデータに含まれる対話は非常に少なく、また、そのほとんどが２回のやりとりからなっていることが分かる。このような対話データを対話コーパスとして用いる場合、従来技術では、３回以上のやりとりが必要となるが、そのようなデータは非常に少ないことになる。
【００２４】
そこで、本実施の形態では、２回のやりとりの対話データを用いて対話モデルを構築する。なお、２回のやりとりの対話データと３回以上のやりとりの対話データとを合わせて対話モデルを構築してもよいが、２回のやりとりの対話データのみに適用した場合の効果を明らかにするため、ここでは２回のやりとりの対話データのみを用いて対話モデルを構築する場合について説明する。
【００２５】
部分集合抽出部１２は、２回のやりとりの対話データ及び対話モデル作成者が与えるキーワードを入力とし、後述する見出し抽出部１４及びカテゴリ抽出部１６が出力する情報を元に、対話データの部分集合２２を出力する。なお、２回のやりとりの対話データは、対話データＤＢ２４に保持されているデータを取得し、キーワードは、図示しない入力装置を介して入力される。
【００２６】
具体的には、まず、対話データに含まれる発話データ中の各単語について、見出し抽出部１４及びカテゴリ抽出部１６の出力に基づいて、その単語に関連付いたカテゴリを付与する。そして、ユーザが入力したキーワードが発話データ中の単語、または各単語に付与されたカテゴリ名にマッチした場合に、その発話データからなる対話データを部分集合２２として抽出する。例えば、「食事」及び「スポーツ」についての対話モデルを構築するための対話データの部分集合２２を作成する場合について説明する。この場合の対話データの部分集合２２の抽出の最も単純な方法は、入力された対話データのうち、「食事」や「スポーツ」という単語が含まれている発話データからなる対話データのみを抽出することである。しかしながら、食事についての対話が必ずしも「食事」という単語を含むわけではなく、「ご飯」や「夕食」など食事に関する単語を含む場合もあれば、レストランの名前などを含む場合もある。そうした場合に対応するため、発話データ中の各単語に予めカテゴリ情報を付加情報として付与しておく。カテゴリ情報の付与は、見出し抽出部１４及びカテゴリ抽出部１６の出力を用いるため、以下、見出し抽出部１４及びカテゴリ抽出部１６について詳述する。
【００２７】
見出し抽出部１４は、辞書データ２０を入力とする。ここでの辞書データ２０とは、見出し語にそのカテゴリ及びカテゴリ間の上位下位の階層関係が付与されたデータ（例えば、ウィキペディア）であればよい。見出し抽出部１４は、この辞書データ２０を入力とし、その見出し語のみを出力する。
【００２８】
カテゴリ抽出部１６は、辞書データ２０を入力とし、各見出し語とそれに関連するカテゴリを出力する。ここで、「関連する」とは見出し語に直接関連付いているだけでなく、カテゴリ間の上位下位の階層関係から得られる上位カテゴリも含む。この処理は、例えば、以下のような処理により自動的に行うことができる。
・辞書データ２０のデータを取得し、見出し抽出部１４で抽出された全ての見出し語を形態素解析辞書に登録する。
・上記ステップと同時に、辞書データ２０の見出し語のカテゴリ情報からカテゴリネットワークを作る。辞書データ２０の各見出し語には通例いくつかのカテゴリ情報が付与されている。そのカテゴリ情報からネットワークを形成する。カテゴリ情報が有向グラフの構造を持っている場合には、この構造を用いてネットワークを形成することができる。そして、各見出し語について直接付与されたカテゴリと、その上位カテゴリとを取得し、見出し語・カテゴリのペアを作成して、例えば表形式で保持しておく。上位カテゴリはいくつ用いてもよいが、ここでは一つ上のカテゴリを付与する。上位カテゴリの取得の仕方は、まず、直接付与されたカテゴリのそれぞれについて、グラフの上位に位置する主要カテゴリまでの最短パスを求める。そして、そのパスを直接付与されたカテゴリからｎ個上に辿ることで上位カテゴリの集合を得る。ｎは１以上の整数で、最大で最上位のカテゴリまでのホップ数となる。ｎは辞書データ２０の見出し語によって異なる。
【００２９】
部分集合抽出部１２は、対話データＤＢ２４から取得した対話データに含まれる発話データのそれぞれについて、カテゴリ抽出部１６で見出し語を登録した形態素解析辞書を備えた形態素解析器で形態素解析し、発話データに含まれる見出し語を検知する。そして、カテゴリ抽出部１６で作成した見出し語・カテゴリのペアを参照し、検知した見出し語にその見出し語のカテゴリ情報を付加する。
【００３０】
このようにして、見出し抽出部１４及びカテゴリ抽出部１６の出力に基づいて、コーパスに予めカテゴリ情報を付与しておくと、任意のキーワードが与えられたとき、発話データ中の単語に加え、各単語に付与されたカテゴリ情報がそのキーワードを含めば、その発話データからなる対話データをキーワードに関連する部分集合２２として抽出することができる。例えば、見出し語「Ｗ杯」と、カテゴリ情報「ワールドカップ、世界選手権、国際スポーツ競技大会」とで見出し語・カテゴリのペアが作成されている場合、この見出し語・カテゴリのペアに基づいて、スポーツというキーワードに対して、「Ｗ杯」という単語が含まれた発話データからなる対話データももれなく部分集合２２として抽出することができる。ここでは、「食事｜料理」（「｜」は「または」の意味）と「スポーツ」というキーワードを用い、対話データコーパスから２つの部分集合２２を抽出するものとする。それぞれの部分集合２２を、Ｆｏｏｄ−Ｓｅｔ及びＳｐｏｒｔｓ−Ｓｅｔと呼ぶ。
【００３１】
なお、本実施の形態では、カテゴリ抽出部１６において見出し語・カテゴリのペアを作成する場合について説明したが、予め作成された見出し語・カテゴリのペアが保持されたコーパスを用いてもよい。この場合、見出し抽出部１４及びカテゴリ抽出部１６は設けなくてもよい。
【００３２】
対話モデル学習部１８は、部分集合抽出部１２で抽出された部分集合２２を入力とし、対話モデルを出力する。本実施の形態における課題は、２回のやりとりの対話データから２回を超えるやりとりをモデル化することである。ここに、Ａ→Ｂ、及びＢ’→Ｃという２つの対話データがあったとする。ここで、Ａ、Ｂ、Ｂ’、及びＣはそれぞれ発話データである。矢印は返信関係を表し、例えばＡ→Ｂとの表記であればＢがＡへの返信であることを示す（時間的にＢがＡの後続となるため右矢印で表している）。ＢとＢ’とは内容が近い発話データである。発話データの内容の近さは、例えば、各発話データに含まれる単語の一致度などから計算することができ、単語の一致度が所定値以上の発話データ同士を、内容が近い発話データとして判定することができる。なお、発話データ同士の内容が近いか否かの判定は、単語の一致度を用いる場合に限定されず、例えば、単語に付与されたカテゴリなども用いて発話データ同士の類似度を計算するようにしてもよい。このような内容が近い発話データＢとＢ’とを一つにまとめると、Ａ→｛Ｂ、Ｂ’｝→Ｃという３回のやりとりの対話データを構成することができる。このように、内容が近い発話データをクラスタリングし、２回のやりとりの対話データから２回を超えるやりとりの対話データを構成する。そして、構成された２回を超えるやりとりの対話データを用いて対話モデルを学習する。これにより、２回のやりとりの対話データからでも２回を超える対話のモデル化を実現することができる。
【００３３】
なお、内容が近い発話をクラスタリングし、状態間の遷移を求めていくことは、ＨＭＭにおける学習過程と同じである。そのため、本実施の形態では、２回のやりとりの対話データからＨＭＭを学習する場合について説明する。
【００３４】
ＨＭＭの学習には無限ＨＭＭを用いる。無限ＨＭＭは、データからパラメタを推定するノンパラメトリックベイズの手法の一つであり、時系列的なデータを扱うＨＭＭを無限の状態が扱えるようにしたものである。無限の状態が扱えるということの意味は、状態数が予め定まっていないということを指し、状態数はデータ依存で決定される。無限ＨＭＭの詳細は非特許文献３（Y. Teh, M. Jordan, M. Beal, and D. Blei, “Sharing clusters among related groups: Hierarchical Dirichlet processes,” in Proc. NIPS, 2004.）に記されている。
【００３５】
ＨＭＭの学習にはＥＭアルゴリズムが用いられることが多いが、非特許文献２でも触れられているように、ベイズ学習を用いた手法の方が性能がよいことが分かっている。また、マイクロブログサービスから収集した対話データは内容が多様であるため、予め状態数を決定してモデル化することは難しい。そこに、無限ＨＭＭを用いる利点がある。無限ＨＭＭの学習は以下のように行う。
【００３６】
無限ＨＭＭでは、対話データに含まれる発話データ（ｔｉとする。ｉはやりとりの順序を示す変数である。）毎に処理される。最初の発話データｔｉは、まず最初のクラスタ（状態）にアサイン（割り当て）される。なお、最初は一つのクラスタしか存在しない。そして、次の発話データｔｉはすでにいずれかの発話データがアサインされたクラスタｃｊか新しいクラスタｃｊ＝ｎｅｗに、下記（１）式の確率でアサインされる。
【００３７】
【数１】
0005698105.tif 000004
【００３８】
ここで、ｃｔは発話データｔがアサインされたクラスタを指す。対話データにおいては、発話データは順序を持っている。ｔｉ−１及びｔｉ＋１はそれぞれ、対話データにおける発話データｔｉの直前及び直後の発話データを指す。Ｐ（ｃｋ｜ｃｊ）はクラスタ間の遷移確率を表し、下記（２）式のように定義される。
【００３９】
【数２】
0005698105.tif 000005
【００４０】
ここで、αは発話データｔが新しいクラスタにアサインされる度合いを示すハイパーパラメタである。αが大きければ大きいほど新しいクラスタが生成されることを示すパラメタである。ヒューリスティクスとして、想定されるおおよそのクラスタ数の逆数を用いられることが多い（例えば、想定されるクラスタ数が１００なら０．０１）。ｔｒａｎｓｉｔｉｏｎｓ（ｃｊ，ｃｋ）はｃｊからｃｋへの遷移回数を返す。ｃｊに含まれる発話データの直後の発話データがｃｋにアサインされているとこの回数が多くなる。Ｋはこの時点でのクラスタ数である。βは確率０を防ぐためのハイパーパラメタであり、十分小さい数であればよい。例えば、０．００００１などである。Ｐ（ｔｉ｜ｃｊ）はｔｉがｃｊから生成される確率であり、下記（３）式で得られる。  
【００４１】
【数３】
0005698105.tif 000006
【００４２】
ここで、Ｗは特徴量の集合であり、ｃｏｕｎｔ（＊，ｗ）は発話データまたはクラスタにおいて、特徴量ｗが何回生起したかを表す。γは確率０を防ぐためのハイパーパラメタであり、十分小さい数であればよい。例えば、０．００００１などである。特徴量Ｗは、例えば、ｂａｇ−ｏｆ−ｕｎｉｇｒａｍｓを用いることができる。これは単語（ｕｎｉｇｒａｍ）の頻度付き集合のことである。特徴量Ｗとして、ｂｉｇｒａｍやｔｒｉｇｒａｍのｂａｇ（頻度付き集合）を用いてもよいが、マイクロブログサービスから収集した発話データは多様であり、ユニーク単語数が非常に多い（表１参照）。そのため、ｂｉｇｒａｍやｔｒｉｇｒａｍの使用は特徴量が非常にスパースになり、ＨＭＭの学習が非常に困難となるため、ｂａｇ−ｏｆ−ｕｎｉｇｒａｍｓを特徴量Ｗとして用いることが適している。
【００４３】
新しいクラスタが作られる場合の確率は、下記（４）式となる。
【００４４】
【数４】
0005698105.tif 000007
【００４５】
このときのＰ（ｃｎｅｗ｜ｃｔｉ−１）及びＰ（ｃｔｉ＋１｜ｃｎｅｗ）は、下記（５）式のように導出される。ここで、Ｐ（ｔｉ｜ｃｎｅｗ）には一様分布を用いる。
【００４６】
【数５】
0005698105.tif 000008
【００４７】
全ての発話データｔを順番に配置した後、ギブスサンプリングという手法で発話データｔを再配置していく。これは、発話データｔ一つをそのクラスタから外し、上記処理によって別クラスタ（新しいクラスタも含む）か、自分が元いたクラスタかに再度配置させるものであり、これを全ての発話データｔについて最適な配置が求まるまで何度も繰り返す。発話データｔの配置が変わらなくなるか、各発話データにつき１０００回といった十分な回数のサンプリングが行われたら、収束したとみなし、そのときの発話データｔのクラスタにおける配置がクラスタリング結果であり、全体の構造が学習されたＨＭＭとなる。対話モデル学習部１８は、このように学習されたＨＭＭを対話モデルとして出力する。
【００４８】
＜本実施の形態の作用＞
次に、本実施の形態の対話モデル構築装置１０の作用について説明する。マイクロブログサービスのようなインターネット上の発話データを収集し、その中から返信関係にある２回のやりとりの対話データを抽出して、対話データＤＢ２４に格納した後、対話モデル構築装置１０において、図２に示す対話モデル構築処理ルーチンが実行される。
【００４９】
ステップ１００で、対話データＤＢ２４に保持されている２回のやりとりの対話データを複数取得する。
【００５０】
次に、ステップ１０２で、辞書データ２０から見出し語を抽出し、抽出した見出し語を形態素解析辞書に登録する。そして、辞書データ２０の見出し語のカテゴリ情報からカテゴリネットワークを作り、各見出し語について直接付与されたカテゴリと、カテゴリネットワークから得られる上位カテゴリとを取得し、見出し語・カテゴリのペアを作成して、例えば表形式で保持しておく。
【００５１】
次に、ステップ１０４で、上記ステップ１００で取得した対話データに含まれる発話データのそれぞれについて、上記ステップ１０２で見出し語を登録した形態素解析辞書を備えた形態素解析器で形態素解析し、発話データに含まれる見出し語を検知する。そして、上記ステップ１０２で作成した見出し語・カテゴリのペアを参照し、検知した見出し語にその見出し語のカテゴリ情報を付加する。
【００５２】
次に、ステップ１０６で、対話モデル作成者により入力されたキーワードを取得する。
【００５３】
次に、ステップ１０８で、対話データに含まれる単語、及びその単語に付与されたカテゴリ情報に、上記ステップ１０６で取得したキーワードを含む対話データを部分集合２２として抽出する。
【００５４】
次に、ステップ１１０で、上記ステップ１０８で抽出された部分集合２２を用いて、ＨＭＭを学習する。なお、ＨＭＭの学習過程において、内容が近い発話データをクラスタリングし、２回のやりとりの対話データから２回を超えるやりとりの対話データを構成する。学習されたＨＭＭを対話モデルとして出力して、処理を終了する。
【００５５】
＜評価実験＞
次に、本実施の形態の有効性を評価するための評価実験について説明する。本評価実験では、Ｆｏｏｄ−Ｓｅｔ及びＳｐｏｒｔｓ−Ｓｅｔの部分集合から、無限ＨＭＭを学習した。α、β、及びγは全て０．０１を用いた。特徴量Ｗのｂａｇ−ｏｆ−ｕｎｉｇｒａｍｓには、２回のやりとりの対話データにおける最頻の５０００単語を特徴量として用いた。ギブスサンプリングのイタレーション数は１０００とした。これは、各発話データはそれぞれ１０００回再配置されたことを表す。
【００５６】
本実施の形態の対話モデル構築装置１０により、２回のやりとりの対話データから構築される対話モデルの有効性を評価するために、２回を超えるやりとりの対話データから作成した対話モデルとの比較を行う。そのため、Ｆｏｏｄ−ＳｅｔとＳｐｏｒｔｓ−Ｓｅｔのそれぞれを、まず、２回のやりとりの対話データ（以下、「２回やりとりデータ」という）と２回を超えるやりとりの対話データ（以下、「３回以上やりとりデータ」という）に分けた。そして、３回以上やりとりデータをランダムに２分割し、片方を、オープンモデル学習データ、もう片方を、テストデータとした。つまり、各セットは、２回やりとりデータ、オープンモデル学習データ、及びテストデータの３つに分けられたことになる。評価は、２回やりとりデータから構築したモデル（２回やりとりモデル）、及びオープンモデル学習データから構築したモデル（オープンモデル）各々が、テストデータ（３回以上やりとりデータ）をどれだけ説明できるかを調べることにより行った。加えて、テストデータから学習したモデル（クローズドモデル）を使って、自分自身をどれだけ説明できるかも評価した。これは、アッパーバウンド（上限）を確かめるためである。さらに、２回やりとりデータの量によってどのように対話モデルが改善するかを確かめるため、２回やりとりデータを１０００対話毎のブロックに区切り、ブロックを一つずつ加えて学習していくことで、性能改善を確かめた。学習したモデルがどれだけテストデータを説明するかの評価尺度として、対数尤度及びケンドールのタウを用いた。対数尤度はテストデータを生成する確率であり、テストデータを生成し易いモデルが良いモデルだと考えられることから採用した。ケンドールのタウは発話の並び替えの尺度であり、対話中の発話を適切に並び替えられるようなモデルが対話の流れを理解した良いモデルであると考えられることから採用した。ケンドールのタウは、具体的に以下のような流れで計算する。  
・テストデータにおける発話データのそれぞれについて、全ての可能な順列（順番）を列挙する。
・それぞれの順番について、対話モデルによって対数尤度を計算する。
・最も対数尤度が高かった順番をそのシステムが最も適切と判断した順番とする。
・上記適切と判断した順番と、もともとのテストデータでの順番（正解）とを比較し、下記（６）式によりケンドールのタウを得る。
【００５７】
【数６】
0005698105.tif 000009
【００５８】
ここで、Ｒ及びＨはそれぞれ正解及び仮説（システムの順番）を表し、ｎ＋（Ｒ，Ｈ）は仮説中の発話データのペアのうち順番が正しかったものの数、ｎ−（Ｒ，Ｈ）は仮説中の発話データのペアのうち順番が誤っていたものの数、ｃｏｍｂｉｎａｔｉｏｎ（Ｒ）は仮説中の発話データが取り得るペアの数である。ケンドールのタウは−１から＋１までの値を取り、順序が完全に正解と一致していれば＋１となるような指標である。
【００５９】
＜結果＞
表３に評価結果を示す。表中のＦｏｏｄ−Ｓｅｔ  ＬＬ及びＦｏｏｄ−Ｓｅｔ  ｔａｕは、Ｆｏｏｄ−Ｓｅｔのテストデータに対する、マイナスをかけた対数尤度（Ｎｅｇａｔｉｖｅ  Ｌｏｇ  Ｌｉｋｅｌｉｈｏｏｄ；ＬＬ）、及びケンドールタウの値を表す。Ｓｐｏｒｔｓ−Ｓｅｔについても同様である。なお、表において、＊と＋はそれぞれ２回やりとりモデル及びオープンモデルに対し統計的に有意（ｐ＜０．０１）に値が良いことを示す。
【００６０】
【表３】
0005698105.tif 000010
【００６１】
表から分かるとおり、２回やりとりモデルは、だいたいの場合においてオープンモデルの値を上回っており、場合によっては、クローズドモデルの性能に匹敵する（例えば、Ｆｏｏｄ−Ｓｅｔ及びＳｐｏｒｔｓ−Ｓｅｔの両方について、タウは、２回やりとりモデルとクローズドモデルとに統計的な差が無い）ことから、２回やりとりデータからでも、３回以上やりとりデータから学習できるような対話モデルを学習できることが分かる。
【００６２】
図３及び４はそれぞれＦｏｏｄ−Ｓｅｔ及びＳｐｏｒｔｓ−Ｓｅｔにおける学習曲線である。２回やりとりデータを１０００対話ずつ増やした場合に性能がどう変化するかを示している。対数尤度はデータを増やすにつれ、オープンモデルに漸近、もしくはそれを超える性能が出てくることも分かる。タウについては、データを増やすにつれ、オープンモデルを超えて、クローズドモデルも超えていく傾向にあることが分かる。図３及び４に示したように、２回やりとりデータは有用であり、データ数を増やせば対話モデルの性能が改善していくことが確認できた。これは本実施の形態の有効性を示すものである。
【００６３】
図５に、２回やりとりデータを１０００対話ずつ増やした場合における、無限ＨＭＭの状態数の推移を示す。前述の通り、無限ＨＭＭでは予め状態数を決めず、データを最もよく表す状態数が自動的に選択される。図５に示すように、状態数は３５−４０程度が良いことが分かる。この状態数は非特許文献２において、性能が飽和する際の状態数に近く、このことは、２回やりとりデータから学習した対話モデルが３回以上やりとりデータから学習した対話モデルに近いであろうことを示す証拠と言える。
【００６４】
＜分析＞
学習された対話モデルがどのようなものかを分析するために、２回やりとりモデルが３回以上やりとりデータをどのようにデコードするか調べた。デコードとは、３回以上やりとりデータを２回やりとりモデルが読み込み、どの状態からどの発話データが出力されたかを推定する処理のことである。この分析のため、まず、２回やりとりモデルを用いて、３回以上やりとりデータをＶｉｔｅｒｂｉアルゴリズムでデコードし、最尤パスを得た。そして、その得られたパスをネットワーク図として描画した。図６はそのネットワーク図である。ここでは、１５回以上生起したパスしか表示しておらず、そのようなパスと関係のない状態、及び最終状態は読み易さのため割愛している。矢印の横の数値はそのパスを通った割合である。図６に示すネットワーク図を見ると、明らかに２回を超えるやりとりが２回やりとりモデルに含まれていることが分かり、２回やりとりデータから２回を超えるやりとりがモデル化できていることが見て取れる。
【００６５】
さらなる分析として、各状態でどのような単語が頻出しているか調べた。そのような単語をここでは代表語と呼ぶ。図７に各状態の代表語を示す。代表語の選出にはＬｏｇ−Ｌｉｋｅｌｉｈｏｏｄ  ｒａｔｉｏ  ｔｅｓｔを用いた。これはχ二乗検定に近いもので、文書集合間における単語の偏り度合いを検定できるものである。ここでは、ある状態にアサインされた発話データ集合及びその状態以外にアサインされた発話データ集合について、ある単語がより多く偏って出現しているかを評価している。ここでは、Ｌｏｇ−Ｌｉｋｅｌｉｈｏｏｄ  ｒａｔｉｏ  ｔｅｓｔのｐ値が０．０００１以下のもののみを列挙した。
【００６６】
これによれば、状態２９は「帰宅」、「起き」、「仕事」など人物の状態を表す発話データに対応すると考えられる。状態１１は、状態２９と同じく人物の状態に対応すると考えられるが、「ただいま」、「風呂」、「夕飯」などから、家庭での状態を表していると言える。状態１３は、質問を表し、状態６、１８、３１はそれぞれ、社会的、好意的、及び感情的な返答の発話データと考えることができる。状態２６は食事についての報告であり、状態２７は、食事の詳細（食事名、材料名など）についての発話データである。状態７は、「ね」、「よ」、「よね」などから分かるとおり、相手の発話について反応し、何らかのコメントをしている発話データを表していると思われる。このように見ていき、図６と突合すると、今回得られた対話モデルには次のようなやりとりが含まれていることが分かる。以下のやりとりでは、コロンの前の数字は状態ＩＤである。
・１１：家庭での状態→６：社会的な応答→７：コメント
・２９：状態→３１：感情的な応答→１８：好意的な応答→７：コメント
・２６：食事の報告→１３：質問→２７：食事の詳細→７：コメント
これらのやりとりは２回を超えるやりとりであり、本実施の形態の対話モデル構築装置１０により、２回やりとりデータから、２回を超えるやりとりを含む対話モデルが得られていることが確認できる。
【００６７】
以上説明したように、本実施の形態によれば、内容が近い発話データをクラスタリングすることにより、２回のやりとりの対話データから２回を超えるやりとりの対話データを構成するため、マイクロブログサービスのようなインターネット上の投稿から収集されたデータにおいて、従来使用されていなかったデータも学習データとして用いることができる。これにより、学習データの量及び多様性を確保することができ、精度の良い対話モデルを構築することができる。
【００６８】
また、このように学習データの量及び多様性を確保することができることにより、キーワードを用いた学習データの部分抽出にも対応することができるため、任意の話題に応じた対話モデルを構築することができる。
【００６９】
なお、本実施の形態の対話モデル構築装置は、対話モデル学習部単独でも構成することができる。この場合、部分集合抽出部で抽出したような対話データの部分集合を予めデータベース等に保存しておき、このデータを本装置に対する入力とすればよい。
【００７０】
また、本実施の形態では、対話モデルとしてＨＭＭを学習する場合について説明したが、２回のやりとりの対話データから３回以上のやり取りの対話データを構成して学習する手法であればＨＭＭに限定されない。
【００７１】
また、本発明は、上記実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００７２】
また、本願明細書中において、プログラムが予めインストールされている実施の形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【００７３】
１０   対話モデル構築装置
１２   部分集合抽出部
１４   見出し抽出部
１６   カテゴリ抽出部
１８   対話モデル学習部
２０   辞書データ
２２   部分集合
２４   対話データＤＢ
【図１】
0005698105.tif 000011
【図２】
0005698105.tif 000012
【図７】
0005698105.tif 000013
【図３】
0005698105.tif 000014
【図４】
0005698105.tif 000015
【図５】
0005698105.tif 000016
【図６】
0005698105.tif 000017