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:Online ml River Reco BiasedMF

From Leeroopedia


Knowledge Sources
Domains Online_Learning, Recommender_Systems, Matrix_Factorization
Last Updated 2026-02-08 16:00 GMT

Overview

Biased matrix factorization combining baseline biases with latent factor interactions.

Description

Implements biased matrix factorization using the equation: ŷ = ȳ + bu + bi + <vu, vi>, where the last term is the dot product of user and item latent vectors. Learns both biases and latent factors through SGD with independent regularization. Captures both first-order (biases) and second-order (interactions) effects.

Usage

Use for collaborative filtering when you need to model user-item interactions beyond simple biases. Particularly effective for rating prediction and personalized ranking. Essential for capturing latent taste preferences and item characteristics.

Code Reference

Source Location

Signature

class BiasedMF(Ranker):
    def __init__(
        self,
        n_factors=10,
        bias_optimizer: optim.base.Optimizer | None = None,
        latent_optimizer: optim.base.Optimizer | None = None,
        loss: optim.losses.Loss | None = None,
        l2_bias=0.0,
        l2_latent=0.0,
        weight_initializer: optim.initializers.Initializer | None = None,
        latent_initializer: optim.initializers.Initializer | None = None,
        clip_gradient=1e12,
        seed=None,
    ):
        ...

    def predict_one(self, user, item, x=None):
        ...

    def learn_one(self, user, item, y, x=None):
        ...

Import

from river import reco

Usage Examples

from river import optim, reco

dataset = (
    ({'user': 'Alice', 'item': 'Superman'}, 8),
    ({'user': 'Alice', 'item': 'Terminator'}, 9),
    ({'user': 'Alice', 'item': 'Star Wars'}, 8),
    ({'user': 'Alice', 'item': 'Notting Hill'}, 2),
    ({'user': 'Alice', 'item': 'Harry Potter'}, 5),
    ({'user': 'Bob', 'item': 'Superman'}, 8),
    ({'user': 'Bob', 'item': 'Terminator'}, 9),
    ({'user': 'Bob', 'item': 'Star Wars'}, 8),
    ({'user': 'Bob', 'item': 'Notting Hill'}, 2)
)

model = reco.BiasedMF(
    n_factors=10,
    bias_optimizer=optim.SGD(0.025),
    latent_optimizer=optim.SGD(0.025),
    latent_initializer=optim.initializers.Normal(mu=0., sigma=0.1, seed=71)
)

for x, y in dataset:
    model.learn_one(**x, y=y)

pred = model.predict_one(user='Bob', item='Harry Potter')
print(f"Predicted rating: {pred:.2f}")

Related Pages

Page Connections

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