灾难推文分类
1 摘要
当前,世界正在经历信息革命带来的一些巨大变化。据估计,当今世界的2个小时将产生超过过去100年的信息量。在如此多的信息中,有相当多的信息是假的。对于一些敏感问题,假新闻可能会产生灾难性的后果。近年来,随着数据挖掘算法的快速发展,计算能力和机器学习算法的巨大提高,人类能够从数据中分析和提取模式并进行预测以帮助决策。我们的项目将使用大约15000条与潜在危害报告相关的推文,这些推文在网络上收集,以开发有效的NLP模型,以帮助区分有关严重自然灾害的推文和不相关的事件。整个项目分为两个主要部分:第一部分将使用传统的机器学习模型和语言建模,而第二部分将应用深度学习模型,包括RNN和转换器。在本报告中,我们将介绍所有模型,分析其超参数以及最终结果。我们还将进行比较和对比,以更好地了解模型的局限性以及导致特定结果的潜在原因。评估过程遵循标准的K-fold验证,当我们评估模型的有效性时,我们将同时考虑准确性和F-1指标。对于传统的ML方法,我们讨论了几个重要的超参数及其效果,我们还讨论了集成方法,这些方法未能优于常规ML模型。
我们发现,传统的ML和深度学习模型都实现了相似的准确性,但它们在F-1分数上差异很大。
2 引言
我们项目的主要动机是将知识(包括传统的机器学习技术,RNN和在NLP课程中学到的转换器)应用于现实世界的问题。灾难推文分类是一个重要的问题,顾名思义,这是一个有趣的问题。这也是一个有趣的问题:我们可以用在讲座中学到的模型,从几个单词或句子中预测现实世界的事件。在整个项目中,我们通过应用这些模型来巩固我们对这些问题的了解;此外,我们还练习了其他技能,如数据清理,数据可视化和评估程序。
在这个具体问题上没有做太多的研究工作,但在这里我们确实列出了我们利用的学者和公司的一些现有贡献。
借用该公司在Kaggle平台上提供的数据集,标记推文,我们现在有这15000条推文数据可以训练。
对于传统的机器学习部分,我们使用了很多集成方法,如Adaboost(Yoav Freund Robert E. Schapire,1999)和随机森林(Leo Breiman,2001)。此外,我们试图应用SMOTE(Nitesh V. Chawla et al. 2002)来缓解不平衡问题。在深度学习模型方面,我们遵循了Devlin等人的双向LSTM研究工作和BERT模型,2019。此外,我们对不同的预先存在的嵌入进行了微调,如GloVe(Pennington et al.,2014),EMLo(Peters et al.,2018)。我们的项目利用了这些理论工作并实施了它们来解决区分灾难和推文的现实挑战。
3 方法
3.1 数据
对于这个项目,我们从这个Kaggle数据集中提取数据。这些数据是由一家名为Figure-eight的公司收集和组织的,并根据Kaggle出版商在其网站上列出。我们在另一场比赛中发现了同一数据集的另一个版本。我们合并了两个数据集,并确保它们是同构的(从同一域空间采样)。用于我们研究的组合数据集可以在此Google云端硬盘上找到。
每个数据记录由以下字段组成:id、关键字、位置、文本和标签。我们将主要使用文本字段,并在训练分类器时偶尔使用位置字段进行扩充(请参阅第 4 节)。下面我们从数据集中放置了一些统计数据和样本。有关我们使用的数据和合并技术的完整探索,请参阅我们的可视化笔记本。
文档数量: 18724
标签总数: 2
肯定数: 5270
否定数量: 13454
空位置数量 值: 5862
文档大小差异,即文本列:5.73
平均 文档大小: 105 个字符/16.3 字
样本 正1: MH370: 在留尼汪岛发现的飞机碎片来自失踪的马来西亚...
样本阳性2:我们一直在哭泣4名无辜的公民,他们遭受了2次粗心的泄漏。粗心的石油公司看着你的工作...
样本负面1:“我们不是公民。我们从来都不是。我们是俘虏。受欢迎的#Iranian演员承认真相。#Iran是一个拥有80个国家的国家...
样本负面2:我从来没有在办公大楼里摆姿势,每当我被雇用时,我已经在规划我通往紧急出口的路线。
为了消除推文语言中的噪音,我们开发了一个基于正则表达式过滤的专用文本清理管道,以按顺序删除标点符号,超链接,HTML,表情符号和数字。我们还用扩展形式替换了常用缩写。最后,我们通过将所有单词转换为小写字母来减小词汇量,这对于在小型数据集上训练的模型非常有用。
3.2 模型
3.2.1 ML 模型
应用于数据集的第一组工具是传统的机器学习工具。我们项目的第一部分主要是对传统ML方法的探索。在机器学习方法中,我们可以将它们分为两部分:第一部分将是普通的传统ML方法,而其他部分将更多的是集成方法。集成方法通常被认为比传统方法效果更好,我们将看到期望是否与实验结果一致。此外,我们还将分别对每种方法执行超参数调整。除了每种方法的超参数之外,我们还尝试在特征工程部分进行实验。我们将BoW(单词袋)模型和TF-IDF特征应用于数据集,并比较和对比它们对最终结果的影响。


