基础分解

class BasesDecomposition(num_bases: int | None = None, **kwargs)[源代码]

基础类:Decomposition

将关系权重表示为基本变换矩阵的线性组合。

基础分解将特定关系的转换矩阵表示为基矩阵的加权组合,\(\{\mathbf{B}_i^l\}_{i=1}^{B}\),即,

\[\mathbf{W}_r^l = \sum \limits_{b=1}^B \alpha_{rb} \mathbf{B}^l_i\]

该实现通过将邻接张量重塑为稀疏矩阵来支持通过单个稀疏矩阵乘法进行消息传递,参见 [thanapalasingam2021]

初始化基础分解。

Parameters:
  • num_bases (int | None) – 基数的数量

  • kwargs – 传递给 Decomposition.__init__() 的额外基于关键字的参数

属性摘要

base_weights

返回基础权重。

bases

返回基数表示。

方法总结

forward_horizontally_stacked(x, adj)

水平堆叠邻接矩阵的前向传递。

forward_vertically_stacked(x, adj)

垂直堆叠邻接矩阵的前向传递。

iter_extra_repr()

遍历extra_repr的组件。

reset_parameters()

重置层的参数。

属性文档

base_weights

返回基础权重。

bases

返回基数表示。

方法文档

forward_horizontally_stacked(x: Tensor, adj: Tensor) Tensor[source]

水平堆叠邻接矩阵的前向传递。

Parameters:
  • x (Tensor) – 形状: (num_entities, input_dim) 输入的实体表示

  • adj (Tensor) – 形状: (num_entities, num_relations * num_entities), 稀疏 水平堆叠的邻接矩阵

Returns:

形状: (num_entities, output_dim) 更新后的实体表示。

Return type:

Tensor

forward_vertically_stacked(x: Tensor, adj: Tensor) Tensor[source]

垂直堆叠邻接矩阵的前向传递。

Parameters:
  • x (Tensor) – 形状: (num_entities, input_dim) 输入的实体表示

  • adj (Tensor) – 形状: (num_entities * num_relations, num_entities), 稀疏 垂直堆叠的邻接矩阵

Returns:

形状: (num_entities, output_dim) 更新后的实体表示。

Return type:

Tensor

iter_extra_repr() Iterable[str][source]

遍历extra_repr的组件。

Return type:

Iterable[str]

reset_parameters()[source]

重置层的参数。