hopwise.model.context_aware_recommender.afm

Reference:

Jun Xiao et al. “Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks” in IJCAI 2017.

Classes

AFM

AFM is a attention based FM model that predict the final score with the attention of input feature.

Module Contents

class hopwise.model.context_aware_recommender.afm.AFM(config, dataset)[source]

Bases: hopwise.model.abstract_recommender.ContextRecommender

AFM is a attention based FM model that predict the final score with the attention of input feature.

attention_size
dropout_prob
reg_weight
num_pair = 0.0
attlayer
p
dropout_layer
sigmoid
loss
_init_weights(module)[source]
build_cross(feat_emb)[source]

Build the cross feature columns of feature columns

Parameters:

feat_emb (torch.FloatTensor) – input feature embedding tensor. shape of [batch_size, field_size, embed_dim].

Returns:

  • torch.FloatTensor: Left part of the cross feature. shape of [batch_size, num_pairs, emb_dim].

  • torch.FloatTensor: Right part of the cross feature. shape of [batch_size, num_pairs, emb_dim].

Return type:

tuple

afm_layer(infeature)[source]

Get the attention-based feature interaction score

Parameters:

infeature (torch.FloatTensor) – input feature embedding tensor. shape of [batch_size, field_size, embed_dim].

Returns:

Result of score. shape of [batch_size, 1].

Return type:

torch.FloatTensor

forward(interaction)[source]
calculate_loss(interaction)[source]

Calculate the training loss for a batch data.

Parameters:

interaction (Interaction) – Interaction class of the batch.

Returns:

Training loss, shape: []

Return type:

torch.Tensor

predict(interaction)[source]

Predict the scores between users and items.

Parameters:

interaction (Interaction) – Interaction class of the batch.

Returns:

Predicted scores for given users and items, shape: [batch_size]

Return type:

torch.Tensor