一种基于循环神经网络的社交网络消息爆发检测方法及系统的制作方法

文档序号:10612831阅读:246来源:国知局
一种基于循环神经网络的社交网络消息爆发检测方法及系统的制作方法
【专利摘要】本发明提出一种基于循环神经网络(Recurrent Neural Network,RNN)的社交网络消息爆发检测方法及系统,涉及在线社交网络中内容的流行度预测技术领域,该方法包括获取社交网络中用户发布与转发的历史消息,对所述历史消息进行预处理,获取历史转发时间序列;对所述历史消息与所述历史转发时间序列进行循环神经网络训练,并生成预测模型;实时采集用户发布与转发的消息,根据所述消息,生成转发时间序列,将所述转发时间序列输入到所述预测模型,生成特征表达,将所述特征表达输入到全连接神经网络进行分类,结果以softmax方式输出,以完成社交网络消息爆发检测。
【专利说明】
一种基于循环神经网络的社交网络消息爆发检测方法及系统
技术领域
[0001] 本发明涉及在线社交网络中内容的流行度预测技术领域,特别涉及一种基于循环 神经网络的社交网络消息爆发检测方法及系统。
【背景技术】
[0002] 以微博为代表的在线社交媒体,每天会产生数以亿计的消息和内容,社交网络中 用户高度互联的结构和用户的从众效应使得消息的扩散变得十分的便捷和高效,极大地便 利了人们获取信息的方式,加强了人与人之间的联系,然而,网络中的信息良莠不齐,只有 极少部分的消息最终会流行和爆发,引起公众广泛地关注并伴随着巨大的社会舆论和影 响,在消息或内容爆发的早期进行有效识别,对于公司来讲,是在线信誉监控(Online Reputation Monitoring)的重要手段,如果是负面的消息,则应该及时采取相应的措施,降 低公司信誉损失,正面的消息则可借机营销,提升公司业绩;对于政府部门来讲,尽早地发 现关于自然灾害事件、公共卫生疾病、反动谣言等消息,就能及时采取对应的措施,提前进 行相应的决策和部署。
[0003] 目前,预测消息的爆发和流行主要可以分为基于内容特征的分析方法和基于自激 励点过程的方法,基于内容特征的方法通过捕捉消息相关的内容特征随时间的异常变化, 来发现突发的话题,这种方法需要消息的传播积累到一定程度,达到了显著的水平,客观上 造成了爆发消息被检出的时间已经接近或滞后于消息爆发实际发生的时间,时效性不高; 基于自激励点过程的方法,以消息个体为对象,将其转发时间序列建模成自激励的点过程, 旨在刻画消息传播中的"富者愈富"、"时间衰减"等序列特征,与基于内容特征的方法相比, 该方法时效性高,但是,基于自激励点过程的方法,仍存在以下缺点:第一,其特征是人为定 义的,对数据的依赖很强,如对于"富者愈富"现象的建模,有的采用线性函数,有的采用非 线性函数,对于"时间衰减"效应,有的采用log-normal分布,有的采用power law分布;第 二,该模型在预测的时候只利用了待预测消息的观测序列,没有用到其它消息的历史传播 信息,导致预测的准确性不高。综上,目前还缺乏一种预测及时,人为干预少且预测效果好 的方法。
[0004] 发明专利"一种微博突发事件检测方法",包括步骤:降维处理:基于LSH算法对微 博数据流中的词汇进行映射处理;创建B-Sketch模型:创建微博数据流中的B-Sketch数据; 推测突发事件:根据B-Sketch数据计算微博数据流中的事件加速率a和事件中词的分布向 量P,根据事件加速率a判断事件是否为突发事件。由于通过LSH算法将所有词汇映射到低维 空间,降低了计算的复杂度,并基于B-Sketch模型推测隐含的突发事件,使得能够快速有效 的实时处理微博数据流,及早地检测出突发事件。该发明专利通过跟踪微博中词特征随时 间的动态变化趋势发现突发事件,而本发明利用的是信息传播的转发时间序列,利用循环 神经网络来进行序列特征的识别和分类,与上述发明专利有本质区别。

