基于深度学习的虚假健康信息识别
2020-05-28於张闲冒宇清胡孔法
於张闲 冒宇清 胡孔法
摘 要:随着互联网的迅猛发展,网上健康信息以几何速度增长,其中大量虚假健康信息给人们的生活带来了很大影响,但目前对虚假健康信息文本识别的研究非常缺乏,以往研究主要集中在识别微博上的谣言、伪造商品评论、垃圾邮件及虚假新闻等方面。鉴于此,采用基于词向量的深度神经网络模型和基于双向编码的语言表征模型,对互联网上流传广泛的健康信息文本进行自动分类,识别其中的虚假健康信息。实验中,深度网络模型比传统机器学习模型性能提高10%,融合Word2vec的深度神经网络模型比单独的CNN或Att-BiLSTM模型在分类性能上提高近7%。BERT模型表现最好,准确率高达88.1%。实验结果表明,深度学习可以有效识别虚假健康信息,并且通过大规模语料预训练获得的语言表征模型比基于词向量的深度神经网络模型性能更好。
关键词:健康信息;词向量;深度神经网络模型;语言表征模型;预训练模型
DOI:10. 11907/rjdk. 192673
中图分类号:TP301 文献标识码:A 文章编号:1672-7800(2020)003-0016-05
False Health Information Recognition Based on Deep Learning
YU Zhang-xian,MAO Yu-qing,HU Kong-fa
(School of Artificial Intelligence and Information Technology, Nanjing University of Chinese Medicine, Nanjing 210023,China)
Abstract: With the rapid development of the Internet, online health information has been growing exponentially. A lot of fake health information has a great effect on peoples daily life. However, there is a lack of research on text recognition of fake health information recognition. Existing research mainly focus on rumors on microblogs, fabricated product reviews, spam and fake news, etc. This paper utilizes a deep neural network based on word vector and a language presentation model based on bidirectional encoder to classify health information automatically, so that the fake health information can be recognized. In this experiment, the performance of the deep network model is 10% higher than the traditional machine learning model. The deep neural network model integrated with Word2vec improves the classification performance by nearly 7% compared with the CNN or Att-BiLSTM model alone. The BERT model performs best, with an accuracy rate of 88.1%. The experimental results show that the deep learning techniques can recognize fake health information effectively, and the language representation model pretrained with large-scale corpus performs better than the deep neural network model based on word vector.
Key Words:health information; word vector; neural network model; language representation model; pre-trained model
0 引言
2016年10月,國务院印发《“健康中国2030”规划纲要》[1],明确提出要建立健康知识和健康技能的核心信息发布制度,普及健康科学知识,利用新媒体拓展健康教育。健康信息是健康教育职能发挥的最主要资源[2]。随着互联网的迅猛发展,特别是在Web2.0时代,大量用户通过博客、微博、微信等社交网络媒体发布和传播各种信息,使网上健康信息的数量出现了爆发式增长。但由于缺乏足够的监督和约束,怀有各种企图的用户能够自由发布大量虚假健康信息。而随着社会发展,人们对自身健康管理的觉醒和对健康生活方式的追求进一步促进了互联网上健康相关信息的丰富多样。由于这些信息的质量良莠不齐,没有经过筛选区分,而且普通用户也缺乏专业知识,可能造成各种“伪科学”信息充斥社会生活,对缺乏专业知识的人形成误导。普通用户作为虚假健康信息的受害者,又无意中传播扩散了虚假健康信息,因为对于网络上传播广、推崇者多的虚假健康信息,一旦身边的熟人加以推荐,人们会更加容易、也更加愿意选择相信[3]。轻信这些虚假健康信息一方面可能导致用户的经济利益和身体健康受到损害,甚至危及生命;另一方面可能引起用户对正规医疗的不信任感,加剧目前已非常尖锐的医患矛盾。
微信安全团队[4]总结的“微信十大谣言”,如土豆(马铃薯)生汁能治疗癌症、低钠盐就是送命盐、癌病的起因是塑料等虚假健康信息通过微信广泛传播。各种社交网络上推送的医学相关文章一般会夹杂一些医学专业术语,普通用户无法辨识其真假,但较多的专业术语会使普通用户信以为真。目前,尽管已经有一些自动识别网络谣言的方法,且有不少研究表明自动识别网络谣言的可行性,但主要针对网上的一般谣言,对于虚假健康信息的识别很难达到理想效果。因为虚假健康信息往往似是而非,与真实信息相似度较高,需要一定的专业医学知识才能识别,例如以下这段文字:“硝酸酯类药物(以硝酸甘油为代表)具有扩张冠脉血管的作用,应是冠心病患者家中最重要的应急药物。一旦胸痛发作,吸氧的同时给予舌下含服硝酸甘油每五分钟一次,可重复3次,直到急救医生到来”。这则虚假急救措施信息包含一些专业化术语,内容虚虚实实,真假参半,具有很强的迷惑性,普通用户很容易上当受骗。目前,这样的信息只有靠人工才能够识别,例如果壳网的“流言百科”“谣言粉碎机”等。但面对互联网上层出不穷的虚假健康信息,仅靠人工识别显然力不从心。因此,建立模型自动辨别网络健康信息真假,使缺乏医学专业知识的用户从中受益,具有重大现实意义。
近年来,随着计算机硬件性能的提高,云计算、大数据等技术的成熟,以及自身算法的改进,深度神经网络取得了巨大突破,在很多应用领域取得了颠覆性成果[5],2018年更是自然语言处理(Natural Language Processing,NLP)的分水岭。传统的自然语言处理方法主要关注如何提取有效特征,所使用的特征大多数通过人工选取,这些方法或技术相对成熟、效率较高,主要针对长文本,而目前网上信息以短文本为主,采用传统分类技术,会出现表征文本的特征向量稀疏,从而导致分类精度下降等问题[6]。深度学习方法则是通过组成简单但非线性的模块获得多个表示级别的表示学习方法,将人工选取特征的过程转化为通过数据自动学习特征的通用学习过程,从原始输入开始,每个模块将一个级别的表示转换为更高、更抽象级别的表示,再通过训练模型的参数优化深度学习的功能层,提高效率和精度[5],减少了人工过程,避免了人工选取特征的主观性和偶然性。
本文利用深度学习在NLP领域的最新进展,以果壳网“流言百科”上的健康相关信息为研究对象,采用基于词向量的深度神经网络模型和基于双向编码的语言表征模型,对健康信息文本进行分类,实现对虚假健康信息的自动识别。
1 相关研究
文本分类是NLP领域的研究热点之一,最早可以追溯到到20世纪60年代,基于词频统计的抽词标引法被提出,开启了对关键词自动标引技术的探索;90年代后文本分类中较流行的方法包括:Vapnik提出的支持向量机(Support Vector Machine,SVM)、Jaynes提出的遗传算法(Genetic Algorithm,GA)、Sebastiani提出的贝叶斯方法(Na?ve Bayes,NB)、Cover与Hart提出的K最近邻算法(k-Nearest Neighbor,KNN)等。中文文本分类技术最早由侯汉清教授提出,其后王继成与邹涛在向量空间模型(Vector Space Model,VSM)基础上结合基于统计的特征词提取技术,实现了文本的类别分配[7]。
近年来,研究者开始尝试在NLP领域运用深度学习模型。Kim[8]将简单卷积神经网络CNN用于文本分类,提高了文本分类精度,也使得CNN成为运用在自然语言处理中最具代表性的模型之一,Mandelbaum等[9]在Kim實验的基础上扩大了数据集范围,在TensorFlow框架上改进了原有模型,进一步提高了分类精度,但CNN关注局部特征,而忽略了词的上下文含义。循环神经网络(Recurrent Neural Network,RNN)能学习任意时长序列的输入,主要应用于文本分类的是双向循环神经网络(Bidirectional RNN,BiRNN),由于文本中词的语义信息不仅与词之前的信息有关,还与词之后的信息有关,双向RNN能进一步提高文本分类的准确率[10]。但随着输入的增多,RNN会发生梯度消失或梯度爆炸现象。长短时记忆(Long Short-Term Memory,LSTM)网络利用记忆细胞保存长期的历史信息,能很好地利用上下文特征信息,对非线性关系进行拟合,同时保留文本的顺序信息,并利用门机制进行管理,可以克服RNN的缺点[11]。刘敬学等[6]提出了基于字符级嵌入的CNN和LSTM相结合的神经网络模型,实验结果表明该模型的分类效果优于传统模型和仅基于CNN的分类模型;刘政等[12]以新浪微博谣言为研究对象,提出了基于CNN的谣言检测模型,实验结果表明该方法优于传统的SVM方法。
最近,Google发布了一种新的语言表征模型:基于Transformer的双向编码表征(Bidirectional Encoder Representations from Transformers,BERT)[13],与其它语言表征模型不同,BERT利用互联网上的大规模语料如维基百科等对模型进行预训练,通过基于所有层的左、右语境预训练语言深度双向表征,再仅用一个额外的输出层进行微调,就可以为各种NLP任务创建当前最优模型,而无需对任务特定架构作出大量修改。该模型刷新了11项NLP任务的当前最优性能记录,成为当前NLP研究领域最引人瞩目的热点[14]。
2 深度学习模型
2.1 词向量模型
对于文本分类任务,首先要将文本用低维、稠密、连续的向量表示,将其作为深度神经网络模型输入,这一过程又称为词嵌入。Mikolov等[15]提出了Word2Vec模型进行词向量训练,Word2vec模型包括CBOW模型和Skip-Gram模型。CBOW模型是利用前后词预测中间词概率的模型,其输入是目标词上下文的t个词,由这2*t个词推测输出目标词,如图1(a)所示,Skip-Gram模型则是根据中间词预测前后词,其输入是目标词,输出是目标词上下文的2*t个词,如图1(b)所示。通过Word2Vec模型训练后,对于语义相似的词,它们对应的词向量也相近[16]。
2.2 基于CNN的文本分类模型
基于CNN的文本分类模型[17-18]由词嵌入层、卷积层、池化层、全连接层和输出层(Softmax层)组成,如图2所示。
词嵌入层主要对输入文本进行词向量化操作,利用word2vec模型,可以生成文本词向量矩阵[Wn*d]。
其中,[W(i)]表示第i则健康信息文本的词向量矩阵,n表示文本中词的总数,d表示词向量的维度。
卷积层的作用是提取局部区域特征,通过选择不同尺寸的卷积窗口,为每个窗口设置T个滤波器,用于对词向量矩阵[W]进行卷积操作,获得新的特征值[Ci]。
其中[Ci]表示卷积操作后得到的新特征矩阵[C]的第i个特征值,激活函数[g]是一个非线性函数,目的是通过增加偏置项[b],提高整个网络解决复杂(非线性)问题的能力,[fm]表示滤波器(卷积窗口)矩阵,[m]表示窗口大小,[Wi:i+m-1]表示从词向量矩阵[W]的第i行到第i+m-1行抽取的局部特征矩阵。利用卷积窗口抽取有用的局部特征矩阵[W1:m],[W2:m+1],,[Wn-m+1:n],最终生成新的特征向量[C]。
在池化层中,输入特征向量矩陣[C],通过最大池化(Max Pooling)操作对特征值进行压缩,选出特征向量中特征值较高的前K个特征值,组成新的特征向量[M]。
全连接层的作用是整合最大池化操作后的所有特征,生成特征向量[U]。
输出层(Softmax层)在基于CNN的文本分类模型中起“分类器”的作用,根据特征向量计算样本属于每一类的概率,对分类情况作归一化处理,输出一个信息真假标签:0(虚假信息)或1(真实信息)。
2.3 注意力增强的BiLSTM模型(Att-BiLSTM模型)
LSTM仅能学习当前词之前的信息,不能利用之后的信息,采用双向LSTM(Bidirectional LSTM,BiLSTM),整合当前词的前后信息,可以充分学习句中的语义关系。为了达到类似人脑注意力分配思维模式效果,采用了注意力(Attention)机制,在编码阶段和解码阶段采用不同的计算方法。在输出层之前增加Attention层,使模型将注意力集中在重点词上,降低其它无关词的作用,进一步提高文本分类的精度[19-20]。注意力增强的BiLSTM模型Att-BiLSTM由词嵌入层、双向LSTM层、Attention层及输出层组成,结构如图3所示。
词嵌入层与基于CNN的文本分类模型的词嵌入层一致,输入文本词向量矩阵[Wn*d]。
双向LSTM层为隐含层,将输入序列分别从两个方向输入模型,同时保存两个方向的历史和未来信息,最后拼接两个隐层的信息,得到BiLSTM的输出信息[h(i)t]。
其中,[h(i)t]表示第i则健康信息文本的BiLSTM信息,[h(i)t]表示第i则文本的前向LSTM信息,[h(i)t]第i则文本的反向LSTM信息。
为BiLSTM的每个输出值分配不同的权重[ω]和偏置项[b],计算出第i则文本中每个单词的权重[u(i)t]。
通过Softmax归一化,计算出各时刻一个权值[α(i)t]。
其中,[uω]表示随机初始化的注意力矩阵。
对每个时刻的[α(i)t]与[h(i)t]进行加权求和,得到Attention层的输出[s(i)]。
将Attention层的输出[s(i)]作为输出层的输入,通过Softmax对分类情况进行归一化处理,输出一个信息真假标签:0(虚假信息)或1(真实信息)。
2.4 基于BERT的文本分类模型
BERT在斯坦福情感语义树(Stanford Sentiment Treebank)数据集SST-2[13]上取得了很好效果,将虚假健康信息识别看成是一个类似的二元单句分类任务,构建基于BERT的文本分类模型,其结构如图4所示。
BERT全称是基于Transformer的双向编码表征,其中“双向”意味着模型在处理一个词时,它能同时利用词的前后两部分信息。基于BERT的文本分类模型分为预训练和微调两阶段:预训练阶段使用大规模无人工标注的文本语料库(如维基百科等)进行训练,获得通用的语言表征预训练模型,微调阶段在预训练模型基础上,使用特定的健康信息文本语料进行训练,对参数进行微调,最终得到健康信息文本分类模型。
预训练是BERT模型的一个重要阶段,与传统语言模型不同,BERT不是在给定所有前面词的条件下,预测最有可能的当前词,而是随机遮掩一些词,利用所有没被遮掩的词进行预测。在遮掩预测时,随机遮掩掉15%的词,其中80%的情况下直接替换为「[MASK]」,10%的情况替换为其它任意词,10%的情况会保留原词[13,21]。对海量语料的训练,使单词学习了很好的特征表示,在文本分类任务中,可以直接使用该特征表示作为词嵌入特征。由于基于海量语料库的预训练时间非常漫长,而且对GPU显存的要求很高,因此,Google针对大部分语言都发布了BERT预训练模型。由于硬件条件限制,本文在Google发布的参数较少的中文BERT预训练模型上进行微调,模型基本参数:层数(Transformer块)表示为 L=12,将隐藏尺寸表示为 H=768、自注意力头数表示为 A=12,总参数=110M。需要说明的是,Google发布的参数较多的BERT预训练模型在所有任务中都明显优于参数较少的模型,因此在应用参数较多的预训练模型后,本文提出的模型性能还可以得到进一步提升。
微调主要分为两步:①对健康信息文本的数据集进行处理,并词例(token)化,以适应BERT的数据格式;②通过训练对一些参数进行定制。
3 实验与分析
本文实验环境如下:Intel? Xeon? W-2145 CPU@ 3.70Hz*16,Nvidia GTX 1080Ti显卡,32GB内存,操作系统为Ubuntu16.04,开发环境为Anaconda4.5.4 + Tensorflow-gpu1.9.0,开发工具为PyCharm。
3.1 数据收集及预处理
“流言百科”是果壳网站开发的最新辟谣平台,该平台上汇集了常见的健康相关信息,包括食品安全、医疗健康等方面。本次实验数据集通过ScraPy、BeautifulSoup等网页爬虫工具,爬取“流言百科”上发布的健康相关信息文本(截至2018年10月23日),主要是页面上留言标签、流言内容。“流言百科”上的留言标签分为4类:真、假、新、论。由于标签为“新”与“论”的流言都是未经证实的,标签为“真”和“假”的流言文本比例相差较大,因此在本实验中,正例数据集由标签为“真”的文本和标签为“假”的文本相应的真相内容组成,负例数据集由标签为假的文本组成,最终数据集大小如图5所示。
爬虫爬取的原始数据中包含大量HTML标签等无关数据,故在提取本文所需的有用信息时,要通过调用BeautifulSoup库函数,以及运用正则表达式进行数据清洗。与英文文本不同,中文文本字与字之间没有空格分隔,因此在进行中文文本预处理时,需要先进行分词处理。本实验主要运用Jieba分词工具进行分词,并去除文本中的标点符号。
3.2 实验设置
3.2.1 文本向量化表示
首先将数据集进行随机切分,其中80%作为训练集,20%作为测试集。使用Word2vec模型对文本进行向量化操作,生成文本向量矩阵,模型中参数设置如图6所示。
3.2.2 模型参数设置
基于CNN、Att-BiLSTM和BERT的文本分类模型都通过TensorFlow实现,各模型中参数设置如表1所示。
3.2.3 结果分析
为了检验本文基于深度学习的健康信息分类方法的有效性,将以下5种基于深度学习的方法与一种传统的文本分类方法应用于上文数据集,识别其中的虚假健康信息。5种基于深度学习的方法分别基于token级CNN模型、token级Att-BiLSTM模型、融合Word2vec的CNN模型、融合Word2vec的Att-BiLSTM模型和BERT模型,一种传统的文本分类方法基于TF-IDF进行特征提取,并使用Na?ve Bayes方法进行分类。实验结果如表2所示,采用传统的方法进行分类与采用深度学习模型相比,后者性能明显优于前者。融合Word2vec的深度神经网络模型比单独的CNN或Att-BiLSTM模型在分类性能上表现更好。无论是否融合Word2vec模型,CNN模型较Att-BiLSTM模型表现都略优,可能与数据集中文本较短、上下文信息不丰富有关。BERT模型相较于传统的文本分类模型和神经网络模型,性能提升非常明显。
4 结语
互联网上虚假健康信息泛滥,对于利用文本分类实现自动识别需求非常迫切。文本分类是自然语言处理领域的研究热点之一,传统文本分类方法不适用于互联网上常见健康信息的短文本分类。鉴于此,本文提出了基于深度学习的虚假健康信息识别方法,采用基于词向量的深度神经网络模型和基于双向编码的语言表征模型,对健康相关信息文本进行自动分类。实验结果表明,该方法表现良好,在测试集上的准确率最高可达88.1%,具备一定可行性。但由于目前训练和测试数据集较小,后续将收集更多的健康信息文本数据,构建更为复杂的深度神经网络模型,并结合其它方法进一步改进模型性能。同时,将探索本方法在互联网健康信息文本类型之外数据上的表现,以及将其应用于医学自然语言处理等其它领域的可能性。
参考文献:
[1]中华人民共和国国务院. “健康中国2030”规划纲要[EB/OL]. https://baike.baidu.com/item/“健康中国2030”规划纲要/19926077?fr=Aladdin.
[2]陈娟. 网络环境下健康信息的可理解性研究[D]. 重庆:重庆医科大学,2017.
[3]MCKELVEY K R,MENCZER F.Truthy: Enabling the study of online social networks[C]. Proceedings of the 2013 Conference on Computer Supported Cooperative Work Companion,2013:23-26.
[4]微信安全团队. 八月朋友圈十大谣言盘点[J]. 中国信息安全,2017(9):18-19.
[5]LECUN Y,BENGIO Y,HINTON G.Deep learning[J]. Nature, 2015,521(7553):436-444.
[6]刘敬学,孟凡荣,周勇,等. 字符级卷积神经网络短文本分类算法[J]. 计算机工程与应用,2019(5):135-142.
[7]王楓飞. 文本分类中KNN算法优化问题的研究[D]. 天津:天津理工大学,2018.
[8]KIM Y. Convolutional neural networks for sentence classification[C]. Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP),2014:1746-1751.
[9]MANDELBAUM A,SHALEV A.Word embeddings and their use in sentence classification tasks[DB/OL]. https://arxiv.org/abs/1610.08229,2016.
[10]李洋,董红斌. 基于CNN和BiLSTM網络特征融合的文本情感分析[J]. 计算机应用,2018,38(11):3075-3080.
[11]宋祖康,阎瑞霞. 基于CNN-BIGRU的中文文本情感分类模型[J/OL]. 计算机技术与发展,2020(2):1-7[2019-12-09]. http://kns.cnki.net/kcms/detail/61.1450.TP.20191107.0912.042.html.
[12]刘政,卫志华,张韧弦. 基于卷积神经网络的谣言检测[J]. 计算机应用,2017,37(11):3053-3056,3100.
[13]DEVLIN J,CHANG M W, LEE K,et al.BERT:Pre-training of deep bidirectional transformers for language understanding[DB/OL]. https://arxiv.org/abs/1810.04805,2018.
[14]胡春涛,秦锦康,陈静梅,等. 基于BERT模型的舆情分类应用研究[J]. 网络安全技术与应用,2019(11):41-44.
[15]MIKOLOV T,CHEN K,CORRADO G,et al.Efficient estimation of word representations in vector space[DB/OL]. https://arxiv.org/abs/1301.3781,2013.
[16]唐明,朱磊,邹显春. 基于Word2Vec的一种文档向量表示[J]. 计算机科学,2016,43(6):214-217,269.
[17]孙嘉琪,王晓晔,周晓雯. 基于神经网络模型的文本分类研究综述[J]. 天津理工大学学报,2019,35(5):29-33.
[18]李静. 基于卷积神经网络的虚假评论的识别[J]. 软件,2016,37(10):79-81.
[19]赵宏,王乐,王伟杰. 基于BiLSTM-CNN串行混合模型的文本情感分析[J/OL]. 计算机应用:1-9[2019-12-09]. http://kns.cnki.net/kcms/detail/51.1307.TP.20191009.1421.022.html.
[20]孙承爱,丁宇,田刚. 基于GLU-CNN和Attention-BiLSTM的神经网络情感倾向性分析[J]. 软件,2019,40(7):62-66.
[21]王英杰,谢彬,李宁波. ALICE:面向科技文本分析的预训练语言表征模型[J/OL]. 计算机工程:1-8[2019-12-09]. http://kns.cnki.net/kcms/detail/31.1289.TP.20190821.1541.009.html.
(责任编辑:孙 娟)
收稿日期:2019-12-11
基金项目:国家自然科学基金项目(81674099,81804219);国家重点研发计划项目(2017YFC1703500,2017YFC1703501,2017YFC1703503,2017YFC1703506);江苏省自然科学基金项目(BK20180822);江苏省“六大人才高峰”高层次人才项目(2016-XYDXXJS-047)
作者简介:於张闲(1995-),女,南京中医药大学人工智能与信息技术学院硕士研究生,研究方向为文本分类;冒宇清(1976-),男,博士,南京中医药大学人工智能与信息技术学院教授,研究方向为自然语言处理;胡孔法(1970-),男,博士,南京中医药大学人工智能与信息技术学院教授,研究方向为物联网与云计算、中医药人工智能与大数据分析。本文通讯作者:冒宇清、胡孔法。