pub struct GraphSage { /* private fields */ }Expand description
GraphSAGE model for inductive node embedding
Implements the GraphSAGE algorithm from Hamilton et al. (2017). Key property: can generate embeddings for nodes not seen during training by aggregating from their neighborhoods.
Implementations§
Source§impl GraphSage
impl GraphSage
Sourcepub fn new(config: GraphSageConfig) -> Result<Self>
pub fn new(config: GraphSageConfig) -> Result<Self>
Create a new GraphSAGE model with the given configuration
Sourcepub fn embed(&self, graph: &GraphData) -> Result<GraphSageEmbeddings>
pub fn embed(&self, graph: &GraphData) -> Result<GraphSageEmbeddings>
Generate embeddings for all nodes via inductive forward pass.
Performs K-hop neighborhood aggregation where K is the number of layers.
Sourcepub fn train_unsupervised(
&mut self,
graph: &GraphData,
) -> Result<GraphSageTrainingMetrics>
pub fn train_unsupervised( &mut self, graph: &GraphData, ) -> Result<GraphSageTrainingMetrics>
Train the model with unsupervised random-walk loss.
Uses a simple positive/negative sampling strategy where:
- Positive pairs: nodes connected by an edge (BFS neighbors)
- Negative pairs: randomly sampled unconnected nodes
Loss: -log(sigma(pos_score)) - log(1 - sigma(neg_score))
Trait Implementations§
Auto Trait Implementations§
impl Freeze for GraphSage
impl RefUnwindSafe for GraphSage
impl Send for GraphSage
impl Sync for GraphSage
impl Unpin for GraphSage
impl UnsafeUnpin for GraphSage
impl UnwindSafe for GraphSage
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.