class_docstr: Normalize messages by product of inverse sqrt of in-degree and out-degree.
code: def forward(
      self,
      source: torch.LongTensor,
      target: torch.LongTensor,
      message: Optional[torch.FloatTensor] = None,
      x_e: Optional[torch.FloatTensor] = None,
  ) -> torch.FloatTensor:  # noqa: D102
      weight = (
          _inverse_frequency_weighting(idx=source)
          * _inverse_frequency_weighting(idx=target)
      ).sqrt()
      if message is not None:
          return message * weight.unsqueeze(dim=-1)
      else:
          # backward compatibility with RGCN
          return weight
  
imports: from abc import abstractmethod
  from typing import ClassVar, Optional, Union
  import torch
  from class_resolver import ClassResolver
  from torch import nn
  from ..utils import einsum
label_desc: Use image node_id 1 for calling the SymmetricEdgeWeighting obj's underlying member method code with example usage: obj.forward(source, target, message, x_e) and returns: unknown, weight