(57)【特許請求の範囲】
【請求項１】
対話における現在の質問を表す単語列である質問Ｑｉと、前記質問Ｑｉに対する回答Ａｉの生成に用いられる文書Ｐと、過去のｋ個の質問をそれぞれ表す単語列である質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と、前記ｋ個の質問に対する回答をそれぞれ表す単語列である回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを入力として、予め学習済みのモデルパラメータを用いて、抽出形式又は生成形式の機械読解によって前記回答Ａｉを生成する生成手段、
を有することを特徴とする対話処理装置。
【請求項２】
抽出形式又は生成形式の機械読解による前記回答Ａｉの生成に用いられる特徴量であって、前記質問Ｑｉと質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを反映した特徴量の数をＴとして、
前記生成手段には、
前記質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝に関する前記文書Ｐの特徴量｛ｕｉ−１ｔ，・・・，ｕｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）と、前記回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝に関する前記文書Ｐの特徴量｛ｖｉ−１ｔ，・・・，ｖｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）とを算出する第１の算出手段が含まれる、ことを特徴とする請求項１に記載の対話処理装置。
【請求項３】
前記生成手段には、
前記質問Ｑｉに関する前記文書Ｐの特徴量ｕｉｔ（ｔ＝１，・・・，Ｔ）を算出する第２の算出手段と、
前記特徴量ｕｉｔ（ｔ＝１，・・・，Ｔ）と前記特徴量｛ｕｉ−１ｔ，・・・，ｕｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）と前記特徴量｛ｖｉ−１ｔ，・・・，ｖｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）とをｔに関してそれぞれ結合することで、前記質問Ｑｉと質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを反映した特徴量として特徴量ｏｔ（ｔ＝１，・・・，Ｔ）を算出する結合手段と、
特徴量ｏｔ（ｔ＝１，・・・，Ｔ）を用いて、前記抽出形式又は生成形式の機械読解によって前記回答Ａｉを生成する回答生成手段と、が含まれることを特徴とする請求項２に記載の対話処理装置。
【請求項４】
対話における現在の質問を表す単語列である質問Ｑｉと、前記質問Ｑｉに対する回答Ａｉの生成に用いられる文書Ｐと、過去のｋ個の質問をそれぞれ表す単語列である質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と、前記ｋ個の質問に対する回答をそれぞれ表す単語列である回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを入力として、モデルパラメータを用いて、抽出形式又は生成形式の機械読解によって前記回答Ａｉを生成する生成手段と、
前記回答Ａｉと、前記質問Ｑｉに対する正解の回答とを用いて、教師あり学習により前記モデルパラメータを更新する更新手段と、
を有することを特徴とする学習装置。
【請求項５】
対話における現在の質問を表す単語列である質問Ｑｉと、前記質問Ｑｉに対する回答Ａｉの生成に用いられる文書Ｐと、過去のｋ個の質問をそれぞれ表す単語列である質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と、前記ｋ個の質問に対する回答をそれぞれ表す単語列である回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを入力として、予め学習済みのモデルパラメータを用いて、抽出形式又は生成形式の機械読解によって前記回答Ａｉを生成する生成手順、
をコンピュータが実行することを特徴とする対話処理方法。
【請求項６】
対話における現在の質問を表す単語列である質問Ｑｉと、前記質問Ｑｉに対する回答Ａｉの生成に用いられる文書Ｐと、過去のｋ個の質問をそれぞれ表す単語列である質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と、前記ｋ個の質問に対する回答をそれぞれ表す単語列である回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを入力として、モデルパラメータを用いて、抽出形式又は生成形式の機械読解によって前記回答Ａｉを生成する生成手順と、
前記回答Ａｉと、前記質問Ｑｉに対する正解の回答とを用いて、教師あり学習により前記モデルパラメータを更新する更新手順と、
をコンピュータが実行することを特徴とする学習方法。
【請求項７】
コンピュータを、請求項１乃至３の何れか一項に記載の対話処理装置における各手段、又は、請求項４に記載の学習装置における各手段、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話処理装置、学習装置、対話処理方法、学習方法及びプログラムに関する。
【背景技術】
【０００２】
機械読解に関する研究が従来から盛んに行われている。機械読解とは、文書と質問とを入力として、文書から質問に対する回答を生成する技術のことである。また、機械読解で回答を生成する際の方法として、文書内の単語を抜き出して回答を生成する「抽出形式」と、文書内の単語以外の単語も用いて回答を生成する「生成形式」との２通りが知られている。一般に、抽出形式よりも生成形式の方が、より自然な文を回答として生成できることが知られている。【０００３】
ここで、従来から盛んに研究されている機械読解は一問一答形式である。すなわち、機械読解では、仮に複数の質問が入力されたとしても、これらの質問は独立に扱われ、それぞれの質問に対して独立に回答が生成される。これに対して、近年では、質問と回答とが交互に繰り返されるような対話型の機械読解も研究されている。【０００４】
対話型の機械読解とは、文書と現在の質問と過去の質問履歴と過去の回答履歴とを入力として、現在の質問に対する回答を生成する技術のことである。このため、対話型の機械読解では、質問と回答とが繰り返される中で、これまでの対話の内容（つまり、これまでの質問履歴と回答履歴）を踏まえた回答を生成することができる。例えば、非特許文献１には、現在の質問に対する回答を抽出形式によって生成する対話型の機械読解として、文書内で回答となる範囲の開始位置と終了位置とを出力する技術が記載されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Hsin-Yuan Huang, Eunsol Choi, and Wen-tau Yih. Flowqa: Grasping flow in history for conversational machine comprehension. arXiv preprint arXiv:1810.06683, 2018.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、例えば非特許文献１に記載されている対話型の機械読解は抽出形式によって回答を生成しているため、生成形式によっては回答を生成することができなかった。このように、従来の対話型の機械読解では、抽出形式又は生成形式のいずれか一方のみが適用可能であった。【０００７】
本発明の実施の形態は、上記の点に鑑みてなされたもので、抽出形式と生成形式とのいずれにも適用可能な対話型の機械読解を実現することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の実施の形態における対話処理装置は、対話における現在の質問を表す単語列である質問Ｑｉと、前記質問Ｑｉに対する回答Ａｉの生成に用いられる文書Ｐと、過去のｋ個の質問をそれぞれ表す単語列である質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と、前記ｋ個の質問に対する回答をそれぞれ表す単語列である回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを入力として、予め学習済みのモデルパラメータを用いて、抽出形式又は生成形式の機械読解によって前記回答Ａｉを生成する生成手段、を有することを特徴とする。
【発明の効果】
【０００９】
抽出形式と生成形式とのいずれにも適用可能な対話型の機械読解を実現することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態における対話処理装置の全体構成（推論時）の一例を示す図である。
【図２】本発明の実施の形態における対話処理装置の全体構成（学習時）の一例を示す図である。
【図３】本発明の実施の形態における対話処理の一例を示すフローチャートである。
【図４】本発明の実施の形態における学習処理の一例を示すフローチャートである。
【図５】本発明の実施の形態における対話処理装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態（以降、「本実施形態」とも表す。）について説明する。本実施形態では、抽出形式と生成形式とのいずれにも適用可能な対話型の機械読解を実現する対話処理装置１０について説明する。すなわち、文書と現在の質問と過去の質問履歴と過去の回答履歴とを入力として、抽出形式又は生成形式によって現在の質問に対する回答を生成することで、対話型の機械読解を実現する対話処理装置１０について説明する。なお、文書は、「パッセージ」や「検索対象テキスト」等と称されてもよい。
【００１２】
＜対話処理装置１０の全体構成＞
対話型の機械読解では、ニューラルネットワークにより実現されるモデルを用いて現在の質問に対する回答を生成する。このため、モデルのパラメータ（以降、「モデルパラメータ」とも表す。）を学習する「学習時」と、学習済みのモデルパラメータを用いて現在の質問に対する回答を生成する「推論時」とが存在する。なお、モデルパラメータは、例えば、補助記憶装置等の記憶装置に記憶される。
【００１３】
≪推論時における対話処理装置１０の全体構成≫
推論時における対話処理装置１０の全体構成について、図１を参照しながら説明する。図１は、本発明の実施の形態における対話処理装置１０の全体構成（推論時）の一例を示す図である。
【００１４】
図１に示すように、推論時における対話処理装置１０は、機能部として、対話処理部１００を有する。対話処理部１００は、現在の質問Ｑｉと文書Ｐと質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを入力として、学習済みのモデルパラメータを用いて抽出形式又は生成形式により回答Ａｉを生成する。そして、対話処理部１００は、生成した回答Ａｉを出力する。ここで、ｉは対話の中で質問（及びその回答）が何番目であるかを表すインデックスであり、ｋは現在の質問Ｑｉに対する回答Ａｉを生成する際に履歴として考慮する過去の回答及び質問の個数である。ｋは、例えば、予め設定される。
【００１５】
また、現在の質問Ｑｉ及び過去の質問Ｑｉ−１，・・・，Ｑｉ−ｋの各々は、それぞれ１つ以上の単語で構成されるテキスト（つまり、文字列）である。同様に、過去の回答Ａｉ−１，・・・，Ａｉ−ｋの各々は、それぞれ１つ以上の単語で構成されるテキストである。同様に、文書Ｐも１つ以上の単語で構成されるテキストである。以降では、文書Ｐを構成する単語数（つまり、文書Ｐの長さ）をＴで表す。ただし、Ｔは、文書Ｐを構成する単語数に限られず、例えば、「文書Ｐを構成する単語数＋特殊文字数」であってもよい。なお、特殊文字としては、例えば、文頭を表す文字、文末を表す文字、パディングに用いられる文字、単語や文同士を結合する際に用いられる文字等が挙げられる。
【００１６】
なお、対話型の機械読解では複数の文書が含まれる文書集合が入力されることもあるが、本実施形態では、単一の文書Ｐが入力されるものとする。また、本実施形態では、文書Ｐの長さとしては、１段落程度の単語数（例えば、数百語程度）を想定する。
【００１７】
図１に示すように、対話処理部１００には、質問符号化部１１０と、文脈符号化部１２０と、文脈結合部１３０と、回答生成部１４０とが含まれる。これらの各機能部はそれぞれ１つ以上のニューラルネットワークにより実現される。
【００１８】
質問符号化部１１０は、文書Ｐと現在の質問Ｑｉとを入力として、学習済みモデルパラメータを用いて現在の質問Ｑｉで条件付けされた文書Ｐの特徴量｛ｕｉ１，・・・，ｕｉＴ｝を算出する（つまり、現在の質問Ｑｉを符号化する。）。なお、ｕｉ１，・・・，ｕｉＴはそれぞれｄ次元のベクトルである。
【００１９】
文脈符号化部１２０は、文書Ｐと質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを入力として、学習済みモデルパラメータを用いて、質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝で条件付けされた文書Ｐの特徴量｛ｕｉ−１１，・・・，ｕｉ−ｋ１｝，・・・，｛ｕｉ−１Ｔ，・・・，ｕｉ−ｋＴ｝と、回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝で条件付けされた文書Ｐの特徴量｛ｖｉ−１１，・・・，ｖｉ−ｋ１｝，・・・，｛ｖｉ−１Ｔ，・・・，ｖｉ−ｋＴ｝とを算出する（つまり、質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とをそれぞれ符号化する。）。なお、ｔ＝１，・・・，Ｔに対して、ｕｉ−１ｔ，・・・，ｕｉ−ｋｔ，ｖｉ−１ｔ，・・・，ｖｉ−ｋｔはそれぞれｄ次元のベクトルである。
【００２０】
ここで、例えば非特許文献１に記載されている対話型の機械読解では、回答履歴中の各回答は文書内で回答となる範囲の開始位置と終了位置との組で表現される一方で、質問履歴中の各質問はテキストで表現される。これに対して、本実施形態では、上述したように、回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝中の各回答も、質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝中の各質問もいずれもテキストで表現される。このため、本実施形態では、質問履歴に関する文書Ｐの特徴量｛ｕｉ−１ｔ，・・・，ｕｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）と、回答履歴に関する文書Ｐの特徴量｛ｖｉ−１ｔ，・・・，ｖｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）とを等価に扱うことが可能となる。
【００２１】
文脈結合部１３０は、質問符号化部１１０で算出された特徴量｛ｕｉ１，・・・，ｕｉＴ｝と、文脈符号化部１２０で算出された特徴量｛ｕｉ−１ｔ，・・・，ｕｉ−ｋｔ｝及び｛ｖｉ−１ｔ，・・・，ｖｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）とを入力として、学習済みモデルパラメータを用いて特徴量ｏｔ（ｔ＝１，・・・，Ｔ）を算出する。これらの特徴量ｏｔはｄ×（１＋２ｋ）次元のベクトルであり、現在の質問Ｑｉと質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを反映した特徴量である。
【００２２】
回答生成部１４０は、文脈結合部１３０で算出された特徴量ｏｔ（ｔ＝１，・・・，Ｔ）を入力として、学習済みモデルパラメータを用いて回答Ａｉを生成する。このとき、回答生成部１４０は、後述するように抽出形式又は生成形式により回答Ａｉを生成する。
【００２３】
≪学習時における対話処理装置１０の全体構成≫
学習時における対話処理装置１０の全体構成について、図２を参照しながら説明する。図２は、本発明の実施の形態における対話処理装置１０の全体構成（学習時）の一例を示す図である。
【００２４】
図２に示すように、学習時における対話処理装置１０は、機能部として、対話処理部１００と、更新部２００とを有する。なお、対話処理部１００は推論時と同様であるため、その説明を省略する。ただし、学習時では、対話処理部１００は、学習済みでないモデルパラメータを用いて回答Ａｉを生成する。
【００２５】
更新部２００は、現在の質問Ｑｉに対する正解回答
【００２６】
【数１】
0006649536.tif 000002
と、対話処理部１００によって生成された回答Ａｉとを入力として、教師あり学習の手法によりモデルパラメータを更新する。これにより、モデルパラメータが学習される。なお、以降では、現在の質問Ｑｉに対する正解回答を「＾Ａｉ」とも表記する。
【００２７】
＜対話処理＞
以降では、現在の質問Ｑｉと文書Ｐと質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを入力として、学習済みのモデルパラメータを用いて抽出形式又は生成形式により回答Ａｉを生成する処理（対話処理）について、図３を参照しながら説明する。図３は、本発明の実施の形態における対話処理の一例を示すフローチャートである。
【００２８】
ステップＳ１０１：質問符号化部１１０は、文書Ｐと現在の質問Ｑｉとを入力として、学習済みモデルパラメータを用いて現在の質問Ｑｉで条件付けされた文書Ｐの特徴量ｕｉｔ（ｔ＝１，・・・，Ｔ）を算出する。
【００２９】
ここで、質問符号化部１１０を実現するニューラルネットワークのモデルとしては、例えば、以下の参考文献１に記載されているＢＥＲＴ（Bidirectional Encoder Representations from Transformers）と呼ばれるモデルを採用することができる。
【００３０】
［参考文献１］
J. Devlin, M.-W. Chang, K. Lee, and K. Toutanova. Bert:Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805, 2018.
質問符号化部１１０を実現するニューラルネットワークのモデルはＢＥＲＴ以外の他の符号化モデルでもよいが、ＢＥＲＴのような「Transformerモデルを用いた事前学習を行うことによって、言語理解に関する知識を持つモデル」を用いることで、より高い精度を実現することが可能となる。なお、Transformerモデルについては、以下の参考文献２を参照されたい。
【００３１】
［参考文献２］
A. Vaswani, N. Shazeer, N. Parmar, and J. Uszkoreit. Attention is all you need, arXiv preprint arXiv:1706.03762, 2017.
質問符号化部１１０を実現するニューラルネットワークのモデルとして上記の参考文献１に記載されているＢＥＲＴを採用する場合、質問符号化部１１０は、文書Ｐと現在の質問Ｑｉとをセパレータトークン［ＳＥＰ］で結合した上で、モデルに入力する。これにより、現在の質問Ｑｉで条件付けされた文書Ｐの特徴量ｕｉｔ（ｔ＝１，・・・，Ｔ）が得られる。
【００３２】
なお、質問符号化部１１０を実現するニューラルネットワークのモデルはＢＥＲＴに限られず、文書Ｐと現在の質問Ｑｉとを入力として現在の質問Ｑｉで条件付けされた文書Ｐの特徴量ｕｉｔ（ｔ＝１，・・・，Ｔ）を算出するモデルであれば任意のモデルを採用することが可能である。
【００３３】
ステップＳ１０２：文脈符号化部１２０は、文書Ｐと質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを入力として、学習済みモデルパラメータを用いて、質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝で条件付けされた文書Ｐの特徴量｛ｕｉ−１ｔ，・・・，ｕｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）と、回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝で条件付けされた文書Ｐの特徴量｛ｖｉ−１ｔ，・・・，ｖｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）とを算出する。
【００３４】
ここで、文脈符号化部１２０を実現するニューラルネットワークのモデルとしては、例えば、上記の参考文献１に記載されているＢＥＲＴを採用することができる。文脈符号化部１２０を実現するニューラルネットワークのモデルとしてＢＥＲＴを採用する場合、文脈符号化部１２０は、質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝を符号化するモデルと、回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝を符号化するモデルとが含まれる。したがって、この場合、文脈符号化部１２０は、質問履歴中の各質問と文書Ｐとをセパレータトークン［ＳＥＰ］で結合した上で、質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝を符号化するモデルに入力する。同様に、文脈符号化部１２０は、回答履歴中の各回答と文書Ｐとをセパレータトークン［ＳＥＰ］で結合した上で、回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝を符号化するモデルに入力する。
【００３５】
文脈符号化部１２０を実現するニューラルネットワークのモデルはＢＥＲＴ以外の他の符号化モデルでもよいが、ＢＥＲＴのような「Transformerモデルを用いた事前学習を行うことによって、言語理解に関する知識を持つモデル」を用いることで、より高い精度を実現することが可能となる。なお、Transformerモデルについては、上記の参考文献２を参照されたい。
【００３６】
より具体的には、例えば、或る過去の質問Ｑｉ−ｊ（ｊ∈｛１，・・・，ｋ｝）を符号化する場合、文脈符号化部１２０は、この過去の質問Ｑｉ−ｊと文書Ｐとをセパレータトークン［ＳＥＰ］で結合した上で、質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝を符号化するモデルに入力する。これにより、過去の質問Ｑｉ−ｊで条件付けされた文書Ｐの特徴量｛ｕｉ−ｊ１，・・・，ｕｉ−ｊＴ｝が得られる。
【００３７】
同様に、例えば、或る過去の回答Ａｉ−ｊ（ｊ∈｛１，・・・，ｋ｝）を符号化する場合、文脈符号化部１２０は、この過去の回答Ａｉ−ｊと文書Ｐとをセパレータトークン［ＳＥＰ］で結合した上で、回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝を符号化するモデルに入力する。これにより、過去の回答Ａｉ−ｊで条件付けされた文書Ｐの特徴量｛ｖｉ−ｊ１，・・・，ｖｉ−ｊＴ｝が得られる。
【００３８】
以上により、過去の質問Ｑｉ−ｊ（ｊ＝１，・・・，ｋ）でそれぞれ条件付けされた文書Ｐの特徴量｛ｕｉ−１ｔ，・・・，ｕｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）と、過去の回答Ａｉ−ｊ（ｊ＝１，・・・，ｋ）でそれぞれ条件付けされた文書Ｐの特徴量｛ｖｉ−１ｔ，・・・，ｖｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）とが算出される。
【００３９】
なお、文脈符号化部１２０を実現するニューラルネットワークのモデルはＢＥＲＴに限られず、文書Ｐと質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを入力として、質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝で条件付けされた文書Ｐの特徴量｛ｕｉ−１ｔ，・・・，ｕｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）と、回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝で条件付けされた文書Ｐの特徴量｛ｖｉ−１ｔ，・・・，ｖｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）とを算出するモデルであれば任意のモデルを採用することが可能である。
【００４０】
ステップＳ１０３：文脈結合部１３０は、質問符号化部１１０で算出された特徴量｛ｕｉ１，・・・，ｕｉＴ｝と、文脈符号化部１２０で算出された特徴量｛ｕｉ−１ｔ，・・・，ｕｉ−ｋｔ｝及び｛ｖｉ−１ｔ，・・・，ｖｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）とを入力として、学習済みモデルパラメータを用いて特徴量ｏｔ（ｔ＝１，・・・，Ｔ）を算出する。具体的には、文脈結合部１３０は、ｏｔ＝［ｕｉｔ；ｕｉ−１ｔ；・・・；ｕｉ−ｋｔ；ｖｉ−１ｔ；・・・；ｖｉ−ｋｔ］として、各ｔ＝１，・・・，Ｔに対して特徴量ｏｔを算出すればよい。ここで、演算子「；」は次元方向の連結を表す。これにより、特徴量ｏｔ（ｔ＝１，・・・，Ｔ）が得られる。なお、この場合、各特徴量ｏｔ（ｔ＝１，・・・，Ｔ）はｄ×（１＋２ｋ）次元のベクトルである。
【００４１】
ここで、文脈結合部１３０を実現するニューラルネットワークのモデルとしては、特徴量｛ｕｉ１，・・・，ｕｉＴ｝と特徴量｛ｕｉ−１ｔ，・・・，ｕｉ−ｋｔ｝及び｛ｖｉ−１ｔ，・・・，ｖｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）とを入力として、現在の質問Ｑｉと質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを反映した特徴量ｏｔ（ｔ＝１，・・・，Ｔ）を算出可能なモデルであれば、任意のモデルを採用することが可能である。具体的には、例えば、ＲＮＮ（Recurrent Neural Network）等を採用することが可能である。
【００４２】
ただし、文脈結合部１３０は必ずしもニューラルネットワークで実現されている必要はなく、文脈結合部１３０は、各ｔ＝１，・・・，Ｔに対して、上記の演算子「；」によりｕｉｔと｛ｕｉ−１ｔ，・・・，ｕｉ−ｋｔ｝と｛ｖｉ−１ｔ，・・・，ｖｉ−ｋｔ｝とを結合する処理を行ってもよい。
【００４３】
ステップＳ１０４：回答生成部１４０は、文脈結合部１３０で算出された特徴量ｏｔ（ｔ＝１，・・・，Ｔ）を入力として、学習済みモデルパラメータを用いて抽出形式又は生成形式により回答Ａｉを生成する。
【００４４】
（１）抽出形式により回答Ａｉを生成する場合
抽出形式により回答Ａｉを生成する場合、回答生成部１４０を実現するニューラルネットワークのモデルとしては、例えば、以下の参考文献３に記載されているＢｉＤＡＦ（BiDirectional Attention Flow）と呼ばれるモデルを採用することができる。この場合、回答生成部１４０をＢｉＤＡＦのＭｏｄｅｌｉｎｇ  ＬａｙｅｒとＯｕｔｐｕｔ  Ｌａｙｅｒとで実現する。具体的には、回答生成部１４０は、参考文献３に記載されているＢｉＤＡＦのＭｏｄｅｌｉｎｇ  Ｌａｙｅｒに特徴量ｏｔ（ｔ＝１，・・・，Ｔ）を入力して、Ｏｕｔｐｕｔ  Ｌａｙｅｒの出力として文書Ｐの各単語が回答Ａｉの開始位置である確率と終了位置である確率とを出力する。そして、回答生成部１４０は、これらの確率に基づいて動的計画法によって回答Ａｉとなる文書Ｐの範囲を推定した上で、当該範囲内の単語を文書Ｐから抜き出すことで回答Ａｉを生成する。
【００４５】
［参考文献３］
Min Joon Seo, Aniruddha Kembhavi, Ali Farhadi, and Hannaneh Hajishirzi. Bidirectional attention flow for machine comprehension. In ICLR 2017.
なお、抽出形式により回答Ａｉを生成する場合に、回答生成部１４０を実現するニューラルネットワークのモデルはＢｉＤＡＦに限られず、特徴量ｏｔ（ｔ＝１，・・・，Ｔ）を入力として、抽出形式により回答Ａｉを生成するモデルであれば任意のモデルを採用することが可能である。
【００４６】
（２）生成形式により回答Ａｉを生成する場合
生成形式により回答Ａｉを生成する場合、回答生成部１４０を実現するニューラルネットワークのモデルとしては、例えば、以下の参考文献４に記載されているSequence-to-sequence attentional modelと呼ばれるモデルやPointer-generatorと呼ばれるモデルを採用することができる。この場合、回答生成部１４０を、Sequence-to-sequence attentional modelの符号化器（Encoder）と復号化器（Decoder）、又は、Pointer-generatorの符号化器と復号化器で実現する。具体的には、回答生成部１４０は、参考文献４に記載されているSequence-to-sequence attentional model又はPointer-generatorの符号化器に特徴量ｏｔ（ｔ＝１，・・・，Ｔ）を入力して、文書Ｐの各単語を重視する確率（参考文献４に記載されているAttention Distribution）を算出する。そして、回答生成部１４０は、これらの確率を復号化器（参考文献４に記載されているSequence-to-sequence attentional model又はPointer-generatorの復号化器）に入力して、回答Ａｉを生成する。なお、このとき、回答生成部１４０は、文書Ｐの各単語を重視する確率と、所定の語彙集合中の単語を重視する確率（参考文献４に記載されているVocabulary Distribution）とに基づいて、文書Ｐ中の単語をコピー又は所定の語彙集合中の単語を生成することで回答Ａｉを生成する。
【００４７】
［参考文献４］
Abigail See, Peter J. Liu, and Christopher D. Manning. Get to the point: Summarization with pointer-generator networks. In Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 1073-1083, July 2017.
なお、生成形式により回答Ａｉを生成する場合に、回答生成部１４０を実現するニューラルネットワークのモデルはSequence-to-sequence attentional modelやPointer-generatorに限られず、特徴量ｏｔ（ｔ＝１，・・・，Ｔ）を入力として、生成形式により回答Ａｉを生成するモデルであれば任意のモデルを採用することが可能である。
【００４８】
以上のように、本実施形態に係る対話処理装置１０は、現在の質問Ｑｉと文書Ｐと質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを入力として、抽出形式又は生成形式により回答Ａｉを生成することができる。すなわち、本実施形態に係る対話処理装置１０は、過去の各回答Ａｉ−ｊ（ｊ＝１，・・・，ｋ）がテキストである回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝を入力することができるため、回答生成部１４０を実現するニューラルネットワークのモデルとして、抽出形式により回答Ａｉを生成するモデル又は生成形式により回答Ａｉを生成するモデルのいずれも採用することが可能となる。
【００４９】
また、本実施形態に係る対話処理装置１０では、質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とが共にテキストであるため、質問履歴に関する文書Ｐの特徴量｛ｕｉ−１ｔ，・・・，ｕｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）と、回答履歴に関する文書Ｐの特徴量｛ｖｉ−１ｔ，・・・，ｖｉ−ｋｔ｝（ｔ＝１，・・・，Ｔ）とを等価に扱うことが可能となる。
【００５０】
＜学習処理＞
以降では、対話処理部１００に含まれる各機能部（質問符号化部１１０、文脈符号化部１２０、文脈結合部１３０及び回答生成部１４０）を実現するニューラルネットワークのモデルパラメータを学習する処理（学習処理）について、図４を参照しながら説明する。図４は、本発明の実施の形態における学習処理の一例を示すフローチャートである。
【００５１】
ここで、学習処理に用いる学習用データのデータセットとしては、例えば、以下の参考文献５に記載されているデータセット（QuAC）を用いることができる。
【００５２】
［参考文献５］
Eunsol Choi, He He, Mohit Iyyer, Mark Yatskar, Wentau Yih, Yejin Choi, Percy Liang, and Luke Zettlemoyer. 2018. QuAC : Question Answering in Context. In EMNLP. ArXiv: 1808.07036.
各学習用データには、現在の質問Ｑｉと、文書Ｐと、質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と、回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝と、正解回答＾Ａｉとが含まれる。なお、回答生成部１４０を実現するニューラルネットワークのモデルが抽出形式により回答Ａｉを生成するモデルである場合、正解回答＾Ａｉは、文書Ｐ内で正解の回答となる範囲の開始位置と終了位置との組で表現される。一方で、生成形式により回答Ａｉを生成するモデルである場合、正解回答＾Ａｉは、正解の回答を表す１以上の単語で表現される。
【００５３】
図４のステップＳ２０１〜ステップＳ２０４は、各学習用データに対して繰り返し実行される。これらのステップＳ２０１〜ステップＳ２０４は、図３のステップＳ１０１〜ステップＳ１０４とそれぞれ同様であるため、その説明を省略する。ただし、現在の質問Ｑｉ、文書Ｐ、質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝及び回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝は、各学習用データに含まれるものを用いる。また、モデルパラメータは、学習済みでないモデルパラメータを用いる。
【００５４】
ステップＳ２０５：更新部２００は、正解回答＾Ａｉと対話処理部１００によって生成された回答Ａｉとを入力として、既知の教師あり学習の手法によりモデルパラメータを更新する。なお、回答生成部１４０を実現するニューラルネットワークのモデルが抽出形式により回答Ａｉを生成するモデルである場合、更新部２００は、当該回答Ａｉを生成する際に用いた開始位置及び終了位置を用いて、当該回答Ａｉと正解回答＾Ａｉとの誤差を算出する。
【００５５】
上記のステップＳ２０５は、例えば、所定の個数の学習用データで構成されるミニバッチ毎に実行される。
【００５６】
以上により、本実施形態に係る対話処理装置１０は、対話処理部１００に含まれる各機能部を実現するニューラルネットワークのモデルパラメータを学習することができる。
【００５７】
＜実験結果＞
次に、本実施形態に係る対話処理装置１０を用いて、従来技術と比較を行った実験結果について説明する。データセットとしては、以下の３種類のQuACの抽出型（抽出形式の機械読解に用いられるデータセット）を用いた。
【００５８】
・学習セット：81,425 QA
・開発セット：7,354 QA
・テストセット：7,353 QA
なお、学習セットはモデルパラメータの学習にのみ用いた。
【００５９】
また、本実施形態に係る対話処理装置１０では、質問符号化部１１０及び文脈符号化部１２０をＢＥＲＴで実現し、回答生成部１４０をＢｉＤＡＦのＭｏｄｅｌｉｎｇ  ＬａｙｅｒとＯｕｔｐｕｔ  Ｌａｙｅｒとで実現した。なお、ＢＥＲＴの設定条件は以下とした。
【００６０】
・最大系列長：384 tokens
・スライド幅：128 tokens
・最大のクエリ（質問）の長さ：64 tokens
・最大の回答の長さ：30 tokens
・Fine-tuning：2 epoch
なお、最大系列長とはＢＥＲＴに入力可能な単語長である。スライド幅は最大系列長を超える長さの単語列をＢＥＲＴに入力する場合に用いられ、スライド幅ずつ単語列をスライドさせながらＢＥＲＴに入力される。本実験では最大系列長が384 tokens、スライド幅が128 tokensであるため、384 tokensを超える単語列をＢＥＲＴに入力する場合にはスライド前後で一部の単語列をオーバラップさせながらＢＥＲＴに入力される。
【００６１】
このとき、非特許文献１に記載されている従来手法（FlowQA）と、本実施形態に係る対話処理装置１０の手法（本実施形態の手法）とのＦ値（開発セットを用いた場合のＦ値及びテストセットを用いた場合のＦ値）の比較結果を以下の表１に示す。
【００６２】
【表１】
0006649536.tif 000003
上記の比較結果に示されているように、本実施形態の手法は、従来手法と比較して、開発セット及びテストセットいずれでもＦ値が高くなっている。このため、本実施形態の手法は、従来手法と比較して、より高い精度で適切な回答を生成できていることがわかる。
【００６３】
＜対話処理装置１０のハードウェア構成＞
最後に、本実施形態に係る対話処理装置１０のハードウェア構成について、図５を参照しながら説明する。図５は、本発明の実施の形態における対話処理装置１０のハードウェア構成の一例を示す図である。
【００６４】
図５に示すように、本実施形態に係る対話処理装置１０は、ハードウェアとして、入力装置３０１と、表示装置３０２と、外部Ｉ／Ｆ３０３と、ＲＡＭ（Random Access Memory）３０４と、ＲＯＭ（Read Only Memory）３０５と、プロセッサ３０６と、通信Ｉ／Ｆ３０７と、補助記憶装置３０８とを有する。これら各ハードウェアは、それぞれがバスＢを介して相互に通信可能に接続されている。
【００６５】
入力装置３０１は、例えばキーボードやマウス、タッチパネル等である。表示装置３０２は、例えばディスプレイ等である。なお、対話処理装置１０は、入力装置３０１及び表示装置３０２の少なくとも一方を有していなくてもよい。
【００６６】
外部Ｉ／Ｆ３０３は、外部装置とのインタフェースである。外部装置には、記録媒体３０３ａ等がある。対話処理装置１０は、外部Ｉ／Ｆ３０３を介して、記録媒体３０３ａ等の読み取りや書き込みを行うことができる。記録媒体３０３ａとしては、例えば、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等が挙げられる。なお、記録媒体３０３ａには、対話処理装置１０が有する各機能部（例えば、対話処理部１００や更新部２００）を実現する１以上のプログラムが記録されていてもよい。
【００６７】
ＲＡＭ３０４は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ３０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。
【００６８】
プロセッサ３０６は、例えばＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）等の演算装置であり、ＲＯＭ３０５や補助記憶装置３０８等からプログラムやデータをＲＡＭ３０４上に読み出して処理を実行する。対話処理装置１０が有する各機能部は、例えば、補助記憶装置３０８に格納されている１以上のプログラムがプロセッサ３０６に実行させる処理により実現される。なお、対話処理装置１０は、プロセッサ３０６としてＣＰＵとＧＰＵとの両方を有していてもよいし、ＣＰＵ又はＧＰＵのいずれか一方のみを有していてもよい。
【００６９】
通信Ｉ／Ｆ３０７は、対話処理装置１０を通信ネットワークに接続するためのインタフェースである。対話処理装置１０が有する各機能部を実現する１以上のプログラムは、通信Ｉ／Ｆ３０７を介して、所定のサーバ装置等から取得（ダウンロード）されてもよい。
【００７０】
補助記憶装置３０８は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置３０８に格納されているプログラムやデータには、例えば、ＯＳ、対話処理装置１０が有する各機能部を実現する１以上のプログラム等がある。
【００７１】
本実施形態に係る対話処理装置１０は、図５に示すハードウェア構成を有することにより、上述した対話処理及び学習処理を実現することができる。なお、図５に示す例では、本実施形態に係る対話処理装置１０が１台の装置（コンピュータ）で実現されている場合について説明したが、これに限られない。本実施形態に係る対話処理装置１０は、複数台の装置（コンピュータ）で実現されていてもよい。また、１台の装置（コンピュータ）には、複数のプロセッサ３０６や複数のメモリ（ＲＡＭ３０４やＲＯＭ３０５、補助記憶装置３０８等）が含まれていてもよい。
【００７２】
本発明は、具体的に開示された上記の実施の形態に限定されるものではなく、請求の範囲の記載から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００７３】
１０        対話処理装置
１００      対話処理部
１１０      質問符号化部
１２０      文脈符号化部
１３０      文脈結合部
１４０      回答生成部
２００      更新部
【要約】
対話における現在の質問を表す単語列である質問Ｑｉと、前記質問Ｑｉに対する回答Ａｉの生成に用いられる文書Ｐと、過去のｋ個の質問をそれぞれ表す単語列である質問履歴｛Ｑｉ−１，・・・，Ｑｉ−ｋ｝と、前記ｋ個の質問に対する回答をそれぞれ表す単語列である回答履歴｛Ａｉ−１，・・・，Ａｉ−ｋ｝とを入力として、予め学習済みのモデルパラメータを用いて、抽出形式又は生成形式の機械読解によって前記回答Ａｉを生成する生成手段、を有することを特徴とする。【図１】
0006649536.tif 000004
【図２】
0006649536.tif 000005
【図３】
0006649536.tif 000006
【図４】
0006649536.tif 000007
【図５】
0006649536.tif 000008