TensorRec: A TensorFlow Recommendation Framework in Python

TensorRec: A TensorFlow Recommendation Framework in Python

Summary

TensorRec is a Python recommendation system built on TensorFlow, designed for quickly developing and customizing recommendation algorithms. It allows users to define custom representation and loss functions while handling data manipulation, scoring, and ranking. Although not under active development, it provides a solid foundation for understanding and implementing recommender systems.

Repository Info

Updated on May 17, 2026
View on GitHub

Introduction

TensorRec is a powerful Python recommendation system built on TensorFlow, allowing developers to quickly create and customize recommendation algorithms. It provides a flexible framework where you can define your own representation or embedding functions and loss functions, while TensorRec efficiently manages the underlying data manipulation, scoring, and ranking processes to generate recommendations.

It's important to note that TensorRec is not under active development. However, the maintainer is open to reviewing pull requests, making it a valuable resource for learning and exploring TensorFlow-based recommender systems. A TensorRec system processes three key data inputs: user_features, item_features, and interactions, using them to learn and produce ranked recommendations.

Installation

Getting started with TensorRec is straightforward. You can install it using pip:

pip install tensorrec

Examples

Here's a basic example demonstrating how to use TensorRec to build, fit, and evaluate a recommendation model:

import numpy as np
import tensorrec

# Build the model with default parameters
model = tensorrec.TensorRec()

# Generate some dummy data
interactions, user_features, item_features = tensorrec.util.generate_dummy_data(
    num_users=100,
    num_items=150,
    interaction_density=.05
)

# Fit the model for 5 epochs
model.fit(interactions, user_features, item_features, epochs=5, verbose=True)

# Predict scores and ranks for all users and all items
predictions = model.predict(user_features=user_features,
                            item_features=item_features)
predicted_ranks = model.predict_rank(user_features=user_features,
                                     item_features=item_features)

# Calculate and print the recall at 10
r_at_k = tensorrec.eval.recall_at_k(predicted_ranks, interactions, k=10)
print(np.mean(r_at_k))

Why Use TensorRec?

TensorRec offers a flexible approach to building recommendation systems, allowing deep customization of core components like representation and loss functions. It abstracts away much of the boilerplate, enabling developers to focus on the algorithm's logic and experimentation.

While development is not active, its well-structured design and clear examples make it an excellent educational tool for understanding TensorFlow-based recommenders. For those seeking actively maintained alternatives, the project maintainer suggests exploring TensorFlow Ranking, Spotlight, or LightFM.

Links