BERT 可以用来干什么?
- 问答系统
- 情感分析
- 垃圾邮件过滤
- 命名实体识别
- 文档聚类
- ...........
BERT 核心思想是什么
Transformer结构
- 基于Transformer 的双向编码器表征,双向的意思表示它在处理一个词的时候,能考虑到该词前面和后面单词的信息,从而获取上下文的语义
- BERT 与传统的注意力模型有所不同,它并非在 RNN 的隐藏状态上直接连接注意力机制。BERT 拥有多层注意力结构(12 层或 24 层,取决于模型),并且在每个层(12 层或 16 层)中都包含有多个“头”。由于模型的权重不在层与层之间共享,一个BERT模型相当于拥有24×16=384 种不同的注意力机制
6 个关键注意力模式
- 模式1:下一个单词的注意力(Attention to next word)
- 模式2:前一个单词的注意力(Attention to previous word)
- 模式3:相同/相关单词的注意力(Attention to identical/related words)
- 模式4:其它句子中相同/相关单词的注意力(Attention to identical/related words in other sentence)
- 模式5:预测单词的注意力(Attention)
- 模式6:分隔符标记的注意力(Attention to delimiter tokens)
无监督的预训练
- Masked Language Model (MLM——给定左右上下文,预测丢失的单词)
- 下一个句子预测 (预测一个句子是否跟在另一个句子后面)
任务1: Masked Language Model (MLM)
缺点1:预训练与微调之间的不匹配,因为微调期间是没有看到 [Mask] token。
不是总用实际的 [Mask] token 替换被 “masked” 的词汇,而是采用训练数据生成器随机去选择15% 的 token。
- 80%:用 [MASK] 标记替换单词(my dog is hairy → my dog is [MASK])
- 10%:用一个随机的单词替换该单词(my dog is hairy → my dog is apple)
-
10%的时间:保持单词不变(my dog is hairy → my dog is hairy)
image.png
缺点2:每个 batch 只预测了 15% 的 token,这说明了模型可能需要更多的预训练步骤才能收敛。
任务 2:Next Sentence Prediction
测试数据1
- Input = [CLS] the man went to [MASK] store [SEP]
- he bought a gallon [MASK] milk [SEP]
- Label = IsNext
测试数据2
- Input = [CLS] the man [MASK] to the store [SEP]
- penguin [MASK] are flight ##less birds [SEP]
- Label = NotNext
BERT 的一些细节
输入表示(input representation)
- token embeddings
- segmentation embeddings
- position embeddings
网友评论