説明

トラフィックデータ抽出装置、トラフィックデータ分離方法、識別関数作成装置及びその方法、並びにプログラム

【課題】複数サーバに渡るユーザの行動を解析するために、トラフィックデータから、ユーザによるサイトへの書込み行為に関するデータを解析できるように分離する。
【解決手段】トラフィックデータ抽出装置1は、トラフィックデータからHTTP POSTメッセージおよびそれに対するレスポンスメッセージを抽出し、リクエストヘッダ及びレスポンスヘッダの値が数値で表されていない場合に、当該質的データを変換規則36により数値データに変換するデータ変換手段23と、変換された数値データからなるベクトルを、SVMのモデルから予め求められた識別関数fに入力して演算し、その演算結果により、抽出されたHTTP POSTメッセージを、書込みとそれ以外とに分類する書込行為分類手段24とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク上のトラフィックからデータを抽出し、ユーザの振る舞い(行動)を推測する技術に関する。
【背景技術】
【0002】
従来、サーバに蓄積されたアクセスログ等をサーバで解析したり、クライアント側に専用ソフトをインストールしたりすることで、ユーザの行動履歴を推測するシステムが知られている(例えば、特許文献1参照)。
従来のユーザ行動推測システムには、例えば、ユーザがPC上で行ったWebやSNS(Social Network Service)の閲覧行動の記録(閲覧履歴)から、閲覧行動をカテゴリに分類するというものがある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−128937号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のユーザ行動推測システムにおいて、ユーザの行動解析は、サーバ側またはクライアント側で行われていた。そのため、例えばサーバ側での行動解析結果は、その単一サーバにおけるユーザの行動解析であるという問題があった。また、ユーザの行動をクライアント側で解析するには、クライアントに専用ソフトをインストールする必要があった。
【0005】
また、従来のユーザ行動推測システムは、主としてユーザのWeb等の閲覧履歴をもとにしたユーザの行動解析において、HTTP GETリクエストのリクエスト行のURLからリクエストパラメータを取得していた。このHTTP GETメッセージから得られるデータは、主として、ユーザの閲覧したページのURLであった。したがって、従来の閲覧履歴をもとにユーザの行動履歴を推測するシステムは、ユーザの書込み行動を推測することができないという問題があった。
【0006】
本発明は、前記した問題を解決するために成されたものであり、複数のサーバに渡るユーザの行動を解析するために、ネットワークより抽出したトラフィックデータの中から、ユーザによるサイトへの書込み行為に関するデータを解析できるように分離することを課題とする。
【課題を解決するための手段】
【0007】
前記目的を達成するために、本発明の第1の観点に係るトラフィックデータ抽出装置は、ネットワーク上のアプリケーションを提供するサーバと、ユーザの操作により前記サーバにアクセスするクライアントと、ネットワークからデータを抽出するトラフィックデータ抽出装置とを備え、ネットワークにおける前記ユーザの行動を推測するユーザ行動推測システムにおける前記トラフィックデータ抽出装置であって、ユーザによるネットワーク上の情報入力行為を、ユーザの嗜好、感情または意見を表すものとして入力するサイトへの書込み行為と、前記書込み行為以外で形式的に入力するサイトへの単純入力行為とに分類するために、予め定められたSVM(Support vector machine)のモデルから予め求められた前記書込み行為と前記単純入力行為とを識別する識別関数と、HTTP POSTメッセージ及びそのレスポンスメッセージにおいてヘッダの値が数値で表されていない場合の当該ヘッダの値を示す質的データを前記識別関数へ入力可能な数値データに変換する変換規則とを記憶する記憶手段と、前記ネットワークからトラフィックデータとしてパケットを抽出するパケット抽出手段と、前記抽出されたトラフィックデータからHTTP POSTメッセージ及び当該HTTP POSTメッセージに対するレスポンスメッセージを抽出するメッセージ抽出手段と、前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれのヘッダの内容を解析し、ヘッダの値が数値で表されていない場合に、当該質的データを前記変換規則により数値データに変換するデータ変換手段と、前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれの予め定められたヘッダについての数値データ及び前記質的データから変換された数値データからなるベクトルを前記識別関数に入力して演算し、その演算結果により、当該抽出されたHTTP POSTメッセージを、前記書込み行為と前記単純入力行為とに分類する書込行為分類手段とを備えることを特徴とする。
【0008】
また、本発明の第1の観点に係るトラフィックデータ分離方法は、ネットワーク上のアプリケーションを提供するサーバと、ユーザの操作により前記サーバにアクセスするクライアントと、ネットワークからデータを抽出するトラフィックデータ抽出装置とを備え、ネットワークにおける前記ユーザの行動を推測するユーザ行動推測システムにおける前記トラフィックデータ抽出装置が抽出したデータからサイトへの書込み行為に関するデータを分離するトラフィックデータ分離方法であって、前記トラフィックデータ抽出装置が、通信手段と、演算手段と、記憶手段とを備え、前記記憶手段が、ユーザによるネットワーク上の情報入力行為を、ユーザの嗜好、感情または意見を表すものとして入力するサイトへの書込み行為と、前記書込み行為以外で形式的に入力するサイトへの単純入力行為とに分類するために、予め定められたSVMのモデルから予め求められた前記書込み行為と前記単純入力行為とを識別する識別関数と、HTTP POSTメッセージ及びそのレスポンスメッセージにおいてヘッダの値が数値で表されていない場合の当該ヘッダの値を示す質的データを前記識別関数へ入力可能な数値データに変換する変換規則とを記憶し、前記演算手段が、前記ネットワークからトラフィックデータを抽出するステップと、前記抽出されたトラフィックデータからHTTP POSTメッセージ及び当該HTTP POSTメッセージに対するレスポンスメッセージを抽出するメッセージ抽出ステップと、前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれのヘッダの内容を解析し、ヘッダ情報の値が数値で表されていない場合に、当該質的データを前記変換規則により数値データに変換するデータ変換ステップと、前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれの予め定められたヘッダについての数値データ及び前記質的データから変換された数値データからなるベクトルを前記識別関数に入力して演算するステップと、その演算結果により、当該抽出されたHTTP POSTメッセージを、前記書込み行為と前記単純入力行為とに分類する分類ステップと、を含んで実行することを特徴とする。
【0009】
かかる構成の第1の観点に係るトラフィックデータ抽出装置、または、かかる手順の第1の観点に係るトラフィックデータ分離方法によれば、トラフィックデータ抽出装置は、予め作成された情報として、書込み行為と書込み行為以外の単純入力行為とを識別する予め定められたSVMのモデルから求められた識別関数と、ヘッダの値を示す質的データを数値データに変換する変換規則とを記憶手段に記憶している。そして、トラフィックデータ抽出装置は、トラフィックデータから抽出したHTTP POSTメッセージおよびそのレスポンスメッセージのヘッダ情報を解析して変換規則により、識別関数に入力可能な数値データに変換する。これにより、トラフィックデータ抽出装置は、抽出したHTTP POSTメッセージを、書込み行為と単純入力行為とに分類することができる。また、トラフィックデータ抽出装置は、リクエストヘッダ情報およびレスポンスヘッダ情報を解析するので、メッセージボディを解析する場合に比べて高速に判別して、トラフィックデータから書込みを示すメッセージを高速に分離することができる。
【0010】
また、前記目的を達成するために、本発明の第2の観点に係るトラフィックデータ抽出装置は、ネットワーク上のアプリケーションを提供するサーバと、ユーザの操作により前記サーバにアクセスするクライアントと、ネットワークからデータを抽出するトラフィックデータ抽出装置とを備え、ネットワークにおける前記ユーザの行動を推測するユーザ行動推測システムにおける前記トラフィックデータ抽出装置であって、ユーザによるネットワーク上の情報入力行為を、ユーザの嗜好、感情または意見を表すものとして入力するサイトへの書込み行為と、前記書込み行為以外で形式的に入力するサイトへの単純入力行為とに分類するために、HTTP POSTメッセージのリクエストヘッダの内容と、前記HTTP POSTメッセージに対するレスポンスメッセージのレスポンスヘッダの内容とに基づいてSVMのモデルから予め求められた前記書込み行為と前記単純入力行為とを識別する式(1)の識別関数f(x)と、前記HTTP POSTメッセージ及びそのレスポンスメッセージにおいてヘッダの値が数値で表されていない場合の当該ヘッダの値を示す質的データを前記識別関数f(x)へ入力可能な数値データに変換する変換規則とを記憶する記憶手段と、前記ネットワークからトラフィックデータとしてパケットを抽出するパケット抽出手段と、前記抽出されたトラフィックデータからHTTP POSTメッセージ及び当該HTTP POSTメッセージに対するレスポンスメッセージを抽出するメッセージ抽出手段と、前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれのヘッダの内容を解析し、ヘッダの値が数値で表されていない場合に、当該質的データを前記変換規則により数値データに変換するデータ変換手段と、前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれの予め定められたヘッダについての数値データ及び前記質的データから変換された数値データからなるベクトルxを前記識別関数f(x)に入力して演算し、その演算結果により、当該抽出されたHTTP POSTメッセージを、前記書込み行為と前記単純入力行為とに分類する書込行為分類手段とを備えることを特徴とする。
【数1】

