Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Recommenders team Recommenders Wide Deep Utils

From Leeroopedia


Knowledge Sources
Domains Deep Learning, Recommendation Systems, TensorFlow Estimator API
Last Updated 2026-02-10 00:00 GMT

Overview

The wide_deep_utils module provides utility functions for constructing Wide and Deep recommendation models using TensorFlow's high-level Estimator API, including feature column building and model assembly.

Description

This module implements Google's Wide & Deep learning architecture for recommendation, combining memorization (wide/linear component) with generalization (deep/neural network component). It exposes two main public functions:

  • build_feature_columns -- Creates TensorFlow feature columns for wide, deep, or wide_deep model types. Wide columns use categorical vocabulary lists for user and item IDs plus a crossed feature column hashed into a configurable bucket size (default: 1000). Deep columns use embedding columns for user and item IDs (configurable dimensions, default: 8 each with max_norm scaling) with optional numeric feature columns for item features.
  • build_model -- Assembles the appropriate TensorFlow Estimator based on which column types are provided:
    • Wide columns only produces a LinearRegressor
    • Deep columns only produces a DNNRegressor
    • Both produces a DNNLinearCombinedRegressor
    • Configurable parameters include linear_optimizer (default: Ftrl), dnn_optimizer (default: Adagrad), hidden units (default: [128, 128]), dropout, batch normalization, checkpoint frequency, and random seed. GPU memory is configured for dynamic allocation via allow_growth.

Internal helpers _build_wide_columns and _build_deep_columns handle the specific column construction logic, including the original user/item features alongside crossed columns to address hash collision problems.

Usage

Use these utilities when building Wide & Deep recommendation models with TensorFlow's Estimator API. The functions support three model configurations: pure wide (linear), pure deep (DNN), or combined wide-deep, allowing experimentation with different architectures. Pair with tf_utils.pandas_input_fn for data input and tf_utils.evaluation_log_hook for training-time evaluation.

Code Reference

Source Location

Signature

def build_feature_columns(
    users, items, user_col=DEFAULT_USER_COL, item_col=DEFAULT_ITEM_COL,
    item_feat_col=None, crossed_feat_dim=1000, user_dim=8, item_dim=8,
    item_feat_shape=None, model_type="wide_deep"
)

def build_model(
    model_dir=MODEL_DIR, wide_columns=(), deep_columns=(),
    linear_optimizer="Ftrl", dnn_optimizer="Adagrad",
    dnn_hidden_units=(128, 128), dnn_dropout=0.0, dnn_batch_norm=True,
    log_every_n_iter=1000, save_checkpoints_steps=10000, seed=None
)

Import

from recommenders.models.wide_deep.wide_deep_utils import build_feature_columns, build_model

I/O Contract

Inputs

Name Type Required Description
users iterable Yes Distinct user IDs for vocabulary list construction
items iterable Yes Distinct item IDs for vocabulary list construction
user_col str No User column name (default: DEFAULT_USER_COL)
item_col str No Item column name (default: DEFAULT_ITEM_COL)
item_feat_col str No Item feature column name for deep/wide_deep models
crossed_feat_dim int No Hash bucket size for crossed features (default: 1000)
user_dim int No User embedding dimension for deep models (default: 8)
item_dim int No Item embedding dimension for deep models (default: 8)
item_feat_shape int or iterable No Shape of item feature array for deep models
model_type str No Model type: "wide", "deep", or "wide_deep" (default: "wide_deep")
model_dir str No Model checkpoint directory (default: MODEL_DIR)
wide_columns list No Wide feature columns from build_feature_columns
deep_columns list No Deep feature columns from build_feature_columns
linear_optimizer str or Optimizer No Wide model optimizer (default: "Ftrl")
dnn_optimizer str or Optimizer No Deep model optimizer (default: "Adagrad")
dnn_hidden_units list of int No DNN hidden layer sizes (default: (128, 128))
dnn_dropout float No DNN dropout rate (default: 0.0)
dnn_batch_norm bool No Whether to apply batch normalization (default: True)
seed int No Random seed for reproducibility

Outputs

Name Type Description
build_feature_columns return (list, list) Tuple of (wide_columns, deep_columns); one may be empty depending on model_type
build_model return tf.estimator.Estimator Configured TensorFlow Estimator (Linear, DNN, or Combined)

Usage Examples

Basic Usage

from recommenders.models.wide_deep.wide_deep_utils import build_feature_columns, build_model

# Build feature columns for a wide-deep model
wide_columns, deep_columns = build_feature_columns(
    users=user_ids,
    items=item_ids,
    user_col="userID",
    item_col="itemID",
    crossed_feat_dim=1000,
    user_dim=16,
    item_dim=16,
    model_type="wide_deep"
)

# Build the model
model = build_model(
    model_dir="./checkpoints",
    wide_columns=wide_columns,
    deep_columns=deep_columns,
    dnn_hidden_units=[256, 128, 64],
    dnn_dropout=0.1,
    dnn_batch_norm=True,
    seed=42
)

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment