機器學習在小米帳號風控中的應用
隨着同黑產對抗的升級,對己方數據進行挖掘成爲防守一方的重要武器,機器學習也隨之成爲防守方的制勝法寶。
機器學習在風控中的應用同一般的應用場景有所不同,主要體現在以下幾個方面:
①標註標籤成本較高,導致標籤較少甚至無標籤
②壞 人會主動改進作弊策略,導致原有模型失效
③需要實時或近實時的返回結果
④場景多種多樣:撞庫盜號、黃牛領券、積分牆、反爬蟲等
但是考慮到線上情況的複雜性,我們希望給樣本的異常程度進行打分,以便結合歷史數據進行策略回溯,靈活的確定閾值,從而達到最佳準召,因此最終會輸出異常得分,從而達到量化異常的效果:
最終我們實現了對異常的量化,從而實現了對線上規則的改進,這樣一來,對規則的維護變成了對特徵的維護。只要能夠產生特徵及同模型相關的特徵組合,就可以得到相應的異常量化模型,從而實現了靈活的線上規則管理。同原來的規則攔截相比,模型的覆蓋率達到了規則攔截的80%+,召回率則提升了70%+。
二、無感知驗證碼
既然驗證碼又不能防機器,又阻礙了正常用戶,那是否有更加用戶友好的手段可以代替驗證碼呢?這裏我們引入了人機識別,採用手機傳感器在用戶無感知的情況下完成人機區分。
智能手機中存在多類傳感器,如加速度傳感器、角速度傳感器(陀螺儀)、重力傳感器、磁場傳感器等,在手機運行的每時每刻,這些傳感器都在以成百上千Hz的頻率將其收集到的X/Y/Z軸數據傳遞給手機的操作系統。
那麼這些傳感器數據是否足以區分人/機呢?我們假定壞人可以通過操縱手機API或外力讓手機產生物理行爲從而產生運動狀態的傳感器數據,對壞人而言可選的操作包括:靜止時、手機震動時和手機置於搖擺裝置中。我們分別收集了這幾個場景產生的傳感器數據,可以對以下4張圖片做肉眼的對比:
圖中從上至下依次對應的操作是:手機靜止、手機震動、手機搖擺和正常點擊操作。
從上圖可以看出,靜止時傳感器仍然存在輕微的抖動,震動時的傳感器的波動更有規律性,搖擺中的傳感器數據像極了正弦波,而正常的點擊操作由於手指的點觸操作會帶來加速度的陡升/陡降。
從這裏可以看出,要區分傳感器數據是否由人類產生,更準確的說:某次滑動或點擊的交互操作時否由當前傳感器產生,正是很適合由機器學習來判斷的二分類問題。
最終產出是人機識別模型,可以判斷SDK採集的傳感器數據是否由人類產生。從線上的攔截效果來看,整體準確率在97.3%,好人誤攔率爲1.8%。