(57)【要約】【課題】回答に関する質問を生成する際に、パッセージ中で回答部分となる範囲の指定を不要とすること。【解決手段】生成装置は、文書を入力として、予め学習済みの機械学習モデルを用いて、前記文書中で回答となる可能性のある範囲を１つ以上抽出し、該抽出した範囲が回答となる質問表現をそれぞれ生成する生成手段、を有することを特徴とする。【選択図】図１
2020135456.tif 000002
【特許請求の範囲】
【請求項１】
文書を入力として、予め学習済みの機械学習モデルを用いて、前記文書中で回答となる可能性のある範囲を１つ以上抽出し、該抽出した範囲が回答となる質問表現をそれぞれ生成する生成手段、
を有することを特徴とする生成装置。
【請求項２】
前記生成手段は、
前記質問表現を構成する単語を前記文書中からコピーして生成する際に、前記抽出した範囲に含まれる単語が、前記質問表現を構成する単語として生成されないように、前記範囲に含まれる単語がコピーされる確率を調整する、ことを特徴とする請求項１に記載の生成装置。
【請求項３】
前記機械学習モデルには、１つ以上のニューラルネットワークが含まれ、
前記１つ以上のニューラルネットワークには、前記範囲を抽出する層と、前記質問表現を生成する層と、所定のエンコード層とが含まれる、ことを特徴とする請求項１又は２に記載の生成装置。
【請求項４】
前記エンコード層は、
前記文書から得られた単語系列をエンコードしてベクトル系列に変換する際に、前記文書から抽出又は前記生成装置とは異なる他の装置から取得された素性情報も用いて前記エンコードする、ことを特徴とする請求項３に記載の生成装置。
【請求項５】
前記質問表現は、質問文、又は、質問を表すキーワード集合である、ことを特徴とする請求項１乃至４の何れか一項に記載の生成装置。
【請求項６】
文書を入力として、機械学習モデルを用いて、前記文書中で回答となる可能性のある範囲を１つ以上抽出し、該抽出した範囲が回答となる質問表現をそれぞれ生成する生成手段と、
前記抽出した範囲と、該範囲に対する正解の範囲との誤差、及び、前記質問表現と、該質問表現に対する正解の質問表現との誤差を用いて、前記機械学習モデルのパラメータを学習する学習手段と、
を有することを特徴とする学習装置。
【請求項７】
文書を入力として、予め学習済みの機械学習モデルを用いて、前記文書中で回答となる可能性のある範囲を１つ以上抽出し、該抽出した範囲が回答となる質問表現をそれぞれ生成する生成手順、
をコンピュータが実行することを特徴とする生成方法。
【請求項８】
コンピュータを、請求項１乃至５の何れか一項に記載の生成装置における各手段、又は、請求項６に記載の学習装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成装置、学習装置、生成方法及びプログラムに関する。
【背景技術】
【０００２】
質問生成は、自然言語で記述された文章（パッセージ）が与えられた場合に、そのパッセージに関する質問（質問文）を自動生成するタスクである。
【０００３】
近年では、パッセージ中から切り出した一部分を回答として質問生成モデルに与えることで、回答部分のみに着目した質問生成を行う技術が提案されている（例えば非特許文献１参照）。このような技術では、例えば「ＮＴＴは２０１８年１１月２９日に東京都武蔵野市でＲ＆Ｄフォーラム２０１８を開催しました。」というパッセージを用いて、このパッセージから切り出した「ＮＴＴ」を回答として質問生成モデルに与えた場合、「Ｒ＆Ｄフォーラムを開催した会社は？」等といった会社名を問う質問が生成される。同様に、例えば「２０１８年１１月２９日」を回答として質問生成モデルに与えた場合、「ＮＴＴがＲ＆Ｄフォーラム２０１８を開催したのはいつ？」等といった時期を問う質問が生成される。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Xinya Du, Claire Cardie, "Harvesting Paragraph-Level Question-Answer Pairs from Wikipedia", ACL2018
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の技術では、質問生成モデルに与える回答部分（すなわち、パッセージ中から切り出される回答部分の範囲）は人手で指定する必要があった。このため、例えば、大量のパッセージから質問を自動生成するような場合には、これら大量のパッセージに対して、質問生成モデルに与える回答部分を人手で指定する必要があり、多くのコストを要していた。
【０００６】
本発明は、上記の点に鑑みてなされたもので、回答に関する質問を生成する際に、パッセージ中で回答部分となる範囲の指定を不要とすることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の実施の形態における生成装置は、文書を入力として、予め学習済みの機械学習モデルを用いて、前記文書中で回答となる可能性のある範囲を１つ以上抽出し、該抽出した範囲が回答となる質問表現をそれぞれ生成する生成手段、を有することを特徴とする。
【発明の効果】
【０００８】
回答に関する質問を生成する際に、パッセージ中で回答部分となる範囲の指定を不要とすることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態における生成装置の機能構成（回答及び質問生成時）の一例を示す図である。
【図２】本発明の実施の形態における生成装置の機能構成（学習時）の一例を示す図である。
【図３】本発明の実施の形態における生成装置のハードウェア構成の一例を示す図である。
【図４】本発明の実施の形態における回答及び質問生成処理の一例を示すフローチャートである。
【図５】本発明の実施の形態における学習処理の一例を示すフローチャートである。
【図６】回答及び質問の一例を説明するための図である。
【図７】本発明の実施の形態における生成装置の機能構成（回答及び質問生成時）の変形例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。以降の本発明の実施の形態では、パッセージを入力として、パッセージ中で回答となる可能性のある範囲と、その回答に関する質問とを同時に生成する質問生成モデル（以降、単に「生成モデル」とも表す。）を用いた生成装置１０について説明する。本発明の実施の形態では、質問回答に用いられる手法である機械読解のモデルとデータセットとを活用することで、パッセージ中で回答となる可能性がある範囲（回答範囲）を複数抽出した上で、これらの回答範囲が回答となるような質問を生成する。これにより、回答に関する質問を生成する際に、パッセージ中で回答部分となる範囲の指定を不要とすることができる。なお、これに対して、従来技術では、回答に関する質問を生成する際に、パッセージ中で回答部分となる範囲を指定する必要がある。
【００１１】
なお、本発明の実施の形態では、生成モデルは、ニューラルネットワークを用いた機械学習モデルであるものとする。ただし、生成モデルには、複数のニューラルネットワークが用いられてもよい。また、生成モデルの一部又は全部に、ニューラルネットワーク以外の機械学習モデルが用いられていてもよい。
【００１２】
ここで、従来の質問生成では、パッセージの内容に基づく質問を生成するため、質問を構成する単語等をパッセージ中からそのまま使用（コピー）している。このため、例えば、与えられた回答に対応する範囲に含まれる単語等をパッセージ中からそのまま使用した質問が生成される場合がある。例えば、回答範囲「２０１８月１１月２９日」に対して、「ＮＴＴがＲ＆Ｄフォーラム２０１８を開催したのは２０１８年１１月２９日？」等というＹＥＳ／ＮＯで回答可能な質問が生成される場合がある。このようなＹＥＳ／ＮＯで回答可能な質問は、例えば、質問生成タスクの応用先であるチャットボットやＦＡＱ検索等では利用されにくい質問であるため、ＹＥＳ／ＮＯで回答可能な質問は生成されないようにすることが好ましい。
【００１３】
そこで、本発明の実施の形態では、パッセージ中の単語等をコピーして質問を生成する際に、回答範囲からのコピーを抑止する仕組みを生成モデルに導入する。より具体的には、パッセージ中の単語等をコピーして質問を生成する際に、回答範囲から単語等がコピーされる確率が低くなるように調整（確率が０となるように調整することも含む）する。これにより、回答範囲以外の部分からコピーされた単語等で質問が生成され、ＹＥＳ／ＮＯで回答可能な質問の生成を防止することができる。
【００１４】
＜生成装置１０の機能構成＞
本発明の実施の形態では、学習済みの生成モデルを用いて回答及び質問を生成する段階（回答及び質問生成時）と、この生成モデルを学習する段階（学習時）とが存在する。
【００１５】
≪回答及び質問生成時≫
まず、回答及び質問生成時における生成装置１０の機能構成について、図１を参照しながら説明する。図１は、本発明の実施の形態における生成装置１０の機能構成（回答及び質問生成時）の一例を示す図である。
【００１６】
図１に示すように、回答及び質問生成時における生成装置１０は、機能部として、分割部１１０と、テキスト処理部１２０と、素性抽出部１３０と、生成処理部１４０と、回答・質問出力部１５０とを有する。本発明の実施の形態では、回答及び質問生成時には、自然文で記述された文書（例えば、マニュアル等）が生成装置１０に入力されるものとする。なお、この文書は、例えば、生成装置１０又は他の装置に入力された音声を音声認識した結果として得られた文書であってもよい。
【００１７】
分割部１１０は、入力された文書を１以上の文章（パッセージ）に分割する。ここで、入力された文書が長文である場合等には文書全体を生成モデルで処理することは難しい。そこで、分割部１１０は、入力された文書を、生成モデルで処理可能な長さのパッセージ（例えば、数百〜数千語程度の長さのパッセージ）に分割する。なお、分割部１１０によって分割された文書は、「部分文書」等と称されてもよい。
【００１８】
入力された文書を１以上のパッセージに分割する方法としては、任意の方法を用いることができる。例えば、文書の各段落をそれぞれパッセージに分割してもよいし、文書がＨＴＭＬ（HyperText Markup Language）形式等の構造化部署である場合にはタグ等のメタ情報を用いてパッセージに分割してもよい。また、例えば、１つのパッセージ中に含まれる文字数等を規定した分割ルールをユーザが独自に作成した上で、これらの分割ルールを用いてパッセージに分割してもよい。
【００１９】
以降のテキスト処理部１２０、素性抽出部１３０、生成処理部１４０及び回答・質問出力部１５０は、パッセージ単位で処理を実行する。したがって、分割部１１０によって文書が複数のパッセージに分割された場合、素性抽出部１３０、生成処理部１４０及び回答・質問出力部１５０は、パッセージ毎に繰り返し処理を実行する。
【００２０】
テキスト処理部１２０は、生成モデルに入力可能な形式にパッセージを変換する。後述する分散表現変換層１４１では単語単位で分散表現に変換するため、テキスト処理部１２０は、パッセージを単語単位に分割した形式（例えば、単語単位に半角スペースで区切った形式等）で表現される単語系列に変換する。ここで、パッセージを単語系列に変換する際の変換形式としては、後述する分散表現変換層１４１で分散表現に変換可能な形式であれば任意の形式を用いることができる。例えば、パッセージが英語である場合には、半角スペース区切りの単語をそのまま用いて単語系列にすることもできるし、単語をサブワードに分割した形式を単語系列とすることもできる。また、例えば、パッセージが日本語である場合には、パッセージを形態素解析した上で、その結果得られる形態素を単語として、これら単語を半角スペースで区切って単語系列としてもよい。なお、形態素解析器については、任意の解析器を用いることができる。
【００２１】
素性抽出部１３０は、回答及び質問の生成に有効な情報を素性情報としてパッセージから抽出する。この素性情報についても、後述する分散表現変換層１４１で分散表現に変換可能であれば任意の素性情報を用いることができる。例えば、上記の非特許文献１と同様に単語や文の参照関係を素性情報としてもよいし、パッセージから抽出した固有表現を素性情報としてもよい。なお、素性情報は、単に「素性」と称されたり、「特徴」又は「特徴量」等と称されたりしてもよい。また、素性情報をパッセージから抽出する場合に限られず、例えば、通信ネットワークを介して接続される他の装置等の外部から素性情報が取得されてもよい。
【００２２】
固有表現とは、パッセージ中の固有の表現（例えば、固有名詞等）を抽出した上で、カテゴリラベルを付与したものである。例えば、固有名詞「ＮＴＴ」であればラベル「会社」を付与したものが固有表現となり、年月日「２０１８年１１月２９日」であればラベル「日時」を付与したものが固有表現となる。これらの固有表現は、生成モデルにより生成される質問のタイプを特定するために有用な情報となる。例えば、回答範囲の単語等に対してラベル「日時」が付与されていれば、「〜はいつ？」等といった日時や時期を問うタイプの質問を生成すればよいと特定することが可能となる。また、例えば、回答範囲の単語等に対してラベル「会社」が付与されていれば、「〜した会社は？」等といった会社名を問うタイプの質問を生成すればよいと特定することが可能となる。なお、質問のタイプとしては、これら以外にも、カテゴリラベルに応じて様々なタイプがある。
【００２３】
生成処理部１４０は、ニューラルネットワークを用いた生成モデルによって実現される。生成処理部１４０は、学習済み生成モデルのパラメータを用いて、パッセージ中で回答となる可能性のある範囲（回答範囲）を複数抽出し、これらの回答範囲が回答となるような質問を生成する。ここで、生成処理部１４０（つまり、ニューラルネットワークを用いた生成モデル）には、分散表現変換層１４１と、情報エンコード層１４２と、回答抽出層１４３と、質問生成層１４４とが含まれる。なお、これら各層は、ニューラルネットワークを用いた生成モデルを機能的に分割した場合に各機能をそれぞれ実現する層（レイヤー）のことであり、「層」の代わりに「部」と称されてもよい。
【００２４】
分散表現変換層１４１は、テキスト処理部１２０により変換された単語系列と、素性抽出部１３０により抽出された素性情報とを、生成モデルで扱うための分散表現に変換する。
【００２５】
ここで、分散表現変換層１４１は、まず、単語系列を構成する各単語と、各素性情報とをｏｎｅ―ｈｏｔベクトルに変換する。例えば、生成モデルで使用する全語彙数をＶとして、テキスト処理部１２０は、各単語を、当該単語に対応する要素のみを１、それ以外の要素を０とするＶ次元のベクトルにそれぞれ変換する。同様に、例えば、生成モデルで使用する素性情報の種類数をＦとして、テキスト処理部１２０は、各素性情報を、当該素性情報に対応する要素のみを１、それ以外の要素を０とするＦ次元のベクトルにそれぞれ変換する。
【００２６】
次に、分散表現変換層１４１は、変換行列Ｍｗ∈ＲＶ×ｄを用いて、各単語のｏｎｅ―ｈｏｔベクトルを、ｄ次元の実数値ベクトル（以降では、この実数値ベクトルを「単語ベクトル」とも表す。）に変換する。なお、Ｒは実数全体の集合を表す。
【００２７】
同様に、分散表現変換層１４１は、変換行列Ｍｆ∈ＲＦ×ｄ´を用いて、各素性情報のｏｎｅ―ｈｏｔベクトルを、ｄ´次元の実数値ベクトル（以降では、この実数値ベクトルを「素性ベクトル」とも表す。）に変換する。
【００２８】
なお、上記の変換行列Ｍｗ及びＭｆは、学習対象のパラメータとして生成モデルの学習時に学習されてもよいし、学習済みのＷｏｒｄ２Ｖｅｃ等の既存の分散表現モデルが用いられてもよい。
【００２９】
情報エンコード層１４２は、分散表現変換層１４１で得られた単語ベクトルの集合を用いて、これらの単語ベクトルを、単語間の相互関係を考慮したベクトル系列Ｈ∈Ｒｄ×Ｔにエンコードする。ここで、Ｔは、単語ベクトルの系列長（すなわち、単語ベクトル集合の要素数）を表す。
【００３０】
なお、単語ベクトル集合のエンコード手法は、上記のベクトル系列Ｈが得られる手法であれば任意の手法を用いることができる。例えば、リカレントニューラルネットワークを用いてベクトル系列Ｈにエンコードしてもよいし、セルフアテンション（自己注意機構：Self-Attention）を用いた手法によってベクトル系列Ｈにエンコードしてもよい。
【００３１】
ここで、情報エンコード層１４２は、単語ベクトルの集合をエンコードすると同時に、分散表現変換層１４１で得られた素性ベクトルの集合も組み込んだエンコードをすることもできる。なお、素性ベクトル集合も組み込んだエンコード手法は、任意の手法を用いることができる。例えば、素性ベクトルの系列長（すなわち、素性ベクトル集合の要素数）が単語ベクトルの系列長Ｔと一致する場合、単語ベクトルと素性ベクトルとをそれぞれ結合させたベクトル（ｄ＋ｄ´次元のベクトル）を情報エンコード層１４２の入力とすることで、素性情報も考慮したベクトル系列Ｈ∈Ｒ（ｄ＋ｄ´）×Ｔを得てもよいし、単語ベクトルの集合と素性ベクトルの集合とをそれぞれ同一又は異なるエンコード層でエンコードしてベクトル系列Ｈ１及びＨ２を得た後、ベクトル系列Ｈ１を構成する各ベクトルとベクトル系列Ｈ２を構成する各ベクトルとをそれぞれ結合することで、素性情報も考慮したベクトル系列Ｈを得てもよい。又は、例えば、全結合層等のニューラルネットワークの層を利用して、素性情報も考慮したベクトル系列Ｈを得てもよい。
【００３２】
なお、情報エンコード層１４２は、素性ベクトル集合を組み込んだエンコードしてもよいし、素性ベクトル集合を組み込まないエンコードをしてもよい。情報エンコード層１４２で素性ベクトル集合を組み込まないエンコードをする場合は、生成装置１０は、素性抽出部１３０を有していなくてもよい（この場合、分散表現変換層１４１には素性情報が入力されないため、素性ベクトルは作成されない。）。
【００３３】
なお、以降では、情報エンコード層１４２で得られたベクトル系列Ｈを、Ｈ∈Ｒｕ×Ｔとする。ここで、ｕは、素性ベクトル集合を組み込んだエンコードを行っていない場合はｕ＝ｄであり、素性ベクトル集合も組み込んだエンコードを行った場合はｕ＝ｄ＋ｄ´である。
【００３４】
回答抽出層１４３は、情報エンコード層１４２で得られたベクトル系列Ｈ∈Ｒｕ×Ｔを用いて、パッセージ中から回答となる記述の始点と終点とを抽出する。始点と終点とが抽出されることで、この始点から終点までの範囲が回答範囲となる。
【００３５】
始点に関しては、ベクトル系列Ｈを重みＷ０∈Ｒ１×ｕにより線形変換して、始点ベクトルＯｓｔａｒｔ∈ＲＴを作成する。そして、始点ベクトルＯｓｔａｒｔに対して系列長Ｔでｓｏｆｔｍａｘ関数を適用して確率分布Ｐｓｔａｒｔに変換した上で、始点ベクトルＯｓｔａｒｔの各要素のうち、最も確率が高いｓ番目（０≦ｓ＜Ｔ）の要素を始点とする。
【００３６】
一方で、終点に関しては、まず、始点ベクトルＯｓｔａｒｔとベクトル系列Ｈとをリカレントニューラルネットワークに入力して、新しいモデリングベクトルＭ´∈Ｒｕ×Ｔを作成する。次に、このモデリングベクトルＭ´を重みＷ０により線形変換して、終点ベクトルＯｅｎｄ∈ＲＴを作成する。そして、終点ベクトルＯｅｎｄに対して系列長Ｔでｓｏｆｔｍａｘ関数を適用して確率分布Ｐｅｎｄに変換した上で、終点ベクトルＯｅｎｄの各要素のうち、最も確率が高いｅ番目（０≦ｅ＜Ｔ）の要素を終点とする。これにより、パッセージ中のｓ番目の単語からｅ番目の単語までの区間が回答範囲となる。
【００３７】
ここで、Ｎ個の回答範囲を得るには、上記のＰｓｔａｒｔ及びＰｅｎｄを用いて、以下の（１−１）及び（１−２）によりＮ個の始点及び終点を抽出すればよい。なお、Ｎはユーザ等により設定されるハイパーパラメータである。
【００３８】
（１−１）  系列長をＴ、始点をｉ、終点をｊとして、０≦ｉ＜Ｔ、かつ、ｉ≦ｊ＜Ｔとなる任意の（ｉ，ｊ）に対して、Ｐ（ｉ，ｊ）＝Ｐｓｔａｒｔ（ｉ）×Ｐｅｎｄ（ｊ）を計算する。
【００３９】
（１−２）  Ｐ（ｉ，ｊ）の上位Ｎ個の（ｉ，ｊ）を抽出する。
【００４０】
これにより、Ｎ個の回答範囲が得られる。これら各回答範囲は質問生成層１４４に入力される。なお、回答抽出層１４３は、Ｎ個の回答範囲を出力してもよいし、Ｎ個の回答範囲にそれぞれ対応する文（つまり、パッセージ中で回答範囲に含まれる単語等で構成される文（回答文））を回答として出力してもよい。
【００４１】
ここで、本発明の実施の形態では、Ｎ個の回答範囲を得る際に、各回答範囲の少なくとも一部が重複しないようにする。例えば、１番目の回答範囲が（ｉ１，ｊ１）であり、２番目の回答範囲が（ｉ２，ｊ２）である場合、２番目の回答範囲は、「ｉ２＜ｉ１かつｊ２＜ｉ１」又は「ｉ２＞ｊ１かつｊ２＞ｊ１」のいずれかの条件を満たす必要がある。他の回答範囲と少なくとも一部が重複する回答範囲は抽出されない。
【００４２】
質問生成層１４４は、回答範囲と、ベクトル系列Ｈとを入力として、質問を構成する単語系列を生成する。単語系列の生成には、例えば以下の参考文献１に記載されているエンコーダ・デコーダモデルで用いられるリカレントニューラルネットワークをベースとしたものを使用する。
【００４３】
［参考文献１］
Ilya Sutskever, Oriol Vinyals, Quoc V. Le, "Sequence to Sequence Learning with Neural Networks", NIPS2014
【００４４】
ここで、単語の生成には、リカレントニューラルネットワークが出力する単語の生成確率ｐｇと、パッセージ中の単語をコピーして使用する確率ｐｃの重み付き和で決定する。すなわち、単語の生成確率ｐは、以下の式（１）で表される。
【００４５】
ｐ＝λｐｇ＋（１−λ）ｐｃ  ・・・（１）
ここで、λは生成モデルのパラメータである。コピー確率ｐｃは、以下の参考文献２に記載されているpointer-generator-networkと同様に、アテンション（注意機構：Attention）による重み値によって計算する。
【００４６】
［参考文献２］
Abigail See, Peter J. Liu, Christopher D. Manning, "Get To The Point: Summarization with Pointer-Generator Networks", ACL2018
【００４７】
すなわち、生成する質問を構成するｓ番目の単語をｗｓとして、この単語ｗｓを生成するときに、パッセージ中のｔ番目の単語ｗｔがコピーされる確率を以下の式（２）で計算する。
【００４８】
【数１】
2020135456.tif 000003
ここで、Ｈｔはベクトル系列Ｈのｔ番目のベクトル、ｈｓはデコーダのｓ番目の状態ベクトルを表す。また、ｓｃｏｒｅ（・）は、アテンションの重み値を決定するためにスカラー値を出力する関数であり、任意の関数が用いられてよい。なお、パッセージ中に含まれない単語のコピー確率は０となる。
【００４９】
ところで、単語ｗｔが回答範囲に含まれる単語である場合には、上記の式（２）により、回答範囲に含まれる単語ｗｔがコピーされる確率ｐｃが計算されることになる。上述したように、質問を構成する単語を生成する際に、回答範囲に含まれる単語からはコピーされないようにすることが好ましい。そこで、本発明の実施の形態では、単語ｗｔが回答範囲に含まれる場合は、ｐｃ（ｗｔ）を０とする。例えば、単語ｗｔが回答範囲に含まれる場合は、上記の式（２）のｓｃｏｒｅ（Ｈｔ，ｈｓ）に負の無限大（又は、例えば−１０の３０乗等の極めて小さい値）を設定する。上記の式（２）はｓｏｆｔｍａｘ関数であるため、負の無限大が設定された場合の確率は０（極めて小さい値が設定された場合は極めて小さい確率）となり、回答範囲からの単語ｗｔがコピーされることを防止（又は抑止）することができる。
【００５０】
なお、パッセージ中の単語ｗｔがコピーされないようにする処理のことを「マスク処理」とも表す。回答範囲に含まれる単語ｗｔがコピーされないようにする場合、回答範囲に対してマスク処理を施したことを意味する。
【００５１】
ここで、マスク処理を行う範囲は、回答範囲だけに限られず、例えばパッセージの性質等に応じてユーザ等によって自由に設定されてもよい。例えば、パッセージ中で、回答範囲内の文字列と一致する全ての文字列部分（つまり、パッセージ中で、回答範囲と同一の文字列が含まれる部分）にマスク処理を施してもよい。
【００５２】
回答・質問出力部１５０は、生成処理部１４０により抽出された回答範囲が表す回答（つまり、パッセージ中の回答範囲に含まれる単語等で構成される回答文）と、この回答に対応する質問とを出力する。なお、回答に対応する質問とは、当該回答により表される回答範囲を質問生成層１４４に入力することで生成された質問のことである。
【００５３】
≪学習時≫
次に、学習時における生成装置１０の機能構成について、図２を参照しながら説明する。図２は、本発明の実施の形態における生成装置１０の機能構成（学習時）の一例を示す図である。
【００５４】
図２に示すように、学習時における生成装置１０は、機能部として、テキスト処理部１２０と、素性抽出部１３０と、生成処理部１４０と、パラメータ更新部１６０とを有する。本発明の実施の形態では、学習時には、機械読解の学習コーパスが入力されるものとする。機械読解の学習コーパスは、質問と、パッセージと、回答範囲との３つの組で構成されている。この学習コーパスを訓練データとして、生成モデルを学習する。なお、質問及びパッセージは自然文で記述されている。
【００５５】
テキスト処理部１２０及び素性抽出部１３０の各機能は、回答及び質問生成時と同様であるため、その説明を省略する。また、生成処理部１４０の分散表現変換層１４１、情報エンコード層１４２及び回答抽出層１４３の各機能は、回答及び質問生成時と同様であるため、その説明を省略する。ただし、生成処理部１４０は、学習済みでない生成モデルのパラメータを用いて、各処理を実行する。
【００５６】
生成処理部１４０の質問生成層１４４は、回答範囲と、ベクトル系列Ｈとを入力として、質問を構成する単語系列を生成するが、学習時では、回答範囲として、学習コーパスに含まれる回答範囲（以降、「正解回答範囲」とも表す。）を入力する。
【００５７】
又は、学習の進み具合（例えば、エポック数等）に応じて、正解回答範囲と、回答抽出層１４３から出力された回答範囲（以降、「推定回答範囲」とも表す。）とのいずれかを入力してもよい。このとき、学習の初期の段階から推定回答範囲を入力とした場合、学習が収束しない可能性がある。このため、推定回答範囲を入力とする確率Ｐａをハイパーパラメータとして設定し、この確率Ｐａによって正解回答範囲又は推定回答範囲のいずれを入力とするかを決定する。確率Ｐａには、学習の初期の段階では比較的小さい値（例えば、０〜０，０５等）となり、学習が進むにつれて徐々にその値が大きくなるような関数を設定する。このような関数は任意の計算方法で設定してよい。
【００５８】
パラメータ更新部１６０は、正解回答範囲と推定回答範囲との誤差と、質問生成層１４４から出力された質問（以降、「推定質問」とも表す。）と学習コーパスに含まれる質問（以降、「正解質問」とも表す。）との誤差とを用いて、これらの誤差が最小となるように、既知の最適化手法によって学習済みでない生成モデルのパラメータを更新する。
【００５９】
＜生成装置１０のハードウェア構成＞
次に、本発明の実施の形態における生成装置１０のハードウェア構成について、図３を参照しながら説明する。図３は、本発明の実施の形態における生成装置１０のハードウェア構成の一例を示す図である。
【００６０】
図３に示すように、本発明の実施の形態における生成装置１０は、ハードウェアとして、入力装置２０１と、表示装置２０２と、外部Ｉ／Ｆ２０３と、ＲＡＭ（Random Access Memory）２０４と、ＲＯＭ（Read Only Memory）２０５と、プロセッサ２０６と、通信Ｉ／Ｆ２０７と、補助記憶装置２０８とを有する。これら各ハードウェアは、それぞれがバスＢを介して通信可能に接続されている。
【００６１】
入力装置２０１は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置２０２は、例えばディスプレイ等であり、生成装置１０の処理結果（例えば、生成された回答及び質問等）を表示する。なお、生成装置１０は、入力装置２０１及び表示装置２０２の少なくとも一方を有していなくてもよい。
【００６２】
外部Ｉ／Ｆ２０３は、記録媒体２０３ａ等の外部記録媒体とのインタフェースである。生成装置１０は、外部Ｉ／Ｆ２０３を介して、記録媒体２０３ａの読み取りや書き込み等を行うことができる。記録媒体２０３ａには、生成装置１０が有する各機能部（例えば、分割部１１０、テキスト処理部１２０、素性抽出部１３０、生成処理部１４０、回答・質問出力部１５０及びパラメータ更新部１６０等）を実現する１以上のプログラムや、生成モデルのパラメータ等が記録されていてもよい。
【００６３】
記録媒体２０３ａには、例えば、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等がある。
【００６４】
ＲＡＭ２０４は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ２０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ２０５には、例えば、ＯＳ（Operating System）に関する設定情報や通信ネットワークに関する設定情報等が格納されている。
【００６５】
プロセッサ２０６は、例えばＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）等であり、ＲＯＭ２０５や補助記憶装置２０８等からプログラムやデータをＲＡＭ２０４上に読み出して処理を実行する演算装置である。生成装置１０が有する各機能部は、ＲＯＭ２０５や補助記憶装置２０８等に格納されている１以上のプログラムをＲＡＭ２０４上に読み出してプロセッサ２０６が処理を実行することで実現される。
【００６６】
通信Ｉ／Ｆ２０７は、生成装置１０を通信ネットワークに接続するためのインタフェースである。生成装置１０が有する各機能部を実現する１以上のプログラムは、通信Ｉ／Ｆ２０７を介して、所定のサーバ等から取得（ダウンロード）されてもよい。
【００６７】
補助記憶装置２０８は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置２０８に格納されているプログラムやデータには、例えば、ＯＳ、当該ＯＳ上で各種機能を実現するアプリケーションプログラム、生成装置１０が有する各機能部を実現する１以上のプログラム、生成モデルのパラメータ等がある。
【００６８】
本発明の実施の形態における生成装置１０は、図３に示すハードウェア構成を有することにより、後述する回答及び質問生成処理や学習処理を実現することができる。なお、図３に示す例では、本発明の実施の形態における生成装置１０が１台の装置（コンピュータ）で実現されている場合を示したが、これに限られない。本発明の実施の形態における生成装置１０は、複数台の装置（コンピュータ）で実現されていてもよい。また、１台の装置（コンピュータ）には、複数のプロセッサ２０６や複数のメモリ（ＲＡＭ２０４やＲＯＭ２０５、補助記憶装置２０８等）が含まれていてもよい。
【００６９】
＜回答及び質問生成処理＞
次に、本発明の実施の形態における生成装置１０により回答及び質問を生成する処理（回答及び質問生成処理）について、図４を参照しながら説明する。図４は、本発明の実施の形態における回答及び質問生成処理の一例を示すフローチャートである。なお、回答及び質問生成処理では、生成処理部１４０は、学習済み生成モデルのパラメータを用いる。
【００７０】
ステップＳ１０１：分割部１１０は、入力された文書を１以上の文章（パッセージ）に分割する。
【００７１】
なお、本発明の実施の形態では、文書が生成装置１０に入力されるものとしたが、例えば、パッセージが生成装置１０に入力される場合は、上記のステップＳ１０１は行われなくてもよい。この場合、生成装置１０は、分割部１１０を有していなくてもよい。
【００７２】
以降のステップＳ１０２〜ステップＳ１０７は、上記のステップＳ１０１での分割によって得られたパッセージ毎に繰り返し実行される。
【００７３】
ステップＳ１０２：次に、テキスト処理部１２０は、パッセージを単語単位に分割した形式で表現される単語系列に変換する。
【００７４】
ステップＳ１０３：次に、素性抽出部１３０は、パッセージから素性情報を抽出する。
【００７５】
なお、上記のステップＳ１０２及びステップＳ１０３の実行順は順不同であり、ステップＳ１０３が実行された後にステップＳ１０２が実行されてもよいし、ステップＳ１０２とステップＳ１０３とが平行して実行されてもよい。また、後述するステップＳ１０６で単語ベクトル集合をベクトル系列Ｈにエンコードする際に、素性情報を考慮しない場合（すなわち、素性ベクトル集合をエンコードに組み込まない場合）は、上記のステップＳ１０３は行われなくてもよい。
【００７６】
ステップＳ１０４：次に、生成処理部１４０の分散表現変換層１４１は、上記のステップＳ１０２で得られた単語系列を単語ベクトル集合に変換する。
【００７７】
ステップＳ１０５：次に、生成処理部１４０の分散表現変換層１４１は、上記のステップＳ１０３で得られた素性情報を素性ベクトル集合に変換する。
【００７８】
なお、上記のステップＳ１０４及びステップＳ１０５の実行順は順不同であり、ステップＳ１０５が実行された後にステップＳ１０４が実行されてもよいし、ステップＳ１０４とステップＳ１０５とが平行して実行されてもよい。また、後述するステップＳ１０６で単語ベクトル集合をベクトル系列Ｈにエンコードする際に、素性情報を考慮しない場合は、上記のステップＳ１０５は行われなくてもよい。
【００７９】
ステップＳ１０６：次に、生成処理部１４０の情報エンコード層１４２は、上記のステップＳ１０４で得られた単語ベクトル集合をベクトル系列Ｈにエンコードする。このとき、情報エンコード層１４２は、素性ベクトル集合を組み込んでエンコードしてもよい。
【００８０】
ステップＳ１０７：生成処理部１４０の回答抽出層１４３は、上記のステップＳ１０６で得られたベクトル系列Ｈを用いて、Ｎ個の回答範囲の始点及び終点をそれぞれ抽出する。
【００８１】
ステップＳ１０８：生成処理部１４０の質問生成層１４４は、上記のステップＳ１０７で得られたＮ個の回答範囲のそれぞれに対して、回答を生成する。
【００８２】
ステップＳ１０９：回答・質問出力部１５０は、上記のステップＳ１０７で得られたＮ個の回答範囲のそれぞれが表すＮ個の回答と、これらＮ個の回答のそれぞれに対応する質問とを出力する。なお、回答・質問出力部１５０の出力先は任意の出力先としてよい。例えば、回答・質問出力部１５０は、Ｎ個の回答及び質問を補助記憶装置２０８や記録媒体２０３ａ等に出力して保存してもよいし、表示装置２０２に出力して表示させてもよいし、通信ネットワークを介して接続される他の装置等に出力してもよいし。
【００８３】
＜学習処理＞
次に、本発明の実施の形態における生成装置１０が生成モデルを学習する処理（学習処理）について、図５を参照しながら説明する。図５は、本発明の実施の形態における学習処理の一例を示すフローチャートである。なお、学習処理では、生成処理部１４０は、学習済みでない生成モデルのパラメータを用いる。
【００８４】
ステップＳ２０１〜ステップＳ２０５は、回答及び質問生成処理のステップＳ１０２〜ステップＳ１０６と同様であるため、その説明を省略する。
【００８５】
ステップＳ２０６：生成処理部１４０の回答抽出層１４３は、ステップＳ２０５で得られたベクトル系列Ｈを用いて、Ｎ個の回答範囲（推定回答範囲）の始点及び終点をそれぞれ抽出する。
【００８６】
ステップＳ２０７：次に、生成処理部１４０の質問生成層１４４は、入力された正解回答範囲（又は、上記のステップＳ２０６で得られた推定回答範囲）に対して、推定質問を生成する。
【００８７】
ステップＳ２０８：パラメータ更新部１６０は、正解回答範囲及び推定回答範囲の誤差と、推定質問及び正解質問の誤差とを用いて、学習済みでない生成モデルのパラメータを更新する。これにより、生成モデルのパラメータが更新される。機械読解の各学習コーパスに対してパラメータ更新が繰り返し実行されることで、生成モデルが学習される。
【００８８】
＜回答及び質問の生成結果＞
ここで、回答及び質問生成処理を行って、回答及び質問を生成した結果について、図６を参照しながら説明する。図６は、回答及び質問の一例を説明するための図である。
【００８９】
図６に示す文書１０００が生成装置１０に入力された場合、図４のステップＳ１０１ではパッセージ１１００とパッセージ１２００とに分割される。そして、パッセージ１１００及びパッセージ１２００のそれぞれに対して、図４のステップＳ１０３〜ステップＳ１０７が実行されることで、パッセージ１１００に対して回答範囲１１１０及び回答範囲１１２０が抽出され、パッセージ１２００に対して回答範囲１２１０及び回答範囲１２２０が抽出される。
【００９０】
そして、図４のステップＳ１０８が実行されることで、パッセージ１１００に対して、回答範囲１１１０が表す回答に対応する質問１１１１と、回答範囲１１２０が表す回答に対応する質問１１２１とが生成される。同様に、パッセージ１２００に対して、回答範囲１２１０が表す回答に対応する質問１２１１と、回答範囲１２２０が表す回答に対応する質問１２２１とが生成される。なお、図６に示す例における質問１２２１に含まれる『「中断証明書」』との文字列は、パッセージ１２００の回答範囲１２２０中の『中断証明書』ではなく、パッセージ１２００の『・・・保険契約者からの請求により「中断証明書」を発行することができます。・・・』の『「中断証明書」』がコピーされたものである。
【００９１】
このように、本発明の実施の形態における生成装置１０では、各パッセージから回答範囲を抽出し、この回答範囲が表す回答に対応する質問が適切に生成できていることがわかる。
【００９２】
＜変形例（その１）＞
次に、変形例（その１）における生成装置１０の機能構成について、図７を参照しながら説明する。図７は、本発明の実施の形態における生成装置１０の機能構成（回答及び質問生成時）の変形例を示す図である。
【００９３】
図７に示すように、回答範囲が生成装置１０に入力される場合、当該生成装置１０の生成処理部１４０には、回答抽出層１４３が含まれていなくてもよい。この場合、生成処理部１４０の質問生成層１４４は、入力された回答範囲から質問を生成する。なお、回答範囲が生成装置１０に入力される場合であっても、質問生成層１４４で質問を生成する際にマスク処理を施すことが可能である。
【００９４】
また、回答・質問出力部１５０は、入力された回答範囲が表す回答と、この回答に対応する質問とを出力する。
【００９５】
なお、変形例（その１）の場合、回答範囲が生成装置１０に入力されるため、学習時には、正解質問と推定質問との誤差のみを最小化するように、生成モデルのパラメータが更新されればよい。
【００９６】
＜変形例（その２）＞
次に、変形例（その２）について説明する。本発明の実施の形態における生成装置１０は、質問と、パッセージと、回答範囲との３つの組で構成されている学習コーパスを訓練データとして生成モデルを学習する代わりに、質問を表すキーワード集合と、パッセージと、回答範囲とを訓練データとして生成モデルを学習することも可能である。これにより、回答及び質問生成時において、質問の代わりに、質問を表すキーワード集合（言い換えれば、質問の際に用いられそうなキーワードの集合）を生成することが可能となる。
【００９７】
ここで、一般的な検索エンジンを用いて質問の回答を探すための検索を行う際には、ユーザは、クエリとして自然文ではなく、キーワード集合を入力とする場合も多い。例えば、「Ｒ＆Ｄフォーラムを開催した会社は？」といった質問の回答を探す場合のクエリとしては、キーワード集合「Ｒ＆Ｄフォーラム  開催  会社」等を入力することが多い。
【００９８】
又は、ユーザからクエリとして自然文を入力する場合であっても、検索エンジンの前処理等の中で自然文から、検索キーワードとして不適切な単語等を削除する処理が行われることもある。
【００９９】
したがって、検索エンジンを用いてユーザの質問に対する回答を提示するシステムに本発明を適用するような場合は、検索に実際に用いられるクエリの形式に合せて質問と回答とのペアを用意した方が、ユーザの質問に対してより適切な回答を提示することが可能となる。つまり、このような場合は、質問（文）を生成するよりも、質問の際に使われそうなキーワードの集合を生成する方がより適切な回答を提示することが可能なる。
【０１００】
そこで、上述したように、質問を表すキーワード集合と、パッセージと、回答範囲とを訓練データとして生成モデルを学習することで、（パッセージに含まれる）回答と、該回答を検索エンジンから検索するためのキーワード集合である、質問を表すキーワード集合とを生成する生成装置１０を実現することが可能となる。これにより、例えば、検索の際にノイズとなる単語を予め排除することが可能となる。また、質問文ではなく、質問を表すキーワード集合を生成するため、例えば、質問文を生成する際にキーワードとキーワードとの間を埋める単語が誤生成されてしまうといった事態を回避することも可能となる。
【０１０１】
なお、訓練データとする質問を表すキーワード集合は、例えば、学習コーパスに含まる質問に対して、形態素解析等を行って内容語のみを取り出す、品詞でフィルタリングを行う、等の方法により作成可能である。
【０１０２】
＜まとめ＞
以上のように、本発明の実施の形態における生成装置１０は、１つ以上のパッセージが含まれる文書（又はパッセージ）を入力として、パッセージ中の回答範囲を指定することなく、回答とこの回答に関する質問とを生成することができる。このため、本発明の実施の形態における生成装置１０によれば、文書（又はパッセージ）のみを与えれば、大量の質問とその回答とを自動的に生成することが可能となる。したがって、例えば、ＦＡＱを自動的に作成したり、質問応答型のチャットボットを容易に実現したりすることが可能となる。
【０１０３】
ＦＡＱは商品やサービス等に関する「よくある質問集」であるが、従来はこれを人手で作成する必要があった。本発明の実施の形態における生成装置１０を用いることで、回答範囲が含まれている文書を回答（Ａ）、自動生成した質問文を質問（Ｑ）とすることで、ＦＡＱを構成するＱＡペアを大量かつ容易に作成することができる。
【０１０４】
また、質問応答型のチャットボットは、シナリオ方式という仕組みで動作しているものが多い。シナリオ方式では、ＱＡペアを大量に用意することによるＦＡＱ検索（例えば、特開２０１７−２０１４７８号公報を参照）に近い動作方式である。このため、例えば製品マニュアルやチャットボットキャラクチャのプロフィール文書等を生成装置１０に入力することで、質問（Ｑ）と、チャットボットが回答する回答（Ａ）とのＱＡペアを大量に作成することが可能となり、チャットボットの作成コストを削減させつつ幅広い質問に回答可能なチャットボットを実現することができるようになる。
【０１０５】
更に、上述したように、本発明の実施の形態における生成装置１０では、質問に含まれる単語を生成する際に、回答範囲から単語がコピーされることを防止している。このため、ＹＥＳ／ＮＯで回答可能な質問の生成を防止することが可能となり、例えば、ＦＡＱやチャットボットに相応しい質問及び回答のペアを生成することができる。したがって、本発明の実施の形態における生成装置１０を用いることで、例えば、生成された質問及び回答のペアの修正や整備が不要となり、修正や整備に要していたコストの削減も可能となる。
【０１０６】
なお、生成モデルを複数のニューラルネットワークを用いて構成する場合、例えば、回答抽出層１４３を有するニューラルネットワークと、質問生成層１４４を有するニューラルネットワークとの間で特定の層（例えば、情報エンコード層１４２等）を共有していてもよい。
【０１０７】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１０８】
１０        生成装置
１１０      分割部
１２０      テキスト処理部
１３０      素性抽出部
１４０      生成処理部
１４１      分散表現変換層
１４２      情報エンコード層
１４３      回答抽出層
１４４      質問生成層
１５０      回答・質問出力部
１６０      パラメータ更新部
【図１】
2020135456.tif 000004
【図２】
2020135456.tif 000005
【図３】
2020135456.tif 000006
【図４】
2020135456.tif 000007
【図５】
2020135456.tif 000008
【図６】
2020135456.tif 000009
【図７】
2020135456.tif 000010