以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、制御システム100の一例を概略的に示す。制御システム100は、ユーザ端末30の通信トラフィックを制御する。制御システム100は、例えば、通信事業者によって提供される。制御システム100は、通信事業者のネットワークを介したユーザ端末30の通信トラフィックを制御してよい。制御システム100は、例えば、インターネット20に接続された動画配信サイト40からの、インターネット20、モバイルネットワーク10及び基地局12を介したユーザ端末30への通信トラフィックを制御する。ユーザ端末30は、スマートフォン等の携帯電話、タブレット端末、及びPC(Personal Computer)等であってよい。
制御システム100は、学習制御装置200及び行動判定装置300を備えてよい。学習制御装置200は、ユーザ端末30と動画配信サイト40との間の複数のパケットに基づいて学習モデルを生成してよい。学習制御装置200は、例えば、動画配信サイト40からユーザ端末30に向けて送信された複数のパケットに基づいて学習モデルを生成する。
学習モデルを生成することは、新たに学習モデルを作り出すこと及び既存の学習モデルを更新することを含んでよい。学習制御装置200は、機械学習を実行することによって機械学習モデルを生成してよい。学習制御装置200は、深層学習を実行することによって深層学習モデルを生成してよい。
学習制御装置200は、例えば、動画配信サイト40からユーザ端末30に向けて送信された複数の暗号化パケットを中継するゲートウェイ装置400から、当該複数の暗号化パケットを受信する。ゲートウェイ装置400は、例えば、動画配信サイト40からユーザ端末30に向けて送信された複数の暗号化パケットを複製して学習制御装置200に送信してよい。
学習制御装置200は、複数の暗号化パケットを復号化せずに当該複数の暗号化パケットから取得できる情報に基づいて学習モデルを生成してよい。具体例として、学習制御装置200は、ユーザ端末30のユーザ50が、閲覧する動画を頻繁に切り替える行動をとっているか否かを判定するための学習モデルを生成する。閲覧する動画を頻繁に切り替える行動とは、動画の閲覧を開始してから予め定められた期間を経過する前に次の動画の閲覧を開始する行動であってよい。予め定められた期間は、秒単位、分単位等で任意に定められてよい。学習制御装置200は、作成した学習モデルを行動判定装置300に送信してよい。
行動判定装置300は、学習制御装置200によって生成された学習モデルを用いて、ユーザ端末30のユーザ50がとっている行動を判定する。行動判定装置300は、例えば、動画配信サイト40からユーザ端末30に向けて送信された複数の暗号化パケットを、ゲートウェイ装置400から受信する。ゲートウェイ装置400は、動画配信サイト40からユーザ端末30に向けて送信された複数の暗号化パケットを複製して行動判定装置300に送信してよい。行動判定装置300は、受信した複数の暗号化パケットと、学習制御装置200から受信した学習モデルとを用いて、ユーザ50がとっている行動を判定する。
具体例として、行動判定装置300は、ユーザ50が閲覧する動画を頻繁に切り替える行動をとっているか否かを判定するための学習モデルを学習制御装置200から受信して格納する。そして、行動判定装置300は、ゲートウェイ装置400から受信した複数の暗号化パケットと、当該学習モデルとを用いて、ユーザ50が、閲覧する動画を頻繁に切り替える行動をとっているか否かを判定する。
行動判定装置300は、判定結果をゲートウェイ装置400に送信することによって、ユーザ端末30に対する通信トラフィックを制御させてよい。ゲートウェイ装置400は、行動判定装置300から受信した判定結果に基づいて、ユーザ端末30に対する通信トラフィックを制御してよい。
例えば、ゲートウェイ装置400は、閲覧する動画を頻繁に切り替える行動をとっているユーザ50のユーザ端末30に対する通信トラフィックを制限する。ゲートウェイ装置400は、例えばユーザ端末30に割り当てる通信帯域を低減することによって、ユーザ端末30に対する通信トラフィックを規制してよい。具体例として、ゲートウェイ装置400は、ユーザ端末30に対して割り当てる通信帯域を、1Mbps等の予め定められた通信帯域に制限する。1Mbpsは例示であり、任意に設定されてよい。
例えば、ユーザ50がYoutube(登録商標)等の動画配信サイト40によって配信される動画を閲覧する場合、まず、動画配信サイト40が動画の一部をユーザ端末30に送信し、ユーザ端末30はその動画の一部をバッファリングする。そして、動画の閲覧中に、動画の残りの部分が動画配信サイト40からユーザ端末30に適宜送信される。
ここで、例えば、動画の50%がユーザ端末30にバッファリングされている状態で、ユーザ50が動画の10%を閲覧した時点で動画を切り替えると、動画の40%は閲覧されずに破棄されることになる。すなわち、結果として、ユーザ50によって閲覧されない動画が動画配信サイト40からユーザ端末30に送信されたことになる。このようなユーザ50の行動はネットワークのリソースを不必要に消費する一因となっている。
これに対して本実施形態に係る制御システム100によれば、閲覧する動画を頻繁に切り替える行動をとっているユーザ50のユーザ端末30に対する通信トラフィックを制限することができる。これにより、ユーザ50によって閲覧されないにも関わらず動画配信サイト40からユーザ端末30に送信される動画のデータ量を低減することができ、ネットワークリソースの有効利用を実現することができる。
また、本実施形態に係る制御システム100によれば、複数の暗号化パケットを復号化せずに複数の暗号化パケットから取得できる情報に基づいて、閲覧する動画を頻繁に切り替える行動をとっているか否かを判定するための学習モデルのようなネットワークリソースの有効活用を実現可能とする学習モデルを生成することができる。
パケットが暗号化されていなければ、パケットを中継するゲートウェイ装置400において取得したパケットのペイロードを分析することによって、様々な通信トラフィック削減策をとることができる。しかし、既存の動画配信サイト40では通信のほぼすべてを暗号化している場合が多い。そのため、通信事業者による通信トラフィック削減策は非常に限られる。例えば、通信事業者は、暗号化パケットのヘッダ情報を確認することによって動画配信サイト40から送信されたパケットを特定し、動画を閲覧しているユーザ50に対して一様に制限をかける等の対策をとることしかできなかった。これに対して、本実施形態に係る制御システム100によれば、例えば、動画閲覧ユーザのうち、閲覧する動画を頻繁に切り替えるユーザに限定して制限をかけることができるので、効果的に通信トラフィックを抑えることができる。
図2は、学習制御装置200、行動判定装置300、及びゲートウェイ装置400の機能構成の一例を概略的に示す。ゲートウェイ装置400は、トラフィック送受信部410、パケットログ送信部420、及びトラフィック制御部430を有する。学習制御装置200は、パケットログ受信部210、学習データ生成部220、及び学習モデル生成部230を有する。行動判定装置300は、判定部310、パケットログ受信部320、及び判定結果出力部330を有する。
トラフィック送受信部410は、ユーザ端末30に対する通信トラフィックの送受信を行う。トラフィック送受信部410は、ユーザ端末30と任意の通信先との間のパケットを中継する。トラフィック送受信部410は、例えば、動画配信サイト40からユーザ端末30に向けて送信されたパケットを受信して、ユーザ端末30に対して送信する。トラフィック送受信部410は、例えば、ユーザ端末30から動画配信サイト40に向けて送信されたパケットを受信して、動画配信サイト40に対して送信する。
パケットログ送信部420は、トラフィック送受信部410が送受信する暗号化パケットのうち、特定の暗号化パケットをパケットログ受信部210及びパケットログ受信部320に送信する。パケットログ送信部420は、特定の暗号化パケットの複製をパケットログ受信部210及びパケットログ受信部320に送信してよい。
パケットログ送信部420は、例えば、送信元が動画配信サイト40である暗号化パケットをパケットログ受信部210及びパケットログ受信部320に送信する。パケットログ送信部420は、送信元が動画配信サイト40であり、かつ、送信先が予め定められたユーザ端末30である暗号化パケットをパケットログ受信部210及びパケットログ受信部320に送信してもよい。
パケットログ受信部210は、パケットログ送信部420が送信した暗号化パケットを受信する。パケットログ受信部210は、受信した暗号化パケットを復号化せずに取得できる情報を学習データ生成部220に送信する。パケットログ受信部210は、暗号化パケットの送信先であるユーザ端末30毎に暗号化パケットを分類して、暗号化パケットを復号化せずに取得できる情報を学習データ生成部220に送信してよい。
パケットログ受信部210は、例えば、暗号化パケットのヘッダ情報を学習データ生成部220に送信する。また、パケットログ受信部210は、例えば、暗号化パケットのパケット間隔を学習データ生成部220に送信する。パケットログ受信部210は、例えば、トラフィック送受信部410が受信した暗号化パケットの受信時刻の差をパケット間隔として学習データ生成部220に送信する。なお、パケットログ受信部210が、パケットログ送信部420から受信した暗号化パケットを学習データ生成部220に送信して、学習データ生成部220が、受信した複数の暗号化パケットから、複数の暗号化パケットを復号化せずに取得できる情報を取得してもよい。
学習データ生成部220は、複数の暗号化パケットを復号化せずに取得できる情報から、学習データを生成する。学習データは、学習モデル生成部230への入力単位となるデータであってよい。学習データは、学習モデル生成部230が学習に用いることができる形式であれば、どのような形式であってもよい。
例えば、学習データ生成部220は、暗号化パケットの送信先であるユーザ端末30毎に、予め定められた数の連続する複数の暗号化パケットについて、復号化せずに取得できる情報を0/1表記のデータに置き換えて結合することによって学習データを生成する。予め定められた数は、例えば100個等、任意に設定されてよい。
具体例として、閲覧する動画を頻繁に切り替える行動をとっているか否かを判定するための学習モデルを生成する場合、学習データ生成部220は、各暗号化パケットにつき、パケット間隔、ソースアドレス、プロトコル種別、フラグ種別、及びTCPのウィンドウサイズをそれぞれ0/1表記のデータに置き換えて結合したデータを生成し、100個分の当該データを結合することによって学習データを生成する。学習データ生成部220は、学習モデル生成部230が生成する学習モデルの種類に応じた学習データを生成してよい。
学習モデル生成部230は、学習データ生成部220から入力された学習データを用いて学習モデルを生成する。学習モデル生成部230は、パケットの配信を規制するユーザ端末30を判定するための学習モデルを生成してよい。
例えば、学習モデル生成部230は、閲覧する動画を頻繁に切り替える行動をとっているか否かを判定するための学習モデルを生成する。学習モデル生成部230は、パケット間隔、ソースアドレス、プロトコル種別、フラグ種別、及びTCPのウィンドウサイズの少なくともいずれかを用いて、閲覧する動画を頻繁に切り替える行動をとっているか否かを判定するための学習モデルを生成してよい。学習モデル生成部230は、複数の暗号化パケットを復号化せずに取得できる情報のうち、これら以外の情報をさらに用いて学習モデルを生成してもよい。
また、例えば、学習モデル生成部230は、データ量の多い動画を閲覧する行動をとっているか否かを判定するための学習モデルを生成する。学習モデル生成部230は、複数の暗号化データを復号化せずに取得できる情報のうち、データ量の多い動画を閲覧する行動に関連する情報を用いて当該学習モデルを生成してよい。
また、例えば、学習モデル生成部230は、規制対象の動画を閲覧する行動をとっているか否かを判定するための学習モデルを生成する。学習モデル生成部230は、複数の暗号化データを復号化せずに取得できる情報のうち、規制対象の動画を閲覧する行動に関連する情報を用いて当該学習モデルを生成してよい。
学習モデル生成部230は、生成した学習モデルを判定部310に送信する。判定部310は、学習モデル生成部230から受信した学習モデルを格納する。
パケットログ受信部320は、パケットログ送信部420が送信した暗号化パケットを受信する。パケットログ受信部320は、受信した暗号化パケットを判定部310に送信する。
判定部310は、格納している学習モデルと、パケットログ受信部320から受信した暗号化パケットとを用いて、暗号化パケットの送信先であるユーザ端末30のユーザ50の行動を判定する。判定部310は、例えば、暗号化パケットの送信先であるユーザ端末30毎に、学習データと同一フォーマットの判定データを生成し、当該判定データと学習モデルとを用いてユーザ50の行動を判定する。
具体例として、判定部310は、ユーザ50が閲覧する動画を頻繁に切り替える行動をとっているか否かを判定する。判定部310は、例えば、閲覧する動画を頻繁に切り替える行動をとっている確度と、閲覧する動画を頻繁に切り替える行動をとっていない確度との比率を算出して、前者の比率が高い場合に、閲覧する動画を頻繁に切り替える行動をとっていると判定する。判定部310は、閲覧する動画を頻繁に切り替える行動をとっている確度と、閲覧する動画を頻繁に切り替える行動をとっていない確度との合計が100%になるように、これらの確度を導出してよい。
判定部310は、判定結果を判定結果出力部330に送信する。判定部310は、例えば、ユーザ50が閲覧する動画を頻繁に切り替える行動をとっているか否かを示す判定結果を判定結果出力部330に送信する。また、判定部310は、閲覧する動画を頻繁に切り替える行動をとっている確度と、閲覧する動画を頻繁に切り替える行動をとっていない確度との比率を判定結果出力部330に送信してもよい。
判定結果出力部330は、判定部310から受信した判定結果を出力する。判定結果出力部330は、例えば、判定部310から受信した判定結果をトラフィック制御部430に送信する。
トラフィック制御部430は、判定部310から受信した判定結果に基づいて、ユーザ端末30に対する通信トラフィックを制御する。トラフィック制御部430は、例えば、閲覧する動画を頻繁に切り替える行動をとっていると判定されたユーザ50のユーザ端末30に対する通信トラフィックを制限する。トラフィック制御部430は、具体例として、当該ユーザ端末30に割り当てる通信帯域を制限してよい。例えば、トラフィック制御部430は、当該ユーザ端末30に対して割り当てる通信帯域を、1Mbps等の予め定められた通信帯域に制限する。
トラフィック制御部430は、閲覧する動画を頻繁に切り替える行動をとっている確度と、閲覧する動画を頻繁に切り替える行動をとっていない確度との比率を受信した場合、当該比率に基づいて通信トラフィックを制御してもよい。例えば、トラフィック制御部430は、閲覧する動画を頻繁に切り替える行動をとっている確度が高いほど、当該ユーザ50のユーザ端末30に対する通信トラフィックをより強く制限する。通信トラフィックをより強く制限するとは、例えば、通信帯域をより狭くすることであってよい。
また、トラフィック制御部430は、閲覧する動画を頻繁に切り替える行動をとっている確度が予め定められた閾値より高いユーザ50のユーザ端末30に対する通信トラフィックのみを制限してもよい。例えば、閲覧する動画を頻繁に切り替える行動をとっている確度の比率が50〜70%のユーザ50のユーザ端末30については通信トラフィックを制限せず、70%以上のユーザ端末30のユーザ端末30に対する通信トラフィックのみを制限する。
判定結果出力部330は、判定部310から受信した判定結果を表示出力してもよい。この場合、例えば、判定結果出力部330によって表示出力された判定結果をオペレータが閲覧し、当該オペレータの指示に従って、ユーザ端末30に対する通信トラフィックが制限される。
行動判定装置300は、判定装置の一例であってよい。学習制御装置200と行動判定装置300とは、一の実行主体によって実現されてもよく、その場合、当該一の実行主体は、判定装置の一例であってよい。また、トラフィック制御部430は、ゲートウェイ装置400内ではなく、行動判定装置300内に位置してもよい。また、学習制御装置200、行動判定装置300、及びゲートウェイ装置400が一の実行主体によって実現されてもよく、その場合、当該一の実行主体は、判定装置の一例であってよい。
図3は、行動判定装置300及びゲートウェイ装置400による処理の流れの一例を概略的に示す。ここでは、ゲートウェイ装置400が複数の基地局12のそれぞれの通信トラフィックをモニタリングしている状況において、一の基地局12の通信トラフィックを取得してから、当該一の基地局12の通信トラフィックに関する処理を終了するまでの処理の流れを概略的に示す。
ステップ(ステップをSと省略して記載する場合がある。)302では、ゲートウェイ装置400が、基地局12の通信トラフィックを取得する。S304では、ゲートウェイ装置400が、S302において取得した通信トラフィックが規制レベルより大きいか否かを判定する。規制レベルは予め登録されていてよい。また、規制レベルは変更可能であってよい。規制レベルより大きいと判定した場合、S306に進み、大きくないと判定した場合、処理を終了する。
S306では、判定部310が、基地局12を介して通信を実行しているユーザ端末30のユーザ50に、動画を頻繁に切り替える行動をとっているユーザ50がいるか否かを判定する。判定部310による判定結果は、判定結果出力部330によってトラフィック制御部430に送信されてよい。判定結果が、動画を頻繁に切り替える行動をとっているユーザ50がいることを示す場合、S308に進み、示さない場合、処理を終了する。
S308では、トラフィック制御部430が、S306において動画を頻繁に切り替える行動をとっていると判定されたユーザ50のユーザ端末30に対する通信トラフィックを制限する。そして処理を終了する。
行動判定装置300及びゲートウェイ装置400が、複数の基地局12について上記処理を実行することにより、通信トラフィックが規制レベルを超えた基地局12について、当該基地局12を介して通信を実行しているユーザ端末30のユーザ50の体感品質を低下させることなく、基地局12の負荷を低減することができる。なお、図3では、基地局12の通信トラフィックが規制レベルより大きいか否かをゲートウェイ装置400が判定する場合を例に挙げて説明したが、これに限らず、ゲートウェイ装置400以外の装置が判定を行ってもよい。
図3に示す処理を実行することによってユーザ端末30の通信トラフィックを制限してから、予め定められた時間が経過した後に、判定部310は、通信トラフィックが制限されたユーザ端末30に向けて送信された複数のパケットに基づいて、当該ユーザ端末30のユーザ50が動画を頻繁に切り替える行動をとっているか否かを判定してもよい。予め定められた時間は、任意に設定可能であってよい。
判定結果出力部330は、判定部310による判定結果をトラフィック制御部430に送信してよい。トラフィック制御部430は、判定結果が、当該ユーザ端末30のユーザ50が動画を頻繁に切り替える行動をとっていないことを示す場合、当該ユーザ端末30に対する通信トラフィックの制限を解除してよい。これにより、動画を頻繁に切り替えながら希望の動画を探していたユーザ50が、希望の動画を発見して当該動画の閲覧を始めた場合に、通信トラフィックの制限が継続してしまうことを防止できる。
図4は、学習制御装置200による処理の流れの一例を概略的に示す。図4は、学習制御装置200がいわゆる教師有学習を実行する場合の処理の一例を示す。ここでは、動画を頻繁に切り替える行動を特定のユーザ50に行わせて、当該特定のユーザ50のユーザ端末30に向けて送信された暗号化パケットをパケットログ送信部420がパケットログ受信部210に送信することによって、教師有学習を実現する場合について説明する。
S402では、パケットログ受信部210が、複数の暗号化パケットを受信する。パケットログ受信部210は、受信した複数の暗号化パケットを学習データ生成部220に送信する。
S404では、学習データ生成部220が、複数の暗号化パケットからヘッダ情報を抽出する。学習データ生成部220はさらに、複数の暗号化パケットからパケット間隔を抽出してもよい。
S406では、学習データ生成部220が、学習データを生成すべく、ヘッダ情報を変換する。学習データ生成部220は、例えば、ヘッダ情報を0/1表記のデータに変換する。学習データ生成部220はさらに、パケット間隔を0/1表記のデータに変換してもよい。
S408では、学習データ生成部220が、学習に用いる学習データと、学習モデルをテストするためのテストデータとを生成する。学習データ生成部220は、S406において変換したデータを結合することによって学習データを生成してよい。また、学習データ生成部220は、学習データを複製することによってテストデータを生成してよい。学習データ生成部220は、生成した学習データ及びテストデータを学習モデル生成部230に入力する。
S410では、学習モデル生成部230が、学習データ生成部220によって入力された学習データを用いて学習を実行し、学習モデルを生成する。S412では、学習モデル生成部230が、学習済の学習モデルを用いて、テストデータをテストする。
S414では、学習モデル生成部230が、S412において実行したテストの正解率が予め定められた閾値より高いか否かを判定する。高くないと判定した場合、S416に進み、高いと判定した場合、S418に進む。
S416では、学習モデル生成部230が、正解率を向上すべく学習モデル内のパラメータを変更する。そして、S410に戻って、学習モデル生成部230が、学習用データを用いて学習を実行する。
S418では、学習モデル生成部230が、学習モデルを確定する。S420では、学習モデル生成部230が、学習が完了したか否かを判定する。学習モデル生成部230は、例えば、学習制御装置200のオペレータによる学習完了指示を受領していた場合、学習が完了したと判定する。完了していないと判定した場合、S402に戻り、完了したと判定した場合、処理を終了する。
図5は、学習制御装置200及び行動判定装置300による処理の流れの一例を概略的に示す。図5は、学習制御装置200がいわゆる半教師有学習を実行する場合の処理の一例を示す。ここでは、学習制御装置200が、図4に示す処理によって少数の学習データから学習モデルを生成し、当該学習モデルを行動判定装置300が格納した状態を開始状態として説明する。
S502では、パケットログ受信部320が、パケットログ送信部420から複数の暗号化パケットを受信する。パケットログ送信部420は、例えば、トラフィック送受信部410が中継する暗号化パケットのうち、送信元が動画配信サイト40である暗号化パケットをパケットログ受信部320に送信する。パケットログ受信部320は、受信した複数の暗号化パケットを判定部310に送信する。
S504では、判定部310が、複数の暗号化パケットからヘッダ情報を抽出する。判定部310はさらに、複数の暗号化パケットからパケット間隔を抽出してもよい。
S506では、判定部310が、ヘッダ情報を変換する。判定部310は、例えば、ヘッダ情報を0/1表記のデータに変換する。判定部310はさらに、パケット間隔を0/1表記のデータに変換してよい。判定部310は、複数の暗号化パケットの送信先毎に、連続する暗号化パケットの当該データを結合することによって、判定用の判定データを生成する。
S508では、判定部310が、判定データ及び学習モデルを用いて、ユーザ端末30のユーザ50が、動画を頻繁に切り替える行動をとっているか否かを判定する。判定部310は、閲覧する動画を頻繁に切り替える行動をとっている確度と、閲覧する動画を頻繁に切り替える行動をとっていない確度との比率を導出してよい。
S510では、判定部310が、動画を頻繁に切り替える行動をとっている確度が、予め定められた閾値より高いか否かを判定する。高いと判定した場合、S512に進み、高いと判定しなかった場合、S514に進む。
S512では、判定部310が、判定データを、学習用のサンプルとして保存する。判定部310は、保存したデータを学習モデル生成部230に送信してよい。S514では、判定結果出力部330が、判定結果をトラフィック制御部430に送信する。
S516では、学習モデル生成部230が、学習用サンプルを用いて学習するか否かを判定する。学習モデル生成部230は、例えば、学習用サンプルの数が予め定められた数より多い場合、学習すると判定する。学習モデル生成部230が学習すると判定した場合、S518に進み、学習しないと判定した場合、S520に進む。S518では、学習モデル生成部230が、学習用サンプルを用いて学習を実行する。
S520では、学習モデル生成部230が、学習が完了したか否かを判定する。学習モデル生成部230は、例えば、学習制御装置200のオペレータによる学習完了指示を受領していた場合、学習が完了したと判定する。完了していないと判定した場合、S502に戻り、完了したと判定した場合、処理を終了する。
図6は、パケット間隔テーブル241の一例を概略的に示す。パケット間隔テーブル241は、パケット間隔の複数の範囲毎に割り当てられた0/1表記のデータを含む。パケット間隔の複数の範囲には、それぞれ異なる0/1表記のデータが割り当てられる。図6では、0から最大値の間を5つの範囲に分割した場合のパケット間隔テーブル241を例示している。最大値は任意に設定されてよい。各範囲も、任意に設定されてよい。また、範囲の数は5つに限らず、他の数であってもよい。学習データ生成部220及び判定部310は、パケット間隔テーブル241を参照して、パケット間隔を0/1表記のデータに変換してよい。
動画を継続して閲覧する場合、動画のダウンロードが継続して行われることになり、ビットレートが高い傾向がある。よって、パケット間隔は狭い傾向がある。閲覧する動画を頻繁に切り替える場合、ユーザ端末30と動画配信サイト40との間に頻繁にセッションが確立されることになる。セッションを確立するときは、動画をダウンロードするときに比べてビットレートが低くなる。よって、パケット間隔は広い傾向がある。
したがって、判定データに含まれる複数のパケット間隔の平均値がより大きいほど、動画を頻繁に切り替える行動をとっている可能性が高いと推定できる。このため、学習のパラメータとしてパケット間隔を用いることによって、動画を頻繁に切り替える行動をとっているか否かをより正確に判定できる学習モデルを生成することができる。
図7は、ソースアドレステーブル242の一例を概略的に示す。ソースアドレステーブル242は、複数のソースアドレス毎に割り当てられた0/1表記のデータを含む。複数のソースアドレスには、それぞれ異なる0/1表記のデータが割り当てられる。ソースアドレステーブル242には、ユーザ端末30が動画を受信する場合にあり得るソースアドレスが登録されてよい。学習データ生成部220及び判定部310は、ソースアドレステーブル242を参照して、ソースアドレスを0/1表記のデータに変換してよい。
動画を継続して閲覧する場合、ソースアドレスは変化しない。閲覧する動画を頻繁に切り替える場合、ソースアドレスが頻繁に切り替わる。すなわち、閲覧する動画を頻繁に切り替える場合、動画を継続して閲覧する場合に比べて、ソースアドレスの切り替わりが判定データに含まれる可能性が高い。
したがって、判定データにソースアドレスの切り替わりが含まれる方が、含まれない場合に比べて動画を頻繁に切り替える行動をとっている可能性が高いと推定できる。このため、学習のパラメータとしてソースアドレスを用いることによって、動画を頻繁に切り替える行動をとっているか否かをより正確に判定できる学習モデルを生成することができる。
図8は、プロトコル種別テーブル243の一例を概略的に示す。プロトコル種別テーブル243は、複数のプロトコル種別毎に割り当てられた0/1表記のデータを含む。複数のプロトコル種別には、それぞれ異なる0/1表記のデータが割り当てられる。学習データ生成部220及び判定部310は、プロトコル種別テーブル243を参照して、プロトコル種別を0/1表記のデータに変換してよい。
ユーザ端末30が動画配信サイト40から動画の取得を開始するときや動画を切り替えるときには、暗号化のセッションが確立されるので、SSL及びTLS等の暗号化プロトコルのパケットが送受信される。一方、ユーザ端末30が動画配信サイト40から動画をダウンロードしている間は、TCPのパケットが送受信される。
したがって、判定データに暗号化プロトコルが含まれる方が、含まれない場合に比べて、動画を頻繁に切り替える行動をとっている可能性が高いと推定できる。このため、学習のパラメータとしてプロトコル種別を用いることによって、動画を頻繁に切り替える行動をとっているか否かをより正確に判定できる学習モデルを生成することができる。
図9は、フラグ種別テーブル244の一例を概略的に示す。フラグ種別テーブル244は、複数のフラグ種別毎に割り当てられた0/1表記のデータを含む。複数のフラグ種別には、それぞれ異なる0/1表記のデータが割り当てられる。学習データ生成部220及び判定部310は、フラグ種別テーブル244を参照して、フラグ種別を0/1表記のデータに変換してよい。
フラグ種別には、例えば、ENDフラグが含まれる。ENDフラグは、ユーザ端末30が動画配信サイト40から動画をダウンロードする場合に、その動画の全てのデータがダウンロードされたときに、動画配信サイト40からユーザ端末30に送信される。すなわち、ENDフラグが含まれる場合、動画を最後まで閲覧していることになる。
したがって、判定データにENDフラグのパケットが含まれる方が、含まれない場合に比べて、動画を頻繁に切り替える行動をとっていない可能性が高いと推定できる。このため、学習のパラメータとしてフラグ種別を用いることによって、動画を頻繁に切り替える行動をとっているか否かをより正確に判定できる学習モデルを生成することができる。
図10は、ウィンドウサイズテーブル245の一例を概略的に示す。ウィンドウサイズテーブル245は、TCPのウィンドウサイズの複数の範囲毎に割り当てられた0/1表記のデータを含む。ウィンドウサイズの複数の範囲には、それぞれ異なる0/1表記のデータが割り当てられる。図10では、0から最大値の間を5つの範囲に分割した場合のウィンドウサイズテーブル245を例示している。最大値は任意に設定されてよい。各範囲も、任意に設定されてよい。また、範囲の数は5つに限らず、他の数であってもよい。学習データ生成部220及び判定部310は、ウィンドウサイズテーブル245を参照して、ウィンドウサイズを0/1表記のデータに変換してよい。
動画を継続して閲覧していると、ウィンドウサイズは徐々に増加していく。例えば、動画を継続して閲覧していると、ウィンドウサイズの比率が例えば、2、4、8、・・・と増加していく。閲覧する動画を切り替えると、ウィンドウサイズはリセットされるので、閲覧する動画を頻繁に切り替えると、ウィンドウサイズは小さいままとなる。
したがって、判定データに大きなウィンドウサイズが含まれる場合、含まれない場合に比べて、動画を継続して閲覧している可能性が高いと推定できる。また、判定データに含まれるウィンドウサイズの平均値がより大きい方が、動画を継続して閲覧している可能性が高いと推定できる。このため、学習のパラメータとしてウィンドウサイズを用いることによって、動画を頻繁に切り替える行動をとっているか否かをより正確に判定できる学習モデルを生成することができる。
図11は、行動判定装置300及びゲートウェイ装置400による処理の流れの一例を概略的に示す。ここでは、閲覧する動画を頻繁に切り替える行動をとっているユーザ50のユーザ端末30に対するトラフィック流量を規制する場合の処理の流れについて説明する。判定部310は、学習モデル生成部230によって生成された閲覧する動画を頻繁に切り替える行動をとっているか否かを判定するための学習モデルを予め格納する。
S1102では、トラフィック送受信部410が暗号化パケットを受信する。S1104では、受信した暗号化パケットが動画パケットであるか否かをトラフィック送受信部410が判定する。トラフィック送受信部410は、例えば、ソースアドレスが動画配信サイト40を示す場合に、動画パケットであると判定する。
動画パケットであると判定した場合、トラフィック送受信部410は、暗号化パケットをパケットログ送信部420に送信する。パケットログ送信部420は、暗号化パケットをパケットログ受信部320に送信する。パケットログ受信部320は、受信した暗号化パケットを判定部310に送信する。判定部310は、ユーザ端末30毎に、受信した暗号化パケットの数が予め定められた数に達した場合、判定データを生成する。
判定データを生成した場合(S1106でYES)、S1108に進み、判定データを生成していない場合(S1106でNO)、S1112に進む。S1108では、判定部310が、判定データ及び学習モデルを用いて、S1106において生成された判定データに対応するユーザ50が、閲覧する動画を頻繁に切り替える行動をとっているか否かを判定する。判定部310は、判定結果をトラフィック制御部430に送信してよい。閲覧する動画を頻繁に切り替える行動をとっていると判定した場合、S1110に進み、とっていないと判定した場合、S1112に進む。
S1110では、トラフィック制御部430が、S1106において生成された判定データに対応するユーザ50のユーザ端末30を、トラフィック流量を規制する対象として登録する。トラフィック制御部430は、トラフィック流量を規制する対象として登録されているユーザ端末30に対して、トラフィック流量の規制を行う。
S1112では、判定処理を終了するか否かを判断する。例えば、行動判定装置300のオペレータから判定処理の終了指示を受領していた場合、判定処理を終了すると判断する。判定処理を終了しないと判断した場合、S1102に戻り、判定処理を終了すると判断した場合、判定処理を終了する。
図12は、行動判定装置300及びゲートウェイ装置400による処理の流れの一例を概略的に示す。ここでは、データ量の多い動画を閲覧する行動をとっているユーザ50のユーザ端末30に対するトラフィック流量を規制する場合の処理の流れについて説明する。判定部310は、学習モデル生成部230によって生成された、データ量の多い動画を閲覧する行動をとっているか否かを判定するための学習モデルを予め格納する。
S1202では、トラフィック送受信部410が暗号化パケットを受信する。S1204では、受信した暗号化パケットが動画パケットであるか否かをトラフィック送受信部410が判定する。
動画パケットであると判定した場合、トラフィック送受信部410は、暗号化パケットをパケットログ送信部420に送信する。パケットログ送信部420は、暗号化パケットをパケットログ受信部320に送信する。パケットログ受信部320は、受信した暗号化パケットを判定部310に送信する。判定部310は、ユーザ端末30毎に、受信した暗号化パケットの数が予め定められた数に達した場合、判定データを生成する。
判定データを生成した場合(S1206でYES)、S1208に進み、判定データを生成していない場合(S1206でNO)、S1212に進む。S1208では、判定部310が、判定データ及び学習モデルを用いて、S1206において生成された判定データに対応するユーザ50が、データ量の多い動画を閲覧する行動をとっているか否かを判定する。判定部310は、判定結果をトラフィック制御部430に送信してよい。データ量の多い動画を閲覧する行動をとっていると判定した場合、S1210に進み、とっていないと判定した場合、S1212に進む。
S1210では、トラフィック制御部430が、S1206において生成された判定データに対応するユーザ50のユーザ端末30を、トラフィック流量を規制する対象として登録する。トラフィック制御部430は、トラフィック流量を規制する対象として登録されているユーザ端末30に対して、トラフィック流量の規制を行う。
S1212では、判定処理を終了するか否かを判断する。例えば、行動判定装置300のオペレータから判定処理の終了指示を受領していた場合、判定処理を終了すると判断する判定処理を終了しないと判断した場合、S1202に戻り、判定処理を終了すると判断した場合、判定処理を終了する。
図13は、行動判定装置300及びゲートウェイ装置400による処理の流れの一例を概略的に示す。ここでは、規制対象の動画を閲覧する行動をとっているユーザ50のユーザ端末30に対するパケットを破棄する場合の処理の流れについて説明する。判定部310は、学習モデル生成部230によって生成された、規制対象の動画を閲覧する行動をとっているか否かを判定するための学習モデルを予め格納する。
S1302では、トラフィック送受信部410が暗号化パケットを受信する。S1304では、受信した暗号化パケットが動画パケットであるか否かをトラフィック送受信部410が判定する。
動画パケットであると判定した場合、トラフィック送受信部410は、暗号化パケットをパケットログ送信部420に送信する。パケットログ送信部420は、暗号化パケットをパケットログ受信部320に送信する。パケットログ受信部320は、受信した暗号化パケットを判定部310に送信する。判定部310は、ユーザ端末30毎に、受信した暗号化パケットの数が予め定められた数に達した場合、判定データを生成する。
判定データを生成した場合(S1306でYES)、S1308に進み、判定データを生成していない場合(S1306でNO)、S1312に進む。S1308では、判定部310が、判定データ及び学習モデルを用いて、S1306において生成された判定データに対応するユーザ50が、規制対象の動画を閲覧する行動をとっているか否かを判定する。判定部310は、判定結果をトラフィック制御部430に送信してよい。規制対象の動画を閲覧する行動をとっていると判定した場合、S1310に進み、とっていないと判定した場合、S1312に進む。
S1310では、トラフィック制御部430が、S1306において生成された判定データに対応するユーザ50のユーザ端末30を、パケットを破棄する対象として登録する。トラフィック制御部430は、トラフィック送受信部410に、パケットを破棄する対象として登録されているユーザ端末30に対するパケットを破棄させる。
S1312では、判定処理を終了するか否かを判断する。例えば、行動判定装置300のオペレータから判定処理の終了指示を受領していた場合、判定処理を終了すると判断する判定処理を終了しないと判断した場合、S1302に戻り、判定処理を終了すると判断した場合、判定処理を終了する。
図14は、行動判定装置300として機能するコンピュータ1000の一例を概略的に示す。本実施形態に係るコンピュータ1000は、ホストコントローラ1092により相互に接続されるCPU1010、RAM1030、及びグラフィックコントローラ1085を有するCPU周辺部と、入出力コントローラ1094によりホストコントローラ1092に接続されるROM1020、通信I/F1040、ハードディスクドライブ1050、DVDドライブ1070及び入出力チップ1080を有する入出力部を備える。
CPU1010は、ROM1020及びRAM1030に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ1085は、CPU1010などがRAM1030内に設けたフレーム・バッファ上に生成する画像データを取得し、ディスプレイ1090上に表示させる。これに代えて、グラフィックコントローラ1085は、CPU1010などが生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
通信I/F1040は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信I/F1040は、通信を行うハードウエアとして機能する。ハードディスクドライブ1050は、CPU1010が使用するプログラム及びデータを格納する。DVDドライブ1070は、DVD−ROM1072からプログラム又はデータを読み取り、RAM1030を介してハードディスクドライブ1050に提供する。
ROM1020は、コンピュータ1000が起動時に実行するブート・プログラム及びコンピュータ1000のハードウエアに依存するプログラムなどを格納する。入出力チップ1080は、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポートなどを介して各種の入出力装置を入出力コントローラ1094へと接続する。
RAM1030を介してハードディスクドライブ1050に提供されるプログラムは、DVD−ROM1072、又はICカードなどの記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM1030を介してハードディスクドライブ1050にインストールされ、CPU1010において実行される。
コンピュータ1000にインストールされ、コンピュータ1000を行動判定装置300として機能させるプログラムは、CPU1010などに働きかけて、コンピュータ1000を、行動判定装置300の各部としてそれぞれ機能させてよい。これらのプログラムに記述された情報処理は、コンピュータ1000に読込まれることにより、ソフトウエアと上述した各種のハードウエア資源とが協働した具体的手段である判定部310、パケットログ受信部320、及び判定結果出力部330として機能する。行動判定装置300が、学習制御装置200としても機能する場合、これらのプログラムに記述された情報処理は、コンピュータ1000に読込まれることにより、ソフトウエアと上述した各種のハードウエア資源とが協働した具体的手段であるパケットログ受信部210及びパケットログ受信部320、学習データ生成部220、学習モデル生成部230、判定部310、並びに判定結果出力部330として機能する。行動判定装置300が、さらにトラフィック制御部430としても機能する場合、これらのプログラムに記述された情報処理は、コンピュータ1000に読込まれることにより、ソフトウエアと上述した各種のハードウエア資源とが協働した具体的手段であるパケットログ受信部210及びパケットログ受信部320、学習データ生成部220、学習モデル生成部230、判定部310、判定結果出力部330、並びにトラフィック制御部430として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1000の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の行動判定装置300が構築される。
上記実施形態では、暗号化パケットを復号化せずに取得できる情報に基づいて学習及び判定を実行する例を主に挙げて説明したが、これに限らない。本実施形態に係る学習制御装置200、行動判定装置300及びゲートウェイ装置400は、暗号化されていないパケットに基づいて学習及び判定を実行してもよい。この場合、学習制御装置200、行動判定装置300及びゲートウェイ装置400は、複数のパケットのヘッダ情報、ペイロード、及びパケット間隔等を用いて、学習及び判定を実行する。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。