【发布时间】:2020-10-23 13:54:35
【问题描述】:
我正在对 bert 架构进行实验,发现大多数微调任务都将最终的隐藏层作为文本表示,然后将其传递给其他模型以进行进一步的下游任务。
Bert 的最后一层是这样的:
我们在哪里获取每个句子的 [CLS] 标记:
我对此huggingface issue、datascience forum question、github issue进行了多次讨论,大多数数据科学家都给出了这样的解释:
BERT 是双向的,[CLS] 被编码,包括所有 所有代币的代表信息通过多层 编码过程。 [CLS] 的表示在 不同的句子。
我的问题是,为什么作者忽略了其他信息(每个token的向量)并取平均,max_pool或其他方法来利用所有信息而不是使用[CLS] token进行分类?
这个 [CLS] 标记与所有标记向量的平均值相比有何帮助?
【问题讨论】:
-
您还可以返回所有隐藏状态并计算它们的平均/最大池化。我看到很多这样的例子
标签: tensorflow machine-learning keras deep-learning bert-language-model