基于BERT的社交网络媒体突发事件标注方法研究
2021-04-22王德志陈靖耀
王德志,陈靖耀
(华北科技学院 计算机学院,北京 东燕郊 065201)
0 引言
突发事件[1]是指突然发生,造成或者可能造成严重社会危害,需要采取应急处置措施予以应对的自然灾害、事故灾难、公共卫生事件和社会安全事件。将突发事件新闻的自动标注应用于应急管理响应体系的最大挑战之一是突发事件类型繁多,如何进行有效的归纳整合成为首先要面对的问题。如矿山事故类型分为坍塌、透水、冒顶、中毒等多种类型[2],每种类型的事故对应不同的处置预案。针对这一问题,自然语言处理技术[3]一定程度上解决了社交媒体上的新闻[4]人工分类主观性强、分类细粒度的问题。
在涉及应急管理和突发事件处理等相关领域,自然语言处理技术主要在前期预防与准备、后期善后与恢复两个方面展开[5]。例如,杨辰等[6]应用主题模型文本挖掘的方式,通过分析上海市近年的气象灾害数据,提升气象灾害的预警能力;胡立伟等[7]通过构造关系网络的方式,分析货运货车交通事故的原因。但由于数据集来源单一,这两类研究无法满足对种类复杂的突发事件的标注需求。
随着深度学习的快速发展,基于深度学习的自然语言处理技术逐渐成为主流[8],近年来主流的文本分类技术有:(1)基于词向量的分类模型,这种方法至今广泛使用。吴德平等[9]基于Word2Vec 模型获取词向量,运用聚类模型进行安全生产事故文本案例分类;谢斌红等[10]提出基于Word2Vec和卷积神经网络的分类方法将煤矿的安全隐患信息进行分类;(2)基于记忆储存模型:循环神经网络、循环卷积神经网络、长短期记忆网络等,宋英华等[11]基于卷积神经网络和长短期记忆网络提出新模型对突发事故新闻文本进行分类;(3)基于注意力机制的分类模型,葛艳等[12]提出一种基于注意力机制双向长短期记忆网络模型对化工事故进行分类(4)基于迁移语言模型的文本分类模型。预训练语言模型在近年来取得很大的突破,通过上游海量的语料数据训练出的语言模型可直接用于任务中,即节省了下游训练时间又带来较为理想的效果。吴雪华等[13]将BERT-TextCNN组合模型运用于社交媒体信息分类,以缓解应急行动的信息过载问题。
综上,多种分类技术为研究的打下基础。权衡预训练语言模型的特点和词嵌入模型性质,本文的研究基于词嵌入模型的设计开展,具体思路为:利用预训练语言模型在多项自然语言处理任务中取得的良好效果,使用BERT等预训练模型分作为embedding层进行词向量矩阵提取,提升后续主题建模和文本分类的精度。
1 预训练语言模型
1.1 BERT模型
前期的数据集构建和后期文本标注任务都基于预训练语言模型BERT(Bi-Directional Transformer Model)进行,利用了BERT够获得准确的、带有上下文信息的词嵌入和句嵌入信息的特点,使其作为嵌入层能进入主题建模模型和分类模型中能够发挥良好的效果。
BERT能够获取上下文信息的词嵌入和句嵌入主要主要依赖于Transformer中编码器(Encoder)的自注意力机制(Self-attention)。一个Encoder由全连接层和Self-Attention组成。在Self-Attention中每个词语分别由三个长度为64的向量Query(Q)、Key(K)和Value(V)组成。这三个向量由词嵌入向量乘以三个不同权值的矩阵,矩阵大小为大小为(64,512)。如公式(1)所示[14]。
(1)
Attention机制用于区分不同输入对输出的影响。Self-Attention将输入的每个目标字经过向量变换后作为Query,上下文各字向量作为Key,未经过线性变换的目标字和上下字原始信息作为Value(通常key=value)。通过相似度计算将Query和Key的相似度作为权重,通过加权计算的方式将整段文本每个字的信息融入单字之中,重新获取该字的新表征,从而使每个字互相关联,最后作为Attention的输出值。
为了增强注意力机制的能力,Transformer将多个不同的Self-Attention模块组合在一起,获取每个字在不同语言空间下的向量,再将其进行线性组合获取与原始长度相同的向量表征,该结构即多头注意力机制(Multi-Head Attention)。
多头注意力机制与残差连接、层正则化和线性转换共同组成单个编码器,结合输入和位置编码组成Transformer Block单元(图1)。
图1 Transformer Block结构
将多个Transformer Block进行堆叠得到BERT模型(图2),一个Transformer Block对应BERT中的一个Trm。其中L表示网络层数即Trm单元的数量,A表示多头注意力机制中Self-Attention的数量,H为隐藏层的大小。
图2 BERT结构
由BERT结构图可以看出,Transformer中的Attention机制将任意两个位置的词语距离转换为1,使得BERT对词语进行分析时能够提取其所在层中左右两侧的语境,有效地解决其它模型难以应付的长文本的距离的依赖问题。
1.2 BERT-DPCNN
由于构建的突发事件数据集整体文本较短,而BERT模型在处理局部上下文关系的能力较差,对于短文本的处理达不到最好的效果。故使用BERT-DPCNN进行突发事件的标注,将BERT与多层卷积的网络和残差连接融合在一起,在使得单模型计算效率提升的同时,最大限度的获取全文上下文关系和局部上下文关系。
相较于TextCNN不能通过卷积获取文本长距离的依赖关系,DPCNN(深度金字塔卷积神经网络,Deep Pyramid Convolutional Neural Networks)通过不断加深网络模型获取文本长距离依赖关系,因其每层计算时间呈金字塔形下降,故称为深度金字塔卷积神经网络。论文中的实验证明在不增加太多计算成本的情况下,增加网络深度就可以使准确率提升。其最主要的特点是等长卷积和残差连接。等长卷积相比普通卷积处理过后不会使得文本信息丢失,残差连接解决了初始输入的小权重对后续梯度传播的阻碍和梯度爆炸或弥散问题。
路凯峰[15]等和杨文浩[16]等利用BERT-DPCNN分别Web服务和基于大类新闻的分类研究中取得了一定的成果。基于此,使用BERT-DPCNN对标注特定领域短文本,进行效果研究。
2 基于预训练模型BERT的突发事件标注方法(MELB)
2.1 方法设计
针对突发事件的标注预警的相关研究较少,面向复杂的突发事件类型,提出一种基于训练语言模型的标注方法,具体工作有(图3):
图3 突发事件标注方法
(1) 数据获取:使用网络爬虫大范围搜寻自然灾害和事故灾难的相关新闻文章,构成原始数据集资料;
(2) 主题建模:使用基于预训练语言模型的BERTopic对数据进行提取类别关键词与主题聚类建模,构造突发事件相关的标注数据集;
(3) 事件标注:基于BERT-DPCNN的模型,训练标注数据模型,展开模型效果比较和评估,验证整体标注方法的有效性和可用性。
2.2 数据获取
通过爬取中文新闻网站的国内、国际相关新闻标题作为基础研究资料。在设计爬虫算法爬取数据时,首先对新闻进行初筛,获取“自然灾害”和“意外事故”两大类别的新闻标题形成初始数据。时间跨度上,暴雨、火灾等大多数类别的突发事件频发,故选取2020年6月-10月之间的新闻;而如建筑坍塌等事件较少发生,故选取跨度为2019-2020年的新闻标题数据。总计获取未分类的原始数据48579条。
2.3 BERTopic主题建模
虽然LDA(Linear Discriminant Analysis)和NMF(Non-negative matrix factorization)等主题建模方法在过去的研究中取得了良好的效果,但面对大量短文本进行高效建模、确定主题数等问题,机器学习的主题建模方法需要将大量精力投入调参调优之中。基于BERT的性质,使用BERTopic进行突发事件短文本的聚类任务。这是一种支持无监督的动态主题建模的技术,不需要进行人工检查文档或文本粒度,而能够更容易、准确地获取可解释的主题。
图4 BERTopic主题建模流程
2.3.1 分词与去除停用词
使用Jieba工具包进行分词,分词目的是将名词区分开,如地名、事故名称、灾害特征等;由于新闻标题本身信息量较大,故使用自定义的停用词词典,去除标点、“的”等中文中大量出现又没有实际意义的词项,尽可能多的保留文字信息。
2.3.2 嵌入层的构建
BERTopic的关键是构建Embedding层,Embedding层的作用是将非结构的文字信息转换为结构化的数字信息,即文档向量化。嵌入层中许多模型可以选择,如传统词嵌入模型Word2Vec、ELMO等。为了达到良好的效果,使用BERT作为嵌入层模型。
2.3.3 UMAP降维
经过了BERT进行文档向量化处理后此时嵌入的维数较高,但是大部分的聚类算法难以处理高维度数据,故需要首先对数据进行降维。降维使用UMAP(Uniform Manifold Approximation and Projection)算法,其降维过后能在低纬度上保持相当一部分高维度的结构,将语义信息的改变降到最低。过低的维度会导致信息大量丢失,过高的维度会影响聚类的效果。
2.3.4 HDBSAN聚类
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的算法,将密度足够高的地方聚合为簇。与K-means方法相比,不需要事先设置形成聚类的数量,并且能够在空间中发现任意形状的聚类。经过UMAP算法进行降维之后,保留了一部分高维度的结构,而HDBSAN是一种基于密度的算法,通过其寻找高密度特征,HDBSAN不会强制数据进入这些高密簇之中,能够有效的提取数据特征。HDBSAN聚类算法中重要参数是使用欧式距离进行空间点的计算,因为其不会受维度的影响。如图5可见生成的主题数众多,但相当大一部分主题语句数量过少无法构成数据集,在之后的工作中将选取语句数较多的主题进行识别。
图5 聚类结果
2.3.5 主题确定
传统的TF-IDF(term frequency-inverse document frequency)比较一组文档中,文档与文档之间词语的重要性。使用经过改进的c-TF-IDF(class-based TF-IDF),当突发事故文本形成聚类后,将聚类形成的每个事件的簇视为一个TF-IDF中的一个文档,得到每个簇中词语重要性的得分。 如公式(2)所示,含义分别是提取类i的单词频率t除以总单词数w和每类平均单词数m除以总共n个类中单词的总频率。
(2)
通过聚类和c-TF-IDF处理过后,提取大小前9的簇结果如表1所示,主题编号为0的词簇是HDBSCAN聚类处理后没有主题含义的离散簇,它们没有被强制放入其他有主题的集群中。查看大类下的主题词,选取得分最高或者接近的词语,进行人工类名标识。以集群90为例,如图6所示。
表1 主题集群
图6 主题示例
2.4 BERT-DPCNN突发事件标注模型
BERT-DPCNN模型(如图7所示)由BERT构成的词嵌入层、局部语义嵌入层(Region Embedding)、等长卷积层、池化层和全连接层组成。模型对应完成的工作有:
图7 BERT-DPCNN结构
(1) 突发事件文本经过Token嵌入、位置嵌入和段落嵌入处理后得到等长的向量化表示,输入词嵌入层的BERT生成大小为l*768的词向量矩阵, 其中‘l’为输入长度,‘768’为BERT的词向量维度。
(2) 预处理的文本经过BERT层获取全文上下文信息关系的输出,进入局部语义嵌入层。由250个尺寸为3的卷积核进行卷积提取局部语义,得到局部文本的特征图作为嵌入向量。
(3) 接入由每层250个大小为3的卷积核组成的等长卷积层,保证文本前后序列不变,输出序列长度为‘l-3+1’。等长卷积将每个词语与前后相邻词语的上下文信息进行压缩,进一步加深每个词语的语义,提高了词嵌入的语义丰富性。
(4) 由大小为3、步长为2的池化进行下采样,把序列压缩到原始长度的二分之一,扩大局部语义提取范围,减少总体计算复杂度;接着将局部语义嵌入层用残差连接的方式与最终的池化层相连,残差连接让梯度忽略卷积层权重的影响,缓解梯度消散的问题。
3 突发事件数据集
聚类过后的文本,进行归类、剔除了长度较短、文本混乱的类别,最终创建的数据集情况见表1,设定包含暴雨、大雾等九个类别。以8∶1∶1的比例划分训练集、测试集和验证集。
表2 应急事故数据集
图8 部分已标注数据
4 实验条件
4.1 基线模型设置
为了验证BERT-DPCNN在标注突发事件文本的针对性和有效性,选取BERT、BERT-TextCNN和Word2Vec-DPCNN作为基线模型进行效果比较。
表3 实验配置条件
表4 实验参数
4.2 实验条件
本实验使用网络远程云主机进行计算。
4.3 BERT模型参数
4.4 评价指标
在本算法中主要采用正确率(Acc)作为评价指标,同时列出精确率(Precision)、召回率(Recall)和F1-Score值。假定短文本i的预测标签集合为S,以分类需求正确的类为正类,其余为负类。TP个正类文本正确归到正类标签,FN个正类文本错误归到负类标签,FP个负类文本错误归到负类标签,TN个负类文本正确归到负类标签。
F1-Score是召回率和精确率的调和平均值:
(3)
正确率是判断正确的数量占总量的比例:
(4)
精确率是判断为正类的数量占所有判断结果的比例:
(5)
召回率是判断为正类的数量占所有正类的比例:
(6)
5 结果分析
在实验中Word2Vec-DPCNN模型使用了使用搜狗新闻作为训练语料的开源词向量,大小为300维(https://github.com/Embedding/Chinese-Word-Vectors)。
表5中BERT-DPCNN模型的正确率高于其他比较模型,表明了BERT-DPCNN模型对突发事故文本分类的良好效果。F1值综合了召回率和精确率,能够更全面反映模型性能。分析表6和图7中的F1值得出:在8个种类的标注表现中BERT-DPCNN模型性能全面优于其他模型。通过与BERT模型的比较发现,实验结果与前文所做的假设一致:BERT对处理全文上下文的良好能力与DPCNN处理局部上下文的能力相互弥补,使得BERT-DPCNN模型取得对比实验中最好的效果,BERT模型次之。与基于传统词向量模型的Word2Vec-DPCNN模型相比,体现了预训练语言模型强大的语言处理优势和迁移泛化能力。而BERT-TextCNN的效果较差,结合TextCNN的池化特点,表明在整体突发事故文本的标注任务下,对于上下文特征的依赖要大于对局部文本特征的依赖,与使用的数据集长度较短、全文语义理解的作用大于局部语义理解的作用特征相符。
表5 正确率
表6 BERT模型的实验结果
从模型反馈的标注数据可以发现:
(1) 所有模型对暴雨、地震、和飓风文本标注处理上差异较小,说明在进行主题建模时,与其他文本相比这三类突发事件确定的特征明显,实施紧急预案时可采取针对性强的手段。对这三类突发事件进行单独标注时,选择参数较少的模型以节约运算成本。
(2) 在标注大雾、道路交通、温度和工商贸火灾突发事件上,模型之间效果差别较大,出现一定程度的过拟合。反应了标注模型对这几类突发事件确定的主题辨识不明显,后续研究中考虑对几类突发事件有针对性的重新建模或适度扩大标注数据集。但BERT-DPCNN和BERT依然取得较好的效果,证明了预训练语言模型对文本强大的处理能力。
数据集的构建是精确识别突发事件类型的前提和基础,本文基于预训练语言模型BERT通过BERTopic和人工去噪构建主题模型建立数据集,以应对突发事件新闻知识量大、专业细分强、种类繁多等对自然语言处理带来的困难。例如前文提到的矿山事故的分类;化学品事故可分为泄露、火灾和爆炸等类型。相比于人工标注,用主题建模的技术提高了数据集的质量,基于突发事件数据集训练的BERT-DPCNN模型在测试集中加权平均的F1值达到了0.9741。
在标注模型方面,基于预训练语言模型的BERT-DPCNN在突发事件短文本新闻的标注中展现了有效性和可行性,平均每类突发事件使用的训练集为1400条左右即可获得0.97的算法性能,结合数据获取的难度,BERT-DPCNN相比于传统的神经网络模型训练成本更低;在9类突发事件标注中,BERT-DPCNN相比于BERT均有一定程度的提升,进一步发挥预训练语言模型的能力。
图9 F1-Score值对比
6 结论
(1) 本文提出对突发事件新闻进行爬取与清洗,利用迁移模型进行主题建模,构建数据集,实现对突发事件标注的方法。
(2) 研究围绕着基于突发事件新闻文本短、信息量大的特点展开,基于自然语言处理中词嵌入的特性,用BERT模型分别完成了主题建模和文本标注模型中的词向量输出,利用DPCNN网络和BERT进行优势互补进一步处理短文本。
(3) 虽然研究中只验证在突发事件标注上该方法的有效性和可行性,但利用预训练模型对采集的数据进行主题建模和分类标注具有迁移性,具备在其他领域进一步研究的基础。
(4) 本研究中也存在着不足:BERT模型复杂度较高,性能较好的同时也带来了训练时间的增长。下阶段将选取BERT的知识蒸馏模型或其他预训练语言模型进行研究,在兼顾良好效果的同时缩短训练的时间成本。