説明

対話モデル構築装置、方法、及びプログラム

【課題】3回以上のやりとりが少ない対話データを学習データとして用いた場合でも、精度の良い対話モデルを構築する。
【解決手段】部分集合抽出部12は、2回のやりとりの対話データを複数取得する。辞書データ20から見出し抽出部14が見出し語を抽出し、カテゴリ抽出部16がカテゴリ情報を抽出して、見出し語・カテゴリ情報のペアを作成する。部分集合抽出部12は、取得した対話データ内の各単語に見出し語・カテゴリ情報に基づいてカテゴリ情報を付与し、入力されたキーワードを単語及びカテゴリ情報に含む対話データを部分集合として抽出する。対話モデル学習部18は、部分集合を用いて、学習過程において2回のやりとりから、内容が近い発話データをクラスタリングすることで2回を超えるやりとりを構成しながらHMMを学習し、学習したHMMを対話モデルとして出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対話モデル構築装置、方法、及びプログラムに係り、特に、対話の分析や対話システム等で利用可能な対話モデルを構築するための対話モデル構築装置、方法、及びプログラムに関する。
【背景技術】
【0002】
従来、複数の対話データを学習することにより、対話の分析や対話システム等で利用可能な対話モデルを構築することが行われている。対話モデルとは、対話における発話の遷移を有限状態オートマトンなどの状態と遷移とを持つ構造で表したものである。このような対話モデルを利用すると、対話において話者がどのような流れで話をしているのかを分析したり、対話システムが次にどのような発話を行えばよいかに関する知見を得たりすることが可能である。対話モデルとしては、隠れマルコフモデル(Hidden Markov Model:HMM)が用いられることが多く、例えば、人同士が傾聴を行っている対話をHMMによってモデル化した対話モデルが提案されている(例えば、非特許文献1参照)。非特許文献1の対話モデルを用いた分析により、傾聴行為に重要な発言などが分かる。
【0003】
対話のモデル化を行うためには、元となる対話データが必要である。しかし、対話データを大量に収集することは被験者を雇ったりする必要があり、コストが高い。そして、対話データを大量に収集することが困難であるため、対話内容を限定したデータ収集をせざるを得ず、対話データの内容も特定の話題に限られてしまう。そのため、近年流行しているマイクロブログサービスのデータを用いる手法が提案されている(例えば、非特許文献2参照)。マイクロブログサービスとは、ユーザが短いテキスト(「つぶやき」等と称される)をインターネットに投稿するサービスのことである。このようなサービスではユーザ同士がつぶやきのやりとりを行うため、そのやりとりのデータは対話的な側面を持つ。ここで、「やりとりのデータ」とは、あるユーザの投稿に対して、別のユーザが返信の投稿を行うような返信関係にある一連のデータをいう。マイクロブログサービスにおける投稿数は一日に二億とも言われ、非常に量が多く、また、多くのユーザが投稿するため、内容に多様性があり、従来のデータ収集では不可能だった対話データの量及び質を確保できる可能性がある。
【0004】
非特許文献2の手法では、マイクロブログサービスのデータにおいて、ユーザ間の3回以上のやりとりを抽出し、それらを用いてHMMを学習することで対話モデルを構築している。3回以上のやりとりを用いているのは、単純な一問一答ではない対話(一往復のやりとりを超える対話)をモデル化するためには、3回以上のやりとりが必要と考えられるためである。非特許文献2では、発話が3種類(英語一般、トピック、対話行為)の多項分布(単語が複数出力される分布)から生成されるモデルを提案している。ここで、対話行為とは発話意図を表すラベルを指す。このようなモデル化をしている理由は、ありふれた表現や特定のトピック(話題)に特化した表現を差し引いて、対話行為に特に関連する単語のみを分析したいためである。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】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.
【非特許文献2】A. Ritter, C. Cherry, and B. Dolan, “Unsupervised modeling of Twitter conversations,” in Proc. NAACL-HLT, 2010, pp. 172-180.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、非特許文献2の手法のように、マイクロブログサービスのデータを用いて対話モデルを構築する場合、やりとりのデータ、すなわち、返信関係にある一連のやりとりが実際には非常に少ない、という問題がある。また、その少ないやりとりのうち、ほとんどが2回のやりとりから成り立っている。そのため、従来の方法では、マイクロブログサービスからデータを収集したとしても、非常に数が少ない3回以上のやりとりからしか対話モデルが学習できない。このように、対話モデルの学習に使えるデータが少ないため、構築される対話モデルの性能が低くなる場合がある、という問題がある。
【0007】
本発明は上記問題点に鑑みてなされたものであり、3回以上のやりとりが少ない対話データを学習データとして用いた場合でも、精度の良い対話モデルを構築することができる対話モデル構築装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明の対話モデル構築装置は、返信関係にある2つの発話データからなる複数の対話データを入力とし、1つの対話データに含まれるいずれかの発話データと、他の対話データに含まれるいずれかの発話データとが類似する場合に、該類似する発話データ同士をクラスタリングして前記1つの対話データと前記他の対話データとをまとめることにより、3つ以上の発話データからなる対話データを構成し、構成された対話データを学習データとして、発話の遷移を表す対話モデルを学習する学習手段を含んで構成されている。
【0009】
本発明の対話モデル構築装置によれば、学習手段が、返信関係にある2つの発話データからなる複数の対話データを入力とし、1つの対話データに含まれるいずれかの発話データと、他の対話データに含まれるいずれかの発話データとが類似する場合に、その類似する発話データ同士をクラスタリングして1つの対話データと他の対話データとをまとめることにより、3つ以上の発話データからなる対話データを構成し、構成された対話データを学習データとして、発話の遷移を表す対話モデルを学習する。
【0010】
このように、内容が類似する発話データをクラスタリングすることにより、2つの発話データからなる対話データから、3つ以上の発話データからなる対話データを構成し、これを学習データとするため、学習データの量及び多様性を確保することができ、3回以上のやりとりが少ない対話データを学習データとして用いた場合でも、精度の良い対話モデルを構築することができる。
【0011】
また、本発明の対話モデル構築装置は、予め定めた見出し語と該見出し語のカテゴリ及び上位カテゴリとを対応させた見出し語・カテゴリ情報に基づいて、前記取得手段により取得した複数の対話データ各々に含まれる発話データ内の各単語から前記見出し語・カテゴリ情報の見出し語に対応する単語を検知し、検知された単語に見出し語・カテゴリ情報に応じたカテゴリ及び上位カテゴリを付与し、発話データ内の各単語、該単語に付与されたカテゴリ、及び上位カテゴリの少なくとも1つと、入力されたキーワードとが一致する場合に、該発話データを含む対話データを部分集合として抽出する部分集合抽出手段をさらに有し、前記学習手段は、前記部分集合に含まれる対話データを入力とすることができる。学習データの量及び多様性が確保できることから、キーワードを用いた対話データの部分抽出にも対応することができるため、任意の話題に応じた対話モデルを構築することができる。
【0012】
また、本発明の対話モデル構築装置は、見出し語と該見出し語のカテゴリが付与された辞書データから見出し語を抽出すると共に、抽出された見出し語に付与されたカテゴリ、及びカテゴリ間の予め定められた関係に基づいて得られる見出し語に付与されたカテゴリの上位カテゴリを抽出し、抽出された見出し語とカテゴリ及び上位カテゴリとのペアを、前記見出し語・カテゴリ情報として作成する作成手段を含んで構成することができる。見出し語と該見出し語のカテゴリを予め定められたものではなく、辞書データから抽出し作成された見出し語・カテゴリ情報に基づいて各単語にカテゴリ及び上位カテゴリを付与することで、直接キーワードを含む対話データだけでなく、キーワードに関連する対話データも漏れなく抽出することができる。
【0013】
また、本発明の対話モデル構築方法は、学習手段を含む対話モデル構築装置における対話モデル構築方法であって、前記学習手段は、返信関係にある2つの発話データからなる複数の対話データを入力とし、1つの対話データに含まれるいずれかの発話データと、他の対話データに含まれるいずれかの発話データとが類似する場合に、該類似する発話データ同士をクラスタリングして前記1つの対話データと前記他の対話データとをまとめることにより、3つ以上の発話データからなる対話データを構成し、構成された対話データを学習データとして、発話の遷移を表す対話モデルを学習するステップを有する方法である。
【0014】
また、本発明の対話モデル構築プログラムは、コンピュータを、上記の対話モデル構築装置を構成する各手段として機能させるためのプログラムである。
【発明の効果】
【0015】
以上説明したように、本発明の対話モデル構築装置、方法、及びプログラムによれば、内容が類似する発話データをクラスタリングすることにより、2つの発話データからなる対話データから、3つ以上の発話データからなる対話データを構成し、これを対話モデルの学習データとするため、学習データの量及び多様性を確保することができ、3回以上のやりとりが少ない対話データを学習データとして用いた場合でも、精度の良い対話モデルを構築することができる、という効果が得られる。
【図面の簡単な説明】
【0016】
【図1】本実施の形態の対話モデル構築装置の構成を示すブロック図である。
【図2】本実施の形態における対話モデル構築処理ルーチンの内容を示すフローチャートである。
【図3】Food−Setにおける学習曲線を示す図である。
【図4】Sports−Setにおける学習曲線を示す図である。
【図5】2回やりとりデータを増やした場合における、無限HMMの状態数の推移を示す図である。
【図6】Food−Setにおける2回やりとりモデルがテストデータをデコードした際のパスを可視化したネットワーク図である。
【図7】各状態の代表語を示す一覧表である。
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0018】
<本実施の形態の構成>
本実施の形態に係る対話モデル構築装置10は、CPUと、RAMと、後述する対話モデル構築処理ルーチンを実行するためのプログラム及び各種データを記憶したROMとを備えたコンピュータで構成することができる。このコンピュータは、機能的には、図1に示すように、部分集合抽出部12と、見出し抽出部14と、カテゴリ抽出部16と、対話モデル学習部18とを含んだ構成で表すことができる。なお、見出し抽出部14及びカテゴリ抽出部16が本発明の作成手段の一例である。
【0019】
また、対話データDB(データベース)24に、対話モデル構築装置10への入力となる複数の対話データが保持されている。ここで、対話データとは、マイクロブログサービスやFAQのような発話データ(1回の投稿に相当するデータ)同士が返信関係にある一連のやりとりを表すデータである。表1に、対話データDB24に保持された複数の対話データ(以下、「対話コーパス」ともいう)の統計情報の一例を示す。
【0020】
【表1】

