(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0003】
モバイル行動のみから、微細な細分性でユーザおよび彼等の移動の位置を確認することは自明なことではない。ほとんどの測位システムは、デバイスの位置を能動的に監視するために、A−GPSサポートを有するGPS(または同様な衛星システム)を用いる。しかしモバイルオペレータにとっては、あらゆるユーザを能動的に監視することは、いくつかの理由により現実的には選択肢とならない。
・ ほとんどすべての場合においてGPSデータは、オペレータはアクセスできないユーザのモバイルデバイスにおいてのみ使用可能である。
・ ユーザのモバイルデバイスにアプリケーションを強制的にプッシュダウンすることは、販売が難しいプライバシー契約となり得る。
・ ユーザが同意したとしても、すべてのモバイルタイプのためにアプリケーションを開発し、維持することはコストがかかる。
・ 常時の能動的な測位がバッテリーを消費し、ユーザエクスペリエンスの悪化に繋がることは言うまでもない。
この分野におけるいくつかの従来技術は以下の通りである。
Identification via Location−Profiling in GSM(登録商標) Networks (2008)
Yoni De Mulder, George Danezis, Lejla Batina, Bart Preneel
【0004】
この論文において著者は、簡単な1次マルコフ連鎖および階層的クラスタリングを用いて、GSM(登録商標)位置データからユーザの動きをプロファイリングした。後の期間において、これらのプロファイルからのユーザ識別に対しては、80%の精度があること、および1ヶ月に収集された情報は非常に豊富でありその後長い間、ユーザを識別するために用いることができること、を彼等は主張している。
オンラインPDFバージョンは、http://www0.cs.ucl.ac.uk/staff/G.Danezis/papers/GSM(登録商標)Location−profile.pdfにおいて入手可能である。
Mobility Profiler: A Framework for Discovering Mobile User Profiles (2008)
Ali Murat, Demirbas Murat, Eagle Nathan
【0005】
この論文は、セルタワー振動(すなわちピンポン)などの問題も取り扱う、完結したモビリティプロファイラフレームワークを導入している。彼等は、セルモビリティパスを構築し、反復して振動するセルペアを識別することによってピンポンを低減し、それらをセルクラスタに変換する。その後彼等は、主要パターンをフィルタ除去し、評価するために、順次的な先験的アルゴリズムを用いた。これらのパターンは、そのユーザのモビリティプロファイルを組み立てることになる。
オンラインPDFバージョン:http://www.cse.buffalo.edu/tech−reports/2008−17.pdf
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の目的は、従来技術を改善することである。
【課題を解決するための手段】
【0008】
本発明の第1の態様によれば、装置がもたらされ、装置は少なくとも1つのプロセッサ、コンピュータプログラムコードを含んだ少なくとも1つのメモリを備え、少なくとも1つのプロセッサは、少なくとも1つのメモリおよびコンピュータプログラムコードを用いて、装置に少なくとも、複数のユーザのそれぞれの位置データを、ユーザのそれぞれのためのそれぞれのバケットに分配するステップであって、位置データのそれぞれは所定の期間のある時点でのそれぞれのユーザの位置を示し、バケットのそれぞれは期間のそれぞれの時間間隔を含み、時間間隔は重複せず期間を包含し、時間間隔はユーザのすべてに対して同じであり、時間間隔のそれぞれに対してユーザのそれぞれのためのバケットが存在する、ステップと、ユーザの各ペアに対しておよび時間間隔のそれぞれに対して、それぞれのバケット内の位置データに基づいて、それぞれのペアのユーザの間のそれぞれの部分距離を計算するステップと、ユーザのペアのそれぞれに対して、それぞれのペアのユーザの間の距離を取得するために、期間にわたる部分距離を総計するステップと、ユーザのそれぞれのクラスタを取得するために、互いに最も近い距離を有するユーザをクラスタ化するステップとを少なくとも行わせるように構成される。
【0009】
位置データは通信ネットワークから取得されたハンドオーバデータとすることができ、かつ/または位置データは測位システムから取得されたデータとすることができる。
【0010】
時間間隔iにおけるユーザのユーザ1とユーザ2の間の部分距離d(C
1,i,C
2,i)は以下の式、
【数1】
および
【数2】
の1つによって計算されることができ、C
1,iおよびC
2,iはそれぞれユーザ1およびユーザ2の時間間隔iのバケット内の位置データの集合を表し、
【数3】
は共通集合演算子(intersection operator)を表し、
【数4】
は和集合演算子(union operator)を表し、
【数5】
はそれぞれの集合の濃度(cardinality)を表す。
【0011】
クラスタ化するステップは、凝集型階層的クラスタリングによって行われ得る。
【0012】
少なくとも1つのプロセッサは、少なくとも1つのメモリおよびコンピュータプログラムコードを用いて、装置に、それぞれのクラスタ内のユーザの数が所定の数より大きいかどうかをチェックするステップと、それぞれのクラスタ内のユーザの数が、所定の数より大きい第1のセルを決定するステップと、それぞれのクラスタ内のユーザの数が、所定の数より大きい場合、第1のセル内のセルブロードキャストによって、ユーザに情報をもたらすステップと、それぞれのクラスタ内のユーザの数が、所定の数より大きくない場合、専用メッセージによってユーザに情報をもたらすステップとをさらに行わせるように構成され得る。
【0013】
少なくとも1つのプロセッサは、少なくとも1つのメモリおよびコンピュータプログラムコードを用いて、装置に、それぞれのクラスタ内のユーザの数が所定の数より大きいかどうかをチェックするステップと、それぞれのクラスタ内のユーザの数が、所定の数より大きい第2のセルを決定するステップと、それぞれのクラスタ内のユーザの数が、所定の数より大きい場合、第2のセルの容量を増加させるステップとをさらに行わせるように構成され得る。
【0014】
本発明の第2の態様によれば、装置がもたらされ、装置は少なくとも1つのプロセッサ、コンピュータプログラムコードを含んだ少なくとも1つのメモリを備え、少なくとも1つのプロセッサは、少なくとも1つのメモリおよびコンピュータプログラムコードを用いて、装置に少なくとも、複数のユーザのセルデータをユーザのそれぞれのためのそれぞれのバケットに分配するステップであって、セルデータのそれぞれは、所定の期間のある時点でのユーザの位置が確認されたセルを示し、バケットのそれぞれは期間のそれぞれの時間間隔を含み、時間間隔は重複せず期間を包含し、時間間隔はユーザのすべてに対して同じであり、時間間隔のそれぞれに対してユーザのそれぞれのためのバケットが存在する、ステップと、それぞれのバケット内のセルデータに基づいて、時間間隔のそれぞれに対して、ユーザのそれぞれの平均位置を計算するステップと、ユーザのそれぞれに対しておよび時間間隔のそれぞれに対して、それぞれの時間間隔に後続する時間間隔における平均位置とそれぞれの時間間隔の平均位置の差と、時間間隔の持続時間の比として、それぞれのユーザの速度を決定するステップと、ユーザのそれぞれのクラスタを取得するために、期間の時間間隔にわたって、ユーザのもう一人のそれぞれの速度に近いそれぞれの速度を有する、ユーザをクラスタ化するステップとを少なくとも行わせるように構成される。
【0015】
平均位置の少なくとも1つは、それぞれの時間間隔の間にユーザの位置が確認された、セルのジオロケーションの重心として計算され得る。
【0016】
クラスタ化するステップは、k平均法(k−means)教師なし(unsupervised)クラスタリングによって行われ得る。
【0017】
本発明の第3の態様によれば、装置がもたらされ、装置は少なくとも1つのプロセッサ、コンピュータプログラムコードを含んだ少なくとも1つのメモリを備え、少なくとも1つのプロセッサは、少なくとも1つのメモリおよびコンピュータプログラムコードを用いて、装置に少なくとも、1つまたは複数のセルのそれぞれに対して、所定の期間中にそれぞれのセル内でユーザの位置が確認された、それぞれの持続時間を決定するステップと、期間中にユーザの位置が確認されたセルのジオロケーションの加重平均から、ユーザの平均位置を計算するステップであって、位置のそれぞれの重みは、それぞれのセル内でユーザの位置が確認された持続時間に基づく、ステップとを少なくとも行わせるように構成される。
【0018】
持続時間の少なくとも1つは、ユーザがそれぞれのセルから第2のハンドオーバを行った第2の時点と、ユーザがそれぞれのセルから第1のハンドオーバを行った第1の時点の間の時間間隔として決定され得る。
【0019】
重みの少なくとも1つは、さらにそれぞれのセルのサイズに基づくことができる。
【0020】
少なくとも1つのプロセッサは、少なくとも1つのメモリおよびコンピュータプログラムコードを用いて、装置に、第1の広告掲示板が平均位置に近いことをチェックするステップと、第1の広告掲示板が平均位置に近い場合、ユーザの関心に従って、第1の広告掲示板に示されるコンテンツを適応させるステップとをさらに行わせるように構成され得る。
【0021】
少なくとも1つのプロセッサは、少なくとも1つのメモリおよびコンピュータプログラムコードを用いて、装置に、第2の広告掲示板が平均位置に近いことをチェックするステップと、第2の広告掲示板が平均位置に近くない場合、第2の広告掲示板を平均位置の近くに配置するステップとをさらに行わせるように構成され得る。
【0022】
本発明の第4の態様によれば、方法がもたらされ、方法は、複数のユーザのそれぞれの位置データを、ユーザのそれぞれのためのそれぞれのバケットに分配するステップであって、位置データのそれぞれは所定の期間のある時点でのそれぞれのユーザの位置を示し、バケットのそれぞれは期間のそれぞれの時間間隔を含み、時間間隔は重複せず期間を包含し、時間間隔はユーザのすべてに対して同じであり、時間間隔のそれぞれに対してユーザのそれぞれのためのバケットが存在する、ステップと、ユーザの各ペアに対しておよび時間間隔のそれぞれに対して、それぞれのバケット内の位置データに基づいて、それぞれのペアのユーザの間のそれぞれの部分距離を計算するステップと、ユーザのペアのそれぞれに対して、それぞれのペアのユーザの間の距離を取得するために、期間にわたる部分距離を総計するステップと、ユーザのそれぞれのクラスタを取得するために、互いに最も近い距離を有するユーザをクラスタ化するステップとを含む。
【0023】
位置データは通信ネットワークから取得されたハンドオーバデータとすることができ、かつ/または位置データは測位システムから取得されたデータとすることができる。
【0024】
時間間隔iにおけるユーザのユーザ1とユーザ2の間の部分距離d(C
1,i,C
2,i)は以下の式、
【数6】
および
【数7】
の1つによって計算されることができ、C
1,iおよびC
2,iはそれぞれユーザ1およびユーザ2の時間間隔iのバケット内の位置データの集合を表し、
【数8】
は共通集合演算子を表し、
【数9】
は和集合演算子を表し、
【数10】
はそれぞれの集合の濃度を表す。
【0025】
クラスタ化するステップは、凝集型階層的クラスタリングによって行われ得る。
【0026】
方法は、それぞれのクラスタ内のユーザの数が所定の数より大きいかどうかをチェックするステップと、それぞれのクラスタ内のユーザの数が、所定の数より大きい第1のセルを決定するステップと、それぞれのクラスタ内のユーザの数が、所定の数より大きい場合、第1のセル内のセルブロードキャストによって、ユーザに情報をもたらすステップと、それぞれのクラスタ内のユーザの数が、所定の数より大きくない場合、専用メッセージによってユーザに情報をもたらすステップとをさらに含むことができる。
【0027】
方法は、それぞれのクラスタ内のユーザの数が所定の数より大きいかどうかをチェックするステップと、それぞれのクラスタ内のユーザの数が、所定の数より大きい第2のセルを決定するステップと、それぞれのクラスタ内のユーザの数が、所定の数より大きい場合、第2のセルの容量を増加させるステップとをさらに含むことができる。
【0028】
本発明の第5の態様によれば、方法がもたらされ、方法は、複数のユーザのセルデータをユーザのそれぞれのためのそれぞれのバケットに分配するステップであって、セルデータのそれぞれは、所定の期間のある時点でユーザの位置が確認されたセルを示し、バケットのそれぞれは期間のそれぞれの時間間隔を含み、時間間隔は重複せず期間を包含し、時間間隔はユーザのすべてに対して同じであり、時間間隔のそれぞれに対してユーザのそれぞれのためのバケットが存在する、ステップと、それぞれのバケット内のセルデータに基づいて、時間間隔のそれぞれに対して、ユーザのそれぞれの平均位置を計算するステップと、ユーザのそれぞれに対しておよび時間間隔のそれぞれに対して、それぞれの時間間隔に後続する時間間隔における平均位置とそれぞれの時間間隔の平均位置の差と、時間間隔の持続時間の比として、それぞれのユーザの速度を決定するステップと、ユーザのそれぞれのクラスタを取得するために、期間の時間間隔にわたって、ユーザのもう一人のそれぞれの速度に近いそれぞれの速度を有する、ユーザをクラスタ化するステップとを含む。
【0029】
平均位置の少なくとも1つは、それぞれの時間間隔の間にユーザの位置が確認された、セルのジオロケーションの重心として計算され得る。
【0030】
クラスタ化するステップは、k平均法教師なしクラスタリングによって行われ得る。
【0031】
本発明の第6の態様によれば、方法がもたらされ、方法は、1つまたは複数のセルのそれぞれに対して、所定の期間中にそれぞれのセル内でユーザの位置が確認された、それぞれの持続時間を決定するステップと、期間中にユーザの位置が確認されたセルのジオロケーションの加重平均から、ユーザの平均位置を計算するステップであって、位置のそれぞれの重みは、それぞれのセル内でユーザの位置が確認された持続時間に基づく、ステップとを含む。
【0032】
持続時間の少なくとも1つは、ユーザがそれぞれのセルから第2のハンドオーバを行った第2の時点と、ユーザがそれぞれのセルから第1のハンドオーバを行った第1の時点の間の時間間隔として決定され得る。
【0033】
重みの少なくとも1つは、さらにそれぞれのセルのサイズに基づくことができる。
【0034】
方法は、第1の広告掲示板が平均位置に近いことをチェックするステップと、第1の広告掲示板が平均位置に近い場合、ユーザの関心に従って、第1の広告掲示板に示されるコンテンツを適応させるステップとをさらに含むことができる。
【0035】
方法は、第2の広告掲示板が平均位置に近いことをチェックするステップと、第2の広告掲示板が平均位置に近くない場合、第2の広告掲示板を平均位置の近くに配置するステップとをさらに含むことができる。
【0036】
第4から第6の態様による方法のそれぞれは、ユーザ移動プロファイリングの方法とすることができる。
【0037】
本発明の第7の態様によれば、装置上で実行されたとき、第4から第6の態様のいずれかによる方法を装置に行わせるように構成された、命令のセットを備えるコンピュータプログラム製品がもたらされる。コンピュータプログラム製品は、コンピュータ可読媒体として具体化され得る、またはコンピュータに直接ロード可能とすることができる。
【0038】
本発明のいくつかの例示の実施形態によれば、以下の技術的効果の少なくとも1つがもたらされ得る。
・どのユーザが通常一緒に通勤するかを決定すること
・多くのユーザが通勤する時刻を決定すること
・ユーザの自宅位置(home location)および/または勤務場所(work location)などの、静止エリアを決定すること
【0039】
さらなる詳細、特徴、目的、および利点は、添付の図面と併せ読まれる、本発明の例示の実施形態の以下の詳細な説明から明らかとなる。
【発明を実施するための形態】
【0041】
本明細書の以下では、本発明のいくつかの例示の実施形態が添付の図面を参照して詳細に述べられ、例示の実施形態の特徴は、特に明記されない限り、互いに自由に組み合わされ得る。しかし、いくつかの実施形態の記述は例示のためのみに示されるものであり、開示される詳細に本発明を限定する意図は全くないことが明確に理解されるべきである。
【0042】
さらに、装置は対応する方法を行うように構成されるが、いくつかの場合では装置のみ、または方法のみが述べられることが理解されるべきである。
【0043】
機械学習および統計分析方法によって本発明のいくつかの実施形態は、セルハンドオーバデータから、毎日のユーザルーチンのプロファイリングを行う。この追加された情報は、オペレータに対して、および特にオンライン広告エコシステムにおいて、広告会社または広告仲介業者などのサードパーティに対しての両方に、有益な情報をもたらすことができる。この知識のいくつかの他の可能性のある使用は、都市計画、または伝染病の場合の緊急対応予測を含むことができる。
【0044】
本発明のいくつかの実施形態は、モバイルオペレータ側からのセルハンドオーバデータを用いるので、クライアント側アプリケーションの必要はない。実施形態のいくつかは、以下の問題の少なくとも1つに対する答えを与え得る。
1.どのユーザが一緒に通勤するか?
2.ユーザの毎日の移動パターン(通勤/昼食/帰宅時間間隔)は何か?
3.ユーザの静止エリア(例えば、自宅および/または勤務エリア(複数可)および/またはPOIs)は何か?
【0045】
以下では、これらの問題のそれぞれに対して、それらが本発明のいくつかの実施形態によってどのように答えられるかについて述べられる。本発明の単一の実施形態は、これらの問題の1つ、2つ、または3つに答えるように構成され得ることに留意されたい。
【0046】
作業の間に、以下のパイプラインが用いられた。
1.関連があり得る問題を定式化し、モバイルネットワークユーザについての我々の知識を拡張する。例えば:誰が一緒に通勤するか?
2.より良好な品質を得るために、取得することになるデータをクリーンにする。例えば:ハンドオーバデータからのピンポン効果など、ノイズとなる項目をフィルタ除去する。
3.問題に関してユーザを比較することができる、距離/類似性測度(複数可)を定義する。例えば:一定の期間における、共通のセルと異なるセルの比率。
4.問題記述および距離関数に適したクラスタリングアルゴリズムを選択する、例えば:階層的クラスタリング
5.結果を検証し、パラメータまたは距離測度を精緻化する、例えば:結果可視化。
【0047】
本発明の具体的な焦点は、このパイプラインの最初の3つの項目に当てられる。
【0048】
一緒の通勤
この関数の出力は、時間および場所に関して、共通の毎日の移動パターンを有する人々のグループである。これは各グループが、同様な時間に同様の位置で、日々一緒に移動するユーザを得ることになることを意味する。このようなグループの例は、通勤電車の乗客とすることができる。
【0049】
これらのグループを作成するために、最初に各ユーザの毎日のセル/位置データが収集される。各ユーザは、(セル、タイムスタンプ)タプルのリストを有すると仮定する。これは、MNOのトラフィックを精査することによって容易にアクセスされ得る。
【表1】
【0050】
最初に我々は、タイムスタンプを時刻データに変換し(本質的に日付部分を捨てる)、1日全体を固定の数のウィンドウ(スロット/バケット)に切り離す。例えば我々は10分の長さのウィンドウを用い、144個のバケットを生成する(1日は1440分あるので)。この後、我々はユーザのデータを、彼等のセルをそれらのタイムスタンプに従って各バケットに入れるように編成する。この部分は、我々のデータを低減するだけでなく、ピンポンとしても知られるセルタワー振動の大部分を相殺するので有用である。
【0051】
我々の実装形態において、我々は10分のウィンドウを用いており、他の長さも適切となり得るが、長過ぎるウィンドウは粗い結果を生成することになり、短すぎるウィンドウはノイズの影響をより受けやすいことを、我々は考慮しなければならないことに留意されたい。
【0052】
また本実施形態において、毎日の移動パターンは、時刻が十分な情報となるように考えられる。しかし他の移動期間(例えば毎週、毎月、または毎年)が識別される場合、時間情報は、例えば日の情報を備えるべきである。これと対照的に、毎時間の移動期間が識別される場合、時間の情報は省かれ得る。
【0053】
変換の後、我々は以下の表2を得る。
【表2】
【0054】
次に我々は、各時間ウィンドウの2人のユーザの間の[0..1]の値を計算する距離関数を定義することができる。C
1,i、C
2,i集合を有する2人のユーザU
1、U
2を有すると仮定し、ただしセル集合を含むi=1,2,...,144(スロットの数)である。我々は式1を用いて、特定の時間スロットiにおける2人のユーザの間の(部分)距離を計算する。あるいは、代わりにいくつかの場合においてより優れた結果を生じるので、式2も用いられ得る。
式1(交差比率による距離)
【数11】
式2(落合係数による距離)
【数12】
ここでC
1,iおよびC
2,iは、それぞれユーザ1およびユーザ2の、時間間隔iのバケット内の位置データの集合を表し、
【数13】
は共通集合演算子を表し、
【数14】
は和集合演算子を表し、
【数15】
はそれぞれの集合の濃度を表す。
注記:式のいずれかにおいて分母がゼロになる特別な場合は、我々はd=1を用いる。
【0055】
一緒に移動するユーザの識別において、これら以外のメトリクスは好結果が得られなかった。
【0056】
最後に我々は、2人のユーザの間の距離d(U
1,U
2)を取得するために、正規化ユークリッド距離を用いて、これらの部分距離d(C
1,i,C
2,i)を総計することができる。
【数16】
【0057】
図1は、距離計算(式1による)の観念を示す。
【0058】
破線(dashed lines)および点線(dotted lines)は、2人のユーザの移動を表し、基地局はそれらがユーザの時間ウィンドウの両方にある場合は丸印で囲まれ、2人のユーザの時間ウィンドウの一方のみにある場合は囲まれない。文字「A」および「B」によって、基地局のそれぞれに対して、それぞれの時間ウィンドウにおいてそれら基地局がどちらのユーザのためにあるかが示される。我々は図上で、ユーザが共通の経路(すなわち電車または地下鉄)を共有するのに従ってどのように共通セルの数が増加するか、かつどのように部分距離が計算されるかが分かる。
【0059】
従って我々は、表3に示されるように距離行列を取得するために、各ユーザペアの間の距離を計算する。
【表3】
【0060】
これは、三角形不等定理が適用できないので有効なユークリッド空間ではなく、従って我々はここでk平均法または同様のアルゴリズムを用いることができないことに留意されたい。代わりに我々は、互いに低い距離を有するユーザを結合するために、凝集型階層的クラスタリング方法を用いる(階層的クラスタリング:https://en.wikipedia.org/wiki/Hierarchical_clusteringを参照)。
【0061】
第1の段階では、すべてのユーザはそれら自体のクラスタを有し、各ステップにおいてアルゴリズムは、2つの最も近いクラスタをマージし、もとの2つのクラスタのユーザの和集合により新しいクラスタを作成する。このステップは、所与の距離閾値に達するまで反復される。適切な閾値レベルの特定は、階層的クラスタリングにおいて深く調べられる。実装のために我々は、「単一」凝集型ルーチンモードにおいて、このクラスタリング方法(http://docs.scipy.org/doc/scipy/reference/cluster.hierarchy.html)のPython実装形態:scipy.cluster.hierarchyを用いた。
【0062】
このクラスタ化の出力は、実際のデータに基づく
図2の市内地図で見ることができるグループである。ここでユーザのグループは、異なる線種によって区別される。グループごとの最小および最大ユーザ数は、適用エリアに依存する。
【0063】
本発明のいくつかの実施形態による例示のアプリケーションとして、システムは特定のユーザに対して、彼が通勤者グループに属するかどうかを分析する。属さない場合は、専用メッセージ(例えばSMS、または専用アプリ内の)によって、ユーザに何らかの広告が送られることになる。しかしユーザが十分なサイズ(メンバの数)の通勤者グループに属する場合、広告は、通勤者が一緒に通勤するセル内のこれらの通勤者に、セルブロードキャストによって送られ得る。従ってネットワーク負荷が低減される。
【0064】
本発明のいくつかの実施形態による、いくつかの他の例示の応用例は以下の通りである。
− ユーザに、彼/彼女の毎日の移動ルーチンに基づいて、広告または割引クーポンをもたらす。
− ネットワーク挙動を変更する
・ その時間に彼等は彼等の電話機を用いる可能性が高いので、通勤者のために帯域を最適化する
・ ユーザの既知の軌道(共通の通勤経路)に対して、ネットワークを最適化する
− 病気の発生予測(可能性の高い汚染の経路):一緒に通勤するおよび一緒にいる人々は、潜在的に互いに影響を及ぼすものとしてラベル付けされ得る。この情報は人々を引き離し、彼等を救うために用いられ得る。従って病気の広がりが、防止または減速され得る。
【0065】
毎日の移動パターン
本発明のいくつかの実施形態によれば、この関数は時刻にわたるユーザ移動の強度を分析する。「一緒の通勤」関数と異なり、ここでは移動位置ではなく、時間的な移動距離(速度)のみが重要となる。これは、同じ時刻に通勤している、または昼食に出かける、または帰宅する人々を捉えるために有用となる。幸いにもこれはまた、人々が移動時に彼等の電話機によってインターネット上でニュースを読むまたはネットサーフィンする可能性が高い。
【0066】
図3は通勤パターンを示す:1日の各時間に対して(10分のステップのx軸において)、予め定義された最小値より大きな速度で移動するユーザの数が示される。
【0067】
いくつかの不明瞭なパターンは別として、我々はすでにどのようにいくらかの人々が異なる移動パターンにおいて、午前5、6、7、8、9または10時に職場に行くかを見ることができる。おそらく同じ朝の通勤グループ内のユーザの場合であっても人によって異なるので、ここでは帰宅に対するパターンは見ることができない。それでも、昼食および帰宅パターンも、時間フィルタリングを用いて対処され得る。
【0068】
基礎をなすアルゴリズムは、本明細書で上記で論じられた「一緒の通勤」関数と同様である。我々は、各ユーザに対して10分の長さのスロットに構成された、時刻に変換されたハンドオーバを用いる。
【表4】
【0069】
次いで我々は、以下のやり方を用いてセルを、各ウィンドウにおけるジオロケーションに変換する:我々は各セルのジオロケーション(例えば基地局の位置、またはセルのカバレージエリアの中心)を地図上の点として取得し、これらの点を用いて重心を計算する。結局我々は、重心を得ることになる。この方法は、セルの急速な変化が環境の状況によりノイズを生成し得る(すなわち移動するバスは現在のセル局を阻止し、バスがそこから離れるまで、モバイル機器は別のものに切り換える)、ピンポンハンドオーバ現象を低減するために有用である。
【表5】
【0070】
この情報から我々は、隣接したウィンドウ(バケット)の各ペアの間の時間にわたる重心の間の距離から、移動速度を内挿することができる。各重心が緯度(lat)および経度(lon)座標からなると仮定すると、我々は以下の式を用いて、2つの時間ウィンドウの間を用いて、m/sでの近似する速度v
i,i+1を計算することができる。
【数17】
【0071】
ここで各バケットは10分=600秒のデータを備えるので、分母の600が選ばれる。もちろんバケットは異なる持続時間を有することができ、分母はそれに従って調整されることになる。
【0072】
次に我々は以下の表を取得し、我々はk平均法教師なしクラスタリングのための入力として用いることができる(これらの値は144次元ユークリッド空間に対して有効であるので)。
【表6】
【0073】
k平均法は、教師なし学習におけるよく知られた基本的クラスタリング方法である。k平均法クラスタリングに関するさらなる情報は、https://en.wikipedia.org/wiki/K−means_clusteringに見出すことができる。PoCにおいて我々は、scipy.cluster.vq.kmeans(http://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.vq.kmeans.html)クラスを用いて計算を行った。我々は10個のクラスタを作成し、そのうちの3個は
図3に示される。クラスタ化の出力は、各ユーザを最も近い一致パターンに類別するために用いられ得る。
【0074】
静止エリア(例えば自宅/勤務エリアおよびPOIs)
本発明のいくつかの実施形態によれば、この関数は、特定のユーザのPOIおよび/または自宅/勤務エリアなどの、静止エリアを検出する。入力データは、やはりセルハンドオーバから抽出される。自宅/勤務エリアの例のために我々は、規則的な毎日のパターンを有する人々が通常自宅または職場(または学生に対しては学校/大学)にいるようになる、2つの固定の間隔、午後9時〜午前5時および午前10時〜午後4時をそれぞれ定義する。このような人々に対してこれは平日のほとんどに当てはまることになり、従って我々はこの仮定を用いて彼等の自宅/勤務場所を予測することができる(これはその地域の習慣に基づいて異なる国に対して、または時間におけるユーザの予期される行動に応じて異なるPOIsに対して、調整され得る)。
【0075】
最初に我々は、これらの時間間隔内のすべてのハンドオーバターゲットセルを取得し、重みを割り当てる。例えば重みは、次のハンドオーバまでに経過する時間とすることができる(事実上、その特定のセル内でモバイルが過ごした時間)。我々はこれらのハンドオーバセルのジオロケーションに対する加重平均を計算すれば、我々は各時間間隔に対する最も関連のある位置を取得し、従って我々は自宅/勤務場所近似を得ることになる。
【0076】
詳細には本発明のいくつかの実施形態において、hをハンドオーバ、w(h)をハンドオーバの重み、ts(h)をハンドオーバのタイムスタンプ属性とする。我々は重みw(h)を、
w(h
current)=ts(h
next)−ts(h
current)
となるように計算し、ただしnextは所与のユーザのために並ぶ、次の既知のハンドオーバである。geo(h)をハンドオーバにおけるターゲットセルの2次元ジオロケーション、およびH
homeを想定された自宅時間間隔(午後9時〜午前5時)に従った、ユーザのハンドオーバのフィルタリングされた集合とする。次に我々は自宅位置を以下により計算する。
【数18】
【0077】
同様に勤務場所またはPOIが計算され得る。
【0078】
重みは、特定のセル内にユーザがいる持続時間に基づくだけでなく、他のパラメータも関わることができる。例えば小さなエリアを有するセルは、大きなエリアを有するセルより高い重みをもつことができる。これは例えばセルのエリアに反比例する追加の重み係数として表され得る。従って、ユーザは小さなセル内に短時間だけいる場合があるが、この時間の間、ユーザの位置は高い精度で決定されることが反映され得る。
【0079】
セルのジオロケーションは、「毎日の移動パターン」のシナリオに対して述べられたものと同じやり方で決定され得る。
【0080】
図4は、近似する自宅位置の例示の可視化を示す。基地局に示される時間は、ユーザがそれぞれのセルにいつハンドオーバを行ったかを示す。星印は、これらのセルの重み付きジオロケーションから計算された位置を示す。図から分かるように、計算された位置は、実際の位置(大きな家によって示され、他の位置は小さな家として示される)に非常に近い。
【0081】
従って毎日の移動パターンの結果は、勤務時間が不規則な人々に適合するように、個々に静止期間を検出するために用いられる。我々はこれらの静止期間内の加重平均を用いて、ユーザがより長い時間留まる位置を検出することができ、通常これは職場または自宅位置である。
【0082】
応用例として、一定の場所に一定の時間留まる(すなわちPOI、自宅位置、勤務場所など)、行き交う人々のプロファイルに従って、実世界のデジタル広告掲示板に動的コンテンツを載せることができる。ユーザの関心が知られている場合、これらの関心にコンテンツ(例えば広告、公共輸送機関時刻表、ニュース、または交通渋滞の情報)を適応させることができる。さらには、ユーザの静止エリアの知識に基づいて、広告掲示板を配置することができる。
【0083】
対応する応用例は、通勤者の経路に沿ってデジタル広告掲示板を配置または制御するために、本明細書において上記で述べられた「一緒の通勤」シナリオの位置情報を用いることができる。
【0084】
概念実証
上述のアルゴリズムは事実上任意の言語で実施され得るが、追加設定なしで用いられ得るもの(Pythonなど)より、すでに機械学習関連ライブラリを有する言語に対して、より実現可能である。我々の概念実証は、主にPython、ワイヤシャーク、およびPostgreSQLを用いて行われた。アーキテクチャは、
図5に見ることができる。
【0085】
我々のテストデータは、ゲートウェイハンドオーバおよびユーザプレーン関連データを含んだ、S5/S11/S1Uインターフェースからの生のパケット捕捉ファイルからなる。制御プレーンデータからユーザおよび彼等のハンドオーバが抽出され、相互に関係付けられ、データベースに書き込まれた。セルジオロケーションのリストもデータベース内にアップロードされ、そこからユーザ位置を推定することができた。また、本発明のいくつかの実施形態に対して本明細書において上記で述べられたアルゴリズムを含む、分析の結果を可視化するように実装されたGUIがある。このPoCは機能の実証のために良好であり、Pythonを用いることは迅速な開発を達成するために大きな助けとなった。
【0086】
実際の製品に対しては、ビッグデータ対応の言語およびフレームワークを用いることが推奨される。単一サーバ展開アーキテクチャは、
図6に見ることができる。
【0087】
この解決策は、S5/S11/S1Uインターフェースからの40Gb/sパケットデータの処理を達成することを目標とする。相関エンジンは、制御プレーンおよびユーザプレーンの整合を行い、ユーザハンドオーバは、Sparkストリーミングを用いて書かれた分類およびモデルビルダに転送される。Sparkストリーミングは、Apache Spark上で稼働するポピュラーなバッチストリーム処理エンジンである。我々の現在の推定によれば、40Gb/s電話会社ネットワークデータの取り扱いは、単一サーバインスタンスを用いて達成され得る。
【0088】
しかしSparkのおかげで、この解決策は容易にスケーラブルとなり得る。40Gb/sを超えるPoCに対する将来の計画は、
図7に見ることができる。
【0089】
図8は、本発明の例示の実施形態による装置を示す。装置はコンピュータ、またはその要素とすることができる。
図9は、本発明の例示の実施形態による方法を示す。
図8による装置は、
図9の方法を行うことができるが、この方法に限定されない。
図9の方法は、
図8の装置によって行われ得るが、この装置によって行われることに限定されない。
【0090】
装置は、分配手段10、計算手段20、総計手段30、およびクラスタリング手段40を備える。分配手段10、計算手段20、総計手段30、およびクラスタリング手段40は、それぞれ分配回路、計算回路、総計回路、およびクラスタリング回路とすることができる。
【0091】
分配手段10は、複数のユーザのそれぞれの位置データを、ユーザのそれぞれのためのそれぞれのバケットに分配する(S10)。位置データのそれぞれは、ある時点でのそれぞれのユーザの位置を示す。時間は、日などの所定の期間中である。バケットのそれぞれは、期間のそれぞれの時間間隔(例えば10分)を含む。時間間隔は重複せず期間を包含する。時間間隔はユーザのすべてに対して同じであり、時間間隔のそれぞれに対してユーザのそれぞれのためのバケットが存在する。
【0092】
計算手段20は、ユーザの各ペアに対しておよび時間間隔のそれぞれに対して、それぞれのバケット内の位置データに基づいて、それぞれのペアのユーザの間のそれぞれの部分距離を計算する(S20)。
【0093】
総計手段30は、ユーザのペアのそれぞれに対して、期間(例えば日)にわたる部分距離を総計する(S30)。このようにして、それぞれのペアのユーザの間の距離が取得される。
【0094】
クラスタリング手段40は、ユーザのそれぞれのクラスタを取得するために、互いに最も近い距離を有するユーザをクラスタ化する(S40)。
【0095】
図10は、本発明の例示の実施形態による装置を示す。装置はコンピュータ、またはその要素とすることができる。
図11は、本発明の例示の実施形態による方法を示す。
図10による装置は、
図11の方法を行うことができるが、この方法に限定されない。
図11の方法は、
図10の装置によって行われ得るが、この装置によって行われることに限定されない。
【0096】
装置は、分配手段110、計算手段120、決定手段130、およびクラスタリング手段140を備える。分配手段110、計算手段120、決定手段130、およびクラスタリング手段140は、それぞれ分配回路、計算回路、決定回路、およびクラスタリング回路とすることができる。
【0097】
分配手段110は、複数のユーザのセルデータを、ユーザのそれぞれのためのそれぞれのバケットに分配する(S110)。セルデータのそれぞれは、例えば日などの所定の期間のある時点で、ユーザの位置が確認されたセルを示す。バケットのそれぞれは、期間のそれぞれの時間間隔(例えば10分)を含む。時間間隔は重複せず期間を包含する。時間間隔はユーザのすべてに対して同じであり、時間間隔のそれぞれに対してユーザのそれぞれのためのバケットが存在する。
【0098】
計算手段120は、それぞれのバケット内のセルデータに基づいて、時間間隔のそれぞれに対して、ユーザのそれぞれの平均位置を計算する(S120)。
【0099】
決定手段130は、ユーザのそれぞれに対しておよび時間間隔のそれぞれに対して、それぞれのユーザの速度を決定する(S130)。速度は、それぞれの時間間隔に後続する時間間隔における平均位置とそれぞれの時間間隔の平均位置の差と、時間間隔の持続時間の比として計算される。
【0100】
クラスタリング手段140は、ユーザのそれぞれのクラスタを取得するために、期間の時間間隔にわたって、ユーザのもう一人のそれぞれの速度に近いそれぞれの速度を有する、ユーザをクラスタ化する(S140)。
【0101】
図12は、本発明の例示の実施形態による装置を示す。装置はコンピュータ、またはその要素とすることができる。
図13は、本発明の例示の実施形態による方法を示す。
図12による装置は、
図13の方法を行うことができるが、この方法に限定されない。
図13の方法は、
図12の装置によって行われ得るが、この装置によって行われることに限定されない。
【0102】
装置は、決定手段210および計算手段220を備える。決定手段210および計算手段220は、それぞれ決定回路および計算回路とすることができる。
【0103】
決定手段210は、1つまたは複数のセルのそれぞれに対して、所定の期間中にそれぞれのセル内でユーザの位置が確認された、それぞれの持続時間を決定する(S210)。
【0104】
計算手段220は、期間中にユーザの位置が確認されたセルのジオロケーションの加重平均から、ユーザの平均位置を計算する(S220)。位置のそれぞれの重みは、それぞれのセル内でユーザの位置が確認された持続時間に基づく。
【0105】
図14は、本発明の実施形態による装置を示す。装置は、少なくとも1つのプロセッサ610、コンピュータプログラムコードを含んだ少なくとも1つのメモリ620を備え、少なくとも1つのプロセッサ610は、少なくとも1つのメモリ620およびコンピュータプログラムコードを用いて、装置に、
図9、11、および13ならびに関連する記述による方法の少なくとも1つを少なくとも行わせるように構成される。
【0106】
Mulderらと比較して、本発明の実施形態は異なる手法および距離関数を使用し、述べられる基本的なクラスタリングアルゴリズム(階層的クラスタリング)は本発明の「一緒の通勤」機能と同様である。またMulderらの論文は、同様の通勤習慣に対するユーザクラスタリング方法を含まない。
【0107】
Muratらによって開示された概念は、本発明の実施形態と非常に異なる。Muratらによって導入されたセルクラスタリングの欠点は、多くのセルを組み合わせるときに、位置における精度が過度に失われることである。またMuratらの論文は、同様の通勤習慣に対するユーザクラスタリング方法のための方法を導入していない。
【0108】
本発明の実施形態は、3GPPネットワーク(LTE、LTE−Aなど)においてのみでなく、ネットワークにおいてユーザのハンドオーバデータが使用可能な他のネットワークにおいて(例えばGSM(登録商標)ネットワークにおいて)も使用され得る。
【0109】
1つの情報は、1つのエンティティから別のエンティティに、1つまたは複数のメッセージにおいて送信され得る。これらのメッセージのそれぞれは、他の(異なる)情報を含むことができる。
【0110】
ネットワーク要素、プロトコル、および方法の名前は、現在の標準に基づく。他のバージョンまたは他の技術において、これらのネットワーク要素および/またはプロトコルおよび/または方法の名前は、それらが対応する機能をもたらす限り、異なり得る。
【0111】
端末装置は、それぞれのネットワークに接続し得る任意のデバイスとすることができる。例えば端末装置は、UE、携帯電話、ラップトップ、スマートフォン、マシンタイプ通信デバイスなどとすることができる。
【0112】
特に明記されない、またはその他文脈から明らかにされない場合、2つのエンティティが異なるという記述は、それらが異なる機能を行うことを意味する。これは必ずしもそれらが異なるハードウェアに基づくことを意味しない。すなわち本明細書で述べられるエンティティのそれぞれは異なるハードウェアに基づくことができ、あるいはエンティティのいくつかまたはすべては同じハードウェアに基づくことができる。これは必ずしもそれらが異なるソフトウェアに基づくことを意味しない。すなわち本明細書で述べられるエンティティのそれぞれは異なるソフトウェアに基づくことができ、あるいはエンティティのいくつかまたはすべては同じソフトウェアに基づくことができる。本発明の実施形態は全体にまたは部分的にクラウドにおいて使用されることができ、それぞれのタスクのためのリソース(例えばプロセッサ、ソフトウェア、メモリ、ネットワーク)は、他のアプリケーションと共有され得る。
【0113】
上記の記述により、従って本発明の例示の実施形態は、例えばコンピュータ、またはその構成要素、同じものを具体化した装置、同じものを制御するかつ/または動作させる方法、および同じものを制御するかつ/または動作させるコンピュータプログラム(複数可)、ならびにこのようなコンピュータプログラム(複数可)を運ぶまたはコンピュータプログラム製品(複数可)を形成する媒体をもたらすことが明らかとなるべきである。
【0114】
上述のブロック、装置、システム、技法、手段、エンティティ、ユニット、デバイス、または方法のいずれの実装形態も、非限定的な例として、ハードウェア、ソフトウェア、ファームウェア、専用回路またはロジック、汎用ハードウェアまたはコントローラまたは他のコンピューティングデバイス、仮想マシン、またはそれらの何らかの組み合わせとしての実装形態を含む。
【0115】
実施形態の記述は例としてのみ示され、添付の「特許請求の範囲」によって定義される本発明の範囲から逸脱せずに、様々な変更がなされ得ることが留意されるべきである。