施 濃,聶鐵錚,申德榮,寇 月,于 戈
(東北大學 計算機科學與工程學院,沈陽 110169)
近些年來,由于學者擁有相同的姓名,所以出現了越來越多屬于不同的學者,但卻擁有相同的學者姓名的文章.大量重復的作者姓名,降低了數字圖書館、web檢索信息的性能,從而導致錯誤地認為某幾篇文獻是同一位作者所寫.針對這種情況,傳統的處理方式是由人工的進行確認,因此需要做大量的繁瑣工作,浪費大量人力資源.還有一些機構采用了名稱標識的方式,給作者分配一個唯一的標識符,但仍存在有大量文章作者沒有標識的問題.因此迫切需要提出切實有效的方法,實現可自動化對作者文獻進行聚類,進行正確的歸屬.
解決這類問題,常用思路是使用聚類的方法,從論文中提取特征,定義聚類相似度度量,從而將一堆論文聚成幾類論文.聚類得到的論文簇要盡可能的相似,而聚類與聚類之間的論文應不屬于同一作者,最終得到的每一個聚類論文是屬于同一學者的論文.例如,文獻[1]是使用圖聚類解決同一姓名問題的經典方法,利用論文之間的結構以及屬性關系等信息去構建統一的概率圖,最后通過算法估計聚類人數值.文獻[2]考慮到使用傳統特征具有局限性,因此采用低維語義的空間向量表示方法,通過將論文映射成低維空間的向量表示,使用基于特征向量的聚類方法,但是其聚類的準確度不是很高.
當前,針對作者姓名消歧技術的研究具體有如下幾個問題:1)由于作者和文獻均是不同的來源,并且很有可能沒有重疊的信息,如何對來自不同數據源實體進行量化;2)如何確定幾篇文獻是否屬于同一作者,量化幾篇文獻的相似性;3)如何確定每一個作者文獻的數量.
本文設計一個框架來更好的解決作者姓名消歧的問題,研究結合最新的嵌入模型,量化的捕捉文本之間的關系,該方法將每篇文獻實體投影到一個空間向量中,每篇文獻都作為一個節點;為了確定幾篇文獻是否屬于同一作者,本文提出將作者姓名消歧的聚類問題,轉換成為基于鏈接的聚類問題,根據節點的上下文來推測節點與其鄰居之間的鏈接可能性,提出使用圖卷積網絡(GCN)的可學習的聚類方法;最后,根據GCN輸出鏈接可能性,本文采用偽標簽傳播策略,不需要輸入簇的數量,可傳遞的合并鏈接的節點并獲得聚類結果.文獻作者姓名消歧方法框架如圖1所示.

