深度学习不用去手工提取特征,可是现有深度模型没有在传播预测任务中使用社区结构。因此提出一个CS-RNN框架,把社区在传播中的影响考虑在内,作传播预测。算法
Network:\(G=(V,E)\),\(V\)是顶点表明用户,\(E\)是边表明用户间关系;网络
Cascade:\(S=\{\left(t_{i}, v_{i}\right) | v_{i} \in V, t_{i} \in[0,+\infty), t_i \le t_{i+1}, i=1,2,...,N \}\),表明节点\(v_i\)在\(t_i\)时刻分享了消息;框架
Community:\(G(V',E')\)表明内部链接紧密的子图。假设图\(G=(V,E)\)能够被分为q个子部分\(\mathcal{L} = \left\{L_{1}, L_{2} \ldots L_{q}\right\}\),一个用户 \(v_i\) 只能属于一个社区,且它的社区标签并定义为\(c_{v_i} \in X_{\mathcal{X}}\);dom
问题描述:观察以前的传播过程,给定k个时间节点对(Cascade)表示为\(S_{\le k}\),在传播级联中进行序列建模,来预测下一个激活节点的几率,即\(p(v_{k+1}|S_{\le k})\),还要预测下一个激活节点的社区标签\(c_{v_{k+1}}\),即\(P{c_{v_{k+1}}|S_{\le k}}\),还要预测节点激活的确切时间。函数
基本原理:信息传播到下一个节点不只跟活跃节点的历史序列状态有关,还跟信息传播过的社区有关。学习
模型框架图以下,带标号和有颜色背景的无边缘线图形,是我为了更好的描述框架而加上的:优化
输入层:spa
①图中标记1的部分,把节点\(v_k\)转换成一个低维的向量\(\mathbf{v}_k \in R^{d_v}\),\(\mathbf{v}_{k}=\mathbf{W}_{e m v}^{T} v_{k}\);orm
②图中标记2的部分,把社区标签\(c_{v_k}\)也初始化转换为低维向量\(\mathbf{c}_{v_k} \in R^{d_c}\),\(\mathbf{c}_{v_{k}}=\mathbf{W}_{e m c}^{T} c_{v_{k}}\);
隐藏层:
①图中标记3的部分,这里是把\(\mathbf{v}_1\)到\(\mathbf{v}_k\)用一个RNN串联起来,表示每一个节点的初始隐含表示,由以前获得的表示向量\(\mathbf{v}_k\)和传播过程当中上一个节点的隐含表示所决定:\(\mathbf{h}_{k}^{(0)}=R N N\left(\mathbf{v}_{k}, \mathbf{h}_{k-1}^{(0)}\right)\)。其中,\(h_0^{(0)}\)由全0的向量初始化,RNN层中可使用GRU和LSTM。这里暂时把\(\mathbf{h}_{k}^{(0)}\)和上一步获得的\(\mathbf{c}_{v_{k}}\)拼接起来,组成\(\mathbf{h}_{k}^{(1)}= \mathbf{h}_{k}^{(0)} \oplus \mathbf{c}_{v_{k}}\),备用。
②图中标记4的部分,把传播级联中的时间t,也按照序列顺序用RNN串联,获得\(\mathbf{h}_{k}^{(2)}=R N N\left(\mathbf{t}_{k}, \mathbf{h}_{k-1}^{(2)}\right)\)。
最后,把上述的两个(实际上是三个\(\mathbf{h}_{k}^{(1)}\)由两部分组成)拼接起来,组成一个向量(图中三色向量图形),而后经过一个线性变换层(FC层)和一个非线性变换(激活层)【图中Linear and Activation Layer】,获得结果:\(\mathbf{h}_{k}^{\mathrm{cas}}=\delta\left(\mathbf{W}_{h}^{T}\left(\mathbf{h}_{k}^{(1)} \oplus \mathbf{h}_{k}^{(2)}\right)+\mathbf{b}_{h}\right)\)。
社区结构标签产生:(图中右上部分)
由上面获得的\(\mathbf{h}_{k}^{\mathrm{cas}}\),在经过一个线性变换层和激活层,目的是为了把\(\mathbf{h}_{k}^{\mathrm{cas}}\)映射到和社区结构标签嵌入向量一样的空间中去,获得\(\mathbf{h}_{k}^{\mathrm{com}}=\delta\left(\mathbf{W}_{\mathrm{com}}^{T} \mathbf{h}_{k}^{\mathrm{cas}}+\mathbf{b}_{\mathrm{com}}\right)\),而后把\(\mathbf{h}_{k}^{\mathrm{com}}\)和全部社区标签向量作余弦类似度,在用一个softmax层归一化全部类似度,获得(预测)下一个激活节点的社区标签,\(\mathbf{p}_{k}^{c o m}=\operatorname{sigmoid}\left(\mathbf{h}_{k}^{c o m} \mathbf{W}_{e m c}^{T}\right)\)。
下一个激活节点的产生:(图中右上部分)
咱们能够看到,图中的右上部分有一个相似残差神经网络(大雾)的链接,实际上是做者又作了一个下一个激活节点的预测,具体以下:
经过模型左侧获得的\(h_k^{cas}\),和刚刚预测的社区结构标签 $ \mathbf{p}_{k}^{\text {com}}$,做者把这两个向量拼接起来,再送入线性变换层和激活层,获得 \(\mathbf{h}_{k}^{\text {node }}=\delta\left(\mathbf{W}_{\text {node }}^{T}\left(\mathbf{h}_{k}^{\text {cas }} \oplus \mathbf{p}_{k}^{\text {com }}\right)+\mathbf{b}_{\text {node }}\right)\),而后如法炮制,在计算隐向量\(h_k^{node}\)和全部节点的嵌入表示之间的余弦类似度,再用softmax层归一化,获得每一个节点的几率表示,从而预测下一个激活结点是哪一个节点。
下一个激活时间预测:(图中左上部分)
利用最开始获得的传播级联第K步的表示\(h_k^{cas}\),还能够预测传播过程的第K+1步和第k步之间的时间间隔,即\(t_{k+1}-t_{k}=\mathbf{W}_{t}^{T} \mathbf{h}_{k}^{c a s}+\mathbf{b}_{t}\)。
哇,这是一口气作了三个预测,经过传播级联第K步的表示\(h_k^{cas}\),文中作了下一个激活节点的预测,下一激活节点所在的社区标签的预测,还作了时间间隔的预测,感受文章要作multi-task了(是否是作multi-task会有收获呢?),然而没有,文中的损失函数:
\[ \operatorname{Loss}(Q)=\sum_{f=1}^{F} \sum_{i=1}^{N_{f}-1} \log p\left(\left(t_{k+1}, v_{k+1}, c_{k+1}\right) | c_{v_{k}}, S_{\leq k}\right) \]
利用基于时间的反向传播(backpropagation through time,BPTT)来训练模型,最后用SGD,mini-batch和Adam优化。为了加快速度,在训练过程当中使用正交初始化方法。
利用合成数据和真实数据(Digg数据集)。主要在合成数据集上作了分析,对于真实数据集分析简短。
设备:Tesla V100 32G GPU, Intel Xeon E5 CPU,512G内存。
合成数据生成方法:(不太懂,以后用到生成数据能够参考这里,关键是传播都可以生成!)
网络结构和传播过程都是生成的。
网络结构生成,两种方法:①kronecker graph model;②LFR bechmark,更像真实网络。产生两种网络结构①random network(RD);②层级社区网络(HC)。
传播过程生成,对于每一个节点,按照必定的时间分布来设置被激活用户的激活时间,参考其余文献,也设置了两种分布,①混合指数分布(Exp);②混合瑞利分布(Ray);
对比算法:
CYANRNN(AAAI’17):使用attention-based RNN,利用传播过程当中的交叉依赖性(什么是交叉依赖性?)。
RNNPP(AAAI’17):用RNN的视角处理point process,建模背景和历史做用。能够预测event时间,主要类型的event和子类型的event。做者在论文中把社区结构当作main-types,把node当作sub-type。
RMTPP(SIGKDD‘16):将时间点过程的强度函数视为历史的非线性函数,利用RNN自动学习事件历史影响的表示。
S-RNN,CS-RNN,CS-GRU,CS-LSTM:分别是去掉社区结构的方法,原始方法,使用GRU的方法和使用LSTM的方法。前两个是为了对比结果证实,社区结构有用的,后面两个是对比GRU好仍是LSTM好。
结果仍是比较中规中矩的,提出的方法确定是最优的,社区结构是有用的。
瑞利分布(Rayleigh Distribution):当一个随机二维向量的两个份量呈独立的、有着相同的方差的正态分布时,这个向量的模呈瑞利分布。
[1]. Liu, Chaochao, et al. “Community Structure Enhanced Cascade Prediction.” Neurocomputing, vol. 359, Elsevier B.V., 2019, pp. 276–84, doi:10.1016/j.neucom.2019.05.069.