(57)【要約】【課題】ベイジアンネットワーク構築時の設定項目数を低減する。【解決手段】推定機能提供サーバ１００は、ユーザの行動の推定論理としてのベイジアンネットワークにおいてノード対の各ノードＩＤと、２ノード間の条件付確率を示すペア条件付確率とをユーザＩＤ別に関連付けたユーザ情報を保持する初期ペア相関テーブル１１１と、初期ペア相関テーブル１１１において、所定ノード対に関して保持されたペア条件付確率の情報を有していないユーザがある場合に、そのペア条件付確率を推定し、算出されたペア条件付確率により初期ペア相関テーブル１１１を補完することで推定ペア相関テーブル１１３を生成する協調フィルタリング部１３０と、推定ペア相関テーブル１１３に格納されたペア条件付確率を用いてユーザＩＤ毎に条件付確率表を計算し、ユーザ別のベイジアンネットワークのグラフ構造を構築する確率グラフ構築手段１１４とを備える。【選択図】図１
2011048435.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ端末を使用するユーザの行動の推定論理としてのベイジアンネットワークを構築するユーザ行動推定装置であって、
前記ベイジアンネットワーク上において２つのノードからなるノード対の各ノードＩＤと、当該２つのノード間の条件付確率を示すペア条件付確率とをユーザＩＤ別に関連付けたユーザ情報を保持する初期ペア相関テーブルと、
前記初期ペア相関テーブルに格納された情報と、当該格納された情報を用いて補完された情報とを合わせて保持する推定ペア相関テーブルと、
前記初期ペア相関テーブルにおいて、前記ユーザ情報同士を比較し、所定のノード対に関して保持された前記ペア条件付確率の情報を有していないユーザがある場合に、当該ノード対に関して当該ユーザのペア条件付確率を、前記所定のノード対に対して保持された前記ペア条件付確率を用いて算出し、前記算出されたペア条件付確率により前記初期ペア相関テーブルを補完することで前記推定ペア相関テーブルを生成する協調フィルタリング手段と、
前記推定ペア相関テーブルに格納されたペア条件付確率を用いてユーザＩＤ毎に条件付確率表を計算し、ユーザ別の前記ベイジアンネットワークのグラフ構造を構築する確率グラフ構築手段と、
を備えることを特徴とするユーザ行動推定装置。
【請求項２】
前記ベイジアンネットワーク上において２つのノードからなるノード対の各ノードＩＤと、当該２つのノード間の条件付確率を示すペア条件付確率とを、前記ユーザ端末から受信し、前記初期ペア相関テーブルに格納するペア相関受信手段をさらに備えることを特徴とする請求項１に記載のユーザ行動推定装置。
【請求項３】
前記ベイジアンネットワークのノードの示す所定事象を観測するセンサ端末から、前記ユーザＩＤと、前記ベイジアンネットワーク上のノードのノードＩＤとを受信し、前記受信した各情報と、受信時刻とを対応づけたセンシング情報テーブルを生成する推定実施手段と、
前記センシング情報テーブルに保持される情報を用いて、前記ベイジアンネットワーク上において２つのノード間の条件付確率を示すペア条件付確率を推定し、前記推定したペア条件付確率を、前記初期ペア相関テーブルに格納するペア相関学習手段と、
をさらに備えることを特徴とする請求項１または請求項２に記載のユーザ行動推定装置。
【請求項４】
前記推定実施手段は、
前記センシング情報テーブルにユーザ別に保持された情報と、前記確率グラフ構築手段によって生成されたユーザ別のベイジアンネットワークのグラフ構造および条件付確率表とを用いて、前記ユーザ別のベイジアンネットワークにおいてユーザへ提供するサービスについての事象を示すノードに対応する確率値を推定し、前記サービスについて推定した結果を、当該サービスを提供可能な外部端末に通知することを特徴とする請求項３に記載のユーザ行動推定装置。
【請求項５】
前記協調フィルタリング手段は、
前記初期ペア相関テーブルの格納情報を前記ユーザＩＤ毎に整理し、統計的な手法により２人のユーザの相関を推定し、前記推定により得られた、２つの前記ユーザＩＤの組合せと、対応するユーザ間の相関とを保持するユーザ相関テーブルを作成するユーザ相関推定手段と、
前記初期ペア相関テーブルと、前記ユーザ相関テーブルとを参照し、所定のノード対に関して第１のユーザが前記ペア条件付確率の情報を有し、第２のユーザが前記ペア条件付確率の情報を有していない場合に、当該ノード対に関して第１のユーザから取得したペア条件付確率を、前記第１のユーザと前記第２のユーザとの相関で重みをつけ、前記第２のユーザのペア条件付確率を推定し、前記推定ペア相関テーブルを生成するペア相関推定手段と、
を備えることを特徴とする請求項１ないし請求項４のいずれか一項に記載のユーザ行動推定装置。
【請求項６】
前記ユーザ相関推定手段は、前記統計的な手法として、前記ノード対毎に、前記ペア条件付確率の平均値および標準偏差を計算し、前記計算結果を用いて、前記２人のユーザの相関を推定することを特徴とする請求項５に記載のユーザ行動推定装置。
【請求項７】
ユーザの行動の推定論理としてのベイジアンネットワークの構築支援を行う推定論理構築支援システムであって、
請求項２に記載のユーザ行動推定装置と、
前記ユーザ行動推定装置に対して前記ペア条件付確率を当該ノード対の各ノードＩＤと共に送信する前記ユーザ端末と、
を備えることを特徴とする推定論理構築支援システム。
【請求項８】
ユーザの行動の推定論理としてのベイジアンネットワークの構築支援を行うと共に、前記ユーザが求めるサービスを推定する推定論理構築支援システムであって、
請求項４に記載のユーザ行動推定装置と、
前記ユーザ行動推定装置に対して前記ペア条件付確率を当該ノード対の各ノードＩＤと共に送信する前記ユーザ端末と、
前記ユーザ行動推定装置に対して前記ノードＩＤおよび前記ユーザＩＤを送信する前記センサ端末と、
前記ユーザ行動推定装置から、ユーザへ提供するサービスについての事象を示すノードに対応する確率値の推定結果を受信し、当該ユーザに前記サービスとしてアプリケーションを提供するアプリサーバと、
を備えることを特徴とする推定論理構築支援システム。
【請求項９】
ユーザ端末を使用するユーザの行動の推定論理としてのベイジアンネットワークを構築するユーザ行動推定装置によるユーザ行動推定方法であって、
前記ユーザ行動推定装置は、
前記ベイジアンネットワーク上において２つのノードからなるノード対の各ノードＩＤと、当該２つのノード間の条件付確率を示すペア条件付確率とをユーザＩＤ別に関連付けたユーザ情報を保持する初期ペア相関テーブルと、
前記初期ペア相関テーブルに格納された情報と、当該格納された情報を用いて補完された情報とを合わせて保持する推定ペア相関テーブルとを含んで記憶する記憶手段と処理手段とを有し、前記処理手段により、
前記初期ペア相関テーブルにおいて、前記ユーザ情報同士を比較し、所定のノード対に関して保持された前記ペア条件付確率の情報を有していないユーザがある場合に、当該ノード対に関して当該ユーザのペア条件付確率を、前記所定のノード対に対して保持された前記ペア条件付確率を用いて算出し、前記算出されたペア条件付確率により前記初期ペア相関テーブルを補完することで前記推定ペア相関テーブルを生成するステップと、
前記推定ペア相関テーブルに格納されたペア条件付確率を用いてユーザＩＤ毎に条件付確率表を計算し、ユーザ別の前記ベイジアンネットワークのグラフ構造を構築するステップと、
を含んで実行することを特徴とするユーザ行動推定方法。
【請求項１０】
請求項１ないし請求項６のいずれか一項に記載のユーザ行動推定装置を構成する各手段としてコンピュータを機能させるためのユーザ行動推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベイジアンネットワークによりユーザの行動を推定する技術、および、そのベイジアンネットワークの構築支援を行う技術に関するものである。
【背景技術】
【０００２】
従来、ユーザが必要とするサービスを推定し、携帯電話の画面等へ提示することで、ユーザの行動支援を行うシステムが存在する。それらのシステムにおいては、ベイジアンネットワークを用いてユーザの嗜好や状況を推定することで、推定結果に応じて提示するサービスを更新しているものが多い。このようなシステムの一例として、特許文献１，２に、ベイジアンネットワークによる推定を行うシステムが開示されている。
【０００３】
特許文献１，２に記載の技術は、いずれも、センサネットワークから特異パターンを検出するシステムに関するものであり、この特異パターンに、ユーザの嗜好や状況を対応付けることでユーザの行動支援にも用いることができる。ここで、特異パターンは、センサネットワークに属するセンサから取得した観測値をベイジアンネットワークに集約すれば、容易に抽出することができる。このベイジアンネットワークは、センサネットワークから取得された観測値群を用いて機械的に学習するか、推定対象に関する専門家が手動で構築するかのいずれかの方法で作成される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２７９８８７号公報
【特許文献２】特開２００８−２６９２１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ユーザの行動に対応付けられるユーザの嗜好や状況等には、センサからの観測値等が同じであっても、ユーザ毎に推定すべき事象が異なるものが存在する。例えば、加速度センサから、ユーザの移動状況が「停止中」であるという観測値が得られた場合を想定する。あるユーザにとっては、移動する活動を行わないときに、例えば営業の仕事が「暇」になり、別のユーザにとっては、移動する活動を行わないときに、例えばデスクワークの仕事が「多忙」になる、といったことが実際には生じる。つまり、加速度センサから「停止中」であるという観測値が得られた場合、ユーザによっては「暇」や「多忙」等状況が異なる。
【０００６】
さらに、ユーザが例えば好きなことに時間を費やすことができるときに（暇な状況のときに）、どのようなサービスを求めるかということについては、ユーザの嗜好によって、当然異なる。例えば、暇なときに、あるユーザは「動画をみたい」という要求を感じ、別のユーザは「情報収集をしたい」という要求を感じる場合がある。よって、ユーザの状況や嗜好を推定するベイジアンネットワークは、ユーザ毎に作成する必要が生じる。
【０００７】
しかしながら、従来の技術では、いずれも、ベイジアンネットワークは、１）センサ観測値群を用いた学習か、２）推定対象に関する専門家がすべて手動で構築するか、により作成されるため、１）、２）のいずれの作成法も以下のような理由から、ベイジアンネットワークをユーザ毎に構築することが困難である。
【０００８】
１）ベイジアンネットワークは、ノード間のリンク構造と、因果関係の強度を表すパラメータの決定によって構築される。ノードは、ユーザ状況やセンシング情報等と対応している。リンクは、ノード間の直接的な因果関係を表している。ノード間のリンクやパラメータの項目に設定すべき候補の数は、ノードの数に対して組合せが爆発的に増加する。そのため、ベイジアンネットワークを、観測値からの学習によって構築するためには、膨大な数の観測値が必要になってしまう。その結果、ユーザ毎のベイジアンネットワーク構築を、学習によって実現することは困難である。
【０００９】
２）手動でベイジアンネットワークを構築する場合には、システム管理者等は、推定対象の専門知識によって、リンクやパラメータを効率的に決定することは可能である。しかし、ベイジアンネットワークをユーザ毎に構築する場合には、前記のように設定すべき項目が多いため、実現が困難である。
【００１０】
さらに、行動支援サービス等を受けるユーザ本人が、自らのベイジアンネットワークを構築しようとしても、前記のように、設定すべき項目が多いため、通常は、実現が困難である。そこで、協調フィルタリング技術の適用によってユーザ入力数を低減する試みが考えられる。この協調フィルタリング技術は、ユーザによる入力等を低減する代表的な手法であって、他ユーザの入力を用いて入力を補完する技術である。また、協調フィルタリング技術は、ユーザ入力を互いに比較して反映できる場合に適用することができる。
【００１１】
しかしながら、ベイジアンネットワークの設定項目は、リンクの選択と、その因果関係の強度を示すパラメータであり、リンク選択によってノード間に生じる構造に依存して設定項目や設定項目数は変動する。つまり、ユーザによって設定項目が異なってしまう。そのため、ベイジアンネットワークを構築しようとするときに、そのままでは、ユーザ入力を互いに比較して反映することができないため、協調フィルタリング技術を適用することができない。
【００１２】
そこで、本発明では、前記した問題を解決し、ベイジアンネットワークを構築するときの設定項目数を低減することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
前記目的を達成するために、本発明に係るユーザ行動推定装置は、ユーザ端末を使用するユーザの行動の推定論理としてのベイジアンネットワークを構築するユーザ行動推定装置であって、前記ベイジアンネットワーク上において２つのノードからなるノード対の各ノードＩＤと、当該２つのノード間の条件付確率を示すペア条件付確率とをユーザＩＤ別に関連付けたユーザ情報を保持する初期ペア相関テーブルと、前記初期ペア相関テーブルに格納された情報と、当該格納された情報を用いて補完された情報とを合わせて保持する推定ペア相関テーブルと、前記初期ペア相関テーブルにおいて、前記ユーザ情報同士を比較し、所定のノード対に関して保持された前記ペア条件付確率の情報を有していないユーザがある場合に、当該ノード対に関して当該ユーザのペア条件付確率を、前記所定のノード対に対して保持された前記ペア条件付確率を用いて算出し、前記算出されたペア条件付確率により前記初期ペア相関テーブルを補完することで前記推定ペア相関テーブルを生成する協調フィルタリング手段と、前記推定ペア相関テーブルに格納されたペア条件付確率を用いてユーザＩＤ毎に条件付確率表を計算し、ユーザ別の前記ベイジアンネットワークのグラフ構造を構築する確率グラフ構築手段と、を備えることを特徴とする。
【００１４】
また、前記目的を達成するために、本発明に係るユーザ行動推定方法は、ユーザ端末を使用するユーザの行動の推定論理としてのベイジアンネットワークを構築するユーザ行動推定装置によるユーザ行動推定方法であって、前記ユーザ行動推定装置が、前記ベイジアンネットワーク上において２つのノードからなるノード対の各ノードＩＤと、当該２つのノード間の条件付確率を示すペア条件付確率とをユーザＩＤ別に関連付けたユーザ情報を保持する初期ペア相関テーブルと、前記初期ペア相関テーブルに格納された情報と、当該格納された情報を用いて補完された情報とを合わせて保持する推定ペア相関テーブルとを含んで記憶する記憶手段と処理手段とを有し、前記処理手段により、前記初期ペア相関テーブルにおいて、前記ユーザ情報同士を比較し、所定のノード対に関して保持された前記ペア条件付確率の情報を有していないユーザがある場合に、当該ノード対に関して当該ユーザのペア条件付確率を、前記所定のノード対に対して保持された前記ペア条件付確率を用いて算出し、前記算出されたペア条件付確率により前記初期ペア相関テーブルを補完することで前記推定ペア相関テーブルを生成するステップと、前記推定ペア相関テーブルに格納されたペア条件付確率を用いてユーザＩＤ毎に条件付確率表を計算し、ユーザ別の前記ベイジアンネットワークのグラフ構造を構築するステップと、を含んで実行することを特徴とする。
【００１５】
かかる構成のユーザ行動推定装置、または、かかる手順のユーザ行動推定方法によれば、ユーザ行動推定装置は、入力初期状態としての初期ペア相関テーブルにおいて、ユーザ毎に２ノード間の条件付確率を示すペア条件付確率を保持し、これを補完して作成した推定ペア相関テーブルにおいて、２ノード毎に相互の条件付確率を保持した状態から、ユーザ毎のベイジアンネットワークを作り上げることができる。ここで、２ノード毎の相互の条件付確率は、全ユーザで共通的に使用可能な基盤データであるため、ユーザ毎に比較や反映が可能である。このユーザ行動推定装置は、２ノード毎の条件付確率を用いることで協調フィルタリング技術の適用を実現し、設定項目数を低減する。
【００１６】
また、本発明に係るユーザ行動推定装置は、前記ベイジアンネットワーク上において２つのノードからなるノード対の各ノードＩＤと、当該２つのノード間の条件付確率を示すペア条件付確率とを、前記ユーザ端末から受信し、前記初期ペア相関テーブルに格納するペア相関受信手段をさらに備えることが好ましい。
【００１７】
かかる構成によれば、ユーザ行動推定装置は、ペア相関受信手段によって、行動支援サービス等を受けるユーザ本人から、設定項目として、ノードＩＤとペア条件付確率とを受信する。したがって、ユーザ行動推定装置は、複数ユーザから受信した設定項目を互いに比較して反映することにより、ベイジアンネットワークの設定項目数を低減できる。
【００１８】
また、本発明に係るユーザ行動推定装置は、前記ベイジアンネットワークのノードの示す所定事象を観測するセンサ端末から、前記ユーザＩＤと、前記ベイジアンネットワーク上のノードのノードＩＤとを受信し、前記受信した各情報と、受信時刻とを対応づけたセンシング情報テーブルを生成する推定実施手段と、前記センシング情報テーブルに保持される情報を用いて、前記ベイジアンネットワーク上において２つのノード間の条件付確率を示すペア条件付確率を推定し、前記推定したペア条件付確率を、前記初期ペア相関テーブルに格納するペア相関学習手段と、をさらに備えることが好ましい。
【００１９】
かかる構成によれば、ユーザ行動推定装置は、推定実施手段によって、センサ端末から、設定項目として、ノードＩＤとユーザＩＤとを受信してセンシング情報テーブルとして保存する。これらの保存情報は、ユーザの嗜好や状況に対応付けられたセンシング結果である。そして、ユーザ行動推定装置は、ペア相関学習手段によって、センシング情報テーブルからペア条件付確率を推定し、初期ペア相関テーブルに格納する。したがって、ユーザ行動推定装置は、複数ユーザに対応した複数のセンサ端末から受信した設定項目を互いに比較して反映することにより、ベイジアンネットワークの設定項目数を低減できる。
【００２０】
また、本発明に係るユーザ行動推定装置は、前記推定実施手段を備える構成において、前記推定実施手段が、前記センシング情報テーブルにユーザ別に保持された情報と、前記確率グラフ構築手段によって生成されたユーザ別のベイジアンネットワークのグラフ構造および条件付確率表とを用いて、前記ユーザ別のベイジアンネットワークにおいてユーザへ提供するサービスについての事象を示すノードに対応する確率値を推定し、前記サービスについて推定した結果を、当該サービスを提供可能な外部端末に通知することが好ましい。
【００２１】
かかる構成によれば、ユーザ行動推定装置は、予めユーザ毎に作成したベイジアンネットワークに基づくユーザ行動の論理において、センシング情報テーブルにユーザ別に保持された情報を用いることでユーザの現在状況を決定し、ユーザが現在求めているであろうサービスを推定し、さらに推定結果を外部端末に通知する。これにより、当該ユーザは、外部端末から提供されるサービスを享受することができる。
【００２２】
また、本発明に係るユーザ行動推定装置は、前記協調フィルタリング手段が、前記初期ペア相関テーブルの格納情報を前記ユーザＩＤ毎に整理し、統計的な手法により２人のユーザの相関を推定し、前記推定により得られた、２つの前記ユーザＩＤの組合せと、対応するユーザ間の相関とを保持するユーザ相関テーブルを作成するユーザ相関推定手段と、前記初期ペア相関テーブルと、前記ユーザ相関テーブルとを参照し、所定のノード対に関して第１のユーザが前記ペア条件付確率の情報を有し、第２のユーザが前記ペア条件付確率の情報を有していない場合に、当該ノード対に関して第１のユーザから取得したペア条件付確率を、前記第１のユーザと前記第２のユーザとの相関で重みをつけ、前記第２のユーザのペア条件付確率を推定し、前記推定ペア相関テーブルを生成するペア相関推定手段と、を備えることが好ましい。
【００２３】
かかる構成によれば、ユーザ行動推定装置は、協調フィルタリング手段において、第１段階として、初期ペア相関テーブルの格納情報に基づいてユーザ相関テーブルを作成し、第２段階として、初期ペア相関テーブルとユーザ相関テーブルとを用いて、ペア条件付確率を補完するので、推定ペア相関テーブルを容易に生成することができる。
【００２４】
また、本発明に係るユーザ行動推定装置は、前記ユーザ相関推定手段を備える構成において、前記ユーザ相関推定手段が、前記統計的な手法として、前記ノード対毎に、前記ペア条件付確率の平均値および標準偏差を計算し、前記計算結果を用いて、前記２人のユーザの相関を推定することが好ましい。
【００２５】
かかる構成によれば、ユーザ行動推定装置は、初期ペア相関テーブルの情報を補完するためにユーザ相関テーブルを作成する際に、ノード対のペア条件付確率の平均値および標準偏差を用いるので、任意の２人のユーザの相関を正確に推定することができる。
【００２６】
また、前記目的を達成するために、本発明の第１の観点に係る推定論理構築支援システムは、ユーザの行動の推定論理としてのベイジアンネットワークの構築支援を行う推定論理構築支援システムであって、前記ペア相関受信手段を有するユーザ行動推定装置と、前記ユーザ行動推定装置に対して前記ペア条件付確率を当該ノード対の各ノードＩＤと共に送信する前記ユーザ端末と、を備えることを特徴とする。
【００２７】
かかる構成によれば、推定論理構築支援システムにおいて、ユーザ端末がペア条件付確率をノードＩＤと共にユーザ行動推定装置に送信し、ユーザ行動推定装置が受信したペア条件付確率やノードＩＤを初期ペア相関テーブルに格納することができる。したがって、推定論理構築支援システムは、複数ユーザが送信した設定項目を、ユーザ行動推定装置が互いに比較して反映すること、ベイジアンネットワークの設定項目数を低減することができる。
【００２８】
また、前記目的を達成するために、本発明の第２の観点に係る推定論理構築支援システムは、ユーザの行動の推定論理としてのベイジアンネットワークの構築支援を行うと共に、前記ユーザが求めるサービスを推定する推定論理構築支援システムであって、前記サービスについて推定する推定実施手段を有するユーザ行動推定装置と、前記ユーザ行動推定装置に対して前記ペア条件付確率を当該ノード対の各ノードＩＤと共に送信する前記ユーザ端末と、前記ユーザ行動推定装置に対して前記ノードＩＤおよび前記ユーザＩＤを送信する前記センサ端末と、前記ユーザ行動推定装置から、ユーザへ提供するサービスについての事象を示すノードに対応する確率値の推定結果を受信し、当該ユーザに前記サービスとしてアプリケーションを提供するアプリサーバと、を備えることを特徴とする。
【００２９】
かかる構成によれば、推定論理構築支援システムにおいて、ユーザ端末がペア条件付確率をノードＩＤと共にユーザ行動推定装置に送信し、また、センサ端末がノードＩＤおよびユーザＩＤをユーザ行動推定装置に送信する。そして、ユーザ行動推定装置は、ユーザ端末から受信したペア条件付確率やノードＩＤを初期ペア相関テーブルに格納し、センサ端末から受信したノードＩＤおよびユーザＩＤをセンシング情報テーブルに格納する。そして、ユーザ行動推定装置は、格納情報に基づいて、ユーザが現在どのようなサービスを求めているのか推定し、アプリサーバに通知する。したがって、推定論理構築支援システムは、ユーザの行動を推定することでユーザ毎のベイジアンネットワークを構築すると共に、ユーザが現在求めているサービスも推定することができる。
【００３０】
また、本発明に係るユーザ行動推定プログラムは、前記ユーザ行動推定装置を構成する各手段としてコンピュータを機能させるためのプログラムである。このように構成されることにより、このプログラムをインストールされたコンピュータは、このプログラムに基づいた各機能を実現することができる。
【発明の効果】
【００３１】
本発明によれば、ベイジアンネットワークの２ノード毎の条件付確率を用いることで協調フィルタリング技術の適用を実現し、ベイジアンネットワークの設定項目数を低減することができる。また、機械学習によってベイジアンネットワークを構築する場合においても、学習する構造が単純化するため、設定項目のサンプル数を低減することができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施形態に係る推定論理構築支援システムの構成を示す機能ブロック図である。
【図２】図１に示す推定機能提供サーバと同様な機能を有するアプリサーバを示すブロック図である。
【図３】複数のノードおよびそれらを用いたベイジアンネットワークの一例を示す図である。
【図４】図１に示す初期ペア相関テーブルの一例を示す図である。
【図５】図１に示す協調フィルタリング部の処理の流れを示すシーケンス図である。
【図６】図１に示すユーザ相関テーブルの一例を示す図である。
【図７】図１に示す推定ペア相関テーブルの一例を示す図である。
【図８】図１に示す確率グラフ構築手段の説明図であって、（ａ）は事前確率テーブル、（ｂ）は条件付確率テーブルの一例をそれぞれ示している。
【図９】図１に示す確率グラフデータベースの説明図であって、（ａ）はグラフ構造テーブル、（ｂ）は第１設定パラメータ、（ｃ）は第２設定パラメータの一例をそれぞれ示している。
【図１０】図１に示す確率グラフ構築手段がベイジアンネットワークを作成する際に行うリンクの選択方法を示すフローチャートである。
【図１１】図１に示す確率グラフ構築手段がベイジアンネットワークを作成する際に行うリンクの方向を決定する方法を示すフローチャートである。
【図１２】図１に示す確率グラフ構築手段が作成するＣＰＴの一例を示す図である。
【図１３】図１に示すセンシング情報テーブルの一例を示す図である。
【発明を実施するための形態】
【００３３】
図面を参照して本発明の推定論理構築支援システムおよび推定論理構築支援方法を実施するための形態（以下「実施形態」という）について詳細に説明する。
以下では、説明の都合上、１．推定論理構築支援システムの概要、２．推定機能提供サーバの構成、３．システム構成の他の例、４．推定論理構築支援方法の詳細の各章に分けて順次説明することとする。
【００３４】
［１．推定論理構築支援システムの概要］
図１に示すように、推定論理構築支援システム１は、移動体通信網やインターネット等の通信ネットワークにより接続された推定機能提供サーバ（ユーザ行動推定装置）１００と、ユーザ端末２００と、センサ端末３００と、アプリサーバ４００とを備えている。なお、各装置の台数は図示した台数に限定されるものではない。
【００３５】
推定機能提供サーバ１００は、ユーザ端末２００を使用するユーザの行動（ネットワーク利用行動）を支援するための推定論理としてのユーザ毎のベイジアンネットワークを構築するユーザ行動推定機能と、ユーザがどのようなサービスを求めているのか嗜好や状況を推定するサービス推定機能とを有している。
【００３６】
ユーザ端末２００は、サービスを享受するユーザが使用するものであり、例えば、ＧＰＳ（Global Positioning System）機能およびスケジューラを搭載し、インターネット等のネットワークに接続可能な携帯電話機等の情報携帯端末やパーソナルコンピュータ等から構成される。このユーザ端末２００は、「位置」や「スケジュール」等の各ユーザ端末２００に固有の情報（各ユーザ固有の情報）を、ベイジアンネットワークの各ノード対の条件付確率として推定機能提供サーバ１００に送信する。ここで、各ノード対間の条件付確率には、各ノードの事前確率と、２ノード間の条件付確率（以下、ペア条件付確率という）とを含む。
【００３７】
センサ端末３００は、例えば、ユーザ端末２００の「位置」や「スケジュール」を特定するセンサ機能を有した情報処理装置である。このセンサ端末３００は、ユーザＩＤやノードＩＤを推定機能提供サーバ１００に送信する。
ユーザＩＤは、例えば、ユーザ端末２００のＩＤやユーザの個人ＩＤである。
ノードＩＤは、ベイジアンネットワークのノードＩＤであり、「位置」を示す事象に対応したＩＤであれば、例えば、「自宅」や「勤務先」がこれに当たる。また、例えば、「スケジュール」を示す事象に対応したＩＤであれば、例えば、「休日」や「出勤日」がこれに当たる。さらに、「スケジュール」に関連した「サービス」を示す事象に対応したＩＤであれば、例えば、「動画をみたい」や「音楽をききたい」がこれに当たる。
【００３８】
アプリサーバ４００は、例えば、インターネット等のネットワーク上のアプリケーションサーバやWebサーバから構成される。アプリサーバ４００は、ユーザが享受するサービスとして、例えば、動画配信、音楽配信、ニュース配信、商品やサービスの販売情報の配信、あるいは、それら各種サービスの推薦情報を配信する。アプリサーバ４００は、推定機能提供サーバ１００から、ユーザが現在求めていると推定されるサービスについての情報を受信し、この受信情報に基づいて各種サービスの推薦情報を、該当するユーザ端末２００に配信する。
【００３９】
［２．推定機能提供サーバの構成］
推定機能提供サーバ１００は、ＣＰＵ（Central Processing Unit）等の演算装置と、メモリ等の記憶装置と、マウスやキーボード等の外部から情報の入力を検出する入力装置と、入力または出力される各種情報の送受信を行うインタフェース装置と、ＬＣＤ（Liquid Crystal Display）等の表示装置とを備えたコンピュータ、そして、このコンピュータにインストールされたプログラムから構成される。
【００４０】
図１に示すように、推定機能提供サーバ１００は、ハードウェア装置とソフトウェアとが協働することによって、前記したハードウェア資源がプログラムによって制御されることにより実現され、確率グラフ推定部１１０と、サービス推定部１２０とを備えている。
確率グラフ推定部１１０は、ユーザ行動推定機能として、ユーザ毎のベイジアンネットワークを生成し、そのリンク情報とＣＰＴ（Conditional Probability Table：条件付確率表）とをサービス推定部１２０へ受け渡すものである。
サービス推定部１２０は、サービス推定機能として、ユーザ毎に構築されたベイジアンネットワークを用いて当該ユーザが現在求めているサービスを推定するものである。
【００４１】
＜確率グラフ推定部＞
確率グラフ推定部１１０は、ユーザ端末２００から、「位置」や「スケジュール」等の各ユーザ端末２００に固有の情報を、ペア条件付確率として取得し、取得したペア条件付確率の相関を補完し、それらから、ユーザ毎のベイジアンネットワークを作成する。このために、確率グラフ推定部１１０は、初期ペア相関テーブル１１１と、ペア相関受信手段１１２と、推定ペア相関テーブル１１３と、確率グラフ構築手段１１４と、ペア相関学習手段１１５と、協調フィルタリング部（協調フィルタリング手段）１３０とを備える。
【００４２】
初期ペア相関テーブル１１１は、各ユーザ端末２００から取得したペア条件付確率（ユーザＩＤ、親ノードＩＤ、子ノードＩＤ、２ノード間の条件付確率の各情報）を格納したデータベースである（図４参照）。この初期ペア相関テーブル１１１の詳細については後記する。
【００４３】
ペア相関受信手段１１２は、ユーザ端末２００からノード対間の条件付確率を受信し、ユーザＩＤと対応付けて初期ペア相関テーブル１１１へ保存する。
【００４４】
推定ペア相関テーブル１１３は、初期ペア相関テーブル１１１の格納情報に加えて、協調フィルタリング部１３０の処理により補完された情報をさらに格納したデータベースである（図７参照）。この推定ペア相関テーブル１１３の詳細については後記する。
【００４５】
確率グラフ構築手段１１４は、推定ペア相関テーブル１１３内に格納された情報を用いて、ユーザ毎のベイジアンネットワークを作成し（図８〜図１２参照）、そのリンク情報とＣＰＴとをサービス推定部１２０に出力する。この確率グラフ構築手段１１４によるユーザ毎のベイジアンネットワークを作成する処理の詳細については後記する。
【００４６】
ペア相関学習手段１１５は、サービス推定部１２０に備える後記するセンシング情報テーブル１２２（図１３参照）に基づいて、初期ペア相関テーブル１１１の情報を補完するための情報を計算し、初期ペア相関テーブル１１１に追加保存する。このペア相関学習手段１１５は、センシング情報テーブル１２２内の情報を、単純な統計的手法等で集約し、初期ペア相関テーブル１１１に格納される条件付確率等の一部を自動生成する。なお、ペア相関受信手段１１２を用いずに、このペア相関学習手段１１５により、初期ペア相関テーブル１１１内の情報を全て生成することも可能である。
【００４７】
≪協調フィルタリング部≫
協調フィルタリング部１３０は、初期ペア相関テーブル１１１の情報をユーザＩＤ毎に整理し、それぞれ比較することで条件付確率を補完し、推定ペア相関テーブル１１３に保存するものであり、図１に示すように、ユーザ相関推定手段１３１と、ペア相関推定手段１３２と、ユーザ相関テーブル１３３とを備える。
【００４８】
ユーザ相関推定手段１３１は、初期ペア相関テーブル１１１の格納情報をユーザＩＤ毎に整理し、統計的な手法によりユーザ間の相関（以下、ユーザの相関という）を推定し、ユーザ相関テーブル１３３を作成するものである。
ペア相関推定手段１３２は、初期ペア相関テーブル１１１と、ユーザ相関テーブル１３３とを参照し、初期ペア相関テーブル１１１に格納されていないユーザの情報に関して、取得したペア条件付確率を、ユーザ相関で重みをつけつつ推定し、推定ペア相関テーブル１１３を作成するものである。
ユーザ相関テーブル１３３は、初期ペア相関テーブル１１１に格納されている任意の２人のユーザの相関を示すデータベースである（図６参照）。
なお、協調フィルタリング部１３０については、その処理の詳細を後記する。
【００４９】
＜サービス推定部＞
サービス推定部１２０は、図１に示すように、確率グラフデータベース１２１と、センシング情報テーブル１２２と、推定実施部（推定実施手段）１２３とを備える。
確率グラフデータベース１２１は、確率グラフ推定部１１０の確率グラフ構築手段１１４で生成したユーザ毎のベイジアンネットワークを格納するデータベースである。
センシング情報テーブル１２２は、センサ端末３００から受信したノードＩＤおよびユーザＩＤの情報を格納したデータベースである（図１３参照）。
【００５０】
推定実施部１２３は、センサ端末３００から、ノードＩＤとユーザＩＤとを受信し、受信時刻と共にセンシング情報テーブル１２２に保存する。なお、図１３には受信時刻の図示を省略した。推定実施部１２３は、センシング情報テーブル１２２内の情報が更新されると、確率グラフデータベース１２１に既に格納しているユーザ毎のベイジアンネットワークを用いて、センサ端末３００から現在値が得られていないノードの生起確率を後記するように推定する。推定実施部１２３は、推定値を、必要に応じて、アプリサーバ４００へ提供する。
【００５１】
［３．システム構成の他の例］
簡便のため、図１に示す推定論理構築支援システム１は、ユーザ端末２００と、センサ端末３００と、アプリサーバ４００とが存在するネットワーク環境に、さらに推定機能提供サーバ１００を設けるものとして説明したが、本発明はこれに限定されるものではない。実際の運用においては、例えば、推定機能提供サーバ１００と同様な機能を他の装置が兼用するようにしてもよい。
【００５２】
図２に示す推定論理構築支援システムの構成は、１つのアプリサーバ４００が、確率グラフ推定部１１０と、サービス推定部１２０とを備えている。このように構成することで、この特別なアプリサーバ４００は、当該アプリサーバ４００を、確率グラフ推定部１１０と、サービス推定部１２０との各部として機能させるためのプログラムをインストールされることにより、本来のアプリサーバとしての機能と共に、推定機能提供サーバ１００の機能をも実行することができる。なお、以下では、説明の簡略化のため、図１に示す推定論理構築支援システム１を想定し、特に、ユーザ端末２００やアプリサーバ４００がそれらの機能だけを果たす単一の装置である場合について説明する。
【００５３】
［４．推定論理構築支援方法の詳細］
この章では、推定論理構築支援方法として、推定機能提供サーバ１００の各部の詳細な処理について、４−１．事前設定、４−２．ペア条件付確率の取得、４−３．協調フィルタリングの動作、４−４．ベイジアンネットワークの構築、４−５．サービス推定の各節に分けて、図１を適宜参照しながら具体的に説明する。
【００５４】
＜４−１．事前設定＞
推定機能提供サーバ１００では、事前設定として、ベイジアンネットワークのノードが定義される。ベイジアンネットワークのノードの一例を図３に示す。図３に示すように、例えば、８個のノード３０１,３０２，３０３，３０４，３０５，３０６，３０７，３０８を定義する。なお、図３には、各ノード間に、既に、７本のリンク３１１,３１２，３１３，３１４，３１５，３１６，３１７が構成されているが、この節においては、リンクを決定する前のノードだけについて説明する。
【００５５】
ここで、図３の各ノードは、ラベリングされた対応事象の生起／非生起の２値をとるものとする。また、これらのノードには、ノードを識別するＩＤ（ノードＩＤ）が付与されており、本実施形態においては、ノードＩＤは、対応事象そのものであるとする。例えば、ノード３０１には、「音楽をききたい」という事象がラベリングされている。この「音楽をききたい」がノードＩＤそのものであるとする。また、「音楽をききたい」という事象が生起することを「音楽をききたい＝１」で表す。同様に、「音楽をききたい」という事象の非生起、つまり、「音楽をききたくない」という事象が生起することを「音楽をききたい＝０」で表す。
【００５６】
＜４−２．ペア条件付確率の取得＞
次に、ペア相関受信手段１１２が、行動支援サービスを受けるユーザに公開される。具体的には、ユーザ端末２００に入力用の表示画面が提示される。これにより、複数のユーザが、異なるユーザ端末２００から、２ノード間の条件付確率（ペア条件付確率）を入力し、推定機能提供サーバ１００に送信する。ここで、ペア条件付確率は、原因ノードのＩＤ（親ノードのＩＤ）と、結果ノードのＩＤ（子ノードのＩＤ）と、それらの間の条件確率とを含む。
【００５７】
この際に、ユーザ端末２００がこのペア条件付確率を送信するためだけに送信処理を行うような明らかな送信（明示的な送信；ユーザの送信操作あり）を行うのか、あるいは、このペア条件付確率を送信するという訳ではなくなんらかの理由によって事前にユーザ端末２００が推定機能提供サーバ１００にログインしていてその処理の中で付加的な処理としてペア条件付確率の送信（暗示的な送信；ユーザの送信操作なし）を行うのかについては問わない。推定機能提供サーバ１００では、ペア条件付確率を送信したユーザ端末２００と対応するユーザのＩＤが得られているものとする。
【００５８】
そして、ペア条件付確率とユーザＩＤとの情報が、図４のように、初期ペア相関テーブル１１１に保持される。図４に示す初期ペア相関テーブル１１１では、一例として、符号３２１〜３２８で示す各行に情報が格納されている。例えば、符号３２１で示す行は、ユーザＩＤ＝「Ｕ１」、親ノードＩＤ＝「自宅」、子ノードＩＤ＝「動画をみたい」、条件付確率＝「０．６」の各情報を示している。つまり、ユーザＩＤ＝「Ｕ１」のユーザ（以下、単にユーザＵ１という）についてのペア条件付確率ｐ（動画をみたい｜自宅）は、次のように表される。なお、図面（テーブル）における記載順とは反対に、確率ｐの記号「｜」の左側に子ノード、右側に親ノードが配置される。
ｐ（動画をみたい｜自宅）＝０．６
【００５９】
これは、生起／非生起を区別するときに、次のようにそれぞれ表すこともできる。
ｐ（動画をみたい＝１｜自宅）＝０．６
ｐ（動画をみたい＝０｜自宅）＝０．４
【００６０】
なお、図４に示すユーザＩＤ「Ｕ２」、「Ｕ３」、「Ｕ４」のユーザ（ユーザＵ２、ユーザＵ３、ユーザＵ４）についても同様に表すことができる。この図４に示す初期ペア相関テーブル１１１は、他の処理の説明にて再び参照することとする。
【００６１】
＜４−３．協調フィルタリングの動作＞
推定機能提供サーバ１００は、受信して初期ペア相関テーブル１１１に保持したペア条件付確率を協調フィルタリングによって補完する。この処理は、協調フィルタリング部１３０によって、図５のシーケンスの流れにて実行する。
【００６２】
図５に示すように、協調フィルタリング部１３０のユーザ相関推定手段１３１は、初期ペア相関テーブル１１１の情報（ペア条件付確率）を参照し（ステップＳ１）、ペア条件付確率を抽出する（ステップＳ２）。ここで、ユーザ相関推定手段１３１は、複数ユーザに条件付確率が入力されている親ノード・子ノードと、その値を抽出する（ステップＳ３）。そして、ユーザ相関推定手段１３１は、各親ノード・子ノードペアについて、その条件付確率の平均・標準偏差を計算する（ステップＳ４）。さらに、ユーザ相関推定手段１３１は、ユーザ間で条件付確率を比較し、ユーザの相関を計算し（ステップＳ５）、ユーザの相関をユーザ相関テーブル１３３として保存する（ステップＳ６）。
【００６３】
具体的には、図４に示す初期ペア相関テーブル１１１の場合には、符号３２５〜３２８で示す各行は、ユーザＵ１、ユーザＵ２、ユーザＵ３、ユーザＵ４について、親ノードＩＤ＝「自宅」、子ノードＩＤ＝「勤務日」に関するペア条件付確率が共通に設定されている。これら４ユーザについてのペア条件付確率の値の平均値は「０．５」、標準偏差は「０．１」である。ここでは、他に共通的なペア条件付確率がないものとして、平均値および標準偏差の値から、ユーザの相関を計算する。
【００６４】
例えば、ユーザＵ１と他ユーザとの相関を計算すると、図６に示すユーザ相関テーブル１３３が得られる。図６において、符号３３１で示す行は、ユーザＵ１とユーザＵ２との相関が「１」であることを示す。また、符号３３２で示す行は、ユーザＵ１とユーザＵ３との相関が「−１」であることを示す。同様に、符号３３３で示す行は、ユーザＵ１とユーザＵ４との相関が「−１」であることを示す。なお、共通的なペア条件付確率が複数存在する場合には、それぞれ同様に計算した上で、それらの直積空間で内積をとる等すれば相関が得られる。
【００６５】
図５に戻って説明を続ける。
協調フィルタリング部１３０のペア相関推定手段１３２は、ユーザ相関テーブル１３３に保持されたユーザ相関を参照し（ステップＳ７）、ユーザ相関を取得する（ステップＳ８）。また、ペア相関推定手段１３２は、初期ペア相関テーブル１１１に格納されたペア条件付確率を参照し（ステップＳ９）、ペア条件付確率を取得する（ステップＳ１０）。そして、ペア相関推定手段１３２は、ユーザ相関テーブル１３３に保持されたユーザ間の相関を用いて、初期ペア相関テーブル１１１内の情報を補完し、ユーザ相関で重みをつけつつ、取得したペア条件付確率の平均を計算し、推定値とする（ステップＳ１１）。そして、ペア相関推定手段１３２は、取得・推定したペア条件付確率を推定ペア相関テーブル１１３として保存する（ステップＳ１２）。
【００６６】
ペア相関推定手段１３２は、補完時には、推定対象のユーザが入力していないペア条件付確率について、他ユーザのペア条件付確率の相関による重みつき平均値Ｖを式（１）により計算・設定する。式（１）において、ｗiは重み、ｐiはペア条件付確率を示す。
【００６７】
【数１】
2011048435.tif 000003
【００６８】
具体的には、図４に示す初期ペア相関テーブル１１１と、図６に示すユーザ相関テーブル１３３とを用いる場合には、ペア相関推定手段１３２は、次のように推定処理を行う。図４に符号３２３で示す行には、ユーザＵ２に関して、親ノードと子ノードのペアで示す条件付確率（「勤務日」から「動画をみたい」までの条件付確率）が格納され、符号３２４で示す行には、ユーザＵ２に関して、同様に、「動画をみたい」から「勤務日」までの条件付確率が格納されている。ところが、図４に示す初期ペア相関テーブル１１１には、ユーザＵ１については同様の場合の条件付確率が入力されていない。一方、図６に符号３３１で示すように、ユーザＵ１とユーザＵ２との相関は「１」であるので、ペア相関推定手段１３２は、図４に符号３２３，３２４でそれぞれ示す行の情報（ユーザＵ２について入力されている情報）をそのままユーザＵ１に反映して推定ペア相関テーブル１１３を作成する。
【００６９】
そのため、図７に示す推定ペア相関テーブル１１３においては、符号３４３，３４４でそれぞれ示す行に、ユーザＵ１に関して、「勤務日」から「動画をみたい」までの条件付確率と、「動画をみたい」から「勤務日」までの条件付確率がそれぞれ格納されることになる。
【００７０】
また、例えば、図４に符号３２１で示す行には、ユーザＵ１に関して、「自宅」から「動画をみたい」までの条件付確率が格納され、符号３２２で示す行には、ユーザＵ１に関して、「動画をみたい」から「自宅」までの条件付確率が格納されている。ところが、図４に示す初期ペア相関テーブル１１１には、ユーザＵ２については同様の場合の条件付確率が入力されていない。この場合も同様に補完することで、図７に符号３４７，３４８でそれぞれ示す行に、ユーザＵ２に関して、「自宅」から「動画をみたい」までの条件付確率と、「動画をみたい」から「自宅」までの条件付確率がそれぞれ格納されることになる。
【００７１】
図７において、符号３４１，３４２，３４５，３４６でそれぞれ示す行の情報は、図４に符号３２１，３２２，３２６，３２５でそれぞれ示す行の情報の格納位置を入れ替えただけで同じものである。なお、符号３４５で示す行の情報を親ノードと子ノードとを入れ替えた情報については、格納されていない。しかしながら、例えば、図４に示す初期ペア相関テーブル１１１にて、ユーザＵ１以外のユーザが同様のデータを投入しており、そのユーザとユーザＵ１との相関が計算できれば、推定することは可能である。
【００７２】
＜４−４．ベイジアンネットワークの構築＞
以下では、説明の都合上、ユーザが１人（ユーザＵ１）であるものとして説明する。
また、この節は、次のように６つの段階に細分化して説明する。すなわち、４−４−１．条件付確率の完成、４−４−２．グラフ構造と相互情報量、４−４−３．グラフ構造とリンクの選択、４−４−４．グラフ構造とリンクの方向、４−４−５．ＣＰＴの作成、４−４−６．構築グラフの設定パラメータの小節について順次説明することとする。
【００７３】
≪４−４−１．条件付確率の完成≫
ここでは、事前設定等によって、ベイジアンネットワークの一部のノードに対し、図８（ａ）に示す事前確率テーブル１１４１が得られているものとする。この事前確率テーブル１１４１は、ユーザＩＤと、ノード（他のテーブルの表記と同様にノードＩＤを意味する）と、事前確率とを対応付けたものであって、必ずしもベイジアンネットワークのすべてのノードに関して事前に作成されている必要はない。図８（ａ）に示す例では、符号３５１で示す行は、ユーザＵ１について、ノードＩＤ＝「動画をみたい」についての事前確率が「０．１」であることを示している。また、符号３５２で示す行は、ユーザＵ１について、ノードＩＤ＝「勤務日」についての事前確率が「０．４」であることを示している。また、この場合、ユーザＵ１について、例えば、ノードＩＤ＝「自宅」についての事前確率は設定されていないが、ベイズの定理により、その事前確率が「０．１５」であることが推定可能である。
【００７４】
図１に示す確率グラフ構築手段１１４は、図８（ａ）に示す事前確率テーブル１１４１と、協調フィルタリング部１３０の処理結果である推定ペア相関テーブル１１３の情報とを用いて、ベイズの定理を適用することで、２ノード間の条件付確率（ペア条件付確率）をすべて計算し、計算処理の結果、図８（ｂ）に示す条件付確立テーブル１１４２を作成する。この条件付確立テーブル１１４２において、親ノード値の項目は、親ノード値が「１」の場合に、親ノードの対応事象が生起していることを示し、親ノード値が「０」の場合に、親ノードの対応事象が非生起であることを示す。
【００７５】
図８（ｂ）に示す条件付確立テーブル１１４２において、符号３６１で示す行の確率（条件付確率）は、図７に符号３４５で示す行と同様なものである。
図８（ｂ）に示す条件付確立テーブル１１４２において、符号３６２で示す行の確率（条件付確率）は、前記したようにユーザＵ１について、ノードＩＤ＝「自宅」について推定した事前確率の情報「０．１５」と、図７に符号３４５で示す情報と、図８（ａ）に符号３５２で示す情報とを用いて、ベイズの定理により推定できる。
【００７６】
図８（ｂ）に示す条件付確立テーブル１１４２において、符号３６３で示す行の確率（条件付確率）は、親ノード値＝０であることを考慮した上で、ユーザＵ１のノードＩＤ＝「自宅」について推定した事前確率の情報「０．１５」と、図７に符号３４１で示す情報と、図８（ａ）に符号３５１で示す情報とを用いて、ベイズの定理により推定できる。
【００７７】
図８（ｂ）に示す条件付確立テーブル１１４２において、符号３６４で示す行の確率（条件付確率）は、親ノード値＝０であることを考慮した上で、ユーザＵ１のノードＩＤ＝「自宅」について推定した事前確率の情報「０．１５」と、図７に符号３４３で示す情報と、図８（ａ）に符号３５１で示す情報とを用いて、ベイズの定理により推定できる。
【００７８】
≪４−４−２．グラフ構造と相互情報量≫
図１に示す確率グラフ構築手段１１４は、以下に示すように、ベイジアンネットワークを求め、そのグラフ構造と関連パラメータとを、確率グラフデータベース１２１に保持する。確率グラフデータベース１２１に格納されるベイジアンネットワークのグラフ構造の一例として、図９（ａ）にグラフ構造テーブル１２１１を示す。このグラフ構造テーブル１２１１において、符号３７１〜３７４に示す行は、原因ノード（親ノード）と、結果ノード（子ノード）との２ノードのペアをそれぞれ示している。なお、図９（ｂ）および図９（ｃ）に示すように設定される関連パラメータについての説明は後記する。
【００７９】
確率グラフ構築手段１１４は、各ノード対に対して、式（２）に示す相互情報量Ｉ（Ｘ，Ｙ）を利用して、ベイジアンネットワークを作成する。
【００８０】
【数２】
2011048435.tif 000004
【００８１】
例えば、図７、図８（ａ）、図８（ｂ）に示すデータから、Ｘ＝（対応事象「自宅」が生成する確率）と、Ｙ＝（対応事象「勤務日」が生成する確率）との相関を求めると、式（２）の対数関数の真数の部分が常に“１”なので、式（２）に示す相互情報量Ｉ（Ｘ，Ｙ）は“０”となる。言い換えると、この場合、対応事象「自宅」と対応事象「勤務日」との間に相関がないことを示す。
【００８２】
同様に、図７、図８（ａ）、図８（ｂ）に示すデータから、離散確率変数Ｘ，Ｙをそれぞれの対応事象に置き換えて、式（２）に示す相互情報量をそれぞれ計算したデータにより、図１０に示すように、公知のＭＷＳＴ法（Maximum Weight Spanning Tree法）を用いて、ノード間のリンクの選択を行うことができる。
【００８３】
≪４−４−３．グラフ構造とリンクの選択≫
確率グラフ構築手段１１４は、図１０に示すように、対象とするユーザのベイジアンネットワークにおいて、全リンクが未選択であって、全リンクが選択候補である状態から処理をスタートする（ステップＳ２１）。この確率グラフ構築手段１１４は、前記した式（２）を用いて、各ノード対の相互情報量Ｉ（Ｘ，Ｙ）を取得する（ステップＳ２２）。これら取得した各相互情報量Ｉ（Ｘ，Ｙ）は、図示しない相互情報量リストに格納される。
【００８４】
そして、確率グラフ構築手段１１４は、この図示しない相互情報量リスト中の相互情報量をソーティングする（ステップＳ２３）。つまり、すべての相互情報量をその値に応じて大きい順（または小さい順）に並び替えて、以降の処理に用いるために、各ノード対のＩＤと対応付けて、相互情報量の値を格納した不図示の候補リストを作成する。なお、この候補リストは、処理過程において仮選択した候補のリンクを一時記憶するためのものであり、仮ではなく選択（本選択）されたリンクについては、図示しないリンクリストに格納される。このリンクリスト中の各リンクは、向きが確定していないため、このリンクリストのことを無向リンクリストと呼ぶ。
【００８５】
そして、確率グラフ構築手段１１４は、現在の候補リスト内において、相互情報量が“０”ではなく（non0）かつ最大である候補を仮選択する。そして、この仮選択した候補を、現在の候補リストから削除して候補リストを更新する（ステップＳ２４）。
【００８６】
確率グラフ構築手段１１４は、更新した候補リストにおいて、まだ候補は存在するか否かを判別し（ステップＳ２５）、候補が存在しなければ（ステップＳ２５：Ｎｏ）、処理を終了する。一方、候補が存在する場合（ステップＳ２５：Ｙｅｓ）、確率グラフ構築手段１１４は、前記したステップＳ２４で仮選択したリンク（仮選択リンク）と、これまでに選択済みであるリンク（選択リンク）との間で、グラフに無向ループが生じるか否かを判別する（ステップＳ２６）。グラフに無向ループが生じる場合（ステップＳ２６：Ｙｅｓ）、確率グラフ構築手段１１４は、その仮選択リンクについての選択を解除し（ステップＳ２７）、ステップＳ２４に戻る。
【００８７】
一方、ステップＳ２６において、グラフに無向ループが生じなければ（ステップＳ２６：Ｎｏ）、確率グラフ構築手段１１４は、現在までの選択リンク数に「１」を加算し（ステップＳ２８）、更新後の選択リンクの個数が、対象とする全ノード数よりも「１」だけ少ない個数であるという条件（選択リンク数＝ノード数−１）を満足しているか否かを判別する（ステップＳ２９）。この条件を満足した場合（ステップＳ２９：Ｙｅｓ）、確率グラフ構築手段１１４は、処理を終了する。一方、この条件を満たさない場合には（ステップＳ２９：Ｎｏ）、確率グラフ構築手段１１４は、仮選択リンクを、あらためて選択リンクに設定し（ステップＳ３０）、ステップＳ２４に戻る。
【００８８】
このリンク選択処理により、確率グラフ構築手段１１４は、例えば、図３に示す各リンク３１１,３１２，３１３，３１４，３１５，３１６，３１７を選択する。つまり、ユーザＵ１については、結果として、例えば、ノード３０３（対応事象「自宅」）とノード３０７（対応事象「動画をみたい」）との相関が高いことから、そのことを反映したリンク３１５が選択される。同様に、ノード３０５（対応事象「勤務日」）とノード３０７（対応事象「動画をみたい」）との相関が高いことから、そのことを反映したリンク３１６が選択される。同様に他のリンクについても相関の高さが反映されて選択された。なお、図３に示す各リンク３１１〜３１７の情報（両端のノードの情報）は、無向リンクリストに格納されている。
【００８９】
≪４−４−４．グラフ構造とリンクの方向≫
次に、確率グラフ構築手段１１４は、各ノード対の相関を用いて、無向リンクリストを参照してリンクの方向を決定するため、概略、次のような処理をする。まず、隣接する複数のノードとの間にリンクをもつノードを抽出し、抽出したそれぞれのノードについて、隣接ノード間の相関をみて、その中から相関が“０”であるノードから成るノードグループを作成する。具体的には、図３に示すノード３０７（対応事象「動画をみたい」）は、ノード３０３（対応事象「自宅」）と、ノード３０５（対応事象「勤務日」）との双方に接続されている。さらに、ノード３０３（対応事象「自宅」）と、ノード３０５（対応事象「勤務日」）との相関は“０”である。そのため、リンク３１５は、ノード３０３（対応事象「自宅」）からノード３０７（対応事象「動画をみたい」）へ向いたリンクとなる。同様に、リンク３１６は、ノード３０５（対応事象「勤務日」）からノード３０７（対応事象「動画をみたい」）へ向いたリンクとなる。
【００９０】
次に、確率グラフ構築手段１１４が行う方向選択の流れの一般的なフローチャートを図１１に示す。なお、確率グラフ構築手段１１４がリンク方向を選択する手順は、従来公知の方法を適用したものである。まず、確率グラフ構築手段１１４は、リンク選択処理で作成した図示しない無向リンクリスト、相互情報量リストを取得する（ステップＳ４１）。そして、確率グラフ構築手段１１４は、ノード毎に当該ノードが隣接しているノードが複数存在するか否かを判別し、この判別結果により、複数ノードと隣接するノードについてのリスト（方向選択処理用リスト）を新たに作成し（ステップＳ４２）、この処理の中で、初期状態として全リンクの方向を未定とする（ステップＳ４３）。
【００９１】
次いで、確率グラフ構築手段１１４は、複数ノードと隣接するノード毎に（方向選択処理用リスト中のノード毎に）、以下のステップＳ４４１，Ｓ４４２の処理を繰り返す（ステップＳ４４）。このステップＳ４４の繰り返し処理で繰り返しの対象とする各ノードは、複数の隣接ノード間の中心に位置していることから中心ノードと呼ぶ。
【００９２】
まず、ステップＳ４４１では、確率グラフ構築手段１１４は、中心ノードとその隣接ノードとの間で相関が“０”となるような隣接ノードを、複数の隣接ノードの中から抽出する。ステップＳ４４１で抽出された隣接ノードのことを抽出ノードと呼ぶ。
ステップＳ４４２では、確率グラフ構築手段１１４は、抽出ノードと中心ノードとの間のリンク方向を、抽出ノードから、繰り返しの中心ノード向きであるものと決定する。
【００９３】
そして、この方向選択処理用リスト中のノード毎の繰り返し処理がすべて終了した後に、確率グラフ構築手段１１４は、方向選択処理用リスト中の全リンクの方向が決定したか否かを判別する（ステップＳ４５）。方向が決定していないリンクが残っている場合（ステップＳ４５：Ｎｏ）、確率グラフ構築手段１１４は、その方向未決定のリンクを抽出する（ステップＳ４６）。そして、確率グラフ構築手段１１４は、ステップＳ４６で抽出された抽出リンクと接続されるノードの中で、自ら向き（当該ノード向き）のリンクの個数が最大であるノードを抽出する（ステップＳ４７）。
【００９４】
続いて、確率グラフ構築手段１１４は、ステップＳ４７で抽出された抽出ノードと接続されるリンクについて、この抽出ノードを当該リンクのソース（矢印の始点側）に決定する（ステップＳ４８）。つまり、確率グラフ構築手段１１４は、ステップＳ４８にて、当該リンクの方向を決定し、この決定されたリンク方向を反映して、方向選択処理用リストを更新する。そして、ステップＳ４８に続いて、確率グラフ構築手段１１４は、ステップＳ４５に戻る。また、ステップＳ４５において、全リンクの方向が決定した場合（ステップＳ４５：Ｙｅｓ）、確率グラフ構築手段１１４は、処理を終了する。
【００９５】
≪４−４−５．ＣＰＴの作成≫
確率グラフ構築手段１１４は、ベイジアンネットワーク構築の最後の段階として、条件付確率表（ＣＰＴ）を作成する。確率グラフ構築手段１１４は、ＣＰＴの作成に際して、単純ベイズ法（Naive Bayes：ＮＢ）の考え方を適用した、以下のような手法を用いる。ここでは、具体的に、図３に示したユーザＵ１についてのノード３０７（対応事象「動画をみたい」）を子ノードとし、ノード３０３（対応事象「自宅」）とノード３０５（対応事象「勤務日」）とを親ノードとするＣＰＴについて例示する。また、以下では、各ノードをノードＩＤで示す。
【００９６】
ＮＢと同様に、「自宅」と「勤務日」とが、「動画をみたい」に関して条件付独立であると仮定すると、確率ｐ（動画をみたい＝１，自宅，勤務日）は、式（３）に示すように計算され、また、確率ｐ（動画をみたい＝０，自宅，勤務日）は、式（４）に示すように計算される。
【００９７】
ｐ（動画をみたい＝１，自宅，勤務日）
＝ｐ（動画をみたい＝１）
×ｐ（自宅｜動画をみたい＝１）
×ｐ（勤務日｜動画をみたい＝１）
＝０．１×０．９×０．６＝０．０５４    …  式（３）
【００９８】
ｐ（動画をみたい＝０，自宅，勤務日）
＝ｐ（動画をみたい＝０）
×ｐ（自宅｜動画をみたい＝０）
×ｐ（勤務日｜動画をみたい＝０）
＝０．９×（1/15）×（1/3）＝０．０２    …  式（４）
【００９９】
なお、式（３）の計算結果は、図８（ａ）に符号３５１で示す情報を用いると共に、図７に符号３４２，３４４で示す情報が図８（ｂ）に格納された後の条件付確率テーブルとを用いることで求められる。また、式（４）において、確率ｐ（自宅｜動画をみたい＝０）や確率ｐ（勤務日｜動画をみたい＝０）も補完によって、図８（ｂ）に符号３６３，３６４で示すように得られている。したがって、式（４）の計算結果は、これらの情報と、親ノード値＝０を考慮したときの図８（ａ）に符号３５１で示す情報とを用いることで求められる。
【０１００】
一方、ベイズの定理から、次の式（５）の関係が成り立っている。
確率ｐ（動画をみたい＝０，自宅，勤務日）と
確率ｐ（動画をみたい＝１，自宅，勤務日）との比は、
確率ｐ（動画をみたい＝１｜自宅，勤務日）と
確率ｐ（動画をみたい＝０｜自宅，勤務日）との比に等しい  …  式（５）
【０１０１】
そのため、正規化によって、条件付確率が次のようにそれぞれ求められる。
確率ｐ（動画をみたい＝１｜自宅，勤務日）≒０．７３      …  式（６ａ）
確率ｐ（動画をみたい＝０｜自宅，勤務日）≒０．２７      …  式（７）
【０１０２】
このうち、式（６ａ）について、親ノード値を加えて生起／非生起を区別する表式に書き換えると、式（６ｂ）となる。
確率ｐ（動画をみたい＝１｜自宅＝１，勤務日＝１）≒０．７３  …  式（６ｂ）
【０１０３】
また、式（６ｂ）の確率ｐの親ノード値の「１」を置き換えた場合の確率は次のように３通り存在する。
確率ｐ（動画をみたい＝１｜自宅＝１，勤務日＝０）
確率ｐ（動画をみたい＝１｜自宅＝０，勤務日＝１）
確率ｐ（動画をみたい＝１｜自宅＝０，勤務日＝０）
【０１０４】
これら３通りの確率についても前記した式（６ａ）を導出したときと全く同様にして求めることが可能である。その結果は、式（８）〜式（１０）となる。
確率ｐ（動画をみたい＝１｜自宅＝１，勤務日＝０）≒０．４７  …  式（８）
確率ｐ（動画をみたい＝１｜自宅＝０，勤務日＝１）≒０．０２  …  式（９）
確率ｐ（動画をみたい＝１｜自宅＝０，勤務日＝０）≒０．０１  …  式（１０）
【０１０５】
前記した式（６ｂ）、式（８）〜式（１０）を含むＣＰＴを図１２に示す。以上の処理により、例えば、ユーザＵ１についてのベイジアンネットワークが完成する。図１２において、符号４０１で示す行は、式（６ｂ）および式（９）を表し、符号４０２で示す行は、式（８）および式（１０）を表している。また、式（６ｂ）は、確率グラフ構築手段１１４の処理結果（ＣＰＴ）を示す図９（ｂ）に符号３８４で示す情報に相当し、式（８）〜式（１０）は図９（ｂ）に符号３８３，３８２，３８１で示す情報に相当する。以下では、図９（ｂ）および図９（ｃ）を参照して、ベイジアンネットワークの関連パラメータとして、これらＣＰＴが確率グラフデータベース１２１に登録された例について説明する。
【０１０６】
≪４−４−６．構築グラフの設定パラメータ≫
まず、図９（ｃ）に示す第２設定パラメータ１２１３において、シーケンス番号は、各子ノードについて、その親ノードに対して“０”から順番に割り当てたものである。つまり、符号３９１で示すように、子ノードＩＤ＝「動画をみたい」についての最初の親ノードとして、親ノードＩＤ＝「勤務日」が割り当てられ、次に、符号３９２で示すように、親ノードＩＤ＝「自宅」が割り当てられる。
【０１０７】
図９（ｂ）に示す第１設定パラメータ１２１２において、パターン番号は、親ノードの組合せパターンを示す２進数「00,01,10,11」を、シーケンス番号目「0,1,…」の桁に割り当てたものである。例えば、符号３８１〜３８２は、図９（ｃ）に示す符号３９１に対応しており、符号３８３〜３８４は、図９（ｃ）に示す符号３９２に対応している。つまり、シーケンス番号が「０」の桁は、親ノードＩＤ＝「勤務日」であり、その桁に「１」が付与されると、対応事象「勤務日」が生起し（図１２のＣＰＴで１行目）、その桁に「０」が付与されると、対応事象「勤務日」が非生起となる（図１２のＣＰＴで２行目）。
【０１０８】
また、シーケンス番号が「１」の桁は、親ノードＩＤ＝「自宅」であり、その桁に「１」が付与されると、対応事象「自宅」が生起し（図１２のＣＰＴで１列目）、その桁に「０」が付与されると、対応事象「自宅」が非生起となる（図１２のＣＰＴで２列目）。
なお、これら第１設定パラメータ１２１２および第２設定パラメータ１２１３を、図９（ａ）に示すグラフ構造テーブル１２１１と同じデータベースに収容する場合には、より効率的に正規化できる）。
【０１０９】
＜４−５．サービス推定＞
確率グラフ構築手段１１４で生成したユーザ毎のベイジアンネットワークは、図１に示すサービス推定部１２０の確率グラフデータベース１２１に格納される。
サービス推定部１２０の推定実施部１２３では、このベイジアンネットワークを用いてセンサ端末３００からのセンシング情報を集約し、例えばユーザＵ１が現在求めているサービス（「動画をみたい」等）を推定し、アプリサーバ４００に提供する。
【０１１０】
例えば、ユーザＵ１が、ユーザ端末２００として、ＧＰＳおよびスケジューラを搭載した携帯電話機を利用しているものとする。この場合、センサ端末３００は、ＧＰＳを用いて、ユーザＵ１（該当するユーザ端末２００）の所在が、現在は「自宅」であることをセンシング結果（観測値）として認識し、かつ、スケジューラを用いて、ユーザＵ１（該当するユーザ端末２００）のスケジュールが、当日は「勤務日」であることを認識する。
【０１１１】
そして、センサ端末３００は、推定機能提供サーバ１００にセンシング情報を送信する。推定機能提供サーバ１００は、サービス推定部１２０の推定実施部１２３によって、センシング情報を受信し、センシング情報テーブル１２２に格納する。センシング情報テーブル１２２に保持された情報の一例を図１３に示す。図１３に符号４１１で示す情報は、ＧＰＳに基づくユーザＵ１の所在地を示す情報であり、符号４１２で示す情報は、スケジューラに基づくユーザＵ１のスケジュールを示す情報である。
【０１１２】
推定実施部１２３は、図１３に示すセンシング情報テーブル１２２のこれらの観測値と、確率グラフデータベース１２１に既に格納されているユーザＵ１のベイジアンネットワークとを用いて、例えば、公知の確率伝搬法（Belief Propagation法）等によって、ユーザＵ１が現在求めているサービスとして、ベイジアンネットワークのノードに対応した対応事象「動画をみたい」の確率を推定する。この場合には、図１２に示すＣＰＴからも分かるように、確率が「０．７３」であると推定される。
【０１１３】
この場合、対応事象「動画をみたい」の確率は充分に高いため、推定実施部１２３は、ユーザＵ１に動画を推薦する。例えば、推定機能提供サーバ１００は、この推定結果（ユーザＵ１は現在動画サービスを求めていること）をアプリサーバ４００に通知する。そして、通知を受けたアプリサーバ４００は、該当するユーザ端末２００に、動画の視聴を薦める情報を提供し、ユーザＵ１の要求に応じて動画を配信する。
【０１１４】
本実施形態によれば、推定機能提供サーバ１００は、全ユーザで共通的に使用可能な２ノード毎の条件付確率を示すペア条件付確率を用いて協調フィルタリング部１３０で推定した推定ペア相関テーブル１１３を保持した状態から、確率グラフ構築手段１１４によってユーザ毎のベイジアンネットワークを作成する。その結果、ベイジアンネットワーク作成者に求められる設定量や取得データから機械学習すべきパラメータ量を低減できる。そのため、１つ１つのベイジアンネットワークの構築コストが下がり、ユーザ毎に異なるベイジアンネットワークの作成が実現できる。
【０１１５】
また、本実施形態によれば、推定論理構築支援システム１は、ユーザ端末２００がペア条件付確率をノードＩＤと共に推定機能提供サーバ１００に送信し、また、センサ端末３００がノードＩＤおよびユーザＩＤを推定機能提供サーバ１００に送信する。そして、推定機能提供サーバ１００は、受信、格納した情報に基づいて、ユーザが現在どのようなサービスを求めているのかを推定し、アプリサーバ４００に通知する。したがって、推定論理構築支援システム１は、ユーザが現在求めているサービスを推定することができる。
【０１１６】
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。例えば、本実施形態では、推定機能提供サーバ１００は、ユーザ端末２００から受信した情報を利用したり、センサ端末３００から受信した情報に基づいて学習を行ったりすることで初期ペア相関テーブル１１１を生成し、ユーザ毎のベイジアンネットワークを作成し、ユーザの求めるサービスを推定するものとしたが、本発明は、これに限定されるものではない。例えば、推定機能提供サーバ１００の推定実施部１２３の公開後、すなわち、推定結果をアプリサーバ４００に通知した後、センサ端末３００から取得する情報による学習を行ったり、ユーザ端末２００から情報を取得したりすることにより、ペア条件付確率を初期ペア相関テーブル１１１へ設定する処理を随時行ってもよい。
【０１１７】
また、本実施形態では、推定機能提供サーバ１００が推定実施部１２３を備えるベストモードで説明したが、本発明には、サービス推定機能を実現する推定実施部１２３は必須ではなく、少なくともユーザ行動推定機能を実現するために確率グラフ推定部１１０を備える構成でもよい。同様に、本発明において、センサ端末３００およびアプリサーバ４００は必須ではなく、推定論理構築支援システムは、推定機能提供サーバ１００とユーザ端末２００とを備えるように構成してもよい。
【符号の説明】
【０１１８】
１      推定論理構築支援システム
１００  推定機能提供サーバ（ユーザ行動推定装置）
１１０  確率グラフ推定部
１１１  初期ペア相関テーブル
１１２  ペア相関受信手段
１１３  推定ペア相関テーブル
１１４  確率グラフ構築手段
１１５  ペア相関学習手段
１２０  サービス推定部
１２１  確率グラフデータベース
１２２  センシング情報テーブル
１２３  推定実施部（推定実施手段）
１３０  協調フィルタリング部（協調フィルタリング手段）
１３１  ユーザ相関推定手段
１３２  ペア相関推定手段
１３３  ユーザ相関テーブル
２００  ユーザ端末
３００  センサ端末
４００  アプリサーバ
【図１】
2011048435.tif 000005
【図２】
2011048435.tif 000006
【図３】
2011048435.tif 000007
【図４】
2011048435.tif 000008
【図５】
2011048435.tif 000009
【図６】
2011048435.tif 000010
【図７】
2011048435.tif 000011
【図８】
2011048435.tif 000012
【図９】
2011048435.tif 000013
【図１０】
2011048435.tif 000014
【図１１】
2011048435.tif 000015
【図１２】
2011048435.tif 000016
【図１３】
2011048435.tif 000017