以下に、本願に係る学習装置、生成装置、学習方法、生成方法、学習プログラム、生成プログラム、及びモデルを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、以下の実施形態により本願に係る学習装置、生成装置、学習方法、生成方法、学習プログラム、生成プログラム、及びモデルが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
〔1−1.情報処理装置の一例〕
最初に、生成装置および学習装置の一例である情報処理装置が実行する学習処理および生成処理の一例について説明する。図1は、実施形態に係る情報処理装置が実行する処理の一例を示す図である。情報処理装置10は、インターネット等の所定のネットワークを介して、所定のクライアントが使用するデータサーバ20および端末装置30と通信可能である。
情報処理装置10は、後述の学習処理及び生成処理を実行する装置である。情報処理装置10は、サーバ装置やクラウドシステム等により実現される。
データサーバ20は、情報処理装置10が後述する学習処理を実行する際に用いる学習データや、情報処理装置10が後述する生成処理を実行する際に出力する配信コンテンツを管理する情報処理装置である。データサーバ20は、サーバ装置やクラウドシステム等により実現される。データサーバ20は、例えば、端末装置30に対してニュースや、利用者によって投稿された各種のコンテンツを配信する配信サービスを実行する。このような配信サービスは、例えば、各種ニュースの配信サイトやSNS(Social Networking Service)等により実現される。
端末装置30は、スマートフォンやタブレット等のスマートデバイスであり、3G(3rd Generation)やLTE(Long Term Evolution)等の無線通信網を介して任意のサーバ装置と通信を行うことができる携帯端末装置である。なお、端末装置30は、スマートデバイスのみならず、デスクトップPC(Personal Computer)やノートPC等の情報処理装置であってもよい。
〔1−2.要約コンテンツの配信について〕
ここで、データサーバ20は、配信対象となる配信コンテンツが複数存在する場合には、各コンテンツを全て配信するのではなく、各コンテンツの要約となるテキストが含まれる要約コンテンツを端末装置30へと配信することがある。配信コンテンツは、例えば、情報媒体或いは情報の配信主体から取得したニュース記事である。一例として、要約コンテンツは、配信コンテンツへのリンクが張られたポータルサイトのトップページである。
なお、情報媒体とは、情報の配信媒体或いは掲載媒体を示す情報であり、例えば、“新聞”、“雑誌”等を示す情報である。また、配信主体とは、ニュース記事等の情報を配信する組織或いは個人である。例えば、配信主体は、新聞社、出版社、放送局(テレビ局、ラジオ局)等のマスメディアである。勿論、配信主体はマスメディアに限定されない。配信主体は、ポータルサイトの運営者であってもよいし、携帯電話会社であってもよい。配信主体は、情報処理装置10の運営者自身であってもよい。
図2は、コンテンツが表示された端末装置30を示す図である。図2の状態J1は、ポータルサイトのトップページが表示された様子を示す図であり、図2の状態J2は、配信コンテンツC11を含むページが表示された様子を示す図である。配信コンテンツC11は、例えば、所定の配信主体から情報処理装置10の運営者(例えば、ポータルサイトの運営者)が取得したニュース記事である。状態J1に示す端末装置30には、記事へのリンクが張られたタイルが複数配置されたページが表示されている。各タイルには、配信コンテンツの内容を示すテキスト(以下、見出しという。)が表示されている。例えば、縦一列に並ぶ複数のタイルの一番上のタイルには、見出しU11が表示されている。見出しU11は配信コンテンツC11の内容に対応するテキストである。ユーザが見出しU11が表示されたタイルをタップすると、端末装置30には、配信コンテンツC11を含む画面が表示される。配信コンテンツC11には、記事の本文K11と、記事のタイトルT11が含まれている。
配信コンテンツに対応付けられるテキスト(例えば、ポータルサイトのトップページに掲載される見出し)は、配信コンテンツの内容に基づいて人が作成する。例えば、見出しU11は、配信コンテンツC11に含まれるタイトルT11をポータルサイトの運営者の従業員が読んで要約することにより作成される。しかしながら、配信コンテンツごとに、人手で見出しを生成するのは、手間がかかる。
そこで、各種情報が有する特徴を学習した学習モデル(以下、単にモデルという。)を用いて、配信コンテンツから見出しを自動的に生成することが考えらえる。例えば、配信コンテンツに含まれるテキスト(例えば、タイトル)から、見出しとなるタイトルを自動的に生成することが考えられる。しかしながら、モデルを使用して生成されたテキストは精度(例えば、正確性)が低いことがある。例えば、モデルを使用して生成されたテキストは、文章としては正しいが、元文書の内容を正しく表していないテキストとなる場合がある。例えば、モデルを使用して生成されたテキストは、元の文書が「警察が犯人を逮捕」を意味する文書であったにも関わらず、出力される文書が「警察を犯人が逮捕」となる等、明らかに不自然な場合がある。
〔1−3.関係情報を使った処理の一例〕
〔1−3−1.学習処理について〕
そこで、情報処理装置10は、以下の学習処理を実行することで、配信コンテンツに含まれるテキスト(例えば、タイトル)から見出しとなるテキストを生成するためのモデルの学習を行う。以下、図1を参照しながら情報処理装置10が実行する学習処理の一例について説明する。
まず、情報処理装置10は、データサーバ20から学習データとなる情報を取得する(ステップS11)。例えば、情報処理装置10は、データサーバ20から、過去、ユーザに配信された配信コンテンツを取得する。そして、情報処理装置10は、データサーバ20から取得した情報を学習データデータベースに登録する。
図3は、学習データデータベースに登録される学習データの一例を示す図である。学習データデータベースには、学習データとして、本文、タイトル、および見出しを関連付けた情報が登録される。本文、タイトル、および見出しの組には、それぞれ、学習データID(Identifier)が付されている。「本文」及び「タイトル」は、配信コンテンツに含まれるテキストである。
「見出し」は、配信コンテンツの内容をユーザが容易に把握するためのテキストである。見出しは、配信コンテンツに含まれるテキスト(例えば、本文或いはタイトル)に対応するテキストである。学習データとなる見出しは、配信コンテンツに含まれるテキストを所定の者(例えば、ポータルサイトの運営者の従業員)が読んで要約することにより作成される。なお、見出しは、所定の条件を満たすよう生成される。例えば、見出しは、所定の文字数以下となるよう生成される。一例として、見出しは、13.5文字以下となるよう生成される。このとき、13.5文字は、全角文字1個を1文字とした文字数である。半角文字1文字は0.5文字である。以下の説明では、所定の条件のことを「生成条件」という。生成条件は、13.5文字以下に限定されない。生成条件となる文字数は、13.5文字より多くてもよいし少なくてもよい。勿論、生成条件は文字数に限定されない。
なお、「見出し」は、要約、タイトル、短縮タイトル、トピック、トピック見出し等と言い換えることができる。同様に、配信コンテンツに含まれる「タイトル」も、要約等と言い換えることができる。本実施形態では、「見出し」は、配信コンテンツに含まれる「タイトル」に基づき作成される短縮テキストであるものとする。勿論、「見出し」は本文に基づき作成された短縮テキストであってもよい。なお、構文上は文が短縮されていても、「見出し」の文字数が「タイトル」の文字数より多くなることがあり得る。例えば、「タイトル」に含まれる略語を正式名称に置き換えた場合は、構文上は文が短縮されていても、結果として文字数が増えることがある。このような場合も、「見出し」は「タイトル」の短縮テキストである。
図1に戻り、情報処理装置10は、学習データデータベースに登録されたデータの中から、タイトルと見出しとの組を複数組取得する。そして、情報処理装置10は、タイトルと見出しとに基づいて、モデルM1(第1のモデル)の学習を行う。モデルM1は、モデルに入力されるデータから生成条件を満たすテキストを生成するモデルである。
上述したように、モデルを使用して生成されたテキストは精度(例えば、正確性)が低いことがある。例えば、モデルを使用して生成されたテキストは、元の文書が「警察が犯人を逮捕」を意味する文書であったにも関わらず、出力される文書が「警察を犯人が逮捕」となる等、明らかに不自然な場合がある。そこで、本実施形態では、情報処理装置10は、タイトルを入力データとするのではなく、第1のテキストに関する情報を入力データとしてモデルMの学習を行う。より具体的には、情報処理装置10は、第1のテキストの関係情報を入力データとしてモデルMの学習を行う。関係情報は、テキストに含まれる複数のワードのワード間の関係を示す情報である。例えば、関係情報は、テキストに含まれる複数のワードの係り受け構造を示す情報(以下、係り受け情報)である。なお、以下の説明では、学習時、関係情報の生成対象となるテキストのことを「第1のテキスト」と呼ぶことがある。第1のテキストはタイトルに限られない。第1のテキストは本文であってもよい。
情報処理装置10は、第1のテキストの関係情報を生成する(ステップS12)。図4は、情報処理装置10が関係情報を生成する様子を示す図である。例えば、第1のテキストであるタイトルが“俳優Aが妻が妊娠中であることを発表した”であるとする。この場合、情報処理装置10は、第1のテキストを構文解析(例えば、係り受け解析)し、例えば、図4の中段に示すような係り受け情報を生成する。情報処理装置10は、第1のテキストを形態素解析して係り受け情報を生成してもよい。そして、情報処理装置10は解析結果(例えば、係り受け情報)を関係情報として取得する。図4の中段の関係情報は、ワードとワードの係り受け構造を木構造にして視認可能にしたものである。
なお、情報処理装置10は、第1のテキストに含まれるワードの述語構造を示す情報(以下、述語構造情報という。)を関係情報として取得してもよい。第1のテキストに含まれるワードの格解析結果等を含む情報である。例えば、図4の例で、第1のテキストに含まれる“発表した”の述語構造情報は例えば“<用言:動><格解析結果:ガ/A;ヲ/事;二/−;ト/−;デ/−;時間/―>”である。この例では、“発表した”は用言(動詞)であり、格助詞の“ガ”を有する“A”と、格助詞の“ヲ”を有する“事”とが係っていることを示している。
また、情報処理装置10は、第1のテキスト(例えば、タイトル)の関係情報を短縮したものを関係情報としてもよい。例えば、図4の例であれば、情報処理装置10は、木構造で示される関係情報の枝の一部を取り除いた図4の下段に示される木構造の情報を新たな関係情報としてもよい。以下の説明では、関係情報を短縮して得られる関係情報のことを短縮関係情報と呼ぶことがある。情報処理装置10は、短縮関係情報が生成予定の短縮テキスト(例えば、見出し)に相当するよう関係情報を短縮してもよい。
情報処理装置10は、第1のテキスト(本実施形態の場合、タイトル)の関係情報を入力データ、見出しを正解データとしてモデルM1の学習(例えば、教師あり学習)を行う(ステップS13)。なお、以下の説明では、学習の際、正解データとなるテキスト(本実施形態の場合、見出し)のことを「第2のテキスト」ということがある。また、テキストの生成の際、モデルから出力されるテキスト(すなわち生成条件を満たすテキスト)のことを「出力テキスト」、第2のテキストの生成元となるべきテキストのことを「入力テキスト」と呼ぶことがある。また、以下の説明では、正解データのことを教師ラベルということもある。なお、入力テキストはモデルに直接的或いは間接的に入力されるテキストのことである。入力テキストはモデルに直接入力されなくてもよい。例えば、入力テキストは関係情報に変換されてモデルに入力されてもよい。
図5は、モデルM1の一例を示す図である。モデルM1は、例えば、RNN(Recurrent Neural Network)の一例であるLSTM(Long Short Term Memory)を用いたSequence to Sequence Model(以下、Seq2Seqともいう。)である。モデルM1は、アテンションモデル(Attention Model)を追加したSeq2Seq(Sequence to Sequence with Attention Model)であってもよい。Seq2Seqは、エンコーダ−デコーダモデルの一種であり、異なる長さのデータ列(Sequence)を入力とし、異なる長さのワード列(Sequence)を出力とすることを可能とする。
図5に示すモデルM1は、入力テキスト(例えば、タイトル)の関係情報に基づいて特徴情報を生成するエンコーダE1と、エンコーダE1が出力した特徴情報に基づいて出力
テキスト(例えば、見出し)を生成するデコーダD1と、を備える。
エンコーダE1は、入力テキストが有する特徴を抽出する。エンコーダE1は、入力層と中間層(隠れ層)とを有する。エンコーダE1には、第1のテキストの関係情報が入力される。エンコーダE1は、入力されたデータの特徴を示す多次元量(例えば、ベクトル)である特徴情報を出力する。特徴情報は、モデルM1がアテンションモデルの場合、特徴情報はアテンションベクトルと呼ばれることもある。
デコーダD1は、入力テキストが短縮されたテキスト(すなわち、見出し)を出力する。デコーダD1は、中間層(隠れ層)と出力層とを有する。デコーダD1には、エンコーダE1から出力された特徴情報が入力される。特徴情報が入力されると、デコーダD1は、出力層から短縮テキストとなるワードを順次出力する。
情報処理装置10は、エンコーダE1に第1のテキストの関係情報を入力した際に、デコーダD1から第1のテキストに対応する第2のテキストが出力されるよう、モデルM1の学習を行う。例えば、情報処理装置10は、デコーダD1が出力した短縮テキストが、第2のテキストに近づくように、バックプロパゲーション等の手法により、各ノード間で値が伝達する際に考慮される重み(すなわち、接続係数)の値を修正する。これにより、情報処理装置10は、モデルM1に第1のテキストの関係情報が有する特徴を学習させる。なお、情報処理装置10は、短縮テキストの分散表現となるベクトルと第2の学習用テキストの分散表現となるベクトルとのコサイン類似度に基づいて重みの値を修正してもよい。
なお、情報処理装置10は、エンコーダE1に第1のテキストの関係情報を短縮した短縮関係情報を入力した際に、デコーダD1から第1のテキストに対応する第2のテキストが出力されるよう、モデルM1の学習を行ってもよい。この場合も、情報処理装置10は、デコーダD1が出力した短縮テキストが、第2のテキストに近づくように、バックプロパゲーション等の手法により、各ノード間で値が伝達する際に考慮される重み(すなわち、接続係数)の値を修正してもよい。
〔1−3−2.生成処理について〕
次に、上述した学習処理によって学習が行われたモデルM1を用いて、入力テキストに対応するテキストであって生成条件を満たす出力テキストを生成する生成処理の一例について説明する。このとき、出力テキストは、例えば、入力テキストの短縮テキストである。
まず、情報処理装置10は、データサーバ20からモデルM1に入力される関係情報を生成するための情報を取得する(ステップS14)。例えば、情報処理装置10は、データサーバ20から、配信予定の配信コンテンツ(本文及びタイトル)を取得する。そして、情報処理装置10は、取得した配信コンテンツに含まれるタイトルを出力テキスト生成のための入力テキストとして取得する。
その後、情報処理装置10は、入力テキストに関する情報として、入力テキストの関係情報を取得する(ステップS15)。このとき、情報処理装置10は、出力テキスト(例えば、見出し)に相当する関係情報(短縮関係情報)を入力テキストの関係情報を短縮することにより生成してもよい。
そして、情報処理装置10は、内部の記憶装置からモデルM1を取得する。上述したように、モデルM1は、第1のテキストの関係情報を入力データ、見出しを正解データ(教師ラベル)として学習したモデルである。そして、情報処理装置10は、モデルM1に入力テキストの関係情報を入力することにより、出力テキストを生成する(ステップS16)。情報処理装置10は、出力テキストとして、所定の文字数以下のテキストを生成してもよい。
なお、モデルM1は、第1のテキストの短縮関係情報を入力データ、第2のテキストを正解データ(教師ラベル)として学習したモデルであってもよい。この場合、情報処理装置10は、第1のモデルに入力テキストの短縮関係情報を入力することにより、出力テキストを生成する。
出力テキストが生成されたら、情報処理装置10は、出力テキストを用いて、要約コンテンツを生成する。そして、情報処理装置10は、要約コンテンツを端末装置30に配信する(ステップS17)。
本実施形態によれば、モデルM1はタイトルそのものを入力データとするのではなく、タイトルの関係情報を入力データとするよう構成されている。関係情報は、文を単純な文字列として表現したデータではなく、文の構文を示すデータである。このため、情報処理装置10は、元文書と意味が異なる「警察を犯人が逮捕」等の構文が不自然な見出しの生成を少なくすることができる。結果として、情報処理装置10は、精度が高い見出しを生成できる。
〔1−4.関係情報を使った処理の他の例〕
〔1−4−1.学習処理について〕
なお、出力テキストの生成に使用されるモデルは関係情報に加えて入力テキストが入力できるよう構成されていてもよい。図6は、実施形態に係る情報処理装置10が実行する処理の他の例を示す図である。最初に、学習処理について説明する。
まず、情報処理装置10は、データサーバ20から学習データとなる情報を取得する(ステップS21)。例えば、情報処理装置10は、データサーバ20から、過去、ユーザに配信された配信コンテンツを取得する。そして、情報処理装置10は、学習データに含まれるタイトルを第1のテキストとして取得するとともに、第1のテキストの関係情報を生成する(ステップS22)。
情報処理装置10は、生成した関係情報を正解データ(教師ラベル)として、モデルM2(第2のモデル)の学習を行う(ステップS23)。モデルM2は、入力テキストから入力テキストの関係情報を生成するモデルである。
図7は、モデルM2の一例を示す図である。モデルM2は、例えば、RNNの一例であるLSTMを用いたSeq2Seqである。モデルM2は、アテンションモデルを追加したSeq2Seqであってもよい。図7に示すモデルM2は、入力テキスト(例えば、タイトル)に基づいて特徴情報を生成するエンコーダE2と、エンコーダE2が出力した特徴情報に基づいて入力テキストの関係情報を生成するデコーダD2と、を備える。エンコーダE2は、入力テキストが有する特徴を抽出する。
エンコーダE2は、入力テキストが有する特徴を抽出する。エンコーダE2は、入力層と中間層(隠れ層)とを有する。エンコーダE2には、第1のテキストが入力される。エンコーダE2は、入力されたテキストの特徴を示す多次元量(例えば、ベクトル)である特徴情報を出力する。
デコーダD2は、入力テキストの関係情報を出力する。デコーダD2は、中間層(隠れ層)と出力層とを有する。デコーダD2には、エンコーダE2から出力された特徴情報が入力される。特徴情報が入力されると、デコーダD2は、出力層から関係情報となるデータを出力する。
情報処理装置10は、エンコーダE2に第1のテキストを入力した際に、デコーダD2から第1のテキストの関係情報が出力されるよう、モデルM2の学習を行う。例えば、情報処理装置10は、デコーダD2が出力したデータが、第1のテキストの関係情報に近づくように、バックプロパゲーション等の手法により、各ノード間で値が伝達する際に考慮される重み(すなわち、接続係数)の値を修正する。これにより、情報処理装置10は、モデルM2に第1のテキストが有する特徴を学習させる。
続いて、情報処理装置10は、第1のテキスト(本実施形態の場合、タイトル)と第1のテキストの関係情報を入力データ、第2のテキスト(本実施形態の場合、見出し)を正解データとしてモデルM3(第1のモデル)の学習を行う(ステップS24)。
図8は、モデルM3の一例を示す図である。モデルM3は、例えば、RNNの一例であるLSTMを用いたSeq2Seqである。モデルM3は、アテンションモデルを追加したSeq2Seqであってもよい。図8に示すモデルM3は、入力テキスト(例えば、タイトル)に基づいて第1の特徴情報を生成するエンコーダE31と、入力テキストの関係情報に基づいて第2の特徴情報を生成するエンコーダE32と、第1の特徴情報と第2の特徴情報とを合成して合成情報を生成する合成モデルSM1と、合成情報に基づいて出力テキスト(見出し)を生成するデコーダD3と、を備える。
エンコーダE31は、入力テキストが有する特徴を抽出する。エンコーダE31は、入力層と中間層(隠れ層)とを有する。エンコーダE31には、第1のテキスト(本実施形態の場合、タイトル)に含まれるワードが順次入力される。エンコーダE31は、入力されたテキストの特徴を示す多次元量(例えば、ベクトル)である第1の特徴情報を出力する。
エンコーダE32は、関係情報が有する特徴を抽出する。エンコーダE32は、入力層と中間層(隠れ層)とを有する。エンコーダE32には、第1のテキストの関係情報が入力される。エンコーダE32は、入力された関係情報の特徴を示す多次元量(例えば、ベクトル)である第2の特徴情報を出力する。
合成モデルSM1は、エンコーダE31が出力する第1の特徴情報と、エンコーダE32が出力する第2の特徴情報との線形結合を合成情報として出力する。なお、合成モデルSM1は、各特徴情報に対して所定の重みを適用した合成情報を生成してもよい。なお、モデルM3は、合成モデルSM1が出力する合成情報をデコーダD3の入力層に対応する次元数まで畳み込むよう構成されていてもよい。
デコーダD3は、入力テキストが短縮されたテキスト(すなわち、見出し)を出力する。デコーダD3は、中間層(隠れ層)と出力層とを有する。デコーダD3には、合成モデルSM1から出力された合成情報(すなわち、第1の特徴情報及び第2の特徴情報)が入力される。合成情報が入力されると、デコーダD3は、出力層から短縮テキストとなるワードを順次出力する。
情報処理装置10は、エンコーダE31に第1のテキスト、エンコーダE32に第1のテキストの関係情報を入力した際に、デコーダD3から第1のテキストに対応する第2のテキストが出力されるよう、モデルM3の学習を行う。例えば、情報処理装置10は、デコーダD3が出力した短縮テキストが、第2のテキストに近づくように、バックプロパゲーション等の手法により、各ノード間で値が伝達する際に考慮される重み(すなわち、接続係数)の値を修正する。これにより、情報処理装置10は、モデルM3に第1のテキストが有する特徴を学習させる。
〔1−4−2.生成処理について〕
次に、上述した学習処理によって学習が行われたモデルM2及びモデルM3を用いて出力テキストを生成する生成処理の一例について説明する。
まず、情報処理装置10は、データサーバ20からモデルM2及びモデルM3に入力される情報を取得する(ステップS25)。例えば、情報処理装置10は、データサーバ20から、配信予定の配信コンテンツ(本文及びタイトル)を取得する。そして、情報処理装置10は、取得した配信コンテンツに含まれるタイトルを入力テキストとして取得する。
その後、情報処理装置10は、内部の記憶装置からモデルM2を取得する。上述したように、モデルM1は、第1のテキストを入力データ、第1のテキストの関係情報を正解データ(教師ラベル)として学習したモデルである。そして、情報処理装置10は、モデルM2に入力テキストを入力することにより、入力テキストの関係情報を生成する(ステップS26)。
そして、情報処理装置10は、内部の記憶装置からモデルM3を取得する。上述したように、モデルM3は、第1のテキストと第1のテキストの関係情報を入力データ、第2のテキストを正解データ(教師ラベル)として学習したモデルである。そして、情報処理装置10は、モデルM3に入力テキストの関係情報を入力することにより、出力テキストを生成する(ステップS27)。
出力テキストが生成されたら、情報処理装置10は、出力テキストを用いて、要約コンテンツを生成する。そして、情報処理装置10は、要約コンテンツを端末装置30に配信する(ステップS28)。
本実施形態によれば、情報処理装置10は、タイトルに加えて、タイトルの関係情報に基づいて見出しを生成するよう構成されている。関係情報は、文を単純な文字列として表現したデータではなく、文の構文を示すデータである。このため、情報処理装置10は、元の文書と意味が異なる「警察を犯人が逮捕」等の構文が不自然な見出しの生成を少なくすることができる。結果として、情報処理装置10は、精度が高い見出しを生成できる。
〔1−5.関係情報を使った比較〕
〔1−5−1.学習処理について〕
なお、上述の実施形態では関係情報はモデルへの入力データと使用した。しかし、関係情報は必ずしもモデルへの入力として使用されなくてもよい。図9は、実施形態に係る情報処理装置10が実行する処理の他の例を示す図である。最初に、学習処理について説明する。
まず、情報処理装置10は、データサーバ20から学習データとなる情報を取得する(ステップS31)。例えば、情報処理装置10は、データサーバ20から、過去、ユーザに配信された配信コンテンツを取得する。そして、情報処理装置10は、学習データに含まれるタイトルを第1のテキストとして取得する。
情報処理装置10は、第1のテキスト(本実施形態の場合、タイトル)を入力データ、第2のテキスト(本実施形態の場合、見出し)を正解データ(教師ラベル)としてモデルM4の学習を行う(ステップS32)。
図10は、モデルM4の一例を示す図である。モデルM4は、例えば、RNNの一例であるLSTMを用いたSeq2Seqである。モデルM4は、アテンションモデルを追加したSeq2Seqであってもよい。図10に示すモデルM4は、入力テキスト(例えば、タイトル)に基づいて特徴情報を生成するエンコーダE4と、エンコーダE4から出力された特徴情報に基づいて出力テキスト(見出し)を生成するデコーダD4と、を備える。
エンコーダE4は、入力テキストが有する特徴を抽出する。エンコーダE4は、入力層と中間層(隠れ層)とを有する。エンコーダE4には、第1のテキスト(本実施形態の場合、タイトル)に含まれるワードが順次入力される。エンコーダE4は、入力されたテキストの特徴を示す多次元量(例えば、ベクトル)である特徴情報を出力する。
デコーダD4は、入力テキストが短縮されたテキスト(すなわち、見出し)を出力する。デコーダD4は、中間層(隠れ層)と出力層とを有する。デコーダD4には、エンコーダE4から出力された特徴情報が入力される。特徴情報が入力されると、デコーダD4は、出力層から短縮テキストとなるワードを順次出力する。
情報処理装置10は、エンコーダE4に第1のテキストを入力した際に、デコーダD4から第1のテキストに対応する第2のテキストが出力されるよう、モデルM4の学習を行う。例えば、情報処理装置10は、デコーダD4が出力した短縮テキストが、第2のテキストに近づくように、バックプロパゲーション等の手法により、各ノード間で値が伝達する際に考慮される重み(すなわち、接続係数)の値を修正する。これにより、情報処理装置10は、モデルM4に第1のテキストが有する特徴を学習させる。
なお、情報処理装置10は、重みの値の修正には、関係情報を使用することも可能である。例えば、情報処理装置10は、第1のテキストの関係情報を予め作成しておく。そして、情報処理装置10は、デコーダD4から短縮テキスト(見出しとなるテキスト)が出力される度に、短縮テキストの関係情報を作成する。そして、情報処理装置10は、第1のテキストの関係情報と短縮テキストの関係情報との類似度を算出する。このとき、情報処理装置10は、第1のテキストの関係情報の分散表現となるベクトルと、短縮テキストの関係情報の分散表現となるベクトルと、のコサイン類似度を算出してもよい。勿論、類似度はコサイン類似度に限定されない。
関係情報は、文を単純な文字列として表現したデータではなく、文の構文を示すデータである。このため、文の構文が異なるとその類似度は低くなる。例えば、第1のテキストが“警察が10月1日に犯人を逮捕した。”であるとする。そして、モデルM4から“警察を犯人が逮捕”が短縮テキストとして出力されたとする。この例では、第1のテキストでは“逮捕”に係る主語は“警察”なのに対し、短縮テキストでは“逮捕”に係る主語は“犯人”となっている。両者は係り受け構造が大きく異なる。そのため、この例では、第1のテキストの関係情報と短縮テキストの関係情報の類似度は低くなる。情報処理装置10は、類似度が高くなるようモデルM4の重みの値を修正していく。
また、情報処理装置10は、第2のテキストの関係情報と短縮テキストの関係情報との類似度に基づいてモデルM4の重みの値を修正してもよい。例えば、情報処理装置10は、第2のテキストの関係情報を予め作成しておく。そして、情報処理装置10は、デコーダD4から短縮テキスト(見出しとなるテキスト)が出力される度に、短縮テキストの関係情報を作成する。そして、情報処理装置10は、第2のテキストの関係情報と短縮テキストの関係情報との類似度を算出する。例えば、第2のテキストが“警察が犯人を逮捕”であるとする。そして、モデルM4から“警察を犯人が逮捕”が短縮テキストとして出力されたとする。この例でも、第2のテキストでは“逮捕”に係る主語は“警察”なのに対し、短縮テキストでは“逮捕”に係る主語は“犯人”となっている。両者は係り受け構造が大きく異なるので、第2のテキストの関係情報と短縮テキストの関係情報の類似度は低くなる。情報処理装置10は、類似度が高くなるようモデルM4の重みの値を修正していく。
〔1−5−2.生成処理について〕
次に、上述した学習処理によって学習が行われたモデルM4を用いて出力テキストを生成する生成処理の一例について説明する。
まず、情報処理装置10は、データサーバ20からモデルM4に入力される情報を取得する(ステップS33)。例えば、情報処理装置10は、データサーバ20から、配信予定の配信コンテンツ(本文及びタイトル)を取得する。そして、情報処理装置10は、取得した配信コンテンツに含まれるタイトルを入力テキストとして取得する。
そして、情報処理装置10は、内部の記憶装置からモデルM4を取得する。上述したように、モデルM4は、第1のテキストを入力データ、第2のテキストを正解データ(教師ラベル)として学習したモデルである。そして、情報処理装置10は、モデルM4に入力テキストの関係情報を入力することにより、出力テキストを生成する(ステップS34)。
その後、情報処理装置10は、入力テキストの関係情報と出力テキストの関係情報を作成する。そして、情報処理装置10は、入力テキストの関係情報と出力テキストの関係情報とを比較する(ステップS35)。
例えば、関係情報が係り受け情報であるとする。情報処理装置10は、入力テキストの関係情報から出力テキストに出てこないワードを取り除くことにより、入力テキストの関係情報を短縮する。そして、情報処理装置10は、入力テキストの短縮関係情報と出力テキストの関係情報の係り受け構造(木構造)が類似するか否か判別する。このとき、情報処理装置10は、入力テキストの短縮関係情報と出力テキストの関係情報の類似度を算出し、類似度が所定の閾値以上か否かを以って類似するか否かを判別してもよい。関係情報が述語構造情報なのであれば、情報処理装置10は、述語となっているワードの格解析結果が類似するか否かを判別してもよい。
情報処理装置10は、入力テキストの関係情報と出力テキストの関係情報との比較結果(例えば、類似度や類似度に基づく判別結果)を記憶装置或いは外部の装置(例えば、データサーバ20や端末装置30)に出力する。
入力テキストの関係情報と出力テキストの関係情報とが類似する場合、情報処理装置10は、情報処理装置10は、出力テキストを用いて、要約コンテンツを生成する。そして、情報処理装置10は、要約コンテンツを端末装置30に配信する(ステップS36)。
本実施形態によれば、情報処理装置10は、入力テキストの関係情報と出力テキストの関係情報を比較するよう構成されている。そのため、情報処理装置10のユーザは、不自然な出力テキストを即座に発見できる。
〔2.情報処理装置の構成例〕
以上、本実施形態の情報処理装置10の動作を述べたが、以下、情報処理装置10の構成を説明する。
情報処理装置10は、端末装置30等のクライアントコンピュータからの要求を処理するサーバ用ホストコンピュータ(以下、単に「サーバ」という。)である。情報処理装置10は、PCサーバであってもよいし、ミッドレンジサーバであってもよいし、メインフレームサーバであってもよい。また、情報処理装置10は、1つのサーバにより構成されていてもよいし、協働して処理を実行する複数のサーバにより構成されていてもよい。情報処理装置10が複数のサーバで構成される場合、これらサーバの設置場所は離れていてもよい。設置場所が離れていたとしても、協働して処理を実行するのであれば、これらサーバは1つの情報処理装置とみなすことができる。情報処理装置10は、生成装置および学習装置として機能する。
上述したように、情報処理装置10は、データサーバ20及び端末装置30とネットワークを介して接続されている。ネットワークは、LAN(Local Area Network)、WAN(Wide Area Network)、電話網(携帯電話網、固定電話網等)、地域IP(Internet Protocol)網、インターネット等の通信ネットワークである。ネットワークには、有線ネットワークが含まれていてもよいし、無線ネットワークが含まれていてもよい。
図11は、実施形態に係る情報処理装置10の構成例を示す図である。情報処理装置10は、通信部11と、記憶部12と、制御部13と、を備える。なお、図11に示した構成は機能的な構成であり、ハードウェア構成はこれとは異なっていてもよい。
通信部11は、外部の装置と通信する通信インタフェースである。通信部11は、ネットワークインタフェースであってもよいし、機器接続インタフェースであってもよい。例えば、通信部11は、NIC(Network Interface Card)等のLANインタフェースであってもよいし、USB(Universal Serial Bus)ホストコントローラ、USBポート等により構成されるUSBインタフェースであってもよい。また、通信部11は、有線インタフェースであってもよいし、無線インタフェースであってもよい。通信部11は、情報処理装置10の通信手段として機能する。通信部11は、制御部13の制御に従ってデータサーバ20及び端末装置30と通信する。
記憶部12は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、フラッシュメモリ、ハードディスク等のデータ読み書き可能な記憶装置である。記憶部12は、情報処理装置10の記憶手段として機能する。記憶部12は、学習データデータベース121、モデルデータベース122、及びコンテンツ情報データベース123を記憶する。
学習データデータベース121には、学習データが登録される。図12は、学習データデータベース121に登録される情報の一例を示す図である。学習データデータベース121には、「学習データID(Identifier)」、「本文」、「タイトル」、および「見出し」といった項目を有する情報が登録される。
なお、図12に示す情報のうち「本文」、「タイトル」、および「見出し」は、図3に示す「本文」、「タイトル」、および「見出し」に対応する。なお、学習データデータベース121には、図12に示す情報以外にも、学習データや要約データを閲覧した利用者に関する各種の情報が登録されていてもよい。なお、図12に示す例では、学習データデータベース121に登録される情報として、「K11〜K13」、「T11〜T13」、「U11〜U13」といった概念的な情報を示したが、実際には、テキストデータやバイナリデータが登録されることとなる。
ここで、「学習データID」とは、学習データを識別するための識別子である。また、「本文」とは、ユーザに配信されたコンテンツ(例えば、記事)に含まれる本文となるテキストである。また「タイトル」とは、コンテンツ或いは当該コンテンツに含まれる本文に付されたタイトルである。また、「見出し」とは、コンテンツ(本文或いはタイトル)に付された見出しである。
例えば、図12に示す例では、学習データID「1001」、本文「K11」、タイトル「T11」、及び見出し「U11」といった情報が対応付けて登録されている。このような情報は、例えば、学習データID「1001」が示す学習データに、「K11」が示す本文と、「T11」が示すタイトルと、「U11」が示す見出しと、が含まれる旨を示す。
図11に戻り、モデルデータベース122には、情報処理装置10が有するモデルのデータが登録される。図13は、モデルデータベース122に登録される情報の一例を示す図である。図13に示す例では、モデルデータベース122には、「モデルID」、および「モデルデータ」といった情報が登録されている。
ここで、「モデルID」とは、各モデルを識別するための情報である。また、「モデルデータ」とは、対応付けられた「モデルID」が示すモデルのデータであり、例えば、各層におけるノードと、各ノードが採用する関数と、ノードの接続関係と、ノード間の接続に対して設定される接続係数とを含む情報である。
例えば、図13に示す例では、モデルID「2001」およびモデルデータ「M1」といった情報が対応付けて登録されている。このような情報は、例えば、「2001」が示すモデルのデータが「M1」である旨を示す。なお、図13に示す例では、モデルデータベース122に登録される情報として、「M1〜M4」といった概念的な情報を記載したが、実際には、モデルの構造や接続係数を示す文字列や数値等が登録されることとなる。以下、M1〜M4等を総称してモデルMという。
モデルMは、第1のテキストに含まれる複数のワードのワード間の関係を示す第1の関係情報に関する情報と第1のテキストに対応するテキストであって生成条件を満たす第2のテキストとに基づいて学習したモデルである。モデルMは、入力テキストに関する情報から入力テキストに対応するテキストであって生成条件を満たすテキストを生成する。このようなモデルMは、入力テキストに関する情報を入力する入力層と、入力テキストに対応するテキストであって生成条件を満たすテキストを出力する出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重み(すなわち、接続係数)とに基づく演算を行うことにより、入力層に入力された入力テキストに関する情報に応じて、入力テキストに対応するテキストであって生成条件を満たすテキストを出力層から出力するよう、コンピュータを機能させるためのモデルである。
また、モデルMは、第1のテキストを入力データ、第2のテキストを正解データとし、第2のテキストの関係情報と、第1のテキストをモデルに入力して得られるテキストの関係情報と、の類似度に基づいて学習したモデルであってもよい。このとき、モデルMは、入力テキストから入力テキストに対応するテキストであって生成条件を満たすテキストを生成する。このようなモデルMは、入力テキストを入力する入力層と、入力テキストに対応するテキストであって生成条件を満たすテキストを出力する出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重み(すなわち、接続係数)とに基づく演算を行うことにより、入力層に入力された入力テキストに応じて、入力テキストに対応するテキストであって生成条件を満たすテキストを出力層から出力するよう、コンピュータを機能させるためのモデルである。
また、モデルMは、第1のテキストを入力データ、第1の関係情報を正解データとして学習したモデルであってもよい。このとき、モデルMは、入力テキストから入力テキストの関係情報を生成する。このようなモデルMは、入力テキストを入力する入力層と、入力テキストの関係情報を出力する出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重み(すなわち、接続係数)とに基づく演算を行うことにより、入力層に入力された入力テキストに応じて、入力テキストの関係情報を出力層から出力するよう、コンピュータを機能させるためのモデルである。
ここで、モデルMが「y=a1*x1+a2*x2+・・・+ai*xi」で示す回帰モデルで実現されるとする。この場合、モデルMが含む第1要素は、x1やx2等といった入力データ(xi)に対応する。また、第1要素の重みは、xiに対応する係数aiに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第1要素は、入力層が有するいずれかのノードに対応し、第2要素は、出力層が有するノードと見做すことができる。
また、モデルMがDNN(Deep Neural Network)等、1つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、モデルMが含む第1要素は、入力層または中間層が有するいずれかのノードに対応する。また、第2要素は、第1要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第1要素の重みは、第1要素と対応するノードから第2要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
情報処理装置10は、上述した回帰モデルやニューラルネットワーク等、任意の構造を有するモデルを用いて、出力テキストの算出を行う。具体的には、モデルMは、入力テキストに関する情報が入力された場合に、入力テキストに対応するテキストであって生成条件を満たすテキストを出力するように係数が設定される。或いは、モデルMは、入力テキストを入力するが入力された場合に、入力テキストに対応するテキストであって所定の条件を満たすテキストを出力するように係数が設定される。例えば、情報処理装置10は、第2のテキストの関係情報と、第1のテキストをモデルMに入力して得られるテキストの関係情報と、の類似度に基づいて係数を設定する。情報処理装置10は、このようなモデルMを用いて、生成条件を満たすテキスト(例えば、見出し)を生成する。なお、モデルMは、入力テキストが入力された場合に、入力テキストの関係情報を出力するように係数が設定されてもよい。
なお、上記例では、モデルMが、入力テキスト或いは入力テキストに関する情報が入力された場合に、入力テキストに対応するテキストであって生成条件を満たすテキスト(例えば、見出し)を出力するモデル(以下、モデルVという。)である例を示した。しかし、実施形態に係るモデルMは、モデルVにデータの入出力を繰り返すことで得られる結果に基づいて生成されるモデルであってもよい。例えば、モデルVは、「入力テキスト或いは入力テキストに関する情報」を入力とし、モデルVが出力する「入力テキストに対応するテキストであって生成条件を満たすテキスト」を出力とするよう学習されたモデルであってもよい。
また、情報処理装置10がGAN(Generative Adversarial Networks)を用いた学習処理或いは生成処理を行う場合、モデルMは、GANの一部を構成するモデルであってもよい。
図11に戻り、コンテンツ情報データベース123には、ユーザに配信されるコンテンツの情報が登録される。例えば、コンテンツ情報データベース123には、コンテンツパートナーから取得した記事等が登録される。図14は、コンテンツ情報データベース123に登録される情報の一例を示す図である。コンテンツ情報データベース123には、「コンテンツID」、「本文」、及び「タイトル」といった項目を有する情報が登録される。なお、「コンテンツID」とは、コンテンツのデータを識別するための識別子である。「本文」、及び「タイトル」は、図12に示す「本文」、及び「タイトル」と同様である。
図11に戻り、制御部13は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、情報処理装置10内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部13は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
また、制御部13は、記憶部12に記憶されるモデルM(モデルM1〜M4等)に従った情報処理により、モデルMの入力層に入力されたデータ(例えば、関係情報、タイトル)に対し、モデルMが有する係数(すなわち、モデルMが学習した各種の特徴に対応する係数)に基づく演算を行い、モデルMの出力層から出力テキスト(例えば、見出し)を出力する。
制御部13は、図11に示すように、学習データ取得部131と、関係情報取得部132と、学習部133と、出力情報取得部134と、生成部135と、比較部136と、出力制御部137と、を備える。制御部13を構成するブロック(学習データ取得部131〜出力制御部137)はそれぞれ制御部13の機能を示す機能ブロックである。これら機能ブロックはソフトウェアブロックであってもよいし、ハードウェアブロックであってもよい。例えば、上述の機能ブロックが、それぞれ、ソフトウェア(マイクロプログラムを含む。)で実現される1つのソフトウェアモジュールであってもよいし、半導体チップ(ダイ)上の1つの回路ブロックであってもよい。勿論、各機能ブロックがそれぞれ1つのプロセッサ或いは1つの集積回路であってもよい。機能ブロックの構成方法は任意である。なお、制御部13は上述の機能ブロックとは異なる機能単位で構成されていてもよい。
学習データ取得部131は、学習データとして、第1のテキストに関する情報と、第1のテキストに対応するテキストであって生成条件を満たす第2のテキストと、を取得する。例えば、学習データ取得部131は、第1のテキストに関する情報として、第1のテキストに含まれる複数のワードのワード間の関係を示す第1の関係情報に関する情報を取得する。例えば、学習データ取得部131は、第1のテキストに関する情報として、第1の関係情報を取得する。或いは、学習データ取得部131は、第1のテキストに関する情報として、第1の関係情報を短縮した第2の関係情報を取得する。或いは、学習データ取得部131は、第1のテキストに関する情報として、第1のテキストと第1の関係情報を取得する。学習データ取得部131は、第1のテキストと、第1のテキストに対応するテキストであって生成条件を満たす第2のテキストと、を取得する。
関係情報取得部132は、第1のテキストに含まれる複数のワードのワード間の関係を示す第1の関係情報を取得する。また、関係情報取得部132は、第1の関係情報を短縮した第2の関係情報を取得する。
学習部133は、モデルMの学習を行い、学習したモデルMをモデルデータベース122に格納する。より具体的には、学習部133は、第1のテキストに関する情報をモデルMに入力した際に、モデルMが第2のテキスト(例えば、入力したタイトルに対応する見出し)を出力するように、モデルMの接続係数の設定を行う。すなわち、学習部133は、入力テキストに関する情報を入力した際に、モデルMが、入力テキストに対応するテキストであって生成条件を満たす出力テキストを出力するように、モデルMの学習を行う。また、学習部133は、第1のテキストをモデルMに入力した際に、モデルMが第2のテキストを出力するように、モデルMの接続係数の設定を行う。例えば、モデルMは、第2のテキストの関係情報と、第1のテキストをモデルに入力して得られるテキストの関係情報と、の類似度に基づいてモデルMの接続係数の設定を行う。
例えば、学習部133は、モデルMが有する入力層のノードであって、入力層に入力される情報と対応する特徴を学習したエンコーダの入力層と対応するノードに第1のテキスト或いは第1のテキストに関する情報を入力し、各中間層を辿ってモデルMの出力層までデータを伝播させることで、第1のテキストに対応するテキストであって生成条件を満たすテキストを出力させる。そして、学習部133は、モデルMが実際に出力したテキストと、学習データに含まれる第2のテキスト(例えば、見出し)との差に基づいて、モデルMの接続係数を修正する。例えば、学習部133は、バックプロパゲーション等の手法を用いて、接続係数の修正を行ってもよい。モデルMは、第2のテキストの関係情報と、第1のテキストをモデルに入力して得られるテキストの関係情報と、の類似度に基づいて接続係数の修正を行ってもよい。また、学習部133は、第2のテキストの分散表現となるベクトルと、モデルMが実際に出力したテキストの分散表現となるベクトルとのコサイン類似度に基づいて、接続係数の修正を行ってもよい。
なお、学習部133は、いかなる学習アルゴリズムを用いてモデルMを学習してもよい。例えば、学習部133は、ニューラルネットワーク、サポートベクターマシン(support vector machine)、クラスタリング、強化学習等の学習アルゴリズムを用いて、モデルMを学習してよい。
ここで、学習部133は、第1のテキストに含まれる複数のワードのワード間の関係を示す第1の関係情報に関する情報と第2のテキストとに基づいて、入力テキストに関する情報から所定の条件を満たす出力テキストを生成する第1のモデルの学習を行う。このとき、第1のモデルは、出力テキストとして、所定の文字数以下のテキストを生成するモデルであってもよい。
また、学習部133は、第1の関係情報を入力データ、第2のテキストを正解データとして第1のモデルの学習を行う。
また、学習部133は、第1の関係情報を短縮した第2の関係情報を入力データ、第2のテキストを正解データとして第1のモデルの学習を行う。
また、学習部133は、第1のテキストと第1の関係情報とを入力データ、第2のテキストを正解データとして第1のモデルの学習を行う。
また、学習部133は、第1のテキストを入力データ、第1の関係情報を正解データとして、入力テキストから入力テキストの関係情報を生成する第2のモデルの学習を行う。
また、学習部133は、第1のテキストを入力データ、第2のテキストを正解データとして、入力テキストから所定の条件を満たす出力テキストを生成するモデルの学習を行う。このとき、学習部133は、第1のテキストの関係情報或いは第2のテキストの関係情報と、第1のテキストをモデルに入力して得られるテキストの関係情報と、の類似度に基づいて、モデルの学習を行う。
出力情報取得部134は、第1のテキストに含まれる複数のワードのワード間の関係を示す第1の関係情報に関する情報と第1のテキストに対応するテキストであって所定の条件を満たす第2のテキストとに基づいて学習した第1のモデルに入力される入力テキストに関する情報を取得する。出力情報取得部134は、第1のテキストを入力データ、第2のテキストを正解データとして学習したモデルに入力される入力テキストを取得する。
生成部135は、入力テキストに関する情報を第1のモデルに入力することにより、入力テキストに対応するテキストであって所定の条件を満たす出力テキストを生成する。
第1のモデルは、第1の関係情報を入力データ、第2のテキストを正解データとして学習したモデルである。生成部135は、第1のモデルに入力テキストの関係情報を入力することにより、出力テキストを生成する。
第1のモデルは、第1の関係情報を短縮した第2の関係情報を入力データ、第2のテキストを正解データとして学習したモデルである。生成部135は、第1のモデルに入力テキストの関係情報を短縮した関係情報を入力することにより、出力テキストを生成する。
第1のモデルは、第1のテキストと第1の関係情報とを入力データ、第2のテキストを正解データとして学習したモデルである。生成部135は、第1のモデルに入力テキストと入力テキストの関係情報とを入力することにより、出力テキストを生成する。
第1のモデルは、第1のテキストと第1の関係情報とを入力データ、第2のテキストを正解データとして学習したモデルである。生成部135は、第1のテキストを入力データ、第1の関係情報を正解データとして学習した第2のモデルに入力テキストを入力することにより、入力テキストの関係情報を生成する。
また、生成部135は、出力テキストとして、所定の文字数以下のテキストを生成する。
また、生成部135は、入力テキストをモデルに入力することにより、入力テキストに対応するテキストであって所定の条件を満たす出力テキストを生成する。
比較部136は、入力テキストの関係情報と出力テキストの関係情報とを比較する。
出力制御部137は、生成部135が生成したテキストを利用者に対して出力する。例えば、出力制御部137は、端末装置30からの要求に応じて、生成部135が生成したテキストが含まれるコンテンツを配信する。なお、出力制御部137は、生成部135が生成したテキストが含まれるコンテンツをデータサーバ20に提供し、データサーバ20から配信させてもよい。
〔3.情報処理装置の処理フロー〕
次に、情報処理装置10が実行する処理の手順について説明する。情報処理装置10は学習処理と生成処理とを実行する。情報処理装置10はマルチタスクOSを備え、これらの処理を並行して実行可能である。
〔3−1.学習処理〕
最初に学習処理を説明する。図15は、学習処理の一例を示すフローチャートである。学習処理は、入力テキストに関する情報から出力テキストを生成するモデルMを学習する処理である。情報処理装置10は、ユーザから処理開始命令を受信すると、学習処理を実行する。
まず、情報処理装置10は、学習データを取得する(ステップS101)。例えば、情報処理装置10は、データサーバ20から配信コンテンツ(本文及びタイトル)の情報を取得するとともに、配信コンテンツに対応する見出しを取得する。このとき、情報処理装置10は、タイトルを第1のテキスト、見出しを第2のテキストとして取得する。
続いて、情報処理装置10は、第1のテキストの関係情報を取得する(ステップS102)。
続いて、情報処理装置10は、第1のテキストを入力データ、第1のテキストの関係情報を正解データとして、関係情報生成のためのモデル(例えば、図6に示すモデルM2)の学習を実行する(ステップS103)。
続いて、情報処理装置10は、第1のテキストの関係情報を入力データ、第2のテキストを正解データとして、第2のテキスト(見出し)生成のためのモデル(例えば、図1に示すモデルM1)の学習を実行する(ステップS104)。情報処理装置10は、第1のテキストと第1のテキストの関係情報を入力データ、第2のテキストを正解データとして、第2のテキスト(見出し)生成のためのモデル(例えば、図6に示すモデルM3)の学習を実行してもよい。
或いは、情報処理装置10は、第1のテキストと入力データ、第2のテキストを正解データとして、第2のテキスト(見出し)生成のためのモデル(例えば、図9に示すモデルM4)の学習を実行してもよい。このとき、情報処理装置10は、第1のテキストの関係情報或いは第2のテキストの関係情報と、第1のテキストをモデルに入力して得られるテキストの関係情報と、の類似度に基づいて、モデルの学習を行ってもよい。
学習の実行が終了したら、情報処理装置10は、学習処理を終了する。
〔3−2.生成処理〕
次に生成処理を説明する。図16は、生成処理の一例を示すフローチャートである。生成処理は、入力テキストに関する情報から出力テキスト(入力テキストの短縮テキスト)を生成する処理である。「入力テキスト」はモデルに直接的或いは間接的に入力されるテキストであり、出力テキストはモデルから出力されるテキストである。また、「入力テキストに関する情報」は、入力テキストの関係情報であってもよいし、入力テキストと入力テキストの関係情報であってもよい。「入力テキストに関する情報」は、入力テキストそのものであってもよい。情報処理装置10は、ユーザから処理開始命令を受信すると、生成処理を実行する。
まず、情報処理装置10は、コンテンツ情報を取得する(ステップS201)。例えば、情報処理装置10は、データサーバ20から配信コンテンツ(本文及びタイトル)の情報を取得する。このとき、情報処理装置10は、タイトルを入力テキストとして取得してもよい。
続いて、情報処理装置10は、入力テキストの関係情報を取得する(ステップS202)。このとき、情報処理装置10は、入力テキストを図6に示すモデルM2に入力することにより関係情報を取得してもよい。
続いて、情報処理装置10は、ステップS201及び/又はステップS202で取得した情報をモデルに入力して出力テキストを生成する(ステップS203)。例えば、情報処理装置10は、ステップS202で取得した関係情報を図1に示すモデルM1に入力することにより出力テキストを生成する。或いは、情報処理装置10は、ステップS201で取得した入力テキストとステップS202で取得した関係情報を図6に示すモデルM3に入力することにより出力テキストを生成する。或いは、情報処理装置10は、ステップS201で取得した入力テキストを図9に示すモデルM4に入力することにより出力テキストを生成する。
続いて、情報処理装置10は、入力テキストの関係情報と出力テキストの関係情報との比較を実行する(ステップS204)。なお、比較の結果、両者が類似しない場合(例えば、類似度が所定の閾値以下の場合)、情報処理装置10は、両者が類似しない旨をユーザに出力してもよい。
続いて、情報処理装置10は、ステップS203で生成した出力テキスト(見出し)をユーザに出力する(ステップS205)。出力が完了したら、情報処理装置10は、生成処理を終了する。
〔4.変形例〕
上述の実施形態は一例を示したものであり、種々の変更及び応用が可能である。
例えば、上述の実施形態では、情報処理装置10は、第1のテキストをタイトル、第2のテキストを見出しとしてモデルM1〜M4の学習を行った。しかし、第1のテキスト、及び第2のテキストは上記の例に限定されない。例えば、情報処理装置10は、第1のテキストを本文、第2のテキストを見出しとしてモデルM1〜M4の学習を行ってもよい。その他、第1のテキスト、及び第2のテキストとするテキストは任意に変更可能である。同様に、テキストの生成時、入力テキストとするテキストも任意に変更可能である。
また、上述の実施形態では、情報処理装置10は、第1のテキストを入力データ、第1のテキストの関係情報を正解データとしてモデルM2の学習を行った。しかし、情報処理装置10は、第1のテキストを入力データ、第1のテキストの関係情報を短縮した短縮関係情報を正解データとしてモデルM2の学習を行ってもよい。そして、情報処理装置10は、このように学習したモデルM2に第1のテキストを入力することにより、短縮関係情報を生成してもよい。
また、上述の実施形態では、モデルMを構成するエンコーダおよびデコーダは、LSTMにより構成されるものとしたが、LSTM以外のRNNにより構成されていてもよい。モデルMを構成するエンコーダおよびデコーダは、CNN(Convolution Neural Network)等、RNN以外のニューラルネットワークであってもよい。その他、モデルMを構成するエンコーダおよびデコーダは、単純に入力された情報量の次元数を変化させるニューラルネットワークであってもよい。このとき、モデルMを構成するエンコーダは、入力された情報の次元量を圧縮することで入力された情報が有する特徴を抽出するよう構成されていてもよい。また、モデルMを構成するデコーダは、エンコーダによって抽出された特徴の次元量を増大させ、エンコーダに入力された情報よりも次元数が少ない情報を出力するよう構成されていてもよい。
本実施形態の情報処理装置10を制御する制御装置は、専用のコンピュータシステムによって実現してもよいし、通常のコンピュータシステムにより実現してもよい。例えば、上述の動作を実行するためのプログラムまたはデータ(例えば、モデルM)を、光ディスク、半導体メモリ、磁気テープ、フレキシブルディスク等のコンピュータ読み取り可能な記録媒体に格納して配布し、該プログラムをコンピュータにインストールし、上述の処理を実行することによって制御装置を構成してもよい。制御装置は、情報処理装置10の外部の装置(例えば、パーソナルコンピュータ)であってもよいし、内部の装置(例えば、制御部13)であってもよい。また、上記プログラムをインターネット等のネットワーク上のサーバ装置が備えるディスク装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。また、上述の機能を、OS(Operating System)とアプリケーションソフトとの協働により実現してもよい。この場合には、OS以外の部分を媒体に格納して配布してもよいし、OS以外の部分をサーバ装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。
また、上記各実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上述してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔5.ハードウェア構成〕
実施形態及び変形例に係る情報処理装置10は、例えば図17に示すような構成のコンピュータ1000によっても実現可能である。図17は、情報処理装置10の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU(Central Processing Unit)1100、RAM1200、ROM1300、HDD(Hard Disk Drive)1400、通信インタフェース(I/F)1500、入出力インタフェース(I/F)1600、及びメディアインタフェース(I/F)1700を有する。
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インタフェース1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
CPU1100は、入出力インタフェース1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インタフェース1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インタフェース1600を介して出力装置へ出力する。
メディアインタフェース1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインタフェース1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る情報処理装置10として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムまたはデータ(例えば、モデルM)を実行することにより、制御部13を実現する。コンピュータ1000のCPU1100は、これらのプログラムまたはデータ(例えば、モデルM)を記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムまたはデータ(例えば、モデルM)を取得してもよい。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
〔6.効果〕
本実施形態によれば、情報処理装置10は、第1のテキストに関する情報と、第1のテキストに対応するテキストであって生成条件を満たす第2のテキストと、を取得する。そして、情報処理装置10は、第1のテキストに含まれる複数のワードのワード間の関係を示す第1の関係情報に関する情報と第2のテキストとに基づいて、入力テキストに関する情報から生成条件を満たす出力テキストを生成する第1のモデルの学習を行う。このとき、第1のモデルは、出力テキストとして、所定の文字数以下のテキストを生成するモデルであってもよい。第1のモデルは、関係情報に基づき学習しているので不自然な構文のテキストの生成が少ない。第1のモデルを使うことにより、情報処理装置10は、精度が高いテキストを生成できる。
情報処理装置10は、第1の関係情報を入力データ、第2のテキストを正解データとして第1のモデルの学習を行う。これにより、情報処理装置10は、精度が高いモデルを生成できる。結果として、情報処理装置10は、精度が高いテキストを生成できる。
情報処理装置10は、第1の関係情報を短縮した第2の関係情報を入力データ、第2のテキストを正解データとして第1のモデルの学習を行う。第1のモデルは、より第2のテキストに近い第2の関係情報(短縮関係情報)に基づき学習している。第1のモデルの精度が高いので、情報処理装置10は、精度が高いテキストを生成できる。
情報処理装置10は、第1のテキストと第1の関係情報とを入力データ、第2のテキストを正解データとして第1のモデルの学習を行う。これにより、情報処理装置10は、精度が高いモデルを生成できる、結果として、情報処理装置10は、精度が高いテキストを生成できる。
情報処理装置10は、第1のテキストを入力データ、第1の関係情報を正解データとして、入力テキストから入力テキストの関係情報を生成する第2のモデルの学習を行う。これにより、情報処理装置10は、関係情報生成のための精度の高いモデルを生成できる。
情報処理装置10は、第1のテキストと、第1のテキストに対応するテキストであって生成条件を満たす第2のテキストと、を取得する。また、情報処理装置10は、第1のテキストを入力データ、第2のテキストを正解データとして、入力テキストから生成条件を満たす出力テキストを生成するモデルの学習を行う。そして、情報処理装置10は、第1のテキストの関係情報或いは第2のテキストの関係情報と、第1のテキストをモデルに入力して得られるテキストの関係情報と、の類似度に基づいて、モデルの学習を行う。情報処理装置10が生成するモデルは、関係情報の類似度に基づき学習しているので不自然な構文のテキストの生成が少ない。第1のモデルを使うことにより、情報処理装置10は、精度が高いテキストを生成できる。
情報処理装置10は、第1のテキストに含まれる複数のワードのワード間の関係を示す第1の関係情報に関する情報と第1のテキストに対応するテキストであって生成条件を満たす第2のテキストとに基づいて学習した第1のモデルに入力される入力テキストに関する情報を取得する。そして、情報処理装置10は、入力テキストに関する情報を第1のモデルに入力することにより、入力テキストに対応するテキストであって生成条件を満たす出力テキストを生成する。このとき、情報処理装置10は、出力テキストとして、所定の文字数以下のテキストを生成してもよい。第1のモデルは、関係情報に基づき学習しているので不自然な構文のテキストの生成が少ない。結果として、情報処理装置10は、精度が高いテキストを生成できる。
情報処理装置10は、第1のモデルは、第1の関係情報を入力データ、第2のテキストを正解データとして学習したモデルである。そして、情報処理装置10は、第1のモデルに入力テキストの関係情報を入力することにより、出力テキストを生成する。これにより、情報処理装置10は、精度が高いテキストを生成できる。
第1のモデルは、第1の関係情報を短縮した第2の関係情報を入力データ、第2のテキストを正解データとして学習したモデルである。情報処理装置10は、第1のモデルに入力テキストの関係情報を短縮した関係情報を入力することにより、出力テキストを生成する。これにより、情報処理装置10は、精度が高いテキストを生成できる。第1のモデルは、より第2のテキストに近い第2の関係情報(短縮関係情報)に基づき学習している。第1のモデルの精度が高いので、情報処理装置10は、精度が高いテキストを生成できる。
第1のモデルは、第1のテキストと第1の関係情報とを入力データ、第2のテキストを正解データとして学習したモデルである。情報処理装置10は、第1のモデルに入力テキストと入力テキストの関係情報とを入力することにより、出力テキストを生成する。これにより、情報処理装置10は、精度が高いテキストを生成できる。
情報処理装置10は、第1のテキストを入力データ、第1の関係情報を正解データとして学習した第2のモデルに入力テキストを入力することにより、入力テキストの関係情報を生成する。これにより、情報処理装置10は、精度が高いテキストを生成できる。
情報処理装置10は、第1のテキストを入力データ、第2のテキストを正解データとして学習したモデルに入力される入力テキストを取得する。そして、情報処理装置10は、入力テキストをモデルに入力することにより、入力テキストに対応するテキストであって生成条件を満たす出力テキストを生成する。そして、情報処理装置10は、入力テキストの関係情報と出力テキストの関係情報とを比較する。これにより、情報処理装置10のユーザは、不自然な出力テキストを即座に発見できる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、学習部は、学習手段や学習回路に読み替えることができる。