【0021】
food及びsportsのカラムについては詳しくは後述するが、発話データの内容が食事及びスポーツに関するものであることを表し、allがコーパス全体を表す。上記表1の例では、全部で1,211,725の対話データが存在する。なお、上記の例では、マイクロブログサービスから収集した発話データは全部で95,501,894であったが、そのうち、対話データを構成する発話データは2,500,918であることから、対話データは全体の2.62%しか存在しないことが分かる。また、表2に、対話が何回のやりとりから構成されるか、すなわち対話データが何個の発話データを含むかを示す。以下では、N個の発話データを含む対話データを「N回のやりとり」という。例えば、発話Aに対する返信の発話Bのみがあった場合、発話データA及び発話データBの2個の発話データを含む対話データは、2回のやりとりの対話データである。
【0022】
【表2】

【0023】
表2に示すように、対話データの90%以上が2回のやりとりからなっていることが分かる。このように、マイクロブログサービスから収集されたデータに含まれる対話は非常に少なく、また、そのほとんどが2回のやりとりからなっていることが分かる。このような対話データを対話コーパスとして用いる場合、従来技術では、3回以上のやりとりが必要となるが、そのようなデータは非常に少ないことになる。
【0024】
そこで、本実施の形態では、2回のやりとりの対話データを用いて対話モデルを構築する。なお、2回のやりとりの対話データと3回以上のやりとりの対話データとを合わせて対話モデルを構築してもよいが、2回のやりとりの対話データのみに適用した場合の効果を明らかにするため、ここでは2回のやりとりの対話データのみを用いて対話モデルを構築する場合について説明する。
【0025】
部分集合抽出部12は、2回のやりとりの対話データ及び対話モデル作成者が与えるキーワードを入力とし、後述する見出し抽出部14及びカテゴリ抽出部16が出力する情報を元に、対話データの部分集合22を出力する。なお、2回のやりとりの対話データは、対話データDB24に保持されているデータを取得し、キーワードは、図示しない入力装置を介して入力される。
【0026】
具体的には、まず、対話データに含まれる発話データ中の各単語について、見出し抽出部14及びカテゴリ抽出部16の出力に基づいて、その単語に関連付いたカテゴリを付与する。そして、ユーザが入力したキーワードが発話データ中の単語、または各単語に付与されたカテゴリ名にマッチした場合に、その発話データからなる対話データを部分集合22として抽出する。例えば、「食事」及び「スポーツ」についての対話モデルを構築するための対話データの部分集合22を作成する場合について説明する。この場合の対話データの部分集合22の抽出の最も単純な方法は、入力された対話データのうち、「食事」や「スポーツ」という単語が含まれている発話データからなる対話データのみを抽出することである。しかしながら、食事についての対話が必ずしも「食事」という単語を含むわけではなく、「ご飯」や「夕食」など食事に関する単語を含む場合もあれば、レストランの名前などを含む場合もある。そうした場合に対応するため、発話データ中の各単語に予めカテゴリ情報を付加情報として付与しておく。カテゴリ情報の付与は、見出し抽出部14及びカテゴリ抽出部16の出力を用いるため、以下、見出し抽出部14及びカテゴリ抽出部16について詳述する。
【0027】
見出し抽出部14は、辞書データ20を入力とする。ここでの辞書データ20とは、見出し語にそのカテゴリ及びカテゴリ間の上位下位の階層関係が付与されたデータ(例えば、ウィキペディア)であればよい。見出し抽出部14は、この辞書データ20を入力とし、その見出し語のみを出力する。
【0028】
カテゴリ抽出部16は、辞書データ20を入力とし、各見出し語とそれに関連するカテゴリを出力する。ここで、「関連する」とは見出し語に直接関連付いているだけでなく、カテゴリ間の上位下位の階層関係から得られる上位カテゴリも含む。この処理は、例えば、以下のような処理により自動的に行うことができる。
・辞書データ20のデータを取得し、見出し抽出部14で抽出された全ての見出し語を形態素解析辞書に登録する。
・上記ステップと同時に、辞書データ20の見出し語のカテゴリ情報からカテゴリネットワークを作る。辞書データ20の各見出し語には通例いくつかのカテゴリ情報が付与されている。そのカテゴリ情報からネットワークを形成する。カテゴリ情報が有向グラフの構造を持っている場合には、この構造を用いてネットワークを形成することができる。そして、各見出し語について直接付与されたカテゴリと、その上位カテゴリとを取得し、見出し語・カテゴリのペアを作成して、例えば表形式で保持しておく。上位カテゴリはいくつ用いてもよいが、ここでは一つ上のカテゴリを付与する。上位カテゴリの取得の仕方は、まず、直接付与されたカテゴリのそれぞれについて、グラフの上位に位置する主要カテゴリまでの最短パスを求める。そして、そのパスを直接付与されたカテゴリからn個上に辿ることで上位カテゴリの集合を得る。nは1以上の整数で、最大で最上位のカテゴリまでのホップ数となる。nは辞書データ20の見出し語によって異なる。
【0029】
部分集合抽出部12は、対話データDB24から取得した対話データに含まれる発話データのそれぞれについて、カテゴリ抽出部16で見出し語を登録した形態素解析辞書を備えた形態素解析器で形態素解析し、発話データに含まれる見出し語を検知する。そして、カテゴリ抽出部16で作成した見出し語・カテゴリのペアを参照し、検知した見出し語にその見出し語のカテゴリ情報を付加する。
【0030】
このようにして、見出し抽出部14及びカテゴリ抽出部16の出力に基づいて、コーパスに予めカテゴリ情報を付与しておくと、任意のキーワードが与えられたとき、発話データ中の単語に加え、各単語に付与されたカテゴリ情報がそのキーワードを含めば、その発話データからなる対話データをキーワードに関連する部分集合22として抽出することができる。例えば、見出し語「W杯」と、カテゴリ情報「ワールドカップ、世界選手権、国際スポーツ競技大会」とで見出し語・カテゴリのペアが作成されている場合、この見出し語・カテゴリのペアに基づいて、スポーツというキーワードに対して、「W杯」という単語が含まれた発話データからなる対話データももれなく部分集合22として抽出することができる。ここでは、「食事|料理」(「|」は「または」の意味)と「スポーツ」というキーワードを用い、対話データコーパスから2つの部分集合22を抽出するものとする。それぞれの部分集合22を、Food−Set及びSports−Setと呼ぶ。
【0031】
なお、本実施の形態では、カテゴリ抽出部16において見出し語・カテゴリのペアを作成する場合について説明したが、予め作成された見出し語・カテゴリのペアが保持されたコーパスを用いてもよい。この場合、見出し抽出部14及びカテゴリ抽出部16は設けなくてもよい。
【0032】
対話モデル学習部18は、部分集合抽出部12で抽出された部分集合22を入力とし、対話モデルを出力する。本実施の形態における課題は、2回のやりとりの対話データから2回を超えるやりとりをモデル化することである。ここに、A→B、及びB’→Cという2つの対話データがあったとする。ここで、A、B、B’、及びCはそれぞれ発話データである。矢印は返信関係を表し、例えばA→Bとの表記であればBがAへの返信であることを示す(時間的にBがAの後続となるため右矢印で表している)。BとB’とは内容が近い発話データである。発話データの内容の近さは、例えば、各発話データに含まれる単語の一致度などから計算することができ、単語の一致度が所定値以上の発話データ同士を、内容が近い発話データとして判定することができる。なお、発話データ同士の内容が近いか否かの判定は、単語の一致度を用いる場合に限定されず、例えば、単語に付与されたカテゴリなども用いて発話データ同士の類似度を計算するようにしてもよい。このような内容が近い発話データBとB’とを一つにまとめると、A→{B、B’}→Cという3回のやりとりの対話データを構成することができる。このように、内容が近い発話データをクラスタリングし、2回のやりとりの対話データから2回を超えるやりとりの対話データを構成する。そして、構成された2回を超えるやりとりの対話データを用いて対話モデルを学習する。これにより、2回のやりとりの対話データからでも2回を超える対話のモデル化を実現することができる。
【0033】
なお、内容が近い発話をクラスタリングし、状態間の遷移を求めていくことは、HMMにおける学習過程と同じである。そのため、本実施の形態では、2回のやりとりの対話データからHMMを学習する場合について説明する。
【0034】
HMMの学習には無限HMMを用いる。無限HMMは、データからパラメタを推定するノンパラメトリックベイズの手法の一つであり、時系列的なデータを扱うHMMを無限の状態が扱えるようにしたものである。無限の状態が扱えるということの意味は、状態数が予め定まっていないということを指し、状態数はデータ依存で決定される。無限HMMの詳細は非特許文献3(Y. Teh, M. Jordan, M. Beal, and D. Blei, “Sharing clusters among related groups: Hierarchical Dirichlet processes,” in Proc. NIPS, 2004.)に記されている。
【0035】
HMMの学習にはEMアルゴリズムが用いられることが多いが、非特許文献2でも触れられているように、ベイズ学習を用いた手法の方が性能がよいことが分かっている。また、マイクロブログサービスから収集した対話データは内容が多様であるため、予め状態数を決定してモデル化することは難しい。そこに、無限HMMを用いる利点がある。無限HMMの学習は以下のように行う。
【0036】
無限HMMでは、対話データに含まれる発話データ(tとする。iはやりとりの順序を示す変数である。)毎に処理される。最初の発話データtは、まず最初のクラスタ(状態)にアサイン(割り当て)される。なお、最初は一つのクラスタしか存在しない。そして、次の発話データtはすでにいずれかの発話データがアサインされたクラスタcか新しいクラスタcj=newに、下記(1)式の確率でアサインされる。
【0037】
【数1】