圖1 文獻作者姓名消歧方法框架
在文獻檢索中,多個作者擁有相同的姓名,相同的研究方向或者其他一些屬性相似,這是很正常的現象,但這種現象可能會導致人們錯誤的引用文獻、檢索結果不準確,數據庫集成的性能等問題.實體消歧的主要任務是將屬于同一個姓名多個人的文獻進行分區,每個區域都是由唯一一個人的文獻組成.命名實體識別消歧通常可以被看作是一個聚類問題[1],和其他聚類的任務一樣,如何確定是否相似、聚類的大小是主要的兩個挑戰.在作者姓名消歧問題中,如何量化相似性是急需解決的一個問題,現有的解決方案可大致分為兩類:一種是基于數據的特征,另一種是基于連接.
基于特征方法的文獻有很多,比如,Han等人[3]提出使用作者姓名,文章標題,以及會議或期刊名等特征,采用支持向量機等監督方法對作者姓名進行消歧.Zhang等人[4]利用文獻作者姓名包括合作者姓名、文獻標題、出版地點或期刊、出版時間等作為特征進行提取,并計算特征之間的距離,使用特征和距離相結合的半監督概率模型,解決作者消歧問題.MinoruYoshida[5]提出兩階段聚類的方法,采用命名和關鍵詞等信息進行相似度計算,將計算結果進行聚類,第1次聚類完成后,再提取相應特征進行第2次聚類.Liu等人[6]主要使用的是元路徑,基于元路徑來確定兩個實體的相似度.元路徑的圖形需要自己制定,可以轉化為矩陣運算的問題,最后基于不同圖案的元路徑相似度加權求和進行最終的決策,本質仍然是基于傳統的特征工程,里面除了包含大量的特征工程外,將元路徑引入其中,可以將路徑中的隱藏關系以及路徑中跨度加大的關系加入進去.文獻[7]提出兩個策略:一個分類器訓練一個name,一個分類器訓練所有name.使用ELM(極限學習機)技術使用作者姓名,標題作為特征向量,但因為特征維度較大,所以使用了PCA進行降維.
基于鏈接方法的文獻有TanayKumarSaha[8]提出的一種從協作網絡獲得時間戳得連接信息來解決實體消歧任務的方法,該方法使用匿名網絡的拓撲圖,不侵犯隱私.文獻[9]受到詞嵌入的影響,利用作者名,文章名構建了3個圖,同時采用一種新的表示學習模型,將每一個文檔嵌入到一個低維的向量空間中,在這個空間中,名字消歧使用層次聚集聚類算法進行解決.Zhang等人[9]提出文獻全部屬性和局部屬性相結合的方法,首先利用文獻的部分屬性信息將所有文獻都表示在一個統一的向量空間中,使用圖自編碼器對已經構建的局部鏈接圖進行學習得到待消歧姓名文獻集的最終向量表示,最后利用得到的向量進行聚類分析.
本文結合上述兩種方案的優點,使用BERT[10](Bidirectional Encoder Representation from Transformers)對文獻的多個特征進行詞和句子的嵌入,將文獻的作者、所屬機構和摘要等特征嵌入到一個低維的向量空間中,結合將詞嵌入和句子嵌入進行結合,量化特征,使得到的特征向量更為準確.然后進行文獻局部圖(Article Partial Graph)的構建,將聚類問題轉換為鏈接問題,使用GCN進行自動學習文獻之間生成鏈接的可能性.
第2個挑戰是如何確定聚類的大小,以前的大多數文獻都是假定該數字是事先已知的,并且在解決方案中忽略這個問題.現有的文獻中有一些使用諸如DBSCAN的聚類方法來避免提前設定聚類的大小,但仍需要提前指定幾個基于密度的超參數.唐等人[1]對X-means算法進行改進,通過貝葉斯信息準則(BIC)來測量聚類質量,從而迭代的估計最優的聚類大小.但是,有一些實驗表明,基于BIC的方法傾向于將聚類合并在一起,而且缺少比較好的離群值控制,因此導致準確性降低.在本文中,為了將文獻更準確的聚類在一起,根據文獻的鏈接權重信息,在圖上使用連通域搜索并動態剪枝進行聚類.

