class_docstr: Parameters
  ----------
  k: int, optional, default: 50
      The dimension of the user and item latent factors.
  
  n_epochs: int, optional, default: 50
      Maximum number of epochs for training.
  
  cnn_epochs: int, optional, default: 5
      Number of epochs for optimizing the CNN for each overall training epoch.
  
  cnn_bs: int, optional, default: 128
      Batch size for optimizing CNN.
      
  cnn_lr: float, optional, default: 0.001
      Learning rate for optimizing CNN.
  
  lambda_u: float, optional, default: 1.0
      The regularization hyper-parameter for user latent factor.
  
  lambda_v: float, optional, default: 100.0
      The regularization hyper-parameter for item latent factor.
  
  emb_dim: int, optional, default: 200
      The embedding size of each word. One word corresponds with [1 x emb_dim] vector in the embedding space
  
  max_len: int, optional, default 300
      The maximum length of item's document
  
  filter_sizes: list, optional, default: [3, 4, 5]
      The length of filters in convolutional layer
  
  num_filters: int, optional, default: 100
      The number of filters in convolutional layer
      
  hidden_dim: int, optional, default: 200
      The dimension of hidden layer after the pooling of all convolutional layers
  
  dropout_rate: float, optional, default: 0.2
      Dropout rate while training CNN
  
  give_item_weight: boolean, optional, default: True
      When True, each item will be weighted base on the number of user who have rated this item
  
  init_params: dict, optional, default: {'U':None, 'V':None, 'W': None}
      Initial U and V matrix and initial weight for embedding layer W
  
  trainable: boolean, optional, default: True
      When False, the model is not trained and Cornac assumes that the model already         pre-trained (U and V are not None).
  
  References
  ----------
  * Donghyun Kim1, Chanyoung Park1. ConvMF: Convolutional Matrix Factorization for Document Context-Aware Recommendation.     In :10th ACM Conference on Recommender Systems Pages 233-240
class_docstr_tok: ["Parameters","--","--","--","--","--","k",":","int",",","optional",",","default",":","50","The","dimension","of","the","user","and","item","latent","factors",".","n_epochs",":","int",",","optional",",","default",":","50","Maximum","number","of","epochs","for","training",".","cnn_epochs",":","int",",","optional",",","default",":","5","Number","of","epochs","for","optimizing","the","CNN","for","each","overall","training","epoch",".","cnn_bs",":","int",",","optional",",","default",":","128","Batch","size","for","optimizing","CNN",".","cnn_lr",":","float",",","optional",",","default",":","0.001","Learning","rate","for","optimizing","CNN",".","lambda_u",":","float",",","optional",",","default",":","1.0","The","regularization","hyper-parameter","for","user","latent","factor",".","lambda_v",":","float",",","optional",",","default",":","100.0","The","regularization","hyper-parameter","for","item","latent","factor",".","emb_dim",":","int",",","optional",",","default",":","200","The","embedding","size","of","each","word",".","One","word","corresponds","with","[","1","x","emb_dim","]","vector","in","the","embedding","space","max_len",":","int",",","optional",",","default","300","The","maximum","length","of","item","'s","document","filter_sizes",":","list",",","optional",",","default",":","[","3",",","4",",","5","]","The","length","of","filters","in","convolutional","layer","num_filters",":","int",",","optional",",","default",":","100","The","number","of","filters","in","convolutional","layer","hidden_dim",":","int",",","optional",",","default",":","200","The","dimension","of","hidden","layer","after","the","pooling","of","all","convolutional","layers","dropout_rate",":","float",",","optional",",","default",":","0.2","Dropout","rate","while","training","CNN","give_item_weight",":","boolean",",","optional",",","default",":","True","When","True",",","each","item","will","be","weighted","base","on","the","number","of","user","who","have","rated","this","item","init_params",":","dict",",","optional",",","default",":","{","'","U","'",":","None",",","'","V","'",":","None",",","'","W","'",":","None","}","Initial","U","and","V","matrix","and","initial","weight","for","embedding","layer","W","trainable",":","boolean",",","optional",",","default",":","True","When","False",",","the","model","is","not","trained","and","Cornac","assumes","that","the","model","already","pre-trained","(","U","and","V","are","not","None",")",".","References","--","--","--","--","--","*","Donghyun","Kim1",",","Chanyoung","Park1",".","ConvMF",":","Convolutional","Matrix","Factorization","for","Document","Context-Aware","Recommendation",".","In",":10th","ACM","Conference","on","Recommender","Systems","Pages","233-240"]
docstr: Getting a valid choice of vector measurement in ANNMixin._measures.
  
  Returns
  -------
  measure: MEASURE_DOT
      Dot product aka. inner product
docstr_tok: ["Getting","a","valid","choice","of","vector","measurement","in","ANNMixin._measures",".","Returns","--","--","--","-","measure",":","MEASURE_DOT","Dot","product","aka",".","inner","product"]
code: def get_vector_measure(self):
      """Getting a valid choice of vector measurement in ANNMixin._measures.
  
      Returns
      -------
      measure: MEASURE_DOT
          Dot product aka. inner product
      """
      return MEASURE_DOT
  
imports: import os
  import time
  import math
  import numpy
  from tqdm.auto import trange
  from ..recommender import Recommender
  from ..recommender import ANNMixin, MEASURE_DOT
  from ...exception import ScoreException
  from ...utils import get_rng
  from ...utils.init_utils import xavier_uniform
label_desc: Use image node_id 7 for calling the ConvMF obj's underlying member method code with example usage: obj.get_vector_measure() and returns: MEASURE_DOT