ここで、w及びbは識別関数を決定する予め求められたパラメータ、tは転置をそれぞれ表す。
【0011】
また、本発明の第2の観点に係るトラフィックデータ分離方法は、ネットワーク上のアプリケーションを提供するサーバと、ユーザの操作により前記サーバにアクセスするクライアントと、ネットワークからデータを抽出するトラフィックデータ抽出装置とを備え、ネットワークにおける前記ユーザの行動を推測するユーザ行動推測システムにおける前記トラフィックデータ抽出装置が抽出したデータからサイトへの書込み行為に関するデータを分離するトラフィックデータ分離方法であって、前記トラフィックデータ抽出装置が、通信手段と、演算手段と、記憶手段とを備え、前記記憶手段が、ユーザによるネットワーク上の情報入力行為を、ユーザの嗜好、感情または意見を表すものとして入力するサイトへの書込み行為と、前記書込み行為以外で形式的に入力するサイトへの単純入力行為とに分類するために、HTTP POSTメッセージのリクエストヘッダの内容と、前記HTTP POSTメッセージに対するレスポンスメッセージのレスポンスヘッダの内容とに基づいてSVMのモデルから予め求められた前記書込み行為と前記単純入力行為とを識別する式(1)の識別関数f(x)と、前記HTTP POSTメッセージ及びそのレスポンスメッセージにおいてヘッダの値が数値で表されていない場合の当該ヘッダの値を示す質的データを前記識別関数f(x)へ入力可能な数値データに変換する変換規則とを記憶し、前記演算手段が、前記ネットワークからトラフィックデータを抽出するステップと、前記抽出されたトラフィックデータからHTTP POSTメッセージ及び当該HTTP POSTメッセージに対するレスポンスメッセージを抽出するメッセージ抽出ステップと、前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれのヘッダの内容を解析し、ヘッダ情報の値が数値で表されていない場合に、当該質的データを前記変換規則により数値データに変換するデータ変換ステップと、前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれの予め定められたヘッダについての数値データ及び前記質的データから変換された数値データからなるベクトルxを前記識別関数f(x)に入力して演算するステップと、その演算結果により、当該抽出されたHTTP POSTメッセージを、前記書込み行為と前記単純入力行為とに分類する分類ステップと、を含んで実行することを特徴とする。
【数2】

ここで、w及びbは識別関数を決定する予め求められたパラメータ、tは転置をそれぞれ表す。
【0012】
かかる構成の第2の観点に係るトラフィックデータ抽出装置、または、かかる手順の第2の観点に係るトラフィックデータ分離方法によれば、第1の観点に係るトラフィックデータ抽出装置、または、第1の観点に係るトラフィックデータ分離方法と同様な作用により同様な効果を奏することができる。また、トラフィックデータ抽出装置は、予め作成された情報として、書込み行為と書込み行為以外の単純入力行為とを識別する式(1)の識別関数f(x)を記憶手段に記憶している。ここで、式(1)の識別関数f(x)は、HTTP POSTメッセージのリクエストヘッダの内容と、前記HTTP POSTメッセージに対するレスポンスメッセージのレスポンスヘッダの内容とに基づいて、SVMのモデルから予め求められているので、HTTP POSTメッセージを、書込み行為と単純入力行為とに対応した2値に正確に識別することができる。
【0013】
また、本発明に係る識別関数作成装置は、前記第2の観点に係るトラフィックデータ抽出装置で利用する識別関数を作成する識別関数作成装置であって、HTTP POSTメッセージが前記書込み行為(yi=1)に予め分類された成功データと、HTTP POSTメッセージが前記単純入力行為(yi=−1)に予め分類された失敗データxiとして与えられた合計n個の学習用の正解データを記憶する記憶手段と、前記n個の学習用の正解データとラグランジュ未定乗数ベクトルλとを使用して、式(2)により前記パラメータwを算出すると共に、式(3)により前記パラメータbを算出し、前記算出したパラメータw,bと前記各正解データとを用いて前記式(1)により識別関数f(x)を算出する処理を、前記ベクトルλを予め定められた初期値から徐々に更新する学習計算として実行し、Δλが最小になって学習計算が収束したときに、前記識別関数f(x)を決定する演算手段とを備えることを特徴とする。
【数3】

ここで、xSはλ>0となる学習データを示し、yS=1を示す。
【0014】
また、本発明に係る識別関数作成方法は、前記第2の観点に係るトラフィックデータ抽出装置で利用する識別関数を作成する識別関数作成装置による識別関数作成方法であって、前記識別関数作成装置の記憶手段が、HTTP POSTメッセージが前記書込み行為(yi=1)に予め分類された成功データと、HTTP POSTメッセージが前記単純入力行為(yi=−1)に予め分類された失敗データxiとして与えられた合計n個の学習用の正解データを記憶し、前記識別関数作成装置の演算手段が、前記n個の学習用の正解データを入力するステップと、前記各正解データとラグランジュ未定乗数ベクトルλとを使用して、式(2)により前記パラメータwを算出すると共に、式(3)により前記パラメータbを算出するステップと、前記算出したパラメータw,bと前記各正解データとを用いて前記式(1)により識別関数f(x)を算出する処理とを、前記ベクトルλを予め定められた初期値から徐々に更新する学習計算として実行し、Δλが最小になって学習計算が収束したときに、前記識別関数f(x)を決定するステップとを実行することを特徴とする。
【数4】

ここで、xSはλ>0となる学習データを示し、yS=1を示す。
【0015】
かかる構成の識別関数作成装置、または、かかる手順の識別関数作成方法によれば、識別関数作成装置は、予め分類された情報として、HTTP POSTメッセージが書込み行為に予め分類された成功データと、書込み行為以外の単純入力行為に予め分類された失敗データとして学習用の正解データを記憶手段に記憶している。そして、識別関数作成装置は、この学習用の正解データとラグランジュ未定乗数ベクトルλとを使用してパラメータw,bを算出する処理と、パラメータw,bと各正解データとを用いて識別関数f(x)を算出する処理とを、ベクトルλを更新しながら学習してSVMのモデルとして識別関数f(x)を決定する。したがって、トラフィックデータ抽出装置が、この識別関数f(x)を用いることで、HTTP POSTメッセージを、書込み行為と単純入力行為とに対応した2値に正確に識別することができる。
【0016】
また、本発明に係るプログラムは、前記トラフィックデータ抽出装置を構成する各手段、または、前記識別関数作成装置を構成する各手段として、コンピュータを機能させるためのプログラムである。このように構成されることにより、このプログラムをインストールされたコンピュータは、このプログラムに基づいた各機能を実現することができる。
【発明の効果】
【0017】
本発明によれば、トラフィックデータから抽出したHTTP POSTメッセージのボディを解析することなく、SVMのモデルから求められた識別関数を利用してヘッダ情報を解析することで、書込みを示すメッセージを抽出することができる。その結果、本発明によれば、トラフィックデータから、書込みを示すメッセージを高速に分離することができる。また、本発明によれば、ネットワークから抽出したトラフィックデータを用いて、書込みを含むユーザの行動を推定することができる。また、本発明によれば、ネットワーク上のトラフィックデータ抽出装置の処理によりユーザの行動を解析することができるので、複数のサーバにおけるユーザの行動を解析することができる。
【図面の簡単な説明】
【0018】
【図1】本発明の実施形態に係るユーザ行動推測システムの一例を示す構成図である。
【図2】本発明の実施形態に係るトラフィックデータ抽出装置の一例を示すブロック図である。
【図3】本発明の実施形態に係るトラフィックデータ抽出装置の全体動作を示すフローチャートである。
【図4】図3に示すHTTP POST分類処理を示すフローチャートである。
【図5】図3に示す変換規則、入力用ベクトル及び学習用データを説明するための図である。
【図6】図3に示すパラメータ及び識別関数を算出する処理を示すフローチャートである。
【発明を実施するための形態】
【0019】
図面を参照して本発明のトラフィックデータ抽出装置及びその方法、並びに識別関数作成装置及びその方法を実施するための形態について詳細に説明する。以下では、説明の都合上、1.ユーザ行動推定システムの構成、2.トラフィックデータ分離方法の概要、3.トラフィックデータ抽出装置の構成、4.トラフィックデータ抽出装置の動作、5.識別関数作成装置の各章に分けて順次説明することとする。
【0020】
[1.ユーザ行動推定システムの構成]
ユーザ行動推定システムの構成について図1を参照して説明する。
ユーザ行動推定システム10は、図1に示すように、ネットワークN(インターネット)上に、トラフィックデータ抽出装置1を備えている。また、ユーザ行動推定システム10は、ユーザ側に、複数のクライアント11(11A,11B,11C)を備え、サーバ側に、複数のサーバ12(12A、12B,12C)を備えることとした。
【0021】
クライアント11は、ユーザによって使用され、例えば、インターネット接続機能を有したパーソナルコンピュータや携帯情報端末等から構成される。
サーバ12は、例えば、インターネット上のWebサーバやアプリケーションサーバ等から構成される。
サーバ12Aは、音楽情報提供事業者が運営する音楽情報サイトとして機能する。
サーバ12Bは、ニュース提供事業者が運営するニュースサイトとして機能する。
サーバ12Cは、商品やサービスの販売者が運営するEC(Electronic Commerce)サイトとして機能する。なお、クライアント11及びサーバ12の台数や、サイトの種類は一例であって、この限りではない。
【0022】
通常、ユーザは、まずネットワーク(インターネット)Nに接続されているサーバ上のアプリケーションにHTTP(Hypertext Transfer Protocol)リクエスト(以下、単にリクエストともいう)をして、アクセスする。これに対してアプリケーションからのレスポンス(HTTPレスポンス)がユーザに返る。そこで、トラフィックデータ抽出装置1は、ネットワークN上のデータトラフィック13から、ユーザのHTTPリクエストやそのレスポンスを抽出する。トラフィックデータ抽出装置1は、この抽出したHTTPリクエストやレスポンスを解析することで、ユーザの行動を推定する。そして、トラフィックデータ抽出装置1は、特にユーザの書込行動を推定する。そのために、トラフィックデータ抽出装置1は、抽出したデータからサイトへの書込み行為に関するデータを分離する。なお、トラフィックデータ抽出装置1が抽出したデータのことをトラフィックデータと呼び、ネットワークN上のデータのことをデータトラフィック13と呼ぶ。
【0023】
[2.トラフィックデータ分離方法の概要]
ここでは、トラフィックデータ分離方法の概要として、2−1.ユーザによる情報入力行為の分類例、2−2.ヘッダ情報の具体例、2−3.識別関数、2−4.変換規則の各節について説明する。
【0024】
<2−1.ユーザによる情報入力行為の分類例>
トラフィックデータ抽出装置1が抽出したデータ中に、HTTP POSTがあった場合、ユーザによるサイトへの書込み行為(情報入力行為)には以下の(W1)〜(W6)が考えられる。トラフィックデータ抽出装置1は、このうち(W2)サーバへの書込み、のみを識別して抽出する。
【0025】
(W1)サーバへのログイン
(W2)サーバへの書込み(投稿、コメント、口コミ、アンケートなど)
(W3)Web APIの利用
(W4)ブログ内検索
(W5)翻訳サイト等の利用
(W6)旅行検索等の利用
【0026】
(W2)のサーバへの書込みとは、ユーザの嗜好、感情または意見を表すものとしてユーザが入力するものであり、ユーザによるサイトへの書込み行為を示す。
ここで、投稿とは、ユーザが、ブログ等自らのサイトへ書込みを行うことを示す。
また、コメントとは、ユーザが、他者のブログ等へコメントを書き込むことを示す。
口コミとは、ユーザが、口コミサイトや掲示板等の複数人(不特定多数)によって構成されるサイトへ書き込むことを示す。
アンケートとは、ユーザが、アンケートや質問への回答を書き込むことを示す。
【0027】
以下では、サーバへの書込みのことを、書込み行為または書込みという。これに対して、前記した(W1)及び(W3)〜(W6)は、書込み行為以外にユーザがネットワークN上のサーバに形式的に入力する行為等を示す。したがって、以下では、これらを総称して単純入力行為と呼ぶ。
【0028】
(W1)は、例えば、サーバで提供するサイトへの入り口のログインの入力フォームに合わせたユーザIDやパスワード等の入力を示す。一般的に、リクエスト(ユーザID等)のデータ長は書込みのデータ長よりも小さい。
【0029】
(W3)は、例えば、Web APIの利用申込書の入力フォームに合わせた個人情報等の入力や、Web APIの利用時のユーザIDやパスワード等の入力を示す。一般的に、そのレスポンス(登録内容確認結果やAPI利用画面)のデータ長は、リクエスト(入力個人情報やユーザID等)のデータ長よりも格段に大きい。
【0030】
(W4)は、例えば、Web上の検索入力フォームや検索式に合わせた検索キーワード等の入力を示す。一般的に、検索結果候補は多数あるのでレスポンス(検索結果)のデータ長はリクエスト(検索キーワード等)のデータ長よりも大きく、リクエスト(検索キーワード等)のデータ長はいわゆる書込みのデータ長よりも小さい。
【0031】
(W5)は、例えば、翻訳サイトの翻訳元原稿の入力フォームに合わせた文章等の入力を示す。翻訳はほぼ一対一に対応させるものなので、一般に、そのレスポンス(翻訳結果)のデータ長は、リクエスト(翻訳元原稿)のデータ長と同等とみなすことができる。
【0032】
(W6)は、例えば、旅行検索サイトの旅行プランの条件入力フォームに合わせたキーワードや数値等の入力を示す。一般に、そのレスポンス(条件一致プラン検索結果)のデータ長は、リクエスト(条件のキーワードや数値等)よりも大きい。特に、レスポンスに旅行先の見所の風景や宿泊施設等の画像データが含まれると、そのレスポンスのデータ長は、リクエストよりも格段に大きくなる。
【0033】
前記のように、書込み行為はユーザの嗜好等を表すものとしてユーザが入力するものであり、単純入力行為とは、ユーザの入力目的が全く異なる。また、サイトの種類によって、ユーザによる入力情報のデータ長とそのレスポンスのデータ長との関係は異なっている。本実施形態に係るトラフィックデータ分離方法は、ユーザによるネットワーク上の情報入力行為を、ユーザの入力目的またはサイトの種類に応じて、書込み行為と単純入力行為とに分類するために予め作成された識別関数を用いることとした。また、本実施形態に係るトラフィックデータ抽出装置1は、このトラフィックデータ分離方法を実現する装置である。
【0034】
<2−2.ヘッダ情報の具体例>
本実施形態に係るトラフィックデータ分離方法は、トラフィックデータ中の前記した(W1)〜(W6)に係るHTTP POSTメッセージを利用するユーザの情報入力行為の中から、(W2)の書込み行為を抽出するために、リクエストヘッダ情報及びレスポンスヘッダ情報を利用する。ヘッダ情報には、リクエスト専用のヘッダ情報、レスポンス専用のヘッダ情報、リクエストとレスポンスに共通に用いる汎用のヘッダ情報等がある。ヘッダ情報の一例を以下の(H1)〜(H5)に示す。
【0035】
(H1)Content-lengthは、ボディの長さを示す汎用のヘッダである。
(H2)Content-typeは、コンテンツの種類を示す汎用のヘッダである。
(H3)Cache-Controlは、キャッシュへの保存/非保存設定の制御を示す汎用のヘッダである。Cache-Controlは、例えば以下(V1)〜(V5)の値を有する。
【0036】
(V1)private:Webサーバから返されるコンテンツがただ一人のユーザのためのものであることを示す。Cache-Controlにて、この値が指定されると、共有(プロキシサーバ)キャッシュには保存されない。
(V2)no-store:Webサーバから返されてくるコンテンツをキャッシュに記録してはならないことを示す。
(V3)no-cache:一度キャッシュに記録されたコンテンツは、現在でも有効か否かを本来のWebサーバに問い合わせて確認がとれない限り再利用してはならないことを示す。
(V4)must-revalidate:キャッシュに記録されているコンテンツが現在も有効であるか否かをWebサーバに必ず問い合わすように強制することを示す。
(V5)public:Cache-Controlにて、この値が指定されると、応答をクライアントのキャッシュと共有(プロキシサーバ)キャッシュに保存することができる。
【0037】
(H4)Set-Cookieは、クッキーの付与を示すレスポンス専用のヘッダである。
(H5)Locationは、リクエストによって作られた新しいリソースの場所(URI:Uniform Resource Identifier)を示すレスポンス専用のヘッダである。
【0038】
[2−3.識別関数]
本実施形態に係るトラフィックデータ分離方法で利用する識別関数は、ユーザによるネットワークN上の情報入力行為を、書込み行為と、書込み行為以外の単純入力行為とに分類するために、予め定められたSVM(Support vector machine)のモデルから予め求められたものである。この識別関数により、本実施形態に係るトラフィックデータ分離方法は、前記した(W1)〜(W6)に係るHTTP POSTメッセージの中から(W2)の書込み行為を抽出する。
【0039】
SVMとは、分離超平面と2種類のデータとの間の距離(これをマージンと呼ぶ)が、最大になるような「分離超平面」が、最も汎化能力の高い超平面になる、ということを利用した識別手法である。なお、本実施形態では、トラフィックデータ抽出装置1にSVMによる識別関数の作成機能を備えることとした。その詳細は、後記する。
【0040】
本実施形態では、識別関数のリクエストヘッダ情報及びレスポンスヘッダ情報に係るサイト毎の特徴を反映して作成したものを利用することとした。このような識別関数の一例として、式(1)に示す識別関数f(x)を用いることとした。本発明において、SVMのモデルから求められた識別関数は、式(1)に限定されるものではない。なお、記憶手段3に記憶された識別関数については、識別関数fと表記する。
【0041】
【数5】

【0042】
ここで、wおよびbは識別関数を決定する予め求められたパラメータ、tは転置をそれぞれ表す。識別関数f(x)の入力xとwは、行ベクトルを示す。なお、本実施形態では、SVMによる識別関数の作成機能によって、パラメータwおよびbを予め求めることとした。その詳細は、後記する。
【0043】
識別関数f(x)の入力を示すベクトルxは、HTTP POSTメッセージおよびそのレスポンスメッセージにおいて予め定められた複数のヘッダ情報の値を、識別関数f(x)に入力可能な数値にそれぞれ変換したベクトルを示す。ここで、ヘッダ情報の種類によっては、その値が数値で表されていない場合がある。このように数値以外のもので表現されるデータのことを質的データと呼ぶ。一方、ヘッダ情報の値が数値で表されている場合、これを量的データと呼ぶ。SVMは、データを、量的データか質的データのどちらかに統一させて利用する必要があるために、ここでは、予め定めた変換規則によって、質的データを数値に変換させることとした。
【0044】
[2−4.変換規則]
変換規則は、HTTP POSTメッセージおよびそのレスポンスメッセージにおいてヘッダの値が数値で表されていない場合の当該ヘッダの値を示す質的データを識別関数f(x)へ入力可能な数値データに変換するものである。変換規則の具体例を表1に示す。なお、ここの表1に例示した変換規則は、記憶手段3に変換規則36として記憶されていることとした。
【0045】


【表1】

【0046】
表1において、No.R1〜R3は、リクエストヘッダに関する規則を示す。No.R1〜R3に示すように、HTTP POSTメッセージのヘッダに関しては、一例として、「Content-length」及び「Content-Type」に着目して変換する。なお、No.R1の規則は、例外であって、「Content-length」に関しては、ヘッダの値が数値で表されているので、変換しないことを示す。
【0047】
また、No.R2,R3の規則のペアは、ヘッダ「Content-Type」の値として取り得る2つの値に関する変換規則である。この規則のペアは、HTTP POSTメッセージにおいて、ヘッダ「Content-Type」の値が「application/x-www-form-urlencoded」であって、「multipart/form-dat」ではない場合、「application/x-www-form-urlencoded」の値を「1」にすると共に、「multipart/form-dat」の値を「0」にする。また、この規則のペアは、逆に、ヘッダ「Content-Type」の値が「application/x-www-form-urlencoded」ではなく「multipart/form-dat」である場合、「application/x-www-form-urlencoded」の値を「0」にすると共に、「multipart/form-dat」の値を「1」にする。
【0048】
表1において、No.R4〜R12は、レスポンスヘッダに関する規則を示す。つまり、HTTP POSTメッセージに対するレスポンスメッセージのヘッダに関しては、「Content-length」、「Cache-Control」、「Set-Cookie」、「Location」、「Connection」、「Pragma」、「P3p」に着目して変換する。
【0049】
なお、No.R4の規則は、例外であって、変換しないことを示す。また、No.R5,R6の規則のペアや、No.R9,R10の規則のペアは、リクエスト側のNo.R2,R3の規則のペアと同様な規則である。また、No.R11の規則は、レスポンスメッセージにおいて、ヘッダ「Pragma」の値が「no-cache」である場合、その値を「1」とし、ヘッダ「Pragma」の値が「no-cache」ではない場合、その値を「0」とする。このNo.R11の規則は、No.R6の「no-cache」に関する規則と同じ値に変換されることになる。
【0050】
また、No.R7,R8,R12の規則はそれぞれ、サイト毎やユーザ毎にヘッダの値が無数に存在するので、ヘッダの値の有無ではなく、そのヘッダ自体の有無に応じた値に変換するものである。ここでは、例えば、レスポンンス内に該当するヘッダがあれば「1」とし、なければ「0」とすることとした。
【0051】
[3.トラフィックデータ抽出装置の構成]
次に、トラフィックデータ抽出装置1の構成について図2を参照(適宜図1参照)して説明する。トラフィックデータ抽出装置1は、図2に示すように、バスライン7で接続された演算手段2と、記憶手段3と、通信手段4と、入力手段5と、出力手段6とを備えている。
【0052】
演算手段2は、例えば、CPU(Central Processing Unit)及びRAM(Random Access Memory)から構成される主制御装置である。この演算手段2は、図2に示すように、パケット抽出手段21と、メッセージ判別手段22と、データ変換手段23と、書込行為分類手段24と、識別関数作成手段25と、メモリ26とを備える。
【0053】
演算手段2は、記憶手段3から、トラフィックキャプチャプログラム31を読み込み、メモリ26に格納し、実行することで、前記したパケット抽出手段21と、メッセージ判別手段22とを実現する。また、演算手段2は、記憶手段3から、データ変換プログラム32及び書込行為分類プログラム33をそれぞれ読み込み、メモリ26に格納し、実行することで、前記したデータ変換手段23と書込行為分類手段24とをそれぞれ実現する。また、演算手段2は、記憶手段3から、識別関数作成プログラム34を読み込み、メモリ26に格納し、実行することで、前記した識別関数作成手段25を実現する。
【0054】
パケット抽出手段21は、ネットワークNからトラフィックデータとしてパケットを抽出する。
メッセージ判別手段(メッセージ抽出手段)22は、パケット抽出手段21で抽出されたトラフィックデータからHTTP POSTメッセージおよび当該HTTP POSTメッセージに対するレスポンスメッセージを抽出する。
【0055】
データ変換手段23は、メッセージ判別手段22で抽出したHTTP POSTメッセージおよびそのレスポンスメッセージのそれぞれのヘッダの内容を解析し、ヘッダの値が数値で表されていない場合に、記憶手段3に記憶された変換規則36によって、当該質的データを数値データに変換するものである。
【0056】
書込行為分類手段24は、抽出したHTTP POSTメッセージおよびそのレスポンスメッセージのそれぞれの予め定められたヘッダについての数値データおよび質的データから変換された数値データからなるベクトルxを、記憶手段3に記憶された識別関数f(例えば、式(1)の識別関数f(x))に入力して演算し、その演算結果により、当該抽出されたHTTP POSTメッセージを、書込み行為と単純入力行為とに分類するものである。
なお、識別関数作成手段25については、後記する。
【0057】
記憶手段3は、例えば、一般的なハードディスク装置等から構成される。
記憶手段3には、演算手段2で用いられるプログラムとして、トラフィックキャプチャプログラム31、データ変換プログラム32、書込行為分類プログラム33及び識別関数作成プログラム34を記憶させておくことが可能である。また、記憶手段3には、演算手段2で用いられる各種データとして、URLリスト35と、識別関数fとを記憶する。また、記憶手段3には、演算手段2のデータ変換手段23で用いられる変換規則36を記憶し、このデータ変換手段23の演算処理結果を示すデータである入力用ベクトル37を記憶する。なお、学習用データ38およびパラメータ39については後記する。
【0058】
URLリスト35は、ユーザによる書込みがなされるサイト(サーバ)のURLのリストである。URLリスト35には、例えば、有名なサイトのURLや、ユーザが自らのブログに投稿するためのURL(ブログ投稿URL)のユーザ毎のリストや、ユーザが他者のブログにコメントをするためのURL(コメント用URL)のブログ毎のリスト等が含まれる。URLリスト35は、例えば、トラフィックデータ抽出装置1の利用者が推測したいユーザの行動に応じて予め作成され、登録されている。登録されたURLは、設定ファイルによって変更が可能である。URLリスト35は、ユーザによるサイトへの書込み行為を特定するために、書込行為分類手段24によって利用される。このURLリスト35は入力手段5を介して入力され、記憶手段3に記憶される構成とすることが可能である。
【0059】
識別関数fは、例えば、トラフィックデータ抽出装置1の利用者が推測したいユーザの行動に応じて予め作成され、登録されている。識別関数fは、ユーザによるサイトへの書込み行為を抽出するために、書込行為分類手段24によって利用される。この識別関数fは入力手段5を介して入力され、記憶手段3に記憶される構成とすることが可能である。
【0060】
変換規則36は、HTTP POSTメッセージおよびそのレスポンスメッセージにおいてヘッダの値が数値で表されていない場合の当該ヘッダの値を示す質的データを識別関数fへ入力可能な数値データに変換するものである。変換規則36は、例えば、表1に示す12の規則からなる。
【0061】
入力用ベクトル37は、HTTP POSTメッセージおよびそのレスポンスメッセージに対してデータ変換手段23が変換規則36を用いて演算処理した結果を示すデータである。
例えば、HTTP POSTメッセージのリクエストヘッダが、表1に示すNo.R1〜R3により(480,1,0)に変換され、そのレスポンスメッセージのレスポンスヘッダが、表1に示すNo.R4〜R12により(257,1,0,0,1,1,0,0,0)に変換された場合には、これらのデータを連結したベクトル(480,1,0,257,1,0,0,1,1,0,0,0)が、当該HTTP POSTメッセージに対応して識別関数f(x)に入力される入力用ベクトルxとなる。
【0062】
通信手段4は、ネットワークN(インターネット)上のデータトラフィック13(図1参照)から、ユーザのリクエストやそのレスポンスを抽出する通信インタフェースである。入力手段5は、例えば、キーボード、マウス、ディスクドライブ装置等から構成される。出力手段6は、例えば、グラフィックボード(出力インタフェース)及びそれに接続されたモニタから構成される。モニタは、例えば、液晶ディスプレイ等から構成され、処理結果等を表示する。
【0063】
[4.トラフィックデータ抽出装置の動作]
<4−1.全体動作>
次に、トラフィックデータ抽出装置1の全体動作について、図3を参照(適宜図1及び図2参照)して説明する。まず、トラフィックデータ抽出装置1は、パケット抽出手段21によって、ネットワークN上を流れるデータトラフィック13からトラフィックデータとしてHTTPメッセージ(パケット)を抽出する(ステップS1)。そして、トラフィックデータ抽出装置1は、メッセージ判別手段22によって、メッセージの種別を判別して、HTTPリクエスト(リクエスト・メッセージ)を抽出し(ステップS2:メッセージ抽出ステップ)、書込行為分類手段24によって、HTTP POST分類処理を実行する(ステップS3:分類ステップ)。なお、ステップS2にて、メッセージ判別手段22がHTTP POSTメッセージを抽出した場合、当該HTTP POSTメッセージに対するレスポンスメッセージも抽出する。
【0064】
ステップS3のHTTP POST分類処理は、詳細は後記するが、書込行為分類手段24が、抽出メッセージのヘッダの内容に基づいて、当該メッセージを「書込み」、「単純入力行為」、「その他」に分類する処理である。ここで、「その他」とは、例えば、HTTP GET等の非POSTメッセージや、SSL(Secure Sockets Layer)で暗号化されたメッセージを示す。HTTP POSTメッセージであってもSSLで暗号化されている場合、公開鍵を持たない限り5層(プレゼンテーション層)以上を判読することはできないからである。
【0065】
ステップS3において、トラフィックデータ抽出装置1は、書込行為分類手段24によって、抽出メッセージを「書込み」であると判定した場合に、図示しない書込内容抽出手段によって、メッセージボディに記載された内容を解析する(ステップS4)。ここで、メッセージボディに記載された内容を解析する方法は、従来公知のパケットキャプチャーによる内容解析法を用いることができる。
【0066】
また、ステップS3において、トラフィックデータ抽出装置1は、書込行為分類手段24によって、抽出メッセージを「単純入力行為」であると判定した場合に、抽出メッセージを消去する(ステップS5)。
また、ステップS3において、トラフィックデータ抽出装置1は、書込行為分類手段24によって、抽出メッセージを「その他」であると判定した場合に、そのまま処理を終了する。
【0067】
<4−2.HTTP POST分類処理>
次に、HTTP POST分類処理について図4を参照(適宜図2及び図3参照)して説明する。図4に示す処理の概要は、次の通りである。すなわち、分類対象のHTTP POSTのURLが登録されていない場合に、そのリクエストヘッダおよびレスポンスヘッダに基づいて書込みを抽出する。なお、URLが登録されていれば、書込みであると判定することができる。以下、その詳細を説明する。
【0068】
図4に示すように、このHTTP POST分類処理(ステップS3)では、書込行為分類手段24は、まず、POST判別処理として、抽出メッセージにHTTP POSTメッセージがあるか否かを判別する(ステップS11)。抽出メッセージにHTTP POSTメッセージがある場合(ステップS11:Yes)、書込行為分類手段24は、URLリスト登録判別処理として、HTTP POSTメッセージの宛先のURLがURLリスト35に登録済みであるか否かを判別する(ステップS12)。
【0069】
ステップS12において、HTTP POSTメッセージの宛先のURLがURLリスト35に登録されていない場合(ステップS12:No)、データ変換手段23は、抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれのヘッダの内容を解析し、リクエストヘッダ及びレスポンスヘッダの値が数値で表されていない場合に、そのヘッダ情報(質的データ)の値を変換規則36により数値データに変換する(ステップS13:データ変換ステップ)。そして、書込行為分類手段24は、リクエストヘッダ及びレスポンスヘッダの変換値を合わせたベクトルxを識別関数f(x)に入力し、演算する(ステップS14)。
【0070】
そして、書込行為分類手段24は、その演算結果の符号がプラスであると判別した場合(ステップS15:プラス)、当該抽出されたHTTP POSTメッセージを、書込み行為を示すメッセージであると判定する(ステップS16)。
一方、書込行為分類手段24は、その演算結果の符号がマイナスであると判別した場合(ステップS15:マイナス)、当該抽出されたHTTP POSTメッセージを、単純入力行為を示すメッセージであると判定する(ステップS17)。
【0071】
前記URLリスト登録判別処理(ステップS12)において、HTTP POSTメッセージの宛先のURLがURLリスト35に登録済みである場合(ステップS12:Yes)、ステップS16に進み、抽出されたHTTP POSTメッセージを、書込み行為を示すメッセージであると判定する。
【0072】
前記POST判別処理(ステップS11)において、抽出メッセージにHTTP POSTメッセージがない場合(ステップS11:No)、書込行為分類手段24は、抽出メッセージを「その他」であると判定する(ステップS18)。
【0073】
[5.識別関数作成装置]
ここでは、5−1.識別関数作成装置の概要、5−2.識別関数作成装置の構成、5−3.識別関数作成処理の流れ、の各節に分けて識別関数作成装置について説明する。
【0074】
<5−1.識別関数作成装置の概要>
本実施形態では、識別関数作成装置(識別関数作成手段25)を、トラフィックデータ抽出装置1が内蔵するものとして説明する。また、識別関数作成装置は、前記した式(1)の識別関数を作成するものとして説明するが、本発明において、書込みとそれ以外とを分類するための識別関数は、式(1)の識別関数に限定されるものではない。SVMを利用した識別関数の作成においては、前提として、予め書込みであると分かっているトラヒックと、予めその他(書込み以外)であると分かっているトラヒックと、をそれぞれキャプチャして、生のトラヒックデータxを多数集める。ここで、例えば、書込み等のリクエストメッセージのトラヒックをキャプチャするときには、そのレスポンスメッセージもキャプチャし、生のトラヒックデータxは、リクエストとレスポンスのセットで集める。生のトラヒックデータxは、例えば、トラフィックデータ抽出装置1により集めることができる。
【0075】
そして、この生のトラヒックデータxのそれぞれに、「書込み」または「書込み以外」との識別結果yを付加して、多数の正解データ(x,y)を用意する。ここで、識別結果yは、人手により、書込みかその他かを判断したものである。生のトラヒックデータxのそれぞれに、識別結果yを割り当てる工程は、人手で行う。例えば、正解データ(x,y)として、書込みを示すHTTP POSTデータ(成功データ)と、その他のケースのHTTP POSTデータ(失敗データ)を多数用意する。
【0076】
ここで、正解データ(x,y)の一例を図5に示す。図5に示すテーブルには、13行に亘って、13個のデータ(i=1〜13)が示されている。各行は、1つの正解データ(x,y)を示している。つまり、各行は、1サイトへのHTTP POSTリクエストと、そのレスポンスの送受信の結果を示している。ただし、各正解データ(x,y)は、生のトラヒックデータxのリクエスト側及びレスポンス側の予め定めたヘッダに係る情報を抽出して必要に応じてデータ変換してベクトル化している。ここでは、各ヘッダ情報を前記した表1の変換規則で図5に示すテーブルのようにベクトル化した。このテーブルの左から数えた12個の列名は、表1のNo.R1〜R12にそれぞれ対応している。図5に示すテーブルは、リクエスト側及びレスポンス側のヘッダに質的データがある場合には、そのヘッダの値になり得る値を列名とした。
【0077】
そのため、各行において、符号501で示すように、左から1列目〜3列目までは、生のトラヒックデータxにおいてリクエスト側メッセージのリクエストヘッダの値を変換した数値データを示す。また、各行において、符号502で示すように、左から4列目〜12列目までは、そのレスポンス側メッセージのレスポンスヘッダの値を変換した数値データを示す。
【0078】
さらに、各行において、符号503で示すように、右端の1列は、そのトラヒックデータxに付加された識別結果yiを示す。ここでは、書込みを示すHTTP POSTデータ(成功データ)の識別結果yを、一例として「posting」で示し、その他のケースのHTTP POSTデータ(失敗データ)の識別結果yiを「others」で示した。例えば、y1=「posting」、y2=「others」なので、1行目の正解データ(x,y)は「書込み」を示し、2行目の正解データ(x,y)は「その他」を示す。ここで、成功データと失敗データの識別結果yiの表現方法はこれに限られるものではない。以下では、それらの相違を明示的に分かるようにするために、成功データの識別結果y1を「1(またはプラス)」で示し、失敗データの識別結果yiを「−1(またはマイナス)」で示すこととする。
【0079】
この正解データ(x,y)の一部は、学習段階において学習データとして用いられ、この正解データ(x,y)の残りの一部は、その後のモデル精度を向上させる段階において、テストデータとして用いられる。なお、テストデータは、正解データ(x,y)の中から、ランダムサンプリングにより作成する。
【0080】
学習段階において識別関数は、学習データと、パラメータw、bを定める関数とを用いて作成される。これにより、書込みかその他かの分類が最も上手くいくモデル(SVM)が作成される。その後、モデル精度を向上させる段階において、テストデータの識別結果を、評価関数Fを用いて評価し、パラメータ等の調整を行うことで、モデルの精度を高め、モデルを完成させる。この完成させたモデルが識別関数f(x)となる。これら学習段階及びモデル精度を向上させる段階は、例えば、トラフィックデータ抽出装置1により行うことができる。
【0081】
モデル精度を向上させる段階では、SVMを作成した後、テストデータを用いて、作成されたSVMがどれだけ判別可能かテストを行う。テスト結果の指標として、例えば、式(4)のF値を利用することができる。
【0082】
【数6】

