説明

データフロー解析装置、データフロー解析システム、データフロー解析方法およびデータフロー解析プログラム

【課題】NW上で、高速かつ連続に到達するトラフィックデータに対し、データの蓄積が非常に少ない状態で、行動解析等に対して高度な計算を行うことが可能となる。
【解決手段】ネットワーク上で転送されるパケットストリーム104から、特定のパケットストリームを選別し、選別されたパケットストリームに含まれる複数のキーワードに基づいて、各キーワードのスコアを各要素とする特徴ベクトルを生成するフィルタ部210と、特徴ベクトルの系列に対してキーワードの発生確率を時系列的に保持するモデルに当てはめることによって、ユーザの潜在的な興味状態の変化を系列として出力する分析部220とを備えるデータフロー解析装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク(以下、NW)上のデータフローを解析するためのデータフロー解析装置、データフロー解析システム、データフロー解析方法およびデータフロー解析プログラムに関する。
【背景技術】
【0002】
NW上で、複数のストリームを処理する方式に関する技術としては非特許文献1、及び特許文献1に記載されたものが存在する。この技術は、NW上の特殊ブリッジを操作し、所望の処理をグラフ状に組み合わせることで、NW上に散在する処理サーバに、任意のストリームを迂回経由させて、様々な処理を適用することが可能となるという特徴を持っている。
【0003】
ストリーム処理に関する従来技術の方向性としては、非特許文献2に記載された技術があり、主に処理をネットワーク化して並列化する非特許文献3やGPU(Graphics Processing Unit)と呼ばれる特殊プロセッサ上で高速に処理することを目的とした非特許文献4に記載された技術が存在する。これらは、基本的には非常に少ないメモリと計算資源という制約があるため、厳密解の計算を諦め、確率的に解く算出方法を用いている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−049905号公報
【非特許文献】
【0005】
【非特許文献1】Satoshi Kondoh, Takaaki Moriya, Hiroyuki Ohnishi, and Miki Hirano,“A Method of bridging and processing Media stream on Network,” Global Telecommunications Conference, 2008 (IEEE Globecom 2008), IEEE, 2008年, CS01M1−5
【非特許文献2】有村博紀、「大規模データストリームのためのマイニング技術の動向」、電子情報通信学会論文誌、2005年3月、D−I Vol.J88−D−I No.3 pp.563−575
【非特許文献3】榑林亮介、片山勝、山中直明、塩本公平、「ハッシュ型オートマトンによる文字列検索の並列化手法」、信学技報、社団法人電子情報通信学会、2004年3月8日、CAS2003−114 DSP2003−216、 pp.49−54
【非特許文献4】Nigel Jacob, Carla Brodley, “Offloading IDS Computation to the GPU,” Proceedings of the 22nd Annual Computer Security Applications Conference (ACSAC’06), IEEE Computer Society, 2006年, pp. 371−380
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載されている技術では、トラフィックデータの送受信MAC(Media Access Control)/IP(Internet Protocol)アドレス/ポートからストリームを選別して、上位のデータ処理サーバに転送や迂回等をさせていた。この方法では、L2(OSI(Open System Interconnection)参照モデルの2層(データリンク層))、L3(3層(ネットワーク層))、L4(4層(トランスポート層))で予め決定可能なデータフローは、データ解析が可能だが、L7(7層(アプリケーション層))に含まれるデータでデータフローを選別する場合は、全てのデータフローをデータ解析サーバに転送するため、データ解析サーバの負荷が高くなるという問題があった。
【0007】
また、データストリーム処理による統計量の算出では、省メモリを優先させるため、種類数、平均、偏りなどの簡単な統計に限られていた。並列化手法としても文字列等のパターン照合や一部構文解析などに限定されていた。更にパターン認識の基となるオートマトン等も一度構築すると、傾向が変わった際の再構築には非常にコストがかかるという問題があった。
【0008】
本発明は、上記の事情に鑑み、NW上で、高速かつ連続に到達するトラフィックデータに対し、データの蓄積が非常に少ない状態で、行動解析等に対して高度な計算を行うことが可能となるデータフロー解析装置、データフロー解析システム、データフロー解析方法およびデータフロー解析プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するため、請求項1記載の発明は、ネットワーク上で転送されるパケットストリームから、特定のパケットストリームを選別し、選別されたパケットストリームに含まれる複数のキーワードに基づいて、各キーワードのスコアを各要素とする特徴ベクトルを生成するフィルタ部と、前記特徴ベクトルの系列に対して前記キーワードの発生確率を時系列的に保持するモデルに当てはめることによって、ユーザの潜在的な興味状態の変化を系列として出力する分析部とを備えることを特徴とするデータフロー解析装置である。
【0010】
請求項2記載の発明は、前記パケットストリームに含まれるキーワードの分布から、前記時系列なモデル上の潜在状態の数の増減と、前記フィルタ部の選別パラメータの更新とを行う機能を有することを特徴とする。
【0011】
請求項3記載の発明は、前記パケットストリームから前記キーワードを抽出する処理、前記特徴ベクトルの系列に対して前記キーワードの発生確率を時系列的に保持するモデルに当てはめる処理、又は前記時系列なモデル上の潜在状態の数の増減と、前記フィルタ部の選別パラメータの更新とを行う機能の少なくとも1つが、ストリーム処理可能なアルゴリズムで、並列処理可能なプロセッサ上で実装されていることを特徴とする。
【0012】
請求項4記載の発明は、前記キーワードの発生確率を時系列的に保持するモデルが、前記特徴ベクトルの系列を低い次元に射影したものであることを特徴とする。
【0013】
請求項5記載の発明は、前記特定のパケットストリームの選別が、前記パケットストリームのパケットヘッダ及びパケットペイロードの内容を、所定の条件に基づいて検査することで行われることを特徴とする。
【0014】
請求項6記載の発明は、前記ユーザの潜在的な興味状態の変化を系列として出力する処理が、予め登録されたキーワードに関する情報を用いた比較処理を含むものであることを特徴とする。
【0015】
請求項7記載の発明は、前記特徴ベクトルが、所定の時間幅に対応づけられていることを特徴とする。
【0016】
請求項8記載の発明は、ネットワーク上で転送されるパケットストリームから、特定のパケットストリームを選別し、選別されたパケットストリームに含まれる複数のキーワードに基づいて、各キーワードのスコアを各要素とする特徴ベクトルを生成するフィルタ部と、前記特徴ベクトルの系列に対して前記キーワードの発生確率を時系列的に保持するモデルに当てはめることによって、ユーザの潜在的な興味状態の変化を系列として出力する分析部とを有するデータフロー解析装置と、前記パケットストリームを、前記データフロー解析装置へ送信し又は前記データフロー解析装置から受信する複数の端末と、前記データフロー解析装置から前記分析部の出力結果に応じた情報を受け取る1又は複数の端末とを備えることを特徴とするデータフロー解析システムである。
【0017】
請求項9記載の発明は、ネットワーク上で転送されるパケットストリームから、特定のパケットストリームを選別し、選別されたパケットストリームに含まれる複数のキーワードに基づいて、各キーワードのスコアを各要素とする特徴ベクトルを生成する過程と、前記特徴ベクトルの系列に対して前記キーワードの発生確率を時系列的に保持するモデルに当てはめることによって、ユーザの潜在的な興味状態の変化を系列として出力する過程とを含むことを特徴とするデータフロー解析方法である。
【0018】
請求項10記載の発明は、ネットワーク上で転送されるパケットストリームから、特定のパケットストリームを選別し、選別されたパケットストリームに含まれる複数のキーワードに基づいて、各キーワードのスコアを各要素とする特徴ベクトルを生成する過程と、前記特徴ベクトルの系列に対して前記キーワードの発生確率を時系列的に保持するモデルに当てはめることによって、ユーザの潜在的な興味状態の変化を系列として出力する過程とをコンピュータによって実行させるための指令を含むことを特徴とするデータフロー解析プログラムである。
【発明の効果】
【0019】
本発明は、ネットワーク上で転送されるパケットストリームから、特定のパケットストリームを選別し、選別されたパケットストリームに含まれる複数のキーワードに基づいて、各キーワードのスコアを各要素とする特徴ベクトルを生成するフィルタ部と、前記特徴ベクトルの系列に対して前記キーワードの発生確率を時系列的に保持するモデルに当てはめることによって、ユーザの潜在的な興味状態の変化を系列として出力する分析部とを備えるので、一般にNW上で、高速かつ連続に到達するトラフィックデータに対し、データを蓄積が非常に少ない状態で、行動解析等に高度な計算を行うことが可能となる。これにより、NWを介したユーザの行動を、端末、サーバを跨ぐという点で広範囲に収集することが可能となる。また、NWで認識処理を行うことで、端末やサーバに特別なソフトウェアをインストールする必要がなくても、データ処理対象として扱えるため、別のサービス利用に関する行動を、簡単に解析対象とすることができるという拡張性もある。
【図面の簡単な説明】
【0020】
【図1】本発明の一実施の形態としてのフローベース行動解析システムの構成例を示すシステム図である。
【図2】図1のフローベース行動解析装置101の機能構成例を示すブロック図である。
【図3】図2のフィルタ部210の動作シーケンスを示すシーケンス図である。
【図4】図2のフィルタ部210における特徴ベクトル抽出例を示す説明図である。
【図5】図2の分析部220における動作シーケンスを示すシーケンス図である。
【図6】図1のフローベース行動解析装置101で用いられる潜在状態遷移モデルの一例を説明するための説明図である。
【図7】図1のフローベース行動解析装置101による潜在状態の分割方法と、出力系列の決定方法の一例を説明するための説明図である。
【図8】図1のフローベース行動解析装置101の広告推薦サービスへの応用例を示すシステム図である。
【図9】図1のフローベース行動解析装置101のライフログサービスへの応用例を示すシステム図である。
【発明を実施するための形態】
【0021】
本発明が適用されるフローベース行動解析装置を主要な構成要素とするフローベース行動解析システムの実施形態について、まず、本実施形態の基本的構成の概要について説明した後、実施形態の構成及び動作について図面を参照しながら詳細に説明する。なお、本願において、データフロー解析装置あるいはデータフロー解析システムとは、フローベース行動解析装置及びそれを含むフローベース行動解析システムの両方を含むものであるとする。
【0022】
まず、本実施形態の基本的構成の概要を説明する。本実施形態は、NWを通るトラフィックから高度な行動解析等の処理を行う上で、汎用的に利用できるデータ抽出及び変換方式を実現するため、一次解析部として構文解析等により、NW上のトラフィックすなわちデータフロー(本実施形態ではパケットストリームで代表する)から所望の単語(キーワード)を抽出するフィルタ部を用意している。このフィルタ部において、検索、Web(ウェブ)閲覧、コメント投稿等に伴うデータフローを補足した際に、HTTP(HyperText Transfer Protocol)/GET(指定したURI(Uniform Resource Identifier)のデータを取得するメソッド)やPOST(指定したURIにデータを登録するメソッド)、またはHTML(HyperText Markup Language)内のmeta(メタ)タグ内から、キーワードを抽出してこれをある時間幅でスコア付けしたものを各要素(各成分)とするベクトルとすることで、以降の処理を、様々なアルゴリズム(すなわち統計的データ解析)が適用し易くなるようにしている。
【0023】
なお、本願では、抽出したキーワードに基づいて生成したベクトルを特徴ベクトルと呼ぶこととする。なお、この特徴ベクトルの各要素(あるいは各成分)は、各キーワードに対応するある時間幅でのスコアを表し、このスコアは各キーワードの出現頻度や重要度によって設定することができる。また、特徴ベクトルは所定の時間幅に対応づけられたものとなっている。
【0024】
また、このようにキーワードに係る情報をベクトル化することでGPU等の並列計算機による高速化がなされ易いようにもすることができる。
【0025】
また、本実施形態は、ストリーム処理において、サービスに有効である高度な行動解析モデルを用いた効率的な計算方法を実現するため、行動解析モデル(ユーザの行為の態様を抽象化したモデルであって、ユーザの潜在的な興味状態の変化を系列として示すものであり、本実施形態ではパケットストリーム中のテキストに含まれる単語(キーワード)の発生確率を時系列的に保持するモデルすなわち潜在状態遷移モデルとして定義される)を、フィルタ部で抽出したベクトルの系列に対して当てはめることによって、ユーザの潜在的な興味状態の変化を系列として出力する分析部を用意している。さらに、行動解析モデルの学習を、データを与えながら逐次的に行えるようにし、潜在状態系列との比較によって行動系列の判別を統計的データ解析によって実行するとともに、潜在状態系列の更新処理も実行する。またこの更新の際に、ストリーム処理による分散計算を用いることで計算量を削減することを可能にしている。
【0026】
次に、本発明が適用される、フローベース行動解析システムの実施形態について図面を参照しながら説明する。
【0027】
まず図1は本実施形態に係るシステム全体の構成図であり、NW100の転送経路上に、フローベース行動解析装置101が存在し、フローベース行動解析装置101は、ユーザ等の端末102から、検索、Web閲覧、コメント投稿機能等の各種サービスを提供するサーバ等のサーバ103に向けて送出されるパケットストリーム104をNW転送経路上で受信する。フローベース行動解析装置101は、受信したパケットストリーム104から、行動解析結果となるデータ105を生成し、予め指定された広告配信サーバ等のサーバ106に送信する。
【0028】
次に図1のフローベース行動解析装置101の実装について図2を用いて説明する。フローベース行動解析装置101はフィルタ部210と、分析部220から成る。この場合、フローベース行動解析装置101は、コンピュータ及びその周辺装置と、そのコンピュータによって実行されるプログラムとを用いて実現することができる。フィルタ部210と分析部220の各部は、フローベース行動解析装置101を構成するコンピュータによって実行されるプログラムとして構成されていたり、記憶装置等の周辺装置のハードウェア資源とそれを制御あるいは利用するためのプログラムとの組み合わせによって構成されていたりする。
【0029】
また、フィルタ部210は、パケットヘッダ検査部211と、パケットペイロード検査部212と、検査振分(ふりわけ)パラメータDB(データベース)213と、特徴ベクトル生成部214と、特徴抽出関数DB215と、パケット複製部216と、それら各部を制御するフィルタ制御部217とから成る。分析部220は、状態遷移判定部221と、潜在状態DB222と、最適情報決定部223と、出力情報登録DB224から構成される。
【0030】
図2のフィルタ部210は、パケットストリーム104から特定のパケットストリーム104を選別し、選別したパケットストリーム104(あるいはパケットストリーム104に含まれるテキストストリーム)から構文解析等によって単語(キーワード)を検出することで特徴ベクトルの系列を生成して、分析部220に出力する機能を提供する。すなわち、フィルタ部210は、ネットワーク上で転送されるパケットストリーム104から、特定のパケットストリーム104を選別し、選別されたパケットストリーム104に含まれる複数のキーワードに基づいて、各キーワードのスコアを各要素とする特徴ベクトルを生成する。その際、パケットストリームのパケットヘッダ及びパケットペイロードの内容を、所定の条件に基づいて検査することで、検索、Web閲覧、コメント投稿によって発生する特定のパケットストリーム等が選別される。
【0031】
パケットヘッダ検査部211は、図1の端末102、サーバ103等に対応する図2のパケットストリーム送信端末201からパケットストリーム104を受け取り、受け取ったパケットストリーム104のパケットヘッダを検査し、所定の検査条件に基づいて、検索、Web閲覧、コメント投稿によって発生する特定のパケットストリーム等を選別する。パケットヘッダの検査条件は、検査振分DB213に格納されている情報に基づいて設定される。パケットヘッダ検査部211は、受け取ったパケットストリーム104のパケットヘッダが、設定されている検査条件に適合するか否かを検査する。パケットヘッダ検査部211は、適合した場合、当該パケットストリーム104をパケット複製部216へ出力し、適合しなかった場合、当該パケットストリーム104をパケットペイロード検査部212へ出力する。
【0032】
パケットペイロード検査部212は、パケットヘッダ検査部211からパケットストリーム104を受け取り、受け取ったパケットストリーム104のペイロード(パケットストリーム104のデータ部)を検査する。ペイロードの検査条件は、検査振分DB213に格納されている情報に基づいて設定される。パケットペイロード検査部212は、受け取ったパケットストリーム104のデータ部が、設定されている検査条件に適合するか否かを検査する。パケットペイロード検査部212は、適合した場合、当該パケットストリーム104をパケット複製部216へ出力し、適合しなかった場合、当該パケットストリーム104を、図1のサーバ103、端末102等に対応する図2のパケットストリーム受信端末202へ出力する。
【0033】
パケット検査設定DB213は、パケットヘッダ検査部211に設定されるパケットヘッダ検査条件、パケットペイロード検査部212に設定されるペイロード検査条件等の情報を格納している。
【0034】
パケット複製部216は、パケットヘッダ検査部211またはパケットペイロード検査部212において検査条件に適合すると判定されたパケットストリーム104を複製し、一方を特徴ベクトル生成部214へ出力し、他方をパケットストリーム受信端末202へ出力する。
【0035】
特徴ベクトル生成部214は、予め特徴抽出関数DB215から抽出関数の情報がロードされ、それに基づいて、パケット複製部216から渡されたパケットストリーム104を、多次元ベクトルストリームに変換して、上位の分析部220(の状態遷移判定部221)に出力する。多次元ベクトルストリームは、パケットストリーム104によって表されるHTTP/GETやPOST内またはHTML内のmetaタグ内から抽出された複数のキーワードに対応するスコアを各要素とする特徴ベクトルを時系列に並べた情報である。
【0036】
特徴抽出関数DB215は、パケットストリーム104から所定の複数のキーワードを抽出する際の処理や条件を示す関数を格納している。
【0037】
一方、分析部220は、フィルタ部210(の特徴ベクトル生成部214)から渡された多次元ベクトルストリームを用いて行動解析処理を実行する。より具体的には、分析部220は、選別されたパケットストリーム104で表されるテキストストリーム(テキスト列)に含まれる単語(キーワード)の発生確率を、時系列的に保持するモデル(すなわち潜在状態遷移モデル)に統計的処理で当てはめることにより、ユーザの潜在的な興味状態の変化を系列として出力するための処理を行う。すなわち、分析部220は、フィルタ部210で生成された特徴ベクトルの系列に対してキーワードの発生確率を時系列的に保持するモデルに当てはめることによって、ユーザの潜在的な興味状態の変化を系列として出力する。
【0038】
状態遷移判定部221は、特徴ベクトル生成部214から多次元ベクトルストリームを受け取ると、多次元ベクトルストリーム内の各特徴ベクトルに基づいて潜在状態系列を計算する。状態遷移判定部221は、潜在状態DB222から予め登録されている潜在状態のネットワークを取得し、それを基に特徴ベクトルの系列に対して最も確率の高い(尤度の高い)潜在状態系列を求める。ここで潜在状態とは、複数のキーワードに応じた多次元ベクトルストリームに対応する、ガウス分布等のパラメトリックな確率分布によるベクトルの発生源である。また、潜在状態系列とは潜在状態の一定の順序による並びであり、潜在状態のネットワークとは、相互に関連性がある複数の潜在状態を組み合わせたものである。なお、一般的には、特徴ベクトルの系列に基づく潜在状態系列の計算は、行列の特異値分解という線形代数の理論に基づく高次元のデータ列を低次元のデータ列に射影する計算となる。
【0039】
また、状態遷移判定部221は、パケットストリーム104に含まれるキーワードの分布から、時系列なモデル上の潜在状態の数を増減させるための情報を、フィルタ制御部217に対してフィードバックする。
【0040】
潜在状態DB222には、潜在状態のネットワークが複数組、予め登録されている。
【0041】
最適情報決定部223は、状態遷移判定部221によって得られた潜在状態系列と、出力情報登録DB224から取得した情報とに基づき、出力に関する情報系列を決定する。最適情報決定部223は、出力情報登録DB224から、出力したい何らかの登録情報とそれに付随されるベクトルデータを取得する。ここで、登録情報に付随するベクトルは、上記の特徴ベクトルの系列あるいは潜在状態系列と同じ種類のもの、すなわち潜在状態系列と比較可能な形態を有するものである。この付随ベクトルと潜在状態系列との統計的な比較結果に基づき最適情報決定部223は、図1のサーバ106等に対応する図2の行動解析データ受信端末203へ出力する情報を決定する。この場合、最適情報決定部223によって、ユーザの潜在的な興味状態の変化を系列として出力する処理が、予め登録されたキーワードに関する情報を用いた比較処理を含むものとなっている。
【0042】
また、最適情報決定部223は、パケットストリーム104に含まれるキーワードの分布から、フィルタ部210のパケットストリーム104の選別パラメータの更新するための情報を、フィルタ制御部217に対してフィードバックする。
【0043】
次に、図3を参照して、図2のフィルタ部210における処理の流れについて説明する。図3はフィルタ部210がパケットストリーム104から特徴ベクトルの系列を分析部220に出力する際の基本的なシーケンスである。
【0044】
パケットストリーム104が、NW転送経路上のフローベース行動解析装置101に到達した際、パケットストリーム104は、まずフィルタ部210のパケット検査部211に入力される(ステップS106)。但し、フィルタ制御部217の指令をトリガとして(ステップS102)、パケットヘッダ検査部211は予め検査振分パラメータDB213から、如何なるパケットヘッダを検出するかのヘッダ検査(条件)設定を受け取っているものとする(ステップS104)。ここでパケットヘッダ検査部211に渡される条件設定とは、例えば5Tupple(タプル)(送受信IPアドレス、送受信ポート番号、プロトコル)とすることができる。ただし、この場合の条件の内容は、一例的であって、例えば、将来的にヘッダ領域が拡張された場合でもそれに対応するように適宜変更することが可能である。その場合でも以降の処理には影響はない。
【0045】
この状態で、(a)のように、パケットストリームのヘッダが検査条件に適合する場合には、そのパケットストリームがパケット複製部216に渡される(ステップS107)。パケット複製部216では、パケットストリームを複製(ミラーリング)し、片方を特徴ベクトル生成部214に(ステップS109)、もう片方を本来の宛先となるパケットストリーム受信端末202に出力する(ステップS108)。
【0046】
また、(b)のように、パケットヘッダ条件には不適合であった場合、パケットストリームは、パケットヘッダ検査部211から、パケットペイロード検査部212に渡される(ステップS111〜S112)。パケットペイロード検査部212には、フィルタ制御部217の指令により(ステップS102)、予め検査振分パラメータDB213からペイロード(条件)設定が成されているものとする(ステップS103)。ここでのペイロード検査設定は、照合文字列の集合、若しくは正規表現によるパターン記述等を用いることができる。ただし、この場合の設定例は、一例的であって、ヘッダ検査設定と同様、それら以外の処理を拡張として搭載しても以降の処理には矛盾しない。
【0047】
パケットペイロード検査部212で条件に適合した場合、当該パケットストリームは、パケット複製部216に渡され(ステップS113)、ミラーリングが行われた後、特徴ベクトル生成部214とパケットストリーム受信端末202にそれぞれ出力される(ステップS114、S115)。
【0048】
また、図3には記載していないが、パケットヘッダ検査部211及びパケットペイロード検査部212の両方ともの条件に適合しなかった場合には、パケットストリームはパケット複製部216には渡されず、そのままパケットストリーム受信端末202に出力される。
【0049】
特徴ベクトル生成部214では、フィルタ制御部217の指令の下(ステップS101)、予め特徴抽出関数DB215から抽出関数の情報がロードされているものとし(ステップS105)、それに基づいて、パケット複製部216から受け取ったパケットストリームを(ステップS109、S115)、多次元ベクトルストリームに変換して、上位の分析部220(の状態遷移判定部221)に渡す処理を行う(ステップS110、S116)。
【0050】
図4に特徴ベクトル生成部214による、多次元ベクトルストリームを構成する特徴ベクトルの生成の具体例を示す。抽出対象としては、(1a)検索クエリリクエスト(図4(A))、(2a)Webページ閲覧レスポンス(図4(B))、(3a)コメント投稿等におけるPOSTリクエスト(図4(C))、が挙げられる。
【0051】
(1a)の検索クエリは、図4(A)に示すようにパケットストリーム104中のGETメソッドの末端に‘+'(プラス記号)等をデリミタ(区切り文字)としたキーワードの列が付随するため、このデリミタで挟まれた単語(キーワード)を抽出することで右記の特徴ベクトル214aを生成する。この際、特徴ベクトルの各要素は、キーワードに対応するスコアを表すものとし、このスコアは出現頻度や重要度を想定している。この例では、キーワード「NotePC」、「GPU」、「S△△」に対応する特徴ベクトルの各要素に「1」が設定された期間t0〜t1の特徴ベクトル=(「NotePC」に対応するスコア,「GPU」に対応するスコア,「S△△」に対応するスコア,…)=(1,1,1,…)(ただしTは転置を表す。)が算出(抽出)されている。
【0052】
また(2a)は、WebページHTML1031に存在するSEO(Search Engine Optimization)対策のためのMetaタグ内のキーワードを対象にベクトルを生成する場合である。Metaタグ内は、‘,’(カンマ)をデリミタとしているので、それらに挟まれるキーワードを抽出する。そして、右記の特徴ベクトル214bが生成される。この例では、キーワード「ハイブリッド」、「エコロジカル」に対応する特徴ベクトルの各要素に「1」が設定された期間t0〜t1の特徴ベクトル=(…,「ハイブリッド」に対応するスコア,「エコロジカル」に対応するスコア,…)=(…,1,1,…)が算出されている。
【0053】
最後に(3a)は、ブログ等のコメント投稿における文章をベクトルのソースとする場合である。この場合、適当なデリミタが存在しないため、構文解析による単語抽出と、TF・IDF(Term Frequency, Inverse Document Frequency)などの所定の重要度付けアルゴリズムを組み合わせて、スコアを付与するものとする。同時に、抽出時間を、ある範囲で区切りその値を付与するものとする。これにより、検索クエリやWebページ閲覧の発生に逐一、ベクトルを生成する必要は無くなり、サンプリングと同様の効果から分析部220の処理負荷の低減を図ることが可能となる。そして、右記の特徴ベクトル214cが生成される。この例では、キーワード「デスクトップ」、「G△△△△」に対応する特徴ベクトルの各要素に「1」が設定された期間t0〜t1の特徴ベクトル=(…,「デスクトップ」に対応するスコア,…,「G△△△△」に対応するスコア,…)=(…,1,…,1,…)が算出されている。
【0054】
上記は、テキストデータを主に扱ったが、それ以外の例えばメディアデータであったとしても、最終的な出力さえベクトル然としていれば以降の処理は(インターフェース上は)問題なく処理可能である。
【0055】
図5は、前述したようにして算出(抽出)された特徴ベクトルを用いて、分析部220が実行する行動解析シーケンスである。特徴ベクトルの列(xの上に→で表した記号)を以下のように表す。ここでtは、時間幅Δtで区切られ離散化した時間に対するインデックスを表すものとする。なお、特徴量次元数mは、この場合、特徴ベクトルで用いられているキーワードの個数である。
【0056】
【数1】

