王 東 王 飄 江俊鵬 李 青 徐晨陽
(中國科學技術(shù)信息研究所,北京 100038)
黨的十九大以來,黨中央堅持把科技創(chuàng)新擺在國家發(fā)展全局的核心位置,科研工作投入穩(wěn)步增長。然而,隨著各類科技項目的數(shù)量不斷提升,科技項目重復立項的問題日益突出,針對科技項目進行查重已成為科技項目管理的一個重要的技術(shù)環(huán)節(jié)。而科技項目申報書是科研團隊為獲得各級科技管理部門對擬申報項目的研究經(jīng)費許可、按照標準格式填寫的項目申報文檔,對擬申報項目從進度安排、研究內(nèi)容、預期效益、組織實施等部分進行綜合論述,因此填寫并提交科技項目申報書是科技項目申報和立項過程中必不可少的一環(huán)[1]。查重科技項目申報書,對于避免科技項目重復立項有著至關(guān)重要的作用。本文針對科技項目申報書提出了一種基于DSSM架構(gòu)的相似度檢測算法模型,并在此基礎上構(gòu)建了一套查重系統(tǒng),希望能夠在科技項目查重過程中發(fā)揮積極的作用。
通過文獻調(diào)研發(fā)現(xiàn),在國外科技項目的申報和評審主要通過同行評議的方式進行,尚未發(fā)現(xiàn)明確的項目查重要求。而在國內(nèi),面向科技項目以及其他各類文檔的查重方法則有較多研究。劉如等[2]結(jié)合國內(nèi)外文本查重技術(shù)的進展情況,設計了一種面向科研項目申報材料查重的解決方案,深入探索了將深度學習與文本查重相結(jié)合的方法。黃思穎等[3]針對現(xiàn)有查重系統(tǒng)存在的性能較低、準確率不高以及擴展性不好等問題,提出了一套基于SolrCloud的分布式科技項目查重系統(tǒng),在實時性能和擴展性等方面有著較好的表現(xiàn)。陶秀杰等[4]針對企業(yè)環(huán)境下科技項目的查重需求,提出了一種結(jié)合新詞發(fā)現(xiàn)和中國知網(wǎng)KBase工具的查重方法。高爽等[5]針對環(huán)境影響評價報告書中可能存在的抄襲行為,創(chuàng)建了一套基于simhash的智能查重方法,用于輔助報告書的初步篩查和技術(shù)復核。劉玉林等[6]針對項目重復招標的問題,提出了一套基于潛在語義索引的文本相似度檢測平臺,可以快速、準確地分析待檢測文檔與海量在庫文檔的相關(guān)性,在一定程度上規(guī)范項目招標采購管理工作。但是,鮮有對科技項目申報立項時進行查重的專門研究。本文將重點對科技項目申報書的查重進行研究,構(gòu)建查重系統(tǒng),以避免科技項目重復立項,減少科研經(jīng)費的損失,加強科研誠信建設。
本文提出一個4 層查重系統(tǒng)總體架構(gòu),分別是查重應用層、數(shù)據(jù)處理層、基礎組件層、運維管理層,如圖1所示。
圖1 查重系統(tǒng)總體架構(gòu)
(1)運維管理層。運維管理層是總體架構(gòu)的底層,主要功能是管理、調(diào)度、協(xié)調(diào)運維資源,控制維護各類容器,保障多用戶空間資源的分配與隔離。
(2)基礎組件層。基礎組件層匯聚適用于計算、存儲、查詢、消息隊列的多種大數(shù)據(jù)組件,可有效使用運維管理層的運維資源,向數(shù)據(jù)處理層提供基礎服務。
(3)數(shù)據(jù)處理層。數(shù)據(jù)處理層是總體架構(gòu)的數(shù)據(jù)中心,調(diào)用基礎組件層內(nèi)部的各類大數(shù)據(jù)組件,開展科技項目申報書相關(guān)數(shù)據(jù)的采集、轉(zhuǎn)換、加載、分析計算,向上對查重應用層做好數(shù)據(jù)支撐。
(4)查重應用層?;跀?shù)據(jù)處理層提供的數(shù)據(jù),通過運維管理層統(tǒng)一的任務調(diào)度體系開展應用容器化管理控制,提供查重任務管理、文本查重、查重報告生成等查重應用服務。
該查重系統(tǒng)的工作流程分為數(shù)據(jù)預處理、查重算法執(zhí)行、查重報告生成3 個主要步驟,如圖2所示。
圖2 查重系統(tǒng)工作流程
2.2.1 數(shù)據(jù)預處理
數(shù)據(jù)預處理模塊是一個前置任務層,主要用來處理巨大的申報書數(shù)據(jù)信息。為滿足上層模塊需要的數(shù)據(jù)定位、數(shù)據(jù)處理、數(shù)據(jù)存儲等業(yè)務需求,該查重系統(tǒng)提取了數(shù)據(jù)方面的基礎工作作為一個模塊封裝,為上層服務提供工具。數(shù)據(jù)預處理模塊所有功能都基于高效地使用HDFS(Hadoop分布式文件系統(tǒng))提供的數(shù)據(jù)存儲能力。數(shù)據(jù)預處理模塊主要實現(xiàn)以下4 種功能。
(1)基礎數(shù)據(jù)庫建立。通過科技管理信息系統(tǒng)提供的接口,將可作為查重依據(jù)的申報書PDF統(tǒng)一標識后存入HDFS數(shù)據(jù)系統(tǒng)。在此統(tǒng)一標識基礎上生成結(jié)構(gòu)化數(shù)據(jù)對象。對象記錄了PDF類型、狀態(tài)、編號、版本號、提交時間等信息,便于后續(xù)查重算法調(diào)用。該功能具有容錯和恢復機制,保證大數(shù)據(jù)情況下的數(shù)據(jù)完整性,具有可靠性高、可用性強等特點。
(2)新數(shù)據(jù)入庫。因為查重依據(jù)數(shù)據(jù)會動態(tài)增加、修改與刪除。該模塊可以修改HDFS數(shù)據(jù)系統(tǒng)下的PDF申報書數(shù)據(jù)。對于科技部新入庫申報書數(shù)據(jù),通過接口下載后,該模塊會與本地HDFS數(shù)據(jù)系統(tǒng)中已保存的PDF申報書進行比對,確定PDF是否已在本地庫、新申報書PDF是否修改等,以此判斷新申報書是否應該入庫。如果新申報書覆蓋了原有申報書,表示修改該申報書版本號并更新提交時間。以上服務保證了該系統(tǒng)的查重數(shù)據(jù)庫是與科技部數(shù)據(jù)一致的,同時不會出現(xiàn)數(shù)據(jù)重復。
(3)PDF申報書文本化。PDF存儲可以使用原始數(shù)據(jù)格式,但是在后續(xù)的查重算法模塊、報告生成模塊卻無法直接使用PDF申報書原始數(shù)據(jù)。因此,在其他模塊調(diào)用時,該項服務會動態(tài)切入,將從HDFS文件系統(tǒng)中調(diào)用的PDF申報書轉(zhuǎn)化為文本數(shù)據(jù),提供給其他模塊使用。
(4)特殊格式申報書處理。大部分申報書原始格式是PDF,但也有以Excel或表格提交的申報書。對于這些申報書,系統(tǒng)將統(tǒng)一在數(shù)據(jù)預處理層進行規(guī)范化處理,以避免因特殊格式而導致在后續(xù)其他模塊中需要再添加重復邏輯代碼的處理。
2.2.2 查重算法執(zhí)行
查重算法模塊是查重系統(tǒng)的核心技術(shù)模塊。該模塊將需要查重的申報書視為多個段落,通過分布式任務模塊,將每一個段落與查重數(shù)據(jù)庫中的其他申報書進行查重。在查重過程中,將重復率大于指定閾值的段落信息記錄,結(jié)合重復率與其他信息封裝成結(jié)構(gòu)化數(shù)據(jù),保存在對象中,在所有查重任務完成后,將查重數(shù)據(jù)提供給生成申報書模塊使用。
第一步:查重總體結(jié)論。
第二步:確定每章重復率。查重系統(tǒng)是以段落為單位,分布式進行查重,因此每個段落會與查重數(shù)據(jù)庫中的所有段落進行算法比對,比對結(jié)束后,會得到N個該段落在查重算法檢測后認定存在高重復度的范圍區(qū)間α。這些區(qū)間經(jīng)過相并操作之后得到的區(qū)間就是該段落的重復區(qū)間,除以段落總長度len就可以得到該段落的相似比k,如式(1)所示。
第三步:提供相似樣本列表。在查重算法過程中,以段落為查重算法基礎單位,但是為了便于人工分析相似申報書樣本,該模塊同時會以申報書為單位,記錄查重申報書與其他申報書的總體相似度。在查重算法結(jié)束后,將與查重申報書相似度最高的若干申報書記錄,作為相似樣本提供查詢與分析。
第四步:提供主體數(shù)據(jù)列表。從檢測目標申報書中與對比樣本內(nèi)容中選擇具體的重復內(nèi)容記錄,給報告生成模塊提供生成查重報告。
2.2.3 查重報告生成
在對申報書進行的查重任務完成之后,便可以使用查重過程中關(guān)鍵性信息生成的結(jié)構(gòu)化數(shù)據(jù)來構(gòu)成最后的查重報告。報告生成模塊使用了渲染+動態(tài)生成的方法來生成Word文檔,之后將Word文檔轉(zhuǎn)化為PDF文檔報告。對于該報告,將封裝留存并返回給使用者進行查詢與分析。具體報告生成流程如圖3所示。
圖3 報告生成模塊流程
查重算法文本模型結(jié)構(gòu)上是先通過最大字符串匹配的方式找到高相似度的段落,然后根據(jù)深度學習算法模型來判斷兩個段落的語義相似度作為最終依據(jù)[7]。這樣的設計結(jié)合了最大字符串匹配的快速查找與深度學習模型判斷重復的高準確率。本文在已有項目申請書語料之上,實現(xiàn)與改進語義相似度算法,最終經(jīng)過實驗對比,選擇了DSSM(Deep Structured Semantic Model)架構(gòu)作為主體框架,使用Transformer替換DSSM表現(xiàn)層的算法模型。算法模型架構(gòu)如圖4所示,其中DSSM原模型表示層使用DNN來提取語義特征。本文主要研究在表示層上結(jié)合最新語義提取表示模型如Transformer模型,以得到較好的算法效果。同時,本文將研究注意力機制在該架構(gòu)上的使用。通過在匹配層加入全局注意力機制,使模型能夠關(guān)注到語句中最重要的語義信息。
圖4 查重算法模型架構(gòu)
首先,使用分詞模型如jieba、pkuseg等對查重系統(tǒng)數(shù)據(jù)預處理模塊提供的科技項目申報書段落句子,進行分詞和詞過濾處理,構(gòu)建初始科研文本A與科研文本B。然后,使用大數(shù)據(jù)量訓練好的Word2Vec模型將文本向量化,得到句子的向量矩陣,從而在學習時保留詞語的語義信息。具體操作如圖5所示。
圖5 Word2Vec生成向量矩陣
在經(jīng)過Word2Vec模型向量化之后,得到輸入句子中按每一個單詞先后順序?qū)挠行蛳蛄苛斜?。為了便于表示層Transformer訓練方便,本文需要保證得到的兩個向量列表長度一致。因為輸入文本得到的詞組數(shù)量有差異,詞向量列表可能會出現(xiàn)列表長度對不齊的問題。本文采用補齊與截取的方法來處理該問題。首先設置一個詞向量列表最大長度,當輸入詞向量列表長度小于該值時,在該詞向量列表的尾部填充向量直至列表長度等于最大長度。填充向量類型有隨機初始化向量或零向量,本文使用零向量進行填充。當輸入詞向量列表長度大于最大長度時,將超過最大長度的部分截取舍棄。補齊與截取操作的表達式如式(2)所示。在式(2)中,s表示輸出的詞向量序列,wi是輸出序列的詞向量,n表示句子詞向量個數(shù),l表示設置的最大長度,0→
j表示補齊的零向量。
本文在對數(shù)據(jù)集數(shù)據(jù)進行統(tǒng)計分析后,將最大長度設置為32。通過以上輸入層的操作,將原始文本轉(zhuǎn)換為長度一致的詞向量列表,然后將其輸入到表示層進行訓練。
該模型的表示層采用了基于Transformer機制的編碼層來進行文本特征提取,而非原始DSSM模型所用的DNN,這是由于Transformer的注意力機制與位置編碼可以比較好地保留了文本的順序信息,同時Transformer本身擁有非常強的特征提取能力。
Transformer編碼層自注意機制網(wǎng)絡層結(jié)構(gòu)由多頭自注意力機制與多頭注意力機制(Multi-Head Attention)兩部分組成[8]。多頭自注意力機制(Multi-Head Self-Attention)self-attention結(jié)構(gòu)在進行運算時需要使用矩陣Q(Query)、K(Key)、V(Value),這3 個矩陣是經(jīng)過線性變化self-attention輸入計算產(chǎn)生的。Self-attention在進行計算時使用了縮放點積,因此self-attention的輸出表達式見式(3),其中dk是Q、K兩個矩陣的列數(shù),即向量維度:
多頭注意力機制組成如圖6所示,主要思想是使用h個不同的線性變換對Q、K、V進行運算投影,然后拼接計算結(jié)果,進行線性轉(zhuǎn)換得到輸出結(jié)果。這就是多頭注意力的含義[9]。其計算方式如下:
圖6 多頭注意力結(jié)構(gòu)示意
通過多頭注意力后就是全連接前饋網(wǎng)絡,每個部分都添加了殘差連接和歸一化,本文不再展開介紹。Transformer得到的是單個詞的向量表示,而查重是以段落為單位,因此本文使用全局注意力(Global-Attention)來計算兩個段落的最終特征向量,如圖7所示。
圖7 全局注意力結(jié)構(gòu)
全局注意力模塊在一個對齊向量上,對所有時間序列的隱藏層進行壓縮。ct表示上下文向量,是編碼器中整體時間步的隱藏狀態(tài)加權(quán)和,時間步上隱藏狀態(tài)向量的維度即編碼器隱藏層的神經(jīng)元數(shù)量。其中,編碼器的隱藏狀態(tài)和上下文向量的維度一致。注意力權(quán)重的計算方式見式(6):
在式(6)中,αt(s)是當前時間步狀態(tài)在其他時間步狀態(tài)中的占比,ct是αt(s)的加權(quán)和,score是根據(jù)所有時間步與當前時間步的狀態(tài)平均值生產(chǎn)相似度的預定義函數(shù)。
經(jīng)過模型表示層獲取兩個段落的語義特征后,接下來需要將兩個段落語義特征進行配對,即存在相似的兩組段落視為匹配。在設置的數(shù)據(jù)集對中,每個段落都只有一個相似段落作為正樣本,而剩余段落都作為負樣本。在匹配過程中,可以使用余弦相似度等方式計算兩個段落的語義相似度。
在科技項目申報書查重研究中,可以直接將兩個科研文本相似段落的語義信息向量計算其余弦值[10]。但是通過表示層獲取的語義特征往往包含很多和文本主題無關(guān)的信息,而科研文本本身具有很強的指向性,每個句子信息指向明確,因此為了過濾不關(guān)鍵的附加信息,本文采用了注意力機制為關(guān)鍵信息賦以更高的權(quán)重,從而對它們施加更多的關(guān)注。實際上,本文使用了一種AOA Reader(Attention-over-Attention)模型用于匹配層,通過注意力機制的兩次疊加應用計算注意力權(quán)重。如兩個待匹配的科研文本記為A、B,首先以科研文本A記為Key值,由科研文本B查詢科研文本A,計算出從科研文本B到科研文本A的注意力權(quán)重;再計算出A到B的權(quán)重值;然后將權(quán)重值乘以A的語義表示,再將權(quán)重值乘以B的語義表示,既可計算出注意力機制中的科研文本A表示與科研文本B表示;最后計算兩者的余弦相似度[11-12]。
如本文通過DSSM表示層得到科研文本A的語義表示向量Z,科研文本B的語義表示向量X,兩個向量點乘后獲得關(guān)于科研文本A和科研文本B的交互信息矩陣,然后對交互信息矩陣以行和列為單位進行Softmax歸一化,從而計算出科研文本B到科研文本A的注意力權(quán)重α和科研文本A到科研文本B的注意力權(quán)重β。將α與Z相乘、β與X相乘,即可生成基于注意力機制的表示,計算兩者的余弦相似度R,就可以進行梯度更新來訓練模型[13-14]。
在模型訓練過程中,對于輸入的兩個科研文本段落集U與V,得到如下概率化定義:
γ為變量經(jīng)驗系數(shù),可以使歸一化后的概率更平滑,U與是所有的科研文本數(shù)據(jù)集合,集合內(nèi)容包括:①訓練樣本內(nèi)部與U存在關(guān)系的全部v(稱為正樣本),V+記為與U存在關(guān)聯(lián)關(guān)系的v。②訓練樣本中內(nèi)部任意一個U,在數(shù)據(jù)庫里選出隨機負樣本(與U不相關(guān)的v),這些負樣本記為V-,集合V包含U對應的所有相關(guān)集合V+與無關(guān)集合V-。
V-∈V
V+∈V
模型使用交叉熵作為損失函數(shù),使用Adam優(yōu)化器來迭代更新模型參數(shù)。損失函數(shù)如式(11)所示:
對于上文提出的基于DSSM架構(gòu)的查重算法,本文使用python語言實現(xiàn)了單獨的算法模型,使用中文文本相似度計指標來運用在模型的測試中,通過實驗來進行效果評估。
基于上文的算法模型結(jié)構(gòu),本文訓練模型需要對以下兩塊數(shù)據(jù)集進行準備。
(1)訓練詞向量所需語料庫。本文訓練詞向量所使用的語料庫,一部分來源于科研論文的摘要和結(jié)語,另一部分來源于百度百科、維基百科等平臺的公開數(shù)據(jù)。在獲取上述語料后,使用基于Skip-Gram方式的Word2Vec模型進行訓練。
(2)DSSM模型數(shù)據(jù)集。DSSM數(shù)據(jù)集由現(xiàn)有公開數(shù)據(jù)集和人工構(gòu)建數(shù)據(jù)集組成。其中,公開數(shù)據(jù)集為20 000 條數(shù)據(jù)量的相似文本,可用于常規(guī)的語義相似度訓練。人工構(gòu)建數(shù)據(jù)集的科研文本來源科技部提供的科研申報書,從各個學科分類中選取了10 000 條數(shù)據(jù)量的相似文本,并且經(jīng)過去冗余、刪除無關(guān)文本等操作,作為原始訓練數(shù)據(jù)。DSSM模型數(shù)據(jù)集的劃分方法如表1所示。
表1 DSSM模型數(shù)據(jù)集分布表
為了驗證本文查重模型的效果,在實驗中與一組成熟的語義相似度計算方法開展對比實驗,主要包括CBOW、DSSM、ARC-I[11]模型。在相同的輸入數(shù)據(jù)基礎上進行計算。這些模型對比實驗結(jié)果如表2所示。
表2 模型對比實驗結(jié)果
從表2 的實驗結(jié)果可以看出,本文的查重算法模型與其他語義相似度計算方法相比,準確率、F1 值都有所提升。在這些模型中,由于CBOW針對低層次文本特征進行計算,查重效果較差。DSSM的計算效果受其表現(xiàn)層DNN特征提取能力影響,實驗效果一般。相比CBOW、DSSM模型,ARC-I表現(xiàn)較好。最后,通過實驗對比,證明了本文提出模型的準確率、F1 值均高于其他語義相似度計算方法,在科技項目申報書相似度分析上具有更好的效果。
通過構(gòu)建科研文本數(shù)據(jù)集,設置實驗效果較好的模型參數(shù)。本文的算法模型在與其他模型進行對比實驗后,取得了最好的實驗準確率與F1 值??梢钥闯觯褂蒙疃葘W習的語義相似度計算模型,比原始語義相似度計算方法會取得更好的效果。本文提出的基于DSSM架構(gòu),使用Transformer編碼層替換DSSM表現(xiàn)層的算法模型具有良好的效果。其原因在于,Transformer編碼層考慮到了科研文本的位置信息,并且具有更深層次的特征提取能力,同時模型在匹配層使用了AOA Reader模型過濾器,充分提取交互能力,提升了計算科研項目文本相似度的準確率。
本節(jié)以科技項目申報書的查重報告為例,展示上述查重系統(tǒng)的成果。一份完整的查重報告包括4 個部分,分別為總體結(jié)論、每章內(nèi)容重復率、相似樣本列表、主體數(shù)據(jù)列表。
圖8 展示了查重報告的“總體結(jié)論”部分。在這部分主要展示某科技項目申報書的總相似比、與已立項項目相似比、主體/非主體部分相似比、與自己/他人項目相似比、與同單位/其他單位項目相似比等數(shù)據(jù),并以熱力圖形式直觀展示了申報書各個部分的相似程度。
圖9 展示了“每章內(nèi)容重復率”部分。在這部分展示了申報書各章節(jié)內(nèi)容的相似比。
圖9 每章內(nèi)容重復率
圖10 展示了“相似樣本列表”部分。在這部分展示了與所查項目書最為相似的若干個項目信息,并按照相似比從高到低的順序進行排列。
從圖8 至圖10 可以看出,本文所設計的查重系統(tǒng)可以較好地識別出科技項目申報書的重復或相似內(nèi)容,能夠滿足基本查重需求,具有準確、全面、可靠的特點。此外,本文提出的查重系統(tǒng)還具有以下優(yōu)點。
圖8 總體結(jié)論
圖10 相似樣本列表
(1)系統(tǒng)效率高,可動態(tài)擴容。由于采用了分布式架構(gòu),整個查重系統(tǒng)可將查重任務分配到各個任務節(jié)點上,從而實現(xiàn)并行處理,相較于單機架構(gòu)在效率方面有很大的提升。同時,該系統(tǒng)還支持動態(tài)擴容,因此在科技項目集中申報期間可通過增設節(jié)點來避免擁擠。
(2)系統(tǒng)功能靈活,可定制程度高。該系統(tǒng)除了最基本的全文查重功能外,還具有較多的可定制化功能,如該系統(tǒng)可根據(jù)申報人、單位、申報年份等屬性,動態(tài)調(diào)配查重項目庫,從而實現(xiàn)個性化的查重需求。
(3)系統(tǒng)查重能力強,可防止人為降重。該系統(tǒng)對于文本的查重策略是建立在語義相似度的基礎上的,因此不僅可以識別出完全重復的句子,而且可以識別出那些雖然單詞順序不同或更換部分詞語但是表達意思基本一致的相似句。
本文所提出的科技項目申報書查重系統(tǒng)主要面對如下3 個方面的挑戰(zhàn)[15-17]。
(1)原始申報書存在格式錯亂等問題。在查重過程中可以發(fā)現(xiàn),許多申報人所提交的申報書存在各種各樣的格式錯誤,如標題序號錯亂或遺漏,圖片、表格、公式等內(nèi)容顯示異常。這些問題會不同程度地影響查重結(jié)果的準確率,因此在后期需要科技管理部門對申報書的格式提出更加嚴格具體的規(guī)范要求,或者通過在查重系統(tǒng)中增加異常申報書識別功能。
(2)科技項目信息共享程度有待提高。目前,不同地區(qū)、不同層級的科技管理部門都有各自的項目計劃,并且彼此之間缺乏有效的信息共享機制,這就導致查重范圍局限在各自部門的內(nèi)部,查重結(jié)果的可信度也大打折扣。因此,未來有必要進一步實現(xiàn)各級科技管理系統(tǒng)的互聯(lián)互通,提高科技項目信息的共享程度。
(3)查重系統(tǒng)的智能化水平尚有很大的進步空間。設計查重系統(tǒng)的本意在于避免項目重復立項和檢測學術(shù)不端。但應該清楚地認識到,申報書的重復比例只能作為參考,不能簡單地認為重復比例高就意味著項目屬于重復立項或者涉及學術(shù)不端。其中一個主要原因就是申報書中難免包含一些極易重復但影響不大的文字,如項目背景介紹、國內(nèi)外研究現(xiàn)狀等,在計算最終重復比例時它們也會被考慮在內(nèi)。因此,未來可以更多地引入人工智能等技術(shù),讓系統(tǒng)能夠“理解”出申報書的核心內(nèi)容,再判斷重復與否。