如何解决如何使用伯特模型的输出?
伯特模型给我们提供了两个输出,一个给了我们[batch,maxlen,hiddenstates],另一个给了我们[cls令牌的batch,隐藏状态]。但是我不明白何时使用特定输出。谁能告诉我应该为哪个任务使用哪个输出?
解决方法
输出通常为[batch,maxlen,hidden_state]
,对于[batch,1,hidden_state]
令牌,它的范围可以缩小到[CLS]
,因为[CLS]
令牌是序列中的第一个令牌。在这里,[batch,hidden_state]
可以等效地视为[batch,hidden_state]
。
由于BERT是基于转换器的上下文模型,因此想法[CLS]
令牌将捕获整个上下文,并且对于简单的下游任务(例如分类)就足够了。因此,对于诸如使用句子表示法进行分类的任务,可以使用[batch,hidden_state]
。但是,您也可以考虑在[batch,hidden_state]
维度上平均maxlen
以获得平均嵌入。但是,某些顺序任务(例如使用CNN或RNN进行分类)需要一定的表示顺序,在此期间您必须依靠[batch,hidden_state]
。另外,一些训练目标,例如预测被屏蔽的单词,或者对于SQUAD 1.1(如BERT文件所示),使用了整个嵌入序列[batch,hidden_state]
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。