(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-16
(45)【発行日】2023-01-24
(54)【発明の名称】学習方法、学習プログラム及び生成方法
(51)【国際特許分類】
G06F 40/279 20200101AFI20230117BHJP
G06F 40/216 20200101ALI20230117BHJP
G06N 20/00 20190101ALI20230117BHJP
【FI】
G06F40/279
G06F40/216
G06N20/00
(21)【出願番号】P 2018205376
(22)【出願日】2018-10-31
【審査請求日】2021-07-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】牧野 拓哉
【審査官】成瀬 博之
(56)【参考文献】
【文献】特開2018-005324(JP,A)
【文献】菊池悠太 他4名,Encoder-Decoderモデルにおける出力長制御,情報処理学会研究報告 自然言語処理(NL)[online],日本,情報処理学会,2016年07月22日,2016-NL-227,ISSN 2188-8779
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-40/58
G06F 16/00-16/958
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
学習用入力文
をRNNへ入力し、
前記RNNのデコーダのセルごとに、前記学習用入力文が入力された前記RNNのエンコーダが出力する隠れ状態、または、前記RNNのデコーダのセルのうち1つ前に出力された要約文の要素に対応するセルにより更新された隠れ状態に基づいて、前記RNNの訓練に用いる前記学習用入力文を含むデータセットから獲得された語彙が登録された辞書の単語の第1スコアを算出し、
前記RNNのデコーダのセルごとに、前記単語の長さおよび要約文の上限文字数までの残り文字数の類似度に基づいて前記辞書の単語の第2スコアを算出し、
前記第1スコアおよび前記第2スコアが合成された合成スコアに基づいて
前記辞書の単語の生成確率の分布を算出する、
処理をコンピュータが実行することを特徴とする学習方法。
【請求項2】
前記
RNNは
、入力文として記事が入力されると前記記事の要約文を生成する記事要約プログラムに組み込まれることを特徴とする請求項1に記載の学習方法。
【請求項3】
前記第2スコアを算出する処理は、前記RNNのデコーダのセルごとに、前記辞書の単語の長さの分散表現および前記要約文の上限文字数までの残り文字数の分散表現の内積に基づいて前記辞書の単語の第2スコアを算出する処理を含む、
ことを特徴とする請求項1または2に記載の学習方法。
【請求項4】
学習用入力文
をRNNへ入力し、
前記RNNのデコーダのセルごとに、前記学習用入力文が入力された前記RNNのエンコーダが出力する隠れ状態、または、前記RNNのデコーダのセルのうち1つ前に出力された要約文の要素に対応するセルにより更新された隠れ状態に基づいて、前記RNNの訓練に用いる前記学習用入力文を含むデータセットから獲得された語彙が登録された辞書の単語の第1スコアを算出し、
前記RNNのデコーダのセルごとに、前記単語の長さおよび要約文の上限文字数までの残り文字数の類似度に基づいて前記辞書の単語の第2スコアを算出し、
前記第1スコアおよび前記第2スコアが合成された合成スコアに基づいて
前記辞書の単語の生成確率の分布を算出する、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【請求項5】
入力文
をRNNへ入力し、
前記RNNのデコーダのセルごとに、前記入力文が入力された前記RNNのエンコーダが出力する隠れ状態、または、前記RNNのデコーダのセルのうち1つ前に出力された要約文の要素に対応するセルにより更新された隠れ状態に基づいて、前記RNNの訓練に用いられた学習用入力文を含むデータセットから獲得された語彙が登録された辞書の単語の第1スコアを算出し、
前記RNNのデコーダのセルごとに、前記単語の長さおよび要約文の上限文字数までの残り文字数の類似度に基づいて前記辞書の単語の第2スコアを算出し、
前記第1スコアおよび前記第2スコアが合成された合成スコアに基づいて
前記辞書の単語の生成確率の分布を算出する、
処理をコンピュータが実行することを特徴とする生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習方法、学習プログラム及び生成方法に関する。
【背景技術】
【0002】
新聞やWebサイト、電光掲示板などの文書から要約文を生成する自動要約にニューラルネットワークなどの機械学習が利用されることがある。例えば、入力文をベクトル化するRNN(Recurrent Neural Networks)エンコーダと、入力文のベクトルを参照して要約文の単語の生成を繰り返すRNNデコーダとが接続されたモデルが要約文の生成に用いられる。
【0003】
このようなモデルの学習の際、RNNデコーダは、学習サンプルの入力文のベクトルの他、RNNデコーダが文末記号と呼ばれるEOS(End Of Sentence)を出力するまでの残り文字数などを入力の初期値とし、EOSを出力するまで時刻ごとに単語の確率分布を繰り返し計算する。このように時刻ごとに計算される単語の確率分布から生成される単語と、当該時刻における正解の単語とを比較して計算される損失を用いてモデルのパラメータが更新される。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2018-5324号公報
【文献】特開2004-348566号公報
【文献】特開2014-153766号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、モデルの出力に影響を与えるのは、あくまで要約文の上限文字数までの残り文字数であってモデルが生成する単語の長さそのものがモデルの出力に影響を与える訳ではない。したがって、要約文の上限文字数の近傍であっても残り文字数を超える長さの単語が生成されるのに歯止めが掛からない場合がある。
【0006】
1つの側面では、本発明は、要約文の上限文字数の近傍でモデルが生成する単語の文字数を残りの文字数に近付けることができる学習方法、学習プログラム及び生成方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
一態様の学習方法では、学習用入力文が入力されたモデルが前記モデルの辞書の単語ごとに出力する第1スコアに、単語の長さおよび要約文の上限文字数までの残り文字数から前記モデルの辞書の単語ごとに求まる第2スコアを合成し、前記単語ごとに前記第1スコアおよび前記第2スコアが合成された合成スコアに基づいて単語の生成確率の分布を算出する、処理をコンピュータが実行する。
【発明の効果】
【0008】
要約文の上限文字数の近傍でモデルが生成する単語の文字数を残りの文字数に近付けることができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施例1に係るシステムに含まれる各装置の機能的構成を示すブロック図である。
【
図2】
図2は、記事要約ツールのユースケースの一例を示す図である。
【
図3】
図3は、単語長情報の作成方法の一例を示す図である。
【
図4】
図4は、単語の生成確率の分布の算出例の一例を示す図である。
【
図5】
図5は、単語の生成確率の分布の算出例の一例を示す図である。
【
図6】
図6は、単語の生成確率の分布の算出例の一例を示す図である。
【
図9】
図9は、実施例1に係る学習処理の手順を示すフローチャートである。
【
図10】
図10は、実施例1に係る生成処理の手順を示すフローチャートである。
【
図11】
図11は、実施例1及び実施例2に係る学習プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【0010】
以下に添付図面を参照して本願に係る学習方法、学習プログラム及び生成方法について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例1】
【0011】
[システム構成]
図1は、実施例1に係るシステムに含まれる各装置の機能的構成を示すブロック図である。
図1に示すシステム1では、学習用入力文および正解要約文を含む学習データを用いてモデルの機械学習を行う機械学習サービス、並びに、学習済みモデルを用いて入力文から要約文を生成する要約生成サービスが提供される。
【0012】
図1に示すように、システム1には、学習装置10と、生成装置30とが含まれる。学習装置10で学習したモデルを受け取って、生成装置30は、与えられたデータに対して、結果を生成する。
【0013】
学習装置10は、上記の機械学習サービスを提供するコンピュータの一例に対応する。別の計算機に学習装置10と生成装置30を配置する際は、ネットワーク通信を介して、モデルを渡す。
【0014】
一実施形態として、学習装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の機械学習サービスを実現する学習プログラムを任意のコンピュータにインストールさせることによって実装できる。このようにインストールされた学習プログラムをコンピュータに実行させることにより、コンピュータを学習装置10として機能させることができる。
【0015】
あくまで一例として、学習装置10は、生成装置30をクライアントとして収容し、当該クライアントに上記の機械学習サービスを提供するサーバ装置として実装することができる。この場合、学習装置10は、上記の機械学習サービスを提供するサーバとしてオンプレミスに実装することとしてもよいし、上記の機械学習サービスをアウトソーシングで提供するクラウドとして実装することとしてもかまわない。
【0016】
例えば、学習装置10は、複数の学習サンプルを含む学習データ、または、学習データをネットワークもしくは記憶メディアを介して呼び出すことができる識別情報を入力とし、モデルの学習結果を生成装置30へ出力する。このとき、学習装置10は、一例として、RNNエンコーダ及びRNNデコーダが接続されたニューラルネットワークのモデルのパラメータを提供することができる。この他、学習装置10は、学習済みモデルを用いて実現される要約文の生成が機能として組み込まれたアプリケーションプログラムを提供することもできる。例えば、新聞や電光掲示板、Webサイトなどの各種の記事の原文から記事の見出しを要約文として生成したり、あるいは記事の原文から速報の記事を要約文として生成したりするアプリケーションプログラムを提供することができる。
【0017】
この他、上記の機械学習サービスの提供形態は、あくまで一例に過ぎず、上記に挙げる例以外の提供形態で機械学習サービスが提供されることを妨げない。例えば、上記の機械学習サービスを実現する学習プログラムそのものをパッケージソフトウェアやオンラインソフトウェアとして提供することとしてもよいし、上記の学習プログラムが導入されたコンピュータを提供することとしてもかまわない。
【0018】
生成装置30は、上記の要約生成サービスを提供するコンピュータの一例に対応する。
【0019】
一実施形態として、生成装置30は、パッケージソフトウェアやオンラインソフトウェアとして上記の要約生成サービスを実現する要約生成プログラムを任意のコンピュータにインストールさせることによって実装できる。このようにインストールされた要約生成プログラムをコンピュータに実行させることにより、コンピュータを生成装置30として機能させることができる。
【0020】
あくまで一例として、上記の要約生成サービスは、新聞や電光掲示板、Webサイトなどの各種のメディアを運営するメディア事業者向けに提供されるWebサービスのツールの1つ、例えば「記事要約ツール」として提供することができる。この場合、上記のWebサービスとして提供される機能のうち、原文の入力や要約文の表示等のフロントエンドの機能が記者や編集者等の端末装置に実装されると共に、要約文の生成などのバックエンドの機能が生成装置30に実装されることとしてもかまわない。
【0021】
[記事要約ツールのユースケースの一例]
図2は、記事要約ツールのユースケースの一例を示す図である。
図2には、メディア事業者の関係者により使用される端末装置に表示される記事要約画面20の遷移の一例が示されている。
【0022】
図2の上段には、各種の項目に対する入力が設定されていない初期状態の記事要約画面20が示されている。例えば、記事要約画面20には、原文入力エリア21、要約表示エリア22、プルダウンメニュー23、要約ボタン24、クリアボタン25などのGUI(Graphical User Interface)コンポーネントが含まれる。このうち、原文入力エリア21は、記事等の原文を入力するエリアに対応する。また、要約表示エリア22は、原文入力エリア21に入力された原文に対応する要約文を表示するエリアに対応する。また、プルダウンメニュー23は、要約文の上限文字数を指定するGUIコンポーネントの一例に対応する。また、要約ボタン24は、原文入力エリア21に入力された原文に対応する要約文を生成するコマンドの実行を受け付けるGUIコンポーネントの一例に対応する。また、クリアボタン25は、原文入力エリア21に入力された原文のテキストをクリアするGUIコンポーネントの一例に対応する。
【0023】
図2に示すように、記事要約画面20の原文入力エリア21では、図示しないキーボード等の入力デバイスを介してテキストの入力を受け付けることができる。このように入力デバイスを介してテキストの入力を受け付ける他、原文入力エリア21では、ワープロソフトなどのアプリケーションにより作成された文書のファイルからテキストをインポートすることができる。
【0024】
このように原文入力エリア21に原文のテキストが入力されることにより、記事要約画面20は、
図2の上段に示された状態から
図2の中段に示された状態へ遷移する(ステップS1)。例えば、原文入力エリア21に原文のテキストが入力された場合、要約ボタン24に対する操作を介して要約文を生成するコマンドの実行を受け付けることができる。また、クリアボタン25に対する操作を介して原文入力エリア21に入力されたテキストをクリアすることもできる。この他、プルダウンメニュー23を介して、複数の上限文字数の中からメディア事業者の関係者が希望する上限文字数の指定を受け付けることもできる。ここでは、新聞やニュースの記事の原文から電光掲示板の速報を要約文として生成する場面の一例として、電光掲示板に表示可能な上限文字数の一例に対応する80文字が指定された例が示されている。これはあくまで一例であり、新聞やWebサイトの記事から見出しを生成する場合、見出しに対応する上限文字数を選択することができる。
【0025】
そして、原文入力エリア21に原文のテキストが入力された状態で要約ボタン24に対する操作が行われた場合、記事要約画面20は、
図2の中段に示された状態から
図2の下段に示された状態へ遷移する(ステップS2)。この場合、原文入力エリア21に入力された原文のテキストが入力文として学習済みモデルに入力されることによりその要約文が生成される。この要約文の生成は、メディア事業者の関係者の端末装置上で実行されることとしてもよいし、あるいはバックエンドのサーバ装置で実行されることとしてもかまわない。この結果、
図2の下段に示すように、記事要約画面20の要約表示エリア22には、学習済みモデルにより生成された要約文が表示される。
【0026】
このように記事要約画面20の要約表示エリア22に表示された要約文のテキストには、図示しない入力デバイス等を介して編集を行うことができる。
【0027】
以上のような記事要約ツールが提供されることで、記者や編集者等により行われる記事要約の作業を軽減することが可能になる。例えば、記事要約の作業は、メディアにニュースを配信するプロセス、例えば「配信記事の選定」や「メディア編集システムへの送信」、「記事要約」、「見出し作成」、「校閲」などの中でも相対的に労力が大きいという側面がある。例えば、記事要約が人手により行われる場合、記事の全体から重要な情報を選別し、文章を再構成するといった作業が必要となる。このことから、記事要約の作業が自動化または半自動化される技術的意義は高い。
【0028】
なお、ここでは、あくまで一例として、メディア事業者の関係者により記事要約ツールが利用されるユースケースを例に挙げたが、メディア事業者から記事の配信を受ける視聴者により記事要約ツールが利用されることとしてもかまわない。例えば、スマートスピーカ等で記事の全文を読み上げる代わりに要約文を読み上げる機能として記事要約ツールを利用することができる。
【0029】
また、ここでは、あくまで一例として、生成装置30が上記の要約生成サービスを提供するコンピュータとして実装される例を挙げたが、これに限定されない。例えば、上記の学習済みモデルが組み込まれた要約生成プログラムが任意のコンピュータ、例えば記者や編集者等の端末装置で実行されるスタンドアローンのアプリケーションプログラムとして実装されることとしてもよい。
【0030】
さらに、ここでは、上記の機械学習サービス及び上記の要約生成サービスが異なる事業主体で実行される例を挙げたが、これら2つのサービスが同一の事業者により提供されることとしてもかまわない。この場合、上記の学習プログラム及び上記の要約生成プログラムが同一のコンピュータもしくはコンピュータシステムにより実行されることとしてもかまわない。
【0031】
[課題の一側面]
上記の背景技術の欄でも説明した通り、モデルが出力する単語の生成確率に影響を与えるのは、あくまで要約文の上限文字数までの残り文字数であってモデルが生成する単語の長さそのものではない。したがって、要約文の上限文字数の近傍であっても残り文字数を超える長さの単語が生成されるのに歯止めが掛からない場合がある。
【0032】
[課題解決のアプローチの一側面]
そこで、本実施例に係る学習装置10は、モデルが辞書の単語ごとに出力する第1スコアに、モデルの辞書の単語ごとに単語の長さおよび要約文の上限文字数までの残り文字数から求まる第2スコアを合成して単語の生成確率の分布を算出する。
【0033】
例えば、上記の第2スコアを求める事前準備として、モデルの辞書の単語に当該単語の長さが対応付けられた単語長情報が生成される。以下、単語の長さのことを「単語長」と記載する場合がある。
図3は、単語長情報の作成方法の一例を示す図である。
図3に示すように、モデルの辞書の作成に用いられる学習データ11Aに出現する単語の集合{a,America,・・・,market,・・・,zoo,<EOS>}が抽出される。そして、単語の集合{a,America,・・・,market,・・・,zoo,<EOS>}に各要素の単語長{1,7,・・・,6,・・・,3,0}を対応付けることにより単語長情報11A1が作成される。このように生成された単語長情報11A1と、要約文の上限文字数までの残り文字数とから上記の第2スコアが算出される。
【0034】
図4は、単語の生成確率の分布の算出例の一例を示す図である。
図4には、学習用入力文と共に入力される正解要約文の単語数Nに対応する時刻ごとにモデルのRNNデコーダとして展開されるN個のLSTM(Long Short-Term Memory)のセルのうちn(1~Nの自然数)時刻目のLSTMのセルに入出力される情報が示されている。なお、第2スコアの算出に関連する箇所は破線の枠で囲んで示されている。
【0035】
図4に示すように、n時刻目のLSTMのセルには、n-1時刻目のLSTMのセルに更新された隠れ状態sと、n-1時刻目の正解要約文の単語xと、要約文の上限文字数までの残り文字数lとが入力される。このような入力の下、n時刻目のLSTMのセルは、モデルの辞書に含まれる単語の要素ごとに、n-1時刻目までの文脈および残り文字数に基づいて当該単語の要素を要約文の単語とすべき度合いを第1スコアとして出力する。これによって、単語の要素“a”、“America”、・・・、“<EOS>”ごとに第1スコア{47,39,・・・,9}が出力される。
【0036】
このようなLSTMのセルによる第1スコアの算出と並行して、上記の第2スコアが算出される。すなわち、
図4に破線の枠で囲んで示された通り、単語長情報11A1に含まれる単語の要素“a”、“America”、・・・、“<EOS>”ごとに単語長{1,7,・・・,6,・・・,3,0}が分散表現{b
1,b
2,・・・b
n}にベクトル化される。このような単語長の分散表現{b
1,b
2,・・・b
n}と、要約文の上限文字数までの残り文字数lの分散表現との内積が単語の要素ごとに計算される。これによって、単語の要素“a”、“America”、・・・、“<EOS>”ごとに第2スコア{5,-40,・・・,30}が算出される。
【0037】
その上で、第1スコアおよび第2スコアを単語の要素“a”、“America”、・・・、“<EOS>”ごとに足し合わせる線形結合を行うことにより合成される。このように単語の要素“a”、“America”、・・・、“<EOS>”ごとに合成されたスコア{47+5,39+(-40),・・・,9+30}の和が「1」になるように正規化される。これによって、n時刻目における各単語の生成確率の分布{0.3,0.01,・・・,0.1}が得られる。
【0038】
このように、文脈および残り文字数に基づく第1スコアに残り文字数および単語の長さに基づく第2スコアを合成して単語の生成確率の分布を算出することで、要約文の上限文字数の近傍であっても残り文字数を超える長さの単語が生成されるのに歯止めが掛けることができる。例えば、要約文の上限文字数までの残り文字数が少ない場合、類似する意味を持つ単語の中でも単語長が短い単語の生成確率を高めて出力できるモデル学習を実現できる。
【0039】
したがって、本実施例に係る学習装置10によれば、要約文の上限文字数の近傍でモデルが生成する単語の文字数を残りの文字数に近付けることが可能になる。
【0040】
[学習装置10の構成]
図1に示すように、学習装置10は、学習データ記憶部11と、モデル記憶部12と、入力制御部13と、モデル実行部15と、算出部16と、合成部17と、生成部18と、更新部19とを有する。なお、学習装置10は、
図1に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【0041】
図1に示す入力制御部13、モデル実行部15、算出部16、合成部17、生成部18及び更新部19などの機能部は、あくまで例示として、下記のハードウェアプロセッサにより仮想的に実現される。このようなプロセッサの例として、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)などのハードワイヤードロジックによって実現されることを妨げない。
【0042】
また、
図1に示す学習データ記憶部11およびモデル記憶部12などの機能部には、HDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などの記憶装置を採用できる。なお、記憶装置は、必ずしも補助記憶装置でなくともよく、各種の半導体メモリ素子、例えばRAM、EPPROMやフラッシュメモリなども採用できる。
【0043】
学習データ記憶部11は、学習データを記憶する記憶部である。ここで、学習データには、一例として、D個の学習サンプル、いわゆる学習事例が含まれる。さらに、学習サンプルには、モデル学習に用いる入力文および正解の要約文のペアが含まれる。以下、モデルの学習時および要約文の生成時に入力される入力文のラベルを識別する側面から前者のことを「学習用入力文」と記載する場合がある。さらに、モデルの学習時に正解として参照される要約文および入力文から生成される要約文のラベルを識別する側面から前者のことを「正解要約文」と記載する場合がある。
【0044】
モデル記憶部12は、モデルに関する情報を記憶する記憶部である。
【0045】
一実施形態として、モデル記憶部12には、RNNエンコーダ及びRNNデコーダが接続されたニューラルネットワークのモデルを形成する入力層、隠れ層及び出力層の各層のニューロンやシナプスなどのモデルの層構造を始め、各層の重みやバイアスなどのモデルのパラメータを含むモデル情報が記憶される。ここで、モデル学習が実行される前の段階では、モデル記憶部12には、モデルのパラメータとして、乱数により初期設定されたパラメータが記憶される。また、モデル学習が実行された後の段階では、モデル記憶部12には、学習済みモデルのパラメータが保存される。
【0046】
入力制御部13は、モデルに対する入力を制御する処理部である。
【0047】
一実施形態として、入力制御部13は、モデル学習のリクエストを受け付けた場合に処理を起動する。このように処理が起動されると、入力制御部13は、モデル学習の初期設定を行う。例えば、入力制御部13は、正解要約文の文字数を始め、ユーザに指定された文字数などをモデルが生成する要約文の上限文字数として設定する。
【0048】
このようにRNNデコーダへ入力する初期値が設定された後、入力制御部13は、学習データに含まれる学習サンプルごとに、RNNエンコーダおよびRNNデコーダが接続されたニューラルネットワークのモデルに対する入力を開始する。
【0049】
具体的には、入力制御部13は、学習サンプルをカウントするループカウンタdの値を初期化する。続いて、入力制御部13は、学習データ記憶部11に記憶されたD個の学習サンプルのうちループカウンタdに対応する学習サンプルを取得する。その後、入力制御部13は、ループカウンタdをインクリメントし、ループカウンタdの値が学習サンプルの総数Dと等しくなるまで、学習データ記憶部11から学習サンプルを取得する処理を繰り返し実行する。なお、ここでは、学習装置10内部のストレージに保存された学習データを取得する例を挙げたが、ネットワークを介して接続される外部のコンピュータ、例えばファイルサーバの他、リムーバブルメディア等から学習データが取得されることとしてもかまわない。
【0050】
このように学習サンプルが取得される度に、入力制御部13は、当該学習サンプルに含まれる学習用入力文をRNNエンコーダへ入力する。これによって、学習用入力文の単語列がベクトル化されたベクトル、いわゆる中間表現がRNNエンコーダからRNNデコーダへ出力される。これと同時または前後して、入力制御部13は、RNNデコーダに文末記号と呼ばれるEOSを出力させるまでの残り文字数を保持するレジスタの値を入力制御部13が設定した上限文字数に初期化する。これ以降のRNNデコーダへの入力、RNNデータからの出力、それを用いたモデルのパラメータの更新についてはその詳細を後述する。
【0051】
モデル実行部15は、RNNエンコーダ15A及びRNNデコーダ15Bが接続されたモデルを実行する処理部である。
【0052】
1つの側面として、モデル実行部15は、モデル記憶部12に記憶されたモデル情報にしたがって、入力制御部13により入力された学習用入力文の単語数Mに対応するM個のLSTMをワークエリア上に展開する。これによって、M個のLSTMをRNNエンコーダとして機能させる。このRNNエンコーダでは、入力制御部13による入力制御にしたがって、学習用入力文の先頭の単語から順に、学習用入力文の先頭からm番目の単語が当該m番目の単語に対応するLSTMへ入力されると共に、m-1番目の単語に対応するLSTMの出力がm番目の単語に対応するLSTMへ入力される。このような入力を先頭の単語に対応するLSTMから末尾であるM番目の単語に対応するLSTMまで繰り返すことにより、学習用入力文のベクトル、いわゆる中間表現が得られる。このようにRNNエンコーダにより生成された学習用入力文の中間表現がRNNデコーダへ入力される。
【0053】
他の側面としてとして、モデル実行部15は、モデル記憶部12に記憶されたモデル情報にしたがって、入力制御部13により入力された正解要約文の単語数Nに対応するN個のLSTMをワークエリア上に展開する。これによって、N個のLSTMをRNNデコーダとして機能させる。これらRNNデコーダには、入力制御部13の制御にしたがって、RNNエンコーダから学習用入力文の中間表現が入力されると共に、N個のLSTMごとに入力制御部13からEOSのタグを出力させるまでの残り文字数が入力される。これらの入力にしたがってN個のLSTMを動作させることにより、RNNデコーダは、N個のLSMTごとに単語の要素別の第1スコアを合成部17へ出力する。
【0054】
例えば、
図4で説明した通り、n時刻目のLSTMのセルには、n-1時刻目のLSTMのセルに更新された隠れ状態sと、n-1時刻目の正解要約文の単語xと、要約文の上限文字数までの残り文字数lとが入力される。なお、1時刻目のLSTMのセルには、RNNエンコーダから出力された隠れ状態sと、BOS(Begin Of Sentence)のタグと、要約文の上限文字数とが入力される。このような入力の下、n時刻目のLSTMのセルは、モデルの辞書に含まれる単語の要素ごとに、n-1時刻目までの文脈および残り文字数に基づいて当該単語の要素を要約文の単語とすべき度合いを第1スコアとして出力する。
【0055】
算出部16は、単語の要素ごとの単語長と、要約文の上限文字数までの残り文字数とに基づいて第2スコアを算出する処理部である。
【0056】
例えば、n時刻目の第2スコアを算出するとしたとき、算出部16は、
図4に破線の枠で囲んで示された通り、単語長情報11A1に含まれる単語の要素“a”、“America”、・・・、“<EOS>”ごとに単語長{1,7,・・・,6,・・・,3,0}がベクトル化された分散表現{b
1,b
2,・・・b
n}と、残り文字数lの分散表現との内積を単語の要素ごとに計算する。これによって、算出部16は、単語の要素“a”、“America”、・・・、“<EOS>”ごとに第2スコア{5,-40,・・・,30}を算出する。
【0057】
合成部17は、第1スコアおよび第2スコアを合成する処理部である。
【0058】
例えば、n時刻目の第1スコアおよび第2スコアを合成するとしたとき、合成部17は、
図4に破線の枠で囲んで示された通り、n時刻目のLSTMが出力する第1スコアおよび算出部16により算出された第2スコアを単語の要素“a”、“America”、・・・、“<EOS>”ごとに足し合わせる線形結合を行うことにより、第1スコアおよび第2スコアを合成する。これによって、単語の要素“a”、“America”、・・・、“<EOS>”ごとに第1スコアおよび第2スコアが合成された合成スコア{47+5,39+(-40),・・・,9+30}が得られる。その上で、合成部17は、単語の要素“a”、“America”、・・・、“<EOS>”ごとに合成された合成スコア{52,-1,・・・,39}の和が「1」になるように正規化する。これによって、n時刻目における各単語の生成確率の分布{0.3,0.01,・・・,0.1}が得られる。
【0059】
生成部18は、要約文の単語を生成する処理部である。
【0060】
一実施形態として、生成部18は、合成部17によりn時刻目に出力される各単語の生成確率の分布で確率が最大である単語を要約文の先頭からn番目の単語として生成する。
【0061】
更新部19は、モデルのパラメータを更新する処理部である。
【0062】
一実施形態として、更新部19は、生成部18により要約文のn番目の単語が生成された場合、正解要約文に含まれる単語のうちn番目の単語と、生成部18により生成されたn番目の単語とから損失を算出する。その上で、更新部19は、RNNデコーダのN個のLSTMごとに損失が算出された場合、各LSTMの損失に基づいて対数尤度の最適化を実行することにより、RNNデコーダのモデルを更新するパラメータを算出する。その上で、更新部19は、モデル記憶部12に記憶されたモデルのパラメータを対数尤度の最適化により求められたパラメータに更新する。このパラメータの更新は、全ての学習サンプルにわたって繰り返し実行すると共に、学習データDについても所定のエポック数にわたって繰り返し実行することができる。
【0063】
[モデル学習の具体例]
以下、モデルのパラメータ更新の前後で単語の生成確率の分布を対比する。ここで、Tラウンド目のモデル学習に用いられる単語の生成確率の分布が算出される例を
図5に示す一方で、T+1ラウンド目のモデル学習に用いられる単語の生成確率の分布が算出される例を
図6に示す。
【0064】
図5及び
図6は、単語の生成確率の分布の算出例の一例を示す図である。
図5及び
図6には、学習用入力文と共に入力される正解要約文の単語数Nに対応する時刻ごとにモデルのRNNデコーダとして展開されるN個のLSTMのセルのうちn-1時刻目のLSTMのセルに要約文の上限文字数までの残り文字数l(=2)が入力される例が示されている。
【0065】
図5に示すように、n-1時刻目のLSTMのセルには、n-2時刻目のLSTMのセルに更新された隠れ状態sと、n-2時刻目の正解要約文の単語xと、要約文の上限文字数までの残り文字数「2」とが入力される。このような入力の下、n-1時刻目のLSTMのセルは、モデルの辞書に含まれる単語の要素ごとに、n-2時刻目までの文脈および残り文字数に基づいて当該単語の要素を要約文の単語とすべき度合いを第1スコアとして出力する。これによって、単語の要素“a”、“America”、・・・、“<EOS>”ごとに第1スコア{47,39,・・・,9}が出力される。
【0066】
このようなLSTMのセルによる第1スコアの算出と並行して、上記の第2スコアが算出される。すなわち、
図5に破線の枠で囲んで示された通り、単語長情報11A1に含まれる単語の要素“a”、“America”、・・・、“<EOS>”ごとに単語長{1,7,・・・,6,・・・,3,0}が分散表現{b
1,b
2,・・・b
n}にベクトル化される。このような単語長の分散表現{b
1,b
2,・・・b
n}と、要約文の上限文字数までの残り文字数「2」の分散表現との内積が単語の要素ごとに計算される。これによって、単語の要素“a”、“America”、・・・、“<EOS>”ごとに第2スコア{-1,6,・・・,2}が算出される。
【0067】
その上で、第1スコアおよび第2スコアを単語の要素“a”、“America”、・・・、“<EOS>”ごとに足し合わせる線形結合を行うことにより合成される。これによって、単語の要素“a”、“America”、・・・、“<EOS>”ごとに第1スコアおよび第2スコアが合成された合成スコア{47+(-1),39+6,・・・,9+2}が得られる。その上で、単語の要素“a”、“America”、・・・、“<EOS>”ごとに合成されたスコア{46,45,・・・,11}の和が「1」になるように正規化される。これによって、n-1時刻目における各単語の生成確率の分布{0.1,0.2,・・・,0.01}が得られる。
【0068】
その後、n-1時刻目における各単語の生成確率の分布{0.1,0.2,・・・,0.01}に基づいてTラウンド目のモデル学習が行われる。
【0069】
次に、T+1ラウンド目では、
図6に示すように、n-1時刻目のLSTMのセルには、n-2時刻目のLSTMのセルに更新された隠れ状態sと、n-2時刻目の正解要約文の単語xと、要約文の上限文字数までの残り文字数「2」とが入力される。このような入力の下、n-1時刻目のLSTMのセルは、モデルの辞書に含まれる単語の要素ごとに、n-2時刻目までの文脈および残り文字数に基づいて当該単語の要素を要約文の単語とすべき度合いを第1スコアとして出力する。これによって、単語の要素“a”、“America”、・・・、“<EOS>”ごとに第1スコア{47,39,・・・,9}が出力される。
【0070】
このようなLSTMのセルによる第1スコアの算出と並行して、上記の第2スコアが算出される。すなわち、
図6に破線の枠で囲んで示された通り、単語長情報11A1に含まれる単語の要素“a”、“America”、・・・、“<EOS>”ごとに単語長{1,7,・・・,6,・・・,3,0}が分散表現{b
1,b
2,・・・b
n}にベクトル化される。このような単語長の分散表現{b
1,b
2,・・・b
n}と、要約文の上限文字数までの残り文字数「2」の分散表現との内積が単語の要素ごとに計算される。これによって、単語の要素“a”、“America”、・・・、“<EOS>”ごとに第2スコア{20,-30,・・・,30}が算出される。
【0071】
その上で、第1スコアおよび第2スコアを単語の要素“a”、“America”、・・・、“<EOS>”ごとに足し合わせる線形結合を行うことにより合成される。これによって、単語の要素“a”、“America”、・・・、“<EOS>”ごとに第1スコアおよび第2スコアが合成された合成スコア{47+20,39+(-30),・・・,9+30}が得られる。その上で、単語の要素“a”、“America”、・・・、“<EOS>”ごとに合成されたスコア{67,9,・・・,39}の和が「1」になるように正規化される。これによって、n-1時刻目における各単語の生成確率の分布{0.4,0.05,・・・,0.01}が得られる。
【0072】
ここで、Tラウンド目における各単語の生成確率の分布{0.1,0.2,・・・,0.01}と、T+1ラウンド目における各単語の生成確率の分布{0.4,0.05,・・・,0.01}を比較することにより、次のことがわかる。
【0073】
すなわち、Tラウンド目では、単語“America”の生成確率が最も高くなる。このため、残り文字数が「2」であるにもかかわらず、n-1時刻目で7文字の単語“America”が生成されてしまう。それ故、残り文字数「2」からスペース+単語“America”の8文字が減算される結果、上限文字数から6文字も超える要約文が生成されてしまう。
【0074】
一方、T+1ラウンド目では、単語“America”の生成確率は0.05まで下がり、単語“a”の生成確率は0.4まで上がる。このため、残り文字数が「2」であるにもかかわらず、n-1時刻目にスペース込みで8文字の単語“America”ではなく、スペース込みでも2文字の単語“a”を生成することができる。それ故、残り文字数「2」からスペース+単語“a”の2文字が減算される。この結果、要約文の上限文字数の近傍でモデルが生成する単語の文字数を残りの文字数に近付け、上限文字数を超えないモデル学習を実現できる。
【0075】
[生成装置30の構成]
図1に示すように、生成装置30は、入力制御部31と、モデル実行部32と、算出部33と、合成部34と、生成部35とを有する。なお、生成装置30は、
図1に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【0076】
図1に示す入力制御部31、モデル実行部32、算出部33、合成部34及び生成部35などの機能部は、あくまで例示として、下記のハードウェアプロセッサにより仮想的に実現される。このようなプロセッサの例として、DLUを始め、GPGPUやGPUクラスタなどが挙げられる。この他、CPU、MPUなどが挙げられる。すなわち、プロセッサがRAM等のメモリ上に上記の要約生成プログラムをプロセスとして展開することにより、上記の機能部が仮想的に実現される。ここでは、プロセッサの一例として、DLUやGPGPU、GPUクラスタ、CPU、MPUを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部は、ASICやFPGAなどのハードワイヤードロジックによって実現されることを妨げない。
【0077】
入力制御部31は、モデルに対する入力を制御する処理部である。
【0078】
一実施形態として、入力制御部31は、要約文生成のリクエストを受け付けた場合に処理を起動する。このように処理が起動されると、入力制御部31は、要約文生成の対象とする入力文と共に、学習済みモデルに生成させる要約文の上限文字数の指定を受け付ける。その後、入力制御部31は、入力文をRNNエンコーダへ入力する。これによって、入力文の単語列がベクトル化されたベクトル、いわゆる中間表現がRNNエンコーダからRNNデコーダへ出力される。これと同時または前後して、入力制御部31は、RNNデコーダに文末記号と呼ばれるEOSを出力させるまでの残り文字数を保持するレジスタの値を上記の指定の上限文字数に初期化する。これ以降のRNNデコーダへの入力、RNNデータからの出力、それを用いた要約文の生成についてはその詳細を後述する。
【0079】
モデル実行部32は、RNNエンコーダ及びRNNデコーダが接続されたモデルを実行する処理部である。
【0080】
1つの側面として、モデル実行部32は、モデル記憶部12に記憶された学習済みモデルのモデル情報にしたがって、入力制御部31により入力された入力文の単語数Kに対応するK個のLSTMをワークエリア上に展開することにより、これらK個のLSTMをRNNエンコーダとして機能させる。このRNNエンコーダでは、入力制御部31による入力制御にしたがって、入力文の先頭の単語から順に、入力文の先頭からk番目の単語が当該k番目の単語に対応するLSTMへ入力されると共に、k-1番目の単語に対応するLSTMの出力がk番目の単語に対応するLSTMへ入力される。このような入力を先頭の単語に対応するLSTMから末尾であるK番目の単語に対応するLSTMまで繰り返すことにより、入力文のベクトル、いわゆる中間表現が得られる。このようにRNNエンコーダにより生成された入力文の中間表現がRNNデコーダへ入力される。
【0081】
他の側面として、モデル実行部32は、モデル記憶部12に記憶された学習済みモデルのモデル情報にしたがって、EOSのタグが出力されるまでLSTMをワークエリア上に展開することにより、EOSのタグが出力されるまで展開されたJ個のLSTMをRNNデコーダとして機能させる。これらRNNデコーダには、入力制御部31の制御にしたがって、RNNエンコーダから入力文の中間表現が入力されると共に、J個のLSTMごとに入力制御部31からEOSのタグを出力させるまでの残り文字数が入力される。これらの入力にしたがってJ個のLSTMを動作させることにより、RNNデコーダは、J個のLSMTごとに単語の要素別の第1スコアを合成部17へ出力する。
【0082】
例えば、j(1~Jの自然数)時刻目のLSTMのセルには、j-1時刻目のLSTMのセルに更新された隠れ状態s′と、j-1時刻目に生成された要約文の単語x′と、要約文の上限文字数までの残り文字数l′とが入力される。なお、1時刻目のLSTMのセルには、RNNエンコーダから出力された隠れ状態s′と、BOSのタグと、要約文の上限文字数とが入力される。このような入力の下、j時刻目のLSTMのセルは、モデルの辞書に含まれる単語の要素ごとに、j-1時刻目までの文脈および残り文字数に基づいて当該単語の要素を要約文の単語とすべき度合いを第1スコアとして出力する。
【0083】
算出部33は、単語の要素ごとの単語長と、要約文の上限文字数までの残り文字数とに基づいて第2スコアを算出する処理部である。
【0084】
例えば、j時刻目の第2スコアを算出するとしたとき、算出部33は、単語長情報11A1に含まれる単語の要素“a”、“America”、・・・、“<EOS>”ごとに単語長{1,7,・・・,6,・・・,3,0}がベクトル化された分散表現{b1,b2,・・・bn}と、残り文字数l′の分散表現との内積を単語の要素ごとに計算する。これによって、算出部33は、単語の要素“a”、“America”、・・・、“<EOS>”ごとに第2スコアを算出する。
【0085】
合成部34は、第1スコアおよび第2スコアを合成する処理部である。
【0086】
例えば、j時刻目の第1スコアおよび第2スコアを合成するとしたとき、合成部34は、j時刻目のLSTMが出力する第1スコアおよび算出部33により算出された第2スコアを単語の要素“a”、“America”、・・・、“<EOS>”ごとに足し合わせる線形結合を行うことにより、第1スコアおよび第2スコアを合成する。これによって、単語の要素“a”、“America”、・・・、“<EOS>”ごとに第1スコアおよび第2スコアが合成された合成スコアが得られる。その上で、合成部34は、単語の要素“a”、“America”、・・・、“<EOS>”ごとに合成された合成スコアの和が「1」になるように正規化する。これによって、j時刻目における各単語の生成確率の分布が得られる。
【0087】
生成部35は、要約文を生成する処理部である。
【0088】
一実施形態として、生成部35は、RNNデコーダのj番目のLSTMから単語の確率分布が出力された場合、当該確率分布で確率が最大である単語を要約文の先頭からj番目の単語として生成する。その後、生成部35は、RNNデコーダのJ番目のLSTMからEOSのタグが出力された場合、先頭のLSTMからJ番目のLSTMから順に生成された単語を結合することにより要約文を生成し、生成された要約文を所定の出力先、例えば生成装置30に接続された端末装置等へ出力する。
【0089】
[要約文生成の具体例]
以下、
図7及び
図8を用いて、従来技術および本実施例における要約文生成の具体例を説明する。
【0090】
図7及び
図8は、要約文生成の一例を示す図である。
図7には、従来技術における単語の生成確率の分布の算出方法にしたがって要約文が生成される動作例が模式的に示されている。一方、
図8には、本実施例における単語の生成確率の分布の算出方法にしたがって要約文が生成される動作内容が模式的に示されている。
【0091】
(イ)従来技術の要約文生成
図7に示すように、1時刻目には、入力制御部31の制御にしたがって、RNNエンコーダの末尾のLSTMから入力文の中間表現が先頭のLSTM32D1へ入力される。これと共に、先頭のLSTM32D1には、入力制御部31からBOSのタグと共に、RNNデコーダにEOSを出力させるまでの残り文字数の初期値として指定の上限文字数「53」が入力される。このような入力の結果、LSTM32D1は、学習済みモデルの辞書に登録された単語、すなわち学習サンプル全体で学習用入力文に出現する単語ごとに確率を計算することにより1時刻目(t=1)における単語の確率分布を算出すると共に、入力文40の中間表現を更新する。その上で、LSTM32D1は、1時刻目における単語の確率分布を生成部35へ出力すると共に、1時刻目に更新された中間表現を次段のLSTM32D2へ出力する。
【0092】
このように1時刻目における単語の確率分布が出力された場合、生成部35は、当該確率分布で確率が最大である単語、本例では「markets」を要約文の先頭の単語として生成する。その後、入力制御部31は、レジスタに保持された残り文字数の初期値「53」から、スペース分の文字数「1」と、1時刻目に生成された単語「markets」の文字数「7」との合計「8」を減算することにより、残り文字数の値を「53」から「45」へ更新する。
【0093】
次に、2時刻目には、1時刻目に更新された中間表現がLSTM32D1からLSTM32D2へ入力される。これと共に、LSTM32D2には、入力制御部31の制御にしたがって、2時刻目の1時刻前、すなわち1時刻目に生成された単語「markets」が入力されると共に、レジスタに保持された残り文字数「45」が入力される。これによって、LSTM32D2は、学習済みモデルの辞書に登録された単語ごとに確率を計算することにより2時刻目(t=2)における単語の確率分布を算出すると共に、隠れ状態を更新する。その上で、LSTM32D2は、2時刻目における単語の確率分布を生成部35へ出力すると共に、2時刻目に更新された中間表現を次段のLSTM32D3へ出力する。
【0094】
このように2時刻目における単語の確率分布が出力された場合、生成部35は、当該確率分布で確率が最大である単語、本例では「in」を要約文の先頭から2番目の単語として生成する。その後、入力制御部31は、レジスタに保持された残り文字数の値「45」から、スペース分の文字数「1」と、2時刻目に生成された単語「in」の文字数「2」との合計「3」を減算することにより、残り文字数の値を「45」から「42」へ更新する。
【0095】
このような処理がLSTM32D10から文末記号「BOS」が出力される10時刻目まで繰り返し実行される。この結果、1時刻目から10時刻目までに生成された単語が結合されることにより、要約文“markets in united states of america closed for vacation <EOS>”が生成される。
【0096】
(ロ)本実施例の要約文生成
図8に示すように、1時刻目には、入力制御部31の制御にしたがって、RNNエンコーダの末尾のLSTMから入力文の中間表現が先頭のLSTM32D1へ入力される。これと共に、先頭のLSTM32D1には、入力制御部31からBOSのタグと共に、RNNデコーダにEOSを出力させるまでの残り文字数の初期値として指定の上限文字数「53」が入力される。このような入力の結果、LSTM32D1は、学習済みモデルの辞書に登録された単語の要素ごとに第1スコアを出力すると共に、入力文の隠れ状態を更新して1時刻目に更新された更新状態を次段のLSTM32D2へ出力する。さらに、算出部33により単語の要素ごとに第2スコアが算出される。その上で、合成部34は、第1スコアおよび第2スコアが合成された合成スコアを正規化することにより1時刻目(t=1)における単語の生成確率の分布を算出する。そして、合成部34は、1時刻目における単語の確率分布を生成部35へ出力する。
【0097】
このように1時刻目における単語の確率分布が出力された場合、生成部35は、当該確率分布で確率が最大である単語、本例では「markets」を要約文の先頭の単語として生成する。その後、入力制御部31は、レジスタに保持された残り文字数の初期値「53」から、スペース分の文字数「1」と、1時刻目に生成された単語「markets」の文字数「7」との合計「8」を減算することにより、残り文字数の値を「53」から「45」へ更新する。
【0098】
次に、2時刻目には、1時刻目に更新された中間表現がLSTM32D1からLSTM32D2へ入力される。これと共に、LSTM32D2には、入力制御部31の制御にしたがって、2時刻目の1時刻前、すなわち1時刻目に生成された単語「markets」が入力されると共に、レジスタに保持された残り文字数「45」が入力される。このような入力の下、LSTM32D2は、学習済みモデルの辞書に登録された単語の要素ごとに第1スコアを出力すると共に、1時刻目のLSTM32D1の隠れ状態を更新して2時刻目に更新された隠れ状態を次段のLSTM32D3へ出力する。さらに、算出部33により単語の要素ごとに第2スコアが算出される。その上で、合成部34は、第1スコアおよび第2スコアが合成された合成スコアを正規化することにより2時刻目(t=2)における単語の生成確率の分布を算出する。そして、合成部34は、2時刻目における単語の確率分布を生成部35へ出力する。
【0099】
このように2時刻目における単語の確率分布が出力された場合、生成部35は、当該確率分布で確率が最大である単語、本例では「in」を要約文の先頭から2番目の単語として生成する。その後、入力制御部31は、レジスタに保持された残り文字数の値「45」から、スペース分の文字数「1」と、2時刻目に生成された単語「in」の文字数「2」との合計「3」を減算することにより、残り文字数の値を「45」から「42」へ更新する。
【0100】
このような処理がLSTM32D10から文末記号「BOS」が出力される10時刻目まで繰り返し実行される。この結果、1時刻目から10時刻目までに生成された単語が結合されることにより、要約文“markets in united states of america closed for holiday <EOS>”が生成される。
【0101】
(ハ)対比
上記(イ)および上記(ロ)を対比すると、9時刻目の結果に差が現れていることがわかる。例えば、上記(イ)では、9時刻目にモデルが単語“vacation”を出力されることにより、残り文字数「7」から単語“vacation”の文字数「8」が減算されている。この結果、上限文字数から1文字超える要約文が生成されてしまう。一方、例えば、上記(ロ)では、9時刻目にモデルが単語“vacation”と意味が類似する単語“holiday”を出力されることにより、残り文字数「7」から単語“holiday”の文字数「7」が減算されている。この結果、上限文字数を超えず、上限文字数にぴったり収まる要約文が生成される。したがって、本実施例に係る生成装置30によれば、要約文の上限文字数の近傍でモデルが生成する単語の文字数を残りの文字数に近付け、上限文字数を超えない要約生成を実現できる。
【0102】
[処理の流れ]
次に、本実施例に係るシステムの処理の流れについて説明する。ここでは、学習装置10により実行される(A)学習処理について説明した後に、生成装置30により実行される(B)生成処理について説明することとする。
【0103】
(A)学習処理
図9は、実施例1に係る学習処理の手順を示すフローチャートである。この学習処理は、一例として、モデル学習のリクエストを受け付けた場合に開始される。
図9に示すように、入力制御部13は、モデルに生成させる要約文の上限文字数を設定する(ステップS101)。続いて、学習データに含まれるD個の学習サンプルdごとに、ステップS102~ステップS111の処理が実行される。
【0104】
すなわち、入力制御部13は、学習データ記憶部11に記憶された学習データのうち学習サンプルdを1つ取得する(ステップS102)。続いて、入力制御部13は、ステップS102で取得された学習サンプルdに含まれる学習用入力文をRNNエンコーダへ入力する(ステップS103)。これによって、学習用入力文の単語列が中間表現へ変換される。
【0105】
そして、入力制御部13は、RNNデコーダにEOSのタグを出力させるまでの残り文字数を保持するレジスタの値をステップS101で設定された上限文字数に初期化する(ステップS104)。
【0106】
その後、正解要約文のM個の単語の先頭から順の各時刻ごとに、ステップS105~ステップS110の処理が実行される。
【0107】
すなわち、入力制御部13は、レジスタに保持された残り文字数と、BOSのタグもしくは1時刻前の正解の単語とをRNNデコーダのうち現時刻に対応するLSTMへ入力する(ステップS105A)。このようなLSTMへの入力によって、現時刻における単語の要素別の第1スコアが算出されると共に、学習用入力文の中間表現が更新される。
【0108】
また、算出部16は、単語の長さの分散表現と、残り文字数lの分散表現との内積を単語の要素ごとに計算することにより単語の要素ごとに第2スコアを算出する(ステップS105B)。
【0109】
そして、合成部17は、LSTMが出力する第1スコアおよび算出部16により算出された第2スコアを単語の要素ごとに足し合わせる線形結合を行うことにより、第1スコアおよび第2スコアを合成する(ステップS106)。
【0110】
その上で、合成部17は、ステップS106で第1スコアおよび第2スコアが合成された合成スコアを正規化することにより、単語の生成確率の分布を生成する(ステップS107)。そして、生成部18は、単語の生成確率の分布で確率が最大である単語を生成する(ステップS108)。続いて、更新部19は、正解要約文に含まれる単語のうち現時刻に対応する単語と、ステップS108で生成された単語とから現時刻における損失を算出する(ステップS109)。
【0111】
その後、入力制御部13は、レジスタに保持された残り文字数からステップS108で生成された単語の文字数を減算することにより、レジスタの残り文字数の値を更新する(ステップS110)。
【0112】
そして、正解要約文のM個の単語ごとに損失が算出されると、更新部19は、各LSTMの損失に基づいて対数尤度の最適化を実行することにより、RNNデコーダのモデルを更新するパラメータを算出した上で、モデル記憶部12に記憶されたモデルのパラメータを更新する(ステップS111)。
【0113】
その後、学習データに含まれる全ての学習サンプルdについてモデルのパラメータの更新が実行されると、学習装置10は、学習済みのモデルを生成装置30へ出力し(ステップS112)、処理を終了する。
【0114】
(B)生成処理
図10は、実施例1に係る生成処理の手順を示すフローチャートである。この学習処理は、一例として、要約文生成のリクエストを受け付けた場合に開始される。
図10に示すように、入力制御部31は、入力文を取得すると共に、学習済みモデルに生成させる要約文の上限文字数の指定を受け付ける(ステップS301及びステップS302)。その後、入力制御部31は、入力文をRNNエンコーダへ入力する(ステップS303)。これによって、入力文の単語列が中間表現へ変換される。
【0115】
そして、入力制御部13は、RNNデコーダにEOSのタグを出力させるまでの残り文字数を保持するレジスタの値をステップS302で指定された上限文字数に初期化する(ステップS304)。
【0116】
その後、RNNデコーダからEOSのタグが出力されるまで、ステップS305~ステップS309の処理が実行される。
【0117】
すなわち、入力制御部31は、レジスタに保持された残り文字数と、BOSのタグもしくは1時刻前に生成された単語とをRNNデコーダのうち現時刻に対応するLSTMへ入力する(ステップS305A)。このようなLSTMへの入力によって、現時刻における単語の要素別の第1スコアが算出されると共に、隠れ状態が更新される。
【0118】
また、算出部33は、単語の長さの分散表現と、残り文字数lの分散表現との内積を単語の要素ごとに計算することにより単語の要素ごとに第2スコアを算出する(ステップS305B)。
【0119】
そして、合成部34は、ステップ305Aで出力された第1スコアおよび算出部33により算出された第2スコアを単語の要素ごとに足し合わせる線形結合を行うことにより、第1スコアおよび第2スコアを合成する(ステップS306)。
【0120】
その上で、合成部34は、ステップS306で第1スコアおよび第2スコアが合成された合成スコアを正規化することにより、単語の生成確率の分布を生成する(ステップS307)。そして、生成部35は、単語の生成確率の分布で確率が最大である単語を生成する(ステップS308)。
【0121】
続いて、入力制御部31は、レジスタに保持された残り文字数からステップS308で生成された単語の文字数を減算することにより、レジスタの残り文字数の値を更新する(ステップS309)。
【0122】
そして、RNNデコーダからEOSのタグが出力されると、生成部35は、先頭のLSTMからL番目のLSTMから順に生成された単語を結合することにより要約文を生成して要約文を所定の出力先へ出力し(ステップS310)、処理を終了する。
【0123】
[効果の一側面]
上述してきたように、本実施例に係る学習装置10及び生成装置30は、モデルが辞書の単語ごとに出力する第1スコアに、モデルの辞書の単語ごとに単語の長さおよび要約文の上限文字数までの残り文字数から求まる第2スコアを合成して単語の生成確率の分布を算出する。したがって、本実施例に係る学習装置10及び生成装置30によれば、要約文の上限文字数の近傍でモデルが生成する単語の文字数を残りの文字数に近付けることが可能である。
【実施例2】
【0124】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0125】
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、入力制御部13、モデル実行部15、算出部16、合成部17、生成部18及び更新部19を学習装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、入力制御部13、モデル実行部15、算出部16、合成部17、生成部18及び更新部19を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の学習装置10の機能を実現するようにしてもよい。
【0126】
[学習プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、
図11を用いて、上記の実施例と同様の機能を有する学習プログラムを実行するコンピュータの一例について説明する。
【0127】
図11は、実施例1及び実施例2に係る学習プログラムを実行するコンピュータのハードウェア構成例を示す図である。
図11に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110~180の各部はバス140を介して接続される。
【0128】
HDD170には、
図11に示すように、上記の実施例1で示した入力制御部13、モデル実行部15、算出部16、合成部17、生成部18及び更新部19と同様の機能を発揮する学習プログラム170aが記憶される。この学習プログラム170aは、
図1に示した入力制御部13、モデル実行部15、算出部16、合成部17、生成部18及び更新部19の各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
【0129】
このような環境の下、CPU150は、HDD170から学習プログラム170aを読み出した上でRAM180へ展開する。この結果、学習プログラム170aは、
図11に示すように、学習プロセス180aとして機能する。この学習プロセス180aは、RAM180が有する記憶領域のうち学習プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、学習プロセス180aが実行する処理の一例として、
図9~
図10に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【0130】
なお、上記の学習プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に学習プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から学習プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに学習プログラム170aを記憶させておき、コンピュータ100がこれらから学習プログラム170aを取得して実行するようにしてもよい。
【符号の説明】
【0131】
10 学習装置
11 学習データ記憶部
12 モデル記憶部
13 入力制御部
15 モデル実行部
16 算出部
17 合成部
18 生成部
19 更新部
30 生成装置
31 入力制御部
32 モデル実行部
33 算出部
34 合成部
35 生成部