一种基于线性和非线性传播的谣言检测方法与流程

文档序号:23719062发布日期:2021-01-24 06:50阅读:119来源:国知局
一种基于线性和非线性传播的谣言检测方法与流程

[0001]
本发明涉及一种基于线性和非线性传播的谣言检测方法,属于自然语言理解技术领域。


背景技术:

[0002]
随着网络技术的迅速发展,大量的虚假信息在社交媒体平台上变得无处不在,对社会带来了许多不良的影响。谣言检测,旨在对社交网络中传播的信息进行甄别,以检测出哪些信息是谣言。
[0003]
谣言的传播是一种复杂多变的现象。在谣言传播过程中,除谣言本身,还会产生大量围绕在谣言周围的社会上下文信息。因此,同时从线性的时间序列和非线性的扩散结构两方面了解谣言的特征至关重要。非线性的扩散结构揭示了谣言在社交网络传播的路径,可以用来学习传播路径上的谣言节点之间的潜在交互。时间序列信息记录了用户参与传播的时间戳,可以用来探究谣言在社交媒体上传播的时序特性,以及社会对谣言的反应如何随时间而变化。
[0004]
目前,研究人员提出了一些基于谣言扩散结构的检测方法,例如:基于树结构的递归神经网络和双向图卷积神经网络,rosenfeld等人引入weisfeiler-lehman图核来推导谣言级联的拓扑表示,但其忽略了谣言的文本特征。此外,还有一些基于序列机制的方法,其目的是根据谣言随时间的传播来学习序列特征。ma等人引入循环神经网络来捕捉相关的帖子中上下文信息随时间的变化。khoo等人为了克服树模型的一些局限性,提出了一种层次化的单词和帖子级别的注意力模型,该模型通过扁平化树结构和按时间顺序排列所有帖子来克服树模型的局限性。
[0005]
虽然现有的方法在谣言检测任务上取得了一些成效,但是,为了更加系统地聚合谣言各个方面的特征,使检测模型更加稳定和准确,还需要从以下几个方面进一步考虑:
[0006]
1.在谣言的传播节点中,往往包含着可以验证谣言真实性的指示性线索。由于谣言是出于某种不正当的目的而不是为了报道一个客观事件,所以它们往往含有指向性或煽动性的语言。因此,可以通过识别源节点文本内容中潜在的语言特征来预测谣言的真实性标签。
[0007]
2.社会上下文信息表示了社会参与谣言传播的变化,它包含了各种各样的辅助信息,可以用来推断谣言的真实性。
[0008]
3.当消息沿着时间线传播的同时,用户之间的交互(如:转发和评论)构建了一个传播树。也就是说,在谣言传播的形成过程中,必须同时考虑序列模式和结构交互。
[0009]
因此,为了增进对谣言传播特性的了解并预测其真实性,必须在传播线程中对节点表示进行建模,并准确地捕获源节点与其他传播节点之间的相互作用关系。


技术实现要素:

