(57)【要約】【課題】質問する話者の意図を取り入れた言い回し文を生成する技術を提供する。【解決手段】プロセッサとメモリを有する計算機で、自然言語の言い回し文を生成する言い回し文生成方法であって、前記計算機が、第１の文と、前記第１の文に対応する言い回し文と、前記第１の文に対応する第２の文を受け付ける学習データ受け付けステップと、前記計算機が、ニューラルネットワークを用いて前記第２の文から前記第１の文の意図を表すベクトルを算出する意図抽出ステップと、を含む。【選択図】図２
2019204415.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリを有する計算機で、自然言語の言い回し文を生成する言い回し文生成方法であって、
前記計算機が、第１の文と、前記第１の文に対応する言い回し文と、前記第１の文に対応する第２の文を受け付ける学習データ受け付けステップと、
前記計算機が、ニューラルネットワークを用いて前記第２の文から前記第１の文の意図を表すベクトルを算出する意図抽出ステップと、
を含むことを特徴とする言い回し文生成方法。
【請求項２】
請求項１に記載の言い回し文生成方法であって、
前記計算機が、前記ニューラルネットワークのエンコーダを用いて前記第１の文の意味及び表現をエンコーディングにより学習する学習ステップと、
前記計算機が、前記意図を表すベクトルと、前記学習した前記第１の文の意味及び表現に基づいて、前記ニューラルネットワークのメモリゲートの値を算出するメモリゲート算出ステップと、
をさらに含むことを特徴とする言い回し文生成方法。
【請求項３】
請求項２に記載の言い回し文生成方法であって、
前記計算機が、前記算出されたメモリゲートの値と前記意図を表すベクトルを前記エンコーダに反映させる初期化ステップを、さらに含むことを特徴とする言い回し文生成方法。
【請求項４】
請求項３に記載の言い回し文生成方法であって、
前記計算機が、前記エンコーダを用いて、前記第１の文について再度エンコーディングを行う再エンコーディングステップを、さらに含むことを特徴とする言い回し文生成方法。
【請求項５】
請求項４に記載の言い回し文生成方法であって、
前記計算機が、前記再エンコーディングステップの結果と、前記意図を表すベクトルに基づいて、アテンションの重みを算出するアテンション計算ステップを、さらに含むことを特徴とする言い回し文生成方法。
【請求項６】
請求項１に記載の言い回し文生成方法であって、
前記第１の文は、質問文であり、前記第２の文は、回答文であることを特徴とする言い回し文生成方法。
【請求項７】
プロセッサとメモリを有して、自然言語の言い回し文を生成する言い回し文生成装置であって、
前記プロセッサが、第１の文と、前記第１の文に対応する言い回し文と、前記第１の文に対応する第２の文を受け付けて、ニューラルネットワークを用いて前記第２の文から前記第１の文の意図を表すベクトルを算出することを特徴とする言い回し文生成装置。
【請求項８】
請求項７に記載の言い回し文生成装置であって、
前記プロセッサが、前記ニューラルネットワークのエンコーダを用いて前記第１の文の意味及び表現をエンコーディングにより学習し、前記意図を表すベクトルと、前記学習した前記第１の文の意味及び表現に基づいて、前記ニューラルネットワークのメモリゲートの値を算出することを特徴とする言い回し文生成装置。
【請求項９】
請求項８に記載の言い回し文生成装置であって、
前記プロセッサが、前記算出されたメモリゲートの値と前記意図を表すベクトルを前記エンコーダに反映させることを特徴とする言い回し文生成装置。
【請求項１０】
請求項９に記載の言い回し文生成装置であって、
前記プロセッサが、前記エンコーダを用いて、前記第１の文について再エンコーディングを行うことを特徴とする言い回し文生成装置。
【請求項１１】
請求項１０に記載の言い回し文生成装置であって、
前記プロセッサが、前記再エンコーディングの結果と、前記意図を表すベクトルに基づいて、アテンションの重みを算出することを特徴とする言い回し文生成装置。
【請求項１２】
請求項７に記載の言い回し文生成装置であって、
前記第１の文は、質問文であり、前記第２の文は、回答文であることを特徴とする言い回し文生成装置。
【請求項１３】
プロセッサとメモリを有する計算機で、自然言語の言い回し文を生成させるプログラムであって、
第１の文と、前記第１の文に対応する言い回し文と、前記第１の文に対応する第２の文を受け付ける学習データ受け付けステップと、
ニューラルネットワークを用いて前記第２の文から前記第１の文の意図を表すベクトルを算出する意図抽出ステップと、
を前記計算機に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、言い回し文生成方法、言い回し文装置及びプログラムに関するものである。
【背景技術】
【０００２】
言い回し文の生成とは、計算機に入力された文字列に対して、同じ事柄を指す異なる表現の文字列を、自動または半自動的に生成する技術である。生成された言い回し文を質問応答（ＱＡ：Question and Answer）システムなどに登録すると、質問応答システムはユーザ発話の多様性に柔軟に対応できるようになるため、対話成功率の向上に寄与する効果がある（例えば、非特許文献１参照）。
【０００３】
また、非特許文献２には、半自動的な言い回し文生成方法の一例が記載されている。非特許文献２に記載されている文の言い回し生成方法は、人手で生成した言い換え規則に基いて、入力文の言い回し文を生成する。半自動的な方法を用いて言い回し文の生成を行う場合、生成された文の正確度が高い一方、規則作りには膨大なコストがかかるため、実用化が難しいと思われている。
【０００４】
自動的な言い回し文生成として、非特許文献３が知られている。非特許文献３に記載されている文の言い回し生成方法は、＜文、言い回し＞のペアからなる言い換えコーパスをもとに、言い回し文生成のモデルを学習する方法である。
【０００５】
このモデルは、人による規則抽出の定義を必要とせずに、品詞の系列をそのまま入力して、その品詞の系列からなる文への言い回し文をそのまま品詞の系列として得られるというメリットがある。しかし、現状では、この技術はまだ実用段階に達しておらず、特に質問文の言い回し文生成のタスクにおいて精度が芳しくない。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Li Dong、外 3名、“learning to paraphrase for question answering”、［online］、Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing、［平成30年4月27日検索］、インターネット〈 URL：http://www.aclweb.org/anthology/D17-1091〉
【非特許文献２】Chengqing Zong、外 4名、“Approach to Spoken Chinese Paraphrasing Based on Feature Extraction”、［online］、［平成30年4月27日検索］、インターネット〈 URL：http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.21.8294&rep=rep1&type=pdf〉
【非特許文献３】Aaditya Prakash、外 6名、“Neural Paraphrase Generation with Stacked Residual LSTM Networks”、［online］、［平成30年4月27日検索］、インターネット〈URL：https://arxiv.org/abs/1610.03098〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記従来技術（非特許文献３）では、入力文とその言い回し文が如何なる場合においても同じ事柄を表す表現であり、相互に置き換えられるような表現であると仮定されている。このような仕組みでは、例えば、質問文：「プリンターが壊れてしまったが」、言い回し文：「プリンターが故障しているが」のような関係である。
【０００８】
しかし、質問者の意図によっては質問文と言い回し文が必ずしも同じ事柄を表しているわけではない。例えば、質問文：「印刷できませんでしたが」、言い回し文：「プリンターが故障しているが」のような場合はそうである。その場合、質問する側の意図として、「プリンターの故障により利用できなかったため、修理してほしい」のほかにもいくつかの解釈がある。例えば、「資料を印刷する余裕がなかった」などが考えられる。
【０００９】
このような質問と回答のペアは質疑応答のシーンにおいて多く見られる。この場合、質問文の意味は話者の意図によって変わるため、その言い回し文を生成する際に、意図を考慮する必要がある。
【００１０】
上記従来の言い回し文の生成モデルは、前者のような入力文と出力文が等価な表現になっているペアに対して、その変換をうまく学習できるが、話者の意図を理解するための処理や、話者の意図に対する理解を言い回し文の生成に反映させていくための処理が欠如しているため、後者の場合に対処することが困難である。
【００１１】
言い回し文の生成をＱＡ（質問及び応答または質疑応答）システムに応用する場合、入力文と食い違った意図を表す言い回し文をＱＡシステムなどに登録すると、その言い回し文が、入力文と同じ質問項目について尋ねている文として扱われてしまうため、対話成功率が低下する恐れがあった。
【００１２】
そこで本発明は、上記問題点に鑑みてなされたもので、質問する話者の意図を取り入れた言い回し文を生成する技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、プロセッサとメモリを有する計算機で、自然言語の言い回し文を生成する言い回し文生成方法であって、前記計算機が、第１の文と、前記第１の文に対応する言い回し文と、前記第１の文に対応する第２の文を受け付ける学習データ受け付けステップと、前記計算機が、ニューラルネットワークを用いて前記第２の文から前記第１の文の意図を表すベクトルを算出する意図抽出ステップと、を含む。
【発明の効果】
【００１４】
本発明によれば、回答文（第２の文）から質問する側の話者の意図を抽出することで、質問する側の意図に沿った言い回し文を生成することができる。また、話者の意図を考慮することにより、入力文に多義性や曖昧性がある場合でも、適切な言い回し文を生成できる、という効果が得られる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施例を示し、言い回し文生成装置の一例を示すブロック図である。
【図２】本発明の実施例を示し、言い回し文生成装置の機能を性示す図である。
【図３】本発明の実施例を示し、言い回し文生成モデルで行われる学習処理の一例を示すフローチャートである。
【図４】本発明の実施例を示し、モデルの概要を示す図である。
【図５】本発明の実施例を示し、入力インターフェースの一例を示す図である。
【図６】本発明の実施例を示し、判定者インターフェースの一例を示す図である。
【図７】本発明の実施例を示し、ユーザインターフェースの一例を示す図である。
【図８】本発明の実施例を示し、モデル学習に用いられるデータの例を示す図である。
【図９】本発明の実施例を示し、メモリゲートの一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施例を添付図面に基づいて説明する。
【００１７】
図１は、言い回し文生成装置の構成の一例を示すブロック図である。言い回し文生成装置は、ＣＰＵ１と、メモリ２と、ストレージ装置３と、入力装置４と、出力装置５と、ネットワークインタフェース６を含むコンピュータで構成される。
【００１８】
ストレージ装置３は、不揮発性の記憶媒体を含み、プログラムやデータが格納される。本実施例では、データとして応対ログ記憶部１１と、言い回し文生成モデル記憶部３２と、ＱＡ（Question and Answer）リスト記憶部５０が格納される例を示す。
【００１９】
入力装置４は、マウスやキーボードやタッチパネルで構成される。出力装置５は、ディスプレーなどで構成される。ネットワークインタフェース６は、ネットワーク（図示省略）を介して外部の装置と通信を行う。
【００２０】
メモリ２には、前処理部１０と、言い回し文生成モデル学習部２０と、コンテンツ生成部３０と、更新部４０と、質問応答生成部６０と、ニューラルネットワーク７０と、テキスト入力部８０と、テキスト出力部９０がプログラムとしてロードされ、ＣＰＵ１によって実行される。
【００２１】
ＣＰＵ１は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、ＣＰＵ１は、前処理プログラムに従って処理することで前処理部１０として機能する。他のプログラムについても同様である。さらに、ＣＰＵ１は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００２２】
前処理部１０は、応対ログ記憶部１１に格納された応対ログから学習用等のデータセットを生成する。言い回し文生成モデル学習部２０は、前処理部１０が生成した学習セットを入力してニューラルネットワーク７０で学習を実施し、学習結果を言い回し文生成モデルとして出力し、言い回し文生成モデル記憶部３２に格納する。
【００２３】
コンテンツ生成部３０は、質問文を受け付けて、生成された言い回し文生成モデルへ質問文を入力して、当該質問文に対応する言い回し文を生成して出力する。更新部４０は、コンテンツ生成部３０が出力した言い回し文に質問文（入力）と回答文を対応付けてＱＡリスト記憶部５０に格納する。
【００２４】
なお、本実施例では、言い回し文を、文章の主旨（または意味）は同様であるが、表現が異なる文章を指す。例えば、直接的な言い方の文章に対して、遠回しな言い方の文章が言い回し文となる。
【００２５】
ＱＡリスト記憶部５０には、言い回し文生成モデルによって生成された言い回し文が、質問文と回答文に対応付けられて蓄積される。質問応答生成部６０は、更新されたＱＡリスト記憶部５０を利用して、質問を受け付けて回答を出力する。
【００２６】
質問応答生成部６０は、テキスト入力部８０で受け付けた質問文に対する回答文をＱＡリスト記憶部５０から検索して、検索結果の回答文をテキスト出力部９０から出力する。なお、テキスト入力部８０は、音声を受け付けてテキストに変換する音声認識部を含むことができる。また、テキスト出力部９０は、テキストを受け付けて音声に変換する音声合成部を含むことができる。
【００２７】
図２には、本発明の実施例における言い回し文生成装置の構成の概略が示されている。図２に示すように、本実施例に係る言い回し文生成装置は、前処理部１０と、言い回し文生成モデル学習部２０と、コンテンツ生成部３０と、更新部４０と、ＱＡリスト記憶部５０と、質問応答生成部６０の各機能部位を有する。
【００２８】
前処理部１０は、応対ログ記憶部１１とデータセット生成部１２から構成され、応対ログ記憶部１１から応対ログを受け付けて、学習セットと、評価セットと、テストセットを出力する機能を含む。
【００２９】
応対ログ記憶部１１には、質問文と、前記質問文に対する回答文と、前記質問文及び前記回答文における対応関係を示した情報が応対ログとして格納されている。
【００３０】
データセット生成部１２では、前記応対ログについて、問い合わせの対象となる事柄に関して、クラスタリングを行い、同じ質問項目に関する複数の質問文とそれらの質問文が対応している回答文からなるグループを取得する。取得されたグループの例を図８に示す。
【００３１】
図８は、応対ログ記憶部１１の一例を示す図である。応対ログ記憶部１１は、グループ番号（図中＃）１１１と、質問文１１２と、解答文１１３を含む。また、ひとつのグループ番号１１１には、複数の質問文１１２を対応付けることができる。
【００３２】
データセット生成部１２が実施するクラスタリングは、分類対象の集合である前記応対ログに記録されている全ての質問文を、意味の類似性に基いて、内的結合と外的分岐が達成されるようなグループに分割することを特徴とする。クラスタリングは、最短距離法、最長距離法、群平均法、ウォード法など、周知または公知の技術を適用すれば良い。
【００３３】
データセット生成部１２では、クラスタリングした結果である複数の質問文と回答文のグループからなるファイルを、モデル学習用（学習セット）と、評価用（評価セット）と、テスト用（テストセット）とのサブセットに分ける処理と、個々のサブセットをもとに、質問文と、当該質問文が対応している言い回し文と、質問文と前記言い回し文が対応している回答文からなるトリプレット１１４を生成する。生成されたトリプレット１１４の一例を図８に示す。
【００３４】
データセット生成部１２は、上記生成した学習用のトリプレット１１４を学習セットとして、言い回し文生成モデル学習部２０に入力してニューラルネットワーク７０による学習を実施させる。
【００３５】
言い回し文生成モデル学習部２０では、前記データセット生成部１２の出力であるモデル学習用と、評価用と、テスト用のサブセットを用いて、言い回し文生成モデルを学習する。
【００３６】
本実施例の言い回し文生成モデル学習部２０は、Ｓｅｑｕｅｎｃｅ−ｔｏ−Ｓｅｑｕｅｎｃｅ  ｍｏｄｅｌ（シーケンス変換モデル）を採用した例を示すが、これに限定されるものではない。シーケンス変換モデルの概略を図４に示す。本実施例に用いられるＳｅｑｕｅｎｃｅ−ｔｏ−Ｓｅｑｕｅｎｃｅ  ｍｏｄｅｌは、Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ（ＲＮＮ）の中の一つであるＬｏｎｇ−Ｓｈｏｒｔ  Ｔｅｒｍ  Ｍｅｍｏｒｙ（ＬＳＴＭ）を用いたエンコーダとディコーダから構成される。
【００３７】
【数１】
2019204415.tif 000003
【００３８】
はＬｏｎｇ−Ｓｈｏｒｔ  Ｔｅｒｍ  Ｍｅｍｏｒｙ（ＬＳＴＭ）ｂｌｏｃｋと呼ばれ、時系列信号の長期依存性を学習する。
【００３９】
シーケンス変換モデルは入力の系列を隠れ状態ベクトルに変換するエンコーダと、隠れ状態ベクトルから出力を行うディコーダから構成される。エンコーダは、入力の系列を埋め込みベクトルに変換した後、ＬＳＴＭによって隠れ状態ベクトルに変換する。なお、本実施例では、再帰型ニューラルネットワークの一例としてＬＳＴＭを用いる例を示すが、これに限定されるものではない。ディコーダは、エンコーダで出力された隠れ状態ベクトルを初期値として、隠れ状態と自身のこれまでの出力結果に基づいて次のトークンを生成する。
【００４０】
図４において、シーケンス変換モデルは、メモリゲート７００と回答文のエンコーダ７１０と質問文のエンコーダ７２０が含まれる。メモリゲート７００は、ＬＳＴＭブロックを構成する。また、図９は、メモリゲート７００を構成するメモリセルの一例を示す図である。図９において、メモリセルＣｔは、入力ゲートｉｔと、忘却ゲートｆｔと、出力ゲートＯｔと、初期セルＣ＿ｉｎｔと、隠れ層ｈｔを含む。
【００４１】
図２のコンテンツ生成部３０は、入力インターフェース３１と、言い回し文生成モデル記憶部３２と、判定者向けインターフェース３３と、判定部３４と、評価部３５から構成されている。
【００４２】
入力インターフェース３１は、入力画面を生成して出力装置５に出力し、ユーザが操作する入力装置４から入力された質問文と回答文を受け付けて、言い回し文生成モデル記憶部３２に出力する機能を有する。入力インターフェース３１が生成する入力画面の一例を、図５に示す。図５の入力画面３１０は、ユーザの入力欄として、質問文３１１と、回答文３１２と、実行ボタン３１３と、キャンセルボタン３１４を有する。実行ボタン３１３がクリックされると、入力インターフェース３１は、質問文３１１と回答文３１２を言い回し文生成モデル記憶部３２の言い回し文生成モデルに入力して言い回し文を得る。
【００４３】
言い回し文生成モデル記憶部３２は、言い回し文生成モデルを記憶する機能を有する。言い回し文生成モデル記憶部３２は、前記入力インターフェース３１から、ユーザが入力した情報を、言い回し文生成モデルの入力として受け付け、言い回し文生成モデルに入力して対応する言い回し文を生成させ、出力する機能を有する。
【００４４】
判定者向けインターフェース３３は、出力装置５（液晶表示装置など）に生成された言い回し文を表示する判定画面を生成する。判定画面は、例えば、前記言い回し文生成モデル記憶部３２が出力した言い回し文と、前記入力インターフェース３１から入力された質問文及び回答文が表示される。判定者向けインターフェース３３が生成する判定画面の一例を、図６に示す。
【００４５】
図６の判定画面３３０は、質問文と、回答文と、言い回し文が表示され、判定者の入力として適切ボタン３３１と、不適切ボタン３３２を有する。判定者は、出力された言い回し文が適切であれば適切ボタン３３１をクリックし、言い回し文が適切でなければ不適切ボタン３３２をクリックする。
【００４６】
判定部３４は、前記判定者向けインターフェース３３が出力した判定画面３３０に表示される情報に基いて、前記言い回し文生成モデル記憶部が出力した言い回し文に対して、適切、不適切のラベルを付ける作業を行う。
【００４７】
判定は人間の作業者（判定者）で行う方法と、判定モデルを用いて自動的に判定する方法などで行う。実施例では、判定が、人間の作業者によって行われる。人間の作業者が判定を行う際の基準として、入力文が対応している回答文と、入力文と同じグループにある複数件の言い回し文を読み、入力文と、言い回し文生成モデルで生成された言い回し文が同じ事柄に関する問い合わせかどうか（適切または不適切）で決定する。
【００４８】
判定の結果を正確率（ａｃｃｕｒａｃｙ）で表す。正確率は、適切であると判定された言い回し文の件数／言い回し文の総件数で算出することができる。
【００４９】
評価部３５は、前記判定部３４の出力である判定結果（適切または不適切）と、言い回し文生成モデル記憶部３２の出力である言い回し文をもとに、コンテンツ生成コストと、言い回し文の正確さ、自然さの評価を行う機能を有するシステム構成要素である。
【００５０】
コンテンツ生成コストを算出するには、様々な方法があるが、本実施例では、一件あたりの適切な言い回し文を見つけるために判定者が判定を行う回数として定義される。その場合、コンテンツ生成コストが前記判定部３４で得られた正解率で算出することができる。例えば、正解率が１５％となる場合、適切な言い回し文を一件見つけるには、結果の中から約６件（１００／１５＝６）の言い回し文に対して判定を下す。
【００５１】
言い回し文の正確さを算出するには、様々な方法があるが、本実施例では、前記判定部３４の出力である正確率（ａｃｃｕｒａｃｙ）を用いる。
【００５２】
また、言い回し文の自然さを評価するには、様々な方法があるが、本実施例では、自動評価指標ＢＬＥＵ（ＢｉＬｉｎｇｕａｌ  Ｅｖａｌｕａｔｉｏｎ  Ｕｎｄｅｒｓｔｕｄｙ）や、ＲＯＵＧＥ等周知または公知の技術で算出した値を評価値として用いる。
【００５３】
更新部４０は、前記評価部３５の出力である評価値に基いて、前記言い回し文生成モデル記憶部３２の出力である言い回し文を、ＱＡリスト記憶部５０に記憶されるべきか否かの判断を行い、ＱＡリスト記憶部５０に蓄積されている情報を更新する機能を有する。
【００５４】
ＱＡリスト記憶部５０は、前記更新部４０の出力を蓄積する機能を有する。ＱＡリスト記憶部５０は、質問文や、質問文に対する回答文、質問文及び回答文の対応関係を記憶する機能を有する。
【００５５】
質問応答生成部６０は、ユーザインターフェース６１と、マッチング部６２から構成されている。ユーザインターフェース６１は、出力装置５などに表示する対話画面を生成して出力する。対話画面６１０のイメージを図７に示す。
【００５６】
図７の対話画面６１０は、ユーザ入力文６１１と、質問応答生成部６０が生成した回答文６１２と、ユーザ入力欄６１３と、入力ボタン６１４が表示される。
【００５７】
ユーザインターフェース６１は、ユーザ入力欄６１３へ入力されたユーザからの問い合わせを受け、マッチング部６２の出力であるマッチング結果を表示する機能を有するシステム構成要素である。
【００５８】
マッチング部６２は、類似度計算アルゴリズムが算出した結果に基き、前記ユーザインターフェース６１から受け付けたユーザの問い合わせを入力とし、前記ＱＡリスト記憶部５０に記憶されている質問文のなかから、ユーザの問い合わせと最も類似している質問項目を検索し、当該質問項目に対応する回答文を出力する機能を有する。
【００５９】
前記類似度計算アルゴリズムは、ｃｏｓｉｎｅ類似度など周知または公知の自動評価指標や、意図理解に基く手法などを用いる。
【００６０】
本実施例の言い回し文生成装置では、予め蓄積された応対ログから学習セットを生成して、言い回し文生成モデル学習部２０でニューラルネットワーク７０を用いた学習を実施して、言い回し文生成モデルを生成または訓練する。
【００６１】
そして、生成された言い回し文生成モデルに入力を与えて言い回し文を生成させ、適切な言い回し文であればＱＡリスト記憶部５０へ蓄積する。そして、質問応答生成部６０は、ＱＡリスト記憶部５０に格納された質問文、言い回し文、回答文を用いて、ユーザとの対話を実施することができる。
【００６２】
以下、言い回し文生成モデル学習部２０で行われる学習処理について図面を参照して説明する。本実施例で採用する言い回し文生成モデル学習部２０は、データセット生成部１２が生成した学習セットの回答文（ａｎｓｗｅｒ）から質問の意図を抽出する（図３のＳ２００〜Ｓ２０２）。回答文をトークン列
【００６３】
【数２】
2019204415.tif 000004
【００６４】
で表す。ここで、ｘＡは回答文を表し、ａは回答文ｘＡのトークン列の長さを表す。本実施例では、言い回し文生成モデル学習部２０が日本語の回答文をトークン列に変換する際に、ＭｅＣａｂなど周知または公知の形態素素解析ツールを用いて文を単語に分割してから、ストップワードの除去を行う。各トークン
【００６５】
【数３】
2019204415.tif 000005
【００６６】
は１−ｏｆ−Ｋ表現、すなわちＫ種類の単語のうちいずれか一つだけ１で残りが全て０となる２値ベクトルで表現されているものとする。なお、ｔはトークンの位置を示し、上記の例では１〜ａの値となる。また、ξ（・）は与えられた単語の１−ｏｆ−Ｋ表現を多次元ベクトルに埋め込む関数である。回答文の意味表現を計算するためのモデルとして、本実施例においては、ｂｉｄｉｒｅｃｔｉｏｎａｌＬＳＴＭを用いる。回答文を表す意味表現は
【００６７】
【数４】
2019204415.tif 000006
【００６８】
とする。回答文の意味表現を得るにはＬＳＴＭブロックの中で、以下の処理（式１〜式６）を行う。まず、式１は、図９に示した入力ゲートｉｔの変換式を示す。
【００６９】
【数５】
2019204415.tif 000007
【００７０】
上記式１において、σはシグノイド関数を採用した例を示すが、これに限定されるものではなく、活性化関数であればよい。また、Ｗは線形変換行列（重み行列）を示し、ｂはバイアス項(バイアスベクトル)を示し、ｈＡｔ−１は前回のＬＳＴＭブロックの出力を示す。次に、図９に示した各ゲートや要素の変換式を以下の式２〜式６に示す。
【００７１】
【数６】
2019204415.tif 000008
【００７２】
上記式２は、忘却ゲートｆｔの変換式を示す。上記式３は、出力ゲートＯｔの変換式を示す。上記式４は、ＬＳＴＭブロックへの入力の変換式を示す。上記式５は、メモリセルＣｔの変換式を示す。上記式６は、ＬＳＴＭブロックからの出力の変換式を示す。
【００７３】
言い回し文生成モデル学習部２０は、入力された学習セットの回答文（ａｎｓｗｅｒ）の全てについて、ニューラルネットワーク７０を用いて上記式（１）〜（６）の演算を行って、エンコーディングを実施する。
【００７４】
上記エンコーディングによって、言い回し文生成モデル学習部２０は、ニューラルネットワーク７０を用いて回答文から話者（質問）の意図を表すベクトルを抽出する。なお、図４に質問文のエンコーダ７１０を示す。なお、回答文の意図を表すベクトルは、後述の数１０のようになる。
【００７５】
次に、言い回し文生成モデル学習部２０は、データセット生成部１２が生成した学習セットの質問文（ｑｕｅｒｙ）から質問文の意味及び表現（意味表現）を学習する。言い回し文生成モデル学習部２０は、与えられた質問文に対してエンコーディングを行う（図３のＳ３００〜Ｓ３０２）。本実施例では、質問文をトークン列
【００７６】
【数７】
2019204415.tif 000009
【００７７】
で表す。ここで、ｘＱは質問文を表し、ｑは質問文ｘＱのトークン列の長さを表す。本実施例では、言い回し文生成モデル学習部２０が日本語の質問文をトークン列に変換する際に、ＭｅＣａｂなど周知または公知の形態素解析ツールを用いて文を分割してから、ストップワードの除去を行う。各トークン
【００７８】
【数８】
2019204415.tif 000010
【００７９】
は１−ｏｆ−Ｋ表現、すなわちＫ種類の単語のうちいずれか一つだけ１で残りが全て０となる２値ベクトルで表現されているものとする。また、ξ（・）は与えられた単語の１−ｏｆ−Ｋ表現を多次元ベクトルに埋め込む関数である。
【００８０】
質問文の意味表現を計算するためのモデルとして、本実施例において、ｂｉｄｉｒｅｃｔｉｏｎａｌＬＳＴＭを用いる。質問文の意味表現を得るにはＬＳＴＭブロックの中で、以下の処理（式７〜式１２）を行う。
【００８１】
【数９】
2019204415.tif 000011
【００８２】
上記式７〜式１２は、上記式１〜６と同様であり、式７は、図９に示した入力ゲートｉｔの変換式を示す。上記式８は、忘却ゲートｆｔの変換式を示す。上記式９は、出力ゲートＯｔの変換式を示す。上記式１０は、ＬＳＴＭブロックへの入力の変換式を示す。上記式１１は、メモリセルＣｔの変換式を示す。上記式１２は、ＬＳＴＭブロックからの出力の変換式を示す。
【００８３】
次に、言い回し文生成モデル学習部２０は、後述するメモリゲート７００の計算が完了している場合には、上記式１〜式６によって回答文に対して意図抽出を行うことにより得られたメモリセル
【００８４】
【数１０】
2019204415.tif 000012
【００８５】
を用いて、質問文に対して、エンコーディングする。なお、メモリセル（数１０）には、回答文の意図を示すベクトルが含まれる。図４に質問文のエンコーダ７２０を示す。
【００８６】
なお、本実施例では、メモリゲート７００の計算が完了した後に、回答文の意図を示すベクトル（数１０）を用いて、質問文に対して再度エンコードを実施する。
【００８７】
回答文側のメモリセルに記録されている情報を用いて質問文をエンコーディングするには、回答文側の情報をコントロールするメモリゲート
δ(・)
を通す必要がある。
【００８８】
メモリゲートδ(・)により、回答文には話者の意図が含まれていない場合、回答文が固有名詞や、数字など意味表現の学習が難しく思われている文字列のみで構成されている場合、回答文の情報に影響されないように、質問文の意味表現を学習することができる。
【００８９】
次に、上記式７〜式１２で質問文の意味表現の学習が完了した後には、メモリゲート７００の計算が行われる。メモリゲート７００の各要素は、以下のように計算される（式１３〜式１４）（図３のＳ５００）。
【００９０】
【数１１】
2019204415.tif 000013
【００９１】
上記式１３及び式１４では、回答文側と質問文側で情報が重複した度合いを算出することができる。上記式１３及び式１４の算出結果でメモリゲート７００を構成することにより、言い回し文生成モデル学習部２０は、回答文側と質問文側で重複した情報を削除することができる。
【００９２】
言い回し文生成モデル学習部２０は、メモリゲート７００の計算が完了した後には、回答文の意図を示すベクトルで質問文のエンコーダ７２０を以下のように初期化する。
【００９３】
【数１２】
2019204415.tif 000014
【００９４】
上記初期化によって、メモリゲート７００の計算結果と、回答文から得た質問文の意図を表すベクトルを、質問文のエンコーダ７２０に反映することで、回答文から得た質問文の意図を示すベクトルが質問文の学習に反映される。
【００９５】
エンコーダ７２０の初期化が完了すると、言い回し文生成モデル学習部２０は、質問文に対する二度目のエンコーディングを上記式７〜式１２に従って行う。質問文の再エンコーディングは、上述のように数１０のメモリセルを用いて行われる。
【００９６】
次に、言い回し文生成モデル学習部２０は、回答文と、質問文の意味表現を元に、ディコーディングを行う。ディコーディングでは、言い回し文（ｐａｒａｐｈｒａｓｅ）のトークンの系列
【００９７】
【数１３】
2019204415.tif 000015
【００９８】
を予測する。ここで、ｐは言い回し文のトークン列の長さを表す。本実施例では、データセット生成部１２によって生成された学習セットとして、学習用の質問文のトークン列と、回答文のトークン列と、言い回し文のトークン列の組が学習セットとして複数与えられる。日本語の文をトークン列に変換する際に、Ｍｅｃａｂなど周知または公知の形態素解析ツールを用いて文を分割してから、ストップワードの除去を行う。
【００９９】
言い回し文の予測は以下のように計算される。言い回し文生成モデル学習部２０は、言い回し文の各トークンを予測するときに、まず、ニューラルネットワーク７０のアテンションの計算を行う。すなわち、言い回し文生成モデル学習部２０は、回答文の各意味表現と、直前の時点に得られた言い回し文の意味表現との間の関連度合いを、以下の式１５〜式１７によって計算する。
【０１００】
【数１４】
2019204415.tif 000016
【０１０１】
なお、上記式１５〜式１７において、ｅは関連度合いを示し、ａは関連度合いの正規化を行うための変数である。上記式１５〜式１７では、回答文とディコーダから出力されるベクトルの関連度合いが算出される。
【０１０２】
次に、言い回し文生成モデル学習部２０は、質問文の各意味表現と、直前の時点で得られた言い回し文の意味表現との間の関連度合いを、次の式１８〜式２０で計算する。
【０１０３】
【数１５】
2019204415.tif 000017
【０１０４】
次に、言い回し文生成モデル学習部２０は、回答文側と、質問文側の重みｄを以下の式２１を用いて計算する。なお、重みｄは、エンコーダ・デコーダモデルにおけるアテンションの重みを示す。重みｄの大きさに応じて回答文側と、質問文側のいずれを参考にするかを判定することができる。
【０１０５】
【数１６】
2019204415.tif 000018
【０１０６】
なお、ｄは回答文側の重みを表す。質問文側の重みは、（１−ｄ）で計算する。なお、重みｄは、回答文の意図を示すベクトルと、質問文の意味及び表現を示すベクトルの差分に基づいて算出される。
【０１０７】
本実施例で生成する言い回し文生成モデルにおいて、学習により算出するパラメータは、線形変換行列Ｗと、バイアス項ｂと、活性化関数σの内部パラメータである。これらのパラメータは、最適なトークン系列
【０１０８】
【数１７】
2019204415.tif 000019
【０１０９】
と以下の式２２、式２３で計算される予測トークン系列
【０１１０】
【数１８】
2019204415.tif 000020
【０１１１】
との誤差を小さくするように学習される。上記式２２のｓは、ディコーディングで出力されたベクトルを示し、式２３のｙは出力された単語を示す。
【０１１２】
トークン系列の誤差関数としては、クロスエントロピーが、パラメータの修正には確率的最急降下法など周知または公知の技術を適用すればよい。
【０１１３】
上記のような手順により、言い回し文生成モデル学習部２０は、学習済みの言い回し文生成モデルを生成して、言い回し生成モデル記憶部３２に格納する。そして、上述したように、コンテンツ生成部３０では、入力された文（質問文）に対して言い回し文生成モデルを適用し、言い回し文を生成し、適切な言い回し文であればＱＡリスト記憶部５０へ格納する。
【０１１４】
ＱＡリスト記憶部５０には、上述したように、質問文と、質問文に対応する言い回し文と、質問文に対応する回答文が格納され、質問応答生成部６０によって利用される。
【０１１５】
質問応答生成部６０では、話者の意図に沿った言い回し文をＱＡリスト記憶部５０に登録することにより、対話の成功率を向上させることができる。
【０１１６】
図３は、本発明による言い回し生成モデル学習部２０で行われる処理の一例を示すフローチャートである。この処理は、言い回し生成モデル学習部２０が、データセット生成部１２から学習セットを受け付けてから実行される。
【０１１７】
言い回し文生成モデル学習部２０は、受け付けた学習セットのうち全ての回答文（ａｎｓｗｅｒ）について、当該回答文に対する質問の意図を抽出する（Ｓ２００〜Ｓ２０２）。ステップＳ２０１では、言い回し文生成モデル学習部２０がニューラルネットワーク７０を用いて上記式（１）〜（６）の演算によりエンコーディングを実施させる。上記エンコーディングでは、回答文は当該回答文の意味を表すベクトル（隠れ層）に変換される。
【０１１８】
全ての回答文について質問の意図の抽出が完了すると、回答文から質問の意図を表すベクトルが抽出される。なお、回答文から抽出した意図を表すベクトルは、上記数１０に示したメモリセルに含まれる。
【０１１９】
次に、ステップＳ３００〜３０２では、言い回し文生成モデル学習部２０は、受け付けた学習セットのうち全ての質問文（ｑｕｅｒｙ）について、当該質問文の意味と表現をニューラルネットワーク７０で学習（エンコーディング）させる。
【０１２０】
質問文の学習が完了すると、言い回し文生成モデル学習部２０は、ステップＳ４００でメモリゲート７００の計算が完了しているか否かを判定し、完了していなければステップＳ５００へ進み、完了していればステップＳ７００へ進む。
【０１２１】
ステップＳ５００では、言い回し文生成モデル学習部２０がメモリゲート７００の計算を上記式１３及び式１４により実施する。
【０１２２】
ステップＳ５０１では、言い回し文生成モデル学習部２０が質問文のエンコーダ７２０を初期化する。言い回し文生成モデル学習部２０は、上記数１２で示したように、回答文の意図を抽出したベクトルで、エンコーダ７２０の初期化を行う。
【０１２３】
ステップＳ６００では、言い回し文生成モデル学習部２０が、メモリゲートでエンコーダ７２０の初期化を実施したか否かを判定し、メモリゲートで初期化していればステップＳ３００に戻って上記処理で質問文の意味表現の学習を再度実施する。一方、メモリゲートで初期化していなければステップＳ７００に進む。
【０１２４】
ステップＳ７００では、言い回し文生成モデル学習部２０が、アテンションの重みｄの値を上記式２１によって算出する。すなわち、今の時点ｔで出力しようとする単語との関連度で重みｄが算出される。
【０１２５】
ステップＳ８００からＳ９０１では、言い回し文生成モデル学習部２０が、学習セットとして与えられた言い回し文のディコーディングをニューラルネットワーク７０を用いて実施する。このディコーディングでは、コンテキストベクトルと前回に出力した単語の情報を入力として受け取り、次の単語が一単語ずつ出力される。
【０１２６】
ステップＳ８０１では、言い回し文生成モデル学習部２０が、ｔにおけるアテンションを上記式１５〜式１７及び式１８〜式２０により算出する。
【０１２７】
次に、ステップＳ９００では、言い回し文生成モデル学習部２０が、トークン系列を予測する。そして、言い回し文生成モデル学習部２０は、最適なトークン系列（数１７）と、予測トークン系列（数１８）の誤差が小さい（例えば、最小）モデルを生成し、言い回し文生成モデルとして出力することができる。
【０１２８】
以上のように、本実施例の言い回し文生成装置は、回答文から質問する側の話者の意図を抽出することで、質問する側の意図に沿った言い回し文を生成することができる。また、話者の意図を考慮することにより、入力文に多義性や曖昧性がある場合でも、適切な言い回し文を生成できる。
【０１２９】
これにより、前記従来の技術を用いた言い回し文に加えて、多様な言い回し文を生成することが可能となり、表現の豊富な言い回し文生成装置及び言い回し文生成方法を提供することができる。
【０１３０】
なお、本実施例の言い回し文生成装置で特徴的な構成は、次の通りである。まず、エンコーダ７１０で回答文のエンコーディングを実施して、回答文から質問文の話者の意図を抽出したベクトルを生成する（数１０）。次に、メモリゲート７００で回答文のベクトルから質問文のベクトルと重複する情報を削除する（式１３、式１４）。
【０１３１】
さらに、質問文の再エンコーディングでは、回答文から算出した意図を示すベクトルで質問文のエンコーダ７２０が初期化される（数１２）。そして、回答文から算出した意図を示すベクトルと、質問文の意味及び表現のベクトルの差分に基づいて重みｄ（アテンション）を算出する（式２１）。
【０１３２】
以上のような構成により、質問する側の意図に沿った言い回し文を生成する言い回し文生成モデルを生成することができる。
【０１３３】
＜まとめ＞
上記実施例では、質問文と、当該質問文が対応している言い回し文と、質問文と言い回し文が対応している回答文を入力として、言い回し文生成モデルを生成（学習）する例を示したが、これに限定されるものではない。例えば、第１の文と、当該第１の文が対応している言い回し文と、第１の文とペアになる第２の文を入力として、言い回し文生成モデルを生成してもよい。
【０１３４】
また、上記実施例では、データセット生成部１２が応対ログから学習セットを生成して言い回し文生成モデル学習部２０へ入力する例を示したが、これに限定されるものではない。例えば、予め生成しておいた学習セット（質問文、言い回し文、回答文）を言い回し文生成モデル学習部２０へ入力してもよい。
【０１３５】
また、上記実施例では、ニューラルネットワーク７０をソフトウェアで実現する例を示したが、ハードウェアで実現してもよい。
【０１３６】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
【０１３７】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１３８】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【０１３９】
＜補足＞
なお、本発明は、次のような構成とすることができる。
【０１４０】
応対ログ記憶部が、質問文や、質問文に対する回答文、質問文及び回答文の対応関係を記憶する機能を有するシステム構成要素と、
データセット生成部が、前記応対ログ記憶部に格納されている情報を、問い合わせの対象となる事柄に関して、クラスタリングを行うことで、同じ質問項目に関する複数の質問文とそれらの質問文が対応している回答文からなるグループを構成する、データセット生成ステップと、
データセット生成部が、前記入力部の出力である複数の質問文と回答文のグループからなるファイルを、モデル学習用、評価用、テスト用のサブセットに分ける処理と、個々のサブセットをもとに、質問文、質問文が対応している言い回し文と、質問文とその言い回し文が対応している回答文からなるトリプレットを生成する、データセット生成ステップと、
言い回し文生成モデル学習部が、前記データセット生成部の出力である質問文、言い回し文、回答文のトリップレットからなる学習セットを用いて、回答文から意図抽出を行い、回答文から抽出された意図をもとに、言い回し文の生成モデルを訓練し、前記データセット生成部の出力である質問文、言い回し文、回答文のトリップレットからなる評価セットで評価を行い、その評価に基いてモデルのパラメータをチューニングし、前記データセット生成部の出力である質問文、言い回し文、回答文のトリップレットからなるテストセットと、チューニング済みの言い回し文生成モデルを用いて、新たな質問文に対してその言い回し文を生成し、テスト結果を提示する、言い回し文生成モデル学習ステップと、
入力インターフェースが、質問文と回答文を受ける機能を有するシステム構成要素と、
言い回し文生成モデル記憶部が、前記言い回し文生成モデル学習部の出力である学習済みの言い回し文生成モデルを格納する機能を有するシステム構成要素と、
判定者向けインターフェースが、前記言い回し文生成モデル記憶部の出力結果である言い回し文と、前記入力インターフェースが受けつけた回答文と、質問文を表示する機能を有するシステム構成要素と、
判定部が、前記言い回し文生成部の出力である言い回し文に対して、適切、不適切のラベルを付ける作業を行う、判定ステップと、
評価部が、前記判定部の出力である判定結果をもとに、コンテンツ生成コスト、文の正確さ、自然さの評価を行い、言い回し文生成部の出力結果である言い回し文を用いて、シミュレーションを行う評価ステップと、
更新部が、前記評価部の出力である言い回し文の評価値に基き、既存のＱＡリストを更新する、更新ステップと、
ＱＡリスト記憶部が、質問文、質問文に対する回答文、質問文及び回答文の対応関係をリスト化したもの（ＱＡリスト）を記憶する装置であり、前記更新部の出力である新規の言い回し文を受けてＱＡリストを更新する装置と、
インターフェースが、ユーザから質問文を受けつけ、ユーザに回答を提示することを特徴とするシステムの構成要素と、
マッチング部が、文の類似度算出アルゴリズムを用いて前記インターフェースが受け付けたユーザからの質問文と、前記ＱＡ記憶部に蓄積されている質問項目との類似度を計算し、最適な回答文を選び出す、マッチングステップと、を含むことを特徴とする言い回し文生成装置。
【０１４１】
また、本発明は、次のような構成とすることができる。
【０１４２】
前記データセット生成部の出力である回答文から意図抽出を行い、意図を表すベクトルを出力する、意図抽出ステップと、
前記データセット生成部の出力である質問文を、その意味表現に変換し、質問文の意味表現を出力する、質問文エンコーディングステップと、
前記意図抽出ステップの出力結果である質問の意図を表すベクトルと、前記質問文エンコーディングステップの出力である質問文の意味表現に基き、意図を表すベクトルのなかから必要な情報のみを取り出すためのメモリゲートと、
前記意図抽出ステップの出力であるベクトルを、メモリゲートを用いて糸を表しベクトルを計算しなおし、前記質問エンコーディングステップの初期化に反映する初期化ステップと、
前記初期化ステップの結果に基いて、再度質問文に対してエンコーディングを行う質問文エンコーディングステップと、
前記質問文エンコーディングステップの結果と、意図抽出ステップの結果に基き、アテンションの重みを算出、その結果を出力するアテンション計算ステップと、
前記エンコーディングステップの結果と、意図抽出ステップの結果と、アテンション計算ステップの結果に基いて、入力された質問文の言い回し文にあたる文字列を、一単語ずつ予測し、予測結果を出力するディコーディングステップを有する言い回し文生成方法。
【符号の説明】
【０１４３】
１０  前処理部
１１  応対ログ記憶部
１２  データセット生成部
１３  言い回し生成モデル学習部
３０  コンテンツ生成部
３１  入力インターフェース
３２  言い回し生成モデル記憶部
３３  判定者向けインターフェース
３４  判定部
３５  評価部
４０  更新部
５０  ＱＡリスト記憶部
６０  質問応対部
６１  ユーザインターフェース
６２  マッチング部
７０  ニューラルネットワーク
【図１】
2019204415.tif 000021
【図２】
2019204415.tif 000022
【図３】
2019204415.tif 000023
【図４】
2019204415.tif 000024
【図５】
2019204415.tif 000025
【図６】
2019204415.tif 000026
【図７】
2019204415.tif 000027
【図８】
2019204415.tif 000028
【図９】
2019204415.tif 000029