【0057】
上記特徴ベクトルは、まず状態遷移判定部221に渡され(ステップS201)、状態遷移判定部221は潜在状態系列を計算する。状態遷移判定部221では、潜在状態DB222から潜在状態のネットワークを取得し(ステップS202〜S203)、それを基に最も確率の高い状態系列を求める。ここで潜在状態とは、ガウス分布等のパラメトリックな確率分布によるベクトルの発生源である。ここで状態数をKとした時、1 of K方式で潜在状態のネットワークは、以下のようにベクトル表現で表される。
【0058】
【数2】

【0059】
潜在状態ベクトルが事前に与えられた際の出力事後確率は、図6(A)のようになり、下記のように記述される。
【0060】
【数3】

【0061】
ここで、
【0062】
【数4】

【0063】
はガウス分布を表すとし、
【0064】
【数5】

【0065】
はガウス分布の平均や分散を表すパラメータである。これらの定式化により、一見異なる次元同士にも関連度を設定することが可能となる他、本質的な低い次元に射影することで、処理負荷を軽減するだけでなく、過学習を防ぐことも可能になる。すなわち、キーワードの発生確率を時系列的に保持するモデルが、特徴ベクトルの系列を低い次元に射影したものとなっている。
【0066】
潜在状態系列が算出されたら、状態遷移判定部221は、それを最尤系列として最適情報決定部223へ出力する(ステップS204)。この際、各潜在状態が持つ平均ベクトル
【0067】
【数6】

