(57)【要約】【課題】違和感のある要約文が生成されるのを抑制すること。【解決手段】指定された上限文字数に応じて入力文から要約文を生成するモデルの機械学習を行う学習方法では、学習用入力文と当該学習用入力文に対応する正解要約文とに基づいて機械学習を行う際に、上限文字数に対応するパラメータとして、正解要約文の文字数よりも大きい値を用いる。【選択図】図１
2019207566.tif 000002
【特許請求の範囲】
【請求項１】
指定された上限文字数に応じて入力文から要約文を生成するモデルの機械学習を行う学習方法であって、
学習用入力文と当該学習用入力文に対応する正解要約文とに基づいて前記機械学習を行う際に、前記上限文字数に対応するパラメータとして、前記正解要約文の文字数よりも大きい値を用いる、
処理をコンピュータが実行することを特徴とする学習方法。
【請求項２】
前記用いる処理は、リカレントニューラルネットワークのモデルの前記機械学習を行う際に、前記リカレントニューラルネットワークのデコーダにおいて前記正解要約文の先頭の単語に対応する層から順に、前記層の１つ前の層に対応する正解の単語を入力すると共に、前記上限文字数から前記１つ前の層までに連なる正解の単語の文字数が減算された減算値を入力することを特徴とする請求項１に記載の学習方法。
【請求項３】
前記上限文字数に対応するパラメータの指定を受け付ける処理を前記コンピュータが実行し、
前記用いる処理は、前記指定を受け付けたパラメータが前記正解要約文の文字数よりも大きい値である場合、前記指定を受け付けたパラメータを有効とすることを特徴とする請求項１または２に記載の学習方法。
【請求項４】
前記用いる処理は、前記モデルが使用される要約文の種類に応じて前記上限文字数に対応するパラメータを設定することを特徴とする請求項１または２に記載の学習方法。
【請求項５】
前記層の１つ前の層に対応する正解の単語と前記減算値に対応する０よりも大きい文字数を示すパラメータとの入力に対し、文末を示す情報を学習させることを特徴とする請求項２に記載の学習方法。
【請求項６】
前記上限文字数と前記正解要約文の文字数との差分値が前記減算値として入力された前記層において、文末を示す情報を学習させることを特徴とする請求項２に記載の学習方法。
【請求項７】
指定された上限文字数に応じて入力文から要約文を生成するモデルの機械学習を行う学習プログラムであって、
学習用入力文と当該学習用入力文に対応する正解要約文とに基づいて前記機械学習を行う際に、前記上限文字数に対応するパラメータとして、前記正解要約文の文字数よりも大きい値を用いる、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【請求項８】
指定された上限文字数に応じて入力文から要約文を生成するモデルの機械学習を行う学習装置であって、
学習用入力文と当該学習用入力文に対応する正解要約文とに基づいて前記機械学習を行う際に、前記上限文字数に対応するパラメータとして、前記正解要約文の文字数よりも大きい値を用いる制御部、
を有することを特徴とする学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習方法、学習プログラム及び学習装置に関する。
【背景技術】
【０００２】
Ｗｅｂサイトや新聞記事などの文書から要約文を生成する自動要約にニューラルネットワークなどの機械学習が利用されることがある。例えば、入力文をベクトル化するＲＮＮ（Recurrent  Neural  Networks）エンコーダと、入力文のベクトルを参照して要約文の単語の予測を繰り返すＲＮＮデコーダとが接続されたモデルが要約文の生成に用いられる。
【０００３】
このようなモデルの学習の際、ＲＮＮデコーダは、学習サンプルの入力文のベクトルの他、ＲＮＮデコーダが文末記号と呼ばれるＥＯＳ（End  of  Sentence）を出力するまでの残り文字数などを入力の初期値とし、ＥＯＳを出力するまで時刻ごとに単語の確率分布を繰り返し計算する。このように時刻ごとに計算される単語の確率分布から予測される単語と、当該時刻における正解の単語とを比較して計算される損失を用いてモデルのパラメータが更新される。
【０００４】
ここで、上記の残り文字数には、正解の要約文の文字数が初期値として設定される。その上で、時刻ごとに単語が予測される度に予測された単語の文字数を残り文字数から減算して残り文字数を更新し、次の時刻では更新後の残り文字数が単語の確率分布の計算に用いられる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Yuta  Kikuchi,  Graham  Neubig,  Ryohei  Sasano,  Hiroya  Takamura,  Manabu  Okumura  「Controlling  Output  Length  in  Neural  Encoder-Decoders」  EMNLP  2016
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の技術では、人間にとって違和感のある要約文が生成されるのを抑制できない場合がある。
【０００７】
すなわち、モデルの学習時と要約文の生成時との間で要約文の上限文字数として必ずしも同じ文字数が指定されるとは限らない。例えば、要約文の生成時に指定される上限文字数がモデルの学習時に指定される上限文字数よりも大きい場合、両者の間で入力文の特徴が類似する場合であっても、学習サンプルの入力文に対応する正解の要約文の文字数を超えて要約文が生成されることになる。この場合、要約文の生成時に指定される上限文字数に達するまで単語が生成され続ける。この結果、同じ単語が元の入力文の用法に沿わない状態で繰り返して羅列される状況、いわゆるワードレピティション等が発生するので、違和感のある要約文が生成されてしまう。
【０００８】
１つの側面では、本発明は、違和感のある要約文が生成されるのを抑制できる学習方法、学習プログラム及び学習装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一態様では、指定された上限文字数に応じて入力文から要約文を生成するモデルの機械学習を行う学習方法では、学習用入力文と当該学習用入力文に対応する正解要約文とに基づいて前記機械学習を行う際に、前記上限文字数に対応するパラメータとして、前記正解要約文の文字数よりも大きい値を用いる、処理をコンピュータが実行する。
【発明の効果】
【００１０】
一実施形態によれば、違和感のある要約文が生成されるのを抑制できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係るシステムに含まれる各装置の機能的構成を示すブロック図である。
【図２Ａ】図２Ａは、学習用入力文の一例を示す図である。
【図２Ｂ】図２Ｂは、正解要約文の一例を示す図である。
【図３】図３は、モデル学習の一例を示す図である。
【図４】図４は、モデル学習の一例を示す図である。
【図５】図５は、単語の確率分布の一例を示す図である。
【図６】図６は、残り文字数およびＥＯＳの確率の関係性の一例を示す図である。
【図７】図７は、残り文字数およびＥＯＳの確率の関係性の一例を示す図である。
【図８】図８は、入力文の一例を示す図である。
【図９】図９は、要約文生成の一例を示す図である。
【図１０】図１０は、要約文生成の一例を示す図である。
【図１１】図１１は、実施例１に係る学習処理の手順を示すフローチャートである。
【図１２】図１２は、実施例１に係る生成処理の手順を示すフローチャートである。
【図１３】図１３は、実施例１及び実施例２に係る学習プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して本願に係る学習方法、学習プログラム及び学習装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［システム構成］
図１は、実施例１に係るシステムに含まれる各装置の機能的構成を示すブロック図である。図１に示すシステム１は、Ｗｅｂサイトや新聞記事などの各種の文書から要約文を生成するモデルの機械学習を行う機械学習サービスを提供するものである。
【００１４】
図１に示すように、システム１には、学習装置１０と、生成装置３０とが含まれる。これら学習装置１０及び生成装置３０の間は、任意のネットワークＮＷを介して相互に通信可能に接続される。このようなネットワークＮＷは、有線または無線を問わず、インターネットやＬＡＮ（Local  Area  Network）、ＶＰＮ（Virtual  Private  Network）などの任意の種類の通信網であってかまわない。
【００１５】
学習装置１０は、上記の機械学習サービスを提供するコンピュータである。
【００１６】
一実施形態として、学習装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の機械学習サービスを実現する学習プログラムを任意のコンピュータにインストールさせることによって実装できる。このように上記の学習プログラムをコンピュータに実行させることにより、コンピュータを学習装置１０として機能させることができる。
【００１７】
あくまで一例として、学習装置１０は、生成装置３０をクライアントとして収容し、当該クライアントに上記の機械学習サービスを提供するサーバ装置として実装することができる。この場合、学習装置１０は、上記の機械学習サービスを提供するサーバとしてオンプレミスに実装することとしてもよいし、上記の機械学習サービスをアウトソーシングで提供するクラウドとして実装することとしてもかまわない。
【００１８】
例えば、学習装置１０は、複数の学習サンプルを含む学習データ、または、学習データをネットワークもしくは記憶メディアを介して呼び出すことができる識別情報を入力とし、モデルの学習結果を生成装置３０へ出力する。このとき、学習装置１０は、一例として、ＲＮＮエンコーダ及びＲＮＮデコーダが接続されたニューラルネットワークのモデルのパラメータを提供することができる。この他、学習装置１０は、学習済みのモデルを用いて実現される要約文の生成が機能として組み込まれたアプリケーションプログラムを提供することもできる。例えば、Ｗｅｂサイトや新聞などの各種の記事本文から記事の見出しを要約文として生成したり、あるいは各種の記事本文から速報の記事を要約文として生成したりするアプリケーションプログラムを提供することができる。
【００１９】
生成装置３０は、上記の機械学習サービスの提供を受けるクライアントの一例に対応するコンピュータである。例えば、生成装置３０には、パーソナルコンピュータやワークステーションなどのデスクトップ型のコンピュータなどが対応する。これはあくまで一例であり、生成装置３０は、ラップトップ型のコンピュータや携帯端末装置、ウェアラブル端末などの任意のコンピュータであってかまわない。
【００２０】
なお、図１には、あくまで一例として、モデルの機械学習及び要約文の生成が異なるコンピュータで実行される例を挙げたが、モデルの機械学習および要約文の生成が同一のコンピュータもしくはコンピュータシステムにより実行されることとしてもかまわない。
【００２１】
この他、上記の機械学習サービスの提供形態は、あくまで一例に過ぎず、上記に挙げる例以外の提供形態で機械学習サービスが提供されることを妨げない。例えば、上記の機械学習サービスを実現する学習プログラムそのものをパッケージソフトウェアやオンラインソフトウェアとして提供することとしてもよいし、上記の学習プログラムが導入されたコンピュータを提供することとしてもかまわない。
【００２２】
［学習装置１０の構成］
図１に示すように、学習装置１０は、学習データ記憶部１１と、モデル記憶部１２と、入力制御部１３と、エンコーダ実行部１４と、デコーダ実行部１５と、生成部１６と、算出部１７と、更新部１８とを有する。なお、学習装置１０は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【００２３】
図１に示す入力制御部１３、エンコーダ実行部１４、デコーダ実行部１５、生成部１６、算出部１７および更新部１８などの機能部は、あくまで例示として、下記のハードウェアプロセッサにより仮想的に実現される。このようなプロセッサの例として、ＧＰＧＰＵ（General-Purpose  computing  on  Graphics  Processing  Units）やＧＰＵクラスタの他、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）などが挙げられる。すなわち、プロセッサがＲＡＭ（Random  Access  Memory）等のメモリ上に上記学習プログラムをプロセスとして展開することにより、上記の機能部が仮想的に実現される。ここでは、プロセッサの一例として、ＧＰＧＰＵやＧＰＵクラスタ、ＣＰＵ、ＭＰＵを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによって実現されることを妨げない。
【００２４】
また、図１に示す学習データ記憶部１１およびモデル記憶部１２などの機能部には、ＨＤＤ（Hard  Disk  Drive）、光ディスクやＳＳＤ（Solid  State  Drive）などの記憶装置を採用できる。なお、記憶装置は、必ずしも補助記憶装置でなくともよく、各種の半導体メモリ素子、例えばＲＡＭ、ＥＰＰＲＯＭやフラッシュメモリなども採用できる。
【００２５】
学習データ記憶部１１は、学習データを記憶する記憶部である。ここで、学習データには、一例として、Ｄ個の学習サンプル、いわゆる学習事例が含まれる。さらに、学習サンプルには、モデル学習に用いる入力文および正解の要約文のペアが含まれる。以下、モデルの学習時および要約文の生成時に入力される入力文を区別する側面から前者のことを「学習用入力文」と記載する場合がある。さらに、モデルの学習時に正解として参照される要約文および入力文から生成される要約文を区別する側面から前者のことを「正解要約文」と記載する場合がある。
【００２６】
モデル記憶部１２は、モデルに関する情報を記憶する記憶部である。
【００２７】
一実施形態として、モデル記憶部１２には、ＲＮＮエンコーダ及びＲＮＮデコーダが接続されたニューラルネットワークのモデルを形成する入力層、隠れ層及び出力層の各層のニューロンやシナプスなどのモデルの層構造を始め、各層の重みやバイアスなどのモデルのパラメータを含むモデル情報が記憶される。ここで、モデル学習が実行される前の段階では、モデル記憶部１２には、モデルのパラメータとして、乱数により初期設定されたパラメータが記憶される。また、モデル学習が実行された後の段階では、モデル記憶部１２には、学習済みのモデルのパラメータが保存される。
【００２８】
入力制御部１３は、モデルに対する入力を制御する処理部である。
【００２９】
一実施形態として、入力制御部１３は、モデル学習のリクエストを受け付けた場合に処理を起動する。このように処理が起動されると、入力制御部１３は、モデルに生成させる要約文の上限文字数の指定を受け付ける。この要約文の上限文字数の指定は、あくまで一例として、ＧＵＩ等のユーザインタフェースを介して受け付けることができる。そして、入力制御部１３は、指定を受け付けた要約文の上限文字数が学習データに含まれる正解要約文の文字数よりも大きいか否かを判定する。
【００３０】
ここで、要約文の上限文字数を正解要約文の文字数以下としてモデルが学習された場合、学習済みのモデルが要約文の生成に使用される局面で正解の要約文の文字数を超えて要約文が生成される可能性が高まる。この場合、要約文の生成時に指定される上限文字数に達することによりモデルがＥＯＳのタグを出力するまで単語が生成され続ける結果、同じ単語が元の入力文の用法に沿わない状態で繰り返して羅列される状況、いわゆるワードレピティション等が発生する可能性がある。
【００３１】
このような不具合を抑制する側面から、入力制御部１３は、指定を受け付けた要約文の上限文字数が正解要約文の文字数以下である場合、モデルに生成させる要約文の上限文字数として正解要約文の文字数よりも大きい値を設定する。このとき、入力制御部１３は、モデルに生成させる要約文の種類に応じて要約文の上限文字数を設定することができる。例えば、新聞の見出しを要約文として生成するモデルが学習される場合、入力制御部１３は、新聞の見出しに用いられる上限を要約文の上限文字数として用いることができる。この他、電光掲示板の速報を要約文として生成するモデルが学習される場合、入力制御部１３は、電光掲示板の速報に用いられる上限を要約文の上限文字数として用いることができる。
【００３２】
このようにＲＮＮデコーダへ入力する初期値が設定された後、入力制御部１３は、学習データに含まれる学習サンプルごとに、ＲＮＮエンコーダおよびＲＮＮデコーダが接続されたニューラルネットワークのモデルに対する入力を開始する。
【００３３】
具体的には、入力制御部１３は、学習サンプルをカウントするループカウンタｄの値を初期化する。続いて、入力制御部１３は、学習データ記憶部１１に記憶されたＤ個の学習サンプルのうちループカウンタｄに対応する学習サンプルを取得する。その後、入力制御部１３は、ループカウンタｄをインクリメントし、ループカウンタｄの値が学習サンプルの総数Ｄと等しくなるまで、学習データ記憶部１１から学習サンプルを取得する処理を繰り返し実行する。なお、ここでは、学習装置１０内部のストレージに保存された学習データを取得する例を挙げたが、ネットワークを介して接続される外部のコンピュータ、例えばファイルサーバの他、リムーバブルメディア等から学習データが取得されることとしてもかまわない。
【００３４】
このように学習サンプルが取得される度に、入力制御部１３は、当該学習サンプルに含まれる学習用入力文をＲＮＮエンコーダへ入力する。これによって、学習用入力文の単語列がベクトル化されたベクトル、いわゆる中間表現がＲＮＮエンコーダからＲＮＮデコーダへ出力される。これと同時または前後して、入力制御部１３は、ＲＮＮデコーダに文末記号と呼ばれるＥＯＳを出力させるまでの残り文字数を保持するレジスタの値を上記の指定の上限文字数、もしくは入力制御部１３が設定した上限文字数に初期化する。これ以降のＲＮＮデコーダへの入力、ＲＮＮデータからの出力、それを用いたモデルのパラメータの更新についてはその詳細を後述する。
【００３５】
エンコーダ実行部１４は、ＲＮＮエンコーダを実行する処理部である。
【００３６】
一実施形態として、エンコーダ実行部１４は、モデル記憶部１２に記憶されたモデル情報にしたがって、入力制御部１３により入力された学習用入力文の単語数Ｍに対応するＭ個のＬＳＴＭ（Long  Short-Term  Memory）をワークエリア上に展開することにより、これらＭ個のＬＳＴＭをＲＮＮエンコーダとして機能させる。このＲＮＮエンコーダでは、入力制御部１３による入力制御にしたがって、学習用入力文の先頭の単語から順に、学習用入力文の先頭からｍ番目の単語が当該ｍ番目の単語に対応するＬＳＴＭへ入力されると共に、ｍ−１番目の単語に対応するＬＳＴＭの出力がｍ番目の単語に対応するＬＳＴＭへ入力される。このような入力を先頭の単語に対応するＬＳＴＭから末尾であるＭ番目の単語に対応するＬＳＴＭまで繰り返すことにより、学習用入力文のベクトル、いわゆる中間表現が得られる。このようにＲＮＮエンコーダにより生成された学習用入力文の中間表現がＲＮＮデコーダへ入力される。
【００３７】
デコーダ実行部１５は、ＲＮＮデコーダを実行する処理部である。
【００３８】
一実施形態として、デコーダ実行部１５は、モデル記憶部１２に記憶されたモデル情報にしたがって、入力制御部１３により入力された正解要約文の単語数Ｎに対応するＮ個のＬＳＴＭをワークエリア上に展開することにより、Ｎ個のＬＳＴＭをＲＮＮデコーダとして機能させる。これらＲＮＮデコーダには、入力制御部１３の制御にしたがって、ＲＮＮエンコーダから学習用入力文の中間表現が入力されると共に、Ｎ個のＬＳＴＭごとに入力制御部１３からＥＯＳのタグを出力させるまでの残り文字数が入力される。これらの入力にしたがってＮ個のＬＳＴＭを動作させることにより、ＲＮＮデコーダは、Ｎ個のＬＳＭＴごとに単語の確率分布を生成部１６へ出力する。ここで言う「単語の確率分布」とは、学習サンプル全体で学習用入力文に出現する単語ごとに算出された確率の分布を指す。
【００３９】
生成部１６は、要約文の単語を生成する処理部である。
【００４０】
一実施形態として、生成部１６は、ＲＮＮデコーダのｎ番目のＬＳＴＭから単語の確率分布が出力された場合、当該確率分布で確率が最大である単語を要約文の先頭からｎ番目の単語として生成する。
【００４１】
算出部１７は、ＲＮＮデコーダのＬＳＴＭにおける損失を算出する処理部である。
【００４２】
一実施形態として、算出部１７は、生成部１６により要約文のｎ番目の単語が生成された場合、正解要約文に含まれる単語のうちｎ番目の単語と、生成部１６により生成されたｎ番目の単語とから損失を算出する。
【００４３】
更新部１８は、モデルのパラメータを更新する処理部である。
【００４４】
一実施形態として、更新部１８は、ＲＮＮデコーダのＮ個のＬＳＴＭごとに損失が算出された場合、各ＬＳＴＭの損失に基づいて対数尤度の最適化を実行することにより、ＲＮＮデコーダのモデルを更新するパラメータを算出する。その上で、更新部１８は、モデル記憶部１２に記憶されたモデルのパラメータを対数尤度の最適化により求められたパラメータに更新する。このパラメータの更新は、全ての学習サンプルにわたって繰り返し実行すると共に、学習データＤについても所定のエポック数にわたって繰り返し実行することができる。
【００４５】
［モデル学習の具体例］
以下、図２〜図４を用いて、従来技術におけるモデル学習および本実施例におけるモデル学習の具体例を説明しながら両者を対比する。
【００４６】
図２Ａおよび図２Ｂにモデルに入力する学習サンプルの一例を例示する。図２Ａは、学習用入力文の一例を示す図である。図２Ｂは、正解要約文の一例を示す図である。図３および図４は、モデル学習の一例を示す図である。これらのうち、図３には、図２Ａに示す学習用入力文２０および図２Ｂに示す正解要約文２１の学習サンプルｄがモデルに入力される状況下における従来技術のモデル学習が示されている。一方、図４には、図２Ａに示す学習用入力文２０および図２Ｂに示す正解要約文２１の学習サンプルｄがモデルに入力される状況下における本実施例のモデル学習が示されている。
【００４７】
（１）従来技術のモデル学習
図３に示すように、図２Ｂに示す正解要約文２１が入力される場合、正解要約文２１の単語数「９」に対応する９個のＬＳＴＭがワークエリア上に展開される。以下、正解要約文２１の先頭の単語から順番に各単語に対応してワークエリア上に展開されたＬＳＴＭの各々を「ＬＳＴＭ１５Ａ〜ＬＳＴＭ１５Ｉ」と識別する。
【００４８】
例えば、正解要約文２１の先頭の単語と照合する単語の確率分布を計算する１時刻目には、入力制御部１３の制御にしたがって、ＲＮＮエンコーダの末尾のＬＳＴＭから図２Ａに示す学習用入力文２０の中間表現が先頭のＬＳＴＭ１５Ａへ入力される。これと共に、先頭のＬＳＴＭ１５Ａには、入力制御部１３からＢＯＳ（Begin  Of  Sentence）と呼ばれる文頭記号と共に、ＲＮＮデコーダにＥＯＳを出力させるまでの残り文字数の初期値として正解要約文の文字数「１５」が入力される。これによって、ＬＳＴＭ１５Ａは、学習サンプル全体で学習用入力文に出現する単語ごとに確率を計算することにより１時刻目（ｔ＝１）における単語の確率分布を算出すると共に、学習用入力文２０の中間表現を更新する。その上で、ＬＳＴＭ１５Ａは、１時刻目における単語の確率分布を生成部１６へ出力すると共に、１時刻目に更新された中間表現を次段のＬＳＴＭ１５Ｂへ出力する。
【００４９】
このように１時刻目における単語の確率分布が出力された場合、生成部１６は、当該確率分布で確率が最大である単語、本例では「△△△」を要約文の先頭の単語として生成し、１時刻目に生成された要約文の先頭の単語を算出部１７へ出力する。そして、算出部１７は、正解要約文２１に含まれる単語のうち１時刻目に対応する先頭の単語「○○」と、１時刻目に生成された単語「△△△」とから１時刻目における損失を算出する。この場合、１時刻目の正解の単語「○○」の確率が１に近く、かつその他の単語の確率が０に近いほど小さい損失が算出される。その後、入力制御部１３は、レジスタに保持された残り文字数の初期値「１５」から１時刻目に生成された単語「△△△」の文字数「３」を減算することにより、残り文字数の値を「１２」へ更新する。
【００５０】
次に、正解要約文２１の先頭から２番目の単語と照合する単語の確率分布を計算する２時刻目には、１時刻目に更新された中間表現がＬＳＴＭ１５ＡからＬＳＴＭ１５Ｂへ入力される。これと共に、ＬＳＴＭ１５Ｂには、入力制御部１３の制御にしたがって、２時刻目の１時刻前、すなわち１時刻目の正解の単語「○○」が入力されると共に、レジスタに保持された残り文字数「１２」が入力される。これによって、ＬＳＴＭ１５Ｂは、学習サンプル全体で学習用入力文に出現する単語ごとに確率を計算することにより２時刻目（ｔ＝２）における単語の確率分布を算出すると共に、学習用入力文２０の中間表現を更新する。その上で、ＬＳＴＭ１５Ｂは、２時刻目における単語の確率分布を生成部１６へ出力すると共に、２時刻目に更新された中間表現を次段のＬＳＴＭ１５Ｃへ出力する。
【００５１】
このように２時刻目における単語の確率分布が出力された場合、生成部１６は、当該確率分布で確率が最大である単語、本例では「１部」を要約文の先頭から２番目の単語として生成し、２時刻目に生成された要約文の先頭から２番目の単語を算出部１７へ出力する。そして、算出部１７は、正解要約文２１に含まれる単語のうち２時刻目に対応する先頭から２番目の単語「１部」と、２時刻目に生成された単語「１部」とから２時刻目における損失を算出する。この場合、２時刻目の正解の単語「１部」の確率が１に近く、かつその他の単語の確率が０に近いほど小さい損失が算出される。その後、入力制御部１３は、レジスタに保持された残り文字数の値「１２」から２時刻目に生成された単語「１部」の文字数「２」を減算することにより、残り文字数の値を「１０」へ更新する。
【００５２】
このような処理がＬＳＴＭ１５Ｉから文末記号「ＢＯＳ」が出力される９時刻目まで繰り返し実行される。その後、更新部１８は、１時刻目〜９時刻目の損失に基づいて対数尤度の最適化を実行することにより、ＲＮＮデコーダのモデルを更新するパラメータを算出した上で、モデル記憶部１２に記憶されたモデルのパラメータを対数尤度の最適化により求められたパラメータに更新する。
【００５３】
（２）本実施例のモデル学習
図４に示すように、図２Ｂに示す正解要約文２１が入力される場合、本実施例においても、正解要約文２１の単語数「９」に対応する９個のＬＳＴＭ１５Ａ〜ＬＳＴＭ１５Ｉがワークエリア上に展開される。
【００５４】
例えば、１時刻目において、ＲＮＮエンコーダの末尾のＬＳＴＭから図２Ａに示す学習用入力文２０の中間表現が先頭のＬＳＴＭ１５Ａへ入力されると共に、入力制御部１３からＢＯＳのタグが先頭のＬＳＴＭ１５Ａへ入力される点は本実施例および従来技術の間で共通する。
【００５５】
ここで、本実施例では、上記の従来技術のように、ＲＮＮデコーダにＥＯＳを出力させるまでの残り文字数の初期値として、正解要約文の文字数「１５」がＬＳＴＭ１５Ａへ入力される訳ではない。すなわち、本実施例では、残り文字数の初期値として、正解要約文の文字数「１５」よりも大きい値、あくまで一例として「３０」がＬＳＴＭ１５Ａへ入力される。
【００５６】
このような入力の結果、ＬＳＴＭ１５Ａは、学習サンプル全体で学習用入力文に出現する単語ごとに確率を計算することにより１時刻目（ｔ＝１）における単語の確率分布を算出すると共に、学習用入力文２０の中間表現を更新する。その上で、ＬＳＴＭ１５Ａは、１時刻目における単語の確率分布を生成部１６へ出力すると共に、１時刻目に更新された中間表現を次段のＬＳＴＭ１５Ｂへ出力する。
【００５７】
このように１時刻目における単語の確率分布が出力された場合、生成部１６は、当該確率分布で確率が最大である単語、本例では「△△△」を要約文の先頭の単語として生成し、１時刻目に生成された要約文の先頭の単語を算出部１７へ出力する。そして、算出部１７は、正解要約文２１に含まれる単語のうち１時刻目に対応する先頭の単語「○○」と、１時刻目に生成された単語「△△△」とから１時刻目における損失を算出する。この場合、１時刻目の正解の単語「○○」の確率が１に近く、かつその他の単語の確率が０に近いほど小さい損失が算出される。
【００５８】
その後、入力制御部１３は、上記の従来技術と同様に、レジスタに保持された残り文字数を更新するが、上記の従来技術のように、レジスタに保持された残り文字数の初期値「１５」から１時刻目に生成された単語「△△△」の文字数「３」を減算する訳ではない。すなわち、本実施例では、入力制御部１３は、レジスタに保持された残り文字数の初期値「１５」から、１時刻目の正解の単語「○○」に対応する文字数「２」を減算することにより、残り文字数の値を「３０」から「２８」へ更新する。
【００５９】
次に、２時刻目において、１時刻目に更新された中間表現がＬＳＴＭ１５ＡからＬＳＴＭ１５Ｂへ入力されると共に、２時刻目の１時刻前、すなわち１時刻目の正解の単語「○○」がＬＳＴＭ１５Ｂ入力される点は、本実施例と上記の従来技術の間で共通する。その一方で、本実施例では、レジスタに保持された残り文字数として、残り文字数の初期値「１５」から、１時刻目の正解の単語「○○」に対応する文字数「２」が減算された値「２８」がＬＳＴＭ１５Ｂへ入力される点が上記の従来技術と異なる。
【００６０】
このような入力の結果、ＬＳＴＭ１５Ｂは、学習サンプル全体で学習用入力文に出現する単語ごとに確率を計算することにより２時刻目（ｔ＝２）における単語の確率分布を算出すると共に、学習用入力文２０の中間表現を更新する。その上で、ＬＳＴＭ１５Ｂは、２時刻目における単語の確率分布を生成部１６へ出力すると共に、２時刻目に更新された中間表現を次段のＬＳＴＭ１５Ｃへ出力する。
【００６１】
このように２時刻目における単語の確率分布が出力された場合、生成部１６は、当該確率分布で確率が最大である単語、本例では「１部」を要約文の先頭から２番目の単語として生成し、２時刻目に生成された要約文の先頭から２番目の単語を算出部１７へ出力する。そして、算出部１７は、正解要約文２１に含まれる単語のうち２時刻目に対応する先頭から２番目の単語「１部」と、２時刻目に生成された単語「１部」とから２時刻目における損失を算出する。この場合、２時刻目の正解の単語「１部」の確率が１に近く、かつその他の単語の確率が０に近いほど小さい損失が算出される。その後、入力制御部１３は、レジスタに保持された残り文字数の値「２８」から２時刻目の正解の単語「１部」の文字数「２」を減算することにより、残り文字数の値を「２８」から「２６」へ更新する。ここでも、２時刻目に生成された単語が正解の単語であるため、本実施例で残り文字数から減算する減算値が上記の従来技術における減算値「２」と同じ値「２」となっているが、その意味合いは異なる。
【００６２】
このような処理がＬＳＴＭ１５Ｉから文末記号「ＥＯＳ」が出力される９時刻目まで繰り返し実行される。その後、更新部１８は、１時刻目〜９時刻目の損失に基づいて対数尤度の最適化を実行することにより、ＲＮＮデコーダのモデルを更新するパラメータを算出した上で、モデル記憶部１２に記憶されたモデルのパラメータを対数尤度の最適化により求められたパラメータに更新する。
【００６３】
ここで、ＬＳＴＭ１５Ｉが９時刻目において文末記号「ＥＯＳ」を出力しない場合について説明する。このとき、８時刻目の正解の単語と０よりも大きい文字数を示すパラメータとの入力に対し、文末を示す情報を学習させる。なお、「ＥＯＳ」は、文末を示す情報の一例である。
【００６４】
より詳細には、入力制御部１３は、８時刻目に更新された中間表現がＬＳＴＭ１５ＨからＬＳＴＭ１５Ｉへ入力される。これと共に、ＬＳＴＭ１５Ｉには、入力制御部１３の制御にしたがって、８時刻目の正解の単語「に」が入力されると共に、レジスタに保持された残り文字数である、０よりも大きい文字数である文字数「１５」が入力される。
【００６５】
生成部１６は、当該確率分布で確率が最大である単語を要約文の９時刻目の単語として生成し、９時刻目に生成された要約文の単語を算出部１７へ出力する。そして、算出部１７は、正解要約文２１に含まれる単語のうち９時刻目に対応する文末記号「ＥＯＳ」と、９時刻目に生成された単語とから９時刻目における損失を算出する。この場合、９時刻目の正解の単語の確率が１に近く、かつその他の単語の確率が０に近いほど小さい損失が算出される。
【００６６】
（３）対比１
上記（１）および上記（２）で説明した通り、本実施例と従来技術の間では、要約文の上限文字数、言い換えればモデルにＥＯＳを出力させるまでの残り文字数の初期値に設定される値が異なる。すなわち、上記の従来技術では、正解要約文２１の文字数「１５」が要約文の上限文字数に設定される一方で、本実施例では、正解要約文２１の文字数「１５」よりも大きい値「３０」が要約文の上限文字数に設定される点で両者が相違する。このような相違は、学習済みのモデルが要約文の生成に使用される局面で正解の要約文の文字数を超えて要約文が生成されるか否かとして現れる。
【００６７】
例えば、上記の従来技術では、ＬＳＴＭへ入力される残り文字数が「０」である状態でＥＯＳのタグを出力する確率を上昇させるモデルのパラメータが学習される。このため、モデルの学習時と要約文の生成時との間で要約文の上限文字数として同じ文字数が指定されればよいが、要約文の生成時に正解要約文の文字数よりも大きい値が指定される場合、正解要約文の文字数を超えて要約文が生成される可能性が高まる。
【００６８】
一方、本実施例では、ＬＳＴＭへ入力される残り文字数が「０」よりも大きい値でも正解要約文２１の文字数に対応する単語が生成された段階、すなわち本例では残り文字数「１５」がＬＳＴＭへ入力された段階で、ＥＯＳのタグを出力する確率を上昇させるモデルのパラメータが学習される。換言すれば、本実施例では、ＬＳＴＭへ入力される残り文字数が「上限文字数と正解要約文の文字数との差分」となった段階で、ＥＯＳのタグを出力する確率を上昇させるモデルのパラメータが学習される。このため、要約文の生成時に正解要約文の文字数よりも大きい値が指定されたとしても、正解要約文の文字数に到達した段階で単語の生成を打ち切ることができる可能性を高めることができる。
【００６９】
図５は、単語の確率分布の一例を示す図である。図５の上段および下段には、９時刻目における単語の確率分布が示されている。例えば、ＬＳＴＭ１５Ｉにより図５の上段に示す単語の確率分布が図４に示す９時刻目の単語の確率分布として算出されるとしたとき、図５の下段に示す単語の確率分布がＬＳＴＭ１５Ｉにより算出されるようにＲＮＮデコーダのパラメータが学習される。すなわち、９時刻目においてＥＯＳの確率を「１」に近付けると共にその他の単語の確率を「０」に近付けた単語の確率分布が算出されるほど損失が小さくなるようにＲＮＮデコーダのモデルのパラメータが学習される。
【００７０】
このようなモデル学習により、ＬＳＴＭが各時刻における残り文字数で算出されるＥＯＳの確率を次のように改善できる。図６および図７は、残り文字数およびＥＯＳの確率の関係性の一例を示す図である。図６には、上記の従来技術によるモデル学習の結果として得られる関係性が示される一方で、図７には、本実施例によるモデル学習の結果として得られる関係性が示されている。
【００７１】
図６に示すように、上記の従来技術によるモデル学習では、残り文字数が「０」に近づいた段階でＥＯＳの確率が急激に上昇していることがわかる。このような確率分布が算出される場合、残り文字数が「０」もしくはその近傍でなければ、ＥＯＳのタグを生成することは困難である。一方、本実施例では、図７に示すように、図６に示すＥＯＳの確率のカーブに比べて緩やかなカーブでＥＯＳの確率が変化する確率分布を各時刻で計算するモデル学習を実現できる。このような確率分布が算出される場合、必ずしも残り文字数が「０」もしくはその近傍でなくとも、残り文字数が正解要約文の文字数に到達する時刻付近でＥＯＳのタグを生成することができる。
【００７２】
以上のことから、本実施例によれば、要約文の生成時に正解要約文の文字数よりも大きい値が指定されたとしても、正解要約文の文字数に到達した段階で単語の生成を打ち切ることができる可能性を高めることができる。この結果、同じ単語が元の入力文の用法に沿わない状態で繰り返して羅列される状況、いわゆるワードレピティション等が発生するのを抑制できる。したがって、人間にとって違和感のある要約文が生成されるのを抑制できる。
【００７３】
（４）対比２
さらに、本実施例と従来技術の間では、残り文字数の更新方法も異なる。例えば、上記の従来技術では、ｉ時刻目における残り文字数を更新する場合、レジスタに保持された残り文字数からｉ時刻目に生成された単語の文字数が減算される。このような減算が行われた残り文字数と共にｉ時刻目の正解の単語が次段のＬＳＴＭへ入力される。このため、ｉ時刻目に生成される単語の文字数が正解の単語の文字数と異なる場合、モデル学習に用いられる残り文字数と要約文の生成時に用いられる残り文字数との間にずれが生じる。なぜなら、詳細は後述するが、要約文の生成時には、ｉ時刻目に生成された単語と共に当該ｉ時刻目に生成された単語の文字数が次段のＬＳＴＭへ入力されるからである。
【００７４】
図３には、正解要約文２１に含まれる単語のうち、生成部１６により誤って生成された単語に対応する正解の単語が反転表示により示されている。例えば、ＬＳＴＭ１５Ｂには、１時刻目の正解の単語「○○」が入力される一方で、１時刻目に生成された単語「△△△」の文字数「３」が入力されるので、２時刻目に残り文字数のずれが１つ生じる。また、４時刻目、５時刻目、７時刻目にも正解の単語とは異なる単語が生成される。これらの時刻のうち、４時刻目および７時刻目で生成される単語の文字数は正解の単語の文字数と異なるので、５時刻目および８時刻目にも残り文字数のずれが拡大することになる。
【００７５】
このようにモデル学習に用いられる残り文字数と要約文の生成時に用いられる残り文字数との間にずれが生じる場合、要約文の生成時に要約文の文字数が指定の上限文字数からぶれやすくなる。この結果、指定の上限文字数を超えて要約文が生成されたり、あるいは指定の上限文字数に達するまでに打ち切る必要がないにもかかわらず要約文の生成が打ち切られたりする。
【００７６】
その一方で、本実施例では、ｉ時刻目における残り文字数を更新する場合、レジスタに保持された残り文字数からｉ時刻目の正解の単語の文字数が減算される。このため、このような減算が行われた残り文字数と共にｉ時刻目の正解の単語が次段のＬＳＴＭへ入力される。このため、モデル学習に用いられる残り文字数と要約文の生成時に用いられる残り文字数との間にずれが生じない。それ故、本実施例によれば、要約文の生成時に要約文の文字数が指定の上限文字数からぶれる事態も抑制できる。
【００７７】
［生成装置３０の構成］
図１に示すように、生成装置３０は、入力制御部３１と、エンコーダ実行部３２と、デコーダ実行部３３と、生成部３４とを有する。なお、生成装置３０は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【００７８】
図１に示す入力制御部３１、エンコーダ実行部３２、デコーダ実行部３３及び生成部３４などの機能部は、あくまで例示として、下記のハードウェアプロセッサにより仮想的に実現される。このようなプロセッサの例として、ＧＰＧＰＵやＧＰＵクラスタの他、ＣＰＵ、ＭＰＵなどが挙げられる。すなわち、プロセッサがＲＡＭ等のメモリ上に学習済みのモデルが組み込まれた要約文生成プログラムをプロセスとして展開することにより、上記の機能部が仮想的に実現される。ここでは、プロセッサの一例として、ＧＰＧＰＵやＧＰＵクラスタ、ＣＰＵ、ＭＰＵを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部は、ＡＳＩＣやＦＰＧＡなどのハードワイヤードロジックによって実現されることを妨げない。
【００７９】
入力制御部３１は、モデルに対する入力を制御する処理部である。
【００８０】
一実施形態として、入力制御部３１は、要約文生成のリクエストを受け付けた場合に処理を起動する。このように処理が起動されると、入力制御部３１は、要約文生成の対象とする入力文と共に、学習済みのモデルに生成させる要約文の上限文字数の指定を受け付ける。その後、入力制御部３１は、入力文をＲＮＮエンコーダへ入力する。これによって、入力文の単語列がベクトル化されたベクトル、いわゆる中間表現がＲＮＮエンコーダからＲＮＮデコーダへ出力される。これと同時または前後して、入力制御部３１は、ＲＮＮデコーダに文末記号と呼ばれるＥＯＳを出力させるまでの残り文字数を保持するレジスタの値を上記の指定の上限文字数に初期化する。これ以降のＲＮＮデコーダへの入力、ＲＮＮデータからの出力、それを用いた要約文の生成についてはその詳細を後述する。
【００８１】
エンコーダ実行部３２は、ＲＮＮエンコーダを実行する処理部である。
【００８２】
一実施形態として、エンコーダ実行部３２は、モデル記憶部１２に記憶された学習済みモデルのモデル情報にしたがって、入力制御部３１により入力された入力文の単語数ｋに対応するＫ個のＬＳＴＭをワークエリア上に展開することにより、これらＫ個のＬＳＴＭをＲＮＮエンコーダとして機能させる。このＲＮＮエンコーダでは、入力制御部３１による入力制御にしたがって、入力文の先頭の単語から順に、入力文の先頭からｋ番目の単語が当該ｋ番目の単語に対応するＬＳＴＭへ入力されると共に、ｋ−１番目の単語に対応するＬＳＴＭの出力がｋ番目の単語に対応するＬＳＴＭへ入力される。このような入力を先頭の単語に対応するＬＳＴＭから末尾であるＫ番目の単語に対応するＬＳＴＭまで繰り返すことにより、入力文のベクトル、いわゆる中間表現が得られる。このようにＲＮＮエンコーダにより生成された入力文の中間表現がＲＮＮデコーダへ入力される。
【００８３】
デコーダ実行部３３は、ＲＮＮデコーダを実行する処理部である。
【００８４】
一実施形態として、デコーダ実行部３３は、モデル記憶部１２に記憶された学習済みモデルのモデル情報にしたがって、ＥＯＳのタグが出力されるまでＬＳＴＭをワークエリア上に展開することにより、ＥＯＳのタグが出力されるまで展開されたＬ個のＬＳＴＭをＲＮＮデコーダとして機能させる。これらＲＮＮデコーダには、入力制御部３１の制御にしたがって、ＲＮＮエンコーダから入力文の中間表現が入力されると共に、Ｌ個のＬＳＴＭごとに入力制御部３１からＥＯＳのタグを出力させるまでの残り文字数が入力される。これらの入力にしたがってＬ個のＬＳＴＭを動作させることにより、ＲＮＮデコーダは、Ｌ個のＬＳＭＴごとに単語の確率分布を生成部３４へ出力する。
【００８５】
生成部３４は、要約文を生成する処理部である。
【００８６】
一実施形態として、生成部３４は、ＲＮＮデコーダのｌ番目のＬＳＴＭから単語の確率分布が出力された場合、当該確率分布で確率が最大である単語を要約文の先頭からｌ番目の単語として生成する。その後、生成部３４は、ＲＮＮデコーダのＬ番目のＬＳＴＭからＥＯＳのタグが出力された場合、先頭のＬＳＴＭからＬ番目のＬＳＴＭから順に生成された単語を結合することにより要約文を生成し、生成された要約文を所定の出力先へ出力する。このような出力先の一例として、生成装置３０に接続された表示デバイスの他、他のアプリケーションプログラム、例えば新聞や電光掲示板の記事を編集するソフトウェアなどが挙げられる。
【００８７】
［要約文生成の具体例］
以下、図８〜図１０を用いて、従来技術の学習済みのモデルを用いた要約文生成および本実施例の学習済みのモデルを用いた要約文生成の具体例を説明する。
【００８８】
図８は、入力文の一例を示す図である。図９および図１０は、要約文生成の一例を示す図である。これらのうち、図９には、従来技術で学習されたモデルに図８に示す入力文４０が入力される状況下で要約文を生成する動作内容が模式的に示されている。一方、図１０には、本実施例で学習されたモデルに図８に示す入力文４０入力される状況下で要約文を生成する動作内容が模式的に示されている。なお、図８に示す入力文４０は、図２Ａに示す学習用入力文２０との間で特徴表現が類似する場合を想定して以下の説明を続ける。
【００８９】
（イ）従来技術の要約文生成
図９に示すように、１時刻目には、入力制御部３１の制御にしたがって、ＲＮＮエンコーダの末尾のＬＳＴＭから図８に示す入力文４０の中間表現が先頭のＬＳＴＭ３３Ａへ入力される。これと共に、先頭のＬＳＴＭ３３Ａには、入力制御部３１からＢＯＳのタグと共に、ＲＮＮデコーダにＥＯＳを出力させるまでの残り文字数の初期値として指定の上限文字数「２０」が入力される。このような入力の結果、ＬＳＴＭ３３Ａは、学習済みのモデルの辞書に登録された単語、すなわち学習サンプル全体で学習用入力文に出現する単語ごとに確率を計算することにより１時刻目（ｔ＝１）における単語の確率分布を算出すると共に、入力文４０の中間表現を更新する。その上で、ＬＳＴＭ３３Ａは、１時刻目における単語の確率分布を生成部３４へ出力すると共に、１時刻目に更新された中間表現を次段のＬＳＴＭ３３Ｂへ出力する。
【００９０】
このように１時刻目における単語の確率分布が出力された場合、生成部３４は、当該確率分布で確率が最大である単語、本例では「バット」を要約文の先頭の単語として生成する。その後、入力制御部３１は、レジスタに保持された残り文字数の初期値「２０」から１時刻目に生成された単語「バット」の文字数「３」を減算することにより、残り文字数の値を「２０」から「１７」へ更新する。
【００９１】
次に、２時刻目には、１時刻目に更新された中間表現がＬＳＴＭ３３ＡからＬＳＴＭ３３Ｂへ入力される。これと共に、ＬＳＴＭ３３Ｂには、入力制御部３１の制御にしたがって、２時刻目の１時刻前、すなわち１時刻目に生成された単語「バット」が入力されると共に、レジスタに保持された残り文字数「１７」が入力される。これによって、ＬＳＴＭ３３Ｂは、学習済みのモデルの辞書に登録された単語ごとに確率を計算することにより２時刻目（ｔ＝２）における単語の確率分布を算出すると共に、入力文４０の中間表現を更新する。その上で、ＬＳＴＭ３３Ｂは、２時刻目における単語の確率分布を生成部３４へ出力すると共に、２時刻目に更新された中間表現を次段のＬＳＴＭ３３Ｃへ出力する。
【００９２】
このように２時刻目における単語の確率分布が出力された場合、生成部３４は、当該確率分布で確率が最大である単語、本例では「作り」を要約文の先頭から２番目の単語として生成する。その後、入力制御部３１は、レジスタに保持された残り文字数の値「１７」から２時刻目に生成された単語「作り」の文字数「２」を減算することにより、残り文字数の値を「１７」から「１５」へ更新する。
【００９３】
このような処理がＬＳＴＭ３３Ｎから文末記号「ＢＯＳ」が出力される１４時刻目まで繰り返し実行される。この結果、１時刻目から１４時刻目までに生成された単語が結合されることにより、要約文「バット作りの名工：そば店に転職第二の人生人生」が生成される。
【００９４】
（ロ）本実施例の要約文生成
図１０に示すように、１時刻目には、ＲＮＮエンコーダの末尾のＬＳＴＭから図８に示す入力文４０の中間表現が先頭のＬＳＴＭ３３Ａへ入力される。これと共に、先頭のＬＳＴＭ３３Ａには、入力制御部３１からＢＯＳのタグと共に、ＲＮＮデコーダにＥＯＳを出力させるまでの残り文字数の初期値として指定の上限文字数「２０」が入力される。このような入力の結果、ＬＳＴＭ３３Ａは、学習済みのモデルの辞書に登録された単語、すなわち学習サンプル全体で学習用入力文に出現する単語ごとに確率を計算することにより１時刻目（ｔ＝１）における単語の確率分布を算出すると共に、入力文４０の中間表現を更新する。その上で、ＬＳＴＭ３３Ａは、１時刻目における単語の確率分布を生成部３４へ出力すると共に、１時刻目に更新された中間表現を次段のＬＳＴＭ３３Ｂへ出力する。
【００９５】
このように１時刻目における単語の確率分布が出力された場合、生成部３４は、当該確率分布で確率が最大である単語、本例では「バット」を要約文の先頭の単語として生成する。その後、入力制御部３１は、レジスタに保持された残り文字数の初期値「２０」から１時刻目に生成された単語「バット」の文字数「３」を減算することにより、残り文字数の値を「２０」から「１７」へ更新する。
【００９６】
次に、２時刻目には、１時刻目に更新された中間表現がＬＳＴＭ３３ＡからＬＳＴＭ３３Ｂへ入力される。これと共に、ＬＳＴＭ３３Ｂには、入力制御部３１の制御にしたがって、２時刻目の１時刻前、すなわち１時刻目に生成された単語「バット」が入力されると共に、レジスタに保持された残り文字数「１７」が入力される。これによって、ＬＳＴＭ３３Ｂは、学習済みのモデルの辞書に登録された単語ごとに確率を計算することにより２時刻目（ｔ＝２）における単語の確率分布を算出すると共に、入力文４０の中間表現を更新する。その上で、ＬＳＴＭ３３Ｂは、２時刻目における単語の確率分布を生成部３４へ出力すると共に、２時刻目に更新された中間表現を次段のＬＳＴＭ３３Ｃへ出力する。
【００９７】
このように２時刻目における単語の確率分布が出力された場合、生成部３４は、当該確率分布で確率が最大である単語、本例では「の」を要約文の先頭から２番目の単語として生成する。その後、入力制御部３１は、レジスタに保持された残り文字数の値「１７」から２時刻目に生成された単語「の」の文字数「１」を減算することにより、残り文字数の値を「１７」から「１６」へ更新する。
【００９８】
このような処理がＬＳＴＭ３３Ｉから文末記号「ＢＯＳ」が出力される９時刻目まで繰り返し実行される。この結果、１時刻目から９時刻目までに生成された単語が結合されることにより、要約文「バットの名工：そば店に転職」が生成される。
【００９９】
（ハ）対比１
上記（イ）および上記（ロ）で説明した通り、上記の従来技術で学習されたモデルが要約文生成に用いられた場合、要約文の生成時に指定された上限文字数「２０」がモデルの学習時に指定された正解要約文２１の文字数「１５」よりも大きいので、残り文字数が「０」になる１４時刻目まで単語が生成され続けていることがわかる。これが一因となって、要約文において「・・・転職第二・・・」といった部分のように文法から外れて単語が羅列されたり、「・・・人生人生・・・」といった部分のように同じ単語が繰り返して羅列されたりといった状況、いわゆるワードレピティション等が発生してしまっていることがわかる。その一方で、本実施例で学習されたモデルが要約文生成に用いられた場合、残り文字数が「７」になった９時刻目の段階で単語の生成が打ち切られており、残り文字数が「０」になるまで単語が生成され続けることが抑制できていることがわかる。したがって、本実施例に係る生成装置３０では、人間にとって違和感のある要約文が生成されるのを抑制することが可能である。
【０１００】
（ニ）対比２
また、上記の従来技術で学習されたモデルが要約文生成に用いられた場合、モデル学習に用いられる残り文字数と要約文の生成時に用いられる残り文字数との間にずれが生じることが一因となって指定の上限文字数「２０」を超えて２２文字の要約文が生成されていることがわかる。一方、本実施例で学習されたモデルが要約文生成に用いられた場合、上記のずれが生じることはなく、指定の上限文字数「２０」の範囲内に要約文の文字数が収まっていることがわかる。
【０１０１】
［処理の流れ］
次に、本実施例に係るシステムの処理の流れについて説明する。ここでは、学習装置１０により実行される（Ａ）学習処理について説明した後に、生成装置３０により実行される（Ｂ）生成処理について説明することとする。
【０１０２】
（Ａ）学習処理
図１１は、実施例１に係る学習処理の手順を示すフローチャートである。この学習処理は、一例として、モデル学習のリクエストを受け付けた場合に開始される。図１１に示すように、入力制御部１３は、モデルに生成させる要約文の上限文字数の指定を受け付ける（ステップＳ１０１）。続いて、入力制御部１３は、ステップＳ１０１で指定を受け付けた要約文の上限文字数が学習データＤに含まれる正解要約文の文字数よりも大きいか否かを判定する（ステップＳ１０２）。
【０１０３】
ここで、ステップＳ１０１で指定を受け付けた要約文の上限文字数が学習データＤに含まれる正解要約文の文字数よりも大きい場合（ステップＳ１０２Ｙｅｓ）、入力制御部１３は、モデルに生成させる要約文の上限文字数として正解要約文の文字数よりも大きい値を設定する（ステップＳ１０３）。なお、ステップＳ１０２Ｎｏの場合、上記のステップＳ１０３の処理はスキップされる。
【０１０４】
その後、学習データに含まれるＤ個の学習サンプルｄごとに、ステップＳ１０４〜ステップＳ１１１の処理が実行される。
【０１０５】
すなわち、入力制御部１３は、学習データ記憶部１１に記憶された学習データのうち学習サンプルｄを１つ取得する（ステップＳ１０４）。続いて、入力制御部１３は、ステップＳ１０４で取得された学習サンプルｄに含まれる学習用入力文をＲＮＮエンコーダへ入力する（ステップＳ１０５）。これによって、学習用入力文の単語列が中間表現へ変換される。
【０１０６】
そして、入力制御部１３は、ＲＮＮデコーダにＥＯＳのタグを出力させるまでの残り文字数を保持するレジスタの値をステップＳ１０２で指定された上限文字数、もしくはステップＳ１０３で設定された上限文字数に初期化する（ステップＳ１０６）。
【０１０７】
その後、正解要約文のＭ個の単語の先頭から順の各時刻ごとに、ステップＳ１０７〜ステップＳ１１０の処理が実行される。
【０１０８】
すなわち、入力制御部１３は、レジスタに保持された残り文字数と、ＢＯＳのタグもしくは１時刻前の正解の単語とをＲＮＮデコーダのうち現時刻に対応するＬＳＴＭへ入力する（ステップＳ１０７）。このようなＬＳＴＭへの入力によって、現時刻における単語の確率分布が算出されると共に、学習用入力文の中間表現が更新される。
【０１０９】
そして、生成部１６は、ステップＳ１０７の結果として算出された確率分布で確率が最大である単語を生成する（ステップＳ１０８）。続いて、算出部１７は、正解要約文に含まれる単語のうち現時刻に対応する単語と、ステップＳ１０８で生成された単語とから現時刻における損失を算出する（ステップＳ１０９）。
【０１１０】
その後、入力制御部１３は、レジスタに保持された残り文字数からステップＳ１０８で生成された単語の文字数を減算することにより、レジスタの残り文字数の値を更新する（ステップＳ１１０）。
【０１１１】
そして、正解要約文のＭ個の単語ごとに損失が算出されると、更新部１８は、各ＬＳＴＭの損失に基づいて対数尤度の最適化を実行することにより、ＲＮＮデコーダのモデルを更新するパラメータを算出した上で、モデル記憶部１２に記憶されたモデルのパラメータを更新する（ステップＳ１１１）。
【０１１２】
その後、学習データに含まれる全ての学習サンプルｄについてモデルのパラメータの更新が実行されると、学習装置１０は、学習済みのモデルを生成装置３０へ出力し（ステップＳ１１２）、処理を終了する。
【０１１３】
（Ｂ）生成処理
図１２は、実施例１に係る生成処理の手順を示すフローチャートである。この学習処理は、一例として、要約文生成のリクエストを受け付けた場合に開始される。図１２に示すように、入力制御部３１は、入力文を取得すると共に、学習済みのモデルに生成させる要約文の上限文字数の指定を受け付ける（ステップＳ３０１及びステップＳ３０２）。その後、入力制御部３１は、入力文をＲＮＮエンコーダへ入力する（ステップＳ３０３）。これによって、入力文の単語列が中間表現へ変換される。
【０１１４】
そして、入力制御部１３は、ＲＮＮデコーダにＥＯＳのタグを出力させるまでの残り文字数を保持するレジスタの値をステップＳ３０２で指定された上限文字数に初期化する（ステップＳ３０４）。
【０１１５】
その後、ＲＮＮデコーダからＥＯＳのタグが出力されるまで、ステップＳ３０５〜ステップＳ３０７の処理が実行される。
【０１１６】
すなわち、入力制御部３１は、レジスタに保持された残り文字数と、ＢＯＳのタグもしくは１時刻前に生成された単語とをＲＮＮデコーダのうち現時刻に対応するＬＳＴＭへ入力する（ステップＳ３０５）。このようなＬＳＴＭへの入力によって、現時刻における単語の確率分布が算出されると共に、入力文の中間表現が更新される。
【０１１７】
そして、生成部３４は、ステップＳ１０５の結果として算出された確率分布で確率が最大である単語を生成する（ステップＳ３０６）。続いて、入力制御部３１は、レジスタに保持された残り文字数からステップＳ３０６で生成された単語の文字数を減算することにより、レジスタの残り文字数の値を更新する（ステップＳ３０７）。
【０１１８】
そして、ＲＮＮデコーダからＥＯＳのタグが出力されると、生成部３４は、先頭のＬＳＴＭからＬ番目のＬＳＴＭから順に生成された単語を結合することにより要約文を生成して要約文を所定の出力先へ出力し（ステップＳ３０８）、処理を終了する。
【０１１９】
［効果の一側面］
上述してきたように、本実施例に係る学習装置１０は、学習用入力文と当該学習用入力文に対応する正解要約文とに基づいて機械学習を行う際に、要約文の上限文字数に対応するパラメータとして、正解要約文の文字数よりも大きい値を用いる。したがって、本実施例に係る学習装置１０によれば、違和感のある要約文が生成されるのを抑制が可能である。
【実施例２】
【０１２０】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０１２１】
［上限文字数の自動設定］
上記の実施例１では、学習装置１０が要約文の上限文字数を受け付ける例を説明したが、要約文の上限文字数を自動的に設定することもできる。例えば、新聞の見出しを要約文として生成するアプリケーションプログラムを生成装置３０へ提供する場合、新聞の見出しに用いられる上限を要約文の上限文字数として用いることができる。この他、電光掲示板の速報を要約文として生成するアプリケーションプログラムを生成装置３０へ提供する場合、電光掲示板の速報に用いられる上限を要約文の上限文字数として用いることができる。
【０１２２】
［上限文字数の学習］
例えば、学習装置１０は、学習用入力文および正解要約文の文字数のペアを学習サンプルとし、学習用入力文から要約文の文字数を予測する予測モデルのパラメータをさらに学習することもできる。例えば、要約文の生成時に入力文を学習済みの予測モデルへ入力することにより、予測モデルから出力された文字数を要約文の上限文字数として用いることもできる。このような予測モデルにより、要約文の生成時に要約文の上限文字数の指定を支援できる。
【０１２３】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、入力制御部１３、エンコーダ実行部１４、デコーダ実行部１５、生成部１６、算出部１７または更新部１８を学習装置１０の外部装置としてネットワーク経由で接続するようにしてもよい。また、入力制御部３１、エンコーダ実行部３２、デコーダ実行部３３または生成部３４を生成装置３０の外部装置としてネットワーク経由で接続するようにしてもよい。また、入力制御部１３、エンコーダ実行部１４、デコーダ実行部１５、生成部１６、算出部１７または更新部１８を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の学習装置１０の機能を実現するようにしてもよい。また、入力制御部３１、エンコーダ実行部３２、デコーダ実行部３３または生成部３４を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の生成装置３０の機能を実現するようにしてもよい。また、学習データ記憶部１１またはモデル記憶部１２に記憶される情報の全部または一部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の学習装置１０の機能を実現するようにしてもかまわない。
【０１２４】
［学習プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１３を用いて、上記の実施例と同様の機能を有する学習プログラムを実行するコンピュータの一例について説明する。
【０１２５】
図１３は、実施例１及び実施例２に係る学習プログラムを実行するコンピュータのハードウェア構成例を示す図である。図１３に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【０１２６】
ＨＤＤ１７０には、図１３に示すように、上記の実施例１で示した＊＊部と、＊＊部と同様の機能を発揮する学習プログラム１７０ａが記憶される。この学習プログラム１７０ａは、図？に示した＊＊部及び＊＊部の各構成要素と同様、統合又は分離してもかまわない。すなわち、ＨＤＤ１７０には、必ずしも上記の実施例１で示した全てのデータが格納されずともよく、処理に用いるデータがＨＤＤ１７０に格納されればよい。
【０１２７】
このような環境の下、ＣＰＵ１５０は、ＨＤＤ１７０から学習プログラム１７０ａを読み出した上でＲＡＭ１８０へ展開する。この結果、学習プログラム１７０ａは、図１３に示すように、学習プロセス１８０ａとして機能する。この学習プロセス１８０ａは、ＲＡＭ１８０が有する記憶領域のうち学習プロセス１８０ａに割り当てられた領域にＨＤＤ１７０から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、学習プロセス１８０ａが実行する処理の一例として、図？？に示す処理などが含まれる。なお、ＣＰＵ１５０では、必ずしも上記の実施例１で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【０１２８】
なお、上記の学習プログラム１７０ａは、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶されておらずともかまわない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に学習プログラム１７０ａを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から学習プログラム１７０ａを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに学習プログラム１７０ａを記憶させておき、コンピュータ１００がこれらから学習プログラム１７０ａを取得して実行するようにしてもよい。
【０１２９】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１３０】
（付記１）指定された上限文字数に応じて入力文から要約文を生成するモデルの機械学習を行う学習方法であって、
学習用入力文と当該学習用入力文に対応する正解要約文とに基づいて前記機械学習を行う際に、前記上限文字数に対応するパラメータとして、前記正解要約文の文字数よりも大きい値を用いる、
処理をコンピュータが実行することを特徴とする学習方法。
【０１３１】
（付記２）前記用いる処理は、リカレントニューラルネットワークのモデルの前記機械学習を行う際に、前記リカレントニューラルネットワークのデコーダにおいて前記正解要約文の先頭の単語に対応する層から順に、前記層の１つ前の層に対応する正解の単語を入力すると共に、前記上限文字数から前記１つ前の層までに連なる正解の単語の文字数が減算された減算値を入力することを特徴とする付記１に記載の学習方法。
【０１３２】
（付記３）前記上限文字数に対応するパラメータの指定を受け付ける処理を前記コンピュータが実行し、
前記用いる処理は、前記指定を受け付けたパラメータが前記正解要約文の文字数よりも大きい値である場合、前記指定を受け付けたパラメータを有効とすることを特徴とする付記１に記載の学習方法。
【０１３３】
（付記４）前記用いる処理は、前記モデルが使用される要約文の種類に応じて前記上限文字数に対応するパラメータを設定することを特徴とする付記１に記載の学習方法。
【０１３４】
（付記５）前記層の１つ前の層に対応する正解の単語と前記減算値に対応する０よりも大きい文字数を示すパラメータとの入力に対し、文末を示す情報を学習させることを特徴とする付記２に記載の学習方法。
【０１３５】
（付記６）前記上限文字数と前記正解要約文の文字数との差分値が前記減算値として入力された前記層において、文末を示す情報を学習させることを特徴とする付記２に記載の学習方法。
【０１３６】
（付記７）指定された上限文字数に応じて入力文から要約文を生成するモデルの機械学習を行う学習プログラムであって、
学習用入力文と当該学習用入力文に対応する正解要約文とに基づいて前記機械学習を行う際に、前記上限文字数に対応するパラメータとして、前記正解要約文の文字数よりも大きい値を用いる、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【０１３７】
（付記８）前記用いる処理は、リカレントニューラルネットワークのモデルの前記機械学習を行う際に、前記リカレントニューラルネットワークのデコーダにおいて前記正解要約文の先頭の単語に対応する層から順に、前記層の１つ前の層に対応する正解の単語を入力すると共に、前記上限文字数から前記１つ前の層までに連なる正解の単語の文字数が減算された減算値を入力することを特徴とする付記７に記載の学習プログラム。
【０１３８】
（付記９）前記上限文字数に対応するパラメータの指定を受け付ける処理を前記コンピュータに実行させ、
前記用いる処理は、前記指定を受け付けたパラメータが前記正解要約文の文字数よりも大きい値である場合、前記指定を受け付けたパラメータを有効とすることを特徴とする付記７に記載の学習プログラム。
【０１３９】
（付記１０）前記用いる処理は、前記モデルが使用される要約文の種類に応じて前記上限文字数に対応するパラメータを設定することを特徴とする付記７に記載の学習プログラム。
【０１４０】
（付記１１）前記層の１つ前の層に対応する正解の単語と前記減算値に対応する０よりも大きい文字数を示すパラメータとの入力に対し、文末を示す情報を学習させることを特徴とする付記８に記載の学習プログラム。
【０１４１】
（付記１２）前記上限文字数と前記正解要約文の文字数との差分値が前記減算値として入力された前記層において、文末を示す情報を学習させることを特徴とする付記８に記載の学習プログラム。
【０１４２】
（付記１３）指定された上限文字数に応じて入力文から要約文を生成するモデルの機械学習を行う学習装置であって、
学習用入力文と当該学習用入力文に対応する正解要約文とに基づいて前記機械学習を行う際に、前記上限文字数に対応するパラメータとして、前記正解要約文の文字数よりも大きい値を用いる制御部、
を有することを特徴とする学習装置。
【０１４３】
（付記１４）前記制御部は、リカレントニューラルネットワークのモデルの前記機械学習を行う際に、前記リカレントニューラルネットワークのデコーダにおいて前記正解要約文の先頭の単語に対応する層から順に、前記層の１つ前の層に対応する正解の単語を入力すると共に、前記上限文字数から前記１つ前の層までに連なる正解の単語の文字数が減算された減算値を入力することを特徴とする付記１３に記載の学習装置。
【０１４４】
（付記１５）前記上限文字数に対応するパラメータの指定を受け付ける受付部をさらに有し、
前記制御部は、前記指定を受け付けたパラメータが前記正解要約文の文字数よりも大きい値である場合、前記指定を受け付けたパラメータを有効とすることを特徴とする付記１３に記載の学習装置。
【０１４５】
（付記１６）前記制御部は、前記モデルが使用される要約文の種類に応じて前記上限文字数に対応するパラメータを設定することを特徴とする付記１３に記載の学習装置。
【０１４６】
（付記１７）前記層の１つ前の層に対応する正解の単語と前記減算値に対応する０よりも大きい文字数を示すパラメータとの入力に対し、文末を示す情報を学習させることを特徴とする付記１４に記載の学習装置。
【０１４７】
（付記１８）前記上限文字数と前記正解要約文の文字数との差分値が前記減算値として入力された前記層において、文末を示す情報を学習させることを特徴とする付記１４に記載の学習装置。
【符号の説明】
【０１４８】
１０    学習装置
１１    学習データ記憶部
１２    モデル記憶部
１３    入力制御部
１４    エンコーダ実行部
１５    デコーダ実行部
１６    生成部
１７    算出部
１８    更新部
３０    生成装置
３１    入力制御部
３２    エンコーダ実行部
３３    デコーダ実行部
３４    生成部
【図１】
2019207566.tif 000003
【図２Ａ】
2019207566.tif 000004
【図２Ｂ】
2019207566.tif 000005
【図３】
2019207566.tif 000006
【図４】
2019207566.tif 000007
【図５】
2019207566.tif 000008
【図６】
2019207566.tif 000009
【図７】
2019207566.tif 000010
【図８】
2019207566.tif 000011
【図９】
2019207566.tif 000012
【図１０】
2019207566.tif 000013
【図１１】
2019207566.tif 000014
【図１２】
2019207566.tif 000015
【図１３】
2019207566.tif 000016