本發(fā)明涉及web挖掘領(lǐng)域,尤其涉及基于用戶的關(guān)注關(guān)系的垃圾用戶或垃圾賬戶發(fā)現(xiàn)方法。
背景技術(shù):類Twitter的微博服務(wù)最近作為一個(gè)新的通信媒介得到迅速發(fā)展,據(jù)第29次中國(guó)互聯(lián)網(wǎng)報(bào)告統(tǒng)計(jì):截至2011年12月底,我國(guó)微博實(shí)際用戶數(shù)達(dá)到2.5億,較上一年底增長(zhǎng)了296.0%,網(wǎng)民使用率為48.7%。區(qū)別于其他類Facebook的社交網(wǎng)絡(luò)服務(wù),微博服務(wù)的社會(huì)網(wǎng)絡(luò)關(guān)系為單向的,用戶不需要其他用戶對(duì)其賦予權(quán)限就可以“關(guān)注”他們。例如,Twitter中社會(huì)網(wǎng)絡(luò)由關(guān)注關(guān)系形成,用戶關(guān)注的人稱為該用戶的好友或關(guān)注好友;關(guān)注某用戶的人稱為該用戶的粉絲,用戶發(fā)布的所有博文將出現(xiàn)在公共時(shí)間線上,該用戶所有粉絲的時(shí)間線上將顯示該用戶的所有消息。隨著微博服務(wù)的普及,存在大量以刺探隱私情報(bào)、商業(yè)推銷、推高用戶人氣等為目的的人工垃圾用戶。這些大量的垃圾用戶使得微博服務(wù)提供商的賬戶資源受到了沖擊,加大了管理賬戶的難度,提高了賬戶資源開發(fā)和管理成本。例如,大量的垃圾用戶使得微博服務(wù)提供商不得不花費(fèi)更多的硬件資源或人力成本來進(jìn)行賬戶管理。同時(shí),這些垃圾用戶的大量存在也對(duì)正常用戶的使用帶來了干擾。因此,一直以來,人們期望能夠發(fā)現(xiàn)微博中的垃圾用戶以便對(duì)其進(jìn)行合適的處理。傳統(tǒng)的微博中垃圾用戶發(fā)現(xiàn)方法主要基于用戶的顯式統(tǒng)計(jì)特征來進(jìn)行判斷,比如發(fā)帖規(guī)律、關(guān)注的好友數(shù)量與其粉絲數(shù)量比例、博文中提及(@userScreenName)其他用戶比例等。這些方法例如:在參考文獻(xiàn)1“ChuZ,GianvecchioS,WangH,etal.WhoistweetingonTwitter:human,bot,orcyborg?[C].Procofthe26thAnnualComputerSecurityApplicationsConference.ACM,2010:21-30.”中依靠Twitter中用戶發(fā)布博文的顯式統(tǒng)計(jì)特性區(qū)分垃圾機(jī)器人、類人機(jī)器人和正常用戶,利用 發(fā)帖規(guī)律、關(guān)注的好友數(shù)量與其粉絲數(shù)量比例、博文中提及(@userScreenName)其他用戶比例等識(shí)別垃圾用戶。在參考文獻(xiàn)2“McCordM,ChuahM.SpamDetectiononTwitterUsingTraditionalClassifiers[C].Procofthe8thInternationalConferenceonAutonomicandTrustedComputing.NJ:IEEE,2011:175-186.”中,利用用戶特征與博文特征設(shè)計(jì)分類器區(qū)分正常用戶與垃圾用戶,分類器采用貝葉斯分類方法。在參考文獻(xiàn)3“StringhiniG,KruegelC,VignaG.Detectingspammersonsocialnetworks[C].Procofthe26thAnnualComputerSecurityApplicationsConference.ACM,2010:1-9.”中分析了垃圾用戶的發(fā)帖行為,依靠顯式統(tǒng)計(jì)特性識(shí)別垃圾用戶和大規(guī)模垃圾用戶整體活動(dòng)。在參考文獻(xiàn)4“Thomas,K,Grier,C,Paxson,V,etal.SuspendedAccountsinRetrospect:AnAnalysisofTwitterSpam[C].Procofthe2011ACMSIGCOMMconferenceonInternetmeasurementconference.NewYork:ACM,2011:243-258.”中利用Twitter中暫停的賬號(hào)分析垃圾用戶特性。本文將使用上述傳統(tǒng)方法基于用戶的顯式統(tǒng)計(jì)特征所發(fā)現(xiàn)的垃圾用戶稱為顯式垃圾用戶。上述傳統(tǒng)方法確實(shí)能夠在一定程度上發(fā)現(xiàn)垃圾用戶,但是由于其算法較為粗糙(例如,僅考慮一些顯式統(tǒng)計(jì)特征),因此并不能提供概率上的高可靠性,例如,其可能遺漏大量垃圾用戶,或者,其可能將大量正常用戶誤判為垃圾用戶。特別是,隨著上述這些傳統(tǒng)垃圾用戶發(fā)現(xiàn)方法的使用,一些惡意制造垃圾用戶的人也相應(yīng)地采取了對(duì)策,使得垃圾用戶在顯式統(tǒng)計(jì)特征方面更加類似于正常用戶,例如,使得垃圾用戶同樣具有大量好友和粉絲,這導(dǎo)致了垃圾用戶特征的更加復(fù)雜化,也更加難于準(zhǔn)確地區(qū)分垃圾用戶和正常用戶。在本文中可以將此類在顯式統(tǒng)計(jì)特征方面比較類似于正常用戶的垃圾用戶稱為隱式垃圾用戶。因此,為了彌補(bǔ)傳統(tǒng)的垃圾用戶發(fā)現(xiàn)方法的不足,需要提供一種可以更準(zhǔn)確地發(fā)現(xiàn)微博中的垃圾用戶(特別是隱式垃圾用戶)的方法,以便使得微博服務(wù)提供商能夠?qū)@些垃圾用戶進(jìn)行相應(yīng)的處理,從而節(jié)省微博服務(wù)提供商用于賬戶管理的硬件資源或人力成本,同時(shí),也避免這些垃圾用戶對(duì)正常用戶的干擾。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明的一個(gè)方面涉及一種基于用戶的關(guān)注關(guān)系的垃圾用戶發(fā)現(xiàn)方法,其包括:獲取用戶以及用戶之間的關(guān)注關(guān)系;對(duì)于任一第一用戶,基于所述關(guān)注關(guān)系來統(tǒng)計(jì)所述第一用戶的局部三角形的數(shù)量,其中,所述局部三角形中的任意一個(gè)由所述第一用戶與另外兩個(gè)用戶構(gòu)成,并且其中,所述第一用戶關(guān)注所述另外兩個(gè)用戶中的每一個(gè),且在所述另外兩個(gè)用戶之間也存在關(guān)注關(guān)系;根據(jù)所述第一用戶的局部三角形的數(shù)量來計(jì)算所述第一用戶的局部三角形比例;以及至少部分地基于所述第一用戶的局部三角形比例來判斷所述第一用戶是否是垃圾用戶。優(yōu)選地,所述根據(jù)所述第一用戶的局部三角形的數(shù)量來計(jì)算所述第一用戶的局部三角形比例包括:根據(jù)所述第一用戶的局部三角形的數(shù)量以及在所述第一用戶與其所關(guān)注的其他用戶之間能夠形成的所述第一用戶的局部三角形的最大數(shù)量來計(jì)算所述第一用戶的局部三角形比例;或者,根據(jù)所述第一用戶的局部三角形的數(shù)量以及所述第一用戶關(guān)注的其他用戶的數(shù)量來計(jì)算所述第一用戶的局部三角形比例。優(yōu)選地,所述至少部分地基于所述第一用戶的局部三角形比例來判斷所述第一用戶是否是垃圾用戶包括:如果所述第一用戶的局部三角形比例低于預(yù)定閾值,則判斷所述第一用戶是垃圾用戶。優(yōu)選地,判斷所述第一用戶是否是垃圾用戶進(jìn)一步基于用戶之間的信任正向傳播過程和/或信任逆向傳播過程。優(yōu)選地,所述信任正向傳播過程包括:確定正常用戶種子節(jié)點(diǎn);確定所述正常用戶種子節(jié)點(diǎn)所直接關(guān)注或間接關(guān)注的所有節(jié)點(diǎn),其中,所述正常用戶種子節(jié)點(diǎn)所直接關(guān)注或間接關(guān)注的節(jié)點(diǎn)具有更高的概率是正常用戶;所述信任逆向傳播過程包括:確定垃圾用戶種子節(jié)點(diǎn);確定直接關(guān)注或間接關(guān)注所述垃圾用戶種子節(jié)點(diǎn)的所有節(jié)點(diǎn),其中,直接關(guān)注或間接關(guān)注所述垃圾用戶種子節(jié)點(diǎn)的節(jié)點(diǎn)具有更高的概率是垃圾用戶。本發(fā)明的另一個(gè)方面涉及一種基于用戶的關(guān)注關(guān)系的垃圾用戶發(fā)現(xiàn)設(shè)備,其包括:用于獲取用戶以及用戶之間的關(guān)注關(guān)系的裝置;用于對(duì)于任一第一用戶,基于所述關(guān)注關(guān)系來統(tǒng)計(jì)所述第一用戶的局部三角形的數(shù)量的裝置,其中,所述局部三角形中的任意一個(gè)由所述第一用戶與另外兩個(gè)用戶構(gòu)成,并且其中,所述第一用戶關(guān)注所述另外兩個(gè)用戶中的每一個(gè),且在所述另外兩個(gè)用戶之間也存在關(guān)注關(guān)系;用于根據(jù)所述第一用戶的局部三角形的數(shù)量來計(jì)算所述第一用戶的局部三角形比例的裝置;以及用于 至少部分地基于所述第一用戶的局部三角形比例來判斷所述第一用戶是否是垃圾用戶的裝置。優(yōu)選地,所述用于根據(jù)所述第一用戶的局部三角形的數(shù)量來計(jì)算所述第一用戶的局部三角形比例的裝置包括:用于根據(jù)所述第一用戶的局部三角形的數(shù)量以及在所述第一用戶與其所關(guān)注的其他用戶之間能夠形成的所述第一用戶的局部三角形的最大數(shù)量來計(jì)算所述第一用戶的局部三角形比例的裝置;或者,用于根據(jù)所述第一用戶的局部三角形的數(shù)量以及所述第一用戶關(guān)注的其他用戶的數(shù)量來計(jì)算所述第一用戶的局部三角形比例的裝置。優(yōu)選地,所述用于至少部分地基于所述第一用戶的局部三角形比例來判斷所述第一用戶是否是垃圾用戶的裝置包括:用于如果所述第一用戶的局部三角形比例低于預(yù)定閾值,則判斷所述第一用戶是垃圾用戶的裝置。優(yōu)選地,判斷所述第一用戶是否是垃圾用戶進(jìn)一步基于用戶之間的信任正向傳播過程和/或信任逆向傳播過程。優(yōu)選地,所述信任正向傳播過程包括:確定正常用戶種子節(jié)點(diǎn);確定所述正常用戶種子節(jié)點(diǎn)所直接關(guān)注或間接關(guān)注的所有節(jié)點(diǎn),其中,所述正常用戶種子節(jié)點(diǎn)所直接關(guān)注或間接關(guān)注的節(jié)點(diǎn)具有更高的概率是正常用戶;所述信任逆向傳播過程包括:確定垃圾用戶種子節(jié)點(diǎn);確定直接關(guān)注或間接關(guān)注所述垃圾用戶種子節(jié)點(diǎn)的所有節(jié)點(diǎn),其中,直接關(guān)注或間接關(guān)注所述垃圾用戶種子節(jié)點(diǎn)的節(jié)點(diǎn)具有更高的概率是垃圾用戶。附圖說明參考附圖詳細(xì)描述了本發(fā)明,應(yīng)當(dāng)理解,附圖以及相應(yīng)的描述應(yīng)當(dāng)被理解為是說明性的而非限制性的,其中:圖1示出了微博用戶的關(guān)注網(wǎng)絡(luò)的鏈接結(jié)構(gòu)的兩種不同表現(xiàn)形式,其中,圖1(a)示出了一個(gè)正常用戶A的關(guān)注網(wǎng)絡(luò)的鏈接結(jié)構(gòu),圖1(b)示出了一個(gè)典型的垃圾用戶B的關(guān)注網(wǎng)絡(luò)的鏈接結(jié)構(gòu);圖2示出了正常用戶與垃圾用戶的局部三角形比例的示例分布;圖3示出了根據(jù)本發(fā)明的一個(gè)示例性垃圾用戶發(fā)現(xiàn)方法;圖4示出了微博用戶有向網(wǎng)絡(luò)圖中兩個(gè)節(jié)點(diǎn)的3種關(guān)系;圖5示出了微博用戶形成局部三角形的3種方式;圖6示出了在一次實(shí)驗(yàn)中局部三角形比例為0的用戶的時(shí)間間隔Δt分 布。具體實(shí)施方式下面結(jié)合附圖以微博應(yīng)用作為示例來對(duì)本發(fā)明的優(yōu)選實(shí)施方式進(jìn)行詳細(xì)說明,但可以理解,本發(fā)明同樣適用于在用戶之間存在關(guān)注關(guān)系的其他網(wǎng)絡(luò)應(yīng)用。如人們所了解的,微博服務(wù)不僅表現(xiàn)為社交網(wǎng)絡(luò)功能,更傾向于表現(xiàn)為新聞媒體功能,用戶不僅可以通過微博服務(wù)來交友,而且每個(gè)用戶都可以成為新聞媒體角色來發(fā)布信息。由此推斷,正常用戶在使用微博服務(wù)時(shí)通常會(huì)表現(xiàn)出兩種行為:1)發(fā)布信息;2)通過微博服務(wù)交友,以尋找更有價(jià)值的信息。統(tǒng)計(jì)數(shù)據(jù)表明,微博中的大部分正常用戶(約90%)會(huì)根據(jù)其目前的好友來尋找新的好友,從而導(dǎo)致用戶與其好友形成局部三角形。例如,在圖1(a)中示出了一個(gè)正常用戶A的關(guān)注網(wǎng)絡(luò)的鏈接結(jié)構(gòu),其中,在用戶A、c、d之間、在用戶A、e、f之間、以及在用戶A、g、h之間都形成了局部三角形。以在用戶A、e、f之間形成的局部三角形為例,其形成過程可能如下:用戶A首先關(guān)注了用戶e(即,e是A的好友,A是e的粉絲),然后用戶A發(fā)現(xiàn)用戶e關(guān)注了用戶f,從而用戶A可能相應(yīng)地關(guān)注用戶f使得用戶f也成為其好友;或者,用戶A首先關(guān)注了用戶f,然后用戶A發(fā)現(xiàn)用戶f的粉絲中包括用戶e,從而用戶A可能相應(yīng)地關(guān)注用戶e使得用戶e也成為其好友。從上可以看出,正常用戶會(huì)依靠2跳(2-hops)關(guān)系尋找更有價(jià)值的好友,最終形成在三個(gè)用戶之間的局部三角形。但微博中的垃圾用戶通常不具有較多的好友或粉絲,或者雖然具有一些好友或粉絲,也只是沒有目的、隨意地關(guān)注其他好友,而很少會(huì)主動(dòng)地根據(jù)2跳(2-hops)關(guān)系尋找更有價(jià)值的好友。在圖1(b)中示出了一個(gè)典型的垃圾用戶B的關(guān)注網(wǎng)絡(luò)的鏈接結(jié)構(gòu),其可能只是在創(chuàng)建時(shí)隨意地關(guān)注了一些好友,但并未進(jìn)而根據(jù)好友來尋找新的好友。為了進(jìn)一步對(duì)上述推論進(jìn)行驗(yàn)證,可以針對(duì)微博中的顯式垃圾用戶(或者已確認(rèn)的垃圾用戶)樣本與正常用戶樣本分別統(tǒng)計(jì)局部三角形比例分布。圖2示出了所進(jìn)行的一次統(tǒng)計(jì)的結(jié)果,其表明70%以上的垃圾用戶的局部三角形比例分布在[0,0.1]之間,說明垃圾用戶通常以很低的概率根據(jù)2跳(2-hops)關(guān)系交友,而約80%的正常用戶的局部三角形比例分布 在[0.1,0.5]之間,說明正常用戶經(jīng)常會(huì)根據(jù)2跳(2-hops)關(guān)系交友。因此,在垃圾用戶與正常用戶的局部三角形比例之間存在明顯的差異性,垃圾用戶相對(duì)于正常用戶以更低的概率通過2跳(2-hops)關(guān)系交友。對(duì)于上文提到的局部三角形比例,其通常正比于用戶的局部三角形的數(shù)量。在下文的實(shí)施例中會(huì)給出局部三角形比例的一個(gè)示例性的定義或計(jì)算公式,但該局部三角形比例的定義或計(jì)算公式可以根據(jù)實(shí)際情況進(jìn)行選取或調(diào)整,并不局限于本文實(shí)施例中示出的情形。上文的統(tǒng)計(jì)數(shù)據(jù)和實(shí)驗(yàn)結(jié)果表明基于或部分地基于用戶的局部三角形比例能夠更為準(zhǔn)確地區(qū)分正常用戶與垃圾用戶。下文參考圖3描述了本發(fā)明的一個(gè)示例性垃圾用戶發(fā)現(xiàn)方法。在步驟301,獲取用戶以及用戶之間的關(guān)注關(guān)系。為了獲取用戶的局部三角形比例,需要首先獲得用戶的局部三角形數(shù)量。可以通過提取微博用戶以及用戶之間的關(guān)注關(guān)系來計(jì)算用戶的局部三角形數(shù)量,優(yōu)選地,可以將用戶以及用戶之間的關(guān)注關(guān)系抽象為有向網(wǎng)絡(luò)圖來進(jìn)行上述計(jì)算。例如,對(duì)于微博用戶所構(gòu)成的網(wǎng)絡(luò),可以構(gòu)造有向網(wǎng)絡(luò)圖Gd=(Vd,Ed),其中Vd表示該有向網(wǎng)絡(luò)圖Gd中的節(jié)點(diǎn)集合(也即用戶或賬戶集合),Ed表示該有向網(wǎng)絡(luò)圖Gd中的各節(jié)點(diǎn)之間的有向邊集合,其代表用戶之間的關(guān)注關(guān)系。對(duì)于該有向網(wǎng)絡(luò)圖中的兩個(gè)示例節(jié)點(diǎn)u和v,存在圖4所示的3種關(guān)系(未考慮u和v之間不存在邊的關(guān)系),具體地,圖4(a)表示v為u的關(guān)注好友;圖4(b)表示v為u的粉絲;圖4(c)表示u和v為互粉朋友。在步驟302,對(duì)于任一第一用戶,基于所述關(guān)注關(guān)系來統(tǒng)計(jì)該第一用戶的局部三角形的數(shù)量,其中,所述局部三角形中的任意一個(gè)由該第一用戶與另外兩個(gè)用戶構(gòu)成,并且其中,該第一用戶關(guān)注所述另外兩個(gè)用戶中的每一個(gè),且在所述另外兩個(gè)用戶之間也存在關(guān)注關(guān)系。具體地,對(duì)用戶的局部三角形數(shù)量進(jìn)行統(tǒng)計(jì)主要是判斷該用戶通過2跳關(guān)系進(jìn)行交友的情況。令用戶v為用戶u的關(guān)注好友,則用戶u可以根據(jù)用戶v的關(guān)注好友來交友,也可以根據(jù)用戶v的粉絲來交友,同時(shí)也可以根據(jù)用戶v的互粉朋友來交友。參見圖5所示,在圖5的(a)中,用戶u將用戶v的一個(gè)關(guān)注好友w作為其關(guān)注好友,在圖5的(b)中,用戶u將用戶v的一個(gè)粉絲w作為其關(guān)注好友,在圖5的(c)中,用戶u將用戶v的一個(gè)互粉朋友w作為其關(guān)注好友。圖5中所示的三種類型即為 關(guān)于用戶u的局部三角形的各種可能類型。因此,可以看出,用戶u的局部三角形由用戶u以及其所關(guān)注的另外兩個(gè)用戶v和w(也即,該用戶u的兩個(gè)好友v和w)構(gòu)成,且在所述兩個(gè)用戶v和w之間也存在關(guān)注關(guān)系,例如,用戶v關(guān)注用戶w,或者用戶w關(guān)注用戶v,或者用戶v和w互相關(guān)注。對(duì)于由用戶u、v和w構(gòu)成的有向網(wǎng)絡(luò)圖,通過考慮圖5所示的三種類型的局部三角形,可以將關(guān)于用戶u的局部三角形數(shù)量定義為如下:T(u)=|{evw∈Ed,euv∈Ed,euw∈Ed}|+|{ewv∈Ed,euv∈Ed,euw∈Ed}|-|{evwwv∈Ed,euv∈Ed,euw∈Ed}|其中,euv表示用戶u關(guān)注用戶v,euw表示用戶u關(guān)注用戶w,evw表示用戶v關(guān)注用戶w,ewv表示用戶w關(guān)注用戶v,evwwv表示用戶v與w之間互相關(guān)注從而形成互粉關(guān)系(等同于“evw且ewv”),Ed表示該有向網(wǎng)絡(luò)圖中的各節(jié)點(diǎn)之間的有向邊集合??梢钥闯觯瑋{evw∈Ed,euv∈Ed,euw∈Ed}|考慮的是圖5(a)或圖5(c)所示類型的局部三角形,|{ewv∈Ed,euv∈Ed,euw∈Ed}|考慮的是圖5(b)或圖5(c)所示類型的局部三角形,而|{evwwv∈Ed,euv∈Ed,euw∈Ed}|考慮的是圖5(c)所示類型的局部三角形,因?yàn)槠湓谇懊嬉呀?jīng)被重復(fù)計(jì)算,因此需要被減去。上文示出了對(duì)于三個(gè)用戶如何來計(jì)算其中的用戶u的局部三角形數(shù)量的方法。下面將該方法擴(kuò)展到由所有微博用戶構(gòu)成的有向網(wǎng)絡(luò)圖Gd的情況,其將有向網(wǎng)絡(luò)圖的局部三角形數(shù)量統(tǒng)計(jì)轉(zhuǎn)換為了集合運(yùn)算。具體地,對(duì)于有向網(wǎng)絡(luò)圖Gd=(Vd,Ed)中的某一用戶u,可以使用Fr(u)來表示該用戶u所有的關(guān)注好友的集合,即Fr(u)={w∈Vd:euw∈Ed}。對(duì)于用戶u的任一關(guān)注好友v,相應(yīng)地,可以使用Fr(v)來表示該用戶v所有的關(guān)注好友的集合,即Fr(v)={w∈Vd:evw∈Ed}。另外,可以進(jìn)一步使用Fo(v)={w∈Vd:ewv∈Ed}來表示用戶v的所有粉絲的集合,使用F(v)={w∈Vd:ewv∈Edandevw∈Ed}來表示用戶v的所有互粉好友的集合。這樣的話,可以將有向網(wǎng)絡(luò)圖Gd=(Vd,Ed)中的節(jié)點(diǎn)u的所有局部三角形的數(shù)量計(jì)算為:上述公式中的|Fr(u)∩Fr(v)|考慮的是圖5(a)或圖5(c)所示類型的局部三角形,|Fr(u)∩Fo(v)|考慮的是圖5(b)或圖5(c)所示類型的局部三角形,|Fr(u)∩F(v)|考慮的是圖5(c)所示類型的局部三角形。通過上述公式,將有向網(wǎng)絡(luò)圖中的用戶的局部三角形數(shù)量統(tǒng)計(jì)轉(zhuǎn)換為了3個(gè)集合的交運(yùn)算。實(shí)現(xiàn)上述公式的一個(gè)示例性的具體算法如下所示,其中,兩集合的交集運(yùn)算需要迭代m次,同時(shí)針對(duì)每對(duì)關(guān)系的兩組節(jié)點(diǎn),計(jì)算其中一個(gè)節(jié)點(diǎn)的好友集合與另外一個(gè)節(jié)點(diǎn)的好友、粉絲、互粉朋友集合的交集數(shù)量,即每對(duì)關(guān)系都需要3次交集運(yùn)算,所以整個(gè)算法時(shí)間開銷為O(m|E|)。在通過步驟302獲得了任一第一用戶的局部三角形的數(shù)量之后,可以在步驟303,根據(jù)該第一用戶的局部三角形的數(shù)量來計(jì)算該第一用戶的局部三角形比例。例如,對(duì)于給定的用戶u,如果已經(jīng)計(jì)算出了該用戶u的局部三角形數(shù)量為NTri,并且知道該用戶u的所有的關(guān)注好友的數(shù)量為Nfr,則該用戶u的局部三角形比例TRatio可以被定義為如下:其中表示用戶u與其關(guān)注的所有好友能夠形成的用戶u的局部三角形的最大數(shù)量,即:然后,在步驟304,可以至少部分地基于該第一用戶的局部三角形比例來判斷其是否是垃圾用戶。例如,通過使用所獲得的用戶u的局部三角形比例TRatio,可以對(duì)用戶u是否是垃圾用戶做出判斷。需要了解的是,上文對(duì)局部三角形比例TRatio的定義僅僅是個(gè)示例,可以使用任何其他合理的定義。例如,可以基于某一用戶的局部三角形數(shù)量和該用戶的好友數(shù)量的比例來計(jì)算該局部三角形比例TRatio。另外,在一些實(shí)施例中,可以進(jìn)一步結(jié)合其他因素(例如用戶發(fā)表的博文數(shù)量、用戶的好友數(shù)量、用戶的粉絲數(shù)量等)來對(duì)用戶是否屬于垃圾用戶進(jìn)行綜合判斷。上文描述了通過計(jì)算用戶的局部三角形比例來對(duì)用戶是否屬于垃圾用戶進(jìn)行判斷的方法。為了進(jìn)一步提高判斷的準(zhǔn)確性和可靠性,在下文的實(shí)施例中,進(jìn)一步考慮了信任正向傳播模型和/或信任逆向傳播模型來判斷用戶是否屬于垃圾用戶。信任正向傳播模型和信任逆向傳播模型分別基于微博用戶中的如下兩個(gè)統(tǒng)計(jì)規(guī)律:1)正常用戶通常關(guān)注正常用戶;2)關(guān)注垃圾用戶的用戶通常為垃圾用戶。信任正向傳播首先根據(jù)用戶統(tǒng)計(jì)特征確認(rèn)部分正常用戶作為種子節(jié)點(diǎn)(例如,某些影響力較大的微博用戶可以被非??隙ǖ卮_認(rèn)為是正常用戶,從而可以作為種子節(jié)點(diǎn)),然后確定這些種子節(jié)點(diǎn)所關(guān)注的其他節(jié)點(diǎn),這些其他節(jié)點(diǎn)是種子節(jié)點(diǎn)直接傳播可達(dá)的節(jié)點(diǎn)集合,繼而確定這些其他節(jié)點(diǎn)所關(guān)注的另外的節(jié)點(diǎn),依此類推,直到不再會(huì)獲得新的傳播可達(dá)的節(jié)點(diǎn)。最終,便會(huì)獲得所有可以由種子節(jié)點(diǎn)傳播可達(dá)的節(jié)點(diǎn),也即,種子節(jié)點(diǎn)所直接或間接 關(guān)注的節(jié)點(diǎn)。這些由種子節(jié)點(diǎn)所直接或間接關(guān)注的節(jié)點(diǎn)被認(rèn)為具有更高的概率是正常用戶??梢酝ㄟ^各種模型或算法來獲得由種子節(jié)點(diǎn)傳播可達(dá)的節(jié)點(diǎn),在更為優(yōu)選的實(shí)施例中,還可以進(jìn)一步計(jì)算各個(gè)節(jié)點(diǎn)的正向得分值。例如,在一個(gè)實(shí)施例中,在確認(rèn)種子節(jié)點(diǎn)之后,可以根據(jù)隨機(jī)游走模型計(jì)算其他每個(gè)節(jié)點(diǎn)的正向得分值。為了保證轉(zhuǎn)移矩陣M的隨機(jī)性,剪枝掉所有不能由種子節(jié)點(diǎn)傳播可達(dá)的其他節(jié)點(diǎn),即保證每個(gè)節(jié)點(diǎn)都能夠由種子節(jié)點(diǎn)傳播可達(dá),從而剪枝算法轉(zhuǎn)換為種子節(jié)點(diǎn)擴(kuò)散算法。具體地,定義初始種子節(jié)點(diǎn)集合為Set0,種子節(jié)點(diǎn)傳播可達(dá)的節(jié)點(diǎn)集合為Setdone,迭代過程中正在處理的種子節(jié)點(diǎn)集合為Setseed,新增加的種子節(jié)點(diǎn)集合為Settemp,一種示例性的種子節(jié)點(diǎn)擴(kuò)散算法Seed_Diffusion如下所示。上述種子節(jié)點(diǎn)擴(kuò)散算法Seed_Diffusion為一個(gè)迭代算法,當(dāng)不再會(huì)獲得新的傳播可達(dá)的節(jié)點(diǎn)時(shí),迭代終止,最后算法得到所有由初始種子節(jié)點(diǎn) 傳播可達(dá)的其他節(jié)點(diǎn)集合Setdone,則有向網(wǎng)絡(luò)圖Gd=(Vd,Ed)中包含節(jié)點(diǎn)集合Setdone的子圖中每個(gè)節(jié)點(diǎn)的正向得分可以被計(jì)算為:其中Ts為子圖的轉(zhuǎn)移矩陣,α為隨機(jī)跳轉(zhuǎn)因子,為種子節(jié)點(diǎn)向量,上述公式轉(zhuǎn)換為綜合矩陣形式為:其中Ms為子圖中考慮跳轉(zhuǎn)因子的綜合矩陣,即:其中,e為單位向量。因?yàn)門s中除種子節(jié)點(diǎn)外,其他節(jié)點(diǎn)都可由種子節(jié)點(diǎn)傳播可達(dá),即肯定存在其他節(jié)點(diǎn)隨機(jī)指向該節(jié)點(diǎn);同時(shí)表示算法以概率(1-α)跳轉(zhuǎn)到種子節(jié)點(diǎn),即肯定存在其他節(jié)點(diǎn)隨機(jī)跳轉(zhuǎn)到種子節(jié)點(diǎn),所以剪枝掉所有不能由種子節(jié)點(diǎn)傳播可達(dá)的其他節(jié)點(diǎn)得到的綜合矩陣Ms為隨機(jī)性矩陣。在計(jì)算過程中,可以將具有不同統(tǒng)計(jì)特征的用戶的投票貢獻(xiàn)設(shè)定為不同,例如,根據(jù)用戶的統(tǒng)計(jì)特征,可將用戶分為5類:1)逼近正常用戶;2)疑似正常用戶;3)不確定用戶;4)疑似垃圾用戶;5)逼近垃圾用戶,上述5類用戶投票貢獻(xiàn)由大到小。令z(i)為每個(gè)用戶統(tǒng)計(jì)特征的投票貢獻(xiàn)值,且令節(jié)點(diǎn)集合Setdone中所有節(jié)點(diǎn)投票貢獻(xiàn)值z(mì)(i)為對(duì)角矩陣Z=diag(z),定義節(jié)點(diǎn)的正向得分AttriGoodRank如下:AttriGoodRank得分轉(zhuǎn)換為綜合矩陣形式為:其中H為考慮用戶統(tǒng)計(jì)特征投票貢獻(xiàn)值的綜合矩陣,即:因?qū)蔷仃嘮與子圖的轉(zhuǎn)移矩陣Ts的乘積僅僅以一定比例改變隨機(jī)投票的值,不會(huì)減少網(wǎng)絡(luò)中的鏈接關(guān)系,所以綜合矩陣H仍為隨機(jī)性矩陣,所以AttriGoodRank得分計(jì)算為一個(gè)各態(tài)遍歷的馬爾科夫過程。因此,給定一個(gè)初始的向量通過n次迭代,計(jì)算結(jié)果將會(huì)逐漸收斂。信任逆向傳播信任逆向傳播與信任正向傳播在原理上類似,只是其根據(jù)用戶統(tǒng)計(jì)特征確認(rèn)部分垃圾用戶作為種子節(jié)點(diǎn),另外,因?yàn)槠渌诘慕y(tǒng)計(jì)規(guī)律是“關(guān)注垃圾用戶的用戶通常為垃圾用戶”,因此其從節(jié)點(diǎn)向其粉絲方向進(jìn)行傳播,由所述垃圾用戶種子節(jié)點(diǎn)傳播可達(dá)的節(jié)點(diǎn)是直接關(guān)注或間接關(guān)注這些垃圾用戶種子節(jié)點(diǎn)的節(jié)點(diǎn)。同樣,在更為優(yōu)選的一個(gè)實(shí)施例中,可以根據(jù)隨機(jī)游走模型計(jì)算每個(gè)節(jié)點(diǎn)的逆向得分值。為了保證轉(zhuǎn)移矩陣的隨機(jī)性,同樣剪枝掉所有不能由垃圾用戶種子節(jié)點(diǎn)傳播可達(dá)的其他節(jié)點(diǎn),從而保證每個(gè)節(jié)點(diǎn)都能夠由垃圾用戶種子節(jié)點(diǎn)傳播可達(dá)。剪枝算法轉(zhuǎn)換為種子節(jié)點(diǎn)擴(kuò)散算法Seed_Diffusion,其與上文提到的信任正向傳播中使用的種子節(jié)點(diǎn)擴(kuò)散算法的不同之處在于:對(duì)迭代過程中正在處理的種子節(jié)點(diǎn)集合Setseed中的每個(gè)元素i,需要獲取元素i的所有粉絲節(jié)點(diǎn)followeri。算法最后得到由種子節(jié)點(diǎn)傳播可達(dá)的其他節(jié)點(diǎn)集合Setbad,則社會(huì)網(wǎng)絡(luò)圖Gd=(Vd,Ed)中包含節(jié)點(diǎn)集合Setbad的子圖中每個(gè)節(jié)點(diǎn)的逆向排名得分值可以被計(jì)算為:其中Mb為子圖中考慮跳轉(zhuǎn)因子的綜合矩陣,即:其中Tb為子圖的轉(zhuǎn)移矩陣,為種子節(jié)點(diǎn)向量,e為單位向量,同樣Mb為隨機(jī)性矩陣。在計(jì)算過程中,可以將具有不同統(tǒng)計(jì)特征的用戶的逆向投票貢獻(xiàn)設(shè)定為不同,例如,垃圾用戶投票貢獻(xiàn)最大,其次為不確定用戶,正常用戶投票貢獻(xiàn)最小。令x(i)為每個(gè)用戶統(tǒng)計(jì)特征的逆向傳播投票貢獻(xiàn)值,且令節(jié)點(diǎn)集合Setbad中所有節(jié)點(diǎn)逆向傳播的投票貢獻(xiàn)值x(i)為對(duì)角矩陣X=diag(x),本文定義節(jié)點(diǎn)的逆向得分AttriBadRank如下:AttriBadRank轉(zhuǎn)換為綜合矩陣形式為:其中B為考慮用戶統(tǒng)計(jì)特征逆向投票貢獻(xiàn)值的綜合矩陣,即:同樣可以證明綜合矩陣B為隨機(jī)性矩陣,所以AttriBadRank得分計(jì)算 為一個(gè)各態(tài)遍歷的馬爾科夫過程。因此,給定一個(gè)初始的向量通過n次迭代,計(jì)算結(jié)果將會(huì)逐漸收斂。實(shí)驗(yàn)結(jié)果在基于本發(fā)明的垃圾用戶發(fā)現(xiàn)方法的一次實(shí)驗(yàn)中,首先從20萬個(gè)用戶中提取出了局部三角形比例為0的3901個(gè)用戶,然后分析這些用戶的賬號(hào)創(chuàng)建時(shí)間(createTime)與發(fā)布最后一條博文時(shí)間(lastPostTime)的關(guān)系。具體地,令時(shí)間間隔(timeinterval)為:Δt=lastPostTime-createTime,則3901個(gè)用戶的時(shí)間間隔Δt分布如圖6所示。圖6的結(jié)果表明這些用戶大部份在賬號(hào)創(chuàng)建時(shí)發(fā)布少量博文后就從未發(fā)布博文,約59.4%的用戶在賬號(hào)創(chuàng)建1小時(shí)內(nèi)發(fā)布博文后從未發(fā)布博文,同時(shí)約83.7%的用戶在賬號(hào)創(chuàng)建24小時(shí)內(nèi)發(fā)布博文后從未發(fā)布博文。也就是說,這些用戶中的大部分在賬號(hào)創(chuàng)建時(shí)發(fā)布少量博文后就從未發(fā)布博文,同時(shí)也沒有依靠2跳(2-hops)關(guān)系尋找更有價(jià)值的好友,處于“完全非活躍”狀態(tài)。上述實(shí)驗(yàn)結(jié)果表明本申請(qǐng)的基于用戶關(guān)注關(guān)系的垃圾用戶發(fā)現(xiàn)方法是有效的。上文已經(jīng)對(duì)本發(fā)明的優(yōu)選實(shí)施方式進(jìn)行了詳細(xì)說明,需要注意的是,在優(yōu)選實(shí)施方式中針對(duì)微博應(yīng)用進(jìn)行了說明,但本領(lǐng)域技術(shù)人員可以理解,本文所述的方法可以應(yīng)用到微博之外的其他網(wǎng)絡(luò)應(yīng)用中。另外,本申請(qǐng)的具體實(shí)施方式部分提到的具體算法、公式、參數(shù)設(shè)置等等僅僅用于示例說明,并不用于限制本發(fā)明。本領(lǐng)域技術(shù)人員在知悉本發(fā)明的設(shè)計(jì)構(gòu)思和實(shí)質(zhì)精神的情況下,可以對(duì)上述算法、公式、參數(shù)等進(jìn)行合適的變形和替換,其仍屬于本申請(qǐng)的保護(hù)范圍。