class_docstr: Class for calculation of bilinear form of two vectors
  Args:
      n_classes: number of classes for classification
      emb_size: entity embedding size
      block_size: size of block in bilinear layer
code: def __init__(
      self, n_classes: int = 2, emb_size: int = 768, block_size: int = 8
  ):
      super().__init__()
      self.n_classes = n_classes
      self.emb_size = emb_size
      self.block_size = block_size
      self.bilinear = nn.Linear(
          self.emb_size * self.block_size, self.n_classes
      )
      self.softmax = nn.Softmax(dim=1)
  
imports: from logging import getLogger
  from pathlib import Path
  from typing import List, Optional, Dict, Tuple, Union, Any
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from torch import Tensor
  from transformers import AutoConfig, AutoTokenizer, AutoModel
  from deeppavlov.core.commands.utils import expand_path
  from deeppavlov.core.common.errors import ConfigError
  from deeppavlov.core.common.registry import register
  from deeppavlov.core.models.torch_model import TorchModel
  from deeppavlov.models.preprocessors.torch_transformers_preprocessor import TorchTransformersEntityRankerPreprocessor
label_desc: Use image node_id 1 to create a new BilinearRanking object from inherited base classes: nn with example: obj = BilinearRanking(n_classes, emb_size, block_size)