【发布时间】:2021-02-13 23:23:44
【问题描述】:
对于 Transformer 模型,尤其是 BERT,以编程方式禁止模型以特殊标记作为预测结果是否有意义(并且在统计上是正确的)? 在原始实现中如何?在收敛期间,模型必须学会不预测这些,但这种干预会有所帮助(或相反)吗?
- 我会主要考虑 [MASK]、[CLS] 标记
- [PAD] 令牌也可能有一定意义(但并非在所有情况下都如此)
【问题讨论】:
标签: bert-language-model transformer
对于 Transformer 模型,尤其是 BERT,以编程方式禁止模型以特殊标记作为预测结果是否有意义(并且在统计上是正确的)? 在原始实现中如何?在收敛期间,模型必须学会不预测这些,但这种干预会有所帮助(或相反)吗?
【问题讨论】:
标签: bert-language-model transformer
如果我理解您的问题,您是在问 BERT(或其他基于转换器的模型)如何处理特殊字符。这与模型架构的相关性较低(即,此答案与自回归模型甚至非神经模型相关)与预处理步骤的相关性较低。
特别是,BERT 标记器使用字节对编码标记器将文本和标记拆分为子词。如果标记器无法识别字符序列,它将用UNK 元标记替换字符序列,非常类似于MASK 或CLS 标记。如果您想查看更多细节,Google 会有很多答案,例如来自a blog article:
当我们使用预训练模型时,有一点需要注意。由于模型是在某个语料库上进行预训练的,因此词汇表也是固定的。换句话说,当我们将预训练模型应用于其他一些数据时,新数据中的某些标记可能不会出现在预训练模型的固定词汇表中。这通常称为词汇表外 (OOV) 问题。
对于没有出现在原始词汇表中的token,设计为应该替换为一个特殊的token [UNK],代表unknown token。
【讨论】: