技术领域
[0001] 本
发明属于
机器学习中的
深度学习和
自然语言处理领域,更具体地,涉及 一种推文级社会媒体谣言检测方法。
背景技术
[0002]
心理学、社会学和传播学界通常定义谣言为一段
声明或者表述是没有被证实 的或者是故意错误的。因此在这种情况下,有效并且快速得在社会媒体中
鉴别谣 言是一个很重要的任务。
[0003] 在之前的相关研究工作中,学者们提出了很多方法来检测单独一条推文是 否是谣言。一条推文通常仅仅具有较少的上下文信息,又因为谣言通常可以采 用与非谣言相同的方法来陈述,所以对推文做谣言检测面临着信息量不够的问 题。同时,通常网络谣言会在社会媒体上被大量传播形成一个事件,因此对事 件的谣言检测会比对推文的谣言检测更具有实用性。此外,事件具有更大的上 下文以及时序特征。早期对事件的谣言检测都是基于人工定义的特征结合传统 的分类器。手工特征包括基于内容的特征、基于用户的特征以及基于传播的特 征。还有一些更精巧的特征包括用户之间的相互反馈,事件在不同生命周期中 的特征变化,表现出对事件表述有所怀疑的
信号词以及用户群体内部对于事件 表达出了有争议的看法。
[0004] 早期的基于手工特征的方法,因为仅仅只能依赖于很有限的上下文信息, 因此不能够利用到更有效的抽象特征。同时,人工定义的特征会因为不够客观 而带来一定的倾向性。所以这类基于手工特征的方法最终不能很好的应用于社 会媒体这种复杂的情况。对于基于GRU和CNN的深度学习谣言事件监测的方 法,他们都将事件看作是推文的序列,通过在时间顺序上采用相同的时间间隔 进行划分从而得到事件的多个生命周期。然而这些模型存在一些
缺陷。第一点, GRU这种基于循环神经网络的深度学习模型会倾向于更多关注最后的输入,然 而没有证据表明最后的几个生命周期会对谣言事件监测更有帮助。第二点,社 会媒体中用户使用的语言不规范,存在很多网络新词和错误的表达,因此传统 的分词方法都很难准确的划分每个词。同时,他们使用词频-逆向文件
频率或者 段落向量的无监督方法来构建生命周期向量,使得他们的模型不能够通过有监 督的学习来修正分词错误带来的影响,从而使得他们的模型不能进一步提升谣 言事件检测的准确率。第三点,他们使用相同的时间间隔来划分事件的生命周 期,这样的建模方法虽然简单但是没有可解释性,不能保证每个周期内的推文 具有利用谣言检测的一致性。
发明内容
[0005] 本发明为克服上述
现有技术中的缺陷,提供一种推文级社会媒体谣言检测 方法,在对社会媒体的谣言事件检测中,取得了更高的准确率,并且可以在事 件发展更早的阶段检测出谣言事件。
[0006] 为解决上述技术问题,本发明采用的技术方案是:一种推文级社会媒体谣 言检测方法,包括以下步骤:
[0007] S1.收集社会媒体平台上的推文,并且以转发、评论将相关推文组成一个 事件,并且按照时间戳将推文排序,然后将推文文本进行清洗;利用辟谣平台 的信息给事件打上对应的标签;
[0008] S2.不对推文进行分词,直接利用word2vec中的CBOW方法对推文中的 字进行训练,得到每个字的向量表达;
[0009] S3.使用天作为时间单位,表示出事件在每一天中的推文个数;横坐标x 为天,纵坐标y为当天的推文个数,即事件在当天的热度;利用断点检测的算 法,即分段线性回归将事件划分为多个生命周期,此时每个生命周期代表事件 发展的趋势;
[0010] S4.通过多头自注意
力机制得到每条推文中词序列的更好的向量表达,然 后通过卷积和最大
池化操作得到推文向量表达,再通过
前馈神经网络以及卷积 池化得到每个生命周期的向量表达;
[0011] S5.使用多层CNN对全部生命周期的向量矩阵进行多层次的特征提取,从 简单特征到复杂特征,然后最后通过全连接层和sigmoid函数对事件的标签进 行预测;
[0012] S6.利用
训练数据集的标签信息训练好上述模型的参数,最后在测试数据 集上判断每个事件是否是谣言,与真实标签进行比对验证模型的效果。
[0013] 进一步的,所述的S3步骤中,利用分段线性回归将事件划分为n生命周期, 使得划分成的n段线性回归的最小二乘误差总和最小;记c[i,j]为区间[i,j]内的 最小二乘误差;F[t,k]表示把区间[0,t]分为k个区间,在每个区间使用最小二乘 回归,使得所有区间最小二乘误差总和最小;mk代表划分第k个区间的x轴坐 标,其中m0=0;根据定义可以得到递推关系:
[0014] F[t,k]=min(F[i,k-1],c[i+1,t]),i∈[1,t-1),
[0015] mk=argmini(F[i,k-1])+c[i+1,mk+1],i+1<mk+1。
[0016] 进一步的,所述的S3步骤中多头自注意力的公式为:
[0017]
[0018]
[0019] MultiHead(Q,K,V)=Concate(Hk,H2,…,H3)。
[0020] 式中,d是字向量的维度;Q=K=V,都是当前推文的矩阵表达,每个行向 量是字的向量表达;这里头的个数h设置为10;因为每条推文中字的个数不同, 使用一维卷积层和最大池化获得每条推文的向量表达postij,其中i和j分别代表 了生命周期和推文的下标。
[0021] 进一步的,设置卷积核的窗口大小为3,卷积核的个数为50,激活函数为 Relu。
[0022] 进一步的,所述的S5步骤中使用的激活函数分别为Relu和tanh
[0023] 与现有技术相比,有益效果是:
[0024] 1.本发明直接从事件的推文开始建模,从每条推文的字开始提取特征。相 比于基于手工特征的模型,本发明能够自动的提取从具体到抽象的特征,减少 了人工介入,使用起来更方便。同时因为可以自动得到客观的且有针对性的特 征,模型可以更好的应用于社会媒体这种复杂的情景中。相比于GRU和CNN 模型,本发明可以尽可能缓解因为不规范的网络用语对谣言事件进行检测的干 扰。
[0025] 2.本发明通过利用事件热度的变化来划分不同的生命周期,使得每个生命 周期更具有可解释性,同时每个生命周期内的推文更具有一致性。本发明在对 社会媒体的谣言事件检测中,取得了更高的准确率,并且可以在事件发展更早 的阶段检测出谣言事件。
附图说明
[0026] 图1是本发明中模型的检测整体结构示意图。
[0028] 图3是本发明
实施例中早期谣言检测实验效果示意图。
具体实施方式
[0029] 附图仅用于示例性说明,不能理解为对本发明的限制;为了更好说明本实 施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于 本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。 附图中描述
位置关系仅用于示例性说明,不能理解为对本发明的限制。
[0030] 实施例1:
[0031] 如图1和图2所示,一种推文级社会媒体谣言检测方法,包括以下步骤:
[0032] 步骤1.从微博这个社会媒体上爬取推文作为样本,以转发、评论将相关推 文组成一个事件,并且按照时间戳将推文排序,然后将推文文本进行清洗。利 用辟谣平台的信息给事件打上对应的标签。微博数据集总共有4664个微博事件, 分别有2313条谣言事件和2351条非谣言事件。将数据集划分为训练集、验证 集和测试集三个部分,随机选取3148个样本用于训练,选取466个样本作为验 证集,剩余的1050个样本作为测试集,同时要保证各个部分的样本两种标签的 样本个数较为均衡。
[0033] 步骤2.预处理,包括去掉推文中的网页标签和没有含义的特殊符号,以及 常用的生僻字等停用词,过滤了出现次数少于3次的低频字符。利用word2vec 中的CBOW对推文中的字进行训练,得到每个词的向量表达。CBOW模型中 使用的窗口大小ws为5,字向量的维度大小记为d,在实验中确定的最优参数 为72。
[0034] 步骤3.表示出事件在每一天中的推文个数,横坐标x为天,纵坐标y为当 天的推文个数,利用分段线性回归将事件划分为n生命周期,使得划分成的n 段线性回归的最小二乘误差总和最小。现在解释具体方法:记c[i,j]为区间[i,j]内 的最小二乘误差。F[t,k]表示把区间[0,t]分为k个区间,在每个区间使用最小 二乘回归,使得所有区间最小二乘误差总和最小。mk代表划分第k个区间的x 轴坐标,其中m0=0。根据定义可以得到递推关系:
[0035] F[t,k]=min(F[i,k-1],c[i+1,t]),i∈[1,t-1),
[0036] mk=argmini(F[i,k-1])+c[i+1,mk+1],i+1<mk+1.
[0037] 式中,n在实验中设置为20。
[0038] 步骤4.使用多头自注意力机制来更新每条推文中的字向量,从而缓解网络 用语不规范到来的干扰。多头自注意力的公式为:
[0039]
[0040] Hi=Attention(QWiQ,KWik,VWiV),fori∈[1,h],
[0041] MultiHead(Q,K,V)=Concate(H1,H2,…,Hh)。
[0042] 其中d是字向量的维度。Q=K=V,都是当前推文的矩阵表达,每个行向量 是字的向量表达。这里头的个数h设置为10。因为每条推文中字的个数不同, 使用一维卷积层和最大池化获得每条推文的向量表达postij,其中i和j分别代表 了生命周期和推文的下标。这里设置卷积核的窗口大小为3,卷积核的个数为 50,激活函数为Relu。
[0043] 步骤5.事件的每个生命周期,含有不同个数的推文,我们使用两层一维卷 积层结合最大池化获得每个生命周期的向量表达gi,设置两层卷积层的卷积核 的窗口大小均为1,卷积核的个数分别为100和50,激活函数为Relu。将所有 生命周期的向量表达gi拼接,最终得到一个n×50维的矩阵。矩阵的每一个行 向量代表了事件对应生命周期的向量表达。
[0044] 步骤6.利用两层一维卷积层从步骤7的样本矩阵中提取更抽象的高阶特征。 设置两层卷积层的卷积核窗口大小均为3,卷积核的个数分别为50和20,使用 的激活函数分别为Relu和tanh。
[0045] 步骤7.使用全连接层和sigmoid激活函数预测事件对应的标签。输出1代 表预测是谣言事件,0代表不是谣言事件。
[0046] 本发明的优点主要有两个方面。第一点,模型直接从事件的推文开始建模, 从每条推文的字开始提取特征。相比于基于手工特征的模型,本发明能够自动 的提取从具体到抽象的特征,减少了人工介入,使用起来更方便。同时因为可 以自动得到客观的且有针对性的特征,模型可以更好的应用于社会媒体这种复 杂的情景中。相比于GRU和CNN模型,本发明可以尽可能缓解因为不规范的 网络用语对谣言事件进行检测的干扰。第二点,模型通过利用事件热度的变化 来划分不同的生命周期,使得每个生命周期更具有可解释性,同时每个生命周 期内的推文更具有一致性。本发明在对社会媒体的谣言事件检测中,取得了更 高的准确率,并且可以在事件发展更早的阶段检测出谣言事件。
[0047] 在表1中使用准确率、精确率、召回率、F1值作为评估指标,对比本发明 WPCNN和其他基线模型的性能,其中R代表谣言事件,N表示非谣言事件。 基线模型包括基于手工特征的模型SVM和基于深度学习的方法GRU和CNN。 通过表1可以发现,WPCNN的效果最好,CNN的效果次之,而SVM的效果 最差。在这个实验中表明本发明能够在检测谣言事件中取得更好的准确率。
[0048] 表1谣言事件检测结果
[0049]
[0050] 图3为早期谣言事件检测的实验结果,横坐标表示事件发生的小时数,纵 坐标表示模型检测谣言事件的准确率,通过这个实验可以比较模型能否在事件 发生的早期检测出谣言。在图中可以发现,本发明提出的WPCNN能够在事件 发生的早期达到更高的准确率。
[0051] 显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并 非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述 说明的
基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有 的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何
修改、等同替 换和改进等,均应包含在本发明
权利要求的保护范围之内。