3.2.2 循环模型
我们还将使用递归神经模型,特别是LSTM网络,来解决所提出的任务,作为对前面提到的传统ML方法的改进,这将在以后的分析中作为基线的一种形式。表3显示了有关我们循环模型的共享(相同)和不同细节。
特别是,微调预先训练的词嵌入不是一种常见的做法,因为在下游任务上训练扩展模型时,它们通常不会被触及。但是,由于探索进一步优化数据集中嵌入的可能性是我们的目标之一,因此我们建议通过首先使用冻结嵌入训练5个epoch,然后在剩余时代的所有模型参数上切换到梯度下降来缓解不同学习速率的问题。
3.2.3 变压器型号
变形金刚远离了被称为递归神经网络的自然时间序列模型(Vaswani等人,2017)。相反,它利用自我关注机制来梳理句子中语音组件的复杂相互依赖性,并确定要关注的部分。虽然在NLP中具有广泛的seq2seq任务应用,但转换器也能够完成分类任务,并且对我们处理模块输出的方式进行了微小的改变:由于转换器块为序列输入的每个时间戳输出一个嵌入,因此我们在进入线性分类器之前,采用所有时间戳的平均值以产生固定长度的矢量。
在这里,我们介绍两种基于变压器的模型。一个是使用上述技术构建的新构建的变压器编码器,另一个是众所周知的RoBERTa模型的分类器变体,它是在大型数据集上训练的BERT的优化版本(Liu等人,2019)。型号细节如表4所示。


