code: def hybrid_forward(self, F, row, col, counts):
          
  
          emb_in = self.source_embedding(row)
          emb_out = self.context_embedding(col)
  
          if self._dropout:
              emb_in = F.Dropout(emb_in, p=self._dropout)
              emb_out = F.Dropout(emb_out, p=self._dropout)
  
          bias_in = self.source_bias(row).squeeze()
          bias_out = self.context_bias(col).squeeze()
          dot = F.batch_dot(emb_in.expand_dims(1),
                            emb_out.expand_dims(2)).squeeze()
          tmp = dot + bias_in + bias_out - F.log(counts).squeeze()
          weight = F.clip(((counts / self._x_max)**self._alpha), a_min=0,
                          a_max=1).squeeze()
          loss = weight * F.square(tmp)
          return loss
docs: Compute embedding of words in batch.
  
          Parameters
          ----------
          row : mxnet.nd.NDArray or mxnet.sym.Symbol
              Array of token indices for source words. Shape (batch_size, ).
          row : mxnet.nd.NDArray or mxnet.sym.Symbol
              Array of token indices for context words. Shape (batch_size, ).
          counts : mxnet.nd.NDArray or mxnet.sym.Symbol
              Their co-occurrence counts. Shape (batch_size, ).
  
          Returns
          -------
          mxnet.nd.NDArray or mxnet.sym.Symbol
              Loss. Shape (batch_size, ).