item_factors {cmfrec}R Documentation

Determine latent factors for a new item

Description

Calculate latent factors for a new item, based on either new 'X' data, new 'I' data, or both.

Be aware that the package is user/row centric, and this function is provided for quick experimentation purposes only. Calculating item factors will be slower than calculating user factors (except for the 'ContentBased' model for which both types of predictions are equally fast and equally supported). as it will not make usage of the precomputed matrices. If item-based predictions are required, it's recommended to use instead the function swap.users.and.items and then use the resulting object with factors_single or factors.

Usage

item_factors(
  model,
  X = NULL,
  X_col = NULL,
  X_val = NULL,
  I = NULL,
  I_col = NULL,
  I_val = NULL,
  I_bin = NULL,
  weight = NULL,
  output_bias = FALSE
)

Arguments

model

A collective matrix factorization model from this package - see fit_models for details.

X

New 'X' data, either as a numeric vector (class 'numeric'), or as a sparse vector from package 'Matrix' (class 'dsparseVector'). If the 'X' to which the model was fit was a 'data.frame', the user/row indices will have been reindexed internally, and the numeration can be found under 'model$info$user_mapping'. Alternatively, can instead pass the column indices and values and let the model reindex them (see 'X_col' and 'X_val'). Should pass at most one of 'X' or 'X_col'+'X_val'.

Be aware that, unlikely in pretty much every other function in this package, here the values are for one column of 'X', not one row like in e.g. factors_single.

Dense 'X' data is not supported for 'CMF_implicit' or 'OMF_implicit'.

Not supported for the 'ContentBased' model.

X_col

New 'X' data in sparse vector format, with 'X_col' denoting the users/rows which are not missing. If the 'X' to which the model was fit was a 'data.frame', here should pass IDs matching to the first column of that 'X', which will be reindexed internally. Otherwise, should have row indices with numeration starting at 1 (passed as an integer vector). Should pass at most one of 'X' or 'X_col'+'X_val'.

Not supported for the 'ContentBased' model.

X_val

New 'X' data in sparse vector format, with 'X_val' denoting the associated values to each entry in 'X_col' (should be a numeric vector of the same length as 'X_col'). Should pass at most one of 'X' or 'X_col'+'X_val'.

Not supported for the 'ContentBased' model.

I

New 'I' data, either as a numeric vector (class 'numeric'), or as a sparse vector from package 'Matrix' (class 'dsparseVector'). Alternatively, if 'I' is sparse, can instead pass the indices of the non-missing columns and their values separately (see 'I_col'). Should pass at most one of 'I' or 'I_col'+'I_val'.

I_col

New 'I' data in sparse vector format, with 'I_col' denoting the attributes/columns which are not missing. Should have numeration starting at 1 (should be an integer vector). Should pass at most one of 'I' or 'I_col'+'I_val'.

I_val

New 'I' data in sparse vector format, with 'I_val' denoting the associated values to each entry in 'I_col' (should be a numeric vector of the same length as 'I_col'). Should pass at most one of 'I' or 'I_col'+'I_val'.

I_bin

Binary columns of 'I' on which a sigmoid transformation will be applied. Should be passed as a numeric vector. Note that 'I' and 'I_bin' are not mutually exclusive.

weight

(Only for the explicit-feedback models) Associated weight to each non-missing observation in 'X'. Must have the same number of entries as 'X' - that is, if passing a dense vector of length 'm', 'weight' should be a numeric vector of length 'm' too, if passing a sparse vector, should have a length corresponding to the number of non-missing elements.

output_bias

Whether to also return the item bias determined by the model given the data in 'X' (for explicit-feedback models fit with item biases).

Value

If passing 'output_bias=FALSE', will return a vector with the obtained latent factors for this item. If passing 'output_bias=TRUE', the result will be a list with entry 'factors' having the above vector, and entry 'bias' having the estimated bias.

See Also

factors_single predict_new_items


[Package cmfrec version 3.5.1-3 Index]