(57)【要約】【課題】  データが与えられた場合に、適したモデルを自動的に推定し、推定したモデルを学習し、出力する。【解決手段】  本発明は、モデル選択手段のモデル生成手段でコスト算出手段から入力されたモデル集合と算出されたコストに基づいて、新たなモデル集合を生成し、モデル学習手段では、モデル生成手段から入力された新たなモデル集合とデータ記憶手段に格納されているデータに基づいて、各モデルの学習を行い、学習済みのモデル集合を出力し、コスト算出手段では、モデル学習手段から入力された学習済みのモデル集合に基づいて、各モデルのコストを算出する処理をイテレーションする。【選択図】  図２
2014115685.tif 000002
【特許請求の範囲】
【請求項１】
ユーザのプロファイルを解析するプロファイル解析装置であって、
ユーザの履歴情報を含むデータ集合を格納するデータ記憶手段と、
前記データ記憶手段に格納されているデータに基づいて、最適なモデルを選択するモデル選択手段と、
を有し、
前記モデル選択手段は、モデル生成手段、モデル学習手段、コスト算出手段を有し、
前記モデル生成手段は、
前記コスト算出手段から入力されたモデル集合と算出されたコストに基づいて、新たなモデル集合を生成する手段を有し、
前記モデル学習手段は、
前記モデル生成手段から入力された新たなモデル集合と前記データ記憶手段に格納されているデータに基づいて、各モデルの学習を行い、学習済みのモデル集合を出力する手段を有し、
前記コスト算出手段は、
前記モデル学習手段から入力された前記学習済みのモデル集合に基づいて、各モデルのコストを算出する手段を有する
ことを特徴とするプロファイル解析装置。
【請求項２】
事前に作成したモデル集合を入力する入力手段と、
前記モデル選択手段から入力された前記学習済みのモデルに基づき、ユーザのプロファイルを出力する出力手段と、
を更に有する請求項1記載のプロファイル解析装置。
【請求項３】
前記モデル生成手段は、
初回のイテレーションでは、前記入力手段から入力されたモデル集合Minを取得し、次回以降のイテレーションでは、前記コスト算出手段からモデル集合M及びモデルに対するコスト集合Cを取得し、取得したモデル集合に対してモデル選択を行い、遺伝的アルゴリズムの変異または交叉を行い、指定された個数のモデル集合Mを生成して前記モデル学習手段に出力する手段を含む
請求項１または２記載のプロファイル解析装置。
【請求項４】
ユーザのプロファイルを解析するプロファイル解析方法であって、
ユーザの履歴情報を含むデータ集合を格納するデータ記憶手段と、
前記データ記憶手段に格納されているデータに基づいて、最適なモデルを選択するモデル選択手段と、を有し、該モデル選択手段は、モデル生成手段、モデル学習手段、コスト算出手段を有する装置において、
前記モデル生成手段が、前記コスト算出手段から入力されたモデル集合と算出されたコストに基づいて、新たなモデル集合を生成するモデル生成ステップと、
前記モデル学習手段が、前記モデル生成手段から入力された新たなモデル集合と前記データ記憶手段に格納されているデータに基づいて、各モデルの学習を行い、学習済みのモデル集合を出力するモデル学習ステップと、
前記コスト算出手段が、前記モデル学習手段から入力された前記学習済みのモデル集合に基づいて、各モデルのコストを算出するコスト算出ステップと、
を行うことを特徴とするプロファイル解析方法。
【請求項５】
前記装置に、入力手段と出力手段を有する場合に、
前記入力手段が、事前に作成したモデル集合を入力する入力ステップと、
前記出力手段が、前記モデル選択ステップが実行された結果である前記学習済みのモデルに基づき、ユーザのプロファイルを出力する出力ステップと、
を更に行う請求項４記載のプロファイル解析方法。
【請求項６】
前記モデル生成ステップにおいて、
初回のイテレーションでは、前記入力ステップで入力されたモデル集合Minを取得し、次回以降のイテレーションでは、前記コスト算出ステップの出力であるモデル集合M及びモデルに対するコスト集合Cを取得し、取得したモデル集合に対してモデル選択を行い、遺伝的アルゴリズムの変異または交叉を行い、指定された個数のモデル集合Mを生成して前記モデル学習ステップの出力とするステップを含む
請求項４または５記載のプロファイル解析方法。
【請求項７】
コンピュータを、
請求項1乃至３のいずれか1項に記載のプロファイル解析装置の各手段として実行させるためのプロファイル解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロファイル解析装置及び方法及びプログラムに係り、特に、ユーザのアイテムに対する評点履歴や視聴履歴等から、特性に関する情報を抽出及び解析するためのプロファイル解析装置及び方法及びプログラムに関する。
【背景技術】
【０００２】
情報通信技術の発展により、インターネットなどのメディアが持つ情報量が爆発的に増加している。ユーザは多様な情報を得ることが可能となり、同時にユーザにとっての情報の有用性が多様化している。そのためユーザは、大量の情報から自信にとって有用な情報を選択することが困難となっている。また、情報提供者においては、不特定多数に対する広告や宣伝の効果が減少している。こうした状況において、ユーザの行動履歴などのデータからユーザの嗜好などのプロファイルを抽出及び解析する技術を利用することで、ユーザのプロファイルに適した有用な情報を推薦したり、マーケティングデータとしてターゲティング広告に利用するなど広く行われるようになった。
【０００３】
最もシンプルなプロファイル解析技術に、ユーザとアイテムの直接の関係をモデル化し、大量の行動履歴を用いてモデルを学習する方法がある（例えば、特許文献1参照）。
【０００４】
また、より洗練された方法では、精度の改善を行うために、ユーザとアイテムの間にトピックと呼ばれる中間層を設けたモデル化や、ユーザの行動は時間に影響されるなどといった知識を含めたユーザとアイテムの関係のモデル化、評点を考慮したユーザとアイテムの関係のモデル化など（例えば、非特許文献1参照）、様々なモデル化が行われている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平11-250091号公報
【非特許文献】
【０００６】
【非特許文献１】M. Harvey, M. J. Carman, I. Ruthven, and F. Crestani, "Bayesian latent variable models for collaborative item rating prediction", Proceedings of the 20th ACM international conference on Information and knowledge management, ACM, pp. 699-708 2011.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の非特許文献１の技術では、データに適したモデル化を行うことによって、特許文献１よりも高精度な予測が可能である。しかし、視聴履歴や購買履歴などデータによって、適したモデルは異なるため、データに合わせて適したモデルを人手で検討しなければならないという問題がある。
【０００８】
本発明は、上記の点に鑑みなされたもので、データが与えられた場合に、適したモデルを自動的に推定し、推定したモデルを学習し、出力することが可能なプロファイル解析装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するため、本発明（請求項１）は、ユーザのプロファイルを解析するプロファイル解析装置であって、
ユーザの履歴情報を含むデータ集合を格納するデータ記憶手段と、
前記データ記憶手段に格納されているデータに基づいて、最適なモデルを選択するモデル選択手段と、
を有し、
前記モデル選択手段は、モデル生成手段、モデル学習手段、コスト算出手段を有し、
前記モデル生成手段は、
前記コスト算出手段から入力されたモデル集合と算出されたコストに基づいて、新たなモデル集合を生成する手段を有し、
前記モデル学習手段は、
前記モデル生成手段から入力された新たなモデル集合と前記データ記憶手段に格納されているデータに基づいて、各モデルの学習を行い、学習済みのモデル集合を出力する手段を有し、
前記コスト算出手段は、
前記モデル学習手段から入力された前記学習済みのモデル集合に基づいて、各モデルのコストを算出する手段を有する。
【００１０】
また、本発明（請求項２）は、上記の構成に加えて、事前に作成したモデル集合を入力する入力手段と、
前記モデル選択手段から入力された前記学習済みのモデルに基づき、ユーザのプロファイルを出力する出力手段と、を更に有する。
【００１１】
また、本発明（請求項３）は、前記モデル生成手段において、
初回のイテレーションでは、前記入力手段から入力されたモデル集合Minを取得し、次回以降のイテレーションでは、前記コスト算出手段からモデル集合M及びモデルに対するコスト集合Cを取得し、取得したモデル集合に対してモデル選択を行い、遺伝的アルゴリズムの変異または交叉を行い、指定された個数のモデル集合Mを生成して前記モデル学習手段に出力する手段を含む。
【発明の効果】
【００１２】
上記のように本発明によれば、データが与えられた場合に、適したモデルを自動的に推定し、推定したモデルを学習することができるので、データにあわせて適したモデルを人手で検討しなければならないという問題を解決し、ユーザのプロファイルを抽出や解析することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施の形態におけるモデルの例である。
【図２】本発明の一実施の形態におけるプロファイル解析装置の構成例である。
【図３】本発明の一実施の形態におけるモデル選択部の処理のフローチャートである。
【図４】本発明の一実施の形態におけるデータ記憶部の例である。
【図５】本発明の一実施の形態におけるモデルに対する交叉処理の例である。
【発明を実施するための形態】
【００１４】
以下、図面と共に本発明の実施の形態を説明する。
【００１５】
本発明における実施の形態の概要について説明する。本発明では、最適化手法の一つである遺伝的アルゴリズムを応用することで、与えられたデータに適したモデルを自動で選択する。具体的には、遺伝的アルゴリズムにおける個体をモデルそのものとし、各モデルにおけるコストを算出する。そして、各モデルとそのコストを元に、新たな個体群を選択したのち、モデルの一部を変化させる変異や、２つのモデルの一部を入れ替える交叉を行うことによって、新たな個体群を生成する。以上のステップをイテレーションすることによって、最適なモデルを自動で選択することができる。本発明におけるモデルとは、グラフィカルモデルで表現されるモデルであるとする。図１は、本発明の一実施の形態におけるモデルの例であり、タグ付のアイテムを推薦する研究における実在のユーザとタグ付アイテムの関係のモデルを示している。
【００１６】
まず、プロファイル解析装置の構成について説明する。
【００１７】
図２は、本発明の一実施の形態におけるプロファイル解析装置の構成例である。
【００１８】
同図に示すように、プロファイル解析装置は、入力部１０、モデル選択部２０、データ記憶部３０、出力部４０を有する。モデル選択部２０は、モデル生成部２１、モデル学習部２２、コスト算出部２３を有する。
【００１９】
本実施の形態に係るプロファイル解析装置は、各記憶部となる記憶装置（メモリ、ハードディスク等）を備えるコンピュータに、入力部１０、モデル選択部２０、モデル生成部２１、モデル学習部２２、コスト算出部２３、出力部４０の処理に対応するプログラムを実行させることにより実現可能である。当該プログラムは、可搬メモリ等の記憶媒体に格納して配布し、上記コンピュータにインストールして用いてもよいし、ネットワーク上のサーバからダウンロードして上記コンピュータにインストールしてもよい。また、データ記憶部３０のいずれか又は全部を学習及び推論の処理を行うコンピュータ内に備えずに、当該コンピュータからネットワーク経由でアクセス可能な外部装置に備えてもよい。
【００２０】
以下にプロファイル解析装置の各構成・動作をより詳細に説明する。
【００２１】
＜入力部＞
入力部１０では、ヒューリスティックなどを用いて事前に作成したモデル集合を入力として受け付ける。そして、入力されたモデル集合を、モデル選択部２０が理解可能な形式に変換し、モデル選択部２０に対して出力する。これによって、例えば、データに適したモデルに対する事前知識などがあった場合にも、その知識を利用したモデルを入力することができるため、より早く適したモデルへと収束することを可能とする。ただし、この入力は行われなくとも動作する。すなわち、例えば、データに適したモデルに対する事前知識などがない場合には、入力する必要はない。
【００２２】
＜モデル選択部＞
モデル選択部２０では、入力部から入力モデル集合Minを入力として受け付ける。そして、モデル生成部２１に対してモデル集合Minを出力する。十分にイテレーションを行った後に、モデル生成部２１から入力されたモデル集合Moutを出力部４０に対して出力する。
【００２３】
図３は、本発明の一実施の形態におけるモデル選択部の動作を示すフローチャート例であり、以下の説明において、対応する図３のステップ番号を適宜示す。
【００２４】
＜モデル生成部２１＞
モデル選択部２０のモデル生成部２１では、初回イテレーションでは入力部１０からモデル集合Minを入力として受け付け、それ以降のイテレーションではコスト算出部２３からモデル集合Mおよび算出されたモデルに対するコスト集合Cを入力として受け付ける。そして、入力されたモデル集合に対して後述の選択処理を行った後（ステップ１０４）、収束しない場合は（ステップ１０５、No）変異または交叉の操作を行い(ステップ１０６)、指定された個数のモデル集合Mを生成し、モデル学習部２２に対して出力する。
【００２５】
「選択」とは、コスト集合Cに基づき、コストが小さいものから指定された割合の個体のみを次世代の個体として利用するものである（ステップ１０４）。「変異」とは、選択された個体集合に対し、モデルの一部をランダムで生成したモデルへと入れ替えるものである。「交叉」とは、選択された個体集合に対し、2つのモデルの一部を入れ替えるものである（ステップ１０６）。なお、モデル集合が入力されない場合は、全てのモデルをランダムで生成し、モデル集合の数が少ない場合は、ランダムで生成、変異、交叉のいずれかによって生成する（ステップ１０６）。
【００２６】
前記モデルの一部または全てのランダムな生成においては、ある程度の生成ルールを定めておくものでもよい。例えば、モデルの学習が可能なようにモデルを生成する、コラプストギブスサンプリングを適用したモデルの学習が可能なようにモデルを生成する、モデルの生成過程を一様分布、正規分布、多項分布、ディリクレ分布などに限る、などが考えられる。
【００２７】
＜データ記憶部＞
データ記憶部３０に格納されるデータの例を図４に示す。
【００２８】
データ記憶部３０では、ユーザのさまざまな履歴などのデータ集合Dを格納する。あるデータdには、ユーザidであるu、アイテムidであるiが必ず含まれ、ユーザuがアイテムiを支持する度合いr、タグt、時間c、場所p、などの付随する情報の全てまたはいずれかを含んでもよい。このデータは例えば、商品への閲覧履歴や、商品への購入履歴、音楽や映画の視聴履歴、単語の使用履歴などの、ユーザが選択したものであればなんでもよい。支持する度合いrは、ユーザがアイテムに対して行った評点や、視聴または使用の回数など、ユーザのアイテムに対する重みが決定できるものであればなんでもよい。時間tと場所pは、ユーザがアイテムを閲覧、購入、視聴などの行動をとるなど、ユーザがアイテムと関わった際の時間や場所などである。また、場所pは、地名表現でも緯度経度情報でもなんでもよい。
【００２９】
当該データ記憶部３０は、これらの情報が保存され、復元可能なものであればよく、特定のものに限定されない。例えば、データベースや、予め備えられた汎用的な記憶装置（メモリやハードディスク装置）の特定領域に記憶されるもの、もしくは、Webページを保持するWebサーバや、データベースを具備するデータベースサーバ等である。
【００３０】
＜モデル学習部＞
モデル学習部２２では、モデル生成部２１からモデル集合Mと、データ記憶部２０に格納されたデータ集合Dのうち、学習用データ集合Lを入力として受け付ける。学習用データ集合Lの抽出方法は、時間によってデータを分割するものでも、クロスバリデーションを利用するものでも、なんでもよく、データ集合Dから学習用データ集合Lを抜いたものはテスト用データ集合Tとなる。
【００３１】
そして、それぞれのモデルmに対して学習用データ集合Lを用いて学習を行い、学習済みのモデル集合Mをコスト算出部２３に対して出力する。モデルの学習には、ギブスサンプリングなどの方法を利用すればよい（図３のステップ１０２）。
【００３２】
＜コスト算出部＞
コスト算出部２３では、モデル学習部２２から学習済みのモデル集合Mと、データ記憶部３０に格納されたデータ集合Dのうち、テスト用データ集合Tを入力として受け付ける。そして、それぞれの学習済みモデルmについてコストcを算出し、学習済みのモデル集合Mおよびコスト集合Cをモデル生成部２１へと出力する（図３のステップ１０３）。
【００３３】
コストの算出方法としては、予測精度やパープレキシティをもとに算出する方法が考えられる。まず、予測精度とは、学習済みのモデルmについて、テスト用データ集合Tをどの程度予測できるかを何らかの評価指標で測ったものである。評価指標は、Accuracy、Precision、Recall、F-measureなどなんでもよい。次に、パープレキシティPは、以下の式で表される。
【００３４】
P = 2H
ここで、Hはエントロピーであり、以下の式（１）で表される。
【００３５】
【数１】
2014115685.tif 000003
ただし、予測精度もパープレキシティも適さないモデルほど低い値となるため、逆数をとるなどの処理を行う。
【００３６】
さらに、モデルが複雑になり過学習が起こってしまうことを防ぐために、コストの算出方法として、予測精度に加えてモデルの複雑さの指標を考慮したものでもよい。モデルの複雑さの指標は、変数の数でも、KL(Kullback Leibler)ダイバージェンスのようなものでもよい。KLダイバージェンスは、以下の式（２）で表される。
【００３７】
【数２】
2014115685.tif 000004
ここで、P(i)、Q(i)はそれぞれ確率分布P、Qに従って選ばれた値がiになる確率である。
【００３８】
＜出力部＞
出力部４０では、モデル選択部２０からモデル集合Moutを入力として受け付ける。そして、モデル集合Moutを可視化するなどして出力する。
【００３９】
ここで、出力とは、ディスプレイへの表示、プリンタへの印字、音出力、外部装置への送信等を含む概念である。出力部は、ディスプレイやスピーカ等の出力デバイスを含むと考えても含まないと考えてもよい。出力部４０は、出力デバイスのドライバソフトまたは、出力デバイスのドライバソフトと出力デバイス等で実現され得る。
【００４０】
＜具体例＞
以下、具体的な例を用いて本実施の形態の処理について説明する。ここでは、下記の条件における具体例を説明する。
【００４１】
・個体数は3とする；
・図１のモデルを左から順にモデル１、モデル２、…、モデル６と呼ぶ；
・入力であるモデル集合Minはモデル２とモデル３とする；
・選択される個体数は2とする；
・モデルの生成過程を一様分布、正規分布、多項分布、ディリクレ分布に限る；
・アイテムは単語であり、wと表すとする；
・データにはユーザidであるu、単語idであるw、アイテムに対するタグtが含まれるとする；
・コストは予測精度のみで、評価指標はAccuracyであるとする；
まず、初回のイテレーションが行われる。入力部１０、モデル選択部２０を通じ、モデル生成部２１に対してモデル２、３が入力される。モデル集合Minの数が2であり、個体数である3に足りないことから、モデル生成部２１では、モデルを生成し追加を行う。その際に変異が用いられたとすると、例えば、モデル３におけるタグtが「yによって正規分布から生成される」と変異することによって、モデル１ができる。
【００４２】
モデル学習部２２では、モデル生成部２１からモデル１〜３と、データ記憶部３０から学習用データ集合Lが入力される。各モデルは、ギブスサンプリングなどを利用することで、学習が行われ、学習済のモデル１〜３がコスト算出部２３に出力される。
【００４３】
コスト算出部２３では、モデル学習部２２から学習済のモデル１〜３と、データ記憶部３０からテスト用データ集合Tが入力される。各モデルにはテスト用データtに含まれるユーザuが与えられ、最も確率の高い単語wを出力する。出力wはテスト用データtに含まれるwと比較され、その精度の逆数がコストとして算出される。
【００４４】
続いて、二回目のイテレーションが行われる。モデル生成部２１にはモデル１〜３とそれぞれのコストが入力される。例えば、最もコストが高かったのがモデル１だったとすると、モデル２、３が選択される。次に、モデルの生成が行われるが、その際に交叉が用いられたとすると、例えば、図５のような処理によってモデル５ができる。
【００４５】
以上のイテレーションが、変化がなくなるか、既定の回数行われた後、出力部４０へとモデルが出力される。
【００４６】
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００４７】
１０  入力部
２０  モデル選択部
２１  モデル生成部
２２  モデル学習部
２３  コスト算出部
３０  データ記憶部
４０  出力部
【図１】
2014115685.tif 000005
【図２】
2014115685.tif 000006
【図３】
2014115685.tif 000007
【図４】
2014115685.tif 000008
【図５】
2014115685.tif 000009