LCSS最長公共子序列算法


0、論文基本介紹以及相關內容

  • 分析移動用戶位置的相似性,提取移動用戶的相似路徑在出行路徑預測、興趣區域發現、軌跡聚類、個性化路徑推薦等領域具有廣泛的應用。
  • 重點:利用移動用戶定位數據找到合適軌跡的表示方法,如何高效計算移動用戶軌跡間的相似性成為熱點。
本文---基於改進LCSS的移動用戶軌跡相似性查詢算法研究:
(1)移動用戶原始軌跡數據->抽取位置序列->映射為具有時間和地理位置信息的序列。
解決移動用戶軌跡數據的稀疏性導致相似度算法效率低下的問題。
(2)FP-tree頻繁模式樹的加權頻繁模式挖掘移動用戶軌跡的頻繁序列。
解決由於用戶軌跡隨機性和繁雜性而導致的算法效率低下的問題。
(3)通過改進LCSS算法
結合時間和地理因素衡量用戶軌跡的相似性。
  • 衡量相似度的方法有很多:歐式距離,動態時間規划DTW,編輯距離EDR,最長公共子序列,最大時間出現法MCT,余弦相似性,Hausdorff距離。其中基於軌跡數據衡量相似度的算法有三種:歐式距離,DTW算法,LCSS算法。

1、歐式距離(關鍵輸入:時間,位置,用戶)

  • 歐氏距離是指通過計算每個時間點上軌跡所對應的兩個點的歐式距離,然后再對所有點的歐式距離進行綜合處理,包括取平均值、求和、取中位數等。

\[dist(p_{k}^{A}, p_{k}^{B}) = \sqrt{(p_{k,x}^{A} - p_{k,x}^{B})^{2} + (p_{k,y}^{A} - p_{k,y}^{B})^{2}} \]

其中\(dist(p_{k}^{A}, p_{k}^{B})\)表示用戶A和B在某時間段內的距離,\(p_{k}^{A}, p_{k}^{B}\)表示A和B在k時刻的位置,\(p_{k,x}^{A} - p_{k,x}^{B}\)表示用戶A和用戶B在x維度的位置,同理,\(p_{k,y}^{A} - p_{k,y}^{B}\)表示用戶A和B在y維度上的位置。因此歐式距離為:

\[EU = \sum\limits_{k=1}^{n} dist(p_{k}^{A}, p_{k}^{B}) \]

  • 歐式距離的缺點:容易受到噪音的影響,尤其是現實中兩個移動用戶的軌跡在時間和個數上都存在很大差異(缺失,異常),因此需要提前對移動用戶的軌跡進行預處理才能使用歐氏距離。

2、動態時間規划DTW算法(關鍵輸入:兩個時間序列,包含時間、位置)

  • 動態時間規划采用重復點之前的記錄點填補對應空缺的方式,以求出的最小距離最為軌跡的相似度量,解決了歐式距離對采樣過於苛刻的要求。假設有兩個軌跡空間域的離散采樣P=<p_{1}, p_{2}, ..., p_{m}>Q=<q_{1}, q_{2}, ..., q_{m}>,基於DTW對兩條軌跡的采樣點數量沒有任何的要求,那么兩條軌跡之間每兩個點的相似度公式為:

\[D(i, j) = ||p_{i}, q_{j}|| + \min \{D{i-1,j}, D{i,j-1}, D{i-1, j-1}\} \]

其中\(||.||\)為兩點坐標的二范數,也就是兩點之間的歐式距離。\(D(i,j)\)一般也采用歐氏距離,或者其他路徑函數也行。因此兩條軌跡之間的相似度為:

\[DTW(P,Q) = f(m,n) \]

3、最長公共子序列LCSS(兩個時間序列,包含:時間,位置)

  • 來源:DTW和歐式距離對軌跡的個別點差異性非常敏感,如果兩個時間序列在大多數時間段具有相似的形態,僅僅在很短的時間具有一定的差異,(即很小的差異也會對相似度衡量產生影響)歐式距離和DTW無法准確衡量這兩個時間序列的相似度。LCSS能處理這種問題。
  • 原理:假設現在有兩個長度分別為n何m的時間序列數據A和B,那么最長公共子序列的長度為:

