以下に添付図面を参照して本願に係る学習プログラム、学習方法及び学習装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
図1は、実施例1に係る学習装置の機能的構成を示すブロック図である。図1に示す学習装置10は、Webサイトや新聞記事などの各種の文書から要約文を生成するモデルを学習するものである。
上記の背景技術の欄で説明した通り、学習サンプルの入力文に対応する正解の参照要約の単語ごとにモデルのパラメータの更新に用いる損失を算出する場合、参照要約と語順が異なるが文意は類似する要約文の評価が過小評価されることがある。
このようなモデル学習の失敗事例を図2及び図3A〜図3Cを用いて説明する。図2は、入力文の一例を示す図である。図3Aは、参照要約の一例を示す図である。図3B及び図3Cは、システム要約の一例を示す図である。以下では、学習サンプルに含まれる正解の要約文のことを「参照要約」と記載し、モデルが入力文から生成する要約文のことを「システム要約」と記載する場合がある。
ここでは、一例として、モデル学習の際に、図2に示す入力文20及び図3Aに示す参照要約30のペアが学習サンプルとして入力される事例を例に挙げる。このとき、RNN(Recurrent Neural Networks)エンコーダ及びRNNデコーダが接続されたモデルによって入力文20から図3Bに示すシステム要約30Bや図3Cに示すシステム要約30Cが生成される場合、次のような評価が行われる。
すなわち、図3Aに示す参照要約30及び図3Bに示すシステム要約30Bの間では、先頭から末尾までの各位置で単語が一致する。図3A及び図3Bには、一例として、参照要約30及びシステム要約30Bの先頭から5番目に位置する単語が太字により示されている。たとえば、システム要約30Bの先頭から5番目に位置する単語が予測される際には、図3Bに示すように、RNNデコーダが出力する入力文20の単語の確率分布のうち単語「AI」の確率が最高となる。また、先頭から5番目に位置する参照要約30の単語も、図3Aに示すように、「AI」である。このように参照要約30に含まれる単語ごとに当該単語の位置に対応する位置のシステム要約30Bの単語が一致する場合、損失は「0」となる。
一方、図3Aに示す参照要約30及び図3Cに示すシステム要約30Cは、文意は同一であるが、参照要約30及びシステム要約30Cの間で先頭から8番目までの単語の語順が異なる。図3A及び図3Cには、一例として、参照要約30及びシステム要約30Cの先頭から5番目の単語が太字により示されている。たとえば、システム要約30Cの先頭から5番目に位置する単語が予測される際には、図3Cに示すように、RNNデコーダが出力する入力文20の単語の確率分布のうち単語「コールセンター」の確率が最高となる。その一方で、先頭から5番目に位置する参照要約30の単語は、図3Aに示すように、「AI」である。このように参照要約30及びシステム要約30Cの間で語順が入れ替わることにより単語の配置が異なる場合、システム要約30Cが参照要約30と同一の文意を有する場合であっても、損失が生じる。
これらのことから、システム要約30B及びシステム要約30Cの間で異なる評価がなされることになる。しかしながら、システム要約30B及びシステム要約30Cの文意は同一である。それ故、要約という側面から言えば、同一の評価がなされなければ適切とは言えず、システム要約30Cはシステム要約30Bに比べて過小評価されている。
また、上記の背景技術の欄で説明した通り、語順の違いを不問とし、単語の重複度によりモデルのパラメータを更新する場合、制限字数を超える要約が過大評価されることがある。
このようなモデル学習の失敗事例を図4A〜図4Dを用いて説明する。図4Aは、参照要約の一例を示す図である。図4B〜図4Dは、システム要約の一例を示す図である。ここでは、一例として、モデルの学習の際に、図2に示す入力文20及び図4Aに示す参照要約40のペアが学習サンプルとして入力される事例を例に挙げる。このとき、RNNエンコーダ及びRNNデコーダが接続されたモデルによって入力文20から図4B〜図4Dに示すシステム要約40B〜40Dが生成される場合、次のような評価が行われる。
すなわち、図4Aに示す参照要約40及び図4Bに示すシステム要約40Bの間では、語順が一致し、かつ単語の集合も一致する。このように参照要約40及びシステム要約40Bの間で単語の集合が一致するので、損失は「0」となる。また、図4Aに示す参照要約40及び図4Cに示すシステム要約40Cの間では、語順は異なるが、単語の集合が一致する。このように参照要約40及びシステム要約40Cの間で単語の集合が一致するので、損失は「0」となる。また、図4Aに示す参照要約40及び図4Dに示すシステム要約40Dの間には、システム要約40Dが参照要約40の単語の集合を包含するという関係がある。それ故、図4Dに示すシステム要約40Dの字数が図4Aに示す参照要約40の字数を超えるにもかかわらず、損失は「0」となる。
このように、システム要約40B〜システム要約40Dの間で同一の評価がなされることになる。しかしながら、システム要約40Dは、参照要約40の字数を超えるので、要約という側面から言えば、システム要約40Dは、システム要約40B及びシステム要約40Cよりも低い評価でなければ適切とは言えない。それ故、システム要約40Dは、過大評価されている。
これらのことから、本実施例に係る学習装置10は、モデルが生成するシステム要約と学習サンプルの参照要約の間で単語の重複度を評価する際に、システム要約のうち制限字数内の文まで評価の対象とする一方で制限字数を超える部分を評価の対象から除外する。これによって、参照要約と語順が異なるが文意は類似するシステム要約30Bが過小評価される事態を抑制しつつ、制限字数を超えるシステム要約40Dが制限字数の超過に伴う重複度の増加により過大評価を受ける事態を抑制するモデル学習を実現する。
[学習装置10の機能的構成]
図1に示す学習装置10は、上記のモデル学習を実行するコンピュータである。
一実施形態として、学習装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記のモデル学習を実現する学習プログラムを所望のコンピュータにインストールさせることによって実装できる。このように上記の学習プログラムをコンピュータに実行させることにより、コンピュータを学習装置10として機能させることができる。ここで言うコンピュータは、任意の情報処理装置であってよい。たとえば、デスクトップ型またはノート型のパーソナルコンピュータやワークステーションの他、スマートフォン、携帯電話機やPHS(Personal Handyphone System)などの移動体通信端末、さらには、PDA(Personal Digital Assistants)などのスレート端末などがその範疇に含まれる。また、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記のモデル学習に関するサービスを提供するサーバ装置として実装することもできる。例えば、学習装置10は、複数の学習サンプルを含む学習データ、または、学習データをネットワークもしくは記憶メディアを介して呼び出すことができる識別情報を入力とし、当該学習データに対する上記のモデル学習の実行結果を出力する学習サービスを提供するサーバ装置として実装される。この場合、学習装置10は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記のモデル学習に関するサービスを提供するクラウドとして実装することとしてもかまわない。
図1に示すように、学習装置10は、学習データ記憶部11と、第1のモデル記憶部12Aと、第2のモデル記憶部12Bと、第1の取得部13Aと、第2の取得部13Bと、第1の学習部14と、第2の学習部15とを有する。なお、学習装置10は、図1に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
図1に示す第1の取得部13A、第2の取得部13B、第1の学習部14及び第2の学習部15などの機能部は、GPGPU(General-Purpose computing on Graphics Processing Units)やCPU(Central Processing Unit)、MPU(Micro Processing Unit)などのハードウェアプロセッサにより仮想的に実現される。すなわち、プロセッサがRAM(Random Access Memory)等のメモリ上に上記のモデル学習を実現する学習プログラムをプロセスとして展開することにより、上記の機能部が仮想的に実現される。ここでは、プロセッサの一例として、GPGPUやCPU、MPUを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによって実現されることとしてもかまわない。
また、図1に示す学習データ記憶部11、第1のモデル記憶部12A及び第2のモデル記憶部12Bなどの機能部には、HDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などの記憶装置を採用できる。なお、記憶装置は、必ずしも補助記憶装置でなくともよく、各種の半導体メモリ素子、例えばRAM、EPPROMやフラッシュメモリなども採用できる。
ここで、図1には、第2の学習部15におけるモデルの学習速度を向上させる側面から、第1の学習部14にモデルのパラメータを学習する前処理を実行させてから第1の学習部14により学習されたパラメータを用いて第2の学習部15に上記のモデル学習を実行させる場合を例示するが、必ずしも第1の学習部14による前処理が行われずともかまわない。例えば、第1の学習部14による前処理をスキップし、第2の学習部15に初期化時のパラメータを用いて上記のモデル学習を実行させることとしてもかまわない。以下では、第1の学習部14により実行される前処理となるモデル学習のことを「第1のモデル学習」と記載し、第2の学習部15により実行される上記のモデル学習のことを「第2のモデル学習」と記載する場合がある。
学習データ記憶部11は、学習データを記憶する記憶部である。ここで、学習データには、一例として、D個の学習サンプル、いわゆる学習事例が含まれる。さらに、学習サンプルには、入力文xおよび参照要約yのペアが含まれる。なお、図1には、あくまで一例として、第1の学習部14及び第2の学習部15に同一の学習データが用いられる場合を例示するが、第1の学習部14及び第2の学習部15の間で異なる学習データがモデル学習に用いられることとしてもかまわない。
第1のモデル記憶部12A及び第2のモデル記憶部12Bは、いずれもモデルに関する情報を記憶する記憶部である。
一実施形態として、第1のモデル記憶部12A及び第2のモデル記憶部12Bには、ニューラルネットワークを形成する入力層、隠れ層及び出力層の各層のニューロンやシナプスなどのモデルの層構造を始め、各層の重みやバイアスなどのモデルのパラメータを含むモデル情報が記憶される。ここで、第1の学習部14によりモデル学習が実行される前の段階では、第1のモデル記憶部12Aには、モデルのパラメータとして、乱数により初期設定されたパラメータが記憶される。また、第1の学習部14によりモデル学習が実行された後の段階では、第1のモデル記憶部12Aには、第1の学習部14により学習されたモデルのパラメータが保存される。また、第2の学習部15によりモデル学習が実行された後の段階では、第2のモデル記憶部12Bには、第2の学習部15により学習されたモデルのパラメータが保存される。
第1の取得部13A及び第2の取得部13Bは、いずれも学習サンプルを取得する処理部である。
一実施形態として、第1の取得部13A及び第2の取得部13Bは、学習サンプルをカウントするループカウンタdの値を初期化する。そして、第1の取得部13A及び第2の取得部13Bは、学習データ記憶部11に記憶されたD個の学習サンプルのうちループカウンタdに対応する学習サンプルを取得する。その後、第1の取得部13A及び第2の取得部13Bは、ループカウンタdをインクリメントし、ループカウンタdの値が学習サンプルの総数Dと等しくなるまで、学習データ記憶部11から学習サンプルを取得する処理を繰り返し実行する。これら第1の取得部13A及び第2の取得部13Bは、学習サンプルを第1の学習部14または第2の学習部15のいずれに入力するかが異なる以外は同様の処理を実行する。
第1の学習部14は、上記の前処理となる第1のモデル学習を実行する処理部である。ここでは、第1のモデル学習の一例として、対数尤度の最適化と呼ばれるモデル学習が実行される場合を例示する。
第1の学習部14は、図1に示すように、RNNエンコーダを実行するエンコーダ実行部14A、RNNデコーダを実行するデコーダ実行部14Bおよび入力文から要約文を生成するモデルのパラメータを更新する更新部14Cを有する。
これらエンコーダ実行部14A、デコーダ実行部14Bおよび更新部14Cの処理内容を図5〜図7を用いて説明する。図5〜図7は、第1のモデル学習の一例を示す図である。図5〜図7には、第1の取得部13Aにより図2に示す入力文20および図3Aに示す参照要約30のペアが学習サンプルとして取得される場合が示されている。
図5に示すように、エンコーダ実行部14Aは、第1の取得部13Aにより取得された入力文20に含まれる単語列をベクトル化する。すなわち、エンコーダ実行部14Aは、エンコーダ実行部14Aが使用するワークエリアに入力文20の単語数nに対応するn個のLSTM(Long Short-Term Memory)14a−1〜14a−nを展開する。その上で、エンコーダ実行部14Aは、入力文20に含まれる先頭の単語から順に入力文20の単語を当該単語の位置に対応するLSTM14aに入力すると共に1つ前のLSTM14aの出力を入力する。このような入力を先頭の単語「当社」に対応するLSTM14a−1から末尾の単語「。」に対応するLSTM14a−nまで繰り返すことにより、入力文20のベクトルが得られる。このようにRNNエンコーダにより生成された入力文20のベクトルがRNNデコーダへ入力される。
その後、デコーダ実行部14Bは、入力文20のベクトル、1時刻前の正解の単語及びRNNデコーダが文末記号と呼ばれるEOSを出力するまでの残り文字数などを入力とし、EOSを出力するまで時刻ごとに単語の確率分布を繰り返し計算する。
たとえば、参照要約30の先頭の単語と照合する単語の確率分布を計算する1時刻目には、デコーダ実行部14Bでは、図5に示す動作が行われる。すなわち、図5に示すように、デコーダ実行部14Bは、デコーダ実行部14Bが使用するワークエリアに展開されたLSTM14b−1に対し、LSTM14a−nの出力およびBOS(Begin Of Sentence)と呼ばれる文頭記号を入力すると共に参照要約30の文字数「37」を残り文字数として入力する。これにより、LSTM14b−1により1時刻目(t=1)における単語の確率分布が出力される。この結果、更新部14Cは、1時刻目における単語の確率文と1時刻目の正解の単語「コールセンター」とから損失を算出する。この場合、1時刻目の正解の単語「コールセンター」の確率が1に近く、かつその他の単語の確率が0に近いほど小さい損失が算出される。
また、参照要約30の先頭から2番目の単語と照合する単語の確率分布を計算する2時刻目には、デコーダ実行部14Bでは、図6に示す動作が行われる。すなわち、図6に示すように、デコーダ実行部14Bは、LSTM14b−2に対し、LSTM14b−1の出力および1時刻前の正解の単語「コールセンター」を入力すると共に1時刻目の残り文字数から1時刻目の正解の単語の字数が減算された字数「30」を2時刻目の残り文字数として入力する。これにより、LSTM14b−2により1時刻目(t=2)における単語の確率分布が出力される。この結果、更新部14Cは、2時刻目における単語の確率文と2時刻目の正解の単語「の」とから損失を算出する。この場合、2時刻目の正解の単語「の」の確率が1に近く、かつその他の単語の確率が0に近いほど小さい損失が算出される。
さらに、参照要約30の先頭から3番目の単語と照合する単語の確率分布を計算する3時刻目には、デコーダ実行部14Bでは、図7に示す動作が行われる。すなわち、図7に示すように、デコーダ実行部14Bは、LSTM14b−3に対し、LSTM14b−2の出力および1時刻前の正解の単語「の」を入力すると共に2時刻目の残り文字数から2時刻目の正解の単語の字数が減算された字数「29」を3時刻目の残り文字数として入力する。これにより、LSTM14b−3により3時刻目(t=3)における単語の確率分布が出力される。この結果、更新部14Cは、3時刻目における単語の確率文と3時刻目の正解の単語「問い合わせ」とから損失を算出する。この場合、3時刻目の正解の単語「問い合わせ」の確率が1に近く、かつその他の単語の確率が0に近いほど小さい損失が算出される。
このような処理をLSTM14bから文末記号「BOS」が出力されるまで繰り返し実行されることにより、更新部14Cは、参照要約30の単語ごとに損失を算出する。さらに、学習データに含まれる全ての学習サンプルについて参照要約の単語ごとに損失を算出する処理が実行される。このように学習データに含まれる全ての学習サンプルについて参照要約の単語ごとの損失が算出されると、更新部14Cは、下記の式(1)に示す目的関数Ltをパラメータθについて最大化する「対数尤度の最適化」を第1のモデル学習として実行する。ここで、下記の式(1)における確率「p(y|x;θ)」は、下記の式(2)に示す通り、各時刻における損失の総積によって求まる。なお、下記の式(1)における「D」は、入力文xおよび参照要約yを含む学習サンプルの集合を指す。また、下記の式(2)における「y<t」の「t」は、参照要約における単語の位置を指し、例えば、参照要約の先頭の単語はy1で表され,2番目の単語はy2で表され,・・・,末尾の単語はyt−1で表される。
その後、更新部14Cは、第1のモデル記憶部12Aに記憶されたモデルのパラメータを対数尤度の最適化により求められたパラメータθに更新する。このパラメータθの更新は、学習データDについて所定の回数にわたって繰り返すことができる。このように第1のモデル記憶部12Aに保存されたモデルのパラメータが第2の学習部15により用いられることになる。
図1の説明に戻り、第2の学習部15は、上記の第2のモデル学習を実行する処理部である。図1に示すように、第2の学習部15は、エンコーダ実行部15A、デコーダ実行部15B、生成部15C、重複度算出部15D、誤差算出部15E、損失算出部15Fおよび更新部15Gを有する。
ここで、図8を用いて、第2のモデル学習の処理内容を説明する。図8は、第2のモデル学習の一例を示す図である。図8には、第2の取得部13Bにより図2に示す入力文20および図3Aに示す参照要約30のペアが学習サンプルとして取得される場合が示されている。
図8に示すように、エンコーダ実行部15Aは、エンコーダ実行部14Aと同様、第2の取得部13Bにより取得された入力文20に含まれる単語列をベクトル化する。すなわち、エンコーダ実行部15Aは、エンコーダ実行部15Aが使用するワークエリアに入力文20の単語数nに対応するn個のLSTM15a−1〜15a−nを展開する。その上で、エンコーダ実行部15Aは、入力文20に含まれる先頭の単語から順に入力文20の単語を当該単語の位置に対応するLSTM15aに入力すると共に1つ前のLSTM15aの出力を入力する。このような入力を先頭の単語「当社」に対応するLSTM15a−1から末尾の単語「。」に対応するLSTM15a−nまで繰り返すことにより、入力文20のベクトルが得られる。このようにRNNエンコーダにより生成された入力文20のベクトルがRNNデコーダへ入力される。
その後、デコーダ実行部15Bは、入力文20のベクトル、1時刻前に予測された単語及びRNNデコーダがEOSを出力するまでの残り文字数などを入力とし、EOSを出力するまで時刻ごとに単語の確率分布を繰り返し計算する。
ここで、第2のモデル学習では、参照要約に対するシステム要約の損失は、第1のモデル学習のように、RNNデコーダの各時刻ごとに算出されない。すなわち、第2のモデル学習では、図8に示すように、文末記号「EOS」が出力されるまで各時刻に対応するLSTM15bから単語の確率分布に基づいて単語を繰り返して出力させることによりシステム要約が生成される。
たとえば、システム要約の先頭の単語を予測する1時刻目には、デコーダ実行部15Bでは、デコーダ実行部15Bが使用するワークエリアに展開されたLSTM15b−1に対し、LSTM15a−nの出力および文頭記号「BOS」と共に参照要約30の文字数「37」を残り文字数として入力する。ここでは、制限字数の一例として、参照要約の文字数を採用する場合を例示したが、参照要約の文字数よりも短い文字数に制限してもよいし、参照要約の文字数よりも長い文字数に制限することもできる。これにより、LSTM15b−1によって1時刻目(t=1)における単語の確率分布が出力される。この単語の確率分布に基づいて、生成部15Cは、システム要約の先頭の単語を抽出する。例えば、生成部15Cは、確率が上位所定数、例えば上位5位までに属する単語の中から1つの単語をランダムにサンプリングする。ここでは、一例として、システム要約の先頭の単語として「コールセンター」がランダムサンプリングされた場合を例に挙げて2時刻目以降の処理について説明する。
続いて、システム要約の先頭から2番目の単語を予測する2時刻目には、デコーダ実行部15Bでは、LSTM15b−2に対し、LSTM15b−1の出力および1時刻前の予測結果「コールセンター」と共に1時刻目の残り文字数から1時刻目に予測された単語の字数が減算された字数「30」を2時刻目の残り文字数として入力する。これにより、LSTM15b−2によって2時刻目(t=2)における単語の確率分布が出力される。この単語の確率分布に基づいて、生成部15Cは、上位5位までに属する単語の中から1つの単語をランダムにサンプリングする。
その後、生成部15Cは、LSTM15b−tによりEOSが出力されるまで、システム要約の単語を時刻ごとにランダムサンプリングする。このようなランダムサンプリングによりシステム要約を生成することで、生成部15Cは、1つの入力文につき所定数、例えばS個のシステム要約を生成することができる。
ここで、第2のモデル学習では、後述の重複度算出部15Dにより算出されるシステム要約および参照要約の間の単語の重複度に基づいてモデル学習を実行する。たとえば、更新部15Gは、下記の式(3)にしたがって目的関数LMRTを最小化するモデルのパラメータθを学習する。下記の式(3)における「P(y′|x;θ)」は、パラメータをθとしたときのy′の確率を指す。また、下記の式(3)における「D」は、入力文xおよび参照要約yを含む学習サンプルの集合を指す。さらに、下記の式(3)における「S」は、パラメータをθとしたときに入力文xから得られるシステム要約の集合の部分集合を指す。また、下記の式(3)における「Δ(y′,y)」は、システム要約y′と参照要約yから算出される単語の重複度を指し、ここでは、一例として、ROUGEなどの関数を用いることにより負の利得を得る場合を例に挙げる。
このように第2のモデル学習に用いられる重複度Δ(y′,y)は、図8に示すように、必ずしもシステム要約に含まれる全ての単語を用いて算出されるとは限らない。すなわち、重複度算出部15Dは、生成部15Cにより生成されるS個のシステム要約ごとに、当該システム要約のうち制限字数、例えば参照要約の文字数以内の文を対象に参照要約との間で単語の重複度を算出する。これによって、システム要約のうち制限字数を超える部分の単語、すなわち図8に示すハッチング部分を重複度の算出対象から除外することができる。
例えば、重複度算出部15Dは、下記の式(4)に示すように、システム要約の文字列の先頭から制限字数に対応するnバイト分の文字列に対応する単語を切り取るtrim関数を含むROUGE関数にしたがってn−gramの重複度を算出できる。
図9は、重複度の算出方法の一例を示す図である。図9には、上記の式(4)にしたがって重複度Δ(y′,y)が算出される例が示されている。図9に示すように、システム要約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との単語の重複度が算出される。このように上記の式(4)にしたがって重複度Δ(y′,y)を算出することで、制限字数を超えるシステム要約y′のk番目から末尾までの単語、すなわち単語y′k〜単語y′|y′|を重複率の算出対象から除外できる。この結果、制限字数を超えるシステム要約y′のk番目から末尾までの単語、すなわち単語y′k〜単語y′|y′|に参照要約yと重複する単語が含まれることが一因となって、システム要約y′が過大評価されるのを抑制できる。
このように重複度の算出対象をシステム要約の制限字数内の単語に抑えることに加え、下記の式(5)に示す通り、誤差算出部15Eは、システム要約の制限字数に足りない分の長さ、もしくは、システム要約の制限字数を超える分の長さを、重複度にペナルティとして付与する誤差として、算出することもできる。なお、下記の式(5)に示す「C」は、上記の学習プログラムの開発者やユーザにより設定されるハイパーパラメータを指す。
図10は、誤差付きの重複度の算出方法の一例を示す図である。図10には、上記の式(5)にしたがって誤差付きの重複度Δ(y′,y)が算出される例が示されている。図10に示す例においても、図9に示す例と同様に、ROUGE(trim(y′,byte(y)),y)により、システム要約y′の先頭の単語y′1からk−1番目の単語y′k−1まで切り出されたtrim(y′,byte(y))と、参照要約yとの単語の重複度が算出される。さらに、上記の式(5)に従えば、システム要約および参照要約の間の長さの差の絶対値、例えば|byte(y′)−byte(y)|が誤差として重複度に付与される。たとえば、図10の例で言えば、システム要約の長さの方が参照要約よりも大きいので、制限字数を超える分の長さbyte(y′)−byte(y)が重複度に加算されることにより、誤差付きの重複度Δ(y′,y)が算出される。このように上記の式(5)にしたがってROUGEにより算出される重複度に誤差|byte(y′)−byte(y)|を付与して誤差付きの重複度Δ(y′,y)を算出する。これによって、制限字数に満たないシステム要約および制限字数を超えるシステム要約の損失が高まる結果、文字数が制限字数と一致するシステム要約の評価を高めるモデル学習を実現できる。
また、誤差算出部15Eは、必ずしも制限字数に満たないシステム要約にまで重複度に付与する誤差を算出せずともかまわない。例えば、誤差算出部15Eは、下記の式(6)にしたがって、システム要約が制限字数を超える場合に絞ってシステム要約の制限字数を超える分の長さを誤差として算出することもできる。
図11は、誤差付きの重複度の算出方法の一例を示す図である。図11には、上記の式(6)にしたがって誤差付きの重複度Δ(y′,y)が算出される例が示されている。図11に示す例においても、図9に示す例と同様に、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)が算出された後、損失算出部15Fは、生成部15Cにより生成された所定数、例えばS個のシステム要約ごとに、S個のシステム要約に対する確率の計算結果と、重複度算出部15D及び誤差算出部15Eにより算出された誤差付きの重複度Δ(y′,y)とから損失を算出する。さらに、損失算出部15Fは、S個のシステム要約ごとに算出された損失を合計する計算を実行することにより、S個のシステム要約に対する損失の和を算出する。
その後、学習データに含まれる全ての学習サンプルについて、S個のシステム要約に対する損失の和を算出する処理が繰り返し実行される。このように学習データに含まれる全ての学習サンプルについてS個のシステム要約に対する損失の和が算出されると、更新部15Gは、上記の式(3)に示す目的関数LMRTが最小化されるモデルのパラメータθにモデルのパラメータを更新する。このように更新されたモデルのパラメータが第2のモデル記憶部12Bへ保存される。このパラメータθの更新は、学習データDについて所定の回数にわたって繰り返すことができる。この結果、第2のモデル記憶部12Bに保存されたモデル情報は、要約文の生成モデルとして提供することができる。
[処理の流れ]
図12は、実施例1に係る学習処理の手順を示すフローチャートである。図12に示す学習処理のフローチャートは、第2の学習部15により実行される第2のモデル学習の手順が図式化されたものである。図12には、あくまで一例として、上記の式(6)にしたがって誤差付きの重複度が算出される例のフローチャートが示されている。たとえば、第2の学習部15におけるモデルの学習速度を向上させる側面から、第1の学習部14による第1のモデル学習を前処理として実行させてから第1の学習部14により学習されたモデルのパラメータを用いて図12に示す学習処理を開始することができる。
図12に示すように、学習データに含まれるD個の学習サンプルごとに、ステップS101〜ステップS108の処理が実行される。
すなわち、第2の取得部13Bは、学習データ記憶部11に記憶された学習データに含まれる学習サンプルのうち1つを取得する(ステップS101)。このようにステップS101で取得された学習サンプルがエンコーダ実行部15Aにより実行されるRNNエンコーダ及びデコーダ実行部15Bにより実行されるRNNデコーダへ入力される。
続いて、生成部15Cは、RNNデコーダから出力される単語の確率分布に基づいて単語を時刻ごとにランダムサンプリングすることにより、ステップS101で取得された学習サンプルの入力文に対するS個のシステム要約を生成する(ステップS102)。そして、損失算出部15Fは、ステップS102で生成されたS個のシステム要約に対する確率を算出する(ステップS103)。
その後、ステップS102で生成されたS個のシステム要約ごとに、下記のステップS104〜下記のステップS107の処理が実行される。すなわち、重複度算出部15Eは、上記の式(6)に示すtrim(y′,byte(y))にしたがってシステム要約y′から制限字数、例えば参照要約yに対応するバイト数の単語を切り出す(ステップS104)。
その上で、重複度算出部15Eは、上記の式(6)に示すROUGE(trim(y′,byte(y)),y)にしたがってステップS104で切り出されたtrim(y′,byte(y))と、参照要約yとの単語の重複度を算出する(ステップS105)。
また、誤差算出部15Fは、上記の式(6)に示すmax(0,byte(y′)−byte(y))にしたがってシステム要約y′が制限字数を超える分の長さbyte(y′)−byte(y)を誤差として算出する(ステップS106)。なお、システム要約が制限字数に満たない場合、max(0,byte(y′)−byte(y))によって「0」が選択されるので、重複度に付与する誤差は「0」と算出される。
これらステップS105で算出された重複度にステップS106で算出された誤差が付与されることにより、誤差付きの重複度Δ(y′,y)が導出される。
その後、損失算出部15Fは、ステップS103で算出されたS個のシステム要約に対する確率の計算結果と、誤差付きの重複度Δ(y′,y)とから損失を算出する(ステップS107)。
ステップS102で生成されたS個のシステム要約ごとに損失が算出されると、損失算出部15Fは、S個のシステム要約ごとに算出された損失を合計する計算を実行することにより、S個のシステム要約に対する損失の和を算出する(ステップS108)。
その後、学習データに含まれる全ての学習サンプルについてS個のシステム要約に対する損失の和が算出されると、更新部15Gは、第2のモデル記憶部12Bに記憶されるモデルのパラメータを上記の式(3)に示す目的関数LMRTが最小化されるモデルのパラメータθに更新し(ステップS109)、処理を終了する。
[効果の一側面]
上述してきたように、本実施例に係る学習装置10は、システム要約および参照要約の間で算出する単語の重複度に基づいてモデルを学習する際に、システム要約のうち制限字数内の文まで重複度の算出に用いる。これによって、システム要約のうち制限字数を超える部分が重複度の算出対象から除外される。したがって、本実施例に係る学習装置10によれば、参照要約と語順が異なるが文意は類似するシステム要約が過小評価される事態を抑制しつつ、制限字数を超えるシステム要約が制限字数の超過に伴う重複度の増加により過大評価を受ける事態を抑制するモデル学習を実現することが可能となる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、第1の学習部14または第2の学習部15を学習装置10の外部装置としてネットワーク経由で接続するようにしてもよい。さらに、第2の学習部15が有する機能部の一部を学習装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、第1の学習部14および第2の学習部15を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の学習装置10の機能を実現するようにしてもよい。また、第1のモデル記憶部12Aに記憶されるモデル情報および第2のモデル記憶部12Bに記憶されるモデル情報の全部または一部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の学習装置10の機能を実現するようにしてもかまわない。
[学習プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図13を用いて、上記の実施例と同様の機能を有する学習プログラムを実行するコンピュータの一例について説明する。
図13は、実施例1及び実施例2に係る学習プログラムを実行するコンピュータのハードウェア構成例を示す図である。図13に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110〜180の各部はバス140を介して接続される。
HDD170には、図13に示すように、上記の実施例1で示した第2の学習部15と同様の機能を発揮する学習プログラム170aが記憶される。この学習プログラム170aは、図1に示した第2の学習部15の各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
このような環境の下、CPU150は、HDD170から学習プログラム170aを読み出した上でRAM180へ展開する。この結果、学習プログラム170aは、図13に示すように、学習プロセス180aとして機能する。この学習プロセス180aは、RAM180が有する記憶領域のうち学習プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、学習プロセス180aが実行する処理の一例として、図12に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
なお、上記の学習プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に学習プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から学習プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに学習プログラム170aを記憶させておき、コンピュータ100がこれらから学習プログラム170aを取得して実行するようにしてもよい。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)入力文より要約文を生成する要約文の生成モデルの学習プログラムであって、
入力文および制限字数に基づき前記生成モデルにより生成された要約文のうち前記制限字数内の文の、前記入力文に対応する参照要約を正解とした評価、を用いて、前記生成モデルの学習を行う、
処理をコンピュータに実行させることを特徴とする学習プログラム。
(付記2)前記生成された要約文の前記制限字数を超えた文字数を損失として、前記生成モデルの学習を行う、ことを特徴とする付記1に記載の学習プログラム。
(付記3)前記生成された要約文の前記制限字数を超えた文字数が多くなるにしたがって前記損失を大きく設定する、ことを特徴とする付記2に記載の学習プログラム。
(付記4)前記生成された要約文の前記制限字数に足りない文字数を損失として、前記生成モデルの学習を行う、ことを特徴とする付記1に記載の学習プログラム。
(付記5)前記生成された要約文の前記制限字数に足りない文字数が多くなるにしたがって前記損失を大きく設定する、ことを特徴とする付記4に記載の学習プログラム。
(付記6)入力文より要約文を生成する要約文の生成モデルの学習方法であって、
入力文および制限字数に基づき前記生成モデルにより生成された要約文のうち前記制限字数内の文の、前記入力文に対応する参照要約を正解とした評価、を用いて、前記生成モデルの学習を行う、
処理をコンピュータが実行することを特徴とする学習方法。
(付記7)前記生成された要約文の前記制限字数を超えた文字数を損失として、前記生成モデルの学習を行う、ことを特徴とする付記6に記載の学習方法。
(付記8)前記生成された要約文の前記制限字数を超えた文字数が多くなるにしたがって前記損失を大きく設定する、ことを特徴とする付記7に記載の学習方法。
(付記9)前記生成された要約文の前記制限字数に足りない文字数を損失として、前記生成モデルの学習を行う、ことを特徴とする付記6に記載の学習方法。
(付記10)前記生成された要約文の前記制限字数に足りない文字数が多くなるにしたがって前記損失を大きく設定する、ことを特徴とする付記9に記載の学習方法。
(付記11)入力文より要約文を生成する要約文の生成モデルの学習装置であって、
入力文および制限字数に基づき前記生成モデルにより生成された要約文のうち前記制限字数内の文の、前記入力文に対応する参照要約を正解とした評価、を用いて、前記生成モデルの学習を行う学習部、
を有することを特徴とする学習装置。
(付記12)前記学習部は、前記生成された要約文の前記制限字数を超えた文字数を損失として、前記生成モデルの学習を行う、ことを特徴とする付記11に記載の学習装置。
(付記13)前記学習部は、前記生成された要約文の前記制限字数を超えた文字数が多くなるにしたがって前記損失を大きく設定する、ことを特徴とする付記12に記載の学習装置。
(付記14)前記学習部は、前記生成された要約文の前記制限字数に足りない文字数を損失として、前記生成モデルの学習を行う、ことを特徴とする付記11に記載の学習装置。
(付記15)前記学習部は、前記生成された要約文の前記制限字数に足りない文字数が多くなるにしたがって前記損失を大きく設定する、ことを特徴とする付記14に記載の学習装置。