class_docstr: An implementation of `"TADW" <https://www.ijcai.org/Proceedings/15/Papers/299.pdf>`_
  from the IJCAI '15 paper "Network Representation Learning with Rich Text Information". The
  procedure uses the node attribute matrix with a factorization matrix to reproduce a power
  of the adjacency matrix to create representations.
  
  Args:
      dimensions (int): Number of embedding dimensions. Default is 32.
      reduction_dimensions (int): SVD reduction dimensions. Default is 64.
      svd_iterations (int): SVD iteration count. Default is 20.
      seed (int): Random seed. Default is 42.
      alpha (float): Learning rate. Default is 0.01.
      iterations (int): Matrix decomposition iterations. Default is 10.
      lambd (float): Regularization coefficient. Default is 10.0.
docstr: A single update of the feature basis matrix.
docstr_tok: ["A","single","update","of","the","feature","basis","matrix","."]
code: def _update_H(self):
      """
      A single update of the feature basis matrix.
      """
      penalty = (self.lambd / np.linalg.norm(self._H)) * self._H
      transformed_features = self._H.dot(self._T)
      scores = 0
      for i in range(self.dimensions):
          scores = (
              scores
              + transformed_features[i, self._A.col]
              * self._W[i, self._A.row]
          )
      score_matrix = coo_matrix(
          (scores, (self._A.row, self._A.col)), shape=self._A.shape
      )
      diff_matrix = self._A - score_matrix
      main_grad = self._W.dot(diff_matrix.dot(self._T.T)) / np.sum(
          np.square(scores)
      )
      grad = penalty - main_grad
      self._H = self._H - self.alpha * grad
  
file_path: karateclub/karateclub/node_embedding/attributed/tadw.py
imports: import numpy
  import networkx
  from typing import Union
  from scipy.sparse import coo_matrix
  from karateclub.estimator import Estimator
  from sklearn.decomposition import TruncatedSVD
label_desc: Use image node_id 5 for calling the TADW obj's underlying member method code with example usage: obj._update_H() without return types