torch_geometric.nn.models.RENet
- class RENet(num_nodes: int, num_rels: int, hidden_channels: int, seq_len: int, num_layers: int = 1, dropout: float = 0.0, bias: bool = True)[source]
Bases:
Module来自“Recurrent Event Network for Reasoning over Temporal Knowledge Graphs”论文的循环事件网络模型。
\[f_{\mathbf{\Theta}}(\mathbf{e}_s, \mathbf{e}_r, \mathbf{h}^{(t-1)}(s, r))\]基于RNN编码器
\[\mathbf{h}^{(t)}(s, r) = \textrm{RNN}(\mathbf{e}_s, \mathbf{e}_r, g(\mathcal{O}^{(t)}_r(s)), \mathbf{h}^{(t-1)}(s, r))\]其中 \(\mathbf{e}_s\) 和 \(\mathbf{e}_r\) 表示实体和关系嵌入,\(\mathcal{O}^{(t)}_r(s)\) 表示在时间戳 \(t\) 下与主体 \(s\) 在关系 \(r\) 下交互的对象集合。 该模型将 \(g\) 实现为 均值聚合器,并将 \(f_{\mathbf{\Theta}}\) 实现为线性投影。
- Parameters:
num_nodes (int) – 知识图谱中的节点数量。
num_rels (int) – 知识图谱中的关系数量。
hidden_channels (int) – 节点和关系嵌入的隐藏大小。
seq_len (int) – 过去事件的序列长度。
num_layers (int, optional) – 循环层的数量。 (默认值:
1)dropout (float) – 如果非零,在最终预测之前引入一个dropout层。(默认值:
0.)bias (bool, optional) – If set to
False, all layers will not learn an additive bias. (default:True)
- forward(data: Data) Tuple[Tensor, Tensor][source]
给定一个
data批次,计算前向传递。- Parameters:
data (torch_geometric.data.Data) – 输入数据,包含主体
sub, 关系rel和对象obj信息,形状为[batch_size]. 此外,data需要包含主体的历史信息,由节点索引向量h_sub和 它们的相对时间戳h_sub_t以及批次分配h_sub_batch给出。 同样的信息也必须为对象提供 (h_obj,h_obj_t,h_obj_batch).- Return type: