Lex-BERT:超越FLAT的中文NER模型?
作者:JayLou婁杰
鏈接:https://zhuanlan.zhihu.com/p/343231764
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
?
談起中文NER任務,NLPer都不陌生。而如今,提升中文NER指標的主要方式是引入詞匯信息,JayJay在之前的綜述《中文NER的正確打開方式: 詞匯增強方法總結》一文中就詳細介紹了中文NER的一些主流方法,而SOTA屬于FLAT[1]。
最近arxiv上的一篇paper《Lex-BERT: Enhancing BERT based NER with lexicons》將詞匯信息作為標識符引入到input中,并超越了FLAT的結果。
Lex-BERT相比于FLAT有三點優勢:
一個題外話:JayJay之所以在標題中打了個問號(?),只是覺得不能就此下結論“Lex-BERT超越FLAT”,畢竟還是需要先有一個帶有實體類型信息的高質量詞表啊~但FLAT等用到的詞向量是很容易獲取的。
JayJay之所以還要介紹Lex-BERT,主要想強調:將 詞匯/實體信息作為標識符 引入文本輸入中,對于NER和關系抽取都還是有明顯增益的。你再回想回想陳丹琦的《反直覺!陳丹琦用pipeline方式刷新關系抽取SOTA》,就體會到其中的“異曲同工”之處了。
SOTA回顧:FLAT
FLAT的設計十分簡單巧妙。如上圖所示,具體地設計了一種巧妙position encoding來融合Lattice 結構,具體地,對于每一個字符和詞匯都構建兩個head position encoding 和 tail position encoding。相關詞匯共享相關token的position信息。FLAT可以直接建模字符與所有匹配的詞匯信息間的交互,例如,字符[藥]可以鏈接詞匯[人和藥店]和[藥店]。
相關實驗表明,FLAT有效的原因是:新的相對位置encoding有利于定位實體span,而引入詞匯的word embedding有利于實體type的分類。
Lex-BERT:簡單到爆!
Lex-BERT方式其實很簡單,前提是要有一個擁有類型type信息的詞匯表。論文作者共給出了2個版本的Lex-BERT,如上圖所示:
- Lex-BERT V1: 將type信息的標識符嵌入到詞匯前后,例如,上圖中[v][/v]代表醫學相關的動詞。
- Lex-BERT V2: 將type信息的標識符拼接input后,然后與原始word起始的token共享相同的position embedding。此外,在attention層中,文本token只去attend文本token、不去attend標識符token,而標識符token可以attend原文token。
上圖給出了Lex-BERT與FLAT(本文的FLAT實際是FLAT+BERT的結果)的指標對比,可以看出,Lex-BERT V1和V2均超過了FLAT,Lex-BERT V2領先更大。
上圖給出了Lex-BERT與FLAT的推斷速度和內存占用對比,相比FLAT,Lex-BERT推斷速度更快、內存占用更小。
劃重點:將詞匯/實體類型信息當作標識符引入,增益明顯!
看完Lex-BERT V1和V2的框架后,你是否感覺和女神的關系抽取SOTA很“雷同啊”?我們趕緊來回顧一下關系模型和“近似模型”吧:
- 關系模型:如上圖(b)所示,對所有的實體pair進行關系分類。其中最重要的一點改進,就是將實體邊界和類型作為標識符加入到實體Span前后,然后作為關系模型的輸入。
- 近似關系模型:如上圖(c)所示,將實體邊界和類型的標識符放入到文本之后,然后與原文對應實體共享位置向量。上圖中相同的顏色代表共享相同的位置向量。哈哈,這是不是借鑒了FLAT的結構呢?
其實,Lex-BERT和關系抽取SOTA,都是將類型信息當作標識符引入到輸入文本中的。值得一提的是:Lex-BERT V2 和 近似關系模型 都借鑒了FLAT的方式,將標識符放入到文本之后,通過共享位置向量來建立軟連接。
所以,本文主要想強調:將 詞匯/實體信息作為標識符 引入文本輸入中,對于NER和關系抽取都還是有明顯增益的。
總結
以上是生活随笔為你收集整理的Lex-BERT:超越FLAT的中文NER模型?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么你应该开始习惯使用 pathlib
- 下一篇: anconda3安装虚拟环境