论文地址:Popularity Prediction on Social Platforms with Coupled Graph Neural Networks
作者提出了一种耦合图神经网络(Coupled Graph Neural Network, Coupled GNN)模型来进行在线内容流行度的预测,该模型包含两个GNN,即State GNN和Influence GNN。其中,State GNN通过用户的激活状态来建模人际影响,而Influence GNN通过来自邻居的人际影响来建模用户的激活状态。
假设有 M M M条信息,信息 m m m 的观察级联被记录为观察时间窗口 T T T内的早期采用者集合,即 C T m = { u 1 , u 2 , . . . , u n T m } C_T^m = \{u_1,u_2,...,u_{n^m_T}\} CTm={u1,u2,...,unTm},其中 n T m n_T^m nTm表示信息 m m m在观察时间窗口 T T T内采用或活跃的用户总数。例如下图中 C T m = { A , B } C_T^m = \{A,B\} CTm={A,B}。
给定观察级联 C T m C_T^m CTm和底层网络 G = ( V , E ) \mathcal{G}=(\mathcal{V},\mathcal{E}) G=(V,E),其中 V \mathcal{V} V为用户集, E ⊆ V × V \mathcal{E} \subseteq \mathcal{V} \times \mathcal{V} E⊆V×V 是所有用户之间的关系集,本文的目标为预测信息 m m m最终的流行度,例如 n ∞ m n_{\infin}^m n∞m。
Coupled GNN的结构参见图1,可以看出State GNN和Influence GNN中结点的消息聚合和更新是相互耦合的,其中State GNN中传递的消息为人际影响,而Influence GNN中传递的消息为用户状态。
对于目标用户 v ∉ C T m v \notin C_T^m v∈/CTm,由于他会被其邻居 N ( v ) \mathcal{N}(v) N(v)中活跃用户所影响,作者使用一个GNN来建模用户的激活状态。State GNN的机制如图3所示,其中 r u → \overrightarrow{r_u} ru表示的是用户 u u u的影响力表示,可以看出某个用户 v v v的激活状态需要受自身和邻居的影响力和自身激活状态的影响。
State GNN的数学形式如下所示:
InfluGate ( r u ( k ) , r v ( k ) ) = β ( k ) [ W ( k ) r u ( k ) ∣ ∣ W ( k ) r v ( k ) ] a v ( k ) = ∑ u ∈ N ( v ) InfluGate ( r u ( k ) , r v ( k ) ) s u ( k ) + p v s v ( k + 1 ) = { 1 , v ∈ C T m σ ( μ s ( k ) s v ( k ) + μ a ( k ) a v ( k ) ) , v ∉ C T m \text{InfluGate}(r_u^{(k)},r_v^{(k)}) = \beta^{(k)}[W^{(k)}r_u^{(k)}\ ||\ W^{(k)}r_v^{(k)}] \\ a_v^{(k)} = \sum_{u \in \mathcal{N}(v)}{\text{InfluGate}(r_u^{(k)},r_v^{(k)})s_u^{(k)} + p_v} \\ s_v^{(k+1)} = \begin{cases} 1,\ v\in C_T^m \\ \sigma(\mu_s^{(k)}s_v^{(k)} + \mu_a^{(k)}a_v^{(k)}),\ v \notin C_T^m \end{cases} InfluGate(ru(k),rv(k))=β(k)[W(k)ru(k) ∣∣ W(k)rv(k)]av(k)=u∈N(v)∑InfluGate(ru(k),rv(k))su(k)+pvsv(k+1)={1, v∈CTmσ(μs(k)sv(k)+μa(k)av(k)), v∈/CTm
其中 r u ( k ) ∈ R h ( k ) r_u^{(k)} \in \mathbb{R}^{h^{(k)}} ru(k)∈Rh(k)表示第 k k k层的影响力表示, W ( k ) ∈ R h ( k + 1 ) × h ( k ) W^{(k)} \in \mathbb{R}^{h^{(k+1)}\times h^{(k)}} W(k)∈Rh(k+1)×h(k)是将影响力表示从 h ( k ) h^{(k)} h(k)维转换为 h ( k + 1 ) h^{(k+1)} h(k+1)维的权重矩阵, β ( k ) ∈ R 2 h ( k + 1 ) \beta^(k) \in \mathbb{R}^{2h^{(k+1)}} β(k)∈R2h(k+1)是一个权重向量, s v ( k ) s_v^{(k)} sv(k)表示用户 v v v上一个激活状态, μ s ( k ) , μ a ( k ) ∈ R \mu_s^{(k)},\mu_a^{(k)} \in \mathbb{R} μs(k),μa(k)∈R表示权重参数, σ \sigma σ表示非线性激活, p v ∈ R p_v \in \mathbb{R} pv∈R是一个激活参数,它反映的是用户不被跟随关系影响但被激活的概率。
公式中 a v ( k ) a_v^{(k)} av(k)的计算公式表示的是State GNN的消息聚合,而 s v ( k + 1 ) s_v^{(k + 1)} sv(k+1)表示的是结点的消息更新。
注:
Influence GNN用来建模社交网络中的人际影响的扩散。与State GNN类似,每个用户的影响力表示受自身激活状态和邻居激活状态以及自身影响力的影响。Influence GNN的机制如图4所示,其中 s u s_u su表示的是用户 u u u的激活状态。
其用公式可以表示为:
b v ( k ) = ∑ u ∈ N ( v ) StateGate ( s u ( k ) ) α u v ( k ) W ( k ) r u ( k ) e u v ( k ) = γ ( k ) [ W ( k ) r u ( k ) ∣ ∣ W ( k ) r v ( k ) ] α u v = softmax ( e u v ( k ) ) = exp ( e u v ( k ) ) ∑ z ∈ N ( v ) exp ( e z v ( k ) ) r v ( k + 1 ) = σ ( ζ r ( k ) W ( k ) r v ( k ) + ζ b ( k ) b v ( k ) ) b_v^{(k)} = \sum_{u \in \mathcal{N}(v)}{\text{StateGate}(s_u^{(k)})\alpha_{uv}^{(k)}W^{(k)}r_u^{(k)}} \\ e_{uv}^{(k)} = \gamma^{(k)}[W^{(k)}r_u^{(k)}\ ||\ W^{(k)}r_v^{(k)}] \\ \alpha_{uv} = \text{softmax}(e_{uv}^{(k)}) = \frac{\text{exp}(e_{uv}^{(k)})}{\sum_{z \in \mathcal{N}(v)}\text{exp}(e_{zv}^{(k)})} \\ r_v^{(k+1)} = \sigma(\zeta_r^{(k)}W^{(k)}r_v^{(k)} + \zeta_b^{(k)}b_v^{(k)}) bv(k)=u∈N(v)∑StateGate(su(k))αuv(k)W(k)ru(k)euv(k)=γ(k)[W(k)ru(k) ∣∣ W(k)rv(k)]αuv=softmax(euv(k))=∑z∈N(v)exp(ezv(k))exp(euv(k))rv(k+1)=σ(ζr(k)W(k)rv(k)+ζb(k)bv(k))
其中 W ( k ) ∈ R h ( k + 1 ) × h ( k ) W^{(k)} \in \mathbb{R}^{h^{(k+1)}\times h^{(k)}} W(k)∈Rh(k+1)×h(k)是一个权重矩阵,用来将影响力表示从 h ( k ) h^{(k)} h(k)到 h ( k + 1 ) h^{(k+1)} h(k+1), α u v ( k ) \alpha_{uv}^{(k)} αuv(k)为用户 u u u到用户 v v v的注意力权重, γ ( k ) ∈ R 2 h ( k ) \gamma^{(k)} \in \mathbb{R}^{2h^{(k)}} γ(k)∈R2h(k)也是一个权重向量, ζ r ( k ) , ζ b ( k ) ∈ R \zeta_r^{(k)},\zeta_b^{(k)} \in \mathbb{R} ζr(k),ζb(k)∈R是权重参数。
注:用户 v v v的初始化影响力 r v ( 0 ) r_v^{(0)} rv(0)由结点嵌入和结点特征构成。
经过 K K K层GNN后的每个用户输出的激活概率分布为 s v ( K ) ∈ [ 0 , 1 ] s_v^{(K)} \in [0,1] sv(K)∈[0,1],而流行度则通过求和池化机制(sum pooling mechanism)来计算:
n ^ ∞ m = ∑ μ ∈ V s u ( K ) \hat{n}_{\infin}^m = \sum_{\mu \in \mathcal{V}}{s_u^{(K)}} n^∞m=μ∈V∑su(K)
在优化的过程中,作者使用的损失函数为 L L L:
L = L M R S E + L R e g L M R S E = 1 M ∑ m = 1 M ( n ^ ∞ m − n ∞ m n ∞ m ) 2 L = η ∑ p ∈ P ∣ ∣ P ∣ ∣ 2 + λ L u s e r L = L_{MRSE} + L_{Reg} \\ L_{MRSE} = \frac{1}{M}\sum_{m=1}^{M}(\frac{\hat{n}_{\infin}^m - n_{\infin}^m}{n_{\infin}^m})^2 \\ L = \eta \sum_{p \in \mathcal{P}} ||P||_2 + \lambda L_{user} L=LMRSE+LRegLMRSE=M1m=1∑M(n∞mn^∞m−n∞m)2L=ηp∈P∑∣∣P∣∣2+λLuser
其中 P \mathcal{P} P为参数集合, η \eta η和 λ \lambda λ为超级参数, L u s e r L_{user} Luser为用户级别的交叉熵,例如:
L u s e r = 1 M ∑ m = 1 M 1 V ∑ v ∈ V ( s v ∞ log s v ( K ) + ( 1 − s v ∞ ) log s v ( K ) ) L_{user}=\frac{1}{M}\sum_{m=1}^{M}{\frac{1}{\mathcal{V}} \sum_{v \in {\mathcal{V}}}(s_v^{\infin}\text{log}s_v^{(K)} + (1-s_v^{\infin})\text{log}s_v^{(K)})} Luser=M1m=1∑MV1v∈V∑(sv∞logsv(K)+(1−sv∞)logsv(K))
其中 s v ∞ s_v^{\infin} sv∞为每个用户真实的最终激活状态。
作者使用了两个数据集,一个人工生成的数据集(Synthetic Dataset)和新浪微博数据集(Sina Weibo Dataset)。其中Synthectic Dataset对应的网络结构包含了1086个结点和4038条边,至于信息的级联传播,作者是先采样种子集,然后用扩散算法(IC Model)来获取信息扩展后各结点的状态,最终总共有27218条信息的扩散结果,观察时间窗口为2个时间步。
而新浪微博数据集则是真实世界中收集的,该数据集的网络为一个跟随网络(following network),作者使用的网络包含23681个用户和1802146条边,其中有3228条信息的扩散结果,作者设置了3个不同的观察时间窗口,即1小时、2小时和3小时。
作者使用了MRSE(Mean Relative Square Error)、mRSE(Median Relative Square Error)、MAPE(Mean Absolute Percentage Error )和WroPerc(Wrong Percentage Error)四个指标来评估算法的性能。
注:这些指标值越小模型的性能越好。
首先作者展示了CoupledGNN一众baseline的对比结果,结果参见表1和表2,可以看出CoupledGNN的性能处于SOTA地位。
为了验证耦合GNN模型的有效性,作者单独使用GCN和GAT来进行激活状态和影响力的传递、更新与聚合,结果展示在表3中,从表3可以看出,仅使用单独的GNN的效果的却比不上使用耦合GNN的,由此验证了耦合设计是有用的。
若有不对的地方请批评指正!!!