吴树芳 杨 强 侯晓舟 尹 萌
(1.河北大学管理学院 保定 071000;2.河北大学外国语学院 保定 071000)
网络敏感信息的泛滥会导致舆情失控、引起公众恐慌、加剧社会矛盾,从而严重威胁到国家安全和社会稳定[1-2]。因此,有效识别出网络敏感信息具有极大的价值,已经引起国内外学者的广泛关注。
为了更加准确、高效地识别网络敏感信息,研究者们进行了大量研究,提出了多种识别方法,包括基于敏感词匹配的网络敏感信息识别、基于传统机器学习的网络敏感信息识别和基于深度学习的网络敏感信息识别,这些研究为网络舆情监测、社交媒体管理和网络信息安全等领域提供了有力的技术支持。
目前已有网络敏感信息识别研究主要从以下三方面展开:
一是基于敏感词匹配的网络敏感信息识别,该类方法通过构建敏感词库并与待检测文本进行匹配来识别网络敏感信息,如杨忠[3]提出在网络直播活动中审核禁忌性词语,通过敏感词匹配的审核方式对网络敏感信息进行把关;付聪等[4]利用敏感词的拼音、简称和拆分三种变形体优化扩充敏感词库,有效提高了敏感词匹配的全面性;Fu等[5]通过对敏感词进行语义扩展来解决敏感词数量不足的问题,并利用拼音匹配方法识别缩写、字符分割以及字符替换等形式的敏感词变形体;刘聪等[6]构建了暴恐敏感词典,在此基础上将敏感触发事件与敏感词之间的文本相似度进行匹配实现了网络敏感信息识别;李瀛等[7]通过人工筛选词向量模型输出的敏感词及其相关词构建新闻敏感词库,利用敏感词匹配识别新闻中的敏感信息;吴树芳等[8]通过融合敏感先验概率、敏感语义相关性和复合共现优化扩展敏感词典,提高了敏感词匹配的全面性和准确性。基于敏感词匹配的研究方法实现简单,但是过度依赖于敏感词典的构建,而敏感词典的更新需要耗费大量人力物力。
二是基于传统机器学习的网络敏感信息识别,该类研究突破了对敏感词典的依赖,如Li等[9]根据敏感信息特征获取有效的支持向量来训练支持向量机,提高了网络敏感信息识别的速度和准确率;Xu等[10]依据各类网络敏感信息的特征,对比得出SVM比朴素贝叶斯和决策树拥有更好的网络敏感信息识别能力;余敦辉等[11]通过分析敏感词的结构和读音等特征,构建敏感词决策树识别拼音、简称和拆分三种敏感词变形体;王艺皓等[12]等结合敏感词的文字特征和决策树的特点构建敏感信息决策树,实现了对网络敏感信息的检测和过滤;陈祖琴等[13]通过提取网络敏感信息中的实体特征、信息词特征和情景特征,使用朴素贝叶斯分类器生成网络敏感信息与情景间的映射关系,分析了网络敏感信息的情景画像,以期提高网络敏感信息的识别效果;Xu等[14]在LDA模型基础上,通过加权提高敏感词的分布权重,在特定类型的新闻数据集上提取出了敏感主题特征,实现了网络敏感信息主题识别。然而,基于传统机器学习的研究方法在进行语义挖掘时十分困难,尤其是在多特征学习中。
三是基于深度学习的网络敏感信息识别,深度学习的多特征学习能力为解决基于传统机器学习进行网络敏感信息识别的不足提供了坚实的基础,如Xu等[15]利用Text-CNN文本分类模型的上下文语义特征学习能力,提高了网络敏感信息的识别效率;Li等[16]通过引入局部卷积特征和全局语义特征,提出了一种多级卷积神经网络和计算敏感词权重相结合的方法,利用局部及全局语义信息与相应敏感词权重之间的关系构建敏感信息的特征,在此基础上实现了网络敏感信息的识别。Liu等[17]利用图卷积神经网络和注意力机制提取敏感词的特征并用于检测文本中的敏感词,从而实现网络敏感信息识别;Ding等[18]将BERT模型应用于网络敏感信息识别,通过对模型参数进行微调,取得了较好的识别效果;Cong等[19]通过结合预训练的知识图谱中文实体嵌入模型和CNN分类模型,对中文文本输入中的实体进行特征提取,有效地实现了网络敏感信息识别;高浩鑫等[20]通过将BERT模型学习到的敏感文本语义特征与图卷积网络学习到的敏感文本全局共现特征相结合,以提高网络敏感信息识别效果。
上述研究中,基于敏感词匹配和基于传统机器学习的网络敏感信息识别方法在构建敏感信息特征时依赖于人的经验和判断,导致敏感信息特征构建不全面。基于深度学习的网络敏感信息识别方法虽然可以自动构建一组特征来反映敏感信息,但由于深度学习属于无监督学习,故学习到的特征的准确性有待提升。GuidedLDA主题模型可以通过种子词自动引导生成有倾向性的敏感主题特征,有效解决上述研究存在的不足。如果直接将GuidedLDA主题模型用于网络敏感信息识别存在如下问题:由于敏感种子词数量有限,可能导致引导式生成的敏感主题不够全面和准确,为解决该问题,本文在已有研究的基础上,提出了一种融合敏感语义信息的引导式LDA模型SSI-GuidedLDA(Guided LDA with Sensitive Semantic Information),以实现对网络敏感信息的有效识别,并实验验证了研究内容的有效性。
本文的研究框架主要包括三部分:敏感种子词及敏感语义相关词获取、构建引导式主题模型SSI-GuidedLDA和基于SSI-GuidedLDA模型的网络敏感信息识别,如图1所示。
图1 网络敏感信息识别研究框架
基于SSI-GuidedLDA模型的引导式网络敏感信息识别方法首先需要获取敏感种子词及敏感语义相关词,以此构建敏感特征;然后将构建的敏感特征融入GuidedLDA主题模型,实现SSI-GuidedLDA模型的构建;最后基于该模型实现网络敏感信息识别,具体步骤如下:
第1步,敏感种子词及敏感语义相关词获取:从各种网络资源中筛选出敏感种子词,并采用K-means方法对敏感种子词进行聚类得到C类敏感种子词集。利用词向量模型计算敏感种子词和爬取的网络资源中其它词的相似度,得到种子词的敏感语义相关词。
第2步,构建引导式主题模型SSI-GuidedLDA:在GuidedLDA主题模型的基础上,将分类后的敏感种子词集和敏感语义相关词集融入SSI节点,实现对SSI-GuidedLDA主题模型的构建,该模型依据输入的网络资源引导生成C个敏感主题以及无监督生成K-C个非敏感主题。
第3步,网络敏感信息识别:根据SSI-GuidedLDA主题模型可以得到待识别博文的博文-主题分布,将该分布下概率最大的主题作为博文的主题分配结果,通过判断主题分配结果是否为敏感主题实现对网络敏感信息的精准识别。
2.2.1敏感种子词获取
由于目前没有公开的敏感词列表,本文将通过搜集和筛选网络上的敏感资源获取敏感种子词:首先从一些影响力较大的网络平台中搜集敏感资源,如微博、百度、知乎中的敏感信息以及发布在GitHub上的敏感词典;然后将网络敏感资源中的敏感词作为查询在新浪微博中进行检索,筛选出检索反馈结果为“根据相关法律法规和政策,搜索结果未予显示”的敏感词作为敏感种子词。本文最终得到1323个敏感种子词,并将其构建为敏感种子词集合S。
为了引导生成不同类别的敏感主题,我们将对获取到的敏感种子词进行聚类分析。K-means算法是经典的聚类算法之一,其算法稳定,能够克服短文本内容稀疏的问题[21],而本文聚类的对象主要是短文本,故采用K-means算法进行聚类。为了得到较好的聚类结果,本文通过手肘法来确定最优聚类数:即随着聚类数的增加,核心指标值下降幅度由骤减到平缓拐点所对应的聚类数为最优聚类数。手肘法的核心指标为误差平方和SSE[22],其准则函数定义为
(1)
其中,C是聚类数,Ci表示第i个类,p表示Ci中的样本点,mi表示Ci中的均值点。
本文计算得到不同聚类数下的误差平方和如图2所示,图中横坐标是不同聚类数量,纵坐标为不同聚类数对应的误差平方和SSE。
图2 不同聚类数下的SSE值
观察图2,根据手肘法[22]可以确定最优聚类数为7。通过分析各类别敏感种子词的语义特征,种子词集的7类敏感词分别为:S1政治敏感类、S2暴恐类、S3邪教封迷类、S4色情类、S5赌博类、S6违禁品类和S7欺诈类,聚类结果与我国2020年实施的《网络信息内容生态治理规定》[23]描述一致,说明我们实验爬取的数据比较全面,基本覆盖了所有类别的网络敏感信息,本文爬取的敏感种子词规模如表1所示。
表1 敏感种子词信息
2.2.2敏感语义相关词获取
当前,在词向量训练模型当中,Word2Vec训练得到的词向量语义丰富,能够较好地表达不同词之间的相似度和类比关系[24-25],故本文采用该模型进行词向量训练,将词映射到高维向量空间中,其中词wi训练后的向量表示如式(2)所示。
wi=(wi1,…,wir,…,wiR)
(2)
其中,wir表示词向量wi的第r维元素,R表示词向量的维度。获取词语的向量表示后,词wi,wj的相似度采用公式(3)计算:
(3)
通过设置语义相似度阈值λ来判断种子词的敏感语义相关词,考虑到不同类的敏感种子词阈值不同,论文将在实验部分获取7类敏感种子词的不同相似度阈值λi(i=1,2,…,7)。当词语与种子词之间的语义相似度大于等于λi时,认为该词是第i类种子词的敏感语义相关词。本文最终获取得到7类敏感语义相关词集SSk。
2.3SSI-GuidedLDA主题模型的构建
GuidedLDA通过引入种子词集合,将无监督的LDA主题模型更改为半监督的主题模型,来引导生成与种子词相关联的主题[26]。但是在基本的GuidedLDA中没有考虑敏感种子词的敏感语义信息,语义信息的融入可以生成更加全面、准确的敏感主题特征来描述网络敏感信息。基于此,本文构建了SSI-GuidedLDA主题模型,模型图及其符号描述如图3所示。
图3 SSI-GuidedLDA模型图
SSI-GuidedLDA主题模型以类别划分后的敏感种子词集及其敏感语义相关词集作为SSI节点的输入,输入形式为
SSI={SSI1:[S1,SS1],…,SSI7:[S7,SS7],SSI8:[ ],…,SSIK:[ ]}
以爬取的网络资源数据作为SSI-GuidedLDA主题模型的输入,即D条由词语特征组成的文本文档。第一次迭代是对D条文档中的每个特征初始化主题,如果当前特征w存在于SSIk中,则通过种子置信度SC的值增加当前特征w初始化为主题k的概率,因此,初始化主题完成后的第k个主题特征分布当中,存在于SSIk中的特征相比于其它特征概率更大。主题初始化过程表明SSIk中敏感词在引导生成主题k当中的作用大小由种子置信度SC确定,置信度越大,SSIk中敏感词引导生成的主题k倾向于敏感词所属类型的概率越高,依据文献[27]将SC设置为0.8。
在每一次进一步迭代中,需要为每个特征的主题进行采样,采样公式如下:
(4)
其中,zi表示为当前特征i抽取的主题;i表示除i以外;V表示训练数据集的词表特征数;表示除i以外,主题k下特征t的数量;表示除i以外,文档d中主题为k的特征数量;依据文献[27]将α和β分别设置为0.1和0.01。
根据式(5),迭代过程中以最大化文档-主题相关度和主题-特征相关度的乘积为目标,为每个特征抽取主题。因为属于主题k的特征中,SSIk中的敏感词有更高的概率,所以SSIk中敏感词抽取到主题k的概率变大。
模型经过多次迭代达到收敛,迭代完成后的主要输出为:主题-特征分布,即每个主题由其词语特征分布定义,如表2所示。通过分析SSI-GuidedLDA主题模型的迭代过程可以发现,该模型可以通过SSIk中的敏感词引导生成有倾向性的敏感主题特征分布:当k∈{1,…,7}时,该模型依据SSIk中的敏感词引导生成相应类型的敏感主题,即政治敏感主题、暴恐主题、邪教封迷主题、色情主题、赌博主题、违禁品主题和欺诈主题;当k大于7时,SSIk中没有敏感词,故相应主题为无引导生成的主题,为非敏感主题。
表2 主题特征分布矩阵
SSI-GuidedLDA在主题生成过程中,不仅考虑了通过敏感种子词引导生成敏感主题,还考虑了种子词的敏感语义信息,通过融合敏感语义信息,使种子词的敏感语义相关词也参与引导生成敏感主题,提高了相关敏感词被分类到同一主题中的概率,提升了敏感主题表示的完备性和准确性。
基于SSI-GuidedLDA模型的网络敏感信息识别流程如下:
a.将待识别博文进行预处理,包括分词、除去停用词等。
b.将待识别博文输入到主题模型中,可以得到每篇博文的博文-主题分布,即每篇博文blog属于各主题的概率:blog={k=1:P1,…,k=7:P7,…,k=K:PK}。一个主题概率越大则表示博文内容属于这个主题类型的概率越高,将博文-主题分布下概率最高的主题表示为博文的主题分配,可以提取得到每篇博文的主题分配结果Result。
c.根据待识别博文的主题分配结果和主题定义进行网络敏感信息识别:若一篇博文的主题分配结果Result∈{1,…,7},则该博文属于敏感信息;若一篇博文的主题分配结果Result∈{8,…,K},则该博文属于非敏感信息。
为验证基于SSI-GuidedLDA模型的引导式网络敏感信息识别方法的有效性,采用新浪微博数据作为实证研究数据集。我们共爬取微博195110条,运用德尔菲法[28]从中筛选出29383条敏感博文,并对其敏感类型进行了标注。为了更有效地进行实验,对采集到的数据进行分词和除去停用词,在分词过程中,为了防止敏感种子词被分词处理,将种子词添加到用户词典中,以此来保证分词结果更加准确。
本文采用分类模型中常用的三种评价指标:准确率、召回率和F1值进行评价[29]。其中,F1值为权衡准确率和召回率的评估度量值,指标取值越大表示识别性能越好。准确率、召回率、F1值可以通过公式(5)、公式(6)、公式(7)计算得到:
(5)
(6)
(7)
其中,TP表示被识别为敏感信息,实际也为敏感信息的个数;FP表示被识别为敏感信息,但实际为非敏感信息的个数;FN表示被识别为非敏感信息,但实际为敏感信息的个数。
本文方法的关键参数为:语义相似度阈值λ和Word2Vec训练参数。在Word2Vec词向量训练时,本文将词向量维度vector_size设置为300,选择CBOW训练模型sg=0,将min_count设置为0,以此来保证一些出现次数极低的敏感词不被忽略。
关于语义相似度阈值λ:当设置较大λ时,可以将敏感语义相关词限制为一组与敏感种子词高度相关的单词,然而,设置一个高相似度界限,可能会遗漏一些敏感语义相关词;当设置较小λ时,则难以保证敏感语义相关词与敏感种子词的相关性。为了确定合适的λ值,本文将在数据集上根据不同阈值参数的分类结果,分别计算识别各类网络敏感信息的F1值,以此确定各个语义相似度阈值。具体地,首先在[0.1,1]区间内以步长0.1分别取各个语义相似度阈值,观察发现,当阈值为0.8或0.9时,F1值较大,然后,进一步在[0.8,0.95]区间内以步长0.03取阈值进行实验。实验结果如图4所示:
图4 各个类别随阈值调整对应的F1值
通过图4可以观察得到,当政治敏感、暴恐、邪教封迷、色情、赌博、违禁品和欺诈类语义相似度阈值分别为0.86、0.86、0.86、0.89、0.90、0.83和0.83时,F1值达到最大,故本文将λ1、λ2、λ3、λ4、λ5、λ6和λ7依次设置为上述值。
为了验证SSI-GuidedLDA主题模型的有效性,选取了3种基线模型与本文方法进行对比,模型简写及其解释如表3所示:
表3 模型简写及其解释
采用准确率、召回率和F1值衡量网络敏感信息识别性能,借鉴文献[31]的实验思路,将主题数K依次设置为10、30、50。通过实验可以得到各个模型识别网络敏感信息的整体效果,从而对不同模型的网络敏感信息识别性能进行客观的衡量和比较。实验结果如图5所示:
通过图5可知,SSI-GuidedLDA在不同主题数条件下的识别性能均表现良好,相比于LDA、SW-LDA和GuidedLDA在准确率上分别平均提高7.67%、6.12%、4.31%;在召回率上分别平均提高13.70%、12.10%、7.13%;在F1值上分别平均提高10.36%、8.78%、5.55%。这是因为SSI-GuidedLDA通过融入种子词的敏感语义信息,利用种子词及其敏感语义相关词引导敏感主题的生成,最大程度地提高了敏感主题特征质量,从而能够表现出良好的识别性能。LDA由于不能根据数据集的特点监督敏感主题的生成,因此其得到的敏感主题特征质量较低,难以准确识别出网络敏感信息;SW-LDA仅利用加权提高敏感词的分布权重,未从根本上提高敏感主题特征质量;GuidedLDA虽然可以通过种子词引导生成敏感主题,但未深入挖掘敏感词的敏感语义信息,而本文提出的模型在上述模型的基础上融入了敏感语义信息。
为了未来能得到更好的识别效果,我们深入分析了本文识别错误的实例,以下为三个识别错误的博文示例:
示例1:揭开“全能神”邪教画皮。
示例2:王洪光中将霸气表态:美国在台湾部署萨德?他敢?!那就是解放台湾之日!……,港独,台独,合流的话就一块干掉啊!
示例3:阿弥陀佛!诵《乾隆大藏经》之《大般若波罗蜜多经》第三十五卷,诸佛菩萨加持,……,法轮常转,正法久住!
上述三个示例中包含敏感词“邪教”、“台独”和“法轮”等,因此SSI-GuidedLDA模型会将这些博文识别为敏感信息。但该类博文并未涉及任何违反道德或法律规定的内容,只是表达了宣传警示、对国家的信仰、以及一些佛教用语和祈愿语,因此不属于网络敏感信息。产生错误识别的原因是由于论文提出的识别方法仅通过词语概率获得主题和博文的概率分布,没有挖掘上下文语境,未来我们将对此展开深入研究。
考虑到现有网络敏感信息识别方法存在的不足,本文将敏感语义信息和引导式主题模型相结合,提出了一种融合敏感语义信息的引导式主题模型SSI-GuidedLDA,并基于该模型实现了网络敏感信息的精准识别。本文虽然在一定程度上提高了网络敏感信息识别性能,但尚存不足之处,后续研究拟围绕以下内容展开:a.本文以离线形式的新浪微博作为数据集,而网络敏感信息识别的目的是即时发现并阻断其传播,故后续研究我们拟使用数据流形式的微博数据对网络敏感信息识别模型进行改进。b.本文中的敏感语义信息仅考虑了敏感种子词的语义信息,但还有其他多个方面有利于敏感语义信息的丰富,如:上下文语境、情感信息和用户信息等,故后续研究将深入挖掘其他有效信息,进一步提高敏感语义信息的准确性,进而提高网络敏感信息识别性能。