📍

エラスティック ジオフェンス AI 技術特許の内容

に公開

はじめに

UPWARD データサイエンティストの中田です。この度、既存滞在検知技術の高度化手法に関する特許技術、エラスティック ジオフェンスAI技術、を出願したので、紹介をさせていただきます。
これによりジオフェンスをAI/機械学習により伸縮自在に半径と中心点を最適化することが可能となります。

滞在検知とは、セールスパーソンの訪問活動を自動的に検知する機能であり、以下の通り特許を取得したUPWARDのコア技術の一つとなります。
https://www.upward.jp/info/20211029

その他、

  • ジオフェンスとは何か
  • 滞在検知の目的

についての詳細は、既存滞在検知技術に関する以下の記事をご参照ください。
https://note.com/saas_technology/n/na65d29162c85


図1 ジオフェンスの基本的な仕組み


図2 ジオフェンスの設置

背景

ジオフェンスへの進入・離脱をもって滞在の開始・終了とみなす場合、次の課題が存在します。

ジオフェンスの中心や半径が固定であることによる、

  • 実際の滞在の開始・終了時刻と異なる重複検知
    • ジオフェンス内部での複数回の滞在を独立して検知できない
    • ジオフェンスの重なりによる、実際の滞在先とは異なる滞在先として検知
  • 通り過ぎただけでも滞在とみなしてしまうなどの誤検知
    • 特にジオフェンスが大きすぎる場合に発生
  • 進入・離脱を検知できないなどの未検知
    • 特にジオフェンスが大きすぎる場合に発生

この問題を解決するために、ジオフェンスの「中心」と「半径」を

  • GISの建物情報
  • ユーザーの滞在データ

から最適な値へ学習していく処理を考えます。

手段

設計の要点を整理します。

  • 滞在地点が、おおよそ同じ箇所で検知されていれば、ジオフェンス半径は小さくしていけば良い(デバイスのGPS検知解像度を最小値)
    • 都心部
  • 同じ顧客にも関わらず、滞在地点に分散があれば、半径を大きくする
    • 郊外
  • その上で、他顧客とのジオフェンスの重なりを極力なくす制約を加える
  • 滞在検知しなかった場合にジオフェンスを広げる

これらを満たすようなアルゴリズムを構築する必要があります。

ジオフェンスの中心と半径の最適化問題として定式化するために、
今回は、物理学やロボット工学の文脈で用いられるポテンシャル法を採用することにしました。

この"ポテンシャル"を逐次的に算出することにより、ジオフェンス円内部のポテンシャル最小化(最大化)問題を解くことであると考えることができます。

ここで、使用するポテンシャル場は、滞在地点間のジオフェンス半径の増加を抑止する障壁を与える意味を持たせ得る任意の関数でよく、同心円状の簡単な関数として、例えば2次元ガウシアンが考えられます。


式1 二次元正規分布式

一般的にポテンシャル場とは、

空間の各点で定義されるスカラー量であり、「その点にテスト粒子(質量や電荷などの特性を持つ粒子)を持ち込む際に必要な(あるいは失われる)潜在的エネルギー」を表します。

応用例

目標位置と障害物
位置にポテンシャル関数を定義し,その関数の勾配を進行方向とすることで,障害物を回避しつ
つ,目標位置へと移動する経路を導出する手法

障害物は山となるようなポテンシャル関数、目的地には谷となるようなポテンシャル関数を定義して坂にはのぼらず谷の方に移動していく動きを表現できます。

