曹建軍,常 宸,陶嘉慶,3,翁年鳳,蔣國權(quán)
(1. 國防科技大學(xué) 第六十三研究所, 江蘇 南京 210007; 2. 陸軍工程大學(xué) 指揮控制工程學(xué)院, 江蘇 南京 210007;3. 南京工業(yè)大學(xué) 工業(yè)工程系, 江蘇 南京 211800)
大數(shù)據(jù)時代,隨著信息技術(shù)的發(fā)展,互聯(lián)網(wǎng)信息量呈爆炸式增長,但開放多源的互聯(lián)網(wǎng)使得不同數(shù)據(jù)源所提供的信息有所差別,不僅存在大量虛假和錯誤的信息,而且還存在許多惡意的數(shù)據(jù)源。謠言和低質(zhì)量信息通過這些惡意數(shù)據(jù)源向外界傳播,嚴(yán)重影響對正確信息的判斷[1]。如今,數(shù)據(jù)質(zhì)量問題日益嚴(yán)重,如何將正確信息從這些低質(zhì)量數(shù)據(jù)中篩選出來是一個意義重大且具有挑戰(zhàn)性的研究。
真值發(fā)現(xiàn)是解決數(shù)據(jù)質(zhì)量問題的重要方法,研究從不同數(shù)據(jù)源提供的關(guān)于多個真實對象的大量沖突描述信息中,為每一個真實對象找出最準(zhǔn)確的描述。傳統(tǒng)的真值發(fā)現(xiàn)算法主要基于兩個假設(shè):若數(shù)據(jù)源提供越多的可信事實,則該數(shù)據(jù)源越可靠;若數(shù)據(jù)源的可靠性越高,則該數(shù)據(jù)源提供的事實越可信。根據(jù)這兩個基本假設(shè),傳統(tǒng)真值發(fā)現(xiàn)算法可分為三類。一是基于迭代的方法:基于迭代的方法用簡單函數(shù)來表達(dá)數(shù)據(jù)源可靠度與觀測值可信度之間的關(guān)系,迭代計算真值和數(shù)據(jù)源可靠度直至損失收斂[2]。二是基于優(yōu)化的方法:基于優(yōu)化的方法與基于迭代的方法類似,首先來通過假設(shè)條件設(shè)置目標(biāo)函數(shù),再優(yōu)化目標(biāo)函數(shù)來求解真值[3-4]。三是基于概率圖模型的方法:該方法假設(shè)觀測值的實際分布情況服從概率分布,通過參數(shù)估計和數(shù)據(jù)采樣對真值進(jìn)行估算[5]。
隨著信息時代的推進(jìn),數(shù)據(jù)的形式在不斷豐富,多樣化的數(shù)據(jù)也給真值發(fā)現(xiàn)帶來新的挑戰(zhàn)。如今,用戶可以通過訪問互聯(lián)網(wǎng)平臺的公開信息尋找某個特定問題的答案,但這些答案大部分由互聯(lián)網(wǎng)用戶所提供而并非由專家提供,因此存在錯誤和沖突的答案。這些答案大多以文本的形式發(fā)布在互聯(lián)網(wǎng)平臺,如何克服文本數(shù)據(jù)所特有的自然語言特性對真值發(fā)現(xiàn)的影響,使得真值發(fā)現(xiàn)在文本數(shù)據(jù)領(lǐng)域有了新的挑戰(zhàn)。
首先,文本數(shù)據(jù)具有詞語使用多樣性的特性,用戶提供的答案可能會表達(dá)與正確答案關(guān)鍵詞非常相似的語義,例如exhausted和fatigue都可表達(dá)疲憊的含義,但由于傳統(tǒng)真值發(fā)現(xiàn)算法缺少對文本語義信息的充分挖掘,會將它們視為兩個完全不同的答案。其次,傳統(tǒng)真值發(fā)現(xiàn)算法在對結(jié)構(gòu)化數(shù)據(jù)進(jìn)行真值發(fā)現(xiàn)時,根據(jù)數(shù)據(jù)源的眾多觀測值對數(shù)據(jù)源可靠度進(jìn)行評估,而在文本數(shù)據(jù)真值發(fā)現(xiàn)場景中,大量網(wǎng)絡(luò)用戶可以對同一問題進(jìn)行回答,但是同一用戶回答的問題卻很少,數(shù)據(jù)稀疏性增大了對用戶可靠度進(jìn)行評估的難度,所以傳統(tǒng)真值發(fā)現(xiàn)算法并不適用于文本數(shù)據(jù)真值發(fā)現(xiàn)場景。
對于文本數(shù)據(jù)真值發(fā)現(xiàn),現(xiàn)有方法都是通過簡化問題,從粗粒度角度對文本數(shù)據(jù)進(jìn)行分析,判斷互聯(lián)網(wǎng)上的文本數(shù)據(jù)是否為真,也就是將問題轉(zhuǎn)化為二分類的問題進(jìn)行求解。Broelemann等將受限玻爾茲曼機(jī)隱含層應(yīng)用在真值發(fā)現(xiàn)場景之中,通過學(xué)習(xí)真值概率分布判斷真值,但是受限玻爾茲曼機(jī)本身特性的限制,也只能將問題轉(zhuǎn)換為二值屬性的問題[6]。Sun等提出了一種基于合同的個性化隱私保護(hù)激勵機(jī)制,用于眾包問答系統(tǒng)中的真理發(fā)現(xiàn),該機(jī)制為具有不同隱私需求的工人提供個性化付款,以補償隱私成本,同時確保準(zhǔn)確的真值發(fā)現(xiàn)[7]。Li等提出一種適用于少量觀測值的移動眾包真值發(fā)現(xiàn)算法,通過重復(fù)使用各數(shù)據(jù)源的觀測值,挖掘數(shù)據(jù)源間的相關(guān)性[8]。Marshall等首次運用神經(jīng)網(wǎng)絡(luò)解決真值發(fā)現(xiàn)問題,利用全連接神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)數(shù)據(jù)源可靠度與觀測值可信度間的關(guān)系,并將數(shù)據(jù)源和觀測值信息輸入網(wǎng)絡(luò)進(jìn)行真值發(fā)現(xiàn)[9]。Li等將長短時記憶網(wǎng)絡(luò)用于真值發(fā)現(xiàn),將數(shù)據(jù)源可靠度矩陣和對象屬性值作為輸入,輸出觀測值為真的概率,最小化真值與觀測值間的距離加權(quán),使得網(wǎng)絡(luò)參數(shù)達(dá)到最優(yōu)[10]。
與傳統(tǒng)真值發(fā)現(xiàn)算法不同,本文提出基于深度神經(jīng)網(wǎng)絡(luò)面向多源文本數(shù)據(jù)的真值發(fā)現(xiàn)算法,將“數(shù)據(jù)源-答案”向量輸入神經(jīng)網(wǎng)絡(luò),通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)自主學(xué)習(xí)答案語義關(guān)系,輸出答案的可信度矩陣。所提算法降低了數(shù)據(jù)稀疏性對評估數(shù)據(jù)源可靠度的影響,并且解決了傳統(tǒng)真值發(fā)現(xiàn)算法強假設(shè)數(shù)據(jù)分布而導(dǎo)致真值發(fā)現(xiàn)效果不佳的問題。
表1 不同用戶的回答實例Tab.1 Example of answers from different users
由表1可知,對于同一問題,3名用戶分別給出了不同的答案。首先從文本數(shù)據(jù)細(xì)粒度的角度分析,每名用戶所提供的答案包含了正確答案的不同關(guān)鍵因素,具有部分正確率。然后通過神經(jīng)網(wǎng)絡(luò)對答案語義進(jìn)行提取,更準(zhǔn)確地對答案間的關(guān)系進(jìn)行度量。本文旨在通過充分運用神經(jīng)網(wǎng)絡(luò)的強表達(dá)能力來挖掘文本自然語言特性,學(xué)習(xí)用戶答案間的關(guān)系,為問題尋求最優(yōu)答案。
NN_Truth文本數(shù)據(jù)真值發(fā)現(xiàn)算法共分為3個步驟:第一步對文本進(jìn)行語義表征,挖掘文本的自然語言特性,將文本表征為多維向量;第二步利用神經(jīng)網(wǎng)絡(luò)進(jìn)行文本向量的真值發(fā)現(xiàn),通過網(wǎng)絡(luò)優(yōu)化,最終依據(jù)眾多答案向量計算識別真值向量;第三步根據(jù)各答案向量與識別真值向量的相似度計算各個答案的分?jǐn)?shù)并排序。
圖1給出了對各用戶提供的文本答案進(jìn)行語義表征的示意圖。
圖1 文本答案的語義表征Fig.1 Semantic representation for text answers
詞袋(bag-of-word,BoW)模型:以詞為最小單元,將用戶答案看作是詞的集合,忽略詞序及句法信息。將答案表示為一個多維向量(維度為答案中的詞表大小)。向量中某個維度的值為1代表當(dāng)前詞存在于詞表中,不存在則為0。
詞頻-逆文檔頻次(term frequency-inverse document frequency,TF-IDF)算法:基于分布假說“上下文相似的詞,其語義也相似”,能夠反映一個詞的重要程度,模型假設(shè)詞與詞之間相互獨立。
全局向量的詞嵌入(global vectors for word representation,GloVe):將答案所包含的關(guān)鍵詞使用GloVe工具進(jìn)行向量化,之后使用答案內(nèi)關(guān)鍵詞向量的平均值作為答案向量。此方法獲得的句向量與單詞的順序無關(guān),且所有單詞具備相同的權(quán)重。
平滑逆頻率[11](smooth inverse frequency,SIF):對答案中的每個詞向量,乘以一個權(quán)重,出現(xiàn)頻率越高的詞,其權(quán)重越小,計算句向量矩陣的第一個主成分,并讓每個句向量減去它在第一主成分上的投影,對句向量進(jìn)行修正。
在以上4種語義表征方法中,BoW與TF-IDF方法不對答案中關(guān)鍵詞的語義相似性進(jìn)行細(xì)粒度度量,對答案的準(zhǔn)確性要求較高,要求用戶提供準(zhǔn)確一致的答案關(guān)鍵因素。GloVe與SIF向量由于包含了答案中關(guān)鍵詞的語義信息,能夠?qū)Υ鸢高M(jìn)行更加細(xì)粒度的度量,有效克服了詞語使用多樣性帶來的影響,適用于比較開放和主觀的問題。
圖2為利用答案向量通過神經(jīng)網(wǎng)絡(luò)進(jìn)行真值發(fā)現(xiàn)的示意圖。
圖2 真值發(fā)現(xiàn)過程Fig.2 Process of truth discovery
文本數(shù)據(jù)真值發(fā)現(xiàn)基于兩個假設(shè):①數(shù)據(jù)源的可靠度越高,則其提供的答案相似度越高[12];②問題答案的真值情況應(yīng)該與各數(shù)據(jù)源提供的觀測值盡可能地接近。根據(jù)這兩個假設(shè),定義模型損失函數(shù)如式(1)所示。
(1)
(2)
(3)
(4)
式(3)中,P表示文本答案向量的維度,交叉熵?fù)p失越小,該用戶提供的答案與識別真值越接近。 化簡式(3),得到式(5)。
(5)
式中,當(dāng)Oqi<0,則e-Oqi→∞。 為避免溢出并確保計算穩(wěn)定,對式(5)進(jìn)行修正,使用max{Oqi,0}代替Oqi,則最終交叉熵?fù)p失用式(6)計算。
(6)
在網(wǎng)絡(luò)優(yōu)化過程中使用隨機(jī)梯度下降方法優(yōu)化網(wǎng)絡(luò)模型參數(shù),并使用ReLU作為激活函數(shù),將非線性特性引入網(wǎng)絡(luò)中。
通過深度神經(jīng)網(wǎng)絡(luò)多次訓(xùn)練優(yōu)化迭代,直至網(wǎng)絡(luò)參數(shù)收斂,網(wǎng)絡(luò)輸出最終的識別真值向量記為Oq*,依據(jù)識別真值向量與各數(shù)據(jù)源提供的答案向量的相似度定義各個答案的分?jǐn)?shù),對于GloVe、SIF向量,用式(7)計算。
(7)
對于BoW、TF-IDF向量,用式(8)計算。
(8)
分?jǐn)?shù)越高,則答案越可靠,根據(jù)分?jǐn)?shù)對問題提供的答案進(jìn)行排名,找到眾多回答中的可靠回答。
在真實數(shù)據(jù)集上進(jìn)行對比實驗驗證基于深度神經(jīng)網(wǎng)絡(luò)的多源文本數(shù)據(jù)真值發(fā)現(xiàn)算法的實驗效果。實驗框架為tensorflow,CPU為Inter Xeon E5-2630,內(nèi)存為192 GB,GPU為Nvidia Tesla P40×2,操作系統(tǒng)為CentOS 7 64位。
采用源自Kaggle競賽的Short Answer Scoring(https://www.kaggle.com/datasets/harshdevgoyal/ short-answer-scoring)數(shù)據(jù)集,該數(shù)據(jù)集包含英語與藝術(shù)、生物、科學(xué)、英語4個學(xué)科數(shù)據(jù)集,每個學(xué)科數(shù)據(jù)集由問題和答案組成,所有答案經(jīng)由競賽學(xué)生撰寫,答案長度為40~60個單詞,并經(jīng)過相關(guān)人員對答案進(jìn)行手動打分(0~3分)。
實驗使用Topk值作為評價指標(biāo),即取答案分?jǐn)?shù)從高到低排名的前k個分?jǐn)?shù)求平均分。表2為實驗超參數(shù)設(shè)置。
表2 實驗超參數(shù)設(shè)置Tab.2 Experimental super parameters setting
為驗證不同語義表征方法對真值發(fā)現(xiàn)結(jié)果的影響,分別使用BoW,TF-IDF,GloVe,SIF進(jìn)行文本的語義表征,數(shù)據(jù)集1~3為學(xué)科科學(xué),4~5為英語與藝術(shù),6~7為生物,8~10為英語,對比結(jié)果如圖3所示。
(a) 前10名平均分(a) Average scores of Top 10
(b) 前30名平均分(b) Average scores of Top 30圖3 不同文本表征方法結(jié)果比較Fig.3 Comparison of different text representation methods
由圖3可知,針對不同的數(shù)據(jù)集,不同的語義表征方法結(jié)果有微小差別,BoW與TF-IDF表示方法粒度較粗,不對答案中關(guān)鍵詞語義相似性進(jìn)行度量,要求用戶必須給出準(zhǔn)確的關(guān)鍵詞,適用于客觀嚴(yán)謹(jǐn)?shù)膯栴},在科學(xué)與生物兩門學(xué)科的答案評估中,結(jié)果較優(yōu)。而GloVe與SIF表示方法粒度較細(xì),考慮文本的語義信息,答案中語義相近的詞被賦予相同的可信度,用戶給出類似或含義相近的詞,獲得近似的可靠度,適用于主觀開放性問題,在英語學(xué)科具備優(yōu)勢。TF-IDF方法在不同數(shù)據(jù)集中結(jié)果相對穩(wěn)定,在之后的對比實驗中,以TF-IDF方法作為答案語義表征方法,展示所提文本數(shù)據(jù)真值發(fā)現(xiàn)方法的優(yōu)越性與穩(wěn)定性。
將所提方法分別與基于檢索的方法BoW Similarity,TF-IDF Similarity,GloVe Similarity,SIF Similarity及表現(xiàn)優(yōu)異的異質(zhì)數(shù)據(jù)沖突消解(conflict resolution on heterogeneous data,CRH)算法[13]進(jìn)行比較。由于傳統(tǒng)真值方法均不適用于文本數(shù)據(jù)的真值發(fā)現(xiàn),本文對CRH真值發(fā)現(xiàn)算法進(jìn)行改進(jìn),同樣對文本數(shù)據(jù)進(jìn)行了語義表征,并使用本文提出的距離函數(shù)度量文本答案間的相似性,當(dāng)使用BoW與TF-IDF時,由于文本向量稀疏,真值發(fā)現(xiàn)的結(jié)果為全0向量,此時CRH方法失效,本文使用GloVe向量進(jìn)行語義表征的真值發(fā)現(xiàn)結(jié)果作為CRH方法的結(jié)果,對比結(jié)果如圖4所示。
(a) 前10名平均分(a) Average scores of Top 10
(b) 前30名平均分(b) Average scores of Top 30圖4 不同方法結(jié)果對比Fig.4 Results comparison of different methods
由圖4可知,NN_Truth算法優(yōu)于對比算法。首先,基于檢索的方法對答案進(jìn)行排序的依據(jù)是問題與答案的相似度,但答案所需的關(guān)鍵詞并不一定包含在實際問題中,所以基于檢索的方法所找到的答案,其關(guān)鍵詞與問題中的關(guān)鍵詞有很大的相似性,并不是真正意義上的真值。CRH算法對數(shù)據(jù)源與觀測值之間的關(guān)系做出假設(shè),即可用簡單線性函數(shù)來表示它們之間的關(guān)系,但簡單函數(shù)難以對這種復(fù)雜關(guān)系進(jìn)行準(zhǔn)確描述,因此這種強假設(shè)使得CRH的實驗效果不佳。文本數(shù)據(jù)真值發(fā)現(xiàn)場景中用戶數(shù)量大,但每個用戶只提供的少量的答案,將會加快CRH迭代訓(xùn)練時的收斂速度,進(jìn)而對評估數(shù)據(jù)源產(chǎn)生影響。NN_Truth算法通過深度神經(jīng)網(wǎng)絡(luò)尋找指定問題的真值,不需要強假設(shè)答案與各真值的關(guān)系,這種復(fù)雜關(guān)系將存儲在神經(jīng)網(wǎng)絡(luò)的矩陣參數(shù)中,同時將“數(shù)據(jù)源-答案”向量輸入深度神經(jīng)網(wǎng)絡(luò),解決了傳統(tǒng)真值發(fā)現(xiàn)算法在文本數(shù)據(jù)真值發(fā)現(xiàn)場景中失效的問題,并且在面對稀疏數(shù)據(jù)時有很大的優(yōu)勢。
為驗證深度神經(jīng)網(wǎng)絡(luò)應(yīng)用于文本數(shù)據(jù)真值發(fā)現(xiàn)時的有效性及穩(wěn)定性,對NN_Truth算法進(jìn)行參數(shù)設(shè)置實驗。通過設(shè)置5種不同的隱藏層層數(shù),驗證深度神經(jīng)網(wǎng)絡(luò)層數(shù)對算法效果的影響,選取網(wǎng)絡(luò)最終輸出結(jié)果排名前10、30、50、80、100、200、300名學(xué)生分?jǐn)?shù)計算平均分來評價實驗效果,實驗結(jié)果如表3所示。
表3 參數(shù)設(shè)置實驗Top k表Tab.3 Experimental Top k parameters setting
由表3可知,深度神經(jīng)網(wǎng)絡(luò)隱藏層數(shù)量會影響實驗結(jié)果,當(dāng)隱藏層層數(shù)為3時,實驗結(jié)果最好。
學(xué)習(xí)率控制著神經(jīng)網(wǎng)絡(luò)參數(shù)的更新速度,學(xué)習(xí)率過大或者過小,都會影響神經(jīng)網(wǎng)絡(luò)收斂速度和最優(yōu)解的獲取。通過設(shè)置5種不同的學(xué)習(xí)率,驗證學(xué)習(xí)率對網(wǎng)絡(luò)訓(xùn)練效果及收斂速度的影響,實驗結(jié)果如圖5所示。
由圖5可知,學(xué)習(xí)率對實驗結(jié)果的影響較小,部分?jǐn)?shù)據(jù)集在學(xué)習(xí)率為1×10-2時,效果有所下降,對于大部分?jǐn)?shù)據(jù)集,學(xué)習(xí)率為1×10-3時效果最好。
(a) 科學(xué)1(a) Science 1
(b) 英語與藝術(shù)1(b) English and art 1
(c) 生物1(c) Biology 1
(d) 英語1(d) English 1圖5 學(xué)習(xí)率對實驗結(jié)果的影響Fig.5 Effect of learning rate on experiment result
本文提出基于深度神經(jīng)網(wǎng)絡(luò)面向多源文本數(shù)據(jù)的真值發(fā)現(xiàn)算法NN_Truth,對文本答案進(jìn)行向量化表示,并利用神經(jīng)網(wǎng)絡(luò)尋找答案真值,區(qū)別于傳統(tǒng)真值發(fā)現(xiàn)算法對數(shù)據(jù)源可靠度的依賴,NN_Truth更加注重對答案本身語義信息的挖掘,使用深度神經(jīng)網(wǎng)絡(luò)對答案間的復(fù)雜關(guān)系進(jìn)行無監(jiān)督學(xué)習(xí),為問題尋找正確可靠的答案。通過實驗驗證,本算法在數(shù)據(jù)源眾多而觀測值較少的場景中效果較好,優(yōu)于CRH等傳統(tǒng)真值發(fā)現(xiàn)算法。