\[LCSS(A,B) = \left\{ \begin{array}{l} 0 & \textrm{if $A = \varnothing \ or \ B = \varnothing$}\\ 1+LCSS(a_{t-1}, b_{i-1}) & \textrm{if $dist(a_{t}, b_{i}) < \gamma$}\\ \max(LCSS(a_{t-1}, b_{i}), LCSS(a_{t}, b_{i-1})) & \textrm{otherwise} \end{array} \right. \]

其中,\(\gamma\)為一個成員相似閾值,\(t=1,2,...,n\)\(i=1,2,...,m\)。基於上述公式,最長公共子序列的相似度公式為:

\[D_{LCSS} = 1 - (LCSS(A,B)) / min(len_{A}, len_{B}) \]

  • LCSS算法可以計算兩個子序列之間的最長公共子序列。(子序列是有序的,但不一定是連續的,作用對象是序列)
  • 例如:序列X= <B,C,D,B>是序列Y = <A,B,C,B,D,A,B>的子序列,對應的下標序列為<2,3,5,7>。
    • 匹配:L(<AGGTAB>, <GXTXAYB>) = 1 + L(<AGGTA>, <GXTXAY>)
    • 不匹配:L(<ABCDGH>, <AEDFHR>) = MAX ( L(<ABCDG>, <AEDFHR>), L(<ABCDGH>, <AEDFH>) )

4、改進的LCSS算法(關鍵輸入:兩個時間序列,包含時間、位置)

  • 改進LCSS的三個步驟:
    1. 抽取位置序列:將位置序列映射為具有時間和地理位置信息的序列,以發生時間的序列表示移動用戶的軌跡。
    2. 采用FP-Growth算法挖掘移動用戶軌跡的頻繁序列。
    3. 結合時間和地理因素,采用改進LCSS方法衡量用戶軌跡的相似性

4.1 抽取位置序列

  • 移動用戶時間序列為:

\[Tr_{i} = \{(L_{1}, t_{1}), (L_{2}, t_{2}), ..., (L_{i}, t_{i}), ..., (L_{n}, t_{n})\} \]

其中\((L_{i}, t_{i})\)表示用戶出現在某個基站的位置\(L_{i}\)對應的時間\(t_{i}\)

  • 移動用戶軌跡為:

\[Tr_{i} = \{(L_{1}, L_{2}, t_{1}, t_{2}), (L_{2}, L_{3}, t_{2}, t_{3}), ..., (L_{i}, L_{i+1}, t_{i}, t_{i+1}), ..., (L_{n-1}, L_{n}, t_{n-1}, t_{n})\} \]

其中序列\((L_{1}, L_{2}, t_{1}, t_{2})\)表示移動用戶在時刻\(t_{1}\)出現在基站\(L_{1}\),然后在時刻\(t_{2}\)離開基站\(L_{1}\)前往基站\(L_{2}\)

4.2 采用FP-Growth算法挖掘移動用戶軌跡的頻繁序列

  • 移動軌跡的數據的頻繁模式定義:\(L_{i} \to L_{j}\)
  • 移動用戶頻繁軌跡提取是從移動用戶移動軌跡數據集中提取支持度大於最小支持度閾值的集合。移動用戶頻繁模式反映了移動用戶群體在移動行為上具有相同特征或是規律。
  • 通過引入閉合頻繁項集保證了移動用戶行為信息量最全面且數據規模最小。具體過程如下:
    1. 首先,以基站平均逗留時間作為項目權重,以各項目count值降序依次為頭結點和其他節點,生成條件模式基;
    2. 然后,采用條件模式基構造對應的加權條件FP樹;
    3. 最后按照設定加權支持度的閾值判斷相應的頻繁模式。

4.3 基於改進LCSS的移動用戶軌跡相似性查詢算法

  • TP樹獲得用戶常駐區域模式后,以時間系數來反映所有用戶在鄰近時間相同地理位置的比例。時間相似性系數公式為:

\[COL = \frac{\sum\limits_{i=1}^{n(u)} \sum\limits_{j=1}^{n(v)} (\Delta T - |T_{i}(u) - T_{j}(v)|) \delta (L_{i}(u), L_{j}(v))}{\sum\limits_{i=1}^{n(u)} \sum\limits_{j=1}^{n(v)} (\Delta T - |T_{i}(u) - T_{j}(v)|)} \]

其中,$\Delta T$為精度(一般設為1個小時),$T_{i}(u)$表示移動用戶u在某一個時間精度內到達某一個基站$L_{i}(u)$的時刻,$T_{j}(v)$表示移動用戶v在某一個時間精度內到達某一個基站$L_{j}(v)$的時刻,$\delta (L_{i}(u), L_{j}(v))$是一個重合性公式,當兩個用戶的基站重合時,值為1,否則為0。
- 用戶重合度:指一個網站內的多少訪問者同時瀏覽器了其他網站。即同時訪問兩個網站的用戶中有多大比例是重合的。假設A和B分別為需要計算用戶重合度的2個網站的獨立用戶數,則重合度計算公式為:

\[用戶重合度 = A \cap B / A \cup B *100% \]

  • 結合時間因素,改進的LCSS相似度算法為:

\[D_{LCSS} = \frac{1 - (LCSS(u,v))}{\min(len_{u}, len_{v})} \times COL \]

\[D_{LCSS} = \frac{1 - (LCSS(u,v))}{\min(len_{u}, len_{v})} \times \frac{\sum\limits_{i=1}^{n(u)} \sum\limits_{j=1}^{n(v)} (\Delta T - |T_{i}(u) - T_{j}(v)|) \delta (L_{i}(u), L_{j}(v))}{\sum\limits_{i=1}^{n(u)} \sum\limits_{j=1}^{n(v)} (\Delta T - |T_{i}(u) - T_{j}(v)|)} \]

其中,公式的第一部分表示用戶u和用戶v一天的最長公共子序列,第二部分表示在每一個時間精度下,兩位用戶在鄰近時間相同的地理位置的比例。

4.4 改進LCSS算法與LCSS算法的優缺點

  • 優點:結合了時間和地理因素,衡量用戶軌跡的相似性,因此提高了相似度計算的准確性。
  • 缺點:改進之后,需要抽取時間序列、構造用戶軌跡的頻繁序列,然后才能用改進的LCSS相似度算法計算用戶軌跡的相似度,因此算法模型過程相對比較復雜。

參考:
1、LCSS論文:http://www.cs.bu.edu/groups/dblab/pub_pdfs/icde02.pdf
2、基於改進LCSS的移動用戶軌跡相似性查詢算法研究:https://www.sohu.com/a/133750116_354885
3、簡書:LCSS實現:https://www.jianshu.com/p/d7b8db280a01
4、博客之用戶重合度:https://blog.csdn.net/zyy160alex5/article/details/8791864


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM