如何将用于训练的自定义数字特征添加到 BERT 微调?

数据挖掘 深度学习 张量流 伯特
2021-10-15 02:58:38

我目前已经在一些自定义数据上微调了 BERT 模型,我想进行更多的实验来提高准确性。

我的原始数据集由一对句子组成(如 MRPC 数据集)。我想通过添加一些数字特征(我将单独计算)来提高分类的准确性。我想知道在我已经对它进行微调之后是否可以使用它来训练 bert?

我读过人们过去提出的一些解决方案,例如: “提取词嵌入(Bert GITHUB 上的extract_features.py)并将其与我的自定义数据相结合以提供单层 CNN 网络。” 我不想通过仅从预训练模型中提取特征而失去 BERT 网络为我提供的准确性。

那么有什么方法可以创建一种混合模型,首先微调 BERT,然后添加我的特征并将其输入另一个模型以改进分类?

附言

由于我是 tensorflow 和深度学习的新手,如果我的理解存在根本性错误,请告诉我。谢谢您的帮助

1个回答

使用 BERT,我假设您最终将嵌入用于您的任务。

解决方案 1:一旦有了嵌入,就可以将它们用作特征并与其他特征一起使用,然后为任务构建新模型。

解决方案2:在这里您将玩网络。

建议网络

现在这里左边是普通的 BERT,右边我们有另一个 MLP 网络来处理其他数字特征,在顶部,我们将两者的嵌入结合起来,然后再通过一个 MLP 给出最终输出。这里的好处是,在反向传播时,BERT 权重更新会因为数字特征的损失而有一些贡献。

正如您所提到的,您是 TF 和 Bert 的新手,请参阅https://towardsdatascience.com/bert-in-keras-with-tensorflow-hub-76bcbc9417b以了解如何实现 BERT,并且只进行调整以创建建议的网络会很容易。如有任何其他问题,请随时与我联系。