随机游走位置编码初始化器
- class RandomWalkPositionalEncodingInitializer(*, triples_factory: CoreTriplesFactory | None = None, mapped_triples: Tensor | None = None, edge_index: Tensor | None = None, dim: int, num_entities: int | None = None, space_dim: int = 0, skip_first_power: bool = True)[源代码]
-
通过随机游走位置编码初始化节点。
随机游走位置编码如下所示
\[\mathbf{x}_i = [\mathbf{R}_{i, i}, \mathbf{R}^{2}_{i, i}, \ldots, \mathbf{R}^{d}_{i, i}] \in \mathbb{R}^{d}\]其中 \(\mathbf{R} := \mathbf{A}\mathbf{D}^{-1}\) 是随机游走矩阵,其中 \(\mathbf{D} := \sum_i \mathbf{A}_{i, i}\)。
初始化位置编码。
将使用triples_factory、mapped_triples或edge_index中的一个。 优先顺序为:
triples_factory
mapped_triples
edge_index
- Parameters:
triples_factory (CoreTriplesFactory | None) – 三元组工厂
mapped_triples (Tensor | None) – 形状: (m, 3) 映射的三元组
edge_index (Tensor | None) – 形状: (2, m) 边索引
dim (int) – 维度
num_entities (int | None) – 实体的数量。如果为None,将从edge_index推断
space_dim (int) – 估计的空间维度。用于通过因子k^(space_dim/2)来校正随机游走的对角线。 在欧几里得空间中,如果space_dim是欧几里得空间的维度,这种校正意味着高斯分布的高度在步数之间几乎保持不变。
skip_first_power (bool) – 在大多数情况下,对角线上的邻接值将为零(因为自反边并不常见)。 此标志允许跳过第一个矩阵幂。