【文献】
増井 俊之,進化的学習機構を用いたグラフ配置制約の自動抽出,インタラクティブシステムとソフトウェアII,日本,株式会社近代科学社,1994年12月10日,初版,p.195−204
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明の一実施の形態について説明する。
図1は、本発明の一実施形態としての情報処理システム(情報処理装置)10の構成例を示したブロック図である。情報処理システム10は、コンテンツ表示機器100とコンテンツ制御機器200とを備えている。また、
図1に示した情報処理システム10内の各構成は、例えば、1又は複数のCPU(中央処理装置)と、その周辺装置と、そのCPUで実行されるプログラムとの組み合わせによって実現することができる。コンテンツ表示機器100は、コンテンツ受信部110、コンテンツ出力部115、コンテンツ評価部120、推薦結果表示選択部130、コンテンツ閲覧ログ生成部140、嗜好モデル生成部150、及びトレーニング情報設定部160を備えている。
【0018】
コンテンツ表示機器100は、例えば、TV(テレビジョン)、スマートフォン、携帯電話機やPC(パーソナルコンピュータ)のような情報端末である。あるいは、コンテンツ表示機器100は、TV等の情報端末と、セットトップボックスやビデオ録画機器等のコンテンツ受信・録画機器とを組み合わせたものであってもよい。
【0019】
コンテンツ表示機器100は、コンテンツ受信部110とコンテンツ出力部115とによって、コンテンツを受信して表示することが可能な機器である。コンテンツ受信部110は、推薦結果表示選択部130からの指示に従って受信するコンテンツを選択し、放送波やネットワーク等の所定の媒体を介してコンテンツを受信する。そして、コンテンツ受信部110は、受信したコンテンツを表す信号を、所定形式の映像信号や音声信号に変換する等してコンテンツ出力部115に対して出力する。コンテンツ出力部115は、ディスプレイやスピーカを有して構成されていて、入力された映像信号や音声信号に基づいて映像表示や音声出力を行う。また、コンテンツ受信部110は、電子番組情報等の、複数の属性情報を用いてコンテンツの属性を表すコンテンツ情報(以下、番組情報と呼ぶ)を受信して、コンテンツ評価部120へ出力する。
【0020】
コンテンツ評価部120(推定部)は、受信したコンテンツに対するユーザの嗜好(すなわちユーザの好み)を評価して、ユーザに推薦する番組情報の一覧情報を作成する。一方、嗜好モデル生成部150は、ユーザのコンテンツに関しての嗜好(好き嫌い)を表すモデルである、嗜好モデル151を生成・更新する。コンテンツ評価部120は、嗜好モデル生成部150が生成した嗜好モデル151を用いてコンテンツを評価し、ユーザの嗜好に合いそうだと推定した1又は複数の番組情報を、コンテンツの推薦結果として、推薦結果表示選択部130へ出力する。
【0021】
推薦結果表示選択部130は、コンテンツ評価部120の評価結果に基づいて、コンテンツの推薦結果を表示する。また、推薦結果表示選択部130は、トレーニング情報設定部160の指示に従って、嗜好モデル151のトレーニング用の番組情報を表示する。その際、推薦結果表示選択部130は、コンテンツ評価部120から受信したコンテンツの推薦結果を表す文字や画像、又はトレーニング情報設定部160から受信した番組情報を、コンテンツ受信部110を介してコンテンツ出力部115から出力する。また、推薦結果表示選択部130は、コンテンツ制御機器200から受信した所定の制御信号に基づいて選択するコンテンツを決定し、決定した結果をコンテンツ受信部110へ出力する。ここで、コンテンツ受信部110は、上述したように、選択されたコンテンツを所定の媒体を介して受信し、所定の映像信号や音声信号に変換する等してコンテンツ出力部115から出力する。
【0022】
コンテンツ閲覧ログ生成部140は、推薦結果表示選択部130が表示したコンテンツ推薦結果に対するコンテンツ制御部210による選択等の制御内容に基づいて、ユーザの嗜好に関するログを生成する。すなわち、コンテンツ閲覧ログ生成部140は、ユーザが表示や録画を指示したコンテンツの番組情報を複数、記録する。このコンテンツ閲覧ログ生成部140によって記録された番組情報は、嗜好モデル生成部150が嗜好モデル151を更新する際に、例えばユーザの好みにあったコンテンツを表すトレーニング用の番組情報として使用される。
【0023】
トレーニング情報設定部160は、トレーニング用の番組情報を、推薦結果表示選択部130等を介してコンテンツ出力部115から表示する。トレーニング情報設定部160は、さらに、そのトレーニング番組情報の表示に対するユーザの操作に応じてコンテンツ制御機器200から受信した所定の制御信号に基づき、当該番組情報に対してユーザの嗜好(“好き”、“嫌い”等)を設定し、設定した結果を番組情報とともに、嗜好モデル生成部150へ出力する。
【0024】
嗜好モデル生成部150は、予め用意されているトレーニング用の番組情報(すなわち好き嫌いを表す正解の評価結果を表す情報が予め対応づけられている番組情報)を用いて、あるいは、コンテンツ閲覧ログ生成部140が生成したログやトレーニング情報設定部160が設定したトレーニング用の番組情報を用いて、ユーザの嗜好モデル151を生成したり、更新したりする。この嗜好モデル151は、嗜好モデル生成部150内の所定の記憶部に記憶される。また、嗜好モデル生成部150は、嗜好モデル151を生成したり、更新したりする際に使用したトレーニング用の番組情報を、その好き嫌いの評価結果とともに、所定の記憶部に記憶する。
【0025】
一方、コンテンツ制御機器200は、TVのリモコンや携帯電話機のタッチパネルやPCのマウスとして構成されている。コンテンツ制御機器200は、操作部や信号送信部を有するコンテンツ制御部210を備えている。コンテンツ制御機器200では、このコンテンツ制御部210が、ユーザの所定の操作を入力し、その入力結果を示す所定の制御信号を推薦結果表示部130やトレーニング情報設定部160に対して出力する。具体的には、コンテンツ制御部210は、ユーザのコンテンツに対する選択、表示指示等の操作や、トレーニング用の番組情報に対する“好き”、“嫌い”等のユーザの選択、設定指示等の操作情報を入力し、それらの操作の内容に応じた制御信号を出力する。なお、コンテンツ制御機器200は、
図1に示したようにコンテンツ表示機器100とは別の装置として構成されていてもよいし、あるいは、コンテンツ表示機器100と一体として構成されていてもよい。
【0026】
ここで、
図2〜
図8を参照して、
図1に示した嗜好モデル151の構成例等について説明する。
図2は、
図1に示した嗜好モデル151の構成例を示した模式図である。嗜好モデル151は、ユーザのコンテンツに対する嗜好(好き、好き嫌い等)を典型的に表す型である。嗜好モデル151に基づいて、未知の番組情報に対するユーザの嗜好を推定する際に所定の判定処理を行うための複数のルールが生成される。この嗜好モデル151は、学習によって内容を更新することができるモデルであるが、初期のモデルは例えば次のようにして生成することができる。すなわち、予め用意された複数の番組情報に対して、予め“好き”、“嫌い”等の嗜好が設定されているもの、あるいは、ユーザによって新たに“好き”、“嫌い”等の嗜好を設定してもらったものを、トレーニング用の番組情報として用いることで生成することができる。ここで、予め用意する嗜好の設定がなされたトレーニング用の番組情報は、例えば、年代別、性別等に応じて複数用意しておくこともできる。また、嗜好モデル151自体も、ゼロから生成するのではなく、一定のトレーニングが行われた状態を初期状態として用意しておくこともできる。この初期モデルを作成する際に使用した番組情報は、嗜好モデル生成部150内の所定の記憶部に記憶しておく。
【0027】
図2に示したように、嗜好モデル151は、嗜好モデル151内の複数のノード151a1又は151a2間の接続関係を示す有向グラフ151aを表す情報と、複数の判定ノード151a2に対応づけられている情報の内容をノード毎に示すデータである複数の判定ノード内容情報151bとで表現される。すなわち、嗜好モデル151は、複数のノード151a1又は151a2と、複数のノード151a1又は151a2間を方向性を有して接続する複数のエッジ151a3とで構成された有向グラフ151aと、複数の判定ノード内容情報151bとから表されるデータ構造を有している。また、複数のノード151a1又は151a2は、開始ノード151a1と、判定ノード151a2とに分類される。これらの有向グラフ151aの構造と、判定ノード151a2に対応づけられている情報とに基づいて、ユーザの嗜好に関する所定の判定を行うため複数のルールが生成される。
【0028】
開始ノード151a1は、ルールを作成するプログラム(あるいは計算手順)の開始地点を示し、判定ノード151a2につながるノードである。判定ノード151a2は、番組を表すための「属性情報」を一つ対応づけられたノードであり、このノード単体での「判定式」とその判定式の「信頼度に対応する所定のパラメータ」とが対応づけられている。このとき、番組を表すための属性情報とは、例えば“ドラマ”や“放送時刻”、“チャンネル”など、番組の特徴を表す情報、性質を表す情報等、番組に関する情報のことを指す。この場合において判定ノード151a2に対応づけられた判定式とは、当該判定ノードに対応づけられた属性情報を番組情報が含む場合に、すなわち“好き嫌い”の程度を表す値を出力する数式(あるいはプログラム)である、嗜好の度合いについて判定を下す(あるいは数値化する)ための数式や条件のことを指す。各判定ノードでは、この判定式によって、当該ノード単体で“好き”か“嫌い”かの度合いを算出することができる。信頼度に対応する所定のパラメータとは、判定式の信頼性を表現するためのパラメータであり、例えば、当該判定ノードに対応づけられた属性情報がトレーニング用の番組情報においてどのくらい出現しているかという頻度にもとづき算出される。この「信頼度に対応する所定のパラメータ」を用いることで、例えば頻度が多い場合に信頼度が高く、少ない場合に信頼度が低いというように仮定し、当該判定式から得た結果に相対的な重み付けをする等を行うことできる。嗜好モデル151は、この2種類のノードと有向グラフを使用して、番組の好き嫌いを判定するためのルールを表す論理式を生成する遺伝子構造を構築する。
【0029】
なお、
図2において、開始ノード151a1は、六角形の記号で示されていて、その記号内の数字“1”〜“3”は、各開始ノード151a1に設定されたID(識別符号)を表している。また、判定ノード151a2は、丸形の記号で示されていて、その記号内の数字“1”〜“8”は、各判定ノード151a2に設定されたIDを表している。
【0030】
図2に示した有向グラフ151aにおける各開始ノード151a1、各判定ノード151a2及び各有向エッジ151a3との接続関係は、例えば、
図3に示した2種類のテーブルで表すことができる。すなわち、
図3(a)に示したように、各開始ノード151a1と、その各開始ノード151a1に直接接続されている1又は複数の判定ノード151a2との接続関係は、開始ノード毎に、開始ノードのIDと、その開始ノードに直接接続された1又は複数の接続先の判定ノードのIDとの対応付けを示すテーブルで表すことができる。
図3(a)のテーブルは、例えば開始ノードIDが“1”の開始ノード151a1(以下、“開始ノード1”とも表記する)が、IDが“4”の判定ノード151a2(以下、“判定ノード4”とも表記する)に、開始ノード1から判定ノード4への方向で直接接続されていることを示している。また、開始ノードIDが“2”の開始ノード151a1(以下、“開始ノード2”とも表記する(以下、同様))が、IDが“2”、“5”及び“7”の3個の判定ノード151a2に、開始ノードから各判定ノードへの方向で直接接続されていることを示している。
【0031】
一方、各判定ノード151a2間の接続関係は、
図3(b)に示したように、判定ノード毎に、判定ノードのIDと、その判定ノードに直接接続されている1又は複数の接続先の判定ノードのIDとの対応関係を示すテーブルで表すことができる。
図3(b)のテーブルは、例えば判定ノード1に、IDが“3”の判定ノード151a2(以下、“判定ノード3”とも表記する(以下、同様))が判定ノード1から判定ノード3への方向に直接接続されていることを示している。また判定ノード2には、判定ノード2から他の判定ノードへと向かう方向では、他の判定ノードが接続されていないことを示している。また、判定ノード4には、判定ノード1と判定ノード8との2個の判定ノードが、判定ノード1から判定ノード1又は判定ノード8への方向に直接接続されていることを示している。
【0032】
なお、有向グラフ151の構成は、
図3に示した2種類のテーブルで表すことができるほか、1種類のテーブルで表すこともできる。すなわち、IDだけではなく、ノードの種類を表す情報を追加して用いることで、開始ノード毎又は判定ノード毎の区別ではなく開始ノードと判定ノードに共通のノード毎の区別として、各ノード間の接続関係を表すことができる。また、有向グラフ151内のノードは、上述したように開始ノードと判定ノードとの2種類を設けるのではなく、例えばノードをすべて1種類の判定ノードとして、判定ノードの一部にプログラム(あるいはルール)の開始点を表す情報を付加することで、判定ノードの一部に開始ノードの機能を持たせるようにすることもできる。
【0033】
一方、
図2に示した判定ノード内容情報151bは、例えば
図4に示したようなデータ形式で構成することができる。
図4に示した例では、判定ノード内容情報151bが、判定ノードIDを表すフィールド151b1、属性情報を表すフィールド151b2、判定式を表すフィールド151b3、及び頻度情報を表すフィールド151b4を有して構成されている。この例では、“頻度情報”が上述した“判定式の信頼度に対応する所定のパラメータ”に対応している。この“頻度情報”は、嗜好モデル151を生成又は更新する際に使用されたトレーニング用の複数の番組情報に、当該判定ノードに対応づけられている属性情報が出現した頻度を表す情報である。ただし、この頻度情報に代えて、頻度情報に対して所定の計算処理を行うことで判定式の信頼度を表す値を算出した結果を、判定ノード内容情報151bに含ませることもできる。例えば、各頻度の値を、全判定ノードの中で最も多い頻度の値で除した値(あるいはその値にさらに非線形に重み付けをした値)等を、“判定式の信頼度に対応する所定のパラメータ”とすることができる。“判定式の信頼度に対応する所定のパラメータ”は、例えば“0”〜“1”の実数として、“0”が信頼度が最も低く、“1”が信頼度が最も高いというような値に設定することができる。
【0034】
なお、属性情報は、
図4に示したように、属性情報の種類と内容との組み合わせによって表してもよいし、種類に関わらないキーワードによって表してもよいし、あるいは、両方の構成を混在させてもよい。また、頻度情報は、例えば
図4に示したように、嗜好モデル151を生成、更新等する際のトレーニングにおいて、“好き”と設定された番組情報に含まれていた頻度と、“嫌い”と設定された番組情報に含まれていた頻度とに分けて含むものとすることができる。あるいは、頻度情報は、“好き嫌い”の設定とは無関係に、トレーニングで使用された番組情報に当該属性情報が出現した頻度を表すものとしてもよい。
【0035】
また、判定式は、例えば次のような形式とすることができる。すなわち、判定式は、判定式の値(すなわち計算結果)が、例えば“−1”〜“1”の実数の範囲で、“−1”が“嫌い”の確率が最も高く、“1”が“好き”の確率が最も高いという値を出力するものとすることができる。判定式で用いる変数(すなわちパラメータ)としては、例えば、頻度情報を用いてもよいし、あるいは属性情報の種類や内容に応じて予め設定された値(すなわち定数)を用いてもよい。例えば、頻度情報をパラメータとして用いる場合、“好き”と“嫌い”の合計の頻度がゼロではなく、“好き”と設定された場合の頻度がゼロのときは(すなわち、すべて“嫌い”と設定されている場合)、判定式の値を“−1”とする。また、“嫌い”と設定された場合の頻度がゼロのときは(すなわち、すべて“好き”と設定されている場合)、判定式の値は“1”とする。そして、“好き”の頻度と“嫌い”の頻度がどちらもゼロでない場合は、中間の値となるように、判定式を内容を構成する。この場合、判定式は、1又は複数の計算式を用いて構成したり、プログラムにおける条件文(例えば「if」文)等を用いて構成したりすることができる。
【0036】
次に、
図2に示した有向グラフ151aから、番組の好き嫌いを判定するためのルールを表す論理式を生成する手順について説明する。以下では、8個の判定ノードに対して
図5に示した属性情報が対応づけられていることとして説明を行う。すなわち、判定ノード1には“ドラマ”が、判定ノード2には“サッカー”が、判定ノード3には“13時”が、判定ノード4には“放送局A”が、判定ノード5には“映画”が、判定ノード6には“俳優B”が、判定ノード7には“特番”が、そして、判定ノード8には“ニュース”が、それぞれ対応づけられている。また、各判定ノードの内容は
図6に示した形式を有している。すなわち、各判定ノード1〜8には、当該ノード単体で“好き”か“嫌い”かの度合いを出力する判定式f1〜f8が対応づけられている。また、各判定ノード1〜8には信頼性を表すパラメータとして、この判定ノードに対応付けられている属性情報がトレーニング用の番組情報に出現した頻度に対応した値n1a〜n8a(“好き”の場合)とn1b〜n8b(“嫌い”の場合)が設定されている。
【0037】
有向グラフ151aからルールを抽出する際には、
図7に示したように、開始ノード1〜3から、それぞれ、有向エッジ(すなわち矢印)で接続されている判定ノードをたどって各判定ノードにおける判定式による判定結果を組み合わせていく。各ルールは、開始ノードを開始点とするとともに、矢印の向きでたどることができる0、1又は複数の判定ノードのうちの任意の判定ノードを終了点とすることができる。吹き出し151c内に、有向グラフ151aから抽出される可能性のあるルールを示した。なお、ルールの抽出の際には、同じ判定ノードを2回以上含まないようにして、ルールの循環を避けている。例えば、
図7で鎖線で囲って示した、開始ノード1を開始点として、判定ノード4、判定ノード1、判定ノード3、判定ノード7、及び判定ノード1をたどるルールは、同じ判定ノード1を2回含むので、抽出することができない。
【0038】
次に
図8を用いて、抽出されたルールの概念図から、実際の論理式をどのように表現するかについて説明する。抽出されるルールの論理式は、“if X1 and X2 and X3 then Y”といった表現形式となる。このとき、Xiがある判定ノードiに対応づけられた番組の属性情報が、入力された番組情報に含まれていることを指す。Yは、判定ノードiのすべての判定式fiから得られる命令であり、“好き”か“嫌い”かの命令となる。ただし、このルールには、判定ノードiが持つ“判定式の信頼度に対応する所定のパラメータ”から算出されるパラメータである、ルールの信頼度パラメータが設定される。
【0039】
一例として、“放送局A”と“ドラマ”と“13時”が一つのルールとして接続されており、それぞれの判定ノード4、1及び3の判定式f4、f1及びf3を総合した結果が“好き”の確率が高かったルールを考える。例えば、判定式の総合判定を「(f4+f1+f3)の値が大きいほど“好き”の確率が高い」とする。この場合に、判定式f4、f1、f3がそれぞれ“−1”から“1”までの値を出力するものであって(ここでは“1”に近いほど“好き”の確率が高いとする)、例えば判定式f4、f1、f3がすべて“1”に近い値であったとする。このとき、「(f4+f1+f3)の値」が大きくなる(例えば所定の閾値より大きくなる)ので、ルールの命令は「“好き”」となる。この場合、開始ノード1と判定ノード4、1及び3から生成されるルールは、ある番組が“放送局A”で“ドラマ”で“13時”なら、“好き”であるという判定結果を返す論理式となる。また、ルールの信頼度パラメータは、各判定ノード4、1及び3の頻度情報n4a、n4b、n1a、n1b、n3a及びn3bから設定することができる。例えば、頻度(あるいはそれを全判定ノードの最大頻度で除した値)の積算値や最大値、最小値あるいは平均値が大きいほど、信頼度が大きくなるようにして、ルールの信頼度パラメータを算出する。
【0040】
また、他の例として、“映画”と“俳優B”が一つのルールとして接続されており、それぞれの判定ノード5及び6の判定式f5及びf6を総合した結果が“好き”の確率が高かったルールを考える。上記と同様に、判定式の総合判定を「(f5+f6)
の値が大きいほど“好き”の確率が高い」として、判定式f5、f6がそれぞれ“−1”から“1”までの値を出力するものであって(ここでは“1”に近いほど“好き”の確率が高い)、例えば判定式f5、f6がすべて“1”に近い値であったとすると、(f5+f6)が大きくなる(例えば所定の閾値より大きくなる)ので、ルールの命令は「“好き”」となる。この場合、開始ノード2と判定ノード5及び6から生成されるルールは、ある番組が“映画”で“俳優B”なら、“好き”であるという判定結果を返す論理式となる。また、このルールの信頼度パラメータは、各判定ノード5及び6の頻度情報n5a、n5b、n6a及びn6bから設定することができる。
【0041】
さらに、他の例として、“映画”と“特番”が一つのルールとして接続されており、それぞれの判定ノード5及び7の判定式f5及びf7を総合した結果が“嫌い”の確率が高かったルールを考える。上記と同様に、判定式の総合判定を「(f5+f7)の値が大きいほど“好き”の確率が高い」として、判定式f5、f7がそれぞれ“−1”から“1”までの値を出力するものである(ここでは“1”に近いほど“好き”の確率が高く、“−1”に近いほど“嫌い”の確率が高い)とする。この場合には、例えば判定式f5が“1”に近い値であったとしても、判定式f7が“−1”に近い値であった場合、(f5+f7)はあまり大きくならず(例えば所定の閾値より大きくならず)、ルールの命令は、“好き”の確率が低いとなる。ここでは“好き”の確率が低い場合を“嫌い”とすると、開始ノード3と判定ノード5及び7から生成されるルールは、ある番組が“映画”で“特番”なら、“嫌い”であるという判定結果を返す論理式となる。また、このルールの信頼度パラメータは、各判定ノード5及び7の頻度情報n5a、n5b、n7a及びn7bから設定することができる。
【0042】
次に、
図9から
図14を参照して、
図1に示した情報処理システム10の動作例について説明する。
図9は、情報処理システム10がユーザに対してユーザの嗜好にあった番組を推薦する際の処理の流れの一例を示したフローチャートである。また、
図10は、
図9に示したコンテンツ評価(ステップS103)における処理の流れの一例を説明するためのフローチャートである。
【0043】
情報処理システム10では、まず、嗜好モデル生成部150がトレーニング用の番組情報を用いて嗜好モデル151を生成する(ステップS101)。嗜好モデル生成部150は、例えば、トレーニング用の番組情報に含まれるすべての属性情報が、嗜好モデル151に含まれるように、開始ノードや判定ノードを有向グラフに適宜に追加する。また、追加した判定ノードに対応する判定ノード内容情報を作成する。有向グラフの生成の仕方については特に限定はない。本実施形態では、後述する遺伝的アルゴリズム、すなわち、淘汰処理や進化処理によって、ルールの取捨選択等が自動的に行われる。したがって有向グラフへのノードの追加は任意に行うことができる。
【0044】
次に、コンテンツ受信部110が、番組情報を受信する(ステップS102)。次に、コンテンツ評価部120と嗜好モデル生成部150とが協調して、コンテンツ受信部110が受信した1又は複数の番組情報を、評価対象の未知の番組情報として、ユーザの嗜好を推定するための処理である、コンテンツ評価処理を行う(ステップS103)。このコンテンツ評価処理の内容については後述する。
【0045】
次に、推薦結果表示選択部130が、コンテンツ評価部120が“好き”と評価した番組情報を、推薦結果として表示する(ステップS104)。ここで、ユーザが所定の操作を行った場合(ステップS105で「yes」の場合)、トレーニング情報設定部160が、ユーザの操作に応じて、推薦結果として表示された番組情報のうち、指定された番組情報に対して“好き”又は“嫌い”の設定を行って、その設定結果を指定された番組情報とともに所定の記憶部に一時的に記憶する(ステップS106)。
【0046】
次に、ユーザが、推薦結果として示されたいずれかのコンテンツを選択すると(ステップS107で「yes」の場合)、推薦結果表示選択部130がコンテンツ受信部110に対して選択されたコンテンツの受信と表示の指示を出力する(ステップS108)。次に、推薦結果表示選択部130が選択されたコンテンツの番組情報を、コンテンツ閲覧ログ生成部140に対して出力し、コンテンツ閲覧ログ生成部140が入力された番組情報を記録する(ステップS109)。
【0047】
次に、嗜好モデル生成部150が、ステップS106でトレーニング情報設定部160が記憶した番組情報や、ステップS109でコンテンツ閲覧ログ生成部140が記録した番組情報に基づいて、新規の属性情報に対応するノードを嗜好モデル151に対して追加したり、既存の判定ノードの出現頻度を更新したりする処理を行うことで、嗜好モデル151を更新する(ステップS110)。以降、例えば所定のタイミングで、ステップS102からの処理が再度実行される。
【0048】
次に、
図10を参照して、ステップS103でのコンテンツ評価処理について説明する。まず、コンテンツ評価部120が、
図7及び
図8を参照して上記で説明したようにして、嗜好モデル151から“好き”を命令とする(すなわち“好き”と判定する)ルールの集合と“嫌い”を命令とする(すなわち“嫌い”と判定する)ルールの集合とを抽出する(ステップS201)。その際、コンテンツ評価部120は、嗜好モデル151から新たに生成したルールと、そのルールを生成する際に使用したノードの組み合わせとを表す情報を、ルール生成に関する履歴情報として保持する。そして、コンテンツ評価部120は、この履歴情報にすでに記録されていたノードの組み合わせ以外のノードの組み合わせが検知された場合に、新たなルールを抽出する処理を行う。したがって、ここでは、すでに抽出済みのノードの組み合わせについては、ルールの生成は行われない。
【0049】
次に、コンテンツ評価部120は、トレーニング用番組情報を用いてルールに対して淘汰処理を実行する(ステップS202)。本実施形態では、
図7に示したような、有向グラフ151におけるすべてのノードの組み合わせについてルールの生成が可能であるとしている。そのため、生成したルールをすべて記憶していくとすると、大量のルールを保持することとなる。そこで、本実施形態では、次のような淘汰処理によって、進化計算の過程で大量に生成され続けるルールから、嗜好の推定において有効であるとはいえないルールを淘汰している。
【0050】
図11に淘汰処理の流れを模式図を用いて示した。本実施形態では、後述するステップS204において嗜好モデル151に対して遺伝的アルゴリズムで用いられているような進化処理を実行する。その進化処理の前後では嗜好モデル151が異なる世代のモデルである、と定義することができる。また、
図11に示したように、ある世代における嗜好モデル151から抽出されたルールの集合302は、“好き”という判定を下すルール群302aと“嫌い”という判定を下すルール群302bとにグループ化できる。コンテンツ評価部120は、これらのルールを集合として一定数保持しておく。このときコンテンツ評価部120は、以下の手順で、ルールの淘汰処理を実行する。
【0051】
(ステップS301)まず、コンテンツ評価部120は、トレーニング用の番組情報301を入力とすると、番組情報301を各ルールにあてはめることで、すべてのルールにおいて“好き”か“嫌い”かの判定結果を算出する。
【0052】
(ステップS302)次に、コンテンツ評価部120は、すべての判定結果を統計的に処理し(すなわち、例えば判定結果の合計値にもとづき)、その番組が“好き”か“嫌い”かの推薦結果303を最終的に決定する。このとき、各判定結果に対しては、そのルールの信頼度を掛け合わせることで、総合的な判定結果への影響度を正規化することができる。
【0053】
(ステップS303)次に、コンテンツ評価部120は、推薦結果303とトレーニング用の番組情報にあらかじめ付与されている正解値304を比較して、一致するルールを良いルール、一致しないルールを悪いルールとして順位付けしていく。
【0054】
以上の操作(ステップS301〜303)を多数のトレーニング用番組情報に対して繰り返すことにより、下位に順位付けされたルールを淘汰し、上位に順位付けされたルールだけを残していく。
【0055】
そして、コンテンツ評価部120は、このようなルールの淘汰処理(すなわちステップS202)を、ステップS204で実行する進化処理(あるいは進化計算)における世代交代処理を進めていく中で再帰的に進めることにより、高い推薦精度に寄与するルールだけを残すことができる。
【0056】
ステップS202で複数のトレーニング用番組情報を用いて淘汰処理を実行した後は、ステップS203で、コンテンツ評価部120が、新たに出現したルールの個数が所定の閾値以下であるか否かを判定する。ここで、ルールが新たに出現する場合とは、次のステップS204での進化処理を実行した場合に発生する現象である。また、進化計算と淘汰処理が十分に進むと、
図11に示されるような淘汰処理をしても、推薦に寄与する新たなルールがあまり出現しなくなる。本システムでは、新しく出現したルールの個数が所定の閾値を下回る場合、学習処理が終わったと判定して進化計算を終了する。この構成によれば、後述するステップS205での推定処理では、未知の番組情報を入力として、学習が終わったルール群によってユーザの嗜好を判定するため、高い精度が期待される。
【0057】
ステップS204における、本実施形態の遺伝的アルゴリズムを用いた進化計算では、一般的な遺伝的アルゴリズムと同様に交叉処理や突然変異処理が行われる。これらの交叉処理や突然変異処理は、嗜好モデル生成部150によって行うことができる。以下、この2つの処理について説明する。
【0058】
図12に示すように、本実施形態の交叉処理では、両親となる2つの有効グラフ(すなわち遺伝的アルゴリズムにおける遺伝子)について、次のノードへの接続情報を保持した同じ判定ノード同士が交換される。結果として、新しい有効グラフ(遺伝子)は、2つの遺伝子の有向グラフを組み合わせた新しいグラフ構造となる。
【0059】
また、
図13(a)、(b)に示すように、本実施形態の突然変異処理では、判定ノードの番号をランダムに変更するか、次の接続先を表すグラフの構成情報(
図3(b))をランダムに変更する。
【0060】
ステップS201〜S204では、ルールの集合の抽出と、淘汰処理及び進化処理を繰り返し実行することで、高い推薦精度に寄与するルールだけを残すことができる。そして、新しく出現したルールの個数が所定の閾値を下回る場合、ステップS203の判定結果が「no」となる。
【0061】
次に、ステップS205では、コンテンツ評価部120が、嗜好モデル151に基づいて生成された各ルールを、入力された番組情報に対してあてはめることでユーザの嗜好を推定する。すなわち、コンテンツ評価部120は、
図14に示したように、未知の番組情報401を、ステップS201〜S204で選択された“好き”と判定を下すルール群402aと“嫌い”と判定を下すルール群402bとを含むルールの集合402の各ルールにあてはめる(ステップS401)。次に、コンテンツ評価部120は、各ルールの判定結果を統計的に処理し、好き嫌いを判定し、推薦結果403(すなわち当該番組情報を推薦すべきか否かを示す情報)を決定する(ステップS402)。
【0062】
次に、
図10のステップS206では、コンテンツ評価部120が、コンテンツ評価処理を実行すべきすべての番組情報に対する評価が終了したか否かを判定する。評価すべき他の番組情報が残されている場合には、次の番組情報を対象としてステップS205の処理を再度実行する(ステップS206で「no」からステップS205)。評価すべき他の番組情報が残されていない場合には、処理を終了する(ステップS206で「yes」の場合)。
【0063】
以上のように、本実施形態によれば、各判定ノードに対応づけられた情報と、他の判定ノードに対応づけられた情報とに親子関係は必要としない。よって、嗜好モデルに対する判定ノードの追加や削除の処理を容易に行うことができる。また、本実施形態の嗜好モデルを生成したり、更新したりするための情報は、番組情報等のコンテンツ情報から取得することができるので、トラフィック量の増加や、オフライン環境での使用上の制約といった課題も生じない。
【0064】
また、本実施形態により、コンテンツに関するユーザの嗜好を数式の集合で表現できるようになり、これらの数式集合に未知のコンテンツを与えることで、好みを判定できるようになる。つまり、コンテンツに関するユーザの嗜好を数式としてモデル化できるため、結果の可視化性に優れている。
【0065】
また、本実施形態のコンテンツ推薦システムは、大量の入力情報からユーザの嗜好を表現するために必要な情報を自動的に抽出しルール化できるため、大規模なコンテンツデータでも良好な推薦精度が期待される。また、遺伝的アルゴリズムを用いたコンテンツ推薦システムは、完全なオフライン環境でも動作可能であるため、ネットワークなど外部環境に接続できない機器においても有用である。
【0066】
なお、本発明が特長とする点については例えば次のようにまとめることができる。本発明は、GNP(Genetic Network Programming;遺伝的ネットワークプログラミング)と呼ばれるノードをネットワーク状に接続することでプログラムを自動生成する計算手法の一つを用いたものである、ということができる。ここで、以下の特長1と特長2は、推薦システムにGNPアルゴリズムを適用する場合の独自の工夫点であり、特長3は推薦システム自体の背景とする技術との差異である。
【0067】
特長1:GNPアルゴリズムにおける各計算において、判定ノードに信頼度情報を入れた点。
GNPによる進化計算は複雑なルールを計算可能であるという利点のほかに、計算コストが膨大であるという欠点がある。したがってGNPアルゴリズムを推薦システムに応用するためには、大量の判定ノードから有意なルールを、効率よく探索する方法が重要となる。本発明では、信頼度情報の導入により、トレーニングデータ(すなわちトレーニング用番組情報)で多く出現している属性情報を含む判定ノードが優先的にルールの一部に採用されやすいように工夫している。この信頼度の導入により、ルールの収束時間が大幅に高まり、GNPアルゴリズムが推薦システムでも現実時間で駆動できるようになった。
【0068】
特長2:推薦処理においても、判定ノードの信頼度情報を使って、ルールの影響度に正規化を加えた点。
本発明のシステムにより採用されたルール群を用いて推薦処理をする場合、それらすべてのルールによる判定結果を集計して、“好き”と“嫌い”の判定結果の多数決により決める方法が考えられる。実際に、提案システムもこの方式を採用している。しかし、ルールによっては、トレーニングデータの情報とは全く関連がなくても、偶然うまく判別できただけのものもある。このようなルールは、未知の番組情報を推薦するときに判定処理を失敗する原因となりうる。この問題を回避するため、特長1において導入した信頼度情報を、ルールを用いた“好き”と“嫌い”の判別処理においても、利用できるように工夫した。信頼度情報は、トレーニングデータにおける属性情報の出現頻度を表す。したがって、信頼度をもとに算出されたルールの信頼度は、いかにトレーニングデータと相関があるかを表すことになる。推薦処理において、あるルールが与える影響力をルールの信頼性で正規化することで、より高い推薦精度が確認された。
【0069】
特長3:推薦システムにおいて、嗜好度(好き嫌い)の分解能が高い点。
GNPを用いた推薦システムそのものが、他の推薦システムと違って優位な点について述べる。その他の推薦システムで採用されているアルゴリズムの多くが、2クラス分類器であり、“好き”か“嫌い”にしか分類できない。それに比べ論理式で判定結果を出力する本手法は、Nクラスに分類できる。実際に本発明のシステムでは、“すごく好き”、”すごく嫌い”、“まあまあ好き”、“まあまあ嫌い”といった複数分類で結果を出力することができる。したがって、アプリケーションの要求によっては、“すごく好き”に加えて“まあまあ好き”といった意外性のある推薦結果を出力することができる。