【0038】
ここで、cは発話データtがアサインされたクラスタを指す。対話データにおいては、発話データは順序を持っている。ti−1及びti+1はそれぞれ、対話データにおける発話データtの直前及び直後の発話データを指す。P(c|c)はクラスタ間の遷移確率を表し、下記(2)式のように定義される。
【0039】
【数2】

【0040】
ここで、αは発話データtが新しいクラスタにアサインされる度合いを示すハイパーパラメタである。αが大きければ大きいほど新しいクラスタが生成されることを示すパラメタである。ヒューリスティクスとして、想定されるおおよそのクラスタ数の逆数を用いられることが多い(例えば、想定されるクラスタ数が100なら0.01)。transitions(c,c)はcからcへの遷移回数を返す。cに含まれる発話データの直後の発話データがcにアサインされているとこの回数が多くなる。Kはこの時点でのクラスタ数である。βは確率0を防ぐためのハイパーパラメタであり、十分小さい数であればよい。例えば、0.00001などである。P(t|c)はtがcから生成される確率であり、下記(3)式で得られる。
【0041】
【数3】

【0042】
ここで、Wは特徴量の集合であり、count(*,w)は発話データまたはクラスタにおいて、特徴量wが何回生起したかを表す。γは確率0を防ぐためのハイパーパラメタであり、十分小さい数であればよい。例えば、0.00001などである。特徴量Wは、例えば、bag−of−unigramsを用いることができる。これは単語(unigram)の頻度付き集合のことである。特徴量Wとして、bigramやtrigramのbag(頻度付き集合)を用いてもよいが、マイクロブログサービスから収集した発話データは多様であり、ユニーク単語数が非常に多い(表1参照)。そのため、bigramやtrigramの使用は特徴量が非常にスパースになり、HMMの学習が非常に困難となるため、bag−of−unigramsを特徴量Wとして用いることが適している。
【0043】
新しいクラスタが作られる場合の確率は、下記(4)式となる。
【0044】
【数4】

