时序知识图谱论文阅读(2022)

根据阅读进度,时不时会更新

[toc]

EvoKG

EvoKG: Jointly Modeling Event Time and Network Structure for Reasoning over Temporal Knowledge Graphs, WSDM2022

RGCN+时间建模

定义TKG问题: \(p(G)=\prod_t p(G_t\vert G_{<t})=\prod_t \prod_{(s,r,o,t)\in G_t}p(s,r,o,t\vert G_{<t})\)

由此可以将问题分为两个部分,即下式的等号右边的两项: \(p(s,r,o,t\vert G_{<t})=p(t\vert s,r,o,G_{<t})\cdot p(s,r,o\vert G_{<t})\)

建模事件时间

使用时间点过程TPP(TPP具体可见此)对时间建模\(p^*_e(t)=p(t\vert s,r,o,G_{<t})\)。考虑两个因素,一个是实体\(s\)和\(o\)最后一次交互后过去的时间\(P_{EO}^{*,e}(t)=p(\tau_{eo}\vert s,r,o,G_{<t})\)和实体\(s\)或\(o\)与任意其他实体交互后过去的时间(取两者较小的值)\(P_{MIN}^{*,e}(t)=p(\tau_{min}\vert s,r,o,G_{<t}), \tau_{min}=\min(\tau_{(s)},\tau_{(o)})\)。简单来说,\(\tau_{eo}\)表示两个实体交互时间有多近,\(\tau_{min}\)考虑两个实体历史中最近的事件是何时发生的。

再此基础上得到: \(p_e^*(t)=\alpha \cdot P_{EO}^{*,e}(t)+(1-\alpha)\cdot P_{MIN}^{*,e}(t)\)

考虑时间均是正值,使用一种混合的log-normal分布,于是有: \(p(\tau\vert s,r,o,G_{<t})=p(\tau\vert\mathbf w^*_e,\mathbf \mu_e^*, \sigma_e^*)\\ =\sum_{k=1}^K \frac{(w_e^*)_k}{\tau(\sigma_e^*)_k\sqrt{2\pi}}\exp(-\frac{(\log \tau - (\mu_e^*)_k)^2}{2(\sigma_e^*)_k^2})\\ w_e^*={\rm softmax}({\rm MLP}(c_e^*)), \mu_e^* = {\rm MLP}(c_e^*),\sigma_e^*=\exp({\rm MLP}(c_e^*))\\ c_e^* = [t_s^*\Vert t_r^* \Vert t_o^*]\)

使用RGCN对实体对应的时间建模,此处对RGCN有一个改动,使用时间相关的值\(v_{i,j}=\log \tau_{i,j}\)进行归一化: \(t_i^{(l+1,t)}=\sigma(\sum_{r\in \mathcal R}\sum_{j\in \mathcal N_t^{(i,r)}} \frac{1}{v_{i,j}}\cdot W_r^lt_j^{(l,t)}+W_0^lt_i^{(l,t)})\)

使用RNN对每个快照上的实体对应时间和关系对应时间分别聚合建模(对于关系对应的时间向量取所有相关实体的平均值): \(t_i^{(*,t)}=RNN_{te}(t_i^{(L.t)},t_i^{(*,t-1)})\\ t_r^{(*,t)}=RNN_{tr}(t_r^{(L.t)},t_r^{(*,t-1)})\)

建模演化网络(Evolving Network Structure)

对于\(p(s,r,o\vert G_{<t})\)使用以下方法建模: \(p(s,r,o\vert G_{<t})=p(o\vert s,r,G_{<t})\cdot p(r\vert s, G_{<t})\cdot p(s\vert G_{<t})\\ p(o\vert s,r,G_{<t})={\rm softmax}({\rm MLP}([\overline{\mathbf s}_s^*\Vert \overline{\mathbf s}_r^*)\Vert \overline{\mathbf g}^*])),\\ p(r\vert s,G_{<t})={\rm softmax}({\rm MLP}([\overline{\mathbf s}_s^*\Vert \overline{\mathbf g}^*])),\\ p(s\vert G_{<t})={\rm softmax}({\rm MLP}([\overline{\mathbf g}^*])),\\\)

其中,\(\mathbf s_i^*\)和\(\mathbf s_r^*\)分别是实体\(i\)和关系\(r\)的结构编码,将静态编码和动态编码结合有\(\overline{\mathbf s}_i^*=[{\mathbf s}_i^*\Vert \mathbf s_i], \overline{\mathbf s}_r^*=[{\mathbf s}_r^*\Vert \mathbf s_r]\),\(\overline{\mathbf g}^*\)为对所有实体取最大池化。

时间演化结构表示

同样使用RGCN对实体结构对实体建模,并使用RNN进行聚合,得到\(\mathbf s_i^*\)和\(\mathbf s_r^*\)。

CEN

Complex Evolutional Pattern Learning for Temporal Knowledge Graph Reasoning, ACL2022

之前模型都忽略了进化模式(evolutional patterns)中的长度多样性(length-diversity)和时间多样性(time-variability)。长度多样性指的是推断不同的事实时需要的已知历史路径长度不同;时间多样性指的是不同的时间点对于同一事实推断的影响可能不同。

基础CEN

KG序列编码器。基础的CEN训练一个KG序列编码器和一个进化表示的解码器。 设置一个最大长度\(K\),对长度为\(1-K\)的KG序列进行编码,这里每个KG序列指的就是快照,例如长度为2的KG序列就是两个相邻的时间快照。对一个序列中的每个快照使用上个快照的结果作为初始向量,使用RGCN计算,并通过SC(skip connection)单元连接,以\(k=2\)为例: \(\begin{aligned} & \hat{\mathbf{H}}_t^2=R G C N\left(\mathbf{H}_{t-1}^2, \mathbf{R}, G_{t-1}\right), \\ & \mathbf{H}_t^2=S C\left(\hat{\mathbf{H}}_t^2, \mathbf{H}_{t-1}^2\right), \end{aligned}\) 由此,得到一系列的实体向量:\(\left\{\mathbf{H}_{t_q}^1, \ldots, \mathbf{H}_{t_q}^k, \ldots, \mathbf{H}_{t_q}^K\right\}\)

进化表示解码器

作者设计了一个length-aware的CNN,使用K个单独的通道对K个表示建模。具体来说,就是将长度为k对应的KG中的实体向量与关系向量进行拼接,由此得到一个2*D的矩阵,使用C个大小为2*M的卷积核对这个矩阵进行卷积操作,得到C*d的矩阵作为输出。将长度1到K的KG都做如此操作,最终得到一个输出序列: \(\left[\mathbf{m}^1\left(s, r, t_q\right), \ldots, \mathbf{m}^k\left(s, r, t_q\right), \ldots, \left.\mathbf{m}^K\left(s, r, t_q\right)\right] \right.\) 使用一个全连接网络作为解码器,并将每一层的结果相加,得到最终的预测结果: \(\sum_{k=1}^K \mathbf{m}^k\left(s, r, t_q\right) \mathbf{W}_3 \mathbf{o}^k,\mathbf{W}_3 \in \mathbb{R}^{C d \times d}\) 此外,文章中还使用了一个online学习的策略,即在测试集进行测试的时候,会考虑就近发生的事件,也就是会将测试集中的上一个快照的事件加入模型进行微调以预测当前快照的结果。


「欢迎留言」: