论文链接:https://arxiv.org/abs/1903.07507v1
NAACL2019收录
An Effective Label Noise Model for DNN Text Classification
标题
一个有效的深度神经网络文本分类中的标签噪声模型。
摘要
大规模人工标记数据集中会存在标签错误的情况,影响DNN的训练。本文提出一种在文本分类任务中,对于标签噪声更加鲁棒的DNN训练方法。该方法在卷积神经网络结构中加入非线性处理层(噪声模型),用于对标签噪声的统计建模。使用噪声模型和CNN共同训练可以防止过拟合错误标签。通过实现表明,本文方法可以使CNN更好学习句子表示,对极端标签错误更加鲁棒。本文还对初始化、正则方法、批数据大小进行实验比较,以实现该方法下最优表现。
引言
有监督DNN模型依赖大量的有标签的训练集,认为样本标签是完全正确的是不符合实际情况的。人类打标签的正确率和人类的复杂程度相关,即使是专家也有可能对标签产生分歧。针对标签噪声问题,需要新的DNN训练方法以降低标签的影响。有研究表明文本分类中,训练标签中的噪声比输入特征中的噪声更加重要。文本主要针对文本分类任务,在目标模型顶层加入噪声模型层缓解标签噪声影响。
相关工作
在有大量干净标签数据集中DNN方法比传统机器学习方法在表现上具有更高的收益。在面对标签错误数据集时,DNN模型的改进方法主要可以分为两大类:1.使用干净的辅助数据缓解标签噪声影响;2.直接从噪声标签中学习。
- 干净标签辅助数据:使用少量的干净数据来修正有污染的标签,建立一个指导网络(teacher network)或者是标签修正网络(label correction network),建模标签的辅助置信度缓解标签影响,在可以获得干净数据的前提下该方法可以得到不错的结果。
- 直接对噪声标签数据建模:设计一个鲁棒的损失函数或者建模隐含标签。通过动态权重等方法探讨损失函数的抗噪声能力;学习一个转移矩阵,从隐含标签到噪声标签的转换。
上诉的方法基本都是用在图像分类任务中,本文使用上述2方法用于文本分类,使用一个非线性的处理层来学习到更佳的句子表示。
问题定义
无噪声文本训练集D = {(X1, y1),(X2, y2), · · · ,(Xn, yn)},其中X ∈ Rd×T,句子长度为T的d维词向量;yi ∈{1, . . . , K},k个文本标签,n是样本数量。
D‘ = {(X1, y1‘ ),(X2, y2’), · · · ,(Xn, yn’ )}表示含有噪声标签的数据集。本文中的一个假设:标签噪声是具有类别条件性,噪声标签只与真是标签有关,与输入无关。在本文的模型中将噪声标签编码为条件分布(y‘= i|y = j) = Φij。
本文实验中使用两种噪声分布加入数据集(训练集和验证集):
Ⅰ表示单位矩阵,Ⅱ表示全1矩阵,p是噪声等级。Δ是对角线为0,每列其余元素一致独立于k-1维的单位单形(unit simplex)。
目标函数:
本文方法
没有噪声模型的DNN称为base model(WoNM),噪声模型中的非线性处理层对base model的输出进行变换,以匹配前向传递过程中的噪声标签,并在后向传递过程中将去噪标签呈现给base model。噪声层可以参数化为一个方阵(Ψ ∈ RK×K),测试阶段去掉噪声模型,只取base model部分的输出,模型表示为:
损失函数为最小化的交叉熵损失函数:
为了防止由于DNN的强大拟合能力而导致噪声模型无法学习到任何东西,加入l2正则,最终的目标函数为:
文章经过大量的实验得到最优的λ值为0.01。
实验
数据集:
实验结果:
在前述两种标签噪声下,本文方法明显优于基线模型,而且在极端噪声下可以有大约30%的收益。本文还对正则化方法、噪声层初始化、批数据大小、样本相关的标签噪声进行了充分实验。
为了进一步理解噪声模型,使用模型的最后一层的激活之作为模型对于样本的句子表示,输入到SVM中进行分类。实验结果如下表:
左边为基线模型句子表示的结果,右边为本文模型的结果。左边TRB中噪声标签下的结果和基线模型的结果很相近,表示模型只是拟合了噪声标签,而右边TRBr中噪声标签下的结果明显差于本文方法,可以说明了噪声模型可以到达去噪声的效果。
结论
在本文工作中,我们提出了一种框架,以便在存在标签噪声的情况下,为文本分类任务提供更好的句子表示。为了对标签噪声进行建模,我们在基本CNN结构的基础上附加了一个非线性噪声模型。通过适当的初始化和正则化,噪声模型能够吸收大部分标签噪声,帮助基模型学习更好的句子表示