pub struct DistMult {
pub config: KgEmbeddingConfig,
pub embeddings: Option<KgEmbeddings>,
/* private fields */
}Expand description
DistMult – bilinear diagonal scoring.
Scoring: Σ(hᵢ · rᵢ · tᵢ).
Trained with softplus (logistic) loss and SGD.
Fields§
§config: KgEmbeddingConfig§embeddings: Option<KgEmbeddings>Implementations§
Source§impl DistMult
impl DistMult
Sourcepub fn new(config: KgEmbeddingConfig) -> Self
pub fn new(config: KgEmbeddingConfig) -> Self
Create a new, untrained DistMult model.
Sourcepub fn train(
&mut self,
triples: &[KgTriple],
num_entities: usize,
num_relations: usize,
) -> KgResult<TrainingHistory>
pub fn train( &mut self, triples: &[KgTriple], num_entities: usize, num_relations: usize, ) -> KgResult<TrainingHistory>
Train using negative-sampling and softplus loss.
Sourcepub fn predict_tail(
&self,
head: EntityId,
relation: RelationId,
top_k: usize,
) -> KgResult<Vec<(EntityId, f64)>>
pub fn predict_tail( &self, head: EntityId, relation: RelationId, top_k: usize, ) -> KgResult<Vec<(EntityId, f64)>>
Rank all entities as candidate tails; return top-k.
Sourcepub fn predict_head(
&self,
relation: RelationId,
tail: EntityId,
top_k: usize,
) -> KgResult<Vec<(EntityId, f64)>>
pub fn predict_head( &self, relation: RelationId, tail: EntityId, top_k: usize, ) -> KgResult<Vec<(EntityId, f64)>>
Rank all entities as candidate heads; return top-k.
Trait Implementations§
Source§impl KgModel for DistMult
impl KgModel for DistMult
Source§fn score(&self, triple: &KgTriple) -> KgResult<f64>
fn score(&self, triple: &KgTriple) -> KgResult<f64>
Score a (head, relation, tail) triple. Higher ⟹ more plausible.
Source§fn predict_tail(
&self,
head: EntityId,
relation: RelationId,
top_k: usize,
) -> KgResult<Vec<(EntityId, f64)>>
fn predict_tail( &self, head: EntityId, relation: RelationId, top_k: usize, ) -> KgResult<Vec<(EntityId, f64)>>
Rank all entities as possible tails; returns top-
k (entity, score) pairs.Source§fn predict_head(
&self,
relation: RelationId,
tail: EntityId,
top_k: usize,
) -> KgResult<Vec<(EntityId, f64)>>
fn predict_head( &self, relation: RelationId, tail: EntityId, top_k: usize, ) -> KgResult<Vec<(EntityId, f64)>>
Rank all entities as possible heads; returns top-
k (entity, score) pairs.Auto Trait Implementations§
impl Freeze for DistMult
impl RefUnwindSafe for DistMult
impl Send for DistMult
impl Sync for DistMult
impl Unpin for DistMult
impl UnsafeUnpin for DistMult
impl UnwindSafe for DistMult
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.