Lex-BERT:超越FLAT的中文NER模型?

2021-02-20 python遇見NLP

點擊上方藍色小字關注星標,更多乾貨,第一時間送達


文 | JayLou婁傑

本文介紹一篇「大道至簡」的中文NER方法——Lex-BERT,其僅僅通過將詞彙信息以標識符的形式引入到原文輸入中,就可以有效增強中文NER效果。

由於Lex-BERT炒雞簡單,JayJay想安利給大家,趕緊在自己的中文NER任務上嘗試一下吧~

前言

談起中文NER任務,NLPer都不陌生。而如今,提升中文NER指標的主要方式是引入詞彙信息,JayJay在之前的綜述《中文NER的正確打開方式: 詞彙增強方法總結》(複製連結:https://zhuanlan.zhihu.com/p/142615620)一文中就詳細介紹了中文NER的一些主流方法,而SOTA屬於FLAT [1]。最近arxiv上的一篇paper《Lex-BERT: Enhancing BERT based NER with lexicons》將詞彙信息作為標識符引入到input中,並超越了FLAT的結果。論文下載:https://arxiv.org/pdf/2101.00396.pdf可以引入實體類型type信息,作者認為在領域內,可以收集包含類型信息的詞彙;相比FLAT,Lex-BERT推斷速度更快、內存佔用更小;一個題外話:JayJay之所以在標題中打了個問號(?),只是覺得不能就此下結論「Lex-BERT超越FLAT」,畢竟還是需要先有一個帶有實體類型信息的高質量詞表啊~但FLAT等用到的詞向量是很容易獲取的。

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很「雷同啊」?我們趕緊來回顧一下關係模型和「近似模型」吧:其實,Lex-BERT和關係抽取SOTA,都是將類型信息當作標識符引入到輸入文本中的。值得一提的是:Lex-BERT V2 和 近似關係模型 都借鑑了FLAT的方式,將標識符放入到文本之後,通過共享位置向量來建立軟連接。所以,本文主要想強調:將 詞彙/實體信息作為標識符 引入文本輸入中,對於NER和關係抽取都還是有明顯增益的。參考文獻

[1] FLAT: Chinese NER Using Flat-Lattice Transformer

END -

歡迎各位NLPer加入(醫療)自然語言處理技術交流群

進群請備註:研究方向+暱稱PS等廣告勿擾,謝謝

長按識別添加,即可進群

相關焦點

  • 中文最佳,哈工大訊飛聯合發布全詞覆蓋中文BERT預訓練模型
    而在中文領域,哈工大訊飛聯合實驗室也於昨日發布了基於全詞覆蓋的中文 BERT 預訓練模型,在多個中文數據集上取得了當前中文預訓練模型的最佳水平,效果甚至超過了原版 BERT、ERINE 等中文預訓練模型。基於 Transformers 的雙向編碼表示(BERT)在多個自然語言處理任務中取得了廣泛的性能提升。
  • 近期做NER的反思
    往期回顧:NLP中有很多任務,但我其實花的集中時間最多的還是ner,也就是命名實體識別,希望這塊能成為自己最能拿出手的技能,慢慢成長吧。近期NER自己嘗試做很多提升開發效率和準招提升的調研,速度上是能有所提升,但是總會出現各種問題,這裡總結一下,這些問題估計在其他任務中也會經常出現,也供大家一起思考和進步。
  • FLAT——中文NER該怎麼做
    NER模型中取得了SOTA。寫在前面由於中文詞彙的稀疏性和模糊性,基於字符的序列標註模型往往比基於詞彙的序列標註模型表現更好,但在基於字符的模型中引入分詞信息往往能夠帶來性能的提升,尤其是對於NER任務來說,詞彙能夠提供豐富的實體邊界信息。
  • FLAT:中文NER屠榜之作!
    如上圖所示,在MSRA-NER任務中,FLAT+BERT登頂榜首;而單獨的FLAT(1層TransFormer)也超越了預訓練模型ERNIE。不同於英文NER,中文NER通常以字符為單位進行序列標註建模。這主要是由於中文分詞存在誤差,導致 基於字符 通常要好於 基於詞彙 (經過分詞)的序列標註建模方法。那中文NER是不是就不需要詞彙信息呢?答案當然是否定的。
  • 基於Bert-NER構建特定領域的中文信息抽取框架(上)
    它主要由 Embedding 層(主要有詞向量,字向量以及一些額外特徵)、雙向 LSTM 層、以及最後的 CRF 層構成,而本文將分析該模型在中文 NER 任務中的表現。 隨著 Bert 語言模型在 NLP 領域橫掃了 11 項任務的最優結果,將其在中文命名實體識別中 Fine-tune 必然成為趨勢。它主要是使用 bert 模型替換了原來網絡的 word2vec 部分,從而構成 Embedding 層,同樣使用雙向 LSTM 層以及最後的 CRF 層來完成序列預測。
  • 【BERT】如何訓練並使用Bert【持續更新】
    特別地,在目前的BERT模型中,文章作者還將英文詞彙作進一步切割,劃分為更細粒度的語義單位(WordPiece),例如:將playing分割為play和##ing;此外,對於中文,目前作者尚未對輸入文本進行分詞,而是直接將單字作為構成文本的基本單位。'i', 'want', 'em', '##bed', '##ding', '##s', 'for', '.
  • NLP中文預訓練ERNIE模型全面超越谷歌BERT
    ERNIE模型在中文NLP任務上表現非凡,百度在多個公開的中文數據集上進行了效果驗證,在語言推斷、語義相似度、命名實體識別、情感分析、問答匹配等自然語言處理各類任務上,超越了谷歌的語義表示模型BERT的效果。近年來,基於海量無監督文本的深度神經網絡預訓練模型大幅提升了各個NLP 基準任務的效果。
  • 流水的NLP鐵打的NER:命名實體識別實踐與探索
    詞特徵、詞性特徵、句法特徵、KG表徵等等的就一個個加吧,甚至有些中文 NER 任務裡還加入了拼音特徵、筆畫特徵。。?NER結合一下,比如結合強化學習的NER、結合 few-shot learning 的NER、結合多模態信息的NER、結合跨語種學習的NER等等的,具體就不提了所以沿著上述思路,就在一個中文NER任務上做一些實踐,寫一些模型。
  • 2018年的一篇NER綜述筆記
    word級別,其實就比較常見word2vector、glove、fasttet、senna等,當然也有一些簡單預訓練語言模型,例如結合CNN之類的。而char級別(中文就是字級別)對未登錄詞的識別能力很高,其構建的主要方式主要有CNN-based和RNN-based。
  • 谷歌開源 BERT 模型原始碼
    驚鴻一瞥後,人們都在期待谷歌何時會放出 BERT 模型原始碼。直至今日,谷歌終於一鼓作氣發布了包括 BERT 模型 TensorFlow 代碼、BERT-Base 與 BERT-Large 模型的預訓練檢查點、微調實驗結果的自動化復現 TensorFlow 代碼、預訓練數據生成和數據訓練的代碼在內的「BERT 模型大禮包」。
  • 【NLP】流水的NLP鐵打的NER:命名實體識別實踐與探索
    詞特徵、詞性特徵、句法特徵、KG表徵等等的就一個個加吧,甚至有些中文 NER 任務裡還加入了拼音特徵、筆畫特徵。。?NER結合一下,比如結合強化學習的NER、結合 few-shot learning 的NER、結合多模態信息的NER、結合跨語種學習的NER等等的,具體就不提了所以沿著上述思路,就在一個中文NER任務上做一些實踐,寫一些模型。
  • 最新中文NER模型介紹
    深度學習時代中文NER出現了LSTM、LSTM+CRF、BERT、BERT+CRF等方法,前期主要單純基於字信息或詞信息(詞信息需要更多的訓練文本
  • FLAT:中文NER屠榜之作!復旦大學邱錫鵬團隊出品
    如上圖所示,在MSRA-NER任務中,FLAT+BERT登頂榜首;而單獨的FLAT(1層TransFormer)也超越了預訓練模型ERNIE。不同於英文NER,中文NER通常以字符為單位進行序列標註建模。這主要是由於中文分詞存在誤差,導致基於字符通常要好於基於詞彙(經過分詞)的序列標註建模方法。那中文NER是不是就不需要詞彙信息呢?答案當然是否定的。
  • BERT模型超酷炫,上手又太難?請查收這份BERT快速入門指南!
    除了這篇博文,我還準備了一份對應的 notebook 代碼,連結如下:https://github.com/jalammar/jalammar.github.io/blob/master/notebooks/bert/A_Visual_Notebook_to_Using_BERT_for_the_First_Time.ipynb。
  • 復旦邱錫鵬團隊最新成果fastHan:基於BERT的中文NLP集成工具
    機器之心轉載機器之心編輯部fastHan 是基於 fastNLP 與 PyTorch 實現的中文自然語言處理工具,像 spacy 一樣調用方便,其內核為基於 BERT 的聯合模型。
  • 用TensorFlow構建一個中文分詞模型需要幾個步驟
    另一種就是使用如TensorFlow、PyTorch這類訓練深度學習序列標註(Tagging)模型。這裡面我們主要以後者為參考。中文分詞往往有兩個直接目標,一個是把詞彙分開,另一個給每個詞以詞性,例如動詞、名詞,或者更細分的地點名詞、機構名詞等等。
  • 從 one-hot 到 BERT,帶你一步步理解 BERT
    而自google在2018年10月底公布BERT在11項nlp任務中的卓越表後,BERT(Bidirectional Encoder Representation from Transformers)就成為NLP一枝獨秀,本文將為大家層層剖析bert。NLP常見的任務主要有:中文自動分詞、句法分析、自動摘要、問答系統、文本分類、指代消解、情感分析等。
  • 中文命名實體識別工具(NER)哪家強?
    開源的中文命名實體工具並不多,這裡主要指的是一些成熟的自然語言處理開源工具,不是github上一些學習性質的代碼。其中HanLp增加了更細粒度的詞性標註集,具體可參考:https://www.hankcs.com/nlp/part-of-speech-tagging.htmlHanLP使用的HMM詞性標註模型訓練自2014年人民日報切分語料,隨後增加了少量98年人民日報中獨有的詞語。
  • 乾貨| BERT fine-tune 終極實踐教程
    以下是奇點機智技術團隊對BERT在中文數據集上的fine tune終極實踐教程。在自己的數據集上運行 BERTBERT的代碼同論文裡描述的一致,主要分為兩個部分。一個是訓練語言模型(language model)的預訓練(pretrain)部分。
  • 華為雲摘得NLPCC 輕量級預訓練中文語言模型測評桂冠
    近日,華為雲AI團隊獲得第9屆國際自然語言處理與中文計算會議NLPCC 2020 輕量級預訓練中文語言模型測評第一名。NLPCC 由中國計算機學會主辦,是自然語言處理(NLP)和中文計算(CC)領域的頂級國際前沿會議,每年會議都秉承國際化和一流化的嚴格標準來進行自然語言處理任務的開放評測,推動相關任務的研究和發展。