模型训练

在训练模型这一步,您不需要关心任何模型的实现细节,只要选择相应的模型就好了。这也是我们 NLP 自学习平台的初衷,即帮助用户快速搭建一套解决问题的算法模型,用户只需关心模型的输入输出就好了。进入到模型中心,然后点击创建模型:

cls-model-train

在模型类型这里,我们提供了多种模型供选择,我们无法承诺一种模型一定比另一种模型要好,这跟具体的场景有关系。每种模型的详细说明可以见下文。除此之外,如果我们还包含有高级设置,可以对模型训练的过程进行调整。如下图所示:

cls-lr-rate

遍历次数可以控制模型的训练时间,如果想尽快训练完,可以将此参数调小,但是通常效果也会下降。需要注意的是,并不是模型训练时间越长越好,所以没有必要把该参数设置为超过 30 的值。学习速率这个参数建议在 0.001~0.0001 之间调整,每一次不同的参数训练,模型的最终效果会有所不同,建议多试几个,选择最适合的模型。

训练时间说明

模型的训练时间受到好几方面的影响,比如所选的模型架构,设置的遍历次数,还有数据量的大小等。

对于模型架构,fasttext < CNN <= Self-Attention<= 长文本分类融合模型。遍历次数一般与训练时间成正比,也就是说 10 次的时间会是 5 次的两倍。为了节省用户时间,同时防止用户设置过大的遍历次数,我们内部内置了 earlystop 功能。具体的,模型在连续三次遍历的过程中效果都没有超过之前的结果就会自动停止。也就是说,虽然您设置的遍历次数是 30 次,但是可能在15 次的时候就停止了。

对于数据量大小,一般与训练时间成正比,数据量越多,训练时间越长。如果您希望很快看到结果,可以先尝试用一小部分数据进行训练,把所有流程跑通后,再用全量数据进行训练。

模型评估

对于分类模型的评估我们提供了精确率(Precision),召回率(Recall),F1 值。这三个值的取值范围都在 0~1 之间。简单来说,这三个值越大说明模型的性能越好。0 表示模型对于所有的预测都全部出错,1 表示模型对于所有的预测都全部准确。在NLP自学习平台中,既提供整体的指标,也提供分类别的评价指标。具体来讲:

精确率(P):对某一类别而言为正确预测为该类别的样本数与预测为该类别的总样本数之比。对于整体而言为正确预测的样本数与预测的总样本数之比。

召回率(R):对某一类别而言为正确预测为该类别的样本数与该类别的总样本数之比,对于整体而言为正确预测的样本数与所有类别的总样本数之比。

F1 值:F1 值为精确率和召回率的调和平均数,值越大越好。

如果您的分类问题为单标签分类问题(即每一个样本都只有一个标签与之相对应),这时“预测的总样本数”与“所有类别的总样本数”是一样的,所以整体的精确率和召回率是一样的,导致 F1 值也跟精确率和召回率一样。如果您的分类问题为多标签分类问题,“预测的总样本数”与“所有类别的总样本数”可能不一样,所以精确率,召回率和F1 值就不一样。