【0068】
と、特徴ベクトル
【0069】
【数7】

【0070】
も合わせて最適情報決定部223に通知する。最適情報決定部223では以下のように特徴ベクトルを補正して比較を行う。
【0071】
【数8】

【0072】
但し上記においてmaxは、同じ次元で要素の大きい方を選択するものとする。
【0073】
また、状態遷移判定部221は、潜在状態系列を更新情報として潜在状態DB222の登録情報すなわち行動解析モデル(すなわち潜在状態遷移モデル)の学習処理を行う(ステップS205)。学習処理の内容としては、例えば、パケットストリームに含まれる単語(キーワード)の分布から、時系列なモデル上の潜在状態の数を増減させるようにしている。その際、行動解析モデルの学習は、最尤系列を示すデータを与えながら逐次的に行えるようにし、行動系列の判別をすると同時に更新できるようにしている。またこの更新の際に、ストリーム処理(ストリームデータ処理)による分散計算を用いることで計算量を削減することが可能である。
【0074】
次に、ステップS204で送られた最尤系列に関する情報を基に、最適情報決定部223で、出力に関する情報系列を決定する。出力情報登録DB224から、出力したい何らかの登録情報とそれに付随されるベクトルデータを取得する(ステップS207、S208)。ここで、登録情報に付随するベクトルは、前述で扱った特徴ベクトルと種類は同じものとする。この付随ベクトルと、上記の補正ベクトルとの距離を測定しその距離がある閾値を超えたら登録情報が現れるような出力系列を決定できる。このとき距離は、設定によりユークリッド距離やマハラノビス距離等を利用することができる。決定された出力系列は、出力情報列として行動解析データ受信端末203へ送出され(ステップS209)、また、出力情報の算出に関するフィードバック情報がフィルタ制御部217へ送出される(ステップS210)。ステップS210では、最適情報決定部223が、算出内容に基づくフィードバック情報をフィルタ制御部217へ返すことで、パケットストリームに含まれる単語(キーワード)の分布に基づいて、フィルタ部210の選別パラメータの更新を行わせるための機能が実現されるようになっている。
【0075】
図6(B)、(C)は潜在状態の遷移モデルの例を表しており、時間と共に潜在状態が遷移する。この遷移の様子をトレリス図で表したものが図(D)であり、このようなモデルを置くことで、最尤系列を例えばViterbiアルゴリズム(ビタビアルゴリズム)により効率的に計算可能となる。Viterbiアルゴリズムは、最尤系列となる潜在状態系列を動的計画法で求めるアルゴリズムである。
【0076】
次に、図7を参照して、適切な潜在状態の数の設定、及び出力確率の設定方法について記述する。
【0077】
[STEP0]図7左側のように、潜在状態により特徴ベクトルの出力分布が決定されるものと仮定し、最初は1状態から開始する。状態は、自身に所属するデータの個数、平均値、分散を保持するものとする。
【0078】
[STEP1]新たに発生した特徴ベクトル系列
【0079】
【数9】