[0010]
本发明的目的是为了克服现有的谣言检测方法仅从单一方面对传播特征进行表
示进行检测的技术缺陷,创造性地提出一种基于线性和非线性传播的谣言检测方法,能够对谣言的真实性进行准确预测。
[0011]
本方法的创新点在于:利用文本内容和时间信息对谣言节点进行统一建模表示,首次将线性与非线性传播特性相结合的方式,自动进行谣言检测。
[0012]
本发明采用的主要技术手段为:首先,使用谣言节点中所包含的文本信息和时间信息对其混合特征进行联合表示。然后,分别沿线性时间序列和非线性扩散结构聚合节点信息,增强源节点的表达,形成最终的传播表示。最后,用传播表示进行真实性标签预测。
[0013]
本发明是基于以下技术方案实现的。
[0014]
一种基于线性和非线性传播的谣言检测方法,包括如下步骤:
[0015]
步骤1:对谣言节点中的文本信息和时间信息进行编码。
[0016]
具体地:
[0017]
步骤1.1:利用word2vec,获取每个单词的词嵌入和字符嵌入。然后,将每个单词的字符嵌入通过cnn和池化层输出其字符表示。
[0018]
由于社交网络平台中用户发布的信息通常包含有新的非标准词汇,采用字符嵌入可以更好地挖掘这些单词的语义特征。
[0019]
步骤1.2:将词嵌入和字符表示相加或者连接作为输入,通过双向循环神经网络得到每个单词的隐藏表示。
[0020]
步骤1.3:将时间信息通过空间转移矩阵映射至高维向量空间。
[0021]
步骤2:构建谣言节点的混合特征嵌入表示。
[0022]
为深入研究文本内容与时间信息之间的相关性,对通过步骤1中学习到的两个特征进行建模,生成一个统一的节点嵌入表示,以此增强高可信度节点和低可信度节点之间的差异。
[0023]
通过特征映射矩阵、文本特征和时间特征,将在统一的向量空间中进行学习表示。以sigmoid函数作为激活函数,对混合表示进行筛选,选取能揭示谣言真实性的潜在特征。
[0024]
步骤3:同时沿非线性扩散结构和线性时间序列,聚合所有节点的混合特征。
[0025]
其中,沿非线性结构聚合所有节点的混合特征的方法如下:
[0026]
首先,利用边和点建立邻接矩阵,通过图的拉普拉斯矩阵来研究图中所包含的信息。在图上进行卷积的同时,通过增加残差项来增加网络深度并解决过度平滑的问题。最后,通过池化操作整合各个节点潜在特征,形成非线性扩散结构的最终表示。
[0027]
源节点与各个节点之间的交互一定程度上反映了源节点的可信度,通过捕获这些交互,能够学习到非线性扩散结构的传播表示并验证谣言的真实性。
[0028]
沿线性结构聚合所有节点的混合特征的方法如下:
[0029]
第一步,通过lstm聚合器,从子节点中聚合其特征信息。
[0030]
首先,将非线性的传播结构转换为线性图,即,按时间顺序排列各个子节点,使得每个孩子节点的父节点都是源节点。为了学习用户参与的变化趋势,将序列作为输入馈入至单向lstm中。之后,通过对lstm最后一个隐藏态和源节点之间的相互作用进行建模,能够增强源节点的表示并获得序列传播的向量表示。基于lstm的聚合方法,默认最新的节点的贡献度最大。
[0031]
第二步,采用基于立场注意力的聚合器,根据源节点和子节点之间的立场冲突度
量响应节点的重要性。
[0032]
由于并非所有的回答都对验证谣言的真实性有同等的贡献,一些回复清楚地表达了他们的观点,或者讨论了这些说法的可信度。例如:“没有一个词是真的”、“在重复这些垃圾之前,你求证过了吗?”。但有些回复却不知所云,与事件毫无关联。因此,基于lstm的聚合器只能学习节点参与传播的变化趋势,不能动态地度量不同节点的重要性。为此,采用基于立场注意力的聚合器,根据源节点和子节点之间的立场冲突来度量响应节点的重要性。
[0033]
首先,计算子节点文本嵌入和源节点文本嵌入之间的冲突分数,再通过冲突分数来更新节点,从而得到带有立场信息的节点表示。在立场注意力中,采用度量矩阵来衡量各个节点的重要程度。聚合后生成的全局节点表示再与源节点结合,并同lstm聚合器输出最终的序列传播向量表示。
[0034]
步骤4:计算共享特征矩阵,获取谣言的全部特征。
[0035]
为得到谣言传播图的全局特征,需要对非线性和线性传播表示进行过滤,计算共享特征矩阵,并将它们与共享特征连接起来。
[0036]
步骤5:预测谣言的真实性标签。
[0037]
通过全连接层和softmax层,获取预测的真实性标签分布。
[0038]
步骤6:训练神经网络,使用交叉熵作为损失函数计算损失值。
[0039]
预先设置迭代次数(例如,50次),如果迭代次数满足设置次数,则训练流程结束,实现了谣言真实性标签的预测;如果迭代次数不满足设置次数,则返回步骤1,继续进行下一轮训练。
[0040]
至此,完成了基于线性和非线性传播的谣言检测方法,实现了谣言真实性标签的预测。
[0041]
有益效果
[0042]
本发明方法,与现有谣言检测模型相比,具有以下有益效果:
[0043]
1.本方法从两个不同的角度提取谣言的节点特征,不仅从非线性的扩散模式中获取树感知的表示,而且还从线性的时序相互作用中捕捉传播序列的特性。
[0044]
2.本方法基于谣言的文本内容和时间信息来学习混合特征,可以挖掘关键的语言线索,并从帖子周围的相关信息中提取丰富的辅助信息。
[0045]
3.本方法采用非线性的聚合器沿着传播树的路径提取拓扑结构上的信息流,对扩散模式进行表示学习。
[0046]
4.本方法,采用lstm聚合器从用户参与的变化趋势中聚合节点的特征信息;基于立场注意力的聚合器根据节点的文本之间的立场冲突衡量贡献度,弥补lstm聚合器无法灵活地学习节点之间的依赖性的不足。
附图说明
[0047]
图1为本发明方法的流程图。
[0048]
图2为本发明方法的实现框图。
具体实施方式
[0049]
下面结合附图和实施例对本发明方法进行详细说明。
[0050]
实施例
[0051]
本实施例选用两个数据集的网址为:https://www.zubiaga.org/datasets/。
[0052]
从数据集中选取“埃博拉病毒”事件中的一组推文,源节点记为v
1
,[v
2
,...,v
n
]为回复节点,分析源节点所属的真实性标签。
[0053]
如图1所示,一种基于线性和非线性传播的谣言检测方法,包括以下步骤:
[0054]
步骤1:将所选取的推文定义为一张图:g=(v,e)。v={v
1
,...,v
n
}为节点集合,v
1
为源(根)节点,v
i
(2≤i≤n)代表第i个回复(包括评论和转发)节点;e={e
pc
|p,c=1,2,...,n}为节点v
q
到节点v
c
的边的集合。对于任一节点v
q
,它都由一个二元组v
q
={s
q
,t
q
}组成,s
q
表示文本,t
q
表示该节点文本在社交媒体平台上发布的时间戳。
[0055]
步骤2:对于每个节点中的文本,获取其中每个单词的词嵌入和字符级嵌入。
[0056]
任取一个节点v
q
为例,用o=[o
1
,...,o
m
]来表示其文本的词嵌入,用表示第i个单词通过cnn层后得到的字符嵌入。比如本实例中,某一条推文的部分内容为:“tf?”(“true or false”的缩写),这部分的文本表现出对源节点的怀疑态度,如果不采用字符嵌入那么模型就会把“tf”当成一个词典外的词语而随机初始化它,从而无法发现它所包含的语义和情感信息。但通过字符级别嵌入,模型就能准确地理解字符“t”和“f”的含义。则我们需要采用以下公式:
[0057][0058]
其中,w
i
表示第i个单词的最终嵌入表示;表示元素相加或者连接操作,max(
·
)表示max-pooling操作。
[0059]
获得单词表示之后,采用双向门控循环神经网络(bi-gru)将其映射到高维向量空间。由于bi-gru可以充分利用长期依赖和高维依赖,它可以发现谣言文本内容中潜在的模式。bi-gru从单词的正向和反向对单词序列进行建模:
[0060][0061][0062]
其中,表示单词嵌入w
i
的正向隐藏状态,则表示反向隐藏状态;
[0063]
然后,将前向状态和后向状态连接起来,以计算隐藏状态其中[
·
]表示连接操作。
[0064]
步骤3:对于记录在节点中的时间戳(即,节点的文本在社交平台上发布的时间),通过以下计算过程将其映射到高维表示空间中:
[0065][0066]
t=w
t
δt+b
t
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0067][0068]
其中,a是一个标量;t为当前节点的时间戳;t
r
为源节点的时间戳;w
t
表示空间转换矩阵,将时间信息映射到高维向量空间中;b
t
表示偏差项。
[0069]
步骤4:将文本和时间特征通过sigmoid作为激活函数的线性层,得到节点的可信
度:
[0070][0071]
其中,和为空间转移矩阵,旨在将两个特征转移到统一的向量空间内进行运算,增强高可信度节点和低可信度节点之间的差异;sigmoid将向量中每个元素映射到0到1之间。sigmoid表示激活函数。t
t
表示时间嵌入表示。b
z
表示偏差项。
[0072]
随后,通过特征过滤,得到节点v
q
的嵌入表示其中:
[0073][0074]
其中,表示两个矩阵之间的元素乘法;h
i
表示步骤2中获得的单词隐藏表示。对于给定的事件图g,其节点嵌入序列为r
(g)
={r
1
,...,r
n
}。
[0075]
步骤5:同时沿非线性扩散结构和线性时间序列聚合所有节点的混合特征。
[0076]
步骤5.1:沿传播树的路径聚合节点表示。
[0077]
在进行计算之前,首先要将边集合转换为邻接矩阵。用a=[a
pc
]∈n
×
n来表示邻接矩阵,a
pc
=1代表e
pc
∈e,即,节点v
c
回复了节点v
p
,否则a
pc
=0。如果a
pc
=1,则a
cp
=1,邻接矩阵包含了谣言传播树自顶向下和自底向上两个方向的路径。
[0078]
得到邻接矩阵后,将其与节点嵌入序列作为输入,馈入两层具有残差项的图卷积神经网络层,具体如下:
[0079][0080][0081]
其中,i为对角元素均为1的矩阵;σ表示relu激活函数。
[0082]
随后,在h
(2)
上进行mean-pooling操作以输出最后的扩散结构表示:
[0083]
g=mean(h
(2)
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0084]
其中,mean(
·
)表示均值池化函数(层)。
[0085]
步骤5.2:对谣言的线性传播进行建模。
[0086]
步骤5.2.1:构建lstm聚合器捕捉用户参与的变化趋势。
[0087]
社会对谣言的反应是动态的,并且随着时间的推移而变化。本实例中,在谣言传播的初期,有的用户会相信谣言,或是表示怀疑(例如,“tf?”);但到了谣言传播中后期,就会出现大量证明是谣言的回复(例如,“michael essien ebola reports are fake!”)。
[0088]
首先,对传播树进行前序遍历,将谣言节点按照时间顺序排列,把非线性的扩散结构转换为线性序列图。为了学习回复节点的反应的转移,将序列图作为lstm聚合器的输入:
[0089][0090][0091][0092]
其中,lstm(
·
)表示lstm函数。n(
·
)为获取邻接节点的函数。表示节点v
1