3.2.4 基线
鉴于我们在本项目中开发的模型的数量和范围,将需要考虑多个基线,因为除了找到具有最佳性能的模型之外,我们还有多个子主题需要研究。在传统的 ML 算法子组中,逻辑回归模型应作为基线。
作为所有基于神经的模型的起点,在与性能最佳的ML模型进行比较以及与其他深度模型进行评估时,应将香草LSTM视为基线。特别是,如果我们想研究使用预训练嵌入的有效性,我们将它与具有预训练嵌入的模型(如GloVe和ELMo)进行比较。我们还会将其与普通变压器进行比较,以评估后者的适用性。
在变压器子组中,由于原始变压器的结构与预先训练的RoBERTa一致,原始变压器将切换到基线角色,这也是解决我们原始挑战的最有希望的解决方案。
4 结果
4.1 实验设置
每次我们完成开发一个模型变体后,都会立即手动完成超参数调整。对于具有许多超参数(如转换器)的复杂模型,我们使用了网格搜索和随机搜索技术的组合。但是,为了确保比较研究的公平性,我们使用相同的超参数设置,因此在同一模型类型组中使用相同的体系结构。具体而言,所有循环模型共享相同的嵌入大小和隐藏大小。
我们使用 K = 9 的 K-Fold 验证来生成稳定且具有统计显著性的指标。具体来说,我们将数据集分为 90% 的训练验证集和 10% 的测试集。在每个折叠中,我们对80%的数据进行训练,并对10%的数据进行验证。我们选择具有最佳验证F-1分数的模型,并对10%的保留数据进行最终测试。
4.2 模型结果比较
我们报告验证运行的平均精度和 F1 分数以及偏差值,我们可以使用这些值派生 t 区间以根据需要运行显著性检验。T 区间基于样本标准差推导,置信水平为 0.9。样本数量是 K-fold 验证的大小 = 9。成功指标是验证所有模型变体的 F1 分数。测试指标主要用作异常检测(过拟合)度量值,因此只要它们与验证指标没有太大区别,它们就不会显示在此处,但我们确实记录了测试时混淆矩阵,以探索更精细的模式。评估结果如表5(对于ML算法)和表6(对于神经模型)所示。我们根据上述表格中的结果进行比较研究。
4.3 关于传统ML方法的一般说明
传统的ML方法通常会产生看似令人满意的结果:它们使用任一特征输入实现的最低准确率约为73%。然而,棘手的部分在于F-1得分。令人惊讶的是,尽管精度高出70%,但大多数结果的F-1得分都是0。然后,我们继续追踪这些模型所做的预测。事实证明,这些模型只是预测所有被标记为0(不是灾难)的东西。我们将模型的这种行为归因于数据集的不平衡性质。我们的数据集总共包含 18724 个数据点,其中 5270 个是 0 标记的数据点。它约占总训练样本的28%。因此,一种自然的方法是应用SMOTE来解决不平衡问题。事实证明,在SMOTE之后,该模型的性能在F-1分数方面显着提高,准确性略有下降。我们下面的讨论将是SMOTE之前的讨论,SMOTE之后的表现将在最后一小节中讨论。
4.3.1 输入功能讨论
有两组输入要素。第一个是BoW(单词袋),第二个是TF-IDF。在对输入特征进行试验后,我们发现BoW模型在没有SMOTE的情况下无法实现非凡的结果,这有几个原因。第一个原因可能是我们数据集的规模太小,无法实现对BoW单词有意义的任何内容。
4.3.2 朴素贝叶斯、SVM、逻辑回归
对于朴素贝叶斯估计器,只有一个参数需要调优 - 先验函数。正如我们之前所说,数据集非常不平衡,所以我尝试手动设置先验,而不是让朴素贝叶斯估计器学习它。精度达到了最高点(Acc 82.8%,F-1:64.3%),之前在标签0(非灾难)上增加了70%,而另一方面,F-1分数(Acc 79.7%,F-1:67.5%)在统一之前获得了最大值。解释可能是,在统一先验下,它以某种方式有助于减轻不平衡数据集的影响。对于SVM,有趣的是,除了线性和RBF内核之外,大多数内核都不起作用。这强烈暗示了这样一个事实,即在TF-IDF下,特征位于一个有点线性的空间里。分开。但是,该模型在RBF内核下也取得了良好的性能,事实上,RBF内核达到了84.7%的准确率和68.2%。F-1分数。然后,正则化参数也会对性能产生很大影响。在 RBF 和线性核 SVM 中,系数约为 7.5 不会提高准确性,但惩罚系数越高会导致 F-1 分数增加(两个核的 SVM 达到约 70.5% 的 F-1 分数,这是传统 ML 方法中的最佳结果)。最后,在逻辑回归方面,模式是相似的:性能增长正则化增长到C值7.5。之后,性能开始下降。在C=7.5时,该模型达到83.4%,而F-1得分达到68.8%。这个门槛背后的原因源于数据集的不平衡。随着正则化程度的提高,模型过拟合的可能性将降低,这会导致性能和F-1分数的提高。
4.3.3 集成方法
大多数集成方法不会将性能提升到另一个级别。所有集成方法都未能超越传统方法,但它们与它们非常接近。所有集成方法中最重要的参数是估计器的数量。众所周知,集成方法是从许多简单的分类器构建的,因此应该期望更多的估计器性能更好。对于 Bagging 分类器,使用决策树作为基础估计器,我们获得最佳性能,而数字估计器等于 200。它的准确率为83%和64%的F-1分数。Adaboost 分类器遵循类似的模式,但作为其估计器数量,在 800 左右获得最佳性能。它的性能稍差:82.0%的准确率和66.1%的F1分数。梯度提升大致相同:使用 800 个估计器即可获得 81.74% 的最佳性能准确度和 60.2% 的 F1 分数。对于随机森林,性能 83.01% 准确率和 67% F-1 分数达到峰值,估计器数量约为 250。增加估计值不会在之后大大提高性能。用于衡量分割质量的标准不会产生太大差异。未提及的一个重要部分是基本估计器的选择。除了少数具有固定树方法的估计器外,其他集成方法还可以选择基本估计器。但是,基本估计器的选择并未导致性能发生变化。这令人惊讶,因为我们期望使用那些具有更好性能的基本估计器可能会导致集成方法中更好的性能,但结果与我们的预期背道而驰。原因尚不清楚,但我们制定了一个潜在的概念:由于集成方法中的所有估计器都是弱分类器,因此差异(不那么明显),它们的组合可以使个体差异不可见。
4.3.4 SMOTE采样
正如一般评论中提到的,不平衡问题会导致许多模型在评估指标上的F-1分数为0,因此我们尝试应用SMOTE(合成少数过度采样技术)而不是均匀采样来缓解问题。我们将忽略SMOTE的细节,而是关注其效果。应用 SMOTE 后,所有车型的 F1 分数都会显著增加,如表中所示:

