我已经使用伯特基地预先训练的512个维度的模型来生成上下文特征。将这些向量提供给随机森林分类器可以提供83 %的准确率,但在各种研究中,我已经看到伯特最小值提供了90 %的准确率。我也有其他一些特性,如word2vec,词汇,TFIDF和标点符号功能。即使我合并了所有的功能,我也得到了83 %的准确率。我作为基础论文的研究论文提到了92 %的准确率,但是他们使用了一种基于集合的方法,他们通过bert进行分类,并训练随机森林的权重。但我愿意做一些创新,因此没有遵循这种方法。我的数据集偏向于正面评论,所以根据我的说法,模型的准确性较低,也是对正面标签的偏倚,但我仍在寻找专家建议。
bert的代码实现
https://github.com/Awais-mohammad/Sentiment-Analysis/blob/main/Bert_Features.ipynb
所有特征上的随机森林
https://github.com/Awais-mohammad/Sentiment-Analysis/blob/main/RandomForestClassifier.ipynb
所有特征上的随机森林
https://github.com/Awais-mohammad/Sentiment-Analysis/blob/main/Merging_Feature.ipynb
发布于 2022-06-10 18:15:48
关于“尽管增加了更多功能,但没有任何改进”--一些研究人员认为,BERT word嵌入已经包含了文本中所有可用的信息,因此,不管你给它添加了多么花哨的分类头,不管它是一个使用嵌入式的线性模型还是使用了许多其他特性的复杂ML算法,它们都不会在许多任务中提供显著的改进。他们认为,由于伯特是一种上下文感知的双向语言模型,在MLM和NSP任务方面接受了广泛的培训,因此它已经掌握了标点符号、word2vec和tfidf的附加特性所能传达的大部分内容。如果是相关的话,词汇可能对情感任务有一点帮助,但是你可能用来表示它的一个或两个额外的变量,可能会淹没在其他所有的特性中。
除此之外,基于伯特的模型的准确性取决于所使用的数据集,有时数据太多样化,无法获得完美的分数,例如,如果有一些观测结果非常相似,但有不同的类别标签等等。从伯特的论文中可以看出,准确性在很大程度上取决于任务,例如在某些任务中确实是90+%,但对于一些任务,例如蒙面语建模,模型需要从30多个单词中选择一个特定的单词,在某些情况下,20%的准确率可能是令人印象深刻的。因此,为了获得与伯特论文的可靠比较,您需要选择他们使用过的数据集,然后进行比较。
关于数据集的平衡,对于一般的深度学习模型,经验法则是训练集应该或多或少地保持平衡。每个类标签所涵盖的数据的分数。所以如果你有两个标签,应该是50-50,如果是5个标签,那么每个标签应该在训练数据集的20%左右,这是因为大多数神经网络的工作是分批进行的,他们根据每个批次的反馈更新模型权重。因此,如果一个类的值太多,那么批更新将由该类主导,从而有效地降低您的培训质量。
因此,如果您想提高模型的准确性,平衡数据集可能是一个简单的修正。如果您有5个大小不同的有序类,您可以考虑合并其中一些类(例如,从1-2作为坏的评论,3作为中性的,4-5的好的),然后再平衡,如果仍然需要。
(除非在这样的情况下,例如,一个类拥有80%的数据,4个类共享其余的20%。在这种情况下,您可能应该考虑一些更高级的选项,例如将algo划分为两个部分,一个用于预测实例是否在第1类(因此是一个二进制分类器),另一个用于区分4个表示不足的类。)
https://stackoverflow.com/questions/71710186
复制相似问题