以下に、本願に係る生成装置、学習装置、生成方法、学習方法、生成プログラム、学習プログラム、及びモデルを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、以下の実施形態により本願に係る生成装置、学習装置、生成方法、学習方法、生成プログラム、学習プログラム、及びモデルが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
〔1-1.情報処理装置の一例〕
最初に、生成装置および学習装置の一例である情報処理装置が実行する学習処理および生成処理の一例について説明する。図1は、実施形態に係る情報処理装置10が実行する処理の一例を示す図である。情報処理装置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.学習処理について〕
そこで、情報処理装置10は、以下の学習処理を実行することで、配信コンテンツに含まれるテキスト(例えば、タイトル)から見出しとなるテキストを生成するためのモデルの学習を行う。以下、図1を参照しながら情報処理装置10が実行する学習処理の一例について説明する。
まず、情報処理装置10は、データサーバ20から学習データとなる情報を取得する(ステップS1)。例えば、情報処理装置10は、データサーバ20から、過去、ユーザに配信された配信コンテンツを取得する。そして、情報処理装置10は、データサーバ20から取得した情報を学習データデータベースに登録する。
図3は、学習データデータベースに登録される学習データの一例を示す図である。学習データデータベースには、学習データとして、本文、タイトル、および見出しを関連付けた情報が登録される。本文、タイトル、および見出しの組には、それぞれ、学習データID(Identifier)が付されている。「本文」及び「タイトル」は、配信コンテンツに含まれるテキストである。タイトルは本文に付された要約となるテキストであり、本文に基づいて作成される。タイトルにとって、本文は元のテキスト(作成元となるテキスト)である。
「見出し」は、配信コンテンツの内容をユーザが容易に把握するためのテキストである。見出しは、配信コンテンツに含まれるテキスト(例えば、本文或いはタイトル)に対応するテキストである。学習データとなる見出しは、配信コンテンツに含まれるテキストを所定の者(例えば、ポータルサイトの運営者の従業員)が読んで要約することにより作成される。なお、見出しは、所定の条件を満たすよう生成される。例えば、見出しは、所定の文字数以下となるよう生成される。一例として、見出しは、13.5文字以下となるよう生成される。このとき、13.5文字は、全角文字1個を1文字とした文字数である。半角文字1文字は0.5文字である。以下の説明では、所定の条件のことを「生成条件」という。生成条件は、13.5文字以下に限定されない。生成条件となる文字数は、13.5文字より多くてもよいし少なくてもよい。勿論、生成条件は文字数に限定されない。
なお、「見出し」は、要約、タイトル、短縮タイトル、トピック、トピック見出し等と言い換えることができる。同様に、配信コンテンツに含まれる「タイトル」も、要約等と言い換えることができる。本実施形態では、「見出し」は、配信コンテンツに含まれる「タイトル」に基づき作成される短縮テキストであるものとする。勿論、「見出し」は本文に基づき作成された短縮テキストであってもよい。なお、構文上は文が短縮されていても、「見出し」の文字数が「タイトル」の文字数より多くなることがあり得る。例えば、「タイトル」に含まれる略語を正式名称に置き換えた場合は、構文上は文が短縮されていても、結果として文字数が増えることがある。このような場合も、「見出し」は「タイトル」の短縮テキストである。
情報処理装置10は、学習データデータベースに登録されたデータの中から、タイトル本文と見出しとの組を複数組取得する。そして、情報処理装置10は、タイトルと本文と見出しとに基づいて、モデルMの学習を行う(ステップS2)。モデルMは、モデルに入力されるデータから生成条件を満たすテキストを生成するモデルである。本実施形態では、情報処理装置10は、タイトルを入力データの1つとしてモデルMの学習を行う。
なお、モデルを使って文の要約(例えば、見出し)を作成する場合、モデルが文の意味を掴みきれていないことがある。この場合、モデルは、不適切なテンプレートを当てはめたり、主語や目的語を取り違えたりして、不自然な要約を生成する。文には、なんらかのエンティティが含まれていることが多い。ここで、エンティティとは、意味のまとまりのことであり、例えば、人、組織、団体、場所、物、事柄などの実体のことである。なお、エンティティは、物質的な実体に限られず、概念的な実体(例えば、法人、ドラマ、映画等)も含まれる。文のスタイルやテンプレートは、出現するエンティティの種類と関係があると予想される。また、エンティティは主語か目的語になることが多いため、文の構造に大きな影響を与えている。テキストに含まれるエンティティの意味をモデルが捉えることができれば、モデルが生成するテキストは精度の高いものとなる。
そこで、情報処理装置10は、モデルMの学習を行う前に、モデルMに入力されるテキスト(本実施形態の場合、タイトル)からエンティティとなるワードを抽出する。以下の説明では、学習時、モデルMに入力されるテキストのことを「第1の学習用テキスト」ということがある。なお、第1の学習用テキストから抽出されるワードはエンティティに限られない。第1の学習用テキストから抽出されるワードは、エンティティとエンティティを繋ぐワード(例えば、述語)であってもよい。情報処理装置10は、例えば、第1の学習用テキストの構文を解析(例えば、形態素解析)し、解析結果に基づいて第1の学習用テキストから固有名詞(例えば、有名人の名前や企業名)等を抽出する。なお、第1の学習用テキストから抽出されるワードは、第1の学習用テキストに含まれる特定のワードに限定されない。第1の学習用テキストから抽出されるワードは、第1の学習用テキストに含まれる全てのワードであってもよい。
そして、情報処理装置10は、抽出されたワードの意味を示す意味情報を取得する。例えば、意味情報は、抽出されたワードの分散表現となる多次元量(ベクトル)である。分散表現された意味情報(多次元量)には、抽出されたワードの属性情報(例えば、抽出されたワードが示す実体のデモグラフィック属性やサイコグラフィック属性を示す情報)等が反映されている。
意味情報の取得には、知識を組織化した知識ベース(Knowledge Base)が使用される。情報処理装置10は、知識ベースを他の装置(例えば、データサーバ20等の他のサーバ)から取得してもよいし、内部の記憶装置に記憶していてもよい。知識ベースは、事実、常識、経験等の知識をコンピュータが解読できる形にしてデータベースにしたものである。知識ベースは、人間関係や人の属性等の知識を組織化したものであってもよい。図4は知識ベースの一例を示す図である。具体的には、図4は、知識ベースに格納されたデータをグラフにして視認可能にしたものである。より具体的には、図4は、エンティティをノードとし、エンティティとエンティティの関係や、エンティティの属性等を関係グラフで示したものである。図4の例では、人、ドラマ、テレビ局等がノード(エンティティ)となっているが、ノードはこれらに限定されない。
図4の例では、白抜きの丸がノードである。各ノードには、ノードの属性情報(名前、画像、生年月日、職業等)が関連づけられている。図4の例では、矢印なしの線でノードと属性情報が関連付けられている。また、各ノードには、他のノードが線で関連づけられている。図4の例では、矢印付の線でノードとノードが関連付けられている。図4の例では、矢印の先のノードは、矢印の元のノードにとって矢印に付されたワード(“出演”等)が示す事象の対象となっている。例えば、図4の例では、“山田太郎”は“XXXドラマ”に出演していることを示している。両ノードが互いに事象の対象になっている場合(例えば、夫婦関係や友人関係の場合)は、ノードとノードを結ぶ線は両矢印の線となっている。
なお、図4に示す人物は、いずれも架空の人物である。これら人物の名前は、日本人の典型的な名前(First name)と苗字(Last name)を組み合わせたものであり、他の名前に置き換え可能である。例えば、女性の名前である“田中花子”、“中村恵子”、“高橋和子”、“渡辺幸子”は、それぞれ、“Mary Taylor”“Patricia Moore” “Linda Miller”、“Barbara Jones”等と置き換え可能である。男性の名前である“山田太郎”、“鈴木次郎”、“山本次郎”、“加藤三郎”は、それぞれ、“James Smith”、“Robert Johnson”、“Robert William”、“David Brown”等と置き換え可能である。また、図4に限らず、他の図面に出てくる名前、及び、以下の実施形態中に出てくる名前も置き換え可能である。また、図4には、人物は8人のみとなっているが、勿論、知識ベースに記憶される人物は8人より多くてもよい。
情報処理装置10は、例えば、ワードエンベディング(Word Embedding)が可能な所定のモデルに第1の学習用テキストから抽出されたワードと知識ベース全体を入力することにより、抽出ワードの分散表現となる多次元量(すなわち、意味情報)を取得する。これにより、意味情報は、知識ベースにより把握される抽出ワードの意味が反映されたものとなる。
情報処理装置10は、第1の学習用テキスト(本実施形態の場合、タイトル)と第1の学習用テキストから抽出されたワードの意味情報とを入力データ、見出しを正解データとしてモデルMの学習(例えば、教師あり学習)を行う。なお、以下の説明では、学習の際、正解データとなるテキスト(本実施形態の場合、見出し)のことを「第2の学習用テキスト」ということがある。また、テキストの生成の際、入力データとなるテキスト(本実施形態の場合、タイトル)のことを「第1のテキスト」、第1のテキストから抽出されたワードのことを抽出ワード、モデルMから出力されるテキスト(すなわち生成条件を満たすテキスト)のことを「第2のテキスト」と呼ぶことがある。また、以下の説明では、正解データのことを教師ラベルということもある。なお、抽出ワードはエンティティに限られない。抽出ワードはエンティティとエンティティを繋ぐワード(例えば、述語)であってもよい。勿論、抽出ワードは、第1のテキストに含まれる全てのワードであってもよい。
上述したように、情報処理装置10は、モデルMを使って第1のテキストに対応するテキストであって生成条件を満たす第2のテキストを生成する。モデルMは、第1のテキストと第1のテキストから抽出された抽出ワードの意味情報とから第2のテキストを生成するモデルである。
(モデルM1)
図5は、モデルMの一例を示す図である。具体的には、図5は、モデルMの一例であるモデル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は、第1のテキスト(タイトル)に基づいて特徴情報(第1の特徴情報)を生成するエンコーダE11(第1のエンコーダ)と、第1のテキストから抽出された抽出ワードの意味情報に基づいて特徴情報(第2の特徴情報)を生成するエンコーダE12(第2のエンコーダ)と、を備える。また、モデルM1は、第1の特徴情報と第2の特徴情報とを合成して合成情報を生成する合成モデルSM1と、合成情報に基づいて第3のテキスト(見出し)を生成するデコーダD1と、を備える。
エンコーダE11は、入力テキストが有する特徴を抽出する。エンコーダE11は、入力層と中間層(隠れ層)とを有する。エンコーダE11には、第1の学習用テキスト(本実施形態の場合、タイトル)に含まれるワードが順次入力される。エンコーダE11は、入力されたテキストの特徴を示す多次元量(例えば、ベクトル)である特徴情報を出力する。モデルM1がアテンションモデルの場合、特徴情報はアテンションベクトルと呼ばれることもある。
エンコーダE12は、意味情報が有する特徴を抽出する。エンコーダE12は、入力層と中間層(隠れ層)とを有する。エンコーダE12には、第1の学習用テキスト(本実施形態の場合、タイトル)から抽出されたワードの意味情報が入力される。第1の学習用テキストから複数のワードが抽出されたのであれば、エンコーダE12には、複数のワードそれぞれの意味情報が順次入力される。エンコーダE12は、入力された意味情報の特徴を示す多次元量(例えば、ベクトル)である特徴情報を出力する。モデルM1がアテンションモデルの場合、特徴情報はアテンション情報或いはアテンションベクトルと言い換えることができる。
合成モデルSM1は、エンコーダE11が出力する第1の特徴情報と、エンコーダE12が出力する第2の特徴情報との線形結合を合成情報として出力する。なお、合成モデルSM1は、各特徴情報に対して所定の重みを適用した合成情報を生成してもよい。なお、モデルM1は、合成モデルSM1が出力する合成情報をデコーダD1の入力層に対応する次元数まで畳み込むよう構成されていてもよい。
デコーダD1は、入力テキストが短縮されたテキスト(すなわち、見出し)を出力する。デコーダD1は、中間層(隠れ層)と出力層とを有する。デコーダD1には、合成モデルSM1から出力された合成情報(すなわち、第1の特徴情報及び第2の特徴情報)が入力される。合成情報が入力されると、デコーダD1は、出力層から短縮テキストとなるワードを順次出力する。
情報処理装置10は、エンコーダE11に第1の学習用テキスト、エンコーダE12に意味情報を入力した際に、デコーダD1から第1の学習用テキストに対応する第2の学習用テキストが出力されるよう、モデルM1の学習を行う。例えば、情報処理装置10は、デコーダD1が出力した短縮テキストが、第2の学習用テキストに近づくように、バックプロパゲーション等の手法により、各ノード間で値が伝達する際に考慮される重み(すなわち、接続係数)の値を修正する。これにより、情報処理装置10は、モデルM1に第1の学習用テキストが有する特徴を学習させる。なお、情報処理装置10は、短縮テキストの分散表現となるベクトルと第2の学習用テキストの分散表現となるベクトルとのコサイン類似度に基づいて重みの値を修正してもよい。
このように学習されたモデルM1は、第1の学習用テキストから抽出されたワード(例えば、エンティティ)の関係で第2の学習用テキストのパターンを学習したものとなる。例えば、“山本次郎とモデルの渡辺幸子が結婚”と“鈴木次郎とアナウンサーの高橋和子が結婚”の2つの第2の学習用テキストがあったとする。このとき、“山本次郎”、“渡辺幸子”、“鈴木次郎”、“高橋和子”の4つは第1の学習用テキストから抽出されたエンティティである。図4の知識ベースを見れば分かるように、“山本次郎”の職業はサッカー選手であり、“鈴木次郎”の職業は野球選手である。サッカー選手と野球選手のクラスはいずれもアスリートである。モデルMは、これら第2の学習用テキストから、「アスリートの結婚相手の職業は省略しない」とのパターンを学習する。
また、“AとモデルのBが離婚”と“Aと元大学教授が離婚”の2つの第2の学習用テキストがあったとする。このとき、“A”と“B”は第1の学習用テキストから抽出されたエンティティであるものとする。モデルMは、これら第2の学習用テキストから、「“離婚”の主語には2つのエンティティを置く」とのパターンを学習する。
(モデルM2)
図6は、モデルMの他の例を示す図である。具体的には、図6は、モデルMの一例であるモデルM2を示す図である。図6に示すモデルM2は、第1のテキスト(タイトル)に基づいて特徴情報(第1の特徴情報)を生成するエンコーダE21(第1のエンコーダ)と、第1のテキストから抽出された抽出ワードの意味情報に基づいて特徴情報(第2の特徴情報)を生成するエンコーダE12(第2のエンコーダ)と、関係情報に基づいて特徴情報(第3の特徴情報)を生成するエンコーダE23(第3のエンコーダ)と、を備える。また、モデルM2は、第1の特徴情報と第2の特徴情報と第3の特徴情報を合成して合成情報を生成する合成モデルSM2と、合成情報に基づいて第3のテキスト(見出し)を生成するデコーダD2と、を備える。エンコーダE21、エンコーダE22、合成モデルSM2、及びデコーダD2の構成はモデルM1のエンコーダE12、エンコーダE11、合成モデルSM1、及びデコーダD1と同様である。
エンコーダE23は、関係情報が有する特徴を抽出する。関係情報は、ユーザ属性を示す属性情報と、ユーザ属性と抽出ワードとの関係を示す情報である。ユーザ属性は、ユーザ(例えば、第1のテキストの送信対象となるユーザ)に関するデモグラフィック属性やサイコグラフィック属性である。図7は、関係情報の一例を示す図である。図7は、いずれも有名人である“中村恵子”と“加藤三郎”の年代別の知名度を示す情報である。“中村恵子”と“加藤三郎”はいずれも架空の人物であり、他の名前に置き換え可能である。本実施形態では、図4の知識ベースに示すように、“中村恵子”と“加藤三郎”親子関係にあるものとする。図7の例では、20~50歳代(図7に示す“20-50歳”)、60歳以上(図7に示す“60-”)の2つの年代がユーザ属性として示されている。図7の例の場合、“中村恵子”は、20~50歳代には40%の人に知られているが、60歳以上には30%の人にしか知られていない。一方、“加藤三郎”は、20~50歳代には10%の人にしか知られていないが、60歳以上には70%の人に知られている。
情報処理装置10は、このような関係情報を検索サイトの運営者等が収集した多くのユーザの検索クエリのログに基づき生成する。なお、図7に示した関係情報はあくまで例であり、関係情報は図7に示した例に限定されるものではない。情報処理装置10は、検索クエリのログを使った方法以外にも、さまざまな方法で関係情報を生成可能である。
情報処理装置10は、エンコーダE21に第1の学習用テキスト、エンコーダE22に意味情報、エンコーダE23に関係情報、を入力した際に、デコーダD2から第1の学習用テキストに対応する第2の学習用テキストが出力されるよう、モデルM1の学習を行う。例えば、情報処理装置10は、デコーダD1が出力した短縮テキストが、第2の学習用テキストに近づくように、バックプロパゲーション等の手法により、各ノード間で値が伝達する際に考慮される重み(すなわち、接続係数)の値を修正する。これにより、情報処理装置10は、モデルM2に第1の学習用テキストが有する特徴を学習させる。なお、情報処理装置10は、短縮テキストの分散表現となるベクトルと第2の学習用テキストの分散表現となるベクトルとのコサイン類似度に基づいて重みの値を修正してもよい。
このように学習されたモデルM1は、第1の学習用テキストから抽出されたワード(例えば、エンティティ)とユーザ属性との関係で第2の学習用テキストのパターンを学習したものとなる。例えば、第1の学習用テキストが“中村恵子がサッカー選手と結婚。来年1月に挙式。”で第2の学習用テキストが“加藤三郎の娘がサッカー選手と結婚”であるとする。図7に示す例では、60歳以上では“中村恵子”の知名度より“加藤三郎”の知名度が高い。また、図4を見れば分かるように、“加藤三郎”は“中村恵子”の親である。モデルMは、第1の学習用テキストと第2の学習用テキストから、「60歳以上を対象とした知名度において、エンティティの知名度より知名度が高い親がいる場合、エンティティをその親を含めたワードに置き換える」とのパターンを学習する。
〔1-4.生成処理について〕
次に、上述した学習処理によって学習が行われたモデルMを用いて、第1のテキスト(例えば、タイトル)に対応するテキストであって生成条件を満たす第2のテキスト(例えば、見出し)を生成する生成処理の一例について説明する。
まず、情報処理装置10は、データサーバ20からモデルMに入力される情報を取得する(ステップS3)。例えば、情報処理装置10は、データサーバ20から、配信予定の配信コンテンツ(本文及びタイトル)を取得する。そして、情報処理装置10は、配信コンテンツの中からモデルMに入力する第1のテキスト(本実施形態の場合、タイトル)を選択する。
そして、情報処理装置10は、第1のテキストから抽出される抽出ワードを取得する。抽出ワードは、第1のテキストに含まれるエンティティ(例えば、固有名詞)であってもよいし、エンティティとエンティティを繋ぐワード(例えば、述語)であってもよい。情報処理装置10は、例えば、第1のテキストの構文を解析(例えば、形態素解析)し、解析結果に基づいて第1のテキストから固有名詞(例えば、有名人の名前や企業名)等のワードを抽出する。
なお、情報処理装置10は、第1のテキストから複数の抽出ワードを抽出してもよい。例えば、情報処理装置10が、第1のテキストとして“山本次郎とモデルの渡辺幸子が結婚。来月挙式。”とのタイトルを取得したとする。この場合、情報処理装置10は、例えば、“山本次郎”と“渡辺幸子”の2つのワードを抽出ワードとして取得する。また、情報処理装置10が、第1のテキストとして“山田太郎と田中花子が音楽番組で共演。エピソード披露”とのタイトルを取得したとする。この場合、情報処理装置10は、例えば、“山田太郎”と“田中花子”の2つのワードを抽出ワードとして取得する。なお、第1のテキスト第1のテキストに含まれる特定のワードに限定されない。第1のテキストは、第1のテキストに含まれる全てのワードであってもよい。
そして、情報処理装置10は、知識ベースに基づいて抽出ワードを意味情報に変換する。例えば、情報処理装置10は、意味情報として、知識を組織化した知識ベースに基づき分散表現に変換された抽出ワード(多次元量)を取得する。第1のテキストから複数の抽出ワードが抽出されたのであれば、情報処理装置10は、複数の抽出ワードそれぞれの意味情報を取得する。このとき、情報処理装置10は、ワードエンベディング(Word Embedding)が可能な所定のモデルに抽出ワードと知識ベース全体を入力することにより、抽出ワードの意味情報を取得する。
例えば、情報処理装置10が、“山本次郎”と“渡辺幸子”の2つのワードを抽出ワードとして取得したとする。このとき、情報処理装置10は“山本次郎”と“渡辺幸子”それぞれについて分散表現となる多次元量(ベクトル)を生成する。図4の知識ベースを見れば分かるように、“山本次郎”は、“中村恵子”と友人であり、職業はサッカー選手である。サッカー選手のクラスはアスリートである。“山本次郎”の分散表現はこれらの属性が反映されたものとなる。また、“渡辺幸子”は、“中村恵子”と友人であり、職業はモデルである。“渡辺幸子”の分散表現はこれらの属性が反映されたものとなる。
また、情報処理装置10が、“山田太郎”と“田中花子”の2つのワードを抽出ワードとして取得したとする。このとき、情報処理装置10は“山田太郎”と“田中花子”それぞれについて分散表現となる多次元量(ベクトル)を生成する。図4の知識ベースを見れば分かるように、“山田太郎”は“田中花子”と夫婦であり、生年月日は1969年12月31日である。そして、“山田太郎”は“鈴木次郎”と友人であり、“XXXドラマ”に出演している。そして、“山田太郎”の顔の画像は図4に示す画像である。“山田太郎”の分散表現はこれらの属性が反映されたものとなる。また、“田中花子”は、“山田太郎”と夫婦であり、生年月日は1982年1月1日である。そして、“田中花子”の顔の画像は図4に示す画像である。“田中花子”の分散表現はこれらの属性が反映されたものとなる。
意味情報の取得が完了したら、情報処理装置10は、内部の記憶装置からモデルMを取得する。上述したように、モデルMは、第1の学習用テキストと第1の学習用テキストから抽出されたワードの意味情報とを入力データ、第2の学習用テキストを正解データ(教師ラベル)として学習したモデルである。そして、情報処理装置10は、モデルMに、第1のテキスト(例えば、タイトル)と、第1のテキストから抽出された抽出ワードの意味情報と、を入力する。第1のテキストから抽出された抽出ワードが複数あるのであれば、情報処理装置10は、複数の抽出ワードそれぞれの意味情報を入力する。これにより、情報処理装置10は、第1のテキストに対応するテキストであって生成条件を満たす第2のテキスト(例えば、見出し)を生成する(ステップS4)。
(モデルM1)
例えば、モデルMが図5に示すモデルM1であるとする。上述したように、モデルM1は、第1のテキスト(タイトル)に基づいて特徴情報(第1の特徴情報)を生成するエンコーダE11(第1のエンコーダ)と、第1のテキストから抽出された抽出ワードの意味情報に基づいて特徴情報(第2の特徴情報)を生成するエンコーダE12(第2のエンコーダ)と、第1の特徴情報と第2の特徴情報とを合成した合成情報に基づいて第2のテキスト(見出し)を生成するデコーダD1と、を含んでいる。
情報処理装置10は、第1のテキスト(タイトル)に含まれるワードを、順次、エンコーダE11に入力するとともに、第1のテキストの抽出ワードの意味情報をエンコーダE12に入力する。第1のテキストから複数の抽出ワードが抽出されたのであれば、情報処理装置10は、複数の抽出ワードの複数の意味情報をエンコーダE12に順次入力する。そして、情報処理装置10は、デコーダD1から、順次、第2のテキスト(見出し)となるワードを取得する。
例えば、モデルM1が「アスリートの結婚相手の職業は省略しない」とのパターンを学習していたとする。そして、情報処理装置10がモデルM1に第1のテキストとして“山本次郎とモデルの渡辺幸子が結婚。来月挙式。”とのタイトルを入力したとする。意味情報から“山本次郎”はサッカー選手でありアスリートであると分かるので、モデルM1は、結婚相手である“渡辺幸子”の職業は省略せずに、例えば、“山本次郎とモデルの渡辺幸子が結婚”との見出し(第2のテキスト)を生成する。
また、モデルM1が「離婚の主語には2つのエンティティを置く」とのパターンを学習していたとする。そして、情報処理装置10がモデルM1に第1のテキストとして“Aと去年バレー選手を引退したCが離婚。”とのタイトルを入力したとする。このとき、“A”は知識ベースに情報がある既知のエンティティであり、“C”は知識ベースに情報がない未知のエンティティであるとする。このとき、モデルM1は、離婚の主語が2つのエンティティとなるように“AとCが離婚”との見出し(第2のテキスト)を生成する。
なお、情報処理装置10は、抽出ワードの意味情報に基づいて2以上の抽出ワードを1のワードに置き換えることも可能である。このとき、情報処理装置10は、抽出ワードの意味情報に基づいて判別される複数の抽出ワードの関係に基づいて第2のテキストを生成してもよい。例えば、情報処理装置10がモデルM1に第1のテキストとして“山田太郎と田中花子が音楽番組で共演。エピソード披露”とのタイトルを入力したとする。意味情報から“山田太郎”と“田中花子”は夫婦であることが分かるので、モデルM1は、第2のテキストとして、例えば、“田中花子夫妻が音楽番組で共演”を生成する。
また、情報処理装置10は、抽出ワードの意味情報に基づいて抽出ワードを別のワードに置き換えることも可能である。例えば、情報処理装置10がモデルM1に第1のテキストとして“ジローとアナウンサーの高橋和子が結婚。来年挙式”とのタイトルを入力したとする。意味情報からジローが“鈴木次郎”の愛称だと分かるとする。このとき、モデルM1は、“ジロー”を“鈴木次郎”に置き換え、第2のテキストとして、例えば、“鈴木次郎とアナウンサーの高橋和子が結婚”を生成する。
(モデルM2)
また、モデルMが図6に示すモデルM2であるとする。上述したように、モデルM2は、第1のテキスト(タイトル)に基づいて特徴情報(第1の特徴情報)を生成するエンコーダE21(第1のエンコーダ)と、第1のテキストから抽出された抽出ワードの意味情報に基づいて特徴情報(第2の特徴情報)を生成するエンコーダE22(第2のエンコーダ)と、関係情報に基づいて特徴情報(第3の特徴情報)を生成するエンコーダE23(第3のエンコーダ)と、第1の特徴情報と第2の特徴情報と第3の特徴情報を合成した合成情報に基づいて第3のテキスト(見出し)を生成するデコーダD2と、を含んでいる。
情報処理装置10は、第1のテキストのテキストから抽出した抽出ワードに関する関係情報を取得する。例えば、第1のテキストが“中村恵子がサッカー選手と結婚。来年1月に挙式。”であり、第1のテキストから抽出ワードとして“中村恵子”が抽出されたとする。このとき、情報処理装置10は、“中村恵子”に関する関係情報を取得する。上述したように、関係情報は、例えば図7に示すような、ユーザ属性を示す属性情報と、ユーザ属性と抽出ワードとの関係と、を示す情報である。情報処理装置10は、関係情報を検索サイトの運営者等が収集した多くのユーザの検索クエリのログに基づき生成してもよい。情報処理装置10は、検索クエリのログを使った方法以外にも、さまざまな方法で関係情報を生成可能である。
情報処理装置10は、第1のテキスト(タイトル)に含まれるワードを、順次、エンコーダE21に入力するとともに、第1のテキストの抽出ワードの意味情報をエンコーダE22に入力する。第1のテキストから複数の抽出ワードが抽出されたのであれば、情報処理装置10は、複数の抽出ワードの複数の意味情報をエンコーダE22に順次入力する。また、情報処理装置10は、関係情報をエンコーダE23に入力する。関係情報が複数あるのであれば、情報処理装置10は、関係情報をエンコーダE23に順次入力する。そして、情報処理装置10は、デコーダD2から、順次、第2のテキスト(見出し)となるワードを取得する。
例えば、モデルM2が「60歳以上を対象とした知名度において、エンティティの知名度より知名度が高い親がいる場合、エンティティをその親を含めたワードに置き換える」とのパターンを学習していたとする。そして、情報処理装置10がモデルM2に第1のテキストとして“中村恵子がサッカー選手と結婚。来年1月に挙式。”とのタイトルを入力したとする。モデルM2に入力された関係情報が図7に示す関係情報であったとすると、“中村恵子”の知名度よりその親の加藤三郎の知名度が高いので、モデルM2は、第2のテキストとして、例えば、“加藤三郎の子がサッカー選手と結婚”を生成する。
なお、モデルM2は、ユーザのユーザ属性を示す属性情報を入力できるよう構成されていてよい。例えば、モデルM2は、属性情報を入力するための第4のエンコーダが追加されていてもよい。第4のエンコーダは属性情報が入力された場合に、第4の特徴情報を出力するよう構成されていてもよい。そして、合成モデルSM2は、第1の特徴情報と第2の特徴情報と第3の特徴情報と第4の特徴情報を合成して合成情報を生成するよう構成されていてもよい。情報処理装置10は、第1のテキストの送信対象となるユーザのユーザ属性を示す属性情報を取得し、第1のテキスト、意味情報、関係情報に加えて、属性情報をモデルMに入力してもよい。モデルM2は属性情報を踏まえて第2のテキストを生成できる。例えば、上述の “中村恵子がサッカー選手と結婚。来年1月に挙式。”を第1のテキストとした例において、ユーザが20~50歳代であることを示す属性情報がモデルM2に入力されたとする。このとき、モデルM2は、“中村恵子”を“加藤三郎の子”に変換することなく、第2のテキストとして、例えば、“中村恵子がサッカー選手と結婚”を生成してもよい。
第2のテキストが生成されたら、情報処理装置10は、第2のテキストを用いて、要約コンテンツを生成する。そして、情報処理装置10は、要約コンテンツを端末装置30に配信する(ステップS5)。
本実施形態によれば、情報処理装置10が有するモデルM1は、第1のテキスト(タイトル)のみならず第1のテキストから抽出された抽出ワードの意味情報も使って第2のテキスト(見出し)を生成するよう構成されている。情報処理装置10は抽出ワードの意味も踏まえてテキストを生成できるので、情報処理装置10は、精度の高い第2のテキストを生成できる。
また、情報処理装置10が有するモデルM2は、第1のテキストと意味情報に加えて、関係情報も使って第2のテキスト(見出し)を生成するよう構成されている。情報処理装置10は抽出ワードとユーザ属性との関係も踏まえてテキストを生成できるので、精度の高い第2のテキストを生成できる。
〔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)網、インターネット等の通信ネットワークである。ネットワークには、有線ネットワークが含まれていてもよいし、無線ネットワークが含まれていてもよい。
図8は、実施形態に係る情報処理装置10の構成例を示す図である。情報処理装置10は、通信部11と、記憶部12と、制御部13と、を備える。なお、図8に示した構成は機能的な構成であり、ハードウェア構成はこれとは異なっていてもよい。
通信部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、知識ベース124、関係情報データベース125を記憶する。
学習データデータベース121には、学習データが登録される。図9は、学習データデータベース121に登録される情報の一例を示す図である。学習データデータベース121には、「学習データID(Identifier)」、「本文」、「タイトル」、および「見出し」といった項目を有する情報が登録される。
なお、図9に示す情報のうち「本文」、「タイトル」、および「見出し」は、図3に示す「本文」、「タイトル」、および「見出し」に対応する。なお、学習データデータベース121には、図9に示す情報以外にも、学習データや要約データを閲覧した利用者に関する各種の情報が登録されていてもよい。なお、図9に示す例では、学習データデータベース121に登録される情報として、「K11~K13」、「T11~T13」、「U11~U13」といった概念的な情報を示したが、実際には、テキストデータやバイナリデータが登録されることとなる。
ここで、「学習データID」とは、学習データを識別するための識別子である。また、「本文」とは、ユーザに配信されたコンテンツ(例えば、記事)に含まれる本文となるテキストである。また「タイトル」とは、コンテンツ或いは当該コンテンツに含まれる本文に付されたタイトルである。また、「見出し」とは、コンテンツ(本文或いはタイトル)に付された見出しである。
例えば、図9に示す例では、学習データID「1001」、本文「K11」、タイトル「T11」、及び見出し「U11」といった情報が対応付けて登録されている。このような情報は、例えば、学習データID「1001」が示す学習データに、「K11」が示す本文と、「T11」が示すタイトルと、「U11」が示す見出しと、が含まれる旨を示す。
図8に戻り、モデルデータベース122には、情報処理装置10が有するモデルのデータが登録される。図10は、モデルデータベース122に登録される情報の一例を示す図である。図10に示す例では、モデルデータベース122には、「モデルID」、および「モデルデータ」といった情報が登録されている。
ここで、「モデルID」とは、各モデルを識別するための情報である。また、「モデルデータ」とは、対応付けられた「モデルID」が示すモデルのデータであり、例えば、各層におけるノードと、各ノードが採用する関数と、ノードの接続関係と、ノード間の接続に対して設定される接続係数とを含む情報である。
例えば、図10に示す例では、モデルID「2001」およびモデルデータ「M1」といった情報が対応付けて登録されている。このような情報は、例えば、「2001」が示すモデルのデータが「M1」である旨を示す。なお、図10に示す例では、モデルデータベース122に登録される情報として、「M1、M2」といった概念的な情報を記載したが、実際には、モデルの構造や接続係数を示す文字列や数値等が登録されることとなる。
モデルMは、第1の学習用テキストと、前記第1の学習用テキストから抽出されたワードの意味情報と、を入力データ、前記第1の学習用テキストに対応するテキストであって所定の条件を満たす第2の学習用テキストとを正解データとして学習したモデルである。モデルMは、第1のテキストと該第1のテキストから抽出された抽出ワードの意味情報とから生成条件を満たす第2のテキストを生成する。このようなモデルMは、第1のテキストと該第1のテキストから抽出された抽出ワードの意味情報とを入力する入力層と、前記第1のテキストに対応するテキストであって所定の条件を満たす第2のテキストを出力する出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第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は、「テキスト」、「意味情報」、及び「ユーザ属性と抽出ワードとの関係を示す関係情報」が入力された場合に、生成条件を満たすテキストを出力するように係数が設定されてもよい。また、モデルMは、「テキスト」、「意味情報」、「属性情報」、及び「テキストの送信対象となるユーザのユーザ属性を示す属性情報」が入力された場合に、生成条件を満たすテキストを出力するように係数が設定されてもよい。情報処理装置10は、このようなモデルMを用いて、生成条件を満たすテキスト(例えば、見出し)を生成する。
なお、上記例では、モデルMが、「テキスト(例えば、タイトル)」、及び「当該テキストから抽出された抽出ワードの意味情報」が入力された場合に、入力されたテキストに対応するテキストであって生成条件を満たすテキスト(例えば、見出し)を出力するモデル(以下、モデルVという。)である例を示した。しかし、実施形態に係るモデルMは、モデルVにデータの入出力を繰り返すことで得られる結果に基づいて生成されるモデルであってもよい。例えば、モデルVは、テキスト及び意味情報を入力とし、モデルVが出力する「入力されたテキストに対応するテキストであって生成条件を満たすテキスト」を出力とするよう学習されたモデルであってもよい。
また、情報処理装置10がGAN(Generative Adversarial Networks)を用いた学習処理或いは生成処理を行う場合、モデルMは、GANの一部を構成するモデルであってもよい。
図8に戻り、コンテンツ情報データベース123には、ユーザに配信されるコンテンツの情報が登録される。例えば、コンテンツ情報データベース123には、コンテンツパートナーから取得した記事等が登録される。図11は、コンテンツ情報データベース123に登録される情報の一例を示す図である。コンテンツ情報データベース123には、「コンテンツID」、「本文」、及び「タイトル」といった項目を有する情報が登録される。なお、「コンテンツID」とは、コンテンツのデータを識別するための識別子である。「本文」、及び「タイトル」は、図9に示す「本文」、及び「タイトル」と同様である。
図8に戻り、知識ベース124には、例えば、図4に示すような知識をデータ化した情報が格納される。また、関係情報データベース125には、例えば、図7に示すような、ユーザ属性と抽出ワードとの関係を示す関係情報が格納される。
図8に戻り、制御部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、M2等)に従った情報処理により、モデルMの入力層に入力されたデータ(例えば、タイトル、意味情報)に対し、モデルMが有する係数(すなわち、モデルMが学習した各種の特徴に対応する係数)に基づく演算を行い、モデルMの出力層から出力テキスト(例えば、見出し)を出力する。
制御部13は、図8に示すように、学習データ取得部131と、学習部132と、出力情報取得部133と、生成部134と、出力制御部135と、を備える。制御部13を構成するブロック(学習データ取得部131~出力制御部135)はそれぞれ制御部13の機能を示す機能ブロックである。これら機能ブロックはソフトウェアブロックであってもよいし、ハードウェアブロックであってもよい。例えば、上述の機能ブロックが、それぞれ、ソフトウェア(マイクロプログラムを含む。)で実現される1つのソフトウェアモジュールであってもよいし、半導体チップ(ダイ)上の1つの回路ブロックであってもよい。勿論、各機能ブロックがそれぞれ1つのプロセッサ或いは1つの集積回路であってもよい。機能ブロックの構成方法は任意である。なお、制御部13は上述の機能ブロックとは異なる機能単位で構成されていてもよい。
学習データ取得部131は、第1の学習用テキストと、第1の学習用テキストから抽出されたワードの意味情報と、第1の学習用テキストに対応するテキストであって所定の条件を満たす第2の学習用テキストと、を取得する。
学習部132は、モデルMの学習を行い、学習したモデルMをモデルデータベース122に格納する。より具体的には、学習部132は、第1の学習用テキスト(例えば、タイトル)及び第1の学習用テキストから抽出された抽出ワードの意味情報をモデルMに入力した際に、モデルMが学習データに含まれる第2の学習用テキスト(例えば、入力したタイトルに対応する見出し)を出力するように、モデルMが有する各モデルの接続係数の設定を行う。すなわち、学習部132は、入力テキストと意味情報を入力した際に、モデルMが、入力テキストに対応するテキストであって生成条件を満たす出力テキストを出力するように、モデルMの学習を行う。モデルMには、入力テキスト及び意味情報に加えて、関係情報や属性情報が入力されてもよい。
例えば、学習部132は、モデルMが有する入力層のノードであって、入力層に入力される情報と対応する特徴を学習したエンコーダの入力層と対応するノードに第1の学習用テキスト(例えば、タイトル)と第1の学習用テキストから抽出された抽出ワードの意味情報を入力し、各中間層を辿ってモデルMの出力層までデータを伝播させることで、第1の学習用テキストに対応するテキストであって生成条件を満たすテキストを出力させる。そして、学習部132は、モデルMが実際に出力したテキストと、学習データに含まれる第3の学習用テキスト(例えば、見出し)との差に基づいて、モデルMの接続係数を修正する。例えば、学習部132は、バックプロパゲーション等の手法を用いて、接続係数の修正を行ってもよい。また、学習部132は、第3の学習用テキストの分散表現となるベクトルと、モデルMが実際に出力したテキストの分散表現となるベクトルとのコサイン類似度に基づいて、接続係数の修正を行ってもよい。
なお、学習部132は、いかなる学習アルゴリズムを用いてモデルMを学習してもよい。例えば、学習部132は、ニューラルネットワーク、サポートベクターマシン(support vector machine)、クラスタリング、強化学習等の学習アルゴリズムを用いて、モデルMを学習してもよい。
ここで、学習部132は、第1の学習用テキストと該第1の学習用テキストから抽出されたワードの意味情報とを入力データ、第2の学習用テキストを正解データとして、第1のテキストと該第1のテキストから抽出された抽出ワードの意味情報とから所定の条件を満たす第2のテキストを生成するモデルの学習を行う。
なお、モデルMは、第1のテキストに基づいて第1の特徴情報を生成する第1のエンコーダと、第1のテキストから抽出されたワードの意味情報に基づいて第2の特徴情報を生成する第2のエンコーダと、第1の特徴情報及び第2の特徴情報に基づいて第2のテキストを生成するデコーダと、を含んでいてもよい。そして、学習部132は、第1の学習用テキストを第1のエンコーダに入力される入力データ、第1の学習用テキストから抽出されたワードの意味情報を第2のエンコーダに入力される入力データ、第2の学習用テキストを正解データとして、モデルの学習を行ってもよい。
出力情報取得部133は、第1のテキストと、第1のテキストから抽出された抽出ワードの意味情報と、を取得する。また、出力情報取得部133は、第1のテキストから抽出された複数の抽出ワードそれぞれの意味情報を取得する。また、出力情報取得部133は、ユーザ属性と抽出ワードとの関係を示す関係情報を取得する。また、出力情報取得部133は、第1のテキストの送信対象となるユーザのユーザ属性を示す属性情報を取得する。また、出力情報取得部133は、知識を組織化した知識ベースに基づき分散表現に変換された抽出ワードを意味情報として取得する。
生成部134は、第1のテキストと抽出ワードの意味情報とに基づいて、第1のテキストに対応するテキストであって所定の条件を満たす第2のテキストを生成する。
生成部134は、第1のテキストと、複数の抽出ワードそれぞれの意味情報と、に基づいて、第2のテキストを生成する。
生成部134は、第1のテキストと、抽出ワードの意味情報に基づいて判別される複数の抽出ワードの関係と、に基づいて、第2のテキストを生成する。
生成部134は、第1のテキストと、抽出ワードの意味情報と、関係情報と、に基づいて、第2のテキストを生成する。生成部134は、第1のテキストと、意味情報と、関係情報と、属性情報と、に基づいて、第2のテキストを生成してもよい。
生成部134は、抽出ワードの意味情報に基づいて抽出ワードを別のワードに置き換える。
生成部134は、抽出ワードの意味情報に基づいて2以上の抽出ワードを1のワードに置き換える。
生成部134は、第1の学習用テキストと第1の学習用テキストから抽出されたワードの意味情報とを入力データ、第1の学習用テキストに対応するテキストであって所定の条件を満たす第2の学習用テキストを正解データとして学習したモデルMに、第1のテキストと抽出ワードの意味情報とを入力することにより、第2のテキストを生成する。
このとき、生成部134が第2のテキストの生成に使用するモデルMは、第1のテキストに基づいて第1の特徴情報を生成する第1のエンコーダと、抽出ワードの意味情報に基づいて第2の特徴情報を生成する第2のエンコーダと、第1の特徴情報及び第2の特徴情報に基づいて第2のテキストを生成するデコーダと、を含んでいてもよい。
出力制御部135は、生成部134が生成したテキストを利用者に対して出力する。例えば、出力制御部135は、端末装置30からの要求に応じて、生成部134が生成したテキストが含まれるコンテンツを配信する。なお、出力制御部135は、生成部134が生成したテキストが含まれるコンテンツをデータサーバ20に提供し、データサーバ20から配信させてもよい。
〔3.情報処理装置の処理フロー〕
次に、情報処理装置10が実行する処理の手順について説明する。情報処理装置10は学習処理と生成処理とを実行する。情報処理装置10はマルチタスクOSを備え、これらの処理を並行して実行可能である。
〔3-1.学習処理〕
最初に学習処理を説明する。図12は、学習処理の一例を示すフローチャートである。学習処理は、入力テキスト(例えば、タイトル)と当該入力テキストから抽出された抽出ワードの意味情報とから出力テキスト(例えば、見出し)を生成するモデルMを学習する処理である。情報処理装置10は、ユーザから処理開始命令を受信すると、学習処理を実行する。
まず、情報処理装置10は、学習データを取得する(ステップS11)。例えば、情報処理装置10は、データサーバ20から配信コンテンツ(本文及びタイトル)の情報を取得するとともに、配信コンテンツに対応する見出しを取得する。
続いて、情報処理装置10は、ステップS11で取得したデータの中から、入力データとなるテキスト(第1の学習用テキスト)と、当該入力データに対応するテキストであって正解データ(教師ラベル)となるテキスト(第2の学習用テキスト)を取得する(ステップS12)。例えば、情報処理装置10は、タイトルを第1の学習用テキスト、見出しを第2の学習用テキストとして選択する。
続いて、情報処理装置10は、第1の学習用テキストから抽出されたワードの意味情報を取得する(ステップS13)。続いて、情報処理装置10は、ステップS13で抽出されたワードの関係情報を取得する(ステップS14)。情報処理装置10は、ユーザ属性を示す属性情報を取得してもよい。
そして、情報処理装置10は、第1の学習用テキストと意味情報を入力データ、第2の学習用テキストを正解データ(教師ラベル)としてモデルMの学習を実行する(ステップS15)。なお、モデルMが第1の学習用テキストと意味情報に加えて関係情報を入力できるよう構成されているのであれば、情報処理装置10は、第1の学習用テキストと第2の学習用テキストと関係情報を入力データ、第2の学習用テキストを正解データ(教師ラベル)としてモデルMの学習を実行する。また、モデルMが第1の学習用テキストと意味情報と関係情報に加えて属性情報を入力できるよう構成されているのであれば、情報処理装置10は、第1の学習用テキストと第2の学習用テキストと関係情報と属性情報を入力データ、第2の学習用テキストを正解データ(教師ラベル)としてモデルMの学習を実行する。学習の実行が終了したら、情報処理装置10は、学習処理を終了する。
〔3-2.生成処理〕
次に生成処理を説明する。図13は、生成処理の一例を示すフローチャートである。生成処理は、入力テキスト(例えば、タイトル)と当該入力テキストから抽出された抽出ワードの意味情報とから出力テキスト(例えば、見出し)を生成する処理である。情報処理装置10は、ユーザから処理開始命令を受信すると、生成処理を実行する。
まず、情報処理装置10は、コンテンツ情報を取得する(ステップS21)。例えば、情報処理装置10は、データサーバ20から配信コンテンツ(本文及びタイトル)の情報を取得する。
続いて、情報処理装置10は、ステップS21で取得したデータの中から、モデルMに入力するテキスト(第1のテキスト)を取得する(ステップS22)。例えば、情報処理装置10は、タイトルを第1のテキストとして取得する。
続いて、情報処理装置10は、第1のテキストから抽出されたワードの意味情報を取得する(ステップS23)。続いて、情報処理装置10は、ステップS23で抽出されたワードの関係情報を取得する(ステップS24)。情報処理装置10は、ユーザ属性を示す属性情報を取得してもよい。
そして、情報処理装置10は、第1の学習用テキストと意味情報をモデルMに入力してテキスト(第2のテキスト)を生成する(ステップS25)。なお、モデルMが第1の学習用テキストと意味情報に加えて関係情報を入力できるよう構成されているのであれば、情報処理装置10は、第1の学習用テキストと第2の学習用テキストと関係情報をモデルMに入力してもよい。また、モデルMが第1の学習用テキストと意味情報と関係情報に加えて属性情報を入力できるよう構成されているのであれば、情報処理装置10は、第1の学習用テキストと第2の学習用テキストと関係情報と属性情報をモデルMに入力してもよい。第2のテキストの生成が終了したら、情報処理装置10は、生成処理を終了する。
〔4.変形例〕
上述の実施形態は一例を示したものであり、種々の変更及び応用が可能である。
例えば、上述の実施形態では、情報処理装置10は、第1の学習用テキストをタイトル、第2の学習用テキストを見出しとしてモデルMの学習を行った。しかし、第1の学習用テキスト、及び第2の学習用テキストは上記の例に限定されない。例えば、情報処理装置10は、第1の学習用テキストを本文、第2の学習用テキストを見出しとしてモデルMの学習を行ってもよい。その他、第1の学習用テキスト、及び第2の学習用テキストとするテキストは任意に変更可能である。同様に、モデルMに入力する第1のテキストも任意に変更可能である。
また、上述の実施形態では、モデルMは、アテンションモデルを追加したSeq2Seqであるものとしたが、アテンションモデルが追加されていない通常のSeq2Seqであってもよい。
また、上述の実施形態では、モデルMを構成するエンコーダおよびデコーダは、LSTMにより構成されるものとしたが、LSTM以外のRNNにより構成されていてもよい。モデルMを構成するエンコーダおよびデコーダは、CNN(Convolution Neural Network)等、RNN以外のニューラルネットワークであってもよい。その他、モデルMを構成するエンコーダおよびデコーダは、単純に入力された情報量の次元数を変化させるニューラルネットワークであってもよい。このとき、モデルMを構成するエンコーダは、入力された情報の次元量を圧縮することで入力された情報が有する特徴を抽出するよう構成されていてもよい。また、モデルMを構成するデコーダは、エンコーダによって抽出された特徴の次元量を増大させ、エンコーダに入力された情報よりも次元数が少ない情報を出力するよう構成されていてもよい。
また、上述の実施形態では、情報処理装置10は学習モデル(モデルM)を使用して第2のテキストを生成したが、情報処理装置10は学習モデルを使用せずに第2のテキストを生成してもよい。例えば、情報処理装置10は、第1のテキスト(例えば、タイトル)に含まれるワードを意味情報に基づいて判別される別のワードに置き換えてもよい。
本実施形態の情報処理装置10を制御する制御装置は、専用のコンピュータシステムによって実現してもよいし、通常のコンピュータシステムにより実現してもよい。例えば、上述の動作を実行するためのプログラムまたはデータ(例えば、モデルM)を、光ディスク、半導体メモリ、磁気テープ、フレキシブルディスク等のコンピュータ読み取り可能な記録媒体に格納して配布し、該プログラムをコンピュータにインストールし、上述の処理を実行することによって制御装置を構成してもよい。制御装置は、情報処理装置10の外部の装置(例えば、パーソナルコンピュータ)であってもよいし、内部の装置(例えば、制御部13)であってもよい。また、上記プログラムをインターネット等のネットワーク上のサーバ装置が備えるディスク装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。また、上述の機能を、OS(Operating System)とアプリケーションソフトとの協働により実現してもよい。この場合には、OS以外の部分を媒体に格納して配布してもよいし、OS以外の部分をサーバ装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。
また、上記各実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上述してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔5.ハードウェア構成〕
実施形態及び変形例に係る情報処理装置10は、例えば図14に示すような構成のコンピュータ1000によっても実現可能である。図14は、情報処理装置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のテキストから抽出された抽出ワードの意味情報と、を取得する。そして、情報処理装置10は、第1のテキストと抽出ワードの意味情報とに基づいて、第1のテキストに対応するテキストであって所定の条件を満たす第2のテキストを生成する。このとき、情報処理装置10は、第2のテキストとして、所定の文字数以下のテキストを生成してもよい。これにより、情報処理装置10は抽出ワードの意味も踏まえてテキストを生成できるので、情報処理装置10は、精度の高い第2のテキストを生成できる。
また、情報処理装置10は、第1のテキストから抽出された複数の抽出ワードそれぞれの意味情報を取得する。そして、情報処理装置10は、第1のテキストと、複数の抽出ワードそれぞれの意味情報と、に基づいて、第2のテキストを生成する。これにより、情報処理装置10は、複数の抽出ワードの意味も踏まえた精度の高い第2のテキストを生成できる。
また、情報処理装置10は、第1のテキストと、抽出ワードの意味情報に基づいて判別される複数の抽出ワードの関係と、に基づいて、第2のテキストを生成する。これにより、情報処理装置10は、複数の抽出ワードの関係を踏まえた精度の高い第2のテキストを生成できる。
また、情報処理装置10は、ユーザ属性と抽出ワードとの関係を示す関係情報と、を取得する。そして、情報処理装置10は、第1のテキストと、抽出ワードの意味情報と、関係情報と、に基づいて、第2のテキストを生成する。これにより、情報処理装置10は抽出ワードとユーザ属性との関係も踏まえてテキストを生成できるので、精度の高い第2のテキストを生成できる。
また、情報処理装置10は、第1のテキストの送信対象となるユーザのユーザ属性を示す属性情報を取得する。そして、情報処理装置10は、第1のテキストと、意味情報と、関係情報と、属性情報と、に基づいて、第2のテキストを生成する。これにより、情報処理装置10は第1のテキストの送信対象となるユーザのユーザ属性を踏まえた精度の高い第2のテキストを生成できる。
また、情報処理装置10は、抽出ワードの意味情報に基づいて抽出ワードを別のワードに置き換える。これにより、情報処理装置10は精度の高い第2のテキストを生成できる。
また、情報処理装置10は、抽出ワードの意味情報に基づいて2以上の抽出ワードを1のワードに置き換える。これにより、情報処理装置10は精度の高い第2のテキストを生成できる。
また、情報処理装置10は、意味情報として、知識を組織化した知識ベースに基づき分散表現に変換された抽出ワードを取得する。これにより、情報処理装置10は精度の高い第2のテキストを生成できる。
また、情報処理装置10は、第1の学習用テキストと第1の学習用テキストから抽出されたワードの意味情報とを入力データ、第1の学習用テキストに対応するテキストであって所定の条件を満たす第2の学習用テキストを正解データとして学習したモデルに、第1のテキストと抽出ワードの意味情報とを入力することにより、第2のテキストを生成する。これにより、情報処理装置10は精度の高い第2のテキストを生成できる。
また、モデルMは、第1のテキストに基づいて第1の特徴情報を生成する第1のエンコーダと、抽出ワードの意味情報に基づいて第2の特徴情報を生成する第2のエンコーダと、第1の特徴情報及び第2の特徴情報に基づいて第2のテキストを生成するデコーダと、を含む。これにより、情報処理装置10は精度の高い第2のテキストを生成できる。
また、情報処理装置10は、第1の学習用テキストと、第1の学習用テキストから抽出されたワードの意味情報と、第1の学習用テキストに対応するテキストであって所定の条件を満たす第2の学習用テキストと、を取得する。そして、情報処理装置10は、第1の学習用テキストと該第1の学習用テキストから抽出されたワードの意味情報とを入力データ、第2の学習用テキストを正解データとして、第1のテキストと該第1のテキストから抽出された抽出ワードの意味情報とから所定の条件を満たす第2のテキストを生成するモデルMの学習を行う。このとき、第2の学習用テキストは、所定の文字数以下のテキストであってもよい。これにより、情報処理装置10は、抽出ワードの意味も踏まえた精度の高いモデルMを生成できる。
モデルMは、第1のテキストに基づいて第1の特徴情報を生成する第1のエンコーダと、第1のテキストから抽出されたワードの意味情報に基づいて第2の特徴情報を生成する第2のエンコーダと、第1の特徴情報及び第2の特徴情報に基づいて第2のテキストを生成するデコーダと、を含む。そして、情報処理装置10は、第1の学習用テキストを第1のエンコーダに入力される入力データ、第1の学習用テキストから抽出されたワードの意味情報を第2のエンコーダに入力される入力データ、第2の学習用テキストを正解データとして、モデルMの学習を行う。これにより、情報処理装置10は、抽出ワードの意味も踏まえた精度の高いモデルMを生成できる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、生成部は、生成手段や生成回路に読み替えることができる。