常见名词
术语
fine tunning (微调)
:调整参数
WordPiece 嵌入
:WordPiece是指将单词划分成一组有限的公共子词单元,能在单词的有效性和字符的灵活性之间取得一个折中的平衡。例如图4的示例中‘playing’被拆分成了‘play’和‘ing’;
位置嵌入(Position Embedding)
:位置嵌入是指将单词的位置信息编码成特征向量,位置嵌入是向模型中引入单词位置关系的至关重要的一环。位置嵌入的具体内容参考我之前的分析;
分割嵌入(Segment Embedding)
:用于区分两个句子,例如B是否是A的下文(对话场景,问答场景等)。对于句子对,第一个句子的特征值是0,第二个句子的特征值是1。
任务
BERT(Bidirectional Encoder Representations from Transformers)
预训练时的任务
Masked Language Model (MLM)
15%的WordPiece Token会被随机Mask掉。在训练模型时,80%的时候会直接替换为[Mask],10%的时候将其替换为其它任意单词,10%的时候会保留原始Token。
80%: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
这么做的原因是如果句子中的某个Token100%都会被mask掉,那么在fine-tuning的时候模型就会有一些没有见过的单词。加入随机Token的原因是因为Transformer要保持对每个输入token的分布式表征,否则模型就会记住这个[mask]是token ’hairy‘。至于单词带来的负面影响,因为一个单词被随机替换掉的概率只有15%*10% =1.5%,这个负面影响其实是可以忽略不计的。Next Sentence Prediction (NSP)
判断下个句子是否上个句子的后续
Sequence Pair Classification (SPC)
判断句子对关系的任务(GLUE
数据集):
MNLI(Multi-Genre NLI, 文本蕴含识别,M推理出N,蕴含/矛盾/中立)
:给定一个前提 (Premise) ,根据这个前提去推断假设 (Hypothesis) 与前提的关系。该任务的关系分为三种,蕴含关系 (Entailment)、矛盾关系 (Contradiction) 以及中立关系 (Neutral)。所以这个问题本质上是一个分类问题,我们需要做的是去发掘前提和假设这两个句子对之间的交互信息。QQP(Quora Question Pairs, 文本匹配)
:基于Quora,判断 Quora 上的两个问题句是否表示的是一样的意思。QNLI(Question NLI, 自然语言问题推理)
:用于判断文本是否包含问题的答案,类似于我们做阅读理解定位问题所在的段落。STS-B(Semantic Textual Similarity, 语义文本相似度1-5)
:预测两个句子的相似性,包括5个级别。MRPC(Microsoft Research Paraphrase Corpus, 微软研究释义语料库,判断文本对语音信息是否等价)
:也是判断两个句子是否是等价的。RTE(Recognizing Texual Entailment, 蕴含关系推断, 同MNLI,小数据)
:类似于MNLI,但是只是对蕴含关系的二分类判断,而且数据集更小。SWAG(113k多项选择问题组成的数据集,涉及丰富的基础情境)
:从四个句子中选择为可能为前句下文的那个。
Question Answering (QA)
阅读理解
SQuAD v1.1(斯坦福问答数据集)
:给定一个句子(通常是一个问题)和一段描述文本,输出这个问题的答案,类似于做阅读理解的简答题。如图5.©表示的,SQuAD的输入是问题和描述文本的句子对。输出是特征向量,通过在描述文本上接一层激活函数为softmax的全连接来获得输出文本的条件概率,全连接的输出节点个数是语料中Token的个数。
Single Sentence Classification (SSC)
单句分类任务(GLUE
数据集)::
SST-2(Stanford Sentiment Treebank, 斯坦福情感分类树)
:电影评价的情感分析。CoLA(Corpus of Linguistic Acceptability, 语言可接受性预测)
:句子语义判断,是否是可接受的(Acceptable)。
Single Sentence Tagging (SST)
命名实体识别类任务:
CoNLL-2003 NER
:判断一个句子中的单词是不是Person,Organization,Location,Miscellaneous或者other(无命名实体)。微调CoNLL-2003 NER时将整个句子作为输入,在每个时间片输出一个概率,并通过softmax得到这个Token的实体类别。