class_docstr: Pairwise likelihood using logistic (i.e., sigmoid) function
  
  Given two items v and u with utilities f(v) and f(u), the probability that we
  prefer v over u with probability sigmoid(f(v) - f(u)). Note
  that this formulation implicitly assume the beta term in logistic function is
  fixed at 1.
code: def negative_log_hessian_sum(
      self, utility: Tensor, D: Tensor
  ) -> Tensor:
      DT = D.transpose(-1, -2)
      # calculating f(v) - f(u) given u > v information in D
      neg_logit = -(D @ utility.unsqueeze(-1)).squeeze(-1)
      term = torch.sigmoid(neg_logit)
      mul_factor = term - (term) ** 2
      mul_factor = mul_factor.unsqueeze(-2).expand(*DT.size())
      # multiply the hessian value by preference signs
      # (+1 if preferred or -1 otherwise) and sum over the m dimension
      hess = DT * mul_factor @ D
      return hess
  
imports: from __future__ import annotations
  import math
  from abc import ABC, abstractmethod
  from typing import Any, Tuple
  import torch
  from botorch.utils.probability.utils import log_ndtr, log_phi, standard_normal_log_hazard
  from gpytorch.likelihoods import Likelihood
  from torch import Tensor
  from torch.distributions import Bernoulli
label_desc: Use image node_id 5 for calling the PairwiseLogitLikelihood obj's underlying member method code with example usage: obj.negative_log_hessian_sum(utility, D) and returns: hess