應用向:從 App Store 的排名變化,發現刷榜的水軍
今天介紹一篇比較偏應用的文章,來自2013年的CIKM。
Zhu, Hengshu, Hui Xiong, Yong Ge, and Enhong Chen. "Ranking fraud detection for mobile apps: A holistic view." InProceedings of the 22nd ACM international conference on Information & Knowledge Management, pp. 619-628. ACM, 2013.
手機應用市場中的刷榜問題一直充滿爭議,這種行為在iOS 的App Store 中尤為嚴重。雖然蘋果已經採取了一些過濾措施,但是仍然有大量的低質量刷榜軟體在某些時間段霸佔 App Store 的免費和付費榜單前部位置。這種行為嚴重影響用戶的使用體驗,也埋沒了一批真正優秀的應用軟體。
這篇論文作者爬取了 App Store 每天免費應用下載榜和付費應用下載榜排名 Top300 的 app,時間跨度長達兩年半。通過對 app 在榜單上排名的變化規律進行建模,從而發現一些可能存在刷榜行為的 app。
這篇文章首先介紹了一個現象:大部分軟體在排名變化上都呈現出一種具有 leading event 和 leading session 的現象。
如下圖所示,隨著時間的變化,刷榜 app 並不是長時間一直佔據應用排行榜前部位置,而是呈現出一個上升,維持和下降的過程,這種過程就叫做 leading event,幾個時間上距離較近的 leading event 就構成了一個 leading session。
於是該文章首先設計了一個從排名時間變化中發現 leading session 的演算法,即發現一些在某段時間內 app 排名高於一定閾值的 leading event,把時間相近的leading event 合併成一個 session。
當然,任何 app 都有可能存在上述的 leading session,比如一些限時促銷 app,所以僅僅通過發現這樣的 leading session 是無法準確發現刷榜 app 的。
該文章根據觀測到的一些刷榜 app 排名變化的現象(evidence),將這寫現象進行數學建模,從而進一步準確地判斷刷榜行為。這五種被發現和建模的現象分別為:
刷榜 app 在榜單上的排名呈現出迅速上升和迅速下降的特點。更進一步,如果一個 leading session 中所有 leading event 的上升邊和下降邊斜率之和的平均值明顯大於榜單中其他 leading session 的該項值,那就說明這個 session 很大概率上存在刷榜行為。
刷榜 app 往往在榜單中是以較短的時間維持較高的排名。具體來說,對於一個 leading session,如果其中平均每個 leading event 在維持階段(上圖中的 Maintaining Phase) 有較高的排名時長比(相對排名變化/維持時間長度),那麼這個 leading session 也有較大的刷榜可疑。
刷榜 app 經常在短時間內出現排名反覆上升下降的特點。對於正常的 app 來說,其排名下降到一定程度之後很少在短時間內再次出現迅速上升的情況。所以,在一個 leading session 如果包含了特別多的 leading event,證明這個 app 在短期內排名變化劇烈,其存在刷榜的行為可能性也較高。
刷榜 app 在刷榜時的評分和其平時的評分存在較大差異。對於正常的 app,無論是在 leading session 之內還是之外,其評分應該擁有相似的均值。刷榜 app 往往通過刷評分的方式來提高其排名,所以其在 leading session 中的平均評分可能大大高於其歷史平均評分。
刷榜 app 在刷榜時的評分分布和其平時的評分分布存在較大差異。同上條,正常 app 在 leading session 內外,其評分在1-5之間的分布都是類似的。刷榜 app 在疑似存在刷榜行為的leading session 內的評分分布可能存在5分的比例更高的現象,與其平時的分布存在差異。
該文章將這五種現象數學化後通過假設檢驗和高斯近似的方法(具體細節見論文)求得給定 session 對應五種現象的 evidence value。
把一個給定 session 的五個 evidence value 進行線性組合就得到了該 session 的可疑值。線性組合中每個 evidence value 的權重(也就是該模型的參數)可以通過梯度下降的方法計算。
對 session 的可疑值設定一個閾值,然後將該 app 每個 session 是否可疑與session 的時間長度做加權和得到最終 app 的可疑值。
上圖公式是 app a 的可疑值的計算方法,對於 a 的每一個leading session,方括弧裡面判斷其可疑值是否超過閾值,超過則該方括弧的值為1,否則為0。然後乘以該 session 的可疑值再乘以該 session 的時間。
故一個 app 可疑的 leading session 越多,持續時間越長,該 app 越可疑。
在實驗階段,由於缺乏標註好的事實數據(即不知道哪個 app 有刷榜行為),該文章採用了人工標註的方式,5位經驗豐富的評價者通過對 app 基本信息的觀察從而判斷其是否存在刷榜行為。
由於該方向研究論文較少,該文章只比較了其提出的方法的幾種不同的變體的表現,實驗結果表明,將五種表現加權結合的方法的表現(NDCG>0.9)好於只考慮部分表現的方法。
上圖展示了兩個通過該演算法發現可疑 app,我們可以發現其存在上文提到的一些典型的可疑表現。
整體來看,這篇文章用統計學和機器學習的方法,通過對大量歷史數據進行建模和學習,最終得到一個表現穩定的刷榜 app 預測模型。
該論文也存在著缺乏標註數據,缺乏對比方法等問題。但本文至少從統計學角度證明我們的一些基本觀察是正確的,而且該方法可以廣泛應用在一些其他的異常檢測問題中。
隨著刷榜水軍的進化,越來越多的刷榜行為更注重長期排名的穩定增長,從而完美避開了本文的探測方法。
我們可以考慮結合更多的信息(app 元數據)以及在能獲取後台數據的情況下,分析刷榜用戶的行為,從而更加準確地分辨出刷榜行為和正常行為。
TAG:論文收割機 |