使用Bert预测多个令牌

时间:2020-04-24 23:41:34

标签: python bert-language-model

我正在寻找有关使用Bert和Bert的屏蔽语言模型预测多个令牌的建议。

我的数据如下:

上下文:some very long context paragraph

问题:rainy days lead to @placeholder,对此@placeholder的答案是wet weather。在模型中,wet environment是预测的答案。

因此,在预处理阶段,我应该将文本更改为rainy days lead to [MASK]还是类似rainy days lead to [MASK] [MASK]的内容吗?我知道屏蔽的LM在单个令牌预测中效果很好,您认为屏蔽的LM在多个令牌预测中效果很好吗?如果没有,您是否对如何预处理和训练此类数据有任何建议?

非常感谢!

1 个答案:

答案 0 :(得分:1)

所以有3个问题:

首先

因此,在预处理阶段,我是否应该将文本更改为下雨天 天导致[蒙版]或类似雨天导致[蒙版] [面具]?

从字面上看,您应该设置[MASK] [MASK]。但是请记住,在BERT中,将遮罩设置为标记角度。实际上,“潮湿的天气”可能用以下符号表示:[潮湿] [潮湿] [## er],在这种情况下,您应该具有[MASK] [MASK] [MASK]。因此,每个令牌一个[MASK]。

第二,

我知道,被掩盖的LM在单个令牌预测中效果很好, 您是否认为遮罩的LM可以在多个令牌上正常工作 预测?

如您在the original paper中所读,他们说:

训练数据生成器选择以下位置的令牌位置的15% 随机进行预测。如果选择了第i个令牌,我们将替换 第(i)个令牌,其中(1)个[MASK]令牌80%的时间是(2)个随机 令牌10%的时间(3)不变的第i个令牌10%的时间。

他们注意到每个句子的MASKED令牌数量没有限制,在BERT培训期间您有几个MASKED令牌。 以我自己的经验,我对BERT进行了几次预训练,并且发现如果我的输入中仅包含一个或多个MASKED令牌,对MASKED令牌所做的预测之间几乎没有差异。

第三,

如果否,您是否对预处理和培训有任何建议 这种数据?

因此答案是肯定的,但是,如果您确实要选择MASK元素(而不是像本文中那样随机选择),则应在对数据进行标记时对MASK进行调整,因为MASKED标记的数量会更大(或等于)设置的字空间中的MASK数量(如我给您的示例:1个单词不等于1个令牌,因此,基本上,1个MASKED单词将是1个或多个MASK令牌)。但老实说,标签化的过程将非常庞大,我建议您增加15%的MASK令牌概率,或者进行一个过程以对每个MASKED令牌(或类似的令牌)进行1或2个下一个令牌的屏蔽。 >