【0083】
ここで、Rは“真の書込み”が「書込み」と判定された回数、Nは「書込み」と判定された回数、Cは“真の書込み”の個数である。つまり、F値が高ければ、識別性能が良いことを意味する。そのため、F値が高くなるように、利用する属性データの重みを変えて最適なモデルを作成し、これを識別関数f(x)とする。
【0084】
そして、最適なモデルが完成した後は、トラフィックデータ抽出装置1が、そのモデルを用いることで、未知のトラフィックデータを書込みかその他か自動的に分類することができるようになる。例えば、図5のテーブルを、事前に作成した正解データであるものとして説明したが、この図5のテーブルを、最適なモデルが完成した後の自動分類結果として用いることもできる。この場合には、本実施形態のトラフィックデータ抽出装置1によれば、符号501,502で示す12列目までの数値データが、未知のトラフィックデータのヘッダ情報が前記したデータ変換手段23により変換された入力用ベクトル37に対応する。そして、各行に対応した13個の未知のトラフィックデータの入力用ベクトルは、前記した書込行為分類手段24によって、サイトの構造分析に係る識別関数f(x)に入力され、演算の結果がプラスであれば、最右端の列にその判別結果「posting」が書き込まれ、演算の結果がマイナスであれば、最右端の列にその判別結果「others」が書き込まれることとなる。
【0085】
<5−2.識別関数作成装置の構成>
トラフィックデータ抽出装置1は、図2に示すように、記憶手段3に学習用データ38及びパラメータ39を記憶し、演算手段2に識別関数作成手段25を備える。
【0086】
学習用データ38は、予め作成された正解データ(x,y)の集合を示す。正解データ(x,y)の集合は、HTTP POSTメッセージが書込み行為(yi=1)に予め分類された成功データと、HTTP POSTメッセージがその他の単純入力行為(yi=−1)に予め分類された失敗データとを含んでいる。また、この正解データ(x,y)の集合は、学習段階において用いられる学習データと、モデル精度を向上させる段階において用いられるテストデータとを含んでいる。学習データの集合は、成功データと失敗データとを合計n個含むこととした。
【0087】
パラメータ39は、前記した式(1)中のパラメータw,bを示す。パラメータ39は、識別関数作成手段25の演算処理結果を示す。パラメータwは、n個の正解データ(x,y)を用いた学習段階に用いられるラグランジュ未定乗数ベクトルλを用いて、式(2)で表すことができる。同様に、パラメータbは、この学習段階に用いられるパラメータwと、サポートベクトルxSとを用いて、式(3)で表すことができる。式(3)において、サポートベクトルxSはλ>0となる学習データを示す。なお、プラスを示すサポートベクトルxSに対応する予め分かっている識別結果ySは「1」となる。
【0088】
【数7】

