寫在前面
文本是參加2020CCKS評測 基于本體的金融知識圖譜自動化構建技術之后的一篇總結博客,筆者查閱了大量文獻,并做了大量采用深度學習模型的實驗,但最終提交時效果最好的方法還是規則匹配。
文本中總結了筆者在最終提交時所使用的方案,以及在參加評測過程中所嘗試的各種實驗,另外還有評測結束后還沒有來得及實現的一些想法。
1. 評測任務介紹
1.1 介紹
金融研報是各類金融研究結構對宏觀經濟、金融、行業、產業鏈以及公司的研究報告。報告通常是由專業人員撰寫,對宏觀、行業和公司的數據信息搜集全面、研究深入,質量高,內容可靠。報告內容往往包含產業、經濟、金融、政策、社會等多領域的數據與知識,是構建行業知識圖譜非常關鍵的數據來源。
另一方面,由于研報本身所容納的數據與知識涉及面廣泛,專業知識眾多,不同的研究結構和專業認識對相同的內容的表達方式也會略有差異。這些特點導致了從研報自動化構建知識圖譜困難重重,解決這些問題則能夠極大促進自動化構建知識圖譜方面的技術進步。
本評測任務參考TAC KBP中的Cold Start評測任務的方案,圍繞金融研報知識圖譜的自動化圖譜構建所展開。評測從預定義圖譜模式(Schema)和少量的種子知識圖譜開始,從非結構化的文本數據中構建知識圖譜。
其中圖譜模式包括 10 種實體類型,如機構、產品、業務、風險等;19 個實體間的關系,如(機構,生產銷售,產品)、(機構,投資,機構)等;以及若干實體類型帶有屬性,如(機構,英文名)、(研報,評級)等。在給定圖譜模式和種子知識圖譜的條件下,評測內容為自動地從研報文本中抽取出符合圖譜模式的實體、關系和屬性值,實現金融知識圖譜的自動化構建。
1.2 其他相關信息
筆者GitHub代碼[1],最終排名為第五名 :
2.目前方案
由于評測包含的子任務比較多,有實體識別、關系抽取和屬性抽取;可使用的技術也非常多,有監督,無監督,半監督等等;所以筆者在做評測的過程中嘗試了很多方法,但是大部分的模型都不如規則,所以筆者最終提交的方案中使用了大量規則匹配方法。
2.1 方案整體流程圖
整體方案流程圖整體結構可以分為實體識別和關系、屬性抽取兩部分;流程可以分為6步,其中2、3和4步會重復執行多次。
- 第1步:通過Hanlp和規則匹配的方式抽取部分實體;
- 第2步:采用遠程監督方法,用種子知識圖譜對齊無標數據得到標出了實體的數據;
- 第3步:用上一步得到的標出了實體的數據訓練模型;
- 第4步:用上一步訓練的實體識別模型抽取無標數據中的實體,并將抽取出的實體加入到種子知識圖譜中,增加種子知識圖譜的規模,重復2,3,4步多次不斷使種子知識圖譜規則不斷擴大;
- 第5步:通過重復2,3,4步多次后得到擴展了大量實體的知識圖譜,用種子知識圖譜對齊無標數據,將無標數據中的實體都找出來;
- 第6步:通過上一步得到無標數據中的實體后,使用規則的方法判斷實體間的關系和屬性。
2.2 實體抽取部分
1)外部工具
通過Hanlp實體識別工具,抽取“人物”和“機構”兩種類型的實體。Hanlp工具的實體識別模型是其他有標語料上訓練的,這里使用外部工具本質上是使用了遷移學習方法。
2)規則
通過規則,抽取“研報“,“文章“,“風險“,“ 機構“四種類型的實體。
3)深度學習(遠程監督實體識別)
除了規則匹配外,還可以采用遠程監督的方法,主要用于抽取研報中的實體,具體流程如下圖所示:
遠程監督實體識別- 使用規則和外部工具抽取一部分實體;
- 將原始數據平均分成兩半,一半用于訓練,一半用于測試,對用于訓練的一半數據使用遠程監督進行標注;
- 采用將遠程監督方法標注的數據按4:1劃分,分別作為訓練和驗證集,訓練模型;
- 使用上一步訓練出的模型在測試集上進行預測,抽取出一部分實體;
- 通過規則匹配的方法篩選掉一些實體,剩下的實體加入種子知識圖譜,然后從第2步開始,重復上一次訓練,迭代進行實體抽取。
2.3 關系抽取、屬性抽取部分
關系抽取和屬性抽取方法非常相似,可以使用同樣的方案來解決。
在做評測的過程中,考慮到沒有給出有標注的關系抽取數據集,所以最初我計劃采用遠程監督關系抽取的相關方法,首先使用經典的模型PCNN做了相關實驗,在實驗過程中發現語料中有大量的關系需要通過跨句的抽取方法才能識別,所以又查看了文檔級關系抽取的相關方法。但是,目前文檔級關系抽取方法幾乎都使用有監督訓練,所以筆者最后對數據做了一些處理后,還是使用了PCNN+ATT模型。在進行了相關實驗后并與使用規則的方法做比較之后,筆者發現深度學習模型在對關系的準確率上還是差的比較遠,所以在評測的最后階段還是采用的規則匹配方法。
3.相關實驗
下面是在參加評測的過程中,筆者做的采用深度學習方法的一些實驗,筆者比較了各種方法的優劣,選了幾種在評測給定的場景下較優的方法,但是在最終的效果都不如采用規則匹配的方法。這里筆者把在評測中做的一些實驗,采用的一些模型做一個總結。
3.1 實體抽取部分
3.1.1 BERT-MRC模型
該評測的實體識別模型就采用的該方法,BERT-MRC模型是目前實體識別領域的SOTA模型(2020年),在數據量較小的情況下效果較其他模型要更好,原因是因為BERT-MRC模型可以通過問題加入一些先驗知識,減小由于數據量太小帶來的問題。在實際實驗中,在數據量比較小的情況下,BERT-MRC模型的效果確實要較其他模型要更好些。BERT-MRC模型很適合用在本評測這種缺乏標注數據的場景下。
(1)方法概述
-
任務定義:給定一個文本序列,它的長度為,要抽取出其中的每個實體,其中實體都屬于一種實體類型。
-
模型思想:假設該數據集的所有實體標簽集合為,那么對其中的每個實體標簽,比如地點“國家”,都有一個關于它的問題。這個問題可以是一個詞,也可以是一句話等等。使用上述MRC中片段抽取的思想,輸入文本序列和問題,是需要抽取的實體,BERT_MRC通過建模來實現實體抽取。
-
提示信息(問題構造):對于問題的構造是建模的重要環節。BERT_MRC使用“標注說明”作為每個標簽的問題。所謂“標注說明”,是在構造某個數據集的時候提供給標注者的簡短的標注說明。比如標注者要去標注標簽為“國家”的所有實體,那么對應“國家”的標注說明就是 “指擁有共同的語言、文化、種族、血統、領土、政府或者歷史的社會群體。
(2)模型輸入與模型損失
將問題和語料中的句子合并成一句話作為輸入,問題和語料句之間用BERT的句子級特殊符號“[SEP]”隔開,下圖中紅色框線框出的為問題:
輸入示例在用BERT編碼得到詞向量之后,訓練三個分類器,得到開始、結束位置標簽以及一個概率矩陣。上述兩個標簽一個矩陣共可以求三個loss,模型的總loss是上述三個loss之和 :
損失函數3.1.2 BERT-CRF、LSTM-CRF模型
將實體識別看做一個序列標注問題,設計BIO和實體類型的聯合標簽,每個字符對應一個標簽。在訓練時,采用標注了標簽的字符序列作為語料訓練模型,預測階段使用模型預測字符對應的標簽,然后通過標簽得到實體的片段的具體位置以及實體片段的類型。
命名實體識別經典的baselineLSTM-CRF采用的就是這種方法,18年之后BERT代替了LSTM,b變成了一個重要的實體識別baseline。采用CRF的原因是CRF能對標簽的轉移狀態建模,減小一些錯誤的標簽序列出現的概率,增加模型的準確率。
樣本示例3.1.3 Simple-Lexicon模型
以LatticeLSTM為代表的詞匯增強模型,其主要目的是解決中文分詞的問題。實體識別任務經常被轉換為一個序列標注問題,序列標注問題以字為單位,預測每個字對應的標簽,模型的輸入是以字序列作為輸入,而以字序列的形式進行編碼和解碼,會忽略中文中重要的分詞信息。如何分詞在中文NLP任務中是非常重要的,會很大地影響模型的性能。
詞匯增強模型的目的就是為了解決以如何讓以字作為輸入的模型使用詞匯信息,在該評測中筆者只簡單的做了一些和Simple-Lexicon模型相關的實驗。筆者發現Simple-Lexicon模型并沒有比BERT-CRF模型的效果好很多,分析原因是由于任務的特殊性,影響遠程監督實體識別模型性能的比較重要的因素還是在于遠程監督和迭代增強帶來的錯誤傳遞和召回率低等問題,采用什么樣的實體識別模型對能否解決以上兩個問題其實影響并不大。
3.2 關系抽取、屬性抽取部分
3.2.1 遠程監督關系抽取與多示例學習
遠程監督假設是指,假如兩個實體之間存在某種關系,那么所有這兩個實體共現的句子都有可能表達這種關系。這一假設過強,有些兩個實體共現的句子并不能表達實體間的這種關系,例如下圖中的兩個句子,以及關系三元組 (“比爾蓋茨,創建者 , 微軟”)。
遠程監督與噪聲數據上圖中的兩個句子有一個可以體現三元組表達的關系,另一個不能表達這種關系。這些不能表達兩個實體間關系信息的句子根據遠程監督假設也會被進行標注然后當做訓練語料,這些句子就是噪聲數據,噪聲數據嚴重影響了遠程監督關系抽取模型的性能。
目前能夠有效地在使用遠程監督方式標注的數據集上進行關系抽取的模型,基本都采用了多示例學習的方法(小喵以前也在小組內分享過這個方法)。多示例學習的具體做法是,將訓練集劃分成多個具有分類標簽的多實例包(bag),每個包含有若干個實例(instance)。多示例學習通過對包中實例的學習,訓練出一個能夠對包進行分類的分類器,并將該分類器應用于對未知標簽的多示例包的預測。
上圖就是一個多示例包,這個包的標簽是“創建者”類型,包中有兩個實例。其中第一個實例可以表達“創建者”這種關系,而第二個實例則無法體現這種關系,使用多示例學習方式訓練的分類器想要達到一定的性能,需要能夠很好地分辨出哪些實例是正實例(能夠體現包的標簽的含義),哪些實例是負實例(不能體現包的標簽的含義)。
3.2.2 PCNN-One模型、PCNN-ATT模型
在多示例學習的訓練過程中,關于如何從包中選擇出正實例用于關系分類,主要有三種思想:
-
一種是基于“至少一個”假設,即假設包中至少有一個句子實例可以代表實體對之間的關系,這時任務目標就是訓練一個分類器,將包中最有可能代表實體間關系的句子作為輸入,對關系進行分類。這種思想就是PCNN-One模型采用的方法。
-
另一種方法基于注意力機制,使用一個能代表實體間關系的向量和包中的句子實例求相似度,得到一個權重參數,對不同的實例分配以不同的權重再求和,通過注意力的方式減小噪聲數據的影響。這種思想是PCNN-ATT模型采用的方法。
-
還有一種是使用強化學習的方式,篩選出正實例進行關系分類。由筆者沒有接觸過強化學習,所以沒有做采用強化學習方法去噪的相關實驗。
在實驗過程中遠程監督關系模型在其他的一些語料上表現還可以,但是在評測的數據集上效果很不理想,主要是因為評測語料數據是以金融研報文章為單位,和標準的遠程監督關系抽取語料(以句子為單位,需要分類的兩個實體都會在句子中出現)差別較大,所以筆者在最終提交時還是使用的規則匹配的方法,沒有使用PCNN-One模型和PCNN-ATT模型。
4.相關問題
4.1 實體抽取部分
4.1.1 使用Snowball方法在迭代過程中產生錯誤傳遞
使用迭代訓練的方法,在一次訓練過程中模型抽取出了錯誤的實體片段,這個錯誤的片段加入到種子知識圖譜去標注語料會造成錯誤傳遞,為了提高Snowball方法的抽取效果,需要設計過濾方法,將模型抽取出的實體經過篩選后再加入進種子知識圖譜中。
在做評測的過程中,筆者使用了規則的方法,觀察模型抽取的結果,然后設計規則,過濾錯誤片段。這種方法不是很有效,因為模型做一些調整后,抽取的結果就不同了,規則也需要做相應的修改。而且錯誤片段的種類非常多,規則的方法很難全部覆蓋到。
4.1.2 遠程監督訓練召回率低
如下圖所示,種子知識圖譜中有比爾蓋茨和微軟兩個實體,通過實體對齊之后,無標數據中的比爾蓋茨和微軟兩個實體被標注出來,但是,由于知識圖譜的規模限制,實體 保羅·艾倫 不在知識圖譜中,通過遠程監督的方式不能將該實體標注出來。
采用知識圖譜對齊的方式會出現大量的目標實體未被標注的情況,所以使用遠程監督標注的數據集訓練的模型召回率比較低。
Snowball方法理論上是解遠程監督實體識別召回率低的一個比較好的方案,但是實際實驗結果卻不是非常好。筆者打算在未來的改進方案中結合少量人工標注的數據,解決由于遠程監督造成的召回率低的問題。
4.2 關系抽取、屬性抽取部分
由于語料的問題,必須從句子級的關系抽取擴展到文檔級別的關系抽取。
5.改進方案
這部分內容筆者正在嘗試突破的方向,也是筆者研究生畢設的內容,現在已經有一些想法但還不好直接寫出來,如果之后有一定的成果我再來完善。
5.1 實體抽取部分
在現有的方案上主要做兩點改進:
1)加入使用深度學習方法訓練的實體判別器
2)使用遷移學習的方法,在訓練過程中加入相關領域的人工標注數據集,以及自己標注的部分數據,解決遠程監督訓練召回率低的問題
5.2 關系抽取/屬性抽取部分
在現有的方案上主要做兩點改進:
1)增加關系分類器,解決遠程監督關系抽取的噪聲問題
主要是參考AAAI2020年的一篇論文NeuralSnowball,增加一個像RSN關系分類器的模塊,增強模型對噪聲數據的區分,同時用人工標注一部分數據,使用其他領域大規模有標數據,少量人工標注的任務數據和大量無標注的任務數據做遷移學習。
2)使用文檔級關系抽取模型
審核編輯 :李倩
-
自動化
+關注
關注
29文章
5562瀏覽量
79239 -
知識圖譜
+關注
關注
2文章
132瀏覽量
7703
原文標題:5.改進方案
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論