【新規性喪失の例外の表示】特許法第30条第2項適用 平成29年11月10日に以下のウェブサイトに掲載 http://ibisml.org/ibis2017/ http://ibisml.org/ibis2017/poster_presentation/ http://ibisml.org/archive/ibis2017/poster_preview_D2.pdf
(58)【調査した分野】(Int.Cl.,DB名)
予測時点以前の実績値と、前記予測時点よりも1ステップ前の時点における自身の処理結果の少なくとも一部とをモデルに入力し、将来時点において前記実績値として現れることが予測される予測値を導出する予測部を備え、
前記予測部は、前記モデルの更新後において、前記モデルの更新前における、前記更新前のモデルの出力の少なくとも一部に基づいて前記予測値を導出する、
予測装置。
【発明を実施するための形態】
【0009】
<概要>
以下、図面を参照し、本発明の予測装置、予測方法、およびプログラムの実施形態について説明する。予測装置は、過去の実績値と、自身が過去に行った演算結果の少なくとも一部とに基づいて、将来の時点で実績値として現れることが予測される予測値を導出する装置である。予測対象は、例えば、ネットワークを介して利用者に配信されるコンテンツのPV(ページビュー)数である。コンテンツとは、例えばニュース記事であるが、動画などの他のコンテンツであってもよい。以下の説明では、コンテンツはニュース記事であるものとする。また、報道性の有無を問わず、何らかの情報を伝えるものであればニュース記事に該当するものとする。ニュース記事には、少なくともテキスト情報が含まれる。また、ニュース記事には、テキストでないもの、例えば静止画や動画、インターフェースとして機能する図形(スイッチ)、装飾エフェクトなどが含まれてもよい。
【0010】
予測装置は、学習データを学習し、予測値と実績値との乖離が小さくなるようなモデルのパラメータを探索して生成する。そして、更新タイミングが到来すると、生成したパラメータによるモデルを新たなモデルとして採用し、新たなモデルによって予測を行う(モデルを更新する)。以下に説明するように、予測装置は、過去のモデルの更新時点におけるモデルの切り替わりに応じた処理によって学習を行う。これによって、予測装置は、モデルの更新前の予測結果を、更新後のモデルの学習に適切に反映させることができる。なお、以下の説明において予測値と予測結果は同義であるものとする。
【0011】
予測装置は、単体で処理を行う装置であってもよいし、他の装置に包含される仮想的な装置であってもよい。以下の説明では、予測装置がコンテンツ配信装置に包含されるものとして説明する。
【0012】
[構成]
図1は、予測装置を利用したコンテンツ配信装置100の利用環境および構成の一例を示す図である。コンテンツ配信装置100は、ネットワークNWを介して利用者の端末装置10と通信する。ネットワークNWは、例えば、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、セルラー網などを含む。
【0013】
端末装置10は、例えば、スマートフォンなどの携帯電話、タブレット端末、パーソナルコンピュータなどである。端末装置10では、ブラウザやアプリケーションプログラムなどのUA(User Agent)が起動し、利用者の入力する内容に応じたリクエストをコンテンツ配信装置100に送信する。また、UAは、コンテンツ配信装置100から取得した情報に基づいて、各種画像を表示する。
【0014】
コンテンツ配信装置100は、ブラウザからのリクエストに応じてウェブページを端末装置10に提供するウェブサーバ、またはアプリケーションプログラムからのリクエストに応じて画像や音声を提供する端末装置10に提供するアプリサーバとして機能する。コンテンツ配信装置100は、NICなどのネットワークカードを備える。
【0015】
コンテンツ配信装置100は、例えば、コンテンツ配信部110と、コンテンツ選択部120と、予測装置130として機能する取得部132、予測部134、および学習部136と、記憶部150とを備える。これらの構成要素は、例えば、CPU(Central Processing Unit)などのハードウェアプロセッサがプログラム(ソフトウェア)を実行することにより実現される。また、これらの構成要素のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)などのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【0016】
コンテンツ配信装置100は、記憶部150に記憶された情報を参照し、適宜、処理結果を記憶部150に書込みながら処理を行う。記憶部150は、RAM(Random Access Memory)やROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリなどにより実現される。記憶部150には、コンテンツ配信装置100のハードウェアプロセッサが実行するプログラムが格納されていてもよい。記憶部150は、コンテンツ配信装置100に附属する(コンテンツ配信装置100が備える)ものであってもよいし、コンテンツ配信装置100がネットワークNWを介してアクセス可能なNAS(Network Attached Storage)などの外部記憶装置であってもよい。記憶部150には、例えば、上記のプログラムの他、コンテンツ情報152、利用者情報154、コンテンツ実績値156、学習データ158、学習済モデル160などの情報が格納される。
【0017】
コンテンツ情報152は、ニュース記事に含まれるテキスト情報、画像、音声等の内容、ニュース記事の配信元や著者等の情報を含む。利用者情報154は、利用者の識別情報である利用者ID、利用者のデモグラ情報(年齢、性別、職業、住所その他の情報をいう)等を含む。コンテンツ実績値156は、コンテンツごとの閲覧実績に基づく情報である。学習データ158は、学習部136による学習の対象となる情報である。学習済モデル160は、予測部134が予測の際に参照するモデルのパラメータ等の情報である。
【0018】
コンテンツ配信部110は、コンテンツ選択部120により選択されたコンテンツを、端末装置10に配信する。コンテンツ選択部120は、予測装置130による予測結果に基づいてコンテンツのランキングを行い、ランキングに従って端末装置10に配信するコンテンツを選択する。
【0019】
予測装置130の取得部132は、予測に用いる情報である実績値を取得する。本実施形態の例では、予測装置130がコンテンツ配信装置100に包含されているため、取得部132は、記憶部150からコンテンツ実績情報156のうち必要な情報を読み出すことで実績値を取得する。
【0020】
[予測部]
図2は、予測部134による処理の内容を模式的に示す図である。予測部134は、例えば、第1予測部134Aと、第2予測部134Bとを備える。第1予測部134Aは、例えば、RNN(Recurrent Neural Network)を構成し、第2予測部134Bは、FNN(Feedforward Neural Network)を構成する。これらはあくまで一例であり、予測部134は、過去の処理結果の少なくとも一部を引き継いで予測を行うものであれば、如何なる形態であってもよい。
【0021】
予測部134は、予測時点以前の実績値と、予測時点よりも1ステップ前の時点における自身の処理結果の少なくとも一部とを学習済モデルに入力し、将来時点において実績値として現れることが予測される予測値を導出することを繰り返し行う。「ステップ」とは、繰り返し行われる予測の各段階をいう。一例として、1ステップは1時間おきに到来するものとする。
【0022】
ここで、実績値について説明する。コンテンツ配信部150は、ニュース記事を配信する際に、利用者ごとのニュース記事の閲覧履歴を収集し、閲覧履歴に基づいてコンテンツ実績情報156を生成する。コンテンツ実績情報156は、例えば、ニュース記事ごとに、過去の所定時間前まで振り返った場合の時間帯ごとのインプレッション数、クリック数、ツイート数などの情報である。あるコンテンツに対応するコンテンツ実績情報156が、前述した実績値として扱われる。
【0023】
予測部134は、ニュース記事が入稿され、コンテンツ情報152として記憶部150に格納された段階で、当該ニュース記事に関するコンテンツ情報の疎ベクトルから分散表現を求める。
【0024】
前述したように、コンテンツ情報152は、ニュース記事に含まれるテキスト情報、画像、音声等の内容、ニュース記事の配信元や著者等の情報を含む。予測部134は、例えば、tf−idf(Term Frequency-Inverse Document Frequency)やword2vec等の技術を用いて、テキスト情報をベクトル化する。また、画像や音声に対しては種々の技術に基づいてベクトル形式の特徴量を求める。予測部134は、上記の各種情報から得られるベクトルデータを統合し(例えば加算し)、コンテンツ情報の分散表現を求める。
【0025】
予測部134は、時間の経過と共に、以下の処理を繰り返し実行する。第1予測部134Aは、繰り返し実行される中でのk回目の処理として、k−1回目の処理で求められた特徴情報(予測部134自身の処理結果の少なくとも一部)と、k−1回目からk回目までの実績値とに基づいて、特徴情報を求める処理を行う。第2予測部134Bは、特徴情報に対して、シグモイド関数などによる処理を実行し、予測結果を導出する。なお、第2予測部134Bが省略され、特徴情報がそのまま予測結果となるようにしてもよい。
【0026】
このようにして繰り返し求められる予測結果のうち最新のものが、当該コンテンツのPV数を予測した予測結果として扱われる。予測部134は、所望のタイミングで、それまでの学習済モデル160に代えて、学習部136により生成された新しい学習済モデル160を参照して予測を実行する(学習済モデル160が更新される)。
【0027】
[学習部]
学習部136は、学習済モデル160を更新するための学習処理を行う。学習部136は、例えば、学習データ158に含まれる各ニュース記事の実績値に対して、過去の学習済モデル160の更新時点をτと仮定し、τ以降の予測値と実績値との二乗誤差を最小化するようなモデルパラメータを探索する。
【0028】
図3は、学習データ158の内容の一例を示す図である。図示するように、学習データ158は、入稿から所定ステップ数(例えば24回)が経過している、複数の(図ではn個の)ニュース記事の実績値を集めたものである。なお、学習データ158における各ニュース記事の入稿時点は同じでなくてもよい。
【0029】
図4は、学習データ158に対する学習部136の処理内容について説明するための図である。図示するように、学習部136は、それぞれのニュース記事(1)〜(n)について更新時点τ(1)〜τ(n)をランダムに仮定し、τ以前のモデルパラメータ(旧パラメータ)を固定すると共にτ以降のモデルパラメータ(新パラメータ)について最適な値を求める。但し、新パラメータを探索する際に、τ以前を固定パラメータで計算し、τの直前の特徴情報をτの直後の予測に引き継ぐことを前提として、探索ごとの予測演算を行う。なお、それぞれのニュース記事(1)〜(n)について複数のτを仮定し、それぞれのτについて処理を行ってもよいが、計算量が多くなるため、それぞれのニュース記事(1)〜(n)について一つのτを仮定するものとした。
【0030】
係る処理の内容を数式で表すと、式(1)〜(3)のようになる。式中、Tは学習時におけるRNNのステップ数(
図3では24)であり、Dは学習データ158であり、(x,y)は学習データ158に含まれる各ニュース記事を意味する。x
tはステップtにおいてモデルに入力される実績値であり、y
tはステップtにおける予測結果のラベルである。この予測モデルにおいては、y
t=x
t+1である。h
x,t,τは、更新時点がτである場合の実績値x
tに対するステップtの特徴情報であり、y(ハット)
x,t,τは更新時点がτである場合の実績値x
tに対するステップtの予測結果である。θ
oldは旧パラメータであり、θは新パラメータである。RNNはθまたはθ
oldを用いて第1予測部134Aが計算を行うためのモデルであり、FNNは第2予測部134Bが予測結果を計算するためのモデルである。U{1,T}は、期間{1,T}のτの分布であり、例えば一様分布である。一様分布に代えて、実際のτの分布を想定して式(3)を計算してもよい。
【0032】
学習部136は、式(3)を最小にするようなモデルパラメータθを求める。パラメータθで規定される学習モデルが、学習部136によって生成された学習済モデル160となる。
【0033】
ここで、目的関数|y
t−y(ハット)
x,t,τ|
2の探索範囲は、τからTまでであるが、目的関数に含まれるh
x,t,τは、下記のように現時点Tからt=1まで遡って計算される。仮にT=24、τ=16とする。
h
x,24,16=RNN(x
24,h
x,23,16;θ)
h
x,23,16=RNN(x
23,h
x,22,16;θ)
…
h
x,17,16=RNN(x
17,h
x,16,16;θ)
h
x,16,16=RNN(x
16,h
x,15,16;θ)
h
x,15,16=RNN(x
15,h
x,14,16;θ
old)
h
x,14,16=RNN(x
14,h
x,13,16;θ
old)
…
h
x,2,16=RNN(x
2,h
x,1,16;θ
old)
h
x,1,16=RNN(x
1(Null) ,分散表現;θ
old)
【0034】
このように、学習部136は、新パラメータを探索する際に、τ以前を固定パラメータで計算し、τの直前の特徴情報をτの直後の予測に引き継ぐことを前提として予測演算を行う。この結果、予測部134は、学習済モデル160の更新直後における予測処理において、更新前の実績値に対して新しい学習済モデル160を用いた予測のやり直しをすることなく、更新直前における特徴情報を入力値として処理を行うことができる。この結果、予測処理における処理負荷を軽減することができる。また、予測のやり直しに備えて過去の実績値を記憶部に記憶させておく必要が無いため、予測処理に必要な記憶容量を低減することもできる。
【0035】
また、学習部136により生成された更新後の学習済モデル160は、更新後も継続的に適切な予測結果を導出することが可能なものである。以下、これについて説明する。
【0036】
図5は、複数のニュース記事について並行して予測を行う中で、学習済モデル160の更新が行われた場面を示す図である。ここでは、ニュース記事(A)(B)(C)が存在するものとする。図示するように、学習済モデル160の更新時点において、何ステップの予測が行われたかは、ニュース記事の入稿時点によって異なるものとなる。
【0037】
図6は、
図5に示す時点から時間が経過した状態を、仮に入稿時点を揃えて示した図である。図示するように、各ニュース記事について入稿から24ステップ経過した時点の状態は、
図4に示すように学習処理において想定した状態、すなわちニュース記事ごとに異なるτを設定し、τ以前を旧パラメータで、τ以降を新パラメータで予測するという状態に合致していることが分かる。このように、学習部136は、入稿時点が異なる複数のニュース記事が同時並行で予測対象となり、ある時点で一斉に学習済モデル160の更新が行われるという環境に
適した学習処理を行うことができる。この結果、学習済モデル160を参照する予測部134は、学習済モデル160の更新後も継続的に適切な予測結果を導出することができる。
【0038】
また、このようなモデルの学習によって、予測装置130は、差分更新を好適に実現することができる。差分更新では、直近の実績値のみを第1予測部134Aに入力するのに対し、累積更新では、RNNのステップ数分の実績値を第1予測部134Aに入力する。このため、差分更新を採用する場合、計算コストを大幅に低減することができる。また、実績値を記憶しておく量が小さくなるため、必要な記憶容量を低減することもできる。但し、過去の実績値を直近のステップに入力しないため、学習済モデル160の更新前の情報が適切に引き継がれていないと、予測ロジックが破綻してしまう場合がある。この点、本実施形態の予測装置130では、学習部136の機能によって学習済モデル160の更新前の情報を適切に引き継いでいるため、差分更新を好適に実現することができる。
【0039】
図7は、予測部134と学習部136の関係を模式的に示す図である。図示するように、直近の実績値は、予測部134に入力されると共に学習データ158として蓄積される。予測部134は、中間状態(特徴情報)を更新し、次のステップで参照する。また、予測部134は、学習済モデル160を参照して、直近の実績値と1ステップ前に更新された中間状態とに基づいて予測を行う。一方、学習部136は、学習データ158に基づいて学習済モデル160を生成する。所定のタイミングで、学習済モデル160の更新が行われる。
【0040】
以上説明した実施形態の予測装置130によれば、予測時点以前の実績値と、予測時点よりも1ステップ前の時点における自身の処理結果の少なくとも一部とをモデルに入力し、将来時点において実績値として現れることが予測される予測値を導出する予測部134と、モデルを更新するための学習処理を行う学習部136と、を備え、予測部134は、モデルの更新後において、モデルの更新前における自身の処理結果の少なくとも一部に基づいて予測値を導出するため、予測処理における処理負荷を軽減し、必要な記憶容量を低減することができる。
【0041】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。