(57)【要約】【課題】文を復元するためのモデル、及び文を翻訳するためのモデルを効率よく学習する。【解決手段】学習装置１００は、対訳文の各々を圧縮表現ベクトルに変換すると共に、各々の対訳文の重み付けを算出し、対訳文として入力された各々の言語の文を双方向に翻訳するための翻訳モデルの学習と、対訳文として入力された各々の言語の文を元の言語の文字列に復元する復元モデルの学習を一度に実行する。【選択図】図１
2019008744.tif 000002
【特許請求の範囲】
【請求項１】
第１言語及び第２言語の各々で記述された対訳文における前記第１言語の文、及び前記第２言語の文の各々に対して、文をベクトルに変換した圧縮表現ベクトルを生成する圧縮部と、
前記圧縮部で生成された前記第１言語の文の前記圧縮表現ベクトルを用いて、前記第１言語の文の重み付けを求め、前記第２言語の文の前記圧縮表現ベクトルを用いて、前記第２言語の文の重み付けを求める分類部と、
前記第１言語の文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付けを前記第１言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第１言語の文に対応し、かつ、
前記第１言語の文の重み付けを前記第２言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第２言語の文に対応し、かつ、
前記第１言語の文の重み付けを前記第２言語の文の重み付けに変換したもの、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付け、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第２言語の文に対応し、かつ、
前記第１言語の文の重み付け、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付けを前記第１言語の文の重み付けに変換したもの、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第１言語の文に対応するように、前記第１ニューラルネットワーク、前記第２ニューラルネットワーク、及び前記第３ニューラルネットワークの各々を学習する学習部と、
を備えた学習装置。
【請求項２】
入力された第１言語の文に対して、文をベクトルに変換した圧縮表現ベクトルを生成する圧縮部と、
前記圧縮部で生成された前記第１言語の文の前記圧縮表現ベクトルを用いて、前記第１言語の文の重み付けを求める分類部と、
請求項１記載の学習装置によって学習された前記第１ニューラルネットワーク、前記第２ニューラルネットワーク、及び前記第３ニューラルネットワークを用いて、前記第１言語の文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第１言語とは異なる言語の予め定められた文の重み付けを前記第１言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力を計算し、前記第１言語の文を再現する復元部と、
請求項１記載の学習装置によって学習された前記第１ニューラルネットワーク、前記第２ニューラルネットワーク、及び前記第３ニューラルネットワークを用いて、前記第１言語の文の重み付けを前記第２言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第１言語とは異なる言語の予め定められた文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力を計算し、前記第１言語の文を前記第２言語の文に翻訳する翻訳部と、
を備えたテキスト生成装置。
【請求項３】
第１言語及び第２言語の各々で記述された対訳文における前記第１言語の文、及び前記第２言語の文の各々に対して、文をベクトルに変換した圧縮表現ベクトルを生成するステップと、
生成された前記第１言語の文の前記圧縮表現ベクトルを用いて、前記第１言語の文の重み付けを求め、前記第２言語の文の前記圧縮表現ベクトルを用いて、前記第２言語の文の重み付けを求めるステップと、
前記第１言語の文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付けを前記第１言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第１言語の文に対応し、かつ、
前記第１言語の文の重み付けを前記第２言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第２言語の文に対応し、かつ、
前記第１言語の文の重み付けを前記第２言語の文の重み付けに変換したもの、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付け、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第２言語の文に対応し、かつ、
前記第１言語の文の重み付け、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付けを前記第１言語の文の重み付けに変換したもの、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第１言語の文に対応するように、前記第１ニューラルネットワーク、前記第２ニューラルネットワーク、及び前記第３ニューラルネットワークの各々を学習するステップと、
を含む学習方法。
【請求項４】
入力された第１言語の文に対して、文をベクトルに変換した圧縮表現ベクトルを生成するステップと、
生成された前記第１言語の文の前記圧縮表現ベクトルを用いて、前記第１言語の文の重み付けを求めるステップと、
請求項１記載の学習装置によって学習された前記第１ニューラルネットワーク、前記第２ニューラルネットワーク、及び前記第３ニューラルネットワークを用いて、前記第１言語の文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第１言語とは異なる言語の予め定められた文の重み付けを前記第１言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力を計算し、前記第１言語の文を再現するステップと、
請求項１記載の学習装置によって学習された前記第１ニューラルネットワーク、前記第２ニューラルネットワーク、及び前記第３ニューラルネットワークを用いて、前記第１言語の文の重み付けを前記第２言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第１言語とは異なる言語の予め定められた文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力を計算し、前記第１言語の文を前記第２言語の文に翻訳するステップと、
を含むテキスト生成方法。
【請求項５】
コンピュータを、請求項１に記載の学習装置、又は請求項２に記載のテキスト生成装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、テキスト生成装置、方法、及びプログラムに係り、特に、圧縮された文の文字列を復元すると共に、当該圧縮された文を他の言語の文字列に翻訳するための学習装置、テキスト生成装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
従来より、自然言語で記述された文を他の言語の文に翻訳する機械翻訳の研究が進められている。
【０００３】
機械翻訳には、例えばニューラルネットワークを用いた翻訳モデルが用いられ、例えばより多くの学習サンプルを用いて翻訳モデルの学習を進めることで、翻訳精度の向上が図られる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Dzmitry Bahdanau, KyungHyun Cho, Yoshua Bengio, "Neural Machine Translation by Jointly Learning to Align  and Translate" International Conference on Learning Representations(ICLR), 2015
【非特許文献２】Minh-Thang Luong, Hieu Pham, Christopher D. Manning,"Effective Approaches to Attention-based Neural Machine Translation" Conference on Empirical Methods in Natural Language Processing(EMNLP), 2015.
【非特許文献３】Mike Schuster, Kuldip K. Paliwal, "Bidirectional Recurrent Neural Networks" IEEE Transactions on Signal Processing, vol.45, No.11, November 1997, p.2673-2681
【非特許文献４】Alex Graves, Jurgen Schmidhuber, "Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures" Neural Networks 18.5, 2005, p.602-610
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の翻訳モデルの学習では、モデル毎に学習を行う必要がある。例えば、文をベクトルに変換することで圧縮した圧縮表現を用いて、日本語及び英語で記述された文を双方向に翻訳する場合、日本語の文の圧縮表現から英語の文字列に変換するための翻訳モデルの学習と、英語の文の圧縮表現から日本語の文字列に変換するための翻訳モデルの学習とを個々に行う必要がある。
【０００６】
更に、日本語の文の圧縮表現から元の日本語の文字列を復元する場合や、英語の文の圧縮表現から元の英語の文字列を復元する場合にも、各々の文字列の復元に対して復元モデルがそれぞれ用いられるが、各々の復元モデルの学習も個別に行う必要がある。
【０００７】
本発明は、上記問題点を解決するために成されたものであり、文を復元するためのモデル、及び文を翻訳するためのモデルを効率よく学習することができる学習装置、方法、及びプログラムを提供することを目的とする。
【０００８】
また、文を復元すると共に、文を翻訳することができるテキスト生成装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、第１の発明に係る学習装置は、第１言語及び第２言語の各々で記述された対訳文における前記第１言語の文、及び前記第２言語の文の各々に対して、文をベクトルに変換した圧縮表現ベクトルを生成する圧縮部と、前記圧縮部で生成された前記第１言語の文の前記圧縮表現ベクトルを用いて、前記第１言語の文の重み付けを求め、前記第２言語の文の前記圧縮表現ベクトルを用いて、前記第２言語の文の重み付けを求める分類部と、前記第１言語の文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付けを前記第１言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第１言語の文に対応し、かつ、前記第１言語の文の重み付けを前記第２言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第２言語の文に対応し、かつ、前記第１言語の文の重み付けを前記第２言語の文の重み付けに変換したもの、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付け、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第２言語の文に対応し、かつ、前記第１言語の文の重み付け、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付けを前記第１言語の文の重み付けに変換したもの、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第１言語の文に対応するように、前記第１ニューラルネットワーク、前記第２ニューラルネットワーク、及び前記第３ニューラルネットワークの各々を学習する学習部と、を備える。
【００１０】
また、第２の発明に係るテキスト生成装置は、入力された第１言語の文に対して、文をベクトルに変換した圧縮表現ベクトルを生成する圧縮部と、前記圧縮部で生成された前記第１言語の文の前記圧縮表現ベクトルを用いて、前記第１言語の文の重み付けを求める分類部と、請求項１記載の学習装置によって学習された前記第１ニューラルネットワーク、前記第２ニューラルネットワーク、及び前記第３ニューラルネットワークを用いて、前記第１言語の文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第１言語とは異なる言語の予め定められた文の重み付けを前記第１言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力を計算し、前記第１言語の文を再現する復元部と、請求項１記載の学習装置によって学習された前記第１ニューラルネットワーク、前記第２ニューラルネットワーク、及び前記第３ニューラルネットワークを用いて、前記第１言語の文の重み付けを前記第２言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第１言語とは異なる言語の予め定められた文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力を計算し、前記第１言語の文を前記第２言語の文に翻訳する翻訳部と、を備える。
【００１１】
第３の発明に係る学習方法は、第１言語及び第２言語の各々で記述された対訳文における前記第１言語の文、及び前記第２言語の文の各々に対して、文をベクトルに変換した圧縮表現ベクトルを生成するステップと、生成された前記第１言語の文の前記圧縮表現ベクトルを用いて、前記第１言語の文の重み付けを求め、前記第２言語の文の前記圧縮表現ベクトルを用いて、前記第２言語の文の重み付けを求めるステップと、前記第１言語の文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付けを前記第１言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第１言語の文に対応し、かつ、前記第１言語の文の重み付けを前記第２言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第２言語の文に対応し、かつ、前記第１言語の文の重み付けを前記第２言語の文の重み付けに変換したもの、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付け、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第２言語の文に対応し、かつ、前記第１言語の文の重み付け、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第２言語の文の重み付けを前記第１言語の文の重み付けに変換したもの、及び前記第２言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力が、前記第１言語の文に対応するように、前記第１ニューラルネットワーク、前記第２ニューラルネットワーク、及び前記第３ニューラルネットワークの各々を学習するステップと、を含むことを特徴とする。
【００１２】
第４の発明に係るテキスト生成方法は、入力された第１言語の文に対して、文をベクトルに変換した圧縮表現ベクトルを生成するステップと、生成された前記第１言語の文の前記圧縮表現ベクトルを用いて、前記第１言語の文の重み付けを求めるステップと、請求項１記載の学習装置によって学習された前記第１ニューラルネットワーク、前記第２ニューラルネットワーク、及び前記第３ニューラルネットワークを用いて、前記第１言語の文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第１言語とは異なる言語の予め定められた文の重み付けを前記第１言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力を計算し、前記第１言語の文を再現するステップと、請求項１記載の学習装置によって学習された前記第１ニューラルネットワーク、前記第２ニューラルネットワーク、及び前記第３ニューラルネットワークを用いて、前記第１言語の文の重み付けを前記第２言語の文の重み付けに変換したもの、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第１ニューラルネットワークの出力と、前記第１言語とは異なる言語の予め定められた文の重み付け、及び前記第１言語の文の前記圧縮表現ベクトルを入力としたときの、第２ニューラルネットワークの出力と、を入力としたときの、第３ニューラルネットワークの出力を計算し、前記第１言語の文を前記第２言語の文に翻訳するステップと、を含むことを特徴とする。
【００１３】
第５の発明に係るプログラムは、コンピュータを、請求項１に記載の学習装置、又は請求項２に記載のテキスト生成装置の各部として機能させるためのプログラムである。
【発明の効果】
【００１４】
本発明の学習装置、方法、及びプログラムによれば、文を復元するためのモデル、及び文を翻訳するためのモデルを効率よく学習することができる、という効果が得られる。
【００１５】
また、本発明のテキスト生成装置、方法、及びプログラムによれば、文を復元すると共に、文を翻訳することができる、という効果が得られる。
【図面の簡単な説明】
【００１６】
【図１】学習装置の構成例を示す図である。
【図２】学習処理ルーチンの流れの一例を示すフローチャートである。
【図３】テキスト生成装置の構成例を示す図である。
【図４】テキスト生成処理ルーチンの流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１８】
＜本発明の実施の形態に係る学習装置の構成＞
まず、本発明の実施の形態に係る学習装置の構成について説明する。図１に示すように、本発明の実施の形態に係る学習装置１００は、ＣＰＵと、ＲＡＭと、後述する学習処理ルーチンを実行するための学習プログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することができる。この学習装置１００は、機能的には図１に示すように入力部１０と、演算部２０とを備えている。
【００１９】
入力部１０は、言語の異なる第１言語及び第２言語の各々で記述された対訳文を受け付ける。第１言語及び第２言語は何れの言語であってもよいが、以降では、例えば第１言語を英語、第２言語を日本語として説明を行う。
【００２０】
Ｓentenを英語で記述された入力文、Ｓentjpを日本語で記述された入力文とすれば、入力部１０に入力される文は、それぞれＳenten＝｛w0en, w1en, w2en,...｝、Ｓentjp＝｛w0jp, w1jp, w2jp,...｝で表される。ここで、wjenは文Ｓentenに含まれる単語であり、wjjpは文Ｓentjpに含まれる単語である。また、インデックスｊは、文Ｓentenに含まれる単語、及び文Ｓentjpに含まれる単語の順序を表す。英語と日本語の対訳文の例として、例えば日英対訳コーパスが用いられる。
【００２１】
演算部２０は、圧縮部２１、分類部２２、学習部２３、及び変換モデル２４を含んで構成される。
【００２２】
圧縮部２１は、入力部１０で受け付けた文Ｓenten及び文Ｓentjpを、それぞれ圧縮表現ベクトルＳen及びＳjpに変換する。文Ｓenten及び文Ｓentjpの圧縮表現ベクトルＳen、Ｓjpは、例えば非特許文献４に示されるBiLSTM(Bidirectional Long Short Term Memory：双方向LSTM)を用いて作成される。関数BiLSTM(x)を、入力xに対するBiLSTMの演算関数とすれば、圧縮表現ベクトルＳen、Ｓjpはそれぞれ（１）式で求められる。
【００２３】
【数１】
2019008744.tif 000003
【００２４】
なお、以降では、文を「テキスト」という場合がある。
【００２５】
分類部２２は、圧縮部２１で生成された圧縮表現ベクトルＳen、Ｓjpを入力として、圧縮表現ベクトルＳen、Ｓjpで表される各々の言語の文の重み付けを求める。文の重み付けｆ(Ｓ#)は（２）式で求められる。
【００２６】
【数２】
2019008744.tif 000004
【００２７】
ここで、#は言語の種類を表し、この場合“en”または“jp”となる。また、関数active(x)は入力xに対する正則化関数を表し、例えば関数tanh(x)やシグモイド関数が用いられる。Ｗは圧縮表現ベクトルＳ#に対する重みを表し、ｂはオフセットを表す。
【００２８】
したがって、英語の文の圧縮表現ベクトルＳenに対する文の重み付けｈen、及び日本語の文の圧縮表現ベクトルＳjpに対する文の重み付けｈjpは、それぞれ（３）式で求められる。なお、本実施の形態では、文の重み付けｈen、ｈjpがスカラー値である場合を例に説明するが、これに限定されるものではなく、文の重み付けｈen、ｈjpがベクトルであってもよい。
【００２９】
【数３】
2019008744.tif 000005
【００３０】
学習部２３は、圧縮部２１で生成された圧縮表現ベクトルＳen、Ｓjpと、分類部２２で求められた文の重み付けｈen、ｈjpを入力として、圧縮表現ベクトルＳen、Ｓjpを文字列に変換するための変換モデル２４を学習する。変換モデル２４は、英語の文と日本語の文を相互に翻訳するためのモデル（翻訳モデル）と、圧縮表現ベクトルＳ#から圧縮前の元の言語の文字列を復元するためのモデル（復元モデル）が統合されたモデルとして表される。
【００３１】
変換モデル２４は、第１ニューラルネットワーク、第２ニューラルネットワーク、及び第３ニューラルネットワークから成る３つのニューラルネットワークを含んで構成される。
【００３２】
第１ニューラルネットワーク及び第２ニューラルネットワークには、圧縮表現ベクトルＳ#と文の重み付けｈ#の組み合わせがそれぞれ入力される。第３ニューラルネットワークには、第１ニューラルネットワークの出力と第２ニューラルネットワークの出力が入力され、第３ニューラルネットワークの出力が、圧縮表現ベクトルＳen、Ｓjpに対する変換後の文字列を表す。
【００３３】
ニューラルネットワークは入力に対して何らかの値を出力することから、ニューラルネットワーク自体を関数とみなすことができる。
【００３４】
そこで、“α”を文の重み付けｈ#によって決定されるスカラー値とした場合、第１ニューラルネットワークk(α,Ｓ#)、及び第２ニューラルネットワークk'(α,Ｓ#)は、それぞれ（４）式及び（５）式で表される。
【００３５】
【数４】
2019008744.tif 000006
【００３６】
ここで、Ｗ0及びＷ1は第１ニューラルネットワークの重みであり、ｂ0及びｂ1は第１ニューラルネットワークのオフセットである。また、Ｗ0'及びＷ1'は第２ニューラルネットワークの重みであり、ｂ0'及びｂ1'は第２ニューラルネットワークのオフセットである。
【００３７】
第１ニューラルネットワークk(α,Ｓ#)の出力をｕ、第２ニューラルネットワークk'(α,Ｓ#)の出力をｖとすれば、第３ニューラルネットワークｇ(ｕ，ｖ)は（６）式で示したアルゴリズムに従って、圧縮表現ベクトルＳen、Ｓjpに対する変換後の文字列oi={o1,o2,o3,...}を出力する。
【００３８】
【数５】
2019008744.tif 000007
【００３９】
ここで、Ｗ'は第１ニューラルネットワークの出力ｕに対する重み、Ｗ''は第２ニューラルネットワークの出力ｖに対する重み、Ｗ'''は第１ニューラルネットワークの出力ｕ及び第２ニューラルネットワークの出力ｖに対する重みを表す。
【００４０】
また、ｏ0は単位ベクトルであり（“＾”はベクトルを表す）、Ｓｅｑinputは、入力された文を表し、ｗjは、文Ｓｅｑinputに含まれる単語であり、ｗj^は、単語ｗjを表すベクトルである。ｗj^を第３ニューラルネットワークの入力ベクトルとすれば、attentioniは、どの入力wj^ベクトルに着目するかweightjで重み付けを行ったアテンションモデルにおけるアテンションを表す。なお、ｗj^を文の重み付けｈｊに置換えてもよい。
【００４１】
[t:ｏi-1^：attentioni]はそれぞれのベクトルの連結を表し、Ｗ2及びＷ3は第３ニューラルネットワークの重み、ｂ',ｂ2,及びｂ3は、第３ニューラルネットワークのオフセットを表す。while(y)は、論理式ｙが真である間、whileとendで囲まれた演算式を繰り返し実行することを表す。文字列ｏiの決定には、一つ前の出力である文字列ｏi-1が入力として用いられることから、第３ニューラルネットワークは。リカレントニューラルネットワークの構造を内部に持つ。
【００４２】
このように（６）式によって、スカラー値αに応じた圧縮表現ベクトルＳen、Ｓjpの変換後の文字列oiが得られることになる。
【００４３】
具体的には、Ｓenten-enを英語の文の圧縮表現ベクトルＳenから復元した英語の文字列、Ｓenten-jpを圧縮表現ベクトルＳenで表される英語の文を翻訳して得られた日本語の文字列、Ｓentjp-jpを日本語の文の圧縮表現ベクトルＳjpから復元した日本語の文字列、Ｓentjp-enを圧縮表現ベクトルＳjpで表される日本語の文を翻訳して得られた英語の文字列とすれば、文字列Ｓenten-en, Ｓenten-jp, Ｓentjp-jp, Ｓentjp-enは、それぞれ（７）式で求められる。
【００４４】
【数６】
2019008744.tif 000008
【００４５】
ここで、“１”から文の重み付けｈ#を引いた値である“1-ｈen”及び“1-ｈjp”は、それぞれ英語の文の重み付けｈenを日本語の文の重み付けに変換したもの、日本語の文の重み付けｈjpを英語の文の重み付けに変換したものに相当する。
【００４６】
更に学習部２３は、（７）式に示した文字列の変換によって得られた文字列と、入力された文字列との違いを用いて、損失関数Ｌを（８）式で算出する。
【００４７】
【数７】
2019008744.tif 000009
【００４８】
ここで、関数loss()として、softmax cross entropy等を用いればよい。
【００４９】
学習部２３は、（８）式で求めた損失関数Ｌが最小となるように、第１ニューラルネットワークの重みＷ0及びＷ1、第１ニューラルネットワークのオフセットｂ0及びｂ1、第２ニューラルネットワークの重みＷ0'及びＷ1'、第２ニューラルネットワークのオフセットｂ0'及びｂ1'、第３ニューラルネットワークの重みＷ'、Ｗ''、Ｗ'''、Ｗ2及びＷ3、並びに第３ニューラルネットワークのオフセットｂ',ｂ2,及びｂ3を調整し、変換モデル２４の学習を行う。
【００５０】
＜本発明の実施の形態に係る学習装置の作用＞
次に、本発明の実施の形態に係る学習装置１００の作用について説明する。入力部１０において、対訳文である英語の入力文Ｓentenと日本語の入力文Ｓentjpを受け付けると、学習装置１００は、図２に示す学習処理ルーチンを実行する。
【００５１】
まず、ステップＳ１０では、入力部１０で受け付けた英語の入力文Ｓentenと日本語の入力文Ｓentjpを、それぞれ圧縮表現ベクトルＳen及びＳjpに変換する。
【００５２】
ステップＳ２０では、ステップＳ１０で得られた圧縮表現ベクトルＳen、Ｓjpに対する各々の文の重み付けｈen、ｈjpを算出する。
【００５３】
ステップＳ３０では、ステップＳ２０で得られた文の重み付けｈen、ｈjpと、ステップＳ１０で得られた圧縮表現ベクトルＳenを用いて、圧縮表現ベクトルＳenから復元した英語の文字列Ｓenten-enを求める。また、ステップＳ２０で得られた圧縮表現ベクトルｈen、ｈjpと、ステップＳ１０で得られた圧縮表現ベクトルＳjpを用いて、圧縮表現ベクトルＳjpから復元した日本語の文字列Ｓentjp-jpを求める。
【００５４】
ステップＳ４０では、ステップＳ２０で得られた文の重み付けｈen、ｈjpと、ステップＳ１０で得られた圧縮表現ベクトルＳenを用いて、圧縮表現ベクトルＳenで表される文を翻訳した日本語の文字列Ｓenten-jpを求める。また、ステップＳ２０で得られた圧縮表現ベクトルｈen、ｈjpと、ステップＳ１０で得られた圧縮表現ベクトルＳjpを用いて、圧縮表現ベクトルＳjpで表される文を翻訳した英語の文字列Ｓentjp-enを求める。
【００５５】
ステップＳ５０では、ステップＳ３０で復元した文字列Ｓenten-en及びＳentjp-jp、ステップＳ４０で翻訳した文字列Ｓenten-jp及びＳentjp-en、並びに入力部１０に入力した入力文Ｓenten及びＳentjpから、損失関数Ｌを算出し、損失関数Ｌが最小となるように、変換モデル２４の学習を行う。
【００５６】
以上説明したように、本実施の形態に係る学習装置１００によれば、対訳文の変換モデル２４の出力に対する損失関数Ｌが最小となるように変換モデル２４を学習することで、対訳文として入力された各々の言語の文を双方向に翻訳するための翻訳モデルの学習と、対訳文として入力された各々の言語の文を元の言語の文字列に復元する復元モデルの学習を一度に実行することができる。
【００５７】
したがって、文を復元するためのモデル、及び文を翻訳するためのモデルを効率よく学習することができる。
【００５８】
なお、上記では、入力部１０に２つの言語で記述された対訳文を入力する例について説明したが、３つ以上の言語で記述された対訳文を入力してもよい。この場合、３つ以上の言語で記述された文を相互に翻訳すると共に、入力された文から各々の言語で記述された文字列を復元する変換モデル２４の学習が行われることになる。したがって、２つの言語で記述された文を用いて変換モデル２４を学習する場合と比較して、文を復元するためのモデル、及び文を翻訳するためのモデルを更に効率よく学習することができる。
【００５９】
＜本発明の実施の形態に係るテキスト生成装置の構成＞
次に、本発明の実施の形態に係るテキスト生成装置の構成について説明する。図３に示すように、本発明の実施の形態に係るテキスト生成装置２００は、ＣＰＵと、ＲＡＭと、後述するテキスト生成処理ルーチンを実行するためのテキスト生成プログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することができる。このテキスト生成装置２００は、機能的には図３に示すように入力部１０と、演算部２０と、出力部３０を備えている。
【００６０】
入力部１０は、第１言語又は第２言語で記述された文Ｓent#を受け付ける。学習装置１００で学習した言語と同じ言語であれば、第１言語及び第２言語は何れの言語であってもよいが、例えば第１言語を英語、第２言語を日本語として説明を行う。したがって、入力部１０には、英語の文Ｓenten、又は日本語の文Ｓentjpが入力される。
【００６１】
圧縮部２１は、既に学習装置１００で説明したように、（１）式を用いて、入力部１０で受け付けた文Ｓent#を圧縮表現ベクトルＳ#に変換する。すなわち、入力部１０で英語の文Ｓentenを受け付けた場合、圧縮表現ベクトルＳenに変換し、入力部１０で日本語の文Ｓentjpを受け付けた場合、圧縮表現ベクトルＳjpに変換する。
【００６２】
分類部２２は、既に学習装置１００で説明したように、（２）式を用いて、圧縮部２１で生成された圧縮表現ベクトルＳ#を入力として、圧縮表現ベクトルＳ#で表される言語の文の重み付けｈ#を求める。すなわち、入力部１０で英語の文Ｓentenを受け付けた場合、英語の文の重み付けｈenを算出し、入力部１０で日本語の文Ｓentjpを受け付けた場合、日本語の文の重み付けｈjpを算出する。
【００６３】
復元部２５は、圧縮部２１で得られた圧縮表現ベクトルＳ#と、分類部２２で得られた、入力部１０で受け付けた文Ｓent#の文の重み付けｈ#と、文Ｓent#の言語と異なる予め定められた文の重み付けｈ#とを、学習装置１００によって既に学習された変換モデル２４に入力することで、圧縮部２１で得られた圧縮表現ベクトルＳ#から文字列を復元する。
【００６４】
すなわち、入力部１０で英語の文Ｓentenを受け付けた場合、（７）式で示したように、文の重み付けｈen及び圧縮表現ベクトルＳenを第１ニューラルネットワークに入力した出力ｕと、文の重み付けｈjpを英語の文の重み付けに変換したもの（設定値）及び圧縮表現ベクトルＳenを第２ニューラルネットワークに入力した出力ｖとを第３ニューラルネットワークに入力することで、文字列Ｓenten-enを取得する。また、入力部１０で日本語の文Ｓentjpを受け付けた場合、（７）式で示したように、文の重み付けｈenを日本語の文の重み付けに変換したもの（設定値）及び圧縮表現ベクトルＳjpを第１ニューラルネットワークに入力した出力ｕと、文の重み付けｈjp及び圧縮表現ベクトルＳjpを第２ニューラルネットワークに入力した出力ｖとを第３ニューラルネットワークに入力することで、文字列Ｓentjp-jpを取得する。
【００６５】
翻訳部２６も復元部２５と同じく、圧縮部２１で得られた圧縮表現ベクトルＳ#と、分類部２２で得られた、入力部１０で受け付けた文Ｓent#の文の重み付けｈ#と、文Ｓent#の言語と異なる予め定められた文の重み付けｈ#とを、学習装置１００によって既に学習された変換モデル２４に入力することで、圧縮表現ベクトルＳ#で表される言語の文を他の言語の文に翻訳する。
【００６６】
すなわち、入力部１０で英語の文Ｓentenを受け付けた場合、（７）式で示したように、文の重み付けｈenを日本語の文の重み付けに変換したもの（設定値）及び圧縮表現ベクトルＳenを第１ニューラルネットワークに入力した出力ｕと、文の重み付けｈjp及び圧縮表現ベクトルＳenを第２ニューラルネットワークに入力した出力ｖとを第３ニューラルネットワークに入力することで、文字列Ｓenten-jpを取得する。また、入力部１０で日本語の文Ｓentjpを受け付けた場合、（７）式で示したように、文の重み付けｈen及び圧縮表現ベクトルＳjpを第１ニューラルネットワークに入力した出力ｕと、文の重み付けｈjpを英語の文の重み付けに変換したもの（設定値）及び圧縮表現ベクトルＳjpを第２ニューラルネットワークに入力した出力ｖとを第３ニューラルネットワークに入力することで、文字列Ｓentjp-enを取得する。
【００６７】
出力部３０は、復元部２５で復元された文字列Ｓenten-en及びＳentjp-jp、並びに、翻訳部２６で翻訳された文字列Ｓenten-jp及びＳentjp-enを、例えばハードディスク等の記憶媒体、又は液晶ディスプレイ等の表示媒体を含む出力装置に出力する。具体的には、入力部１０で英語の文Ｓentenを受け付けた場合、出力部３０は、復元部２５で復元された文字列Ｓenten-en、及び翻訳部２６で翻訳された文字列Ｓenten-jpの少なくとも一方を出力装置に出力する。また、入力部１０で日本語の文Ｓentjpを受け付けた場合、出力部３０は、復元部２５で復元された文字列Ｓentjp-jp、及び翻訳部２６で翻訳された文字列Ｓentjp-enの少なくとも一方を出力装置に出力する。
【００６８】
なお、上記ではテキスト生成装置２００を学習装置１００と異なる装置として説明したが、テキスト生成装置２００に学習部２３を設け、学習装置１００とテキスト生成装置２００を１つの装置で実現してもよい。
【００６９】
＜本発明の実施の形態に係るテキスト生成装置の作用＞
次に、本発明の実施の形態に係るテキスト生成装置２００の作用について説明する。入力部１０において、英語の入力文Ｓenten、又は日本語の入力文Ｓentjpを受け付けると、テキスト生成装置２００は、図４に示すテキスト生成処理ルーチンを実行する。
【００７０】
ここでは、入力部１０で英語の入力文Ｓentenを受け付けた場合について説明するが、日本語の入力文Ｓentjpを受け付けた場合であっても、以下に説明する処理と同じ処理が実行される。
【００７１】
まず、ステップＳ１００では、入力部１０で受け付けた英語の入力文Ｓentenを、圧縮表現ベクトルＳenに変換する。
【００７２】
ステップＳ１１０では、ステップＳ１００で得られた圧縮表現ベクトルＳenに対する文の重み付けｈenを算出する。
【００７３】
ステップＳ１２０では、ステップＳ１１０で得られた文の重み付けｈenと、ステップＳ１００で得られた圧縮表現ベクトルＳenと、予め定めた文の重み付けｈjpを用いて、圧縮表現ベクトルＳenから復元した英語の文字列Ｓenten-enを求める。
【００７４】
ステップＳ１３０では、ステップＳ１１０で得られた文の重み付けｈenと、ステップＳ１００で得られた圧縮表現ベクトルＳenと、予め定めた文の重み付けｈjpを用いて、圧縮表現ベクトルＳenで表される文を翻訳した日本語の文字列Ｓenten-jpを求める。
【００７５】
ステップＳ１４０では、ステップＳ１２０で圧縮表現ベクトルＳenから復元した英語の文字列Ｓenten-en、及びステップＳ１３０で圧縮表現ベクトルＳenで表される文を翻訳した日本語の文字列Ｓenten-jpを出力装置に出力する。なお、必ずしも文字列Ｓenten-en及び文字列Ｓenten-jpを出力装置に出力する必要はなく、文字列Ｓenten-en及び文字列Ｓenten-jpの少なくとも一方を出力装置に出力すればよい。
【００７６】
以上説明したように、本実施の形態に係るテキスト生成装置２００によれば、予め学習装置１００で学習された変換モデル２４を用いて、入力した文に対応する圧縮表現ベクトルから文を復元すると共に、入力した文を他の言語に翻訳することができる。
【００７７】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００７８】
例えば、上述した実施の形態では、変換モデル２４にニューラルネットワークを用いる場合を例に説明したが、これに限定されるものではなく、文の翻訳及び文の復元が可能なモデルであれば、他の手法を適用してもよい。
【００７９】
また、上述した実施の形態では、学習処理ルーチン及びテキスト生成処理ルーチンをソフトウエアで実現する例について示したが、ＡＳＩＣ(Application Specific Integrated Circuit)等のハードウエアを用いて実現してもよい。
【符号の説明】
【００８０】
１０・・・入力部
２０・・・演算部
２１・・・圧縮部
２２・・・分類部
２３・・・学習部
２４・・・変換モデル
２５・・・復元部
２６・・・翻訳部
３０・・・出力部
１００・・・学習装置
２００・・・テキスト生成装置
【図１】
2019008744.tif 000010
【図２】
2019008744.tif 000011
【図３】
2019008744.tif 000012
【図４】
2019008744.tif 000013