白文磊,常麗瓊,郭 軍,2,劉寶英*,甘大廣
(1.西北大學(xué) 信息科學(xué)與技術(shù)學(xué)院,陜西 西安 710127;2.西北大學(xué) 京東人工智能與物聯(lián)網(wǎng)聯(lián)合研究院,陜西 西安 710127;3.萬方數(shù)據(jù)有限公司,北京 100038)
近年來,隨著信息社會的全面到來和科學(xué)技術(shù)的迅猛發(fā)展,科技文獻(xiàn)的數(shù)量呈現(xiàn)指數(shù)級增長,并通過互聯(lián)網(wǎng)廣泛傳播[1]。為了有效利用這些科技文獻(xiàn)資源,各種科技文獻(xiàn)資源服務(wù)平臺大量涌現(xiàn),例如谷歌學(xué)術(shù)、百度文庫、萬方、維普、IEEE、ACM、CNKI等。相比傳統(tǒng)的紙質(zhì)文獻(xiàn)資料,這些基于云計(jì)算和虛擬化技術(shù)構(gòu)建的文獻(xiàn)資源庫[2-3],可以讓人們通過網(wǎng)絡(luò)快速檢索出需要的文獻(xiàn)資料,為科學(xué)研究和技術(shù)開發(fā)提供便利。但是,由于科技文獻(xiàn)資源的服務(wù)比較分散,各種科技文獻(xiàn)資源數(shù)據(jù)庫相互獨(dú)立,造成科技文獻(xiàn)資源的共享和協(xié)同服務(wù)能力比較弱。當(dāng)查找多個(gè)數(shù)據(jù)庫中的文獻(xiàn)時(shí),人們需要分別登錄訪問不同數(shù)據(jù)庫,然后人工進(jìn)行篩選鑒別感興趣的信息。顯然,這種方式非常繁瑣,需要消耗人們較多的時(shí)間和精力,為了方便科技人員查找分布在不同數(shù)據(jù)庫中的文獻(xiàn)資料,構(gòu)建一個(gè)統(tǒng)一的數(shù)據(jù)倉庫是解決問題的有效途徑。
在構(gòu)建數(shù)據(jù)倉庫的過程中,文獻(xiàn)數(shù)據(jù)的去重[4]處理是一個(gè)非常關(guān)鍵的問題。因?yàn)椴煌臄?shù)據(jù)庫往往包含相同的文獻(xiàn)數(shù)據(jù),由于存儲格式和文件結(jié)構(gòu)的不同,這些相同的文件不易區(qū)分,造成數(shù)據(jù)冗余重復(fù),而大量的冗余數(shù)據(jù)會消耗存儲資源,降低訪問效率。針對這一問題,基于論文畫像技術(shù),提出一種科技文獻(xiàn)數(shù)據(jù)去重算法。該算法將論文關(guān)鍵字轉(zhuǎn)換為詞向量,通過計(jì)算論文之間的相似程度,過濾掉重復(fù)數(shù)據(jù)。該算法在實(shí)驗(yàn)數(shù)據(jù)集和真實(shí)數(shù)據(jù)集上都取得了比較滿意的結(jié)果。
主要貢獻(xiàn)包括4個(gè)方面:
(1)將推薦系統(tǒng)中的物品畫像算法引用到文獻(xiàn)數(shù)據(jù)去重的工作中,提出了一種基于論文畫像的數(shù)據(jù)去重算法,通過分析論文關(guān)鍵字信息,得到存儲在不同數(shù)據(jù)庫中的重復(fù)數(shù)據(jù);
(2)將自然語言處理中的詞頻-逆文檔頻率技術(shù)引用到了論文主要內(nèi)容提取的任務(wù)中,避免了傳統(tǒng)匹配算法因?yàn)閭€(gè)別文獻(xiàn)的亂碼問題導(dǎo)致算法精確率、召回率降低的問題;
(3)通過使用word2vec,將詞頻-逆文檔頻率方法提取的關(guān)鍵字信息轉(zhuǎn)化為向量,從而更好地計(jì)算論文之間的相似程度;
(4)不同數(shù)據(jù)集的應(yīng)用實(shí)驗(yàn)結(jié)果表明,該算法能夠準(zhǔn)確完整地檢測出重復(fù)的論文,并且與已有的方法相比,有更好的魯棒性,且不降低算法的精確率與召回率。
采用的關(guān)鍵數(shù)學(xué)符號如表1所示。
表1 采用的關(guān)鍵數(shù)學(xué)符號
目前,數(shù)據(jù)去重技術(shù)廣泛應(yīng)用于數(shù)據(jù)存儲、備份和歸檔系統(tǒng)[5-6]。數(shù)據(jù)去重技術(shù)主要分為相同數(shù)據(jù)檢測技術(shù)與相似數(shù)據(jù)檢測。相同數(shù)據(jù)檢測主要包括相同文件及相同數(shù)據(jù)塊兩個(gè)層次。相似數(shù)據(jù)檢測利用數(shù)據(jù)自身的相似性特點(diǎn),通過shingle技術(shù)[7]、bloom filter技術(shù)[8]和模式匹配算法[9]挖掘出相同數(shù)據(jù)檢測技術(shù)不能識別的重復(fù)數(shù)據(jù)。
完全文件檢測技術(shù)(whole file detection,WFD):WFD技術(shù)[10]以文件為粒度查找重復(fù)數(shù)據(jù)。WFD首先通過對整個(gè)文件進(jìn)行hash計(jì)算,然后與數(shù)據(jù)庫中以存儲的hash值進(jìn)行比較,如果檢測到相同的值就刪除重復(fù)數(shù)據(jù),否則存入數(shù)據(jù)庫中。該方法執(zhí)行效率高,可以檢測到所有完全相同的文件,但不能檢測不同文件內(nèi)部的相同數(shù)據(jù)。
針對WFD算法的缺陷,有研究者提出了細(xì)粒度塊級別的去重算法─固定塊檢測技術(shù)(fix-sized partition,F(xiàn)SP)[11],該算法根據(jù)預(yù)先定義好的一個(gè)塊大小,將所有文件按照這個(gè)塊大小進(jìn)行劃分,然后將每個(gè)數(shù)據(jù)塊進(jìn)行hash計(jì)算,與數(shù)據(jù)庫中已有的hash值進(jìn)行比較,相同刪除,不同存入。該算法較好地解決了WFD算法問題。但是,該算法也有一定的局限性,不能根據(jù)文件內(nèi)容和文件之間的關(guān)系進(jìn)行調(diào)整和優(yōu)化,例如:對于插入問題(在原始數(shù)據(jù)流中插入少量的新字節(jié))和刪除問題(在原始數(shù)據(jù)流中刪除少量字節(jié))處理效率比較低。
另一方面,互聯(lián)網(wǎng)技術(shù)和電子商務(wù)的迅速發(fā)展促進(jìn)了推薦系統(tǒng)的發(fā)展成熟[12]。其中基于標(biāo)簽的推薦算法[13](tag-based,TB)在推薦系統(tǒng)中得到了廣泛應(yīng)用。用戶用標(biāo)簽來描述對物品的看法,因此標(biāo)簽是聯(lián)系用戶和物品的紐帶,也是反映用戶興趣的重要數(shù)據(jù)源。該算法的思想如下:統(tǒng)計(jì)每個(gè)用戶最常用的標(biāo)簽;對每個(gè)標(biāo)簽,統(tǒng)計(jì)被打過這個(gè)標(biāo)簽次數(shù)最多的物品;對于用戶,首先找到他最常用的標(biāo)簽,然后將具有這些標(biāo)簽的最熱門的物品推薦給用戶。該算法較好地利用了用戶對物品的作用信息進(jìn)行推薦,但需要用戶對物品主動(dòng)打標(biāo)簽。為此,又有學(xué)者提出了從物品本身信息中提取出關(guān)鍵字[14-15]構(gòu)建出物品畫像,將關(guān)鍵字信息反作用到用戶的基于內(nèi)容的推薦算法(content-based,CB),從而解決了TB算法的缺陷。受CB算法啟發(fā),該文提出了一種基于論文畫像的科技文獻(xiàn)數(shù)據(jù)去重算法。
本節(jié)主要介紹詞頻-逆文檔頻率、詞向量以及相似度計(jì)算方法,并將其引入到論文畫像、數(shù)據(jù)去重的工作中。
詞頻-逆文檔頻率(term frequency - inverse document frequency,tf-idf)技術(shù)[15],是一種用于信息檢索、關(guān)鍵字提取的常用加權(quán)技術(shù)。一個(gè)詞語的重要性隨著它在該文檔中出現(xiàn)次數(shù)呈正比,同時(shí)也隨著它在語料庫中出現(xiàn)的文檔數(shù)呈反比。例如,某個(gè)詞語在其他論文中很少見,但在該論文中多次出現(xiàn),那么它很有可能反映了這篇論文的主題,即該詞語就可以認(rèn)為是關(guān)鍵詞。
tf-idf技術(shù)原理如下:
以統(tǒng)計(jì)一篇論文中的關(guān)鍵詞為例,要想得到該論文的主題,最簡單的方法就是統(tǒng)計(jì)該論文中每個(gè)詞出現(xiàn)的次數(shù)占論文總詞數(shù)的百分比,即詞頻(term frequency,tf),其計(jì)算公式如下:
(1)
其中,word表示需要統(tǒng)計(jì)詞頻的單詞,|word|表示該單詞在論文中出現(xiàn)的次數(shù),|words|表示論文單詞總詞數(shù)。
通過tf方法計(jì)算出的頻率最高的幾個(gè)詞也就是這篇文章的關(guān)鍵詞。但僅僅使用tf方法,出現(xiàn)頻率最高的詞很容易是停頓詞,例如:of,on,in等,這些詞很明顯無法反映論文的主要內(nèi)容,所以還需要給這些停頓詞添加一個(gè)懲罰,這個(gè)懲罰就是逆文檔頻率idf。
逆文檔頻率度量一個(gè)單詞的普遍重要性,它的大小與該詞的常見程度呈反比,其計(jì)算方法是語料庫中的論文總數(shù)除以語料庫中包含該詞語的論文數(shù),再取對數(shù),計(jì)算公式如下:
(2)
其中,|papers|表示論文總數(shù),|content_papers|表示包含某個(gè)關(guān)鍵字的論文數(shù)量。
在得到tf,idf計(jì)算公式后,就可以計(jì)算tf-idf的值,計(jì)算公式如下:
tf-idf=tf×idf
(3)
由此,可以解決上述停頓詞占比很高的問題。一般地,停頓詞會在每篇文章中出現(xiàn),導(dǎo)致idf接近于0,從而停頓詞的tf-idf值也很低。
在通過tf-idf技術(shù)提取到每篇論文的關(guān)鍵詞后,將這些關(guān)鍵詞交給機(jī)器學(xué)習(xí)算法處理,但機(jī)器無法理解這些語言,因此首先要做的就是將這些關(guān)鍵詞轉(zhuǎn)換為編碼。一種最常見的編碼方式為one-hot representation編碼:假設(shè)詞袋中共有V種單詞,則設(shè)置一個(gè)V維的向量,向量的分量中只有一個(gè)為1,其余全為0,1的位置對應(yīng)該詞在詞袋中的索引。但這種編碼方式在文本特征表示中存在以下缺點(diǎn):
(1)在文本中詞的順序信息是很重要的信息,one-hot編碼是一個(gè)詞袋模型,沒有考慮文本中詞與詞之間的順序。
(2)one-hot編碼丟失了詞與詞之間的關(guān)系信息,無法體現(xiàn)單詞與單詞的關(guān)系的遠(yuǎn)近程度。
(3)每個(gè)單詞的one-hot的編碼維度是整個(gè)詞袋中單詞種類的數(shù)量,容易造成維度災(zāi)難。
Distributed representation可以解決one-hot編碼的上述問題。它的思路是通過一個(gè)簡單的神經(jīng)網(wǎng)絡(luò)模型,將每個(gè)詞都映射到一個(gè)較短的詞向量上,該詞向量的維度需要在訓(xùn)練時(shí)自己指定。
word2vec模型[16]就是一種三層的神經(jīng)網(wǎng)絡(luò),輸入的是單詞的one-hot編碼,隱含層的激活函數(shù)是線性激活函數(shù),輸出層的維度與輸入層的維度相同。這個(gè)模型類似于自編碼器的網(wǎng)絡(luò)模型,但與自編碼器不同的是,當(dāng)這個(gè)模型訓(xùn)練好以后,并不會用這個(gè)模型去處理,預(yù)測新的輸入,而是提取網(wǎng)絡(luò)模型中隱含層的權(quán)重。
word2vec模型一般分為兩種,分別是:CBOW與Skip-Gram模型[16]。其中CBOW模型是將一個(gè)詞的上下文作為網(wǎng)絡(luò)的輸入,再預(yù)測這個(gè)詞,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 CBOW網(wǎng)絡(luò)結(jié)構(gòu)示意圖
以CBOW模型為例,介紹該模型的訓(xùn)練過程:
(1)輸入層為上下文單詞的one-hot編碼,假設(shè)單詞向量的維度為V,共有C個(gè)單詞。
(2)所有的one-hot編碼分別點(diǎn)乘共享矩陣WV×N,N為隱含層神經(jīng)單元個(gè)數(shù),同時(shí)也是映射后的單詞短向量的維度,一般地,V遠(yuǎn)小于N。
(3)將步驟(2)中得到的C個(gè)向量,相加后求平均作為隱含層向量size=(1,N)。
(5)概率最大的index所指示的單詞即為預(yù)測的中間詞與真實(shí)標(biāo)簽中one-hot編碼作比較,誤差越小越好。
圖2 Skip-Gram網(wǎng)絡(luò)結(jié)構(gòu)示意圖
這里,需要注意的是word2vec的輸出層經(jīng)過softmax激活函數(shù)得到一組概率分布,這和機(jī)器學(xué)習(xí)中的多分類問題相似,故選取交叉熵?fù)p失函數(shù)作為代價(jià)函數(shù),交叉熵?fù)p失函數(shù)的定義如下:
(4)
其中,M為樣本數(shù)量,yic為指示變量,pic為觀測樣本屬于類別c的預(yù)測概率。
通過梯度下降法就可以更新隱含層與輸出層的權(quán)重矩陣W和W'。結(jié)束訓(xùn)練后,若想要得到某個(gè)單詞的詞向量,則用該向量的one-hot編碼與W矩陣點(diǎn)乘,所得到的結(jié)果便是該詞的詞向量。
通過詞頻-逆文檔頻率,按照每個(gè)詞的權(quán)重從高到低排序,截取前k個(gè)關(guān)鍵字{keyword1,keyword2,…,keywordk}, 然后通過word2vec方法,將每篇論文的關(guān)鍵字轉(zhuǎn)換為關(guān)鍵字向量,再取關(guān)鍵字向量和的加權(quán)平均值(如式(5)),就可以得到每篇論文的文章特征向量。
假設(shè)關(guān)鍵詞向量的維度為p,則k個(gè)關(guān)鍵字就組成了一個(gè)k×p的矩陣:
(5)
計(jì)算向量之間相似度的方法主要有以下幾種:余弦相似度、歐氏距離、曼哈頓距離、皮爾遜相關(guān)系數(shù)[17]等,具體計(jì)算公式如表2所示。該文使用余弦相似度計(jì)算論文之間的相似度。
表2 相似度計(jì)算方法
最后,該算法可分為如下步驟:
(1)分別加載含有不同字段的論文數(shù)據(jù)信息。
(2)將各個(gè)數(shù)據(jù)信息提取公共字段并組合為一個(gè)數(shù)據(jù)集。
(3)使用tf-idf 方法提取文章前TOP-K個(gè)關(guān)鍵字信息。
(4)使用合并后的數(shù)據(jù)集,訓(xùn)練word2vec模型。
(5)使用word2vec將關(guān)鍵字信息轉(zhuǎn)換為詞向量。
(6)將k個(gè)關(guān)鍵字求和再去平均得到每篇文章的文章向量。
(7)根據(jù)提取到的文章向量,以及表2中的向量相似度計(jì)算方法,計(jì)算任意兩樣本之間的相似度,生成m×m維的對稱矩陣。
算法將相似度值高于閾值λ的論文對提取,需要注意的是:為避免將重復(fù)的論文對放入候選集中,只對對稱矩陣的上三角進(jìn)行遍歷,同時(shí)也降低了算法的時(shí)間復(fù)雜度。
在本節(jié)中,將詳細(xì)描述實(shí)驗(yàn)中所用到的數(shù)據(jù)集、超參數(shù)確定、算法度量指標(biāo)以及實(shí)驗(yàn)結(jié)果和分析。
在CiteUlike Dataset[18]、Citation Network Dataset[19]、Covoid-19 Paper Dataset[20]以及Arxiv Paper Dataset[21]這4個(gè)數(shù)據(jù)集上驗(yàn)證提出的算法的有效性。
為避免人工標(biāo)注,產(chǎn)生標(biāo)簽等繁瑣步驟,將上述數(shù)據(jù)集分別隨機(jī)抽取20%的樣本作為重復(fù)論文重新插入數(shù)據(jù)中,并打亂順序。
將數(shù)據(jù)的去重工作歸為機(jī)器學(xué)習(xí)中的二分類問題,即:判斷某一篇論文是否和數(shù)據(jù)庫中已有論文相似。對于二分類問題,常用的指標(biāo)有:精確率、召回率、Precision and Recall (P-R) 曲線、Receiver Operating Characteristic (ROC)曲線[22]等。
精確率:是指分類正確的正樣本個(gè)數(shù)占分類器判定為正樣本的樣本個(gè)數(shù)的比例。
(6)
召回率:是指分類正確的正樣本個(gè)數(shù)占真正的正樣本個(gè)數(shù)的比例。
(7)
為綜合評估算法的質(zhì)量,采用繪制P-R曲線、ROC曲線的方法來驗(yàn)證算法的有效性。
P-R曲線:橫軸為召回率,縱軸為精確率。對于一個(gè)二分類模型,P-R曲線上的一個(gè)點(diǎn)代表著,在某一閾值下,模型將大于該閾值的結(jié)果判定為正樣本,小于判定為負(fù)樣本,此時(shí)返回結(jié)果對應(yīng)的召回率和精確率。原點(diǎn)附近代表著當(dāng)閾值最大時(shí)模型的精確率與召回率。
ROC曲線:橫坐標(biāo)為假陽性率(false positive rate,F(xiàn)PR),縱坐標(biāo)為真陽性率(true positive rate,TPR)。算法應(yīng)當(dāng)使得FPR盡可能的小而TPR盡可能的大,F(xiàn)RR與TPR計(jì)算方法如下:
(8)
(9)
在上述四個(gè)數(shù)據(jù)集以及CBOW模型上進(jìn)行了三組實(shí)驗(yàn),分別如下:
實(shí)驗(yàn)一:相似度閾值λ對算法的影響。
精確率和召回率是既矛盾又統(tǒng)一的兩個(gè)指標(biāo),為了提高精確率,算法需要盡量在“更有把握”時(shí),即采用更高的相似度閾值λ把樣本預(yù)測為重復(fù)樣本,但此時(shí)往往會因?yàn)棣诉^高而漏掉許多“沒有把握”的重復(fù)樣本,導(dǎo)致回歸率很低。為綜合評估算法的性能,在四種數(shù)據(jù)集上繪制了P-R曲線以及ROC曲線,如圖3、圖4所示。在該組實(shí)驗(yàn)中設(shè)置k=10,N=100。
圖4圖例中auc代表ROC曲線下的面積大小,auc越大,模型性能越好。
觀察圖3可知,當(dāng)召回率接近0時(shí),模型在4個(gè)數(shù)據(jù)集的精確率都是0.9以上。并且隨著召回率的增加,精確率整體呈下降趨勢,這與之前的分析相吻合。并且分析圖4曲線下的面積,即auc值均在0.98以上,取得了較為不錯(cuò)的實(shí)驗(yàn)結(jié)果。
實(shí)驗(yàn)二:關(guān)鍵詞個(gè)數(shù)k對算法的影響。在該組實(shí)驗(yàn)中,設(shè)置N=100,k的取值為5、10、20、40、60。
圖3 P-R曲線
圖4 ROC 曲線
關(guān)鍵詞個(gè)數(shù)k對算法的實(shí)驗(yàn)結(jié)果有著重要影響。k值過小,可能導(dǎo)致將不重復(fù)的樣本歸為重復(fù)樣本,導(dǎo)致精確度降低。由于算法是將k個(gè)關(guān)鍵字的詞向量求和后平均作為樣本的畫像,k值過大,會導(dǎo)致各個(gè)樣本的畫像趨于平均化。為此,在Arxiv Dataset和CiteUlike Dataset上繪制了P-R曲線以及ROC曲線,如圖5、圖6所示。
(a)
(a)
觀察圖5、圖6可知,當(dāng)k取10時(shí),算法的效果達(dá)到最優(yōu)。
實(shí)驗(yàn)三:隱含層神經(jīng)元數(shù)量N對算法的影響。
在該組實(shí)驗(yàn)中,設(shè)置k=10,N的取值為25,50,100,200。
圖7、圖8中P-R曲線與ROC曲線在不同的隱含層神經(jīng)元數(shù)據(jù)N上實(shí)驗(yàn)效果差距很大,且N值越大模型效果越好。這是因?yàn)镹值過小,會導(dǎo)致論文畫像不精準(zhǔn)、相似度計(jì)算不準(zhǔn)確,從而降低算法的精確率與召回率。
(a)
(a)
將推薦系統(tǒng)中的人物、物品畫像算法,應(yīng)用于文獻(xiàn)資源數(shù)據(jù)倉庫構(gòu)建中的數(shù)據(jù)去重工作,提出了一種基于論文畫像的科技文獻(xiàn)數(shù)據(jù)去重算法。通過使用tf-idf,word2vec技術(shù)提取到文章向量,進(jìn)而計(jì)算出論文之間的相似程度。通過去除相似程度高于閾值的論文,完成數(shù)據(jù)去重.實(shí)驗(yàn)結(jié)果表明,該算法能夠準(zhǔn)確地檢測出數(shù)據(jù)庫中重復(fù)的論文,實(shí)現(xiàn)有效多數(shù)據(jù)去重。在參數(shù)調(diào)優(yōu)后,auc均值可達(dá)到0.98以上。該算法在萬方文獻(xiàn)數(shù)據(jù)集上進(jìn)行了初步的應(yīng)用測試,取得了不錯(cuò)的效果。