opengsl.module.metric

class opengsl.module.metric.WeightedCosine(d_in, num_pers=16, weighted=True, normalize=True)[source]

Bases: Module

Weighted cosine to generate pairwise similarities from given node embeddings.

Parameters
  • d_in (int) – Dimensions of input features.

  • num_pers (int) – Number of multi heads.

  • weighted (bool) – Whether to use weighted cosine. cosine will be used if set to None.

  • normalize (bool) – Whetehr to use normalize before multiplication.

forward(x, y=None, non_negative=False)[source]

Given two groups of node embeddings, calculate the pairwise similarities.

Parameters
  • x (torch.tensor) – Input features.

  • y (torch.tensor) – Input features. x will be used if set to None.

  • non_negative (bool) – Whether to mask negative elements.

Returns

adj – Pairwise similarities.

Return type

torch.tensor

class opengsl.module.metric.Cosine[source]

Bases: Module

Cosine to generate pairwise similarities from given node embeddings.

forward(x, y=None, non_negative=False)[source]

Given two groups of node embeddings, calculate the pairwise similarities.

Parameters
  • x (torch.tensor) – Input features.

  • y (torch.tensor) – Input features. x will be used if set to None.

  • non_negative (bool) – Whether to mask negative elements.

Returns

adj – Pairwise similarities.

Return type

torch.tensor

class opengsl.module.metric.InnerProduct[source]

Bases: Module

InnerProduct to generate pairwise similarities from given node embeddings.

forward(x, y=None, non_negative=False)[source]

Given two groups of node embeddings, calculate the pairwise similarities.

Parameters
  • x (torch.tensor) – Input features.

  • y (torch.tensor) – Input features. x will be used if set to None.

  • non_negative (bool) – Whether to mask negative elements.

Returns

adj – Pairwise similarities.

Return type

torch.tensor