(57)【要約】【課題】センサデータをもとにユーザの状態を推定する処理において、センサデータから導出できないユーザの状態を推定する。【解決手段】コンテンツ表示装置１００は、自装置内または外部に設けられたセンサにてユーザを観測して得られるセンサデータをもとに、ユーザの状態を推定する。このコンテンツ表示装置１００は、センサデータが属する層であるセンサデータ層と、ユーザの状態を示す状態データが属する層である複数の状態データ層とが重ねられた階層構造を有する予め定められた推定モデルを用いて、取得されたセンサデータからユーザの状態を推定する。また、推定モデルにおいて、状態データ層に属する状態データは、隣の層に属するセンサデータおよび状態データの少なくともいずれか一方と関連付けられており、センサデータから導出可能な状態データと関連付けられた状態データとして、センサデータから導出できない状態データが存在している。【選択図】図１
2016110631.tif 000002
【特許請求の範囲】
【請求項１】
自装置内または外部に設けられたセンサにてユーザを観測して得られるセンサデータをもとに、ユーザの状態を推定する装置であって、
前記センサデータを取得する取得手段と、
センサデータが属する層であるセンサデータ層と、ユーザの状態を示す状態データが属する層である複数の状態データ層とが重ねられた階層構造を有する予め定められた推定モデルを用いて、取得された前記センサデータからユーザの状態を推定する推定手段とを備え、
前記推定モデルにおいて、前記状態データ層に属する状態データは、隣の層に属するセンサデータおよび状態データの少なくともいずれか一方と関連付けられており、当該センサデータから導出可能な状態データと関連付けられた状態データとして、当該センサデータから導出できない状態データが存在していること
を特徴とする状態推定装置。
【請求項２】
前記センサデータ層の隣に存在する前記状態データ層には、当該センサデータ層に属し異なる複数の前記センサで得られた複数の前記センサデータと関連付けられた１つの状態データが属していること
を特徴とする請求項１に記載の状態推定装置。
【請求項３】
前記推定モデルの状態データには、同一の状態データ層に属する他の状態データと関連付けられたものが存在すること
を特徴とする請求項１または２に記載の状態推定装置。
【請求項４】
関連付けられたセンサデータと状態データとの間、および関連付けられた状態データと他の状態データとの間は、向きを有する有向グラフで接続されており、当該有向グラフは、接続先のデータにとっての接続元のデータの関連の度合いを示す値を有すること
を特徴とする請求項１乃至３のいずれか１項に記載の状態推定装置。
【請求項５】
外部からコンテンツを受信するコンテンツ受信手段をさらに備え、
前記センサは、前記コンテンツを視聴するユーザを観測してセンサデータを取得し、
前記推定手段は、前記センサから得られるセンサデータを入力として推定したユーザの状態と前記コンテンツとを対応させた対応関係を生成すること
を特徴とする請求項１乃至４のいずれか１項に記載の状態推定装置。
【請求項６】
前記推定手段は、前記推定モデルを用いて、取得された前記センサデータからユーザの状態を示す状態データの値を時系列で推定し、推定した当該状態データの時系列の値をもとに、特定の時刻における当該状態データの値を推定すること
を特徴とする請求項１乃至５のいずれか１項に記載の状態推定装置。
【請求項７】
自装置内または外部に設けられたセンサにてユーザを観測して得られるセンサデータをもとに、ユーザの状態を推定する装置であって、
前記センサデータを取得する取得手段と、
センサデータが属する層であるセンサデータ層と、ユーザの状態を示す状態データが属する層である複数の状態データ層とが重ねられた階層構造を有する予め定められた推定モデルを用いて、取得された前記センサデータからユーザの状態を推定する推定手段とを備え、
前記推定モデルにおいて、前記状態データ層に属する状態データは、隣の層に属するセンサデータおよび状態データの少なくともいずれか一方と関連付けられており、前記センサデータ層の隣に存在する当該状態データ層には、当該センサデータ層に属し異なる複数の前記センサで得られた複数の当該センサデータと関連付けられた１つの状態データが属していること
を特徴とする状態推定装置。
【請求項８】
センサにてユーザを観測して得られるセンサデータをもとに、ユーザの状態を推定する方法であって、
前記センサデータを取得するステップと、
センサデータが属する層であるセンサデータ層と、ユーザの状態を示す状態データが属する層である複数の状態データ層とが重ねられた階層構造を有する予め定められた推定モデルを用いて、取得された前記センサデータからユーザの状態を推定するステップとを含み、
前記推定モデルにおいて、前記状態データ層に属する状態データは、隣の層に属するセンサデータおよび状態データの少なくともいずれか一方と関連付けられており、当該センサデータから導出可能な状態データと関連付けられた状態データとして、当該センサデータから導出できない状態データが存在していること
を特徴とする状態推定方法。
【請求項９】
センサにてユーザを観測して得られるセンサデータをもとに、ユーザの状態を推定する方法であって、
前記センサデータを取得するステップと、
センサデータが属する層であるセンサデータ層と、ユーザの状態を示す状態データが属する層である複数の状態データ層とが重ねられた階層構造を有する予め定められた推定モデルを用いて、取得された前記センサデータからユーザの状態を推定するステップとを含み、
前記推定モデルにおいて、前記状態データ層に属する状態データは、隣の層に属するセンサデータおよび状態データの少なくともいずれか一方と関連付けられており、前記センサデータ層の隣に存在する当該状態データ層には、当該センサデータ層に属し異なる複数の前記センサで得られた複数の当該センサデータと関連付けられた１つの状態データが属していること
を特徴とする状態推定方法。
【請求項１０】
自装置内または外部に設けられたセンサにてユーザを観測して得られるセンサデータをもとにユーザの状態を推定するシステムとして、コンピュータを機能させるプログラムであって、当該コンピュータに、
前記センサデータを取得する機能と、
センサデータが属する層であるセンサデータ層と、ユーザの状態を示す状態データが属する層である複数の状態データ層とが重ねられた階層構造を有する予め定められた推定モデルを用いて、取得された前記センサデータからユーザの状態を推定する機能とを実現させ、
前記推定モデルにおいて、前記状態データ層に属する状態データは、隣の層に属するセンサデータおよび状態データの少なくともいずれか一方と関連付けられており、当該センサデータから導出可能な状態データと関連付けられた状態データとして、当該センサデータから導出できない状態データが存在していること
を特徴とするプログラム。
【請求項１１】
自装置内または外部に設けられたセンサにてユーザを観測して得られるセンサデータをもとにユーザの状態を推定するシステムとして、コンピュータを機能させるプログラムであって、当該コンピュータに、
前記センサデータを取得する機能と、
センサデータが属する層であるセンサデータ層と、ユーザの状態を示す状態データが属する層である複数の状態データ層とが重ねられた階層構造を有する予め定められた推定モデルを用いて、取得された前記センサデータからユーザの状態を推定する機能とを実現させ、
前記推定モデルにおいて、前記状態データ層に属する状態データは、隣の層に属するセンサデータおよび状態データの少なくともいずれか一方と関連付けられており、前記センサデータ層の隣に存在する当該状態データ層には、当該センサデータ層に属し異なる複数の前記センサで得られた複数の当該センサデータと関連付けられた１つの状態データが属していること
を特徴とするプログラム。
【請求項１２】
自装置内または外部に設けられたセンサにてユーザを観測して得られるデータをもとに、ユーザの状態を推定する装置であって、
前記センサから得られるデータの全てまたは一部を入力としてユーザの状態を示す状態データを出力する予め定められた複数のデータ処理部の中から、当該センサから得られるデータに含まれるノイズの有無により、ユーザの状態を推定するのに用いるデータ処理部を選択する選択手段と、
前記選択手段により選択された前記データ処理部を用いて、前記センサから得られるデータを入力としてユーザの状態を推定する推定手段と
を備える状態推定装置。
【請求項１３】
前記選択手段は、ノイズが含まれるデータを入力とする前記データ処理部を選択しないこと
を特徴とする請求項１２に記載の状態推定装置。
【請求項１４】
前記選択手段は、前記センサから得られるデータに含まれるノイズの有無により、予め定められた規則に従ってデータ処理部ごとの重要度を算出し、
前記推定手段は、算出された前記重要度をもとに各データ処理部が出力する状態データを重み付けして、ユーザの状態を推定すること
を特徴とする請求項１２または１３に記載の状態推定装置。
【請求項１５】
予め定められた複数の前記データ処理部は、
前記センサから得られるデータの全てまたは一部を入力値として受け付けることのできるデータ処理部を組み合わせた複数の組み合わせの中から、選ばれた一の組み合わせであり、
前記一の組み合わせは、
前記複数の組み合わせのそれぞれで推定されたユーザの状態を、実際のユーザの状態である正解値と比較して、正答となる度合いをもとに、当該複数の組み合わせの中から選ばれること
を特徴とする請求項１２乃至１４のいずれか１項に記載の状態推定装置。
【請求項１６】
外部からコンテンツを受信するコンテンツ受信手段をさらに備え、
前記センサは、前記コンテンツを視聴するユーザを観測してデータを取得し、
前記推定手段は、前記センサから得られるデータを入力として推定したユーザの状態と前記コンテンツとを対応させた対応関係を生成すること
を特徴とする請求項１２乃至１５のいずれか１項に記載の状態推定装置。
【請求項１７】
センサにてユーザを観測して得られるデータをもとに、ユーザの状態を推定する方法であって、
前記センサから得られるデータの全てまたは一部を入力としてユーザの状態を示す状態データを出力する予め定められた複数のデータ処理部の中から、当該センサから得られるデータに含まれるノイズの有無により、ユーザの状態を推定するのに用いるデータ処理部を選択するステップと、
選択された前記データ処理部を用いて、前記センサから得られるデータを入力としてユーザの状態を推定するステップと
を含む状態推定方法。
【請求項１８】
自装置内または外部に設けられたセンサにてユーザを観測して得られるデータをもとにユーザの状態を推定するシステムとして、コンピュータを機能させるプログラムであって、
前記センサから得られるデータの全てまたは一部を入力としてユーザの状態を示す状態データを出力する予め定められた複数のデータ処理部の中から、当該センサから得られるデータに含まれるノイズの有無により、ユーザの状態を推定するのに用いるデータ処理部を選択する機能と、
選択された前記データ処理部を用いて、前記センサから得られるデータを入力としてユーザの状態を推定する機能と
を前記コンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、状態推定装置、状態推定方法およびプログラムに関する。
【背景技術】
【０００２】
従来、センサを用いてユーザを観測し、得られたセンサデータからユーザの状態や行動などを表すコンテキストを推定するシステムが提案されている。このようなシステムでは、センサデータをもとにユーザの状態や行動などを推定するための状態認識エンジンが用いられる場合がある。状態認識エンジンとは、例えばニューラルネットワークのような機械学習モデルを利用したものである。また、ニューラルネットワークとは、人間の脳などにおける神経細胞とその結合様式とを工学的に真似た、神経回路網モデルのことである。ニューラルネットワークは、脳の情報処理や知識獲得方法などを真似た学習アルゴリズムとして、最適化問題の解決法に利用されている。このような状態認識エンジンは、複数の入力ノードを有しており、センサデータの前処理結果を入力として受け付ける。
【０００３】
従来のコンテキスト推定システムの具体例を挙げて、より詳細に説明する。図１６に示すように、従来のコンテキスト推定システム４００は、センサ４０１およびセンサ４０２によりユーザを観測し、得られたセンサデータに対して前処理を行い、コンテキストの推定に必要な情報に加工する。例えば、センサ４０１では、前処理の結果、「顔の向き」、「目の開閉」、「笑顔」のデータが得られる。また、センサ４０２では、前処理の結果、「体の姿勢」、「移動」、「発話」のデータが得られる。そして、「顔の向き」、「目の開閉」、「笑顔」、「体の姿勢」、「移動」、「発話」のデータが状態認識エンジンに入力され、「集中度」、「興味度」のコンテキストが推定される。
【０００４】
ここで、従来は、コンテキストの推定に使用するセンサデータが限定される場合があった。即ち、図１６に示す例では、「集中度」および「興味度」の推定に必要なセンサデータは、センサ４０１およびセンサ４０２によるセンサデータに限定される。そのため、センサ４０２によりセンサデータが得られる環境であっても、例えばセンサ４０１が存在しない場合やセンサ４０１が故障している場合には、センサ４０１によるセンサデータが得られない。この場合、「集中度」および「興味度」の推定は行われない。また、従来は、このような状態認識エンジンを用いて、センサデータとの関連性があり、センサデータから導出可能なコンテキストを推定するのが一般的であった。図１６に示す例では、「集中度」および「興味度」は、センサデータを前処理して得られた「顔の向き」、「目の開閉」、「笑顔」、「体の姿勢」、「移動」、「発話」から導出可能である。
【０００５】
また、例えば、前処理に失敗して、「笑顔」、「体の姿勢」の結果が得られない場合や、結果が得られたとしても通常の範囲外のイレギュラーな値となった場合は、「笑顔」、「体の姿勢」のデータにノイズが含まれることとなる。そのため、ノイズが介在したデータが状態認識エンジンに入力されることとなり、「集中度」、「興味度」の推定精度が低下する。この問題を解決するには、ノイズが介在したデータを状態認識エンジンに与えずに、残りの入力データでコンテキスト（状態データ）の推定を行えば良い。しかし、ニューラルネットワーク構造を持つような機械学習エンジンでは、入力ノードは固定であり、動的に変更されるわけではない。
【０００６】
現在、センサデータにおけるノイズを低減するための技術も提案されている。また、計測条件の変動の影響を受けにくいセンサの改良も進められている。しかし、センサデータにおけるノイズを除去するには技術的な限界もあり、センサの改良は機器のコストを増大させる。
【０００７】
また、センサデータからユーザの状態や行動などを推定する技術としては、ほかに種々のものが提案されている。例えば、特許文献１には、ベイジアンネットワークを用いて人間の意図を推測する技術が記載されている。特許文献１の技術では、オフィス空間、学校、店舗空間、家庭などの空間内に存在する電気製品や証明などのスイッチ、かばん、携帯電話機、財布などのユーザが触れる複数のオブジェクトにそれぞれＲＦＩＤ（Radio Frequency Identifier）タグが設けられる。そして、ユーザが移動したときにＲＦＩＤリーダでＲＦＩＤタグの情報を読み取り、ＲＦＩＤタグの情報に基づきユーザが触れた又は使用したオブジェクトをユーザの行動の記録として蓄積する。蓄積されたユーザの行動の記録を、予め作成された行動パターンと比較することにより、ユーザの意図が推測される。
【０００８】
さらに、例えば、特許文献２には、ユーザ周辺に混在する多様な状況情報を共通された形態で示す状況情報モデルと、状況情報及び状況情報提供者間の階層モデルを提供し、多様な領域で発生する状況情報を統合的に推論する技術が記載されている。
【０００９】
そして、例えば、特許文献３には、センサデータの収集度合いにかかわらず任意のサービスが必要とするセンサ値を提供する技術が記載されている。特許文献２の技術では、センサデータのうち指定された範囲の時空間領域における指定された種類のセンサデータについて母平均の信頼区間を推定して第１の推定値を出力する。また、この第１の推定値において欠損している時空間領域の近傍で観測された異種センサデータについて母平均の信頼区間を推定して第２の推定値を出力する。そして、第１の推定値と第２の推定値との局所的な相関関係を用いて、欠損している時空間領域の第１の推定値を補完する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００７−１０９１１０号公報
【特許文献２】特開２０１４−５３００２号公報
【特許文献３】特開２０１４−１６４３８３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
センサにてユーザを観測し、得られるセンサデータをもとにユーザの状態を推定する処理では、センサデータから導出可能なコンテキストしか推定されない場合がある。また、コンテキストの推定に使用するセンサデータを限定したために、一部のセンサデータが欠落するとコンテキストの推定が行われない場合もある。なお、特許文献１、２の技術は、このようなセンサデータから導出できないコンテキストの推定や、センサデータ欠落時の推定を行うものではない。
【００１２】
また、センサにてユーザを観測し、得られるデータをもとにユーザの状態を推定する処理では、ノイズが介在すると推定精度が低下してしまう。なお、特許文献１、３の技術は、このようなユーザの状態を推定する際の推定精度の低下を防止するものではない。
【００１３】
本発明の目的は、センサデータをもとにユーザの状態を推定する処理において、センサデータから導出できないユーザの状態を推定することを可能にすることにある。
また、本発明の他の目的は、一部のセンサデータが欠落した場合であっても、ユーザの状態を推定することを可能にすることにある。
さらに、本発明の他の目的は、センサにて得られるデータをもとにユーザの状態を推定する処理において、ノイズが介在したとしても、ノイズの影響を抑制してユーザの状態を推定することにある。
【課題を解決するための手段】
【００１４】
かかる目的のもと、本発明は、自装置内または外部に設けられたセンサにてユーザを観測して得られるセンサデータをもとに、ユーザの状態を推定する装置であって、センサデータを取得する取得手段と、センサデータが属する層であるセンサデータ層と、ユーザの状態を示す状態データが属する層である複数の状態データ層とが重ねられた階層構造を有する予め定められた推定モデルを用いて、取得されたセンサデータからユーザの状態を推定する推定手段とを備え、推定モデルにおいて、状態データ層に属する状態データは、隣の層に属するセンサデータおよび状態データの少なくともいずれか一方と関連付けられており、センサデータから導出可能な状態データと関連付けられた状態データとして、センサデータから導出できない状態データが存在していることを特徴とする状態推定装置を提供する。
【００１５】
ここで、センサデータ層の隣に存在する状態データ層には、センサデータ層に属し異なる複数のセンサで得られた複数のセンサデータと関連付けられた１つの状態データが属していることを特徴とする。
また、推定モデルの状態データには、同一の状態データ層に属する他の状態データと関連付けられたものが存在することを特徴とする。
さらに、関連付けられたセンサデータと状態データとの間、および関連付けられた状態データと他の状態データとの間は、向きを有する有向グラフで接続されており、有向グラフは、接続先のデータにとっての接続元のデータの関連の度合いを示す値を有することを特徴とする。
そして、この状態推定装置は、外部からコンテンツを受信するコンテンツ受信手段をさらに備え、センサは、コンテンツを視聴するユーザを観測してセンサデータを取得し、推定手段は、センサから得られるセンサデータを入力として推定したユーザの状態とコンテンツとを対応させた対応関係を生成することを特徴とする。
また、推定手段は、推定モデルを用いて、取得されたセンサデータからユーザの状態を示す状態データの値を時系列で推定し、推定した状態データの時系列の値をもとに、特定の時刻における状態データの値を推定することを特徴とする。
【００１６】
また、本発明は、自装置内または外部に設けられたセンサにてユーザを観測して得られるセンサデータをもとに、ユーザの状態を推定する装置であって、センサデータを取得する取得手段と、センサデータが属する層であるセンサデータ層と、ユーザの状態を示す状態データが属する層である複数の状態データ層とが重ねられた階層構造を有する予め定められた推定モデルを用いて、取得されたセンサデータからユーザの状態を推定する推定手段とを備え、推定モデルにおいて、状態データ層に属する状態データは、隣の層に属するセンサデータおよび状態データの少なくともいずれか一方と関連付けられており、センサデータ層の隣に存在する状態データ層には、センサデータ層に属し異なる複数のセンサで得られた複数のセンサデータと関連付けられた１つの状態データが属していることを特徴とする状態推定装置も提供する。
【００１７】
さらに、本発明は、センサにてユーザを観測して得られるセンサデータをもとに、ユーザの状態を推定する方法であって、センサデータを取得するステップと、センサデータが属する層であるセンサデータ層と、ユーザの状態を示す状態データが属する層である複数の状態データ層とが重ねられた階層構造を有する予め定められた推定モデルを用いて、取得されたセンサデータからユーザの状態を推定するステップとを含み、推定モデルにおいて、状態データ層に属する状態データは、隣の層に属するセンサデータおよび状態データの少なくともいずれか一方と関連付けられており、センサデータから導出可能な状態データと関連付けられた状態データとして、センサデータから導出できない状態データが存在していることを特徴とする状態推定方法も提供する。
【００１８】
そして、本発明は、センサにてユーザを観測して得られるセンサデータをもとに、ユーザの状態を推定する方法であって、センサデータを取得するステップと、センサデータが属する層であるセンサデータ層と、ユーザの状態を示す状態データが属する層である複数の状態データ層とが重ねられた階層構造を有する予め定められた推定モデルを用いて、取得されたセンサデータからユーザの状態を推定するステップとを含み、推定モデルにおいて、状態データ層に属する状態データは、隣の層に属するセンサデータおよび状態データの少なくともいずれか一方と関連付けられており、センサデータ層の隣に存在する状態データ層には、センサデータ層に属し異なる複数のセンサで得られた複数のセンサデータと関連付けられた１つの状態データが属していることを特徴とする状態推定方法も提供する。
【００１９】
また、本発明は、自装置内または外部に設けられたセンサにてユーザを観測して得られるセンサデータをもとにユーザの状態を推定するシステムとして、コンピュータを機能させるプログラムであって、コンピュータに、センサデータを取得する機能と、センサデータが属する層であるセンサデータ層と、ユーザの状態を示す状態データが属する層である複数の状態データ層とが重ねられた階層構造を有する予め定められた推定モデルを用いて、取得されたセンサデータからユーザの状態を推定する機能とを実現させ、推定モデルにおいて、状態データ層に属する状態データは、隣の層に属するセンサデータおよび状態データの少なくともいずれか一方と関連付けられており、センサデータから導出可能な状態データと関連付けられた状態データとして、センサデータから導出できない状態データが存在していることを特徴とするプログラムも提供する。
【００２０】
さらに、本発明は、自装置内または外部に設けられたセンサにてユーザを観測して得られるセンサデータをもとにユーザの状態を推定するシステムとして、コンピュータを機能させるプログラムであって、コンピュータに、センサデータを取得する機能と、センサデータが属する層であるセンサデータ層と、ユーザの状態を示す状態データが属する層である複数の状態データ層とが重ねられた階層構造を有する予め定められた推定モデルを用いて、取得されたセンサデータからユーザの状態を推定する機能とを実現させ、推定モデルにおいて、状態データ層に属する状態データは、隣の層に属するセンサデータおよび状態データの少なくともいずれか一方と関連付けられており、センサデータ層の隣に存在する状態データ層には、センサデータ層に属し異なる複数のセンサで得られた複数のセンサデータと関連付けられた１つの状態データが属していることを特徴とするプログラムも提供する。
【００２１】
また、本発明は、自装置内または外部に設けられたセンサにてユーザを観測して得られるデータをもとに、ユーザの状態を推定する装置であって、センサから得られるデータの全てまたは一部を入力としてユーザの状態を示す状態データを出力する予め定められた複数のデータ処理部の中から、センサから得られるデータに含まれるノイズの有無により、ユーザの状態を推定するのに用いるデータ処理部を選択する選択手段と、選択手段により選択されたデータ処理部を用いて、センサから得られるデータを入力としてユーザの状態を推定する推定手段とを備える状態推定装置を提供する。
【００２２】
ここで、選択手段は、ノイズが含まれるデータを入力とするデータ処理部を選択しないことを特徴とすることができる。
また、選択手段は、センサから得られるデータに含まれるノイズの有無により、予め定められた規則に従ってデータ処理部ごとの重要度を算出し、推定手段は、算出された重要度をもとに各データ処理部が出力する状態データを重み付けして、ユーザの状態を推定することを特徴とすることができる。
さらに、予め定められた複数のデータ処理部は、センサから得られるデータの全てまたは一部を入力値として受け付けることのできるデータ処理部を組み合わせた複数の組み合わせの中から、選ばれた一の組み合わせであり、一の組み合わせは、複数の組み合わせのそれぞれで推定されたユーザの状態を、実際のユーザの状態である正解値と比較して、正答となる度合いをもとに、複数の組み合わせの中から選ばれることを特徴とすることができる。
そして、この状態推定装置は、外部からコンテンツを受信するコンテンツ受信手段をさらに備え、センサは、コンテンツを視聴するユーザを観測してデータを取得し、推定手段は、センサから得られるデータを入力として推定したユーザの状態とコンテンツとを対応させた対応関係を生成することを特徴とすることができる。
【００２３】
また、本発明は、センサにてユーザを観測して得られるデータをもとに、ユーザの状態を推定する方法であって、センサから得られるデータの全てまたは一部を入力としてユーザの状態を示す状態データを出力する予め定められた複数のデータ処理部の中から、センサから得られるデータに含まれるノイズの有無により、ユーザの状態を推定するのに用いるデータ処理部を選択するステップと、選択されたデータ処理部を用いて、センサから得られるデータを入力としてユーザの状態を推定するステップとを含む状態推定方法も提供する。
【００２４】
さらに、本発明は、自装置内または外部に設けられたセンサにてユーザを観測して得られるデータをもとにユーザの状態を推定するシステムとして、コンピュータを機能させるプログラムであって、センサから得られるデータの全てまたは一部を入力としてユーザの状態を示す状態データを出力する予め定められた複数のデータ処理部の中から、センサから得られるデータに含まれるノイズの有無により、ユーザの状態を推定するのに用いるデータ処理部を選択する機能と、選択されたデータ処理部を用いて、センサから得られるデータを入力としてユーザの状態を推定する機能とをコンピュータに実現させるためのプログラムも提供する。
【発明の効果】
【００２５】
本発明によれば、センサデータをもとにユーザの状態を推定する処理において、センサデータから導出できないユーザの状態を推定することができる。
また、本発明によれば、一部のセンサデータが欠落した場合であっても、ユーザの状態を推定することができる。
さらに、本発明によれば、センサにて得られるデータをもとにユーザの状態を推定する処理において、ノイズが介在したとしても、ノイズの影響を抑制してユーザの状態を推定することができる。
【図面の簡単な説明】
【００２６】
【図１】第１の実施形態に係るコンテキスト推定システムの機能構成例を示したブロック図である。
【図２】第１の実施形態に係るコンテンツ表示装置による処理手順の一例を示したフローチャートである。
【図３】コンテキストの推定に用いられる推定モデルの一例を示す図である。
【図４】センサデータが欠落した場合の処理の一例を説明するための図である。
【図５】コンテキストの推定処理の具体例を説明するための図である。
【図６】（ａ）〜（ｃ）は、図５の推定処理における計算例を示す図である。
【図７】（ａ）〜（ｃ）は、図５の推定処理における計算例を示す図である。
【図８】同種のコンテキストを有向グラフで接続した予測モデルの一例を示す図である。
【図９】時系列のデータを用いてコンテキストの予測を行う処理手順の一例を示したフローチャートである。
【図１０】第１の実施形態に係るコンテンツ表示装置を構成するのに好適なハードウェア構成例を示す図である。
【図１１】第１の実施形態に係るコンテキスト推定システムの他の構成例を示す図である。
【図１２】第２の実施形態に係るコンテキスト推定システムの機能構成例を示したブロック図である。
【図１３】第２の実施形態に係るコンテンツ表示装置による処理手順の一例を示したフローチャートである。
【図１４】コンテンツ表示装置が状態データを推定する処理の一例を説明するための図である。
【図１５】第２の実施形態に係るコンテキスト推定システムの他の構成例を示す図である。
【図１６】従来のコンテキスト推定システムの一例を説明するための図である。
【発明を実施するための形態】
【００２７】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
[第１の実施形態]
＜コンテキスト推定システムの機能構成＞
図１は、第１の実施形態に係るコンテキスト推定システムの機能構成例を示したブロック図である。このコンテキスト推定システムは、センサを用いて得られたセンサデータをもとに、ユーザの状態を表すデータであるコンテキストを推定して、ユーザの状態を推定するシステムである。ここで、ユーザの状態には、ユーザの動作、行動に関するものも含まれるものとする。図示するように、コンテキスト推定システムは、コンテンツ表示装置１００と、コンテンツ配信装置２００と、センサ装置３００とを含む。ただし、図１に示す例ではセンサ装置３００を１台設ける構成としているが、センサ装置３００を２台以上設けることとしても良い。本実施の形態では、状態データの一例として、コンテキストが用いられる。
【００２８】
コンテンツ表示装置１００は、例えば、テレビジョン受像機、携帯電話、ＰＣ（Personal Computer）、タブレット端末等であり、コンテンツ配信装置２００が送信するコンテンツを受信して表示する装置である。また、コンテンツ表示装置１００は、無線又は有線により接続されたセンサ装置３００からセンサデータを受け取ることもできる。このコンテンツ表示装置１００は、センサデータ受信部１０１と、センサデータ前処理部１０２と、コンテキスト推定部１０３と、コンテンツ受信部１０４と、コンテンツ表示部１０５とを含む。また、コンテンツ表示装置１００は、コンテンツ評価結果生成部１０６と、コンテンツ評価結果送信部１０７と、コンテンツ推薦結果生成部１０８と、推薦結果表示部１０９とを含む。
【００２９】
コンテンツ配信装置２００は、テレビ番組、ラジオ番組等を配信するサービス会社により運営され、コンテンツを配信する装置である。ここで、コンテンツには、例えば、テレビ番組等の映像コンテンツ、ラジオ番組等の音声コンテンツがある。或いは、映像コンテンツ又は音声コンテンツに関する説明を行う文書コンテンツをコンテンツに含めてもよい。また、コンテンツの配信は、例えば、地上波、インターネットにより行われる。このコンテンツ配信装置２００は、コンテンツ送信部２０１と、コンテンツ評価結果受信部２０２とを含む。
【００３０】
センサ装置３００は、例えば、カメラ、マイクロホン、スマートフォン、ウェアラブル端末、タブレット端末、ＰＣ等であり、コンテンツ表示装置１００に表示されたコンテンツを視聴するユーザを観測し、その観測結果であるセンサデータを出力する装置である。このセンサ装置３００は、センサデータ送信部３０１を含む。
【００３１】
まず、コンテンツ表示装置１００の構成要素について説明する。
【００３２】
取得手段の一例としてのセンサデータ受信部１０１は、センサ装置３００のセンサデータ送信部３０１からセンサデータを受信する。
【００３３】
センサデータ前処理部１０２は、コンテキストを推定するための前処理として、センサデータ受信部１０１が受信したセンサデータを、コンテキストの推定に必要な情報に加工する。
【００３４】
推定手段の一例としてのコンテキスト推定部１０３は、センサデータ前処理部１０２により加工された情報をもとに、ユーザの状態を表すコンテキストを推定する。コンテキストの推定では、事前に作成された推定モデルが用いられる。推定モデルの詳細については後述する。
【００３５】
コンテンツ受信手段の一例としてのコンテンツ受信部１０４は、コンテンツ配信装置２００のコンテンツ送信部２０１からコンテンツを受信する。ここで、コンテンツ受信部１０４は、コンテンツが地上波で配信される場合はチューナーに相当し、コンテンツがインターネットで配信される場合はネットワークアダプタ又は携帯端末に相当する。
【００３６】
コンテンツ表示部１０５は、コンテンツ受信部１０４がコンテンツ配信装置２００から受信したコンテンツを表示する。
【００３７】
推定手段の一例としてのコンテンツ評価結果生成部１０６は、コンテキスト推定部１０３が推定したコンテキストと、コンテンツ表示部１０５が表示しているコンテンツとを統合し、ユーザごとのコンテンツの評価結果を生成する。評価結果は、例えば、推定された興味度をもとにユーザの興味が高いとされる番組の一覧などである。本実施の形態では、対応関係の一例として、評価結果が用いられる。
【００３８】
コンテンツ評価結果送信部１０７は、コンテンツ評価結果生成部１０６が生成したコンテンツ評価結果を、コンテンツ配信装置２００のコンテンツ評価結果受信部２０２に送信する。
【００３９】
コンテンツ推薦結果生成部１０８は、コンテンツ評価結果生成部１０６が生成したコンテンツ評価結果をもとに、ユーザに推薦する番組などの推薦結果を生成する。コンテンツ推薦結果生成部１０８は、例えば、コンテンツ評価結果によりユーザの興味が高いと示される番組を抽出し、抽出した番組と同じジャンルの番組を推薦結果として生成する。
【００４０】
推薦結果表示部１０９は、コンテンツ推薦結果生成部１０８が生成した推薦結果を表示して、ユーザにフィードバックする。
【００４１】
次に、コンテンツ配信装置２００の構成要素について説明する。
【００４２】
コンテンツ送信部２０１は、コンテンツ表示装置１００のコンテンツ受信部１０４にコンテンツを配信する。
【００４３】
コンテンツ評価結果受信部２０２は、コンテンツ表示装置１００のコンテンツ評価結果送信部１０７からユーザごとのコンテンツの評価結果を受信する。このコンテンツの評価結果は、例えば、マーケティングのための情報として活用される。
【００４４】
次いで、センサ装置３００の構成要素について説明する。
センサデータ送信部３０１は、ユーザを観測した結果であるセンサデータを、コンテンツ表示装置１００のセンサデータ受信部１０１に送信する。
【００４５】
このように、本実施の形態に係るコンテキスト推定システムは、センサ装置３００を用いてユーザを観測し、得られたセンサデータからコンテキストを推定する。コンテキストの推定では、予め作成された推定モデルが用いられる。そして、コンテキスト推定システムは、推定したコンテキストをもとにコンテンツ評価結果やユーザへの推薦結果を生成する。
【００４６】
＜コンテンツ表示装置の処理フロー＞
次に、コンテンツ表示装置１００による処理について説明する。図２は、第１の実施形態に係るコンテンツ表示装置１００による処理手順の一例を示したフローチャートである。初期状態として、コンテキストを推定するための推定モデルが予め作成されているものとする。
【００４７】
まず、センサデータ受信部１０１は、センサ装置３００のセンサデータ送信部３０１からセンサデータを受信する（ステップ１０１）。次に、センサデータ前処理部１０２は、前処理として、センサデータをコンテキストの推定に必要な情報に加工する（ステップ１０２）。次に、コンテキスト推定部１０３は、センサデータ前処理部１０２により加工された情報をもとに、推定モデルを用いてコンテキストを推定する（ステップ１０３）。
【００４８】
次に、コンテンツ評価結果生成部１０６は、コンテキスト推定部１０３が推定したコンテキストと、コンテンツ表示部１０５が表示しているコンテンツとを統合し、ユーザごとのコンテンツの評価結果を生成する（ステップ１０４）。ここで、コンテンツ表示部１０５は、コンテンツ受信部１０４がコンテンツ配信装置２００から受信したコンテンツを表示している。
【００４９】
次に、コンテンツ評価結果送信部１０７は、コンテンツ評価結果生成部１０６が生成したコンテンツ評価結果をコンテンツ配信装置２００に送信する（ステップ１０５）。なお、コンテンツ評価結果は、コンテンツ推薦結果生成部１０８における推薦結果の生成にも用いられる。生成された推薦結果は、推薦結果表示部１０９により表示される。そして、本処理フローは終了する。
【００５０】
＜推定モデルの説明＞
次に、推定モデルについて、詳細に説明する。図３は、コンテキストの推定に用いられる推定モデルの一例を示す図である。推定モデルでは、センサデータやコンテキストなどの各データを表すノードと、それらのノード間を結ぶ有向グラフとにより表現される。有向グラフは頂点と向きを持つ辺（図３に示す例では、矢印）とで構成されたグラフであり、確率を有している。確率は、有向グラフの接続元と接続先との関連の度合いを示すものである。付言すると、確率は、有向グラフの接続元の値が、有向グラフの接続先の値にどのくらいの影響を及ぼすかを示す。以下では、この確率を「重み値」と称する。このように、ノード間を結ぶ有向グラフにより、センサデータとコンテキストとの関係、および異なるコンテキスト間の関係が示される。
【００５１】
このような推定モデルを作成するにあたり、作成者は、まず、被験者に対して実験やアンケートなどを行い、各ノードのデータを収集する。そして、収集したデータに対して、例えばベイジアンネットワークなどの機械学習アルゴリズムを適用することにより、推定モデルが作成される。ここで、推定モデルは、図３に示すように、センサデータおよびコンテキストを要素とする階層構造になっており、各ノードがその種類に応じた複数の層に分類される。複数の層としては、下の層から順番に、「Ｓｅｎｓｏｒ」、「Ｌｏｗｅｒ  ｌａｙｅｒ  Ｃｏｎｔｅｘｔｓ」、「Ｍｉｄｄｌｅ  ｌａｙｅｒ  Ｃｏｎｔｅｘｔｓ」、「Ｈｉｇｈｅｒ  ｌａｙｅｒ  Ｃｏｎｔｅｘｔｓ」、「Ｏｔｈｅｒ  Ｃｏｎｔｅｘｔｓ」の５つが挙げられる。
【００５２】
まず、「Ｓｅｎｓｏｒ」には、センサ装置３００にて取得されたセンサデータが属する。例えば、カメラやマイクロホン、スマートフォン、タブレット端末、ウェアラブル端末等により取得されたセンサデータが挙げられる。推定モデルの作成にあたり、被験者に対して、様々な種類のセンサ装置３００を用いた実験が行われる。実験の結果、各センサ装置３００にて得られたセンサデータが収集される。
【００５３】
次に、「Ｌｏｗｅｒ  ｌａｙｅｒ  Ｃｏｎｔｅｘｔｓ」には、センサデータを一次処理（前処理）した結果であるコンテキストが属する。例えば、カメラのセンサデータ（画像データ）を処理して得られる「目の開度」や「顔の正面度」、「体姿勢の正面度」、「笑顔度」、「発話の大きさ度」等のコンテキストが挙げられる。ここで、「目の開度」は、目が開いている度合い、「顔の正面度」は、顔が正面を向いている度合い、「体姿勢の正面度」は、体が正面を向いている度合いを示す。また、「笑顔度」は、笑顔の度合い、「発話の大きさ度」は、発話の大きさの度合いを示す。推定モデルの作成にあたり、「Ｌｏｗｅｒ  ｌａｙｅｒ  Ｃｏｎｔｅｘｔｓ」に属するコンテキスト（以下、低層コンテキストと称する）は、収集されたセンサデータを処理することにより、直接的に導出可能である。
【００５４】
次に、「Ｍｉｄｄｌｅ  ｌａｙｅｒ  Ｃｏｎｔｅｘｔｓ」には、低層コンテキストを処理することにより得られるコンテキストが属する。例えば、「コンテンツへの集中度」、「コンテンツに対する興味度」、「ユーザの喜び度」等のコンテキストが挙げられる。「Ｍｉｄｄｌｅ  ｌａｙｅｒ  Ｃｏｎｔｅｘｔｓ」に属するコンテキスト（以下、中層コンテキストと称する）は、センサ装置３００にて取得されたセンサデータとの結び付きが強い。そのため、中層コンテキストは、低層コンテキストを処理することにより得られるものであり、即ち、センサデータから導出可能なコンテキストである。ただし、推定モデルの作成では、センサデータから導出された推定値よりも、被験者から直接得られた正解値を用いた方が、推定モデルの精度が高くなる。そのため、推定モデルの作成にあたり、中層コンテキストは、例えば、被験者に対するアンケートをもとに算出されたり、別途用意された専用のセンサ（不図示）で得られたデータをもとに収集されたりする。
【００５５】
次に、「Ｈｉｇｈｅｒ  ｌａｙｅｒ  Ｃｏｎｔｅｘｔｓ」には、センサ装置３００のセンサデータから導出できないコンテキストが属する。例えば、「ストレス度」、「疲労度」、「退屈度」等のコンテキストが挙げられる。「Ｈｉｇｈｅｒ  ｌａｙｅｒ  Ｃｏｎｔｅｘｔｓ」に属するコンテキスト（以下、高層コンテキストと称する）は、センサ装置３００のセンサデータとの結び付きが弱く、低層コンテキストや中層コンテキストとは異なり、センサデータから導出されない。ただし、高層コンテキストは、コンテキスト推定システムが備えるセンサ装置３００のセンサデータから導出できないのであって、その高層コンテキスト用に別途用意された専用のセンサ（不図示）等では導出できる場合もあるものとする。そして、推定モデルの作成にあたり、高層コンテキストは、中層コンテキストと同様に、例えば、被験者に対するアンケートをもとに算出されたり、専用のセンサで得られたデータをもとに収集されたりする。
【００５６】
最後に、「Ｏｔｈｅｒ  Ｃｏｎｔｅｘｔｓ」には、ユーザの属性を示すコンテキストが属する。例えば、「交友関係」、「家族構成」、「年齢」等のコンテキストが挙げられる。推定モデルの作成にあたり、「Ｏｔｈｅｒ  Ｃｏｎｔｅｘｔｓ」に属するコンテキスト（以下、他コンテキストと称する）は、被験者から提供された情報をもとに収集される。
【００５７】
このように、推定モデルの作成にあたり、被験者に対する実験やアンケートなどが行われ、各ノードのデータが収集される。そして、収集されたデータに対して機械学習アルゴリズムが適用され、センサデータとコンテキストとの関係、異なるコンテキスト間の関係が算出される。その結果、図３に示すような推定モデルが作成される。また、本実施の形態では、センサデータ層の一例として、Ｓｅｎｓｏｒの層が用いられる。さらに、状態データ層の一例として、Ｌｏｗｅｒ  ｌａｙｅｒ  Ｃｏｎｔｅｘｔｓの層、Ｍｉｄｄｌｅ  ｌａｙｅｒ  Ｃｏｎｔｅｘｔｓの層、Ｈｉｇｈｅｒ  ｌａｙｅｒ  Ｃｏｎｔｅｘｔｓの層が用いられる。
【００５８】
また、作成された推定モデルでは、低層コンテキストには、その低層コンテキストを推定するために用いられるセンサデータが有向グラフで接続される。ただし、１つの低層コンテキストに対して接続されるセンサデータは１つに限られない。１つの低層コンテキストに対して、異なる複数のセンサで得られた複数のセンサデータが接続されても良い。例えば、図３に示す「顔の正面度」には、カメラおよびマイクロホンのセンサデータが接続される。
【００５９】
中層コンテキストには、その中層コンテキストを推定するために用いられる低層コンテキストが有向グラフで接続される。また、接続されるコンテキストとしては低層コンテキストに限られず、同じ層に属する他の中層コンテキストが接続される場合もある。例えば、コンテンツへの集中度が高い場合には、ユーザがそのコンテンツが好きである可能性が高いとして、中層コンテキストの「集中度」から中層コンテキストの「興味度」へ有向グラフが示される。
【００６０】
高層コンテキストには、その高層コンテキストを推定するために用いられる中層コンテキストが有向グラフで接続される。また、接続されるコンテキストとしては中層コンテキストに限られず、同じ層に属する他の高層コンテキストが接続される場合もある。
【００６１】
他コンテキストは、ユーザの属性を示すコンテキストであり、ユーザが直接入力することにより得られる。そして、他コンテキストは、他の層のコンテキストに接続され、他の層のコンテキストの推定結果を制御するパラメータとなる。例えば、「年齢」の高いユーザは「年齢」の低いユーザよりも「疲労度」の値が高くなり易い。この場合、他コンテキストの「年齢」から高層コンテキストの「疲労度」へ有向グラフが示される。また、他コンテキストは、他の層のコンテキストに接続されることにより、他の層のコンテキストから推定されることとしても良い。
【００６２】
このように、推定モデルでは、センサデータ、コンテキストが各層に振り分けられ、ノード同士が有向グラフで接続される。付言すると、各層に属するコンテキストは、隣の層に属するセンサデータおよびコンテキストの少なくともいずれか一方と有向グラフで接続されている。そして、有向グラフで接続された両データは関連付けられている。
【００６３】
そして、コンテンツ表示装置１００は、推定モデルを用いて、センサ装置３００にて得られたセンサデータからコンテキストを推定する。即ち、センサデータ受信部１０１がセンサデータを受信すると、センサデータ前処理部１０２は、センサデータを一次処理（前処理）して低層コンテキストを推定する。そして、コンテキスト推定部１０３は、推定された低層コンテキストをもとに、中層コンテキストを推定する。さらに、コンテキスト推定部１０３は、生成された中層コンテキストをもとに、高層コンテキストを推定する。
【００６４】
高層コンテキストは、上述のように、コンテキスト推定システムが備えるセンサ装置３００で取得されるセンサデータからは導出できない。しかし、推定モデルにおいて、高層コンテキストは、センサデータから導出可能な中層コンテキストなどの他のコンテキストと関連付けられている。そのため、推定モデルを用いることにより、センサ装置３００で取得されるセンサデータから、高層コンテキストの推定が行われる。
【００６５】
＜センサデータが欠落した場合の処理の説明＞
次に、センサ装置３００により得られるセンサデータが欠落した場合の処理について説明する。推定モデルでは、上述のように、複数のセンサデータに接続された低層コンテキストが存在する。この場合、センサデータの前処理結果である低層コンテキストは、複数のセンサデータにより共有される。そのため、あるセンサデータが欠落した場合であっても、他のセンサデータが接続されていれば、他のセンサデータを用いて低層コンテキストが推定される。同様に、中層コンテキスト、高層コンテキストについても、それに関係する一部のコンテキストが欠落していても、他のコンテキストを用いて推定される。
【００６６】
図４は、センサデータが欠落した場合の処理の一例を説明するための図である。図４に示す例では、センサ装置３００のカメラによるセンサデータが得られずに欠落している。そのため、カメラのセンサデータの前処理結果である「目の開度」、「顔の正面度」、「体姿勢の正面度」、「笑顔度」の低層コンテキストは推定されない。しかし、他のセンサ装置３００であるマイクロホンのセンサデータから、「顔の正面度」の低層コンテキストが推定される。さらに、他のセンサ装置３００であるスマートフォンのセンサデータから、「体姿勢の正面度」、「笑顔度」の低層コンテキストが推定される。即ち、カメラのセンサデータが欠落しても、「顔の正面度」、「体姿勢の正面度」、「笑顔度」は推定されることとなる。
【００６７】
また、例えば、中層コンテキスト「集中度」には、低層コンテキストとして、「目の開度」、「顔の正面度」、「体姿勢の正面度」、「笑顔度」が接続されている。ここで、カメラによるセンサデータが欠落したとしても、マイクロホンおよびスマートフォンのセンサデータから、「顔の正面度」、「体姿勢の正面度」、「笑顔度」の低層コンテキストが推定される。一方、「目の開度」の値は欠落する。しかし、このような場合であっても、「顔の正面度」、「体姿勢の正面度」、「笑顔度」の値を用いて、「集中度」が推定されることとなる。
【００６８】
このようにして、コンテンツ表示装置１００は、一部のセンサデータが欠落した場合であっても、受信した他のセンサデータから求められる低層コンテキストを推定する。また、コンテンツ表示装置１００は、センサデータの欠落に伴って一部の低層コンテキストが欠落していても、残りの低層コンテキストから中層コンテキスト、高層コンテキストを推定する。
【００６９】
＜コンテキストの推定処理の具体例＞
次に、コンテキストの推定処理について、具体例を示して説明する。図５は、コンテキストの推定処理の具体例を説明するための図である。図５に示す例では、４つのコンテキスト（コンテキスト１〜コンテキスト４）から上の層のコンテキスト（コンテキスト５）を推定するものとして説明する。コンテキスト１〜コンテキスト４はそれぞれ、低層コンテキストの「目の開度」、「顔の正面度」、「体姿勢の正面度」、「笑顔度」とする。また、コンテキスト５は中層コンテキストの「集中度」とする。
【００７０】
まず、コンテキストの推定値は、次の数１式のように表される。
【００７１】
【数１】
2016110631.tif 000003
【００７２】
数１式において、Ｅｉはｉ番目のコンテキストの推定値、Ｗｊｉはｉ番目のコンテキストの推定値に対するｊ番目のコンテキストの推定値の重み値を表す。例えば、推定モデルの有向グラフの接続先がｉ番目のコンテキスト、接続元がｊ番目のコンテキストである場合、有向グラフの重み値はＷｊｉである。また、Ｃｉは推定値Ｅｉの信頼度、Ｎは推定に用いられるコンテキストの総数を表す。ここで、信頼度とは、推定値の結果に対する信頼の度合いを表す値である。信頼度が高いほど、推定値が信頼できることとなる。Ｃｉは、次の数２式のように表される。
【００７３】
【数２】
2016110631.tif 000004
【００７４】
ここで、コンテキスト１〜コンテキスト５をそれぞれ１〜５番目のコンテキストと捉えると、コンテキスト５はコンテキスト１〜コンテキスト４から推定される。そのため、コンテキスト５の推定値Ｅ５、信頼度Ｃ５は、数１式および数２式にてｉ＝５とすることにより、それぞれ、次の数３式、数４式のように表される。
【００７５】
【数３】
2016110631.tif 000005
【００７６】
【数４】
2016110631.tif 000006
【００７７】
数３式および数４式において、Ｗ１５はコンテキスト５に対するコンテキスト１の重み値、Ｗ２５はコンテキスト５に対するコンテキスト２の重み値である。また、Ｗ３５はコンテキスト５に対するコンテキスト３の重み値、Ｗ４５はコンテキスト５に対するコンテキスト４の重み値である。さらに、Ｅ１〜５はそれぞれ、コンテキスト１〜５の推定値である。また、Ｃ１〜Ｃ５はそれぞれ、コンテキスト１〜５の信頼度である。
【００７８】
次に、図６（ａ）〜（ｃ）および図７（ａ）〜（ｃ）は、図５の推定処理における計算例を示す図である。まず、図６（ａ）に示す例では、重み値をそれぞれ、Ｗ１５＝１．０、Ｗ２５＝１．０、Ｗ３５＝１．０、Ｗ４５＝１．０とする。また、各コンテキストの推定値をそれぞれ、Ｅ１＝１．０、Ｅ２＝１．０、Ｅ３＝１．０、Ｅ４＝１．０とする。さらに、各コンテキストの信頼度をそれぞれ、Ｃ１＝１．０、Ｃ２＝１．０、Ｃ３＝１．０、Ｃ４＝１．０とする。この場合、コンテキスト５の推定値Ｅ５、信頼度Ｃ５はそれぞれ、次の数５式、数６式のように表される。
【００７９】
【数５】
2016110631.tif 000007
【００８０】
【数６】
2016110631.tif 000008
【００８１】
図６（ａ）に示す例では、コンテキスト１〜４の重み値が１．０であるため、コンテキスト５に強い影響を持つ。また、コンテキスト１〜４の信頼度が１．０であり、１００パーセント信頼できるものである。このような条件では、コンテキスト５の推定値は１．０、信頼度は１．０となる。即ち、１００パーセント信頼できる結果として、コンテキスト５（集中度）が１００パーセントと推定される。
【００８２】
次に、図６（ｂ）に示す例では、重み値をそれぞれ、Ｗ１５＝１．０、Ｗ２５＝１．０、Ｗ３５＝１．０、Ｗ４５＝１．０とする。また、各コンテキストの推定値をそれぞれ、Ｅ１＝１．０、Ｅ２＝１．０、Ｅ３＝１．０、Ｅ４＝１．０とする。さらに、各コンテキストの信頼度をそれぞれ、Ｃ１＝１．０、Ｃ２＝１．０、Ｃ３＝０、Ｃ４＝０とする。この場合、コンテキスト５の推定値Ｅ５、信頼度Ｃ５はそれぞれ、次の数７式、数８式のように表される。
【００８３】
【数７】
2016110631.tif 000009
【００８４】
【数８】
2016110631.tif 000010
【００８５】
図６（ｂ）に示す例では、コンテキスト１〜４の重み値が１．０であるため、コンテキスト５に強い影響を持つ。また、コンテキスト１および２の信頼度が１．０である一方、コンテキスト３および４の信頼度は０である。即ち、コンテキスト３および４については、例えばセンサ装置３００が存在しない等の理由で欠落していると考えられる。このような条件では、コンテキスト５の推定値が１．０、信頼度が０．５となる。推定値としては、信頼度の高い２つのコンテキスト（コンテキスト１および２）の推定値（Ｅ１＝１．０、Ｅ２＝１．０）の総計で、１．０（集中度が１００パーセント）となる。しかし、強い影響を及ぼす２つのコンテキスト（コンテキスト３および４）の信頼度が低いため、コンテキスト４の信頼度は０．５（５０パーセント信頼できる結果）となる。
【００８６】
次に、図６（ｃ）に示す例では、重み値をそれぞれ、Ｗ１５＝１．０、Ｗ２５＝１．０、Ｗ３５＝０．１、Ｗ４５＝０．１とする。また、各コンテキストの推定値をそれぞれ、Ｅ１＝１．０、Ｅ２＝１．０、Ｅ３＝１．０、Ｅ４＝１．０とする。さらに、各コンテキストの信頼度をそれぞれ、Ｃ１＝１．０、Ｃ２＝１．０、Ｃ３＝０、Ｃ４＝０とする。この場合、コンテキスト５の推定値Ｅ５、信頼度Ｃ５はそれぞれ、次の数９式、数１０式のように表される。
【００８７】
【数９】
2016110631.tif 000011
【００８８】
【数１０】
2016110631.tif 000012
【００８９】
図６（ｃ）に示す例では、図６（ｂ）に示す例と比較して、コンテキスト３および４の重み値が０．１と低く、コンテキスト５への影響が弱い。コンテキスト３および４の信頼度は０であるが、その一方、コンテキスト５への影響が強い２つのコンテキスト（コンテキスト１および２）の信頼度が高い。そのため、コンテキスト３および４の信頼度が低くても、コンテキスト５の信頼度は高い値（９１パーセント信頼できる結果）となる。
【００９０】
次に、図７（ａ）に示す例では、重み値をそれぞれ、Ｗ１５＝１．０、Ｗ２５＝１．０、Ｗ３５＝０．１、Ｗ４５＝０．１とする。また、各コンテキストの推定値をそれぞれ、Ｅ１＝１．０、Ｅ２＝１．０、Ｅ３＝１．０、Ｅ４＝１．０とする。さらに、各コンテキストの信頼度をそれぞれ、Ｃ１＝０、Ｃ２＝０、Ｃ３＝０、Ｃ４＝１．０とする。この場合、コンテキスト５の推定値Ｅ５、信頼度Ｃ５はそれぞれ、次の数１１式、数１２式のように表される。
【００９１】
【数１１】
2016110631.tif 000013
【００９２】
【数１２】
2016110631.tif 000014
【００９３】
図７（ａ）に示す例では、図６（ｃ）に示す例と比較して、コンテキスト４の信頼度が１．０で高く、他３つのコンテキストの信頼度は０で低い。この条件で、コンテキスト５の推定値は１．０（集中度が１００パーセント）となる。しかし、コンテキスト５へ弱い影響を持つコンテキスト４の結果のみが信頼できることから、コンテキスト５の信頼度は非常に低い値（５パーセント信頼できる結果）となる。
【００９４】
次に、図７（ｂ）に示す例では、重み値をそれぞれ、Ｗ１５＝１．０、Ｗ２５＝１．０、Ｗ３５＝０．１、Ｗ４５＝０．１とする。また、各コンテキストの推定値をそれぞれ、Ｅ１＝０、Ｅ２＝０、Ｅ３＝１．０、Ｅ４＝１．０とする。さらに、各コンテキストの信頼度をそれぞれ、Ｃ１＝１．０、Ｃ２＝１．０、Ｃ３＝１．０、Ｃ４＝１．０とする。この場合、コンテキスト５の推定値Ｅ５、信頼度Ｃ５はそれぞれ、次の数１３式、数１４式のように表される。
【００９５】
【数１３】
2016110631.tif 000015
【００９６】
【数１４】
2016110631.tif 000016
【００９７】
図７（ｂ）に示す例では、４つのコンテキスト１〜４の信頼度は１．０で高いため、コンテキスト５の信頼度も高い値（１００パーセント信頼できる結果）となる。ただし、コンテキスト５への影響が強い２つのコンテキスト（コンテキスト１および２）の推定値は０で小さい。そのため、コンテキスト５の推定値は小さい値（集中度が９パーセント）となる。
【００９８】
次に、図７（ｃ）に示す例では、重み値をそれぞれ、Ｗ１５＝１．０、Ｗ２５＝１．０、Ｗ３５＝０．１、Ｗ４５＝０．１とする。また、各コンテキストの推定値をそれぞれ、Ｅ１＝０、Ｅ２＝０、Ｅ３＝１．０、Ｅ４＝１．０とする。さらに、各コンテキストの信頼度をそれぞれ、Ｃ１＝１．０、Ｃ２＝０、Ｃ３＝１．０、Ｃ４＝１．０とする。この場合、コンテキスト５の推定値Ｅ５、信頼度Ｃ５はそれぞれ、次の数１５式、数１６式のように表される。
【００９９】
【数１５】
2016110631.tif 000017
【０１００】
【数１６】
2016110631.tif 000018
【０１０１】
図７（ｃ）に示す例では、図７（ｂ）に示す例と比較して、コンテキスト２の信頼度が０で低い。その結果、コンテキスト５の推定値は０．１７（集中度が１７パーセント）となり、図７（ｂ）におけるコンテキスト５の推定値よりも大きくなる。これは、コンテキスト５への影響が強いコンテキスト２の信頼度が０となり、コンテキスト２の影響が及ばなくなったためである。一方、コンテキスト２の信頼度が０となったために、コンテキスト５の信頼度は０．５５となり、図７（ｂ）におけるコンテキスト５の信頼度よりも低くなる。
【０１０２】
このように、推定モデルの有向グラフをもとに、コンテキストが推定される。また、各コンテキストには信頼度が定められる。有向グラフの接続元のコンテキストの信頼度が低くても、接続先のコンテキストは推定される。ただし、信頼度の低いコンテキストの重み値が大きい場合には、その接続先のコンテキストの信頼度は下がることになる。
また、図５〜図７に示す例では、低層コンテキストから中層コンテキストを推定する例を示したが、中層コンテキストから高層コンテキストを推定する場合のように、他のコンテキストを推定する場合も同様の処理が行われる。
【０１０３】
また、コンテキストの推定処理では、コンテキストの推定結果に対する、有向グラフの接続元のセンサデータやコンテキストの推定値、信頼度、重み値が把握される。例えば、図６（ｂ）に示す例では、集中度は１００パーセントと推定される。その際の「目の開度」、「顔の正面度」の推定値も１．０（１００パーセント）である。この結果より、例えば、「目を開けて顔を正面に向けていたので集中していた」という説明が行われる。
【０１０４】
また、例えば、図７（ｂ）に示す例では、集中度は９パーセントと推定される。その際の「目の開度」、「顔の正面度」の推定値は０パーセント、「体姿勢の正面度」、「笑顔度」の推定値は１００パーセントである。そのため、例えば、「体の姿勢を正面に向けて笑顔であるので集中していなかった」、という説明が行われる。このように、コンテキストの推定処理において用いられた値をもとに、コンテキストの推定結果の説明が行われる。他のコンテキストの推定処理では、例えば、集中度が高くて興味度も高い場合、「好きな番組なので集中していた」などの説明が行われる。
【０１０５】
＜時系列方向についての予測処理の説明＞
次に、コンテキストの時系列のデータを用いて、コンテキストの予測を行う処理について説明する。コンテキストは、時間の経過とともに経過するデータであり、データの連続性により、近接した時刻間では、同種のコンテキスト同士には類似性がある。ただし、近接した時刻間でのコンテキストの類似性は、コンテキスト毎に変動量の特性によって異なる。そこで、推定モデルを時間方向に複製し、同種のコンテキスト同士を、ある重み（重み値）を持った有向グラフによって接続することで、コンテキストの予測を行う。
【０１０６】
図８は、同種のコンテキストを有向グラフで接続した予測モデルの一例を示す図である。図８に示す予測モデルは、時刻ｔ−２、ｔ−１、ｔ、ｔ＋１について、図３に示す推定モデルの各層の同種コンテキストを有向グラフで接続したものである。また、それぞれの有向グラフが有する重み値も示している。
【０１０７】
具体的には、図８に示す例において、「Ｓｅｎｓｏｒ」では、カメラのセンサデータを示している。「Ｌｏｗｅｒ  ｌａｙｅｒ  Ｃｏｎｔｅｘｔｓ」では、低層コンテキストとして「顔の正面度」を示している。「Ｍｉｄｄｌｅ  ｌａｙｅｒ  Ｃｏｎｔｅｘｔｓ」では、中層コンテキストとして「集中度」を示している。「Ｈｉｇｈｅｒ  ｌａｙｅｒ  Ｃｏｎｔｅｘｔｓ」では、高層コンテキストとして「ストレス度」を示している。「Ｏｔｈｅｒ  Ｃｏｎｔｅｘｔｓ」では、他コンテキストとして「家族構成」を示している。
【０１０８】
ここで、図８に示す予測モデルは、被験者に対する実験やアンケートなどにより訓練データを用意し、その訓練データを用いたパラメータ学習によって決定される。即ち、予測モデルにおける有向グラフの重み値は、訓練データを用いたパラメータ学習によって決定される。また、パラメータ学習には、例えば、ベイズモデルによるパラメータ学習や、遺伝的アルゴリズムによる最適解対策などがある。
【０１０９】
このような時系列毎の同種のコンテキストを接続した予測モデルにおいて、コンテキストの推定値Ｐ０ｔは、次の数１７式のように表される。
【０１１０】
【数１７】
2016110631.tif 000019
【０１１１】
数１７式において、ｔ及びｋは、ある時刻を表す。ｎは、時刻ｔのコンテキストの推定値を算出するために参照する時間幅を表す。Ｐ０ｔ（Ａ）は、時系列の値をもとに計算される、時刻ｔにおける、あるコンテキストＡの推定値を表す。Ｐｋ（Ａ）は、図３に示す推定モデルにより計算される、時刻ｋにおける、あるコンテキストＡの推定値を表す。Ｃｋ（Ａ）は、時刻ｋにおける、あるコンテキストＡの推定値の信頼度を表す。Ｗｋ，ｔ（Ａ）は、あるコンテキストＡについて、時刻ｋから時刻ｔへの重み値を表す。
【０１１２】
ここで、信頼度Ｃｋ（Ａ）は、図３に示す推定モデルを用いて、数２式にて計算される。例えば、時刻ｔ−２の場合、図３に示す推定モデルを用いて、図５〜図７に示す処理を行い、それぞれのコンテキスト毎に、時刻ｔ−２におけるコンテキストの信頼度Ｃｔ−２（Ａ）が計算される。また、例えば時刻ｔ−１の場合も同様に、図３に示す推定モデルを用いて、それぞれのコンテキスト毎に、時刻ｔ−１におけるコンテキストの信頼度Ｃｔ−１（Ａ）が計算される。即ち、同種のコンテキストであっても、それぞれの時刻毎に、信頼度が計算される。
【０１１３】
例えば、時刻ｔにおけるコンテキスト「家族構成」を推定する場合について説明する。時刻ｔにおけるコンテキスト「家族構成」が不明な場合、時刻ｔ−１や時刻ｔ−２の「家族構成」が自明ならば、それぞれの時刻の重み値を用いて、数１７式により、時刻ｔにおける「家族構成」の値が推定される。ここで、時系列の値をもとに計算される、時刻ｔにおけるコンテキスト「家族構成」の推定値をＰ０ｔとする。数１７式を用いることにより、Ｐ０ｔは、次の数１８式のように表される。
【０１１４】
【数１８】
2016110631.tif 000020
【０１１５】
図８に示す予測モデルにおいて、時刻ｔにおけるコンテキスト「家族構成」は、時刻ｔ−２におけるコンテキスト「家族構成」及び時刻ｔ−１におけるコンテキスト「家族構成」が有向グラフの接続元とされている。そのため、数１８式において、ｎ＝２になる。また、重み値の値は、図８に示す予測モデルで表しているように、Ｗｔ−２，ｔ＝０．９、Ｗｔ−１，ｔ＝０．９５、Ｗｔ，ｔ＝１．０として計算される。また、この例では、時刻ｔ−１の推定値Ｐｔ−１、及び時刻ｔ−２の推定値Ｐｔ−２は自明であり、図３に示す推定モデルを用いて計算される。さらに、信頼度Ｃｔ−２、Ｃｔ−１の値もそれぞれ、図３に示す推定モデルを用いて計算される。また、図３に示す推定モデルにより、時刻ｔの推定値Ｐｔ、時刻ｔの信頼度Ｃｔの値が計算されている場合には、数１８式の右辺の「Ｐｔ」、「Ｃｔ」に計算された値を代入すれば良い。なお、図３に示す推定モデルにより時刻ｔの推定値Ｐｔが計算されていない場合には、時刻ｔの信頼度Ｃｔを「０」として、右辺の「Ｃｔ」に「０」を代入すれば良い。
このようにして、数１８式に値を代入することにより、時刻ｔにおけるコンテキスト「家族構成」の推定値Ｐ０ｔが、時系列の値をもとに計算される。
【０１１６】
ここで、「家族構成」は、短時間で変わる可能性は低く変動の少ないコンテキストであるため、時系列間の重みは強い。そのため、有向グラフの重み値は、０．９〜１．０の範囲であり、大きな値を示している。「ストレス度」や「集中度」も、比較的変動の少ないコンテキストであり、時系列間の重みは比較的強い。そのため、有向グラフの重み値は、０．５〜０．８の範囲であり、比較的大きな値を示している。
【０１１７】
一方、「顔の正面度」は、顔の向きによって決まるために変動が大きいコンテキストであり、時系列間の重みは小さい。そのため、有向グラフの重み値は、０．２〜０．４の範囲であり、小さな値を示している。
一般的に、推定モデルで階層の高いコンテキストは時間変動量が少なく、階層の低いコンテキストは時間的変動量が大きい。また、センサデータについてはコンテキスト推定の対象ではないため、有向グラフでは接続していない。
【０１１８】
次に、時系列のデータを用いてコンテキストの予測を行う処理の手順について説明する。図９は、時系列のデータを用いてコンテキストの予測を行う処理手順の一例を示したフローチャートである。
【０１１９】
まず、コンテキスト推定部１０３は、被験者から提供された年齢や家族構成などの他コンテキストの値を読み込む（ステップ２０１）。ここでは、他コンテキストに応じて予め定められている信頼度の値も読み込まれる。ステップ２０１の処理は、他コンテキストが更新されるたびに行われる。
【０１２０】
次に、コンテキスト推定部１０３は、図５〜図７に示す推定処理のように、図３に示す推定モデルを用いて、各層のコンテキストの値を推定する。
ここで、コンテキスト推定部１０３は、まず、センサデータを一次処理（前処理）して低層コンテキストの値を推定する（ステップ２０２）。これらの推定には、例えば、画像認識や音声認識などの認識アルゴリズムが用いられる。即ち、センサデータを入力値として認識アルゴリズムを用いることにより、低層コンテキストの推定値が計算される。この場合、低層コンテキストの信頼度も、認識アルゴリズムにて出力される。この低層コンテキストの信頼度は、例えば、センサデータを収集した際の外部環境などに合わせて、値が変わる。
【０１２１】
次に、コンテキスト推定部１０３は、低層コンテキスト等の関連するコンテキストを用いて、中層コンテキストの値を推定する（ステップ２０３）。このとき、中層コンテキストの信頼度も計算される。次に、コンテキスト推定部１０３は、他コンテキストや中層コンテキスト等の関連するコンテキストを用いて、高層コンテキストの値を推定する（ステップ２０４）。このとき、高層コンテキストの信頼度も計算される。
【０１２２】
次に、コンテキスト推定部１０３は、図４に示すように、センサデータの不足などが原因により未推定となっているコンテキストの値について、関連する既知のコンテキストの値を用いて推定する（ステップ２０５）。このとき、推定されたコンテキストの信頼度も計算される。
【０１２３】
ある時刻においてステップ２０１〜ステップ２０５の処理を行うことにより、図３に示す推定モデルの各コンテキストについて、ある時刻における推定値が算出される。ただし、この時点でもまだ算出されていないコンテキストや、不具合により誤って推定されたコンテキストが存在していることが考えられる。このような場合のために、コンテキスト推定部１０３は、図８に示す予測モデルを用いて、すでに算出している過去の時系列の推定値を用いて、ある時刻におけるコンテキストの値を推定する（ステップ２０６）。ここで、コンテキスト推定部１０３は、推定する対象のコンテキストをどのように決めても良く、例えば、ある時刻においてまだ算出されていないコンテキストのみ算出しても良いし、推定モデルの各コンテキストの全てについて算出しても良い。
【０１２４】
付言すると、ステップ２０１〜ステップ２０５は、ある同時刻でのコンテキストの推定処理であり、ステップ２０６は、時系列方向についてのコンテキストの予測処理である。
そして、コンテキスト推定部１０３は、ステップ２０１〜ステップ２０６で得た各コンテキストの値を、コンテンツ評価結果生成部１０６に出力する（ステップ２０７）。そして、本処理フローは終了する。
【０１２５】
このように、時系列上のコンテキストの相関を見てコンテキストの推定が行われることにより、例えば、図３の推定モデルを用いた際に算出されていないコンテキストや誤って推定されたコンテキストの値が補完される。
【０１２６】
以上説明したように、本実施の形態に係るコンテキスト推定システムは、センサ装置３００を用いてユーザを観測し、得られたセンサデータをもとにコンテキストを推定する。コンテキストの推定において、コンテキスト推定システムは、センサデータおよびコンテキストを階層に積み重ねた推定モデルを使用する。
【０１２７】
推定モデルでは、センサデータから導出できない高層コンテキストについても、他の層のコンテキストと結び付いている。そのため、例えば、センサデータから導出可能なコンテキストの推定のみ行われるような構成とは違い、センサデータから導出できない高層コンテキストについても推定が行われる。また、推定モデルでは、１つのコンテキストに対して、複数のセンサデータや複数の他のコンテキストが結び付く場合がある。そのため、例えば、一部のセンサデータやコンテキストが欠落することでコンテキストの推定が行われない構成とは違い、欠落があった場合でも、別のセンサデータやコンテキストにて補完されて、推定が行われる。
【０１２８】
さらに、コンテキストの推定では、コンテキストの推定結果に対する、有向グラフの接続元のセンサデータやコンテキストの推定値、信頼度、重み値が把握される。そのため、コンテキストの推定結果の説明が行われ、センサデータやコンテキストの関係の分析に利用される。
【０１２９】
＜コンテンツ表示装置１００のハードウェア構成例＞
次に、コンテンツ表示装置１００のハードウェア構成について説明する。図１０は、第１の実施形態に係るに係るコンテンツ表示装置１００を構成するのに好適なハードウェア構成例を示す図である。ここでは、コンピュータに適用する場合について説明する。図１０に示すコンピュータは、演算手段であるＣＰＵ（Central Processing Unit）１００ａと、主記憶手段であるメモリ１００ｃを備える。また、外部デバイスとして、磁気ディスク装置（ＨＤＤ：Hard Disk Drive）１００ｇ、ネットワークインターフェイス１００ｆ、ディスプレイ装置を含む表示機構１００ｄ、音声機構１００ｈ、キーボードやマウス等の入力デバイス１００ｉ等を備える。
【０１３０】
図１０に示す構成例では、メモリ１００ｃおよび表示機構１００ｄは、システムコントローラ１００ｂを介してＣＰＵ１００ａに接続されている。また、ネットワークインターフェイス１００ｆ、磁気ディスク装置１００ｇ、音声機構１００ｈおよび入力デバイス１００ｉは、Ｉ／Ｏコントローラ１００ｅを介してシステムコントローラ１００ｂと接続されている。各構成要素は、システム・バスや入出力バス等の各種のバスによって接続される。
【０１３１】
また、図１０において、磁気ディスク装置１００ｇにはＯＳのプログラムやアプリケーション・プログラムが格納されている。そして、これらのプログラムがメモリ１００ｃに読み込まれてＣＰＵ１００ａに実行されることにより、本実施の形態に係るコンテンツ表示装置１００における各機能部の機能が実現される。また、コンテンツ表示部１０５、推薦結果表示部１０９は、例えば、表示機構１００ｄにより実現される。
【０１３２】
なお、図１０は、本実施の形態が適用されるのに好適なコンピュータのハードウェア構成を例示するに過ぎない。本実施の形態は、ユーザの状態を推定する機能を有する装置に広く適用できるものであり、図示の構成においてのみ本実施の形態が実現されるのではない。
【０１３３】
＜コンテキスト推定システムの他の構成例＞
次に、本実施の形態に係るコンテキスト推定システムの他の構成例について説明する。図１１は、第１の実施形態に係るコンテキスト推定システムの他の構成例を示す図である。図１１に示すコンテキスト推定システムは、センサデータを出力する装置をコンテンツ表示装置１００が内蔵している点で、図１に示すコンテキスト推定システムと異なる。即ち、図１１に示す例では、コンテンツ表示装置１００は、図１のセンサ装置３００の機能を具備している。本構成例において、図１に示す構成例と同様のものについては、同じ符号を付してその詳細な説明を省略する。
【０１３４】
コンテンツ表示装置１００は、例えば、デジタルサイネージ等であり、コンテンツ配信装置２００が送信するコンテンツを受信して表示する装置である。このコンテンツ表示装置１００は、センサデータ送信部１１０を備えており、センサデータ送信部１１０にてユーザを観測し、その観測結果であるセンサデータを出力する。そして、センサデータ受信部１０１は、センサデータ送信部１１０からセンサデータを受信する。
【０１３５】
コンテンツ配信装置２００は、広告やプロモーション映像等を配信するサービス会社により運営され、コンテンツを配信する装置である。ここで、コンテンツには、例えば、広告やプロモーション映像等の映像コンテンツ、音声コンテンツがある。或いは、映像コンテンツ又は音声コンテンツに関する説明を行う文書コンテンツをコンテンツに含めても良い。
【０１３６】
このような図１１に示す構成により、図１に示す構成と同様に、センサデータをもとにしたコンテキストの推定が行われる。また、コンテンツ評価結果が生成され、例えば、マーケティングのための情報として活用される。
【０１３７】
また、本実施の形態では、高層コンテキストに対して、中層コンテキストだけでなく低層コンテキストを接続することとしても良い。さらに、上の層のコンテキストから下の層のコンテキストに向けた有向グラフを示すこととしても良い。例えば、高層コンテキストから低層コンテキストに向けた有向グラフを示した推定モデルでは、高層コンテキストの推定値から、さらに、低層コンテキストが推定される。また、関連のある低層コンテキスト同士を接続することとしても良い。
【０１３８】
[第２の実施形態]
第１の実施形態では、センサデータ前処理部１０２が、前処理としてセンサデータをコンテキストの推定に必要な情報に加工し、コンテキスト推定部１０３が、センサデータ前処理部１０２により加工された情報をもとに、コンテキストを推定した。ここで、センサデータ前処理部１０２により前処理されたセンサデータには、センサによる計測エラーや前処理の誤認識等によるノイズが含まれている場合がある。そこで、第２の実施形態は、前処理されたセンサデータにノイズが含まれた場合の対策を行ったものである。
【０１３９】
図１２は、第２の実施形態に係るコンテキスト推定システムの機能構成例を示したブロック図である。このコンテキスト推定システムは、センサを用いてユーザを観測して得られるセンサデータをもとに、ユーザの状態を示すコンテキストを生成してユーザの状態を推定するシステムである。ユーザの状態には、ユーザの動作、行動に関するものも含まれるものとする。図示するように、コンテキスト推定システムは、コンテンツ表示装置５００と、コンテンツ配信装置２００と、センサ装置３００とを含む。ただし、図１２に示す例ではセンサ装置３００を１台設ける構成としているが、センサ装置３００を２台以上設けることとしても良い。
【０１４０】
なお、コンテンツ配信装置２００、センサ装置３００は、第１の実施の形態と同様の構成を有するため、ここでは説明を省略する。また、第２の実施形態に係るコンテンツ表示装置５００は、図１０に示すような第１の実施の形態に係るコンテンツ表示装置１００と同様のハードウェア構成を有するものとする。さらに、以下では、ユーザの状態を示すコンテキストを、「状態データ」と称して、説明を行う。
【０１４１】
コンテンツ表示装置５００は、例えば、テレビジョン受像機、携帯電話、ＰＣ（Personal Computer）、タブレット端末等であり、コンテンツ配信装置２００が送信するコンテンツを受信して表示する装置である。また、コンテンツ表示装置５００は、無線又は有線により接続されたセンサ装置３００からセンサデータを受け取ることもできる。このコンテンツ表示装置５００は、センサデータ受信部５０１と、センサデータ前処理部５０２と、状態認識エンジン選択部５０３と、状態推定部５０４と、コンテンツ受信部５０５と、コンテンツ表示部５０６とを含む。また、コンテンツ表示装置５００は、コンテンツ評価結果生成部５０７と、コンテンツ評価結果送信部５０８と、コンテンツ推薦結果生成部５０９と、推薦結果表示部５１０とを含む。
【０１４２】
センサデータ受信部５０１は、センサ装置３００のセンサデータ送信部３０１からセンサデータを受信する。
【０１４３】
センサデータ前処理部５０２は、状態データを推定するための前処理として、センサデータ受信部５０１が受信したセンサデータを、状態データの推定に必要な情報に加工する。
【０１４４】
選択手段の一例としての状態認識エンジン選択部５０３は、センサデータ前処理部５０２により加工された情報をもとに、状態データの推定に使用される状態認識エンジンを選択する。状態認識エンジンは、上述したように、例えばニューラルネットワークのような機械学習モデルを利用したものである。状態認識エンジンは、複数の入力ノードを有しており、センサデータ前処理部５０２によるセンサデータの前処理結果を入力として受け付ける。本実施の形態では、データ処理部の一例として、状態認識エンジンが用いられる。
【０１４５】
ここで、センサデータ前処理部５０２により前処理されたセンサデータには、センサによる計測エラーや前処理の誤認識等によるノイズが含まれている場合がある。そこで、本実施の形態では、前処理されたセンサデータにノイズが含まれた場合の対策として、入力ノードを削減してセンサデータの一部を入力とする状態認識エンジンが予め準備される。そして、状態認識エンジン選択部５０３は、前処理結果に含まれるノイズが状態データの推定に影響を与えないように、ノイズの有無により、予め準備された複数の状態認識エンジンの中から、状態データの推定に使用される状態認識エンジンの選択を行う。状態認識エンジン選択部５０３も、例えばニューラルネットワークのような機械学習モデルを利用しており、状態認識エンジンと同様の構造を有している。
【０１４６】
推定手段の一例としての状態推定部５０４は、状態認識エンジン選択部５０３にて選択された状態認識エンジンを用いて、前処理されたセンサデータをもとに状態データを推定する。
【０１４７】
コンテンツ受信手段の一例としてのコンテンツ受信部５０５は、コンテンツ配信装置２００のコンテンツ送信部２０１からコンテンツを受信する。ここで、コンテンツ受信部５０５は、コンテンツが地上波で配信される場合はチューナーに相当し、コンテンツがインターネットで配信される場合はネットワークアダプタ又は携帯端末に相当する。
【０１４８】
コンテンツ表示部５０６は、コンテンツ受信部５０５がコンテンツ配信装置２００から受信したコンテンツを表示する。
【０１４９】
推定手段の一例としてのコンテンツ評価結果生成部５０７は、状態推定部５０４が推定した状態データと、コンテンツ表示部５０６が表示しているコンテンツとを統合し、ユーザごとのコンテンツの評価結果を生成する。評価結果は、例えば、推定された興味度をもとにユーザの興味が高いとされる番組の一覧などである。本実施の形態では、対応関係の一例として、評価結果が用いられる。
【０１５０】
コンテンツ評価結果送信部５０８は、コンテンツ評価結果生成部５０７が生成したコンテンツ評価結果を、コンテンツ配信装置２００のコンテンツ評価結果受信部２０２に送信する。
【０１５１】
コンテンツ推薦結果生成部５０９は、コンテンツ評価結果生成部５０７が生成したコンテンツ評価結果をもとに、ユーザに推薦する番組などの推薦結果を生成する。コンテンツ推薦結果生成部５０９は、例えば、コンテンツ評価結果によりユーザの興味が高いと示される番組を抽出し、抽出した番組と同じジャンルの番組を推薦結果として生成する。
【０１５２】
推薦結果表示部５１０は、コンテンツ推薦結果生成部５０９が生成した推薦結果を表示して、ユーザにフィードバックする。
【０１５３】
このように、本実施の形態に係るコンテキスト推定システムは、センサ装置３００を用いてユーザを観測し、得られたセンサデータから状態データを推定する。状態データの推定において、コンテキスト推定システムは、センサデータのノイズが影響しないように状態認識エンジンの選択を行う。そして、コンテキスト推定システムは、選択した状態認識エンジンを用いて状態データを推定し、推定した状態データをもとにコンテンツ評価結果やユーザへの推薦結果を生成する。
【０１５４】
＜コンテンツ表示装置の処理フロー＞
次に、コンテンツ表示装置５００による処理について説明する。図１３は、第２の実施形態に係るコンテンツ表示装置５００による処理手順の一例を示したフローチャートである。初期状態として、状態データを推定するための複数の状態認識エンジンが予め準備されているものとする。
【０１５５】
まず、センサデータ受信部５０１は、センサ装置３００のセンサデータ送信部３０１からセンサデータを受信する（ステップ３０１）。次に、センサデータ前処理部５０２は、前処理として、センサデータを状態データの推定に必要な情報に加工する（ステップ３０２）。次に、状態認識エンジン選択部５０３は、前処理されたセンサデータに含まれるノイズに合わせて、予め準備された状態認識エンジンから状態データの推定に使用される状態認識エンジンを選択する（ステップ３０３）。具体的には、状態認識エンジン選択部５０３は、予め準備された各状態認識エンジンをどのくらいの重みで使用するかを示す値（以下、重み値と称する）を、状態認識エンジンごとに計算する。重み値の詳細については、後述する。
【０１５６】
次に、状態推定部５０４は、センサデータ前処理部５０２により前処理されたセンサデータと、状態認識エンジン選択部５０３により算出された重み値とをもとに、状態データを推定する（ステップ３０４）。ここで、状態推定部５０４は、状態認識エンジンごとに状態データを推定して重み値と積算し、それらを足し合わせることにより、合計の状態データを推定する。
【０１５７】
次に、コンテンツ評価結果生成部５０７は、状態推定部５０４が推定した状態データと、コンテンツ表示部５０６が表示しているコンテンツとを統合し、ユーザごとのコンテンツの評価結果を生成する（ステップ３０５）。ここで、コンテンツ表示部５０６は、コンテンツ受信部５０５がコンテンツ配信装置２００から受信したコンテンツを表示している。
【０１５８】
次に、コンテンツ評価結果送信部５０８は、コンテンツ評価結果生成部５０７が生成したコンテンツ評価結果をコンテンツ配信装置２００に送信する（ステップ３０６）。なお、コンテンツ評価結果は、コンテンツ推薦結果生成部５０９における推薦結果の生成にも用いられる。生成された推薦結果は、推薦結果表示部５１０により表示される。そして、本処理フローは終了する。
【０１５９】
＜状態データの推定処理の説明＞
次に、コンテンツ表示装置５００が状態データを推定する処理について、詳細に説明する。図１４は、コンテンツ表示装置５００が状態データを推定する処理の一例を説明するための図である。コンテンツ表示装置５００では、図１４に示すように、予め複数の状態認識エンジン（図１４に示す例では、状態認識エンジンＡ〜Ｉ）が準備されている。状態認識エンジンを準備する手順の詳細については、後述する。
【０１６０】
まず、センサデータ前処理部５０２は、センサデータの前処理結果が有効であるか否かを示すフラグ情報を生成する。即ち、センサデータ前処理部５０２は、前処理結果にノイズが含まれている場合には、その前処理結果が有効でない旨のフラグ情報を生成する。そして、状態認識エンジン選択部５０３は、フラグ情報を入力として受け付け、予め準備された状態認識エンジンの中から、状態データの推定に使用される状態認識エンジンを選択する。
【０１６１】
具体的には、状態認識エンジン選択部５０３は、フラグ情報をもとに、予め定められた規則に従って、準備された各状態認識エンジンをどのくらいの重みで使用するかを示す重み値を計算する。重み値は、状態認識エンジンごとに計算される。例えば、フラグ情報によりノイズが含まれている前処理結果がある場合、状態認識エンジン選択部５０３は、その前処理結果を入力とする状態認識エンジンについて、状態データの推定に用いないこととする。この場合、状態認識エンジン選択部５０３は、状態データの推定に用いない状態認識エンジンの重み値を「０」にする。また、例えば、ある状態認識エンジンの出力結果を重視する場合には、状態認識エンジン選択部５０３は、その状態認識エンジンの重み値を大きくする。本実施の形態では、重要度の一例として、重み値が用いられる。
【０１６２】
そして、状態推定部５０４は、センサデータ前処理部５０２による前処理結果のデータを受け付けて、状態認識エンジンごとに状態データを出力する。また、状態推定部５０４は、状態認識エンジンが出力する状態データについて、重み値をもとに重み付けして、状態データの推定を行う。付言すると、状態推定部５０４は、各状態認識エンジンが出力する状態データと、その状態データに対応する重み値とを積算し、それらを全て足し合わせて、状態データの推定を行う。
【０１６３】
ここで、推定される状態データは、数１９式のように表される。
【０１６４】
【数１９】
2016110631.tif 000021
【０１６５】
数１９式において、Ｒは推定される状態データ、ｎは状態認識エンジンの総数を表す。また、ｗは状態認識エンジン選択部５０３が出力する重み値、ｒｉはｉ番目の状態認識エンジンが出力する状態データを表す。
【０１６６】
図１４に示す例では、センサデータの前処理が成功すると、「顔の向き」、「目の開閉」、「笑顔」、「体の姿勢」、「移動」、「発話」のデータが得られる例である。ここで、「顔の向き」は、顔が正面を向いている度合い、「目の開閉」は、目が開いている度合い、「笑顔」は、笑顔の度合いを示す。また、「体の姿勢」は、体が正面を向いている度合い、「移動」は、体が移動している度合い、「発話」は、発話の大きさの度合いを示す。
【０１６７】
ここで、前処理に失敗して「笑顔」、「体の姿勢」のデータが得られず、「笑顔」、「体の姿勢」はノイズが介在したデータになるものとする。この場合、状態認識エンジン選択部５０３は、例えば、「入力ノード３」で「笑顔」のデータが有効ではない旨のフラグ情報を受け付ける。また、状態認識エンジン選択部５０３は、例えば、「入力ノード４」で「体の姿勢」のデータが有効ではない旨のフラグ情報を受け付ける。さらに、状態認識エンジン選択部５０３は、その他の「顔の向き」、「目の開閉」、「移動」、「発話」のデータについて、例えば「入力ノード１、２、５、６」で、有効である旨のフラグ情報を受け付ける。そして、状態認識エンジン選択部５０３は、受け付けたフラグ情報をもとに、状態認識エンジンＡ〜Ｉのそれぞれについて重み値を算出する。
【０１６８】
例えば、状態認識エンジン選択部５０３は、状態データの推定に使用する状態認識エンジン（図１４に示す例では、状態認識エンジンＡ、Ｂ）については、重み値を「０」ではない値とする。一方、状態認識エンジン選択部５０３は、状態データの推定に使用しない状態認識エンジン（図１４に示す例では、Ｃ〜Ｉ）については、重み値を「０」とする。そして、状態認識エンジン選択部５０３は、例えば、「出力ノード１」で状態認識エンジンＡの重み値を出力する。また、状態認識エンジン選択部５０３は、例えば、「出力ノード２」で状態認識エンジンＢの重み値を出力する。同様に、状態認識エンジン選択部５０３は、例えば、「出力ノード３〜９」で、順番に、状態認識エンジンＣ〜Ｉの重み値を出力する。出力された重み値は状態推定部５０４に入力される。
【０１６９】
次に、状態推定部５０４は、状態認識エンジンＡ〜Ｉのそれぞれにおいて、前処理結果のデータを受け付けて状態データを出力する。重み値が「０」ではない状態認識エンジン、例えば、状態認識エンジンＡは、「顔の向き」、「目の開閉」をそれぞれ入力ノード１、入力ノード２で受け付ける。そして、状態認識エンジンＡは、例えば、「出力ノード１」にて「集中度」の状態データを出力し、「出力ノード２」にて「興味度」の状態データを出力する。
【０１７０】
また、例えば、状態認識エンジンＢは、「目の開閉」、「移動」、「発話」をそれぞれ「入力ノード２」、「入力ノード５」、「入力ノード６」で受け付ける。そして、状態認識エンジンＢは、例えば、「出力ノード１」にて「集中度」の状態データを出力し、「出力ノード２」にて「興味度」の状態データを出力する。
一方、重み値が「０」の状態データ認識エンジンについては、その出力結果は状態データの推定に使用されない。そのため、状態推定部５０４は、重み値が「０」の状態データ認識エンジンについて、状態データを出力する処理を行わなくても良い。
【０１７１】
状態認識エンジンＡ、Ｂにて状態データが出力されると、状態推定部５０４は、数１９式のように、状態認識エンジンＡ、Ｂの出力結果に対してそれぞれの重み値を積算する。そして、状態推定部５０４は、積算された値を足し合わせることにより、ユーザの状態データ「集中度」、「興味度」の推定値を算出する。
【０１７２】
このようにして、状態認識エンジン選択部５０３は、センサデータの前処理結果に含まれるノイズに合わせて、予め準備された状態認識エンジンのそれぞれについて重み値を算出する。そして、状態推定部５０４は、各状態認識エンジンの出力結果を求めて重み値を積算し、積算結果を足し合わせて状態データを推定する。
【０１７３】
また、図１４に示す状態認識エンジンＨ、Ｉのように、状態認識エンジン選択部５０３は、ノイズが含まれる「笑顔」、「体の姿勢」のデータを受け付けない状態認識エンジンについて、重み値を「０」としても良い。後述するように、状態認識エンジンの重み値は、状態データの推定精度を高めるような学習パラメータをもとに計算される。
【０１７４】
＜状態認識エンジンを準備する手順の説明＞
次に、状態認識エンジンを予め準備する手順について、詳細に説明する。状態認識エンジンは、上述したように、センサ装置３００によるセンサデータの前処理結果の全てまたは一部を入力として受け付ける。そのため、例えばセンサ装置３００の数が増え、前処理結果として出力されるデータの種類数が増えると、状態認識エンジンのバリエーションも増えることとなる。一方、コンテンツ表示装置５００には、状態認識エンジンの処理に対して割り当て可能なメモリ容量やデータ容量が存在する。そのため、状態認識エンジンとしては、コンテンツ表示装置５００が許容するメモリ容量やデータ容量を考慮して準備される。
【０１７５】
具体的には、センサデータの前処理結果の種類（例えば、「顔の向き」、「目の開閉」、「笑顔」など）をもとに考え得る全ての状態認識エンジンのバリエーションの中から、最適な状態認識エンジン群を選び出す処理が行われる。この処理を行うにあたり、事前に被験者に対する実験が行われ、被験者を観測して得られたセンサデータが用意される。また、例えば被験者に対してアンケートが行われ、その被験者の状態データも取得される。この状態データは、被験者から直接取得され実際の被験者の状態を示すものであり、正解値として扱われる。即ち、被験者に対して、行動認識エンジンの入力値となるセンサデータと、正解値となる状態データとのデータセットが取得される。このような実験を複数の被験者に対して行うことにより（または、１人の被験者に対して複数の実験を行うことにより）、複数のデータセットが取得される。
【０１７６】
実験により複数のデータセットが取得された後、まず、状態認識エンジン選択部５０３は、一般的な探索処理の遺伝的アルゴリズム（以下、ＧＡと称する）を用いて、いくつかの状態認識エンジンを抽出する。ここでは、状態認識エンジン選択部５０３は、センサデータの前処理結果の種類をもとに考え得る全ての状態認識エンジンのバリエーションの中から、いくつかの状態認識エンジンを抽出する。そして、抽出された状態認識エンジン群に対して、実験により得られたセンサデータが入力される。センサデータの入力により、抽出された状態認識エンジン群において、状態データの推定が行われる。
【０１７７】
次に、推定結果として得られた状態データと、実験により得られた正解値の状態データとの比較が行われる。そして、推定結果の状態データが正解値に近ければ、推定結果は正答であるとされる。このような比較が複数のデータセットごとに行われる。その結果、複数のデータセットのうち何個のデータセットが正答であるかの割合を示す正答率が算出される。
【０１７８】
ここで、状態データを推定するためには、各状態認識エンジンに対応する重み値が必要である。そこで、状態認識エンジン選択部５０３は、重み値を計算するための計算ロジック（以下、学習パラメータと称する）を調整し、正答率が最も高くなるようにする。付言すると、状態認識エンジン選択部５０３は、フラグ情報を入力として受け付け、学習パラメータを用いて状態認識エンジンの重み値を算出する際、正答率が最も高くなるように学習パラメータを決定する。このようにして最も高い正答率が求まると、その正答率は、抽出された状態認識エンジン群における評価値として扱われる。
【０１７９】
抽出した状態認識エンジン群の評価値を算出すると、状態認識エンジン選択部５０３は、さらに、ＧＡを用いて、別の組み合わせとなる状態認識エンジン群を抽出する。そして、状態認識エンジン選択部５０３は、新たな状態認識エンジン群において、状態データの正答率が最も高くなるように、学習パラメータを調整する。最も高い正答率が求まると、新たな状態認識エンジン群における評価値として扱われる。
【０１８０】
このように、状態認識エンジン選択部５０３は、ＧＡを用いて、あらゆる組み合わせの状態認識エンジン群を抽出し、抽出した状態認識エンジン群における評価値を算出する。そして、算出された全ての評価値の中で最も評価値が高い状態認識エンジン群が、状態データを推定するための状態認識エンジンとして、予め準備されることとなる。ここで、ＧＡの処理において、どれだけの個数の状態認識エンジンを抽出するかを定義しておくことで、コンテンツ表示装置５００が許容するメモリ容量やデータ容量を満たす個数の状態認識エンジンが抽出される。そのため、コンテキスト推定システムが、例えば計算負荷の高い前処理を実行できないような低スペックであったとしても、ノイズの影響を抑制した状態データの推定が行われる。また、予め準備するものとして決定した状態認識エンジン群について、正答率の算出の過程で決定された学習パラメータは、実際の状態データの推定においても利用可能である。
【０１８１】
以上説明したように、本実施の形態に係るコンテキスト推定システムは、センサ装置３００を用いてユーザを観測し、得られたセンサデータをもとに状態データを推定する。状態データの推定において、コンテキスト推定システムは、センサデータの前処理結果に含まれるノイズに合わせて、状態認識エンジンの重み値を算出する。そのため、例えば、センサデータの前処理結果にノイズが含まれていてもそのまま入力として受け付けるような構成と比較して、本実施の形態では、ノイズの影響を抑制して状態データが推定される。
【０１８２】
また、本実施の形態では、被験者に対する実験をもとに正答率が最も高くなるような状態認識エンジン群を抽出することとしたが、このような構成に限られるものではない。例えば、状態認識エンジン群を抽出せずに、センサデータの前処理結果の種類をもとに考え得る全ての状態認識エンジンを準備することとしても良い。この場合には、準備する状態認識エンジンの数が増えるため、必要なメモリ容量およびデータ容量が増えるが、そのためのスペックが備わっていれば良い。
【０１８３】
＜コンテキスト推定システムの他の構成例＞
次に、本実施の形態に係るコンテキスト推定システムの他の構成例について説明する。図１５は、第２の実施形態に係るコンテキスト推定システムの他の構成例を示す図である。図１５に示すコンテキスト推定システムは、センサデータを出力する装置をコンテンツ表示装置５００が内蔵している点で、図１２に示すコンテキスト推定システムと異なる。即ち、図１５に示す例では、コンテンツ表示装置５００は、図１２のセンサ装置３００の機能を具備している。本構成例において、図１２に示す構成例と同様のものについては、同じ符号を付してその詳細な説明を省略する。
【０１８４】
コンテンツ表示装置５００は、例えば、デジタルサイネージ等であり、コンテンツ配信装置２００が送信するコンテンツを受信して表示する装置である。このコンテンツ表示装置５００は、センサデータ送信部５１１を備えており、センサデータ送信部５１１にてユーザを観測し、その観測結果であるセンサデータを出力する。そして、センサデータ受信部５０１は、センサデータ送信部５１１からセンサデータを受信する。
【０１８５】
コンテンツ配信装置２００は、広告やプロモーション映像等を配信するサービス会社により運営され、コンテンツを配信する装置である。ここで、コンテンツには、例えば、広告やプロモーション映像等の映像コンテンツ、音声コンテンツがある。或いは、映像コンテンツ又は音声コンテンツに関する説明を行う文書コンテンツをコンテンツに含めても良い。
【０１８６】
このような図１５に示す構成により、図１２に示す構成と同様に、センサデータをもとにした状態データの推定が行われる。また、コンテンツ評価結果が生成され、例えば、マーケティングのための情報として活用される。
【０１８７】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神および範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【０１８８】
１００…コンテンツ表示装置、１０１…センサデータ受信部、１０２…センサデータ前処理部、１０３…コンテキスト推定部、１０４…コンテンツ受信部、１０５…コンテンツ表示部、１０６…コンテンツ評価結果生成部、１０７…コンテンツ評価結果送信部、１０８…コンテンツ推薦結果生成部、１０９…推薦結果表示部、２００…コンテンツ配信装置、２０１…コンテンツ送信部、２０２…コンテンツ評価結果受信部、３００…センサ装置、３０１…センサデータ送信部、５００…コンテンツ表示装置、５０１…センサデータ受信部、５０２…センサデータ前処理部、５０３…状態認識エンジン選択部、５０４…状態推定部、５０５…コンテンツ受信部、５０６…コンテンツ表示部、５０７…コンテンツ評価結果生成部、５０８…コンテンツ評価結果送信部、５０９…コンテンツ推薦結果生成部、５１０…推薦結果表示部
【図１】
2016110631.tif 000022
【図２】
2016110631.tif 000023
【図３】
2016110631.tif 000024
【図４】
2016110631.tif 000025
【図５】
2016110631.tif 000026
【図６】
2016110631.tif 000027
【図７】
2016110631.tif 000028
【図８】
2016110631.tif 000029
【図９】
2016110631.tif 000030
【図１０】
2016110631.tif 000031
【図１１】
2016110631.tif 000032
【図１２】
2016110631.tif 000033
【図１３】
2016110631.tif 000034
【図１４】
2016110631.tif 000035
【図１５】
2016110631.tif 000036
【図１６】
2016110631.tif 000037