BERT 論文筆記
BERT:Pre-training of Deep Bidirectional Transformer for Language Understanding
谷歌AI團隊釋出,在機器閱讀理解SQuAD1.1跑出的成績,在兩個指標上全面超越人類。
GLUE基準80.04%(7.6%絕對提升),MultiNLI準確率86.7%(5.6%絕對提升)
BERT= Bidirectional Encoder Representation from Transformers
Pre-training Objective : MLM(Masked Language Model), 隨機mask input中一些tokens,目標就是根據context去預測mask位置原始的詞彙id
除了MLM,引入next sentence prediction 任務聯合訓練pair級別的特徵表示
貢獻點:
1、證明了bidirectional對文字特徵表示的重要性
2、證明了預訓練的特徵表示能夠消除很多繁重的任務相關的網路結構
3、11個NLP任務上,提升了state of art水平
應用預訓練模型的兩個方案:
1、Feature based
ELMo方法希望通過語言模型提取上下文敏感的表示特徵,把任務相關的結構和上下文word embedding結合起來.
2、Fine-tuning
在有監督的fine-tune指定任務前,先通過語言模型LM的目標,預訓練模型
BERT核心
模型架構
雙向的叫Transfer Encoder
單向的叫Transfer Decoder
BERT vs OpenAI GPT vs ELMo
輸入表示Input Representation
多個Sentence可以拼成一個sentence
token Representation = token embedding + segment(句) + position embedding
1)tokens embedding用WordPiece embedding(Wu et al., 2016),3w token詞彙
2)positional embedding支援序列長度到512個tokens
3)Segment embedding,第一句所有token都用A代替,第二句都用B代替
Pre-training 任務
不用傳統的左向右或者右向左的LM來預訓練 BERT,採用兩個新的無監督的預測任務來實現預訓練。
1)任務一:Masked LM
15%的比例,在每個sequence中,隨機的mask掉 WordPiece中的tokens;同時也只predict被mask掉的位置上的words
這個方法有2個缺點downsides:
A:因為[MASK]字元在fine-tuning階段根本不會存在,所以在pre-training階段用[MASK]代替原來的word參與訓練,會到只pre-training和fine-tuning階段mismatch。
解決辦法是:在整體15%的隨機中,有80%用[MASK]替換選中的word,10%用一個隨機的word代替選中的word,剩下10%的比例保持選中的word不變
B:因為在每一輪訓練(each batch)只有15%的tokens會被預測,pre-training階段的模型收斂就需要迭代更多的steps(相比於單向的模型,預測所有的word被預測)
2)任務二:Next Sentence Prediction
理解2個text sentence之間的relationship,這個relation是不能直接用LM模型學習到的。
構建有一個2分類任務binarized next sentence prediction task,訓練資料可以從任何一個單語種的語料庫中生成:對於AB兩個sentence,50%的概率B就是實際在A後面的sentence,另外50%的概率B是從語料中隨機選擇的一個sentence。
最終這個任務的Accuracy達到97%~98%
Pre-training過程
資料:BooksCorpus(800M words) + English Wikipedia(2500M words)
Wikipedia的資料只取text段落,忽略列表、表格等
從語料中,抽樣2個spans作為sentence,第一個sentence作為A Embeding,第二個作為B Embeding;50%的概率B是實際的sentence,另外50% B是隨機sentence.
抽樣時保證A+B的長度<512 tokens
LM masking:在用wordpiece 分詞(tokenization)後,均勻按15%的比例(rate)mask掉其中的tokens。沒有任何特殊的操作。
batchsize = 256 sequence(256*512tokens = 128,000 tokens/batch)
steps=1,000,000 (40 epochs / 3.3 billion word corpus)
Adam lr=1e-4, beta1=0.9 beta2=0.999
L2 weight decay = 0.01
lr adj step = 10,000 steps, linear decay
dropout p=0.1 all layers
activation = gelu (不是relu)
Loss = mean masked LM Likelihood + mean next sentence prediction likelihood
Fine-tuning過程
A:sequence Level的分類任務
為了得到一個固定維度的整句特徵表示,直接取第一個token([CLS])的final hidden state(Transformer output),記作C。後面唯一需要加一個分類層W
P= softmax(CW)
BERT 和 W的所有引數,一起finetune
B:span-level 和 token-level的預測任務
需要針對任務做微小的調整
batch size、lr和 epochs不同,其他超參大部分相同
C:SQuAD v1.1——StandFord Question Answering Dataset
100K QA pairs
給定一個問題Q,以及一段包含答案A的文欄位落paragraph,任務的目標是預測在段落中,是答案文字段span
做法:
a)將question和paragraph合併成一個sequence的特徵表示,Q用A Embeding,P用B Embeding。
b)需要學習的新引數是一個起始向量S,以及一個結束向量E。每個token對應的Ti代表最後的hidden vector。
i是Answer起始位置的概率是P = softmax(S·T),對Ti和S的dot product做softmax
對結束位置的計算也用同樣的公式
fine-tune 3 epochs, lr = 5e-5, batchsize = 32
在Inference階段,因為end predict並不依賴start predict,所以需要加一個約束:end要在start之後。除了這個,再沒有其他啟發式heuristic的規則。
D:命名實體識別 CoNLL資料集
200k words,標記為5個entity類別:Person、Organization、Location、Miscellaneous、Other
每個Ti單獨input進一個分類layer,預測時不依賴兩邊其他詞的預測。
相關文章
- 【論文系列】之 ---- BERT
- 論文筆記筆記
- GhostNet論文筆記筆記
- Louvain 論文筆記AI筆記
- 【論文筆記】UNet筆記
- 論文筆記:RankIQA筆記
- Raft論文讀書筆記Raft筆記
- MapReduce 論文閱讀筆記筆記
- 9/12讀論文筆記筆記
- AutoEmbedding論文閱讀筆記筆記
- Text Summarization with Pretrained Encoders 論文筆記AI筆記
- 【論文筆記】 Popularity Bias in Dynamic Recommendation筆記
- 【論文筆記】 Denoising Implicit Feedback for Recommendation筆記
- CornerNet-Lite論文閱讀筆記筆記
- 【論文筆記】Bridging Hierarchical and Sequential Context Modeling筆記Context
- Visual Instruction Tuning論文閱讀筆記Struct筆記
- 【論文筆記】Recommendations as Treatments: Debiasing Learning and Evaluation筆記
- 【論文筆記】Learning Fashion Compatibility with Bidirectional LSTMs筆記
- 【論文筆記】Shortest Paths and Centrality in Uncertain Networks筆記AI
- ACL2020論文閱讀筆記:BART筆記
- 【論文筆記】A Survey on Deep Learning for Named Entity Recognition筆記
- Reading Face, Read Health論文閱讀筆記筆記
- Pixel Aligned Language Models論文閱讀筆記筆記
- 【論文筆記】SamWalker: Social Recommendation with Informative Sampling Strategy筆記ORM
- 【論文筆記】A review of applications in federated learning(綜述)筆記ViewAPP
- [論文閱讀筆記] Structural Deep Network Embedding筆記Struct
- 【論文筆記】FCN全卷積網路筆記卷積
- 論文閱讀筆記:Fully Convolutional Networks for Semantic Segmentation筆記Segmentation
- 【論文筆記】Neural machine translation by jointly learning to align and translate筆記Mac
- 論文筆記 SimpleNet A Simple Network for Image Anomaly Detection and Localization筆記
- 【論文筆記-16~】多語言關係抽取筆記
- Ensemble distillation for robust model fusion in federated learning論文筆記筆記
- 論文筆記:KDD 2020 Dual Channel Hypergraph Collaborative Filtering筆記Filter
- 【論文閱讀筆記】Transformer——《Attention Is All You Need》筆記ORM
- 【論文筆記】Leveraging Post-click Feedback for Content Recommendations筆記
- [論文閱讀筆記] Adversarial Learning on Heterogeneous Information Networks筆記ORM
- 《BASNet:Boundary-Aware Salient Object Detection》論文筆記Object筆記
- 論文筆記:What makes instance discrimination good for transfer learning?筆記Go