关于文本分类任务的迁移学习的任何有用提示

数据挖掘 分类 nlp 迁移学习 文本分类
2022-03-06 15:52:55

我正在做一个有监督的二进制文本分类任务。

我想对站点 A、站点 B 和站点 C 的文本进行分类。

每个站点的文本的域内性能看起来都不错。(92%-94% 准确度)。

但是,如果我将在一个站点的文本上训练的模型直接应用到另一个站点的文本上(没有微调),性能会下降很多。(准确性降低 7%-16%)。

我已经尝试过的方法:

  1. Doc2vec 嵌入(在一个站点的文本上训练)+ 逻辑回归。

  2. 伯特嵌入+逻辑回归。(使用 bert-as-a-service 生成基于谷歌预训练的 bert 模型的嵌入)。

  3. TF-IDF + 逻辑回归。

  4. 预训练的 Word2vec 嵌入(文本的平均词嵌入)+逻辑回归。

所有这些方法都不能很好地工作。

我知道性能降级是不可避免的,但我希望降级 3% - 5%。

1个回答

一般来说,识别一种类型的文本与“其他任何东西”的任务是一个相当困难的问题,因为文本中存在如此多的多样性,以至于不可能有任何“其他任何东西”的良好代表性样本。

通常,此问题被视为一类分类问题:其想法是让学习算法仅捕获代表正类的内容,而将其他任何内容视为负类。据我所知,这主要用于作者识别和相关的文体测量任务。PAN 研讨会系列围绕这些任务提供了大量最先进的方法和数据集。

也可以将问题定义为二元分类,但必须非常有创意地处理训练集中的负面实例。您当前方法的主要问题可能是:您的负面实例只是“在站点的所有其他主题中随机选择的”。这意味着分类器只知道来自其训练站点的文本,因此它不知道如何处理任何看起来不像训练数据中看到的任何新文本。一种用于增加负面实例多样性的方法是使用出现在一个正面实例中的一些随机单词自动生成谷歌查询,然后下载谷歌检索到的任何文本作为负面实例。

二元分类的另一个问题是正/负实例的分布:如果您训练一个具有 50/50 正/负的模型,该模型预计默认情况下每个都有 50% 的机会。当应用于包含大部分负面实例的测试集时,这可能会导致巨大的偏差,特别是如果这些看起来不像在训练期间看到的负面实例。

最后要注意区分语义主题和写作风格,因为这两者的特征通常非常不同:在前一种情况下,停用词通常被删除,实词(名词、动词、形容词)很重要(因此一个使用诸如 TFIDF 之类的东西)。在后者中则相反:应保留停用词和标点符号(因为它们是写作风格的良好指标),而删除内容词是因为它们倾向于使模型偏向于主题而不是风格。在基于字符的文体特征中,n-grams 已被证明表现良好……尽管它的工作原理还不是很清楚!