【0045】
このときのP(cnew|cti−1)及びP(cti+1|cnew)は、下記(5)式のように導出される。ここで、P(t|cnew)には一様分布を用いる。
【0046】
【数5】

【0047】
全ての発話データtを順番に配置した後、ギブスサンプリングという手法で発話データtを再配置していく。これは、発話データt一つをそのクラスタから外し、上記処理によって別クラスタ(新しいクラスタも含む)か、自分が元いたクラスタかに再度配置させるものであり、これを全ての発話データtについて最適な配置が求まるまで何度も繰り返す。発話データtの配置が変わらなくなるか、各発話データにつき1000回といった十分な回数のサンプリングが行われたら、収束したとみなし、そのときの発話データtのクラスタにおける配置がクラスタリング結果であり、全体の構造が学習されたHMMとなる。対話モデル学習部18は、このように学習されたHMMを対話モデルとして出力する。
【0048】
<本実施の形態の作用>
次に、本実施の形態の対話モデル構築装置10の作用について説明する。マイクロブログサービスのようなインターネット上の発話データを収集し、その中から返信関係にある2回のやりとりの対話データを抽出して、対話データDB24に格納した後、対話モデル構築装置10において、図2に示す対話モデル構築処理ルーチンが実行される。
【0049】
ステップ100で、対話データDB24に保持されている2回のやりとりの対話データを複数取得する。
【0050】
次に、ステップ102で、辞書データ20から見出し語を抽出し、抽出した見出し語を形態素解析辞書に登録する。そして、辞書データ20の見出し語のカテゴリ情報からカテゴリネットワークを作り、各見出し語について直接付与されたカテゴリと、カテゴリネットワークから得られる上位カテゴリとを取得し、見出し語・カテゴリのペアを作成して、例えば表形式で保持しておく。
【0051】
次に、ステップ104で、上記ステップ100で取得した対話データに含まれる発話データのそれぞれについて、上記ステップ102で見出し語を登録した形態素解析辞書を備えた形態素解析器で形態素解析し、発話データに含まれる見出し語を検知する。そして、上記ステップ102で作成した見出し語・カテゴリのペアを参照し、検知した見出し語にその見出し語のカテゴリ情報を付加する。
【0052】
次に、ステップ106で、対話モデル作成者により入力されたキーワードを取得する。
【0053】
次に、ステップ108で、対話データに含まれる単語、及びその単語に付与されたカテゴリ情報に、上記ステップ106で取得したキーワードを含む対話データを部分集合22として抽出する。
【0054】
次に、ステップ110で、上記ステップ108で抽出された部分集合22を用いて、HMMを学習する。なお、HMMの学習過程において、内容が近い発話データをクラスタリングし、2回のやりとりの対話データから2回を超えるやりとりの対話データを構成する。学習されたHMMを対話モデルとして出力して、処理を終了する。
【0055】
<評価実験>
次に、本実施の形態の有効性を評価するための評価実験について説明する。本評価実験では、Food−Set及びSports−Setの部分集合から、無限HMMを学習した。α、β、及びγは全て0.01を用いた。特徴量Wのbag−of−unigramsには、2回のやりとりの対話データにおける最頻の5000単語を特徴量として用いた。ギブスサンプリングのイタレーション数は1000とした。これは、各発話データはそれぞれ1000回再配置されたことを表す。
【0056】
本実施の形態の対話モデル構築装置10により、2回のやりとりの対話データから構築される対話モデルの有効性を評価するために、2回を超えるやりとりの対話データから作成した対話モデルとの比較を行う。そのため、Food−SetとSports−Setのそれぞれを、まず、2回のやりとりの対話データ(以下、「2回やりとりデータ」という)と2回を超えるやりとりの対話データ(以下、「3回以上やりとりデータ」という)に分けた。そして、3回以上やりとりデータをランダムに2分割し、片方を、オープンモデル学習データ、もう片方を、テストデータとした。つまり、各セットは、2回やりとりデータ、オープンモデル学習データ、及びテストデータの3つに分けられたことになる。評価は、2回やりとりデータから構築したモデル(2回やりとりモデル)、及びオープンモデル学習データから構築したモデル(オープンモデル)各々が、テストデータ(3回以上やりとりデータ)をどれだけ説明できるかを調べることにより行った。加えて、テストデータから学習したモデル(クローズドモデル)を使って、自分自身をどれだけ説明できるかも評価した。これは、アッパーバウンド(上限)を確かめるためである。さらに、2回やりとりデータの量によってどのように対話モデルが改善するかを確かめるため、2回やりとりデータを1000対話毎のブロックに区切り、ブロックを一つずつ加えて学習していくことで、性能改善を確かめた。学習したモデルがどれだけテストデータを説明するかの評価尺度として、対数尤度及びケンドールのタウを用いた。対数尤度はテストデータを生成する確率であり、テストデータを生成し易いモデルが良いモデルだと考えられることから採用した。ケンドールのタウは発話の並び替えの尺度であり、対話中の発話を適切に並び替えられるようなモデルが対話の流れを理解した良いモデルであると考えられることから採用した。ケンドールのタウは、具体的に以下のような流れで計算する。
・テストデータにおける発話データのそれぞれについて、全ての可能な順列(順番)を列挙する。
・それぞれの順番について、対話モデルによって対数尤度を計算する。
・最も対数尤度が高かった順番をそのシステムが最も適切と判断した順番とする。
・上記適切と判断した順番と、もともとのテストデータでの順番(正解)とを比較し、下記(6)式によりケンドールのタウを得る。
【0057】
【数6】