【0089】
識別関数作成手段25は、予め定められたn個の学習用の正解データの集合を学習用データ38から読み出して、各学習データとラグランジュ未定乗数ベクトルλとを使用して、式(2)によりパラメータwを算出すると共に、式(3)によりパラメータbを算出し、この算出したパラメータw,bと各正解データとを用いて前記式(1)により識別関数f(x)を算出する処理を学習計算として実行し、識別関数f(x)を作成するものである。識別関数作成手段25は、ベクトルλを予め定められた初期値から徐々に更新しながら前記式(2)、式(3)及び式(1)の計算を実行する学習計算を行い、Δλが最小になって学習計算が収束したときに、識別関数f(x)をモデルとして決定する。
【0090】
<5−3.識別関数作成処理の流れ>
次に、識別関数作成処理の流れについて図6を参照(適宜図2参照)して説明する。この識別関数作成処理は、演算手段2の識別関数作成手段25が、トラフィックデータの抽出に用いる識別関数f(x)を作成する処理であって、トラフィックデータの識別処理の前に行う処理である。
【0091】
まず、識別関数作成手段25は、ラグランジュ未定乗数ベクトルλの初期値を設定する(ステップS21)。そして、識別関数作成手段25は、記憶手段3に格納された学習用データ38から、n個の各学習用データxi(i=1,…,n)と、その分類結果書込み行為yi(i=1,…,n)との組を入力する(ステップS22)。
【0092】
そして、識別関数作成手段25は、現在のλの値を用いてパラメータwを前記した式(2)で算出すると共に、パラメータbを前記した式(3)で算出する(ステップS23)。そして、識別関数作成手段25は、算出したパラメータw,bを用いて、前記した式(1)で識別関数f(x)を算出する(ステップS24)。さらに、識別関数作成手段25は、未定乗数ベクトルλが最小になったか否かを判別する(ステップS25)。未定乗数ベクトルλが最小になっていない場合(ステップS25:No)、識別関数作成手段25は、λを更新し(ステップS26)、ステップS23に戻る。一方、未定乗数ベクトルλが最小になった場合(ステップS25:Yes)、識別関数作成手段25は、その時点のλの値によりSVMのモデルとしてf(x)を決定する(ステップS27)。なお、SVMのモデルの精度を向上させる段階は、必要に応じて、適宜実施することができる。
【0093】
本実施形態に係るユーザ行動推定システムは、トラフィックデータ抽出装置1を設置することで、複数サーバにおけるユーザの行動解析を行うことができる。また、本実施形態に係るトラフィックデータ抽出装置1は、従来からユーザの行動解析で使用していたHTTP GETだけでなく、HTTP POSTも行動解析に使用することで、これまでの「閲覧」という行為に加えて、「書込み」というユーザのより積極的な行為を取得することができる。
【0094】
また、本実施形態に係るトラフィックデータ分離方法によれば、トラフィックデータから書込み行為を示すメッセージを抽出する際に、HTTP POSTのボディを解析することなく、ヘッダ情報を解析してヘッダ情報の質的データを変換して識別関数に入力することで、書込みを示すメッセージを抽出することができる。そのため、トラフィックデータ分離方法は、メッセージボディを解析する場合に比べて高速に判別して、トラフィックデータから書込みを示すメッセージを高速に分離することができる。
【0095】
また、本実施形態に係る識別関数作成装置は、SVMのモデルとして識別関数f(x)を決定するので、トラフィックデータ抽出装置が、この識別関数f(x)を用いることで、HTTP POSTメッセージを、書込み行為と単純入力行為とに対応した2値に正確に識別することができる。
【0096】
ユーザの書込み行為が取得できれば、以下のようなサービスに利用ができる。すなわち、例えば、書込みの多いユーザに、無料サンプルや映画の試写会の情報を配信し、ユーザがそれを使用すれば、ブログや口コミサイトで商品を宣伝してくれることが期待できる。また、Q&Aサイト等で、ユーザに対して質問を出題する際に、書込みの多いユーザに対して質問を出題することで、積極的な回答が得られることが期待できる。
【0097】
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。例えば、本発明において、書込みとそれ以外とを分類するための識別関数は、前記した式(1)の識別関数に限定されるものではない。また、本実施形態のトラフィックデータ抽出装置1は、演算手段2に識別関数作成手段25を備え、記憶手段3に学習用データ38を記憶する構成として、装置内部で識別関数fを作成することとしたが、トラフィックデータ抽出装置1に、外部で作成された識別関数fを入力して用いることとしてもよい。この場合には、トラフィックデータ抽出装置1の外部の識別関数作成装置は、識別関数作成手段25と同等の機能を有した演算手段と、学習用データ38、パラメータ39及び識別関数fを記憶する記憶手段とを備え、同様なSVMのアルゴリズムにより識別関数f(x)を決定することができる。
【0098】
また、本実施形態のトラフィックデータ抽出装置1は、記憶手段3にURLリスト35を記憶し、URLリスト35に登録されていない場合に、HTTP POSTメッセージのリクエストヘッダ及びレスポンスヘッダの質的データを数値データに変換することとしたが、URLリスト35による判定は必須ではなく、抽出したすべてのHTTP POSTメッセージのヘッダを変換するようにしてもよい。
【0099】
また、トラフィックデータ抽出装置1に、書込み行為を示すHTTP POSTメッセージの内容の解析処理を行う書込内容抽出手段を設けるようにしてもよい。この場合、書込みの内容を解析する処理は、書込み行為を示すHTTP POSTメッセージを抽出後に逐一行う必要はなく、予め定めた期間蓄積した後、別のタイミングで解析すればよい。
【0100】
また、トラフィックデータ抽出装置1に、ユーザによるサイトの閲覧行動を推測する閲覧行動推測処理部を設けた場合、ステップS3のHTTP POST分類処理にて「その他」であると判定したメッセージが、例えば、HTTP GETメッセージであれば、閲覧履歴をもとにユーザの行動履歴を推測する処理を行うようにしてもよい。また、トラフィックデータ抽出装置1は、ステップS3にて「その他」であると判定したメッセージを消去するようにしてもよいし、蓄積するようにしてもよい。
【符号の説明】
【0101】
10 ユーザ行動推定システム
11(11A、11B、11C) クライアント
12(12A、12B、12C) サーバ
1 トラフィックデータ抽出装置
2 演算手段
21 パケット抽出手段
22 メッセージ判別手段(メッセージ抽出手段)
23 データ変換手段
24 書込行為分類手段
25 識別関数作成手段
26 メモリ
3 記憶手段
31 トラフィックキャプチャプログラム
32 データ変換プログラム
33 書込行為分類プログラム
34 識別関数作成プログラム
35 URLリスト
36 変換規則
37 入力用ベクトル
38 学習用データ
39 パラメータ
4 通信手段
5 入力手段
6 出力手段
7 バスライン
f 識別関数
N ネットワーク

