bert模型中的[CLS]、[UNK]、[SEP]
生活随笔
收集整理的這篇文章主要介紹了
bert模型中的[CLS]、[UNK]、[SEP]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一般我們就用訓練集出一個模型,然后可以在其他的代碼里讀取這個模型來使用。其他的代碼就是所謂的下游任務(比如·什么分類、NER什么的)。BERT只是出一個詞向量,這個向量不接任務你也看不出什么東西。這種分開訓的就叫pipline,如果bert和下游任務一起訓就叫end-to-end
BERT 的輸入可以包含一個句子對 (句子 A 和句子 B),也可以是單個句子。此外還增加了一些有特殊作用的標志位:
- [CLS] 標志放在第一個句子的首位,經過 BERT 得到的的表征向量 C 可以用于后續的分類任務。
- [SEP]標志用于分開兩個輸入句子,例如輸入句子 A 和 B,要在句子 A,B 后面增加 [SEP] 標志。
- [UNK]標志指的是未知字符
- [MASK] 標志用于遮蓋句子中的一些單詞,將單詞用 [MASK] 遮蓋之后,再利用 BERT 輸出的 [MASK] 向量預測單詞是什么。
[CLS]就是classification的意思,可以理解為用于下游的分類任務。
主要用于以下兩種任務:
單文本分類任務:對于文本分類任務,BERT模型在文本前插入一個[CLS]符號,并將該符號對應的輸出向量作為整篇文本的語義表示,用于文本分類,如下圖所示。可以理解為:與文本中已有的其它字/詞相比,這個無明顯語義信息的符號會更“公平”地融合文本中各個字/詞的語義信息。
語句對分類任務:該任務的實際應用場景包括:問答(判斷一個問題與一個答案是否匹配)、語句匹配(兩句話是否表達同一個意思)等。對于該任務,BERT模型除了添加[CLS]符號并將對應的輸出作為文本的語義表示,還對輸入的兩句話用一個[SEP]符號作分割,并分別對兩句話附加兩個不同的文本向量以作區分,如下圖所示。
cls輸入的是cls本身這個詞的embedding
總結
以上是生活随笔為你收集整理的bert模型中的[CLS]、[UNK]、[SEP]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zsh和bash的切换,默认shell,
- 下一篇: linux 查看磁盘空间 拷贝不同目录下