BERT 是语言模型吗?

数据挖掘 nlp 伯特 变压器 语言模型
2021-10-03 08:15:08

从获取句子并返回概率的函数的意义上说,BERT 是一种语言模型吗?我知道它的主要用途是句子嵌入,但它也可以提供这个功能吗?

2个回答

不,BERT 不是传统的语言模型。它是在掩码语言模型损失上训练的模型,不能像普通 LM 那样用于计算句子的概率。

一个正常的 LM 对句子的概率进行自回归分解:

p(s)=(w|w<)

另一方面,BERT 的掩码 LM 损失侧重于在给定句子中其余未掩码标记的情况下(掩码)标记在特定位置的概率。

因此,使用 BERT 生成的令牌概率并将它们相乘以获得句子级别的概率是没有意义的。


第二个问题是 BERT 的标记化是子词级的,因此,即使用 BERT 计算句子级概率是有意义的,这样的概率也无法与词级 LM 相提并论,因为我们不会考虑将所有可能的分词计入子词。


更新:有一种称为屏蔽语言模型评分(ACL'20)的新技术,它可以精确地满足 OP 的要求。来自文章:

为了给一个句子打分,一个人创建副本,每个标记都被屏蔽掉。每个丢失标记的对数概率在副本上相加,得到伪对数似然分数 (PLL)。

所以现在的答案是肯定的。通过所描述的伪对数似然分数,可以使用 BERT 对句子进行评分。

虽然,前面的答案是一个很好的参考,可以找到如何使用 BERT 测量句子的概率,但为了对跨模型进行有意义的评估(例如,将 BERT 与 Roberta 进行比较),它们应该使用相同的标记化。