定義1.(名稱消除歧義)作者消除歧義是找到一個方法F,將Pa劃分為一組不相交的簇,例如:
(1)
本文提出構建文章局部圖的原因是:只需要計算一個實例與它的k個最近鄰居之間的鏈接可能性,就可以產生很好的聚類效果[11].不同k值的聚類性能的上限都很高,如果鄰居與該實例具有相同的作者,則直接將每個實例與其k-NN連接,預測實例與其k-NN之間而不是所有潛在對之間的鏈接更加有效.
姓名消除歧義工作的重點在于消歧結果的準確性,因此本文采用預測文獻與其k-NN之間的鏈接的可能性.因為預測是否鏈接是基于文獻所提供的信息和其鄰居所提供的信息,所以本文設計了一個名為“文獻局部圖”(APG)的局部結構.APG是一個以文獻P為中心的子圖.每個“文獻局部圖”都是由一個中心節點文獻P和P的k個臨近鄰居組成.
首先將數據中所有的文獻特征都進行表示學習,然后展現在一個統一的向量空間中.如圖1所示,每篇文獻都由節點表示,比如,文獻作者名字有Lu Han使用左側帶點的圓圈節點表示.文獻用Pi進行表示,文獻的特征由Pi={p1,p2,p3,…,pk}一組長度可變的特征集表示,其中文獻的特征由標題、共同作者、出版單位或者期刊、關鍵詞和摘要等多特征構成.輸入N篇文獻的特征,輸出N×K維的特征矩陣,其中K代表維數.
受無監督表示學習技術的啟發,本文使用BERT(Bidirectional Encoder Representation from Transformers)模型[10]進行全局表示學習.本文考慮到一個重要的特征文獻摘要,由于文獻摘要句子過長,得到嵌入表示不夠準確,前人研究時都選擇忽略掉文獻摘要這個重要的特征.而BERT是對文本摘要進行雙向的建模,類似于全連接網絡輸入完整的句子模式,而不是LSTM等RNN網絡有序輸入的模式,考慮到句子中每個詞的位置和詞與詞之間的相對位置,會更加準確的獲得嵌入向量得表示.因此,本文將文獻摘要也作為一個特征進行嵌入,使用多特征生成一個嵌入向量,使嵌入結果更加準確.
本文需要根據文章中的上下文特征來估計兩篇文章之間的鏈接可能性.在本文中,構造文章局部圖APG(Article Partial Graph),APG由3個步驟生成.首先,找到APG的所有節點,然后鄰居節點減去樞紐特征來標準化節點特征,最后在節點之間添加邊.
第1步.如圖2所示,查找節點,給定文獻C,本文將使用kNN連接方式進行查找鄰居結點,范圍到h-hop的鄰居作為APG的節點,對于每一跳節點,選擇的鄰居數量可能會有所不同.將第i個跳躍點的鄰居數表示為ki,i=1,2,3,…,h.比如:C是中心節點,那么APG中對于C定義為Gc(Vc,Ec),其中Vc表示G的節點集,Ec表示圖G的邊集.舉個例子:當h=3時,k1=9,k2=6,k3=3,表示APG是由9個距離中心點C最近的鄰居組成,每個鄰居節點有6個臨近的一階鄰居,每個一階鄰居有3個最臨近的二階鄰居.如果一個鄰居在C進行臨近搜索時,始終離得很遠,那么這個鄰居和C的連接可能性很小.

