湯智偉,明 楊,費(fèi)高雷,翟學(xué)萌,胡光岷
(電子科技大學(xué) 信息與通信工程學(xué)院,四川 成都 611731)
隨著社交媒體的興起,用戶賬號(hào)的分類成為了研究者關(guān)注的問(wèn)題。這涉及檢測(cè)異常賬號(hào)和識(shí)別相關(guān)主題賬號(hào)。傳統(tǒng)方法主要從賬號(hào)文本信息或社交關(guān)系中提取特征,但存在特征單一和缺乏融合的問(wèn)題[1]。
為了更充分挖掘數(shù)據(jù)信息[2],多模態(tài)學(xué)習(xí)嶄露頭角。多模態(tài)學(xué)習(xí)充分利用不同信息類型之間的相關(guān)性與互補(bǔ)性,提供更全面的特征表示[3]。多模態(tài)融合有兩大優(yōu)點(diǎn):模態(tài)之間互補(bǔ)相關(guān)[4],且系統(tǒng)具備強(qiáng)容錯(cuò)性。然而,在社交媒體賬號(hào)分類領(lǐng)域,多模態(tài)研究相對(duì)較少。
本文提出了一種多模態(tài)特征融合的社交媒體賬號(hào)分類方法。在特征提取階段,綜合考慮了賬號(hào)屬性、文本和社交關(guān)系等多模態(tài)信息。在融合過(guò)程中,采用張量方法將這些多模態(tài)特征整合,以張量分解降低數(shù)據(jù)復(fù)雜性。多模態(tài)特征融合有助于捕捉各模態(tài)之間的聯(lián)系,提高賬號(hào)分類準(zhǔn)確性和模型泛化性。
社交媒體用戶賬號(hào)分類的關(guān)鍵在于賬號(hào)特征表示和分類方法。特征表示涉及從原始信息中選取代表性特征,通常分為基于賬號(hào)信息和基于社交關(guān)系兩種方式。
基于賬號(hào)信息的表示可分為兩類:自身屬性和文本信息提取。對(duì)于垃圾賬號(hào),Krishnamurthy等[5]使用關(guān)注與被關(guān)注比例分類賬號(hào);Wang等[6]提取好友數(shù)、粉絲數(shù)特征并使用貝葉斯分類器;Mccord等[7]提取文本長(zhǎng)度、關(guān)鍵詞、活躍時(shí)間分布比例進(jìn)行分類。對(duì)于主題賬號(hào),Rao等[8]使用習(xí)慣用詞、標(biāo)點(diǎn)符號(hào)、表情符號(hào)等特征,結(jié)合n-gram模型和支持向量機(jī)分類;Vicente等[9]通過(guò)分析Twitter賬號(hào)昵稱提取特征,準(zhǔn)確預(yù)測(cè)性別。
基于社交關(guān)系的表示將賬號(hào)看作節(jié)點(diǎn),交互關(guān)系作為邊,構(gòu)建社交網(wǎng)絡(luò)圖。Pennacchiotti等[10]提取屬性、行為、文本和社交網(wǎng)絡(luò)特征分類政治傾向、種族和企業(yè)粉絲。Campbell等[11]則構(gòu)建帶權(quán)混合圖分類普通和名人賬號(hào),使用PageRank算法提取特征。
分類方法主要基于機(jī)器學(xué)習(xí),包括傳統(tǒng)方法如樸素貝葉斯、邏輯回歸、支持向量機(jī),以及深度學(xué)習(xí)方法。深度學(xué)習(xí)通過(guò)自動(dòng)學(xué)習(xí)特征表示提高分類性能。Liu等[12]使用深度學(xué)習(xí)分類賬號(hào)地理位置。Kipf等[13]提出圖卷積神經(jīng)網(wǎng)絡(luò)(GCN)處理社交網(wǎng)絡(luò)數(shù)據(jù)。Zhang等[14]融合文本特征使用集成的長(zhǎng)短期記憶網(wǎng)絡(luò)進(jìn)行社交媒體賬號(hào)分類。Rahimi等[15]基于GCN提出半監(jiān)督地理定位方法。
考慮數(shù)據(jù)復(fù)雜性,本文建議結(jié)合賬號(hào)信息、交互關(guān)系信息和文本信息構(gòu)建異質(zhì)網(wǎng)絡(luò),提高分類準(zhǔn)確性。
在基于多模態(tài)特征融合的賬號(hào)分類方法的具體實(shí)現(xiàn)中,整體流程主要分為文本預(yù)處理、特征表示、張量融合、張量分解、分類五步。其中,文本預(yù)處理和特征表示兩個(gè)模塊構(gòu)成了多模態(tài)特征提取部分;張量融合和張量分解兩個(gè)模塊構(gòu)成了多模態(tài)特征融合部分。圖1是基于多模態(tài)特征融合的賬號(hào)分類模型框架圖。
文本預(yù)處理是對(duì)文本信息進(jìn)行分詞、正則匹配、詞性標(biāo)注和命名實(shí)體識(shí)別的預(yù)處理流程。通過(guò)預(yù)處理操作可以得到本文需要的實(shí)體信息。特征表示是從賬號(hào)社交模態(tài)、屬性模態(tài)和文本模態(tài)三方面進(jìn)行賬號(hào)的特征表示。其中,社交模態(tài)是基于賬號(hào)關(guān)注與被關(guān)注的交互信息,屬性模態(tài)是基于賬號(hào)填寫的個(gè)人信息,文本模態(tài)是基于賬號(hào)發(fā)布的文本。張量融合模塊是將提取到的三個(gè)模態(tài)特征進(jìn)行融合,構(gòu)建出每個(gè)賬號(hào)的特征張量。由于原始特征張量維度過(guò)大,存在著計(jì)算復(fù)雜、存儲(chǔ)量大等問(wèn)題,因此使用張量分解的方法對(duì)原始特征張量進(jìn)行分解降維。最后,將分解得到的特征張量按照張量的三個(gè)模式展開(kāi),得到三個(gè)不同的特征向量,并分別輸入分類器中,采用投票法得到最終的分類結(jié)果。
多模態(tài)特征提取主要是從賬號(hào)和賬號(hào)的文本內(nèi)容中提取能夠描述賬號(hào)類別的信息,例如:賬號(hào)自身屬性、文本以及賬號(hào)社交關(guān)系等。社交媒體平臺(tái)由于字?jǐn)?shù)限制,發(fā)布的文本中通常含有大量的縮寫詞、URL鏈接、表情符號(hào)等,因此在提取特征前,需要對(duì)這些文本進(jìn)行預(yù)處理。
3.1.1 文本預(yù)處理
文本預(yù)處理是指使用自然語(yǔ)言處理的方法對(duì)社交媒體數(shù)據(jù)中的文本數(shù)據(jù)進(jìn)行分詞、去噪、詞性標(biāo)注和命名實(shí)體識(shí)別。由于文本中既有很多有用的信息,比如實(shí)體信息,又存在著許多表達(dá)不規(guī)范的地方,因此需要對(duì)文本進(jìn)行預(yù)處理操作。
3.1.2 特征表示
本文主要從Hashtag(賬號(hào)文本模態(tài))、命名實(shí)體NER(賬號(hào)屬性模態(tài))以及賬號(hào)(賬號(hào)社交模態(tài))三個(gè)模態(tài)進(jìn)行特征的表示。
Hashtag和NER用于反映賬號(hào)的主題性和內(nèi)容描述。但要確定賬號(hào)是否屬于相同類別,需要考慮社交行為。通過(guò)觀察賬號(hào)的社交關(guān)系,可以補(bǔ)充文本和屬性信息的特征表示。
對(duì)于賬號(hào)特征,本文基于社交關(guān)系,使用關(guān)注列表和被關(guān)注列表來(lái)表示。每個(gè)賬號(hào)作為社交圖中的節(jié)點(diǎn),查看其關(guān)注和被關(guān)注列表?;ハ嚓P(guān)注是指存在于兩個(gè)賬號(hào)的關(guān)注和被關(guān)注列表中,將這類賬號(hào)放入互相關(guān)注列表。最終,通過(guò)互相關(guān)注列表建立賬號(hào)之間的社交關(guān)系圖。通過(guò)這種方式,可以更全面地了解賬號(hào)之間的相似性和社交互動(dòng),從而更準(zhǔn)確地進(jìn)行賬號(hào)分類。
通過(guò)賬號(hào)的社交關(guān)系圖,使用node2vec方法獲取賬號(hào)節(jié)點(diǎn)的特征向量。node2vec方法結(jié)合了廣度優(yōu)先搜索(BFS)和深度優(yōu)先搜索(DFS)的采樣策略,通過(guò)隨機(jī)游走來(lái)生成節(jié)點(diǎn)序列,然后利用處理詞向量的技巧對(duì)這些序列進(jìn)行建模,從而獲得賬號(hào)節(jié)點(diǎn)的特征向量。通過(guò)node2vec算法可以得到賬號(hào)節(jié)點(diǎn)之間潛在的信息,最終得到賬號(hào)的特征向量U=(k1,k2,…,km),其中m表示向量的維度。
對(duì)于Hashtag和命名實(shí)體NER而言,本文基于賬號(hào)的文本信息進(jìn)行關(guān)鍵詞的特征表示。對(duì)于Hashtag節(jié)點(diǎn),本文遍歷所有標(biāo)記的訓(xùn)練集賬號(hào)發(fā)布的文本,將Hashtag在文本中的出現(xiàn)次數(shù)進(jìn)行統(tǒng)計(jì)。
由于Hashtag數(shù)量極多,為了防止維度災(zāi)難,本文分別根據(jù)數(shù)據(jù)庫(kù)中字段count1、count0進(jìn)行從大到小的排序,選出數(shù)量最多且比另一個(gè)類別數(shù)量多的前50個(gè)Hashtag來(lái)構(gòu)成字典。例如,按照count1進(jìn)行排序時(shí),需要滿足count1>count0的條件。之所以要將另一個(gè)類別的數(shù)量也考慮進(jìn)來(lái)對(duì)比,是因?yàn)槲谋局袝?huì)出現(xiàn)一些中性的Hashtag。該類Hashtag由于在每一種類別中都會(huì)出現(xiàn),且在每種類別中出現(xiàn)的總次數(shù)差不多,因此,該類Hashtag不能對(duì)賬號(hào)的分類提供幫助,反而可能增加噪聲信息。因此,只有在某一類別中占比較多,且其余類別中占比較少的Hashtag才能體現(xiàn)出在某一類別中的關(guān)鍵性。
對(duì)于命名實(shí)體NER,本文也采取同樣的操作方式進(jìn)行特征表示。與Hashtag不同,命名實(shí)體NER是從賬號(hào)的屬性信息中的自我描述字段(description)進(jìn)行提取。自我描述模塊是賬號(hào)對(duì)自己進(jìn)行描述定義最為直接的一個(gè)板塊,有的賬號(hào)會(huì)在自我描述中直接寫出自己的興趣愛(ài)好,例如運(yùn)動(dòng)、寵物等。
Hashtag和NER經(jīng)過(guò)關(guān)鍵詞提取后分別將count1排名前50的詞和count0排名前50的詞以{詞語(yǔ):序號(hào)}的形式保存為一個(gè)100維的字典dict,其中,count1中的詞語(yǔ)序號(hào)為0~49,count0中的詞語(yǔ)序號(hào)為50~100。接著根據(jù)每個(gè)賬號(hào)的Hashtag和NER進(jìn)行特征表示,將Hashtag特征向量表示為H=(i1,i2,…,il),NER特征向量表示為N=(j1,j2,…,jl),其中l(wèi)表示向量的維度。
模態(tài)通常用來(lái)泛指某種類型的信息或者存儲(chǔ)信息的一種表示形式,多模態(tài)是指兩種或兩種以上的模態(tài)的各種形式組合。之所以需要對(duì)模態(tài)進(jìn)行融合,是因?yàn)椴煌B(tài)的側(cè)重點(diǎn)不一樣,因此不同模態(tài)之間會(huì)存在一些交叉情況,這種交叉情況中既有信息冗余,也有信息互補(bǔ),如果能合理地處理并利用好多模態(tài)信息,就能得到豐富的特征信息。
由于本文有賬號(hào)文本模態(tài)、賬號(hào)屬性模態(tài)以及賬號(hào)社交模態(tài)三個(gè)模態(tài)的特征,普通的一維向量不能很好地將三個(gè)維度的模態(tài)信息表示完整,因此,本文使用張量來(lái)表示模態(tài)特征。
由3.1節(jié)的特征提取,得到了每個(gè)賬號(hào)的三種模態(tài)特征,分別是基于社交關(guān)系的賬號(hào)模態(tài)U=(k1,k2,…,km),其中m表示向量的維度;基于賬號(hào)文本和賬號(hào)屬性的Hashtag模態(tài)H=(i1,i2,…,il)和NER模態(tài)N=(j1,j2,…,jl),其中l(wèi)表示向量的維度。每一種模態(tài)代表張量的一個(gè)維度,通過(guò)張量的Kronecker積相乘,構(gòu)建出新的三階張量:
X=U?H?N
(1)
Kronecker積也稱為直積或張量積,是一種用于組合兩個(gè)矩陣的數(shù)學(xué)運(yùn)算,給定一個(gè)大小為m1×m2的矩陣A,和一個(gè)大小為n1×n2的矩陣B,則矩陣A和矩陣B的Kronecker積如式(2)所示:
(2)
使用Kronecker積相乘構(gòu)建的三階張量X,不可避免地存在著數(shù)據(jù)量大、計(jì)算復(fù)雜等特點(diǎn),為了解決該問(wèn)題,本文采用張量分解的方式對(duì)原始張量進(jìn)行降維。張量分解是矩陣分解的高階泛化,矩陣分解是將矩陣拆解為多個(gè)矩陣的乘積,例如主成分分析(Principal Component Analysis,PCA)、奇異值分解(Singular Value Decomposition,SVD)等。在實(shí)際應(yīng)用中,可以通過(guò)矩陣分解達(dá)到降維處理、缺失值填充和隱性關(guān)系挖掘的目的。但由于現(xiàn)實(shí)問(wèn)題的復(fù)雜性和多樣性,很多問(wèn)題不能簡(jiǎn)單地只靠矩陣建模解決,因此科研工作者對(duì)張量進(jìn)行研究,在矩陣分解的理論基礎(chǔ)上又推廣出了多種張量分解的模型。本文使用Tucker分解來(lái)對(duì)張量進(jìn)行分解。
Tucker分解是把一個(gè)張量分解為一個(gè)核心張量(core tensor)和幾個(gè)因子矩陣。對(duì)于一個(gè)三階張量X∈Rl×m×n,Tucker分解的計(jì)算見(jiàn)式(3):
(3)
其中符號(hào)“°”表示的是矩陣的外積;“×k”則表示模式積,為高階張量與矩陣的乘積,計(jì)算公式如式(4)所示:
(4)
本文為了提高算法的泛化能力,不考慮特殊情況,因此采用Tucker分解的方式對(duì)賬號(hào)的特征張量進(jìn)行分解。Tucker分解的目的是對(duì)特征張量進(jìn)行降維,由式(3)可知,Tucker分解將原始三階張量轉(zhuǎn)變?yōu)橐粋€(gè)核心張量和三個(gè)因子矩陣的形式,降低了數(shù)據(jù)的存儲(chǔ)量。核心張量其實(shí)就是原始張量在保持自身結(jié)構(gòu)信息和屬性信息不變后降維得到的張量,即其低階近似表達(dá)。由式(3)可以得到核心張量的計(jì)算公式:
(5)
其中A、B、C分別是通過(guò)X對(duì)應(yīng)模式的奇異值分解得到的,奇異值分解的表達(dá)式如式(6)所示:
(6)
其中,Σk表示對(duì)角矩陣,奇異值(singular value)按照從大到小的順序依次存儲(chǔ)在對(duì)角矩陣中。奇異值類似于矩陣分解中的特征值,與奇異值對(duì)應(yīng)的是奇異向量。Uk和Vk分別代表X(k)的左奇異向量(left singular vector)和右奇異向量(right singular vector)。因子矩陣中的A、B、C對(duì)應(yīng)的就是左奇異向量,即A=U1,B=U2,C=U3。根據(jù)文獻(xiàn)[17]可知,在大部分情況下,前10%甚至1%的奇異值數(shù)據(jù)和幾乎等于所有的奇異值之和,因此通過(guò)使用最大的前r個(gè)奇異值和對(duì)應(yīng)的r個(gè)左奇異向量和右奇異向量相乘來(lái)達(dá)到對(duì)原始矩陣的降維。這樣的降維方式可以保留原始矩陣的信息,具體如式(7)所示:
(7)
其中,r要遠(yuǎn)遠(yuǎn)小于m或者n,稱為截?cái)嗟钠娈愔捣纸?truncated SVD)。
由于高階奇異值分解算法并不能保證得到一個(gè)較好的近似張量,但可以作為迭代交替最小二乘法的迭代起點(diǎn),因此本文先使用高階奇異值分解算法對(duì)賬號(hào)特征融合后的張量特征進(jìn)行一次張量分解運(yùn)算,再將分解后得到的結(jié)果作為迭代交替最小二乘法的輸入,并使用迭代交替最小二乘法來(lái)完成后續(xù)的Tucker分解過(guò)程。算法流程如圖2所示。
本文使用Twitter數(shù)據(jù)作為數(shù)據(jù)源。將Twitter賬號(hào)所發(fā)的文本稱為推文。賬號(hào)數(shù)據(jù)和推文數(shù)據(jù)都是通過(guò)Twitter官方提供的API接口采集得到的。通過(guò)一些主題關(guān)鍵詞從社交媒體中采集了56 283個(gè)賬號(hào),并隨機(jī)標(biāo)注2 000個(gè)賬號(hào),用于實(shí)現(xiàn)新疆賬號(hào)和非新疆賬號(hào)的二分類任務(wù)。其中,標(biāo)記的賬號(hào)中1 000個(gè)是新疆賬號(hào),另外1 000個(gè)是非新疆賬號(hào)。在這2 000個(gè)賬號(hào)中,訓(xùn)練集和測(cè)試集按照1∶1的比例進(jìn)行分配。
本文采用準(zhǔn)確率和F1值兩個(gè)指標(biāo)來(lái)對(duì)算法的性能進(jìn)行評(píng)估。準(zhǔn)確率是指分類正確的樣例在所有樣本中所占的比例。F1值是為了平衡精確率和召回率的影響,能更直觀全面地看出一個(gè)算法的性能好壞。
4.2.1 核心張量尺寸
當(dāng)使用截?cái)嗟腡ucker分解方法時(shí),需要預(yù)先設(shè)定好核心張量的尺寸。由于在現(xiàn)有方法中沒(méi)有確定核心張量的尺寸的標(biāo)準(zhǔn)方法,因此,本文決定使用張量的F-范數(shù)來(lái)作為衡量張量分解的性能評(píng)估指標(biāo)。F-范數(shù)是指所有元素絕對(duì)值的平方和,以三階張量為例,給定張量X∈Rl×m×n,則該張量的F-范數(shù)表達(dá)式如式(8):
(8)
本文的樣本集F-范數(shù)差S計(jì)算公式如式(9)所示:
(9)
其中,Xi表示第i個(gè)賬號(hào)的特征張量,X′i表示第i個(gè)賬號(hào)的特征張量經(jīng)張量分解后又還原得到的張量,N表示樣本數(shù)。
本文選取了不同大小的幾組核心張量尺寸,結(jié)果如表1所示。
表1 張量核心尺寸
表1數(shù)據(jù)可以表明,本文的分解方法確實(shí)有效,通過(guò)取前幾個(gè)最大的奇異值向量,可以很好地還原原始張量。同時(shí),從表中還可以看出,隨著核心張量的尺寸越接近原始張量,則對(duì)應(yīng)的F-范數(shù)差值也越小。為了避免過(guò)多的數(shù)據(jù)丟失,同時(shí)也為了減少數(shù)據(jù)的存儲(chǔ)、降低后續(xù)計(jì)算的復(fù)雜度,本文選擇的核心張量的尺寸為5×10×50。
4.2.2 多模態(tài)特征融合方法的有效性
為了證明本文提出的多模態(tài)特征融合方法的有效性,本文分別測(cè)試了單模態(tài)、雙模態(tài)以及三模態(tài)方法的分類效果。結(jié)果如圖3所示。
圖3 多模態(tài)分類性能對(duì)比圖
其中,NER表示只考慮NER特征作為賬號(hào)的特征向量,UU表示只考慮賬號(hào)的好友關(guān)系作為用戶的特征向量,Hashtag表示只考慮Hashtag特征作為賬號(hào)特征的單模態(tài)特征向量。NER-Hashtag表示只融合Hashtag和NER兩個(gè)模態(tài)信息的雙模態(tài)特征,Hashtag-UU和UU-NER也是同理。tensor fusion表示將這三種特征向量使用本文的方式進(jìn)行特征融合得到賬號(hào)的三模態(tài)特征向量。
從圖3中可以發(fā)現(xiàn),三模態(tài)的分類性能最好,其次是雙模態(tài)的分類性能,最差的是單模態(tài)的分類性能。這個(gè)結(jié)果是合理的,這是由于社交媒體數(shù)據(jù)含有多種信息,但社交媒體又不像傳統(tǒng)媒體那么嚴(yán)謹(jǐn),它的信息種類雖然多,但每種信息都具有不完整、模糊等特性,因此,單模態(tài)的分類性能較差。通過(guò)使用多模態(tài)特征融合的方式,可以更好地利用模態(tài)之間的相關(guān)性與互補(bǔ)性,達(dá)到異質(zhì)互補(bǔ)的效果。因此,融合后的雙模態(tài)分類性能要高于單模態(tài)的分類性能。隨著融合的模態(tài)數(shù)量增多,接收到的信息也越來(lái)越完整,因此,融合后的三模態(tài)分類性能要高于雙模態(tài)的分類性能,提高了賬號(hào)分類的準(zhǔn)確性。這也證明了本文提出的多模態(tài)特征融合方法的有效性。
4.2.3 張量融合方法的有效性
為了證明張量融合方法的有效性,本文分別測(cè)試了單獨(dú)模態(tài)、基于拼接融合和基于張量融合方法的分類效果。結(jié)果如圖4所示。
圖4 融合分類性能對(duì)比圖
其中,UU、NER、Hashtag與4.2.2節(jié)表示含義相同;fusion表示將Hashtag、NER、UU三種特征向量橫向拼接成一個(gè)大的長(zhǎng)向量然后輸入分類器進(jìn)行分類;tensor fusion表示將這三種特征向量通過(guò)張量的方式進(jìn)行融合得到賬號(hào)的特征向量。由圖4可見(jiàn),融合多信息的分類方法優(yōu)于單模態(tài)。在單模態(tài)特征中,基于賬號(hào)社交關(guān)系的UU特征最好,其次是基于賬號(hào)文本信息的Hashtag特征。UU特征表示賬號(hào)之間的共同話題,而Hashtag特征則基于賬號(hào)發(fā)布的文本內(nèi)容,可能包含多個(gè)主題,有時(shí)可能過(guò)于頻繁,影響分類效果。NER特征在單獨(dú)特征中表現(xiàn)最差,因?yàn)橛形刺顚憣傩缘馁~號(hào)。此外,基于張量融合的多模態(tài)融合方式優(yōu)于直接拼接特征。這是由于不同特征的維度不同,直接拼接可能導(dǎo)致某些特征主導(dǎo),忽略其他特征。張量融合充分利用每種信息。為了確保核心張量結(jié)構(gòu),對(duì)核心張量進(jìn)行不同模式的展開(kāi),然后使用投票法提高分類性能,證明了方法的有效性。
本文提出了一種基于多模態(tài)特征融合的賬號(hào)分類算法并給出了模型框架。在多模態(tài)特征提取階段,首先對(duì)文本進(jìn)行預(yù)處理,然后提取賬號(hào)屬性模態(tài)、賬號(hào)文本模態(tài)、賬號(hào)社交模態(tài)三種模態(tài)的特征向量。在多模態(tài)特征融合階段,對(duì)本文提取的三個(gè)模態(tài)特征進(jìn)行基于張量分解的多模態(tài)特征融合。接著本文使用機(jī)器學(xué)習(xí)的算法對(duì)賬號(hào)進(jìn)行分類,最后通過(guò)將本文的方法與傳統(tǒng)方法進(jìn)行對(duì)比,證明了本文方法的有效性。