百度Lic2020關系抽取baseline學習 for Bert4Keras
前情提要
就是參加了Lic2021多形態信息抽取賽道,然后找了找之前的baseline,看到了蘇神的思路,特地學習了一下,然后記錄一下。
賽事背景
信息抽取旨在從非結構化自然語言文本中提取結構化知識,如實體、關系、事件等。目前,大多數研究工作僅關注單一類型信息的抽取效果,缺乏在不同類型信息抽取任務上的統一評價。因此,本次競賽設立了多形態信息抽取任務,期望從不同維度對結構化知識抽取效果進行綜合評價。競賽將對外發布業界最大規模的中文多形態信息抽取數據集,囊括實體、關系、事件等不同形態的結構化知識抽取,同時涵蓋句子和篇章兩種粒度的自然語言文本。希望通過此次競賽及開放的大規模中文數據集,助力信息抽取技術的進一步發展。
任務說明
關系抽取任務的目標是對於給定的自然語言句子,根據預先定義的schema集合,抽取出所有滿足schema約束的SPO三元組。schema定義了關系P以及其對應的主體S和客體O的類別。
樣本輸入示例:
{
"text":"王雪純是87版《紅樓夢》中晴雯的配音者,她是《正大綜藝》的主持人"
}
輸出示例:
{
"text":"王雪純是87版《紅樓夢》中晴雯的配音者,她是《正大綜藝》的主持人",
"spo_list":[
{
"predicate":"配音",
"subject":"王雪純",
"subject_type":"娛樂人物",
"object":{
"@value":"晴雯",
"inWork":"紅樓夢"
},
"object_type":{
"@value":"人物",
"inWork":"影視作品"
}
},
{
"predicate":"主持人",
"subject":"正大綜藝",
"subject_type":"電視綜藝",
"object":{
"@value":"王雪純"
},
"object_type":{
"@value":"人物"
}
}
]
}
樣本特點:
參照蘇神的博客:
Idea
-
蘇神提出的基於概率圖的抽取方案,就是先抽取subject,然后再根據subject同時預測object和predicate。
-
第二點就是針對類別失衡的問題,作者提出了一種將概率值做n次方的形式,去解決這種問題。
-
這是模型結構
流程就是:
1、原始序列轉id后,傳入bert的編碼器,得到編碼序列; 2、編碼序列接兩個二分類器,預測s; 3、根據傳入的s,從編碼序列中抽取出s的首和尾對應的編碼向量; 4、以s的編碼向量作為條件,對編碼序列做一次條件Layer Norm; 5、條件Layer Norm后的序列來預測該s對應的o、p。
這里的條件Layer Norm會具有更好的表達能力。
剩下的具體細節就參考蘇神的博客就可以了