具有大量意图的意图分类 类

Intent classification with large number of intent classes

我正在处理大约包含 3000 个问题的数据集,我想执行意图分类。 数据集还没有标注,但是从业务的角度来看,需要识别大约80种不同的意图类。假设我的训练数据中每个 类 的数量大致相等,并且没有主要偏向 类 中的一些。我打算将文本转换为 word2vec 或 Glove,然后输入我的分类器。

我熟悉我的意图数量较少的情况 类,例如 8 或 10,以及机器学习分类器的选择,例如 SVM、naive bais 或深度学习(CNN 或 LSTM) .

我的问题是,如果您以前有过如此大量的意图 类,您认为哪种机器学习算法的性能会比较合理?你认为如果我使用深度学习框架,仍然有大量标签会导致上述训练数据表现不佳吗?

我们需要开始标记数据,想出 80 类 个标签是相当费力的,然后意识到它表现不佳,所以我想确保我做的是正确的决定我应该考虑 多少 类 最大意图 以及你建议哪种机器学习算法?

提前致谢...

首先,word2vec 和 GloVe 几乎已经死了。您可能应该考虑使用更新的嵌入,如 BERT 或 ELMo(它们都对上下文敏感;换句话说,您在不同的上下文中为同一个词获得不同的嵌入)。目前,BERT 是我自己的偏好,因为它是完全开源和可用的(gpt-2 是几天前发布的,显然好一点。但是,public 并不完全可用)。

其次,当您使用 BERT 的预训练嵌入时,您的模型具有看到大量文本(Google 大量)的优势,因此可以在少量数据上进行训练,这将增加它的性能大幅提升。

最后,如果您可以 class将您的意图转化为一些粗粒度 classes,您可以训练一个 classifier 来指定这些粗粒度 classes 你的实例属于。然后,对于每个粗粒度 class 训练另一个 classifier 来指定细粒度。这种层次结构可能会改善结果。同样对于 classifier 的类型,我相信在 BERT 之上的一个简单的全连接层就足够了。