文本到文本分类

数据挖掘 机器学习 多类分类 多标签分类
2022-02-23 17:30:09

我是数据科学领域的新手,一直在努力解决一个简单的分类问题。它似乎足够通用,我怀疑必须有更好的方法来构建/建模这个问题。我将不胜感激任何帮助。

背景

  • 在我们的系统中,我们有数百万张票(类似于 JIRA 票),其中每张票都具有titledescription等属性tags
  • 用户可以创建仪表板并将任意数量的这些工单添加到他们的仪表板。每个仪表板都有一个titledescription
  • 目前在 ~3k 仪表板中有 ~100k 个工单。

问题陈述

  • 给定一张新票,我想建议可以将其添加到哪些仪表板。
  • 给定一个新的仪表板,我想建议可以添加哪些票证。

我的尝试

  • 在我的第一次尝试中,我尝试使用Doc2Vec 和 Logistic Regression 的多类文本分类

    • 基本上,我从工单标题(使用 Doc2Vec)创建向量,然后使用这些向量作为输入,仪表板标题作为标签运行逻辑回归。
    • 然而,按照这种方法,我只能达到 2-3% 的准确率。
    • 认为这是因为带有约 3k 个标签的逻辑回归不是一个好的选择。
  • 在我的第二次尝试中,我为工单标题和仪表盘标题创建了 2 个向量(使用 Doc2Vec),并训练了一个神经网络,其中工单标题向量作为输入,仪表盘标题向量作为输出。

    • 和以前一样,我用这种方法只达到了 2% 的准确率。

问题

  • 我想从专家那里知道,如果我用这些方法走在正确的轨道上?如果是这样,我应该继续调整我的模型以提高准确性吗?
  • 还是我走在完全错误的轨道上?如果是这样,是否有更好的方法来模拟这样的分类问题?我有点迷茫,不胜感激。
1个回答

我认为这是因为带有~3k 个标签的逻辑回归不是一个好的选择

你是对的,但我改写得更好一点:

一般来说,带有约 3k 个标签的分类不是一个好的选择!

您基本上有搜索/推荐问题。根据您的输入,您可以找到最合适的工单/仪表板并分配它。这实际上是一个非常有趣的 ML 项目!

我给了一个自信的首发。如果它不起作用,请返回结果,我更新答案:

如果你想去无人监督

查询-文档匹配

  1. 使用简单的 TF-IDF 对文本进行矢量化
  2. 应用降维以将高维稀疏向量减少为低维密集向量。如果你为此使用矩阵分解,你基本上是在做著名的经典LSA
  3. 在该向量空间中,您可以找到最接近查询的标签并将其分配给查询

主题建模

  1. 应用一个简单的LDA来为语料库建模主题
  2. 给定一个查询,找到该查询的最佳匹配主题并将该查询分配给该主题(集群)
  3. 请注意,LDA 会发现内在主题。因此,如果您的标签与其找到的主题不同,您需要依赖标签并忽略此解决方案

多一点监督##

  1. 从您的语料库(或者您可能已经拥有它)创建一个数据集,其中属于同一主题/标签的句子对(标题、描述等)具有标签,而属于不同主题/类/标签的句子对具有标签和具有中性关系的句子对具有我在最后放了一个例子作为PS。110
  2. 将此数据提供给S-Bert以微调预训练模型
  3. 阅读本文,学习并使用它来查找与查询最相似的工单/仪表板

PS:S-Bert 的数据是什么样子的(我只是编了一些虚拟的例子!希望你明白)

sentence1: He is a man
sentence2: He is male
label: 1

sentence1: programming is hard
sentence2: Maradona was a magician
label: -1

sentence1: don't know what to write here
sentence2: never mind, I think you got what I mean
label: 0
.
.
.