以下に添付図面を参照して本願に係る学習方法、学習プログラム及び学習装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
図1は、実施例1に係る学習装置の機能的構成を示すブロック図である。図1に示す学習装置1は、新聞や電光掲示板、Webサイトなどの各種の記事を入力文として受け付け、その要約文を生成するモデルの学習を実行する学習サービスを提供するものである。
一実施形態として、学習装置1は、パッケージソフトウェアやオンラインソフトウェアとして上記の学習サービスを実現する学習プログラムを任意のコンピュータにインストールさせることによって実装できる。このように上記の学習プログラムをコンピュータに実行させることにより、コンピュータを学習装置1として機能させることができる。ここで言うコンピュータは、任意の情報処理装置であってよい。例えば、デスクトップ型またはノート型のパーソナルコンピュータやワークステーションの他、スマートフォンや携帯電話機などの移動体通信端末、タブレット端末、ウェアラブル端末などがその範疇に含まれる。また、学習装置1は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の学習サービスを提供するサーバ装置として実装することもできる。この場合、学習装置1は、複数の学習サンプルを含む学習データ、または、学習データをネットワークもしくは記憶メディアを介して呼び出すことができる識別情報を入力とするモデル学習のリクエストを受け付ける。その上で、学習装置1は、モデル学習のリクエストで受け付けた学習データに対するモデル学習の実行結果を出力する学習サービスを提供するサーバ装置として実装される。この場合、学習装置1は、上記の学習サービスを提供するサーバとしてオンプレミスに実装することとしてもよいし、アウトソーシングによって上記の学習サービスを提供するクラウドとして実装することとしてもかまわない。
[学習済みモデルのユースケースの一例]
上記の学習サービスにより学習された学習済みモデルは、新聞記事や電光掲示板、Webサイトなどの記事の原文を入力文として受け付け、その要約文を生成する記事要約ツールとして実装することができる。
ここで、上記の記事要約ツールは、あくまで1つの側面として、新聞や電光掲示板、Webサイトなどの各種のメディアを運営するメディア事業者をユーザとするアプリケーションの一機能として組み込むことができる。
このとき、上記のアプリケーションは、メディア事業者の関係者、例えば編集員等により使用される端末装置で実行されるスタンドアローンのソフトウェアとして実装されることとしてもよい。この他、上記のアプリケーションが提供する機能のうち、原文の入力や要約文の表示等のフロントエンドの機能が記者や編集者等の端末装置で提供されると共に、要約文の生成などのバックエンドの機能がWebサービスとして提供されることとしてもかまわない。
図2は、記事要約ツールのユースケースの一例を示す図である。図2には、メディア事業者の関係者により使用される端末装置に表示される記事要約画面20の遷移の一例が示されている。
図2の上段には、各種の項目に対する入力が設定されていない初期状態の記事要約画面20が示されている。例えば、記事要約画面20には、原文入力エリア21、要約表示エリア22、プルダウンメニュー23、要約ボタン24、クリアボタン25などのGUI(Graphical User Interface)コンポーネントが含まれる。このうち、原文入力エリア21は、記事等の原文を入力するエリアに対応する。また、要約表示エリア22は、原文入力エリア21に入力された原文に対応する要約文を表示するエリアに対応する。また、プルダウンメニュー23は、要約文の上限文字数を指定するGUIコンポーネントの一例に対応する。また、要約ボタン24は、原文入力エリア21に入力された原文に対応する要約文を生成するコマンドの実行を受け付けるGUIコンポーネントの一例に対応する。また、クリアボタン25は、原文入力エリア21に入力された原文のテキストをクリアするGUIコンポーネントの一例に対応する。
図2に示すように、記事要約画面20の原文入力エリア21では、図示しないキーボード等の入力デバイスを介してテキストの入力を受け付けることができる。このように入力デバイスを介してテキストの入力を受け付ける他、原文入力エリア21では、ワープロソフトなどのアプリケーションにより作成された文書のファイルからテキストをインポートすることができる。
このように原文入力エリア21に原文のテキストが入力されることにより、記事要約画面20は、図2の上段に示された状態から図2の中段に示された状態へ遷移する(ステップS1)。例えば、原文入力エリア21に原文のテキストが入力された場合、要約ボタン24に対する操作を介して要約文を生成するコマンドの実行を受け付けることができる。また、クリアボタン25に対する操作を介して原文入力エリア21に入力されたテキストをクリアすることもできる。この他、プルダウンメニュー23を介して、複数の上限文字数の中からメディア事業者の関係者が希望する上限文字数の指定を受け付けることもできる。ここでは、新聞やニュースの記事の原文から電光掲示板の速報を要約文として生成する場面の一例として、電光掲示板に表示可能な上限文字数の一例に対応する80文字が指定された例が示されている。これはあくまで一例であり、新聞やWebサイトの記事から見出しを生成する場合、見出しに対応する上限文字数を選択することができる。
そして、原文入力エリア21に原文のテキストが入力された状態で要約ボタン24に対する操作が行われた場合、記事要約画面20は、図2の中段に示された状態から図2の下段に示された状態へ遷移する(ステップS2)。この場合、原文入力エリア21に入力された原文のテキストが入力文として学習済みモデルに入力されることによりその要約文が生成される。この要約文の生成は、メディア事業者の関係者の端末装置上で実行されることとしてもよいし、あるいはバックエンドのサーバ装置で実行されることとしてもかまわない。この結果、図2の下段に示すように、記事要約画面20の要約表示エリア22には、学習済みモデルにより生成された要約文が表示される。
このように記事要約画面20の要約表示エリア22に表示された要約文のテキストには、図示しない入力デバイス等を介して編集を行うことができる。
以上のような記事要約ツールが提供されることで、記者や編集者等により行われる記事要約の作業を軽減することが可能になる。すなわち、記事要約の作業は、メディアにニュースを配信するプロセス、例えば「配信記事の選定」や「メディア編集システムへの送信」、「記事要約」、「見出し作成」、「校閲」などの中でも最も労力が大きいという側面がある。例えば、記事要約が人手により行われる場合、記事の全体から重要な情報を選別し、文章を再構成するといった作業が必要となる。このことから、記事要約の作業が自動化または半自動化される技術的意義は高い。
なお、ここでは、あくまで一例として、メディア事業者の関係者により記事要約ツールが利用されるユースケースを例に挙げたが、メディア事業者から記事の配信を受ける視聴者により記事要約ツールが利用されることとしてもかまわない。例えば、スマートスピーカ等で記事の全文を読み上げる代わりに要約文を読み上げる機能として記事要約ツールを利用することができる。
[RNNのモデル学習の課題一側面]
上記の背景技術の欄で説明した通り、学習サンプルの入力文に対応する正解の参照要約の単語ごとにモデルのパラメータの更新に用いる損失を算出する場合、参照要約と語順が異なるが文意は類似する要約文の評価が過小評価されることがある。
このようなモデル学習の失敗事例を図3及び図4A~図4Cを用いて説明する。図3は、入力文の一例を示す図である。図4Aは、参照要約の一例を示す図である。図4B及び図4Cは、システム要約の一例を示す図である。以下では、学習サンプルに含まれる正解の要約文のことを「参照要約」と記載し、モデルが入力文から生成する要約文のことを「システム要約」と記載する場合がある。
ここでは、一例として、モデル学習の際に、図3に示す入力文30及び図4Aに示す参照要約40のペアが学習サンプルとして入力される事例を例に挙げる。このとき、RNN(Recurrent Neural Networks)エンコーダ及びRNNデコーダが接続されたモデルによって入力文30から図4Bに示すシステム要約40Bや図4Cに示すシステム要約40Cが生成される場合、次のような評価が行われる。
すなわち、図4Aに示す参照要約40及び図4Bに示すシステム要約40Bの間では、先頭から末尾までの各位置で単語が一致する。図4A及び図4Bには、一例として、参照要約40及びシステム要約40Bの先頭から5番目に位置する単語が太字により示されている。例えば、システム要約40Bの先頭から5番目に位置する単語が予測される際には、図4Bに示すように、RNNデコーダが出力する入力文30の単語の確率分布のうち単語「AI」の確率が最高となる。また、先頭から5番目に位置する参照要約40の単語も、図4Aに示すように、「AI」である。このように参照要約40に含まれる単語ごとに当該単語の位置に対応する位置のシステム要約40Bの単語が一致する場合、損失は「0」となる。
一方、図4Aに示す参照要約40及び図4Cに示すシステム要約40Cは、文意は同一であるが、参照要約40及びシステム要約40Cの間で先頭から8番目までの単語の語順が異なる。図4A及び図4Cには、一例として、参照要約40及びシステム要約40Cの先頭から5番目の単語が太字により示されている。例えば、システム要約40Cの先頭から5番目に位置する単語が予測される際には、図4Cに示すように、RNNデコーダが出力する入力文30の単語の確率分布のうち単語「コールセンター」の確率が最高となる。その一方で、先頭から5番目に位置する参照要約40の単語は、図4Aに示すように、「AI」である。このように参照要約40及びシステム要約40Cの間で語順が入れ替わることにより単語の配置が異なる場合、システム要約40Cが参照要約40と同一の文意を有する場合であっても、損失が生じる。
これらのことから、システム要約40B及びシステム要約40Cの間で異なる評価がなされることになる。しかしながら、システム要約40B及びシステム要約40Cの文意は同一である。それ故、要約という側面から言えば、同一の評価がなされなければ適切とは言えず、システム要約40Cはシステム要約40Bに比べて過小評価されている。
[現状のMRT]
このように、モデル学習時に参照要約と語順が異なるシステム要約が過小評価されるのを抑制する側面から、MRT(Minimum Risk Training)と呼ばれる技術が提案されている。例えば、MRTでは、正解の参照要約およびシステム要約の間における単語のN-gramの重複度を表すROUGEに基づいてRNNエンコーダ及びRNNデコーダのモデルのパラメータをチューニングする。
図5は、MRTの処理内容の一例を示す図である。図5に示すように、RNNエンコーダ及びRNNデコーダのモデル学習には、入力文xおよび正解の参照要約yのペアが学習サンプルとして用いられる。これら入力文xおよび正解の参照要約yのうち入力文xがモデルへ入力される。
このように入力文xが入力された場合、パラメータθを持つモデルのRNNデコーダが先頭からEOS(End of Sentence)までの各時刻に出力する単語の確率分布に従って複数のシステム要約y′1~y′3がサンプリングされる。
例えば、先頭からEOSまでの各時刻では、モデルの辞書に登録された単語、すなわち複数の学習サンプルを含む学習データ全体で入力文に出現する単語ごとに確率が計算される。このような計算で得られる各時刻における単語の確率分布に従って各時刻で単語を抽出することで、上記のサンプリングを実現できる。なお、ここでは、説明の便宜上、3つのシステム要約y′1~y′3がサンプリングされる例を挙げたが、任意の個数のシステム要約y′がサンプリングされることとしてかまわない。
そして、MRTでは、システム要約y′1~y′3ごとに、入力文xから当該システム要約y′が生成される生成確率と、参照要約yおよび当該システム要約y′の間の単語のn-gramの重複度を表すROUGE値とが算出される。その上で、MRTでは、システム要約y′1~y′3の生成確率およびROUGE値から下記の式(1)に従って損失LMRT(θ)が算出される。
ここで、上記の式(1)における「P(y′|x;θ)」は、モデルのパラメータをθとしたとき、入力文xからシステム要約y′が生成される確率を指す。また、上記の式(1)における「D」は、入力文xおよび参照要約yを含む学習サンプルの集合である学習データを指す。さらに、上記の式(1)における「S」は、モデルのパラメータをθとしたとき、入力文xから生成されるシステム要約の集合を指す。また、上記の式(1)における「Δ(y′,y)」は、システム要約y′及び参照要約yの間で算出される単語の重複度を指し、ここでは、一例として、ROUGEなどの関数を用いることにより負の利得がROUGE値として算出されることとする。
その後、MRTは、損失LMRTに基づいてモデルのパラメータθを更新する。例えば、MRTは、LMRT(θ)をθiで偏微分することにより勾配、すなわち∂LMRT(θ)/∂θiを求め、モデルのパラメータθiの更新、すなわちθi←θ+(∂LMRT(θ)/∂θi)の計算を行う。
このように損失LMRT(θ)に基づいてモデルのパラメータθiを更新することにより、ROUGE値が高いシステム要約の生成確率が上げる一方で、ROUGE値が低いシステム要約の生成確率を下げるモデルの学習が実現される。
このROUGE値を用いるパラメータ更新前後における損失LMRT(θ)の変化を図6を用いて説明する。図6は、生成確率およびROUGE値の一例を示す図である。図6の上段の表には、tラウンド目のモデル学習においてパラメータθtを持つモデルが入力文xからシステム要約y′を生成する生成確率と、参照要約およびシステム要約y′の間のROUGE値とが示されている。なお、図6の表に示す薄いハッチングの箇所は、上記の式(1)に含まれるシステム要約y′の生成確率の計算式で算出されることを示す一方で、図6の表に示す濃いハッチングの箇所は、上記の式(1)に含まれるROUGEの関数で算出されることを示す。
例えば、パラメータθtを持つモデルが入力文xから生成するシステム要約y′1~y′3の生成確率およびROUGE値が図6の上段の表に示す値であるとしたとき、LMRT(θt)は、次のように算出することができる。すなわち、損失LMRT(θt)は、システム要約y′1の生成確率及びのROUGE値と、システム要約y′2の生成確率及びのROUGE値と、システム要約y′3の生成確率及びのROUGE値との総和から求めることができる。つまり、損失LMRT(θt)は、0.2×(-0.3)+0.6×(-0.1)+0.2×(-0.6)の計算により、-0.24と算出される。
このような損失LMRT(θt)に基づいてパラメータがθtからθt+1へ更新されたモデルが入力文xから生成するシステム要約y′1~y′3の生成確率およびROUGE値が図6の下段の表の通りであるとする。
その一方で、図6に示す下段の表には、t+1ラウンド目のモデル学習においてパラメータθt+1を持つモデルが入力文xからシステム要約y′を生成する生成確率と、参照要約およびシステム要約y′の間のROUGE値とが示されている。この場合にも、損失LMRT(θt+1)は、システム要約y′1の生成確率及びのROUGE値と、システム要約y′2の生成確率及びのROUGE値と、システム要約y′3の生成確率及びのROUGE値との総和から求めることができる。つまり、損失LMRT(θt+1)は、0.3×(-0.3)+0.1×(-0.1)+0.6×(-0.6)の計算により、-0.46と算出される。
このようにモデルのパラメータがθtからθt+1へ更新されることにより、tラウンド目の損失LMRT(θt)よりもt+1ラウンド目の損失LMRT(θt+1)を減少させるモデル学習が実現されていることがわかる。
[現状のMRTの課題の一側面]
しかしながら、上記の背景技術の欄で説明した通り、MRTのように、語順の違いを不問とし、単語の重複度によりモデルのパラメータを更新する場合、正解の参照要約と語順が異なる全てのシステム要約のROUGE値が高評価を受ける。それ故、正解の参照要約との間で語順が異なるシステム要約の中に非文法的な表現が含まれる場合でも、システム要約の損失を過小評価してモデルのパラメータが学習される。この結果、可読性が低いシステム要約を生成するモデルが学習されてしまうことがある。
このようなモデル学習の失敗事例を図7A~図7Dを用いて説明する。図7Aは、参照要約の一例を示す図である。図7B~図7Dは、システム要約の一例を示す図である。ここでは、一例として、モデルの学習の際に、図3に示す入力文30及び図7Aに示す参照要約70のペアが学習サンプルとして入力される事例を例に挙げる。このとき、RNNエンコーダ及びRNNデコーダが接続されたモデルによって入力文30から図7B~図7Dに示すROUGE値が同一であるシステム要約70B~70Dが生成される場合、次のような評価が行われる。
すなわち、図7Aに示す参照要約70及び図7Bに示すシステム要約70Bの間では、語順が一致し、かつ単語の集合も一致する。このように参照要約70及びシステム要約70Bの間で単語の集合が一致するので、損失は「0」となる。また、図7Aに示す参照要約70及び図7Cに示すシステム要約70Cの間では、語順は異なるが、単語の集合が一致する。このように参照要約70及びシステム要約70Cの間で単語の集合が一致するので、損失は「0」となる。また、図7Aに示す参照要約70及び図7Dに示すシステム要約70Dの間でも、語順は異なるが、単語の集合が一致する。このように参照要約70及びシステム要約70Dの間で単語の集合が一致するので、損失は「0」となる。このように、ROUGE値が同一であるシステム要約70B~システム要約70Dの間では、同一の評価がなされることになる。
しかしながら、システム要約70Dには、システム要約70Bやシステム要約70Cでは見られない非文法的な表現が含まれる。例えば、システム要約70Bやシステム要約70Cに示された「・・・チャットで・・・」のように、「チャット」には格助詞の「で」が用いられるのが正しい用法である。それにもかかわらず、システム要約70Dに示された「・・・チャットが・・・」では、「チャット」に格助詞の「が」が用いられており、文法的に誤りがある。さらに、文法的な誤りが一因となって、システム要約70Dでは、「チャットが」の修飾部が「自動応答する」の被修飾部を修飾する誤った係り受けとなっている。
このように、現状のMRTでは、ROUGE値が同一のレベルであれば、非文法的な表現が含まれないシステム要約70Bやシステム要約70Cと、非文法的な表現や誤った係り受けが含まれるシステム要約70Dとの間で同一の評価がなされることになる。すなわち、モデル学習時にシステム要約の中に非文法的な表現を含むシステム要約70Dが含まれる場合、システム要約70DのROUGE値の負の利得がシステム要約70Bやシステム要約70CのROUGE値の負の利得と同程度に作用する。このように、非文法的な表現を含むシステム要約70DのROUGE値の負の利得が過剰に作用する損失に基づいてモデルが更新される結果、可読性が低い要約文を生成するモデルが学習されてしまう場合がある。
[課題解決のアプローチの一側面]
そこで、本実施例に係る学習装置1は、正解の参照要約に含まれる単語の語順を入れ替えて非文法的な表現が擬似的に再現された擬似文を生成し、モデルが擬似文を生成する確率よりもモデルが参照要約を生成する確率が高くなるようにモデルのパラメータを更新する。
図8は、モデルのパラメータの更新方法の一例を示す図である。図8に示すように、RNNエンコーダ及びRNNデコーダのモデル学習には、図5に示されたMRTと同様、入力文xおよび正解の参照要約yのペアが学習サンプルとして用いられる。
これら入力文xおよび正解の参照要約yのうち入力文xがモデルへ入力される。このように入力文xが入力された場合、学習装置1は、パラメータθを持つモデルのRNNデコーダが先頭からEOSまでの各時刻に出力する単語の確率分布に従って複数のシステム要約y′1~y′3をサンプリングする。
そして、学習装置1は、システム要約y′1~y′3ごとに、入力文xから当該システム要約y′が生成される生成確率と、参照要約yおよび当該システム要約y′の間の単語のn-gramの重複度を表すROUGE値とを算出する。その上で、学習装置1は、システム要約y′1~y′3の生成確率およびROUGE値から上記の式(1)に従って損失LMRT(θ)を算出する。
このように、本実施例においても、システム要約y′の生成確率およびROUGE値から損失LMRT(θ)が算出されるまでの過程は上記のMRTと共通するが、損失LMRT(θ)そのものを損失として用いる訳ではない。
すなわち、本実施例では、上記のMRTから改良された損失を定義する点が異なる。例えば、本実施例では、システム要約y′の生成確率およびROUGE値に基づく損失LMRT(θ)の項と共に非文法的な表現を含む擬似文zにペナルティを与える損失Lorder(θ)の項が加えられた損失L(θ)を下記の式(2)の通りに定義する。なお、下記の式(2)における「α」は、重み付けの係数であり、例えば、0~1の任意の値を採用できる。
ここで、上記の損失Lorder(θ)は、下記の式(3)により算出される。下記の式(3)における「D」は、入力文xおよび参照要約yを含む学習サンプルの集合である学習データを指す。また、下記の式(3)における「S′(y)」は、正解の参照要約yから生成される擬似文zの集合を指す。また、下記の式(3)における「p(z|x;θ)」は、モデルのパラメータをθとしたとき、入力文xから擬似文zが生成される確率を指す。また、下記の式(3)における「p(y|x;θ)」は、入力文xから正解の参照要約yが生成される確率を指す。
例えば、学習装置1は、正解の参照要約yから当該参照要約yに含まれる単語の語順を入れ替えることにより非文法的な表現が擬似的に再現された擬似文z1~z3の集合S′(y)を生成する。このとき、正解の参照要約yに含まれる単語の語数を変えずに、単語の語順を入れ替えて擬似文zのサンプリングを行うことで、参照要約yとの間で計算されるROUGE値が「1」となる擬似文zを生成することができる。なお、ここでは、説明の便宜上、3つの擬似文z1~z3がサンプリングされる例を挙げたが、任意の個数の擬似文zがサンプリングされることとしてかまわない。
さらに、学習装置1は、参照要約yが入力文xから生成される生成確率p(y|x;θ)を算出すると共に、擬似文zごとに当該擬似文zが入力文xから生成される生成確率p(z|x;θ)を算出する。例えば、図8の例で言えば、参照要約yの生成確率p(y|x;θ)は、「0.2」と算出される。また、擬似文z1の生成確率p(z1|x;θ)は、「0.3」と算出される。さらに、擬似文z2の生成確率p(z2|x;θ)は、「0.4」と算出される。また、擬似文z3の生成確率p(z3|x;θ)は、「0.1」と算出される。
このような生成確率の算出結果の下、損失Lorder(θ)の計算例について説明する。例えば、Σに定義された集合S′(y)のうち擬似文z1の場合、擬似文z1の生成確率(p(z1|x;θ)=0.3)と参照要約yの生成確率(p(y|x;θ)=0.2)とが比較される。この場合、擬似文z1の生成確率が参照要約yの生成確率よりも大きい。このため、上記の式(3)において、擬似文z1の生成確率および参照要約yの生成確率の差、すなわちp(z1|x;θ)-p(y|x;θ)=0.1は正となる。この結果、max関数によってp(z1|x;θ)-p(y|x;θ)=0.1が選択される。
また、擬似文z2の場合、擬似文z2の生成確率(p(z2|x;θ)=0.4)と参照要約yの生成確率(p(y|x;θ)=0.2)とが比較される。この場合、擬似文z2の生成確率が参照要約yの生成確率よりも大きい。このため、上記の式(3)において、擬似文z2の生成確率および参照要約yの生成確率の差、すなわちp(z2|x;θ)-p(y|x;θ)=0.2は正となる。この場合にも、max関数によってp(z2|x;θ)-p(y|x;θ)=0.2が選択される。
また、擬似文z3の場合、擬似文z3の生成確率(p(z3|x;θ)=0.1)と参照要約yの生成確率(p(y|x;θ)=0.2)とが比較される。この場合、擬似文z3の生成確率が参照要約yの生成確率よりも小さい。このため、上記の式(3)において、擬似文z3の生成確率および参照要約yの生成確率の差、すなわちp(z3|x;θ)-p(y|x;θ)=-0.1は負となる。この結果、max関数によって0が選択される。
これら擬似文z1~z3の要素ごとに算出された損失が合計されることにより、損失Lorder(θ)は、0.3(=0.1+0.2+0)と算出することができる。
このように、本実施例では、損失LMRT(θ)に加えて損失Lorder(θ)に基づいて損失L(θ)を算出することで、次のようなモデル学習を実現できる。例えば、損失LMRT(θ)の項によってROUGE値を向上させつつ、損失Lorder(θ)の項によって擬似文zの生成確率よりも参照要約yの生成確率が上回るようにモデルのパラメータを更新することができる。
このため、参照要約と単語の重複度は高く、かつ参照要約と語順が異なるシステム要約の生成確率を上げる作用を与えつつ、参照要約と単語の重複度が高い要約文の中でも非文法的な表現を含む擬似文の生成にペナルティを課す反作用を与えることができる。それ故、参照要約と単語の重複度が高い要約文の中でも非文法的な表現が含まれないシステム要約の生成確率を上げるパラメータの更新を実現できる。
したがって、本実施例に係る学習装置1によれば、可読性が低い要約文を生成するモデルが学習されるのを抑制することができる。
[学習装置1の機能的構成]
次に、本実施例に係る学習装置1の機能的構成の一例について説明する。図1に示すように、学習装置1は、学習データ記憶部2と、第1のモデル記憶部3と、第1の学習部5と、第2のモデル記憶部8と、第2の学習部10とを有する。なお、学習装置1は、図1に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
図1に示す第1の学習部5および第2の学習部10などの機能部は、あくまで例示として、下記のハードウェアプロセッサにより仮想的に実現される。このようなプロセッサの例として、DLU(Deep Learning Unit)やGPGPU(General-Purpose computing on Graphics Processing Units)の他、GPUクラスタなどが挙げられる。この他、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などであってもかまわない。例えば、プロセッサがRAM(Random Access Memory)等のメモリ上に上記学習プログラムをプロセスとして展開することにより、上記の機能部が仮想的に実現される。ここでは、プロセッサの一例として、DLUやGPGPU、GPUクラスタ、CPU、MPUを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによって実現されることを妨げない。
また、図1に示す学習データ記憶部2、第1のモデル記憶部3及び第2のモデル記憶部8などの機能部には、HDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などの記憶装置を採用できる。なお、記憶装置は、必ずしも補助記憶装置でなくともよく、各種の半導体メモリ素子、例えばRAM、EPPROMやフラッシュメモリなども採用できる。
ここで、図1には、第2の学習部10におけるモデルの学習速度を向上させる側面から、第1の学習部5にモデルのパラメータを学習する前処理を実行させてから前処理後のパラメータを用いて第2の学習部10に上記のモデル学習を実行させる場合を例示する。これはあくまで一例であり、必ずしも第1の学習部5による前処理が行われずともかまわない。例えば、第1の学習部5による前処理をスキップし、第2の学習部10に初期のパラメータを用いて上記のモデル学習を実行させることとしてもかまわない。以下では、第1の学習部5により実行される前処理となるモデル学習のことを「第1のモデル学習」と記載し、第2の学習部10により実行される上記のモデル学習のことを「第2のモデル学習」と記載する場合がある。
学習データ記憶部2は、学習データを記憶する記憶部である。ここで、学習データには、一例として、D個の学習サンプル、いわゆる学習事例が含まれる。さらに、学習サンプルには、入力文xおよび参照要約yのペアが含まれる。なお、図1には、あくまで一例として、第1の学習部5及び第2の学習部10に同一の学習データが用いられる場合を例示するが、第1の学習部5及び第2の学習部10の間で異なる学習データがモデル学習に用いられることとしてもかまわない。
第1のモデル記憶部3及び第2のモデル記憶部8は、いずれもモデルに関する情報を記憶する記憶部である。
一実施形態として、第1のモデル記憶部3及び第2のモデル記憶部8には、次のような情報が記憶される。例えば、RNNエンコーダ及びRNNデコーダが接続されたニューラルネットワークを形成する入力層、隠れ層及び出力層の各層のニューロンやシナプスなどのモデルの層構造を始め、各層の重みやバイアスなどのモデルのパラメータを含むモデル情報が記憶される。ここで、第1の学習部5によりモデル学習が実行される前の段階では、第1のモデル記憶部3には、モデルのパラメータとして、乱数により初期設定されたパラメータが記憶される。また、第1の学習部5によりモデル学習が実行された後の段階では、第1のモデル記憶部3には、第1の学習部5により学習されたモデルのパラメータが保存される。また、第2の学習部10によりモデル学習が実行された後の段階では、第2のモデル記憶部8には、第2の学習部10により学習されたモデルのパラメータが保存される。
第1の学習部5は、上記の前処理となる第1のモデル学習を実行する処理部である。ここでは、第1のモデル学習の一例として、対数尤度の最適化と呼ばれるモデル学習が実行される場合を例示する。
第1の学習部5は、図1に示すように、入力制御部5Iと、モデル実行部6と、更新部7とを有する。
入力制御部5Iは、モデルに対する入力を制御する処理部である。
一実施形態として、入力制御部5Iは、学習データに含まれる学習サンプルごとに、RNNエンコーダおよびRNNデコーダが接続されたニューラルネットワークのモデルに対するデータの入力制御を行う。
具体的には、入力制御部5Iは、学習サンプルをカウントするループカウンタdの値を初期化する。続いて、入力制御部5Iは、学習データ記憶部2に記憶されたD個の学習サンプルのうちループカウンタdに対応する学習サンプルを取得する。その後、入力制御部5Iは、ループカウンタdをインクリメントし、ループカウンタdの値が学習サンプルの総数Dと等しくなるまで、学習データ記憶部2から学習サンプルを取得する処理を繰り返し実行する。なお、ここでは、学習装置1内部のストレージに保存された学習データを取得する例を挙げたが、ネットワークを介して接続される外部のコンピュータ、例えばファイルサーバの他、リムーバブルメディア等から学習データが取得されることとしてもかまわない。
このように学習サンプルが取得される度に、入力制御部5Iは、当該学習サンプルに含まれる入力文xをRNNエンコーダ6Aへ入力する。これによって、入力文xの単語列がベクトル化されたベクトル、いわゆる中間表現がRNNエンコーダ6AからRNNデコーダ6Bへ出力される。これと同時または前後して、入力制御部5Iは、RNNデコーダ6Bに文末記号と呼ばれるEOSを出力させるまでの残り文字数を保持するレジスタの値を所定の上限文字数、例えばユーザ入力やユーザ設定などの値に初期化する。これ以降のRNNデコーダ6Bへの入力、RNNデータからの出力、それを用いたモデルのパラメータの更新についてはその詳細を後述する。
モデル実行部6は、RNNエンコーダ6AおよびRNNデコーダ6Bが接続されたニューラルネットワークのモデルを実行する処理部である。
1つの側面として、モデル実行部6は、第1のモデル記憶部3に記憶されたモデル情報にしたがって、入力制御部5Iにより入力された学習サンプルの入力文の単語数Mに対応するM個のLSTM(Long Short-Term Memory)をワークエリア上に展開する。これによって、M個のLSTMをRNNエンコーダ6Aとして機能させる。このRNNエンコーダ6Aでは、入力制御部5Iによる入力制御にしたがって、学習サンプルの入力文の先頭の単語から順に、入力文の先頭からm番目の単語が当該m番目の単語に対応するLSTMへ入力されると共に、m-1番目の単語に対応するLSTMの出力がm番目の単語に対応するLSTMへ入力される。このような入力を先頭の単語に対応するLSTMから末尾であるM番目の単語に対応するLSTMまで繰り返すことにより、学習サンプルの入力文のベクトル、いわゆる中間表現が得られる。このようにRNNエンコーダ6Aにより生成された入力文の中間表現がRNNデコーダ6Bへ入力される。
更なる側面として、モデル実行部6は、第1のモデル記憶部3に記憶されたモデル情報にしたがって、入力制御部5Iにより入力された正解の参照要約の単語数Nに対応するN個のLSTMをワークエリア上に展開する。これによって、N個のLSTMをRNNデコーダ6Bとして機能させる。これらRNNデコーダ6Bには、入力制御部5Iの入力制御にしたがって、RNNエンコーダ6Aから学習サンプルの入力文の中間表現が入力されると共に、N個のLSTMごとに入力制御部5IからEOSのタグを出力させるまでの残り文字数が入力される。これらの入力にしたがってN個のLSTMを動作させることにより、RNNデコーダ6Bは、N個のLSMTごとに単語の確率分布を出力する。ここで言う「単語の確率分布」とは、学習サンプル全体で入力文に出現する単語ごとに算出された確率の分布を指す。
更新部7は、モデルのパラメータを更新する処理部である。
一実施形態として、更新部7は、RNNデコーダ6Bのn番目のLSTMから単語の確率分布が出力された場合、当該確率分布で確率が最大である単語をシステム要約の先頭からn番目の単語として生成する。その後、更新部7は、システム要約のn番目の単語が生成された場合、正解の参照要約に含まれる単語のうちn番目の単語と、システム要約として生成されたn番目の単語とから損失を算出する。このように、RNNデコーダ6BのN個のLSTMごとに損失が算出される。その上で、更新部7は、各LSTMの損失に基づいて対数尤度の最適化を実行することにより、RNNエンコーダ6AおよびRNNデコーダ6Bのモデルを更新するパラメータを算出する。そして、更新部7は、第1のモデル記憶部3に記憶されたモデルのパラメータを対数尤度の最適化により求められたパラメータに更新する。このパラメータの更新は、全ての学習サンプルにわたって繰り返し実行すると共に、学習データDについても所定のエポック数にわたって繰り返し実行することができる。
これら入力制御部5I、モデル実行部6及び更新部7の処理内容を図9~図11を用いて説明する。図9~図11は、第1のモデル学習の一例を示す図である。図9~図11には、入力制御部5Iにより図3に示す入力文30および図7Aに示す参照要約70のペアが学習サンプルとして取得される場合が示されている。
図9に示すように、モデル実行部6は、入力制御部5Iにより取得された入力文30に含まれる単語列をベクトル化する。すなわち、モデル実行部6は、モデル実行部6が使用するワークエリアに入力文30の単語数Mに対応するM個のLSTM6a-1~6a-Mを展開する。これによって、M個のLSTM6a-1~6a-MをRNNエンコーダ6Aとして機能させる。その上で、入力制御部5Iは、入力文30に含まれる先頭の単語から順に入力文30の単語を当該単語の位置に対応するLSTM6aに入力すると共に1つ前のLSTM6aの出力を入力する。このような入力を先頭の単語「当社」に対応するLSTM6a-1から末尾の単語「。」に対応するLSTM6a-Mまで繰り返すことにより、入力文30のベクトルが得られる。このようにRNNエンコーダ6Aにより生成された入力文30のベクトルがRNNデコーダ6Bへ入力される。
その後、モデル実行部6は、入力文30のベクトル、1時刻前の正解の単語及びRNNデコーダ6Bが文末記号と呼ばれるEOSを出力するまでの残り文字数などを入力とし、EOSを出力するまで時刻ごとに単語の確率分布を繰り返し計算する。
例えば、参照要約70の先頭の単語と照合する単語の確率分布を計算する1時刻目には、図9に示す動作が行われる。すなわち、図9に示すように、入力制御部5Iは、モデル実行部6が使用するワークエリアに展開されたLSTM6b-1に対し、LSTM6a-Mの出力およびBOS(Begin Of Sentence)と呼ばれる文頭記号を入力すると共に参照要約70の文字数「37」を残り文字数として入力する。これにより、LSTM6b-1により1時刻目(t=1)における単語の確率分布が出力される。この結果、更新部7は、1時刻目における単語の確率分布と1時刻目の正解の単語「コールセンター」とから損失を算出する。この場合、1時刻目の正解の単語「コールセンター」の確率が1に近く、かつその他の単語の確率が0に近いほど小さい損失が算出される。
また、参照要約70の先頭から2番目の単語と照合する単語の確率分布を計算する2時刻目には、図10に示す動作が行われる。すなわち、図10に示すように、入力制御部5Iは、LSTM6b-2に対し、LSTM6b-1の出力および1時刻前の正解の単語「コールセンター」を入力すると共に1時刻目の残り文字数から1時刻目の正解の単語の字数が減算された字数「30」を2時刻目の残り文字数として入力する。これにより、LSTM6b-2により2時刻目(t=2)における単語の確率分布が出力される。この結果、更新部7は、2時刻目における単語の確率分布と2時刻目の正解の単語「の」とから損失を算出する。この場合、2時刻目の正解の単語「の」の確率が1に近く、かつその他の単語の確率が0に近いほど小さい損失が算出される。
さらに、参照要約70の先頭から3番目の単語と照合する単語の確率分布を計算する3時刻目には、図11に示す動作が行われる。すなわち、図11に示すように、入力制御部5Iは、LSTM6b-3に対し、LSTM6b-2の出力および1時刻前の正解の単語「の」を入力すると共に2時刻目の残り文字数から2時刻目の正解の単語の字数が減算された字数「29」を3時刻目の残り文字数として入力する。これにより、LSTM6b-3により3時刻目(t=3)における単語の確率分布が出力される。この結果、更新部7は、3時刻目における単語の確率分布と3時刻目の正解の単語「問い合わせ」とから損失を算出する。この場合、3時刻目の正解の単語「問い合わせ」の確率が1に近く、かつその他の単語の確率が0に近いほど小さい損失が算出される。
このような処理をLSTM6bから文末記号「EOS」が出力されるまで繰り返し実行されることにより、更新部7は、参照要約70の単語ごとに損失を算出する。さらに、学習データに含まれる全ての学習サンプルについて参照要約の単語ごとに損失を算出する処理が実行される。このように学習データに含まれる全ての学習サンプルについて参照要約の単語ごとの損失が算出されると、更新部7は、下記の式(4)に示す目的関数Ltをパラメータθについて最大化する「対数尤度の最適化」を第1のモデル学習として実行する。ここで、下記の式(4)における確率「p(y|x;θ)」は、下記の式(5)に示す通り、各時刻における損失の総積によって求まる。なお、下記の式(4)における「D」は、入力文xおよび参照要約yを含む学習サンプルの集合を指す。また、下記の式(5)における「y<t」の「t」は、参照要約における単語の位置を指し、例えば、参照要約の先頭の単語はy1で表され,2番目の単語はy2で表され,・・・,末尾の単語はyt-1で表される。
その後、更新部7は、第1のモデル記憶部3に記憶されたモデルのパラメータを対数尤度の最適化により求められたパラメータθに更新する。このパラメータθの更新は、学習データDについて所定の回数にわたって繰り返すことができる。このように第1のモデル記憶部3に保存されたモデルのパラメータが第2の学習部10により用いられることになる。
図1の説明に戻り、第2の学習部10は、上記の第2のモデル学習を実行する処理部である。図1に示すように、第2の学習部10は、入力制御部10Iと、モデル実行部11と、要約生成部12と、第1の確率算出部13と、重複度算出部14と、第1の損失算出部15と、擬似文生成部16と、第2の確率算出部17と、第2の損失算出部18と、更新部19とを有する。
入力制御部10Iは、モデルに対する入力を制御する処理部である。
一実施形態として、入力制御部10Iは、学習データに含まれる学習サンプルごとに、RNNエンコーダ11AおよびRNNデコーダ11Bが接続されたニューラルネットワークのモデルに対するデータの入力制御を行う。
具体的には、入力制御部10Iは、学習サンプルをカウントするループカウンタdの値を初期化する。続いて、入力制御部10Iは、学習データ記憶部2に記憶されたD個の学習サンプルのうちループカウンタdに対応する学習サンプルを取得する。その後、入力制御部10Iは、ループカウンタdをインクリメントし、ループカウンタdの値が学習サンプルの総数Dと等しくなるまで、学習データ記憶部2から学習サンプルを取得する処理を繰り返し実行する。なお、ここでは、学習装置1内部のストレージに保存された学習データを取得する例を挙げたが、ネットワークを介して接続される外部のコンピュータ、例えばファイルサーバの他、リムーバブルメディア等から学習データが取得されることとしてもかまわない。
このように学習サンプルが取得される度に、入力制御部10Iは、当該学習サンプルに含まれる入力文xをRNNエンコーダ11Aへ入力する。これによって、入力文xの単語列がベクトル化されたベクトル、いわゆる中間表現がRNNエンコーダ11AからRNNデコーダ11Bへ出力される。これと同時または前後して、入力制御部10Iは、RNNデコーダ11Bに文末記号と呼ばれるEOSを出力させるまでの残り文字数を保持するレジスタの値を所定の上限文字数、例えばユーザ入力やユーザ設定などの値に初期化する。これ以降のRNNデコーダ11Bへの入力、RNNデータからの出力、それを用いたモデルのパラメータの更新についてはその詳細を後述する。
モデル実行部11は、RNNエンコーダ11AおよびRNNデコーダ11Bが接続されたニューラルネットワークのモデルを実行する処理部である。
1つの側面として、モデル実行部11は、第1のモデル記憶部3に記憶されたモデル情報にしたがって、入力制御部10Iにより入力された学習サンプルの入力文の単語数Mに対応するM個のLSTMをワークエリア上に展開する。これによって、M個のLSTMをRNNエンコーダ11Aとして機能させる。このRNNエンコーダ11Aでは、入力制御部10Iによる入力制御にしたがって、学習サンプルの入力文の先頭の単語から順に、入力文の先頭からm番目の単語が当該m番目の単語に対応するLSTMへ入力されると共に、m-1番目の単語に対応するLSTMの出力がm番目の単語に対応するLSTMへ入力される。このような入力を先頭の単語に対応するLSTMから末尾であるM番目の単語に対応するLSTMまで繰り返すことにより、学習サンプルの入力文のベクトル、いわゆる中間表現が得られる。このようにRNNエンコーダ11Aにより生成された入力文の中間表現がRNNデコーダ11Bへ入力される。
更なる側面として、モデル実行部11は、第1のモデル記憶部3に記憶されたモデル情報にしたがって、文末記号「EOS」が出力されるまで各時刻に対応するK個のLSTMをワークエリア上に展開する。これによって、K個のLSTMをRNNデコーダ11Bとして機能させる。これらRNNデコーダ11Bには、入力制御部10Iの入力制御にしたがって、RNNエンコーダ11Aから学習サンプルの入力文の中間表現が入力されると共に、K個のLSTMごとに入力制御部10IからEOSのタグを出力させるまでの残り文字数が入力される。これらの入力にしたがってK個のLSTMを動作させることにより、RNNデコーダ11Bは、K個のLSMTごとに単語の確率分布を出力する。
これら入力制御部10I及びモデル実行部11の他、第2の学習部10は、更新部19がモデルのパラメータの更新に用いる損失L(θ)を算出する側面から、上記の損失LMRT(θ)を第1の損失として算出する第1の系統と、上記の損失Lorder(θ)を第2の損失として算出する第2の系統とに分類することができる。
このうち、第1の系統には、システム要約を生成する要約生成部12と、システム要約の生成確率を算出する第1の確率算出部13と、システム要約および参照要約の重複度を算出する重複度算出部14と、上記の第1の損失を算出する第1の損失算出部15とが含まれる。
以下、図12を用いて、第2のモデル学習の第1の系統における処理内容について説明する。図12は、第1の系統におけるモデルへの入出力の一例を示す図である。図12には、入力制御部10Iにより図3に示す入力文30および図7Aに示す参照要約70のペアが学習サンプルとして取得される場合が示されている。
図12に示すように、モデル実行部11は、上記のモデル実行部6と同様、入力制御部10Iにより取得された入力文30に含まれる単語列をベクトル化する。すなわち、モデル実行部11は、モデル実行部11が使用するワークエリアに入力文30の単語数Mに対応するM個のLSTM11a-1~11a-Mを展開する。これらM個のLSTM11a-1~11a-nをRNNエンコーダ11Aとして機能させる。その上で、入力制御部10Iは、入力文30に含まれる先頭の単語から順に入力文30の単語を当該単語の位置に対応するLSTM11aに入力すると共に1つ前のLSTM11aの出力を入力する。このような入力を先頭の単語「当社」に対応するLSTM11a-1から末尾の単語「。」に対応するLSTM11a-Mまで繰り返すことにより、入力文30のベクトルが得られる。このようにRNNエンコーダ11Aにより生成された入力文30のベクトルがRNNデコーダ11Bへ入力される。
その後、モデル実行部11は、入力文30のベクトル、1時刻前に予測された単語及びRNNデコーダ11BがEOSを出力するまでの残り文字数などを入力とし、EOSを出力するまで時刻ごとに単語の確率分布を繰り返し計算する。
ここで、第2のモデル学習では、第1のモデル学習とは異なり、RNNデコーダ11Bの各時刻に1時刻前の正解の単語ではなく、1時刻前に生成された単語が入力制御部10Iにより入力される。さらに、第2のモデル学習では、参照要約に対するシステム要約の損失は、第1のモデル学習のように、RNNデコーダ6Bの各時刻ごとに算出されない。すなわち、第2のモデル学習では、図12に示すように、EOSのタグが出力されるまで各時刻に対応するLSTM11bから単語の確率分布に基づいて単語を繰り返して出力させることによりシステム要約が生成された後にシステム要約の損失が算出される。
例えば、システム要約の先頭の単語を予測する1時刻目には、入力制御部10Iは、モデル実行部11が使用するワークエリアに展開されたLSTM11b-1に対し、LSTM11a-Mの出力および文頭記号「BOS」と共に参照要約70の文字数「37」を残り文字数として入力する。ここでは、上限文字数の一例として、参照要約の文字数を採用する場合を例示したが、参照要約の文字数よりも短い文字数に制限してもよいし、参照要約の文字数よりも長い文字数に制限することもできる。これにより、LSTM11b-1によって1時刻目(t=1)における単語の確率分布が出力される。この単語の確率分布に基づいて、要約生成部12は、システム要約の先頭の単語を抽出する。例えば、要約生成部12は、単語の確率分布に従って抽選を実行し、抽選により当選した単語を抽出することができる。この他、要約生成部12は、確率が上位所定数、例えば上位5位までに属する単語の中から1つの単語をランダムにサンプリングする。ここで、図12に示す例では、あくまで一例として、システム要約の先頭の単語として「コールセンター」がランダムサンプリングされた場合を例に挙げて2時刻目以降の処理について説明する。
続いて、システム要約の先頭から2番目の単語を予測する2時刻目には、入力制御部10Iは、LSTM11b-2に対し、LSTM11b-1の出力および1時刻前の予測結果「コールセンター」と共に1時刻目の残り文字数から1時刻目に予測された単語の字数が減算された字数「30」を2時刻目の残り文字数として入力する。これにより、LSTM11b-2によって2時刻目(t=2)における単語の確率分布が出力される。この単語の確率分布に基づいて単語の抽選を実行することにより、要約生成部12は、抽選で当選した単語をサンプリングする。
その後、要約生成部12は、は、LSTM11b-KによりEOSが出力されるまで、システム要約の単語を時刻ごとにサンプリングする。このようなサンプリングによりシステム要約を生成することで、要約生成部12は、1つの入力文につき所定数、例えばS個のシステム要約y′を生成することができる。このようにS個のシステム要約が生成された場合、第1の確率算出部13は、S個のシステム要約y′ごとに当該システム要約y′の各時刻で生成された単語の確率に基づいて入力文xからシステム要約y′が生成される生成確率p(y′|x,θ)を算出する。
ここで、第2のモデル学習では、第1の損失LMRT(θ)は、上記の式(1)にしたがって算出される。すなわち、第1の損失LMRT(θ)は、第1の確率算出部13により算出されるシステム要約の生成確率に加えて、後述の重複度算出部14により算出されるシステム要約および参照要約の間の単語の重複度に基づいて算出される。
このように第1の損失の算出に用いられる重複度Δ(y′,y)は、図12に示すように、必ずしもシステム要約に含まれる全ての単語を用いて算出されるとは限らない。すなわち、重複度算出部14は、要約生成部12により生成されるS個のシステム要約ごとに、当該システム要約のうち上限文字数、例えば参照要約の文字数以内の文を対象に参照要約との間で単語の重複度を算出する。これによって、システム要約のうち上限文字数を超える部分の単語、すなわち図12に示すハッチング部分を重複度の算出対象から除外することができる。
例えば、重複度算出部14は、下記の式(6)に示すように、システム要約の文字列の先頭から上限文字数に対応するnバイト分の文字列に対応する単語を切り取るtrim関数を含むROUGE関数にしたがってn-gramの重複度を算出できる。
図13は、重複度の算出方法の一例を示す図である。図13には、上記の式(6)にしたがって重複度Δ(y′,y)が算出される例が示されている。図13に示すように、システム要約y′には、先頭の単語y′1、先頭から2番目の単語y′2、・・・、先頭からk-1番目の単語y′k-1、先頭からk番目の単語y′k、・・・、末尾の単語y′|y′|が含まれる。一方、参照要約yには、先頭の単語y1、先頭から2番目の単語y2、・・・、末尾の単語y|y|が含まれる。この場合、trim(y′,byte(y))によってシステム要約y′から参照要約yに対応するバイト数の単語、すなわち先頭の単語y′1、先頭から2番目の単語y′2、・・・、先頭からk-1番目の単語y′k-1が切り取られる。その上で、ROUGE(trim(y′,byte(y)),y)により、システム要約y′の先頭の単語y′1からk-1番目の単語y′k-1まで切り出されたtrim(y′,byte(y))と、参照要約yとの単語の重複度が算出される。このように上記の式(6)にしたがって重複度Δ(y′,y)を算出することで、上限文字数を超えるシステム要約y′のk番目から末尾までの単語、すなわち単語y′k~単語y′|y′|を重複率の算出対象から除外できる。この結果、上限文字数を超えるシステム要約y′のk番目から末尾までの単語、すなわち単語y′k~単語y′|y′|に参照要約yと重複する単語が含まれることが一因となって、システム要約y′が過大評価されるのを抑制できる。
このように重複度の算出対象をシステム要約の上限文字数内の単語に抑えることに加え、下記の式(7)に示す通り、重複度算出部14は、システム要約の上限文字数に足りない分の長さ、もしくは、システム要約の上限文字数を超える分の長さを、重複度にペナルティとして付与する誤差として、算出することもできる。なお、下記の式(7)に示す「C」は、上記の学習プログラムの開発者やユーザにより設定されるハイパーパラメータを指す。
図14は、誤差付きの重複度の算出方法の一例を示す図である。図14には、上記の式(7)にしたがって誤差付きの重複度Δ(y′,y)が算出される例が示されている。図14に示す例においても、図13に示す例と同様に、ROUGE(trim(y′,byte(y)),y)により、システム要約y′の先頭の単語y′1からk-1番目の単語y′k-1まで切り出されたtrim(y′,byte(y))と、参照要約yとの単語の重複度が算出される。さらに、上記の式(7)に従えば、システム要約および参照要約の間の長さの差の絶対値、例えば|byte(y′)-byte(y)|が誤差として重複度に付与される。たとえば、図14の例で言えば、システム要約の長さの方が参照要約よりも大きいので、上限文字数を超える分の長さbyte(y′)-byte(y)が重複度に加算されることにより、誤差付きの重複度Δ(y′,y)が算出される。このように上記の式(7)にしたがってROUGEにより算出される重複度に誤差|byte(y′)-byte(y)|を付与して誤差付きの重複度Δ(y′,y)を算出する。これによって、上限文字数に満たないシステム要約および上限文字数を超えるシステム要約の損失が高まる結果、文字数が上限文字数と一致するシステム要約の評価を高めるモデル学習を実現できる。
また、重複度算出部14は、必ずしも上限文字数に満たないシステム要約にまで重複度に付与する誤差を算出せずともかまわない。例えば、重複度算出部14は、下記の式(8)にしたがって、システム要約が上限文字数を超える場合に絞ってシステム要約の上限文字数を超える分の長さを誤差として算出することもできる。
図15は、誤差付きの重複度の算出方法の一例を示す図である。図15には、上記の式(8)にしたがって誤差付きの重複度Δ(y′,y)が算出される例が示されている。図15に示す例においても、図13に示す例と同様に、ROUGE(trim(y′,byte(y)),y)により、システム要約y′の先頭の単語y′1からk-1番目の単語y′k-1まで切り出されたtrim(y′,byte(y))と、参照要約yとの単語の重複度が算出される。さらに、システム要約が上限文字数を超える場合、max(0,byte(y′)-byte(y))によって上限文字数を超える分の長さbyte(y′)-byte(y)が重複度に加算されることにより、誤差付きの重複度Δ(y′,y)が算出される。一方、システム要約が上限文字数に満たない場合、max(0,byte(y′)-byte(y))によって「0」が選択されるので、重複度には誤差が付与されず、重複度がそのままΔ(y′,y)として算出される。これによって、上限文字数に満たないシステム要約の損失は高めずに上限文字数を超えるシステム要約の損失が高まる結果、上限文字数以内のシステム要約の評価を高めるモデル学習が実現できる。
このような誤差付きの重複度Δ(y′,y)が算出された後、第1の損失算出部15は、要約生成部12により生成された所定数、例えばS個のシステム要約ごとに、当該システム要約が入力文から生成される生成確率の計算結果と、重複度算出部14により算出された誤差付きの重複度Δ(y′,y)とから第1の損失を算出する。さらに、第1の損失算出部15は、S個のシステム要約ごとに算出され第1の損失を合計する計算を実行することにより、S個のシステム要約y′の集合S(x,θ)に関する第1の損失の和を算出する。
図1の説明に戻り、第2の系統には、擬似文を生成する擬似文生成部16と、参照要約の生成確率および擬似文の生成確率を算出する第2の確率算出部17と、上記の第2の損失を算出する第2の損失算出部18とが含まれる。
例えば、擬似文生成部16は、正解の参照要約yから当該参照要約yに含まれる単語の語順を入れ替えることにより非文法的な表現が擬似的に再現された擬似文zの集合S′(y)を生成する。このとき、擬似文生成部16は、正解の参照要約yに含まれる単語の語数を変えずに、単語の語順を入れ替えて擬似文zのサンプリングを行うことで、参照要約yとの間で計算されるROUGE値が「1」となる擬似文zを生成することができる。
ここで、第2の損失が算出される場合、RNNエンコーダ11Aの構成、RNNエンコーダ11Aへの入力およびRNNエンコーダ11Aからの出力は、第1の損失が算出される場合と相違点はない。その一方で、第2の損失が算出される場合、RNNエンコーダ11Aの構成、RNNエンコーダ11Aへの入力およびRNNエンコーダ11Aからの出力は、第1の損失が算出される場合と異なる。
例えば、第2の損失の算出に用いる擬似文zの生成確率が算出される場合、モデル実行部11は、第1のモデル記憶部3に記憶されたモデル情報にしたがって、入力制御部10Iにより入力される擬似文zの単語数Jに対応するJ個のLSTMをワークエリア上に展開する。これによって、J個のLSTMをRNNデコーダ11Bとして機能させる。これらRNNデコーダ11Bには、入力制御部10Iの入力制御にしたがって、RNNエンコーダ11Aから学習サンプルの入力文xの中間表現が入力されると共に、J個のLSTMごとに入力制御部10IからEOSのタグを出力させるまでの残り文字数が入力される。さらに、RNNデコーダ11BのJ個のLSTMには、入力制御部10Iの入力制御にしたがって、1時刻前の擬似文zの単語が入力される。これらの入力にしたがってJ個のLSTMを動作させることにより、RNNデコーダ11Bは、J個のLSMTごとに擬似文zの各時刻における単語の確率を出力する。このようにRNNデコーダ11Bの各LSMTが出力する擬似文zの各時刻における単語の確率に基づいて、第2の確率算出部17は、入力文xから擬似文zが生成される生成確率p(z|x;θ)を算出する。
以下、図16を用いて、第2のモデル学習の第2の系統における処理内容について説明する。図16は、第2の系統におけるモデルへの入出力の一例を示す図である。図16には、入力制御部10Iにより図3に示す入力文30がRNNエンコーダ11Aへ入力されると共に、図7Dに示すシステム要約と同一の文である擬似文zの各時刻の単語がRNNデコーダ11Bへ入力される例が示されている。なお、RNNエンコーダ11Aの構成、RNNエンコーダ11Aへの入力およびRNNエンコーダ11Aからの出力は、図12に示す例と変わりがないので、RNNデコーダ11Bの説明から開始する。
図16に示すように、モデル実行部11は、入力文30のベクトル、擬似文zの各時刻における単語及びRNNデコーダ11BがEOSを出力するまでの残り文字数などを入力とし、EOSを出力するまで時刻ごとに単語の確率分布を繰り返し計算する。
ここで、擬似文zの生成確率が算出される場合、システム要約が生成される場合と異なり、RNNデコーダ11Bの各時刻のLSTM11bに1時刻前に生成された単語ではなく、擬似文zに含まれる単語のうち1時刻前の擬似文zの単語が入力制御部10Iにより入力される。
例えば、1時刻目には、入力制御部10Iは、モデル実行部11が使用するワークエリアに展開されたLSTM11b-1に対し、LSTM11a-Mの出力および文頭記号「BOS」と共に参照要約70の文字数「37」を残り文字数として入力する。ここでは、上限文字数の一例として、参照要約の文字数を採用する場合を例示したが、参照要約の文字数よりも短い文字数に制限してもよいし、参照要約の文字数よりも長い文字数に制限することもできる。これにより、LSTM11b-1によって1時刻目(t=1)における単語の確率分布が出力される。このとき、第2の確率算出部17は、1時刻目における単語の確率分布のうち擬似文zの先頭の単語「AI」に対応する確率を図示しないワークエリアに保存する。
続いて、2時刻目には、入力制御部10Iは、LSTM11b-2に対し、LSTM11b-1の出力および1時刻前の擬似文zの単語「AI」と共に1時刻目の残り文字数から1時刻目の擬似文zの単語「AI」の字数が減算された字数「35」を2時刻目の残り文字数として入力する。これにより、LSTM11b-2によって2時刻目(t=2)における単語の確率分布が出力される。このとき、第2の確率算出部17は、2時刻目における単語の確率分布のうち擬似文zの先頭から2番目の単語「の」に対応する確率を図示しないワークエリアに保存する。
このようなRNNデコーダ11Bへの入力がJ-2時刻目まで繰り返された後、J-1時刻目には、入力制御部10Iは、LSTM11b-J-1に対し、LSTM11b-J-2の出力および1時刻前の擬似文zの単語「販売」と共に1時刻目の残り文字数からJ-2時刻目の擬似文zの単語「販売」の字数が減算された字数「5」をJ-1時刻目の残り文字数として入力する。これにより、LSTM11b-J-1によってJ-1時刻目(t=J-1)における単語の確率分布が出力される。このとき、第2の確率算出部17は、J-1時刻目における単語の確率分布のうち擬似文zの先頭からJ-1番目の単語「問い合わせ」に対応する確率を図示しないワークエリアに保存する。
最後に、J時刻目には、入力制御部10Iは、LSTM11b-Jに対し、LSTM11b-J-1の出力および1時刻前の擬似文zの単語「問い合わせ」と共に1時刻目の残り文字数からJ-1時刻目の擬似文zの単語「問い合わせ」の字数が減算された字数「0」をJ時刻目の残り文字数として入力する。これにより、LSTM11b-JによってJ時刻目(t=J)における単語の確率分布が出力される。このとき、第2の確率算出部17は、J時刻目における単語の確率分布のうち擬似文zの先頭からJ番目の単語「EOS」に対応する確率を図示しないワークエリアに保存する。
このようにワークエリアに保存された擬似文zの各時刻における単語の確率に基づいて、第2の確率算出部17は、入力文xから擬似文zが生成される生成確率p(z|x;θ)を算出する。これによって、擬似文zごとに当該擬似文zの生成確率を求めることができる。
なお、第2の損失の算出に用いる参照要約yの生成確率が算出される場合も、擬似文zの生成確率を算出する場合と同様にして参照要約yの生成確率を算出することができる。すなわち、モデル実行部11は、第1のモデル記憶部3に記憶されたモデル情報にしたがって、入力制御部10Iにより入力される参照要約yの単語数Iに対応するI個のLSTMをワークエリア上に展開する。これによって、I個のLSTMをRNNデコーダ11Bとして機能させる。これらRNNデコーダ11Bには、入力制御部10Iの入力制御にしたがって、RNNエンコーダ11Aから学習サンプルの入力文xの中間表現が入力されると共に、I個のLSTMごとに入力制御部10IからEOSのタグを出力させるまでの残り文字数が入力される。さらに、RNNデコーダ11BのI個のLSTMには、入力制御部10Iの入力制御にしたがって、1時刻前の参照要約yの単語が入力される。これらの入力にしたがってI個のLSTMを動作させることにより、RNNデコーダ11Bは、I個のLSMTごとに参照要約yの各時刻における単語の確率を出力する。このようにRNNデコーダ11Bの各LSMTが出力する参照要約yの各時刻における単語の確率に基づいて、第2の確率算出部17は、入力文xから参照要約yが生成される生成確率p(y|x;θ)を算出する。
このように擬似文zの生成確率が算出された後、第2の損失算出部18は、擬似文zの生成確率および参照要約yの生成確率を比較する。このとき、擬似文zの生成確率が参照要約yの生成確率よりも大きい場合、第2の損失算出部18は、擬似文z1の生成確率および参照要約yの生成確率の差、すなわちp(z|x;θ)-p(y|x;θ)を第2の損失として算出する。一方、擬似文zの生成確率が参照要約yの生成確率よりも大きくない場合、第2の損失算出部18は、所定の設定値、例えばゼロ以上の値を第2の損失として算出する。その後、第2の損失算出部15は、擬似文zごとに算出され第2の損失を合計する計算を実行することにより、S′個の擬似文zの集合S′(y)に関する第2の損失の和を算出する。
以上のように、学習データに含まれる全ての学習サンプルについて、S個のシステム要約に対する第1の損失の和およびS′個の擬似文zに対する第2の損失の和を算出する処理が繰り返し実行される。このように学習データに含まれる全ての学習サンプルについて第1の損失の和および第2の損失の和が算出されると、更新部19は、上記の式(2)に示す目的関数L(θ)が最小化されるモデルのパラメータθにモデルのパラメータを更新する。このように更新されたモデルのパラメータが第2のモデル記憶部8へ保存される。このパラメータθの更新は、学習データDについて所定の回数にわたって繰り返すことができる。この結果、第2のモデル記憶部8に保存されたモデル情報は、要約文の生成モデルとして提供することができる。
[処理の流れ]
図17は、実施例1に係る学習処理の手順を示すフローチャートである。図17に示す学習処理のフローチャートは、第2の学習部10により実行される第2のモデル学習の手順が図式化されたものである。図17には、あくまで一例として、上記の式(8)にしたがって誤差付きの重複度が算出される例のフローチャートが示されている。例えば、第2の学習部10におけるモデルの学習速度を向上させる側面から、第1の学習部5による第1のモデル学習を前処理として実行させてから第1の学習部5により学習されたモデルのパラメータを用いて図17に示す学習処理を開始することができる。
図17に示すように、学習データに含まれるD個の学習サンプルごとに、ステップS101~ステップS103の処理が実行される。すなわち、入力制御部10Iは、学習データ記憶部2に記憶された学習データに含まれる学習サンプルのうち1つを取得する(ステップS101)。
このようにステップS101で取得された学習サンプルが第1の系統に入力されることにより、第1の損失算出処理が実行される(ステップS102)。
(1)第1の損失算出処理
図18は、実施例1に係る第1の損失算出処理の手順を示すフローチャートである。この処理は、上記のステップS102の処理に対応する。図18に示すように、要約生成部12は、RNNデコーダから出力される単語の確率分布に基づいて単語を時刻ごとにサンプリングすることにより、ステップS101で取得された学習サンプルの入力文xに対するS個のシステム要約y′を生成する(ステップS301)。そして、第1の確率算出部13は、ステップS301で生成されたS個のシステム要約y′の生成確率を算出する(ステップS302)。
その後、ステップS301で生成されたS個のシステム要約y′ごとに、下記のステップS303~下記のステップS306の処理が実行される。すなわち、重複度算出部14Eは、上記の式(8)に示すtrim(y′,byte(y))にしたがってシステム要約y′から上限文字数、例えば参照要約yに対応するバイト数の単語を切り出す(ステップS303)。
その上で、重複度算出部14は、上記の式(8)に示すROUGE(trim(y′,byte(y)),y)にしたがってステップS303で切り出されたtrim(y′,byte(y))と、参照要約yとの単語の重複度を算出する(ステップS304)。
また、重複度算出部14は、上記の式(8)に示すmax(0,byte(y′)-byte(y))にしたがってシステム要約y′が上限文字数を超える分の長さbyte(y′)-byte(y)を誤差として算出する(ステップS305)。なお、システム要約が上限文字数に満たない場合、max(0,byte(y′)-byte(y))によって「0」が選択されるので、重複度に付与する誤差は「0」と算出される。
これらステップS304で算出された重複度にステップS305で算出された誤差が付与されることにより、誤差付きの重複度Δ(y′,y)が導出される。
その後、第1の損失算出部15は、ステップS302で算出されたシステム要約y′に対する確率の計算結果と、誤差付きの重複度Δ(y′,y)とから第1の損失を算出する(ステップS306)。
ステップS301で生成されたS個のシステム要約y′ごとに第1の損失が算出されると、第1の損失算出部15は、S個のシステム要約ごとに算出された第1の損失を合計する計算を実行することにより、システム要約y′の集合S(x,θ)に対応する第1の損失の和を算出し(ステップS307)、図17に示されたステップS102の処理を終了する。
図17の説明に戻り、ステップS101で取得された学習サンプルが第2の系統に入力されることにより、第2の損失算出処理が実行される(ステップS103)。
(2)第2の損失算出処理
図19は、実施例1に係る第2の損失算出処理の手順を示すフローチャートである。この処理は、上記のステップS103の処理に対応する。図19に示すように、擬似文生成部16は、正解の参照要約yから当該参照要約yに含まれる単語の語順を入れ替えることにより非文法的な表現が擬似的に再現された擬似文zの集合S′(y)を生成する(ステップS501)。
その後、ステップS501で生成されたS′個の擬似文zごとに、下記のステップS502~下記のステップS505の処理が実行される。すなわち、第2の確率算出部17は、入力文xから擬似文zが生成される生成確率p(z|x;θ)を算出する(ステップS502)。その上で、第2の損失算出部18は、ステップS502で算出された擬似文zの生成確率および参照要約yの生成確率を比較する(ステップS503)。
ここで、擬似文zの生成確率が参照要約yの生成確率よりも大きい場合(ステップS503Yes)、第2の損失算出部18は、次のような処理を実行する。すなわち、第2の損失算出部18は、上記の式(3)にしたがって擬似文z1の生成確率および参照要約yの生成確率の差、すなわちp(z|x;θ)-p(y|x;θ)を第2の損失として算出する(ステップS504)。
一方、擬似文zの生成確率が参照要約yの生成確率よりも大きくない場合(ステップS503No)、第2の損失算出部18は、上記の式(3)にしたがって所定の設定値、例えばゼロ以上の値を第2の損失として算出する(ステップS505)。
その後、ステップS501で生成されたS′個の擬似文zごとに第2の損失が算出されると、第2の損失算出部18は、次のような処理を実行する。すなわち、第2の損失算出部18は、S′個の擬似文ごとに算出された第2の損失を合計する計算を実行することにより、擬似文zの集合S′(x,θ)に対応する第2の損失の和を算出し(ステップS506)、図17に示されたステップS103の処理を終了する。
その後、学習データに含まれる全ての学習サンプルについて、システム要約y′の集合S(x,θ)に対応する第1の損失の和と、擬似文zの集合S′(x,θ)に対応する第2の損失の和とが算出されると、更新部19は、第2のモデル記憶部8に記憶されるモデルのパラメータを上記の式(2)に示す目的関数L(θ)が最小化されるモデルのパラメータθに更新し(ステップS104)、処理を終了する。
[効果の一側面]
上述してきたように、本実施例に係る学習装置1は、正解の参照要約に含まれる単語の語順を入れ替えて非文法的な表現が擬似的に再現された擬似文を生成し、モデルが擬似文を生成する確率よりもモデルが参照要約を生成する確率が高くなるようにモデルのパラメータを更新する。このため、参照要約と単語の重複度は高く、かつ参照要約と語順が異なるシステム要約の生成確率を上げる作用を与えつつ、参照要約と単語の重複度が高い要約文の中でも非文法的な表現を含む擬似文の生成にペナルティを課す反作用を与えることができる。それ故、参照要約と単語の重複度が高い要約文の中でも非文法的な表現が含まれないシステム要約の生成確率を上げるパラメータの更新を実現できる。したがって、本実施例に係る学習装置1によれば、可読性が低い要約文を生成するモデルが学習されるのを抑制することができる。