王卓昊 徐晨陽 江俊鵬 王東
(中國科學技術信息研究所,北京 100038)
根據(jù)國家統(tǒng)計局2019年發(fā)布的《科技發(fā)展大跨越 創(chuàng)新引領譜新篇——新中國成立70周年經(jīng)濟社會發(fā)展成就系列報告之七》,2018年我國按折合全時工作量計算的科研人員總量已達到419萬人年,連續(xù)6年位居世界第一[1]。如果將科研人員視為節(jié)點,那么眾多的科研人員就組成了一張巨大的圖或網(wǎng)絡,根據(jù)論文合著、項目合作、師承等關系,該網(wǎng)絡可劃分為若干社區(qū)。借助數(shù)據(jù)挖掘技術從海量的科研數(shù)據(jù)中挖掘出科研關系網(wǎng)絡,進而發(fā)現(xiàn)科研人員社區(qū),對我國的科技管理工作具有重要意義:一方面,借助科研人員社區(qū)可以有針對性地建立一支完備的科研隊伍,滿足我國高水平科技項目的研發(fā)需求;另一方面,借助科研人員社區(qū)可以發(fā)現(xiàn)任意兩個科研人員之間的聯(lián)系緊密程度,有利于踐行項目申報、職稱評審等程序的回避原則,維護科研環(huán)境的公平公正。
目前,關于科研關系網(wǎng)絡發(fā)現(xiàn)的研究已經(jīng)取得了一些進展:夏歡等[2]針對中國知網(wǎng)學術論文,利用Pajek構建論文合著網(wǎng)絡,進而挖掘出科研社區(qū),并與經(jīng)典的社區(qū)發(fā)現(xiàn)算法Girvan-Newman(GN)算法[3]進行了性能對比;羅紀雙[4]同樣針對科研論文,通過改進Louvain算法對科研合作網(wǎng)絡進行社區(qū)劃分,并基于FR算法優(yōu)化了社區(qū)內部的可視化布局;蒲實等[5]針對科研網(wǎng)絡的動態(tài)特征,提出一種基于動態(tài)科研網(wǎng)絡表示學習的社區(qū)檢測算法DANE-CD,并與既有算法在準確率、歸一化互信息和模塊度3個指標上進行了對比。以上研究雖然獲得了一定的成果,但是仍然存在一些問題,主要體現(xiàn)在兩點:一是現(xiàn)有研究大多基于論文合著或項目合作關系構建社區(qū),沒有綜合考慮到其他關系(如同事、合伙人、師承、校友、同鄉(xiāng)等),因此構建的科研關系網(wǎng)絡不能全面地反映科研人員之間的聯(lián)系緊密程度;二是所使用的社區(qū)發(fā)現(xiàn)算法(如Louvain、GN等)在超大規(guī)模網(wǎng)絡上的效率不夠高,社區(qū)構建和更新的效率較低。
鑒于以上問題,本文在科研人員多種關系的基礎上,對經(jīng)典的網(wǎng)頁排名算法PageRank[6]進行改進,提出一種面向科研關系網(wǎng)絡的發(fā)現(xiàn)算法,能夠對科研人員之間的關系進行多維刻畫,建立科研關系網(wǎng)絡模型,從單個科研人員出發(fā),快速發(fā)現(xiàn)該科研人員所處的局部社區(qū)。相對于現(xiàn)有的科研關系網(wǎng)絡發(fā)現(xiàn)方法,本文提出的算法不僅降低了社區(qū)發(fā)現(xiàn)的復雜度,而且提高了所發(fā)現(xiàn)社區(qū)的可用性。
在現(xiàn)實世界中,許多系統(tǒng)都可以用網(wǎng)絡進行描述,如社交網(wǎng)絡、萬維網(wǎng)、公路鐵路交通網(wǎng)等,網(wǎng)絡中的節(jié)點表示系統(tǒng)中的個體,節(jié)點之間的邊表示個體之間的關系。一個網(wǎng)絡可認為是由若干個社區(qū)(community)組成的,同一社區(qū)內的節(jié)點之間的聯(lián)系較為緊密,而社區(qū)與社區(qū)之間的聯(lián)系較為松散。社區(qū)發(fā)現(xiàn)(Community Detection)算法就是用來發(fā)現(xiàn)網(wǎng)絡中的社區(qū)結構,主要可分為以下3種。
(1)傳統(tǒng)的社區(qū)發(fā)現(xiàn)算法。這類算法主要分為兩類:第一類是基于圖分割的算法,如譜二分法[7]、Kernighan-Lin(KL)算法[8]等,它們的基本思路是將圖分為預定義大小的若干個簇或子圖,使得子圖內部的邊數(shù)比子圖之間的邊數(shù)更密集;第二類是基于聚類的方法,包括分層聚類[9]、劃分聚類[10]、譜聚類[11]等,這類算法基于圖的鄰接矩陣表示方法,使用常規(guī)的算法對其中的子矩陣進行聚類。
(2)基于分裂的社區(qū)發(fā)現(xiàn)算法。這類方法基于低相似性刪除網(wǎng)絡中的簇間的邊,從而將社區(qū)彼此分離,前面提到的GN算法就屬于這類算法。
(3)基于模塊度優(yōu)化的社區(qū)發(fā)現(xiàn)算法。模塊度(modularity)是用來衡量一個社區(qū)的劃分是否優(yōu)良的指標,可以簡單將其理解為每一個社區(qū)內部的邊的權重之和減去所有與社區(qū)節(jié)點相連邊的權重之和。這類方法可進一步分為貪心法、模擬退火法、極值優(yōu)化法、譜優(yōu)化法等,前面提到的Louvain算法就屬于貪心法。
上面介紹的是目前較為成熟的社區(qū)發(fā)現(xiàn)方法,可應用于大多數(shù)網(wǎng)絡結構中。除此之外,新的方法也在不斷被提出,例如,對于更新較為頻繁的網(wǎng)絡,學者陸續(xù)提出了多種動態(tài)社區(qū)發(fā)現(xiàn)算法[12-14];再如,在一些網(wǎng)絡中,單個節(jié)點可能同時屬于多個社區(qū),即社區(qū)之間存在明顯的重疊情況,針對這種情況學者陸續(xù)提出了一些重疊社區(qū)檢測方法,如Clique percolation[15]、SVINET[16]等。
PageRank算法最早由Google創(chuàng)始人Larry Page和Sergey Brin在1998年提出,是一種對網(wǎng)頁重要性進行排名的算法,其核心思想是:被很多網(wǎng)頁所鏈接的網(wǎng)頁重要性較高,同時被重要的網(wǎng)頁所鏈接的網(wǎng)頁重要性也較高。具體來說,互聯(lián)網(wǎng)中的網(wǎng)頁被視為若干節(jié)點,網(wǎng)頁之間的超鏈接被視為節(jié)點之間的有向邊,每個節(jié)點的重要性取決于網(wǎng)絡中其他節(jié)點與該節(jié)點的鏈接數(shù)量,一個節(jié)點的總鏈接數(shù)越多,則其重要性越高;同時,一個節(jié)點的總鏈接數(shù)越多,則其被指向的節(jié)點的重要性也越高。該算法通過PageRank值(PR值)來衡量節(jié)點的重要性,其計算方式如公式(1)所示。
其中,i和j表示節(jié)點,PRi和PRj表示它們的PR值,Bi表示指向節(jié)點i的節(jié)點集合,Nj表示節(jié)點j所指向的節(jié)點個數(shù)。
通過迭代,最終網(wǎng)絡中所有的節(jié)點都會計算得到一個穩(wěn)定的PR值,但在實際的網(wǎng)絡中,可能會出現(xiàn)等級下沉(rank sink)的情況,它指的是節(jié)點的入度為0,即沒有被任何節(jié)點所鏈接的情況,會導致PR值異常。為了解決該問題,可以引入阻尼系數(shù)或稱衰減因子α(0<α<1)對PR值的計算方式進行修正,如公式(2)所示。
其中,α一般取值為0.85,n是網(wǎng)絡中的節(jié)點總數(shù);d是線性組合系數(shù),稱為阻尼因子,0≤d≤1。
上面介紹了PageRank算法在網(wǎng)頁重要性排名方面的應用,實際上該算法可以被用在和圖有關的問題上,如社會影響力分析[17]、文本聚類[18]等。在本文中,則將PageRank算法應用到局部社區(qū)發(fā)現(xiàn)中。
我國擁有數(shù)量眾多的科研人員,彼此之間形成了一張超大規(guī)模的關系網(wǎng)絡,即使應用前述的Louvain等算法對該網(wǎng)絡進行社區(qū)發(fā)現(xiàn),其復雜度也難以想象。因此,本文考慮從局部網(wǎng)絡入手,探討如何從某個節(jié)點出發(fā),在局部網(wǎng)絡中找到該節(jié)點所在的社區(qū),即所謂的局部社區(qū)發(fā)現(xiàn)。
本研究基于科研人員基本屬性數(shù)據(jù)設計科研關系模型,定義科研人員之間存在的多種關系,提出關系緊密度的計算方法。通過計算科研人員之間關系的緊密度,建立由節(jié)點和邊組成的科研關系網(wǎng)絡,形成一張有向圖。提出一種面向科研關系網(wǎng)絡的發(fā)現(xiàn)算法,對科研關系網(wǎng)絡進行關聯(lián)關系挖掘和分析,實現(xiàn)以單個科研人員為核心的局部社區(qū)發(fā)現(xiàn)。
科研人員相關數(shù)據(jù)主要包括兩部分:一部分是其發(fā)表或署名的各類科技文獻,如論文、專利、申報書等;另一部分是其在個人主頁、機構官網(wǎng)公開或在人才數(shù)據(jù)庫中存儲的自我介紹,一般包括教育背景、工作經(jīng)歷、獲獎信息等。這些數(shù)據(jù)體現(xiàn)了科研人員之間可能存在的合作/合伙、行政、師承等關系,為簡單起見,本文將其中的一對一關系作為基礎,組織形成了科研關系模型。同時,為刻畫兩個科研人員之間的關系緊密程度,參考項目申報、職稱評審等程序中的回避要求,本文對每種關系賦以權重,用于表示關系的緊密程度??蒲嘘P系的具體描述如表1所示。
表1 科研關系描述
需要注意的是,在計算科技文獻合作關系和項目/課題合作關系的權重時,還需納入時間因素,這是由于主要考慮當前關系的親密程度,即距當前時間越近的合作理應取得更高的權重,因此,根據(jù)表1計算出每一次合作的初始權重后,還需進行以下處理,見公式(3)。
其中,w表示每次合作的初始權重,yearcoo和yearcur分別表示合作年份和當前年份,yearstart表示起始年份,只有發(fā)生在yearstart之后的合作才會被納入考慮。例如,我們僅考慮近十年內的合作關系,即yearstart設為2012,那么對于兩位科研人員在2019年合作的論文,若初始權重w=0.5,則修正后的權重
此外,考慮到科研人員之間可能存在多項合作,因此科技文獻合作關系和項目/課題合作關系的權重可以進行疊加,疊加后的結果除以該類關系的最大值進行歸一化即可。
定義好科研關系模型后,即可進一步構建科研關系網(wǎng)絡,示例如圖1所示。首先,將每個科研人員視為一個個節(jié)點,然后把科研人員之間的關系轉換成無向的有權邊,即若兩位科研人員存在某種關系,則在對應的兩個節(jié)點之間連上一條邊,邊上的權重表示這種關系的強弱。
圖1 科研關系網(wǎng)絡構建過程
由于兩位科研人員之間可能同時存在多種關系,因此關系的權重或邊的權重可以進行疊加,如公式(4)所示。
PageRank算法實際上屬于隨機游走模型(Random Walk Model),因此可以基于該模型的思想將PR值的計算方法寫成公式(5)的形式。
可以看出,PageRank算法的主要目的是對所有節(jié)點按照全局重要性排序,所以在初始化時,算法設定所有節(jié)點的重要性都相同,然后通過迭代對重要性不斷調整。當我們進行局部社區(qū)發(fā)現(xiàn)時,實際上也是對所有節(jié)點按照重要性排序,因此從理論上來說可以基于PageRank算法實現(xiàn)。需注意的是,這里的重要性并不是全局重要性,而是相對于某個節(jié)點來說的相對重要性。因此,在初始化時,該節(jié)點的重要性應與其他節(jié)點有所區(qū)別,在這個時候,PageRank算法就演化成了一種特殊形式,即Personalized PageRank(PPR)?;赑ersonalized PageRank算法,本文提出了一套面向科研關系網(wǎng)絡的發(fā)現(xiàn)算法。
在本算法中,首先選定某個節(jié)點作為源節(jié)點,即認為該節(jié)點局部社區(qū)的中心。然后計算其他節(jié)點相對于源節(jié)點的重要性即PPR值,如公式(6)所示。
在計算出其他節(jié)點的PPR值后,就可以根據(jù)PPR值由大到小的順序,依次嘗試將其他節(jié)點納入以源節(jié)點為核心的局部社區(qū)中,在這里我們提出一種用于衡量社區(qū)緊密程度的指標Φ,當某個節(jié)點加入社區(qū)S后Φ(S)變小了,則認為該節(jié)點的加入使得社區(qū)S被強化了,那么就正式納入該節(jié)點,否則不納入。Φ(S)的計算方法如公式(7)所示。
其中,S表示當前考慮的局部社區(qū),表示網(wǎng)絡中由不屬于S社區(qū)的節(jié)點所構成的社區(qū)。
至此,可以將面向科研關系網(wǎng)絡的發(fā)現(xiàn)算法描述如下。①選定某一科研人員s作為源節(jié)點,初始化目標社區(qū)S={s};②計算其他節(jié)點相對于s的重要程度即PPR值,按照從大到小的順序依次排列;③將當前PPR值最大的節(jié)點t納入目標社區(qū)S中,即S=S∪{t};④重新計算社區(qū)的緊密程度Φ(S),若Φ(S)減小了,則將節(jié)點t正式納入社區(qū)S中,否則剔除節(jié)點t;⑤考慮下一個節(jié)點,執(zhí)行第③④步;若Φ(S)小于閾值δ,則認為社區(qū)S已經(jīng)飽和,不再接受其他節(jié)點;⑥返回社區(qū)S,表示局部社區(qū)發(fā)現(xiàn)完成。
基于上述算法進行科研人員局部社區(qū)發(fā)現(xiàn)的過程如圖2所示。其中,A到G分別表示科研人員節(jié)點,首先根據(jù)二者之間存在的各種關系構建關系網(wǎng)絡,并計算出邊的權重。然后,將A視為源節(jié)點,通過面向科研關系網(wǎng)絡的發(fā)現(xiàn)算法計算出其他節(jié)點相對于A的重要程度即PPR值,然后按照從大到小的順序排列。最后,依次將其他節(jié)點納入以A為核心的目標社區(qū)中,直至社區(qū)飽和??梢钥闯?,最終構建的社區(qū)包括A、B、E、G、F共5個節(jié)點。
圖2 科研人員局部社區(qū)發(fā)現(xiàn)過程
為了說明本文所提出的方法的有效性,設計實驗進行驗證。本實驗基于科研人員關系數(shù)據(jù),提取255項科研人員信息,其中包括科研人員的姓名、工作單位、論文、專利和戶籍關系等。利用Python對科研人員數(shù)據(jù)進行相關關系抽取,得到表1中定義的科技文獻合作關系、項目/課題合作關系、行政關系、師承關系與合伙關系等幾類主要的關系,并根據(jù)上述關系的親密程度度量方法計算關系的權重。采用Neo4j圖數(shù)據(jù)庫建立科研人員關系網(wǎng)絡的圖模型,以該圖數(shù)據(jù)為基礎,利用本文提出的面向科研關系網(wǎng)絡的發(fā)現(xiàn)算法進行科研關系網(wǎng)絡的挖掘和分析,得到以科研人員為核心的社區(qū)。
本文實驗的環(huán)境為Ubuntu 22.04.1 LTS x86_64(Intel Xeon Silver 4208(32)@ 3.200GHz),32GB內存。實驗工具為Python3.9.12,Visual Studio Code 1.71.1,Neo4j Community 4.4.10圖數(shù)據(jù)庫,py2neo2021.2.3,numpy1.23.1,Neo4j Graph Data Science(GDS)library 2.1.11以及 MySQL5.7。
實驗數(shù)據(jù)從關系數(shù)據(jù)庫MySQL中導出并存儲為CSV格式文件。首先,利用Python中的Pandas庫對數(shù)據(jù)進行預處理,包含缺失值填補、異常數(shù)據(jù)清理和數(shù)據(jù)對齊處理。接著從數(shù)據(jù)中抽取科研人員的關聯(lián)關系,并利用Cypher數(shù)據(jù)庫請求語句將科研人員相關關系映射至Neo4j圖數(shù)據(jù)庫中,建立科研人員關系網(wǎng)絡的圖模型,共包含694個節(jié)點以及3 369個邊。
基于上面構建的科研關系網(wǎng)絡,采用本文提出的面向科研關系網(wǎng)絡的發(fā)現(xiàn)算法,首先計算以科研人員為中心的各節(jié)點PPR值。接著根據(jù)PPR值進行降序排序,根據(jù)社區(qū)緊密程度指標將其他節(jié)點組織加入以源節(jié)點為核心的局部社區(qū)中。假設以科研人員41為核心,計算PPR值見表2。以科研人員41為核心的局部社區(qū)展示見圖3。
表2 以科研人員41為核心的PPR值
圖3 以科研人員41為核心的局部社區(qū)
對上述實驗結果進行分析,說明本文提出的面向科研關系網(wǎng)絡的發(fā)現(xiàn)算法,能夠基于科研關系網(wǎng)絡實現(xiàn)局部社區(qū)的快速發(fā)現(xiàn),驗證了本方法的有效性。由于本方法基于局部網(wǎng)絡進行挖掘分析,能夠有效降低社區(qū)發(fā)現(xiàn)的復雜度,同時因為考慮的科研關系更加豐富并且通過關系緊密度對多種科研關系進行歸一化處理,刻畫科研人員之間的聯(lián)系密切程度,使得所發(fā)現(xiàn)社區(qū)在可用性和實用性方面有所提升。接下來將增加實驗數(shù)據(jù)、擴展實驗方法、與經(jīng)典方法進行對比分析,進一步驗證本方法的性能。
本文提出的面向科研關系網(wǎng)絡的發(fā)現(xiàn)算法能夠基于科研關系網(wǎng)絡進行局部社區(qū)發(fā)現(xiàn),其優(yōu)勢在于涵蓋了更多的關系類型,在社區(qū)發(fā)現(xiàn)的復雜度和所發(fā)現(xiàn)社區(qū)的可用性方面具有一定優(yōu)勢,可進一步應用于面向重大科研需求的科研人員推薦,有針對性地組建科研隊伍,同時在項目申報、職稱評審等重要程序中能夠更準確地發(fā)現(xiàn)人員之間的關聯(lián)關系,落實回避機制,對于科技管理工作具有較大意義。
接下來將進一步通過試驗對上述結果進行驗證。同時圍繞下面3個問題進行更深入的研究。
(1)本文所提出的算法建立在關系網(wǎng)絡的基礎上,即需要提取出科研人員之間的合作、行政、師承、合伙等關系,但是由于數(shù)據(jù)和方法上的問題,其中某些關系很難被準確、完整地提取出來,因此可能會在不同程度上影響到最終局部社區(qū)發(fā)現(xiàn)效果。
(2)為了簡單起見,科研人員之間的大多數(shù)關系權重系數(shù)由人為定義,不夠靈活和精細,也很難保證同一套權重系數(shù)可以在不同的網(wǎng)絡中均能取得最佳的表現(xiàn),因此后續(xù)需要進一步優(yōu)化權重系數(shù)的處理方式。
(3)在本文所考慮的科研關系中,科技文獻合作關系是主要的組成部分。但是許多科技文獻涉及多個交叉學科,可能會導致最終的社區(qū)內部科研人員之間的研究方向的相似性有所降低,這與許多用戶的直觀判斷產(chǎn)生了偏差,即一個社區(qū)內部的科研人員應基本屬于同一個研究方向。