bert模型给了我们两个输出,一个是batch,maxlen,hiddenstates,另一个是batch,hidden State of cls token。但是我不知道什么时候使用特定的输出。谁能告诉我哪个任务应该使用哪个输出??
发布于 2020-09-02 20:30:42
输出通常是[batch, maxlen, hidden_state],可以将输出范围缩小到[CLS]标记的[batch, 1, hidden_state],因为[CLS]标记是序列中的第一个标记。在这里,可以将[batch, 1, hidden_state]等同于[batch, hidden_state]。
由于BERT是基于转换器的上下文模型,其思想是[CLS]令牌可以捕获整个上下文,并且对于简单的下游任务(如分类)来说就足够了。因此,对于使用句子表示进行分类之类的任务,可以使用[batch, hidden_state]。但是,您还可以考虑跨maxlen维度的[batch, maxlen, hidden_state],average,以获得平均嵌入。然而,一些顺序任务,例如使用CNN或RNN进行分类,需要表示的顺序,在此期间,您必须依赖于[batch, maxlen, hidden_state]。此外,还使用了一些训练目标,如预测掩蔽单词,或者对于班组1.1 (如BERT论文中所示),使用了整个嵌入[batch, maxlen, hidden_state]序列。
https://stackoverflow.com/questions/63673511
复制相似问题