圖2 找到節點p的鄰居節點
第2步.節點標準化,如圖1所示.有了中心節點C,節點集Vc,以及節點的特征Ci,定義其中一個鄰居節點{Cq|q∈Vc}.為了標準化各個節點特征,每個節點減去pc來進行標準化.
Ηc=[…,pq-pc,…],?q∈Vc
(2)
第3步.在節點之間添加邊.最后一步是在節點之間添加邊緣.對于一個節點q∈Vc,首先在原始整個集合中的所有節點中找到最接近的u個鄰居.如果該鄰居節點r也出現在Vc中,那么將(q,r)添加到節點邊集Ec中.此操作是為了保證節點的集合不會有太大變化.最后,使用Ac∈R(|Vc|×|Vc|)和節點特征矩陣Ηc表示APG的拓撲結構.生成的文獻局部圖,如圖1所示.
APG中節點包含的特征信息對于確定其它節點是否應該連接到文章局部圖上有很大的作用.為了充分的確定兩個節點邊緣是否應該鏈接,本文應用了圖卷積神經網絡(GCN)[12],在APG上進行預測.將文獻局部圖的節點特征矩陣X和鄰接矩陣A一起輸入到圖卷積層,訓練后輸出節點特征矩陣Y.
在第1層中,輸入節點特征矩陣是原始節點特征矩陣X=H.形式上,圖卷積層具有以下公式:
Y=σ([X‖GX]W)
(3)
其中,X表示特征矩陣,是輸入矩陣維度是N×K維,而Y則是N×K維輸出矩陣,激活函數σ使用的是ReLU,G=(P,A)是大小N×N的聚合矩陣,運算符‖表示沿著特征維進行矩陣連接,W表示可學習的權重,σ(.)是非線性激活函數.
圖卷積操作可以分為兩個步驟:
第1步.將P乘以G,該步驟是為了對節點和節點鄰居之間的關系進行匯總.然后沿著特征維度將輸入節點特征P與聚合信息GP串聯在一起.
第2步.由一組線性濾波器對級聯特征進行變換,該線性濾波器的參數W將被學習.其中g(.)用類似于圖注意力網絡[13],本文試圖學習鄰居的聚集權重.即,G中的元素由兩層MLP使用一對樞軸鄰居節點的特征作為輸入來生成.MLP是端到端的訓練.注意聚合是在鄰居之間執行加權平均池,在加權池中自動學習權重.
方案二:選用STM32F103 系列MCU 用于控制方案,使用STM32 MCU 作為核心控制芯片[5],該芯片可以進行擴展,與外設進行連接通信,且控制速度較快,非常利于資源開發。
本文使用的圖卷積神經網絡是由ReLU功能激活的4個圖卷積層的堆棧.然后將softmax激活后的交叉熵損失作為優化的目標函數.實際上,本文僅反向傳播一跳鄰居節點的梯度,因為僅考慮了樞軸及其一跳節點之間的聯系.與完全監督的情況相比,采用節點一跳鄰居的方式不僅可導致相當大的加速,而且還可以提高準確性.原因是高階鄰居大部分為負,因此一跳鄰居中的正樣本和負樣本比其他鄰居中的樣本更加均衡.
為了演示圖卷積的工作機制,文本設計了一個具有二維輸入節點功能和兩個圖卷積層的玩具示例.不同的顏色表示不同的ID.虛化的深灰色節點是中心節點.在圖3中,本文顯示了每一層的輸出嵌入如何隨著訓練迭代而變化.在每個圖卷積層之后,正節點(左側)分組更加接近,而負節點(右側)形成另一組.這是因為鄰居的消息在聚合步驟中傳遞到節點,并且鄰居的消息充當嵌入的平滑度,將鏈接的節點連接在一起.同時,將正節點組和負節點組分隔開.最終,系統達到其平衡點,在該平衡點上,不同類別的節點彼此遠離,同一類別中的節點相互接近.

圖3 GCN工作機制
本文遍歷所有文獻,將每篇文獻都構造一個文獻局部圖,并預測該文章所涉及其他文獻之間關聯得可能性,節點分類器輸出softmax概率.
實驗得到了一組關于鏈接可能性的且帶有權重的邊.為了得到聚類圖,一種比較簡單的方法是剪切權重低于某個閾值的所有邊緣,然后使用廣度優先算法來傳播偽標簽.但是,在傳播的過程中,性能很有可能會受到閾值的影響.因此,本文采用了文獻[14]中提出的偽標簽傳播策略.首先,基于圖形中當前邊找到連接的文章,并將這個文章添加到隊列中.
在每次迭代中,本算法都會在某個閾值以下切割低分邊緣,并在其大小保持大于預定義的最大值的鏈接簇中,維護要在下一次迭代中處理的隊列.在下一次迭代中,增加要切割的閾值.重復此過程,直到隊列為空,這意味著所有文章都用偽標簽標記.
本實驗采用AMiner提供的數據集,數據集基準測試包含來自12798位作者的70258個文檔.數據格式是由一個字典組成,存儲為JSON對象.具體來講,數據集中包括每一篇文獻的編號、文章標題、作者個人信息、工作單位、出版地、文章關鍵詞和文章摘要等,具體信息如表1所示.本文從標記良好的AMiner數據庫數據中中抽取了100個作者姓名進行實驗.