【0080】
に対し、例えばViterbiアルゴリズムを適用し、最尤状態系列
【0081】
【数10】

【0082】
を計算する。
【0083】
[STEP2]最尤系列に含まれる状態番号に出力ベクトルが所属すると考え、各状態が出力する確率分布を更新する。ガウス分布を場合は、個数、平均、分散値から更新する。このとき分散は2次モーメントの近似統計手法を用いて計算する。同時に、追加したベクトルを状態中に一定確率で蓄積するようにし、データ分布を粗視化する。
【0084】
[STEP3]また図7右側のように、分散値が特定の閾値を超える場合、粗視化したサンプルを基に2means(テキストを距離の情報を用いて非階層的にグループ分けするクラスター分析の一手法)により状態を分割し、それぞれの状態の平均値、及び分散を新たに設定する。また分割された状態から別の状態に遷移する確率を個数の比率により配分し、STEP1に戻る。
【0085】
なお、図7は、図1のフローベース行動解析装置101による潜在状態の分割方法と、出力系列の決定方法の一例を説明するための説明図であり、状態遷移判定部221内等に設けられた記憶手段であるストリーム収集基盤2211を用いて時系列の特徴ベクトル
から最尤状態系列を算出する処理を模式的に示している。この例では、出力情報登録DB224内に「インテリア」、「グリーン」、「ハイブリッド」からなる登録メタキーワードが格納されるとともに、それに対応づけて広告対象についての情報が格納されている。また、最尤系列に対応するものとして「インテリア」、「グリーン」、「ハイブリッド」の各キーワードからなるベクトルが算出されている。
【0086】
図8は、図1のフローベース行動解析装置(システム)101を広告推薦サービスに応用したものである。予め広告事業者は、本システムに対し、推薦したい広告と、それに付随するキーワードを登録しておくものとする。なお、図1と同一の構成には同一の符号を用いている。ユーザは端末102を用いて様々な場所から、Webサーバ等のサーバ103に対し検索、ページ閲覧、コメント投稿等を行なうためにデータ(パケットストリーム104)を送受信する。フローベース行動解析装置101は送信されたパケットストリーム104からリアルタイムに行動を解析し、登録された広告系列を行動解析結果105として広告事業者側に返す。最終的に広告事業者は、この広告系列を基に、ユーザの端末102にメールやWebのPOP(ポップ)などにより、適切な広告提示を行う。これにより、広告事業者自体がユーザの行動を把握するために、クローリング等を行う必要なく複数のサーバに跨るデータを収集することが出来、効果的な広告推薦が可能となる。
【0087】
図9は、ライフログに図1のフローベース行動解析装置(システム)101を応用した例である。図1と同一の構成には同一の符号を用いている。この場合、行動解析結果として何らかの行動ラベルを予め登録しておくものとする。また行動ラベルと、コミュニティ情報とを紐付けておく。これにより、Web閲覧などの行動を後から視覚的に把握する履歴機能や、類似した行動をするユーザ同士のコミュニティを形成することができる。この際、端末やサーバに何もインストールする必要がない上、特定のユーザの複数の端末、サーバに跨る情報を簡単に取得可能となるため、より詳細度の高いログ、およびコミュニティ形成が期待できる。
【0088】
以上のように、本発明の実施形態では、一次解析部として構文解析等により、単語(キーワード)を検出するフィルタ部210を用意している。このフィルタ部210において、検索、Web閲覧、コメント投稿等に伴うデータを補足した際に、HTTP/GETやPOST、またはHTML内のmetaタグ内からキーワードを抽出してこれをある時間幅でスコア付けして抽出した単語列をベクトルとして把握することで、以降の処理を、様々なアルゴリズムが適用し易くなるようにしている。また、ベクトル化することでGPU等の並列計算機による高速化がなされ易いようにもすることができる。
【0089】
また、行動解析モデルの学習を、データを与えながら逐次的に行えるようにし、行動系列の判別をすると同時に更新できるようにしている。またこの更新の際に、ストリーム処理による分散計算を用いることで計算量を削減することを可能にしている。
【0090】
したがって、本実施形態によれば、一般にNW上で、高速かつ連続に到達するトラフィックデータに対し、データを蓄積が非常に少ない状態で、行動解析等に高度な計算を行うことが可能となる。これにより、NWを介したユーザの行動を、端末、サーバを跨ぐという点で広範囲に収集することが可能となる。また、NWで認識処理を行うことで、端末やサーバに特別なソフトウェアをインストールする必要がなくても、データ処理対象として扱えるため、別のサービス利用に関する行動を、簡単に解析対象とすることができるという拡張性もある。
【0091】
なお、本発明の実施の形態は上記のものに限定されず、例えば、フローベース行動解析装置101の構成としては、NW上に配置され、NW上において、パケットストリームを受信し、取得したパケットストリームから自動で統計的にユーザの行動内容を把握することができるように構成されたものであれば、NWの構成や装置の配置に特に限定はない。例えばフローベース行動解析装置101を複数設けて連携して動作するようにしたり、フローベース行動解析装置101内の特定の処理部(例えば特徴ベクトル生成部214や状態遷移判定部221、あるいは各DB)を複数並列的に設けたり、NWを介して分散して配置するようにすることが可能である。また、パケットストリームから所望の単語(キーワード)を抽出する処理、及び特徴ベクトルの系列に対してキーワードの発生確率を時系列的に保持するモデルに当てはめる処理、または時系列なモデル上の潜在状態の数の増減と、フィルタ部210の選別パラメータの更新とを行う機能の少なくとも1つが、ストリーム処理可能なアルゴリズムで、並列処理可能なプロセッサ上で実装するようにすること等の変更が適宜可能である。
【0092】
また、データフロー解析装置の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、データフロー解析装置を実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
【0093】
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0094】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
【0095】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0096】
なお、本発明は、上記のようにNW上のデータフローを解析するための装置に係るものであるが、NW上でデータフローから情報を抽出することを目的とするものでもあるため、一種のトラフィック解析の技術分野に属するものであるということもできる。また、トラフィック解析との違いとして、L3/L4までの低位な情報だけでなく、高位のアプリケーション層(L7)に至るデータから人間の行動といった情報の解析を行うため、パターン認識の技術分野にも関するものであるということもできる。これらの解析結果は、検索や広告といった応用先に適用できるため、検索や広告推薦の技術分野にも属する。またNW上を連続に終わり無く送信され続けるストリームデータを高速に処理することが必要となることから、ストリームマイニングの技術分野にも関するものであるということもできる。
【符号の説明】
【0097】
100 NW(ネットワーク)
101 フローベース行動解析装置
102 端末
103、106 サーバ
104 パケットストリーム
105 行動解析結果
210 フィルタ部
220 分析部
211 パケットヘッダ検査部
212 パケットペイロード検査部
213 検査振分パラメータDB
214 特徴ベクトル生成部
215 特徴抽出関数DB
216 パケット複製部
217 フィルタ制御部
221 状態遷移判定部
222 潜在状態DB
223 最適情報決定部
224 出力情報登録DB

【特許請求の範囲】
【請求項1】
ネットワーク上で転送されるパケットストリームから、特定のパケットストリームを選別し、選別されたパケットストリームに含まれる複数のキーワードに基づいて、各キーワードのスコアを各要素とする特徴ベクトルを生成するフィルタ部と、
前記特徴ベクトルの系列に対して前記キーワードの発生確率を時系列的に保持するモデルに当てはめることによって、ユーザの潜在的な興味状態の変化を系列として出力する分析部と
を備えることを特徴とするデータフロー解析装置。
【請求項2】
前記パケットストリームに含まれるキーワードの分布から、前記時系列なモデル上の潜在状態の数の増減と、前記フィルタ部の選別パラメータの更新とを行う機能を有する
ことを特徴とする請求項1に記載のデータフロー解析装置。
【請求項3】
前記パケットストリームから前記キーワードを抽出する処理、前記特徴ベクトルの系列に対して前記キーワードの発生確率を時系列的に保持するモデルに当てはめる処理、又は前記時系列なモデル上の潜在状態の数の増減と、前記フィルタ部の選別パラメータの更新とを行う機能の少なくとも1つが、ストリーム処理可能なアルゴリズムで、並列処理可能なプロセッサ上で実装されている
ことを特徴とする請求項1又は2に記載のデータフロー解析装置。
【請求項4】
前記キーワードの発生確率を時系列的に保持するモデルが、前記特徴ベクトルの系列を低い次元に射影したものである
ことを特徴とする請求項1から3のいずれか1項に記載のデータフロー解析装置。
【請求項5】
前記特定のパケットストリームの選別が、前記パケットストリームのパケットヘッダ及びパケットペイロードの内容を、所定の条件に基づいて検査することで行われる
ことを特徴とする請求項1から4のいずれか1項に記載のデータフロー解析装置。
【請求項6】
前記ユーザの潜在的な興味状態の変化を系列として出力する処理が、予め登録されたキーワードに関する情報を用いた比較処理を含むものである
ことを特徴とする請求項1から5のいずれか1項に記載のデータフロー解析装置。
【請求項7】
前記特徴ベクトルが、所定の時間幅に対応づけられている
ことを特徴とする請求項1から6のいずれか1項に記載のデータフロー解析装置。
【請求項8】
ネットワーク上で転送されるパケットストリームから、特定のパケットストリームを選別し、選別されたパケットストリームに含まれる複数のキーワードに基づいて、各キーワードのスコアを各要素とする特徴ベクトルを生成するフィルタ部と、
前記特徴ベクトルの系列に対して前記キーワードの発生確率を時系列的に保持するモデルに当てはめることによって、ユーザの潜在的な興味状態の変化を系列として出力する分析部と
を有するデータフロー解析装置と、
前記パケットストリームを、前記データフロー解析装置へ送信し又は前記データフロー解析装置から受信する複数の端末と、
前記データフロー解析装置から前記分析部の出力結果に応じた情報を受け取る1又は複数の端末と
を備えることを特徴とするデータフロー解析システム。
【請求項9】
ネットワーク上で転送されるパケットストリームから、特定のパケットストリームを選別し、選別されたパケットストリームに含まれる複数のキーワードに基づいて、各キーワードのスコアを各要素とする特徴ベクトルを生成する過程と、
前記特徴ベクトルの系列に対して前記キーワードの発生確率を時系列的に保持するモデルに当てはめることによって、ユーザの潜在的な興味状態の変化を系列として出力する過程と
を含むことを特徴とするデータフロー解析方法。
【請求項10】
ネットワーク上で転送されるパケットストリームから、特定のパケットストリームを選別し、選別されたパケットストリームに含まれる複数のキーワードに基づいて、各キーワードのスコアを各要素とする特徴ベクトルを生成する過程と、
前記特徴ベクトルの系列に対して前記キーワードの発生確率を時系列的に保持するモデルに当てはめることによって、ユーザの潜在的な興味状態の変化を系列として出力する過程と
をコンピュータによって実行させるための指令を含むことを特徴とするデータフロー解析プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−48488(P2011−48488A)
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2009−194684(P2009−194684)
【出願日】平成21年8月25日(2009.8.25)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】