以下、添付図面を参照して、本発明の好適な実施形態について詳細に説明する。なお、図面の説明において同一又は相当要素には同一符号を付し、重複する説明は省略する。
図1に本実施形態に係るサーバ10(クラスタ選択装置)を示す。サーバ10は、ユーザに最適なクラスタを選択する装置である。クラスタとは、ユーザの分類を示す。例えば、ユーザが定期的に利用するサービスにおける利用傾向(過去に利用したサービスのコンテンツ、ユーザの嗜好性)に基づいた分類である。
サーバ10は、インターネット等のネットワークに接続されるサーバ装置である。サーバ10は、図示しないポータルサイトを提供するサーバ(ポータルサーバ)と接続し、当該ポータルサーバから当該ポータルサーバを利用したユーザのログであるユーザログ(利用履歴情報)を取得する。サーバ10は、当該ユーザログを用いてクラスタを選択する。
ポータルサーバは、動画配信サービスを提供するサーバである。例えば、一のアクセスユーザが所持する端末(例えば、携帯電話、スマートフォン等)からユーザID(ユーザを識別する識別子)を送信すると共にポータルサーバへアクセス要求(動画配信サービス要求)があると、最初に、動画のコンテンツを選択可能な代表ページ(TOPページ)を端末へ出力する。ポータルサーバは、ユーザが属するクラスタに基づいて代表ページの内容を変えて出力する。このように、ポータルサーバは、ユーザに合わせて代表ページの内容を変えることにより、代表ページをパーソナライズしている。これは、ユーザの再訪問率(再度動画配信サービス要求する確率)を上げるためである。なお、当該コンテンツには、当該コンテンツの属性を示す情報(想定する対象ユーザを示す情報等)が対応付けられている。
ユーザによる代表ページの選択操作に応じて、端末は、動画のコンテンツの配信要求をポータルサーバへ行う。ポータルサーバは、配信要求を受け付けると、選択されたコンテンツを端末へ提供すると共に、当該コンテンツを利用した旨のユーザログを生成し、当該ユーザログを記憶する。具体的に、ポータルサーバは、ユーザログを識別するユーザログIDを生成し、当該ユーザログIDと、配信要求対象のコンテンツの識別子であるコンテンツIDと、アクセス要求したユーザのユーザIDと、動画配信要求した時刻とを関連付けたユーザログを生成し、当該ユーザログを記憶する。ポータルサーバは、サーバ10からの要求に応じてユーザログを送信する。また、ポータルサーバは、ユーザからのアクセスを受け付けると、当該ユーザを示すユーザIDをサーバ10へ送信すると共に、当該ユーザIDに対応するクラスタに基づくユーザ傾向情報の要求をサーバ10へ送信する。
ユーザ傾向情報とは、ユーザのコンテンツの嗜好傾向を示す情報である。例えば、ユーザが属するクラスタに基づく情報である。サーバ10は、ユーザIDと共に上記のユーザ傾向情報の要求を受信すると、複数のクラスタから一のクラスタを選択し、当該クラスタに基づくユーザ傾向情報をポータルサーバへ送信する。このように、サーバ10は、ユーザがサービスへアクセスする際に、複数のクラスタから一のクラスタを選択する。ポータルサーバは、上記ユーザ傾向情報をサーバ10から受信すると、当該ユーザ傾向情報に合わせた代表ページを端末へ出力する。
引き続いて、本実施形態に係るサーバ10の機能について詳細に説明する。図1に示すように、サーバ10は、ユーザログ取得部11と、ユーザログ記憶部12と、クラスタリング計算部13(クラスタリング手段)と、クラスタリング結果記憶部14と、要求受付部15と、類似度算出部16(比較値算出手段)と、再訪問評価値算出部17(クラスタ特定手段、ユーザ評価値算出手段)と、再訪問時間記憶部18と、クラスタ選択部19(クラスタ選択手段)と、総合評価記憶部20とを備えて構成される。
図2は、サーバ10のハードウェア構成図である。図2に示すように、サーバ10は、CPU101、主記憶装置であるRAM(Random Access Memory)102及びROM(Read Only Memory)103、通信を行うための通信モジュール104、並びにハードディスク等の補助記憶装置105等のハードウェアを備えるコンピュータを含むものとして構成される。これらの構成要素がプログラム等により動作することにより、図1に示す各機能要素による機能が発揮される。なお、サーバ10は複数台のコンピュータによるコンピュータシステムによって構成されていてもよい。以下、図1に示す各機能要素について説明する。
ユーザログ取得部11は、各ユーザによって利用されたコンテンツを示すユーザログを取得する。ユーザログ取得部11は、例えば、ポータルサーバに対してユーザログを要求することで、上記のユーザログを取得する。
なお、ユーザログ取得部11は、全ユーザのユーザログをポータルサーバから取得するようにしてもよいし、任意の複数のユーザのユーザログをポータルサーバから取得するようにしてもよい。また、ユーザログ取得部11は、一定期間毎(例えば、1日毎)にポータルサーバに対してユーザログを要求するようにしてもよい。ユーザログ取得部11は、各ユーザのユーザログを取得すると、ユーザログ記憶部12へ記憶する。
ユーザログ記憶部12は、ユーザログを記憶するデータベースである。ここで、ユーザログ記憶部12が記憶する情報の例を図3に示す。図3に示すように、ユーザログ記憶部12は、ユーザログIDと、ユーザIDと、コンテンツIDを示すct_idと、利用時間(利用開始時間)とを対応付けて記憶している。このように、ユーザログは、サービスにより提供される複数コンテンツのユーザ毎の利用履歴情報である。
ユーザログIDが「UsrLogID_001」、「UsrLogID_002」、及び「UsrLogID_003」であるレコードに示されるように、ユーザID「UsrID_001」に係るユーザが、コンテンツID「Ctid_001」、「Ctid_003」、及び「Ctid_009」に係るコンテンツを9月1日に利用したことを示す。
また、ユーザログIDが「UsrLogID_003」及び「UsrLogID_007」であるレコードに示されるように、ユーザID「UsrID_001」に係るユーザが71時間経過後に再度アクセス(再訪問)している。また、ユーザログIDが「UsrLogID_006」及び「UsrLogID_009」であるレコードに示されるように、ユーザID「UsrID_002」に係るユーザが96時間経過後に再度アクセスしている。
再訪問とは、ポータルサーバへアクセスした後に、一度ポータルサーバとの接続を終了して、再度ポータルサーバへアクセスすることをいう。サーバ10は、ユーザがポータルサーバへアクセスした時刻から、当該ユーザにおける直近のユーザログの利用時間までの間隔を算出し、当該間隔が予め定められた間隔の閾値以上である場合に、再訪問であると判定する。例えば「6時間以上ユーザログが無かった場合、次の利用を再訪問とする」などが考えられる。上記間隔は、アクセスした時刻と、直近のユーザログの利用時間との差としているが、コンテンツの「利用終了時刻」を取得し「利用し終了時刻」と再訪問時の「利用時間(利用開始時間)」としてもよい。また、上記間隔の閾値は、サービス内容や適用環境によって異なるように設定されていてもよい。例えば、ユーザが頻繁にアクセスすることが想定されるサービスについては、閾値を短く設定することが考えられる。
クラスタリング計算部13は、ユーザログに基づいて、複数のクラスタにクラスタリングする部分である。クラスタリング計算部13は、ユーザログ記憶部12からユーザIDとコンテンツIDとを取得する。クラスタリング計算部13は、ユーザログ記憶部12から一部のユーザのユーザIDとコンテンツIDとを取得する。なお、クラスタリング計算部13は、全てのユーザのユーザIDとコンテンツIDとを取得してもよい。クラスタリング計算部13は、取得したユーザIDとコンテンツIDを用いてクラスタリングをする。クラスタリング計算部13は、ユーザIDに係るユーザが利用したコンテンツIDに係るコンテンツの利用状況に基づいてクラスタリングを行う。すなわち、クラスタリング計算部13は、利用するコンテンツ間の類似度が近いユーザ同士を同一クラスタとするようにクラスタを形成する。
具体的に、クラスタリング計算部13は、LDA(Latent Dirichlet allocation)やK−meansなどの公知のクラスタリング技術を用いて、クラスタを形成する。クラスタリング計算部13は、クラスタ毎にそれぞれのコンテンツの利用回数を算出する。クラスタリング計算部13は、上記のように、クラスタ毎にそれぞれのコンテンツの利用回数をクラスタリング結果記憶部14へ記憶する。
クラスタリング結果記憶部14は、コンテンツ毎の各クラスタにおける利用回数を記憶する。ここで、クラスタリング結果記憶部14が記憶する情報例を図4に示す。図4に示すように、クラスタリング結果記憶部14は、各クラスタにおける、各コンテンツの利用回数を記憶している。後述する類似度算出部16は、クラスタリング結果記憶部14に記憶されている情報を用いて、アクセスユーザのコンテンツ利用状況と、各クラスタに対応するコンテンツ利用状況との類似度を算出する。
要求受付部15は、ポータルサーバからユーザIDを受信すると共にユーザ傾向情報の要求を受け付ける部分である。要求受付部15は、ポータルサーバから受信したユーザIDを類似度算出部16及び再訪問評価値算出部17へ通知する。また、要求受付部15は、当該ユーザIDと受信した時刻を再訪問評価値算出部17へ通知する。
類似度算出部16は、複数のクラスタの各クラスタに対応するユーザログに基づいたコンテンツの利用度合いと、アクセスユーザのユーザログに基づいたコンテンツの利用度合いとの類似度を算出する部分である。
まず、類似度算出部16は、要求受付部15からユーザIDを受信すると、クラスタリング結果記憶部14から各クラスタの各コンテンツ利用回数を取得する。そして、類似度算出部16は、各クラスタにおける各コンテンツ利用率を算出する。例えば、類似度算出部16は、図4に示したクラスタリング結果記憶部14を参照して、クラスタ「class_1」の各コンテンツの利用回数の合計を算出する。この合計値は、10157になる。続いて、類似度算出部16は、各コンテンツの利用回数と当該合計値との除算結果を算出して、クラスタ「class_1」の各コンテンツ利用率を算出する。また、類似度算出部16は、クラスタ「class_2」〜クラスタ「class_10」についても同様に各コンテンツの利用率を算出する。
類似度算出部16が、各クラスタにおける各コンテンツの利用率を算出した結果を図5に示す。クラスタ「class_1」の各コンテンツの利用回数の合計は10157であり、当該クラスタ「class_1」のct_id「Ctdi_001」の利用回数が2であるので、クラスタ「class_1」におけるct_id「Ctdi_001」の利用率は、0.0001969である。
続いて、類似度算出部16は、要求受付部15から取得したユーザIDに係るユーザの各コンテンツの利用率を算出する。類似度算出部16は、ユーザログ記憶部12から当該ユーザIDに対応するユーザログを取得する。例えば、図3に示したユーザログ記憶部12に記憶されているユーザログが示す9月4日時点でユーザID「UsrID_001」に係るユーザからアクセスがあった場合(9月4日時点で、ポータルサーバからユーザID「UsrID_001」と共にユーザ傾向情報の要求を受け付けた場合)と9月6日時点でユーザID「UsrID_002」に係るユーザからアクセスがあった場合の例を説明する。
類似度算出部16は、ユーザID「UsrID_001」に係るユーザからアクセスがあった場合、ユーザログ記憶部12からユーザIDが「UsrID_001」であるユーザログを取得する。上記のように9月4日の時点であるので、類似度算出部16は、利用時間が9月4日以前である9月1日のユーザログを取得する。具体的に、類似度算出部16は、ユーザIDが「UsrID_001」であり、ct_idが「Ctid_001」、「Ctid_003」、「Ctid_009」である3件のユーザログを取得する。
また、類似度算出部16は、ユーザID「UsrID_002」からアクセスがあった場合、ユーザログ記憶部12からユーザIDが「UsrID_002」であるユーザログを取得する。上記のように9月6日の時点であるので、類似度算出部16は、利用時間が9月6日以前である9月1日のユーザログを取得する。具体的に、類似度算出部16は、ユーザIDが「UsrID_002」であり、ct_idが「Ctid_002」、「Ctid_003」、「Ctid_009」である3件のユーザログを取得する。
続いて、類似度算出部16は、取得したユーザログを用いて、各ユーザのコンテンツ利用率を算出する。具体的に、類似度算出部16は、各コンテンツの利用回数と各ユーザのユーザログ件数(各ユーザの全利用回数)との除算結果を算出する。ユーザID「UsrID_001」及びユーザID「UsrID_002」の各コンテンツ利用率の算出結果を図6に示す。上記のユーザID「UsrID_001」の場合、ct_id「Ctid_001」、「Ctid_003」、「Ctid_009」のそれぞれ1回ずつ利用しており、ユーザの全利用回数が3であるので、それぞれのコンテンツの利用率は、0.333となる。また、ct_id「Ctid_001」、「Ctid_003」、「Ctid_009」以外のコンテンツは、利用回数が無い。後述する類似度を算出する際に極限値になることを防止するため、類似度算出部16は、利用回数が無いコンテンツの利用率を任意の小さい値とする。本実施形態では、「0.001」とする。
ユーザID「UsrID_002」の場合、ct_id「Ctid_002」、「Ctid_003」、「Ctid_009」のそれぞれ1回ずつ利用しており、全体の利用回数が3であるので、それぞれのコンテンツの利用率は、0.333となる。また、類似度算出部16は、ct_id「Ctid_002」、「Ctid_003」、「Ctid_009」以外のコンテンツの利用率を上述のようにコンテンツの利用率を「0.001」とする。
続いて、類似度算出部16は、ユーザのコンテンツ利用率の分布と、各クラスタのコンテンツ利用率の分布との類似度を算出する。具体的に、類似度算出部16は、P(i)を各ユーザのコンテンツ利用率とし、Q(i)を各クラスタのコンテンツ利用率として、以下に示す式により、カルバック・ライブラー・ダイバージェンス(KLD)値を算出する。このKLD値が類似度Gとなる。iは、i番目のコンテンツを示す。なお、分布間の距離を算出する他の方法(内積やコサイン距離)を用いるようにしてもよい。
上記のKLD値は、小さいほどそれぞれの分布の距離が小さいことを示す。すなわち、それぞれの分布が類似していることを示す。ユーザID「UsrID_001」の場合における、ユーザのコンテンツ利用率の分布と、各クラスタのコンテンツ利用率の分布とに基づいた類似度Gの例を図7に示す。
図7に示すように、類似度算出部16は、クラスタ毎に、ユーザのコンテンツ利用率と、クラスタのコンテンツ利用率との比率を用いた類似度を算出する。図7に示す類似度Gによれば、クラスタ「class_5」がユーザID「UsrID_001」のコンテンツ利用率に最も類似することを示している。
ユーザID「UsrID_002」の場合における、ユーザのコンテンツ利用率の分布と、各クラスタのコンテンツ利用率の分布とに基づいた類似度Gの例を図8に示す。
図8に示す類似度Gによれば、クラスタ「class_8」がユーザID「UsrID_002」のコンテンツ利用率に最も類似することを示している。
類似度算出部16は、各クラスタの類似度G及びユーザIDをクラスタ選択部19へ通知する。クラスタ選択部19は、この類似度Gを用いてクラスタを選択する。
再訪問評価値算出部17は、アクセスユーザによるサービスへの前回のアクセスから、当該前回のアクセスから所定期間経過した後のアクセスである今回のアクセスまでのアクセス間隔に基づいて、前回のアクセスのクラスタに対するユーザ評価値を算出する部分である。再訪問評価値算出部17は、要求受付部15からユーザID及び受信した時刻を取得する。
再訪問評価値算出部17は、ユーザID及び直近に選択されたクラスタを有する総合評価記憶部20からアクセスユーザが前回アクセスした時に、クラスタ選択部19によって選択されたクラスタを取得する。このように、再訪問評価値算出部17は、アクセスユーザがサービスへ前回アクセスした際に、選択されたクラスタを特定する。
再訪問評価値算出部17は、ユーザログ記憶部12を参照して、要求受付部15から取得したユーザIDを検索キーとして、最も直近の利用時間を前回のアクセスの時間として取得する。再訪問評価値算出部17は、受信した時刻と、当該最も直近の利用時間との差分を、前回のアクセスから今回のアクセスまでのアクセス間隔(再訪問時間)として算出する。なお、再訪問評価値算出部17は、当該間隔が上述の間隔の閾値を下回る場合、再度ユーザログ記憶部12を参照して、上記ユーザIDを検索キーとして、次に近い利用時間(前回のアクセスの時間)を取得するようにしてもよい。このように、再訪問評価値算出部17は、前回のアクセスから所定期間経過後のアクセスである今回のアクセスまでのアクセス間隔を算出する。
再訪問評価値算出部17は、当該アクセス間隔に基づいて再訪問時間記憶部18に記憶されている情報を更新する。ここで、再訪問時間記憶部18が記憶している情報例を図9に示す。図9に示すように、クラスタと、ユーザIDと、再訪問時間と、回数とを対応付けて記憶している。これは、各クラスタでユーザがアクセスした場合における、再訪問するまでの平均時間と、当該再訪問の回数とを記憶していることを意味する。
再訪問評価値算出部17は、要求受付部15から取得したユーザIDと、総合評価記憶部20から取得したクラスタとに対応する再訪問時間及び回数を更新する。また、再訪問評価値算出部17は、再訪問時間記憶部18に記憶されている情報を用いて、上記総合評価記憶部20から取得したクラスタに過去にアクセスした全ユーザの再訪問時間の平均時間を算出する。具体的には、再訪問評価値算出部17は、上記総合評価記憶部20から取得したクラスタを有する全レコードの再訪問時間の平均値と回数を取得し、当該平均値と回数とを用いて全ユーザの再訪問時間の平均時間を算出する。
続いて、再訪問評価値算出部17は、上記総合評価記憶部20から取得したクラスタにおける標準偏差を算出する。具体的には、再訪問評価値算出部17は、上記総合評価記憶部20から取得したクラスタを有する全レコードの再訪問時間の平均値と回数を取得し、当該平均値と回数とを用いて全ユーザの再訪問時間の標準偏差を算出する。再訪問評価値算出部17は、各ユーザが、再訪問の平均時間で回数分アクセスしたとみなして標準偏差を算出する。なお、再訪問時間記憶部18が、毎回ユーザがアクセスした時間をクラスタ毎に全て記憶しておき、再訪問評価値算出部17は、この時間に基づいて、標準偏差を算出するようにしてもよい。
再訪問評価値算出部17は、以下の式により、前回のアクセスのクラスタに対するユーザ評価値Hを算出する。
AveRes_kは、前回のアクセスのクラスタに属する全ユーザの再訪問時間の平均時間であり、Res_u_kは、アクセスユーザの前回のアクセスから今回のアクセスまでのアクセス間隔であり、s_kは、全ユーザの再訪問時間の標準偏差である。Normalは、正規分布を示す。このように、再訪問評価値算出部17は、各ユーザにおけるアクセス間隔に基づく確率分布から定められる値をさらに用いてユーザ評価値Hを算出する。なお、Res_u_kを他の再訪問時間としてもよい。例えば、ユーザが再訪問するまでの平均時間としてもよい。また、s_kを、全ユーザの再訪問時間の標準偏差としたが、当該ユーザの再訪問の標準偏差としてもよい。この場合、突出した少数のユーザ影響を小さくすることができる。また、正規分布ではなく、他の分布としてもよい。例えば、比較的ユーザ再訪問率が高いサービスであれば、ポアソン分布が考えられる。
ここで、図10に、クラスタ「class_5」の正規分布の例を示す。平均値(Ave_Res_k)は、62.25であり、標準偏差が29.2607である。よって、クラスタ「class_5」におけるNormal(AveRes_k、s_k^2)の値は、0.013634となる。そうすると、ユーザID「UsrID_001」のユーザ評価値は、(62.25−71)*(0.013634)≒−0.119となる。また、クラスタ「class_8」の平均が58.10であり、標準偏差が30.50である場合、Normal(AveRes_k、s_k^2)の値は、0.013080となる。そうすると、ユーザID「UsrID_002」のユーザ評価値は、(58.10−96)*(0.013080)≒−0.495となる。
再訪問評価値算出部17は、ユーザ評価値Hを算出する際に、正規分布による確率値を乗算することにより、ユーザ評価値Hが非常に極端な値となってしまうことを防止している。すなわち、再訪問評価値算出部17は、ユーザが長期間アクセスしなかった結果、Res_u_kが大きくなり、ユーザ評価値Hが非常に極端な値になってしまうことを防止する。再訪問評価値算出部17は、上記ユーザ評価値を算出すると、当該ユーザ評価値をクラスタ選択部19へ送出する。
クラスタ選択部19は、再訪問評価値算出部17により算出されたユーザ評価値Hと、類似度算出部16により算出された類似度Gとに基づいて今回のアクセスのクラスタを選択する部分である。クラスタ選択部19は、類似度算出部16からユーザIDと共に各クラスタの類似度Gを取得する。また、クラスタ選択部19は、再訪問評価値算出部17からユーザIDと共にユーザ評価値Hを取得する。
クラスタ選択部19は、以下の式を用いてユーザのクラスタごとの総合評価値Fを計算する。
上記式のαとβは、それぞれ類似度Gとユーザ評価値Hとにかける重みであり、任意に決めてよい。例えば、αを−1.0、βを5.0とする。αに負の値を設定したのは、KLD値を用いていることにより、「類似度Gが高いほどスコアが小さくなる」ためである。αをこのように設定することにより、クラスタ選択部19は、総合評価値Fの値が最大のクラスタを更新クラスタ(今回のアクセスのクラスタ)に決定する。このように、クラスタ選択部19は、再訪問評価値算出部17により算出されたユーザ評価値Hと、類似度算出部16により算出された類似度Gとに基づいて今回のアクセスのクラスタを選択する。
ここで、上記総合評価値Fの例を図11に示す。図11(A)は、前回の訪問時における総合評価値Fであり、図11(B)は、再訪問時における総合評価値Fである。
図11(A)では、ユーザID「UsrID_001」については、クラスタ「class_5」が最も大きい値となるので、サーバ10は、クラスタ「class_5」に分類して、その分類した結果(クラスタの選択)に基づくユーザ傾向情報をポータルサーバへ送信する。また、ユーザID「UsrID_002」については、クラスタ「class_8」が最も大きい値となるので、サーバ10は、クラスタ「class_8」に分類して、その分類した結果に基づくユーザ傾向情報をポータルサーバへ送信する。
図11(B)では、ユーザID「UsrID_001」については、クラスタ「class_5」に対して、ユーザ評価値Hが加わった結果、クラスタ「class_8」の方が大きくなったため、サーバ10は、クラスタ「class_8」に分類して、その分類した結果に基づくユーザ傾向情報をポータルサーバへ送信する。ユーザID「UsrID_002」については、クラスタ「class_8」に対して、ユーザ評価値Hが加わった結果、クラスタ「class_3」の方が大きくなったため、サーバ10は、クラスタ「class_3」に分類して、その分類した結果に基づくユーザ傾向情報をポータルサーバへ送信する。
このように、クラスタ選択部19は、ユーザ評価値Hを用いてクラスタを選択するので、過去に選択したクラスタに対するユーザの評価を加えて適切にクラスタを選択することができる。
また、クラスタ選択部19は、ユーザIDと、選択したクラスタと、再訪問日時とを関連付けた情報を総合評価記憶部20へ記憶する。ここで、総合評価記憶部20が記憶する情報の例を図12に示す。図12に示すように、総合評価記憶部20は、ユーザIDと、選択したクラスタ(更新クラスタ)と、再訪問日時とを関連付けた情報を記憶している。再訪問評価値算出部17が当該総合評価記憶部20を参照して、前回のクラスタを特定することができる。
クラスタ選択部19は、選択したクラスタに基づいたユーザ傾向情報をポータルサーバへ送信する。例えば、クラスタ選択部19は、クラスタリング結果記憶部14を参照し、選択したクラスタにおける利用回数が多い(例えば、上位数件)コンテンツのct_idをユーザ傾向情報として取得して、取得したct_idと、ユーザIDとを対応付けてポータルサーバへ送信する。これにより、ポータルサーバは、サーバ10から取得したct_idに係るコンテンツをレコメンドすることができる。また、ポータルサーバは、サーバ10から取得したct_idに係るコンテンツの共通の属性に応じた出力をすることができる。例えば、上記コンテンツが共通して女性向けである旨の属性を有している場合、代表ページ(TOPページ)の色調やデザインを女性向けのものを出力する。
続いて、図13のフローチャートを用いて、サーバ10が実行する処理手順の説明をする。図13に示すフローチャートは、クラスタを選択する全体処理を示す図である。まず、ユーザログ取得部11は、ポータルサーバからユーザログを取得し、ユーザログ記憶部12へ記憶する(ステップS1)。続いて、クラスタリング計算部13は、ユーザログ記憶部12に記憶されているユーザログを用いて、クラスタリングをして、当該クラスタリングをした結果をクラスタリング結果記憶部14へ入力する(ステップS2)。ここまでのステップS1及びステップS2の処理は、バッチ処理(オフライン処理)で行う。例えば、毎日0時に前日までのユーザログからクラスタリングをして、当該クラスタリングの結果を入力する。
続いて、要求受付部15が、ポータルサーバからユーザIDと共に要求を受け付けると、類似度算出部16は、ユーザログ記憶部12に記憶されているユーザログから、上記ユーザIDの各コンテンツの利用率を算出する。そして、類似度算出部16は、クラスタリング結果記憶部14に記憶されている情報を用いて、クラスタ毎のコンテンツ利用率を算出する。そして、類似度算出部16は、ユーザIDの各コンテンツの利用率と、クラスタ毎のコンテンツ利用率とを用いて、類似度Gを算出する(ステップS3)。続いて、再訪問評価値算出部17は、前回アクセスした時から今回アクセスした時までのアクセス間隔に基づいてユーザ評価値Hを算出する(ステップS4)。続いて、クラスタ選択部19は、類似度Gとユーザ評価値Hとを用いて、総合評価値Fを算出し(ステップS5)、当該総合評価値Fに基づいてクラスタを選択し(ステップS6)、処理を終了する。ステップS3以降の処理は、特定のタイミングを起点として、リアルタイムに処理を行う。例えば、ユーザの再訪問を起点としてもよいし、一定回数を超えた時の訪問としてもよい。
上述の実施形態では、コンテンツの履歴情報であるユーザログに基づいてクラスタリングする場合について述べたが、他の情報に基づいてクラスタリングするようにしてもよい。例えば、ユーザ特徴ベクトルを示す情報に基づいてクラスタリングするようにしてもよい。
上述の実施形態では、クラスタ毎の利用率に基づく値とユーザのコンテンツの利用率に基づく値との類似度Gを用いる場合について述べたが、他の任意の値を各クラスタに割り当てるようにしてもよい。また、ユーザ評価値と当該ユーザ評価値の閾値とを比較して、その比較結果に基づいてクラスタを変えるか否かを判断するようにしてもよい。
上述の実施形態では、正規分布による確率値を用いる場合について述べたが、当該確率値を用いずにユーザ評価値Hを算出するようにしてもよい。例えば、βの値を調整して、ユーザ評価値Hが大きな値を取らないように調整してもよい。
続いて、作用効果について説明する。サーバ10では、再訪問評価値算出部17が、アクセスユーザが前回アクセスした際に、ユーザの分類として選択されたクラスタを特定する。再訪問評価値算出部17が、アクセスユーザによるサービスへの前回のアクセスから今回のアクセスまでのアクセス間隔に基づいて、特定したクラスタに対する評価値であるユーザ評価値Hを算出する。クラスタ選択部19は、ユーザ評価値Hに基づいて、今回のアクセスのクラスタを選択する。
サーバ10は、前回のアクセスから今回のアクセスまでのアクセス間隔によるユーザ評価値を算出し、算出したユーザ評価値Hに基づいて、今回のアクセス時のクラスタを選択する。このように、過去に選択したクラスタに対するユーザ評価値Hを考慮してクラスタを選択するので、より適切にユーザを分類することができる。また、ユーザ評価値Hは、前回のアクセスのクラスタに属する全ユーザの再訪問時間の平均時間と、アクセスユーザの前回のアクセスから今回のアクセスまでのアクセス間隔とを比較した値である。このように、再訪問評価値算出部17が、両者を比較した値を算出した結果に基づいて、前回選択したクラスタに対するユーザの評価を推定することができる。例えば、上記アクセス間隔が上記平均時間より短ければ、前回選択したクラスタに対するユーザの評価が高いと推定することができる。
クラスタリング計算部13は、サービスにより提供される複数コンテンツのユーザ毎のユーザログに基づいて、複数のクラスタにクラスタリングする。類似度算出部16は、複数のクラスタの各クラスタに対応するユーザログに基づいたコンテンツの利用度合いと、アクセスユーザのユーザログに基づいたコンテンツの利用度合いとの類似度Gを算出する。クラスタ選択部19は、類似度算出部16により算出された類似度Gをさらに基づいて今回のアクセスのクラスタを選択する。この場合、ユーザ評価値Hだけでなく、類似度Gを用いてクラスタを選択するので、総合的に評価した結果に基づいてクラスタを選択でき、より適切にクラスタを選択することができる。
再訪問評価値算出部17は、各ユーザにおけるアクセス間隔に基づく確率分布から定められる値をさらに用いてユーザ評価値Hを算出する。この場合、確率分布を使用することにより、ユーザ評価値Hが極端な値にならないようにして、類似度Gとのバランスを取ってクラスタを選択することができるので、適切な評価値に基づいてユーザを分類することができる。