【发明内容】

[0005] 针对现有技术的不足,本发明提出一种基于循环神经网络的社交网络消息爆发检 测方法及系统,循环神经网络包含LSTM(Long Short-Term Memory)、GRU(Gated Recurrent Unit)等类型的网络。
[0006] 本发明提出一种基于循环神经网络的社交网络消息爆发检测方法,包括:
[0007] 步骤1,获取社交网络中用户发布与转发的历史消息,对所述历史消息进行预处 理,获取历史转发时间序列特征;
[0008] 步骤2,将所述历史消息与所述历史转发时间序列特征输入循环神经网络训练,并 生成预测模型;
[0009] 步骤3,实时采集用户发布与转发的消息,根据所述消息,生成转发时间序列特征, 将所述转发时间序列特征输入到所述预测模型,生成特征表达,将所述特征表达输入到全 连接神经网络进行分类,结果以softmax方式输出,以完成社交网络消息爆发检测。
[0010] 所述步骤1中通过所述历史消息中的转发标识构建所述消息的所述历史转发时间 序列特征,然后基于循环神经网络进行消息转发序列特征的抽取。
[0011 ]通过7/@用户名"标识或"RT0用户名"标识获取所述历史转发时间序列特征。
[0012]根据社交网络中API从社交网络中获取所述历史消息或所述消息。
[0013] 所述步骤1中预处理包括对所述历史消息进行垃圾过滤,保留存在内容、存在用户 转发的历史消息。
[0014] 本发明还提出一种基于循环神经网络的社交网络消息爆发检测系统,包括:
[0015] 获取历史转发时间序列模块,用于获取社交网络中用户发布与转发的历史消息, 对所述历史消息进行预处理,获取历史转发时间序列特征;
[0016] 生成预测模型模块,用于将所述历史消息与所述历史转发时间序列特征输入循环 神经网络训练,并生成预测模型;
[0017] 网络消息爆发检测模块,用于实时采集用户发布与转发的消息,根据所述消息,生 成转发时间序列特征,将所述转发时间序列特征输入到所述预测模型,生成特征表达,将所 述特征表达输入到全连接神经网络进行分类,结果以softmax方式输出,以完成社交网络消 息爆发检测。
[0018] 所述获取历史转发时间序列模块中通过所述历史消息中的转发标识构建所述消 息的所述历史转发时间序列特征,然后基于循环神经网络进行消息转发序列特征的抽取。
[0019] 通过7/@用户名"标识或"RT0用户名"标识获取所述历史转发时间序列特征。
[0020] 根据社交网络中API从社交网络中获取所述历史消息或所述消息。
[0021] 所述获取历史转发时间序列模块中预处理包括对所述历史消息进行垃圾过滤,保 留存在内容、存在用户转发的历史消息。
[0022] 由以上方案可知,本发明的优点在于:
[0023] 本发明具有以下优势:(1)避免了人为定义特征的随意性和人工抽取特征的烦琐 过程,是一种完全数据驱动的措施;(2)打破了特征之间的独立性假设,自动学习消息内容 转发过程中的长时间序列特征,具有更强的表达能力。
【附图说明】
[0024]图1为整个系统的流程示意图;
[0025] 图2为神经网络架构图;
[0026] 图3为LSTM单元图;
[0027] 图4为三种类型的pooling操作;
[0028]图5为消息的转发时间序列图。
【具体实施方式】
[0029] 针对现有技术不足,本文提出了一种基于循环神经网络的社交网络消息爆发检测 方法及系统,该方法利用循环神经网络擅长处理和预测时间序列中间隔和延迟非常长的重 要特征的特点,以单个消息的初始转发时间序列作为输入,建模消息转发过程中的长时间 依赖关系,自动学习如"富者愈富"、"时间衰减"等消息的转发序列特征。
[0030] 具体的,本发明方法包括以下步骤,如图1所示:
[0031 ]步骤1:社交网络数据采集。根据社交网络的特点采集相应的内容和时间信息,对 于微博和Twi tter来讲,指的是用户发布和转发的历史消息以及相应的时刻;
[0032]步骤2:数据预处理。对数据进行垃圾过滤,近似重复消息的归集,利用消息中的转 发标识构建消息的历史转发时间序列。对数据进行垃圾过滤,去除没有内容、没有转发数的 微博,利用Simhash等方法,对微博消息中近似重复的消息进行归集,对每一条消息,利用消 息中的转发标识构建消息的转发时间序列,对每条消息的爆发和非爆发属性,按照任务的 需求进行标注,如在一周之内转发次数超过1〇〇〇的为爆发消息,否则为非爆发消息。
[0033]步骤3:循环神经网络训练。将预处理得到的样本分为训练集、验证集和测试集。设 共有η条消息(pi,P2,…,pn),y = (y 1,y2,…,yn)表示消息真实的类别,j) = ·. ?)表 示预测的消息类别J是循环网络需要学习的预测函数,优化的目标是最小化交 叉熵函数L(0),如式(1)所示:
[0034]
[0035] 其中Θ为需要优化的参数,表示循环神经网络上边的权重等,?为函数的输入,代 表第j条消息的转发时间序列,神经网络训练的目标是找到一组参数Θ的取值,使得L(0)在 训练集合上最小。
[0036] 神经网络的结构如图2所示,网络的参数为U,W",W°,v,其中Xt表示循环网络在步骤 t时的输入,其值是消息第t次转发的时刻,接着,Xt的值被映射成一个长度固定的向量vt,注 意,每个相同的xt值对应相同的vt,然后vt输入到循环网络的隐藏层进行计算,每个时间步 骤t的隐层输出为st,在计算完所有的隐层输出之后,对s〇,si,...,s t做聚合操作(pooling) 得到向量P,如图4所示,poo ling分为3种,平均聚合(average pooling),最大聚合(max pooling)和最后聚合(last pooling),average pooling操作对所有输入向量的每一维取 平均值,max pooling操作对所有输入向量的每一维取最大值,last pooling操作对所有输 入向量取最后一个时间步骤的向量,在完成pooling操作后,利用全连接的网络进行分类, 为了描述的方便,预先定义一些符号,对于网络中的每一个节点j,〈i,j>表示从节点i指向j 的有向边,wij为边<i,j>的权重,bi表示节点i的输出,aj表示节点j所有输入值的加权和,σ 为s i gmo i d激活函数,U为输入向量到RNN隐层的参数矩阵,为RNN隐层之间的参数矩阵,W° 表示输出层的参数矩阵。其训练分为前向计算和后向传播两个过程:
[0037] 1、前向计算过程如下:
[0038] vt= indexing(xt) (2)
[0039] st = 〇(Uvt+ffrst-i) (3)
[0040] P = pooling(so, si,…,st) (4)
[0041]其中indexing为索引操作,pooling为聚合操作,对于全连接网络中的某个节点j, 设其输入为式(5)所示:
[0042]
[0043 ]其中Pi为连接节点j的输入节点的输出值,K为连接节点j的输入节点数,bj为节点j 的输出,为式(6)所不:
[0044] bj = 〇(aj) (6)
[0045] 由于爆发检测是二分类问题,所以神经网络最外层的节点个数为1,设为节点〇,对 于最外层的节点,其输入为a。,输出为消息爆发的概率,贝1J:
[0046]
[0047]
[0048]
[0049] 2、训练过程如下:
[0050] 对于某个训练样本,其损失函数为式(10):
[0053] 其中,8表示对函数的某个变量求偏导数,如S£(X,夕)/涉表示对函数1〇,夕)中 的变量多求偏导数,根据链式法则:
[0051]
[0052]
[0054]
[0055] 对于网络中的任一节点j,定义:
[0056] J
[0057]对于隐藏层比的节点j,设其连接的比+1层节点个数为K,则:
[0058]
[0059] 对于倒数第一层之前的隐藏层节点,可以通过式(15)递归的计算:
[0060]
[0061] 所以,对于全连接网络的权重W°的偏导,其计算式子为:
[0062]
[0063] 其中 < 表示权重矩阵W°中的一个元素,下同。设poo ling的方式采用average pooling的方式,贝lj:
[0064]
[0065] 其中,St, i表示RNN网络在时间步骤t时刻输出的向量的第i维,RNN的训练采用BPTT 的方式,定义:
[0066]
[0067]其参数W^V的偏导计算公式为:
[0068]
[0069]
[0070]
[0071 ] 循环神经网络训练采用标准的BPTT(Back Propagation Through Time)后向传播 算法。
[0072] 以LSTM型RNN网络为例,LSTM神经网络就是在图2的基础上,将循环网络隐藏层的 单元替换成图3所示的LSTM单元,具体的训练方式没有本质的区别,LSTM单元由3个控制门 (gate)和一个内部存储单元(cell)组成,gate是一种让信息选择性通过的机制,全0表示不 让任何信息通过,全1表示让所有信息通过,cell则起到了保持和传递信息的作用。三个控 制门依次是输入门(input gate,it),遗忘门(forget gate,ft)和输出门(output gate, 〇t),g,h为tanh( ·)激活函数,σ为sigmoid( ·)激活函数,xt,ct和st分别是LSTM单元步骤t 时的输入向量,内部状态向量和输出向量,zt就是标准RNN的输出。
[0073] 步骤4:实时数据采集。直接利用社交网络中提供的API从社交网络中实时抓取用 户发布或转发的消息。
[0074] 步骤5:消息转发时间序列生成。对于某条转发的消息,根据其中的转发标志、时间 信息,构建消息的转发时间序列。如微博中利用7/@用户名"标识,Twitter中利用"RT0用户 名"标识等抽取出消息的转发时间序列。如图5所示,展示了抽取的某条消息的转发时间序 列。
[0075]步骤6:转发序列的特征表达学习。利用步骤3中训练生成的LSTM神经网络作为预 测模型,步骤5中生成的消息转发时间序列作为输入,按照式(2)(3)(4)生成消息转发序列 的特征表达P。
[0076] 步骤7:消息爆发预测。利用步骤6得到的消息转发序列的特征表达P,输入全连接 神经网络进行分类,结果以softmax方式输出,按照式(5)的计算结果预测消息未来是否爆 发。
[0077] 本发明还提出一种基于循环神经网络的社交网络消息爆发检测系统,包括:
[0078] 获取历史转发时间序列模块,用于获取社交网络中用户发布与转发的历史消息, 对所述历史消息进行预处理,获取历史转发时间序列特征;
[0079] 生成预测模型模块,用于将所述历史消息与所述历史转发时间序列特征输入循环 神经网络训练,并生成预测模型;
[0080] 网络消息爆发检测模块,用于实时采集用户发布与转发的消息,根据所述消息,生 成转发时间序列特征,将所述转发时间序列特征输入到所述预测模型,生成特征表达,将所 述特征表达输入到全连接神经网络进行分类,结果以softmax方式输出,其中softmax输出 是将一组数转换为总和为1,值在〇到1之间的一种输出方式,具体来说,设z是K维的向量,则 其softmax输出为式(22):
[0081]
[0082]其中,e为自然常数,〇(z)j为softmax第j维的输出,则取〇(z)j最大的值作为待预测 消息的最终类别。作为消息爆发预测任务,K的取值为2。
[0083]所述获取历史转发时间序列模块中通过所述历史消息中的转发标识构建所述消 息的所述历史转发时间序列特征,然后基于循环神经网络进行消息转发序列特征的抽取。
[0084] 通过7/@用户名"标识或"RT0用户名"标识获取所述历史转发时间序列特征。
[0085] 根据社交网络中API从社交网络中获取所述历史消息或所述消息。
[0086] 所述获取历史转发时间序列模块中预处理包括对所述历史消息进行垃圾过滤,保 留存在内容、存在用户转发的历史消息。
【主权项】
1. 一种基于循环神经网络的社交网络消息爆发检测方法,其特征在于,包括: 步骤1,获取社交网络中用户发布与转发的历史消息,对所述历史消息进行预处理,获 取历史转发时间序列特征; 步骤2,将所述历史消息与所述历史转发时间序列特征输入循环神经网络训练,并生成 预测模型; 步骤3,实时采集用户发布与转发的消息,根据所述消息,生成转发时间序列特征,将所 述转发时间序列特征输入到所述预测模型,生成特征表达,将所述特征表达输入到全连接 神经网络进行分类,结果以softmax方式输出,以完成社交网络消息爆发检测。2. 如权利要求1所述的基于循环神经网络的社交网络消息爆发检测方法,其特征在于, 所述步骤1中通过所述历史消息中的转发标识构建所述消息的所述历史转发时间序列特 征,然后基于循环神经网络进行消息转发序列特征的抽取。3. 如权利要求1所述的基于循环神经网络的社交网络消息爆发检测方法,其特征在于, 通过7/@用户名"标识或"RT0用户名"标识获取所述历史转发时间序列特征。4. 如权利要求1所述的基于循环神经网络的社交网络消息爆发检测方法,其特征在于, 根据社交网络中API从社交网络中获取所述历史消息或所述消息。5. 如权利要求1所述的基于循环神经网络的社交网络消息爆发检测方法,其特征在于, 所述步骤1中预处理包括对所述历史消息进行垃圾过滤,保留存在内容、存在用户转发的历 史消息。6. -种基于循环神经网络的社交网络消息爆发检测系统,其特征在于,包括: 获取历史转发时间序列模块,用于获取社交网络中用户发布与转发的历史消息,对所 述历史消息进行预处理,获取历史转发时间序列特征; 生成预测模型模块,用于将所述历史消息与所述历史转发时间序列特征输入循环神经 网络训练,并生成预测模型; 网络消息爆发检测模块,用于实时采集用户发布与转发的消息,根据所述消息,生成转 发时间序列特征,将所述转发时间序列特征输入到所述预测模型,生成特征表达,将所述特 征表达输入到全连接神经网络进行分类,结果以softmax方式输出,以完成社交网络消息爆 发检测。7. 如权利要求6所述的基于循环神经网络的社交网络消息爆发检测系统,其特征在于, 所述获取历史转发时间序列模块中通过所述历史消息中的转发标识构建所述消息的所述 历史转发时间序列特征,然后基于循环神经网络进行消息转发序列特征的抽取。8. 如权利要求6所述的基于循环神经网络的社交网络消息爆发检测系统,其特征在于, 通过7/@用户名"标识或"RT0用户名"标识获取所述历史转发时间序列特征。9. 如权利要求6所述的基于循环神经网络的社交网络消息爆发检测系统,其特征在于, 根据社交网络中API从社交网络中获取所述历史消息或所述消息。10. 如权利要求6所述的基于循环神经网络的社交网络消息爆发检测方法,其特征在 于,所述获取历史转发时间序列模块中预处理包括对所述历史消息进行垃圾过滤,保留存 在内容、存在用户转发的历史消息。
【文档编号】G06N3/04GK105975504SQ201610273082
【公开日】2016年9月28日
【申请日】2016年4月28日
【发明人】笱程成, 程学旗, 杜攀, 刘悦, 沈华伟
【申请人】中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1