張純鵬,辜希武,李瑞軒,李玉華,劉 偉
華中科技大學 計算機科學與技術(shù)學院,武漢430074
信息化時代下,金融行業(yè)的各個公司、監(jiān)管機構(gòu)每天都會在互聯(lián)網(wǎng)上發(fā)布大量的公告,將公告中的人員實體以及相關(guān)屬性提取出來,發(fā)現(xiàn)人員之間的隱含關(guān)系,以結(jié)構(gòu)化的形式描述金融行業(yè)中與人物相關(guān)的概念、實體及其關(guān)系,構(gòu)建金融領(lǐng)域人物關(guān)系圖譜,能夠?qū)鹑诨顒舆M行深度分析,可以幫助金融從業(yè)人員進行合作伙伴選擇、人事任命等關(guān)鍵決策,對促進金融活動的順利完成具有重要意義。另外,伴隨著我國經(jīng)濟的快速發(fā)展,金融活動的日益頻繁,經(jīng)濟犯罪也越來越難以發(fā)現(xiàn)與監(jiān)管,通過構(gòu)建金融行業(yè)人物關(guān)系圖譜,可以發(fā)現(xiàn)金融從業(yè)人員的校友、同事等社會關(guān)系,對預警潛在的金融活動風險,打擊經(jīng)濟犯罪活動也具有重要意義。構(gòu)建金融領(lǐng)域人物關(guān)系圖譜關(guān)鍵是從非結(jié)構(gòu)化的金融公告中抽取出人員相關(guān)的實體、屬性以及事件,主要涉及到命名實體識別、關(guān)系抽取、事件抽取等子任務(wù)。
近年來,隨著計算能力的不斷提升,基于神經(jīng)網(wǎng)絡(luò)的深度學習技術(shù)逐漸成為了命名實體識別的主流方法。基于神經(jīng)網(wǎng)絡(luò)的方法將命名實體識別視作序列標注任務(wù),搭建多層的神經(jīng)網(wǎng)絡(luò)模型,將文本中的單詞或者字符表示為詞向量,作為模型輸入,通過神經(jīng)網(wǎng)絡(luò)模型對單詞或字符進行分類,抽取文本中的命名實體。常見的神經(jīng)網(wǎng)絡(luò)包括卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNN)等。Huang 等人提出了多種基于長短時記憶網(wǎng)絡(luò)(long short-term memory,LSTM)的序列標記模型,通過對比實驗表明雙向LSTM 連接條件隨機場(conditional random field,CRF)模型可以達到較好的命名實體識別效果;Strubell 等人將空洞卷積(dilated convolutions)用于命名實體識別,加大感受野,提高了模型的訓練和預測速度;預訓練語言模型可以從大量無標注文本中學到潛在的語義信息,為下游的自然語言處理任務(wù)提供更好的特征表示。BERT預訓練語言模型在11 項自然語言處理任務(wù)上均取得了最好成績,將BERT 應用于命名實體識別任務(wù)能取得更好的效果。
實體關(guān)系抽取指的是在實體識別的基礎(chǔ)上,從非結(jié)構(gòu)化文本中抽取出預先定義的實體關(guān)系。傳統(tǒng)的關(guān)系抽取是在一句話中發(fā)現(xiàn)實體之間的關(guān)系,大都沒有對關(guān)系的屬性做進一步的抽取,且無法發(fā)現(xiàn)金融公告中跨文檔的人員之間的關(guān)系。人員作為一個實體,往往包含若干實體屬性(如出生日期、性別等),人員屬性的提取將人員與實體屬性建立關(guān)系,可以看作關(guān)系提取的一種特殊形式。目前從非結(jié)構(gòu)化人員文本中提取結(jié)構(gòu)化人員屬性的研究較少,Dib 等人使用描述人物的Wikipedia 數(shù)據(jù)作為語料輸入,通過分析句子依賴圖,輸出結(jié)構(gòu)化的只包含任職經(jīng)歷的人物簡歷信息;Plum等人使用Wikipedia和Wikidata 作為數(shù)據(jù)源,提取滿足特定要求的人員信息,但涉及的人員屬性比較少。
非結(jié)構(gòu)化的人員簡歷文本中通常包含多個任職事件與教育事件,如何不依賴觸發(fā)詞且準確地提取人員簡歷的多個任職事件與教育事件是一個值得研究的問題?,F(xiàn)有的事件提取方法,通常是針對新聞等語料,大多依賴觸發(fā)詞來檢測某種類型的事件,然后提取相關(guān)的事件參數(shù),不適用于非結(jié)構(gòu)化人員簡歷文本的情況。Zeng 等人提出可以通過事件中的關(guān)鍵參數(shù)來檢測事件類型的存在,不依賴觸發(fā)詞檢測事件并提取事件參數(shù),但是無法解決非結(jié)構(gòu)化人員簡歷這種具有多個任職事件和教育事件的特殊情況。
本文針對非結(jié)構(gòu)化人員簡歷的特殊情況,通過研究一種填充層次化人員信息模板的方法,提取跨文檔的人員之間的關(guān)系,在非結(jié)構(gòu)化人員簡歷文本中不依賴觸發(fā)詞提取多個任職經(jīng)歷與教育經(jīng)歷事件,提出一種基于BERT 的中文金融領(lǐng)域人物關(guān)系圖譜構(gòu)建框架,實驗表明所提出的方法可以有效地解決非結(jié)構(gòu)化金融人員簡歷文本的信息提取問題,有效構(gòu)建金融領(lǐng)域人物關(guān)系圖譜。
BERT 是谷歌提出的一種預訓練語言模型,在11項自然語言處理任務(wù)上均取得了最好成績,是近年來自然語言處理領(lǐng)域取得的重大的進展之一。
BERT 是基于Transformer的深度雙向語言表征模型,利用Transformer 架構(gòu)構(gòu)造了一個多層雙向的編碼器(encoder)網(wǎng)絡(luò),基本結(jié)構(gòu)如圖1 所示,表示輸入的句子中每個詞的詞向量,Trm 表示Transformer編碼器,表示輸入句子的每個單詞的輸出的詞向量。
圖1 BERT 模型結(jié)構(gòu)Fig.1 BERT model structure
BERT 模型的輸入詞向量由三部分相加得到,這三部分分別是詞表征(token embedding)、段表征(segment embedding)、位置表征(position embedding)。詞表征表示當前詞初始詞向量,通常是查表獲得;段表征表示當前詞屬于哪個句子;位置表征表示當前詞在句子中的位置索引。另外,句子的原始輸入需要添加[CLS]和[SEP]標簽,[CLS]添加在開頭,可以用來表征整個句子;[SEP]標簽用于分隔兩個句子,表示句子結(jié)尾。
BERT 預訓練過程包含兩個不同的預訓練任務(wù),分別是掩蓋語言模型(masked language model)和下一句預測(next sentence prediction)任務(wù)。掩蓋語言模型通過將某些詞統(tǒng)一替換為標識符[MASK]的方式隨機遮蓋一些詞,然后通過被遮蓋的詞的上下文信息來預測這些被遮蓋的詞,這樣每個詞的向量表示能夠綜合參考上下文信息。下一句預測指的是預測某個句子是否是另一個句子的下一句。這樣便將句子之間的關(guān)系引入了模型,使得模型可以獲取句子之間的語義信息。
BERT 模型完成預訓練后,通過微調(diào)重新訓練的方式,調(diào)整預訓練過程中的模型參數(shù),使得模型更適用于下游任務(wù),從而獲得更好的效果。針對句子級別的分類任務(wù),取第一個標簽[CLS]的輸出向量表示作為句子表示;對于字符級別的分類任務(wù),取所有字符的最后層transformer 輸出,送到softmax 層做分類即可。
利用BERT 預訓練語言模型構(gòu)建金融領(lǐng)域人物關(guān)系圖譜,使用如圖2 所示人物關(guān)系圖譜構(gòu)建框架。該框架分為三部分:第一部分為人員屬性實體抽取,該部分使用BERT 模型從金融人員簡歷文本中抽取出生日期、任職單位等人員屬性實體;第二部分為人員屬性關(guān)聯(lián),該部分通過定義并填充人員模板,將人員屬性名與人員屬性值關(guān)聯(lián)起來,將相關(guān)的人員屬性值關(guān)聯(lián)起來,構(gòu)成任職事件或教育事件;第三部分為人物關(guān)系圖譜構(gòu)建,該部分利用人員模板發(fā)現(xiàn)人員之間的關(guān)系,定義人物關(guān)系圖譜存儲模型,利用圖數(shù)據(jù)庫存儲人物關(guān)系圖譜。
圖2 金融領(lǐng)域人物關(guān)系圖譜構(gòu)建框架Fig.2 Construction framework of financial personal relationship graphs
使用BERT 模型對非結(jié)構(gòu)化簡歷文本中的人員屬性實體進行抽取。模型由輸入層和24 個隱藏層構(gòu)成,最后一個隱藏層的輸出即為對應的每個字符的向量表示,利用每個字符的向量表示,進行人員屬性實體的分類。將字符的向量編碼輸入到線性分類器中,再經(jīng)過softmax 操作,得到每個字符對應每個人員屬性標簽的概率分布,選出對應最大概率值的人員屬性標簽,作為當前字符的最終人員屬性標簽分類。得到所有字符的模型預測人員屬性分類后,對預測結(jié)果進行處理,得到非結(jié)構(gòu)化人員簡歷文本中的人員屬性實體。
使用BERT 模型抽取出的人員屬性(如出生日期、人員職位、任職公司等)可能有多個候選值,需要確定某些人員屬性名唯一對應的人員屬性值,從而將人員屬性名與人員屬性值關(guān)聯(lián)起來。另外,某些人員屬性值之間有關(guān)聯(lián)關(guān)系,有關(guān)聯(lián)關(guān)系的人員屬性值構(gòu)成了某個事件實例,比如任職時間、離職時間、任職單位、任職部門、職位等屬性值就構(gòu)成了任職事件實例,需要將相關(guān)屬性值正確關(guān)聯(lián)組合,識別篩選出正確的事件實例。通過BERT-Template 方法填充人員模板解決人員屬性關(guān)聯(lián)任務(wù)。人員模板由固定的鍵值(key-value)對組成,存儲為JSON 文件格式,以結(jié)構(gòu)化的形式描述人員實體,記錄人員的屬性信息。人員模板的鍵用來標識人員的屬性,通常用字符串來表示;人員模板的值與某個鍵對應,可以是數(shù)組也可以是具體的值。將值為數(shù)組的鍵稱為人員模板的多值屬性,將值不是數(shù)組的鍵稱為人員模板的單值屬性。人員模板的單值屬性將人員屬性與人員屬性實體關(guān)聯(lián)起來,對于人員模板單值屬性,采用了一定的策略進行填充,通常選取單值屬性對應的出現(xiàn)次數(shù)最多的人員屬性實體進行填充。人員模板的多值屬性記錄了事件實例列表,將事件涉及的人員屬性實體關(guān)聯(lián)起來。
完成人員屬性關(guān)聯(lián)任務(wù)最核心的是建立人員多值屬性實體之間的關(guān)聯(lián)。通過BERT-Template 方法填充人員模板多值屬性,完成人員多值屬性實體之間的關(guān)聯(lián),該方法通過獲取事件實例向量,對事件實例的真實性進行分類判斷,從而不依賴觸發(fā)詞提取人員的多個教育經(jīng)歷與任職經(jīng)歷事件。事件實例分類的模型架構(gòu)如圖3 所示。在模型的輸入層,將包含事件實例的句子輸入到訓練好的BERT 預訓練模型中,獲取BERT 模型最后一個隱藏層的輸出,該隱藏層的輸出就是句子中每個字符的向量表示,通過人員屬性實體包含的字符在句子中的索引,將屬性實體中所有字符的向量進行組合,可以獲得人員屬性實體對應的字符向量組。
圖3 事件分類模型架構(gòu)圖Fig.3 Structure diagram of event classification model
在模型的融合層,使用每個屬性實體對應的字符向量組生成事件實例向量。事件實例向量的生成方式如式(1)、式(2)所示。
式中,表示最終的事件實例向量,V表示事件中的人員屬性實體向量,ev表示人員屬性實體的字符向量組,MaxPooling 表示最大池化操作,⊕表示向量的拼接操作。首先,對人員屬性實體的字符向量組進行最大池化操作(MaxPooling),獲取到向量組中向量的每一維的最大值,然后將每一維的最大值組合成新的向量,作為人員屬性實體向量,記為V;對當前事件實例所有的人員屬性實體的字符向量組進行最大池化操作,就得到了當前事件實例所有的人員屬性實體向量{,,…,V,…,V},將所有的人員屬性實體向量進行拼接操作,得到最終的事件實例向量。
最后是模型的輸出層,在輸出層將事件實例向量送入到全連接網(wǎng)絡(luò)進行分類,判斷是否是真實的事件實例。
人員模板中包含了單值人員屬性以及多值人員屬性構(gòu)成的事件實例列表。可以利用層次化的人員模板,發(fā)現(xiàn)人員實體之間的關(guān)系。
人員模板的某一個多值屬性可以記為={,,…,e,…,e|≥0},其中e表示人員多值屬性,記為e={,,…,t,…,t|≥2},其中t為人員屬性值。人員模板與人員模板中的同一種多值屬性分別記為_、_,人員模板與中的某種人員屬性實體分別記為t、t,如果滿足{t=t|(t∈e∈_)∧(t∈e∈_)}≠?,則可以認為人員模板與人員模板在人員多值屬性e上存在共現(xiàn)關(guān)系,即人員與人員具有某種關(guān)系。當e為畢業(yè)院校時,認為人員與具有校友關(guān)系(alumnus);當e為任職單位時,認為人員與人員具有同事關(guān)系(colleague)。
將人員實體映射為Neo4j 圖數(shù)據(jù)庫中的Person節(jié)點,將人員的單值屬性及其對應的人員屬性實體映射為Neo4j 圖數(shù)據(jù)庫中的Person 節(jié)點的屬性鍵值對,將人員實體之間的同事關(guān)系和校友關(guān)系映射為Neo4j圖數(shù)據(jù)庫中的邊。
定義好人物關(guān)系圖譜在圖數(shù)據(jù)庫中的數(shù)據(jù)模型后,將人員模板中的信息以及3.3 節(jié)發(fā)現(xiàn)的人物關(guān)系,存儲到Neo4j數(shù)據(jù)庫中。
目前在中文金融領(lǐng)域尚無公開的人員簡歷文本數(shù)據(jù)集,本文從網(wǎng)絡(luò)上爬取了上市公司年報、招股說明書以及公司官網(wǎng)上的文檔,獲取了金融公告中的非結(jié)構(gòu)化人員簡歷文本信息,并通過人工標注的方式,對非結(jié)構(gòu)化人員簡歷文本信息,進行人員屬性實體相關(guān)的BIO(B-begin,I-inside,O-outside)標注,人員屬性實體標注數(shù)據(jù)集的基本信息如表1 所示。
表1 人員屬性實體標注數(shù)據(jù)集信息Table 1 Information of personnel attribute entity labeling dataset
通過人工的方式構(gòu)筑層次化的人員模板,邀請多位金融領(lǐng)域?qū)<覍ι傻臄?shù)據(jù)集進行校對修改,保證了數(shù)據(jù)集準確性。人工構(gòu)建的層次化人員模板數(shù)據(jù)集的基本信息如表2 所示。
表2 層次化人員模板數(shù)據(jù)集信息Table 2 Information of hierarchical personnel templates dataset
本文使用albert_large_zh 為基礎(chǔ)模型,該模型由24 個Transformer 編碼器構(gòu)成,每個Transformer 編碼器包含16 個注意力頭,詞向量的維度為1 024。
在微調(diào)訓練階段,本文設(shè)置批處理大小32,對應的學習率設(shè)置為2E-5,預熱率為0.1,句子的最大長度設(shè)置為128,對數(shù)據(jù)集迭代6 次,在一塊RTX2080Ti上使用adam 優(yōu)化器訓練。
本文使用查準率()、查全率()和1 值作為人員屬性實體抽取的評價指標,分別與基于啟發(fā)式規(guī)則的方法、經(jīng)典的BiLSTM-CRF方法進行對比?;趩l(fā)式規(guī)則的方法,通過人工編寫一些模板或正則表達式,對文本中的屬性實體進行抽取。人員屬性實體抽取實驗結(jié)果如表3 所示。
表3 人員屬性實體抽取實驗結(jié)果Table 3 Experimental results of personnel attribute entity extraction
由表3 可以看出,基于BERT 的人員屬性實體提取方法與基于BiLSTM-CRF 的方法在查準率、查全率以及1 值三個評價指標上均超過了0.900 0。相對于基于BiLSTM-CRF 的方法,基于BERT 的人員屬性實體提取方法在查準率、查全率以及1 值三個評價指標上,均取得了最優(yōu)的效果。基于啟發(fā)式規(guī)則的方法依賴于人工編寫規(guī)則,而規(guī)則很難覆蓋所有的情況,查準率、查全率與1 值和另外兩種方法相比,效果最差。
從非結(jié)構(gòu)化的文本中抽取出人員屬性實體后,通過BERT-Template 方法構(gòu)造層次化的人員模板,從而完成人員屬性關(guān)聯(lián)。將訓練數(shù)據(jù)按照9∶1 的比例劃分為訓練集與測試集,使用訓練集進行8 000 次迭代訓練,訓練過程中使用測試集測試模型。將BiLSTM-CRF 模型替換BERT 模型作為對比實驗,教育經(jīng)歷事件實例與任職經(jīng)歷事件實例最終分類的結(jié)果評價指標如表4 所示,其中正確率()的計算方式如式(3)所示,其中表示被正確分類為某一類的樣本數(shù),表示將其他類的樣本錯誤地分類成當前類樣本的樣本數(shù),表示將當前類樣本錯誤地分類成其他類樣本的樣本數(shù),表示將負類預測為負類數(shù)的數(shù)量。
表4 事件分類結(jié)果Table 4 Event classification results
在任職經(jīng)歷和教育經(jīng)歷事件真假分類上,BERTTemplate 方法比BiLSTM-CRF 方法的1 值分別高了0.03 與0.03。綜合來看,BERT-Template方法更優(yōu)。
得到層次化的人員模板后,對人員模板之間的同事關(guān)系以及校友關(guān)系進行發(fā)現(xiàn)和抽取。使用抽取到的人員關(guān)系與人員模板信息構(gòu)建知識圖譜,存儲到Neo4j 圖數(shù)據(jù)庫中。分別使用人工啟發(fā)式規(guī)則、BERT-Template 方法和BiLSTM-CRF 方法構(gòu)建的層次化人員模板進行人物關(guān)系的發(fā)現(xiàn)和抽取,與人工構(gòu)建的準確的層次化人員模板進行人員關(guān)系發(fā)現(xiàn)和抽取得到的結(jié)果進行對比。對比結(jié)果如表5 所示。
表5 人員實體關(guān)系發(fā)現(xiàn)與抽取實驗結(jié)果Table 5 Experiment results of personnel entity relationship discovery and extraction
表5 中通過BERT-Template 方法,在基于BERT預訓練模型構(gòu)建的層次化人員模板的基礎(chǔ)上進行人物關(guān)系的發(fā)現(xiàn)和抽取,與BiLSTM-CRF 方法相比,在同事關(guān)系與校友關(guān)系上,查準率分別提升了0.02 與0.03,1 值均提升了0.02;與啟發(fā)式規(guī)則方法相比,在同事關(guān)系與校友關(guān)系上,查準率分別提升了0.07 與0.23,1 值分別提升了0.07 與0.22。綜合來看,BERT-Template方法能取得較好的效果。
本文研究中文金融領(lǐng)域人物關(guān)系圖譜構(gòu)建方法,提出一種金融領(lǐng)域人物關(guān)系圖譜構(gòu)建框架,旨在解決現(xiàn)有的人員簡歷信息抽取方法存在的分散文本中的人物屬性及其關(guān)系的發(fā)現(xiàn)與提取問題、非結(jié)構(gòu)化人員簡歷文本中人員屬性的抽取以及關(guān)聯(lián)問題。使用BERT 模型,準確抽取出人員屬性實體,利用微調(diào)訓練好的BERT 模型對事件實例向量分類,構(gòu)造層次化的人員信息模板,解決人員屬性關(guān)聯(lián)問題,最終通過填充好的人員信息模板,更加方便準確地提取人員關(guān)系,構(gòu)建人物關(guān)系圖譜。實驗表明了該金融領(lǐng)域人物關(guān)系圖譜構(gòu)建框架的有效性。本框架依賴于人工標注的數(shù)據(jù)集,下一步考慮使用弱監(jiān)督學習的方法,進一步地擴充數(shù)據(jù)集,減少人工構(gòu)建數(shù)據(jù)集的工作量。