Majing—基于RNN的谣言检测

Detecting Rumors from Microblogs with Recurrent Neural Networks(IJCAI2016),Jing Ma

主要内容

提出基于RNN的方法,将社会上下文信息建模为可变长度的时间序列,用于学习微博事件的连续表示,即捕获相关帖子的上下文特征随时间的变化;通过增加复杂的递归单元(LSTM和GRU)和额外的隐藏层,进一步提高了RNN算法的性能。
Majing—基于RNN的谣言检测_第1张图片

主要贡献

  • 继2015年的时间序列论文之后,重新构建twitter和新浪微博上的数据集。
  • 为后续论文twitter16的数据来源
  1. twitter数据来源: 通过snopes网站确认twitter上的谣言和非谣言。2015年3月-12月期间获得了778个事件,其中64%是谣言。事件真实性确认 对于每个事件,我们从Snopes URL的最后一部分提取关键字,例如http://www.snopes.com/pentagon-spends-powerballicket。 我们通过手动添加、删除或替换单词来细化关键字,并迭代,直到组合的查询能够有合理精确的Twitter搜索结果。 为了平衡数据集,我们进一步添加了来自两个公共数据集的一些非谣言事件[Castillo等人,2011年;Kwon等人,20 13]。,得到的数据集包含498个谣言和494个非谣言。
  2. 新浪微博数据来源: 对于微博数据,我们从新浪社区管理中心获得了一组已知的谣言,该中心报道了各种错误信息。 微博API可以捕获原始消息及其所有转发/ 回复给定事件的消息。 还爬取类似数量的非谣言事件, 得到的数据集2313个谣言和2351个非谣言。
    观察数据集可发现:谣言和非谣言的事件数量相近;谣言帖子和非谣言帖子的具体比例未知
    Majing—基于RNN的谣言检测_第2张图片

15年社会信息上下文时间序列论文所使用的数据集
Majing—基于RNN的谣言检测_第3张图片

  • 第一次将深度学习模型用于谣言检测领域,对RNN增加了多个递归单元和隐藏层来提高检测性能。针对tanhRNN、LSTM、GRU进行了实际验证,现逐渐成为谣言检测深度学习领域的新基准。

三种RNN模型介绍

  • tanhRNN
    tanhRNN公式
  • LSTM
    Majing—基于RNN的谣言检测_第4张图片
  • GRU
    Majing—基于RNN的谣言检测_第5张图片

基于RNN的谣言检测

问题描述
  • 基于事件的谣言检测
  • 事件集 { E=Ei }, Ei= { (mi,j,ti,j) },事件Ei由时间戳 ti,j内的帖子 mi,j组成。
可变长度时间序列
  • 给定事件相关帖子的数据集,构造可变长度时间序列
  • 将每条帖子建模为输入实例,构造RNN建模时间序列,其序列长度=帖子数量。将帖子按照时间间隔进行批处理,视为时间序列中的单个单元,然后使用RNN序列进行建模,采用RNN序列的参考长度来构造时间序列。
  • 动态时间序列算法(为了妥善处理帖子稠密的time span)
  1. 将整个事件线均分为N个internal(N为RNN的参考长度),形成初始集合U0;
  2. 遍历U0,删除没有包含帖子的internal,形成U1;
  3. 从U1中选出总时间跨度最长的连续internal,形成集合U2;(找到一个最长的时间序列)
  4. 如果U2中internal的数量小于N且大于之前一轮,将internal减半,返回步骤2,继续分区;
  5. 否则,返回该总时间跨度最长的连续internal集合U2。
    Majing—基于RNN的谣言检测_第6张图片
模型训练
  • 使用TF-IDF对词语进行建模
  • 使用反向传播降低损失度来对参数进行训练
  • AdaGrad算法进行参数更新
  • 根据经验设置词汇量大小为k=5000,嵌入量为100,隐藏单元的尺寸为100,学习率为0.5
实验结果

Majing—基于RNN的谣言检测_第7张图片

你可能感兴趣的:(谣言检测,深度学习,python,rnn,lstm)