所有邻接节点的隐藏状态。r
i
为第i个节点的混合特征表示。sigmoid()为激活函数。为由lstm聚合器计算得到的线性传播的隐藏表示。
[0093]
通过对聚合器最后一个隐藏态和源节点的嵌入表示r
1
之间错综复杂的相互关系进行建模,获取基于时序的向量表示。
[0094]
步骤:5.2.2:构建基于立场注意力的聚合器。
[0095]
对于节点v
q
,将其文本表示和源节点的文本表示作为冲突分数计算的输入:
[0096][0097]
其中,h
1
和h
q
分别为源节点和节点v
q
的文本特征,和为度量矩阵;h
q
表示节点v
q
的文本序列表示;b
score
表示偏差项;sigmoid为激活函数。
[0098]
利用得到的冲突分数来更新各个节点的节点表示:
[0099][0100]
其中,r
q
表示节点v
q
的混合特征表示。
[0101]
随后,新的节点表示用于立场注意力的计算,从而获得全局的回复节点表示:
[0102]
e
q
=tanh(w
e
r
1
+u
e
p
q
+b
e
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(16)
[0103]
e=[e
2
,...,e
n
]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(17)
[0104][0105][0106]
其中,e
q
反映了源节点的混合特征嵌入表示r
1
和节点v
q
带有冲突分数的嵌入表示p
q
之间的相互匹配度。α表示注意力分数。表示基于立场注意力所得到的传播隐藏表示。随后的计算过程,与源节点嵌入表示交互的计算过程与公式(12)、(13)一致。
[0107]
最后,序列传播的向量表示e通过连接两个聚合器的输出结果获得:
[0108][0109]
其中,表示元素加法或者连接操作。
[0110]
步骤6:构建共享特征。
[0111]
在得到非线性模式和线性交互的特征后,需要突出各自有价值的共享特征,促进它们之间的深层次交互。
[0112]
将扩散结构和序列传播的向量表示作为输入,查询矩阵是非线性扩散结构嵌入,键矩阵和值矩阵是线性序列传播表示。计算过程如下:
[0113][0114][0115]
其中,q
g
=g,k
e
=v
e
=e。w
iq
,w
ik
,w
iv
为权重矩阵。head
i
表示多头注意力机制中第i个注意力头。concat(
·
)为连接操作。m表示共享特征矩阵。随后,将输出m通过归一化层和
前馈层,得到共享特征的向量表示。
[0116]
步骤7:为了得到谣言传播图的全局特征,对非线性和线性传播表示进行过滤,并将它们与共享特征连接起来:
[0117][0118][0119][0120]
其中,为对应的权重矩阵。为对应的偏差项。g和e分别表示非线性和线性传播表示,和为经过特征筛选后的传播表示。sigmoid函数将向量中的元素映射至0到1之间,从而实现过滤。
[0121]
步骤8:预测谣言真实性标签。
[0122]
将global通过softmax分类层获取预测的真实性标签分布将global通过softmax分类层获取预测的真实性标签分布表示源节点为谣言,表示源节点是真实的:
[0123][0124]
其中,w
f
表示映射矩阵;b
f
表示偏差项。
[0125]
步骤9:训练神经网络,使用交叉熵作为损失函数计算损失值。随后判断迭代次数是否等于预先设置的迭代数(例如50次),如果满足预先设置的迭代数条件,则结束训练流程,如果不满足,则返回步骤1继续下一轮迭代训练。
[0126]
图2为基于本方法的实施框图。采用本方法得到的预测结果的准确率(accuracy)、精确率(precision)、召回率(recall)和f1如表1中两个子表的最后一行所示。
[0127]
表1:8种分类方式-2种数据集效果比较
[0128]
[0129]
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1