(57)【要約】【課題】予測処理における処理負荷を軽減することができる予測装置、予測方法、およびプログラムを提供すること。【解決手段】予測時点以前の実績値と、前記予測時点よりも１ステップ前の時点における自身の処理結果の少なくとも一部とをモデルに入力し、将来時点において前記実績値として現れることが予測される予測値を導出する予測部を備え、前記予測部は、前記モデルの更新後において、前記モデルの更新前における自身の処理結果の少なくとも一部に基づいて前記予測値を導出する、予測装置。【選択図】図４
2019164703.tif 000002
【特許請求の範囲】
【請求項１】
予測時点以前の実績値と、前記予測時点よりも１ステップ前の時点における自身の処理結果の少なくとも一部とをモデルに入力し、将来時点において前記実績値として現れることが予測される予測値を導出する予測部を備え、
前記予測部は、前記モデルの更新後において、前記モデルの更新前における自身の処理結果の少なくとも一部に基づいて前記予測値を導出する、
予測装置。
【請求項２】
前記モデルを更新するための学習処理を行う学習部を更に備え、
前記学習部は、前記モデルの更新前における前記予測部の処理結果の少なくとも一部を前記モデルの更新後における予測処理に引き継ぐ前提で、前記モデルの更新後における好適なパラメータを、前記モデルの更新後における予測値と実績値との誤差が小さくなるように探索する、
請求項１記載の予測装置。
【請求項３】
前記モデルを更新するための学習処理を行う学習部を更に備え、
前記学習部は、複数の予測対象について前記モデルの更新時点をそれぞれ仮定し、異なるモデルの更新時点に適合するように、前記モデルの更新後における好適なパラメータを探索する、
請求項１または２記載の予測装置。
【請求項４】
前記学習部は、前記複数の予測対象について前記モデルの更新時点をランダムに仮定する、
請求項３記載の予測装置。
【請求項５】
コンピュータが、
予測時点以前の実績値と、前記予測時点よりも１ステップ前の時点における自身の処理結果の少なくとも一部とをモデルに入力し、将来時点において前記実績値として現れることが予測される予測値を導出する予測処理を実行し、
前記予測処理において、前記モデルの更新後において、前記モデルの更新前における自身の処理結果の少なくとも一部に基づいて前記予測値を導出する、
予測方法。
【請求項６】
コンピュータに、
予測時点以前の実績値と、前記予測時点よりも１ステップ前の時点における自身の処理結果の少なくとも一部とをモデルに入力し、将来時点において前記実績値として現れることが予測される予測値を導出する予測処理を実行させ、
前記予測処理において、前記モデルの更新後において、前記モデルの更新前における自身の処理結果の少なくとも一部に基づいて前記予測値を導出させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、予測装置、予測方法、およびプログラムに関する。
【背景技術】
【０００２】
ネットワークを介して利用者に提供されるニュース記事等のコンテンツをその内容に基づいて評価し、評価結果に基づいて、インターネットのサイト等におけるコンテンツの掲載有無や掲載順を決定することが行われている。例えば、特許文献１に記載の発明では、記事情報の重要度と情報鮮度とに基づいて掲載順を決定している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６０５９３１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の技術では、コンテンツの評価に用いるモデルの更新時において、更新前のモデルによる予測結果を、更新後のモデルによる予測結果に適切に反映させることができない場合があった。このため、更新直後の予測処理において過去に遡って予測をやり直す必要があり、処理負荷が増大する場合があった。また、予測のやり直しに備えて過去の実績値を記憶部に記憶させておく必要があったため、必要な記憶容量が大きくなる場合があった。
【０００５】
本発明は、このような事情を考慮してなされたものであり、予測処理における処理負荷を軽減し、必要な記憶容量を低減することができる予測装置、予測方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００６】
本発明の一態様は、予測時点以前の実績値と、前記予測時点よりも１ステップ前の時点における自身の処理結果の少なくとも一部とをモデルに入力し、将来時点において前記実績値として現れることが予測される予測値を導出する予測部を備え、前記予測部は、前記モデルの更新後において、前記モデルの更新前における自身の処理結果の少なくとも一部に基づいて前記予測値を導出する、予測装置である。
【発明の効果】
【０００７】
本発明の一態様によれば、予測処理における処理負荷を軽減することができる。
【図面の簡単な説明】
【０００８】
【図１】予測装置を利用したコンテンツ配信装置１００の利用環境および構成の一例を示す図である。
【図２】予測部１３４による処理の内容を模式的に示す図である。
【図３】学習データ１５８の内容の一例を示す図である。
【図４】学習データ１５８に対する学習部１３６の処理内容について説明するための図である。
【図５】複数のニュース記事について並行して予測を行う中で、学習済モデル１６０の更新が行われた場面を示す図である。
【図６】図５に示す時点から時間が経過した状態を、仮に入稿時点を揃えて示した図である。
【図７】予測部１３４と学習部１３６の関係を模式的に示す図である。
【発明を実施するための形態】
【０００９】
＜概要＞
以下、図面を参照し、本発明の予測装置、予測方法、およびプログラムの実施形態について説明する。予測装置は、過去の実績値と、自身が過去に行った演算結果の少なくとも一部とに基づいて、将来の時点で実績値として現れることが予測される予測値を導出する装置である。予測対象は、例えば、ネットワークを介して利用者に配信されるコンテンツのＰＶ（ページビュー）数である。コンテンツとは、例えばニュース記事であるが、動画などの他のコンテンツであってもよい。以下の説明では、コンテンツはニュース記事であるものとする。また、報道性の有無を問わず、何らかの情報を伝えるものであればニュース記事に該当するものとする。ニュース記事には、少なくともテキスト情報が含まれる。また、ニュース記事には、テキストでないもの、例えば静止画や動画、インターフェースとして機能する図形（スイッチ）、装飾エフェクトなどが含まれてもよい。
【００１０】
予測装置は、学習データを学習し、予測値と実績値との乖離が小さくなるようなモデルのパラメータを探索して生成する。そして、更新タイミングが到来すると、生成したパラメータによるモデルを新たなモデルとして採用し、新たなモデルによって予測を行う（モデルを更新する）。以下に説明するように、予測装置は、過去のモデルの更新時点におけるモデルの切り替わりに応じた処理によって学習を行う。これによって、予測装置は、モデルの更新前の予測結果を、更新後のモデルの学習に適切に反映させることができる。なお、以下の説明において予測値と予測結果は同義であるものとする。
【００１１】
予測装置は、単体で処理を行う装置であってもよいし、他の装置に包含される仮想的な装置であってもよい。以下の説明では、予測装置がコンテンツ配信装置に包含されるものとして説明する。
【００１２】
［構成］
図１は、予測装置を利用したコンテンツ配信装置１００の利用環境および構成の一例を示す図である。コンテンツ配信装置１００は、ネットワークＮＷを介して利用者の端末装置１０と通信する。ネットワークＮＷは、例えば、インターネット、ＷＡＮ（Wide Area Network）、ＬＡＮ（Local Area Network）、セルラー網などを含む。
【００１３】
端末装置１０は、例えば、スマートフォンなどの携帯電話、タブレット端末、パーソナルコンピュータなどである。端末装置１０では、ブラウザやアプリケーションプログラムなどのＵＡ（User Agent）が起動し、利用者の入力する内容に応じたリクエストをコンテンツ配信装置１００に送信する。また、ＵＡは、コンテンツ配信装置１００から取得した情報に基づいて、各種画像を表示する。
【００１４】
コンテンツ配信装置１００は、ブラウザからのリクエストに応じてウェブページを端末装置１０に提供するウェブサーバ、またはアプリケーションプログラムからのリクエストに応じて画像や音声を提供する端末装置１０に提供するアプリサーバとして機能する。コンテンツ配信装置１００は、ＮＩＣなどのネットワークカードを備える。
【００１５】
コンテンツ配信装置１００は、例えば、コンテンツ配信部１１０と、コンテンツ選択部１２０と、予測装置１３０として機能する取得部１３２、予測部１３４、および学習部１３６と、記憶部１５０とを備える。これらの構成要素は、例えば、ＣＰＵ（Central Processing Unit）などのハードウェアプロセッサがプログラム（ソフトウェア）を実行することにより実現される。また、これらの構成要素のうち一部または全部は、ＬＳＩ（Large Scale Integration）やＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）、ＧＰＵ（Graphics Processing Unit）などのハードウェア（回路部；circuitryを含む）によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【００１６】
コンテンツ配信装置１００は、記憶部１５０に記憶された情報を参照し、適宜、処理結果を記憶部１５０に書込みながら処理を行う。記憶部１５０は、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリなどにより実現される。記憶部１５０には、コンテンツ配信装置１００のハードウェアプロセッサが実行するプログラムが格納されていてもよい。記憶部１５０は、コンテンツ配信装置１００に附属する（コンテンツ配信装置１００が備える）ものであってもよいし、コンテンツ配信装置１００がネットワークＮＷを介してアクセス可能なＮＡＳ（Network Attached Storage）などの外部記憶装置であってもよい。記憶部１５０には、例えば、上記のプログラムの他、コンテンツ情報１５２、利用者情報１５４、コンテンツ実績値１５６、学習データ１５８、学習済モデル１６０などの情報が格納される。
【００１７】
コンテンツ情報１５２は、ニュース記事に含まれるテキスト情報、画像、音声等の内容、ニュース記事の配信元や著者等の情報を含む。利用者情報１５４は、利用者の識別情報である利用者ＩＤ、利用者のデモグラ情報（年齢、性別、職業、住所その他の情報をいう）等を含む。コンテンツ実績値１５６は、コンテンツごとの閲覧実績に基づく情報である。学習データ１５８は、学習部１３６による学習の対象となる情報である。学習済モデル１６０は、予測部１３４が予測の際に参照するモデルのパラメータ等の情報である。
【００１８】
コンテンツ配信部１１０は、コンテンツ選択部１２０により選択されたコンテンツを、端末装置１０に配信する。コンテンツ選択部１２０は、予測装置１３０による予測結果に基づいてコンテンツのランキングを行い、ランキングに従って端末装置１０に配信するコンテンツを選択する。
【００１９】
予測装置１３０の取得部１３２は、予測に用いる情報である実績値を取得する。本実施形態の例では、予測装置１３０がコンテンツ配信装置１００に包含されているため、取得部１３２は、記憶部１５０からコンテンツ実績情報１５６のうち必要な情報を読み出すことで実績値を取得する。
【００２０】
［予測部］
図２は、予測部１３４による処理の内容を模式的に示す図である。予測部１３４は、例えば、第１予測部１３４Ａと、第２予測部１３４Ｂとを備える。第１予測部１３４Ａは、例えば、ＲＮＮ（Recurrent Neural Network）を構成し、第２予測部１３４Ｂは、ＦＮＮ（Feedforward Neural Network）を構成する。これらはあくまで一例であり、予測部１３４は、過去の処理結果の少なくとも一部を引き継いで予測を行うものであれば、如何なる形態であってもよい。
【００２１】
予測部１３４は、予測時点以前の実績値と、予測時点よりも１ステップ前の時点における自身の処理結果の少なくとも一部とを学習済モデルに入力し、将来時点において実績値として現れることが予測される予測値を導出することを繰り返し行う。「ステップ」とは、繰り返し行われる予測の各段階をいう。一例として、１ステップは１時間おきに到来するものとする。
【００２２】
ここで、実績値について説明する。コンテンツ配信部１５０は、ニュース記事を配信する際に、利用者ごとのニュース記事の閲覧履歴を収集し、閲覧履歴に基づいてコンテンツ実績情報１５６を生成する。コンテンツ実績情報１５６は、例えば、ニュース記事ごとに、過去の所定時間前まで振り返った場合の時間帯ごとのインプレッション数、クリック数、ツイート数などの情報である。あるコンテンツに対応するコンテンツ実績情報１５６が、前述した実績値として扱われる。
【００２３】
予測部１３４は、ニュース記事が入稿され、コンテンツ情報１５２として記憶部１５０に格納された段階で、当該ニュース記事に関するコンテンツ情報の疎ベクトルから分散表現を求める。
【００２４】
前述したように、コンテンツ情報１５２は、ニュース記事に含まれるテキスト情報、画像、音声等の内容、ニュース記事の配信元や著者等の情報を含む。予測部１３４は、例えば、ｔｆ−ｉｄｆ（Term Frequency-Inverse Document Frequency）やword2vec等の技術を用いて、テキスト情報をベクトル化する。また、画像や音声に対しては種々の技術に基づいてベクトル形式の特徴量を求める。予測部１３４は、上記の各種情報から得られるベクトルデータを統合し（例えば加算し）、コンテンツ情報の分散表現を求める。
【００２５】
予測部１３４は、時間の経過と共に、以下の処理を繰り返し実行する。第１予測部１３４Ａは、繰り返し実行される中でのｋ回目の処理として、ｋ−１回目の処理で求められた特徴情報（予測部１３４自身の処理結果の少なくとも一部）と、ｋ−１回目からｋ回目までの実績値とに基づいて、特徴情報を求める処理を行う。第２予測部１３４Ｂは、特徴情報に対して、シグモイド関数などによる処理を実行し、予測結果を導出する。なお、第２予測部１３４Ｂが省略され、特徴情報がそのまま予測結果となるようにしてもよい。
【００２６】
このようにして繰り返し求められる予測結果のうち最新のものが、当該コンテンツのＰＶ数を予測した予測結果として扱われる。予測部１３４は、所望のタイミングで、それまでの学習済モデル１６０に代えて、学習部１３６により生成された新しい学習済モデル１６０を参照して予測を実行する（学習済モデル１６０が更新される）。
【００２７】
［学習部］
学習部１３６は、学習済モデル１６０を更新するための学習処理を行う。学習部１３６は、例えば、学習データ１５８に含まれる各ニュース記事の実績値に対して、過去の学習済モデル１６０の更新時点をτと仮定し、τ以降の予測値と実績値との二乗誤差を最小化するようなモデルパラメータを探索する。
【００２８】
図３は、学習データ１５８の内容の一例を示す図である。図示するように、学習データ１５８は、入稿から所定ステップ数（例えば２４回）が経過している、複数の（図ではｎ個の）ニュース記事の実績値を集めたものである。なお、学習データ１５８における各ニュース記事の入稿時点は同じでなくてもよい。
【００２９】
図４は、学習データ１５８に対する学習部１３６の処理内容について説明するための図である。図示するように、学習部１３６は、それぞれのニュース記事（１）〜（ｎ）について更新時点τ（１）〜τ（ｎ）をランダムに仮定し、τ以前のモデルパラメータ（旧パラメータ）を固定すると共にτ以降のモデルパラメータ（新パラメータ）について最適な値を求める。但し、新パラメータを探索する際に、τ以前を固定パラメータで計算し、τの直前の特徴情報をτの直後の予測に引き継ぐことを前提として、探索ごとの予測演算を行う。なお、それぞれのニュース記事（１）〜（ｎ）について複数のτを仮定し、それぞれのτについて処理を行ってもよいが、計算量が多くなるため、それぞれのニュース記事（１）〜（ｎ）について一つのτを仮定するものとした。
【００３０】
係る処理の内容を数式で表すと、式（１）〜（３）のようになる。式中、Ｔは学習時におけるＲＮＮのステップ数（図３では２４）であり、Ｄは学習データ１５８であり、（ｘ，ｙ）は学習データ１５８に含まれる各ニュース記事を意味する。ｘｔはステップｔにおいてモデルに入力される実績値であり、ｙｔはステップｔにおける予測結果のラベルである。この予測モデルにおいては、ｙｔ＝ｘｔ＋１である。ｈｘ，ｔ，τは、更新時点がτである場合の実績値ｘｔに対するステップｔの特徴情報であり、ｙ（ハット）ｘ，ｔ，τは更新時点がτである場合の実績値ｘｔに対するステップｔの予測結果である。θoldは旧パラメータであり、θは新パラメータである。ＲＮＮはθまたはθoldを用いて第１予測部１３４Ａが計算を行うためのモデルであり、ＦＮＮは第２予測部１３４Ｂが予測結果を計算するためのモデルである。Ｕ｛１，Ｔ｝は、期間｛１，Ｔ｝のτの分布であり、例えば一様分布である。一様分布に代えて、実際のτの分布を想定して式（３）を計算してもよい。
【００３１】
【数１】
2019164703.tif 000003
【００３２】
学習部１３６は、式（３）を最小にするようなモデルパラメータθを求める。パラメータθで規定される学習モデルが、学習部１３６によって生成された学習済モデル１６０となる。
【００３３】
ここで、目的関数｜ｙｔ−ｙ（ハット）ｘ，ｔ，τ｜２の探索範囲は、τからＴまでであるが、目的関数に含まれるｈｘ，ｔ，τは、下記のように現時点Ｔからｔ＝１まで遡って計算される。仮にＴ＝２４、τ＝１６とする。
ｈｘ，２４，１６＝ＲＮＮ（ｘ２４，ｈｘ，２３，１６；θ）
ｈｘ，２３，１６＝ＲＮＮ（ｘ２３，ｈｘ，２２，１６；θ）
…
ｈｘ，１７，１６＝ＲＮＮ（ｘ１７，ｈｘ，１６，１６；θ）
ｈｘ，１６，１６＝ＲＮＮ（ｘ１６，ｈｘ，１５，１６；θ）
ｈｘ，１５，１６＝ＲＮＮ（ｘ１５，ｈｘ，１４，１６；θold）
ｈｘ，１４，１６＝ＲＮＮ（ｘ１４，ｈｘ，１３，１６；θold）
…
ｈｘ，２，１６＝ＲＮＮ（ｘ２，ｈｘ，１，１６；θold）
ｈｘ，１，１６＝ＲＮＮ（ｘ１(Ｎｕｌｌ) ，分散表現；θold）
【００３４】
このように、学習部１３６は、新パラメータを探索する際に、τ以前を固定パラメータで計算し、τの直前の特徴情報をτの直後の予測に引き継ぐことを前提として予測演算を行う。この結果、予測部１３４は、学習済モデル１６０の更新直後における予測処理において、更新前の実績値に対して新しい学習済モデル１６０を用いた予測のやり直しをすることなく、更新直前における特徴情報を入力値として処理を行うことができる。この結果、予測処理における処理負荷を軽減することができる。また、予測のやり直しに備えて過去の実績値を記憶部に記憶させておく必要が無いため、予測処理に必要な記憶容量を低減することもできる。
【００３５】
また、学習部１３６により生成された更新後の学習済モデル１６０は、更新後も継続的に適切な予測結果を導出することが可能なものである。以下、これについて説明する。
【００３６】
図５は、複数のニュース記事について並行して予測を行う中で、学習済モデル１６０の更新が行われた場面を示す図である。ここでは、ニュース記事（Ａ）（Ｂ）（Ｃ）が存在するものとする。図示するように、学習済モデル１６０の更新時点において、何ステップの予測が行われたかは、ニュース記事の入稿時点によって異なるものとなる。
【００３７】
図６は、図５に示す時点から時間が経過した状態を、仮に入稿時点を揃えて示した図である。図示するように、各ニュース記事について入稿から２４ステップ経過した時点の状態は、図４に示すように学習処理において想定した状態、すなわちニュース記事ごとに異なるτを設定し、τ以前を旧パラメータで、τ以降を新パラメータで予測するという状態に合致していることが分かる。このように、学習部１３６は、入稿時点が異なる複数のニュース記事が同時並行で予測対象となり、ある時点で一斉に学習済モデル１６０の更新が行われるという環境に
適した学習処理を行うことができる。この結果、学習済モデル１６０を参照する予測部１３４は、学習済モデル１６０の更新後も継続的に適切な予測結果を導出することができる。
【００３８】
また、このようなモデルの学習によって、予測装置１３０は、差分更新を好適に実現することができる。差分更新では、直近の実績値のみを第１予測部１３４Ａに入力するのに対し、累積更新では、ＲＮＮのステップ数分の実績値を第１予測部１３４Ａに入力する。このため、差分更新を採用する場合、計算コストを大幅に低減することができる。また、実績値を記憶しておく量が小さくなるため、必要な記憶容量を低減することもできる。但し、過去の実績値を直近のステップに入力しないため、学習済モデル１６０の更新前の情報が適切に引き継がれていないと、予測ロジックが破綻してしまう場合がある。この点、本実施形態の予測装置１３０では、学習部１３６の機能によって学習済モデル１６０の更新前の情報を適切に引き継いでいるため、差分更新を好適に実現することができる。
【００３９】
図７は、予測部１３４と学習部１３６の関係を模式的に示す図である。図示するように、直近の実績値は、予測部１３４に入力されると共に学習データ１５８として蓄積される。予測部１３４は、中間状態（特徴情報）を更新し、次のステップで参照する。また、予測部１３４は、学習済モデル１６０を参照して、直近の実績値と１ステップ前に更新された中間状態とに基づいて予測を行う。一方、学習部１３６は、学習データ１５８に基づいて学習済モデル１６０を生成する。所定のタイミングで、学習済モデル１６０の更新が行われる。
【００４０】
以上説明した実施形態の予測装置１３０によれば、予測時点以前の実績値と、予測時点よりも１ステップ前の時点における自身の処理結果の少なくとも一部とをモデルに入力し、将来時点において実績値として現れることが予測される予測値を導出する予測部１３４と、モデルを更新するための学習処理を行う学習部１３６と、を備え、予測部１３４は、モデルの更新後において、モデルの更新前における自身の処理結果の少なくとも一部に基づいて予測値を導出するため、予測処理における処理負荷を軽減し、必要な記憶容量を低減することができる。
【００４１】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００４２】
１００  コンテンツ配信装置
１１０  コンテンツ配信部
１２０  コンテンツ選択部
１３０  予測装置
１３２  取得部
１３４  予測部
１３６  学習部
１５０  記憶部
１５２  コンテンツ情報
１５４  利用者情報
１５６  コンテンツ実績値
１５８  学習データ
１６０  学習済モデル
【図１】
2019164703.tif 000004
【図２】
2019164703.tif 000005
【図３】
2019164703.tif 000006
【図４】
2019164703.tif 000007
【図５】
2019164703.tif 000008
【図６】
2019164703.tif 000009
【図７】
2019164703.tif 000010