这种增长是戏剧性的,你可以看到SMOTE的真正力量。最有趣的例子是梯度提升。SMOTE不仅有助于提高其F1分数,而且还提高了其性能。
4.4 神经模型
4.4.1 传统 ML 方法与 RNN
两者之间的精度和F-1分数非常接近,但在大多数情况下,深度学习方法仍然名列前茅。然而,传统方法和神经网络之间存在巨大差异:神经网络似乎不太关心不平衡问题。SMOTE之前的传统ML方法的性能比神经网络的性能差得多。因此,神经网络现在似乎具有更多的泛化能力,并且不太可能过度拟合。另一方面,具有 SMOTE 采样的 ML 算法达到与大多数神经模型相同的性能级别。
4.4.2 新的嵌入与预先训练的嵌入
像GloVe和ELMo这样的预训练嵌入通常通过在F1分数和准确性方面击败vanilla LSTM(随机初始化嵌入)超过1%来获得更好的性能。我们认为这归因于预训练嵌入的可推广性更好,因为它们是在更大的数据集上训练的。
4.4.3 固定嵌入与上下文嵌入
我们预计上下文嵌入将击败传统的(固定)词嵌入,但实验结果是有争议的。我们认为原因是我们的推文数据集具有狭窄的上下文,因此一个单词的含义可能不会有太大差异。此外,我们使用的GloVe嵌入是在推文上预先训练的,而ELMo是用更全面的语料库预先训练的。
4.4.4 冻结与微调嵌入
微调技巧在交叉熵损失方面效果很好。我们的直觉是,在使用适当的优化器(如AdamW)的情况下,该模型可以继续优化我们特定推文数据集上的预训练嵌入,因此预训练的嵌入不会发生巨大变化,但会经过微调以更好地适应。
4.4.5 变压器与 LSTM
如表4所示,我们开发的定制变压器模型本质上是一个多层变压器编码器模块。尽管它具有比普通LSTM更多的参数,并且我们尝试了几乎所有可能的超参数组合,但性能最佳的变压器仍然实现了比所有LSTM模型变体更低的F-1分数和精度。我们认为原因可能是LSTM模型在某些任务上仍然优于变压器,因为前者是自然的时间序列模型,而后者没有针对分类任务进行优化。相反,变压器在更复杂的任务(如翻译和对话系统)中具有更广泛的应用。
微调的RoBERTa模型达到了最佳的整体指标,其F-1得分比普通LSTM基线高出5%以上。这是可以理解的,因为像RoBERTa这样的大型预训练模型具有12层,并且它经过了大量预训练的数据。我们当然不能为我们的从头开始的变压器模型采用相同的设置。
4.4.6 类失衡
从混淆矩阵中,我们观察到模型不太可能产生误报,但很可能错过一些真正的灾难,因此假阴性率很高。这会导致召回得分较低。虽然整体F1很高,但我们需要了解为什么神经模型以这种方式表现,并可能解决这个问题。然而,我们注意到的一个有希望的方面是,在解决类不平衡问题方面,具有SMOTE的传统ML模型优于所有神经模型:F-1分数与准确性相当,表明2个类之间的微观指标相似。