表1 數據集表示信息含義
本文使用Precision公式(4)、Recall公式(5)、F1公式(6)作為評價指標對實驗結果進行度量.
除了Precision和Recall以外,本文還使用F1作為評價指標,因為Precision和Recall有時候會出現矛盾的情況,這樣就需要綜合考慮它們,最常見的方法就是使用F1-measure,當F1較高時則能說明實驗方法比較有效.
(4)
(5)
(6)
用于APG構造的3個參數:跳躍點h,每一跳中最近的相鄰鄰居的數目,以及鏈接的最近鄰居u的數量.本文首先用不同的數值進行實驗,發現當h=3時不會帶來性能提升,因此在以下實驗中將h設置為2.同時,本文探索了值不同的ki影響:k2和u.
為了研究k1,k2和u如何影響性能,本文進行了兩組實驗,結果如圖4所示.首先,本文保持u不變,改變k1,k2,并顯示F量度是如何變化的.在圖4中觀察到,當u=10時,隨著k1和k2的增大,F度量會增加.k1越大,預測的候選鏈接越多,因此召回率越高.k2越大,涉及到的2跳鄰居越多,因此更精確地描述了1跳鄰居的局部結構,因此預測更加準確.但是,當k1和k2足夠大時,性能達到飽和.對于參數u,即鄰居的鏈接數,本文在圖5中觀察到性能對u的值不敏感.考慮效率,k1和k2的值不能太大.經研究發現k1=40;k2=5;u=4產生了效率和性能之間的良好折衷,并在以下實驗中使用此設置.

圖4 k1、k2取值對F1影響

圖5 k1、k2、u不同取值對F1影響
實驗整體效果提升姓名消歧的準確性,部分結果如表2所示,pubs表示包含該名字的文獻數,Cl表示同一個姓名的作者被聚類成多少簇(cluster),P表示的是準確率,R表示的是召回率,F1表示的是F-measure方法.比如:在321篇文獻中出現了Bo_Hong這作者名字,實驗將其結果聚類為13個簇,聚類結果的準確率為0.84,召回率為0.71,F1值為0.77.

表2 部分實驗結果
為了驗證本文提出的方法(Our)的性能,下面將本文的方法與其他幾種同名消歧方法進行比較.本文提出的方法用"Our"表示,其他研究者的方法使用該文章作者表示.
1)Zhang等人[4]:該方法是基于文章合作者和文檔相似性為候選集,構建了3個局部圖,通過從圖中抽取三元組,為每個候選集學習圖嵌入.最終的結果是通過聚集層次聚類進行生成的.
2)GHOST[15]:第2種方法是僅僅基于合作者的名字來進行消歧處理的,并未考慮其他特征.通過將每篇文獻的合作者折疊到一個節點,計算兩個節點之間的距離,最通過親和傳播算法生成聚類結果.
3)Louppe等人[16]:此方法首先根據一組精心設計的相似性特征訓練成對距離函數,然后使用半監督的HAC算法用于確定聚類.
4)Rule:規則的方法是在文獻作者和出版地點嚴格匹配的情況下,通過連接兩個文獻來構造兩個文獻的局部鏈接圖,然后將圖劃分為連通的組件來獲得聚類.
如圖6展示了在AMiner數據集上,5種不同的作者姓名消歧算法的結果.Our是本文提出的消歧方法,使用F1-measure來評估所有的方法.Louppe等通過學習文章的特征得到相應相似函數,相反,本文將原始文獻的多個特征進行輸入,進行表示學習.GHOST和Zhang等人都利用了圖的拓撲結構,將圖嵌入到低維向量空間中,本文對文獻的多個特征進行嵌入,結合圖卷積神經網絡進行學習.從實驗結果可以看出,本文提出消歧方法在大部分作者消歧上都表現更好的聚類效果.

圖6 部分作者消歧F1值
本文提出了一種基于圖卷積神經網絡的作者姓名消歧方法.文本強調了鄰居在作者消歧過程中的重要性,并構造每篇文獻的文獻局部圖(APG).在APG上,本文使用圖卷積網絡來推理給定節點與其鄰居之間的鏈接可能性.實驗表明,與傳統方法相比,該方法對作者姓名相同的復雜分布效果更好,并且本文的方法可擴展到大型數據集.接下來,可以在本文的基礎上,再繼續研究圖卷積網絡在文獻數據量多時的時間效率問題.