(57)【要約】【課題】要約文の上限文字数の近傍でモデルが生成する単語の文字数を残りの文字数に近付けること。【解決手段】学習方法では、学習用入力文が入力されたモデルがモデルの辞書の単語ごとに出力する第１スコアに、単語の長さおよび要約文の上限文字数までの残り文字数からモデルの辞書の単語ごとに求まる第２スコアを合成し、単語ごとに第１スコアおよび第２スコアが合成された合成スコアに基づいて単語の生成確率の分布を算出する、処理をコンピュータが実行する。【選択図】図１
2020071677.tif 000002
【特許請求の範囲】
【請求項１】
学習用入力文が入力されたモデルが前記モデルの辞書の単語ごとに出力する第１スコアに、単語の長さおよび要約文の上限文字数までの残り文字数から前記モデルの辞書の単語ごとに求まる第２スコアを合成し、
前記単語ごとに前記第１スコアおよび前記第２スコアが合成された合成スコアに基づいて単語の生成確率の分布を算出する、
処理をコンピュータが実行することを特徴とする学習方法。
【請求項２】
前記モデルは、前記入力文として記事が入力されると前記記事の要約文を生成する記事要約プログラムに組み込まれることを特徴とする請求項１に記載の学習方法。
【請求項３】
学習用入力文が入力されたモデルが前記モデルの辞書の単語ごとに出力する第１スコアに、単語の長さおよび要約文の上限文字数までの残り文字数から前記モデルの辞書の単語ごとに求まる第２スコアを合成し、
前記単語ごとに前記第１スコアおよび前記第２スコアが合成された合成スコアに基づいて単語の生成確率の分布を算出する、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【請求項４】
入力文が入力されたモデルが前記モデルの辞書の単語ごとに出力する第１スコアに、単語の長さおよび要約文の上限文字数までの残り文字数から前記モデルの辞書の単語ごとに求まる第２スコアを合成し、
前記単語ごとに前記第１スコアおよび前記第２スコアが合成された合成スコアに基づいて単語の生成確率の分布を算出する、
処理をコンピュータが実行することを特徴とする生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習方法、学習プログラム及び生成方法に関する。
【背景技術】
【０００２】
新聞やＷｅｂサイト、電光掲示板などの文書から要約文を生成する自動要約にニューラルネットワークなどの機械学習が利用されることがある。例えば、入力文をベクトル化するＲＮＮ（Recurrent  Neural  Networks）エンコーダと、入力文のベクトルを参照して要約文の単語の生成を繰り返すＲＮＮデコーダとが接続されたモデルが要約文の生成に用いられる。
【０００３】
このようなモデルの学習の際、ＲＮＮデコーダは、学習サンプルの入力文のベクトルの他、ＲＮＮデコーダが文末記号と呼ばれるＥＯＳ（End  Of  Sentence）を出力するまでの残り文字数などを入力の初期値とし、ＥＯＳを出力するまで時刻ごとに単語の確率分布を繰り返し計算する。このように時刻ごとに計算される単語の確率分布から生成される単語と、当該時刻における正解の単語とを比較して計算される損失を用いてモデルのパラメータが更新される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−５３２４号公報
【特許文献２】特開２００４−３４８５６６号公報
【特許文献３】特開２０１４−１５３７６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、モデルの出力に影響を与えるのは、あくまで要約文の上限文字数までの残り文字数であってモデルが生成する単語の長さそのものがモデルの出力に影響を与える訳ではない。したがって、要約文の上限文字数の近傍であっても残り文字数を超える長さの単語が生成されるのに歯止めが掛からない場合がある。
【０００６】
１つの側面では、本発明は、要約文の上限文字数の近傍でモデルが生成する単語の文字数を残りの文字数に近付けることができる学習方法、学習プログラム及び生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一態様の学習方法では、学習用入力文が入力されたモデルが前記モデルの辞書の単語ごとに出力する第１スコアに、単語の長さおよび要約文の上限文字数までの残り文字数から前記モデルの辞書の単語ごとに求まる第２スコアを合成し、前記単語ごとに前記第１スコアおよび前記第２スコアが合成された合成スコアに基づいて単語の生成確率の分布を算出する、処理をコンピュータが実行する。
【発明の効果】
【０００８】
要約文の上限文字数の近傍でモデルが生成する単語の文字数を残りの文字数に近付けることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１に係るシステムに含まれる各装置の機能的構成を示すブロック図である。
【図２】図２は、記事要約ツールのユースケースの一例を示す図である。
【図３】図３は、単語長情報の作成方法の一例を示す図である。
【図４】図４は、単語の生成確率の分布の算出例の一例を示す図である。
【図５】図５は、単語の生成確率の分布の算出例の一例を示す図である。
【図６】図６は、単語の生成確率の分布の算出例の一例を示す図である。
【図７】図７は、要約文生成の一例を示す図である。
【図８】図８は、要約文生成の一例を示す図である。
【図９】図９は、実施例１に係る学習処理の手順を示すフローチャートである。
【図１０】図１０は、実施例１に係る生成処理の手順を示すフローチャートである。
【図１１】図１１は、実施例１及び実施例２に係る学習プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して本願に係る学習方法、学習プログラム及び生成方法について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１１】
［システム構成］
図１は、実施例１に係るシステムに含まれる各装置の機能的構成を示すブロック図である。図１に示すシステム１では、学習用入力文および正解要約文を含む学習データを用いてモデルの機械学習を行う機械学習サービス、並びに、学習済みモデルを用いて入力文から要約文を生成する要約生成サービスが提供される。
【００１２】
図１に示すように、システム１には、学習装置１０と、生成装置３０とが含まれる。学習装置１０で学習したモデルを受け取って、生成装置３０は、与えられたデータに対して、結果を生成する。
【００１３】
学習装置１０は、上記の機械学習サービスを提供するコンピュータの一例に対応する。別の計算機に学習装置１０と生成装置３０を配置する際は、ネットワーク通信を介して、モデルを渡す。
【００１４】
一実施形態として、学習装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の機械学習サービスを実現する学習プログラムを任意のコンピュータにインストールさせることによって実装できる。このようにインストールされた学習プログラムをコンピュータに実行させることにより、コンピュータを学習装置１０として機能させることができる。
【００１５】
あくまで一例として、学習装置１０は、生成装置３０をクライアントとして収容し、当該クライアントに上記の機械学習サービスを提供するサーバ装置として実装することができる。この場合、学習装置１０は、上記の機械学習サービスを提供するサーバとしてオンプレミスに実装することとしてもよいし、上記の機械学習サービスをアウトソーシングで提供するクラウドとして実装することとしてもかまわない。
【００１６】
例えば、学習装置１０は、複数の学習サンプルを含む学習データ、または、学習データをネットワークもしくは記憶メディアを介して呼び出すことができる識別情報を入力とし、モデルの学習結果を生成装置３０へ出力する。このとき、学習装置１０は、一例として、ＲＮＮエンコーダ及びＲＮＮデコーダが接続されたニューラルネットワークのモデルのパラメータを提供することができる。この他、学習装置１０は、学習済みモデルを用いて実現される要約文の生成が機能として組み込まれたアプリケーションプログラムを提供することもできる。例えば、新聞や電光掲示板、Ｗｅｂサイトなどの各種の記事の原文から記事の見出しを要約文として生成したり、あるいは記事の原文から速報の記事を要約文として生成したりするアプリケーションプログラムを提供することができる。
【００１７】
この他、上記の機械学習サービスの提供形態は、あくまで一例に過ぎず、上記に挙げる例以外の提供形態で機械学習サービスが提供されることを妨げない。例えば、上記の機械学習サービスを実現する学習プログラムそのものをパッケージソフトウェアやオンラインソフトウェアとして提供することとしてもよいし、上記の学習プログラムが導入されたコンピュータを提供することとしてもかまわない。
【００１８】
生成装置３０は、上記の要約生成サービスを提供するコンピュータの一例に対応する。
【００１９】
一実施形態として、生成装置３０は、パッケージソフトウェアやオンラインソフトウェアとして上記の要約生成サービスを実現する要約生成プログラムを任意のコンピュータにインストールさせることによって実装できる。このようにインストールされた要約生成プログラムをコンピュータに実行させることにより、コンピュータを生成装置３０として機能させることができる。
【００２０】
あくまで一例として、上記の要約生成サービスは、新聞や電光掲示板、Ｗｅｂサイトなどの各種のメディアを運営するメディア事業者向けに提供されるＷｅｂサービスのツールの１つ、例えば「記事要約ツール」として提供することができる。この場合、上記のＷｅｂサービスとして提供される機能のうち、原文の入力や要約文の表示等のフロントエンドの機能が記者や編集者等の端末装置に実装されると共に、要約文の生成などのバックエンドの機能が生成装置３０に実装されることとしてもかまわない。
【００２１】
［記事要約ツールのユースケースの一例］
図２は、記事要約ツールのユースケースの一例を示す図である。図２には、メディア事業者の関係者により使用される端末装置に表示される記事要約画面２０の遷移の一例が示されている。
【００２２】
図２の上段には、各種の項目に対する入力が設定されていない初期状態の記事要約画面２０が示されている。例えば、記事要約画面２０には、原文入力エリア２１、要約表示エリア２２、プルダウンメニュー２３、要約ボタン２４、クリアボタン２５などのＧＵＩ（Graphical  User  Interface）コンポーネントが含まれる。このうち、原文入力エリア２１は、記事等の原文を入力するエリアに対応する。また、要約表示エリア２２は、原文入力エリア２１に入力された原文に対応する要約文を表示するエリアに対応する。また、プルダウンメニュー２３は、要約文の上限文字数を指定するＧＵＩコンポーネントの一例に対応する。また、要約ボタン２４は、原文入力エリア２１に入力された原文に対応する要約文を生成するコマンドの実行を受け付けるＧＵＩコンポーネントの一例に対応する。また、クリアボタン２５は、原文入力エリア２１に入力された原文のテキストをクリアするＧＵＩコンポーネントの一例に対応する。
【００２３】
図２に示すように、記事要約画面２０の原文入力エリア２１では、図示しないキーボード等の入力デバイスを介してテキストの入力を受け付けることができる。このように入力デバイスを介してテキストの入力を受け付ける他、原文入力エリア２１では、ワープロソフトなどのアプリケーションにより作成された文書のファイルからテキストをインポートすることができる。
【００２４】
このように原文入力エリア２１に原文のテキストが入力されることにより、記事要約画面２０は、図２の上段に示された状態から図２の中段に示された状態へ遷移する（ステップＳ１）。例えば、原文入力エリア２１に原文のテキストが入力された場合、要約ボタン２４に対する操作を介して要約文を生成するコマンドの実行を受け付けることができる。また、クリアボタン２５に対する操作を介して原文入力エリア２１に入力されたテキストをクリアすることもできる。この他、プルダウンメニュー２３を介して、複数の上限文字数の中からメディア事業者の関係者が希望する上限文字数の指定を受け付けることもできる。ここでは、新聞やニュースの記事の原文から電光掲示板の速報を要約文として生成する場面の一例として、電光掲示板に表示可能な上限文字数の一例に対応する８０文字が指定された例が示されている。これはあくまで一例であり、新聞やＷｅｂサイトの記事から見出しを生成する場合、見出しに対応する上限文字数を選択することができる。
【００２５】
そして、原文入力エリア２１に原文のテキストが入力された状態で要約ボタン２４に対する操作が行われた場合、記事要約画面２０は、図２の中段に示された状態から図２の下段に示された状態へ遷移する（ステップＳ２）。この場合、原文入力エリア２１に入力された原文のテキストが入力文として学習済みモデルに入力されることによりその要約文が生成される。この要約文の生成は、メディア事業者の関係者の端末装置上で実行されることとしてもよいし、あるいはバックエンドのサーバ装置で実行されることとしてもかまわない。この結果、図２の下段に示すように、記事要約画面２０の要約表示エリア２２には、学習済みモデルにより生成された要約文が表示される。
【００２６】
このように記事要約画面２０の要約表示エリア２２に表示された要約文のテキストには、図示しない入力デバイス等を介して編集を行うことができる。
【００２７】
以上のような記事要約ツールが提供されることで、記者や編集者等により行われる記事要約の作業を軽減することが可能になる。例えば、記事要約の作業は、メディアにニュースを配信するプロセス、例えば「配信記事の選定」や「メディア編集システムへの送信」、「記事要約」、「見出し作成」、「校閲」などの中でも相対的に労力が大きいという側面がある。例えば、記事要約が人手により行われる場合、記事の全体から重要な情報を選別し、文章を再構成するといった作業が必要となる。このことから、記事要約の作業が自動化または半自動化される技術的意義は高い。
【００２８】
なお、ここでは、あくまで一例として、メディア事業者の関係者により記事要約ツールが利用されるユースケースを例に挙げたが、メディア事業者から記事の配信を受ける視聴者により記事要約ツールが利用されることとしてもかまわない。例えば、スマートスピーカ等で記事の全文を読み上げる代わりに要約文を読み上げる機能として記事要約ツールを利用することができる。
【００２９】
また、ここでは、あくまで一例として、生成装置３０が上記の要約生成サービスを提供するコンピュータとして実装される例を挙げたが、これに限定されない。例えば、上記の学習済みモデルが組み込まれた要約生成プログラムが任意のコンピュータ、例えば記者や編集者等の端末装置で実行されるスタンドアローンのアプリケーションプログラムとして実装されることとしてもよい。
【００３０】
さらに、ここでは、上記の機械学習サービス及び上記の要約生成サービスが異なる事業主体で実行される例を挙げたが、これら２つのサービスが同一の事業者により提供されることとしてもかまわない。この場合、上記の学習プログラム及び上記の要約生成プログラムが同一のコンピュータもしくはコンピュータシステムにより実行されることとしてもかまわない。
【００３１】
［課題の一側面］
上記の背景技術の欄でも説明した通り、モデルが出力する単語の生成確率に影響を与えるのは、あくまで要約文の上限文字数までの残り文字数であってモデルが生成する単語の長さそのものではない。したがって、要約文の上限文字数の近傍であっても残り文字数を超える長さの単語が生成されるのに歯止めが掛からない場合がある。
【００３２】
［課題解決のアプローチの一側面］
そこで、本実施例に係る学習装置１０は、モデルが辞書の単語ごとに出力する第１スコアに、モデルの辞書の単語ごとに単語の長さおよび要約文の上限文字数までの残り文字数から求まる第２スコアを合成して単語の生成確率の分布を算出する。
【００３３】
例えば、上記の第２スコアを求める事前準備として、モデルの辞書の単語に当該単語の長さが対応付けられた単語長情報が生成される。以下、単語の長さのことを「単語長」と記載する場合がある。図３は、単語長情報の作成方法の一例を示す図である。図３に示すように、モデルの辞書の作成に用いられる学習データ１１Ａに出現する単語の集合｛ａ，Ａｍｅｒｉｃａ，・・・，ｍａｒｋｅｔ，・・・，ｚｏｏ，＜ＥＯＳ＞｝が抽出される。そして、単語の集合｛ａ，Ａｍｅｒｉｃａ，・・・，ｍａｒｋｅｔ，・・・，ｚｏｏ，＜ＥＯＳ＞｝に各要素の単語長｛１，７，・・・，６，・・・，３，０｝を対応付けることにより単語長情報１１Ａ１が作成される。このように生成された単語長情報１１Ａ１と、要約文の上限文字数までの残り文字数とから上記の第２スコアが算出される。
【００３４】
図４は、単語の生成確率の分布の算出例の一例を示す図である。図４には、学習用入力文と共に入力される正解要約文の単語数Ｎに対応する時刻ごとにモデルのＲＮＮデコーダとして展開されるＮ個のＬＳＴＭ（Long  Short-Term  Memory）のセルのうちｎ（１〜Ｎの自然数）時刻目のＬＳＴＭのセルに入出力される情報が示されている。なお、第２スコアの算出に関連する箇所は破線の枠で囲んで示されている。
【００３５】
図４に示すように、ｎ時刻目のＬＳＴＭのセルには、ｎ−１時刻目のＬＳＴＭのセルに更新された隠れ状態ｓと、ｎ−１時刻目の正解要約文の単語ｘと、要約文の上限文字数までの残り文字数ｌとが入力される。このような入力の下、ｎ時刻目のＬＳＴＭのセルは、モデルの辞書に含まれる単語の要素ごとに、ｎ−１時刻目までの文脈および残り文字数に基づいて当該単語の要素を要約文の単語とすべき度合いを第１スコアとして出力する。これによって、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに第１スコア｛４７，３９，・・・，９｝が出力される。
【００３６】
このようなＬＳＴＭのセルによる第１スコアの算出と並行して、上記の第２スコアが算出される。すなわち、図４に破線の枠で囲んで示された通り、単語長情報１１Ａ１に含まれる単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに単語長｛１，７，・・・，６，・・・，３，０｝が分散表現｛ｂ１，ｂ２，・・・ｂｎ｝にベクトル化される。このような単語長の分散表現｛ｂ１，ｂ２，・・・ｂｎ｝と、要約文の上限文字数までの残り文字数ｌの分散表現との内積が単語の要素ごとに計算される。これによって、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに第２スコア｛５，−４０，・・・，３０｝が算出される。
【００３７】
その上で、第１スコアおよび第２スコアを単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに足し合わせる線形結合を行うことにより合成される。このように単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに合成されたスコア｛４７＋５，３９＋（−４０），・・・，９＋３０｝の和が「１」になるように正規化される。これによって、ｎ時刻目における各単語の生成確率の分布｛０．３，０．０１，・・・，０．１｝が得られる。
【００３８】
このように、文脈および残り文字数に基づく第１スコアに残り文字数および単語の長さに基づく第２スコアを合成して単語の生成確率の分布を算出することで、要約文の上限文字数の近傍であっても残り文字数を超える長さの単語が生成されるのに歯止めが掛けることができる。例えば、要約文の上限文字数までの残り文字数が少ない場合、類似する意味を持つ単語の中でも単語長が短い単語の生成確率を高めて出力できるモデル学習を実現できる。
【００３９】
したがって、本実施例に係る学習装置１０によれば、要約文の上限文字数の近傍でモデルが生成する単語の文字数を残りの文字数に近付けることが可能になる。
【００４０】
［学習装置１０の構成］
図１に示すように、学習装置１０は、学習データ記憶部１１と、モデル記憶部１２と、入力制御部１３と、モデル実行部１５と、算出部１６と、合成部１７と、生成部１８と、更新部１９とを有する。なお、学習装置１０は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【００４１】
図１に示す入力制御部１３、モデル実行部１５、算出部１６、合成部１７、生成部１８及び更新部１９などの機能部は、あくまで例示として、下記のハードウェアプロセッサにより仮想的に実現される。このようなプロセッサの例として、ＤＬＵ（Deep  Learning  Unit）を始め、ＧＰＧＰＵ（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）などの記憶装置を採用できる。なお、記憶装置は、必ずしも補助記憶装置でなくともよく、各種の半導体メモリ素子、例えばＲＡＭ、ＥＰＰＲＯＭやフラッシュメモリなども採用できる。
【００４３】
学習データ記憶部１１は、学習データを記憶する記憶部である。ここで、学習データには、一例として、Ｄ個の学習サンプル、いわゆる学習事例が含まれる。さらに、学習サンプルには、モデル学習に用いる入力文および正解の要約文のペアが含まれる。以下、モデルの学習時および要約文の生成時に入力される入力文のラベルを識別する側面から前者のことを「学習用入力文」と記載する場合がある。さらに、モデルの学習時に正解として参照される要約文および入力文から生成される要約文のラベルを識別する側面から前者のことを「正解要約文」と記載する場合がある。
【００４４】
モデル記憶部１２は、モデルに関する情報を記憶する記憶部である。
【００４５】
一実施形態として、モデル記憶部１２には、ＲＮＮエンコーダ及びＲＮＮデコーダが接続されたニューラルネットワークのモデルを形成する入力層、隠れ層及び出力層の各層のニューロンやシナプスなどのモデルの層構造を始め、各層の重みやバイアスなどのモデルのパラメータを含むモデル情報が記憶される。ここで、モデル学習が実行される前の段階では、モデル記憶部１２には、モデルのパラメータとして、乱数により初期設定されたパラメータが記憶される。また、モデル学習が実行された後の段階では、モデル記憶部１２には、学習済みモデルのパラメータが保存される。
【００４６】
入力制御部１３は、モデルに対する入力を制御する処理部である。
【００４７】
一実施形態として、入力制御部１３は、モデル学習のリクエストを受け付けた場合に処理を起動する。このように処理が起動されると、入力制御部１３は、モデル学習の初期設定を行う。例えば、入力制御部１３は、正解要約文の文字数を始め、ユーザに指定された文字数などをモデルが生成する要約文の上限文字数として設定する。
【００４８】
このようにＲＮＮデコーダへ入力する初期値が設定された後、入力制御部１３は、学習データに含まれる学習サンプルごとに、ＲＮＮエンコーダおよびＲＮＮデコーダが接続されたニューラルネットワークのモデルに対する入力を開始する。
【００４９】
具体的には、入力制御部１３は、学習サンプルをカウントするループカウンタｄの値を初期化する。続いて、入力制御部１３は、学習データ記憶部１１に記憶されたＤ個の学習サンプルのうちループカウンタｄに対応する学習サンプルを取得する。その後、入力制御部１３は、ループカウンタｄをインクリメントし、ループカウンタｄの値が学習サンプルの総数Ｄと等しくなるまで、学習データ記憶部１１から学習サンプルを取得する処理を繰り返し実行する。なお、ここでは、学習装置１０内部のストレージに保存された学習データを取得する例を挙げたが、ネットワークを介して接続される外部のコンピュータ、例えばファイルサーバの他、リムーバブルメディア等から学習データが取得されることとしてもかまわない。
【００５０】
このように学習サンプルが取得される度に、入力制御部１３は、当該学習サンプルに含まれる学習用入力文をＲＮＮエンコーダへ入力する。これによって、学習用入力文の単語列がベクトル化されたベクトル、いわゆる中間表現がＲＮＮエンコーダからＲＮＮデコーダへ出力される。これと同時または前後して、入力制御部１３は、ＲＮＮデコーダに文末記号と呼ばれるＥＯＳを出力させるまでの残り文字数を保持するレジスタの値を入力制御部１３が設定した上限文字数に初期化する。これ以降のＲＮＮデコーダへの入力、ＲＮＮデータからの出力、それを用いたモデルのパラメータの更新についてはその詳細を後述する。
【００５１】
モデル実行部１５は、ＲＮＮエンコーダ１５Ａ及びＲＮＮデコーダ１５Ｂが接続されたモデルを実行する処理部である。
【００５２】
１つの側面として、モデル実行部１５は、モデル記憶部１２に記憶されたモデル情報にしたがって、入力制御部１３により入力された学習用入力文の単語数Ｍに対応するＭ個のＬＳＴＭをワークエリア上に展開する。これによって、Ｍ個のＬＳＴＭをＲＮＮエンコーダとして機能させる。このＲＮＮエンコーダでは、入力制御部１３による入力制御にしたがって、学習用入力文の先頭の単語から順に、学習用入力文の先頭からｍ番目の単語が当該ｍ番目の単語に対応するＬＳＴＭへ入力されると共に、ｍ−１番目の単語に対応するＬＳＴＭの出力がｍ番目の単語に対応するＬＳＴＭへ入力される。このような入力を先頭の単語に対応するＬＳＴＭから末尾であるＭ番目の単語に対応するＬＳＴＭまで繰り返すことにより、学習用入力文のベクトル、いわゆる中間表現が得られる。このようにＲＮＮエンコーダにより生成された学習用入力文の中間表現がＲＮＮデコーダへ入力される。
【００５３】
他の側面としてとして、モデル実行部１５は、モデル記憶部１２に記憶されたモデル情報にしたがって、入力制御部１３により入力された正解要約文の単語数Ｎに対応するＮ個のＬＳＴＭをワークエリア上に展開する。これによって、Ｎ個のＬＳＴＭをＲＮＮデコーダとして機能させる。これらＲＮＮデコーダには、入力制御部１３の制御にしたがって、ＲＮＮエンコーダから学習用入力文の中間表現が入力されると共に、Ｎ個のＬＳＴＭごとに入力制御部１３からＥＯＳのタグを出力させるまでの残り文字数が入力される。これらの入力にしたがってＮ個のＬＳＴＭを動作させることにより、ＲＮＮデコーダは、Ｎ個のＬＳＭＴごとに単語の要素別の第１スコアを合成部１７へ出力する。
【００５４】
例えば、図４で説明した通り、ｎ時刻目のＬＳＴＭのセルには、ｎ−１時刻目のＬＳＴＭのセルに更新された隠れ状態ｓと、ｎ−１時刻目の正解要約文の単語ｘと、要約文の上限文字数までの残り文字数ｌとが入力される。なお、１時刻目のＬＳＴＭのセルには、ＲＮＮエンコーダから出力された隠れ状態ｓと、ＢＯＳ（Begin  Of  Sentence）のタグと、要約文の上限文字数とが入力される。このような入力の下、ｎ時刻目のＬＳＴＭのセルは、モデルの辞書に含まれる単語の要素ごとに、ｎ−１時刻目までの文脈および残り文字数に基づいて当該単語の要素を要約文の単語とすべき度合いを第１スコアとして出力する。
【００５５】
算出部１６は、単語の要素ごとの単語長と、要約文の上限文字数までの残り文字数とに基づいて第２スコアを算出する処理部である。
【００５６】
例えば、ｎ時刻目の第２スコアを算出するとしたとき、算出部１６は、図４に破線の枠で囲んで示された通り、単語長情報１１Ａ１に含まれる単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに単語長｛１，７，・・・，６，・・・，３，０｝がベクトル化された分散表現｛ｂ１，ｂ２，・・・ｂｎ｝と、残り文字数ｌの分散表現との内積を単語の要素ごとに計算する。これによって、算出部１６は、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに第２スコア｛５，−４０，・・・，３０｝を算出する。
【００５７】
合成部１７は、第１スコアおよび第２スコアを合成する処理部である。
【００５８】
例えば、ｎ時刻目の第１スコアおよび第２スコアを合成するとしたとき、合成部１７は、図４に破線の枠で囲んで示された通り、ｎ時刻目のＬＳＴＭが出力する第１スコアおよび算出部１６により算出された第２スコアを単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに足し合わせる線形結合を行うことにより、第１スコアおよび第２スコアを合成する。これによって、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに第１スコアおよび第２スコアが合成された合成スコア｛４７＋５，３９＋（−４０），・・・，９＋３０｝が得られる。その上で、合成部１７は、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに合成された合成スコア｛５２，−１，・・・，３９｝の和が「１」になるように正規化する。これによって、ｎ時刻目における各単語の生成確率の分布｛０．３，０．０１，・・・，０．１｝が得られる。
【００５９】
生成部１８は、要約文の単語を生成する処理部である。
【００６０】
一実施形態として、生成部１８は、合成部１７によりｎ時刻目に出力される各単語の生成確率の分布で確率が最大である単語を要約文の先頭からｎ番目の単語として生成する。
【００６１】
更新部１９は、モデルのパラメータを更新する処理部である。
【００６２】
一実施形態として、更新部１９は、生成部１８により要約文のｎ番目の単語が生成された場合、正解要約文に含まれる単語のうちｎ番目の単語と、生成部１８により生成されたｎ番目の単語とから損失を算出する。その上で、更新部１９は、ＲＮＮデコーダのＮ個のＬＳＴＭごとに損失が算出された場合、各ＬＳＴＭの損失に基づいて対数尤度の最適化を実行することにより、ＲＮＮデコーダのモデルを更新するパラメータを算出する。その上で、更新部１９は、モデル記憶部１２に記憶されたモデルのパラメータを対数尤度の最適化により求められたパラメータに更新する。このパラメータの更新は、全ての学習サンプルにわたって繰り返し実行すると共に、学習データＤについても所定のエポック数にわたって繰り返し実行することができる。
【００６３】
［モデル学習の具体例］
以下、モデルのパラメータ更新の前後で単語の生成確率の分布を対比する。ここで、Ｔラウンド目のモデル学習に用いられる単語の生成確率の分布が算出される例を図５に示す一方で、Ｔ＋１ラウンド目のモデル学習に用いられる単語の生成確率の分布が算出される例を図６に示す。
【００６４】
図５及び図６は、単語の生成確率の分布の算出例の一例を示す図である。図５及び図６には、学習用入力文と共に入力される正解要約文の単語数Ｎに対応する時刻ごとにモデルのＲＮＮデコーダとして展開されるＮ個のＬＳＴＭのセルのうちｎ−１時刻目のＬＳＴＭのセルに要約文の上限文字数までの残り文字数ｌ（＝２）が入力される例が示されている。
【００６５】
図５に示すように、ｎ−１時刻目のＬＳＴＭのセルには、ｎ−２時刻目のＬＳＴＭのセルに更新された隠れ状態ｓと、ｎ−２時刻目の正解要約文の単語ｘと、要約文の上限文字数までの残り文字数「２」とが入力される。このような入力の下、ｎ−１時刻目のＬＳＴＭのセルは、モデルの辞書に含まれる単語の要素ごとに、ｎ−２時刻目までの文脈および残り文字数に基づいて当該単語の要素を要約文の単語とすべき度合いを第１スコアとして出力する。これによって、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに第１スコア｛４７，３９，・・・，９｝が出力される。
【００６６】
このようなＬＳＴＭのセルによる第１スコアの算出と並行して、上記の第２スコアが算出される。すなわち、図５に破線の枠で囲んで示された通り、単語長情報１１Ａ１に含まれる単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに単語長｛１，７，・・・，６，・・・，３，０｝が分散表現｛ｂ１，ｂ２，・・・ｂｎ｝にベクトル化される。このような単語長の分散表現｛ｂ１，ｂ２，・・・ｂｎ｝と、要約文の上限文字数までの残り文字数「２」の分散表現との内積が単語の要素ごとに計算される。これによって、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに第２スコア｛−１，６，・・・，２｝が算出される。
【００６７】
その上で、第１スコアおよび第２スコアを単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに足し合わせる線形結合を行うことにより合成される。これによって、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに第１スコアおよび第２スコアが合成された合成スコア｛４７＋（−１），３９＋６，・・・，９＋２｝が得られる。その上で、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに合成されたスコア｛４６，４５，・・・，１１｝の和が「１」になるように正規化される。これによって、ｎ−１時刻目における各単語の生成確率の分布｛０．１，０．２，・・・，０．０１｝が得られる。
【００６８】
その後、ｎ−１時刻目における各単語の生成確率の分布｛０．１，０．２，・・・，０．０１｝に基づいてＴラウンド目のモデル学習が行われる。
【００６９】
次に、Ｔ＋１ラウンド目では、図６に示すように、ｎ−１時刻目のＬＳＴＭのセルには、ｎ−２時刻目のＬＳＴＭのセルに更新された隠れ状態ｓと、ｎ−２時刻目の正解要約文の単語ｘと、要約文の上限文字数までの残り文字数「２」とが入力される。このような入力の下、ｎ−１時刻目のＬＳＴＭのセルは、モデルの辞書に含まれる単語の要素ごとに、ｎ−２時刻目までの文脈および残り文字数に基づいて当該単語の要素を要約文の単語とすべき度合いを第１スコアとして出力する。これによって、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに第１スコア｛４７，３９，・・・，９｝が出力される。
【００７０】
このようなＬＳＴＭのセルによる第１スコアの算出と並行して、上記の第２スコアが算出される。すなわち、図６に破線の枠で囲んで示された通り、単語長情報１１Ａ１に含まれる単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに単語長｛１，７，・・・，６，・・・，３，０｝が分散表現｛ｂ１，ｂ２，・・・ｂｎ｝にベクトル化される。このような単語長の分散表現｛ｂ１，ｂ２，・・・ｂｎ｝と、要約文の上限文字数までの残り文字数「２」の分散表現との内積が単語の要素ごとに計算される。これによって、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに第２スコア｛２０，−３０，・・・，３０｝が算出される。
【００７１】
その上で、第１スコアおよび第２スコアを単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに足し合わせる線形結合を行うことにより合成される。これによって、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに第１スコアおよび第２スコアが合成された合成スコア｛４７＋２０，３９＋（−３０），・・・，９＋３０｝が得られる。その上で、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに合成されたスコア｛６７，９，・・・，３９｝の和が「１」になるように正規化される。これによって、ｎ−１時刻目における各単語の生成確率の分布｛０．４，０．０５，・・・，０．０１｝が得られる。
【００７２】
ここで、Ｔラウンド目における各単語の生成確率の分布｛０．１，０．２，・・・，０．０１｝と、Ｔ＋１ラウンド目における各単語の生成確率の分布｛０．４，０．０５，・・・，０．０１｝を比較することにより、次のことがわかる。
【００７３】
すなわち、Ｔラウンド目では、単語“Ａｍｅｒｉｃａ”の生成確率が最も高くなる。このため、残り文字数が「２」であるにもかかわらず、ｎ−１時刻目で７文字の単語“Ａｍｅｒｉｃａ”が生成されてしまう。それ故、残り文字数「２」からスペース＋単語“Ａｍｅｒｉｃａ”の８文字が減算される結果、上限文字数から６文字も超える要約文が生成されてしまう。
【００７４】
一方、Ｔ＋１ラウンド目では、単語“Ａｍｅｒｉｃａ”の生成確率は０．０５まで下がり、単語“ａ”の生成確率は０．４まで上がる。このため、残り文字数が「２」であるにもかかわらず、ｎ−１時刻目にスペース込みで８文字の単語“Ａｍｅｒｉｃａ”ではなく、スペース込みでも２文字の単語“ａ”を生成することができる。それ故、残り文字数「２」からスペース＋単語“ａ”の２文字が減算される。この結果、要約文の上限文字数の近傍でモデルが生成する単語の文字数を残りの文字数に近付け、上限文字数を超えないモデル学習を実現できる。
【００７５】
［生成装置３０の構成］
図１に示すように、生成装置３０は、入力制御部３１と、モデル実行部３２と、算出部３３と、合成部３４と、生成部３５とを有する。なお、生成装置３０は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【００７６】
図１に示す入力制御部３１、モデル実行部３２、算出部３３、合成部３４及び生成部３５などの機能部は、あくまで例示として、下記のハードウェアプロセッサにより仮想的に実現される。このようなプロセッサの例として、ＤＬＵを始め、ＧＰＧＰＵやＧＰＵクラスタなどが挙げられる。この他、ＣＰＵ、ＭＰＵなどが挙げられる。すなわち、プロセッサがＲＡＭ等のメモリ上に上記の要約生成プログラムをプロセスとして展開することにより、上記の機能部が仮想的に実現される。ここでは、プロセッサの一例として、ＤＬＵやＧＰＧＰＵ、ＧＰＵクラスタ、ＣＰＵ、ＭＰＵを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部は、ＡＳＩＣやＦＰＧＡなどのハードワイヤードロジックによって実現されることを妨げない。
【００７７】
入力制御部３１は、モデルに対する入力を制御する処理部である。
【００７８】
一実施形態として、入力制御部３１は、要約文生成のリクエストを受け付けた場合に処理を起動する。このように処理が起動されると、入力制御部３１は、要約文生成の対象とする入力文と共に、学習済みモデルに生成させる要約文の上限文字数の指定を受け付ける。その後、入力制御部３１は、入力文をＲＮＮエンコーダへ入力する。これによって、入力文の単語列がベクトル化されたベクトル、いわゆる中間表現がＲＮＮエンコーダからＲＮＮデコーダへ出力される。これと同時または前後して、入力制御部３１は、ＲＮＮデコーダに文末記号と呼ばれるＥＯＳを出力させるまでの残り文字数を保持するレジスタの値を上記の指定の上限文字数に初期化する。これ以降のＲＮＮデコーダへの入力、ＲＮＮデータからの出力、それを用いた要約文の生成についてはその詳細を後述する。
【００７９】
モデル実行部３２は、ＲＮＮエンコーダ及びＲＮＮデコーダが接続されたモデルを実行する処理部である。
【００８０】
１つの側面として、モデル実行部３２は、モデル記憶部１２に記憶された学習済みモデルのモデル情報にしたがって、入力制御部３１により入力された入力文の単語数Ｋに対応するＫ個のＬＳＴＭをワークエリア上に展開することにより、これらＫ個のＬＳＴＭをＲＮＮエンコーダとして機能させる。このＲＮＮエンコーダでは、入力制御部３１による入力制御にしたがって、入力文の先頭の単語から順に、入力文の先頭からｋ番目の単語が当該ｋ番目の単語に対応するＬＳＴＭへ入力されると共に、ｋ−１番目の単語に対応するＬＳＴＭの出力がｋ番目の単語に対応するＬＳＴＭへ入力される。このような入力を先頭の単語に対応するＬＳＴＭから末尾であるＫ番目の単語に対応するＬＳＴＭまで繰り返すことにより、入力文のベクトル、いわゆる中間表現が得られる。このようにＲＮＮエンコーダにより生成された入力文の中間表現がＲＮＮデコーダへ入力される。
【００８１】
他の側面として、モデル実行部３２は、モデル記憶部１２に記憶された学習済みモデルのモデル情報にしたがって、ＥＯＳのタグが出力されるまでＬＳＴＭをワークエリア上に展開することにより、ＥＯＳのタグが出力されるまで展開されたＪ個のＬＳＴＭをＲＮＮデコーダとして機能させる。これらＲＮＮデコーダには、入力制御部３１の制御にしたがって、ＲＮＮエンコーダから入力文の中間表現が入力されると共に、Ｊ個のＬＳＴＭごとに入力制御部３１からＥＯＳのタグを出力させるまでの残り文字数が入力される。これらの入力にしたがってＪ個のＬＳＴＭを動作させることにより、ＲＮＮデコーダは、Ｊ個のＬＳＭＴごとに単語の要素別の第１スコアを合成部１７へ出力する。
【００８２】
例えば、ｊ（１〜Ｊの自然数）時刻目のＬＳＴＭのセルには、ｊ−１時刻目のＬＳＴＭのセルに更新された隠れ状態ｓ′と、ｊ−１時刻目に生成された要約文の単語ｘ′と、要約文の上限文字数までの残り文字数ｌ′とが入力される。なお、１時刻目のＬＳＴＭのセルには、ＲＮＮエンコーダから出力された隠れ状態ｓ′と、ＢＯＳのタグと、要約文の上限文字数とが入力される。このような入力の下、ｊ時刻目のＬＳＴＭのセルは、モデルの辞書に含まれる単語の要素ごとに、ｊ−１時刻目までの文脈および残り文字数に基づいて当該単語の要素を要約文の単語とすべき度合いを第１スコアとして出力する。
【００８３】
算出部３３は、単語の要素ごとの単語長と、要約文の上限文字数までの残り文字数とに基づいて第２スコアを算出する処理部である。
【００８４】
例えば、ｊ時刻目の第２スコアを算出するとしたとき、算出部３３は、単語長情報１１Ａ１に含まれる単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに単語長｛１，７，・・・，６，・・・，３，０｝がベクトル化された分散表現｛ｂ１，ｂ２，・・・ｂｎ｝と、残り文字数ｌ′の分散表現との内積を単語の要素ごとに計算する。これによって、算出部３３は、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに第２スコアを算出する。
【００８５】
合成部３４は、第１スコアおよび第２スコアを合成する処理部である。
【００８６】
例えば、ｊ時刻目の第１スコアおよび第２スコアを合成するとしたとき、合成部３４は、ｊ時刻目のＬＳＴＭが出力する第１スコアおよび算出部３３により算出された第２スコアを単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに足し合わせる線形結合を行うことにより、第１スコアおよび第２スコアを合成する。これによって、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに第１スコアおよび第２スコアが合成された合成スコアが得られる。その上で、合成部３４は、単語の要素“ａ”、“Ａｍｅｒｉｃａ”、・・・、“＜ＥＯＳ＞”ごとに合成された合成スコアの和が「１」になるように正規化する。これによって、ｊ時刻目における各単語の生成確率の分布が得られる。
【００８７】
生成部３５は、要約文を生成する処理部である。
【００８８】
一実施形態として、生成部３５は、ＲＮＮデコーダのｊ番目のＬＳＴＭから単語の確率分布が出力された場合、当該確率分布で確率が最大である単語を要約文の先頭からｊ番目の単語として生成する。その後、生成部３５は、ＲＮＮデコーダのＪ番目のＬＳＴＭからＥＯＳのタグが出力された場合、先頭のＬＳＴＭからＪ番目のＬＳＴＭから順に生成された単語を結合することにより要約文を生成し、生成された要約文を所定の出力先、例えば生成装置３０に接続された端末装置等へ出力する。
【００８９】
［要約文生成の具体例］
以下、図７及び図８を用いて、従来技術および本実施例における要約文生成の具体例を説明する。
【００９０】
図７及び図８は、要約文生成の一例を示す図である。図７には、従来技術における単語の生成確率の分布の算出方法にしたがって要約文が生成される動作例が模式的に示されている。一方、図８には、本実施例における単語の生成確率の分布の算出方法にしたがって要約文が生成される動作内容が模式的に示されている。
【００９１】
（イ）従来技術の要約文生成
図７に示すように、１時刻目には、入力制御部３１の制御にしたがって、ＲＮＮエンコーダの末尾のＬＳＴＭから入力文の中間表現が先頭のＬＳＴＭ３２Ｄ１へ入力される。これと共に、先頭のＬＳＴＭ３２Ｄ１には、入力制御部３１からＢＯＳのタグと共に、ＲＮＮデコーダにＥＯＳを出力させるまでの残り文字数の初期値として指定の上限文字数「５３」が入力される。このような入力の結果、ＬＳＴＭ３２Ｄ１は、学習済みモデルの辞書に登録された単語、すなわち学習サンプル全体で学習用入力文に出現する単語ごとに確率を計算することにより１時刻目（ｔ＝１）における単語の確率分布を算出すると共に、入力文４０の中間表現を更新する。その上で、ＬＳＴＭ３２Ｄ１は、１時刻目における単語の確率分布を生成部３５へ出力すると共に、１時刻目に更新された中間表現を次段のＬＳＴＭ３２Ｄ２へ出力する。
【００９２】
このように１時刻目における単語の確率分布が出力された場合、生成部３５は、当該確率分布で確率が最大である単語、本例では「ｍａｒｋｅｔｓ」を要約文の先頭の単語として生成する。その後、入力制御部３１は、レジスタに保持された残り文字数の初期値「５３」から、スペース分の文字数「１」と、１時刻目に生成された単語「ｍａｒｋｅｔｓ」の文字数「７」との合計「８」を減算することにより、残り文字数の値を「５３」から「４５」へ更新する。
【００９３】
次に、２時刻目には、１時刻目に更新された中間表現がＬＳＴＭ３２Ｄ１からＬＳＴＭ３２Ｄ２へ入力される。これと共に、ＬＳＴＭ３２Ｄ２には、入力制御部３１の制御にしたがって、２時刻目の１時刻前、すなわち１時刻目に生成された単語「ｍａｒｋｅｔｓ」が入力されると共に、レジスタに保持された残り文字数「４５」が入力される。これによって、ＬＳＴＭ３２Ｄ２は、学習済みモデルの辞書に登録された単語ごとに確率を計算することにより２時刻目（ｔ＝２）における単語の確率分布を算出すると共に、隠れ状態を更新する。その上で、ＬＳＴＭ３２Ｄ２は、２時刻目における単語の確率分布を生成部３５へ出力すると共に、２時刻目に更新された中間表現を次段のＬＳＴＭ３２Ｄ３へ出力する。
【００９４】
このように２時刻目における単語の確率分布が出力された場合、生成部３５は、当該確率分布で確率が最大である単語、本例では「ｉｎ」を要約文の先頭から２番目の単語として生成する。その後、入力制御部３１は、レジスタに保持された残り文字数の値「４５」から、スペース分の文字数「１」と、２時刻目に生成された単語「ｉｎ」の文字数「２」との合計「３」を減算することにより、残り文字数の値を「４５」から「４２」へ更新する。
【００９５】
このような処理がＬＳＴＭ３２Ｄ１０から文末記号「ＢＯＳ」が出力される１０時刻目まで繰り返し実行される。この結果、１時刻目から１０時刻目までに生成された単語が結合されることにより、要約文“markets  in  united  states  of  america  closed  for  vacation  <EOS>”が生成される。
【００９６】
（ロ）本実施例の要約文生成
図８に示すように、１時刻目には、入力制御部３１の制御にしたがって、ＲＮＮエンコーダの末尾のＬＳＴＭから入力文の中間表現が先頭のＬＳＴＭ３２Ｄ１へ入力される。これと共に、先頭のＬＳＴＭ３２Ｄ１には、入力制御部３１からＢＯＳのタグと共に、ＲＮＮデコーダにＥＯＳを出力させるまでの残り文字数の初期値として指定の上限文字数「５３」が入力される。このような入力の結果、ＬＳＴＭ３２Ｄ１は、学習済みモデルの辞書に登録された単語の要素ごとに第１スコアを出力すると共に、入力文の隠れ状態を更新して１時刻目に更新された更新状態を次段のＬＳＴＭ３２Ｄ２へ出力する。さらに、算出部３３により単語の要素ごとに第２スコアが算出される。その上で、合成部３４は、第１スコアおよび第２スコアが合成された合成スコアを正規化することにより１時刻目（ｔ＝１）における単語の生成確率の分布を算出する。そして、合成部３４は、１時刻目における単語の確率分布を生成部３５へ出力する。
【００９７】
このように１時刻目における単語の確率分布が出力された場合、生成部３５は、当該確率分布で確率が最大である単語、本例では「ｍａｒｋｅｔｓ」を要約文の先頭の単語として生成する。その後、入力制御部３１は、レジスタに保持された残り文字数の初期値「５３」から、スペース分の文字数「１」と、１時刻目に生成された単語「ｍａｒｋｅｔｓ」の文字数「７」との合計「８」を減算することにより、残り文字数の値を「５３」から「４５」へ更新する。
【００９８】
次に、２時刻目には、１時刻目に更新された中間表現がＬＳＴＭ３２Ｄ１からＬＳＴＭ３２Ｄ２へ入力される。これと共に、ＬＳＴＭ３２Ｄ２には、入力制御部３１の制御にしたがって、２時刻目の１時刻前、すなわち１時刻目に生成された単語「ｍａｒｋｅｔｓ」が入力されると共に、レジスタに保持された残り文字数「４５」が入力される。このような入力の下、ＬＳＴＭ３２Ｄ２は、学習済みモデルの辞書に登録された単語の要素ごとに第１スコアを出力すると共に、１時刻目のＬＳＴＭ３２Ｄ１の隠れ状態を更新して２時刻目に更新された隠れ状態を次段のＬＳＴＭ３２Ｄ３へ出力する。さらに、算出部３３により単語の要素ごとに第２スコアが算出される。その上で、合成部３４は、第１スコアおよび第２スコアが合成された合成スコアを正規化することにより２時刻目（ｔ＝２）における単語の生成確率の分布を算出する。そして、合成部３４は、２時刻目における単語の確率分布を生成部３５へ出力する。
【００９９】
このように２時刻目における単語の確率分布が出力された場合、生成部３５は、当該確率分布で確率が最大である単語、本例では「ｉｎ」を要約文の先頭から２番目の単語として生成する。その後、入力制御部３１は、レジスタに保持された残り文字数の値「４５」から、スペース分の文字数「１」と、２時刻目に生成された単語「ｉｎ」の文字数「２」との合計「３」を減算することにより、残り文字数の値を「４５」から「４２」へ更新する。
【０１００】
このような処理がＬＳＴＭ３２Ｄ１０から文末記号「ＢＯＳ」が出力される１０時刻目まで繰り返し実行される。この結果、１時刻目から１０時刻目までに生成された単語が結合されることにより、要約文“markets  in  united  states  of  america  closed  for  holiday  <EOS>”が生成される。
【０１０１】
（ハ）対比
上記（イ）および上記（ロ）を対比すると、９時刻目の結果に差が現れていることがわかる。例えば、上記（イ）では、９時刻目にモデルが単語“vacation”を出力されることにより、残り文字数「７」から単語“vacation”の文字数「８」が減算されている。この結果、上限文字数から１文字超える要約文が生成されてしまう。一方、例えば、上記（ロ）では、９時刻目にモデルが単語“vacation”と意味が類似する単語“holiday”を出力されることにより、残り文字数「７」から単語“holiday”の文字数「７」が減算されている。この結果、上限文字数を超えず、上限文字数にぴったり収まる要約文が生成される。したがって、本実施例に係る生成装置３０によれば、要約文の上限文字数の近傍でモデルが生成する単語の文字数を残りの文字数に近付け、上限文字数を超えない要約生成を実現できる。
【０１０２】
［処理の流れ］
次に、本実施例に係るシステムの処理の流れについて説明する。ここでは、学習装置１０により実行される（Ａ）学習処理について説明した後に、生成装置３０により実行される（Ｂ）生成処理について説明することとする。
【０１０３】
（Ａ）学習処理
図９は、実施例１に係る学習処理の手順を示すフローチャートである。この学習処理は、一例として、モデル学習のリクエストを受け付けた場合に開始される。図９に示すように、入力制御部１３は、モデルに生成させる要約文の上限文字数を設定する（ステップＳ１０１）。続いて、学習データに含まれるＤ個の学習サンプルｄごとに、ステップＳ１０２〜ステップＳ１１１の処理が実行される。
【０１０４】
すなわち、入力制御部１３は、学習データ記憶部１１に記憶された学習データのうち学習サンプルｄを１つ取得する（ステップＳ１０２）。続いて、入力制御部１３は、ステップＳ１０２で取得された学習サンプルｄに含まれる学習用入力文をＲＮＮエンコーダへ入力する（ステップＳ１０３）。これによって、学習用入力文の単語列が中間表現へ変換される。
【０１０５】
そして、入力制御部１３は、ＲＮＮデコーダにＥＯＳのタグを出力させるまでの残り文字数を保持するレジスタの値をステップＳ１０１で設定された上限文字数に初期化する（ステップＳ１０４）。
【０１０６】
その後、正解要約文のＭ個の単語の先頭から順の各時刻ごとに、ステップＳ１０５〜ステップＳ１１０の処理が実行される。
【０１０７】
すなわち、入力制御部１３は、レジスタに保持された残り文字数と、ＢＯＳのタグもしくは１時刻前の正解の単語とをＲＮＮデコーダのうち現時刻に対応するＬＳＴＭへ入力する（ステップＳ１０５Ａ）。このようなＬＳＴＭへの入力によって、現時刻における単語の要素別の第１スコアが算出されると共に、学習用入力文の中間表現が更新される。
【０１０８】
また、算出部１６は、単語の長さの分散表現と、残り文字数ｌの分散表現との内積を単語の要素ごとに計算することにより単語の要素ごとに第２スコアを算出する（ステップＳ１０５Ｂ）。
【０１０９】
そして、合成部１７は、ＬＳＴＭが出力する第１スコアおよび算出部１６により算出された第２スコアを単語の要素ごとに足し合わせる線形結合を行うことにより、第１スコアおよび第２スコアを合成する（ステップＳ１０６）。
【０１１０】
その上で、合成部１７は、ステップＳ１０６で第１スコアおよび第２スコアが合成された合成スコアを正規化することにより、単語の生成確率の分布を生成する（ステップＳ１０７）。そして、生成部１８は、単語の生成確率の分布で確率が最大である単語を生成する（ステップＳ１０８）。続いて、更新部１９は、正解要約文に含まれる単語のうち現時刻に対応する単語と、ステップＳ１０８で生成された単語とから現時刻における損失を算出する（ステップＳ１０９）。
【０１１１】
その後、入力制御部１３は、レジスタに保持された残り文字数からステップＳ１０８で生成された単語の文字数を減算することにより、レジスタの残り文字数の値を更新する（ステップＳ１１０）。
【０１１２】
そして、正解要約文のＭ個の単語ごとに損失が算出されると、更新部１９は、各ＬＳＴＭの損失に基づいて対数尤度の最適化を実行することにより、ＲＮＮデコーダのモデルを更新するパラメータを算出した上で、モデル記憶部１２に記憶されたモデルのパラメータを更新する（ステップＳ１１１）。
【０１１３】
その後、学習データに含まれる全ての学習サンプルｄについてモデルのパラメータの更新が実行されると、学習装置１０は、学習済みのモデルを生成装置３０へ出力し（ステップＳ１１２）、処理を終了する。
【０１１４】
（Ｂ）生成処理
図１０は、実施例１に係る生成処理の手順を示すフローチャートである。この学習処理は、一例として、要約文生成のリクエストを受け付けた場合に開始される。図１０に示すように、入力制御部３１は、入力文を取得すると共に、学習済みモデルに生成させる要約文の上限文字数の指定を受け付ける（ステップＳ３０１及びステップＳ３０２）。その後、入力制御部３１は、入力文をＲＮＮエンコーダへ入力する（ステップＳ３０３）。これによって、入力文の単語列が中間表現へ変換される。
【０１１５】
そして、入力制御部１３は、ＲＮＮデコーダにＥＯＳのタグを出力させるまでの残り文字数を保持するレジスタの値をステップＳ３０２で指定された上限文字数に初期化する（ステップＳ３０４）。
【０１１６】
その後、ＲＮＮデコーダからＥＯＳのタグが出力されるまで、ステップＳ３０５〜ステップＳ３０９の処理が実行される。
【０１１７】
すなわち、入力制御部３１は、レジスタに保持された残り文字数と、ＢＯＳのタグもしくは１時刻前に生成された単語とをＲＮＮデコーダのうち現時刻に対応するＬＳＴＭへ入力する（ステップＳ３０５Ａ）。このようなＬＳＴＭへの入力によって、現時刻における単語の要素別の第１スコアが算出されると共に、隠れ状態が更新される。
【０１１８】
また、算出部３３は、単語の長さの分散表現と、残り文字数ｌの分散表現との内積を単語の要素ごとに計算することにより単語の要素ごとに第２スコアを算出する（ステップＳ３０５Ｂ）。
【０１１９】
そして、合成部３４は、ステップ３０５Ａで出力された第１スコアおよび算出部３３により算出された第２スコアを単語の要素ごとに足し合わせる線形結合を行うことにより、第１スコアおよび第２スコアを合成する（ステップＳ３０６）。
【０１２０】
その上で、合成部３４は、ステップＳ３０６で第１スコアおよび第２スコアが合成された合成スコアを正規化することにより、単語の生成確率の分布を生成する（ステップＳ３０７）。そして、生成部３５は、単語の生成確率の分布で確率が最大である単語を生成する（ステップＳ３０８）。
【０１２１】
続いて、入力制御部３１は、レジスタに保持された残り文字数からステップＳ３０８で生成された単語の文字数を減算することにより、レジスタの残り文字数の値を更新する（ステップＳ３０９）。
【０１２２】
そして、ＲＮＮデコーダからＥＯＳのタグが出力されると、生成部３５は、先頭のＬＳＴＭからＬ番目のＬＳＴＭから順に生成された単語を結合することにより要約文を生成して要約文を所定の出力先へ出力し（ステップＳ３１０）、処理を終了する。
【０１２３】
［効果の一側面］
上述してきたように、本実施例に係る学習装置１０及び生成装置３０は、モデルが辞書の単語ごとに出力する第１スコアに、モデルの辞書の単語ごとに単語の長さおよび要約文の上限文字数までの残り文字数から求まる第２スコアを合成して単語の生成確率の分布を算出する。したがって、本実施例に係る学習装置１０及び生成装置３０によれば、要約文の上限文字数の近傍でモデルが生成する単語の文字数を残りの文字数に近付けることが可能である。
【実施例２】
【０１２４】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０１２５】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、入力制御部１３、モデル実行部１５、算出部１６、合成部１７、生成部１８及び更新部１９を学習装置１０の外部装置としてネットワーク経由で接続するようにしてもよい。また、入力制御部１３、モデル実行部１５、算出部１６、合成部１７、生成部１８及び更新部１９を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の学習装置１０の機能を実現するようにしてもよい。
【０１２６】
［学習プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１１を用いて、上記の実施例と同様の機能を有する学習プログラムを実行するコンピュータの一例について説明する。
【０１２７】
図１１は、実施例１及び実施例２に係る学習プログラムを実行するコンピュータのハードウェア構成例を示す図である。図１１に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【０１２８】
ＨＤＤ１７０には、図１１に示すように、上記の実施例１で示した入力制御部１３、モデル実行部１５、算出部１６、合成部１７、生成部１８及び更新部１９と同様の機能を発揮する学習プログラム１７０ａが記憶される。この学習プログラム１７０ａは、図１に示した入力制御部１３、モデル実行部１５、算出部１６、合成部１７、生成部１８及び更新部１９の各構成要素と同様、統合又は分離してもかまわない。すなわち、ＨＤＤ１７０には、必ずしも上記の実施例１で示した全てのデータが格納されずともよく、処理に用いるデータがＨＤＤ１７０に格納されればよい。
【０１２９】
このような環境の下、ＣＰＵ１５０は、ＨＤＤ１７０から学習プログラム１７０ａを読み出した上でＲＡＭ１８０へ展開する。この結果、学習プログラム１７０ａは、図１１に示すように、学習プロセス１８０ａとして機能する。この学習プロセス１８０ａは、ＲＡＭ１８０が有する記憶領域のうち学習プロセス１８０ａに割り当てられた領域にＨＤＤ１７０から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、学習プロセス１８０ａが実行する処理の一例として、図９〜図１０に示す処理などが含まれる。なお、ＣＰＵ１５０では、必ずしも上記の実施例１で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【０１３０】
なお、上記の学習プログラム１７０ａは、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶されておらずともかまわない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に学習プログラム１７０ａを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から学習プログラム１７０ａを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）などを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに学習プログラム１７０ａを記憶させておき、コンピュータ１００がこれらから学習プログラム１７０ａを取得して実行するようにしてもよい。
【符号の説明】
【０１３１】
１０    学習装置
１１    学習データ記憶部
１２    モデル記憶部
１３    入力制御部
１５    モデル実行部
１６    算出部
１７    合成部
１８    生成部
１９    更新部
３０    生成装置
３１    入力制御部
３２    モデル実行部
３３    算出部
３４    合成部
３５    生成部
【図１】
2020071677.tif 000003
【図２】
2020071677.tif 000004
【図３】
2020071677.tif 000005
【図４】
2020071677.tif 000006
【図５】
2020071677.tif 000007
【図６】
2020071677.tif 000008
【図７】
2020071677.tif 000009
【図８】
2020071677.tif 000010
【図９】
2020071677.tif 000011
【図１０】
2020071677.tif 000012
【図１１】
2020071677.tif 000013