4.4.7 BCE损耗与焦点损耗
如果类分布不平衡,焦点损失应该是交叉熵损失的改进。我们观察到具有预先训练的GloVe的LSTM具有最显着的改进,但对t-interval的重大测试则表明情况并非如此。此外,同样的技巧不适用于其他一些模型变体。我们推测数据集太小而不能代表,焦点损失函数对梯度流太敏感,特别是当只有2个类时。
4.5 模型优化
在具有BCE损失函数的最佳性能神经模型(RoBERTa)的训练完成后,我们进行了决策阈值搜索,以找到最大化F-1分数的最佳值。发现阈值为 0.41,其中 F-1 为 0.8461,精度为 0.8761,略高于默认阈值 (0.5),其中 F-1 为 0.8305,精度为 0.8678。该结果表明,即使在完成适当的学习后,模型也可以进一步优化。
4.6 可视化技术
变压器模型的一个独特特征是它们的自我关注机制,我们相信这有助于RoBERTa为我们的分类任务达到最佳性能指标。自我关注允许输入彼此交互,并找出他们应该更关注谁。对于 RoBERTa 模型,我们聚合了最后一层中的所有磁头,以获得密集连接的图像(图 1)。我们注意到,除了句子的开头和结尾之外,该模型还倾向于关注实体名称和关键字,这些名称和关键字表征了灾难案例。这些词与较重的权重有关。我们认为这部分解释了为什么模型对给定的文本示例进行这样的预测。
文本:在la reunion上发现的mh NUMBER飞机残骸来自失踪的马来西亚航空公司URL。
标签:1(是灾难)

5 结论
在这项研究中,我们的目标是解决识别与灾难相关的推文的分类问题,这是一个具有潜在价值的现实问题。我们遵循两条轨道来开发我们的预测因子:ML模型和神经模型。我们通过集成学习方法和 SMOTE 采样技术增强了 ML 算法。对于神经模型,我们使用了 LSTM 和 transformer 变体,比较了预训练模型和从头开始构建的模型,并应用了自定义损失函数。
一般来说,神经模型的性能优于传统的ML算法,我们获得的最佳估计器是微调的RoBERTa分类器。我们相信,它对大型数据集的预训练以及复杂的多层和多头自我关注机制有助于它在推文数据集中捕获精细的语义模式。出于同样的原因,我们观察到预训练的模型,例如用于LSTM的预训练嵌入和用于变压器的RoBERTa,优于其原始模型,因为在较大的数据集上训练的大型模型可以捕获更复杂的模式而不会过度拟合。为了解决类不平衡问题,我们尝试了ML算法的SMOTE采样和神经模型的焦点丢失。事实证明,SMOTE,一种用于少数族裔阶级的过采样方法,在我们的例子中更有效。
由于灾难推文数据集是一个自定义数据集,没有先前研究的支持,因此我们没有官方基准进行比较。但是,我们已经在Kaggle比赛中以我们表现最好的型号达到了一级性能水平(F-1得分>0.80)。可在此处找到竞争笔记本的完整列表。
至于未来的工作方向,我们将对所有神经模型应用SMOTE抽样,以研究进一步改进的可能性。我们还在等待更高级的预训练SOTA模型,这些模型可以潜在地应用于我们的任务。
6 道德规范
灾害分类可以对社会产生巨大影响。对灾难的假阳性分类可能会激起公众不必要的焦虑和恐慌,而假阴性分类可能会导致数千人丧生。在Twitter的特定上下文中,语言上下文是混乱和不明确的。因此,在 Twitter 上部署的任何用于执行灾难分类的语言模型都可能非常危险和敏感。一种虚假的分类可能会被一些人利用来故意煽动公众,扰乱社会秩序:想象我们的模型错误地预测了地震的发生,人们可能会以恐慌模式和正常的社会秩序受到严重破坏。这是不可接受的。与推荐系统等其他机器学习应用相比,灾害分类问题承担的责任更大,压力更大,因为问题的本质直接关系到人们的生活。因此,我们怀疑这种算法的用例:我们强烈反对公开暴露这种系统;相反,这种系统应该留给少数能够区分真理和神话的专家。我们可以让算法与专家的判断并行运行,以便进行确认,或者让算法过滤一些相对不重要的灾难。在这种情况下,我们可以拥有ML辅助专家的工作,同时降低错误分类结果带来的负面影响。其他用例也有待讨论,但一般来说,我们看到任何公开曝光这样的系统都可能带来混乱和谎言。
7 代码库
我们将存储库放在Google云端硬盘上的共享文件夹中,并使用Google Colab进行开发。中的同一个项目镜像到这个 Github 存储库中。
当前,世界正在经历信息革命带来的一些巨大变化。据估计,当今世界的2个小时将产生超过过去100年的信息量。在如此多的信息中,有相当多的信息是假的。对于一些敏感问题,假新闻可能会产生灾难性的后果。近年来,随着数据挖掘算法的快速发展,计算能力和机器学习算法的巨大提高,人类能够从数据中分析和提取模式并进行预测以帮助决策。

浙公网安备 33010602011771号