bert中transformer用到了s2smodel, 那么啥是seq2seq model呢:
Seq2Seq model:
A Seq2Seq model is a model that takes a sequence of items (words, letters, time series, etc) and outputs another sequence of items. ... The encoder captures the context of the input sequence in the form of a hidden state vector and sends it to the decoder, which then produces the output sequence.
Bert 主要在完成两个任务
任务1:预测遮挡单词:
bert随机遮挡单词
把遮挡的单词作为标签
bert预训练不需要任何人工标注的数据集。可以用维基百科,自动生成标签。这样,训练数据要多少有多少。
任务2: 预测句子相邻否
一条训练数据包括两句话,两句话都被分成很多的符号。
二分类可以强化一种关联。让两句话包含一种关系。
然后让两个任务连接起来:
首先把两句话连接起来,遮住15%的单词(假设这时有两个单词被遮挡)。
-
任务1-2:预测两个被遮住的单词 ( 多分类任务
-
任务3:判断两句话是否真的相邻(二分类问题
这就需要有3个损失函数。分别训练
Bert优点:
对于任务1-2:判断被遮住的单词,这属于一个多分类问题。因为每个单词可以看成一种lebel, 最后判断是哪个单词也是得到一个针对每个单词的概率,概率最大的单词就是预测的单词。label算是遮挡的哪个单词
对于任务3:二分类问题,判断是否相邻。label: 如果相邻,则true, 如果第二句话是随机找的,那就是false.
优点:因此,bert可以直接从论文或者网页中随机截取两句话作为训练数据,标签也就自动生成了。 因此,bert有海量的数据,还不用人工标记标签。
Reference :
https://towardsdatascience.com/day-1-2-attention-seq2seq-models-65df3f49e263