引用元:(https://www.mhi.com/jp/technology/review/sites/g/files/jwhtju2326/files/tr/pdf/511/511040.pdf)

上記ポテンシャル法を軸に、
ジオフェンスの文脈では、複数の滞在場所それぞれがお互いに"障害物"として機能すると考え、
下記のような流れでジオフェンス最適化を構築します。

  1. Open Street Map等から得られるGIS情報と、顧客情報による緯度経度を初期位置として、ジオフェンスを張ります。

  2. 各顧客へそれぞれ、ユーザーが任意に訪問、滞在し、それぞれの滞在地点のデータが得られます。

  3. まず、滞在データを正解として、各顧客の滞在位置を機械学習し、最もらしいジオフェンス中心を算出します。

    • ここでは、機械学習手法のベイズ学習を採用せず、混合正規分布を用いた手法を取ります。違いは、積による単一ピークの正規分布生成か、複数ピークの分布生成かです。理由は、ジオフェンス半径の最適化の文脈でこの分布関数をポテンシャル場として応用する際に、マイナスの効果も考えるためです。
  4. ジオフェンス中心を算出した際の”混合正規分布”を用いて、半径を算出します。

    • 円内部の”ポテンシャル”合計が最小となるような最適化問題を解きます。

計算のイメージは図3のGIFのようになります。

左上の滞在場所のジオフェンス計算において、その他滞在場所の滞在データを"障害物"として捉え、ジオフェンスを大きくしないようにする効果を与えている様子が窺えます。


図3 混合正規分布の計算例。以降の図でも、Pはジオフェンスの中心位置を、Rは半径を表す。

シミュレーション

以上の流れをベースに実装し、精度検証へ進むためにシミュレーションしました。

都心想定シミュレーション

概要

まずは、都心等の密集地帯でジオフェンスが変化する挙動を確認するために、仮想的な2次元平面座標に弊社本社ビル近くの3地点を滞在場所と想定して、それぞれをランダムに訪問する設定で行いました。

滞在場所 緯度(初期位置) 経度(初期位置)
三菱UFJ信託銀行本店ビル 35.68362537826902 139.76464624635403
永楽ビルディング(UPWARD本社) 35.68428871789315 139.76505307847356
丸の内センタービル 35.68407833642794 139.76586660024256

結果

図4は、3地点にそれぞれランダムで滞在する過程での、ジオフェンスの変化をプロットしています。
既存のジオフェンスでは、半径が100m固定であるため、都心の密集地では重なる面積が大きいですが、今回のエラスティックジオフェンスでは、半径が40メートル程度になっており、検知分解能の向上が期待されます。

図4 都心想定シミュレーション

郊外想定シミュレーション

概要

次に、郊外を想定し、日比谷公園と周辺の3地点を滞在場所とするものの、日比谷公園の実際の滞在場所が公園北東角にある「伊達政宗終焉の地」であることを想定して、それぞれのジオフェンスの変化をシミュレーションしました。

滞在場所 緯度(初期位置) 経度(初期位置)
日比谷公園 35.67364760108793 139.75584493283762
東京地方裁判所 35.67494301854495 139.75302790085806
帝国ホテル 35.67250592963189 139.7579159456722

結果

図5は、日比谷公園の北東角「伊達政宗終焉の地」に滞在が集中している場合を想定したシミュレーション結果です。
属性情報としてCRMに登録された住所情報から離れた場所が実際の滞在場所であっても、滞在回数を重ねることで、正しい滞在地点に修正されていく様子が実現できています。

図5 郊外想定シミュレーション

未検知シミュレーション

概要

未検知発生時は、最新のジオフェンスで検知できていないという情報から、半径を広げる方向に補正効果が学習できていなければなりません。
次は未検知発生が10回ほど発生している場合の郊外シミュレーションの様子です。サンプルデータは郊外シミュレーション時と同じものを使用しています。

結果

図6から、郊外想定シミュレーションのジオフェンス半径より、半径の縮小速度が緩やかになっていることがわかります。

図6 郊外想定で、未検知発生がある場合のシミュレーション

実地検証

都心、郊外のシミュレーションのサンプルで計算された最終ジオフェンスをエラスティックジオフェンスとして、従来のジオフェンスとの滞在検知精度の比較をするため、実地検証を行いました。

都心

目的

従来のジオフェンスは半径が大きい分、滞在検知の重なりが大きく、エラスティックジオフェンス使用時は滞在時間の分離が改善されることを期待して実施しました。

手順

スタート地点Aから、図7の赤矢印の経路を通過・滞在しながらゴール地点Bへ。
「三菱UFJ本社ビル ⇨ UPWARD本社 ⇨ 丸の内センタービルディング」の順で滞在開始されます。

図7 都心の場合の実地検証時の歩行ルートを赤矢印で描画

結果

図8から、従来ジオフェンス、エラスティックジオフェンスの両方で、「三菱UFJ本社ビル ⇨ UPWARD本社 ⇨ 丸の内センタービルディング」の順で滞在開始はできているものの、従来ジオフェンスの方が滞在開始が早く、終了が遅くなっています。
このことから、エラスティックジオフェンスの方が、従来ジオフェンスの滞在検知と比べて開始と終了の分解能が向上し、滞在時間の重なりが大幅に削減されたことが確認できました。

図8 都心の実地検証結果。矢印の始点・終点は、それぞれジオフェンスへの侵入(滞在開始)・離脱(滞在終了)を表す。

郊外

目的

「日比谷公園の中央位置を通過」時、従来ジオフェンスでは検知し、エラスティック ジオフェンスでは検知せず「伊達政宗終焉の地」へ移動後に初めて検知することを期待して実施しました。

手順

  1. 日比谷公園南西角スタート
  2. 日比谷公園の中央位置を通過
  3. 伊達政宗終焉の地で滞在


図9 郊外の場合の実地検証時の歩行ルートを赤矢印で描画

結果

従来のジオフェンスでは、「日比谷公園」の属性情報としての位置情報である中央付近で滞在の開始と終了が検知されました。
一方で、エラスティック ジオフェンスでは、実際の滞在地点を想定した「伊達政宗終焉の地」付近で滞在の開始と終了が検知できていることが確認できました。

図10 郊外の実地検証結果。エラスティックジオフェンスの方が、本来の滞在地点である「伊達政宗終焉の地」付近で滞在の開始と終了ができている。

今後

今回は、サンプルとなる滞在データをあらかじめ用意、学習して検証しました。
エラスティックジオフェンスが有効であることが確認できたため、UI/UXの向上性を注視しながら、早期プロダクトへの組み込みを目指します。

UPWARD株式会社

Discussion