王嘉祺 何新磊 汪天一 王 新
1(復(fù)旦大學(xué)計算機(jī)科學(xué)技術(shù)學(xué)院 上海 201203)2(上海市智能信息處理重點(diǎn)實(shí)驗(yàn)室(復(fù)旦大學(xué)) 上海 200433)3(北京字節(jié)跳動科技有限公司 北京 100086)
在當(dāng)代,移動社交應(yīng)用已經(jīng)成為日常生活中不可或缺的一部分,如WhatsApp[1]、微信[2]、Instagram[3]、Foursquare[4]/Swarm[5]等已經(jīng)在全球廣泛使用。在這些應(yīng)用中,用戶分類有著很多實(shí)用的場景。例如,找出惡意賬號并及時封禁可以極大提升用戶體驗(yàn);針對高影響力用戶或潛在的會員用戶可以采取對應(yīng)的營銷策略。若是對用戶進(jìn)行多維度標(biāo)簽,推薦系統(tǒng)便可以高效運(yùn)作。
本文旨在設(shè)計一套基于機(jī)器學(xué)習(xí)的移動社交網(wǎng)絡(luò)用戶分類系統(tǒng),該系統(tǒng)可以適用于各種分類場景,而并不局限于單一的分類目標(biāo)。例如,廣告提供商可以使用它分類出高影響力用戶并與其合作,使得廣告的投放事半功倍;虛擬服務(wù)提供商可以用其找出某個移動社交網(wǎng)絡(luò)中的付費(fèi)用戶,因?yàn)檫@些用戶更有可能付費(fèi)購買其服務(wù);移動社交網(wǎng)絡(luò)平臺可以用其檢測出平臺中的惡意賬號并及時采取措施,保障正常用戶的體驗(yàn)。分類系統(tǒng)分為兩部分:基礎(chǔ)分類模塊和處理時序特征的深度學(xué)習(xí)模塊。用戶的靜態(tài)特征,例如人口學(xué)特征、用戶生成內(nèi)容(UGC)特征等由基礎(chǔ)分類模塊處理;用戶的動態(tài)特征例如發(fā)帖、評論等行為特征由深度學(xué)習(xí)模塊處理。為了測量分類系統(tǒng)的效果,我們實(shí)驗(yàn)了三種不同的分類目標(biāo),分別是惡意賬號檢測、高影響力用戶發(fā)現(xiàn)及會員用戶發(fā)現(xiàn)。由于陌陌已經(jīng)標(biāo)定了惡意用戶及會員用戶,因此我們省去了數(shù)據(jù)標(biāo)定的過程。實(shí)驗(yàn)中對于不同的分類目標(biāo)均使用了大量來自陌陌的真實(shí)用戶數(shù)據(jù),并對比了不同的監(jiān)督學(xué)習(xí)算法,最終我們選擇XGBoost[6]作為基礎(chǔ)分類模塊的核心算法。
本文共有以下3個貢獻(xiàn):
1) 提出了移動社交網(wǎng)絡(luò)中的用戶分類問題,且使用陌陌中的真實(shí)用戶數(shù)據(jù)驗(yàn)證了分類模型。
2) 使用了深度學(xué)習(xí)技術(shù),即長短記憶神經(jīng)網(wǎng)絡(luò)[7],并與經(jīng)典的分類算法相結(jié)合,實(shí)現(xiàn)了多目標(biāo)的分類。
3) 對陌陌的真實(shí)數(shù)據(jù)進(jìn)行了充分的分析,實(shí)驗(yàn)結(jié)果表明,本文的模型對于不同的分類目標(biāo)均可達(dá)到很好的效果。
鑒于社交網(wǎng)絡(luò)中用戶分類問題的重要性,目前對此已有多項(xiàng)研究,不妨以惡意賬號檢測為例,已有的分類方法主要分為兩大類。
一類方法聚焦于社交圖譜。這類方法通常假設(shè)在惡意賬號與正常賬號之間建立緊密聯(lián)系是較為困難的。西班牙最大的在線社交網(wǎng)絡(luò)Tuenti上部署著這類基于社交圖譜的隨機(jī)游走算法SybilRank,以檢測惡意賬號[8]。
另一類方法通過收集各項(xiàng)特征并利用機(jī)器學(xué)習(xí)算法找出惡意賬號。人人網(wǎng)基于此運(yùn)行了一套惡意賬號檢測系統(tǒng)。Yang等[9]發(fā)現(xiàn),人人網(wǎng)中的惡意賬號與正常賬號聯(lián)系密切,他們基于用戶之間的交互,如好友請求的頻率等特征,構(gòu)建了一套惡意賬號檢測系統(tǒng),并于2010年8月部署到人人網(wǎng)。Zhang等[10]在大眾點(diǎn)評上部署了類似的系統(tǒng)。Gong等[11]提出了一套基于深度學(xué)習(xí)的算法DeepScan,以在大眾點(diǎn)評上找出惡意賬號。然而,這類算法均是聚焦于一種具體的用戶分類場景,并不具有較好的通用性。文獻(xiàn)[12]設(shè)計了一套用戶分類系統(tǒng),將推特中的用戶分為不同類別,但與本文不同的是,他們并沒有考慮到用戶的動態(tài)行為特征。
影響力[13]是一種描述用戶在社交網(wǎng)絡(luò)中重要程度的指標(biāo)。信息在社交網(wǎng)絡(luò)傳播的過程中,重要的用戶通常起著較大的作用。目前已經(jīng)有一些通用的方法來衡量用戶的影響力。文獻(xiàn)[14]考慮通過關(guān)注數(shù)和活躍程度衡量影響力,但他們發(fā)現(xiàn)擁有較高關(guān)注者的用戶并非一定擁有較大影響力,因?yàn)檫@些用戶的推特轉(zhuǎn)發(fā)數(shù)和提及數(shù)并不一定很高。文獻(xiàn)[13]研究了推特中事件的傳播,他們發(fā)現(xiàn)高影響力的用戶對于某些事件的傳播擁有決定性作用。文獻(xiàn)[15]通過Page-Rank[16]來衡量節(jié)點(diǎn)的影響力。在社交網(wǎng)絡(luò)中,Page-Rank不僅考慮了用戶的關(guān)注數(shù),還考慮了每個關(guān)注者自身的影響力,因此可以較好地衡量用戶的影響力,但是計算PageRank需要獲得整個網(wǎng)絡(luò)的結(jié)構(gòu)信息。
陌陌[17]是一款基于地理位置的移動社交應(yīng)用,用戶可以與好友或者周圍的陌生人進(jìn)行互動。陌陌在全球擁有超過1.8億用戶,通過陌陌,用戶可以基于自己的實(shí)時位置,查看附近有哪些其他用戶,與他們分享文字、圖片和視頻,并與他們成為好友。用戶主頁是用戶的第一形象,包含了用戶ID、頭像、性別、注冊日期、年齡星座、發(fā)帖數(shù)、最近一次更新的位置及更新時間等信息。
動態(tài)是陌陌的核心社交功能之一。用戶可以發(fā)帖向好友和周圍的用戶分享文字、圖片、視頻信息,該帖可被其他用戶評論,帖下的評論也可以被其他用戶評論。通過該功能,位置相近的用戶可以找到共同的興趣話題,并成為好友。
陌陌是被廣泛使用的移動社交軟件之一,擁有近1.8億遍布全球的用戶。在陌陌中,我們可以訪問任意用戶的用戶主頁,查看其發(fā)帖,并通過主頁和發(fā)帖信息,知道該用戶是否是惡意用戶或會員用戶。因?yàn)閻阂庥脩艋驎T用戶均會在主頁和發(fā)帖信息中有相應(yīng)標(biāo)識,因此免去了我們?nèi)斯?biāo)定數(shù)據(jù)的過程,標(biāo)識的細(xì)節(jié)我們將在后文中敘述。此外,我們獲取到了較長一段時間內(nèi)陌陌用戶所有的發(fā)帖和評論信息,使得建模整個活躍用戶社交網(wǎng)絡(luò),計算用戶的PageRank成為可能。綜上所述,我們選擇陌陌作為我們研究的移動社交網(wǎng)絡(luò)。
社交網(wǎng)絡(luò)中的用戶根據(jù)不同的標(biāo)準(zhǔn)可以劃分為不同類別。為了驗(yàn)證本文提出的分類算法的可擴(kuò)展性,我們從3個不同的方面,分別將陌陌用戶分為惡意賬號與正常賬號、高影響力用戶與一般用戶、會員用戶與普通用戶。
(1) 數(shù)據(jù)獲取 通過抓包的方式,我們獲得了陌陌客戶端調(diào)用服務(wù)端的相關(guān)API,包括了發(fā)帖詳情、帖評論詳情、用戶主頁詳情的API。通過這些API,我們首先獲取了2016年7月17日至2016年9月17日所有的發(fā)帖,以及這些發(fā)帖的所有評論,共得到3.44億條發(fā)帖及3.58億條評論。然后,我們獲取了這些發(fā)帖評論關(guān)聯(lián)的陌陌用戶主頁信息,共計3 200萬條。這些數(shù)據(jù)存儲在數(shù)據(jù)庫中,共占用330 GB磁盤空間。需要注意的是,所有獲取到的用戶ID均是加密的,無法將獲取到的數(shù)據(jù)與陌陌應(yīng)用中的用戶直接關(guān)聯(lián),所以用戶的隱私得到了保障。
(2) 陌陌數(shù)據(jù)概況 在我們的數(shù)據(jù)集中,男性用戶占67.91%,女性用戶占32.09%。從年齡分布來看,20歲以內(nèi)的用戶占9.71%,20~30歲的用戶占62.03%,30~40歲的用戶占20.29%,超出40歲的用戶占7.69%,由此可見,20~30歲的用戶是陌陌的主力軍。
(3) 評論圖譜 基于評論數(shù)據(jù),我們構(gòu)建了評論圖譜G=(V,E)來建立陌陌用戶間的評論社交關(guān)系。圖中節(jié)點(diǎn)v∈V代表陌陌用戶,若用戶x對用戶y的發(fā)帖或評論發(fā)表了評論,則(x,y)∈E,否則(x,y)?E。最終,G中包含了21 541 801節(jié)點(diǎn)和148 844 803條邊。
我們引入了入度、出度、聚集系數(shù)和PageRank來描述G中節(jié)點(diǎn)的屬性。入度表示該用戶的發(fā)帖或評論被評論的次數(shù),出度表示該用戶評論其他用戶的次數(shù),聚集系數(shù)越高則該用戶與其周圍的用戶聯(lián)系越緊密,PageRank越高則表示該用戶的影響力越高。圖1中展示了入度、出度、網(wǎng)頁排名的累積分布函數(shù),G中節(jié)點(diǎn)的平均入度和出度是4.55,大部分節(jié)點(diǎn)的聚集系數(shù)都很小,表明G中的節(jié)點(diǎn)連接得并不緊密。同時,我們分析了G中較大的弱連通子圖,規(guī)模由大到小依次占2.75%、2.38%、2.29%、2.05、2.02%。這與常見的社交圖譜的不同,因?yàn)樗⒉话粋€較大的弱連通子圖。
(a) 陌陌評論圖譜入度/出度 (b) 陌陌評論圖譜網(wǎng)頁排名圖1 陌陌評論圖譜入度、出度、網(wǎng)頁排名的累積分布
本節(jié)介紹分類系統(tǒng)的設(shè)計架構(gòu)。系統(tǒng)基于機(jī)器學(xué)習(xí)算法,結(jié)合靜態(tài)特征和動態(tài)特征,具有較好的擴(kuò)展性,可適用于不同的分類目標(biāo)。
為了充分發(fā)掘靜態(tài)特征與動態(tài)特征所包含的信息,分辨不同類別的用戶在兩類特征上的不同,我們引入了深度神經(jīng)網(wǎng)絡(luò)。系統(tǒng)架構(gòu)如圖2所示,動態(tài)特征輸入LSTM網(wǎng)絡(luò),再通過Softmax得到深度學(xué)習(xí)模塊輸出的各類別的概率,其輸出與靜態(tài)特征一同輸入傳統(tǒng)機(jī)器學(xué)習(xí)分類模塊的自定義分類器,得到最終的輸出。自定義分類器是從幾種經(jīng)典的分類算法中,選擇分類效果最好的算法作為其具體實(shí)現(xiàn),具體細(xì)節(jié)將在實(shí)驗(yàn)部分詳述。
圖2 系統(tǒng)架構(gòu)圖
如表1所示,特征被分為了不同類別(子集),如人口學(xué)特征、UGC特征、社會學(xué)特征等靜態(tài)特征,及發(fā)帖特征、評論特征等動態(tài)特征。
表1 特征集
續(xù)表1
(1) 靜態(tài)特征 靜態(tài)特征主要包括用戶屬性和統(tǒng)計意義上的特征。其中:人口學(xué)特征包含了用戶的基本信息,如年齡、性別、注冊日期等;UGC特征包括了用戶的發(fā)帖數(shù)、主頁收藏的音樂、電影、書籍等統(tǒng)計特征;社會學(xué)特征即社交圖譜中節(jié)點(diǎn)的圖屬性,包括了入度、出度、聚集系數(shù)和PageRank。
(2) 動態(tài)特征 我們假設(shè)不同類別的用戶會有不同的日常行為模式,因此分析用戶的每日發(fā)帖和評論行為并作為動態(tài)特征。
動態(tài)特征包含發(fā)帖特征和評論特征。發(fā)帖特征體現(xiàn)了不同用戶每天的發(fā)帖模式,包括了每天的總發(fā)帖數(shù)、每天被評論的帖數(shù)、每天所發(fā)帖的總長度等;評論特征提現(xiàn)了不同用戶每天的評論模式,包括了截至當(dāng)天的總評論數(shù)、每天評論的用戶數(shù)、每天的評論數(shù)等。
為了深入理解不同特征子集對不同分類目標(biāo)的重要程度,我們分別對于每個分類目標(biāo)采用不同特征子集,并比較他們的分類結(jié)果。
圖3-圖5分別展示了不同特征在不同類別用戶上的分布。如圖3所示,惡意賬號與正常賬號在注冊時間上表現(xiàn)出了極大差別,正常賬號的注冊時間分布較為均勻,而惡意賬號的增長速度在2016年4月后陡增。這可能與陌陌在2016年4月上線在線直播功能有關(guān),一些主播可能會采用大量馬甲賬號提升自己直播間的人氣。圖中還可以看出,惡意賬號的年齡與正常賬號比更年輕,需要注意的是,惡意賬號的年齡可能是虛假的,以騙取更多用戶關(guān)注。圖4中,高影響力用戶擁有更高的入度,且發(fā)了更多帖子,可見高影響力用戶一般較為活躍。圖5中,會員用戶的注冊時間相對普通用戶更久些,發(fā)帖數(shù)比普通用戶更多,由此可推斷出老用戶比新用戶更傾向購買會員。
(a)注冊時間累積分布 (b)年齡累積分布圖3 惡意賬號vs正常賬號
(a)入度累積分布 (b)發(fā)帖數(shù)累積分布圖4 高影響力用戶vs一般用戶
(a)注冊時間累積分布 (b)發(fā)帖數(shù)累積分布圖5 會員用戶vs普通用戶
我們使用了LSTM模型建立用戶每日行為特征向量之間的聯(lián)系。用戶每日的行為特征已在表1中的動態(tài)特征部分展示,由發(fā)帖特征和評論特征構(gòu)成11維向量。根據(jù)2.4節(jié)所述,我們的數(shù)據(jù)集包含了陌陌用戶63日內(nèi)的行為數(shù)據(jù),可以構(gòu)成長度為63的向量序列,序列中的每個向量表示用戶當(dāng)日的行為特征。LSTM神經(jīng)網(wǎng)絡(luò)是一種時間遞歸神經(jīng)網(wǎng)絡(luò),被設(shè)計以處理和預(yù)測較長的序列向量,它的特點(diǎn)在于擅長記憶較長的序列,且具備遺忘機(jī)制。在我們的模型中,如圖2所示,LSTM被用以記憶用戶的日常行為特征序列,分辨不同類別用戶行為模式的差異。
我們將用戶日常行為特征向量輸入LSTM網(wǎng)絡(luò),將最后的輸出傳入全連通網(wǎng)絡(luò),并使用交叉熵代價函數(shù)作為目標(biāo)函數(shù)優(yōu)化模型中的參數(shù)。用于訓(xùn)練模型的數(shù)據(jù)越多,數(shù)據(jù)的質(zhì)量越高,訓(xùn)練出的模型效果越好。
最終,我們構(gòu)建了一套監(jiān)督學(xué)習(xí)用戶分類系統(tǒng),該系統(tǒng)使用了靜態(tài)特征與動態(tài)特征,結(jié)合了傳統(tǒng)機(jī)器學(xué)習(xí)算法與深度學(xué)習(xí)算法。
我們將在本節(jié)中介紹分類系統(tǒng)的實(shí)現(xiàn)細(xì)節(jié),且通過實(shí)驗(yàn)評估其效果。為了實(shí)現(xiàn)系統(tǒng)中基于LSTM的時間序列分析模塊,我們使用了tensorflow,一套開源的機(jī)器學(xué)習(xí)軟件庫。我們對比了一些經(jīng)典的機(jī)器學(xué)習(xí)算法,包括C4.5決策樹[18]、隨機(jī)森林[19]、支持向量機(jī)[20]、樸素貝葉斯[21]和XGBoost。我們的分類目標(biāo)包括惡意賬號檢測、高影響力用戶發(fā)現(xiàn)及會員用戶發(fā)現(xiàn)。
(1) 惡意賬號與正常賬號分類 陌陌的用戶主頁詳情API中有“deny code”字段,若該字段設(shè)為1,則主頁被瀏覽時,上方會出現(xiàn)提示“賬號可能存在異常,請謹(jǐn)慎交談”。另一類惡意賬號由于多次進(jìn)行垃圾評論,其所有的評論內(nèi)容被置為“該用戶被多人舉報,可能存在異?!?。數(shù)據(jù)集中,惡意賬號共有1 459 697個,占總數(shù)的4.6%。我們隨機(jī)選擇10 000個惡意賬號與10 000個正常賬號,取其中70%作為訓(xùn)練集,另30%作為測試集。
(2) 高影響力用戶與一般用戶分類 我們使用PageRank量化用戶的影響力,事實(shí)上,PageRank已經(jīng)被廣泛用于衡量影響力。我們根據(jù)評論圖譜,計算每個用戶的PageRank并由高到低排序,取前1%作為高影響力用戶,其余用戶為一般用戶。數(shù)據(jù)集中,共有327 000用戶被標(biāo)記為高影響力用戶。我們隨機(jī)選擇10 000高影響力用戶與10 000一般用戶并選擇其中70%作為訓(xùn)練集,其余為測試集。
(3) 會員用戶與普通用戶分類 會員用戶作為付費(fèi)用戶的代表,在數(shù)據(jù)集中占7%。同樣地,我們隨機(jī)選擇10 000會員用戶與10 000普通用戶,并取其中70%作為訓(xùn)練集,其余為測試集。
我們使用查準(zhǔn)率、查全率和F1值衡量分類效果。以惡意賬號檢測為例,查準(zhǔn)率為算法正確分類出的惡意賬號數(shù)占算法分類出的惡意賬號數(shù)的比例,查全率為算法正確分類出的惡意賬號數(shù)占總惡意賬號數(shù)的比例,F(xiàn)1值為兩者的調(diào)和平均。對于每種算法,我們使用網(wǎng)格搜索法找到最適合的參數(shù)。
首先對比了不同的機(jī)器學(xué)習(xí)算法的分類效果,表2-表4展示了3種不同的分類目標(biāo)分別使用不同傳統(tǒng)機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)自定義分類器的分類結(jié)果??梢钥闯?,對于不同的分類目標(biāo),XGBoost總能取得最好的效果。在表2中,惡意賬號檢測的F1值可以達(dá)到0.918,在表3中,高影響力用戶發(fā)現(xiàn)的F1值可以高達(dá)0.970,在表4中,會員用戶發(fā)現(xiàn)的F1值可以達(dá)到0.872。
表2 惡意賬號檢測分類結(jié)果
表3 高影響力用戶發(fā)現(xiàn)分類結(jié)果
表4 會員用戶發(fā)現(xiàn)分類結(jié)果
為了評估各特征集合對分類結(jié)果的貢獻(xiàn),我們對于不同的分類目標(biāo),分別使用的一個或多個不同特征集進(jìn)行分類。首先使用全部特征集分類,然后每次分別移除一個特征集,保留除該特征集外的其余特征集,得到缺失某個特征集的分類效果。接著,每次僅使用一個特征集分類,得到使用單個特征集的分類效果。實(shí)驗(yàn)結(jié)果分別展示在表5-表7中。對于惡意賬號檢測,移除了動態(tài)特征后F1值下降最多,且僅使用動態(tài)特征本身時分類效果也是相對最高的,F(xiàn)1值達(dá)到0.845。因此,動態(tài)特征對于惡意賬號檢測至關(guān)重要,各特征集的重要程度由大到小依次為動態(tài)特征>發(fā)帖特征>UGC特征>人口學(xué)特征>評論特征>社會學(xué)特征??梢钥闯?,惡意賬號與正常賬號的發(fā)帖行為有著較大差別。對于高影響力用戶發(fā)現(xiàn),移除動態(tài)特征后F1值下降最多,在僅使用一個特征集的條件下,使用動態(tài)特征的效果最好。因此動態(tài)特征對于高影響力用戶發(fā)現(xiàn)同樣是最重要的,各特征集重要程度依次為動態(tài)特征>社會學(xué)特征>評論特征>發(fā)帖特征>UGC特征>人口學(xué)特征。與惡意賬號檢測不同的是,社會學(xué)特征與評論特征對于高影響力用戶發(fā)現(xiàn)較為重要。對于會員用戶發(fā)現(xiàn),移除人口學(xué)特征后F1值下降最多,人口學(xué)特征與UGC特征均比動態(tài)特征重要,各特征集重要程度依次為人口學(xué)特征>UGC特征>動態(tài)特征>發(fā)帖特征>評論特征>社會學(xué)特征。這表明人口學(xué)特征和UGC特征與該用戶是否是會員用戶最為相關(guān)。事實(shí)上,在陌陌中,會員用戶在發(fā)帖頁擁有獨(dú)有的表情和氣泡,這可能會鼓勵會員用戶發(fā)更多帖。
表5 惡意賬號檢測各特征子集貢獻(xiàn)分析
表6 高影響力用戶發(fā)現(xiàn)各特征子集貢獻(xiàn)分析
表7 會員用戶發(fā)現(xiàn)各特征子集貢獻(xiàn)分析
本文研究了移動社交網(wǎng)絡(luò)中的用戶分類問題,基于深度學(xué)習(xí)技術(shù),分析了不同類別用戶行為模式的差異。本文實(shí)現(xiàn)的分類系統(tǒng)經(jīng)過陌陌真實(shí)數(shù)據(jù)的驗(yàn)證,在不同的分類目標(biāo)上均取得了較好的效果。由于本文使用的數(shù)據(jù)均來自公開數(shù)據(jù),本文提出的分類方法不僅適用于移動社交網(wǎng)絡(luò)服務(wù)提供商,其他的三方應(yīng)用提供商亦可適用。
我們的研究中尚有不足之處。由于陌陌的數(shù)據(jù)已有標(biāo)簽,我們可以免去人工標(biāo)定數(shù)據(jù)的麻煩,所以本文僅使用陌陌數(shù)據(jù)驗(yàn)證效果。本文的研究可以拓展到其他社交網(wǎng)絡(luò)及更多分類目標(biāo)。同時,我們將進(jìn)一步挖掘用戶數(shù)據(jù)中的文本、圖片和視頻信息,以期在分類效果上達(dá)到新的高度。