import tensorflow as tf

    * Qingyao Ai, Keping Bi, Cheng Luo, Jiafeng Guo, W. Bruce Croft. 2018. Unbiased Learning to Rank with Unbiased Propensity Estimation. In Proceedings of SIGIR '18
    
    """

    def __init__(self, data_set, exp_settings, forward_only=False):
        """Create the model.
    
        Args:
            data_set: (Raw_data) The dataset used to build the input layer.
            exp_settings: (dictionary) The dictionary containing the model settings.
            forward_only: Set true to conduct prediction only, false to conduct training.
        """
        print('Build DLA atten')

        self.hparams = tf.contrib.training.HParams(
            learning_rate=0.05,                 # Learning rate.
            max_gradient_norm=5.0,            # Clip gradients to this norm.
            loss_func='click_weighted_softmax_cross_entropy',            # Select Loss function
            logits_to_prob='softmax',        # the function used to convert logits to probability distributions
            ranker_learning_rate=-1.0,         # The learning rate for ranker (-1 means same with learning_rate).
            ranker_loss_weight=1.0,            # Set the weight of unbiased ranking loss
            l2_loss=0.0,                    # Set strength for L2 regularization.
            l1_loss=0.0,
            max_propensity_weight = -1,      # Set maximum value for propensity weights
            constant_propensity_initialization = False, # Set true to initialize propensity with constants.
            grad_strategy='ada',            # Select gradient strategy
        )
        print(exp_settings['learning_algorithm_hparams'])
