以下に、本願に係る生成装置、生成方法、及び生成プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法、及び生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
(実施形態)
〔1−1.生成処理〕
まず、図1を用いて、実施形態に係る生成処理の一例について説明する。図1は、実施形態に係る生成処理の一例を示す図である。図1に示す例において、配信装置100は、所定の対象として、ユーザのコンテンツへの関心を予測するモデルを生成する。また、配信装置100は、生成したモデルを用いてユーザにコンテンツを配信するサービスを提供するが、この点については図2で説明する。なお、図1及び図2では、ユーザに関する区分をユーザとして説明する。図1及び図2では、ユーザU1〜U4が各々端末装置10−1〜10−4を利用する場合を示す。なお、端末装置10−1〜10−4を区別せずに説明する場合、端末装置10と総称する。
図1及び図2に示すように、配信システム1には、端末装置10と、配信装置100とが含まれる。端末装置10と、配信装置100とは図示しない所定の通信網を介して、有線または無線により通信可能に接続される。なお、図1に示した配信システム1には、複数台の端末装置10や、複数台の配信装置100が含まれてもよい。
端末装置10は、ユーザによって利用される情報処理装置である。端末装置10は、例えば、スマートフォンや、タブレット型端末や、ノート型PC(Personal Computer)や、デスクトップPCや、携帯電話機や、PDA(Personal Digital Assistant)等により実現される。図1は、端末装置10がスマートフォンである場合を示す。
また、端末装置10は、ユーザによる操作を受け付ける。図1に示す例において、端末装置10は、所定のアプリ(例えば、ブラウザ等)に表示するコンテンツを配信装置100へ要求する。なお、以下では、端末装置10をユーザと表記する場合がある。すなわち、以下では、ユーザを端末装置10と読み替えることもできる。
配信装置100は、コンテキストに基づいて分割された行動情報である分割情報が組み合わされた組合情報ごとに、所定の対象を予測するモデルを生成する生成装置である。また、配信装置100は、コンテンツの配信要求に応じてコンテンツを配信する配信サービスを提供する情報処理装置である。例えば、配信装置100は、コンテンツの配信を要求した端末装置10を利用するユーザに応じて、端末装置10へコンテンツを配信する情報処理装置である。
図1では、配信装置100は、各ユーザにコンテンツを配信し、配信したコンテンツに対する各ユーザの行動の有無を示す行動情報を収集する。例えば、配信装置100は、ユーザU1〜U4にコンテンツを配信し、配信したコンテンツに対する各ユーザの行動の有無を示す行動情報を収集する。例えば、配信装置100は、行動情報として、ユーザに配信したコンテンツ(例えば、コンテンツCN11)に対するユーザの行動(例えば、コンテンツのクリック)の有無を示す情報を収集する。
まず、配信装置100は、ユーザU1が利用する端末装置10−1にコンテンツを配信する(ステップS11−1)。そして、配信装置100は、配信したコンテンツに対するユーザU1の行動の有無を示す行動情報を端末装置10−1から取得する(ステップS12−1)。また、配信装置100は、ユーザU2が利用する端末装置10−2にコンテンツを配信する(ステップS11−2)。そして、配信装置100は、配信したコンテンツに対するユーザU2の行動の有無を示す行動情報を端末装置10−2から取得する(ステップS12−2)。また、配信装置100は、ユーザU3が利用する端末装置10−3にコンテンツを配信する(ステップS11−3)。そして、配信装置100は、配信したコンテンツに対するユーザU3の行動の有無を示す行動情報を端末装置10−3から取得する(ステップS12−3)。また、配信装置100は、ユーザU4が利用する端末装置10−4にコンテンツを配信する(ステップS11−4)。そして、配信装置100は、配信したコンテンツに対するユーザU4の行動の有無を示す行動情報を端末装置10−4から取得する(ステップS12−4)。
なお、ステップS11−1〜S11−4は、処理を説明するためのものであり、ステップS11−1〜S11−4のいずれが先に行われてもよく、各ステップS11−1〜S11−4は、複数回行われてもよい。以下、ステップS11−1〜S11−4を区別せずに説明する場合、ステップS11と総称する。また、ステップS12−1〜S12−4は、処理を説明するためのものであり、各々が対応するステップS11よりも後であれば、ステップS12−1〜S12−4のいずれが先に行われてもよく、各ステップS12−1〜S12−4は、複数回行われてもよい。以下、ステップS12−1〜S12−4を区別せずに説明する場合、ステップS12と総称する。例えば、各ステップS11が行われる度にステップS12を行って行動情報を取得してもよい。また、例えば、各ステップS11が複数回行われて、所定のタイミングでステップS12を行って、行動情報を取得してもよい。
そして、配信装置100は、ステップS11〜S12において収集した各ユーザの行動に関する情報を分割する(ステップS13)。具体的には、配信装置100は、収集した各ユーザの行動情報をコンテキストに基づいて分割する。
ここで、コンテキストは、ユーザや端末装置10の状況やユーザや端末装置10の環境(背景)を意味する。例えば、コンテキストは、ユーザによって端末装置10が使われている状況や、端末装置10を所持するユーザが置かれている状態に対応する情報である。すなわち、図1及び図2におけるコンテキストは、ユーザU1〜U4の状況、例えばユーザU1〜U4がいる場所の環境に対応する。具体的には、図1及び図2におけるコンテキストは、各ユーザにコンテンツが配信(表示)された際のユーザU1〜U4の状況に対応する。例えば、コンテキストは、コンテンツを配信した時刻や端末装置10から取得したユーザの位置情報に基づいて推定してもよい。なお、各コンテキストは、排他的であってもよいし、重複してもよい。
また、図1及び図2では、説明を簡単にするため、時間帯と位置とに基づくコンテキストを示す。具体的には、図1及び図2の例におけるコンテキストは、朝(4〜10時)、昼(10〜16時)、夜(16〜22時)、深夜(22〜4時)の4つの時間帯と、家(自宅)またはオフィス(勤務地)の2つの位置とに基づく、8つのコンテキストCT11〜CT18を示す。
ここで、図1中の分割情報記憶部123は、ステップS13により各ユーザの行動情報がコンテキストごとに分割された状態を示す。分割情報記憶部123は、区分であるユーザを行とし、コンテキストを列とした場合を示す。なお、分割情報記憶部123中の一のユーザと一のコンテキストとが交差する領域をマスとする。例えば、図1では、ユーザU4とコンテキストCT12とが交差する領域をマスMS42とする。なお、各マスの位置を区別せずに説明する場合は、マスMSとする場合がある。また、クラスタ情報記憶部124等においても、一のユーザと一のコンテキストとが交差する領域がある場合、その領域をマスMSとする場合がある。図1に示す各マスMSに含まれる情報は、ユーザに関する区分ごとのユーザの行動に関する行動情報がコンテキストに基づいて分割された分割情報である。
例えば、ユーザU1とコンテキストCT11とが交差する位置のマスMS(左上のマスMS)には、行動AT11、AT12、AT13等の行動の有無を示す分割情報が含まれる。例えば、ユーザU4とコンテキストCT18とが交差する位置のマスMS(右下のマスMS)には、行動AT48、AT11等の行動の有無を示す分割情報が含まれる。
また、分割情報記憶部123中の各マスMS中の行動AT11等の右側に示す「○」は、ユーザが対応する行動を行ったことを示す。また、分割情報記憶部123中の各マスMS中の行動AT11等の右側に示す「×」は、ユーザが対応する行動を行わなかったことを示す。例えば、ユーザU1とコンテキストCT11とが交差する位置のマスMSにおいて、行動AT11は「○」であり、ユーザU1は、朝の家において行動AT11を行ったことを示す。また、例えば、ユーザU1とコンテキストCT11とが交差する位置のマスMSにおいて、行動AT12は「×」であり、ユーザU1は、朝の家において行動AT12を行わなかったことを示す。また、例えば、ユーザU1とコンテキストCT11とが交差する位置のマスMSにおいて、行動AT13は「○」であり、ユーザU1は、朝の家において行動AT13を行ったことを示す。
そして、配信装置100は、分割情報記憶部123中の各マスMSの分割情報を用いて、モデルを生成する(ステップS14)。例えば、配信装置100は、分割情報記憶部123中の各マスMSの分割情報をクラスタリングし、クラスタごとにモデルを生成する。例えば、配信装置100は、ユーザのコンテンツへの関心を予測するモデルを生成する。
例えば、配信装置100は、クラスタ数を設定しないクラスタリング手法によりクラスタリングを行ってもよい。また、例えば、配信装置100は、クラスタ数を設定するクラスタリング手法によりクラスタリングを行ってもよい。例えば、配信装置100は、k−means法やディリクレ過程を用いたロジスティック回帰の手法を用いて、各マスMSの分割情報をクラスタリングし、クラスタごとの分割情報を用いてモデルを生成する。図1では、配信装置100は、ディリクレ過程を用いたロジスティック回帰の手法を用いて、各マスMSの分割情報をクラスタリングし、クラスタごとの分割情報を用いてモデルを生成するものとして、以下説明する。なお、クラスタリング手法の詳細については後述する。
なお、配信装置100は、所定量以上の分割情報を含むマスMSをステップS14におけるモデル生成の対象としてもよい。例えば、配信装置100は、分割情報が含まれないユーザU4のコンテキストCT17に対応するマスMSやユーザU2のコンテキストCT11に対応するマスMSは、クラスタリングの対象としない。また、例えば、配信装置100は、所定量(例えば2つ)未満の分割情報しか含まれないユーザU1のコンテキストCT13、CT18に対応するマスMSは、クラスタリングの対象としなくてもよい。
ステップS14により、配信装置100は、モデル情報MD11を生成する。モデル情報MD11には、クラスタ情報記憶部124に示すような各マスMSに含まれる分割情報のクラスタリングに関する情報が含まれる。また、モデル情報MD11には、学習情報記憶部125に示すようなクラスタごとに生成されたモデルM1〜M6に関する情報が含まれる。
図1では、配信装置100は、分割情報記憶部123中の各マスMSの分割情報を6つのクラスタ(クラスタ情報記憶部124中のM1〜M6)に分類する。なお、クラスタ情報記憶部124中のM1〜M6は、各分割情報が属するクラスタを示すとともに、生成されるモデルを示す。また、クラスタ情報記憶部124中のマスMSにおいて、M1〜M6の符号が図示されていないマスMSについては、所定の手法により生成されたモデルが割り当てられるものとする。例えば、配信装置100は、クラスタ情報記憶部124中のモデルが割り当てられていないマスMSには、他のマスMSに割当てられたモデルに基づいて、モデルを割り当ててもよい。例えば、配信装置100は、モデルが割り当てられていないユーザU4のコンテキストCT15に対応するマスMSには、同じ20代男性のユーザU1のコンテキストCT15に対応するマスMSに割り当てられたモデルM4を割り当ててもよい。また、例えば、配信装置100は、モデルが割り当てられていないユーザU4のコンテキストCT17に対応するマスMSには、同じ20代のユーザU1やユーザU2のコンテキストCT17に対応するマスMSに割り当てられたモデルに基づくモデルを割り当ててもよい。この場合、配信装置100は、ユーザU1のコンテキストCT17に対応するマスMSに割り当てられたモデルM2とユーザU2のコンテキストCT17に対応するマスMSに割り当てられたモデルM1とを合成したモデルを割り当ててもよい。例えば、配信装置100は、ユーザU1のコンテキストCT17に対応するマスMSに割り当てられたモデルM2の各素性の重みとユーザU2のコンテキストCT17に対応するマスMSに割り当てられたモデルM1の各素性の重みとを所定の割合で合成したモデルを割り当ててもよい。例えば、配信装置100は、ユーザU4のコンテキストCT17に対応するマスMSには、20代男性のユーザU1のコンテキストCT17に対応するマスMSに割り当てられたモデルM2の方の比率を大きくしたモデルを割り当ててもよい。例えば、配信装置100は、ユーザU4のコンテキストCT17に対応するマスMSには、モデルM1が0.3、モデルM2が0.7の比率で合成されたモデルM1−2を割り当ててもよい。すなわち、配信装置100は、モデルM1の各素性の重みに0.3を乗算した重みと、モデルM2の各素性の重みに0.7を乗算した重みとを合算することにより生成したモデルM1−2を、ユーザU4のコンテキストCT17に対応するマスMSに割り当ててもよい。
図1では、配信装置100は、ユーザU1のコンテキストCT11に対応するマスMS、ユーザU2のコンテキストCT15に対応するマスMS、ユーザU2のコンテキストCT17に対応するマスMS、及びユーザU4のコンテキストCT13に対応するマスMSに含まれる分割情報を同じクラスタに分類する。また、配信装置100は、上記4つのマスMSに含まれる分割情報を組み合わせた組合情報を用いて、モデルM1を生成したことを示す。また、学習情報記憶部125に示すように、モデルM1に関するモデル情報は、素性1の重みが「0.5」、素性2の重みが「−0.4」、素性3の重みが「0.2」等であることを示す。なお、素性は、配信装置100の管理者等が設定されてもよいし、モデル生成の処理において抽出されてもよい。例えば、素性は、「経済」や「スマホ」や「サッカー」等の文字列(キーワード)であってもよい。また、各モデルの素性は、同じであってもよいし、異なってもよい。
また、配信装置100は、ユーザU1のコンテキストCT12、CT17に対応するマスMS、ユーザU2のコンテキストCT14に対応するマスMS、及びユーザU3のコンテキストCT12に対応するマスMSに含まれる分割情報を同じクラスタに分類する。また、配信装置100は、ユーザU2のコンテキストCT14に対応するマスMSと、ユーザU3のコンテキストCT12に対応するマスMSとに含まれる分割情報を組み合わせた組合情報を用いて、モデルM2を生成したことを示す。また、学習情報記憶部125に示すように、モデルM2に関するモデル情報は、素性1の重みが「−0.3」、素性2の重みが「2.1」、素性3の重みが「−0.2」等であることを示す。
このように、図1では、配信装置100は、分割情報記憶部123中の各マスMSの分割情報を6つのクラスタ(組合情報)に分類し、各クラスタ(組合情報)に含まれる情報を用いてモデルM1〜M6を生成する。
上述したように、配信装置100は、コンテキストに基づいて各区分の行動情報を分割しても、区分間を跨ぐクラスタリングを行うことにより、各モデルの生成に用いられる情報量が不足することを抑制することができる。また、配信装置100は、区分とコンテキストとに基づいて分割された情報をクラスタリングすることにより、各区分の各コンテキストに応じて適切なモデルを生成することができる。したがって、配信装置100は、コンテキストに基づいて所定の対象を適切に予測するモデルを生成することができる。
なお、図1では、行動情報として、配信したコンテンツへのユーザの行動の有無に関する情報を用いる例を示したが、行動情報はユーザが行う行動であって、収集可能な情報であればどのような情報であってもよい。例えば、行動情報はユーザの電子商取引に関する情報であってもよいし、配信された広告に関する行動(例えば、クリックやコンバージョン等)であってもよい。また、位置は、家(自宅)やオフィス(勤務地)に限らず、通勤時の経由地やよく行く場所や移動中など種々の情報であってもよい。
〔1−2.配信処理〕
次に、図2を用いて、実施形態に係る配信処理の一例について説明する。図2は、実施形態に係る配信処理の一例を示す図である。図2は、ユーザがユーザU1である場合を示す。なお、図2では、配信装置100がユーザU1のユーザ属性に関するユーザ情報を取得済みであり、行動履歴等のユーザ情報を取得済みである場合を例に説明する。
まず、配信装置100は、ユーザU1が利用する端末装置10−1からコンテンツの配信要求を取得する(ステップS15)。図2では、端末装置10−1は、ステップS15において、ユーザU1を識別する情報(例えば、ログインID等)や端末装置10−1の場所を示す位置情報等を配信装置100に送信する。なお、端末装置10は、GPS(Global Positioning System)センサ等により位置情報を取得する。図2では、ステップS15は、時間が朝9時であり、端末装置10−1の場所(位置)が位置LC12−1である状況において行われたものとする。なお、位置を示す情報でありハイフン(“-”)が付された位置LC12−1等は、位置LC12から所定の範囲内の位置情報を意味する。また、位置LC11−1、LC11−2等(図5参照)は、位置LC11から所定の範囲内の位置情報を意味する。すなわち、位置LC12−1が、ユーザU1の位置情報を示す場合、ユーザU1は、位置LC12にある勤務地にいるものと推定される。
端末装置10−1からコンテンツの配信要求を取得した配信装置100は、端末装置10−1へ配信するコンテンツを決定するモデルを決定する(ステップS16)。配信装置100は、端末装置10−1から取得したユーザU1を識別する情報により、配信要求元がユーザU1であると推定する。そして、配信装置100は、ユーザ情報記憶部121に記憶されたユーザU1のユーザ情報と端末装置10−1の位置LC12−1とに基づいて、ユーザU1がいる場所を推定する。図2では、ユーザ情報記憶部121に示すようにユーザU1の勤務地が位置LC12であり、端末装置10−1の位置が位置LC12−1であるため、配信装置100は、ユーザU1がオフィス(勤務地)にいると推定する。
そして、配信装置100は、ステップS15において配信要求がされた時間が朝9時であるため、コンテキストを朝のオフィスに対応するコンテキストCT12と推定する。その後、配信装置100は、学習情報記憶部125中のユーザU1及びコンテキストCT12に対応するマスMSに記憶されたモデルM2を示す情報に基づいて、配信するコンテンツの決定に用いるモデルをモデルM2に決定する。
例えば、配信装置100は、決定したモデルM2を用いて、コンテンツ情報記憶部126(図9参照)に記憶された各コンテンツのスコアを算出する。具体的には、配信装置100は、コンテンツ情報記憶部126に記憶された各コンテンツCN11(記事A)〜コンテンツCN18(記事H)等のタイトルや記事本文等の文字情報や画像情報とモデルM2とを用いて、各コンテンツCN11〜CN18等のスコアを算出する。図2では、配信装置100は、コンテンツ一覧CL11に示すような各コンテンツCN11〜CN18等のスコアを算出する。例えば、配信装置100は、記事AであるコンテンツCN11のスコアを「3.6」と算出する。また、例えば、配信装置100は、記事BであるコンテンツCN12のスコアを「2.5」と算出する。
そして、配信装置100は、コンテンツ一覧CL11に示すスコアに基づいて各コンテンツCN11〜CN18等の順位を決定する(ステップS17)。図2では、配信装置100は、コンテンツ一覧CL11に示すスコアが高い方から順に各コンテンツCN11〜CN18等の順位を決定する。具体的には、配信装置100は、スコアの最も高いコンテンツCN15である記事Eの順位を1位に決定する。また、配信装置100は、記事Eの次にスコアの高いコンテンツCN17である記事Gの順位を2位に決定する。これにより、配信装置100は、順位一覧LL11に示すように、順位1位が記事Eであり、順位2位が記事Gであり、順位3位が記事Aであり、順位4位が記事Fであると決定する。
その後、配信装置100は、順位一覧LL11に示すコンテンツを端末装置10−1へ配信する(ステップS18)。具体的には、記事E、記事G、記事A、記事F、等の順で表示されるコンテンツを端末装置10−1へ配信する。そして、順位一覧LL11に示すコンテンツを受信した端末装置10−1は、コンテンツを表示する(ステップS19)。図2では、端末装置10−1は、順位一覧LL11に示すコンテンツのうち順位が上位のコンテンツである記事E、記事G、記事A、記事Fを表示する。なお、端末装置10−1を利用するユーザU1は、端末装置10−1の画面にタッチしスクロール操作等を行うことにより、記事Fから下の記事B、記事H等を順次表示させる。
上述したように、配信装置100は、配信要求を取得した際のコンテキストに応じて、モデルを決定する。そして、配信装置100は、決定したモデルを用いて算出したコンテンツのスコアに基づいて、コンテンツの順位を決定する。これにより、配信装置100は、ユーザと配信要求時のコンテキストとに応じて適切なコンテンツを配信することができる。したがって、配信装置100は、適切なコンテンツを抽出することができる。なお、上記の例では、配信装置100がユーザのコンテキストに基づいて選択したモデルを用いて算出した各コンテンツのスコアを算出し、算出した各コンテンツのスコアが高い方から順に順位付けを行う場合を示した。このように、上述した例では、配信装置100は、ユーザが対応するコンテキストにおいて、各コンテンツを閲覧する可能性を連続的な数値(スコア)として算出するモデルを用いる場合を示した。すなわち、上記例では、配信装置100がユーザのコンテキストに基づいて選択したモデルを用いて算出した各コンテンツのスコアが高い程、そのコンテンツが閲覧される可能性が高いと予測する場合を示したが、配信装置100は、選択したモデルを用いてどのような予測を行ってもよい。
例えば、配信装置100は、所定の閾値以上のスコアのコンテンツをユーザが閲覧すると予測し、所定の閾値未満のスコアのコンテンツをユーザが閲覧しないと予測してもよい。このように、配信装置100は、コンテキストに基づいて選択したモデルを用いて算出した各コンテンツのスコアにより、ユーザがコンテンツの閲覧をする(例えば、値「1」)かしない(例えば、値「0」)かの2値の予測を行ってもよい。なお、配信装置100は、2値の予測に限らず、連続値や離散値を予測するモデルを生成し、生成したモデルに基づいて、連続値や離散値を予測してもよい。例えば、配信装置100は、値が「0」及び「1」の2値に限らず、3値以上の値を取り扱う、いわゆるマルチラベル問題に対応する予測を行ってもよい。例えば、配信装置100は、ユーザのコンテンツの閲覧有無の2段階ではなく、3以上の段階のいずれの段階にユーザがあるかを予測してもよい。例えば、配信装置100は、複数の閾値を用いて、コンテンツをユーザが閲覧する可能性がいずれの段階であるかを予測してもよい。具体的には、予測装置100は、第1の閾値と、第1の閾値よりも小さい第2の閾値を用いて、スコアが第1の閾値以上の場合、コンテンツをユーザが閲覧する可能性が高いと判定し、スコアが第1の閾値未満であり第2の閾値以上の場合、コンテンツをユーザが閲覧する可能性が中程度であると判定し、スコアが第2の閾値未満の場合、コンテンツをユーザが閲覧する可能性が低いと予測してもよい。また、例えば、配信装置100は、反応回数を予測したり、所定の対象のスコアを予測したりするモデルを生成し、生成したモデルに基づいて予測を行ってもよい。すなわち、配信装置100がユーザのコンテキストに基づいて選択したモデルを用いて、どのような予測を行ってもよい。また、配信装置100は、上述のように予測を行う対象に応じてモデルを生成してもよい。
〔2.配信装置の構成〕
次に、図3を用いて、実施形態に係る配信装置100の構成について説明する。図3は、実施形態に係る配信装置100の構成例を示す図である。図3に示すように、配信装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、配信装置100は、配信装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワークと有線または無線で接続され、端末装置10との間で情報の送受信を行う。
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、図3に示すように、ユーザ情報記憶部121と、行動情報記憶部122と、分割情報記憶部123と、クラスタ情報記憶部124と、学習情報記憶部125と、コンテンツ情報記憶部126とを有する。
(ユーザ情報記憶部121)
実施形態に係るユーザ情報記憶部121は、ユーザに関する各種情報を記憶する。例えば、ユーザ情報記憶部121は、ユーザ属性に関する各種情報を記憶する。図4は、実施形態に係るユーザ情報記憶部の一例を示す図である。図4に示すユーザ情報記憶部121は、「ユーザID」、「年齢」、「性別」、「自宅」、「勤務地」、「興味」といった項目が含まれる。
「ユーザID」は、ユーザを識別するための識別情報を示す。例えば、ユーザID「U1」により識別されるユーザは、図1の例に示したユーザU1に対応する。また、「年齢」は、ユーザIDにより識別されるユーザの年齢を示す。なお、「年齢」は、例えば35歳など、ユーザIDにより識別されるユーザの具体的な年齢であってもよい。また、「性別」は、ユーザIDにより識別されるユーザの性別を示す。
また、「自宅」は、ユーザIDにより識別されるユーザの自宅の位置情報を示す。なお、図4に示す例では、「自宅」は、「LC11」といった抽象的な符号を図示するが、緯度や経度を示す情報であってもよい。また、例えば、「自宅」は、地域名や住所であってもよい。
また、「勤務地」は、ユーザIDにより識別されるユーザの勤務地の位置情報を示す。なお、図4に示す例では、「勤務地」は、「LC12」といった抽象的な符号を図示するが、緯度や経度を示す情報であってもよい。また、例えば、「自宅」は、地域名や住所であってもよい。
また、「興味」は、ユーザIDにより識別されるユーザの興味を示す。すなわち、「興味」は、ユーザIDにより識別されるユーザが関心の高い対象を示す。なお、図4に示す例では、「興味」は、各ユーザに1つずつ図示するが、複数であってもよい。
例えば、図4に示す例において、ユーザID「U1」により識別されるユーザの年齢は、「20代」であり、性別は、「男性」であることを示す。また、例えば、ユーザID「U1」により識別されるユーザは、自宅が「LC11」であることを示す。また、例えば、ユーザID「U1」により識別されるユーザは、勤務地が「LC12」であることを示す。また、例えば、ユーザID「U1」により識別されるユーザは、「スポーツ」に興味があることを示す。
なお、ユーザ情報記憶部121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、ユーザ情報記憶部121は、氏名、家族構成、収入等の情報を記憶してもよい。
(行動情報記憶部122)
実施形態に係る行動情報記憶部122は、ユーザの行動に関する各種情報を記憶する。図5は、実施形態に係る行動情報記憶部の一例を示す図である。例えば、行動情報記憶部122は、各ユーザの端末装置10に配信したコンテンツに対するユーザの行動情報を記憶する。図5に示す行動情報記憶部122には、「ユーザID」、「行動」、「状況」といった項目が含まれる。また、「行動」には、「行動内容」、「有無」といった項目が含まれる。また、「状況」には、「時刻」、「位置」といった項目が含まれる。
「ユーザID」は、ユーザを識別するための識別情報を示す。例えば、ユーザID「U1」により識別されるユーザは、図1の例に示したユーザU1に対応する。また、「行動」は、対応するユーザの行動に関する情報を示す。また、「状況」は、対応するユーザの状況に関する情報を示す。
「行動内容」は、各行動を識別するための識別情報を示す。例えば、行動内容「AT11」により識別される行動(行動AT11)は、ユーザに配信したコンテンツ(例えば、コンテンツCN11)に対するユーザの行動(例えば、コンテンツのクリック)に対応する。なお、行動内容は、識別情報に限らず、具体的な行動内容が記憶されてもよい。また、「有無」は、対応する行動内容の有無を示す。「有無」が「1」の場合、ユーザが対応する行動を行ったことを示す。また、「有無」が「0」の場合、ユーザが対応する行動を行わなかったことを示す。
「時刻」は、各行動に関する時刻を示す。時刻「TM11」は、行動AT11に関する時刻を示す。例えば、時刻「TM11」は、ユーザにコンテンツ(例えば、コンテンツCN11)が配信された時刻であってもよい。また、例えば、時刻「TM11」は、ユーザに配信したコンテンツ(例えば、コンテンツCN11)をユーザがクリックした時刻であってもよい。有無「0」である行動内容「AT12」により識別される行動(行動AT12)に関する時刻「TM12」は、例えば、ユーザにコンテンツが配信された時刻であってもよい。また、例えば、時刻「TM12」は、ユーザにコンテンツが配信されてからクリックされずに所定の時間が経過した後の時刻であってもよい。
また、「位置」は、各行動に関する位置を示す。位置「LC11−1」は、行動AT11に関する位置を示す。例えば、位置「LC11−1」は、ユーザがコンテンツの配信を要求したときの位置情報であってもよい。また、例えば、位置「LC11−1」は、ユーザが配信されたコンテンツをクリックしたときの位置情報であってもよい。
例えば、図5に示す例において、ユーザID「U1」により識別されるユーザは、行動内容「AT13」により識別される行動(行動AT13)が有無「1」であり、行動AT13を行ったことを示す。また、ユーザID「U1」により識別されるユーザは、行動AT13に関する時刻が時刻「TM13」であり、位置が位置「LC11−3」であることを示す。
なお、行動情報記憶部122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、行動情報記憶部122は、コンテンツが配信されてから、ユーザが行動するまでの時間に関する情報を記憶してもよい。また、図5では、ユーザIDごとに行動情報が行動情報記憶部122に記憶される場合を示したが、行動情報は、ユーザIDごとに限らず、例えば時刻順に記憶されてもよい。
(分割情報記憶部123)
実施形態に係る分割情報記憶部123は、分割情報に関する各種情報を記憶する。図6は、実施形態に係る分割情報記憶部の一例を示す図である。図6に示す分割情報記憶部123は、「区分」と「コンテキスト」に基づいて分割された行動情報が記憶される。具体的には、ユーザの「区分」ごとに、各「コンテキスト」に対応する行動情報が記憶される。例えば、分割情報記憶部123に記憶される情報は、行動情報記憶部122に記憶された行動情報から生成される。
「区分」は、ユーザに関する区分を示す。図6では、ユーザU1〜U4、すなわち各ユーザが区分である場合を示す。なお、「区分」は、各ユーザに限らず抽象化されたユーザ分類等であってもよいが、この点については後述する。また、「コンテキスト」は、コンテキストを示す。図6では、説明を簡単にするため、時間帯と位置とに基づくコンテキストを示す。具体的には、「コンテキスト」は、朝(4〜10時)、昼(10〜16時)、夜(16〜22時)、深夜(22〜4時)の4つの時間帯と、家(自宅)またはオフィス(勤務地)の2つの位置とに基づく、8つのコンテキストCT11〜CT18を示す。なお、図6に示す各マス中の「AT11」等の行動内容の右側に示す「○」は、有無の「1」に対応し、「×」は、有無の「0」に対応する。すなわち、「○」の場合、ユーザが対応する行動を行ったことを示す。また、「×」の場合、ユーザが対応する行動を行わなかったことを示す。
例えば、図6に示す例において、ユーザU1は、コンテキストCT11において、行動AT11が「○」であり、時間帯「朝」に家(自宅)で行動AT11を行ったことを示す。また、ユーザU1は、コンテキストCT12において、行動AT11が「×」であり、時間帯「朝」にオフィス(勤務地)で行動AT11を行わなかったことを示す。
なお、分割情報記憶部123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。また、図6では、説明のために、分割情報記憶部123に各行動情報の行動内容及び有無に関する情報を記憶する場合を図示したが、分割情報記憶部123は、行動情報記憶部122に記憶された行動情報がどのマスに対応するかに関する情報を記憶してもよい。
(クラスタ情報記憶部124)
実施形態に係るクラスタ情報記憶部124は、各分割情報の組合せに関する各種情報を記憶する。図7は、実施形態に係るクラスタ情報記憶部の一例を示す図である。図7に示すクラスタ情報記憶部124は、図6中の分割情報記憶部123に示す各マスの分割情報がどのように組み合わされたかを示す情報と各組合せに対応するモデルを識別する情報が記憶される。具体的には、ユーザの「区分」と「コンテキスト」とによる各マスに対応するモデルを識別する情報が記憶される。例えば、クラスタ情報記憶部124に記憶される情報は、モデルを生成する処理により生成される。
「区分」は、ユーザに関する区分を示す。図7では、図6と同様に、ユーザU1〜U4、すなわち各ユーザが区分である場合を示す。また、「コンテキスト」は、コンテキストを示す。図7では、図6と同様に、時間帯と位置とに基づくコンテキストを示す。具体的には、「コンテキスト」は、朝(4〜10時)、昼(10〜16時)、夜(16〜22時)、深夜(22〜4時)の4つの時間帯と、家(自宅)またはオフィス(勤務地)の2つの位置とに基づく、8つのコンテキストCT11〜CT18を示す。なお、図7に示す各マス中の「M1」や「M2」等は、同じ符号が記憶されたマスの分割情報を組み合わせた組合情報により生成されたモデルを識別する情報を示す。
例えば、図7に示す例において、「M1」により識別されるモデル(以下、「モデルM1」とする場合がある。他の「M2」〜「M6」についても同様)は、ユーザU1のコンテキストCT11に対応するマスMS、ユーザU2のコンテキストCT15に対応するマスMS、ユーザU2のコンテキストCT17に対応するマスMS、及びユーザU4のコンテキストCT13に対応するマスMSに含まれる分割情報を組み合わせた組合情報から生成されたことを示す。また、例えば、モデルM2は、ユーザU1のコンテキストCT12、CT17に対応するマスMS、ユーザU2のコンテキストCT14に対応するマスMS、及びユーザU3のコンテキストCT12に対応するマスMSに含まれる分割情報を組み合わせた組合情報から生成されたことを示す。
なお、クラスタ情報記憶部124は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
(学習情報記憶部125)
実施形態に係る学習情報記憶部125は、学習に関する情報を記憶する。例えば、学習情報記憶部125は、生成処理により生成されたモデル情報を記憶する。図8は、実施形態に係る学習情報記憶部の一例を示す図である。図8に示す学習情報記憶部125は、モデル情報として、各モデルM1〜M6に対応させて「素性1」〜「素性3」等といった項目を有する。
例えば、図8に示す例において、モデルM1に関するモデル情報は、素性1の重みが「0.5」、素性2の重みが「−0.4」、素性3の重みが「0.2」等であることを示す。例えば、モデルの素性(特徴量)がm次元のベクトルで表現される場合、素性数はm個になり、素性1〜素性mの重みが記憶される。
なお、学習情報記憶部125は、上記に限らず、目的に応じて種々のモデル情報を記憶してもよい。
(コンテンツ情報記憶部126)
実施形態に係るコンテンツ情報記憶部126は、コンテンツ(記事)に関する各種情報を記憶する。図9は、実施形態に係るコンテンツ情報記憶部の一例を示す図である。図9に示すコンテンツ情報記憶部126は、「コンテンツID」、「コンテンツ」、「カテゴリ」といった項目を有する。
「コンテンツID」は、コンテンツを識別するための識別情報を示す。「コンテンツ」は、いわゆるコンテンツプロバイダ等の提供元から取得したコンテンツである記事を示す。図9では「コンテンツ」に「記事A」といった概念的な情報が格納される例を示したが、実際には、文字情報や文字情報と画像との組合せ、または、これらの格納場所を示すファイルパス名などが格納される。また、「カテゴリ」は、コンテンツの内容に基づく分類情報を示す。
例えば、図9に示す例において、コンテンツID「CN11」により識別される記事A(コンテンツCN11)は、カテゴリ「経済」に分類されることを示す。また、図9に示す例において、コンテンツID「CN12」により識別される記事B(コンテンツCN12)は、カテゴリ「スポーツ」に分類されることを示す。
なお、コンテンツ情報記憶部126は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、コンテンツ情報記憶部126は、コンテンツを取得した日時やコンテンツが作成された日時に関する情報を記憶してもよい。コンテンツ情報記憶部126は、各提供元の評価値に関する情報を記憶してもよい。また、コンテンツ情報記憶部126は、コンテンツの提供元を識別するための識別情報を記憶してもよい。また、コンテンツ情報記憶部126は、各モデルにより算出されたコンテンツのスコアを記憶してもよい。
(制御部130)
図3の説明に戻って、制御部130は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、配信装置100内部の記憶装置に記憶されている各種プログラム(配信プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
図3に示すように、制御部130は、取得部131と、推定部132と、生成部133と、決定部134と、配信部135とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部130が有する各処理部の接続関係は、図3に示した接続関係に限られず、他の接続関係であってもよい。
(取得部131)
取得部131は、ユーザの行動情報を取得する。取得部131は、ユーザが利用する端末装置10からユーザの行動情報を取得する。また、取得部131は、ユーザに関するユーザ情報を取得する。また、取得部131は、ユーザに関する区分ごとのユーザの行動に関する行動情報であって、コンテキストに基づいて分割された行動情報である分割情報を取得する。例えば、取得部131は、分割情報記憶部123から分割情報を取得する。また、取得部131は、区分として、ユーザ、またはユーザ属性に基づく分類ごとのユーザの行動に関する行動情報が、コンテキストに基づいて分割された分割情報を取得する。
また、取得部131は、端末装置10からコンテンツの配信要求を取得する。また、取得部131は、ユーザを識別する情報(例えば、ログインIDや端末識別情報等)や端末装置10の位置情報等を取得する。
(推定部132)
推定部132は、取得した各種情報から種々の情報を推定する。例えば、推定部132は、コンテンツを配信した時刻や端末装置10から取得したユーザの位置情報に基づいて種々の情報を推定する。例えば、推定部132は、端末装置10から取得したユーザを識別する情報により、配信要求元のユーザを推定する。例えば、推定部132は、ユーザ情報記憶部121に記憶されたユーザのユーザ情報と端末装置10の位置とに基づいて、ユーザがいる場所を推定する。図2では、推定部132は、ユーザ情報記憶部121に示すようにユーザU1の勤務地が位置LC12であり、端末装置10−1の位置が位置LC12−1であるため、ユーザU1がオフィス(勤務地)にいると推定する。また、図2では、推定部132は、配信要求がされた時間が朝9時であるため、コンテキストを朝のオフィスに対応するコンテキストCT12と推定する。
また、推定部132は、一の区分がユーザである場合において、ユーザの各分割情報が含まれる組合情報と、他の区分の各分割情報が含まれる組合情報との類似度に基づいて、ユーザのユーザ属性を推定するが、詳細は後述する。
(生成部133)
生成部133は、分割情報を生成してもよい。また、生成部133は、生成した分割情報を分割情報記憶部123に記憶させてもよい。例えば、生成部133は、収集した各ユーザの行動に関する情報を分割してもよい。例えば、生成部133は、収集した各ユーザの行動情報を、推定部132により推定されたコンテキストに基づいて分割する。
生成部133は、各分割情報に含まれる行動情報の傾向に基づいて組み合わされた分割情報である組合情報ごとに、所定の対象を予測するモデルを生成する。例えば、図1では、ユーザU1とコンテキストCT11とが交差する位置のマスMS、及びユーザU4とコンテキストCT13とが交差する位置のマスMSが同じクラスタに分類される。ユーザU1とコンテキストCT11とが交差する位置のマスMS、及びユーザU4とコンテキストCT13とが交差する位置のマスMSは、ともに行動AT11が「○」である分割情報が含まれる。ユーザU1とコンテキストCT11とが交差する位置のマスMS、及びユーザU4とコンテキストCT13とが交差する位置のマスMSには、同じ傾向を示す分割情報が含まれる。そして、生成部133は、ユーザU1とコンテキストCT11とが交差する位置のマスMSの分割情報、及びユーザU4とコンテキストCT13とが交差する位置のマスMSの分割情報を含む組合情報を用いてモデルM1を生成する。
また、生成部133は、組合情報に含まれる分割情報の各々に対応するコンテキストにおける当該分割情報に対応する区分に含まれるユーザに関する所定の対象を予測するモデルを生成する。生成部133は、区分間を跨ぐ組み合わせを含む組合情報ごとに、所定の対象を予測するモデルを生成する。例えば、生成部133は、ユーザU2とコンテキストCT12とが交差する位置のマスMSの分割情報、及びユーザU4とコンテキストCT14とが交差する位置のマスMSの分割情報を含む組合情報を用いてモデルM6を生成する。すなわち、生成部133は、ユーザU2とユーザU4との区分間を跨ぐ組合情報を用いてモデルM6を生成する。
例えば、生成部133は、組合情報に含まれる各分割情報に対応するユーザの分類及びコンテキストの組合せにおける所定の対象の予測精度が高くなるように分割情報が組み合わされた組合情報ごとに、所定の対象を予測するモデルを生成する。例えば、生成部133は、各分割情報に含まれる行動情報が類似する分割情報が組み合わされた組合情報ごとに、所定の対象を予測するモデルを生成する。例えば、生成部133は、所定の対象として、ユーザのコンテンツへの関心を予測するモデルを生成する。
例えば、生成部133は、組合情報の数が所定数になる手法により分割情報が組み合わされた組合情報ごとに、所定の対象を予測するモデルを生成する。例えば、生成部133は、k−means法を用いて分割情報が組み合された組合情報ごとにモデルを生成する。この場合、生成部133は、決定部134により決定(設定)されたクラスタ数(組合情報数)になるように、分割情報を組み合わせて組合情報を生成し、組合情報ごとにモデルを生成する。
例えば、生成部133は、組合情報の数が変動し得る手法により分割情報が組み合わされた組合情報ごとに、所定の対象を予測するモデルを生成する。例えば、生成部133は、ディリクレ過程を用いたロジスティック回帰の手法を用いて分割情報が組み合された組合情報ごとにモデルを生成する。例えば、生成部133は、分割情報を順次組み合わせていくことにより、組合情報を生成し、組合情報ごとにモデルを生成する。
例えば、生成部133は、複数の分割情報を組み合わせた組合情報を生成し、その組合情報に対してモデルを生成する。例えば、生成部133は、ランダムに複数の分割情報を選択して組合情報を生成し、その組合情報に対してモデルを生成する。そして、生成部133は、生成したモデルの予測精度を検証する。ここでいう予測精度とは、ユーザの行動有無を予測できる確率をいう。例えば、ここでいう予測精度とは、モデルを用いた場合において、行動情報において「○」であったコンテンツについて、所定のスコア以上が算出される確率をいう。そして、生成部133は、生成したモデルの予測精度が所定の閾値以上である場合、その組み合わせを維持して、さらに分割情報を組み合わせる処理を行ってもよい。また、生成部133は、ペナルティ項等の所定のハイパーパラメータを用いてもよい。例えば、生成部133は、クラスタ数が少なくなるほど値が小さくなるペナルティ項を用いてもよい。例えば、生成部133は、モデルの予測精度からクラスタ数に所定の係数を乗算した値を減算することにより算出される数値に基づいて、組み合わせを維持するか解除するかを判定してもよい。この場合、生成部133は、クラスタ数の減少とモデルの予測精度とのトレードオフに基づいて、所定のクラスタ数に分類された組合情報およびモデルを生成する。
例えば、生成部133は、交差検証(クロスバリデーション)により、一部をモデルの生成に用い、残りを検証用に用いて生成されたモデルの予測精度を検証してもよい。例えば、生成部133は、組合情報のうち80%をモデル生成に用い、残りの20%を検証に用いてもよい。例えば、生成部133は、検証した予測精度が所定の基準を満たした場合、その組み合わせを維持して、さらに分割情報を組み合わせる処理を行ってもよい。また、生成部133は、検証した予測精度が所定の基準を満たさない場合、その組み合わせを解除して、別の分割情報を組み合わせる処理を行ってもよい。また、生成部133は、分割情報を組み合わせる度に、モデル生成に用いる情報と、検証に用いる情報とを入れ替えて交差検証(クロスバリデーション)を複数回行った平均により、組み合わせを維持するか解除するかを判定してもよい。
例えば、生成部133は、一の区分がユーザである場合において、一のコンテキストにおけるユーザの分割情報が所定の条件を満たさない場合、一のコンテキストにおけるユーザのユーザ属性に類似する他の区分の分割情報を一のコンテキストにおけるユーザの分割情報に加えることにより、モデルを生成する。例えば、生成部133は、一のコンテキストにおけるユーザの分割情報の量が所定量に満たない場合、一のコンテキストにおける他の区分の分割情報を一のコンテキストにおけるユーザの分割情報に加えることにより、モデルを生成する。なお、これらの点についての詳細は後述する。
(決定部134)
決定部134は、端末装置10へ配信するコンテンツを決定するモデルを決定する。図2では、決定部134は、クラスタ情報記憶部124中のユーザU1及びコンテキストCT12に対応するマスMSに記憶されたモデルM2を示す情報に基づいて、配信するコンテンツの決定に用いるモデルをモデルM2に決定する。
例えば、決定部134は、決定したモデルとコンテンツとに基づいて、コンテンツのスコアを算出する。また、例えば、決定部134は、算出したスコアに基づいて各コンテンツの順位を決定する。図2では、決定部134は、コンテンツ一覧CL11に示すスコアに基づいて各コンテンツCN11〜CN18等の順位を決定する。また、決定部134は、スコアの最も高いコンテンツCN15である記事Eの順位を1位に決定する。また、決定部134は、記事Eの次にスコアの高いコンテンツCN17である記事Gの順位を2位に決定する。これにより、決定部134は、順位一覧LL11に示すように、順位1位が記事Eであり、順位2位が記事Gであり、順位3位が記事Aであり、順位4位が記事Fであると決定する。
(配信部135)
配信部135は、端末装置10に各種情報を配信する。例えば、配信部135は、端末装置10にコンテンツを配信する。また、配信部135は、決定部134により決定されたコンテンツを配信する。図2では、配信部135は、順位一覧LL11に示すコンテンツを端末装置10−1へ配信する。また、配信部135は、記事E、記事G、記事A、記事F、等の順で表示されるコンテンツを端末装置10−1へ配信する。
〔3.生成処理のフロー〕
〔3−1.クラスタ数を設定しない手法〕
次に、図10を用いて、実施形態に係る配信システム1による生成処理の手順について説明する。図10は、実施形態に係る生成処理の一例を示すフローチャートである。具体的には、図10は、クラスタ数(組合情報数)を決定しない手法による生成処理の一例を示すフローチャートである。
図10に示すように、配信装置100の取得部131は、各ユーザの行動情報を取得する(ステップS101)。例えば、取得部131は、各ユーザが利用する端末装置10からユーザの行動情報を取得する。
また、配信装置100の生成部133は、コンテキストに応じて情報を分割する(ステップS102)。例えば、生成部133は、行動情報を取得した際のコンテキストに応じて、行動情報を分割した分割情報を生成する。なお、ステップS101とステップS102は、複数回に亘って行われてもよい。
その後、生成部133は、クラスタ数を決定しない手法により、分割情報のクラスタリング及びモデルの生成を行う(ステップS103)。例えば、生成部133は、ディリクレ過程を用いたロジスティック回帰の手法を用いて分割情報が組み合された組合情報ごとにモデルを生成する。
〔3−2.クラスタ数を設定する手法〕
次に、図11を用いて、実施形態に係る配信システム1による生成処理の手順について説明する。図11は、実施形態に係る生成処理の一例を示すフローチャートである。具体的には、図11は、クラスタ数(組合情報数)を予め設定(決定)する手法による生成処理の一例を示すフローチャートである。
図11に示すように、配信装置100の取得部131は、各ユーザの行動情報を取得する(ステップS201)。例えば、取得部131は、各ユーザが利用する端末装置10からユーザの行動情報を取得する。
また、配信装置100の生成部133は、コンテキストに応じて情報を分割する(ステップS202)。例えば、生成部133は、行動情報を取得した際のコンテキストに応じて、行動情報を分割した分割情報を生成する。なお、ステップS201とステップS202は、複数回に亘って行われてもよい。
また、配信装置100の決定部134は、クラスタ数(組合情報数)を設定(決定)する(ステップS203)。例えば、決定部134は、クラスタ数(組合情報数)を「6」に設定(決定)する。なお、ステップS203の処理は、ステップS204よりも前であれば、いずれのタイミングで行われてもよい。
その後、生成部133は、クラスタ数を決定する手法により、分割情報のクラスタリング及びモデルの生成を行う(ステップS204)。例えば、生成部133は、k−means法を用いて分割情報が組み合された組合情報ごとにモデルを生成する。
〔4.配信処理のフロー〕
次に、図12を用いて、実施形態に係る配信システム1による配信処理の手順について説明する。図12は、実施形態に係る配信処理の一例を示すフローチャートである。
図12に示すように、配信装置100の取得部131は、配信要求を取得する(ステップS301)。例えば、取得部131は、各ユーザが利用する端末装置10からコンテンツの配信要求を取得する。
そして、配信装置100の推定部132は、ユーザ及びコンテキストを推定する(ステップS302)。例えば、推定部132は、端末装置10から取得したユーザを識別する情報により、配信要求元のユーザを推定する。また、例えば、推定部132は、配信要求がされた時刻や端末装置10の位置に基づいて、コンテキストを推定する。
その後、配信装置100の決定部134は、モデルを決定する(ステップS303)。例えば、決定部134は、端末装置10へ配信するコンテンツを決定するモデルを決定する。
そして、決定部134は、コンテンツの順位を決定する(ステップS304)。例えば、決定部134は、ステップS303において決定したモデルとコンテンツとに基づいて、コンテンツのスコアを算出する。また、例えば、決定部134は、算出したスコアに基づいて各コンテンツの順位を決定する。
その後、配信装置100の配信部135は、順位に基づいてコンテンツを配信する(ステップS305)。例えば、配信部135は、ステップS304において決定した順位に基づいてコンテンツを配信する。
〔5.区分と情報の利用〕
上述した例においては、ユーザに関する区分をユーザとして説明したが、ユーザに関する区分は、ユーザに限らず、目的に応じて種々の区分が用いられてもよい。この点について、図13を用いて説明する。図13は、実施形態に係るユーザに関する区分の一例を示す図である。
ここで、図13中の分割情報一覧UL11は、各ユーザの行動情報がコンテキストごとに分割された状態を示す。分割情報一覧UL11は、分割情報記憶部123と同様に、区分であるユーザを行とし、コンテキストを列とした場合を示す。なお、分割情報一覧UL11中の一のユーザと一のコンテキストとが交差する領域をマスとする。例えば、図13では、ユーザU4とコンテキストCT12とが交差する領域をマスMS42−1とする。
図13に示す各マスMSに含まれる情報は、ユーザに関する区分ごとのユーザの行動に関する行動情報がコンテキストに基づいて分割された分割情報である。なお、図13では、行動AT11等の図示を省略する。例えば、図13では、各マスMSにおける「○」、「×」は、各マスMSに含まれる分割情報の量を示す。また、図13中の各マスMSにおける「○」、「×」が示す意味は、図1と同様である。例えば、ユーザU1とコンテキストCT11とが交差する位置のマスMSに含まれる分割情報の量は、ユーザU1とコンテキストCT12とが交差する位置のマスMSに含まれる分割情報の量よりも多いことを示す。また、例えば、ユーザU1とコンテキストCT12とが交差する位置のマスMSに含まれる分割情報の量は、ユーザU1とコンテキストCT13とが交差する位置のマスMSに含まれる分割情報の量よりも多いことを示す。また、例えば、ユーザU2とコンテキストCT11とが交差する位置のマスMSには分割情報が含まれないことを示す。
図13では、各ユーザの分割情報に基づいて、所定のユーザ属性に基づく分類ごとの分割情報を生成する(ステップS21)。例えば、配信装置100は、図13中の分類毎の分割情報一覧GL11に示すように、分類G1や分類G2や分類G3のように所定のユーザ属性に基づく分類の分割情報を生成する。具体的には、配信装置100は、20代男性の分類G1の分割情報を生成する。この場合、配信装置100は、20代男性であるユーザU1やユーザU4等の分割情報を統合して分類G1の分割情報を生成する。また、配信装置100は、20代女性の分類G2の分割情報を生成する。この場合、配信装置100は、20代女性であるユーザU2等の分割情報を統合して分類G2の分割情報を生成する。また、配信装置100は、興味の対象がスポーツの分類G3の分割情報を生成する。この場合、配信装置100は、ユーザ情報記憶部121に示すように興味の対象がスポーツであるユーザU1等の分割情報を統合して分類G3の分割情報を生成する。
そして、配信装置100は、分割情報一覧GL11の各マスMSの分割情報をユーザのマスMSに加えてもよい。この点について、図14を用いて説明する。図14は、実施形態に係る他の区分における分割情報の利用の一例を示す図である。
図14に示す分割情報一覧GL11は、図13に示す分割情報一覧GL11と同様である。ここで、図13中の分割情報一覧UL11において、ユーザU4とコンテキストCT12とが交差する位置のマスMS42−1には、分割情報が含まれない。すなわち、ユーザU4とコンテキストCT12とが交差する位置のマスMS42−1は、分割情報が不足するマスMSである。
そのため、配信装置100は、分類毎の分割情報を利用する(ステップS22)。例えば、配信装置100は、分割情報一覧UL12に示すように、マスMS42−2に分割情報一覧GL11において対応するマスMSに含まれる分割情報を加える。具体的には、配信装置100は、分割情報一覧GL11中の分類G1におけるコンテキストCT12のマスMSに含まれる分割情報をマスMS42−2に加える。このように、配信装置100は、分割情報一覧UL11において分割情報が不足するマスMSに、分割情報一覧GL11において対応するマスMSに含まれる分割情報を加えることにより、分割情報一覧UL11において分割情報が不足するマスMSを削減できる。また、例えば、配信装置100は、ユーザU1におけるコンテキストCT13のマスMSに、ユーザU1の興味「スポーツ」に対応する分類G3におけるコンテキストCT13のマスMSに含まれる分割情報をマスMS42−2に加えてもよい。また、配信装置100は、あるユーザの分割情報が不足するマスMSに、そのユーザのユーザ属性に類似するユーザにおいて対応するマスMSに含まれる分割情報を加えてもよい。例えば、配信装置100は、ユーザU4におけるコンテキストCT12のマスMS42にユーザ属性が類似するユーザU1におけるコンテキストCT12のマスMSに含まれる分割情報を加えてもよい。
また、配信装置100は、生成した分割情報一覧GL11を用いてモデルを生成し、生成したモデルを利用してもよい。この点について、図15を用いて説明する。図15は、実施形態に係る他の区分におけるモデルの利用の一例を示す図である。なお、配信装置100は、分割情報一覧UL11と分割情報一覧GL11とを合わせてモデルを生成してもよい。例えば、配信装置100は、分割情報一覧UL11と分割情報一覧GL11とを用いて生成処理を行ってもよい。例えば、配信装置100は、分割情報一覧UL11に含まれる分割情報と分割情報一覧GL11に含まれる分割情報とをクラスタリングして、各クラスタに対してモデルを生成してもよい。
図15中のクラスタ情報一覧ML11は、クラスタ情報記憶部124に示すような各マスMSに含まれる分割情報のクラスタリングに関する情報が含まれる。図15中のクラスタ情報一覧ML11は、M1〜M6によって示される6つのクラスタを含むことを示す。
また、図15中のクラスタ情報一覧ML12は、分類毎の分割情報一覧GL11から生成された分割情報のクラスタリングに関する情報が含まれる。図15中のクラスタ情報一覧ML12は、M11〜M13等によって示される6つのクラスタを含むことを示す。すなわち、配信装置100は、分割情報一覧GL11からクラスタ情報一覧ML12に示すような、モデルM11〜M13等のモデルを生成する。
ここで、図15中のクラスタ情報一覧ML11において、ユーザU4とコンテキストCT12とが交差する位置のマスMSはいずれのクラスタにも属さない。すなわち、ユーザU4とコンテキストCT12とが交差する位置のマスMSは、モデルが割り当てられていいないマスMSである。
そのため、配信装置100は、分類毎のモデルを利用する(ステップS31)。具体的には、配信装置100は、ユーザU4とコンテキストCT12とが交差する位置のマスMSにクラスタ情報一覧ML12において対応するマスMSに含まれるモデルを割り当てる。この場合、配信装置100は、分類G1とコンテキストCT12とが交差する位置のマスMSに含まれるモデルM12を、ユーザU4とコンテキストCT12とが交差する位置のマスMSに割当てる。このように、配信装置100は、クラスタ情報一覧ML11においてモデルが割り当てられていないマスMSに、クラスタ情報一覧ML12において対応するマスMSに含まれるモデルを割り当てることにより、クラスタ情報一覧ML11においてモデルが割り当てられていないマスMSを削減できる。
〔6.コンテキストの変動及び統合〕
上述した例においては、コンテキストが、朝(4〜10時)、昼(10〜16時)、夜(16〜22時)、深夜(22〜4時)の4つの時間帯と、家(自宅)またはオフィス(勤務地)の2つの位置とに基づく、8つのコンテキストCT11〜CT18である場合を示した。しかしながら、コンテキストは、上記の8つに限らず、目的に応じて種々変動させてもよい。例えば、配信装置100は、各区分における情報量等に応じてコンテキストを変動させてもよい。この点について、図16を用いて説明する。図16は、実施形態に係るコンテキストの変動の一例を示す図である。
図16に示す分割情報一覧UL11は、図13に示す分割情報一覧UL11と同様である。すなわち、分割情報一覧UL11は、朝(4〜10時)、昼(10〜16時)、夜(16〜22時)、深夜(22〜4時)の4つの時間帯と、家(自宅)またはオフィス(勤務地)の2つの位置とに基づく、8つのコンテキストCT11〜CT18に分割された場合を示す。分割情報一覧UL11には、ユーザU1〜U4等が含まれる。
ここで、ユーザU111は、他のユーザU1〜U4等に比べて収集された行動情報が非常に多いユーザであるものとする。そのため、配信装置100は、ユーザU111については、分割情報一覧UL11に示す8つのコンテキストよりも細分化したコンテキストに基づいて、分割情報を生成する。
図16では、配信装置100は、分割情報一覧UL111に示すように、0時〜23時の24の時間帯と、家(自宅)またはオフィス(勤務地)の2つの位置とに基づく、48のコンテキストCT111〜CT122等に基づいて、分割情報を生成する。すなわち、配信装置100は、収集された行動情報が非常に多いユーザU111については、8つのコンテキストよりも細分化された48のコンテキストに基づいて、分割情報を生成する。なお、図16に示す分割情報一覧UL111中の「0時」は0時台を意味し、例えば、0時0分0秒から0時59分59秒までに対応する。また、図16に示す分割情報一覧UL111中の「1時」〜「23時」についても同様である。
このように、配信装置100は、ユーザごとに収集される行動情報の量に基づいて、分割情報を生成するコンテキストを変動させてもよい。なお、配信装置100は、分割情報一覧UL11と分割情報一覧UL111とを合わせてモデルを生成してもよい。また、分割情報一覧UL111に示すユーザU111のように、ユーザ単体で各コンテキストに十分な分割情報が含まれるユーザについては、配信装置100は、ユーザの各々に対するモデルを生成してもよい。例えば、配信装置100は、ユーザU111自身の行動情報のみを用いて、ユーザU111の各コンテキストに対応するモデルを生成してもよい。また、配信装置100は、図13に示すように、分割情報が不足するユーザのマスMSに対してユーザU111の分割情報を追加してもよい。すなわち、配信装置100は、ユーザU111の各コンテキストに対応するモデルを生成し、ユーザU111の情報を他のユーザに利用させてもよい。
また、配信装置100は、所定の区分におけるマスMSの情報量が少ない場合、その区分におけるコンテキストを統合させてもよい。この点について、図17を用いて説明する。図17は、実施形態に係るコンテキストの統合の一例を示す図である。
図17に示す分割情報一覧UL11は、図13に示す分割情報一覧UL11と同様である。すなわち、分割情報一覧UL11は、朝(4〜10時)、昼(10〜16時)、夜(16〜22時)、深夜(22〜4時)の4つの時間帯と、家(自宅)またはオフィス(勤務地)の2つの位置とに基づく、8つのコンテキストCT11〜CT18に分割された場合を示す。分割情報一覧UL11には、ユーザU1〜U4等が含まれる。
ここで、ユーザU112は、他のユーザU1〜U4等に比べて深夜において収集された行動情報が非常に少ないユーザであるものとする。そのため、配信装置100は、ユーザU112については、分割情報一覧UL11に示す8つのコンテキストのうち、深夜に関するコンテキストを統合した7つのコンテキストに基づいて、分割情報を生成する。具体的には、配信装置100は、分割情報一覧UL11に示す8つのコンテキストのうち、深夜に関するコンテキストCT17及びコンテキストCT18を統合した深夜に対応するコンテキストCT121を含む7つのコンテキストに基づいて、分割情報を生成する。すなわち、配信装置100は、深夜において収集された行動情報が非常に少ないユーザU112については、深夜における家(自宅)かオフィス(勤務地)かの区別をなくしたコンテキストに基づいて、分割情報を生成する。
このように、配信装置100は、ユーザごとに収集される行動情報の量に基づいて、分割情報を生成するコンテキストを統合させてもよい。なお、配信装置100は、分割情報一覧UL11と分割情報一覧UL112とを合わせてモデルを生成してもよい。
〔7.ユーザ属性の推定〕
また、配信装置100は、各区分におけるクラスタの配置等に基づいて、ユーザのユーザ属性を推定してもよい。この点について、図18を用いて説明する。図18は、実施形態に係るクラスタ及びモデルに基づくユーザ属性の推定の一例を示す図である。
図18に示す分割情報一覧UL21は、図13に示す分割情報一覧UL11にユーザU21の分割情報を追加したものである。すなわち、分割情報一覧UL21は、朝(4〜10時)、昼(10〜16時)、夜(16〜22時)、深夜(22〜4時)の4つの時間帯と、家(自宅)またはオフィス(勤務地)の2つの位置とに基づく、8つのコンテキストCT11〜CT18に分割された場合を示す。また、分割情報一覧UL21には、ユーザU1〜U4、U21等が含まれる。またユーザU21は、ユーザ属性である性別及び年齢が不明なユーザであるものとする。
まず、配信装置100は、分割情報一覧UL21中の各マスMSの分割情報を用いて、モデルを生成する(ステップS41)。例えば、配信装置100は、分割情報一覧UL21中の各マスMSの分割情報をクラスタリングし、クラスタ情報一覧ML21に示すようなクラスタごとにモデルを生成する。例えば、配信装置100は、図1中のステップS14と同様の処理によりモデルを生成する。
その後、配信装置100は、性別及び年齢が不明なユーザU21の性別及び年齢をクラスタの配置により推定する(ステップS42)。例えば、配信装置100は、ユーザ属性情報UA21に示すように、分割情報一覧UL21中のユーザU21におけるクラスタの配置とクラスタの配置が類似するユーザの性別及び年齢をユーザU21の性別及び年齢と推定する。
ここで、図18では、配信装置100は、ユーザU4のコンテキストCT11に対応するマスMSと、ユーザU21のコンテキストCT12に対応するマスMSとを、同じクラスタに分類する。すなわち、ユーザU4とユーザU21とは、朝の時間帯において同じモデルM3が適用される。また、配信装置100は、ユーザU4のコンテキストCT13に対応するマスMSと、ユーザU21のコンテキストCT13に対応するマスMSとを、同じクラスタに分類する。すなわち、ユーザU4とユーザU21とは、昼の時間帯において家(自宅)にいる場合、同じモデルM1が適用される。また、配信装置100は、ユーザU4のコンテキストCT16に対応するマスMSと、ユーザU21のコンテキストCT17に対応するマスMSとを、同じクラスタに分類する。すなわち、ユーザU4とユーザU21とは、夜〜深夜の時間帯において同じモデルM6が適用される。
このように、ユーザU4とユーザU21とはクラスタの配置、すなわち適用されるモデルの配置が類似しているため、配信装置100は、ユーザU21の性別及び年齢をユーザU4の性別及び年齢と同様であると推定する。具体的には、配信装置100は、ユーザU21の性別をユーザU4と同じ「男」であると推定し、年齢をユーザU4と同じ「20代」であると推定する。このように、配信装置100は、クラスタの配置、すなわち適用されるモデルの配置の類似に基づいて、ユーザ属性が不明なユーザのユーザ属性を推定することができる。
〔8.効果〕
上述してきたように、実施形態に係る配信装置100は、取得部131と、生成部133とを有する。取得部131は、ユーザに関する区分ごとのユーザの行動に関する行動情報であって、コンテキストに基づいて分割された行動情報である分割情報を取得する。また、生成部133は、各分割情報に含まれる行動情報の傾向に基づいて組み合わされた分割情報である組合情報ごとに、所定の対象を予測するモデルを生成する。
これにより、実施形態に係る配信装置100は、区分とコンテキストとに基づいて分割された情報をクラスタリングすることにより、各区分の各コンテキストに応じて適切なモデルを生成することができる。したがって、配信装置100は、コンテキストに基づいて所定の対象を適切に予測するモデルを生成することができる。
また、実施形態に係る配信装置100において、生成部133は、組合情報に含まれる分割情報の各々に対応するコンテキストにおける当該分割情報に対応する区分に含まれるユーザに関する所定の対象を予測するモデルを生成する。
これにより、実施形態に係る配信装置100は、区分とコンテキストとに基づいて分割された情報をクラスタリングすることにより、各区分の各コンテキストに応じて適切なモデルを生成することができる。したがって、配信装置100は、コンテキストに基づいて所定の対象を適切に予測するモデルを生成することができる。
また、実施形態に係る配信装置100において、取得部131は、区分として、ユーザ、またはユーザ属性に基づく分類ごとのユーザの行動に関する行動情報が、コンテキストに基づいて分割された分割情報を取得する。
これにより、実施形態に係る配信装置100は、区分を適宜変更して各マスに含まれる分割情報の量を調整することができる。したがって、コンテキストに基づいて所定の対象を適切に予測するモデルを生成することができる。
また、実施形態に係る配信装置100において、生成部133は、区分間を跨ぐ組み合わせを含む組合情報ごとに、所定の対象を予測するモデルを生成する。
これにより、実施形態に係る配信装置100は、コンテキストに基づいて各区分の行動情報を分割しても、区分間を跨ぐクラスタリングを行うことにより、各モデルの生成に用いられる情報量が不足することを抑制することができる。したがって、配信装置100は、コンテキストに基づいて所定の対象を適切に予測するモデルを生成することができる。
また、実施形態に係る配信装置100において、生成部133は、組合情報に含まれる各分割情報に対応するユーザの分類及びコンテキストの組合せにおける所定の対象の予測精度が高くなるように分割情報が組み合わされた組合情報ごとに、所定の対象を予測するモデルを生成する。
これにより、実施形態に係る配信装置100は、組合情報に含まれる各分割情報に対応するユーザの分類及びコンテキストの組合せにおける所定の対象の予測精度が高くなるように分割情報が組み合わせることにより、コンテキストに基づいて所定の対象を適切に予測するモデルを生成することができる。
また、実施形態に係る配信装置100において、生成部133は、各分割情報に含まれる行動情報が類似する分割情報が組み合わされた組合情報ごとに、所定の対象を予測するモデルを生成する。
これにより、実施形態に係る配信装置100は、各分割情報に含まれる行動情報が類似する分割情報を組み合わせることにより、コンテキストに基づいて所定の対象を適切に予測するモデルを生成することができる。
また、実施形態に係る配信装置100において、生成部133は、組合情報の数が所定数になる手法により分割情報が組み合わされた組合情報ごとに、所定の対象を予測するモデルを生成する。
これにより、実施形態に係る配信装置100は、組合情報の数が所定数になる手法を用いることにより、コンテキストに基づいて所定の対象を適切に予測するモデルを生成することができる。
また、実施形態に係る配信装置100において、生成部133は、組合情報の数が変動し得る手法により分割情報が組み合わされた組合情報ごとに、所定の対象を予測するモデルを生成する。
これにより、実施形態に係る配信装置100は、組合情報の数が変動し得る手法を用いることにより、コンテキストに基づいて所定の対象を適切に予測するモデルを生成することができる。
また、実施形態に係る配信装置100において、生成部133は、所定の対象として、ユーザのコンテンツへの関心を予測するモデルを生成する。
これにより、実施形態に係る配信装置100は、コンテキストに基づいてユーザのコンテンツへの関心を適切に予測するモデルを生成することができる。
また、実施形態に係る配信装置100において、生成部133は、一の区分がユーザである場合において、一のコンテキストにおけるユーザの分割情報が所定の条件を満たさない場合、一のコンテキストにおけるユーザのユーザ属性に類似する他の区分の分割情報を一のコンテキストにおけるユーザの分割情報に加えることにより、モデルを生成する。
これにより、実施形態に係る配信装置100は、どのようなユーザであっても、コンテキストに基づいて所定の対象を適切に予測するモデルを生成することができる。
また、実施形態に係る配信装置100において、生成部133は、一のコンテキストにおけるユーザの分割情報の量が所定量に満たない場合、一のコンテキストにおける他の区分の分割情報を一のコンテキストにおけるユーザの分割情報に加えることにより、モデルを生成する。
これにより、実施形態に係る配信装置100は、分割情報が不足するユーザであっても、コンテキストに基づいて所定の対象を適切に予測するモデルを生成することができる。
また、実施形態に係る配信装置100は推定部132を有する。推定部132は、一の区分がユーザである場合において、ユーザの各分割情報が含まれる組合情報と、他の区分の各分割情報が含まれる組合情報との類似度に基づいて、ユーザのユーザ属性を推定する。
これにより、実施形態に係る配信装置100は、ユーザのユーザ属性が不明である場合であっても、適切にユーザ属性を推定することができる。
〔9.ハードウェア構成〕
上述してきた実施形態に係る配信装置100は、例えば図19に示すような構成のコンピュータ1000によって実現される。図19は、配信装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(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が実施形態に係る配信装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
以上、本願の実施形態及び変形例のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
〔10.その他〕
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。