趙曉樂,欒 杰,馮旭鵬,劉利軍,黃青松,3
1(昆明理工大學(xué) 信息工程與自動化學(xué)院,昆明650500)2(昆明理工大學(xué) 教育技術(shù)與網(wǎng)絡(luò)中心,昆明 650500)3(云南省計(jì)算機(jī)技術(shù)應(yīng)用重點(diǎn)實(shí)驗(yàn)室,昆明650500)
在互聯(lián)網(wǎng)快速發(fā)展的今天,社交網(wǎng)絡(luò)在人們生活中占據(jù)了很重要的位置.其中新浪微博作為基于社交關(guān)系進(jìn)行信息傳播的媒體平臺之一,以其發(fā)信息布門檻低,文本長度短,實(shí)時(shí)分享性以及互動性等特點(diǎn)吸引了大量的用戶注冊和使用[1].盡管微博擁有諸多優(yōu)點(diǎn),但是也存在著一個(gè)嚴(yán)重的問題,即由于微博本身的特性,它允許任何人在不透露自己真實(shí)身份的前提下,就可以表達(dá)自己的意見,這種匿名性鼓勵(lì)了有某種意圖的人會有針對性的發(fā)表言論[2].通常這類博文被稱作噪音博文,其中的廣告博文就是這類言論的代表,其特點(diǎn)是帶有營利性,由專業(yè)人士編寫,內(nèi)容分散,形式多種多樣,很難通過統(tǒng)計(jì)篩選的方法將其去除.隨著微博中的廣告數(shù)量日漸增多,產(chǎn)生了大量的低質(zhì)量或無用信息,直接導(dǎo)致了博文質(zhì)量的下降.微博中廣告的存在使得人們閱讀微博時(shí)不僅浪費(fèi)了大量的時(shí)間,同時(shí)也增加了挖掘博文中有用信息的難度.因此對微博博文中的廣告進(jìn)行識別,去除廣告噪音博文,對于改善博文質(zhì)量,挖掘博文中用的價(jià)值等信息都有重要意義.
微博充滿了各種各樣的博文,廣告博文屬于噪音博文的一種.目前國內(nèi)外對于噪音博文的定義形式與處理方法多種多樣,Castillo[3]認(rèn)為不可信的博文(Twtter)即謠言是噪音博文,需要設(shè)計(jì)方法進(jìn)行去除.對于不可信的噪音博文,高明霞[4]通過構(gòu)建基于信息融合的識別框架來識別該類噪音博文.Li[5]等基于機(jī)器學(xué)習(xí)算法提出兩種半監(jiān)督的方法應(yīng)用于大量未標(biāo)記數(shù)據(jù)來識別垃圾郵件.董雨辰[6]對新浪微博上的水軍發(fā)布的炒作博文進(jìn)行過濾,通過分析炒作微博的特性,提出基于SVM的炒作博文識別方法.Zhang[7]發(fā)現(xiàn)許多的商家為了擴(kuò)大商品的知名度在Twtter上發(fā)布許多帶有URL鏈接的廣告博文,Zhang對這些博文中涉及的推廣活動進(jìn)行分析,提出一個(gè)基于URL推廣目的相似度的推廣活動博文識別框架.
對于有專業(yè)人士編寫的有目的性的廣告博文,其內(nèi)容廣泛多變,難以通過統(tǒng)計(jì)篩選將其過濾.目前國內(nèi)外關(guān)于廣告博文的去除主要有以下幾種方法.王琳[8]將廣告微博和字符微博定義為噪音博文,并通過對廣告博文進(jìn)行分析,確定廣告博文擁有的特性,將各個(gè)特性值相加并設(shè)定閾值來過濾廣告博文.Anita[9]在經(jīng)過實(shí)驗(yàn)驗(yàn)證之后發(fā)現(xiàn)使用隨機(jī)森林分類的方法識別廣告博文效果最好.姚子瑜[10]在Zhang和Anita的基礎(chǔ)上將廣告博文和有獎營銷博文放在一起作為噪音博文,通過樸素貝葉斯和最大期望算法構(gòu)建一種半監(jiān)督的噪音博文識別模型,實(shí)驗(yàn)證明所提的模型要優(yōu)于樸素貝葉斯和支持向量機(jī)模型.高俊波等[11]使用文本數(shù)據(jù)作為特征,采用監(jiān)督學(xué)習(xí)的方式構(gòu)建SVM分類模型進(jìn)行廣告博文的識別;然而這種方式在建立模型未考慮博主社會關(guān)系方面的特征.因此,郭跇秀等[12]從博主角度出發(fā)定義特征,在原有的特征基礎(chǔ)上引入博主“主題”特征,實(shí)驗(yàn)證明在引入博主“主題”特征之后廣告博文識別模型準(zhǔn)確率有所提高.但上述方法在構(gòu)建模型時(shí)都沒有對特征進(jìn)行選擇,使用的特征或多或少存在著冗余的問題.張宇翔等[13]參考特征工程中現(xiàn)有的特征選擇方法(主要為機(jī)器學(xué)習(xí)方法)構(gòu)建自己的特征選擇方法,并將選擇后的特征用于構(gòu)建微博反垃圾模型,實(shí)驗(yàn)表明相比于方法的選擇,特征選擇對模型的識別效果更為重要.
對此,本文從另一個(gè)角度出發(fā),使用堆疊降噪自編碼機(jī)進(jìn)行特征選擇,提出一種基于SDA的廣告博文識別模型.一方面通過SDA對特征進(jìn)行降維處理,將原有特征編碼成另一種更低維度的特征表征,解決特征冗余的問題,提高了模型的識別率,另一方面使用深度學(xué)習(xí)技術(shù)對特征進(jìn)行選擇減輕了特征選擇的工作量,降低了應(yīng)用的難度.
首先通過訓(xùn)練將微博文本中的每個(gè)詞表征為K維實(shí)數(shù)值向量,通過計(jì)算詞與詞之間的距離來計(jì)算他們之間的語義相似度.然后根據(jù)詞頻用Huffman編碼,使得所有詞頻相似的詞隱藏層激活的內(nèi)容基本一致,出現(xiàn)頻率越高的詞語,他們激活的隱藏層數(shù)目越少,這樣有效的降低了計(jì)算的復(fù)雜度[14].其采用的模型有CBOW和Skip-Gram兩種.
CBOW模型的基本原理是通過已知當(dāng)前詞的上下文Context(w)對當(dāng)前詞w(t)進(jìn)行預(yù)測,其條件概率函數(shù)如下:
(1)
Skip-Gram模型的與CBOW模型相反,Skip-Gram模型的基本原理是通過已知當(dāng)前詞w(t)對當(dāng)前詞的上下文Context(w)進(jìn)行預(yù)測.其條件概率函數(shù)如下:
(2)
(3)
想要了解堆疊降噪自編碼機(jī)的原理首先理解其中的基本單元自編碼機(jī)的原理,自編碼機(jī)最早是由Hinton等人[15-17]提出,是一種無監(jiān)督的學(xué)習(xí)算法,主要由兩個(gè)部分組成,編碼和解碼.在整個(gè)過程中嘗試學(xué)習(xí)一個(gè)函數(shù)y使得輸出最大程度上復(fù)現(xiàn)輸入x,實(shí)現(xiàn)自編碼機(jī)學(xué)習(xí)出x→h→y的能力并且在幾乎不損失信息量的情況下將原始數(shù)據(jù)表達(dá)成另一種形式.基于這一原理便可以實(shí)現(xiàn)使用自編碼機(jī)對特征進(jìn)行壓縮,將高維特征轉(zhuǎn)化為更低維度的特征表征,以此達(dá)到特征選擇的目的.
降噪自編碼機(jī)是自編碼機(jī)的變種,由Vincent等人[18]于2010年提出,他認(rèn)為能將原始數(shù)據(jù)進(jìn)行編碼并通過解碼將其恢復(fù)的自編碼機(jī)并不一定是最好的,能夠?qū)⒂性胍舻脑紨?shù)據(jù)編碼并通過解碼將其恢復(fù)為真正的原始數(shù)據(jù)的自編碼機(jī)才是最好的.降噪自編碼機(jī)的結(jié)構(gòu)如圖1.
圖1 降噪自編碼機(jī)結(jié)構(gòu)圖Fig.1 Noise reduction autoencoders structure
堆疊降噪自編碼機(jī)(SDA)是在降噪自編碼機(jī)上的一種改進(jìn),這種改進(jìn)的目的是為了通過深層網(wǎng)絡(luò)學(xué)習(xí)出原始數(shù)據(jù)的多種表達(dá),每一層都以上一層的輸出作為輸入,借此找出最適合分類任務(wù)的表征.堆疊顧名思義其使用的編碼機(jī)不止一個(gè),其結(jié)構(gòu)如圖2.
圖2 堆疊降噪自編碼機(jī)結(jié)構(gòu)圖
Fig.2 Stack noise reduction autoencoders structure
其中DAE1表示的是降噪自編碼機(jī)單元,當(dāng)我們完成自編碼機(jī)的訓(xùn)練之后,其輸出z就沒有存在的必要了,因?yàn)閷ξ覀儊碚f最重要的是隱藏層的數(shù)據(jù),因此上圖中降噪自編碼機(jī)單元的輸出為h.堆疊降噪自編碼機(jī)的訓(xùn)練是逐層訓(xùn)練的,也就是說前一個(gè)單元訓(xùn)練完成之后將輸出傳遞給下一個(gè)單元,下一單元接受數(shù)據(jù)后才能開始訓(xùn)練,最終完成整個(gè)網(wǎng)絡(luò)的訓(xùn)練.
最大熵是在給定約束條件下,對未知情況不做任何假設(shè).這樣得到的概率分布越均勻,概率模型的熵越大,預(yù)測的風(fēng)險(xiǎn)就越小[19].在本文中,將微博文本特征向量放入最大熵分類中,得到該特征向量的博文識別模型.最大熵分類模型公式如下:
(4)
(5)
其中y為分類結(jié)果,x為評論特征,Zw(x)稱為規(guī)范化因子,wi是特征的權(quán)重,f(x,y)是特征函數(shù).
博文去噪的對象是無內(nèi)容的博文、無評論的博文、廣告博文.模型的總體框架如圖3所示,模型的輸入是采集到的微博文本數(shù)據(jù),輸出是微博文本的分類結(jié)果.
圖3 SDA廣告博文識別模型框架Fig.3 SDA advertisements post recognition model framework
在上述過程中,由于特征選擇方式的不同,廣告博文的去除方式也不同,分為如下三種方式:
1)基于微博文本特征向量的廣告博文識別模型:首先使用word2vec對微博文本進(jìn)行處理,將其轉(zhuǎn)化為文本向量,再對文本向量使用SDA進(jìn)行特征選擇,獲得基于微博文本的特征向量(FV1),將FV1放入最大熵分類中得到基于FV1的廣告博文識別模型M1.
2)基于人工定義特征向量的廣告博文識別模型:對噪音博文進(jìn)行分析定義特征,然后對定義的特征進(jìn)行抽取獲得人工定義的特征,將人工定義的特征作為SDA的輸入,進(jìn)行特征選擇,得到基于人工定義的特征向量(FV2).將FV2放入最大熵分類中得到基于FV2的廣告博文識別模型M2.
3)基于組合特征向量的廣告博文識別模型:將FV1和FV2放在一起進(jìn)行組合得到組合特征向量(FV3),將FV3放入最大熵分類中得到基于FV3的廣告博文識別模型M3.
依據(jù)分類結(jié)果篩選出最好的分類模型,依據(jù)此分類模型識別廣告博文.
文本特征一直都是廣告博文識別中特征工程的一個(gè)重要組成部分,先前研究對其處理的方式主要是通過對文本數(shù)據(jù)中出現(xiàn)的詞進(jìn)行編號,對每個(gè)詞計(jì)算其TFIDF值作為該特征的權(quán)重,依此來構(gòu)建文本特征向量.然而由于新浪微博將文本的字?jǐn)?shù)限制從原來的140字調(diào)整到了2000字,使得文本的特征詞也相應(yīng)的得到擴(kuò)大,而且其中存在著大量的同義詞,上下文依賴嚴(yán)重,因此難免會出現(xiàn)特征詞冗余的問題.
對此論文首先使用word2vec對文本進(jìn)行處理,借助word2vec在語義信息表征上的優(yōu)越性[20]把文本中的每個(gè)詞轉(zhuǎn)化為向量表示稱之為詞向量,再將獲得的詞向量進(jìn)行組合,得到文本向量.公式如下:
(6)
其中v(blog)i表示文本向量第j下標(biāo)所對應(yīng)的值,n為詞向量的維度,m為文本包含的詞數(shù),word2vecij表示第i個(gè)詞的詞向量下標(biāo)j所對應(yīng)的位置.
此外對博文進(jìn)行分析,可發(fā)現(xiàn)微博上的博文主要有兩種類型,一種是原創(chuàng)博文,另一種是博主轉(zhuǎn)發(fā)的博文.由于轉(zhuǎn)發(fā)的博文比原創(chuàng)博文多了一項(xiàng)轉(zhuǎn)發(fā)理由,而轉(zhuǎn)發(fā)理由也包含了大量文本信息,為了表征所有種類博文的文本信息,本文將文本特征向量分為兩部分,前一部分用以表征轉(zhuǎn)發(fā)的博文的文本信息,后一部分用于表征轉(zhuǎn)發(fā)理由這一文本信息,對于原創(chuàng)博文而言,其文本特征向量的前一部分表征博文的文本信息,由于其沒有轉(zhuǎn)發(fā)理由這一文本信息,故將其特征向量的后一部分做置0處理.這樣就得到所有種類博文的文本特征向量,再使用SDA對獲取的文本特征向量進(jìn)行特征選擇,得到FV1.
人工對問題分析定義特征是特征工程的常用方法,先前關(guān)于廣告博文的研究中,特征的定義已經(jīng)十分完善,本文在特征定義上引用上述研究定義的特征并依據(jù)自身對微博文本的分析補(bǔ)充一些特征.特征的詳情如表1所示.
表1 特征詳情表Table1 Feature details
特征定義之后需要對數(shù)據(jù)進(jìn)行處理,將特征從其中抽取出來.由于定義的特征數(shù)過多,對于能直接量化的特征不做贅述,對不能直接量化的特征描述如下:
1)昵稱復(fù)雜度
昵稱復(fù)雜度主要表征的是微博用戶昵稱的復(fù)雜程度,微博用戶昵稱允許輸入字母、數(shù)字、漢字、特殊字符這四種字符,論文對這四種字符設(shè)立權(quán)重并計(jì)算四種字符在昵稱中所出現(xiàn)的次數(shù),將四種字符的權(quán)重與出現(xiàn)次數(shù)相乘并求和作為用戶的昵稱復(fù)雜度.
(7)
其中NC表示昵稱復(fù)雜度,i表示字符編號,wi表示i字符的權(quán)重,ti表示i型字符在用戶昵稱中出現(xiàn)的次數(shù).
2)博文情感
博文情感使用博文的情感傾向來表示正面:1,負(fù)面:0.通過工具包構(gòu)建情感分析模型,將模型分析出來的值作為博文的情感特征值.
將抽取的特征進(jìn)行融合得到初步的特征向量,對初步的特征向量使用SDA進(jìn)行特征選擇得到FV2.
組合特征向量的構(gòu)建在前兩種特征向量構(gòu)建的基礎(chǔ)上進(jìn)行,前兩種特征構(gòu)建方法是現(xiàn)階段研究中較為常用的特征向量構(gòu)建方法,其方法各有優(yōu)點(diǎn)但也各有缺點(diǎn),對此我們將前兩種方法構(gòu)建的特征向量進(jìn)行組合,構(gòu)建組合特征向量.具體組合方式是通過構(gòu)建一個(gè)能同時(shí)容納兩種特征向量的高維向量作為FV3.
為了驗(yàn)證本文所提方法的有效性,實(shí)驗(yàn)分為四個(gè)部分進(jìn)行,第一部分為特征抽取實(shí)驗(yàn),用以驗(yàn)證論文中所提的特征抽取方法的有效性(針對不能直接量化的特征).第二部分為SDA特征選擇實(shí)驗(yàn),將引入SDA之后的模型與未引入SDA的模型的識別效果作對比,驗(yàn)證使用SDA進(jìn)行特征選擇的有效性.第三部分為對比選擇實(shí)驗(yàn),分兩個(gè)階段進(jìn)行,首先將FV1和FV2進(jìn)行組合實(shí)驗(yàn)獲得基于FV3的識別模型.第二階段,將基于FV3的識別模型與之前的基于FV1的識別模型和基于FV2的識別模型作對比,選出識別效果最好的模型用于廣告類噪音博文的去除.第四部分為分類對比實(shí)驗(yàn),將最大熵分類與其他分類方法作對比,驗(yàn)證選擇最大熵分類的有效性.
由于在廣告博文識別方面尚未有標(biāo)準(zhǔn)的數(shù)據(jù)集,因此本文使用爬蟲獲取的數(shù)據(jù)進(jìn)行實(shí)驗(yàn).實(shí)驗(yàn)數(shù)據(jù)主要分為兩個(gè)部分(DA,DB),DA是通過對COAE2013中傾向性分析評測數(shù)據(jù)文本進(jìn)行預(yù)處理獲得的數(shù)據(jù),DB是對爬蟲獲取的微博數(shù)據(jù)進(jìn)行預(yù)處理(主要為第一步的去除無法獲取博主信息的博文,第二步的兩輪人工標(biāo)注,標(biāo)注廣告博文)之后得到的,包括微博,和博主信息.同時(shí)為了獲得高維的最大熵特征函數(shù)向量,提高最大熵分類的效果.論文使用不平衡的樣本數(shù)據(jù)訓(xùn)練模型,使用權(quán)重調(diào)整的方式解決樣本不平衡帶來分類問題.數(shù)據(jù)詳情如表2所示.
表2 數(shù)據(jù)詳情
對于不能直接量化的特征進(jìn)行抽取實(shí)驗(yàn),驗(yàn)證本文抽取方法的有效性.昵稱復(fù)雜度的抽取實(shí)驗(yàn)如表3所示.
表3 昵稱復(fù)雜度抽取實(shí)驗(yàn)Table 3 Nickname complexity extraction experiment
表3展示的是使用本文方法抽取復(fù)雜度的部分實(shí)例,可以看出復(fù)雜度的給定基本符合客觀事實(shí).
表4 情感特征抽取實(shí)驗(yàn)Table 4 Emotional feature extraction experiment
從表4中實(shí)驗(yàn)結(jié)果可以看出情感分析的準(zhǔn)確率在86%以上,召回率在84%以上,達(dá)到了實(shí)驗(yàn)要求的標(biāo)準(zhǔn).
為了驗(yàn)證使用SDA進(jìn)行特征選擇之后對模型產(chǎn)生的效果,對比SDA引入前后模型識別率的變化.首先展示未引入SDA的模型識別效果(一方面由于本文識別的是廣告博文,另一方面為了更好的對比實(shí)驗(yàn)結(jié)果,后續(xù)實(shí)驗(yàn)結(jié)果將僅展示廣告博文類的P、R、F),實(shí)驗(yàn)結(jié)果如表5所示.
表5 未引入SDA的實(shí)驗(yàn)結(jié)果Table 5 No experimental results were introduced for SDA
從模型的F值上看,兩個(gè)模型之間相差不大,僅有1.24%的差距.從準(zhǔn)確率上看,基于特征FV2所構(gòu)建的模型準(zhǔn)確率只有49.37%,表明該模型存在許多誤判的情況,而基于特征FV1所構(gòu)建的模型其準(zhǔn)確率為100%,明顯高于前者.從召回率來看,基于特征FV2所構(gòu)建的模型要略有優(yōu)勢.總的來說僅從表5的實(shí)驗(yàn)結(jié)果難以判斷兩個(gè)模型哪個(gè)效果更好.因此對兩個(gè)模型分別引入SDA進(jìn)行特征選擇,觀察模型的識別效果.引入SDA之后模型的實(shí)驗(yàn)結(jié)果如表6所示.
表6 引入SDA的實(shí)驗(yàn)結(jié)果Table 6 No experimental results were introduced for SDA
對比表5和表6的實(shí)驗(yàn)結(jié)果可以看出在引入SDA之后對于基于不同特征向量的模型,其識別效果均有不同程度的提升.此外從F值上看,對于FV1來說,當(dāng)特征維度降至50維的時(shí)候模型的識別效果最好,對于FV2來說,當(dāng)特征維度降至15維的時(shí)候模型的識別效果最好,因此后續(xù)實(shí)驗(yàn)中文本特征向量選擇經(jīng)過SDA處理后的50維向量,而人工定義的特征向量則選擇經(jīng)過SDA處理后的15維特征向量.
根據(jù)本文4.3節(jié)所述將識別效果最好的人工定義的特征向量(經(jīng)過SDA處理后的15維特征向量)和文本特征向量(經(jīng)過SDA處理后的50維特征向量)組合構(gòu)建一個(gè)65維的特征向量作為組合特征向量FV3,將組合特征向量放入最大熵分類中獲得基于組合特征向量的廣告識別模型M3,將M3與之前識別效果最好的M1進(jìn)行比,選取出廣告博文識別效果最好的模型.實(shí)驗(yàn)結(jié)果如表7所示.
表7 對比實(shí)驗(yàn)表Table 7 Comparison of experimental tables
從表7可以看出基于文本特征向量的模型M1的識別效果最好,雖然其識別的準(zhǔn)確率較低,但是其召回率較高能識別出微博中絕大部分的廣告博文,因此選取M1用于廣告類噪音博文的去除.
對比實(shí)驗(yàn)中由于有些分類方法在實(shí)現(xiàn)時(shí)難以對模型進(jìn)行權(quán)重調(diào)整,因此將分類對比實(shí)驗(yàn)分為兩步來做.對不可以進(jìn)行權(quán)重調(diào)整的方法使用重采樣的方式來解決數(shù)據(jù)不平衡問題.同樣與之對比的最大熵也使用相同的數(shù)據(jù)進(jìn)行實(shí)驗(yàn),重采樣的特征選擇和權(quán)重調(diào)整的特征選擇使用的方法一致.實(shí)驗(yàn)得出當(dāng)模型的特征向量為FV1維度為150維時(shí),模型在重采樣數(shù)據(jù)集上效果最好.對比實(shí)驗(yàn)結(jié)果如表8所示.
從F值上可以看出無論是權(quán)重調(diào)整還是重采樣,與其他分類方法相比,最大熵分類方法在廣告博文識別問題上的效果都是要優(yōu)于其他分類方法的.因此選擇最大熵作為解決本問題的分類方法是有效可行的.
表8 分類對比實(shí)驗(yàn)Table 8 Classification comparison experiment
本文重點(diǎn)介紹了針對博文去噪問題所提出的基于SDA的廣告博文識別方法,提出了三種不同的識別模型,依據(jù)實(shí)驗(yàn)結(jié)果選出其中對廣告博文識別效果最好的模型,將其與前面介紹的統(tǒng)計(jì)篩選放在一起作為噪音博文去噪的方法.實(shí)驗(yàn)結(jié)果表明該方法能夠有效識別絕大多數(shù)的廣告博文,且效果優(yōu)于其他模型.
不足之處:由于廣告博文的形式越來多變復(fù)雜(如文字很少,廣告以圖片的形式展示),使得實(shí)驗(yàn)數(shù)據(jù)標(biāo)注出現(xiàn)的誤差變大,導(dǎo)致模型識別誤差較大,因此下一步工作將考慮使用半監(jiān)督學(xué)習(xí)的方式來調(diào)整訓(xùn)練數(shù)據(jù)集.