bert總結

1.BERT是一個預訓練的模型,用於下游任務的使用,這裏在解釋下什麼是與訓練模型:

假設已有A訓練集,先用A對網絡進行預訓練,在A任務上學會網絡參數,然後保存以備後用,當來一個新的任務B,採取相同的網絡結構,網絡參數初始化的時候可以加載A學習好的參數,其他的高層參數隨機初始化,之後用B任務的訓練數據來訓練網絡,當加載的參數保持不變時,稱爲"frozen",當加載的參數隨着B任務的訓練進行不斷的改變,稱爲“fine-tuning”,即更好地把參數進行調整使得更適合當前的B任務,而當我們在使用下游任務微調bert時候只是用了bert訓練好的參數進行微調權重就可以

2.爲了訓練雙向特徵,這裏採用了Masked Language Model的預訓練方法,隨機mask句子中的部分token,然後訓練模型來預測被去掉的token。

隨機mask語料中15%的token,然後將masked token 位置輸出的final hidden vectors送入softmax,來預測masked token。

因爲都用標記[MASK]代替token會影響模型,所以在隨機mask的時候採用以下策略:

1)80%的單詞用[MASK]token來代替
2)10%單詞用任意的詞來進行代替

3)10%單詞不變

3.爲了讓模型捕捉兩個句子的聯繫,這裏增加了Next Sentence Prediction的預訓練方法,即給出兩個句子A和B,B有一半的可能性是A的下一句話,訓練模型來預測B是不是A的下一句話訓練模型,使模型具備理解長序列上下文的聯繫的能力

4.BERT即雙向Transformer的Encoder,BERT的模型架構基於多層雙向轉換解碼,因爲decoder是不能獲要預測的信息的,模型的主要創新點都在pre-traing方法上,即用了Masked LM和Next Sentence Prediction兩種方法分別捕捉詞語和句子級別的representation

其中“雙向”表示模型在處理某一個詞時,它能同時利用前面的詞和後面的詞兩部分信息,這種“雙向”的來源在於BERT與傳統語言模型不同,它不是在給你大牛股所有前面詞的條件下預測最可能的當前詞,而是隨機遮掩一些詞,並利用所有沒被遮掩的詞進行預測

其中 BERT 和 ELMo 都使用雙向信息,OpenAI GPT 使用單向信息
5。bert的輸入部分是個線性序列,兩個句子通過分隔符分割,最前面和最後增加兩個標識符號。每個單詞有三個embedding:位置信息embedding,這是因爲NLP中單詞順序是很重要的特徵,需要在這裏對位置信息進行編碼;單詞embedding,這個就是我們之前一直提到的單詞embedding;第三個是句子embedding,因爲前面提到訓練數據都是由兩個句子構成的,那麼每個句子有個句子整體的embedding項對應給每個單詞。把單詞對應的三個embedding疊加,就形成了Bert的輸入。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章