陳志濤,李書琴,劉 斌,何進(jìn)榮
(西北農(nóng)林科技大學(xué) 信息工程學(xué)院,陜西 楊陵 712100)
在學(xué)術(shù)文獻(xiàn)數(shù)量飛速增長的當(dāng)代,據(jù)DBLP(digital bibliography & library project)[1]統(tǒng)計,在計算機(jī)相關(guān)領(lǐng)域每年約有30萬篇學(xué)術(shù)文獻(xiàn)發(fā)表,而如何讓科研工作者在海量學(xué)術(shù)文獻(xiàn)中高效挖掘出適合自己的科研文獻(xiàn)是一個亟待解決的問題。
為解決上述問題,引文推薦已成為一個新興的科研方向。文獻(xiàn)[2]提到引文推薦是指給定一篇文獻(xiàn)通過相關(guān)算法為其推薦匹配的參考文獻(xiàn)。引文推薦和傳統(tǒng)文獻(xiàn)推薦有著一定的區(qū)別,傳統(tǒng)的文獻(xiàn)推薦是通過分析作者日志等信息進(jìn)而發(fā)現(xiàn)和作者興趣相同的作者群體,根據(jù)這個作者群體從而產(chǎn)生推薦。而引文推薦是為目標(biāo)文獻(xiàn)或者根據(jù)目標(biāo)文獻(xiàn)中引文標(biāo)識符的上下文來推薦已有的研究成果。引文推薦主要分為兩類:全局推薦和局部推薦[3]。全局推薦通過分析目標(biāo)文獻(xiàn)中的標(biāo)題、摘要、作者等相關(guān)信息來挖掘相關(guān)引文,這樣可以較為全面的獲取相關(guān)文獻(xiàn),而局部推薦是根據(jù)引文標(biāo)識符的上下文進(jìn)行推薦,由于上下文信息量較少難以推薦較為相關(guān)的文獻(xiàn),因此本文聚焦于全局引文推薦。目前在引文推薦研究領(lǐng)域主要的推薦模型包括文本相似度、主題模型、協(xié)同過濾算法模型以及混合推薦方法等。文獻(xiàn)[4]是基于引文上下文信息感知的引文推薦方法,其分析每個引文的本地上下文信息以提取相關(guān)特征,但是本地上下文信息模糊以及查詢內(nèi)容過短,導(dǎo)致預(yù)測結(jié)果不準(zhǔn)確。文獻(xiàn)[5]是基于主題的相似性方法利用潛在主題模型找到主題相關(guān)的論文,但是僅僅依靠主題分布來衡量相關(guān)性是不夠的,大量論文可以共享同一主題,使得主題相似性不能很好地表示論文的重要性。這兩種方法主要側(cè)重于推薦基于相關(guān)內(nèi)容的論文,而忽略了論文的重要性和論文質(zhì)量等關(guān)鍵信息。文獻(xiàn)[6]利用引文鏈接導(dǎo)出結(jié)構(gòu)相似性和權(quán)威性,這個是對基于內(nèi)容推薦的一個很好的補(bǔ)充,但卻忽視了內(nèi)容的重要性。文獻(xiàn)[7]提出基于協(xié)同過濾和相似度計算相結(jié)合的混合式推薦方法,在數(shù)據(jù)稀疏的情況下,對新用戶和低被引文獻(xiàn)上表現(xiàn)不良。以上引文推薦相關(guān)推薦算法考慮特征單一,不能很好地把握論文的總體情況,而且存在局限性如推薦的結(jié)果過于專門化及冗余重復(fù),缺乏多樣性、新穎性、推薦的論文不夠權(quán)威等問題。
基于此,本文從多個角度來分析引文推薦,綜合考慮多種因素對引文推薦的影響。本文在PageRank算法上添加入鏈因子、出鏈因子及引用衰減因子來優(yōu)化PageRank算法的主題漂移問題和歧視新文獻(xiàn)等問題;根據(jù)近三年論文引用率和局部趨勢計算論文引用的局部活躍度;運用ID2vec改善重啟隨機(jī)游走算法的隨機(jī)性進(jìn)而提升查詢內(nèi)容的相關(guān)性;引入Author2vec來構(gòu)造作者相關(guān)度因子;最后通過多特征因子融合模型融合多個特征,進(jìn)而給候選論文集排序,將排名靠前的N篇論文推薦給用戶。實驗結(jié)果表明,本文提出的算法有效提升推薦效果,改善推薦質(zhì)量。
通過Word2vec模型將論文中的單詞、論文、論文ID以及論文作者進(jìn)行分布式表示學(xué)習(xí),轉(zhuǎn)化成算法所能識別的向量,進(jìn)而為后續(xù)引文推薦相關(guān)算法提供數(shù)據(jù)支撐。
Word2vec是谷歌公司開源的一款將詞表征成分布式詞向量的工具,它是一種深度學(xué)習(xí)的模型,基于神經(jīng)網(wǎng)絡(luò),通過感知機(jī)將底層特征轉(zhuǎn)換為高層的抽象特征。Mikolov等[8]在文獻(xiàn)中提到Word2vec包括兩種模型,分別是CBOW(continue Bag-of-Words)和Skip-gram模型,CBOW模型是通過上下文來預(yù)測目標(biāo)詞,Skip-gram模型是通過當(dāng)前詞來預(yù)測上下文。兩種模型都是包含了輸入層、投影層、和輸出層的三層神經(jīng)網(wǎng)絡(luò)如圖1所示。相比于CBOW模型,Skip-gram模型通過跳躍詞匯來構(gòu)造詞組,避免了因窗口大小限制導(dǎo)致丟失語義信息從而有更高的語義準(zhǔn)確率。本文應(yīng)用Skip-gram模型作為訓(xùn)練框架,訓(xùn)練窗口為5,指定詞向量的長度為200維。
圖1 CBOW和Skip-gram模型
Word2vec不僅在詞向量的訓(xùn)練中有很好的表現(xiàn),而且在其它場景的應(yīng)用也效果出眾。文獻(xiàn)[9]通過Word2vec發(fā)現(xiàn)維吾爾語深層語義關(guān)系進(jìn)而提升分類效果。Patrick Ng[10]應(yīng)用Word2vec去表示DNA序列,進(jìn)而發(fā)現(xiàn)基因之間的關(guān)系。Nevyana[11]通過應(yīng)用Word2vec訓(xùn)練Spotify上的用戶所點擊的音樂列表來找到相關(guān)音樂從而給用戶推薦相關(guān)音樂,在推薦的新穎性、偶然性和多樣性上有較好的表現(xiàn)。
本文通過論文標(biāo)題以及論文的關(guān)鍵字來表示這篇論文。假設(shè)論文i的標(biāo)題以及關(guān)鍵字共有Ki個詞,論文經(jīng)過Word2vec處理后得到的論文向量為Pi如式(1)所示
Pi=(vi1,vi2,…,vic,…,vin)
(1)
Wi(j)=(wj1,wj2,…,wjc,…,wjn),j∈{1,2,…,Ki}
(2)
式(2)中Wi(j)表示論文i第j個詞的詞向量,n表示每個詞向量的維度,wjc表示n維詞向量第c維的值,Ki個詞向量相加平均后即可得到論文i的向量Pi,如式(3)所示
(3)
每篇論文都會有一個參考文獻(xiàn)列表,這個列表的文獻(xiàn)基本是屬于同一個領(lǐng)域或者主題相關(guān)。參考文獻(xiàn)的引用列表有著一定的先后關(guān)系,在一篇論文前部分引用的基本都是前人一些較為成熟的研究成果,例如在論文的相關(guān)介紹部分會介紹本領(lǐng)域的國內(nèi)外研究狀況,引用的文獻(xiàn)為本領(lǐng)域相對權(quán)威的研究成果。在論文后部分引用的文獻(xiàn)基本是近期的成果,例如在實驗部分通常和近期的一些成果進(jìn)行對比,因為和近期的文獻(xiàn)成果對比其意義更大。綜上所述參考文獻(xiàn)引用列表在內(nèi)容上是相關(guān)的,在時間上有一定的先后關(guān)系?;谝陨戏治觯岢鯥D2vec概念模型,在非重疊論文ID數(shù)據(jù)集上應(yīng)用Word2vec進(jìn)行訓(xùn)練,進(jìn)而將論文ID轉(zhuǎn)換為分布式向量表示,如式(4)
IDi=(di1,di2,…,dvc,…,din)
(4)
式中:IDi為論文i的ID向量表示,dvc為向量的維度值。
本文給每篇論文分配唯一的ID值,用ID值來代表這篇論文。在構(gòu)造ID數(shù)據(jù)集的過程中,ID值相當(dāng)于一個單詞,論文的所有參考文獻(xiàn)的ID值放置在一個文件中相當(dāng)于一篇文章。由于ID數(shù)據(jù)集相對較小,所以將ID數(shù)據(jù)集進(jìn)行重組,根據(jù)文獻(xiàn)[10]中提到的方法,將一個序列轉(zhuǎn)化成非重疊窗口大小為3的序列,并且這種方法的效果比重疊窗口數(shù)據(jù)構(gòu)造方式在K鄰近算法上表現(xiàn)更好。本文通過非重疊窗口大小為3的形式構(gòu)造數(shù)據(jù)集,假設(shè)一篇論文的引用文獻(xiàn)列表對應(yīng)的ID值原始序列為QWERTYZASDFG,其中每個字母代表一篇論文的ID值,如下序列1、序列2、序列3為原始序列生成的非重疊序列,序列4為其生成的重疊序列。
序列1:QWE RTY ZAS DFG
序列2:WER TYZ ASD
序列3:ERT YZA SDF
序列4:QWE WER ERT RTY TYZ YZA ZAS ASD SDF DFG。
通過此種方法增加論文ID的數(shù)據(jù)量,進(jìn)而能提升訓(xùn)練的精度。通過ID2vec可以發(fā)現(xiàn)論文中共被引關(guān)系即兩篇論文如果被其它論文同時引用的次數(shù)越多,兩篇論文的ID向量相似度會越高。ID2vec也能發(fā)現(xiàn)共引關(guān)系即兩篇論文同時引用一篇文獻(xiàn),如文獻(xiàn)A和共引文獻(xiàn)C有很高的相似度,同時文獻(xiàn)B和共引文獻(xiàn)C也有很高的相似度,這樣文獻(xiàn)A和文獻(xiàn)B也就有相對較高的相似度。
一篇論文有多名作者,而這多名作者有較強(qiáng)相關(guān)性,在研究領(lǐng)域方面其基本屬于同一個研究領(lǐng)域,在空間方面其基本是同一個學(xué)院或者同一個學(xué)校,同時論文的作者和參考文獻(xiàn)的作者在研究內(nèi)容上也存在一定相關(guān)性。本文基于以上分析提出Author2vec概念模型,將論文作者和參考文獻(xiàn)作者通過上文提到的窗口為3的非重疊序列構(gòu)造方式構(gòu)造數(shù)據(jù)集,在此數(shù)據(jù)集上運行Word2vec,將論文作者進(jìn)行分布式表示。如式(5)所示
Aj=(aj1,aj2,…,ajc,…,ajn)
(5)
式中:Aj為作者j的向量表示,ajc為向量的維度值。
多特征因子融合引文推薦算法(MixFeatures)的核心思想是:論文鏈入鏈出關(guān)系越多,論文越重要,通過引用衰減函數(shù)來調(diào)節(jié)新舊論文的引用情況;融合論文的近三年引用頻率和近兩年的引用趨勢挖掘論文的局部引用特性;通過ID2vec計算論文引用網(wǎng)絡(luò)中相鄰節(jié)點的相似性改進(jìn)重啟隨機(jī)游走算法,進(jìn)而提升查詢相關(guān)度并且優(yōu)化主題漂移問題;通過Author2vec計算作者之間的相關(guān)度,通過作者之間的相關(guān)性進(jìn)一步優(yōu)化待推薦結(jié)果集的排序結(jié)果。
算法的整體流程如圖2所示,主要包括兩個主要部分:
(1)在線下部分,本文首先通過Word2vec將單詞、論文、論文ID、作者轉(zhuǎn)換成向量表示。其次計算整體影響力、局部活躍度、查詢相關(guān)度及作者相關(guān)度,最后通過多特征因子融合模型進(jìn)行有效融合。
(2)在線上部分,根據(jù)用戶的查詢語句做相關(guān)性計算,依據(jù)多特征因子融合模型打分結(jié)果進(jìn)行排序,將最相關(guān)的N篇文獻(xiàn)進(jìn)行推薦。
圖2 多特征因子融合算法整體流程
本文基于鏈接網(wǎng)絡(luò)中PageRank算法[12]引入整體影響力模型,模型主要思想是:論文入鏈和出鏈越多,論文越重要,添加引用衰減函數(shù),提升新論文的排序位置同時降低舊論文的權(quán)重。整體影響力因子如式(6)所示
(6)
式中:d為阻尼系數(shù)通常取0.85,Win為鏈入因子,Wout為鏈出因子,decay為引用頻率衰減函數(shù)。
在引文網(wǎng)絡(luò)中權(quán)威論文應(yīng)該在排序過程中有較為核心的排序位置并且起到關(guān)鍵作用,這就要求該論文有較多的入鏈同時也有較多的出鏈。但是原始的PageRank算法基于論文的正向鏈接來均分論文的PR值,導(dǎo)致一些質(zhì)量相對差的論文有較高的PR值引起論文主題漂移等問題。因此在計算論文的PR值時應(yīng)根據(jù)論文的入鏈數(shù)目和出鏈數(shù)目來計算論文的重要程度同時分配PR值,這樣權(quán)威的論文就會有較為合理的排名。同時在引文網(wǎng)絡(luò)中認(rèn)為入鏈更為重要,所以在整體權(quán)威度模型中,給鏈入因子分配權(quán)重較鏈出因子權(quán)重大一些,實驗結(jié)果表明α取值為0.7效果最佳。鏈入因子Win[13]和鏈出因子Wout的相關(guān)計算公式如式(7)和式(8)
(7)
(8)
式(7)、式(8)中,Iu表示論文u的入鏈,Ou表示論文u的出鏈,B(v)是指向論文v的引用論文集合,Ip是論文v引用論文的入鏈,Op是論文v所引用論文的出鏈。
一個很重要的事實是一個作者更傾向于引用近期發(fā)表的論文去支撐他的觀點。由此觀點可以得出一篇論文是有自己的引用周期,在論文發(fā)表的一段時間里論文本身的被引用率較高而隨著時間的增長論文的被引用頻次是逐步降低的。如圖3所示,文獻(xiàn)[14]中描繪了ANN、KDD、EMNLP這3個數(shù)據(jù)集下隨著時間的增加而論文的被引用頻率逐步率衰減的過程。從圖中可以得出不同期刊的論文的引用衰減曲線相似,從而得出引文的引用衰減曲線和具體的期刊關(guān)系較小。由此可知在計算論文的PageRank值的同時,論文的發(fā)表時間應(yīng)作為一個因素考慮進(jìn)來,這樣能避免發(fā)表久的論文積累過多的引用,導(dǎo)致PageRank值過高,同時也能優(yōu)化新發(fā)表的論文有可能是質(zhì)量高的論文而排名靠后等問題。文中提出如式(9)引用衰減函數(shù),用來擬合ANN數(shù)據(jù)集引用率衰減。式中decay表示衰減值,x表示當(dāng)前時間和論文發(fā)表時間差
decay=0.2297×exp(-0.2031×x)
(9)
圖3 論文引用衰減圖
在計算論文的整體權(quán)威度時,論文的引用頻率衰減因子是一個較為重要的特征,這個特征主要描述了論文的整個生命周期,這個生命周期是可以用一個負(fù)指數(shù)模型的單調(diào)遞減函數(shù)表示。所有論文的引用頻率在整個生命周期是呈現(xiàn)下降趨勢,然而論文也有各自的局部特征,也就是說一篇論文會在某個時期,它的價值是增長的,而這個增長時期有可能發(fā)生在論文發(fā)表的初期,或者是發(fā)表了多年的論文在它生命周期本應(yīng)該呈現(xiàn)下降的趨勢時,反而呈現(xiàn)出上升狀態(tài)。所以僅僅用論文的生命周期去刻畫一篇論文的引用規(guī)律是不夠的,基于此引入局部活躍度,其表達(dá)一篇論文在某個局部時期表現(xiàn)出來的規(guī)律。
作者更關(guān)注近三年發(fā)表的論文,且近三年的論文有較高參考價值,因此局部活躍度因子包括近三年的引用頻率[15],同時在近三年的引用頻率上進(jìn)一步細(xì)化局部特性融合近兩年的引用局部趨勢,最終局部活躍度模型如式(10)
(10)
式(10)中文獻(xiàn)P的局部活躍度記作f(p),c表示近三年的被引用次數(shù),t是文獻(xiàn)的發(fā)表時間和推薦時間差,以一年為單位。例如今年是論文推薦的年份,那么本文設(shè)定前年為yo,去年為yn,而在yo時,論文的引用次數(shù)為c2,在yn的引用次數(shù)為c1,那么局部趨勢定義為c1/c2。當(dāng)論文發(fā)表在yo以后,表明這篇論文在近兩年發(fā)表,由于論文較新無法獲得更多的引用頻次,因此應(yīng)用其它論文發(fā)表前兩年的局部趨勢的均值來替代當(dāng)前文獻(xiàn)的局部趨勢。當(dāng)論文發(fā)表在yo以前,并且在yo和yn時間內(nèi)都沒有被引用過,這種情況局部趨勢值為R,其值如式(11),此時的R值和引文衰減因子函數(shù)重合如式(9),當(dāng)時間差為1的時候
R=0.2297×exp(-0.2031)
(11)
(12)
式(12)中A(i)為文獻(xiàn)的平均局部活躍度,n為所有論文的個數(shù),將所有論文的局部活躍度值進(jìn)行歸一化,就得到論文的平均局部活躍度。
本文利用改進(jìn)的重啟隨機(jī)游走算法來度量論文的查詢相關(guān)度,雖然有很多游走類的算法可以進(jìn)行查詢相關(guān)度的計算,但經(jīng)過相關(guān)論文的證實,重啟隨機(jī)游走算法RWR(random walk with restart)[16]是一種高效的計算引文網(wǎng)絡(luò)中的節(jié)點和查詢輸入之間的相關(guān)度的算法。
在重啟隨機(jī)游走算法中,假設(shè)隨機(jī)游走粒子從節(jié)點x出發(fā),根據(jù)引文網(wǎng)絡(luò)從一點跳躍到另一個節(jié)點,同時每一步跳轉(zhuǎn)都會有α概率可能性從A節(jié)點重新出發(fā)而跳躍到其它鄰居節(jié)點的概率為1-α。重啟隨機(jī)游走算法如式(13)所示
r(t+1)=(1-α)Mr(t)+αq
(13)
(14)
式(13)、式(14)中M為概率轉(zhuǎn)移矩陣,其值表示隨意游走粒子從a節(jié)點游走到b節(jié)點的概率,如果a節(jié)點和b節(jié)點有引用關(guān)系,則c=1;否則c=0,Da表示節(jié)點a的出度。r(t)表示隨機(jī)游走過程中第t步訪問節(jié)點a的概率,q為查詢向量,r(0)等于q。
根據(jù)以上分析可以得知在隨機(jī)游走過程中狀態(tài)轉(zhuǎn)移矩陣M對最終的排序結(jié)果起到至關(guān)重要的作用。在傳統(tǒng)的重啟隨機(jī)游走算法中,節(jié)點之間的概率轉(zhuǎn)移是均分的,并未考慮節(jié)點之間的相互影響,從而導(dǎo)致隨機(jī)性較強(qiáng)及預(yù)測結(jié)果精度較低等問題。而本文認(rèn)為在隨機(jī)游走過程中游走的概率不應(yīng)該是一個平均值,而是根據(jù)節(jié)點之間的相關(guān)度,來給出不同的游走概率,這樣每個節(jié)點在迭代平穩(wěn)以后有一個更為合理的值。
本文通過ID2vec來計算相鄰節(jié)點之間的相似性并融合節(jié)點之間固有鏈接關(guān)系進(jìn)一步重新計算概率轉(zhuǎn)移矩陣的初始值。因此在迭代過程中使得相關(guān)性較大的節(jié)點之間傳遞較高的分值,相關(guān)性較低的節(jié)點之間吸收相應(yīng)較少的分值,最終致使節(jié)點獲得一個較為合理的權(quán)重。Word2vec在單機(jī)條件下,24小時內(nèi)可以訓(xùn)練千億詞,則本文提出的ID2vec可以在24小時內(nèi)找到千億篇文章的相關(guān)性。ID2vec訓(xùn)練出來的向量表示論文是從全局角度考慮,而并非僅僅從文本內(nèi)容考慮,這個更符合概率轉(zhuǎn)移矩陣的相關(guān)性計算。
首先通過ID2vec生成引文網(wǎng)絡(luò)中每個節(jié)點的向量表示,假設(shè)式(15)表示任意節(jié)點a的向量,假設(shè)式(16)表示任意節(jié)點b的向量,節(jié)點a與節(jié)點b的相關(guān)度為IDSim(a,b)。歐式距離經(jīng)常被用來計算兩點之間的距離,因此應(yīng)用歐式距離來表示引文網(wǎng)絡(luò)上任意節(jié)點之間的相似度
Va=[x1,x2,x3,…,xn]
(15)
Vb=[y1,y2,y3,…,yn]
(16)
在無向的引文鏈接網(wǎng)絡(luò)中任意兩個節(jié)點a,b之間的相似度計算如式(17)
(17)
在改進(jìn)的轉(zhuǎn)移矩陣中,引入節(jié)點之間的相似度,節(jié)點的權(quán)值分配受兩方面影響:一部分為節(jié)點固有鏈接關(guān)系,代表引文網(wǎng)絡(luò)的固有結(jié)構(gòu)影響力;一部分為節(jié)點之間的相似度,代表文獻(xiàn)之間的內(nèi)容上的相似性。在無向引文網(wǎng)絡(luò)中任意兩個節(jié)點a,b之間的轉(zhuǎn)移概率如式(18)
(18)
式中:N(a)表示節(jié)點a的鄰居節(jié)點集合; ∑z∈N(a)IDSim(Va,Vz) 用于IDSim(Va,Vz) 的歸一化操作;參數(shù)β為兩種影響因素的權(quán)重因子,用于調(diào)節(jié)影響因素占比。引文網(wǎng)絡(luò)中節(jié)點a與節(jié)點b之間存在鏈接關(guān)系,則cab=1,否則cab=0。ka表示節(jié)點a的在引文網(wǎng)絡(luò)中的度。
本文將ID2vec和RWR算法結(jié)合,因此命名本算法為IVRWR,算法的相關(guān)偽代碼如下:
算法: IVRWR
輸入: 查詢句子w, 引文網(wǎng)絡(luò)鄰接矩陣M(mij), 重啟因子α, 調(diào)節(jié)因子β;
輸出: 穩(wěn)態(tài)向量r;
(1)利用1.3節(jié)中ID2vec生成引文網(wǎng)絡(luò)中節(jié)點向量;
(2)利用1.2節(jié)中論文向量生成方法生成論文向量和查詢語句向量, 進(jìn)而做相似度計算生成查詢向量q;
(3)根據(jù)式(16)計算引文網(wǎng)絡(luò)鄰接矩陣的轉(zhuǎn)移概率P;
(6)r(t+1)=(1-α)Μr(t)+αq
(8)t←t+1;
(9) end of while
(10)returnr(t)//返回穩(wěn)態(tài)向量
在引文推薦中有很多工作是發(fā)現(xiàn)論文作者之間的關(guān)系進(jìn)而來提升個性化推薦精度。Guo等[17]通過作者之間的共作者關(guān)系和作者發(fā)表論文的主題去定義作者與作者的相關(guān)度,進(jìn)而構(gòu)建異構(gòu)圖進(jìn)行推薦。Yu等[18]提出了一種有標(biāo)記的有向圖模型,其不僅利用文章內(nèi)容而且利用共作者關(guān)系作為隱含信息進(jìn)行科技文獻(xiàn)推薦。這些方法是較為細(xì)粒度的發(fā)現(xiàn)作者之間的關(guān)系,算法運行效率較低,而本文通過一個粗粒度的方法去發(fā)現(xiàn)作者之間的關(guān)系,運行效率較高。
論文作者之間存在多種關(guān)系,如共作者關(guān)系也就是說幾名作者是論文的共同作者,這樣幾名作者的研究領(lǐng)域相關(guān)性較大。作者發(fā)表的論文之間有引用關(guān)系,引用論文的作者和被引用論文的作者也是有一定的相關(guān)性,但是這種關(guān)系相對共作者關(guān)系較弱。本文進(jìn)行作者相關(guān)性討論,即論文作者的相關(guān)性可以用來調(diào)整引文推薦過程中的排序,當(dāng)用戶搜索相關(guān)論文時,根據(jù)在1.4節(jié)中的Author2vec算法將用戶轉(zhuǎn)化成向量表示,如式(19)
Vu=[x1,x2,x3,…,xn]
(19)
得到用戶向量,用戶向量和候選論文集中每篇論文中的多個作者向量計算余弦相似度,并且求和得到用戶和候選論文集的作者相關(guān)度,如式(20)
(20)
式中:R(u,p)表示用當(dāng)前用戶u和候選論文的相關(guān)度,Sim(u,pi)表示當(dāng)前用戶u和論文p的作者余弦相似度,k表示論文作者數(shù)量。
為將上文提到的多種特征因子有效結(jié)合,本文提出多特征因子融合模型。整體影響力因子(GP)改善了Page-Rank值平均分配和偏重舊論文的問題,給每篇論文一個合理的影響力權(quán)重。局部活躍度(LP)更好地挖掘有潛力的新文獻(xiàn),適當(dāng)提升其排名,更多地展現(xiàn)在用戶面前,使其價值得以體現(xiàn);查詢相關(guān)度(SP)改善了隨機(jī)游走算法的隨機(jī)性,進(jìn)一步優(yōu)化主題漂移等問題,使和查詢向量相關(guān)的文獻(xiàn)排名更為靠前;作者相關(guān)度(AP)通過作者之間的關(guān)系進(jìn)一步挖掘論文之間的隱性關(guān)系,將個性化信息考慮到推薦過程中,進(jìn)而細(xì)化推薦權(quán)重。在以上特征因子基礎(chǔ)上為了能更好的將各種特征因子進(jìn)行有效結(jié)合,本文通過線性擬合的方法提出融合模型如式(21)
RankScore=αGP+βLP+γSP+?AP
(21)
式中:4個特征因子的權(quán)重滿足和為1,通過調(diào)節(jié)權(quán)重來確定最合理的組合方式。
本文實驗數(shù)據(jù)采用包括完整論文信息的ANN數(shù)據(jù)集(http://clair.eecs.umich.edu/aan/index.php)。本文從數(shù)據(jù)集中提取16 527篇文章包括完整的論文摘要和標(biāo)題。數(shù)據(jù)集的年限是從1965年到2013年。每篇論文都經(jīng)過處理,包括如下步驟:①抽取論文的標(biāo)題、摘要、關(guān)鍵字;②剔除只含有3個或更少字符的單詞;③去除停用詞。
在預(yù)處理完的數(shù)據(jù)集中,本文用2013年以前的15 069篇論文以及9744名作者數(shù)據(jù)作為訓(xùn)練集,2013年的1458篇論文和1672名作者作為測試集,實驗數(shù)據(jù)見表1。在此數(shù)據(jù)集基礎(chǔ)上分別構(gòu)造不同格式的數(shù)據(jù)集:
(1)單詞集:將訓(xùn)練集和測試集中所有的論文中的數(shù)據(jù)構(gòu)造單詞集,用Word2vec訓(xùn)練生成詞向量。
(2)論文ID集:將2013年以前的論文ID構(gòu)造數(shù)據(jù)集,根據(jù)文中1.3節(jié)中提到的方式構(gòu)建并用Word2vec生成論文ID向量。
(3)論文作者集:將2013年以前作者如文中1.4節(jié)方式構(gòu)造數(shù)據(jù)集用Word2vec訓(xùn)練生成作者向量。
表1 實驗數(shù)據(jù)
在推薦過程中,將測試集的論文標(biāo)題和關(guān)鍵字作為查詢語句,根據(jù)通用做法將論文的真實引用論文列表作為正確的推薦結(jié)果,主要測評本文算法和正確結(jié)果之間的匹配度,進(jìn)而驗證本算法的合理性以及有效性。
實驗環(huán)境為Ubuntu16.04操作系統(tǒng)下,運行原生Word2vec代碼進(jìn)行數(shù)據(jù)訓(xùn)練。在Windows7操作系統(tǒng)下,運行本文算法以及相關(guān)對比算法,算法開發(fā)環(huán)境為Anaconda2 Spyder,Python版本號為2.7版。
在測評方面運用推薦領(lǐng)域常用指標(biāo)Recall和NDCG(normalized discounted cumulative gain)[19]其分別為推薦的準(zhǔn)確性和預(yù)測的等級質(zhì)量評價指標(biāo)。
(1)召回率(Recall)
召回率定義為在推薦列表中的真正被引用文獻(xiàn)在測試文獻(xiàn)的參考文獻(xiàn)集中所占比率,召回率是在測評推薦相關(guān)性的一個重要指標(biāo)。召回率的計算公式如式(22)
(22)
式中:Q表示查詢次數(shù),N表示推薦列表長度,Rp是推薦列表所推薦的N個參考文獻(xiàn)集合,Tp為測試文獻(xiàn)真實的參考文獻(xiàn)集合,Rp∩Tp是推薦列表中正確的推薦結(jié)果集合。
(2)NDCG
在推薦系統(tǒng)中對推薦的相關(guān)論文的位置非常敏感,相關(guān)的論文排序越靠前越好。本文通過NDCG這個測評指標(biāo)去表示這一個規(guī)律。NDCG公式如式(23)
(23)
式中:Q為查詢的次數(shù),N為推薦列表的長度。ri為第i篇論文的相關(guān)度,在本文中當(dāng)ri=1,則論文為正確的推薦結(jié)果,當(dāng)ri=0,則論文為不相關(guān)推薦結(jié)果。IDCG@N是一個理想的推薦結(jié)果值用來規(guī)格化,其公式如式(24)所示
(24)
式中: |REL|為查詢列表中正確的推薦結(jié)果的個數(shù)。ri的值和NDCG@N中的值相同。
3.3.1 不同數(shù)據(jù)集下ID2vec對比分析
本文在2013年以前的數(shù)據(jù)基礎(chǔ)上,根據(jù)文中1.3節(jié)介紹的數(shù)據(jù)集構(gòu)造方法,分別構(gòu)造3種不同的數(shù)據(jù)集:重疊數(shù)據(jù)集,非重疊數(shù)據(jù)集,原始數(shù)據(jù)集?;?種數(shù)據(jù)集生成ID2vec,通過十折交叉驗證的方法計算召回率,召回率的對比如圖4所示,縱坐標(biāo)為召回率,橫坐標(biāo)為推薦列表前k個數(shù),可以清楚看到非重疊數(shù)據(jù)集的效果明顯好于另外兩者,主要原因為非重疊數(shù)據(jù)集相對前兩者數(shù)據(jù)量有提升,而且非重疊數(shù)據(jù)集的構(gòu)造方式更適合Skip-gram模型進(jìn)行采樣。
圖4 不同ID數(shù)據(jù)集召回率對比
3.3.2 查詢相關(guān)度對比
對比RWR算法和本文提出的IVRWR算法在召回率和NDCG兩個測評指標(biāo)上的表現(xiàn)。根據(jù)實驗設(shè)置調(diào)節(jié)參數(shù)β取值為0.75,重啟因子α取值為0.9。實驗過程通過十折交叉驗證來得出結(jié)果。如圖5所示,縱坐標(biāo)為召回率,橫坐標(biāo)作為推薦結(jié)果的前N個值,IVRWR算法相對RWR算法在召回率上平均提升了8.13%;如圖6所示,IVRWR算法相對RWR算法在召回率上平均提升了29.7%。由此可知IVRWR算法不僅在推薦的正確性上有一定改善而且在推薦的順序上也有較大的提升。由于IVRWR算法重新定義了引文網(wǎng)絡(luò)中不同節(jié)點的轉(zhuǎn)移概率,使其在狀態(tài)轉(zhuǎn)移過程中考慮鄰居節(jié)點內(nèi)容相關(guān)性,進(jìn)而改善隨機(jī)游走隨機(jī)性,從而提升推薦效果。
圖5 原始RWR算法和IVRWR算法召回率對比
圖6 原始RWR算法和IVRWR算法NDCG對比
3.3.3 MixFeatures算法調(diào)節(jié)可變系數(shù)
為了有效融合上文提到的4個特征因子,本實驗通過十折交叉驗證方法進(jìn)行參數(shù)調(diào)節(jié),選擇召回率在Top-N分別為25、50、75、100時的值作為評價指標(biāo)。隨機(jī)給出多組數(shù)據(jù)進(jìn)行分析,如表2當(dāng)查詢相關(guān)度權(quán)重大于0.5時測評指標(biāo)有明顯上升,由此可知查詢相關(guān)度在推薦過程中起到主要作用,而有部分原因為其抑制PageRank算法的主題漂移現(xiàn)象,使相關(guān)論文排名更靠前;全文影響力分配相對較高權(quán)重可以提升推薦質(zhì)量,因為在全局影響力中改善PR值均分問題和融合論文衰減因子致使舊論文下沉新論文上浮,這樣更符合推薦的意圖;作者相關(guān)度較局部活躍度對結(jié)果有更大的影響,表明相關(guān)作者的論文的相關(guān)性更大。最終確定當(dāng)(α,β,γ,?)∈(0.2,0.1,0.5,0.2) 時實驗效果最好。
表2 可變參數(shù)對比
3.3.4 不同算法推薦效果對比分析
最后通過本文提出的多特征因子融合算法和其它算法進(jìn)行對比,實驗結(jié)果對比如圖7所示。相對比算法介紹如下:
(1)GLOPageRank算法[20]:根據(jù)引文網(wǎng)絡(luò)以及查詢內(nèi)容計算出每個節(jié)點的PageRank值,通過PageRank值進(jìn)行排序,值越高推薦的機(jī)會越大,這種方法是基于圖結(jié)構(gòu)的。
(2)TopicSim:查詢文本的主題和候選論文集中的主題進(jìn)行相似度計算,同樣相似度越高排名越靠前。本文用的是Topic2vec算法[21]將候選論文的主題通過分布式表示出來,再將查詢文本也用其分布式表示出來,最后計算相似度,這種方法是基于主題的。
(3)BM25[22]:此模型是概率檢索模型中比較有代表性的一個算法,根據(jù)用戶的查詢內(nèi)容計算每個文檔的BM25值,進(jìn)而根據(jù)這個值來排序,值越高排序越靠前,這種方法是基于檢索的。
圖7 不同推薦算法召回率對比
通過實驗對比圖7可知,GLOPageRank和TopicSim算法的推薦效果相對較差,因為僅僅通過引用關(guān)系或者是內(nèi)容相關(guān)性來進(jìn)行推薦論文存在一定的局限性。BM25算法效果相對前兩者較好,因為BM25算法考慮的權(quán)重較多包括IDF因子、查詢詞在文檔中的權(quán)重、以及查詢詞自身的權(quán)重等。而本文提出的MixFeatrues算法有較為明顯的優(yōu)勢,因為考慮了多方面特征因子,綜合這些特征因子給候選論文集一個合理的Rank值,這樣通過排序后推薦效果明顯有提升。
對比分析傳統(tǒng)引文推薦算法中的不足,及已有解決算法的單一性,提出一種有效結(jié)合整體影響力因子、局部活躍度因子、查詢相關(guān)度因子及作者相關(guān)度因子的MixFeatures算法,并達(dá)到優(yōu)化引文推薦算法的目標(biāo)。本文算法通過改進(jìn)PageRank算法解決平均分配PR值問題和偏重舊論文的問題;結(jié)合局部活躍度因子,細(xì)粒度發(fā)現(xiàn)論文的引用情況;引入通過ID2vec改進(jìn)的重啟隨機(jī)游走算法的查詢相關(guān)度,提高查詢結(jié)果的相關(guān)性,避免論文主題漂移的問題;添加基于Author2vec的作者相關(guān)度,通過作者之間的相關(guān)性進(jìn)而發(fā)現(xiàn)論文之間的相關(guān)性。
實驗結(jié)果表明,本文提出的MixFeatures算法有效改善目前引文推薦算法低效,推薦質(zhì)量差等問題;IDRWR算法有效改善了隨機(jī)游走算法在狀態(tài)轉(zhuǎn)移過程中存在較強(qiáng)的隨機(jī)性問題,提升了查詢相關(guān)性,為后續(xù)研究提供了新的思想。在接下來的研究過程中,將重點投入到隨機(jī)游走重啟算法在異構(gòu)圖中的應(yīng)用,通過ID2vec和Author2vec兩個概念模型,改善異構(gòu)圖中隨機(jī)游走狀態(tài)轉(zhuǎn)移隨機(jī)性,進(jìn)而提升推薦效果。