使用 Bert 预测多个 token
Posted
技术标签:
【中文标题】使用 Bert 预测多个 token【英文标题】:Use Bert to predict multiple tokens 【发布时间】:2020-08-08 15:49:22 【问题描述】:我正在寻找有关使用 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]
之类的东西?我知道masked LM在单token预测上效果很好,你认为masked LM在多token预测上效果很好吗?如果没有,您对如何预处理和训练这类数据有什么建议吗?
非常感谢!
【问题讨论】:
【参考方案1】:所以有3个问题:
首先,
那么在预处理阶段,我是不是应该把文字改成rainy 天导致 [MASK] 或类似下雨天导致 [MASK] [面具]?
从字的角度来看,你应该设置[MASK] [MASK]。但请记住,在 BERT 中,掩码是从令牌的角度设置的。事实上,“潮湿天气”可能被标记为:[wet] [weath] [##er],在这种情况下,你应该有 [MASK] [MASK] [MASK]。所以每个令牌一个 [MASK]。
第二,
我知道蒙面 LM 在单标记预测上效果很好, 你认为蒙面的 LM 可以在多个令牌上很好地工作吗 预测?
正如您在the original paper 中看到的那样,他们说:
训练数据生成器选择 15% 的标记位置 随机预测。如果选择了第 i 个令牌,我们替换 第 i 个令牌与 (1) [MASK] 令牌 80% 的时间 (2) 随机 10% 的时间标记 (3) 10% 的时间不变的第 i 个标记。
他们注意到每个句子的 MASKED 令牌数量没有限制,您在预训练 BERT 期间有多个 MASKED 令牌。 根据我自己的经验,我对 BERT 进行了多次预训练,我注意到如果我的输入中只有一个或多个 MASKED 令牌,则对 MASKED 令牌所做的预测几乎没有差异。
第三,
如果没有,您对如何预处理和训练有什么建议吗? 这种数据?
所以答案是肯定的,但是如果你真的想对你选择的元素进行 MASK(而不是像论文中那样随机),你应该在数据被标记时调整 MASK,因为 MASKED 标记的数量会更大(或等于)您设置的单词空间中的 MASK 数量(就像我给您的示例:1 个单词不等于 1 个标记,所以基本上,1 个 MASKED 单词将是 1 个或多个 MASK 标记)。但老实说,标签化的过程会非常巨大,我建议你增加 MASK tokien 的 15% 概率,或者为每个 MASKED 令牌(或类似的东西)制作一个 MASK 1 或 2 下一个令牌的过程..
【讨论】:
谢谢!它有很大帮助以上是关于使用 Bert 预测多个 token的主要内容,如果未能解决你的问题,请参考以下文章