ConvE交互
- class ConvEInteraction(input_channels: int | None = None, output_channels: int = 32, embedding_height: int | None = None, embedding_width: int | None = None, kernel_width: int = 3, kernel_height: int | None = None, input_dropout: float = 0.2, feature_map_dropout: float = 0.2, output_dropout: float = 0.3, embedding_dim: int = 200, apply_batch_normalization: bool = True)[来源]
基础类:
Interaction[Tensor,Tensor,tuple[Tensor,Tensor]]有状态的ConvE交互函数。
ConvE 是一种基于 CNN 的方法。对于输入表示 \(\mathbf{h}, \mathbf{r}, \mathbf{t} \in \mathbb{R}^d\), 它首先将 \(\mathbf{h}\) 和 \(\mathbf{r}\) 组合成一个矩阵 \(\mathbf{A} \in \mathbb{R}^{2 \times d}\), 其中 \(\mathbf{A}\) 的第一行表示 \(\mathbf{h}\),第二行表示 \(\mathbf{r}\)。 \(\mathbf{A}\) 被重塑为一个矩阵 \(\mathbf{B} \in \mathbb{R}^{m \times n}\), 其中前 \(m/2\) 行表示 \(\mathbf{h}\),剩下的 \(m/2\) 行表示 \(\mathbf{r}\)。 在卷积层中,一组 二维 卷积滤波器 \(\Omega = \{\omega_i \mid \omega_i \in \mathbb{R}^{r \times c}\}\) 被应用于 \(\mathbf{B}\), 以捕捉 \(\mathbf{h}\) 和 \(\mathbf{r}\) 之间的交互。 生成的特征图被重塑并连接起来,以创建一个特征向量 \(\mathbf{v} \in \mathbb{R}^{|\Omega|rc}\)。 在下一步中,\(\mathbf{v}\) 通过线性变换映射到实体空间 \(\mathbf{W} \in \mathbb{R}^{|\Omega|rc \times d}\),即 \(\mathbf{e}_{h,r} = \mathbf{v}^{T} \mathbf{W}\)。 然后通过以下方式获得分数:
\[f(\mathbf{h}, \mathbf{r}, \mathbf{t}) = \mathbf{e}_{h,r} \mathbf{t}\]由于交互模型可以分解为 \(f(\mathbf{h}, \mathbf{r}, \mathbf{t}) = \left\langle f'(\mathbf{h}, \mathbf{r}), \mathbf{t} \right\rangle\) 该模型特别设计用于1-N评分,即高效计算固定 \(h,r\) 和许多不同 \(t\) 的 \((h,r,t)\) 的分数。
默认设置使用批量归一化。批量归一化可以归一化激活函数的输出,以确保神经网络的权重不会变得不平衡,并加速训练。然而,批量归一化并不是实现更稳健和有效训练的唯一方法[santurkar2018]。因此,我们添加了标志
apply_batch_normalization来开启/关闭批量归一化(默认情况下是开启的)。初始化交互模块。
- Parameters:
input_channels (int | None) – 卷积操作的输入通道数。可以从其他参数推断出来,参见
_calculate_missing_shape_information()。output_channels (int) – 卷积操作的输入通道数
embedding_height (int | None) – 在重新调整连接的头和关系嵌入后的“图像”高度。可以从其他参数推断出来,参见
_calculate_missing_shape_information()。embedding_width (int | None) – 在重新调整连接的头和关系嵌入后的“图像”宽度。可以从其他参数推断出来,参见
_calculate_missing_shape_information()。kernel_width (int) – 卷积核的宽度
kernel_height (int | None) – 卷积核的高度。默认为 kernel_width
input_dropout (float) – 在卷积之前应用的dropout
feature_map_dropout (float) – 在卷积之后应用的 dropout
output_dropout (float) – 在线性投影后应用的dropout
embedding_dim (int) – 实体和关系的嵌入维度
apply_batch_normalization (bool) – 是否应用批量归一化
属性摘要
实体表示的符号形状
方法总结
forward(h, r, t)评估交互函数。
属性文档
方法文档