公共安全領域智能積分模型如何構建?
明略數據在研發新一代積分模型的嘗試,解決了現有積分模型面臨的挑戰。對於如何基於機器學習的新一代積分預警模型解決問題以及如何根據實踐中遇到的困難,提出進一步研發的思考。
公共安全領域智能積分模型構建
邵鎣俠:各位嘉賓大家上午好,我是來自北京明略軟體系統有限公司的邵鎣俠。今天主要跟大家分享一下在過去一段時間做的工作,以及在這個過程中的實踐經驗。今天的主題是如何在公共安全領域構建一個智能積分模型。
公共安全是為了給人們日常生活營造一個安全、和諧的社會環境,是社會穩定發展的基石。然而目前在全球範圍內恐怖襲擊越來越多,國內的反恐壓力也越來越大。如果我們生活在恐怖事件的陰影下,對於我們正常的生產生活都會造成很大的影響。不同於往日,當前在非傳統安全領域,對於治安、反恐風險的把控越來越困難,原有的手段已經有些捉襟見肘。所以我們需要新的技術助力公共安全領域,給我們的日常生活提供一個穩定、安全的環境。
公共安全領域需要同時處理大量的數據。在傳統的管理模式下這些數據一般都是人為收集。現在隨著高速的城市化進程和大量的流動人口,導致了過去人工收集的方法以及無法應對這樣的挑戰。不過,現在整個社會信息化建設越來越成熟,大量的行為數據被諸多的系統自動化記錄下來。面對信息化建設的越來越完善的趨勢,利用大數據技術可以增強公共安全治理的計算能力,對風險社會中的各種風險因素業提供預測。
舉個例子,假設有個人在網購的時候,短時間內頻繁地購買大量的感冒藥。結合背景知識,系統可以判定這個行為是異常的,並給出預警。這是因為在政策上,對於一般人來說,購買感冒藥也是有限制的,因為感冒藥中有很多的成分是可以通過化學提煉製成毒品的。通過有效的監控,當發現一個人頻繁在短時間內購買大量的感冒藥時,可以認為這是異常行為,防患於未然。通過有效的洞察機制或者是預測機制,能提高公共安全管理的能力。這是在公共安全領域做大數據分析的一個基礎。
2011年公安部在全國實施「積分預警、分類處置」的工作模式,但是傳統積分模型的都是根據經驗總結得到,更新不及時,對一些新的行為模式是很難及時捕捉的。
面對這樣一些問題,結合大數據的思想提出了智能化的積分模型。這個積分模型的首要目標,就是解決傳統積分模型不能解決的問題。
- 第一,這個積分模型首先從數據出發,不僅僅是簡單的經驗的積累,要從數據中自動學習規則,學習相應的組合方式。
- 第二,要達到實時預警的效果。
- 第三,現在機器學習最容易讓人詬病的是當系統給預警結果時,不能給出足夠的理由讓用戶接受這個結果,即模型解釋性不好,我們要提高模型的解釋性。
- 第四,我們也希望這個模型能夠跟本地的數據,實現因地制宜,即不同地區模型會根據本地的數據或者是行為特徵產生一些新的規則。
現在的技術發展來看,機器肯定不是萬能的,結合實踐經驗發現,機器只是輔助的,需要有靈活的配置方式,讓人去把它認為正確的業務經驗融合到這個模型里去。
也是基於這樣的設計需求,我們最後提出的積分模型的設計理念是,通過學習的方式提升模型的能力。模型中的規則一方面來源於業務人員的經驗,畢竟他們才是最強的最有效的資源。另一方面從數據中自動發現不太常見的,業務人員很難捕捉的規則。
智能積分模型中的模塊可以分為三層。底層是一個數據層,首先把數據組織成一張網路,這個就是一張領域知識圖譜,在這個圖譜上分了兩條路,一條是基於領域知識圖譜產生一個和領域相關的知識庫,基於這個知識庫能發現更多的行為模式,進一步總結出一些規則,這個就是所謂的從數據中學習規則。左邊這條路就是有了這些規則後,需要把這些規則轉化為積分,轉化過程中,一方面要達到規則的靈活配置,另一方面通過機器學習,給出建議權重。另外,圖中有一個數據自動標註模塊,這是因為傳統行業一個很大的問題是數據質量差,同時由於數據敏感很難採用外包或者眾包的方式把數據公開處理,我們設計了一種比較不錯的數據自動標註的方法。
下面先介紹下積分模型相關概念,第一個是模型,由一組規則組成。這裡的規則不像傳統機器學習模型中的簡單的特徵提取,而是相對複雜的邏輯組成的一個高層次的特徵,保證與預警結果的可解釋性。舉個規則的例子,在某一個時間段入住了高危酒店就算一個規則,我們為了有效表示,對這個規則進一步抽象,就是所謂的運算元,運算元是最小的計算單元。這些規則都是由運算元組成,進一步排列組合產生了模型。為了有效表示規則我們採用SQL表示,進一步對運算元用UDF和UDAF實現,UDF是對單一的記錄進行處理,UDAF是對一組記錄進行聚合計算,在這樣的劃分後,我們把遇到的規則基本上能順利地轉化為後面計算機能識別的由用戶自定義的SQL語句表示。
規則一方面來自業務經驗,一方面從數據中挖掘。具體通過相關性分析,頻繁模式挖掘等技術來產生一些數據中潛在的行為模式,或者是犯罪的重要的具有顯著性的特徵。
規則怎麼來的知道了,規則的模型也知道了,最後就要把這些規則轉化成分數,整個計算的方案以Spark SQL為基礎實現。中間對數據做了進一步的抽象,引入了一個預處理後的時間序列特徵數據,這麼做的好處是,以規則為基本單元的數據進行統一處理,按時間進行分片,能夠在原始數據實時進來的時候,增量地去維護這個中間數據。這個中間數據一方面可以直接服務於實時的積分計算,同時基於這種數據模式做離線的機器學習的訓練,這個就是整體的計算流程技術思想。有了這個後,基本的積分模型從數據轉化為積分的流程已經非常完善了。但對與高質量的標註數據是缺失的問題,我們提出了一種基於LPA的數據標註基礎,LPA就是標籤傳播演算法。
目前人工智慧和機器學習,比較可靠的方法還是依賴於高質量的數據,高質量的數據是一個比較重要的輸入。實際中高質量的數據稀少,正例比較稀疏,比如吸毒的人員,按報道數據可知大約在1%左右。再是負例缺失。基於LPA的數據標註技術,以人為中心的數據去構建圖譜,整體可以想像成一個社交網路,在這個網路中,利用社交網路的同質性,即一個人與他周圍的人都比較相似,基於這樣的理論假設,某個人具有某個標籤可以通過網路傳給他的鄰居。
LPA的演算法,即標籤傳播演算法,就是半監督的學習演算法。比如給出數據集X,其中有很大一部分數據是不帶標籤的,利用LPA可以推斷出未帶標籤的數據帶有什麼標籤。
先構造相似度圖,再利用圖結構信息進行標籤推斷,基於這樣的假設做標籤推斷,具體在優化時,量化的一個目標函數是這樣的,公式看起來比較複雜,這兩部分是基於前面的假設。這部分每一個頂點跟他概率分布的距離越小越好,這是根據相似性假設。另外標籤已知的概率分布先不要發生變化,對已知標籤分布的距離也是越近越好,這是標準的LPA優化目標的一個形式化的表達。基於這樣的優化目標,可以各種方法求解它,我們採用的思路是基於雅各布迭代原理,對上面的公式進行變化,轉化成對於每一個頂點迭代的時候應該怎麼計算,這個計算流程還是根據那個鄰居,根據鄰居的概率分布,通過求和,再取平均值,根據鄰居頂點,上一輪迭代的標籤分布,通過加和的方式,算出標籤的概率分是怎麼樣的。
通過一個比較形象化的例子,這裡有三張圖,最左邊是初始化,經過兩個迭代後標籤的情況。剛開始這樣一個圖片其中三個點是不帶標籤的,還有兩個點是藍色標籤,一個點紅色標籤,線的粗細代表網路上相似形的權重,通過一輪迭代後,大家各自把標籤傳給相應的鄰居頂點,鄰居頂點根據收到的標籤,估算出這個節點的標籤分布。第一輪藍色的、紅色的傳給這個節點,這個節點收到了兩個標籤,他根據權重可以估算出藍色標籤的概率會大一些,紅色標籤有一定的可能性。第二個迭代通過兩跳以後,這個頂點也收到藍色標籤的概率值,這是比較形象化的展示,這是一個標準的LPA的流程。在實際過程中,還可以進一步優化,優化的目的主要是當你這個標籤數據非常大的時候,你這個演算法的空間複雜度是比較高的。這個空間複雜度通過理論分析可以發現,它是跟標籤數據成正比,每個頂點會有一個概率分布,概率分布的長度就是標籤的長度,這樣我們如何去壓縮這個空間,如何去做一些優化,一種思路是去年穀歌提出來的,對這部分的計算進行近似計算,近似計算的原理用頻次估計法進行逼近,通過基於流式的逼近的話,概率分布的空間能優化到常數級別。
公共安全是對社會非常有影響的一個領域,我們提出一個智能化的積分模型,希望對那些社會中不穩定的因素進行有效的識別監控,在這個過程中發現,其實規則還是構建模型快捷有效的冷啟動比較好的方法,在這個過程中,機器學習主要是對這個模型進行進一步提升,實現量變到質變。
推薦閱讀:
※政務大數據的全景圖
※破解數據三大難題:變現?交易?隱私?
※數據、資料庫、數據倉庫
※iCloud雲上貴州,2018數博會連接2億多用戶
※大數據計數原理1+0=1這你都不會算(九)No.64