【特許請求の範囲】
【請求項1】
ネットワーク上のアプリケーションを提供するサーバと、ユーザの操作により前記サーバにアクセスするクライアントと、ネットワークからデータを抽出するトラフィックデータ抽出装置とを備え、ネットワークにおける前記ユーザの行動を推測するユーザ行動推測システムにおける前記トラフィックデータ抽出装置であって、
ユーザによるネットワーク上の情報入力行為を、ユーザの嗜好、感情または意見を表すものとして入力するサイトへの書込み行為と、前記書込み行為以外で形式的に入力するサイトへの単純入力行為とに分類するために、予め定められたSVM(Support vector machine)のモデルから予め求められた前記書込み行為と前記単純入力行為とを識別する識別関数と、
HTTP POSTメッセージ及びそのレスポンスメッセージにおいてヘッダの値が数値で表されていない場合の当該ヘッダの値を示す質的データを前記識別関数へ入力可能な数値データに変換する変換規則とを記憶する記憶手段と、
前記ネットワークからトラフィックデータとしてパケットを抽出するパケット抽出手段と、
前記抽出されたトラフィックデータからHTTP POSTメッセージ及び当該HTTP POSTメッセージに対するレスポンスメッセージを抽出するメッセージ抽出手段と、
前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれのヘッダの内容を解析し、ヘッダの値が数値で表されていない場合に、当該質的データを前記変換規則により数値データに変換するデータ変換手段と、
前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれの予め定められたヘッダについての数値データ及び前記質的データから変換された数値データからなるベクトルを前記識別関数に入力して演算し、その演算結果により、当該抽出されたHTTP POSTメッセージを、前記書込み行為と前記単純入力行為とに分類する書込行為分類手段と、
を備えることを特徴とするトラフィックデータ抽出装置。
【請求項2】
ネットワーク上のアプリケーションを提供するサーバと、ユーザの操作により前記サーバにアクセスするクライアントと、ネットワークからデータを抽出するトラフィックデータ抽出装置とを備え、ネットワークにおける前記ユーザの行動を推測するユーザ行動推測システムにおける前記トラフィックデータ抽出装置が抽出したデータからサイトへの書込み行為に関するデータを分離するトラフィックデータ分離方法であって、
前記トラフィックデータ抽出装置は、通信手段と、演算手段と、記憶手段とを備え、
前記記憶手段は、ユーザによるネットワーク上の情報入力行為を、ユーザの嗜好、感情または意見を表すものとして入力するサイトへの書込み行為と、前記書込み行為以外で形式的に入力するサイトへの単純入力行為とに分類するために、予め定められたSVMのモデルから予め求められた前記書込み行為と前記単純入力行為とを識別する識別関数と、HTTP POSTメッセージ及びそのレスポンスメッセージにおいてヘッダの値が数値で表されていない場合の当該ヘッダの値を示す質的データを前記識別関数へ入力可能な数値データに変換する変換規則とを記憶し、
前記演算手段は、
前記ネットワークからトラフィックデータを抽出するステップと、
前記抽出されたトラフィックデータからHTTP POSTメッセージ及び当該HTTP POSTメッセージに対するレスポンスメッセージを抽出するメッセージ抽出ステップと、
前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれのヘッダの内容を解析し、ヘッダ情報の値が数値で表されていない場合に、当該質的データを前記変換規則により数値データに変換するデータ変換ステップと、
前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれの予め定められたヘッダについての数値データ及び前記質的データから変換された数値データからなるベクトルを前記識別関数に入力して演算するステップと、
その演算結果により、当該抽出されたHTTP POSTメッセージを、前記書込み行為と前記単純入力行為とに分類する分類ステップと、
を含んで実行することを特徴とするトラフィックデータ分離方法。
【請求項3】
ネットワーク上のアプリケーションを提供するサーバと、ユーザの操作により前記サーバにアクセスするクライアントと、ネットワークからデータを抽出するトラフィックデータ抽出装置とを備え、ネットワークにおける前記ユーザの行動を推測するユーザ行動推測システムにおける前記トラフィックデータ抽出装置であって、
ユーザによるネットワーク上の情報入力行為を、ユーザの嗜好、感情または意見を表すものとして入力するサイトへの書込み行為と、前記書込み行為以外で形式的に入力するサイトへの単純入力行為とに分類するために、HTTP POSTメッセージのリクエストヘッダの内容と、前記HTTP POSTメッセージに対するレスポンスメッセージのレスポンスヘッダの内容とに基づいてSVMのモデルから予め求められた前記書込み行為と前記単純入力行為とを識別する式(1)の識別関数f(x)と、
前記HTTP POSTメッセージ及びそのレスポンスメッセージにおいてヘッダの値が数値で表されていない場合の当該ヘッダの値を示す質的データを前記識別関数f(x)へ入力可能な数値データに変換する変換規則とを記憶する記憶手段と、
前記ネットワークからトラフィックデータとしてパケットを抽出するパケット抽出手段と、
前記抽出されたトラフィックデータからHTTP POSTメッセージ及び当該HTTP POSTメッセージに対するレスポンスメッセージを抽出するメッセージ抽出手段と、
前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれのヘッダの内容を解析し、ヘッダの値が数値で表されていない場合に、当該質的データを前記変換規則により数値データに変換するデータ変換手段と、
前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれの予め定められたヘッダについての数値データ及び前記質的データから変換された数値データからなるベクトルxを前記識別関数f(x)に入力して演算し、その演算結果により、当該抽出されたHTTP POSTメッセージを、前記書込み行為と前記単純入力行為とに分類する書込行為分類手段と、
を備えることを特徴とするトラフィックデータ抽出装置。
【数1】

ここで、w及びbは識別関数を決定する予め求められたパラメータ、tは転置をそれぞれ表す。
【請求項4】
ネットワーク上のアプリケーションを提供するサーバと、ユーザの操作により前記サーバにアクセスするクライアントと、ネットワークからデータを抽出するトラフィックデータ抽出装置とを備え、ネットワークにおける前記ユーザの行動を推測するユーザ行動推測システムにおける前記トラフィックデータ抽出装置が抽出したデータからサイトへの書込み行為に関するデータを分離するトラフィックデータ分離方法であって、
前記トラフィックデータ抽出装置は、通信手段と、演算手段と、記憶手段とを備え、
前記記憶手段は、ユーザによるネットワーク上の情報入力行為を、ユーザの嗜好、感情または意見を表すものとして入力するサイトへの書込み行為と、前記書込み行為以外で形式的に入力するサイトへの単純入力行為とに分類するために、HTTP POSTメッセージのリクエストヘッダの内容と、前記HTTP POSTメッセージに対するレスポンスメッセージのレスポンスヘッダの内容とに基づいてSVMのモデルから予め求められた前記書込み行為と前記単純入力行為とを識別する式(1)の識別関数f(x)と、前記HTTP POSTメッセージ及びそのレスポンスメッセージにおいてヘッダの値が数値で表されていない場合の当該ヘッダの値を示す質的データを前記識別関数f(x)へ入力可能な数値データに変換する変換規則とを記憶し、
前記演算手段は、
前記ネットワークからトラフィックデータを抽出するステップと、
前記抽出されたトラフィックデータからHTTP POSTメッセージ及び当該HTTP POSTメッセージに対するレスポンスメッセージを抽出するメッセージ抽出ステップと、
前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれのヘッダの内容を解析し、ヘッダ情報の値が数値で表されていない場合に、当該質的データを前記変換規則により数値データに変換するデータ変換ステップと、
前記抽出したHTTP POSTメッセージ及びそのレスポンスメッセージのそれぞれの予め定められたヘッダについての数値データ及び前記質的データから変換された数値データからなるベクトルxを前記識別関数f(x)に入力して演算するステップと、
その演算結果により、当該抽出されたHTTP POSTメッセージを、前記書込み行為と前記単純入力行為とに分類する分類ステップと、
を含んで実行することを特徴とするトラフィックデータ分離方法。
【数2】

ここで、w及びbは識別関数を決定する予め求められたパラメータ、tは転置をそれぞれ表す。
【請求項5】
請求項3に記載のトラフィックデータ抽出装置で利用する識別関数を作成する識別関数作成装置であって、
HTTP POSTメッセージが前記書込み行為(yi=1)に予め分類された成功データと、HTTP POSTメッセージが前記単純入力行為(yi=−1)に予め分類された失敗データxiとして与えられた合計n個の学習用の正解データを記憶する記憶手段と、
前記n個の学習用の正解データとラグランジュ未定乗数ベクトルλとを使用して、式(2)により前記パラメータwを算出すると共に、式(3)により前記パラメータbを算出し、前記算出したパラメータw,bと前記各正解データとを用いて前記式(1)により識別関数f(x)を算出する処理を、前記ベクトルλを予め定められた初期値から徐々に更新する学習計算として実行し、Δλが最小になって学習計算が収束したときに、前記識別関数f(x)を決定する演算手段と、
を備えることを特徴とする識別関数作成装置。
【数3】

ここで、xSはλ>0となる学習データを示し、yS=1を示す。
【請求項6】
請求項3に記載のトラフィックデータ抽出装置で利用する識別関数を作成する識別関数作成装置による識別関数作成方法であって、
前記識別関数作成装置の記憶手段は、HTTP POSTメッセージが前記書込み行為(yi=1)に予め分類された成功データと、HTTP POSTメッセージが前記単純入力行為(yi=−1)に予め分類された失敗データxiとして与えられた合計n個の学習用の正解データを記憶し、
前記識別関数作成装置の演算手段は、
前記n個の学習用の正解データを入力するステップと、
前記各正解データとラグランジュ未定乗数ベクトルλとを使用して、式(2)により前記パラメータwを算出すると共に、式(3)により前記パラメータbを算出するステップと、
前記算出したパラメータw,bと前記各正解データとを用いて前記式(1)により識別関数f(x)を算出する処理とを、
前記ベクトルλを予め定められた初期値から徐々に更新する学習計算として実行し、
Δλが最小になって学習計算が収束したときに、前記識別関数f(x)を決定するステップと、
を実行することを特徴とするトラフィックデータ分離方法。
【数4】

ここで、xSはλ>0となる学習データを示し、yS=1を示す。
【請求項7】
請求項1または請求項3に記載のトラフィックデータ抽出装置を構成する各手段としてコンピュータを機能させるためのプログラム。
【請求項8】
請求項5に記載の識別関数作成装置を構成する各手段としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate