(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-14
(45)【発行日】2023-03-23
(54)【発明の名称】言語処理装置、言語処理方法、およびプログラム
(51)【国際特許分類】
G06F 40/279 20200101AFI20230315BHJP
G10L 15/19 20130101ALI20230315BHJP
【FI】
G06F40/279
G10L15/19
(21)【出願番号】P 2019027167
(22)【出願日】2019-02-19
【審査請求日】2021-12-16
(73)【特許権者】
【識別番号】504171134
【氏名又は名称】国立大学法人 筑波大学
(73)【特許権者】
【識別番号】000005326
【氏名又は名称】本田技研工業株式会社
(74)【代理人】
【識別番号】100165179
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100126664
【氏名又は名称】鈴木 慎吾
(74)【代理人】
【識別番号】100154852
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100194087
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】若林 啓
(72)【発明者】
【氏名】竹内 誉羽
【審査官】木村 大吾
(56)【参考文献】
【文献】特開2000-200273(JP,A)
【文献】特開2012-093808(JP,A)
【文献】米国特許出願公開第2015/0356969(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-40/58
G10L 15/19
(57)【特許請求の範囲】
【請求項1】
発話を複数のトークンに分解し、分解した複数の前記トークンに対して前記トークンの組み合わせとトークン間の遷移をラティス構造として生成し、生成した前記ラティス構造に対して前記トークンから他の前記トークンへ遷移する確率であるコストの計算を行い、前記ラティス構造と前記コストに基づいて最適パスの計算を行うことで、前記発話から抽出すべきパラメータであるスロットの推定を行う意図理解部、
を備
え、
前記ラティス構造は、与えられた発話に対してスロット部分と非スロット部分の組み合わせが最適になるような確率モデルを推定して構築されたものである、言語処理装置。
【請求項2】
前記意図理解部は、前記コストの計算にディリクレ過程(Dirichlet Process)を用いる、請求項1に記載の言語処理装置。
【請求項3】
前記意図理解部は、最適パスの計算に動的計画法を用いる、請求項1または請求項2に記載の言語処理装置。
【請求項4】
前記ラティス構造は、
非スロット部分の前記トークンを表すbegノードと、主題スロット部分の前記トークンを表すsbjノードと、フレーズの終点を表すtermノードと、
同じ種類のノード間の継続経路である継続エッジと、前記termノードから前記sbjノードへ遷移する経路であるterm-sbjエッジと、前記termノードから前記begノードへ遷移する経路であるterm-begエッジと、前記sbjノードから前記termノードへ遷移する経路であるsbj-termエッジと、前記begノードから前記termノードへ遷移する経路であるbeg-termエッジと、
前記begノードと、前記sbjノードと、前記termノードと、前記継続エッジと、前記term-sbjエッジと、前記term-begエッジと、前記sbjノードから前記sbj-termエッジと、前記beg-termエッジと、前記termノードから前記sbjノードに遷移する確率と、前記termノードから前記begノードに遷移する確率と、前記sbjノードから前記termノードに遷移する確率と、前記begノードから前記termノードに遷移する確率と、で表される、請求項1から請求項3のいずれか1項に記載の言語処理装置。
【請求項5】
前記動的計画法は、各ノードで、フレーズを継続するか、フレーズを終了して別のラベルを持つ新しいフレーズを開始するかのいずれかを選択する遷移の系列の列挙である、請求項3に記載の言語処理装置。
【請求項6】
意図理解部が、発話を複数のトークンに分解するステップと、
前記意図理解部が、分解した複数の前記トークンに対して前記トークンの組み合わせとトークン間の遷移をラティス構造として生成するステップと、
前記意図理解部が、生成した前記ラティス構造に対して前記トークンから他の前記トークンへ遷移する確率であるコストの計算を行うステップと、
前記意図理解部が、前記ラティス構造と前記コストに基づいて最適パスの計算を行うことで、前記発話から抽出すべきパラメータであるスロットの推定を行うステップと、
を含
み、
前記ラティス構造は、与えられた発話に対してスロット部分と非スロット部分の組み合わせが最適になるような確率モデルを推定して構築されたものである、言語処理方法。
【請求項7】
言語処理装置のコンピュータに、
発話を複数のトークンに分解するステップと、
分解した複数の前記トークンに対して前記トークンの組み合わせとトークン間の遷移をラティス構造として生成するステップと、
生成した前記ラティス構造に対して前記トークンから他の前記トークンへ遷移する確率であるコストの計算を行うステップと、
前記ラティス構造と前記コストに基づいて最適パスの計算を行うことで、前記発話から抽出すべきパラメータであるスロットの推定を行うステップと、
を実行
させ、
前記ラティス構造は、与えられた発話に対してスロット部分と非スロット部分の組み合わせが最適になるような確率モデルを推定して構築されたものである、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、言語処理装置、言語処理方法、およびプログラムに関する。
【背景技術】
【0002】
近年、音声認識技術の発達により、高度な音声対話システムの実現に期待が集まっている。例えば、特定のタスクを遂行するためのタスク指向型の対話システムでは、あらかじめ用意した機能を実行するためのパラメータを音声発話から抽出することで、ユーザの意図を反映して当該機能を実行する。また、発話されたフレーズから意図を表すフレーズを抽出することで、抽出した意図に対応する行動を実行する。
【0003】
ここで、音声言語理解とは、一般的にスロット充填作業と、定義される自然言語発話から発言者の意図を認識することを指す。例えば、“Remind me to call John at 9am tomorrow”という発話では、特定の情報{“time”:“9am tomorrow”}と{“subject”:“to call John”}を抽出する必要がある。
【0004】
この抽出するべきパラメータ変数のことをスロットと呼ぶ。
図13は、スロットを説明するための図である。例えば、リマインダ作成のドメインにおいては、通知日時や通知内容がスロットに対応する。
図13において、符号g901は、処理対象の英語のフレーズ例である。また、符号g902は、符号g901のフレーズから抽出すべきスロット例である。符号g902において、「subject」はsubject(主題)スロットであり、「time」はtime(時間)スロットである。
【0005】
このようなスロットの推定手法として、ディリクレ過程(Dirichlet Process)を用いたスロット分布に基づく発話生成モデルを利用した手法が提案されている。例えば発明者らによる非特許文献1では、任意の自然言語フレーズの生成を伴うノンパラメトリックなベイジアンモデルとして無限のスロット値を直接モデル化する階層的なディリクレ過程スロットモデル(HDPSM;Hierarchical Dirichlet Process Slot Model)を用いてスロットの推定を行っている。また、非特許文献1では、前処理としてCRF(Conditional random field;条件付き確率場)などの識別処理を行った後、DPSMによってリランキングすることでスロットの推定を行っている。なお、このような手法は、前処理のCRFの解析結果に依存していた。
【先行技術文献】
【非特許文献】
【0006】
【文献】Wakabayashi Kei, Takeuchi Johane, Funakoshi Kotaro, and Nakano Mikio. Nonparametric Bayesian Models for Spoken Language Understanding. In Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing, pp. 2144-2152, 2016.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来の手法で音声やテキスト文を解析して必要とする情報を抽出する際に、高い抽出精度を実現しようとすると高価で大電力を消費するハードウェアが必要となる。このため、従来の言語理解の手法では、大規模な計算機システムを用いないと高い抽出精度を実現するのが困難であった。
【0008】
本発明は、上記の問題点に鑑みてなされたものであって、音声やテキスト文から必要とする情報を高い精度で、且つ低コストで抽出することができる言語処理装置、言語処理方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
(1)上記目的を達成するため、本発明の一態様に係る言語処理装置は、発話を複数のトークンに分解し、分解した複数の前記トークンに対して前記トークンの組み合わせとトークン間の遷移をラティス構造として生成し、生成した前記ラティス構造に対して前記トークンから他の前記トークンへ遷移する確率であるコストの計算を行い、前記ラティス構造と前記コストに基づいて最適パスの計算を行うことで、前記発話から抽出すべきパラメータであるスロットの推定を行う意図理解部、を備え、前記ラティス構造は、与えられた発話に対してスロット部分と非スロット部分の組み合わせが最適になるような確率モデルを推定して構築されたものである。
【0010】
(2)また、本発明の一態様に係る言語処理装置において、前記意図理解部は、前記コストの計算にディリクレ過程(Dirichlet Process)を用いるようにしてもよい。
【0011】
(3)また、本発明の一態様に係る言語処理装置において、前記意図理解部は、最適パスの計算に動的計画法を用いるようにしてもよい。
【0012】
(4)また、本発明の一態様に係る言語処理装置において、前記ラティス構造は、非スロット部分の前記トークンを表すbegノードと、主題スロット部分の前記トークンを表すsbjノードと、フレーズの終点を表すtermノードと、同じ種類のノード間の継続経路である継続エッジと、前記termノードから前記sbjノードへ遷移する経路であるterm-sbjエッジと、前記termノードから前記begノードへ遷移する経路であるterm-begエッジと、前記sbjノードから前記termノードへ遷移する経路であるsbj-termエッジと、前記begノードから前記termノードへ遷移する経路であるbeg-termエッジと、前記begノードと、前記sbjノードと、前記termノードと、前記継続エッジと、前記term-sbjエッジと、前記term-begエッジと、前記sbjノードから前記sbj-termエッジと、前記beg-termエッジと、前記termノードから前記sbjノードに遷移する確率と、前記termノードから前記begノードに遷移する確率と、前記sbjノードから前記termノードに遷移する確率と、前記begノードから前記termノードに遷移する確率と、で表されるようにしてもよい。
【0013】
(5)また、本発明の一態様に係る言語処理装置において、前記ラティス構造において、前記sbjノードから前記sbjノードに推移する確率が0であり、前記begノードから前記begノードに推移する確率が0であるようにしてもよい。
【0014】
(5)また、本発明の一態様に係る言語処理装置において、動的計画法は、各ノードで、フレーズを継続するか、フレーズを終了して別のラベルを持つ新しいフレーズを開始するかのいずれかを選択する遷移の系列の列挙であるようにしてもよい。
【0015】
(6)上記目的を達成するため、本発明の一態様に係る言語処理方法は、意図理解部が、発話を複数のトークンに分解するステップと、前記意図理解部が、分解した複数の前記トークンに対して前記トークンの組み合わせとトークン間の遷移をラティス構造として生成するステップと、前記意図理解部が、生成した前記ラティス構造に対して前記トークンから他の前記トークンへ遷移する確率であるコストの計算を行うステップと、前記意図理解部が、前記ラティス構造と前記コストに基づいて最適パスの計算を行うことで、前記発話から抽出すべきパラメータであるスロットの推定を行うステップと、を含み、前記ラティス構造は、与えられた発話に対してスロット部分と非スロット部分の組み合わせが最適になるような確率モデルを推定して構築されたものである。
【0016】
(7)上記目的を達成するため、本発明の一態様に係るプログラムは、言語処理装置のコンピュータに、発話を複数のトークンに分解するステップと、分解した複数の前記トークンに対して前記トークンの組み合わせとトークン間の遷移をラティス構造として生成するステップと、生成した前記ラティス構造に対して前記トークンから他の前記トークンへ遷移する確率であるコストの計算を行うステップと、前記ラティス構造と前記コストに基づいて最適パスの計算を行うことで、前記発話から抽出すべきパラメータであるスロットの推定を行うステップと、を実行させ、前記ラティス構造は、与えられた発話に対してスロット部分と非スロット部分の組み合わせが最適になるような確率モデルを推定して構築されたものである、プログラム。
【発明の効果】
【0017】
(1)、(6)および(7)によれば、コストを計算したラティス構造に対して動的計画を用いてスロットの推定を行うようにしたので、学習に係る時間を低減でき且つスロットの推定にかかる時間を低減することができる。また、(1)、(6)および(7)によれば、高い精度でスロットの推定を行うことができる。この結果、(1)、(6)および
(7)によれば、音声やテキスト分から必要とする情報を高い精度抽出でき且つ低コストで抽出することができる。
また、(1)、(6)および(7)によれば、テキストが英語等であっても日本語等であっても、音声やテキスト分から必要とする情報を高い精度抽出でき且つ低コストで抽出することができる。また、(1)、(6)および(7)によれば、テキストが日本語等の場合であっても、ラティス構造の生成前に形態素解析の処理が不要になる。
【0018】
(2)、(3)によれば、学習に係る時間を低減でき且つスロットの推定にかかる時間を低減することができる。
(4)によれば、ラティス構造の生成前の前処理が不要であり、音声やテキスト分から必要とする情報を低コストで抽出することができる。
【0019】
本発明の一態様によれば、確率モデルにおける遷移状態の計算を簡素化することができる。(5)によれば、ディリクレ過程スロットモデルの生成前の前処理が不要になる。
【図面の簡単な説明】
【0020】
【
図1】本実施形態に係る対話システムの構成例を示すブロック図である。
【
図2】本実施形態に係るラティス構造の例を示す図である。
【
図3】本実施形態に係るスロットの推定結果を示す図である。
【
図4】本実施形態に係るフレーズが日本語の場合のラティス構造の例と確率モデル例を示す図である。
【
図5】本実施形態に係る処理手順例のフローチャートである。
【
図6】本実施形態の有用性を確認するために行った計測結果例を示す図である。
【
図7】日本語コーパスを用いた場合の各手法のスロットの推定精度を示す図である。
【
図8】英語コーパスを用いた場合の各手法のスロットの推定精度を示す図である。
【
図9】日本語コーパスと英語コーパスにおける学習の実行時間の比較結果を示す図である。
【
図10】日本語コーパスと英語コーパスにおけるスロット推定精度の比較を示す図である。
【
図11】日本語コーパスと英語コーパスにおける学習の消費メモリ量の比較結果を示す図である。
【
図12】日本語コーパスと英語コーパスにおけるスロット推定時の消費メモリ量の比較を示す図である。
【発明を実施するための形態】
【0021】
以下、本発明の実施の形態について図面を参照しながら説明する。
図1は、本実施形態に係る対話システム1の構成例を示すブロック図である。
図1に示すように、対話システム1は、言語理解装置3と、DB(データベース)4と、行動生成部5と、出力部6を備えている。
【0022】
言語理解装置3は、ユーザが発話した音声信号を音声認識したテキスト情報、またはユーザが入力したテキスト情報を取得する。言語理解装置3は、テキスト情報を解析してスロット情報を抽出し、抽出したスロット情報を行動生成部5に出力する。なお、スロット情報には、スロットの種類を示す情報と、スロットのラベルを持つフレーズのテキスト情報が含まれている。ここで、スロットの種類とは、例えば、主題スロット、時間スロット、非スロット部分等である。また、スロットの種類には、タスクの種類が含まれている。例えば時間スロットが含まれていれば、タスクは時間に関するものである。また、スロットは、発話から抽出すべきパラメータである。
【0023】
DB4は、例えばタスク毎にシナリオを記憶する。また、DB4は、発話(テキスト情報)に含まれる意図毎の応答のテキスト情報を記憶する。
【0024】
行動生成部5は、言語理解装置3が出力するスロット情報を取得する。行動生成部5は、スロット情報に含まれるタスクの種類に基づきDB4が格納する情報を参照して、テキスト情報に対する応答のテキスト情報を、例えばDB4が記憶するシナリオに基づいて周知の手法で選択する。行動生成部5は、選択したテキスト情報を音声信号または画像情報に変換し、変換した音声信号または画像情報を出力部6に出力する。
【0025】
出力部6は、例えばスピーカまたは画像表示装置である。出力部6は、行動生成部5が出力する音声信号を再生する。または、出力部6は、行動生成部5が出力する画像情報を表示する。
【0026】
次に、言語理解装置3が備える各機能部について説明する。
図1に示すように、言語理解装置3は、取得部31と、意図理解部33と、出力部34を備えている。
【0027】
取得部31は、ユーザが発話した音声信号を音声認識したテキスト情報、またはユーザが入力したテキスト情報を取得する。取得部31は、取得したテキスト情報を意図理解部33に出力する。
【0028】
意図理解部33は、ラティス(lattice)構造を生成するアルゴリズムを記憶する。意図理解部33は、ラティス構造に対して、発話に含まれる単語(トークン)から他の単語へ遷移する確率であるコストの計算するアルゴリズムを記憶する。なお、意図理解部33は、例えばディリクレ過程スロット(Dirichlet Process)を用いてコストの計算を行う。意図理解部33は、ラティス構造に対して、最適パスを計算するアルゴリズムを記憶する。なお、意図理解部33は、例えば動的計画法によって最適パスの計算を行う。
意図理解部33は、取得部31が出力するテキスト情報を取得する。意図理解部33は、取得したテキスト情報を単語(トークン)に分解する。意図理解部33は、分解した単語に対して、記憶するアルゴリズムによってラティス構造を生成する。なお、ラティス構造については後述する。意図理解部33は、ラティス構造に対して、記憶するアルゴリズムによって単語から他の単語へ遷移する確率であるコストを計算する。意図理解部33は、ラティス構造に対して、記憶するアルゴリズムを用いて動的計画法によって可能な全てのスロット推定結果の空間を効率的に探索することで、スロットを推定する。意図理解部33は、推定したスロットの情報であるスロット情報を出力部34に出力する。なお、本実施形態における動的計画法は、各時刻で、フレーズを継続するか、フレーズを終了して別のラベルを持つ新しいフレーズを開始するかのいずれかを選択するような遷移の系列の列挙に基づいている。
【0029】
出力部34は、意図理解部33が出力するスロット情報を行動生成部5に出力する。
【0030】
(ラティス構造)
次に、ラティス構造の例を説明する。
図2は、本実施形態に係るラティス構造の例を示す図である。なお、
図2に示す例では、発話が英語の例を示している。発話が英語の場合、本実施形態の分割単位は、単語である。なお、意図理解部33は、テキスト情報から周知の手法によって単語の抽出を行う。
図2において、符号g1は、ラティス構造を示している。また、符号g2は、単語毎に分けた発話を示している。符号g1に示すように、ラティス構造は、発話に含まれる複数の単語(トークン)と、単語(トークン)間の遷移の組み合わせである。
【0031】
また、符号g11は、「term」ノードを示す。「term」ノードは、単語(トークン)の始点または終点を表す。符号g12は、「beg」ノードを示す。「beg」ノードは、begラベル(非スロット部分にあたるフレーズ)を表し、例えば「1beg」ノードはbegラベルの1単語目を表している。符号g13は、「sbj」ノードを示す。「sbj」ノードは、sbjラベル(subject(主題)スロット部分にあたるフレーズ)を表し、例えば「2sbj」はsbjラベルの2単語目を表している。
【0032】
また、termノードからsbjノードへ遷移する経路であるエッジをterm-sbjエッジという。termノードからbegノードへ遷移する経路であるエッジをterm-begエッジという。sbjノードからtermノードへ遷移する経路であるエッジをsbj-termエッジという。begノードからtermノードへ遷移する経路であるエッジをbeg-termエッジという。sbjノードからsbjノードへ遷移する経路であるエッジをsbj-sbjという。begノードからbegノードへ遷移する経路であるエッジをbeg-begエッジという。
【0033】
また、符号g21は、ラベルの出現確率コストを示す。ラベルの出現確率のコストは、term-sbjエッジまたはterm-begエッジに対するコストである。
符号g22は、フレーズの生成確率コストを示す。フレーズの生成確率のコストは、sbj-termエッジまたはbeg-termエッジに対するコストである。
符号g23は、継続を表し、継続のコストは無し(ゼロ)である。継続経路は、sbj-sbjエッジ、またはbeg-begエッジである。
【0034】
図2において、発話Wは「remind me to call john」である。そして、発話Wは、始点の「term」ノード(符号g11)から開始される。1単語目「remind」は、「beg」ノードまたは「sbj」ノードである。
意図理解部33は、「term」ノード(符号g11)からラベルの出現確率コスト(符号g24)を経て「1beg」ノード(符号g12)に至る経路と、「term」ノード(符号g11)からラベルの出現確率コスト(符号g21)を経て「1sbj」ノード(符号g13)に至る経路を生成する。
【0035】
意図理解部33は、「1beg」ノード(符号g12)からフレーズの生成確率コスト(符号g25)を経て終点の「term」ノード(符号g14)に至る経路を生成する。
意図理解部33は、「1sbj」ノード(符号g13)からフレーズの生成確率コスト(符号g22)を経て終点の「term」ノード(符号g14)に至る経路を生成する。
【0036】
2単語目「me」は、「beg」ノード(「1beg」ノード(符号g15)または「2beg」ノード(符号g16))、または「sbj」(「1sbj」ノード(符号g17)または「2sbj」ノード(符号g18))ノードである。
意図理解部33は、「term」ノード(符号g14)からラベルの出現確率コスト(符号g26)を経て「1beg」ノード(符号g15)に至る経路を生成する。
意図理解部33は、「term」ノード(符号g14)からラベルの出現確率コスト(符号g27)を経て「1sbj」ノード(符号g17)に至る経路を生成する。
意図理解部33は、「1beg」ノード(符号g12)から継続(符号g28)を経て「2beg」ノード(符号g16)に至る経路を生成する。
意図理解部33は、「1sbj」ノードから継続(符号g23)を経て「2sbj」ノード(符号g18)に至る経路を生成する。
【0037】
意図理解部33は、以下同様に、全ての単語に対するノードと経路を生成する。スロットの推定の結果は、このラティス上の経路として表現される。
なお、意図理解部33は、ラベルの出現確率コストと、フレーズの生成確率コストを、教師付の訓練データを用いた学習によってあらかじめ求めて記憶しておく。なお、上述したように意図理解部33は、例えばディリクレ過程スロットを用いて経路のコストの計算を行う。
また、本実施形態では、
図2のラティス構造において、各経路を通過するのにかかるコストを、DPSMにおける確率(出現確率、生成確率)と対応づける。
なお、本実施形態では、ディリクレ過程スロットを用いて経路のコストが計算されたラティス構造を、ラティス構造のディリクレ過程スロットモデル(DPSM;Dirichlet Process Slot Model)ともいう。
【0038】
図3は、本実施形態に係るスロットの推定結果を示す図である。意図理解部33は、動的計画法によって最短経路を探索することでスロットを推定する。
図3の符号g31は、選択された経路を示している。
この結果、「remind me」が「beg」ラベルを持つフレーズと解釈される。さらに、「to call john」が「sbj」ラベルを持つフレーズであると解釈される。
このように、本実施形態では、従来のようなCRF等の前処理を必要とせず、コストを計算したラティス構造に対して、動的計画法を用いて最適パスを計算することでスロットの推定を行うことができる。
【0039】
なお、
図2と
図3は、英語の例を説明したが、分割する単位が単語である言語であれば、フランス語、ドイツ語、スペイン語等であってもよい。
【0040】
なお、
図2、
図3に示した例では、発話が英語の例を説明した。
ここで、発話が日本語の場合の例を説明する。例えば、フレーズが天気を質問するフレーズ「あしたのひろしまのてんきをおしえて」(明日の広島の天気を教えて)であるとする。
図4は、本実施形態に係るフレーズが日本語の場合のラティス構造の例を示す図である。
図4において、符号g101は、ラティス構造の例を示している。また、符号g102は、文字(トークン)毎に分けた発話を示している。なお、意図理解部33は、テキスト情報から周知の手法によって文字(音素)の抽出を行う。
【0041】
日本語における分割単位は、文字(トークン)である。このため、このフレーズの場合、動的計画法のラティス構造における文字は、「あ」、「し」、「た」、・・・、「て」である。このため、ラティス構造は、
図4のように、左を始点として右に「term」、「あ」、「term」、「し」、「term」、「た」、「term」、・・・、「て」、「term」となる。意図理解部33は、これらの文字(トークン)と「term」に対して全ての経路を生成し、ディリクレ過程スロットを用いて経路のコストの計算を行い、動的計画法によって最短経路を探索することでスロットを推定する。
【0042】
なお、
図4は、日本語の例を説明したが、分割する単位が文字である言語であれば、他の言語であってもよい。さらに、日本語のテキスト情報に対して形態素解析を行った後、
図2や
図3と同様にテキスト情報を単語に分解してモデルを生成するようにしてもよい。
【0043】
次に、処理手順例を説明する。
図5は、本実施形態に係る処理手順例のフローチャートである。
【0044】
(ステップS1)意図理解部33は、発話であるテキスト情報を周知の手法によって複数の単語(または文字)に分解する。
【0045】
(ステップS2)意図理解部33は、分解した複数のトークン(単語または文字)に対してラティス構造を生成する。
【0046】
(ステップS3)意図理解部33は、生成したラティス構造に対して、例えばディリクレ過程スロットを用いて経路のコストの計算を行う。
【0047】
(ステップS4)意図理解部33は、コストを計算したラティス構造に対して、例えば動的計画を用いて発話からスロットの推定を行う。
【0048】
ここで、CRF、深層学習、あるいはそれらを組み合わせた識別モデルでは、人手でルールを作成する代わりに学習によってスロット抽出を行えるようになる。しかしながら、識別されたスロットがどうして選ばれたのか、人にはわかりにくい。また、CRFと深層学習を組み合わせた識別モデルは、スロット推定の性能も非常に高いが、同時に大きな計算資源を必要としている。
【0049】
本実施形態によれば、確率モデルを使った例えば動的計画法を用いることで、スロットの組の候補をあらかじめ用意する必要がなくなるので前処理の必要がなくなり、前述した課題が解決される。
さらに、本実施形態によれば、後述するように、性能がCRFと深層学習を組み合わせた識別モデル並みでありながら、少計算資源で動作するアルゴリズムを提供できるという効果も有する。
【0050】
上述したように、本実施形態は、トークンに対してラティス構造を生成し、ラティス構造に対して例えばディリクレ過程を用いてコスト(確率)を計算し、コストを計算したラティス構造に対して例えば動的計画法を用いてスロットの推定を行う。本実施形態では、このように自然言語のスロットの推定に「ラティス構造のコストの計算する」ことと、「スロット抽出のための最適パスの計算を動的計算法で行う」ことを組み合わせることで、自然言語をこれらの演算に適した形式に変換する(
図2~
図4)ことで、高い抽出精度と低コストな抽出手段を同時に実現することができる。
さらに、本実施形態によれば、発話が日本語等の場合に、文字単位で処理する。このため、従来はスロット抽出に必要であった形態素解析の前処理を省くことができる。
【0051】
(Dirichlet Process Slot Modelの説明)
次に、Dirichlet Process Slot Model(DPSM)について説明する(非特許文献1参照)。
以下の説明において、S={s1,・・・、sMs}をあらかじめ与えられたスロットとし、Msをスロット数とする。また、無限集合の文字列Vに対して、各スロットsi(iは、1以上の整数)をランダム変数として定義する。この無限集合Vは、次式(1)のように表される。
また、以下の説明において、発話が「i’m looking for a restaurant in the fen ditton area」の例を説明する。
【0052】
【0053】
式(1)において、Cは空白文字および発生の転写に潜在的に現れる他の文字を含む集合である。また、Lは0以上の整数である。bは、要素(文字列)である。
従って、スロットSのセットは、VMsに及ぶランダム変数であるとも考えることができる。
【0054】
まず、DP(Dirichlet Process;ディリクレ過程)を適用して、個々のスロットpi(si)の分布と結合分布p(S)の両方をモデル化する。
DPはターゲット分布Gに対する確率的分布である。DPはα0およびG0によってパラメータ化されDP(α0,G0)で表される。α0>0は濃度パラメータであり、G0はドメインΧに対するベース分布である。ここで、ドメインΧは、スロット値VMsのタプルの集合を表す。
【0055】
ここで、GがDP(α0,G0)(すなわちG~DP(α0,G0))から引き出される場合、次式(2)のディリクレ分布特性は、{A1,...,AL}で表されるΧの任意のパーティションに対して成立する。
【0056】
【0057】
式(2)において、Dirは、引数に指定した要素が存在するときに要素を返し、要素が存在しないときに空欄を返す関数である。また、α(A)=α0G0(A)であり、α(A)は既知のDPの基本尺度である。
【0058】
ファーガソン(Ferguson、1973)は、G~DP(α0,G0)から抽出された繰り返し独立同分布のサンプルx1:N={x1,...,xN}の事後分布の重要な特性を証明した。
ここで、G0から独立して取り出される無数の無限集合の原子元(atoms)φ={φ1,φ2,...}を考える。また、ci∈Nを、次式(3)の条件付き確率でシーケンシャルドローによって生成されるサンプルxiの原子元の割り当てとする。
【0059】
【0060】
式(3)において、nkはk番目の原子元がc1:Nに現れる回数であり、Kはc1:Nの異なる原子元の数である。割当てc1:Nが与えられると、xN+1∈Xの予測分布は次式(4)のように表される。
【0061】
【0062】
基準分布は、異なる原子元(φ1=”fen ditton”、φ2=”new chesterton”、φ3=”fen ditton”など)に対して同じ値を生成する可能性がある。ciは、各フレーズ(i番目のデータ点xi)へ、どの原子元を割り当てたかを示す変数である。xi=”fen ditton”のとき、ciは1または3になる。上述したの事後分布は原子元nkの周波数に依存し、それ自体の周波数θには依存しない。また、原子元と代入cは、実行時に決定される潜在変数である。
【0063】
次に、個別スロットモデルについて説明する。
まず、個々のスロットの分布をpi(si)~DP(α0
i、G0
i)として定式化する。ここでG0
iはフレーズVの集合に対する基準分布である。
なお、s、p、α0、G0それぞれの添え字iは、スロットのタイプを表す。スロットのタイプは、例文において「type」、「area」、「food」などである。
ここで、G0
iを、次式(5)のように2段階生成からなる生成モデルとして定義する。1段階目がカテゴリ分布を用いたフレーズ長0≦LiLmaxの生成であり、2段階目がnグラムモデルを用いた文字列s1:Liの生成である。
【0064】
【0065】
式(5)において、λiおよびηiは、それぞれスロットのsiのカテゴリ分布およびnグラムモデルのパラメータである。また、式(5)において、Categorical()は、カテゴリ分布を表す。
また、ZhaiとBoydgraber(2013)によって報告されたように、この長さの明示的なモデリングは、短いフレーズへの偏りを回避し、より良い分布につながる。
ここで、G0
iを次式(6)のように、これらのモデルの共同分布として定義する。
【0066】
【0067】
G0
iは、潜在的に、スロット値vsiが発声によって提供されない場合を表すために、Li=0の空フレーズを生成する。したがって、分布pi(si)は当然、Noneの確率を表すことができる。
基準分布は、例えばp(type)の場合、p(restaurant|u)=0.96、p(pub|u)=0.03、p(None|u)=0.01、・・・である。
【0068】
完全なベイジアン方式で各スロットのnグラム特性を扱うために、パラメータλiとηiの事前分布を考慮する。p(λ)はパラメータaをもつLmax次元の対称ディリクレ分布として与えられる。
与えられた文脈p(sι
i|sι-n+1:ι-1
i、ηi)は、Cを越えた単なるカテゴリ分布であるため、各nグラム文脈についてパラメータbを持つ|C|次元対称ディリクレ分布を定義する。スロットiに対してN個のフレーズsiを観測することを考える。
nL
iιを長さιのフレーズの数とし、nγ
ihを文脈sι-n+1:ι-1=γの後に文字sι=hが現れる回数とする。フレーズの予測確率は、次式(7)のように表される。
【0069】
【0070】
次に、スロット値の集合の生成モデルについて説明する。
共同分布p(S)の素朴な定義は、独立性仮定を行うためのすべてのスロット確率の積ΠMS
i=1pi(si)である。しかしながら、スロット値は一般に相互に相関している(Chen等、2015)。
より正確な分布を得るために、スロット値の頻繁な組み合わせを認識する別のDPを使用してp(S)~DP(α1、G2)を作成する。ここでG2はVMSに対する基準分布である。ここで、次式(8)のようにG2に素朴な独立性の仮定を適用する。
【0071】
【0072】
式(8)において、Sの全世代プロセスは、それらの間で原子元を共有する二重DPを含む。この意味で、この生成モデルは階層的ディリクレ過程とみなすことができる。一貫した表記の場合、G1
i(si)=pi(si)およびG3(S)=p(S)とする。
以上をまとめると、階層的ディリクレプロセススロットモデル(HDPSM)を次式(9)の生成プロセスを有する生成モデルとして定義する。
【0073】
【0074】
以上のように、本実施形態では、ディリクレ過程スロットモデルのアルゴリズムを用いて、ディリクレ過程スロットモデルを構築する。さらに、本実施形態では、教師データを用いて学習したモデルに基づいて、与えられた発話に対してスロット部分と非スロット部分の組み合わせが最適になるような確率モデルを推定する。このようにして、構築されたモデルが、
図2~
図4のモデルである。
【0075】
(HDPSMの推論)
本実施形態では、このように構築した確率モデルに対して、動的計画法により可能な全てのスロット推定結果の空間を効率的に探索することで、スロットを推定する。換言すると、本実施形態の手法は、DPSMのパラメータを、教師情報を用いて1パス学習を行い、動的計画法によってスロットの推定を行う。
【0076】
(実験結果)
提案手法の有効性を検証するため実験を行った。その実験結果の例を説明する。
図6は、本実施形態の有用性を確認するために行った計測結果例を示す図である。なお、
図6に示す実験は、英語のデータセットと日本語のデータセットを用いて行った。
【0077】
英語のデータセットの全てを用いて学習を行った後、全てのデータに動的計画法を適用し最適分割を計算、すなわちスロットを推定した。英語のデータセットには、レストラン検索の発話データ(DSTCコーパス)を用いた。スロットの平均数は6つ、発話(フレーズ)は1441、シーケンスの長さ(1つの発話の長さ)の平均値は8.799(単語数)であった。1発話あたりの解析時間は約1.4ms(10回の試行の平均値)であった。
【0078】
また、日本語のデータセットの全てを用いて学習を行った後、全てのデータに動的計画法を適用し最適分割を計算、すなわちスロットを推定した。日本語のデータセットには、天気の問い合わせ発話データ(Weatherコーパス)を用いた。スロットの平均数は3つ、発話(フレーズ)は1442、シーケンスの長さ(1つの発話の長さ)の平均値は11.225(文字数)であった。1発話あたりの解析時間は約1.5ms(10回の試行の平均値)であった。
【0079】
次に、上述した日本語コーパスと英語コーパスそれぞれを用いて、かつ学習に用いるデータの数を変化させて推定精度と実行時間の変化を比較した。比較対象として、系列ラベリング手法である条件付確率場(CRF)によるスロット推定手法と、Bidirectional(双方向) LSTM(Long Short-Term Memory)にCRFを組み合わせて勾配降下法でパラメータの学習を行う深層学習手法(BiLSTM-CRF)、およびCRFの5-bestをDPSMによってリランキングする手法(DPSM Reranking CRF 5-best)を用いた。
【0080】
DPSMはJava(登録商標)で実装し、深層学習手法はPythonのChainer(version 3.3)で実装した。実験に用いたサーバはOSがUbuntu 16.04であり、CPUがXeon(登録商標) E5-2660 2.00GHz(14コア)2基であり、メモリ64GBである。なお、DPSMは並列計算を行わないため、1 コアのみを用いて実行した。また、深層学習手法では、バックプロパゲーションの計算を56スレッドで並列して実行した。
【0081】
図7は、日本語コーパスを用いた場合の各手法のスロットの推定精度を示す図である。
図8は、英語コーパスを用いた場合の各手法のスロットの推定精度を示す図である。
図7と
図8において、横軸は学習データ数(個)であり、縦軸はテストデータの完全一致正答率を表している。なお、縦軸において、1.0は、完全一致正答率が100%である。また、発話内に含まれるスロットの完全一致のみを正解とした。また、
図7は、10分割交差検証を行い、それぞれの学習・テスト分割において、学習データ数を当該の数個に減らして得られた精度の平均を示している。
【0082】
また、
図7と
図8において、符号g201は、条件付確率場(CRF)によるスロット推定手法の評価結果を示している。符号g202は、BiLSTM-CRFによるスロット推定手法の評価結果を示している。符号g203は、CRFの5-bestをDPSMによってリランキングする手法によるスロット推定手法の評価結果を示している。符号g204は、本実施形態によるDPSMと動的計画法を用いたスロット推定手法の評価結果を示している。
【0083】
図7と
図8に示すように、本実施形態の手法は、日本語コーパスと英語コーパスともに深層学習手法(BiLSTM-CRF、符号g202)とほぼ同等の精度を達成できていることが確認できる。特に学習データ数が少ない時には、本実施形態の手法が深層学習手法の精度を上回っており、学習コーパス構築の初期段階から安定した推定を行えることが示唆される。
【0084】
次に、学習時と推論(テスト)時の実行時間の比較を説明する。
図9は、日本語コーパスと英語コーパスにおける学習の実行時間の比較結果を示す図である。符号g300のグラフは、日本語コーパスにおける学習の実行時間の比較結果である。符号g310のグラフは、英語コーパスにおける学習の実行時間の比較結果である。符号g300とg310のグラフにおいて、横軸は学習データ数であり、縦軸は実行時間(秒)である。また、符号g301とg311は、比較例のBiLSTM-CRFによるスロット推定手法の評価結果を示している。また、符号g302とg312は、本実施形態によるDPSMと動的計画法を用いたスロット推定手法の評価結果を示している。
図9に示すように、学習データの件数が増加すると比較例のBiLSTM-CRFによる手法の実行時間は、非常に大きくなっている。なお、本実施形態の手法では、学習データ数が1296個でも学習に要した時間は数秒であった。このように、本実施形態の手法は、非常に高速に実行できることが分かる。なお、実験では深層学習にGPU(Graphics Processing Unit;グラフィックス・プロセッシング・ユニット)は用いていない。
【0085】
図10は、日本語コーパスと英語コーパスにおけるスロット推定精度の比較を示す図である。符号g350のグラフは、日本語コーパスにおける学習の実行時間の比較結果である。符号g360のグラフは、英語コーパスにおける学習の実行時間の比較結果である。符号g350とg360のグラフにおいて、横軸はデータ数であり、縦軸は実行時間(秒)である。また、符号g351とg361は、比較例のBiLSTM-CRFによるスロット推定手法の評価結果を示している。また、符号g352とg362は、本実施形態によるDPSMと動的計画法を用いたスロット推定手法の評価結果を示している。
図10に示すように、データの量は推低の実行時間に大きな影響を与えないことがわかる。しかしながら、推定に要する実行時間を見ると本実施形態の手法の方が比較例のBiLSTM-CRFによるスロット推定手法より高速に動作している。
【0086】
次に、学習時と推論(テスト)時の消費メモリ量の比較を説明する。
図11は、日本語コーパスと英語コーパスにおける学習の消費メモリ量の比較結果を示す図である。符号g400のグラフは、日本語コーパスにおける学習の消費メモリ量の比較結果である。符号g410のグラフは、英語コーパスにおける学習の消費メモリ量の比較結果である。符号g400とg410のグラフにおいて、横軸は学習データ数であり、縦軸は実行時間(秒)である。また、符号g401とg411は、比較例のBiLSTM-CRFによるスロット推定手法の評価結果を示している。また、符号g402とg412は、本実施形態によるDPSMと動的計画法を用いたスロット推定手法の評価結果を示している。
図11に示すように、本実施形態の手法は、比較例のBiLSTM-CRFと比較して圧倒的に少ないメモリ消費量で学習を行うことができる.
【0087】
図12は、日本語コーパスと英語コーパスにおけるスロット推定時の消費メモリ量の比較を示す図である。符号g450のグラフは、日本語コーパスにおけるスロット推定時の消費メモリ量の比較結果である。符号g460のグラフは、英語コーパスにおけるスロット推定時の消費メモリ量の比較結果である。符号g450とg460のグラフにおいて、横軸はデータ数であり、縦軸は実行時間(秒)である。また、符号g451とg461は、比較例のBiLSTM-CRFによるスロット推定手法の評価結果を示している。また、符号g452とg462は、本実施形態によるDPSMと動的計画法を用いたスロット推定手法の評価結果を示している。
図12に示すように、学習時と同様に本実施形態の手法の消費メモリ量は、推論時にも非常に小さい。
図11と
図12に示したように、学習時と推定時のいずれでも本実施形態の手法の消費メモリ量は数MB程度であり、100MB以上を必要とする比較例の深層学習手法と比較して圧倒的に少ないメモリ量で動作する。これは、車載端末や携帯端末での利用を考えた時には、非常に有用な特性であるといえる。
【0088】
以上のように、本実施形態におけるDPSMの動的計画法による推論手法は、任意の文字列をスロット値として抽出可能でありながら、スロット値の確率分布を直接捉えることで、高い精度でスロット推定を行える。また、実験結果より、本実施形態の手法は、深層学習手法と比較しても同等以上の精度でありながら、高速かつ省メモリであり、クラウド上のサーバ等との通信を必要としないオフラインな、学習およびスロット推定にも対応できる。
【0089】
ここで、学習データを持続的に増やしていくような枠組みを考えると、深層学習のアプローチではモデルの更新が追いつかなくなる懸念がある。本実施形態の手法のパラメータ学習は、1パスで行うことから、学習データの追加に対しては追加分の計算コストしかかからない。このため、本実施形態の手法は、ユーザの教示情報を即時的に推定結果に反映させるような運用も可能である。
【0090】
なお、本発明における言語理解装置3の機能の全てまたは一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより言語理解装置3が行う処理の全てまたは一部を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものを含んでもよい。
【0091】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0092】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形および置換を加えることができる。
【符号の説明】
【0093】
1…対話システム、21…音声部、22…テキスト部、3…言語理解装置、4…DB、5…行動生成部、6…出力部、31…取得部、32…音声認識部、33…意図理解部、34…出力部、term,beg,sdj…ノード