王生生,張航,潘彥岑
(1.吉林大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,吉林 長(zhǎng)春 130012; 2.吉林大學(xué) 軟件學(xué)院,吉林 長(zhǎng)春 130012)
自動(dòng)編碼器(auto-encoder,AE)是機(jī)器學(xué)習(xí)中一種重要的模型[1]。AE通過(guò)盡可能復(fù)現(xiàn)輸入數(shù)據(jù)的方法,來(lái)提取輸入數(shù)據(jù)的特征,通常AE只有單層的編碼器和解碼器。隨著深度學(xué)習(xí)的發(fā)展,Hinton等[2]提出深度自動(dòng)編碼器(deep auto-encoder,DAE),相比于AE,DAE能產(chǎn)生更好的壓縮效率及特征表示。DAE的產(chǎn)生和應(yīng)用免去了人工提取數(shù)據(jù)特征的巨大工作量,提高了特征提取的效率,得到數(shù)據(jù)的逆向映射特征,展現(xiàn)了從少數(shù)標(biāo)簽數(shù)據(jù)與大量無(wú)標(biāo)簽數(shù)據(jù)中學(xué)習(xí)輸入數(shù)據(jù)本質(zhì)特征的強(qiáng)大能力。但DAE也存在很多局限性:1)DAE都是由不同類型的建模單元堆疊而成,這些建模單元均有理論缺陷,例如DAE內(nèi)部是黑盒性質(zhì),各隱藏層之間缺乏相應(yīng)神經(jīng)科學(xué)的理論指導(dǎo)。DAE缺乏能力來(lái)解釋自己的推理過(guò)程和推理依據(jù)。所以DAE構(gòu)建的深度結(jié)構(gòu)不完善。2)DAE的無(wú)監(jiān)督逐層貪心訓(xùn)練只是在一定程度上解決了局部最小問(wèn)題,沒(méi)有全局優(yōu)化,隨著隱藏層數(shù)的增加,梯度稀釋越發(fā)嚴(yán)重,其訓(xùn)練極其繁瑣,需要很多技巧。3)DAE模型結(jié)構(gòu)往往是固定的,其未考慮數(shù)據(jù)本身的關(guān)聯(lián)性,無(wú)法擬合不同類型的數(shù)據(jù)。
針對(duì)DAE的局限性,本文提出一種基于改進(jìn)SPNs的深度自動(dòng)編碼器。Poon等[3]提出了一種sum-product networks模型,其結(jié)構(gòu)的遞歸概率語(yǔ)義具有強(qiáng)大的理論支持,由其構(gòu)成的深度結(jié)構(gòu)很完善。spns能夠容易地學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)與參數(shù),訓(xùn)練時(shí)間遠(yuǎn)快于傳統(tǒng)DAE。SPNs模型的結(jié)構(gòu)學(xué)習(xí)能很好的擬合數(shù)據(jù)的表示,不同于傳統(tǒng)DAE需利用一個(gè)先驗(yàn)結(jié)構(gòu)。基于SPNs模型的這些優(yōu)點(diǎn),本文設(shè)計(jì)改進(jìn)的SPNs模型作為深度編碼器,提出替換SPNs的sum結(jié)點(diǎn)為max結(jié)點(diǎn)的最大積網(wǎng)絡(luò)(max-product networks,MPNs)模型作為深度解碼器?;诟倪M(jìn)SPNs模型作為新型DAE能克服現(xiàn)有DAE的局限性,并將其應(yīng)用于短文本情感分析領(lǐng)域,通過(guò)實(shí)驗(yàn)驗(yàn)證所設(shè)計(jì)的基于改進(jìn)SPNs深度自動(dòng)編碼器在短文本分析領(lǐng)域具有更優(yōu)性能。
SPNs是一種新型深度概率圖模型,是一個(gè)帶根節(jié)點(diǎn)的有向無(wú)環(huán)混合圖,product節(jié)點(diǎn)和帶非負(fù)權(quán)值的sum節(jié)點(diǎn)不斷遞歸組成其結(jié)構(gòu),SPNs的葉子節(jié)點(diǎn)為單一變量或變量未歸一化的概率分布。如圖1所示。一個(gè)SPNs網(wǎng)絡(luò)編碼一個(gè)函數(shù)f(X=x),輸入變量賦值X=x,由根節(jié)點(diǎn)產(chǎn)生一個(gè)輸出。該函數(shù)在每個(gè)節(jié)點(diǎn)的遞歸定義為:
圖1 SPNs葉子節(jié)點(diǎn)與簡(jiǎn)單的SPNs結(jié)構(gòu)Fig.1 SPNs leaf node and the simple SPNs
變量的賦值Xn=xn受限于葉子節(jié)點(diǎn)所包含的變量類型。如果葉子節(jié)點(diǎn)的變量未被實(shí)例化,那么Pr(Xn=xn)=Pr(φ)=1。如果葉子結(jié)點(diǎn)為連續(xù)性變量,那么Pr(Xn=xn)應(yīng)理解為pdf(Xn=xn)。
SPNs模型的結(jié)構(gòu)如果滿足一定的條件,其可以編碼一組變量的聯(lián)合概率分布。下面給出其結(jié)構(gòu)需滿足條件的定義。
定義1范圍(scope),一個(gè)節(jié)點(diǎn)n的范圍表示為其后裔節(jié)點(diǎn)或變量的組合。
定義2結(jié)構(gòu)完整性,一個(gè)SPNs模型結(jié)構(gòu)具有完整性當(dāng)且僅當(dāng)其sum節(jié)點(diǎn)的所有兒子節(jié)點(diǎn)具有相同的范圍?c∈children(sum),scope(c)=scope(c′)。
定義3結(jié)構(gòu)可分解性,一個(gè)SPNs模型的結(jié)構(gòu)具有可分解性當(dāng)且僅當(dāng)其product節(jié)點(diǎn)的所有兒子節(jié)點(diǎn)具有互斥范圍:
?c,c′∈children(sum) andc≠c′
?c,c′∈children(sum) andc≠c′
scope(c)∧scope(c′)=?。
SPNs能夠克服概率圖模型的局限性:推理與學(xué)習(xí)階段時(shí)間復(fù)雜度為指數(shù)級(jí)。SPNs可以有效計(jì)算歸一化配分函數(shù)(partition function),所以其在模型推理與學(xué)習(xí)階段的時(shí)間復(fù)雜度為多項(xiàng)式級(jí)[4]。在推理階段,不同于概率圖模型的近似推理,SPNs執(zhí)行快速精確推理,在推理速度上后者比前者有著數(shù)量級(jí)上的優(yōu)勢(shì)。SPNs的這些特性已經(jīng)使其成功應(yīng)用于圖像分類[5]、語(yǔ)言模型[6]、動(dòng)作識(shí)別[7]等多個(gè)領(lǐng)域。
SPNs自提出以來(lái),在大部分研究中被用作一種概率密度估計(jì)器。傳統(tǒng)SPNs模型作為一種樹(shù)形結(jié)構(gòu),每一個(gè)節(jié)點(diǎn)輸入只來(lái)自其后裔節(jié)點(diǎn),相同層節(jié)點(diǎn)的范圍信息相互獨(dú)立,缺乏層次性。SPNs模型的權(quán)值矩陣稀疏。如使用傳統(tǒng)SPNs模型作為深度編碼器架構(gòu),其提取數(shù)據(jù)特征效率低,SPNs模型的權(quán)值矩陣計(jì)算速率慢。本文提出一種改進(jìn)的SPNs模型結(jié)構(gòu),稱為層次SPNs模型(layered sum-product ntworks,LSPNs)。首先重構(gòu)傳統(tǒng)SPNs結(jié)構(gòu)。如圖2所示,排列SPNs節(jié)點(diǎn)為層次順序結(jié)構(gòu),同層包含相同節(jié)點(diǎn),不同層包含不同節(jié)點(diǎn)。例如sum節(jié)點(diǎn)組成相同層,product節(jié)點(diǎn)相同層,不同層交替組成LSPNs深度結(jié)構(gòu)。然后葉子節(jié)點(diǎn)層輸入增加到每一個(gè)LSPNs的隱藏層。LSPNs的每一層結(jié)構(gòu)都保持傳統(tǒng)SPNs的有向無(wú)環(huán)屬性、結(jié)構(gòu)完整性和結(jié)構(gòu)可分解性。定義S(x)∈Rs表示為通用層輸出函數(shù),例如:S(x)=〈S1(x),S2(x),…,Ss(x)〉,如果通用層為sum節(jié)點(diǎn)層,假設(shè)其輸入層包含r個(gè)節(jié)點(diǎn),本文設(shè)計(jì)其輸出函數(shù)為:
圖2 改進(jìn)SPNs模型作為L(zhǎng)SPNSFig.2 Improved SPNs model as LSPNs
(1)
式中:x∈[0,1]T為前節(jié)點(diǎn)輸入的概率值;Wij表示稀疏連接形式的參數(shù)矩陣。product節(jié)點(diǎn)層輸出函數(shù)為:
(2)
式中:x∈RY為輸入概率值的對(duì)數(shù)域;P∈{0,1}S×r為稀疏鏈接矩陣定義。本文設(shè)計(jì)的指數(shù)函數(shù)和對(duì)數(shù)函數(shù)都是非線性的,輸入和輸出信號(hào)從對(duì)數(shù)域切換到指數(shù)域,從一個(gè)層次類型轉(zhuǎn)換為另一個(gè)層次類型。增加隱藏層的輸入可以降低傳統(tǒng)SPNs模型的權(quán)值矩陣的稀疏性。LSPNs模型相對(duì)于傳統(tǒng)SPNs模型具有以下優(yōu)勢(shì):1)具有層次結(jié)構(gòu)的LSPNs作為一種概率局部特征提取器,相比于傳統(tǒng)SPNs能高效提取數(shù)據(jù)的分層抽象特征,提取的特征信息更為豐富。2)LSPNs的權(quán)值矩陣相對(duì)于SPNs權(quán)值矩陣稀疏性低,可以利用GPU計(jì)算庫(kù)進(jìn)行高效的矩陣運(yùn)算。
如使用傳統(tǒng)SPNS模型作為深度解碼器架構(gòu),其在解碼過(guò)程中,進(jìn)行最大可能解釋(most probable explanations,MPE)推理,其推理復(fù)雜度為np-hard。定義2組隨機(jī)變量U,V?X,U∪V=X,U∩V=?,mpe推理是求:
(3)
MPE推理的解碼過(guò)程可以有效對(duì)編碼特征進(jìn)行解碼。因此,在解碼過(guò)程中,本文替換SPNs的所有sum節(jié)點(diǎn)為max節(jié)點(diǎn),提出最大積網(wǎng)絡(luò)(max-product networks,MPNs)模型,其中max節(jié)點(diǎn)功能具有sum節(jié)點(diǎn)的結(jié)構(gòu)完整性,但其在進(jìn)行MPE推理的過(guò)程中,MPNs不同于SPNs的全局計(jì)算,其首先計(jì)算maxc∈ch(n)ωncMc(x)即max節(jié)點(diǎn)與權(quán)值邊值乘積的最大值,推理方向沿著自根節(jié)點(diǎn)向下選取max節(jié)點(diǎn)與權(quán)值邊值乘積最大的路徑傳播。如圖3所示,圖3(a)為替換所有sum節(jié)點(diǎn)為max節(jié)點(diǎn)的MPNs網(wǎng)絡(luò),圖3(b)為MPNs的MPE推理模式,給定葉子結(jié)點(diǎn)輸入值與max節(jié)點(diǎn)下的權(quán)值,首先自葉子節(jié)點(diǎn)向上計(jì)算每個(gè)節(jié)點(diǎn)的值,然后自根節(jié)點(diǎn)向下選取max節(jié)點(diǎn)與其權(quán)值邊值乘積最大的邊向下傳播,得到MPE推理的結(jié)果。MPNs可以有效作為深度解碼器架構(gòu),MPNs編碼器的建模單元為max節(jié)點(diǎn)組成的max節(jié)點(diǎn)層與product節(jié)點(diǎn)組成的product節(jié)點(diǎn)層,max節(jié)點(diǎn)層與product節(jié)點(diǎn)層交替組成MPNs深度解碼器結(jié)構(gòu),其MPE推理方法可作為深度解碼器的解碼方法。
圖3 MPNs模型與MPE推理方法Fig.3 MPNs and MPE inference method
(4)
每一個(gè)嵌入特征都可以表示為一個(gè)節(jié)點(diǎn)范圍的邊際分布。因此,這樣構(gòu)造的嵌入是由適當(dāng)?shù)母怕拭芏鹊募弦鸬膸缀慰臻g中的一個(gè)點(diǎn)。LSPNs的節(jié)點(diǎn)也可以看作是通過(guò)節(jié)點(diǎn)范圍給出的子空間運(yùn)行的基于部分的過(guò)濾器。sum節(jié)點(diǎn)可以解釋為通過(guò)共享相同范圍的過(guò)濾器的加權(quán)平均值構(gòu)建的過(guò)濾器,并且product節(jié)點(diǎn)可以被看作是非重疊作用域上的過(guò)濾器的組合。從LSPNs學(xué)習(xí)算法的內(nèi)部機(jī)制角度來(lái)看,每個(gè)過(guò)濾器捕獲數(shù)據(jù)的子群和子空間的不同方面。傳統(tǒng)SPNs作為深度編碼器因其結(jié)構(gòu)缺乏層次性,各節(jié)點(diǎn)在特征提取的過(guò)程中缺乏關(guān)聯(lián)性。本文設(shè)計(jì)的LSPNs結(jié)構(gòu)具有層次性,同層節(jié)點(diǎn)提取特征信息共享,能較傳統(tǒng)SPNs具有更高的特征提取效率與能得到更優(yōu)的分層抽象特征。
(5)
基于本文設(shè)計(jì)的MPNs深度解碼器的解碼方法是對(duì)編碼特征找到其最有可能解碼,是一種部分解碼模式,該方法可以快速得到對(duì)原編碼特征解碼,不同于傳統(tǒng)DAE解碼過(guò)程對(duì)編碼特征進(jìn)行全部解碼。MPNs深度解碼器解碼速度遠(yuǎn)快于傳統(tǒng)深度解碼器。如圖4所示為基于LSPNs深度自動(dòng)編碼器架構(gòu),其為L(zhǎng)SPNs編碼器與MPNs解碼器2部分組成。
圖4 基于LSPNs深度自動(dòng)編碼器架構(gòu)Fig.4 Framework of LSPNs-based deep autoencoder
LSPNs深度自動(dòng)編碼器可以進(jìn)行精確的推理,比如最大后驗(yàn)概率map推理以及最有可能解釋MPE推理等。
LSPNs深度自動(dòng)編碼器的學(xué)習(xí)方法包括結(jié)構(gòu)學(xué)習(xí)與參數(shù)學(xué)習(xí)2部分。SPNs的結(jié)構(gòu)學(xué)習(xí)算法通常是通過(guò)基于聚類技術(shù)分割/分組數(shù)據(jù)和變量,貪心地構(gòu)造一個(gè)SPNs結(jié)構(gòu)[8]。SPNs的參數(shù)學(xué)習(xí)技術(shù)包括通過(guò)隨機(jī)梯度下降[9]、期望最大化算法[10]、貝葉斯矩匹配[11]等來(lái)極大化數(shù)據(jù)的似然函數(shù)值(生成訓(xùn)練)或者給一個(gè)輸入數(shù)據(jù)得到一些輸出數(shù)據(jù)的條件似然值(判別訓(xùn)練)。
目前,SPNs模型的結(jié)構(gòu)學(xué)習(xí)與參數(shù)學(xué)習(xí)算法大部分是基于批處理學(xué)習(xí)的,批處理技術(shù)假設(shè)完整的數(shù)據(jù)集是可用的并且可以多次掃描。目前,大文本集和流文本數(shù)據(jù)越來(lái)越多。傳統(tǒng)SPNs模型的學(xué)習(xí)方法無(wú)法高效地處理這類文本集。為解決傳統(tǒng)SPNs模型學(xué)習(xí)算法在處理大文本集和流文本數(shù)據(jù)時(shí)參數(shù)學(xué)習(xí)速率慢,結(jié)構(gòu)學(xué)習(xí)時(shí)模型似然函數(shù)值低的局限性,本文設(shè)計(jì)LSPNs的在線學(xué)習(xí)算法。
LSPNs深度自動(dòng)編碼器的在線參數(shù)學(xué)習(xí)算法:通過(guò)一些小批量數(shù)據(jù)點(diǎn)輸入,LSPNs模型的在線參數(shù)學(xué)習(xí)算法通過(guò)從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)更新LSPNs的參數(shù)。LSPNs模型通過(guò)跟蹤運(yùn)行充分統(tǒng)計(jì)量來(lái)更新sum節(jié)點(diǎn)下的參數(shù)。假設(shè)LSPNs模型在每一個(gè)節(jié)點(diǎn)都有一個(gè)計(jì)數(shù)(初始值為1),當(dāng)每一個(gè)數(shù)據(jù)點(diǎn)被接收,這些數(shù)據(jù)點(diǎn)的似然函數(shù)就可以通過(guò)計(jì)算每一個(gè)節(jié)點(diǎn)得到,然后LSPNs模型的參數(shù)通過(guò)一種遞歸自上而下的方式從根節(jié)點(diǎn)更新。當(dāng)一個(gè)sum節(jié)點(diǎn)被穿過(guò),其計(jì)數(shù)加1并且其具有最高似然值的孩子節(jié)點(diǎn)加1。一個(gè)sum節(jié)點(diǎn)s和它其中一個(gè)后裔節(jié)點(diǎn)c的連接權(quán)值ws,c可以被估計(jì)為:
(6)
式中:ns為sum節(jié)點(diǎn)的計(jì)數(shù);nc為孩子節(jié)點(diǎn)的計(jì)數(shù)。因?yàn)閜roduct節(jié)點(diǎn)無(wú)權(quán)值邊,增加其似然值方法就是增加其兒子節(jié)點(diǎn)似然值。遞歸增加product節(jié)點(diǎn)每一個(gè)孩子計(jì)數(shù),遞歸更新每個(gè)孩子節(jié)點(diǎn)子樹(shù)權(quán)值。
SPNs的在線結(jié)構(gòu)學(xué)習(xí)算法由Lee[12]首次提出,該方法通過(guò)在線聚類技術(shù)以一種遞增形式重構(gòu)網(wǎng)絡(luò)結(jié)構(gòu),自上而下為sum節(jié)點(diǎn)增加孩子節(jié)點(diǎn)。其方法局限于一旦product節(jié)點(diǎn)被創(chuàng)建就不能被修改。本文設(shè)計(jì)LSPNs自動(dòng)編碼器的在線結(jié)構(gòu)學(xué)習(xí)方法:通過(guò)小批量數(shù)據(jù)輸入,LSPNs的結(jié)構(gòu)在線更新。如圖5所示,圖5(a)為起始product節(jié)點(diǎn),連接3個(gè)相互獨(dú)立的兒子節(jié)點(diǎn),作用域?yàn)閤1,x2,…,x5。首先通過(guò)檢測(cè)輸入變量的相關(guān)性修改product節(jié)點(diǎn),自底向上的遞增構(gòu)造LSPNs深度自動(dòng)編碼器結(jié)構(gòu)。其算法的核心是分裂法,在LSPNs線結(jié)構(gòu)學(xué)習(xí)的過(guò)程中,每次新加入的數(shù)據(jù),如輸入變量之間皮爾遜相關(guān)系數(shù)的絕對(duì)值超過(guò)某一閾值,會(huì)導(dǎo)致product結(jié)點(diǎn)做出變更。該算法將具有x1、x32個(gè)子節(jié)點(diǎn)的作用域合并,并將它們轉(zhuǎn)換為一個(gè)多元葉節(jié)點(diǎn),以其統(tǒng)計(jì)的均值和協(xié)方差作為葉節(jié)點(diǎn)參數(shù)。圖5(b)所示會(huì)創(chuàng)造出多變量葉節(jié)點(diǎn)或者如圖5(c)所示的混合模型。其組成部分是一個(gè)新的product節(jié)點(diǎn),它再次被初始化為在其作用域上的一個(gè)完全因式分解的分布,然后再將小批數(shù)據(jù)點(diǎn)傳遞給新混合模型以更新其參數(shù)。更新結(jié)構(gòu)的方式可通過(guò)設(shè)置子節(jié)點(diǎn)個(gè)數(shù)的閾值來(lái)選擇。
圖5 LSPNs模型在線結(jié)構(gòu)學(xué)習(xí)示意Fig.5 LSPNs model online structure learning diagram
這種在線結(jié)構(gòu)學(xué)習(xí)算法只對(duì)數(shù)據(jù)一次掃描并構(gòu)造其LSPNs結(jié)構(gòu),LSPNs自動(dòng)編碼器的在線結(jié)構(gòu)學(xué)習(xí)以一個(gè)所有變量完全因式分解的聯(lián)合概率分布起點(diǎn),若輸入變量皮爾遜相關(guān)系數(shù)的絕對(duì)值高于某個(gè)閾值,則將他們合并為相關(guān)變量,若作用域內(nèi)變量的個(gè)數(shù)小于某個(gè)值時(shí)就將他們合并為多元葉節(jié)點(diǎn),否則將其重組為和積混合結(jié)構(gòu)。通過(guò)在線學(xué)習(xí)的方式,隨著數(shù)據(jù)的不斷傳入,網(wǎng)絡(luò)結(jié)構(gòu)逐漸加深,從而以一種在線學(xué)習(xí)的方式完善LSPNs自動(dòng)編碼器的深度結(jié)構(gòu)。
本文利用基于LSPNs深度自動(dòng)編碼器進(jìn)行短文本情感分析。首先,從社交網(wǎng)絡(luò)中爬取大量無(wú)標(biāo)簽的短文本數(shù)據(jù);其次采用語(yǔ)義規(guī)則[13]方法對(duì)數(shù)據(jù)進(jìn)行預(yù)處理;接著采用doc2vec[14]模型對(duì)預(yù)處理后獲得的短文本數(shù)據(jù)進(jìn)行訓(xùn)練得到句向量,句向量作為基于LSPNs深度自動(dòng)編碼器的輸入。通過(guò)2.3節(jié)的在線結(jié)構(gòu)學(xué)習(xí)方法生成一個(gè)LSPNs深度編碼器結(jié)構(gòu)。利用LSPNs深度編碼器對(duì)輸入的句向量進(jìn)行編碼,提取分層抽象特征;然后構(gòu)建MPNs深度解碼器,對(duì)由LSPNs深度編碼器得到的分層抽象特征進(jìn)行解碼,將解碼后的特征與輸入LSPNs深度編碼器的句向量特征對(duì)比,計(jì)算重構(gòu)誤差。調(diào)整LSPNs深度自動(dòng)編碼器參數(shù)使得重構(gòu)誤差最?。蛔詈?,得到最優(yōu)的LSPNs深度編碼器,并由它獲得最優(yōu)分層抽象特征。
為了實(shí)現(xiàn)情感分類,將最優(yōu)分層抽象特征輸入到一個(gè)分類SPNs模型,通過(guò)有少量標(biāo)簽樣本對(duì)分類SPNs模型進(jìn)行有監(jiān)督微調(diào)訓(xùn)練。分類SPNs模型也采用2.3節(jié)的在線結(jié)構(gòu)學(xué)習(xí)方法,其參數(shù)學(xué)習(xí)使用SPNs的判別式hard梯度下降方法。定義分類SPNs模型S[y,h|x],輸入變量y為查詢變量,h為隱變量,x為證據(jù)變量。學(xué)習(xí)目標(biāo)是極大化條件概率分布P(y|x),使用反向傳播的方式極端似然梯度:
(7)
(8)
(9)
MAP推理過(guò)程的條件log似然梯度為Δci/wi,hard梯度更新為Δwi=ηΔci/wi。hard推理模式其使用map推理過(guò)程為一種選擇性的梯度更新方法,如圖6所示,可以有效防止梯度稀釋現(xiàn)象。
圖6 SPNs的硬推理模式克服梯度稀釋問(wèn)題Fig.6 SPNs hard inference overcomes gradient diffusion
分類SPNs模型訓(xùn)練完畢后,利用SPNs的MAP推理方式,對(duì)測(cè)試集的數(shù)據(jù)進(jìn)行預(yù)測(cè)。假設(shè)有一組測(cè)試數(shù)據(jù)為[x1,x2,…,x100,Lable],分類SPNs模型的101個(gè)變量記為X1,X2,…,X100,Y,那么用分類SPNs模型預(yù)測(cè)標(biāo)簽的過(guò)程,實(shí)質(zhì)上就是求:
(10)
只要將Y=0與Y=1的正負(fù)情感標(biāo)簽分別傳入分類SPNs模型的葉節(jié)點(diǎn)中,經(jīng)過(guò)推理比較2個(gè)值的大小,取最大者,記為該測(cè)試數(shù)據(jù)的分類標(biāo)簽。這樣,就可以得到每一條測(cè)試數(shù)據(jù)的預(yù)測(cè)值Y,經(jīng)過(guò)統(tǒng)計(jì)預(yù)測(cè)值和真實(shí)標(biāo)簽的差異,可以得到分類的準(zhǔn)確率。
實(shí)驗(yàn)數(shù)據(jù)包括2部分:1)微博情感分析數(shù)據(jù),由無(wú)標(biāo)簽數(shù)據(jù)與標(biāo)簽數(shù)據(jù)組成(如圖7所示)。其中無(wú)標(biāo)簽數(shù)據(jù)是通過(guò)twitter API與python beautifulsoup庫(kù)在網(wǎng)絡(luò)上爬取的1 600 000條微博數(shù)據(jù),這些無(wú)標(biāo)簽數(shù)據(jù)用于訓(xùn)練句向量。標(biāo)簽數(shù)據(jù)集取自斯坦福twitter情感語(yǔ)料庫(kù)STS[15]。隨機(jī)選取其中負(fù)面微博2 501條,正面微博2 499條作為有監(jiān)督微調(diào)數(shù)據(jù)集。最后隨機(jī)取500條微博作為測(cè)試集。2)電影評(píng)論IMDb數(shù)據(jù)集[16]與從亞馬遜網(wǎng)站[16]收集的5組領(lǐng)域產(chǎn)品的用戶評(píng)論。實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)如表1所示。
表1 實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)Table 1 The experimental data statistics
圖7 基于LSPNs深度自動(dòng)編碼器情感分析流程Fig.7 Flow chart of LSPNs-based deep autoencoder sentiment analysis
在進(jìn)行模型訓(xùn)練之前,需要在大規(guī)模語(yǔ)料上訓(xùn)練句向量。本文利用基于python gensim庫(kù)的doc2vec模型無(wú)監(jiān)督訓(xùn)練句向量,迭代次數(shù)為10次。
本文對(duì)比實(shí)驗(yàn)分為2部分:
1)基于斯坦福twitter情感語(yǔ)料庫(kù)(STS)的實(shí)驗(yàn)。實(shí)驗(yàn)的對(duì)比模型為:
①基于N-gram模型的詞袋向量作為輸入,使用N-gram模型的一元詞串+二元詞串特征,分別使用支持向量機(jī)[15],樸素貝葉斯[15],標(biāo)簽傳播(label propagation, lprop)[16]模型作為分類器進(jìn)行情感分析。
②基于Wor2vec訓(xùn)練的詞向量輸入,使用句子特性卷積神經(jīng)網(wǎng)絡(luò)CharSCNN[17]進(jìn)行情感分析。
③基于傳統(tǒng)spns結(jié)構(gòu)的自動(dòng)編碼器情感分析,模型輸入為與對(duì)比模型1與2相同的2種特征向量,模型表示為spnsdae1與spnsdae2。
④基于LSPNs深度自動(dòng)編碼器的情感分析,采用與對(duì)比模型1與2相同的特征向量作為模型輸入,模型表示為lspnsdae1與lspnsdae2。實(shí)驗(yàn)的評(píng)估指標(biāo)是準(zhǔn)確率precision值、召回率recall、F1值。其中Pos_P表示積極詞的準(zhǔn)確率precision值,Neg_P表示消極詞的準(zhǔn)確率precision值,以此類推。
表2中的NB、SVM模型數(shù)據(jù)集下的分類結(jié)果數(shù)據(jù)來(lái)源于文獻(xiàn)[15],LPROP模型數(shù)據(jù)集下的分類結(jié)果數(shù)據(jù)來(lái)源于文獻(xiàn)[16],CharSCNN模型在第一部分?jǐn)?shù)據(jù)集下的分類結(jié)果數(shù)據(jù)來(lái)源于文獻(xiàn)[17]。spnsdae1與spnsdae2數(shù)據(jù)集下的分類結(jié)果為本文使用傳統(tǒng)spns結(jié)構(gòu)設(shè)計(jì)的深度自動(dòng)編碼器進(jìn)行試驗(yàn)實(shí)現(xiàn)。
表2 幾種模型在STS數(shù)據(jù)集下的情感分類評(píng)估值Table 2 Several models in the STS data set under the sentiment classification evaluation value
2)基于IMDb數(shù)據(jù)集的實(shí)驗(yàn)。實(shí)驗(yàn)的對(duì)比模型為:基于標(biāo)準(zhǔn)化特征[19]的詞袋向量作為模型輸入,分別使用以下模型進(jìn)行情感分析。
①降噪自編碼器(denoising autoencoder,DAE)[18],其使用ReLu max(0,x)函數(shù)作為激活函數(shù),使用sigmoid函數(shù)作為解碼函數(shù)。
②微調(diào)降噪自動(dòng)編碼器(denoising autoencoder with finetuning,DAE+)[18],該方法使用部分標(biāo)簽數(shù)據(jù)訓(xùn)練dae并把解碼層替換為softmax層。
③半監(jiān)督布雷格曼散度自動(dòng)編碼器(semisupervised bregman divergence autoencoder,SB-DAE)[19]。
④微調(diào)半監(jiān)督布雷格曼散度自動(dòng)編碼器(semisupervised bregman divergence autoencoder with finetuning,SB-DAE+)[19],使用帶標(biāo)簽數(shù)據(jù)集微調(diào)sb-dae。以上方法都需要預(yù)定義模型輸入特征維度,對(duì)于sb-dae設(shè)置輸入特征維度為200維。對(duì)于dae,采取輸入特征維度為2000維。以上模型均使用SVM2作為分類器,使用mini-batch步長(zhǎng)為0.9[16]的隨機(jī)梯度下降方法進(jìn)行訓(xùn)練。
⑤基于半監(jiān)督的變分自動(dòng)編碼器(semi-supervised variational autoencoder,SVAE)[20], 其自動(dòng)編碼器架構(gòu)為L(zhǎng)STM,情感預(yù)測(cè)模型使用雙向LSTM模型。其模型輸入為標(biāo)準(zhǔn)化特征[19]的詞袋向量。設(shè)置其自動(dòng)編碼架構(gòu)維度為100維,設(shè)置Dropout率為0.5。
⑥基于半監(jiān)督的連續(xù)變分自動(dòng)編碼器(semi-supervised sequential variational autoencoder,SSVAE)[21]模型使用基于端到端的adam[21],設(shè)定學(xué)習(xí)率為4e-3進(jìn)行訓(xùn)練。
⑦基于傳統(tǒng)SPNs深度自動(dòng)編碼器的情感分析,采用2種特征向量輸入LSPNs深度自動(dòng)編碼器中,分別是基于標(biāo)準(zhǔn)化特征[16]的特征向量作為模型輸入,設(shè)置特征維度為500維,模型表示為實(shí)驗(yàn)?zāi)P捅硎緸閟pnsdae(A);基于Doc2vec模型訓(xùn)練的句向量作為模型輸入,設(shè)置特征維度為200維,模型表示為spnsdae(B)。
⑧基于LSPNs深度自動(dòng)編碼器的情感分析,采用兩種特征向量輸入LSPNs深度自動(dòng)編碼器中,分別是:基于標(biāo)準(zhǔn)化特征[16]的特征向量作為模型輸入,設(shè)置特征維度為500維,模型表示為lspnsdae(A);基于Doc2vec模型訓(xùn)練的句向量作為模型輸入,設(shè)置特征維度為200維,模型表示為lspnsdae(B)。以上2種方法均使用標(biāo)簽數(shù)據(jù)集微調(diào)。實(shí)驗(yàn)采用的評(píng)測(cè)指標(biāo)是模型情感分類錯(cuò)誤率。
表3中的DAE、DAE+實(shí)驗(yàn)數(shù)據(jù)集下的分類結(jié)果來(lái)源于文獻(xiàn)[18]。SB-DAE、SB-DAE+實(shí)驗(yàn)數(shù)據(jù)集下的分類結(jié)果來(lái)源于文獻(xiàn)[19]。SVAE與SSVAE實(shí)驗(yàn)結(jié)果為進(jìn)行實(shí)驗(yàn)實(shí)現(xiàn)。spnsdae的分類結(jié)果為本文使用傳統(tǒng)SPNs結(jié)構(gòu)設(shè)計(jì)的深度自動(dòng)編碼器進(jìn)行試驗(yàn)實(shí)現(xiàn)。
表3 幾種模型在IMDb數(shù)據(jù)集下的情感分類評(píng)估值Table 3 Several models in the IMDb data set under the sentiment classification evaluation value
由實(shí)驗(yàn)1)結(jié)果對(duì)比可知:基于LSPNs深度自動(dòng)編碼器應(yīng)用于短文本情感分析的效果普遍要比傳統(tǒng)方法:nb,svm,LPROP模型要好。這體現(xiàn)在三者之間的Pos_F1和Neg_F1的對(duì)比;而從precision、recal的角度來(lái)比較,無(wú)論是對(duì)積極情感還是消極情感,基于LSPNs深度自動(dòng)編碼器比CharSCNN精度更高。由實(shí)驗(yàn)2)結(jié)果對(duì)比可知:spnsdae的情感分類錯(cuò)誤率低于SB-DAE,和DAE+近似,但是lspnsdae(B)模型在實(shí)驗(yàn)2)的6組實(shí)驗(yàn)數(shù)據(jù)集下達(dá)到最佳效果。
在實(shí)驗(yàn)2)中的幾種自動(dòng)編碼器模型運(yùn)行平均時(shí)間對(duì)比如表4所示,本文設(shè)置每個(gè)自動(dòng)編碼器模型運(yùn)行10次,取10次時(shí)間均值記錄。實(shí)驗(yàn)結(jié)果表明lspnsdae(A)與lspnsdae(B)在IMDB數(shù)據(jù)集下的運(yùn)行速度遠(yuǎn)快于傳統(tǒng)的自動(dòng)編碼器模型。
表4 幾種自動(dòng)編碼器模型在IMDb數(shù)據(jù)集下的平均運(yùn)行時(shí)間Table 4 The average running time of several autoencoder models in the IMDb dataset S
1)本文提出的LSPNs的深度自動(dòng)編碼器具有強(qiáng)大的結(jié)構(gòu)學(xué)習(xí)能力,快速的推理能力,具備更好的模型可擴(kuò)展性。
2)將本文提出的基于LSPNs深度自動(dòng)編碼器應(yīng)用于短文本情感分析領(lǐng)域。實(shí)驗(yàn)結(jié)果表明:基于LSPNs的深度自動(dòng)編碼器比現(xiàn)有深度編碼器在短文本情感分析領(lǐng)域能取得更好的情感分類準(zhǔn)確率且模型具有更快的運(yùn)行速度。