Session 8: Data Streams and Sensor Networks 2013-07-05 · [1本目] High-Performance Complex Event...
Transcript of Session 8: Data Streams and Sensor Networks 2013-07-05 · [1本目] High-Performance Complex Event...
Session 8:
Data Streams and Sensor Networks
担当: 渡辺陽介(東京工業大学)
【SIGMOD2012勉強会】
本セッションの概要
1. High-Performance Complex Event Processing over XML Streams Barzan Mozafari, Kai Zeng, Carlo Zaniolo (UCLA)
XMLストリーム上の複合イベント処理
2. Prediction-Based Geometric Monitoring Over Distributed Data Streams N. Giatrakos (University of Piraeus), A. Deligiannakis, M. Garofalakis
(Technical University of Crete), I. Sharfman, A. Schuster (Faculty of Computer Science Technion)
予測モデルによる分散ストリームの監視の効率化
3. Online Windowed Subsequence Matching over Probabilistic Sequences Zheng Li, Tingjian Ge (University of Massachusetts)
確率的データストリーム上のパターンマッチング
Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 2
[1本目] High-Performance Complex Event Processing over XML Streams
概要 XMLストリーム上で,複合イベント処理(CEP)を実現するため
の問合せ言語XSeqの提案
Visibly Pushdown Automaton に基づくXSeqの実装
既存の言語(XPath等)をCEPに用いる際の問題点とは? シーケンスに対する条件を簡潔に書けない
記述が複雑だと処理効率も良くない
シーケンスのパターン記述にクリーネ閉包が扱えない
Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 3
<result>{
for $t1 in doc("auction.xml")//Stock[@stock_symbol=‘DAGM’] return
<head>{$t1/@close}{
for $t4 in $t1/following-sibling::Stock[@stock_symbol=‘DAGM’] where $t4/@close<=$t1/@close
and (every $t2 in for $x in $t1/following-sibling::Stock[@stock_symbol=‘DAGM’]
where $x<<$t4 return $x satisfies $t2/@close<=$t1/@close and $t2/@close>=$t4/@close)
and (every $t2 in for $x in $t1/following-sibling::Stock[@stock_symbol=‘DAGM’]
where $x<<$t4 return $x, $t3 in for $x in $t2/following-sibling::Stock[@stock_symbol=‘DAGM’]
where $x<<$t4 return $x satisfies $t2/@close>=$t3/@close and $t3/@close>=$t4/@close)
return <bottom> {$t4/@close} </bottom>
} </head>
}</result>
Figure1より引用
株価が下落しているシーケンスを検出する問合せをXPath +
XQueryで書いた場合
Sequential aggregate: クリーネ閉包の変数用の機能
• First($A), last($A), prev($A)など
• Sum,max,countなど通常の集約処理も
XSeq: XMLストリーム上のCEP用の問合せ言語
家系図(son, daughter)のXMLに対する問合せ記述例
Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 4
//daughter[@Cname=‘Mary’]/son/@Bdate 例: Maryの息子の誕生日を探す
//son[@Bplace=‘NY’](/son[@Bplace=‘LA’])*/son[@Bplace=‘NY’]/@Cname
例: NY出身の祖先との間にLA出身の先祖が0人以上いて,NY出身な人の名前
return $B@Cname
from //son[@Bplace=‘NY’] (/$A)* /$B[@Bplace=‘NY’]
where tag(A)=‘son’ and A@Bplace=‘LA’ and tag(B)=‘son’ 変数とwhere節を使って書き直したもの
return $X@Cname, $Y@Cname
from //daughter[@Cname=‘Mary’] ¥ $X ¥ $Y
return $Y@Cname
from //daughter[@Cname=‘Mary’] / ¥ $X ¥ $Y
例: Maryのすぐ下の兄弟2人
の名前を探す
例: Maryの2番目の子供の
名前を探す
Kleene-*
Immediately
next sibling
first child
Visibly Pushdown Automata (VPA)
可視プッシュダウンオートマトン[STOC2004]
プッシュダウンオートマトンの非決定性による追跡の難しさを改善したもの?(この表現は間違いの可能性が高いです)
入力文字列集合をcall, return, internalの3種類に明確に分離
状態qで入力cを読んだら,スタックへγ を積み,q’へ遷移
状態qで入力rかつスタック先頭がγ ならγ を取り出し,q’へ
状態qで入力iを読んだら,スタックを変更せずにq’へ遷移
XSeqのパターンをVPAに変換
クリーネ閉包の要素の開始タグを読んだ 時やsiblingを調べる時などにスタックが 積まれる模様
Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 5
'/
qqc
'/
qqr
'qqi
Figure 5より
例: (/son)*
実験: XSeq vs. XPath/Xquery engines
比較対象
MonetDB/XQuery [6]
Zorba [4]
XSeq (Java)
XSQ [25]
Xpathのみ
Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 6
Figure 7より引用
[2本目] Prediction-Based Geometric Monitoring Over Distributed Data Streams
概要 分散ストリームを監視するための既存手法Geometric Monitoring
に,予測モデルを導入してさらに通信量を減らした!
想定環境 観測点が複数サイトに分散し,各サイトのデータをCoordinatorで
集約(ここでは平均)することで真の観測値を得る 例: 各ネットワークルータのパケット情報からDoS攻撃を検出する
Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 7
サイト1 サイト2 サイトn
Coordinator
vi(t): サイトごとの
観測データ(d次元)
v(t): 集約した値
v1(t) v2(t) vn(t)
モニタリング関数(と閾値)
f(v(t)) > T 各サイトでモニタリング関数を大まかにでもチェックできれば通信量が減るのでは?
既存手法 Geometric Monitoring Framework [18, 20]
Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 8
時刻tsに計算した平均値eを全サイトで共有し,時刻ts以降のモニタリング関数のチェックを各サイトでできるようにする
各サイトiは,現時刻tの観測値vi(t)と時刻tsのvi(ts)との差を計算 vi(ts) が vi(t)へ変化したなら,平均値v(t)もeを起点に同じ量変化しうる
ui = e+ (vi(t) -vi(ts))
時刻tの平均値v(t)が存在しうるのは,u1,…,unからなる領域内 各uiとeの間を直径とする円を描いて,和をとるとこの領域を完全に包含
各サイトが自分の円の内側のみをチェックする
灰色の領域内にf(v(t)) > Tとなるv(t)が
含まれうる場合は,実際の平均値の
計算が必要
Figure1より引用
Prediction-based Monitoring
時刻tsと時刻tの間隔が長くなると,円が大きくなりやすい
= 実際に平均値を求めなければならなくなる
円を小さく維持するには?
単に観測値同士の差(vi(t) - vi(ts))を取るのではなく,予測値を出して観測値と予測値の差(vi(t) - vi
p(ts))を使う
予測方法
Static predictor
Linear growth predictor
Velocity/acceleration predictor
Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 9
Figure2より引用
[3本目] Online Windowed Subsequence Matching over Probabilistic Sequences
概要
確率的ウインドウサブシーケンスマッチング(PWSM)の提案
ExactアルゴリズムとRandomized approximationアルゴリズム
効率化のためのフィルタリングアルゴリズム
3種類のnegation のパターンを含んだPWSM
「確率的」がつかないウインドウサブシーケンスマッチング
Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 10
Figure 1より引用
心電計
0
1
2
3 p = 30003
ピークの間隔が短すぎるケースを検出
範囲ごとに文字列
表現へ変換
問合せパターン
次のピークが来ていないケースを検出
(360タプル/秒)
p = 30303 ウインドウ
確率的ウインドウサブシーケンスマッチング 想定
ストリーム: X = X[1]X[2],… (各X[i]は独立な確率変数) パターン(長さl): p = p[1]p[2],…,p[l] X[i]を起点にしてパターンpと最初にマッチするものを探したときのサブ
シーケンス長W[i]
問題 W[i]がウインドウw以下に収まる確率Pr(W[i] ≤ w)が閾値τ より大きけ
ればインデックスiを報告
Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 11
Possible world
P(X[1]=2) =0.5
P(X[1]=3) =0.5
X[1] X[2] X[3] X[4] X[5] X[6] X[7] X[8]
p=303
ウインドウ幅w = 4
Figure2より引用