(57)【要約】  対話装置１００は、ユーザの対話行為に対して応答を行なう装置である。対話装置１００は、ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、応答候補の１つを、対話装置１００の対話行為として選択する、方策部４０と、特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、対話の状態における報酬を求め、求めた報酬に基づいて、方策パラメータを更新する、方策パラメータ更新部６０と、を備えている。
2018167830.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの対話行為に対して応答を行なう装置であって、
前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、当該装置の対話行為として選択する、方策部と、
特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、方策パラメータ更新部と、
を備えていることを特徴とする対話装置。
【請求項２】
前記方策部が、前記対話の状態と、前記応答候補の集合に含まれる応答候補とを、それぞれが含む論理式の構造に基づいて、ベクトルに符号化し、符号化後の前記対話の状態と符号化後の前記応答候補とを用いて、前記スコアを設定する、
請求項１に記載の対話装置。
【請求項３】
前記方策パラメータ更新部が、前記対話の状態を、それが含む論理式の構造に基づいて、ベクトルに符号化し、符号化後の前記対話の状態と、求めた前記報酬とを用いて、強化学習処理を実行して、前記方策パラメータを更新する、
請求項１または２に記載の対話装置。
【請求項４】
ユーザの対話行為の入力を受け付ける、入力受付部と、
受け付けられた対話行為と、予め保持されている知識と、過去に当該装置から出力された対話行為とに基づいて、前記ユーザとの間で行なわれている対話の状態を更新する、対話状態更新部と、
更新された前記対話の状態に、予め設定されている対話の取り決めを適用して、前記応答候補の集合を生成する、応答候補生成部と、
を更に備えている、請求項１〜３のいずれかに記載の対話装置。
【請求項５】
ユーザの対話行為に対して応答を行なうための方法であって、
（ａ）前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、当該装置の対話行為として選択する、ステップと、
（ｂ）特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、ステップと、
を有することを特徴とする対話方法。
【請求項６】
コンピュータに、ユーザの対話行為に対して応答を行なわせるための、プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
（ａ）前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、当該装置の対話行為として選択する、ステップと、
（ｂ）特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、ステップと、
を実行させる命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザと議論を行って、与えられた問いに対する答えを出力する、対話装置、及び対話方法に関し、更には、これらを実現するためのプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
一般に、審理対話（Inquiry dialog）とは、共通の疑問又は問題を持つ当事者達がそれに答えるために互いに対話である。そして、審理対話システム（Inquiry dialog system）は、ユーザとの間で審理対話を行う機能を備えたシステムである。【０００３】
従来の審理対話システムの一例が非特許文献１に開示されている。図１５は、従来からの審理対話システムの一例を示すブロック図である。図１５に示すように、この従来の審理対話システム２００は、入力受付部２１０と、対話状態更新部２２０、応答候補生成部２３０と、方策部２４０と、出力部２５０と、知識記録部２６０とから構成されている。【０００４】
このような構成を有する従来の審理対話システム２００はつぎのように動作する。すなわち、従来の審理対話システム２００は、外部からユーザの対話行為を受け取り、それに基づいて内部処理を進め、外部にシステムの対話行為を出力する。【０００５】
具体的な手順を述べると、まず、入力受付部２１０は、ユーザの対話行為を外部から受け取り、それを対話状態更新部２２０へ引き渡す。そして、対話状態更新部２２０は、入力部２１０からユーザの対話行為を受け取ると、知識記録部２６０に格納している知識と過去に方策部２４０が出力したシステムの対話行為とに基づいて、対話状態を更新し、更新した対話状態を応答候補生成部２３０に引き渡す。【０００６】
応答候補生成部２３０は、対話状態更新部２２０から受け取った対話状態を基に、システムの対話行為集合を出力する、そして、方策部２４０は、応答候補生成部２３０から受け取ったシステムの対話行為集合を基に、システムとして出力すべき対話行為を出力する。なお、従来の審理対話システムの方策部は、予め人が定めた静的な規則に従って、システムの対話行為集合から、システムとして出力すべき対話行為を選択している。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Black, Elizabeth, and Anthony Hunter. “A generative inquiry dialogue system.” Proceedings of the 6th international joint conference on Autonomous agents and multiagent system. ACM, 2007.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記非特許文献１に開示された審理対話システムにおいては、方策部は、予め人が定めた静的な規則に基づいて動作しているため、方策部の挙動を、システムが動作する状況に適応させることが出来ないという問題がある。この問題について以下に具体的に説明する。【０００９】
審理対話システムが動作する状況は多様である。例えば、審理対話システムを利用するユーザのタイプ、及び審理対話システムが達成すべき目標は必ずしも一つに定まらない。そのため、審理対話システムが様々な状況に適応できることは実用上有用である。【００１０】
しかしながら、上記非特許文献１に開示された審理対話システムでは、方策部で用いられる規則は、設計者である人が、特定の状況で効果的に動作することを想定して、予め用意したものであり、設計者が想定していない新しい状況に適応するものではない。なお、多様な状況を網羅できるように規則を人手で作成することも考えられるが、それは一般的に、開発期間及び費用の観点において、困難である。【００１１】
（発明の目的）
本発明の目的は、上記問題を解消し、動作状況に合わせた方策の作成に適応し得る、対話装置、対話方法、及びコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明の一側面における対話装置は、ユーザの対話行為に対して応答を行なう装置であって、
前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、当該装置の対話行為として選択する、方策部と、
特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、方策パラメータ更新部と、
を備えていることを特徴とする。【００１３】
また、上記目的を達成するため、本発明の一側面における対話方法は、ユーザの対話行為に対して応答を行なうための方法であって、
（ａ）前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、当該装置の対話行為として選択する、ステップと、
（ｂ）特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、ステップと、
を有することを特徴とする。【００１４】
更に、上記目的を達成するため、本発明の一側面におけるコンピュータ読み取り可能な記録媒体は、コンピュータに、ユーザの対話行為に対して応答を行なわせるための、プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
（ａ）前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、当該装置の対話行為として選択する、ステップと、
（ｂ）特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、ステップと、
を実行させる命令を含む、プログラムを記録していることを特徴とする。
【発明の効果】
【００１５】
以上のように本発明によれば、動作状況に合わせた方策の作成に適応することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の実施の形態における対話装置の概略構成を示すブロック図である。
【図２】図２は、本発明の実施の形態における対話装置の具体的構成を示すブロック図である。
【図３】図３は、本発明の実施の形態における対話装置の動作を示すフロー図である。
【図４】図４は、図３に示すステップＳ１０１の処理の内容の一例を示す図である。
【図５】図５は、図３に示すステップＳ１０２の処理の内容の一例を具体的に示す図である。
【図６】図６は、図３に示すステップＳ１０３の処理の内容の一例を示す図である。
【図７】図７は、図３に示すステップＳ１０４の処理の内容の一例を示す図である。
【図８】図８は、図３に示すステップＳ１０５の処理内容の一例を示す図である。
【図９】図９は、図３に示すステップＳ１０４で用いられるスコアリング関数の一例を示す図である。
【図１０】図１０は、図９に示した関数EmbDsの実装例を示す図である。
【図１１】図１１は、図９に示した関数EmbDaの実装例を示す図である。
【図１２】図１２は、図１０及び図１１に示した関数EmbFの実装例を示す図である。
【図１３】図１３は、本発明の実施の形態の具体例で行なわれた評価の結果を示す図である。
【図１４】図１４は、本発明の実施の形態における対話装置を実現するコンピュータの一例を示すブロック図である。
【図１５】図１５は、従来からの審理対話システムの一例を示すブロック図である。
【発明を実施するための形態】
【００１７】
（実施の形態）
以下、本発明の実施の形態における、対話装置、対話方法、及びプログラムについて、図１〜図１４を参照しながら説明する。
【００１８】
［装置構成］
最初に、本実施の形態における対話装置の構成について説明する。図１は、本発明の実施の形態における対話装置の概略構成を示すブロック図である。
【００１９】
図１に示す、本実施の形態における対話装置１００は、ユーザの対話行為に対して応答を行なう装置である。図１に示すように、対話装置１００は、方策部４０と、方策パラメータ更新部６０とを備えている。
【００２０】
方策部４０は、まず、ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定する。続いて、方策部４０は、設定したスコアを参照して、応答候補の１つを、対話装置１００の対話行為として選択する。
【００２１】
方策パラメータ更新部６０は、まず、特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、ユーザとの間で行なわれている対話の状態における報酬を求める。続いて、方策パラメータ更新部６０は、求めた報酬に基づいて、方策パラメータを更新する。
【００２２】
このように、本実施の形態では、装置の対話行為を選択するための方策パラメータが、方策パラメータ更新部６０によって、特定の状況に適応するように更新される。このため、本実施の形態によれば、動作状況に合わせた方策の作成に適応することができる。
【００２３】
続いて、図２を用いて、本実施の形態における対話装置１００の構成についてより具体的に説明する。図２は、本発明の実施の形態における対話装置の具体的構成を示すブロック図である。
【００２４】
図２に示すように、本実施の形態では、対話装置１００は、方策部４０及び方策パラメータ更新部６０に加えて、入力受付部１０と、対話状態更新部２０と、応答候補生成部３０と、出力部５０と、知識記録部７０と、報酬関数記録部８０と、方策パラメータ記録部９０とを備えている。
【００２５】
入力受付部１０は、外部から、ユーザの対話行為（後述の図４参照）の入力を受け付ける。また、入力受付部１０は、受け付けた対話行為を対話状態更新部２０に引き渡す。
【００２６】
対話状態更新部２０は、入力受付部１０で受け付けられたユーザの対話行為と、予め保持されている知識と、過去に対話装置１００の方策部４０から出力された対話行為とに基づいて、ユーザとの間で行なわれてる対話の状態（以下「対話状態」と表記する）を更新する。そして、対話状態更新部２０は、更新した対話状態を、応答候補生成部３０、方策部４０、及び方策パラメータ更新部６０に引き渡す。また、対話状態更新部２０が用いる知識は、本実施の形態では、知識記録部７０に格納されている（後述の図５参照）。
【００２７】
応答候補生成部３０は、対話状態更新部２０から受け取った更新後の対話状態に、予め設定されている対話の取り決めを適用して、応答候補の集合を生成する。また、生成された応答候補は、対話装置１００の対話行為となる。従って、以下においては、応答候補の集合を「対話行為集合」と表記することもある。対話の取り決めとしては、例えば、上記非特許文献１に開示されている審理対話プロトコルが挙げられる。
【００２８】
方策部４０は、本実施の形態では、応答候補生成部３０によって更新された対話状態を用いて処理を行なう。また、方策部４０は、更新後の対話状態を、それが含む論理式の構造に基づいて、ベクトルに符号化する。更に、方策部４０は、応答候補の集合に含まれる各応答候補が含む対話行為についても、各応答候補の対話行為が含む論理式の構造に基づいて、ベクトルに符号化する。そして、方策部４０は、方策パラメータと、符号化後の対話状態と、符号化後の対話行為とを、スコアリング関数に適用して、スコアを設定する。なお、符号化及びスコアリング関数については後述する。
【００２９】
そして、方策部４０は、スコアが最大値を持つ応答候補を選択し、選択した応答候補を、対話装置１００の対話行為として選択する。また、方策部４０は、選択した対話行為を、出力部５０に渡す。出力部５０は、受け取った対話行為を、表示装置、ユーザの端末装置等に出力する。
【００３０】
方策パラメータは、方策パラメータ記録部９０に格納されている。また、本実施の形態で用いられる方策パラメータとしては、方策部４０でスコアリングに利用されるパラメトリックなスコアリング関数のパラメータ、及び方策部４０で対話状態と対話行為の符号化に利用されるパラメトリック関数のパラメータが挙げられる。具体的には、方策パラメータとしては、例えば上記パラメトリックな関数としてニューラルネットワーク（下記の参照文献）を利用した場合、ニューラルネットワークの重みが挙げられる。
（参照文献）Bishop, Christopher M. "Pattern recognition." Machine Learning 128 (2006): 1-58.
【００３１】
方策パラメータ更新部６０は、本実施の形態では、方策パラメータ記録部９０に格納されている方策パラメータを更新する。また、方策パラメータ更新部６０は、本実施の形態では、対話状態更新部２０によって更新された対話状態を、それが含む論理式の構造に基づいて、ベクトルに符号化する。その後、方策パラメータ更新部６０は、符号化後の対話の状態と、報酬関数から求めた報酬とを用いて、強化学習処理を実行して、方策パラメータを更新する。なお、報酬関数及び強化学習処理については後述する。
【００３２】
このように、本実施の形態では、対話装置１００は、報酬関数が定める数値が最大化するように方策パラメータを更新させており、報酬関数と方策パラメータとを相互に作用させる。このため、方策部４０における振る舞いの適応が実現される。
【００３３】
［装置動作］
次に、本発明の実施の形態における対話装置１００の動作について図３を用いて説明する。図３は、本発明の実施の形態における対話装置の動作を示すフロー図である。以下の説明においては、適宜図１及び図２を参酌する。また、本実施の形態では、対話装置１００を動作させることによって、対話方法が実施される。よって、本実施の形態における対話方法の説明は、以下の対話装置１００の動作説明に代える。
【００３４】
図３に示すように、最初に、入力受付部１０が、ユーザの対話行為の入力を受け付ける（ステップＳ１０１）。入力は、キーボード等の入力装置、他の端末装置等を介して行なわれる。
【００３５】
次に、対話状態更新部２０が、ステップＳ１０１で受け付けられたユーザの対話行為を入力として、知識記録部７０に記録されている知識と過去に対話装置１００の方策部４０から出力された対話行為とに基づいて、対話状態を更新する（ステップＳ１０２）。また、対話状態更新部２０は、更新した対話状態を、応答候補生成部３０、方策部４０、及び方策パラメータ更新部６０に出力する。
【００３６】
次に、応答候補生成部３０は、更新された対話状態を入力として、予め設定されている対話の取り決めを適用して、その対話状態における応答候補の集合（対話装置１００の対話行為集合）を生成する（ステップＳ１０３）。
【００３７】
また、ステップＳ１０３の処理と並列に、方策パラメータ更新部６０は、ステップＳ１０２で更新された対話状態を入力として、報酬関数を用いて報償を求め、求めた報償に基づいて、方策パラメータを更新する（ステップＳ１０５）。
【００３８】
次に、方策部４０は、ステップＳ１０２で更新された対話状態と、ステップＳ１０３で生成された対話装置１００の対話行為集合とを入力とし、更に、ステップＳ１０５で更新された方策パラメータを参照して、対話行為集合に含まれる応答候補にスコアを設定する。そして、方策部４０は、設定したスコアが最大となる応答候補を、対話行為として選択する（ステップＳ１０４）。選択された対話行為は、出力部５０によって出力される。
【００３９】
その後、方策部４０は、これらの一連の処理の実行回数（ループ回数）が、指定された回数以上であるかどうかを判定する（ステップＳ１０６）。判定の結果、指定回数に達していない場合は、再度ステップＳ１０１が実行され、指定回数以上である場合は、対話装置１００における処理は終了する。
【００４０】
［実施の形態における効果］
以上のように本実施の形態では、方策パラメータ更新部６０が、特定の状況に適応するように方策パラメータを更新し、方策部４０が、更新した方策パラメータに基づいて、適切な対話行為を選択する。このため、本実施の形態によれば、動作状況に合わせて、方策部４０の挙動を最適化でき、結果、最適な方策が作成される。
【００４１】
［具体例］
続いて、本実施の形態における具体例を図４〜図１３を用いて説明する。また、以下においては、図３に示したステップＳ１０１〜Ｓ１０５に沿って説明する。
【００４２】
［ステップＳ１０１］
図４は、図３に示すステップＳ１０１の処理の内容の一例を示す図である。具体例として、図４に示すように、入力受付部１０が、ユーザの対話行為として「Assert({価格提案(E1, X, Z)}, 価格提案(E1,X,Z)∧A社(X))」を受け付ける場合を考える。
【００４３】
図４に示す対話行為は、ユーザの「A社はどこかに価格提案を行っていました」という主張を抽象的に表している。入力受付部１０は、このような対話行為を受け付け、これを対話状態更新部２０に出力する。なお、ユーザの対話行為の仕様は、上記非特許文献１で定義される。
【００４４】
［ステップＳ１０２］
図５は、図３に示すステップＳ１０２の処理の内容の一例を具体的に示す図である。具体例として、図５に示すように、対話状態更新部２０は、図３に示されたユーザの対話行為を入力として受け付け、知識記録部７０を参照する場合を考える。
【００４５】
対話状態更新部２０は、知識記録部７０に記録されている知識と、入力が受け付けられたユーザの対話行為とに基づいて、対話状態を更新する。図５の例では、破線で記された部分が更新された箇所である。対話状態更新部２０は、知識記録部７０を参照して対話状態中の「システムの知識」を更新し、またユーザの対話行為を用いて「発話履歴」を更新している。なお、詳細な対話状態の取り決めについては、上記非特許文献１で定義される。
【００４６】
このように対話状態更新部２０は、対話状態を更新して、更新した対話状態を、方策部４０と、方策パラメータ更新部６０と、応答候補生成部３０とに出力する。
【００４７】
［ステップＳ１０３］
図６は、図３に示すステップＳ１０３の処理の内容の一例を示す図である。具体例として、図６に示すように、応答候補生成部３０が、図５に示した対話状態を受け付ける場合を考える。応答候補生成部３０は、予め設定されている対話の取り決めとして、審理対話プロトコルを用い、それに基づいて対話状態に応じた対話装置１００の対話行為集合を生成する。
【００４８】
図６の例では、応答候補生成部３０は、まず、審理対話プロトコルの「Ωは発話履歴に含まれる最も直近のOpenに含まれる引数である」を参照する。そして、応答候補生成部３０は、対話状態の「発話履歴」にも直近のOpenの引数「A社(x)∧価格提案(e1, x)∧Ｂ社(y)∧同意(e2, y, e1)->カルテル(e3, x, y)」を持つCloseを、対話装置１００の対話行為集合に含めている。なお、審理対話プロトコルに関する詳細な説明は、上記非特許文献１に開示されている。
【００４９】
［ステップＳ１０４］
図７は、図３に示すステップＳ１０４の処理の内容の一例を示す図である。具体例として、図７に示すように、方策部４０が、図６に示した対話状態と対話装置１００の対話行為集合とを受け取り、図６に示した方策パラメータを参照する場合を考える。適応的方策部４０は、方策パラメータと対話状態とに基づいて、対話行為をスコアリングし、そのスコアが最大の対話行為を出力する。
【００５０】
図７の例では、方策部４０は、対話行為「Assert({(B社(Y), 価格提案(E2, Y, E))}, B社(Y)∧価格提案(E2, Y, E))」(lm1)に「1」、対話行為「Assert(根拠, カルテル(E3, X, Y)」(lm2)に「0.5」をスコアリングしている。また、方策部４０は、対話行為「Close(A社(x)∧価格提案(e1, x)∧Ｂ社(y)∧同意(e2, y, e1)->カルテル(e3, x, y)」(lm3)に「0」をスコアリングしている。
【００５１】
この場合、対話行為「Assert({(B社(Y), 価格提案(E2, Y, E))}, B社(Y)∧価格提案(E2, Y, E))」(lm1)のスコアが最大である。従って、方策部４０は、対話行為「Assert({(B社(Y), 価格提案(E2, Y, E))}, B社(Y)∧価格提案(E2, Y, E))」(lm1)を、対話装置１００の対話行為として選択する。
【００５２】
また、対話装置１００の対話行為の選択において、対話状態と対話行為集合に含まれている応答候補（対話行為）とは、数値ベクトルに符号化され、そのベクトルと、方策パラメータと、スコアリング関数fとを用いてスコアリングが実施される。このスコアリングで用いられるスコアリング関数fと符号化（EmbDa, EmbDs）との具体例については後述する。
【００５３】
［ステップＳ１０５］
図８は、図３に示すステップＳ１０５の処理内容の一例を示す図である。具体例として、図８に示すように、方策パラメータ更新部６０が、対話状態を受け取り、報酬関数を参照して強化学習を行なう場合を考える。方策パラメータ更新部６０は、対話状態を表すベクトルと、方策パラメータと、報酬関数から得られた報酬とを用いて強化学習を実施することで、方策パラメータWの更新を行う。
【００５４】
具体的には、方策パラメータ更新部６０は、ある時点での対話状態と、その１ターン前の対話状態とを保存しておき、それらを後述の方法に基づいてベクトルに符号化する。また、方策パラメータ更新部６０は、報酬関数を参照して、報酬を求める。図８の例では、報酬関数としては、対話状態に応じて２種類の報酬のうちの一つを返す関数が用いられている。図８の例では、対話状態は「カルテルに言及しているAssertが発話履歴に存在する場合」という条件にあてはまらないため、「−１」の報酬が返される。
【００５５】
また、図８の例では、方策パラメータ更新部６０は、強化学習処理のアルゴリズムとして、特にDeep Q-Networkを用いて、方策パラメータWの更新を行う。Deep Q-Networkの技術的詳細は、下記の参照文献１に開示されている。
（参照文献１）Mnih, Volodymyr, et al. "Human-level control through deep reinforcement learning." Nature 518.7540 (2015): 529-533.
【００５６】
ところで、上述のステップＳ１０４とＳ１０５との具体例では、対話状態と対話行為（応答候補）とがベクトルに符号化され、スコアリング関数を用いてスコアリングが行なわれている。ここで、これらの処理について、図９〜図１２を用いて具体例を挙げて説明する。
【００５７】
図９は、図３に示すステップＳ１０４で用いられるスコアリング関数の一例を示す図である。図９において、左側の四角形のノードはデータを表している。矢印はデータのフローを表している。sは対話状態、lmは対話行為、「スコア」は対話行為のスコアである。
【００５８】
また、図９において、角が丸い四角形のノードは関数を表す。「EmbDs」は対話状態を符号化する関数である。また、「EmbDa」は対話行為を符号化する関数である。「f」はスコアリング関数である。「｜｜」はベクトルの結合を行う関数である。「Linear（線形関数）」は入力ベクトルの各要素の重み付き線形和を返す関数である。
【００５９】
図１０は、図９に示した関数EmbDsの実装例を示す図である。図１０に示すように、関数EmbDsは、対話状態sを入力として受付け、そのベクトル表現vsを返す。図１０において、四角形のノードはデータを表し、角が丸い四角形のノードは関数を表している。また、対話状態sは、コミットメントストアCSと、システムの知識Σと、クエリストアQSとで表される。これらは論理式のリストとして表される。
【００６０】
図１０において、「Sum.」は、入力ベクトルの要素毎の総和を返す関数である。「｜｜」は入力ベクトルの結合を返す関数である。また、「EmbF」は論理式の抽象構文木Tfに対応するベクトルを返す関数である。EmbFと論理式の抽象構文木との詳細については後述する。
【００６１】
図１１は、図９に示した関数EmbDaの実装例を示す図である。図１１に示すように、関数EmbDaは、対話行為lmを入力として受付け、そのベクトル表現vlmを返す。図１１において、四角形のノードはデータを表し、角が丸い四角形のノードは関数を表している。また、図１１に示された各ノードは、図１０の例と同様である。
【００６２】
図１２は、図１０及び図１１に示した関数EmbFの実装例を示す図である。図１２の例では、論理式「A(x)∧B(y) -> Competitor(x, y)」に対応するベクトルが求められている。論理式ｆに対応する抽象構文木Tfでは、枝は論理演算子、述語のいずれかに該当する。また葉は述語の引数を表す。VfはTfに対応するベクトル表現である。この抽象構文木に対応するベクトルを求める処理は、以下の参照文献２に開示されたRecursive Neural Networkに従って行なわれる。
（参照文献２）Socher, Richard, et al. "Parsing natural scenes and natural language with recursive neural networks." Proceedings of the 28th international conference on machine learning (ICML-11). 2011.
【００６３】
（評価）
続いて、上述の具体例に従って適応させた方策（DQNwE-5d）と、上記非特許文献１で提案された方策（Baseline）とのそれぞれに従って、審理対話を行なった場合の性能評価を行った。Baselineは非特許文献１の著者が作成した静的な規則に従う。性能評価の実験として、「会社間のメールのやり取りからコンプライアンス違反」が成立したか否か推定する審理対話ドメインを想定し、各方策とユーザとの対話シミュレーションを行った。
【００６４】
性能評価は２０ターン内でのタスク達成率（方策が特定の対話行為を出力できた割合; Success Rate）を用いて評価する。この性能評価では、出来る限り短いターンでタスクを達成できる方策ほど優れたものとする。
【００６５】
タスク達成率の算出のために、知識記録部７０に格納される知識の初期値が異なる2000対話が実施された。Baselineはタスクを達成するという目標のみに焦点を当てて作成されており、出来る限り短いターンでタスクを達成するという目標は考慮されていない。従って、本発明を用いて適応した方策（DQNwE-5d）は、Baselineよりも短いターンで一定のタスク達成率を実現すると期待できる。次の段落では、図１３を用いて、その結果について述べる。
【００６６】
図１３は、本発明の実施の形態の具体例で行なわれた評価の結果を示す図である。図１３に示すように、評価結果より、本具体例を用いて適応した方策（DQNwE-5d）は、Baselineよりも短いターンで一定のタスク達成率を到達できたことがわかる。従って、本具体例に基づいて生成された方策は、予め人手で考慮した静的な規則に従う方策よりも、対話装置がおかれた状況に適応できることが示唆される。
【００６７】
［プログラム］
本発明の実施の形態におけるプログラムは、コンピュータに、図３に示すステップＳ１０１〜Ｓ１０６を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における対話装置１００と対話方法とを実現することができる。この場合、コンピュータのＣＰＵ（Central Processing Unit）は、入力受付部１０、対話状態更新部２０、応答候補生成部３０、方策部４０、出力部５０、及び方策パラメータ更新部６０として機能し、処理を行なう。
【００６８】
また、本実施の形態では、知識記録部７０、報酬関数記録部８０、及び方策パラメータ記録部９０は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって、又はこのデータファイルが格納された記録媒体をコンピュータと接続された読取装置に搭載することによって実現されている。
【００６９】
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、入力受付部１０、対話状態更新部２０、応答候補生成部３０、方策部４０、出力部５０、及び方策パラメータ更新部６０のいずれかとして機能しても良い。また、知識記録部７０、報酬関数記録部８０、及び方策パラメータ記録部９０は、本実施の形態におけるプログラムを実行するコンピュータとは別のコンピュータ上に構築されていても良い。
【００７０】
ここで、本実施の形態におけるプログラムを実行することによって、対話装置１００を実現するコンピュータについて図１４を用いて説明する。図１４は、本発明の実施の形態における対話装置を実現するコンピュータの一例を示すブロック図である。
【００７１】
図１４に示すように、コンピュータ１１０は、ＣＰＵ１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【００７２】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【００７３】
また、記憶装置１１３の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【００７４】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【００７５】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記録媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記録媒体が挙げられる。
【００７６】
なお、本実施の形態における対話装置１００は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、対話装置１００は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【００７７】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１２）によって表現することができるが、以下の記載に限定されるものではない。
【００７８】
（付記１）
ユーザの対話行為に対して応答を行なう装置であって、
前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、当該装置の対話行為として選択する、方策部と、
特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、方策パラメータ更新部と、
を備えていることを特徴とする対話装置。
【００７９】
（付記２）
前記方策部が、前記対話の状態と、前記応答候補の集合に含まれる応答候補とを、それぞれが含む論理式の構造に基づいて、ベクトルに符号化し、符号化後の前記対話の状態と符号化後の前記応答候補とを用いて、前記スコアを設定する、
付記１に記載の対話装置。
【００８０】
（付記３）
前記方策パラメータ更新部が、前記対話の状態を、それが含む論理式の構造に基づいて、ベクトルに符号化し、符号化後の前記対話の状態と、求めた前記報酬とを用いて、強化学習処理を実行して、前記方策パラメータを更新する、
付記１または２に記載の対話装置。
【００８１】
（付記４）
ユーザの対話行為の入力を受け付ける、入力受付部と、
受け付けられた対話行為と、予め保持されている知識と、過去に当該装置から出力された対話行為とに基づいて、前記ユーザとの間で行なわれている対話の状態を更新する、対話状態更新部と、
更新された前記対話の状態に、予め設定されている対話の取り決めを適用して、前記応答候補の集合を生成する、応答候補生成部と、
を更に備えている、付記１〜３のいずれかに記載の対話装置。
【００８２】
（付記５）
ユーザの対話行為に対して応答を行なうための方法であって、
（ａ）前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、当該装置の対話行為として選択する、ステップと、
（ｂ）特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、ステップと、
を有することを特徴とする対話方法。
【００８３】
（付記６）
前記（ａ）のステップにおいて、前記対話の状態と、前記応答候補の集合に含まれる応答候補とを、それぞれが含む論理式の構造に基づいて、ベクトルに符号化し、符号化後の前記対話の状態と符号化後の前記応答候補とを用いて、前記スコアを設定する、
付記５に記載の対話方法。
【００８４】
（付記７）
前記（ｂ）のステップにおいて、前記対話の状態を、それが含む論理式の構造に基づいて、ベクトルに符号化し、符号化後の前記対話の状態と、求めた前記報酬とを用いて、強化学習処理を実行して、前記方策パラメータを更新する、
付記５または６に記載の対話方法。
【００８５】
（付記８）
（ｃ）ユーザの対話行為の入力を受け付ける、ステップと、
（ｄ）受け付けられた対話行為と、予め保持されている知識と、過去に当該装置から出力された対話行為とに基づいて、前記ユーザとの間で行なわれている対話の状態を更新する、ステップと、
（ｅ）更新された前記対話の状態に、予め設定されている対話の取り決めを適用して、前記応答候補の集合を生成する、ステップと、
を更に有する、付記５〜７のいずれかに記載の対話方法。
【００８６】
（付記９）
コンピュータに、ユーザの対話行為に対して応答を行なわせるための、プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
（ａ）前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、当該装置の対話行為として選択する、ステップと、
（ｂ）特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、ステップと、
を実行させる命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。
【００８７】
（付記１０）
前記（ａ）のステップにおいて、前記対話の状態と、前記応答候補の集合に含まれる応答候補とを、それぞれが含む論理式の構造に基づいて、ベクトルに符号化し、符号化後の前記対話の状態と符号化後の前記応答候補とを用いて、前記スコアを設定する、
付記９に記載のコンピュータ読み取り可能な記録媒体。
【００８８】
（付記１１）
前記（ｂ）のステップにおいて、前記対話の状態を、それが含む論理式の構造に基づいて、ベクトルに符号化し、符号化後の前記対話の状態と、求めた前記報酬とを用いて、強化学習処理を実行して、前記方策パラメータを更新する、
付記９または１０に記載のコンピュータ読み取り可能な記録媒体。
【００８９】
（付記１２）
前記プログラムが、前記コンピュータに、
（ｃ）ユーザの対話行為の入力を受け付ける、ステップと、
（ｄ）受け付けられた対話行為と、予め保持されている知識と、過去に当該装置から出力された対話行為とに基づいて、前記ユーザとの間で行なわれている対話の状態を更新する、ステップと、
（ｅ）更新された前記対話の状態に、予め設定されている対話の取り決めを適用して、前記応答候補の集合を生成する、ステップと、
を更に実行させる命令を含む、付記９〜１１のいずれかに記載のコンピュータ読み取り可能な記録媒体。
【００９０】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【００９１】
以上のように、本発明によれば、審理対話システムにおいて、動作状況に合わせた方策の作成に適応することができる。本発明は、ユーザと議論を行い与えられた問いに答えを見つけるシステム、具体的には、情報推薦システム、質問応答システム、セキュリティ分析システム等に有用である。
【符号の説明】
【００９２】
１０    入力受付部
２０    対話状態更新部
３０    応答候補生成部
４０    方策部
５０    出力部
６０    方策パラメータ更新部
７０    知識記録部
８０    報酬関数記録部
９０    方策パラメータ記録部
１００  対話装置
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
2018167830.tif 000003
【図２】
2018167830.tif 000004
【図３】
2018167830.tif 000005
【図４】
2018167830.tif 000006
【図５】
2018167830.tif 000007
【図６】
2018167830.tif 000008
【図７】
2018167830.tif 000009
【図８】
2018167830.tif 000010
【図９】
2018167830.tif 000011
【図１０】
2018167830.tif 000012
【図１１】
2018167830.tif 000013
【図１２】
2018167830.tif 000014
【図１３】
2018167830.tif 000015
【図１４】
2018167830.tif 000016
【図１５】
2018167830.tif 000017
【手続補正書】
【提出日】令和1年9月11日(2019.9.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザの対話行為に対して応答を行なう装置であって、
前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、当該装置の対話行為として選択する、方策部と、
特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、方策パラメータ更新部と、
を備えていることを特徴とする対話装置。
【請求項２】
前記方策部が、前記対話の状態と、前記応答候補の集合に含まれる応答候補とを、それぞれが含む論理式の構造に基づいて、ベクトルに符号化し、符号化後の前記対話の状態と符号化後の前記応答候補とを用いて、前記スコアを設定する、
請求項１に記載の対話装置。
【請求項３】
前記方策パラメータ更新部が、前記対話の状態を、それが含む論理式の構造に基づいて、ベクトルに符号化し、符号化後の前記対話の状態と、求めた前記報酬とを用いて、強化学習処理を実行して、前記方策パラメータを更新する、
請求項１または２に記載の対話装置。
【請求項４】
ユーザの対話行為の入力を受け付ける、入力受付部と、
受け付けられた対話行為と、予め保持されている知識と、過去に当該装置から出力された対話行為とに基づいて、前記ユーザとの間で行なわれている対話の状態を更新する、対話状態更新部と、
更新された前記対話の状態に、予め設定されている対話の取り決めを適用して、前記応答候補の集合を生成する、応答候補生成部と、
を更に備えている、請求項１〜３のいずれかに記載の対話装置。
【請求項５】
ユーザの対話行為に対して応答を行なうための方法であって、
（ａ）前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、対話行為として選択する、ステップと、
（ｂ）特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、ステップと、
を有することを特徴とする対話方法。
【請求項６】
コンピュータに、ユーザの対話行為に対して応答を行なわせるための、プログラムであって、
前記コンピュータに、
（ａ）前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、対話行為として選択する、ステップと、
（ｂ）特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、ステップと、
を実行させる、プログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、ユーザと議論を行って、与えられた問いに対する答えを出力する、対話装置、及び対話方法に関し、更には、これらを実現するためのプログラムに関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
（発明の目的）
本発明の目的は、上記問題を解消し、動作状況に合わせた方策の作成に適応し得る、対話装置、対話方法、及びプログラムを提供することにある。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
また、上記目的を達成するため、本発明の一側面における対話方法は、ユーザの対話行為に対して応答を行なうための方法であって、
（ａ）前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、対話行為として選択する、ステップと、
（ｂ）特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、ステップと、
を有することを特徴とする。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータに、ユーザの対話行為に対して応答を行なわせるための、プログラムであって、
前記コンピュータに、
（ａ）前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、対話行為として選択する、ステップと、
（ｂ）特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、ステップと、
を実行させる、ことを特徴とする。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００８２
【補正方法】変更
【補正の内容】
【００８２】
（付記５）
ユーザの対話行為に対して応答を行なうための方法であって、
（ａ）前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、対話行為として選択する、ステップと、
（ｂ）特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、ステップと、
を有することを特徴とする対話方法。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００８６
【補正方法】変更
【補正の内容】
【００８６】
（付記９）
コンピュータに、ユーザの対話行為に対して応答を行なわせるための、プログラムであって、
前記コンピュータに、
（ａ）前記ユーザとの間で行なわれている対話の状態と、方策パラメータとに基づいて、応答候補の集合に含まれる応答候補それぞれにスコアを設定し、設定したスコアを参照して、前記応答候補の１つを、対話行為として選択する、ステップと、
（ｂ）特定の状況で行なわれた振る舞いの評価を、報酬として、定量的に表した数値で返す報酬関数を用いて、前記対話の状態における報酬を求め、求めた前記報酬に基づいて、前記方策パラメータを更新する、ステップと、
を実行させる、プログラム。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００８７
【補正方法】変更
【補正の内容】
【００８７】
（付記１０）
前記（ａ）のステップにおいて、前記対話の状態と、前記応答候補の集合に含まれる応答候補とを、それぞれが含む論理式の構造に基づいて、ベクトルに符号化し、符号化後の前記対話の状態と符号化後の前記応答候補とを用いて、前記スコアを設定する、
付記９に記載のプログラム。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００８８
【補正方法】変更
【補正の内容】
【００８８】
（付記１１）
前記（ｂ）のステップにおいて、前記対話の状態を、それが含む論理式の構造に基づいて、ベクトルに符号化し、符号化後の前記対話の状態と、求めた前記報酬とを用いて、強化学習処理を実行して、前記方策パラメータを更新する、
付記９または１０に記載のプログラム。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００８９
【補正方法】変更
【補正の内容】
【００８９】
（付記１２）
前記コンピュータに、
（ｃ）ユーザの対話行為の入力を受け付ける、ステップと、
（ｄ）受け付けられた対話行為と、予め保持されている知識と、過去に当該装置から出力された対話行為とに基づいて、前記ユーザとの間で行なわれている対話の状態を更新する、ステップと、
（ｅ）更新された前記対話の状態に、予め設定されている対話の取り決めを適用して、前記応答候補の集合を生成する、ステップと、
を更に実行させる、付記９〜１１のいずれかに記載のプログラム。
【国際調査報告】
2018167830.tif 000018
2018167830.tif 000019