ELEmModule
- class mowl.nn.ELEmModule(nb_ont_classes, nb_rels, nb_inds, embed_dim=50, margin=0.1, reg_norm=1)[source]
Bases:
ELModuleImplementation of ELEmbeddings from [kulmanov2019].
Changed in version 0.4.0: The class ELEmModule receives an optional parameter nb_inds
Attributes Summary
Set of GCI names for which this module implements a true negative loss (i.e. the loss function behaves differently when called with
neg=True).Methods Summary
class_assertion_loss(data[, neg])Loss function for class assertion: \(C(a)\).
gci0_bot_loss(data[, neg])Loss function for GCI0 with bottom concept: \(C \sqsubseteq \perp\).
gci0_loss(data[, neg])Loss function for GCI0: \(C \sqsubseteq D\).
gci1_bot_loss(data[, neg])Loss function for GCI1 with bottom concept: \(C_1 \sqcap C_2 \sqsubseteq \perp\).
gci1_loss(data[, neg])Loss function for GCI1: \(C_1 \sqcap C_2 \sqsubseteq D\).
gci2_loss(data[, neg, idxs_for_negs])Loss function for GCI2: \(C \sqsubseteq \exists R.D\).
gci2_score(data)gci3_bot_loss(data[, neg])Loss function for GCI3 with bottom concept: \(\exists R.C \sqsubseteq \perp\).
gci3_loss(data[, neg])Loss function for GCI3: \(\exists R.C \sqsubseteq D\).
object_property_assertion_loss(data[, neg])Loss function for role assertion: \(R(a,b)\).
Attributes Documentation
- neg_capable_gcis = frozenset({'gci2', 'object_property_assertion'})
Set of GCI names for which this module implements a true negative loss (i.e. the loss function behaves differently when called with
neg=True). Subclasses must override this to declare their capabilities.
Methods Documentation
- class_assertion_loss(data, neg=False)[source]
Loss function for class assertion: \(C(a)\). :param axiom_data: Input tensor of shape (*,2) where
Cclasses will be ataxiom_data[:,0]andaindividuals will be ataxiom_data[:,1]. It is recommended to use theELDataset. :type axiom_data:torch.Tensor:param neg: Parameter indicating that the negative version of this loss function must be used. Defaults toFalse. :type neg: bool, optional.
- gci0_bot_loss(data, neg=False)[source]
Loss function for GCI0 with bottom concept: \(C \sqsubseteq \perp\).
- Parameters:
gci (
torch.Tensor) – Input tensor of shape (*,2) whereCclasses will be atgci[:,0]andbottomclasses will be atgci[:,1]. It is recommended to use theELDataset.neg (bool, optional.) – Parameter indicating that the negative version of this loss function must be used. Defaults to
False.
- gci0_loss(data, neg=False)[source]
Loss function for GCI0: \(C \sqsubseteq D\).
- Parameters:
gci (
torch.Tensor) – Input tensor of shape (*,2) whereCclasses will be atgci[:,0]andDclasses will be atgci[:,1]. It is recommended to use theELDataset.neg (bool, optional.) – Parameter indicating that the negative version of this loss function must be used. Defaults to
False.
- gci1_bot_loss(data, neg=False)[source]
Loss function for GCI1 with bottom concept: \(C_1 \sqcap C_2 \sqsubseteq \perp\).
- Parameters:
gci (
torch.Tensor) – Input tensor of shape (*,3) whereC1classes will be atgci[:,0],C2classes will be atgci[:,1] andbottomclasses will be atgci[:,2]. It is recommended to use theELDataset.neg (bool, optional.) – Parameter indicating that the negative version of this loss function must be used. Defaults to
False.
- gci1_loss(data, neg=False)[source]
Loss function for GCI1: \(C_1 \sqcap C_2 \sqsubseteq D\).
- Parameters:
gci (
torch.Tensor) – Input tensor of shape (*,3) whereC1classes will be atgci[:,0],C2classes will be atgci[:,1]andDclasses will be atgci[:,2]. It is recommended to use theELDataset.neg (bool, optional.) – Parameter indicating that the negative version of this loss function must be used. Defaults to
False.
- gci2_loss(data, neg=False, idxs_for_negs=None)[source]
Loss function for GCI2: \(C \sqsubseteq \exists R.D\). \(C \sqsubseteq \exists R. D\). :param gci: Input tensor of shape (*,3) where
Cclasses will be atgci[:,0],Robject properties will be atgci[:,1]andDclasses will be atgci[:,2]. It is recommended to use theELDataset. :type gci:torch.Tensor:param neg: Parameter indicating that the negative version of this loss function must be used. Defaults toFalse. :type neg: bool, optional.
- gci3_bot_loss(data, neg=False)[source]
Loss function for GCI3 with bottom concept: \(\exists R.C \sqsubseteq \perp\).
- Parameters:
gci (
torch.Tensor) – Input tensor of shape (*,3) whereRobject properties will be at gci[:,0],Cclasses will be atgci[:,1]andbottomclasses will be atgci[:,2]. It is recommended to use theELDataset.neg (bool, optional.) – Parameter indicating that the negative version of this loss function must be used. Defaults to
False.
- gci3_loss(data, neg=False)[source]
Loss function for GCI3: \(\exists R.C \sqsubseteq D\).
- Parameters:
gci (
torch.Tensor) – Input tensor of shape (*,3) whereRobject properties will be at gci[:,0],Cclasses will be atgci[:,1]andDclasses will be atgci[:,2]. It is recommended to use theELDataset.neg (bool, optional.) – Parameter indicating that the negative version of this loss function must be used. Defaults to
False.
- object_property_assertion_loss(data, neg=False)[source]
Loss function for role assertion: \(R(a,b)\). :param axiom_data: Input tensor of shape (*,3) where
aobject properties will be ataxiom_data[0], ``Robject properties will be ataxiom_data[:,1]andbindividuals will be ataxiom_data[:,2]. It is recommended to use theELDataset. :type axiom_data:torch.Tensor:param neg: Parameter indicating that the negative version of this loss function must be used. Defaults toFalse. :type neg: bool, optional.