merlin.models.tf.DCNModel#
- merlin.models.tf.DCNModel(schema: merlin.schema.schema.Schema, depth: int, deep_block: merlin.models.tf.core.base.Block = MLPBlock( (layers): List( (0): _Dense( (dense): Dense(512, activation=relu, use_bias=True) ) (1): _Dense( (dense): Dense(256, activation=relu, use_bias=True) ) ) ), stacked=True, input_block: typing.Optional[merlin.models.tf.core.base.Block] = None, prediction_tasks: typing.Optional[typing.Union[merlin.models.tf.prediction_tasks.base.PredictionTask, typing.List[merlin.models.tf.prediction_tasks.base.PredictionTask], merlin.models.tf.prediction_tasks.base.ParallelPredictionBlock]] = None, **kwargs) merlin.models.tf.models.base.Model[source]#
- Create a model using the architecture proposed in DCN V2: Improved Deep & Cross Network [1]. See Eq. (1) for full-rank and Eq. (2) for low-rank version. - Example Usage::
- dcn = DCNModel(schema, depth=2, deep_block=MLPBlock([256, 64])) dcn.compile(optimizer=”adam”) dcn.fit(train_data, epochs=10) 
 - References - [1]. Wang, Ruoxi, et al. “DCN V2: Improved deep & cross network and
- practical lessons for web-scale learning to rank systems.” Proceedings of the Web Conference 2021. 2021. https://arxiv.org/pdf/2008.13535.pdf 
 - Parameters
- schema (Schema) – The Schema with the input features 
- depth (int, optional) – Number of cross-layers to be stacked, by default 1 
- deep_block (Block, optional) – The Block to use as the deep part of the model (typically a MLPBlock) 
- stacked (bool) – Whether to use the stacked version of the model or the parallel version. 
- input_block (Block, optional) – The Block to use as the input layer. If None, a default InputBlockV2 object is instantiated, that creates the embedding tables for the categorical features based on the schema. The embedding dimensions are inferred from the features cardinality. For a custom representation of input data you can instantiate and provide an InputBlockV2 instance. 
- prediction_tasks (optional) – The prediction tasks to be used, by default this will be inferred from the Schema. 
 
- Returns
- A SequentialBlock with a number of stacked Cross layers 
- Return type
- Raises
- ValueError – Number of cross layers (depth) should be positive