聶永丹,王 斌,張 巖
(東北石油大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,黑龍江 大慶 163318)
隨著當(dāng)前專業(yè)的學(xué)科劃分越來越細(xì)致,知識(shí)信息量爆發(fā)式增長導(dǎo)致了文獻(xiàn)激增,因此使科研工作者高效地檢索與專業(yè)研究領(lǐng)域相關(guān)的科研文獻(xiàn)非常必要。文獻(xiàn)檢索引擎是通過檢索關(guān)鍵詞查找相關(guān)文獻(xiàn)后,再依據(jù)相關(guān)度排序算法對(duì)檢索結(jié)果進(jìn)行排序,將排序結(jié)果按相關(guān)度展示給科研工作者,輔助其快速找到與研究領(lǐng)域最相關(guān)的科研文獻(xiàn)。
在文獻(xiàn)檢索相關(guān)度排序算法中,PageRank[1]算法應(yīng)用最為廣泛。PageRank最初被用于搜索引擎鏈接分析相關(guān)度排序算法在20世紀(jì)90年代提出,并應(yīng)用于谷歌搜索引擎的網(wǎng)頁排序。PageRank算法的基本思想是在有向圖上定義一個(gè)隨機(jī)游走模型,形成一個(gè)一階馬爾可夫鏈,描述隨機(jī)游走者沿有向圖隨機(jī)訪問各個(gè)節(jié)點(diǎn)的行為。通過計(jì)算每個(gè)網(wǎng)頁所具有的PageRank值(PR值)決定其重要程度,PR值越高,表明網(wǎng)頁越重要,在搜索結(jié)果中該網(wǎng)頁的排序就越靠前。文獻(xiàn)的相似度排名與網(wǎng)頁具有一定的相似性,目前研究者大多借鑒傳統(tǒng)網(wǎng)頁相關(guān)度算法,對(duì)文獻(xiàn)內(nèi)容與檢索詞進(jìn)行相似度評(píng)估并依據(jù)相似程度對(duì)檢索結(jié)果進(jìn)行相關(guān)度排名,進(jìn)而提升文獻(xiàn)檢索效果。王丹[2]將Lucene排序機(jī)制[3]應(yīng)用于PageRank算法中,但僅提高了文獻(xiàn)檢索速度,并未提高檢索文獻(xiàn)的相關(guān)匹配程度。張勇等[4]通過PageRank算法與TF-IDF(Term Frequency-Inverse Document Frequency)相結(jié)合,提高算法在文獻(xiàn)檢索上的效果。其缺點(diǎn)在于TF-IDF算法僅能提取出文獻(xiàn)中的主要特征詞,而對(duì)語義相同的詞語卻無法進(jìn)行相關(guān)匹配檢索。華一雄等[5]將WMD(Word Mover’s Distance)算法[6]與PageRank算法相結(jié)合,提出一種基于文獻(xiàn)相似度和出入比的文獻(xiàn)搜索方法,但WMD算法本身存在著丟失語序信息,以及對(duì)WMD算法未處理過的詞語無法解決詞向量OOV(Out Of Vocabulary)的問題。以上學(xué)者均從相似度角度對(duì)方法做出改進(jìn),也有研究學(xué)者對(duì)PageRank的價(jià)值分配問題進(jìn)行了改進(jìn)。李瑞等[7]引入馬爾科夫鏈的思想,采用嵌入轉(zhuǎn)移概率因素分配PR值的方式,以達(dá)到不平均分配權(quán)重的目的,但此方式為隨機(jī)分配,并不能將PR值分配給相關(guān)度更高的文獻(xiàn)。王冬等[8]結(jié)合互聯(lián)網(wǎng)的實(shí)際情況,并考慮到網(wǎng)頁的引用因素,提出NPR(Non-average distribution PageRank)算法,由于算法中PageRank在將節(jié)點(diǎn)的PR值分配給當(dāng)前節(jié)點(diǎn)所指向的節(jié)點(diǎn)時(shí),僅考慮了連接的引用數(shù)量而未考慮引用質(zhì)量,所以計(jì)算結(jié)果有偏差。
文獻(xiàn)引文網(wǎng)絡(luò)分析與網(wǎng)頁鏈接分析存在較為明顯的差異,主要差異包括以下3個(gè)方面:1) 文獻(xiàn)在發(fā)表后,所引用的參考文獻(xiàn)已經(jīng)確定,因此引文網(wǎng)絡(luò)表現(xiàn)為靜態(tài)的有向圖,而網(wǎng)頁在被發(fā)布到網(wǎng)上后,網(wǎng)頁中所包含的鏈接有可能被修改,因此表現(xiàn)為動(dòng)態(tài)結(jié)構(gòu);2) 文獻(xiàn)不存在自引現(xiàn)象,而在網(wǎng)頁中則會(huì)存在自引現(xiàn)象,而引文網(wǎng)絡(luò)中則不存在自引現(xiàn)象;3) 在引文網(wǎng)絡(luò)中,文獻(xiàn)與引文之間必然存在著相關(guān)性,而網(wǎng)頁中則不具有這種必然的相關(guān)性。上述將PageRank應(yīng)用于引文網(wǎng)絡(luò)的方法,忽略了文獻(xiàn)與網(wǎng)頁的主要差異,導(dǎo)致其應(yīng)用于引文網(wǎng)絡(luò)分析時(shí)存在局限性。值得注意的是,由于文獻(xiàn)與引文具有相關(guān)性,所以將PageRank算法用于文獻(xiàn)的引文網(wǎng)絡(luò)分析時(shí),不能合理地將文獻(xiàn)的PR值傳給引文,因此找到一種可靠的PR值分配方式,是將此算法應(yīng)用于引文分析的一個(gè)重要問題。
在深度學(xué)習(xí)領(lǐng)域中,BERT(Bidirectional Encoder Representation from Transformers)[9]是自然語言處理領(lǐng)域內(nèi)在眾多模型中性能突出的算法,其采用遷移學(xué)習(xí)方式,通過將模型在通用語料庫中訓(xùn)練得到預(yù)訓(xùn)練模型,其不僅能保留文本的語序信息,而且在經(jīng)過語料庫預(yù)訓(xùn)練后,可以通過該模型將文本轉(zhuǎn)化為詞向量,因此有效解決了OOV問題。研究者可通過使用文本標(biāo)注數(shù)據(jù)對(duì)該模型進(jìn)行微調(diào),得到特定任務(wù)模型。該模型在多個(gè)自然語言任務(wù)測試集上均取得優(yōu)異結(jié)果。
筆者針對(duì)傳統(tǒng)PageRank算法在引文網(wǎng)絡(luò)分析中出現(xiàn)相關(guān)度排序結(jié)果不夠合理和可靠的問題,提出具有注意池化方法的孿生BERT深度學(xué)習(xí)網(wǎng)絡(luò)模型,以評(píng)估文獻(xiàn)與引文間的相似度,然后將模型與PageRank結(jié)合,以模型計(jì)算后的相似度作為給各節(jié)點(diǎn)分配PR值的權(quán)重,從而使改進(jìn)后的PageRank算法更適合應(yīng)用于引文網(wǎng)絡(luò)分析中。
PageRank的一般定義為,給定一個(gè)含有n個(gè)結(jié)點(diǎn)的任意有向圖,在有向圖上定義一個(gè)一般的隨機(jī)游走模型,即一階馬爾科夫鏈[10]。該模型的轉(zhuǎn)移矩陣由兩部分的線性組合構(gòu)成:一部分是有向圖的基本轉(zhuǎn)移矩陣M,表示一個(gè)節(jié)點(diǎn)到連出的所有結(jié)點(diǎn)的轉(zhuǎn)移概率相等;另一部分是完全隨機(jī)的轉(zhuǎn)移矩陣,表示從任意一個(gè)結(jié)點(diǎn)到其他結(jié)點(diǎn)的轉(zhuǎn)移概率都是1/n,線性組合系數(shù)為阻尼因子d(0≤d≤1)。這個(gè)一般隨機(jī)游走的馬爾可夫鏈存在平穩(wěn)分布,記作R。定義平穩(wěn)分布向量R為有向圖的一般PageRank,如下
(1)
其中1為n維1列,并且每個(gè)分量大小為1的向量,t為算法的迭代次數(shù)。
相比網(wǎng)頁鏈接分析網(wǎng)絡(luò),文獻(xiàn)的引文網(wǎng)絡(luò)中更具靜態(tài)結(jié)構(gòu),單項(xiàng)無自引用,無引文為零的結(jié)點(diǎn),相鄰引用內(nèi)容具有關(guān)聯(lián)性[11]。因此在將PageRank用于引文網(wǎng)絡(luò)中時(shí),也需根據(jù)引文網(wǎng)絡(luò)的特點(diǎn)進(jìn)行適當(dāng)?shù)母倪M(jìn)。
BERT模型采用多頭注意力機(jī)制,其目的是為了使模型關(guān)注于重要區(qū)域,減少噪聲的負(fù)面影響。孿生BERT網(wǎng)絡(luò)通過最后一層的池化層,將兩個(gè)子網(wǎng)的輸出結(jié)果變?yōu)橄嗤S度,以進(jìn)行兩向量的相似度計(jì)算,同時(shí)在保留重要信息的前提下,減少計(jì)算量。原本網(wǎng)絡(luò)采用的池化方式為最大池化(max pooling)和平均池化(mean pooling),這是為了使用最為突出的一個(gè)特征作為最后整個(gè)文獻(xiàn)的特征表示,但文獻(xiàn)本身不僅有專業(yè)的理論基礎(chǔ)知識(shí),還涉及相關(guān)交叉學(xué)科的理論知識(shí),導(dǎo)致兩文獻(xiàn)間相似度需要由多個(gè)重要程度不同的特征才能進(jìn)行完整表達(dá),而不能僅用最為突出的特征對(duì)文獻(xiàn)間的相似度進(jìn)行度量,因此需要考慮每個(gè)特征對(duì)文獻(xiàn)間相似度的貢獻(xiàn)。采用注意力池化作為本文模型的池化層,則可以通過使用注意力機(jī)制池化方式將文獻(xiàn)中的多個(gè)重要特征進(jìn)行保留。
針對(duì)上述問題,將注意力的思想引入孿生BERT網(wǎng)絡(luò)模型中,采用注意力池化作為模型的池化層,進(jìn)行重要特征抽取。網(wǎng)絡(luò)整體結(jié)構(gòu)如圖1所示。
圖1 改進(jìn)的相似度度量網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Improved similarity measure network structure
在文獻(xiàn)特征經(jīng)過BERT詞嵌入層和BertEncoder層后,整體特征的表示變?yōu)閄CLS=[x1,x2,…,xi,…,xN],文獻(xiàn)中單個(gè)字符特征的表示變?yōu)镋token=[e1,e2,…,ei,…,eN],xi,ei∈d,d為詞向量的維度。將XCLS和Etoken進(jìn)行比較,以計(jì)算注意力權(quán)重,整體特征表示與每個(gè)局部表示之間的相似性越高,分配給該局部表示的注意力權(quán)重就越大,其計(jì)算方法為
αi=Softmax(sim(xi·ei))
(2)
其中αi為注意力權(quán)重,函數(shù)sim為用于度量其兩個(gè)輸入之間的相似性。筆者提出的模型中分別使用內(nèi)積相似度和余弦相似度兩種相似度評(píng)估函數(shù)進(jìn)行計(jì)算,最終注意力池化特征提取式為
(3)
其中S表示注意力池化層輸出結(jié)果。
通過兩孿生子網(wǎng)注意力池化層的輸出結(jié)果u,v,計(jì)算兩向量的余弦相似度
(4)
計(jì)算文獻(xiàn)與引文間的相似度流程如下。
1) 對(duì)文獻(xiàn)的文本特征進(jìn)行提取,主要包括3部分:對(duì)文獻(xiàn)的標(biāo)題采用去除停用詞的方式進(jìn)行處理;文獻(xiàn)的摘要使用Textrank[12]算法對(duì)摘要的關(guān)鍵詞進(jìn)行特征提??;文獻(xiàn)關(guān)鍵詞表現(xiàn)文獻(xiàn)的核心主題,可直接作為文獻(xiàn)的特征使用。
2) 對(duì)文獻(xiàn)文本特征進(jìn)行處理。特征首先通過模型的輸入層,使文獻(xiàn)特征文本轉(zhuǎn)化為向量的形式,然后通過詞嵌入層,將輸入層中的字向量、文本向量、位置向量進(jìn)行合并,得到每個(gè)詞的詞嵌入表示,詞嵌入表示通過注意力機(jī)制的編碼層對(duì)特征做進(jìn)一步提取,最后通過注意力池化層再對(duì)特征作進(jìn)一步提取,得到最終的文獻(xiàn)和引文特征。
3) 對(duì)利用模型得到的文獻(xiàn)與引文特征,計(jì)算兩者的余弦相似度,結(jié)果作為兩篇文獻(xiàn)間的相似度。
從PageRank的原理可以看出,當(dāng)前節(jié)點(diǎn)會(huì)將自身的PR值以平均分配的方式分給當(dāng)前節(jié)點(diǎn)所指向的節(jié)點(diǎn)。在引文網(wǎng)絡(luò)中,一篇文獻(xiàn)往往需要引用交叉學(xué)科的文獻(xiàn)作為參考。由于作者對(duì)自身研究領(lǐng)域中的研究側(cè)重點(diǎn)不同,導(dǎo)致每篇參考文獻(xiàn)的參考程度不同,造成文獻(xiàn)與引文間的相關(guān)度不同。所以傳統(tǒng)的PageRank算法應(yīng)用于引文網(wǎng)絡(luò)分析時(shí),其采用平均分配權(quán)重的方式作為當(dāng)前文獻(xiàn)PR值,即將文獻(xiàn)對(duì)引用文獻(xiàn)的相關(guān)度視為相同,不能將文獻(xiàn)當(dāng)前的PR值合理地分配給引文。因此,找到一種更為合理可靠的文獻(xiàn)PR值分配方式,是使算法更加適用于引文網(wǎng)絡(luò)分析的主要目標(biāo)。針對(duì)此問題,筆者采用具有注意力池化方法的孿生BERT網(wǎng)絡(luò)相似度評(píng)估模型,對(duì)文獻(xiàn)與引文進(jìn)行相似性估計(jì),進(jìn)而利用模型計(jì)算得到的相似性作為分配文獻(xiàn)PR值的權(quán)重。算法結(jié)構(gòu)如圖2所示。
圖2 算法結(jié)構(gòu)改進(jìn)示意圖Fig.2 Schematic diagram of algorithm structure improvement
該算法采用孿生網(wǎng)絡(luò)的方式同時(shí)讀取文獻(xiàn)與引文,首先通過BERT詞嵌入層,將文本轉(zhuǎn)化為向量;然后經(jīng)過BERTEncoder層,從眾多信息中找到與自身最相關(guān)的部分達(dá)到特征提取的目的;最后通過池化層對(duì)提取的特征進(jìn)行降維,獲得整體特征表示,將兩文獻(xiàn)的整體特征進(jìn)行相似性計(jì)算,并將得出相似度評(píng)分用于PR值分配權(quán)重。
改進(jìn)后的算法流程如下。
1) 使用孿生BERT網(wǎng)絡(luò)模型,對(duì)文獻(xiàn)和文獻(xiàn)引用的每個(gè)引文計(jì)算相似度。
2) 計(jì)算文獻(xiàn)指向的所有引文的相似度所占總體的比例,計(jì)算公式如下
(5)
其中Si為該文獻(xiàn)與第i個(gè)參考文獻(xiàn)的相似度,N為文獻(xiàn)包含的參考文獻(xiàn)總數(shù),Wi為該文獻(xiàn)的第i個(gè)參考文獻(xiàn)的相似度占參考文獻(xiàn)的總相似度的比重。
3) 利用式(5)計(jì)算得到的相似度占比W代替算法中原本由平均分配方式的轉(zhuǎn)移矩陣M,計(jì)算公式如下
(6)
4) 執(zhí)行PageRank算法若干次,直到前一次迭代得到的PR值與此次的PR值的差別小于預(yù)設(shè)的閾值,視為結(jié)果穩(wěn)定。
5) 輸出結(jié)果。
筆者以石油鉆井方面文獻(xiàn)為例,采用scrapy爬蟲框架開發(fā)數(shù)據(jù)采集程序,以“石油鉆井”為檢索關(guān)鍵詞,對(duì)石油鉆井文獻(xiàn)進(jìn)行采集,經(jīng)過篩選并過濾掉具有干擾性的文章后,獲得544篇文獻(xiàn),并且以這些文獻(xiàn)為源頭對(duì)文獻(xiàn)的引用文獻(xiàn)進(jìn)行拓展采集和整理。對(duì)文獻(xiàn)進(jìn)行編號(hào),數(shù)據(jù)樣例如表1所示。
表1 文獻(xiàn)數(shù)據(jù)樣例Tab.1 Literature data sample
表1中給出的相似度主要依據(jù)以下5個(gè)指標(biāo):
1) 文獻(xiàn)研究背景所涉及的理論基礎(chǔ)和交叉學(xué)科是否相同;
2) 文獻(xiàn)要解決的問題是否相近;
3) 文獻(xiàn)所采用的方法是否類似;
4) 文獻(xiàn)同時(shí)被另一文獻(xiàn)所引用的數(shù)量(文獻(xiàn)共引);
5) 文獻(xiàn)都引用同一文獻(xiàn)的數(shù)量(文獻(xiàn)共耦)。
依據(jù)上述5個(gè)指標(biāo)用于文獻(xiàn)相似度的評(píng)估,并依據(jù)指標(biāo)相關(guān)程度的強(qiáng)弱對(duì)兩文獻(xiàn)間的相似度進(jìn)行評(píng)分。
針對(duì)石油鉆井的研究領(lǐng)域,選取了10個(gè)檢索詞,即“鉆頭”、“鉆井液”、“鉆進(jìn)”、“應(yīng)力”、“地層”、“牙輪”、“鉆壓”、“井壁”、“機(jī)械鉆速”,“鉆井”對(duì)筆者算法進(jìn)行驗(yàn)證,采用文獻(xiàn)[8]使用的評(píng)估方法對(duì)文獻(xiàn)進(jìn)行評(píng)估,由7位專家組成相關(guān)度評(píng)估小組,對(duì)檢索結(jié)果的相關(guān)度進(jìn)行判斷,選取人數(shù)認(rèn)同最多的相關(guān)度作為評(píng)估結(jié)果,采用以下相關(guān)度等級(jí)函數(shù)進(jìn)行評(píng)估
(7)
針對(duì)10個(gè)關(guān)鍵詞的查詢,查詢與結(jié)果的相關(guān)性同樣采用<完全相關(guān),部分相關(guān),弱相關(guān)>的方式進(jìn)行表述,查詢與結(jié)果相關(guān)性計(jì)算公式為
(8)
其中F為最終的相關(guān)度計(jì)算結(jié)果,Ki為第i個(gè)位置的文獻(xiàn)與查詢的相關(guān)度,n為選取的文獻(xiàn)總數(shù),選擇搜索結(jié)果中的前40篇用于計(jì)算。兩算法排序結(jié)果如表2所示。
表2 排序結(jié)果對(duì)比Tab.2 Comparison of sorting results
從表2中可知,改進(jìn)算法給出的檢索結(jié)果高于傳統(tǒng)的PageRank算法,在10個(gè)相關(guān)主題的查詢條件下,從上至下各個(gè)查詢項(xiàng),改進(jìn)算法比傳統(tǒng)算法分別提升1.5%、3%、4.2%、2.3%、14.8%、1.7%、2%、4.4%、16.5%、10.4%,平均提高了6.1%,可見該方法對(duì)文獻(xiàn)相似度的排序結(jié)果更接近專業(yè)人員的檢索需求,具有一定的實(shí)用性。
針對(duì)PageRank算法應(yīng)用于文獻(xiàn)相關(guān)度排序時(shí),由于引文參考程度不同,檢索結(jié)果相關(guān)度排序不可靠的問題,筆者將具有注意力池化的孿生BERT深度學(xué)習(xí)網(wǎng)絡(luò)與PageRank算法相結(jié)合,通過深度學(xué)習(xí)方法計(jì)算文獻(xiàn)的相似度,使用文獻(xiàn)相似度作為分配PR值權(quán)重改進(jìn)算法中原本的平均權(quán)重分配方式。通過實(shí)驗(yàn)證明,改進(jìn)后的算法在文獻(xiàn)的引文網(wǎng)絡(luò)分析方面,比傳統(tǒng)的PageRank算法具有更高的相似度,排序結(jié)果更符合科研人員的檢索需求。
由于筆者提出的模型目前只對(duì)石油鉆井領(lǐng)域的文獻(xiàn)進(jìn)行相似度評(píng)估的相關(guān)實(shí)驗(yàn),而石油鉆井領(lǐng)域的文獻(xiàn)具有涉及相關(guān)交叉學(xué)科,如機(jī)械專業(yè)、力學(xué)等專業(yè)的相關(guān)理論知識(shí)的特點(diǎn),因此該方法也能適用于此類具備涉及多種交叉學(xué)科的科研領(lǐng)域文獻(xiàn)的分析。下一步將繼續(xù)研究該算法對(duì)其他科研領(lǐng)域文獻(xiàn)的分析效果。