基于 BERT 的項目實戰(zhàn)(NER、Classification)

1 BERT簡介

BERT是2018年google 提出來的預訓練的語言模型,并且它打破很多NLP領域的任務記錄,其提出在nlp的領域具有重要意義。預訓練的(pre-train)的語言模型通過無監(jiān)督的學習掌握了很多自然語言的一些語法或者語義知識,之后在做下游的nlp任務時就會顯得比較容易。

BERT模型采用的是12層或者24層的雙向的Transformer的Encoder作為特征提取器。在nlp領域,特征提取能力方面的排序大致是Transformer>RNN>CNN。遮蓋詞的預測任務(mask word prediction)和下一個句子預測任務(next sentence prediction),這兩個頗具難度的預訓練任務,讓模型在預訓練階段就對自然語言有了比較深入的學習和認知,而這些知識對下游的nlp任務有著巨大的幫助。當然,想要模型通過預訓練掌握知識,我們需要花費大量的語料,大量的計算資源和大量的時間。但是訓練一遍就可以一直使用,這種一勞永逸的工作,依然很值得去做一做。BERT在做下游的有監(jiān)督nlp任務時就像一個做了充足預習的學生去上課,那效果肯定事半功倍。
之前的word2vec,glove等Word Embedding技術也是通過無監(jiān)督的訓練讓模型預先掌握了一些基礎的語言知識,但是Word Embedding技術無論從預訓練的模型復雜度(可以理解成學習的能力),以及無監(jiān)督學習的任務難度都無法和BERT相比。

2 BERT的項目實戰(zhàn)

BERT-BiLSMT-CRF-NER 使用谷歌的BERT模型在BLSTM-CRF模型上進行預訓練用于中文命名實體識別的Tensorflow代碼

NLP - 基于 BERT 的中文命名實體識別(NER)

擴展參考:ChineseNER(RNN)--Recurrent neural networks for Chinese named entity recognition in TensorFlow

bert-Chinese-classification-taskbert 中文分類實踐

BERT-Classification-Tutorial

pytorch-pretrained-BERT Google官方推薦的PyTorch BERB版本實現(xiàn),可加載Google預訓練的模型

3 總結

BERT 就像圖像領域的Imagenet,通過高難度的預訓練任務,以及強網(wǎng)絡模型去預先學習到領域相關的知識,然后去做下游任務。 想較于一些比較于直接使用Naive的模型去做深度學習任務,BERT就像班里贏在起跑線上的孩子,肯定比其他孩子要強出一大截。現(xiàn)在是不是感受到BERT的威力了,嘗試用起來吧。

4 參考

張俊林博士的解讀, 知乎專欄:從Word Embedding到Bert模型—自然語言處理中的預訓練技術發(fā)展史

http://www.52nlp.cn/tag/bert

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容