(57)【要約】【課題】情報欠落のない、適切な応答を出力できる対話システム及びそのためのプログラムを提供する。【解決手段】対話システム８０は、自然言語の入力に対して自然言語文で応答を行う対話システムであって、入力に対する応答として使用する、自然言語文からなる応答候補を多数記憶するための応答候補ＤＢ６４と、自然言語の入力が与えられたことに応答して、当該入力に対する複数の応答候補９８を応答候補ＤＢ６４から取得するための応答候補取得部９０と、複数の応答候補９８の各々について、当該応答候補から必要な情報が欠落している確率に基づいてスコアを算出するための情報欠落判定モデル９２と、複数の応答候補９０のうち、情報欠落判定モデル９２によるスコアが上位の所定個数の応答候補を選択して入力に対する応答として出力するための応答候補選択部９４とを含む。【選択図】図２
2019197498.tif 000002
【特許請求の範囲】
【請求項１】
自然言語の入力に対して自然言語文で応答を行う対話システムであって、
入力に対する応答として使用する、自然言語文からなる応答候補を多数記憶するための応答候補記憶手段と、
自然言語の入力が与えられたことに応答して、当該入力に対する複数の応答候補を前記応答候補記憶手段から取得するための応答取得手段と、
前記複数の応答候補の各々について、当該応答候補に必要な情報が備わっているか、又は欠落しているかの度合いを表すスコアを算出するための応答候補スコアリング手段と、
前記複数の応答候補の内、前記応答候補スコアリング手段が算出する前記スコアに基づいて、必要な情報が備わっている度合いが上位の所定個数の応答候補を選択して前記入力に対する応答として出力するための応答候補選択手段とを含む、対話システム。
【請求項２】
前記応答候補スコアリング手段は、
応答候補を受け、当該応答候補に必要な情報が欠落している確率を出力するよう、予め機械学習により訓練済の情報欠落判定モデルと、
前記複数の応答候補の各々に応答して前記情報欠落判定モデルが出力する確率に基づいて、前記複数の応答候補の各々のスコアを計算するためのスコア計算手段とを含む、請求項１に記載の対話システム。
【請求項３】
前記情報欠落判定モデルは、自然言語文の入力に応答して、当該自然言語文に必要な情報が欠落している確率を出力するように予め訓練済の機械学習モデルを含む、請求項２に記載の対話システム。
【請求項４】
前記応答候補スコアリング手段は、
応答候補と前記入力との組合せを受け、当該応答候補に、前記入力に対する応答として必要な情報が欠落している確率を出力するよう、予め機械学習により訓練済の情報欠落判定モデルと、
前記複数の応答候補の各々に応答して前記情報欠落判定モデルが出力する確率に基づいて、前記複数の応答候補の各々のスコアを計算するためのスコア計算手段とを含む、請求項１に記載の対話システム。
【請求項５】
前記情報欠落判定モデルは、自然言語文からなる入力と、自然言語文からなる応答候補との組合せが与えられたことに応答して、前記入力に対する応答として当該応答候補に必要な情報が欠落している確率を出力するように予め機械学習により学習済のディープ・ニューラル・ネットワークを含む、請求項４に記載の対話システム。
【請求項６】
請求項１〜請求項５の何れかに記載の対話システムとしてコンピュータを機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は対話システムに関し、特に、対話システムが適切な応答を行えるようにするための対話システム及びそのためのコンピュータプログラム（以下、単に「プログラム」と呼ぶ。）に関する。
【背景技術】
【０００２】
近年、深層学習を含む機械学習等の技術の発達により、対話システムの開発が盛んに行なわれている。特に、ある特定の目的を達成するためではなく、自由に対話を行える対話システムが注目されている。そうした対話システムは、特定の事業所において特定の業務に限定し、熟練した作業者により使用されるのではなく、一般家庭において一般の使用者により使用されることが前提となっているためである。
【０００３】
このような汎用的な対話システムにおいては、幅広い分野の発話に対して適切に応答する必要がある。通常、対話システムでは、多くの応答候補を記憶した応答候補データベース（以下、データベースを単に「ＤＢ」と呼ぶ。）を準備しておき、入力される発話に対する応答文として適切なものを選択して応答する。したがって、適切な応答を行うためには、応答候補ＤＢに記憶されている応答候補の量が重要になる。通常、応答候補の数が多ければ多い程、対話システムの応答が適切なものになる可能性が高くなる。
【０００４】
図１に、従来の一般的な対話システム５０の構成を示す。図１を参照して、従来の対話システム５０は、大量の応答候補を記憶した応答候補ＤＢ６４と、ユーザからの入力６０を受けて発話解析を行う発話解析部６２と、発話解析部６２による発話解析の結果を用いて、応答候補ＤＢ６４に記憶された応答候補の中から、応答として最も適切と思われるものを取得し、応答６８として出力する応答候補取得部６６とを含む。
【０００５】
しかし、こうしたシステムでは大量の応答候補をどのように応答候補ＤＢ６４に準備するかが問題となる。大量の応答候補を人手で準備することは現実的ではない。そのため、多くのシステムではインターネットから収集した文章を元に応答候補を自動的に生成している。しかし、インターネット上にある文は対話システム用に書かれている文ではないため、応答候補として適切でないものもある。
【０００６】
特に頻発する問題は、応答候補に十分な情報が含まれていないことである。例えば、「冬は海でしています」という文を考える。この文だけでは対話システムの応答文として情報が足りない。すなわち、この文は「しています。」の目的語を含まない。このような文が応答文として選択されてしまうと、応答文を受けたユーザにはこの応答文が何のことを言っているのか理解できないという問題が生じる。本明細書では、このように十分な情報が含まれていない文のことを「情報欠落文」と呼ぶ。また情報が十分に含まれている文を本明細書では「情報充足文」と呼ぶ。
【０００７】
情報欠落文とは以下のようなもののことをいう。
【０００８】
・薩長同盟を実現させ、新時代が始まるという矢先に暗殺されてしまいました。（誰が、という情報が欠落している。）
【０００９】
・日本では西郷隆盛が一番よいと思います。（どのような点でよいか、という情報が欠落している。）
【００１０】
・食後も展望を楽しむ。（どこの、という情報が欠落している。）
【００１１】
これに対して情報充足文としては以下のようなものがある。
【００１２】
・海でレジャーを楽しむためには、きちんとした配慮モラルが必要ですね。
【００１３】
・株で投資をはじめよう。
【００１４】
・宮崎市ではポピーやパンジーが見頃ですよ。
【００１５】
前述したとおり、一般的に、インターネット上に存在する文では、その文のみでは必要な情報が不足していることが多い。そのため、インターネットから収集した文章に基づいて対話システム用の応答候補ＤＢを構築した場合、情報欠落文が応答として出力される危険性が高いという問題がある。
【００１６】
こうした問題を解決するための提案が後掲の特許文献１においてなされている。特許文献１に開示された発明では、入力された質問文に、予め定めた人物属性表現が含まれているか否か、質問対象の種別である対象タイプが含まれているか否かを判定し、両者ともに含まれていない場合にその質問文が情報欠落文であると判定する。すなわち特許文献１に開示された発明は、ルールベースで質問文が情報欠落文か否かを判定するものである。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２０１６−１０１９２９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
特許文献１に係る技術によれば、対話システムに入力された質問文が情報欠落文か否かを判定できる。したがって、欠落している情報の入力を受けるための応答を対話システムが出力できる。その結果、応答システムが応答を生成するために必要な情報を聞き手（ユーザ）から受けることが可能になるという効果がある。また、応答システムが生成した質問文が情報欠落文であればその質問文を出力することを避けることができる。
【００１９】
しかし特許文献１に係る発明は、あくまで質問文が情報欠落文か否かを判定するためのものである。応答が質問文でない場合には、特許文献１に係る発明では、応答として必要な情報が欠落しているか否かを判定できない。汎用的な対話システムは、あらゆる入力に対して適切な回答をすることが重要であるため、情報欠落文か否かの判定を質問文に限定することはできず、特許文献１に開示された発明だけでは課題を解決できない。したがって、文のタイプを限定せずに、応答候補における情報欠落の有無を判定し、適切な応答文を出力する手法が必要である。
【００２０】
それゆえに本発明の目的は、情報欠落のない、適切な応答を出力できる対話システム及びそのためのプログラムを提供することである。
【課題を解決するための手段】
【００２１】
本発明の第１の局面に係る対話システムは、自然言語の入力に対して自然言語文で応答を行う対話システムであって、入力に対する応答として使用する、自然言語文からなる応答候補を多数記憶するための応答候補記憶手段と、自然言語の入力が与えられたことに応答して、当該入力に対する複数の応答候補を応答候補記憶手段から取得するための応答取得手段と、複数の応答候補の各々について、当該応答候補に必要な情報が備わっているか、欠落しているかの度合いを表すスコアを算出するための応答候補スコアリング手段と、複数の応答候補の内、応答候補スコアリング手段が算出するスコアに基いて、必要な情報が備わっている度合いが上位の所定個数の応答候補を選択して入力に対する応答として出力するための応答候補選択手段とを含む。
【００２２】
好ましくは、応答候補スコアリング手段は、応答候補を受け、当該応答候補に必要な情報が欠落している確率を出力するよう、予め機械学習により訓練済の情報欠落判定モデルと、複数の応答候補の各々に応答して情報欠落判定モデルが出力する確率に基づいて、複数の応答候補の各々のスコアを計算するためのスコア計算手段とを含む。
【００２３】
より好ましくは、情報欠落判定モデルは、自然言語文の入力に応答して、当該自然言語文に必要な情報が欠落している確率を出力するように予め訓練済の機械学習モデル、例えばディープ・ニューラル・ネットワークを含む。
【００２４】
さらに好ましくは、応答候補スコアリング手段は、応答候補と入力との組合せを受け、当該応答候補に、入力に対する応答として必要な情報が欠落している確率を出力するよう、予め機械学習により訓練済の情報欠落判定モデルと、複数の応答候補の各々に応答して情報欠落判定モデルが出力する確率に基づいて、複数の応答候補の各々のスコアを計算するためのスコア計算手段とを含む。
【００２５】
好ましくは、情報欠落判定モデルは、自然言語文からなる入力と、自然言語文からなる応答候補との組合せが与えられたことに応答して、入力に対する応答として当該応答候補に必要な情報が欠落している確率を出力するように予め機械学習により学習済のディープ・ニューラル・ネットワークを含む。
【００２６】
本発明の第２の局面に係るコンピュータプログラムは、上記したいずれかの対話システムの各手段としてコンピュータを機能させる。
【００２７】
本発明の第３の局面に係る対話システム用応答候補データベースの容量削減装置は、自然言語の入力に対して自然言語文で応答を行う対話システムにおいて使用される、自然言語文からなる複数の応答候補を記憶する応答候補データベースと、応答候補データベースに記憶された複数の応答候補の各々について、当該応答候補に必要な情報が備わっているか、又は欠落しているかの度合いを表すスコアを算出するための応答候補スコアリング手段と、応答候補データベースに記憶されている応答候補の内、応答候補スコアリング手段が算出するスコアがしきい値と所定の関係にあるものを削除するための削除手段とを含む。
【００２８】
本発明のその他の目的、構成及び効果は、発明を実施するための形態の関する以下の説明と、添付の図面とにより明らかとなるであろう。
【図面の簡単な説明】
【００２９】
【図１】図１は、従来の一般的な対話システムの構成を示すブロック図である。
【図２】図２は、本発明の第１の形態に係る対話システムの構成を示すブロック図である。
【図３】図３は、図２に示す応答候補選択部の構成を示すブロック図である。
【図４】図４は、図３に示す応答候補スコアリング部をコンピュータとの協働により実現するプログラムの制御構造を示すフローチャートである。
【図５】図５は、情報欠落判定モデルの訓練を行うための情報欠落判定モデル訓練システムの概略ブロック図である。
【図６】図６は、第１の実施の形態に係る情報欠落判定モデルの一例である畳み込みニューラル・ネットワークの概略構成及び動作を示す図である。
【図７】図７は、図６に示す畳み込みニューラル・ネットワークの動作原理を説明するための図である。
【図８】図８は、本発明の第２の実施の形態に係る情報欠落判定モデルの一例である畳み込みニューラル・ネットワークの概略構成及び動作を示す図である。
【図９】図９は、応答候補ＤＢ内の応答候補から、情報欠落文を削除することにより応答候補ＤＢの容量を削減する装置の構成を示すブロック図である。
【図１０】図１０は、図９により容量が削減された応答候補ＤＢを用いる対話システムの概略構成を示すブロック図である。
【図１１】図１１は、第１及び第２の実施の形態を実現するコンピュータシステムの外観を示す図である。
【図１２】図１２は、図１１に示すコンピュータの内部構成を示すブロック図である。
【発明を実施するための形態】
【００３０】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
【００３１】
＜第１の実施の形態＞
［構成］
《全体構成》
図２を参照して、本発明の第１の実施の形態に係る対話システム８０は、大量の応答候補を記憶した応答候補ＤＢ６４と、ユーザからの入力６０を受けて発話解析を行う発話解析部６２と、発話解析部６２による発話解析の結果を用いて、応答候補ＤＢ６４に記憶された応答候補の中から、応答として適切と思われる複数個の応答候補を取得し、応答候補９８として出力する応答候補取得部９０とを含む。
【００３２】
対話システム８０はさらに、情報欠落判定モデル９２と、複数の応答候補９８の各々を情報欠落判定モデル９２に与えることにより複数の応答候補９８の各々について情報欠落文か否かを示すスコアを算出し、スコアが最も低い、つまり情報欠落文でない確率が高い所定個数（典型的には１個）の応答候補１００を選択し応答９６として出力する応答候補選択部９４とを含む。
【００３３】
情報欠落判定モデル９２の構成及び動作については後述するが、情報欠落判定モデル９２は、自然言語文の入力に応答して、当該自然言語文に必要な情報が欠落している確率を出力するように予め機械学習により学習済の、ディープ・ニューラル・ネットワークの一種である畳み込みニューラル・ネットワークを含む。
【００３４】
〈応答候補選択部９４〉
図３を参照して、図２に示す応答候補選択部９４は、複数の応答候補９８の各々を情報欠落判定モデル９２に与え、応答して情報欠落判定モデル９２が出力する確率を取得し、この確率に基づいて複数の応答候補９８の各々について情報欠落文か否かを示すスコアを算出して各応答候補に付加して出力するための応答候補スコアリング部１１０を含む。本実施の形態では、情報欠落判定モデル９２が出力するのは、入力された自然言語文が情報欠落文である確率である。応答候補スコアリング部１１０のスコアリングは、応答候補が情報欠落文であるときに高く、情報欠落文でない（情報充足文である）ときに低くなるように定義される。例えばある応答候補を受けて情報欠落判定モデル９２が出力する確率の値（又はその値に正の定数を乗じた値）を応答候補のスコアにできる。
【００３５】
スコアがどのようなときに高く、どのようなときに低くなるかはスコアの定義による。本明細書では、スコアは応答候補に情報が備わっているか又は情報が欠落しているかの度合いを表すものとし、応答候補が情報欠落文であるとき、すなわち情報が欠落している度合いが高いときにはスコアが高く、情報欠落文でないとき、すなわち情報が備わっている（情報充足文である）とき、すなわち情報が備わっている度合いが高いときにスコアが低くなる、とする。もちろんスコアの定義をこれと逆にし、情報欠落文であるときにはスコアが低くなるような定義を採用してもよい。
【００３６】
応答候補選択部９４はさらに、応答候補スコアリング部１１０が出力する、スコア付の複数の応答候補をスコアの昇順にソートして出力するソート部１１２と、ソート部１１２からスコアの昇順に出力される応答候補の内、スコアが最も下位の所定個数（本実施の形態では１個）の応答候補１００を選択し、応答９６として出力する選択部１１４とを含む。
【００３７】
〈応答候補スコアリング部１１０〉
図３に示す応答候補スコアリング部１１０は、コンピュータハードウェアと協働するプログラムにより実現される。図４を参照して、このプログラムは、複数の応答候補の各々に対して処理１２２を実行するステップ１２０を含む。
【００３８】
処理１２２は、処理対象の応答候補を形態素解析し、形態素列を出力するステップ１４０と、ステップ１４０の処理により得られた形態素列の各単語を単語ベクトルに変換することで、応答候補を単語ベクトル列に変換するステップ１４２とを含む。単語ベクトルとしては、いわゆるワンホットベクトルを使用しても良いが、ワンホットベクトルの場合にはベクトルの次元が大きくなること、要素の大部分が０となりモデルの訓練に都合が悪いこと等から本実施の形態では単語ベクトルとしていわゆる単語埋め込みベクトルを使用する。
【００３９】
ステップ１２０はさらに、ステップ１４２の処理で得られた単語ベクトル列を情報欠落判定モデル９２に入力し情報欠落判定モデル９２の出力（この単語ベクトル列により表される自然言語文、即ち応答候補が情報欠落文である確率）を取得するステップ１４４と、ステップ１４４で得られた情報欠落判定モデル９２の出力に基づいて応答候補のスコアを計算し、スコアを応答候補に付加して応答候補を出力するステップ１４６とを含む。
【００４０】
処理１２２の処理を全ての応答候補に対して行うことにより、各応答候補にその応答候補が情報欠落文である確率に基づいて計算されたスコアが付与され出力されることになる。
【００４１】
〈情報欠落判定モデル９２〉
本実施の形態で使用する情報欠落判定モデル９２は、前述したとおり畳み込みニューラル・ネットワークを含む。畳み込みニューラル・ネットワークの構成及び動作については図６以下を参照して後述し、最初に情報欠落判定モデル９２の訓練について説明する。
【００４２】
図５を参照して、情報欠落判定モデル９２を訓練するための情報欠落判定モデル訓練システム１６０は、インターネットから収集したテキストを記憶したテキストＤＢ１７０と、テキストＤＢ１７０に記憶されたテキストの各々の各文について、その文が情報欠落文か否かを示すラベルを手作業により付すためのラベリング用端末１７２と、テキストＤＢ１７０に記憶された、ラベル付された各文から情報欠落判定モデル９２の訓練データを生成するための訓練データ作成部１７４と、訓練データ作成部１７４が生成した訓練データを記憶するための訓練データ記憶部１７６とを含む。訓練データは複数個の訓練データ項目を含み、各訓練データ項目は、テキストＤＢ１７０に記憶されたテキストの各文を単語ベクトル列に変換したものと、その文が情報欠落文か否かを示す教師データとしてのラベルとの組合せを含む。
【００４３】
人手によるラベリングでは、主語の欠落、目的語の欠落、指し先の分からない代名詞等があったときに情報の欠落があったと判定する。ただし主語の欠落では、主語としての「私」の省略については情報欠落ではないとしてもよい。また本実施の形態ではラベルは欠落の有無のみを情報として持っていれば十分であるが、何が欠落していたのか、すなわち、主語の欠落、目的語の欠落等の情報を持たせていても良い。
【００４４】
情報欠落判定モデル訓練システム１６０はさらに、訓練データ記憶部１７６に記憶された訓練データ項目の各々を用いて情報欠落判定モデル９２の訓練を行うための訓練処理部１７８を含む。訓練処理部１７８は、各訓練データ項目について、その応答候補の単語ベクトル列を情報欠落判定モデル９２に与えてその出力を計算し、教師データであるラベルとの誤差を計算する。訓練処理部１７８はその誤差が小さくなるように誤差逆伝搬法により情報欠落判定モデル９２の構成する畳み込みニューラル・ネットワーク内の重み及びバイアス等を含むパラメータを再計算することで情報欠落判定モデル９２の訓練を行う。
【００４５】
誤差逆伝搬法については、ニューラル・ネットワーク全般について確立された手法である。したがってここではその詳細については繰返さない。
【００４６】
図６を参照して、情報欠落判定モデル９２を構成する畳み込みニューラル・ネットワーク２００は、訓練用の応答文を表す単語ベクトル列２０２の入力を受けて複数種類のフィルタを使用し、フィルタごとに演算対象を移動させて畳み込み演算を行い、フィルタごとに素性マップ２１２を算出するための畳み込み層２１０を含む。素性マップ２１２はベクトルであって、その要素は、あるフィルタがある演算対象に対して行った演算結果である。
【００４７】
畳み込みニューラル・ネットワーク２００はさらに、フィルタごとに得られた素性マップ２１２の各々について、要素の最大値を選択することで確率演算のためのベクトルを生成するプーリング層２１４と、このプーリング層２１４で得られたベクトルに対してソフトマックス関数を適用することで単語ベクトル列２０２により表される応答候補が情報欠落文である確率を示す情報欠落確率２０４を出力する出力層２１６とを含む。
【００４８】
図７に、図６に示す単語ベクトル列２０２に対してあるフィルタを適用して畳み込み演算を行い、素性マップを得る過程を示す。図７を参照して。単語ベクトル列２０２は前記したように単語ベクトル列であり、各ベクトルは固定個数の要素を持つ。図７において単語ベクトル列２０２は３×４の行列で示されているが、各行が１つの単語ベクトルを表し、行内の各要素はベクトルの要素を表している。フィルタ２３０はここではバイグラムに対するフィルタであって、隣接する２つの単語ベクトルに対して適用される。図７に示す例では、単語ベクトル列２０２は、バイグラム２３２、２３４、２３６及び２３８を含む。フィルタ２３０をバイグラム２３２、２３４、２３６及び２３８に適用することでそれぞれ１つずつのフィルタ出力が得られる。これらフィルタ出力の要素２４２、２４４、２４６及び２４８を持つベクトル２５０がフィルタ２３０により得られる素性マップである。
【００４９】
図６に示す例ではフィルタが２つ用いられている。したがってベクトル２５０のような素性マップが２つ得られる。それら素性マップの各々について、要素の最大値を選択する処理がマックスプーリングである。
【００５０】
なお、図６及び図７ではフィルタを２個としているが、フィルタの数は２個には限定されない。より多くのフィルタを用いてもよい。
【００５１】
［動作］
上記した第１の実施の形態に係る対話システム８０及び情報欠落判定モデル訓練システム１６０は以下のように動作する。以下、情報欠落判定モデル９２の訓練時の情報欠落判定モデル訓練システム１６０の動作、及び訓練が完了した情報欠落判定モデル９２を用いたサービス時の対話システム８０の動作について説明する。
【００５２】
《訓練》
図５を参照して、最初にインターネット上から応答候補となるテキストを収集しテキストＤＢ１７０に蓄積する。ラベリング用端末１７２を用いて、人手によりテキストＤＢ１７０に記憶されたテキストの各文について、情報欠落文か否かを判定し、情報欠落文か否かを示すラベルを各文に付する。
【００５３】
情報欠落判定モデル９２の訓練時、訓練データ作成部１７４がテキストＤＢ１７０に蓄積されたラベル付の各文について、その文を応答候補とし、その文に付されたラベルを教師データとして訓練データ項目を作成し、訓練データ記憶部１７６に蓄積する。
【００５４】
訓練処理部１７８は、訓練データ記憶部１７６に蓄積された訓練データ項目の各々について、応答候補を情報欠落判定モデル９２への入力とし、その応答候補のラベルを教師データとして情報欠落判定モデル９２の訓練を行う。訓練処理部１７８は、所定の終了条件が成立するまで訓練データを用いて情報欠落判定モデル９２の訓練を繰返す。終了条件としては色々考えられる。典型的な例として、訓練データ記憶部１７６を用いた訓練を所定回数実行したときに訓練を終了することが考えられる。又は、訓練データ記憶部１７６に含まれる訓練データ項目を全て使用して情報欠落判定モデル９２の訓練がおわるごとに、検証用データを用いて情報欠落判定モデル９２による情報欠落文の判定精度を算出し、前回の判定精度と今回の判定精度との差が所定のしきい値以下となったときに訓練を終了するようにしてもよい。若しくは、これらの条件の内、いずれか一方が成立したときに訓練を終了することも可能である。
【００５５】
《サービス》
上記のように訓練が完了した後の情報欠落判定モデル９２を用いることで、対話システム８０が応答文として情報欠落文を出力する可能性を小さくできる。
【００５６】
図２を参照して、ユーザが入力６０を対話システム８０に入力する。発話解析部６２はこの入力６０に対して発話解析を行い、解析結果を応答候補取得部９０に与える。ここまでは従来技術と同様である。応答候補取得部９０はこの解析結果を用い、応答候補ＤＢ６４から入力６０に対する応答として適切と思われる応答候補を複数個だけ取得し複数の応答候補９８を応答候補選択部９４に与える。一般的に従来の対話システムでは、応答候補に対して何らかのスコアを計算し、その上位の回答を応答として選択している。応答候補選択部９４は、このスコアを用い、応答候補の中でスコアが最上位の複数個の応答候補を選択する。
【００５７】
図３及び図４を参照して、複数の応答候補９８を受けた応答候補選択部９４の応答候補スコアリング部１１０は、複数の応答候補９８の各々について、図４に示す処理１２２を実行する（ステップ１２０）。すなわち、ステップ１４０では、処理対象の応答候補を形態素解析し、形態素列を出力する。続くステップ１４２では、ステップ１４０の処理により得られた形態素列の各単語を単語ベクトルに変換することで、応答候補を単語ベクトル列に変換する。ステップ１４４では、ステップ１４２の処理で得られた単語ベクトル列を情報欠落判定モデル９２に入力し情報欠落判定モデル９２の出力（この単語ベクトル列により表される自然言語文、即ち応答候補が情報欠落文である確率）を取得する。ステップ１４４に続きステップ１４６では、ステップ１４４で得られた情報欠落判定モデル９２の出力に基づいてスコアを算出し、応答候補に付加して応答候補を出力する。
【００５８】
処理１２２の処理を全ての応答候補に対して行うことにより、各応答候補にその応答候補が情報欠落文である確率に基づいて算出されたスコアが付与されることになる。
【００５９】
図３を参照して、ソート部１１２は、応答候補スコアリング部１１０から出力された複数の応答候補をそのスコアの昇順でソートし選択部１１４に与える。選択部１１４は、この応答候補の内で、スコアが下位の所定個数（典型的には１個）を選択し、応答９６として出力する。
【００６０】
以上の第１の実施の形態に係る対話システム８０によれば、入力に対して複数の応答候補を選択した後、複数の応答候補の各々に対してその応答候補が情報欠落文である確率に基づいて算出されたスコアが付与される。スコアの下位のものだけが応答として出力される。したがって、対話システムの応答として情報が欠落したものが出力されてユーザが疑問に思ったりする危険性を小さくできる。
【００６１】
なお、本実施の形態ではスコア下位の応答候補を選択している。しかし本発明はそのような実施の形態には限定されない。しきい値を設け、スコアがそのしきい値より高い応答候補を全て削除してもよい。又は、あるしきい値以下のスコアを持つ応答候補に限り、その中で所定個数までの応答候補を選択するようにしてもよい。
【００６２】
＜第２の実施の形態＞
〈情報欠落判定モデル２６０〉
第１の実施の形態では、応答候補についてのみ情報欠落判定モデル９２を用いて情報欠落文である確率を判定している。しかし本発明はそのような実施の形態には限定されない。応答文の中には、それだけを見たときには情報が欠落していると思われるにもかかわらず、入力とあわせて見れば情報が欠落していない場合もあるし、逆に応答文だけを見ると情報に欠落はないが、入力と合わせて見ると情報が欠落していると考えられる場合もある。
【００６３】
例えば「チョコレートが好きです。」という文について考える。これだけを見ると「私は」という主語が欠落しているだけだと考えられ、情報の欠落はない。しかし、この文が「ハンフリー・ボガートかっこいい」という入力に対する応答だとすると、なんの事だか分からず、情報の欠落が生じていることになる。そこで、応答候補だけではなく。入力と応答候補との組合せを見て、応答候補に情報欠落があるか否かを判定することが考えられる。この第２の実施の形態はそうしたシステムに関する。
【００６４】
この第２の実施の形態では、情報欠落判定モデルの訓練は、応答候補だけではなく、その応答が得られたときの入力に相当する、応答候補の直前の文（発話）と応答候補との組合せを対象とする。この点を除くと、この実施の形態に係る対話システムは、図２〜図４に示した第１の実施の形態に係る対話システム８０と同じ構成である。また学習についても、訓練データ項目が応答候補とラベルとの組合せではなく、入力に相当する文とその応答、及びラベルの組合せである点を除き、図５に示す情報欠落判定モデル訓練システム１６０と同じ構成でよい。
【００６５】
図８を参照して、この第２の実施の形態に係る対話システムで用いられる情報欠落判定モデル２６０は、入力文の単語ベクトル２７０を受ける第１の畳み込みニューラル・ネットワーク２７４と、入力文に対する応答候補の単語ベクトル２７２を受ける第２の畳み込みニューラル・ネットワーク２７６と、第１の畳み込みニューラル・ネットワーク２７４の出力ベクトルと第２の畳み込みニューラル・ネットワーク２７６の出力ベクトルとを結合した結合ベクトル２８０を入力とし、入力文の単語ベクトル２７０と応答候補の単語ベクトル２７２との組合せにおいて応答候補の単語ベクトル２７２に情報欠落があることを示す情報欠落確率２８４を出力する多層パーセプトロン２８２とを含む。多層パーセプトロン２８２としては任意の構成が可能である。この多層パーセプトロン２８２と、第１の畳み込みニューラル・ネットワーク２７４及び第２の畳み込みニューラル・ネットワーク２７６とは全体として１つのディープ・ニューラル・ネットワークを形成している。
【００６６】
第１の畳み込みニューラル・ネットワーク２７４及び第２の畳み込みニューラル・ネットワーク２７６は、いずれも基本的に図６に示す畳み込みニューラル・ネットワーク２００と同じ構成である。もちろん、第１の畳み込みニューラル・ネットワーク２７４と第２の畳み込みニューラル・ネットワーク２７６とが全く同じ構成である必要はなく、また第１の畳み込みニューラル・ネットワーク２７４及び第２の畳み込みニューラル・ネットワーク２７６が畳み込みニューラル・ネットワーク２００と全く同じ構成である必要もない。例えば使用するフィルタの数又は種類が異なっていてもよい。
【００６７】
情報欠落判定モデル２６０の学習も基本的には畳み込みニューラル・ネットワーク２００と同様である。ただし、学習時の入力は入力文の単語ベクトル列とそれに対する応答候補の単語ベクトル列である点で畳み込みニューラル・ネットワーク２００の学習とは異なる。教師データは応答候補に情報欠落が有るか否かを示すラベルであり、この点は畳み込みニューラル・ネットワーク２００の訓練と同様である。情報欠落判定モデル２６０の全体の構成は畳み込みニューラル・ネットワーク２００とは異なっているが、情報欠落判定モデル２６０の出力と教師データ（ラベル）との相違が小さくなるように。誤差逆伝搬法を用いて情報欠落判定モデル２６０の各部のパラメータを学習する点で情報欠落判定モデル２６０の学習は畳み込みニューラル・ネットワーク２００の学習と同様である。
【００６８】
この第２の実施の形態によれば、応答候補を見ただけでは情報欠落があるか否かを正しく判定できない場合にも、情報欠落の有無を正しく判定できる可能性が高くなるという効果がある。
【００６９】
＜第３の実施の形態＞
上記した第１の実施の形態及び第２の実施の形態では、いずれも、入力があったときに動的に応答候補の情報欠落の有無を判定している。しかし本発明はそのような実施の形態には限定されない。この第３の実施の形態では、予め応答候補ＤＢから情報欠落がある可能性の高い応答候補を削除する。こうすることで、図１に示した従来の対話システム５０と同様の構成を持つ対話システムで、情報欠落がある可能性の低い応答のみを選択して出力できる。また、応答候補ＤＢを記憶するために必要な記憶容量を小さくできるという効果もある。
【００７０】
図９を参照して、この第３の実施の形態に係る応答候補ＤＢの容量削減システム３１０は、応答候補を多数記憶した原応答候補ＤＢ３２０と、第１の実施の形態で使用した情報欠落判定モデル９２と、原応答候補ＤＢ３２０に記憶されている応答候補の各々について、情報欠落判定モデル９２を使用して情報欠落の有無に関するスコアリングをし、スコア付の応答候補を出力する応答候補スコアリング部３２４と、応答候補スコアリング部３２４が出力するスコア付の応答候補を記憶する中間応答候補ＤＢ３２６とを含む。
【００７１】
応答候補ＤＢの容量削減システム３１０はさらに、中間応答候補ＤＢ３２６に記憶された複数のスコア付応答候補の内、スコアが所定のしきい値以下のもののみを選択するための応答候補選択部３２８と、応答候補選択部３２８により選択された応答候補を記憶するための応答候補ＤＢ３３０とを含む。
【００７２】
応答候補ＤＢ３３０には、情報欠落の有無に関するスコアがしきい値以下のもののみが格納される。すなわち、応答候補ＤＢ３３０に記憶された応答候補は、いずれも情報欠落文である可能性が小さなものになる。
【００７３】
図１０を参照して、この第３の実施の形態に係る対話システム３４０は、入力６０を受けて入力６０に対する発話解析を行う発話解析部６２と、発話解析部６２による発話解析の結果を用いて応答候補ＤＢ３３０から応答候補を取得し応答３５０として出力するための応答候補取得部６６とを含む。
【００７４】
この対話システム３４０は、応答候補ＤＢ３３０を除き図１に示す従来技術の対話システム５０と同じ構成を持つ。異なるのは応答候補ＤＢ３３０のみである。上記したように応答候補ＤＢ３３０に記憶されている応答候補は、いずれも情報欠落文としての可能性が小さなものばかりである。したがって、応答候補取得部６６が応答候補ＤＢ３３０から取得する応答候補は、従来技術の対話システム５０において応答候補取得部６６が応答候補ＤＢ６４から取得したものと比較して情報欠落文である可能性が小さくなる。
【００７５】
すなわち、この第３の実施の形態では、第１及び第２の実施の形態とは異なり、いわば静的に対話システムの応答として情報欠落文が選択される可能性を小さくするものということができる。
【００７６】
＜実施の形態の効果＞
第１及び第２の実施の形態では、図２に示すような情報欠落判定モデル９２と応答候補選択部９４とを既存の対話システムに組込むことにより、質の高い応答を出力することが可能となる。特に応答候補ＤＢに手を加えたくない場合は、第１及び第２の実施の形態のようにすることで、応答候補ＤＢに変更を加えずに質の良い応答を選択できる。
【００７７】
一方、応答候補ＤＢに手を加えてもよい場合には、第３の実施の形態のように、対話システムが保有している応答候補ＤＢに含まれる文の中でスコアが高いもの以外を除去することにより、応答の質を落とさずに応答候補ＤＢの規模を小さくできる。この場合、応答候補ＤＢのみを変えればよく、対話システム自体は図１に示すものをそのまま流用できる。
【００７８】
＜コンピュータによる実現＞
上記した各実施の形態に係る対話システム８０及び３４０、情報欠落判定モデル９２及び２６０、並びに情報欠落判定モデル訓練システム１６０及び応答候補ＤＢの容量削減システム３１０の各機能部は、それぞれコンピュータハードウェアと、そのハードウェア上でＣＰＵ（中央演算処理装置）及びＧＰＵ（Graphics  Processing  Unit）により実行される、対話システムに対するアドオンとして準備されるプログラムとにより実現できる。図１１及び図１２に上記各装置及びシステムを実現するコンピュータハードウェアを示す。ＧＰＵは通常は画像処理を行うために使用されるが、このようにＧＰＵを画像処理ではなく通常の演算処理に使用する技術をＧＰＧＰＵ（General-purpose  computing  on  graphics  processing  units）と呼ぶ。ＧＰＵは同種の複数の演算を同時並列的に実行できる。一方、ニューラル・ネットワークの訓練時及び動作時には、各ノードの重み演算は単純な積和演算であり、しかもそれらは同時に実行できることが多い。したがって、図６に示す情報欠落判定モデル９２、図７に示す情報欠落判定モデル２６０等はＧＰＧＰＵで実現するのに適している。
【００７９】
図１１を参照して、このコンピュータシステム８３０は、メモリポート８５２及びＤＶＤ（Digital  Versatile  Disk）ドライブ８５０を有するコンピュータ８４０と、キーボード８４６と、マウス８４８と、モニタ８４２とを含む。
【００８０】
図１２を参照して、コンピュータ８４０は、メモリポート８５２及びＤＶＤドライブ８５０に加えて、ＣＰＵ８５６及びＧＰＵ８５８と、ＣＰＵ８５６、ＧＰＵ８５８、メモリポート８５２及びＤＶＤドライブ８５０に接続されたバス８６６と、コンピュータ８４０のブートプログラム等を記憶する読出専用メモリであるＲＯＭ８６０と、バス８６６に接続され、プログラム命令、システムプログラム及び作業データ等を記憶するコンピュータ読出可能な記憶媒体であるランダムアクセスメモリ（ＲＡＭ）８６２と、ハードディスク８５４を含む。コンピュータ８４０はさらに、いずれもバス８６６に接続され、他端末との通信を可能とするネットワーク８６８への接続を提供するネットワークインターフェイス（Ｉ／Ｆ）８４４と、外部との対話のために音声信号の入出力を行うための音声Ｉ／Ｆ８７０とを含む。
【００８１】
コンピュータシステム８３０を上記した実施の形態に係る各装置及びシステムの各機能部として機能させるためのプログラムは、ＤＶＤドライブ８５０又はメモリポート８５２に装着される、いずれもコンピュータ読出可能な記憶媒体であるＤＶＤ８７２又はリムーバブルメモリ８６４に記憶され、さらにハードディスク８５４に転送される。又は、プログラムはネットワーク８６８を通じてコンピュータ８４０に送信されハードディスク８５４に記憶されてもよい。プログラムは実行の際にＲＡＭ８６２にロードされる。ＤＶＤ８７２から、リムーバブルメモリ８６４から又はネットワーク８６８を介して、直接にＲＡＭ８６２にプログラムをロードしてもよい。また、上記処理に必要なデータは、ハードディスク８５４、ＲＡＭ８６２、ＣＰＵ８５６又はＧＰＵ８５８内のレジスタ等の所定のアドレスに記憶され、ＣＰＵ８５６又はＧＰＵ８５８により処理され、プログラムにより指定されるアドレスに格納される。最終的に訓練が終了した畳み込みニューラル・ネットワークのパラメータ及び付随する計算処理を行うプログラムは、例えばハードディスク８５４に格納されたり、ＤＶＤドライブ８５０及びメモリポート８５２をそれぞれ介してＤＶＤ８７２又はリムーバブルメモリ８６４に格納されたりする。又は、ネットワークＩ／Ｆ８４４を介してネットワーク８６８に接続された他のコンピュータ又は記憶装置に送信される。
【００８２】
このプログラムは、コンピュータ８４０を、上記実施の形態に係る各装置及びシステムとして機能させるための複数の命令からなる命令列を含む。上記各装置及びシステムにおける数値演算処理は、ＣＰＵ８５６及びＧＰＵ８５８を用いて行う。ＣＰＵ８５６のみを用いてもよいがＧＰＵ８５８を用いる方が高速である。コンピュータ８４０にこの動作を行わせるのに必要な基本的機能のいくつかはコンピュータ８４０上で動作するオペレーティングシステム若しくはサードパーティのプログラム又はコンピュータ８４０にインストールされる、ダイナミックリンク可能な各種プログラミングツールキット又はプログラムライブラリにより提供される。したがって、このプログラム自体はこの実施の形態のシステム、装置及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令の内、所望の結果が得られるように制御されたやり方で適切な機能又はプログラミングツールキット又はプログラムライブラリ内の適切なプログラムを実行時に動的に呼出すことにより、上記したシステム、装置又は方法としての機能を実現する命令のみを含んでいればよい。もちろん、プログラムのみで必要な機能を全て提供してもよい。
【００８３】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
【符号の説明】
【００８４】
５０、８０、３４０  対話システム
６０  入力
６２  発話解析部
６４、３３０  応答候補ＤＢ
６６、９０  応答候補取得部
６８、９６、３５０  応答
９２、２６０  情報欠落判定モデル
９４、３２８  応答候補選択部
９８  複数の応答候補
１００  応答候補
１１０、３２４  応答候補スコアリング部
１１２  ソート部
１１４  選択部
１６０  情報欠落判定モデル訓練システム
１７０  テキストＤＢ
１７２  ラベリング用端末
１７４  訓練データ作成部
１７６  訓練データ記憶部
１７８  訓練処理部
２００  畳み込みニューラル・ネットワーク
２０２  単語ベクトル列
２０４、２８４  情報欠落確率
２１０  畳み込み層
２１２  素性マップ
２１４  プーリング層
２１６  出力層
２３０  フィルタ
２３２、２３４、２３６、２３８  バイグラム
２４２、２４４、２４６、２４８  要素
２５０  ベクトル
２７０  入力文の単語ベクトル
２７２  応答候補の単語ベクトル
２７４  第１の畳み込みニューラル・ネットワーク
２７６  第２の畳み込みニューラル・ネットワーク
２８０  結合ベクトル
２８２  多層パーセプトロン
３１０  応答候補ＤＢの容量削減システム
３２０  原応答候補ＤＢ
３２６  中間応答候補ＤＢ
【図１】
2019197498.tif 000003
【図２】
2019197498.tif 000004
【図３】
2019197498.tif 000005
【図４】
2019197498.tif 000006
【図５】
2019197498.tif 000007
【図６】
2019197498.tif 000008
【図７】
2019197498.tif 000009
【図８】
2019197498.tif 000010
【図９】
2019197498.tif 000011
【図１０】
2019197498.tif 000012
【図１１】
2019197498.tif 000013
【図１２】
2019197498.tif 000014