(57)【特許請求の範囲】
【請求項１】
複数のデータが配列されたデータ系列を取得する系列取得部と、
前記データ系列を断片化して、複数の部分データ系列を得る断片化部と、
前記複数の部分データ系列の少なくとも１つに出現する１以上のデータのパターンを複数抽出するパターン抽出部と、
前記複数の部分データ系列のそれぞれについて、複数の前記パターンのそれぞれを含むか否かに応じて異なる要素値を有する特徴ベクトルを生成する生成部と、
を備えるデータ処理装置。
【請求項２】
前記パターン抽出部は、前記複数の部分データ系列のうち、予め定められた基準数以上の部分データ系列に出現するパターンを複数抽出する請求項１に記載のデータ処理装置。
【請求項３】
前記生成部は、前記複数の部分データ系列のそれぞれについて、前記複数のパターンのそれぞれの有無を示す要素値を有する前記特徴ベクトルを生成する請求項１または２に記載のデータ処理装置。
【請求項４】
前記系列取得部は、少なくとも１次元の連続値を含む連続値データが配列された前記データ系列を取得し、
当該データ処理装置は、
連続値データの前記データ系列を離散化して、離散値データの前記データ系列を生成する離散化部を更に備え、
前記断片化部は、離散値データの前記データ系列を断片化して前記複数の部分データ系列を得る
請求項１から３のいずれか一項に記載のデータ処理装置。
【請求項５】
前記複数の部分データ系列のそれぞれを、前記特徴ベクトルに基づいて分類する分類部を更に備える請求項１から４のいずれか一項に記載のデータ処理装置。
【請求項６】
予め分類結果が付加された学習用の前記データ系列を断片化した前記複数の部分データ系列に対する複数の前記特徴ベクトルを用いて前記複数の部分データ系列の分類を学習する学習処理部を更に備える請求項５に記載のデータ処理装置。
【請求項７】
前記系列取得部は、前記複数のデータのそれぞれに分類結果が付加された学習用の前記データ系列を取得し、
当該データ処理装置は、学習用の前記データ系列を断片化した学習用の前記複数の部分データ系列のそれぞれについて、当該部分データ系列に含まれる各データに付加された分類結果から、当該部分データ系列の学習用の分類結果を生成する分類生成部を更に備え、
前記学習処理部は、学習用の前記複数の部分データ系列のそれぞれに対する前記特徴ベクトルおよび学習用の分類結果に基づいて、前記複数の部分データ系列の分類を学習する請求項６に記載のデータ処理装置。
【請求項８】
前記分類生成部は、学習用の前記複数の部分データ系列のそれぞれについて、当該部分データ系列に含まれる各データに予め定められた基準以上に異常を示す分類結果が付加されていることに応じて、当該部分データ系列に対して異常を示す分類結果を割り当てる請求項７に記載のデータ処理装置。
【請求項９】
前記系列取得部は、複数のイベントに応じた前記複数のデータが配列された前記データ系列を取得し、
前記分類部は、前記複数の部分データ系列のそれぞれについて、異常なイベントが発生したか否かを推定する
請求項５から８のいずれか一項に記載のデータ処理装置。
【請求項１０】
前記パターン抽出部は、少なくとも１つのパターンとして、パターンの端部のデータが特定され、パターンの端部以外の少なくとも一部においてデータが特定されていないパターンを抽出する請求項１から９のいずれか一項に記載のデータ処理装置。
【請求項１１】
複数のデータが配列されたデータ系列を取得する系列取得段階と、
前記データ系列を断片化して、複数の部分データ系列を得る断片化段階と、
前記複数の部分データ系列の少なくとも１つに出現する１以上のデータのパターンを複数抽出するパターン抽出段階と、
前記複数の部分データ系列のそれぞれについて、複数の前記パターンのそれぞれを含むか否かに応じて異なる要素値を有する特徴ベクトルを生成する生成段階と、
を備えるデータ処理方法。
【請求項１２】
コンピュータに、請求項１から１０のいずれか一項に記載のデータ処理装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、ユーザの習熟度等に応じて、操作説明画像を表示する操作表示装置、および情報を提供する情報提供装置が知られている。このような装置は、ユーザの操作速度、反応時間等のユーザ特性を測定し、ユーザの習熟度を判別していた（例えば、特許文献１〜６参照）。
特許文献１  特開２０１０−１２２７４８号公報
特許文献２  特開２００６−７２６６６号公報
特許文献３  特開２０１０−１８５６８６号公報
特許文献４  特開２０１４−１６７８１号公報
特許文献５  特開２０１３−４０８７号公報
特許文献６  特開２０１２−７９２００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
このような装置において、操作するユーザの入力から当該ユーザの状態を推定し、推定結果に応じて操作説明および情報等を提供することが望ましい。しかしながら、ユーザの入力動作等は、発生時刻が時間的に不規則（確率的）な現象なので、時系列のデータにした動作を、解析する方法が確立していなかった。特に、発生時刻が時間的に不規則な現象を示す時系列のデータから、ユーザの操作入力の特徴を検出することは困難であった。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、複数のデータが配列されたデータ系列を取得する系列取得部と、データ系列を断片化して、複数の部分データ系列を得る断片化部と、複数の部分データ系列の少なくとも１つに出現する１以上のデータのパターンを複数抽出するパターン抽出部と、複数の部分データ系列のそれぞれについて、複数のパターンのそれぞれを含むか否かに応じて異なる要素値を有する特徴ベクトルを生成する生成部と、を備えるデータ処理装置、データ処理方法、およびプログラムを提供する。
【０００５】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００６】
【図１】本実施形態に係るデータ処理装置１００の構成例を示す。
【図２】本実施形態に係るデータ処理装置１００の動作フローを示す。
【図３】本実施形態に係る系列取得部１１０が取得するデータ系列の一例を示す。
【図４】本実施形態に係る離散化部１３０が生成した離散値データの一例を示す。
【図５】本実施形態に係る断片化部１４０がデータ系列を断片化した部分データ系列の一例を示す。
【図６】本実施形態に係るデータ処理装置１００の変形例を示す。
【図７】本実施形態に係るデータ処理装置１００として機能するコンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００７】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００８】
図１は、本実施形態に係るデータ処理装置１００の構成例を示す。データ処理装置１００は、発生間隔が不規則で確率的な現象を示す時系列のデータを断片化し、断片化した部分データ系列に出現するパターンの有無または出現回数に応じて特徴ベクトルを生成し、特徴ベクトルに応じて部分データ系列を分類する。データ処理装置１００は、系列取得部１１０と、記憶部１２０と、離散化部１３０と、断片化部１４０と、パターン抽出部１５０と、生成部１６０と、分類部１７０と、を備える。
【０００９】
系列取得部１１０は、複数のデータが配列されたデータ系列を取得する。データ系列は、携帯端末、操作表示装置、および情報提供装置等を操作するユーザの入力を、予め定められた多次元空間のデータに変換した時系列のデータである。例えば、ユーザの入力動作をイベントとした場合、データ系列に複数のイベントに応じた複数のデータが配列される。系列取得部１１０は、時系列のデータのうち、１以上のデータに対応する分類結果または分類すべき結果の情報を、当該データと対応付けて取得してもよい。
【００１０】
データ系列は、例えば、ユーザがタッチパネルを指で触れた座標、触れた時間、触れた指の本数、触れたまま移動させた移動前後の座標、移動距離、移動させた時間、触れてから離間するまでの時間、操作しない時間、操作メニューのいずれを選択したか、タップ、ダブルクリック、スワイプ、ピンチインおよびピンチアウト等のユーザの動作を、それぞれ数値に変換し、当該数値を要素とする多次元ベクトルのデータが時系列に並ぶ。系列取得部１１０は、少なくとも１次元の連続値を含む連続値データが配列されたデータ系列を取得する。
【００１１】
系列取得部１１０は、ユーザが操作する装置等の入力部に接続され、データ系列を取得する。ここで、データ処理装置１００は、ユーザが操作する装置等の内部に組み込まれてもよい。これに代えて、系列取得部１１０は、予め定められた形式で記憶されたデータ系列を読み出して取得してもよい。また、系列取得部１１０は、ネットワーク等に接続され、当該ネットワークを介してデータ系列を取得してもよい。系列取得部１１０は、取得したデータ系列を記憶部１２０および／または離散化部１３０に供給する。
【００１２】
記憶部１２０は、系列取得部１１０に接続され、系列取得部１１０から受け取ったデータ系列を記憶する。また、記憶部１２０は、データ処理装置１００がデータ系列を処理する過程における中間データ、算出結果、およびパラメータ等をそれぞれ記憶してもよい。また、記憶部１２０は、データ処理装置１００内の各部の要求に応じて、記憶したデータを要求元に供給してよい。例えば、記憶部１２０は、系列取得部１１０に接続され、系列取得部１１０からデータ系列を受け取る場合、当該データ系列を記憶する。そして、記憶部１２０は、離散化部１３０の要求に応じて記憶したデータ系列を当該離散化部１３０に供給する。
【００１３】
離散化部１３０は、受けとった連続値データのデータ系列を離散化して、離散値データのデータ系列を生成する。離散化部１３０は、データ系列に含まれる連続値の要素を、予め定められた閾値と比較することで離散化させ、離散値データを生成する。これに代えて、離散化部１３０は、Ｋ平均法等の既知のアルゴリズムを用いて、Ｋ個のクラスタに離散化させてよい。これに代えて、離散化部１３０は、ＳＡＸ（Ｓｙｍｂｏｌｉｃ  Ａｇｇｒｅｇａｔｅ  ａｐｐｒｏＸｉｍａｔｉｏｎ）等の、時系列データを離散化させる既知の離散化手法を用いて、離散化させてもよい。離散化部１３０は、離散値データのデータ系列を断片化部１４０に供給する。
【００１４】
断片化部１４０は、離散化部１３０に接続され、受けとった離散値データのデータ系列を断片化して、複数の部分データ系列を得る。断片化部１４０は、予め定められた基準時間である窓幅を有する時間窓を用いて、離散値データのデータ系列を断片化する。これに代えて、断片化部１４０は、予め定められた基準個数のデータ毎に、離散値データのデータ系列を断片化してもよい。ここで、予め定められる基準時間および基準個数は、ユーザが設定する設定パラメータであり、当該設定パラメータは記憶部１２０に記憶されてよい。
【００１５】
断片化部１４０は、断片化したデータ系列に含まれる一部のデータが、他の断片化したデータ系列に含まれるように断片化してよい。断片化部１４０は、断片化したデータ系列をパターン抽出部１５０に供給する。
【００１６】
パターン抽出部１５０は、断片化部１４０に接続され、受けとった断片化した複数の部分データ系列の少なくとも１つに出現する１以上のデータのパターンを複数抽出する。パターン抽出部１５０は、例えば、断片化した複数の部分データ系列のうち、予め定められた基準数以上の部分データ系列に出現するパターンを複数抽出する。ここで、予め定められる基準数は、ユーザが設定する設定パラメータである。パターン抽出部１５０は、抽出した複数のパターンを生成部１６０に供給する。
【００１７】
生成部１６０は、パターン抽出部１５０に接続され、複数の部分データ系列のそれぞれについて、例えば、複数のパターンのそれぞれを含むか否かに応じて異なる要素値を有する特徴ベクトルを生成する。生成部１６０は、複数の部分データ系列のそれぞれについて、複数のパターンのそれぞれの有無を示す要素値を有する特徴ベクトルを生成してもよい。これに代えて、生成部１６０は、特徴ベクトルの要素値を、パターンの個数を表す要素値として生成してよい。また、生成部１６０は、複数のパターンのそれぞれを予め定められた個数以上含むか否かを示す要素値を有する特徴ベクトルを生成してもよい。生成部１６０は、生成した特徴ベクトルを分類部１７０に供給する。
【００１８】
分類部１７０は、生成部１６０に接続され、複数の部分データ系列のそれぞれを、受けとった特徴ベクトルに基づいて分類する。また、分類部１７０は、系列取得部１１０が複数のイベントに応じた複数のデータが配列されたデータ系列を取得する場合、複数の部分データ系列のそれぞれについて、異常なイベントが発生したか否かを推定してよい。
【００１９】
分類部１７０は、例えば、部分データ系列に対応するユーザの入力が、予め想定された入力動作の範囲内であるか否かを分類する。また、分類部１７０は、部分データ系列に対応するユーザの状態が、操作説明および情報等を提供すべきか否かを分類してよい。分類部１７０は、一例として、学習データ等によって学習可能な分類モデルである。
【００２０】
以上の本実施形態に係るデータ処理装置１００は、携帯端末等を操作するユーザの入力をデータ系列として取得し、取得したデータ系列を部分データ系列に断片化してから、ユーザの入力の特徴を検出する特徴ベクトルを生成する。そして、当該データ処理装置１００は、特徴ベクトルに応じて、ユーザの入力動作の異常を検出する。データ処理装置１００の検出動作について、図２を用いて説明する。
【００２１】
図２は、本実施形態に係るデータ処理装置１００の動作フローを示す。データ処理装置１００は、図２に示す動作フローを実行して、ユーザの入力動作の異常を検出する。本実施形態において、データ処理装置１００は、スマートフォン等の携帯端末に搭載され、ユーザの当該携帯端末を操作する動作の異常を検出する例を説明する。
【００２２】
まず、系列取得部１１０は、データ系列を取得する（Ｓ２００）。系列取得部１１０は、予め定められた時間毎にユーザの入力操作に応じたデータ系列を取得してよい。本実施形態のデータ処理装置１００は、系列取得部１１０が、図３に示すデータ系列を取得する例を説明する。
【００２３】
図３は、本実施形態に係る系列取得部１１０が取得するデータ系列の一例を示す。図３の横軸は経過時間、縦軸はデータ系列のデータに含まれる１つの要素の値を示す。即ち、図３は、１つの要素を有するデータが時系列に並ぶデータ系列を示す。ここで、図３は、データ系列の概略構成を示す目的で１つの要素について示したが、データ系列のデータには、複数の要素を有する。即ち、データ系列のデータは多次元ベクトルとなるが、本実施形態の説明においては、多次元の要素のうちの１つをデータ系列のデータの例として示す。
【００２４】
図３に示すように、系列取得部１１０は、データの発生間隔が時間的に一定ではないデータ系列を取得する。即ち、ユーザの操作入力は、一定時間毎に入力される場合はほとんどなく、データ系列は、このような操作入力に応じたデータであるので、データの時間間隔は不規則なものとなる。また、図３は、系列取得部１１０が、連続値のデータ系列を取得する例を示す。例えば、系列取得部１１０は、ユーザがタッチパネルを指で触れた時間、触れたまま移動させた時間、移動させた距離、触れてから離間するまでの時間、操作しない時間等に応じたデータを、時系列に並べたデータ系列を取得する。
【００２５】
次に、離散化部１３０は、離散値データを生成する（Ｓ２１０）。図４は、本実施形態に係る離散化部１３０が生成した離散値データの一例を示す。図４は、図３と同様に、横軸は経過時間、縦軸はデータ系列の要素の値を示す。図４は、離散化部１３０が予め定められた閾値を用いて、離散値データを生成した例を示す。
【００２６】
離散化部１３０は、例えば、閾値ｔｈ１以上の要素を有するデータをＡとする。また、離散化部１３０は、閾値ｔｈ２以上、かつ、閾値ｔｈ１未満の要素を有するデータをＢとする。また、離散化部１３０は、閾値ｔｈ３以上、かつ、閾値ｔｈ２未満の要素を有するデータをＣとする。また、離散化部１３０は、閾値ｔｈ３未満の要素を有するデータをＤとする。以上のように、離散化部１３０は、「ＤＣＣＡＢＣＢＢＢ」と並ぶ離散値のデータ系列を生成する。ここで、予め定められた閾値は、設定パラメータでよい。
【００２７】
次に、断片化部１４０は、データ系列を断片化する（Ｓ２２０）。図５は、本実施形態に係る断片化部１４０がデータ系列を断片化した部分データ系列の一例を示す。図５において、横軸は経過時間を示す。図５は、断片化部１４０が予め定められた基準時間である窓幅を有する時間窓を用いて、データ系列を断片化した例を示す。断片化部１４０は、一例として、データまたはイベントが発生する時刻から基準時間前までに発生したデータを含めたデータ系列を、部分データ系列とする。図５は、基準時間を略１０秒とした例を示す。
【００２８】
断片化部１４０は、一例として、ユーザの操作順に、部分データ系列を生成する例を説明する。断片化部１４０は、最初の入力操作に対応するデータＤについて、当該Ｄの入力よりも前の１０秒間に操作入力がなかったことに応じて、データＤを含む部分データ系列Ｓ１を生成する。次に、断片化部１４０は、次の入力操作に対応するデータＣについて、当該Ｃの入力よりも前の１０秒間の操作入力がＤであることに応じて、データＣおよびＤを含む部分データ系列Ｓ２を生成する。このように、断片化部１４０は、時系列に並ぶデータ毎にデータ系列を断片化し、部分データ系列Ｓ１〜Ｓ９を生成する。
【００２９】
次に、パターン抽出部１５０は、部分データ系列に出現するデータのパターンを抽出する（Ｓ２３０）。ここで、パターン抽出部１５０が、複数の部分データ系列のうち、予め定められた基準数以上の部分データ系列に出現するパターンを複数抽出する例を説明する。パターン抽出部１５０は、一例として、部分データ系列に３回以上出現するパターンを抽出する。
【００３０】
パターン抽出部１５０は、例えば、部分データ系列Ｓ１、Ｓ２、およびＳ３に、パターン「Ｄ」が出現することに応じて、パターン「Ｄ」を頻出パターンとして抽出する。同様に、パターン抽出部１５０は、パターン「Ａ」、「Ｂ」、および「Ｃ」を頻出パターンとして抽出する。その一方、パターン抽出部１５０は、パターン「ＣＣ」が部分データ系列Ｓ３およびＳ４の合計２回出現するが、他の部分データ系列には出現しないので、パターン「ＣＣ」は頻出パターンとして抽出しない。このようにして、パターン抽出部１５０は、ユーザの操作の特徴的なパターンを、部分データ系列に複数回出現するパターンとして抽出する。
【００３１】
ここで、パターン抽出部１５０は、少なくとも１つのパターンとして、パターンの端部のデータが特定され、パターンの端部以外の少なくとも一部においてデータが特定されていないパターンを抽出してもよい。即ち、パターン抽出部１５０は、少なくとも１つのパターンとして、特定したパターンの端部と、パターンの端部以外の少なくとも一部とを、パターンとして抽出してよい。例えば、パターン抽出部１５０は、部分データ系列Ｓ７のデータＢＣＢに応じて、パターンの端部を「Ｂ」と特定し、パターンの端部以外のデータＣＢからパターン「Ｂ」（およびパターン「Ｃ」）を抽出して、パターン「ＢＢ」（およびパターン「ＢＣ」）が出現したとする。即ち、パターン抽出部１５０は、データＢＣＢに対して、パターン「Ｂ」、「Ｃ」、「ＢＣ」、「ＣＢ」、「ＢＢ」、および「ＢＣＢ」が出現したとする。
【００３２】
これにより、パターン抽出部１５０は、部分データ系列Ｓ７、Ｓ８、およびＳ９に、パターン「ＢＢ」が出現することに応じて、当該パターン「ＢＢ」を頻出パターンとして抽出する。このように、パターン抽出部１５０は、ユーザが「ＢＢ」と操作したい場合に、実際に「ＢＢ」と操作した結果と、操作ミス等で「ＢＣＢ」等に操作した結果とを分離せずに、略同一の操作の特徴として抽出する。また、パターン抽出部１５０は、ユーザが入力操作に混乱、困難、および失敗等のつまずきが生じ、特徴的な操作をする場合の操作がパターン「ＢＢ」である場合でも、同様に、他の操作等が間に入力されたパターン（例えば、「ＢＡＣＢ」）と特徴を分離せず、略同一の特徴が出現したとする。
【００３３】
以上のように、本実施形態に係るパターン抽出部１５０は、ユーザの誤入力等を含め、部分データ系列に３回以上出現するデータのパターンとして、パターン「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」、および「ＢＢ」の５つのパターンを抽出する。なお、パターン抽出部１５０のパターンの抽出は、部分データ系列に出現したパターンのそれぞれについて逐次的に出現数をカウントしてもよく、ＰｒｅｆｉｘＳｐａｎ等の頻出パターンマイニングとして既知のアルゴリズム等を用いて実行してもよい。
【００３４】
次に、生成部１６０は、パターン抽出部１５０が抽出したパターンに基づき、部分データ系列のそれぞれに対応する特徴ベクトルを生成する（Ｓ２４０）。本実施形態に係る生成部１６０は、一例として、特徴ベクトルの要素の個数を、抽出されたパターンの数（本例の場合、５）と同一にする。そして、生成部１６０は、１番目の要素をパターン「Ａ」に対応させ、部分データ系列が当該パターン「Ａ」を含む場合に１番目の要素を１に、含まない場合に１番目の要素を０とする。同様に、生成部１６０は、２から５番目の要素を順にパターン「Ｂ」、「Ｃ」、「Ｄ」、および「ＢＢ」に対応させ、部分データ系列が含むパターンに応じて、対応する要素の１および０の値を決定する。
【００３５】
生成部１６０は、例えば、部分データ系列Ｓ１が、パターン「Ｄ」を含み、その他のパターン「Ａ」、「Ｂ」、「Ｃ」、および「ＢＢ」を含まないことに応じて、パターン「Ｄ」に対応する４番目の要素を１としたベクトル［０，０，０，１，０］を、特徴ベクトルφ（Ｓ１）として生成する。ここで、φ（ｘ）は、部分データ系列ｘに対する特徴ベクトルを示す。このように、生成部１６０は、それぞれの部分データ系列に対して、次式のように特徴ベクトルを生成する。
（数１）
φ（Ｓ１）＝［０，０，０，１，０］
φ（Ｓ２）＝［０，０，１，１，０］
φ（Ｓ３）＝［０，０，１，１，０］
φ（Ｓ４）＝［１，０，１，０，０］
φ（Ｓ５）＝［１，１，１，０，０］
φ（Ｓ６）＝［１，１，１，０，０］
φ（Ｓ７）＝［０，１，１，０，１］
φ（Ｓ８）＝［０，１，０，０，１］
φ（Ｓ９）＝［０，１，０，０，１］
【００３６】
次に、分類部１７０は、生成部１６０が生成した特徴ベクトルに応じて、部分データ系列をそれぞれ分類する。分類部１７０は、生成部１６０が部分データ系列に対応する特徴ベクトルを生成しているので、サポートベクターマシン（ＳＶＭ：Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）、およびロジスティック回帰等の既知の分類モデルによる識別手法を用いて、部分データ系列を分類することができる。
【００３７】
分類部１７０は、分類したそれぞれのグループの特徴を、当該グループに含まれる部分データ系列の特徴としてよい。即ち、分類部１７０は、部分データ系列がユーザによって入力された時刻における当該ユーザの状態を、当該グループの特徴とする。当該グループの特徴は、分類された部分データ系列を解析することにより、個別に割り当てられてよい。例えば、同一の動作を繰り返し操作することのない状況において、同一の動作を繰り返している部分データ系列のグループを、ユーザがつまずいている状況とする。
【００３８】
また、系列取得部１１０が、時系列のデータのうち、１以上のデータに対応する分類結果または分類すべき結果の情報を、当該データと対応付けて取得した場合、分類部１７０は、分類したそれぞれのグループの特徴を、当該グループに含まれる部分データ系列に対応する分類結果の情報に基づいて判断してよい。例えば、系列取得部１１０は、図３において、時系列データの最初の６点（図３の白丸のデータ）を、ユーザが順調に操作している通常状態であり、次の３点（図３の黒丸のデータ）を、ユーザがつまずいている状態であることを示す情報と共に、時系列データを取得する。
【００３９】
この場合、分類部１７０は、例えば、ユーザがつまずいている状態を示すデータＢが出現するパターン「Ｂ」および「ＢＢ」をより多く含む特徴ベクトル（φ（Ｓ７）、φ（Ｓ８）、およびφ（Ｓ９））を有するグループの特徴を、ユーザがつまずいていると予め決定しておく。これによって、データ処理装置１００は、当該グループに分類される他の部分データ系列を、ユーザがつまずいていると特徴付けることができ、当該部分データ系列を操作した時刻のユーザの状態を、つまずいていると判断することができる。
【００４０】
また、このように、系列取得部１１０が、時系列のデータのうち、複数のデータに対応する分類結果または分類すべき結果の情報を、当該データと対応付けて取得する場合、データ処理装置１００は、設定パラメータを交差検定により定めてよい。即ち、データ処理装置１００は、当該複数のデータのうちの一部を用いて特徴ベクトルを生成し、それぞれの部分データ系列が抽出したパターンを含むか否か等を確認する。データ処理装置１００は、確認結果より、ユーザが設定すべき設定パラメータを調整してよい。そして、データ処理装置１００は、当該複数のデータのうちの残りの一部を用いて特徴ベクトルを生成し、部分データ系列が抽出したパターンを含むか否か等を確認して、設定パラメータを調整してよい。これにより、データ処理装置１００は、分類部１７０の分類動作を最適化することができる。
【００４１】
以上のように、本実施形態のデータ処理装置１００は、時系列データを断片化し、断片化した部分データ系列に出現する頻出パターンを抽出するので、時系列データの各データの発生が時間的に不等間隔であっても、抽出したパターンに応じて特徴ベクトルを生成することができる。これによって、データ処理装置１００は、特徴ベクトルに応じて、部分データ系列のそれぞれを特徴付けることができる。したがって、データ処理装置１００は、ユーザの入力動作等といった発生時刻が時間的に不規則な現象を、時系列のデータとして表現することで、当該ユーザの状態を推定することができ、推定結果に応じて異常の検出、操作説明の提供、および情報等の提供を実行することができる。
【００４２】
また、本実施形態のデータ処理装置１００は、生成部１６０が既知の識別手法および解析手法等を用いて処理することができる汎用性の高い特徴ベクトルを生成することができる。したがって、データ処理装置１００は、他のアルゴリズムおよび他の装置等によって特徴付けられたパラメータ等を、特徴ベクトルの要素として追加してもよい。また、データ処理装置１００は、生成した特徴ベクトルを他のアプリケーション等に供給してもよい。この場合、データ処理装置１００は、分類部１７０を備えずに、特徴ベクトルを生成して時系列データを特徴付ける装置として機能してもよい。
【００４３】
以上の本実施形態のデータ処理装置１００は、断片化部１４０が、離散値データのデータ系列を断片化して複数の部分データ系列を得、パターン抽出部１５０が当該複数の部分データ系列からパターンを抽出する例を説明した。これに代えて、パターン抽出部１５０は、離散値データの全体のデータ系列からパターンを抽出してもよい。パターン抽出部１５０は、例えば、データ１点毎に、予め定められた時間まで時系列にさかのぼり、さかのぼった時間の間に発生するデータ系列の中から出現するパターンを抽出する。
【００４４】
パターン抽出部１５０は、一例として、図４の離散値のデータ系列が入力された場合、まず、データＤから予め定められた時間だけ時系列にさかのぼる。データＤ以前には操作入力がないので、パターン抽出部１５０は、パターン「Ｄ」が出現したとする。次に、パターン抽出部１５０は、データＣから予め定められた時間だけ時系列にさかのぼり、データ列ＣＤからパターン「Ｃ」および「Ｄ」が出現したとする。次に、パターン抽出部１５０は、データＣから予め定められた時間だけ時系列にさかのぼり、データ列ＣＣＤからパターン「Ｃ」、「Ｄ」、「ＣＣ」、「ＣＤ」および「ＣＣＤ」が出現したとする。このように、パターン抽出部１５０は、時系列に並ぶデータ毎に、パターンの出現を確認し、予め定められた基準数以上のパターンの出現に応じて、頻出パターンを抽出してよい。
【００４５】
また、以上の本実施形態のデータ処理装置１００は、パターン抽出部１５０が、ユーザの誤入力等を含めて、部分データ系列に出現するデータのパターンを抽出する例を説明した。これに代えて、パターン抽出部１５０は、ユーザの誤入力等を含めずに、データのパターンを抽出してもよい。即ち、パターン抽出部１５０は、例えば、データ列ＢＣＢに対して、パターン「ＢＢ」は出現していないとする。
【００４６】
これに代えて、パターン抽出部１５０は、ユーザが操作するアプリケーションに応じて、ユーザの誤入力を含めるか否かを決定してよい。また、ユーザの誤入力を含めるか否かは、ユーザが設定する設定パラメータであってよく、この場合、パターン抽出部１５０は、当該設定パラメータの設定に応じて、データのパターンを抽出する。
【００４７】
図６は、本実施形態に係るデータ処理装置１００の変形例を示す。本変形例のデータ処理装置１００において、図１に示された本実施形態に係るデータ処理装置１００の動作と略同一のものには同一の符号を付け、説明を省略する。本変形例のデータ処理装置１００は、部分データ系列に対して分類結果を付加しつつ、特徴ベクトルを生成し、当該分類結果および特徴ベクトルを用いて分類部１７０を学習する。データ処理装置１００は、分類生成部３１０と、学習処理部３２０とを更に備える。
【００４８】
分類生成部３１０は、学習用のデータ系列を断片化した学習用の複数の部分データ系列のそれぞれについて、当該部分データ系列に含まれる各データに付加された分類結果から、当該部分データ系列の学習用の分類結果を生成する。この場合、系列取得部１１０は、複数のデータのそれぞれに分類結果が予め付加された学習用のデータ系列を取得する。分類生成部３１０は、断片化部１４０に接続され、断片化部１４０が断片化した複数の部分データ系列の分類結果をそれぞれ生成する。分類生成部３１０は、部分データ系列に含まれるデータのそれぞれに付加された分類結果の数に応じて、分類結果を生成してよい。
【００４９】
ここで、図４に示された、時系列に並ぶ離散化されたデータ系列（ＤＣＣＡＢＣＢＢＢ）を用いて、分類生成部３１０の動作について説明する。データ系列の最初の６つのデータ（ＤＣＣＡＢＣ）はユーザの「通常の操作入力」であり、次の３つのデータ（ＢＢＢ）はユーザの「操作入力のつまずき」である分類結果が付加されているとする。
【００５０】
例えば、分類生成部３１０は、部分データ系列Ｓ１〜Ｓ６のそれぞれが有するデータの分類結果が全て「通常の操作入力」であることに応じて、当該部分データ系列Ｓ１〜Ｓ６の分類結果を「通常の操作入力」とする。また、分類生成部３１０は、部分データ系列Ｓ７が有するデータの分類結果のうち、２つが「通常の操作入力」であり、１つが「操作入力のつまずき」であることに応じて、当該部分データ系列Ｓ７の分類結果を「通常の操作入力」とする。また、分類生成部３１０は、部分データ系列Ｓ８およびＳ９がそれぞれ有するデータの分類結果が全て「操作入力のつまずき」であることに応じて、当該部分データ系列Ｓ８およびＳ９の分類結果を「操作入力のつまずき」とする。
【００５１】
このように、分類生成部３１０は、部分データ系列に含まれるデータに対応して予め付加された分類結果の数が多い方の分類結果を、当該部分データ系列の分類結果としてよい。これに代えて、または、これに加えて、分類生成部３１０は、学習用の複数の部分データ系列のそれぞれについて、当該部分データ系列に含まれる各データに予め定められた基準以上に異常を示す分類結果が付加されていることに応じて、当該部分データ系列に対して異常を示す分類結果を割り当てる。
【００５２】
分類生成部３１０は、一例として、２以上の「操作入力のつまずき」の分類結果が付加されたデータを含む部分データ系列の分類結果を、「操作入力のつまずき」とする。この場合においても、分類生成部３１０は、部分データ系列Ｓ８およびＳ９の分類結果を「操作入力のつまずき」とする。このようにして、分類生成部３１０は、部分データ系列をより正確に分類結果を付加することができる。
【００５３】
学習処理部３２０は、予め分類結果が付加された学習用のデータ系列を断片化した複数の部分データ系列に対する複数の特徴ベクトルを用いて、複数の部分データ系列の分類を学習する。学習処理部３２０は、生成部１６０に接続され、生成部１６０が生成した特徴ベクトルおよび分類生成部３１０が付加した部分データ系列の分類結果を、学習用のデータとして取得する。
【００５４】
学習処理部３２０は、学習用の複数の部分データ系列のそれぞれに対する特徴ベクトルおよび学習用の分類結果に基づいて、複数の部分データ系列の分類を学習する。学習処理部３２０は、分類部１７０に接続され、特徴ベクトルに応じて分類した分類部１７０の分類結果を取得して、分類部１７０を学習する。ここで、分類部１７０は、既知の分類モデルでよい。
【００５５】
例えば、学習処理部３２０は、取得した学習用のデータ系列をトレーニングデータおよびテストデータのデータ系列に分割する。学習処理部３２０は、予め定められた割合で、データ系列をトレーニングデータおよびテストデータに分割してよい。そして、学習処理部３２０は、トレーニングデータを用いて分類部１７０を学習する。分類部１７０は、生成部１６０が生成した特徴ベクトルに応じて、部分データ系列をそれぞれ分類する。分類部１７０の動作は、図２で説明したので、ここでは省略する。分類部１７０は、分類結果を学習処理部３２０に供給する。
【００５６】
学習処理部３２０は、受けとった分類結果と、分類生成部３１０が生成した分類結果とを比較し、分類結果が一致している割合に応じて、分類部１７０を学習する。学習処理部３２０は、一例として、分類部１７０の分類結果が予め定められた正解率未満の場合（分類生成部３１０の分類結果と一致する割合が予め定められた割合よりも低い場合）に、分類部１７０のパラメータ等を変更して、同一のトレーニングデータを用いて分類部１７０の分類動作を実行させる。
【００５７】
また、学習処理部３２０は、分類部１７０の分類結果が予め定められた正解率以上となった場合、トレーニングデータによる学習を終了する。そして、学習処理部３２０は、トレーニングデータをテストデータに変更し、学習した分類部１７０を用いてテストデータの分類結果を予測する。学習処理部３２０は、一例として、テストデータを用いた予測結果の正解率が予め定められた値以上になった場合に、分類部１７０の学習を終了する。また、学習処理部３２０は、分類部１７０の分類結果が予め定められた正解率未満の場合に、テストデータをトレーニングデータに変更し、かつ、設定パラメータ等を変更し、トレーニングデータの学習を実行させてよい。
【００５８】
このように、学習処理部３２０は、まず、トレーニングデータを用いて、データ系列の正解率が予め定められた値以上となるように分類部１７０を学習する。そして、学習処理部３２０は、学習した分類部１７０を用いてテストデータの分類結果を予測し、予測結果の正解率が予め定められた値未満の場合は学習が不十分と判断して、トレーニングデータの学習に戻る。ここで、学習処理部３２０は、前回のトレーニングデータによる分類部１７０の学習に用いたパラメータとは異なるパラメータを用いてトレーニングデータを用いた分類部１７０の学習を実行することが好ましい。また、学習処理部３２０は、正解率の閾値の値を変更して、トレーニングデータを用いた分類部１７０の学習を実行してもよい。
【００５９】
以上のように、本変形例のデータ処理装置１００は、予め部分データ系列の分類結果となるべき目標データが付加された学習データを用いて分類結果を評価するので、分類結果の正解率を向上させるように学習することができる。
【００６０】
図７は、本実施形態に係るデータ処理装置１００として機能するコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、および表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、およびＤＶＤドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、および入出力チップ２０７０を有するレガシー入出力部と、を備える。
【００６１】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００およびグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０およびＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００６２】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラムおよびデータを格納する。ＤＶＤドライブ２０６０は、ＤＶＤ−ＲＯＭ２０９５からプログラムまたはデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００６３】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、および入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、および／または、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラムまたはデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００６４】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＤＶＤ−ＲＯＭ２０９５、またはＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００６５】
プログラムは、コンピュータ１９００にインストールされ、コンピュータ１９００を系列取得部１１０、記憶部１２０、離散化部１３０、断片化部１４０、パターン抽出部１５０、生成部１６０、および分類部１７０として機能させる。
【００６６】
プログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である系列取得部１１０、記憶部１２０、離散化部１３０、断片化部１４０、パターン抽出部１５０、生成部１６０、および分類部１７０として機能する。そして、この具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算または加工を実現することにより、使用目的に応じた特有のデータ処理装置１００が構築される。
【００６７】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、またはＤＶＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置または通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０または記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００６８】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０（ＤＶＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、および／または記憶装置に含まれるものとする。
【００６９】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（または不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【００７０】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【００７１】
以上に示したプログラムまたはモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＤＶＤ−ＲＯＭ２０９５の他に、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）、またはＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークまたはインターネットに接続されたサーバシステムに設けたハードディスクまたはＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【００７２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００７３】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００７４】
１００  データ処理装置、１１０  系列取得部、１２０  記憶部、１３０  離散化部、１４０  断片化部、１５０  パターン抽出部、１６０  生成部、１７０  分類部、３１０  分類生成部、３２０  学習処理部、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスクドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＤＶＤドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＤＶＤ−ＲＯＭ
【図１】
0005936240.tif 000002
【図２】
0005936240.tif 000003
【図３】
0005936240.tif 000004
【図４】
0005936240.tif 000005
【図５】
0005936240.tif 000006
【図６】
0005936240.tif 000007
【図７】
0005936240.tif 000008