BiasedMF¶
Biased Matrix Factorization for recommender systems.
The model equation is defined as:
Where \(bu_{u}\) and \(bi_{i}\) are respectively the user and item biases. The last term being simply the dot product between the latent vectors of the given user-item pair:
where \(k\) is the number of latent factors.
This model expects a dict input with a user
and an item
entries without any type constraint on their values (i.e. can be strings or numbers). Other entries are ignored.
Parameters¶
-
n_factors
Default →
10
Dimensionality of the factorization or number of latent factors.
-
bias_optimizer
Type → optim.base.Optimizer | None
Default →
None
The sequential optimizer used for updating the bias weights.
-
latent_optimizer
Type → optim.base.Optimizer | None
Default →
None
The sequential optimizer used for updating the latent weights.
-
loss
Type → optim.losses.Loss | None
Default →
None
The loss function to optimize for.
-
l2_bias
Default →
0.0
Amount of L2 regularization used to push bias weights towards 0.
-
l2_latent
Default →
0.0
Amount of L2 regularization used to push latent weights towards 0.
-
weight_initializer
Type → optim.initializers.Initializer | None
Default →
None
Weights initialization scheme.
-
latent_initializer
Type → optim.initializers.Initializer | None
Default →
None
Latent factors initialization scheme.
-
clip_gradient
Default →
1000000000000.0
Clips the absolute value of each gradient value.
-
seed
Default →
None
Random number generation seed. Set this for reproducibility.
Attributes¶
-
global_mean (stats.Mean)
The target arithmetic mean.
-
u_biases (collections.defaultdict)
The user bias weights.
-
i_biases (collections.defaultdict)
The item bias weights.
-
u_latents (collections.defaultdict)
The user latent vectors randomly initialized.
-
i_latents (collections.defaultdict)
The item latent vectors randomly initialized.
-
u_bias_optimizer (optim.base.Optimizer)
The sequential optimizer used for updating the user bias weights.
-
i_bias_optimizer (optim.base.Optimizer)
The sequential optimizer used for updating the item bias weights.
-
u_latent_optimizer (optim.base.Optimizer)
The sequential optimizer used for updating the user latent weights.
-
i_latent_optimizer (optim.base.Optimizer)
The sequential optimizer used for updating the item latent weights.
Examples¶
from river import optim
from river import 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)
model.predict_one(user='Bob', item='Harry Potter')
6.489025
Methods¶
learn_one
Fits a user
-item
pair and a real-valued target y
.
Parameters
- user — 'ID'
- item — 'ID'
- y — 'Reward'
- x — 'dict | None' — defaults to
None
predict_one
Predicts the target value of a set of features x
.
Parameters
- user — 'ID'
- item — 'ID'
- x — 'dict | None' — defaults to
None
Returns
Reward: The predicted preference from the user for the item.
rank
Rank models by decreasing order of preference for a given user.
Parameters
- user — 'ID'
- items — 'set[ID]'
- x — 'dict | None' — defaults to
None