【问题标题】:How to combine embeddins vectors of bert with other features?如何将bert的嵌入向量与其他特征结合起来?
【发布时间】:2021-08-17 10:45:26
【问题描述】:

我正在处理具有 3 个标签(0、1、2 = neg、pos、neu)的分类任务。数据是句子。因此,为了生成句子的向量/嵌入,我使用一个 Bert 编码器来获取每个句子的嵌入,然后我使用一个简单的 knn 进行预测。

我的数据是这样的:每个句子都有一个标签和其他分类数值。

例如,我的数据是这样的

Sentence embeddings_BERT level sub-level label

je mange  [0.21, 0.56]    2     2.1      pos
il hait   [0.25, 0.39]   3     3.1      neg
.....

如您所见,每个句子都有其他类别,但不是最后一个类别,而是在人类注释数据时帮助确定标签的索引。我希望我的模型在预测标签时考虑这两个值。我想知道是否必须将它们与由 bert 编码生成的嵌入连接起来,还是有其他方法?

【问题讨论】:

    标签: python python-3.x bert-language-model word-embedding


    【解决方案1】:

    没有一种完美的方法来解决这个问题,但一个简单的解决方案是将 bert 嵌入与硬编码的特征相结合。 BERT 嵌入(句子嵌入)的维度为 768(如果您使用了 BERT 基础)。这些嵌入可以被视为句子本身的特征。附加的特征可以连接起来形成一个更高维的向量。如果特征是分类的,最好将其转换为 one-hot 向量并将它们连接起来。例如,如果您想在示例中使用 level 作为输入特征集,最好将其转换为 one-hot 特征向量,然后与 BERT 嵌入连接。但是,在某些情况下,您的硬编码特征可能是偏向分类器的主要特征,而在其他一些情况下,它可能根本没有影响。这完全取决于您拥有的数据。

    【讨论】:

    • 谢谢,但为了清楚起见,级别值是数字,例如 2 ,3 到 4,所以可以使用一个热向量函数来处理它们吗?
    • 是的,如果有一组固定的数值,最好使用 one-hot。否则,如果它们是一些连续值,那么您可以规范化并使用它们。
    猜你喜欢
    • 2018-07-12
    • 2017-10-28
    • 1970-01-01
    • 2016-06-07
    • 2019-01-20
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 2012-06-29
    相关资源
    最近更新 更多