【0058】
ここで、R及びHはそれぞれ正解及び仮説(システムの順番)を表し、n(R,H)は仮説中の発話データのペアのうち順番が正しかったものの数、n(R,H)は仮説中の発話データのペアのうち順番が誤っていたものの数、combination(R)は仮説中の発話データが取り得るペアの数である。ケンドールのタウは−1から+1までの値を取り、順序が完全に正解と一致していれば+1となるような指標である。
【0059】
<結果>
表3に評価結果を示す。表中のFood−Set LL及びFood−Set tauは、Food−Setのテストデータに対する、マイナスをかけた対数尤度(Negative Log Likelihood;LL)、及びケンドールタウの値を表す。Sports−Setについても同様である。なお、表において、*と+はそれぞれ2回やりとりモデル及びオープンモデルに対し統計的に有意(p<0.01)に値が良いことを示す。
【0060】
【表3】

【0061】
表から分かるとおり、2回やりとりモデルは、だいたいの場合においてオープンモデルの値を上回っており、場合によっては、クローズドモデルの性能に匹敵する(例えば、Food−Set及びSports−Setの両方について、タウは、2回やりとりモデルとクローズドモデルとに統計的な差が無い)ことから、2回やりとりデータからでも、3回以上やりとりデータから学習できるような対話モデルを学習できることが分かる。
【0062】
図3及び4はそれぞれFood−Set及びSports−Setにおける学習曲線である。2回やりとりデータを1000対話ずつ増やした場合に性能がどう変化するかを示している。対数尤度はデータを増やすにつれ、オープンモデルに漸近、もしくはそれを超える性能が出てくることも分かる。タウについては、データを増やすにつれ、オープンモデルを超えて、クローズドモデルも超えていく傾向にあることが分かる。図3及び4に示したように、2回やりとりデータは有用であり、データ数を増やせば対話モデルの性能が改善していくことが確認できた。これは本実施の形態の有効性を示すものである。
【0063】
図5に、2回やりとりデータを1000対話ずつ増やした場合における、無限HMMの状態数の推移を示す。前述の通り、無限HMMでは予め状態数を決めず、データを最もよく表す状態数が自動的に選択される。図5に示すように、状態数は35−40程度が良いことが分かる。この状態数は非特許文献2において、性能が飽和する際の状態数に近く、このことは、2回やりとりデータから学習した対話モデルが3回以上やりとりデータから学習した対話モデルに近いであろうことを示す証拠と言える。
【0064】
<分析>
学習された対話モデルがどのようなものかを分析するために、2回やりとりモデルが3回以上やりとりデータをどのようにデコードするか調べた。デコードとは、3回以上やりとりデータを2回やりとりモデルが読み込み、どの状態からどの発話データが出力されたかを推定する処理のことである。この分析のため、まず、2回やりとりモデルを用いて、3回以上やりとりデータをViterbiアルゴリズムでデコードし、最尤パスを得た。そして、その得られたパスをネットワーク図として描画した。図6はそのネットワーク図である。ここでは、15回以上生起したパスしか表示しておらず、そのようなパスと関係のない状態、及び最終状態は読み易さのため割愛している。矢印の横の数値はそのパスを通った割合である。図6に示すネットワーク図を見ると、明らかに2回を超えるやりとりが2回やりとりモデルに含まれていることが分かり、2回やりとりデータから2回を超えるやりとりがモデル化できていることが見て取れる。
【0065】
さらなる分析として、各状態でどのような単語が頻出しているか調べた。そのような単語をここでは代表語と呼ぶ。図7に各状態の代表語を示す。代表語の選出にはLog−Likelihood ratio testを用いた。これはχ二乗検定に近いもので、文書集合間における単語の偏り度合いを検定できるものである。ここでは、ある状態にアサインされた発話データ集合及びその状態以外にアサインされた発話データ集合について、ある単語がより多く偏って出現しているかを評価している。ここでは、Log−Likelihood ratio testのp値が0.0001以下のもののみを列挙した。
【0066】
これによれば、状態29は「帰宅」、「起き」、「仕事」など人物の状態を表す発話データに対応すると考えられる。状態11は、状態29と同じく人物の状態に対応すると考えられるが、「ただいま」、「風呂」、「夕飯」などから、家庭での状態を表していると言える。状態13は、質問を表し、状態6、18、31はそれぞれ、社会的、好意的、及び感情的な返答の発話データと考えることができる。状態26は食事についての報告であり、状態27は、食事の詳細(食事名、材料名など)についての発話データである。状態7は、「ね」、「よ」、「よね」などから分かるとおり、相手の発話について反応し、何らかのコメントをしている発話データを表していると思われる。このように見ていき、図6と突合すると、今回得られた対話モデルには次のようなやりとりが含まれていることが分かる。以下のやりとりでは、コロンの前の数字は状態IDである。
・11:家庭での状態→6:社会的な応答→7:コメント
・29:状態→31:感情的な応答→18:好意的な応答→7:コメント
・26:食事の報告→13:質問→27:食事の詳細→7:コメント
これらのやりとりは2回を超えるやりとりであり、本実施の形態の対話モデル構築装置10により、2回やりとりデータから、2回を超えるやりとりを含む対話モデルが得られていることが確認できる。
【0067】
以上説明したように、本実施の形態によれば、内容が近い発話データをクラスタリングすることにより、2回のやりとりの対話データから2回を超えるやりとりの対話データを構成するため、マイクロブログサービスのようなインターネット上の投稿から収集されたデータにおいて、従来使用されていなかったデータも学習データとして用いることができる。これにより、学習データの量及び多様性を確保することができ、精度の良い対話モデルを構築することができる。
【0068】
また、このように学習データの量及び多様性を確保することができることにより、キーワードを用いた学習データの部分抽出にも対応することができるため、任意の話題に応じた対話モデルを構築することができる。
【0069】
なお、本実施の形態の対話モデル構築装置は、対話モデル学習部単独でも構成することができる。この場合、部分集合抽出部で抽出したような対話データの部分集合を予めデータベース等に保存しておき、このデータを本装置に対する入力とすればよい。
【0070】
また、本実施の形態では、対話モデルとしてHMMを学習する場合について説明したが、2回のやりとりの対話データから3回以上のやり取りの対話データを構成して学習する手法であればHMMに限定されない。
【0071】
また、本発明は、上記実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0072】
また、本願明細書中において、プログラムが予めインストールされている実施の形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【0073】
10 対話モデル構築装置
12 部分集合抽出部
14 見出し抽出部
16 カテゴリ抽出部
18 対話モデル学習部
20 辞書データ
22 部分集合
24 対話データDB

【特許請求の範囲】
【請求項1】
返信関係にある2つの発話データからなる複数の対話データを入力とし、1つの対話データに含まれるいずれかの発話データと、他の対話データに含まれるいずれかの発話データとが類似する場合に、該類似する発話データ同士をクラスタリングして前記1つの対話データと前記他の対話データとをまとめることにより、3つ以上の発話データからなる対話データを構成し、構成された対話データを学習データとして、発話の遷移を表す対話モデルを学習する学習手段
を含む対話モデル構築装置。
【請求項2】
請求項1記載の対話モデル構築装置は、
予め定めた見出し語と該見出し語のカテゴリ及び上位カテゴリとを対応させた見出し語・カテゴリ情報に基づいて、前記取得手段により取得した複数の対話データ各々に含まれる発話データ内の各単語から前記見出し語・カテゴリ情報の見出し語に対応する単語を検知し、検知された単語に見出し語・カテゴリ情報に応じたカテゴリ及び上位カテゴリを付与し、発話データ内の各単語、該単語に付与されたカテゴリ、及び上位カテゴリの少なくとも1つと、入力されたキーワードとが一致する場合に、該発話データを含む対話データを部分集合として抽出する部分集合抽出手段をさらに有し、
前記学習手段は、前記部分集合に含まれる対話データを入力とする請求項1記載の対話モデル構築装置。
【請求項3】
見出し語と該見出し語のカテゴリが付与された辞書データから見出し語を抽出すると共に、抽出された見出し語に付与されたカテゴリ、及びカテゴリ間の予め定められた関係に基づいて得られる見出し語に付与されたカテゴリの上位カテゴリを抽出し、抽出された見出し語とカテゴリ及び上位カテゴリとのペアを、前記見出し語・カテゴリ情報として作成する作成手段を含む請求項2記載の対話モデル構築装置。
【請求項4】
学習手段を含む対話モデル構築装置における対話モデル構築方法であって、
前記学習手段は、返信関係にある2つの発話データからなる複数の対話データを入力とし、1つの対話データに含まれるいずれかの発話データと、他の対話データに含まれるいずれかの発話データとが類似する場合に、該類似する発話データ同士をクラスタリングして前記1つの対話データと前記他の対話データとをまとめることにより、3つ以上の発話データからなる対話データを構成し、構成された対話データを学習データとして、発話の遷移を表す対話モデルを学習するステップを有する
対話モデル構築方法。
【請求項5】
コンピュータを、請求項1〜請求項3のいずれか1項記載の対話モデル構築装置を構成する各手段として機能させるための対話モデル構築プログラム。

【図1】
image rotate

【図2】
image rotate

【図7】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−105436(P2013−105436A)
【公開日】平成25年5月30日(2013.5.30)
【国際特許分類】
【出願番号】特願2011−250787(P2011−250787)
【出願日】平成23年11月16日(2011.11.16)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】