Interactions

Interaction

class openrec.legacy.modules.interactions.Interaction(train=True, l2_reg=None, scope=None, reuse=False)

A direct inheritance of the Module.

PairwiseLog

class openrec.legacy.modules.interactions.PairwiseLog(user, item=None, item_bias=None, p_item=None, p_item_bias=None, n_item=None, n_item_bias=None, train=None, scope=None, reuse=False)

The PairwiseLog module minimizes the pairwise logarithm loss [bpr] as follows (regularization and bias terms are not included):

\[\min \sum_{(i, p, n)} -ln\sigma (u_i^T v_p - u_i^T v_n)\]

where \(u_i\) denotes the representation for user \(i\); \(v_p\) and \(v_n\) denote representations for positive item \(p\) and negative item \(n\), respectively.

Parameters:
  • user (Tensorflow tensor) – Representations for users involved in the interactions. Shape: [number of interactions, dimensionality of user representations].
  • item (Tensorflow tensor, required for testing) – Representations for items involved in the interactions. Shape: [number of interactions, dimensionality of item representations].
  • item_bias (Tensorflow tensor, required for testing) – Biases for items involved in the interactions. Shape: [number of interactions, 1].
  • p_item (Tensorflow tensor, required for training) – Representations for positive items involved in the interactions. Shape: [number of interactions, dimensionality of item representations].
  • p_item_bias (Tensorflow tensor, required for training) – Biases for positive items involved in the interactions. Shape: [number of interactions, 1].
  • n_item (Tensorflow tensor, required for training) – Representations for negative items involved in the interactions. Shape: [number of interactions, dimensionality of item representations].
  • n_item_bias (Tensorflow tensor, required for training) – Biases for negative items involved in the interactions. Shape: [number of interactions, 1].
  • train (bool, optionl) – An indicator for training or serving phase.
  • scope (str, optional) – Scope for module variables.
  • reuse (bool, optional) – Whether or not to reuse module variables.

References

[bpr]Rendle, S., Freudenthaler, C., Gantner, Z. and Schmidt-Thieme, L., 2009, June. BPR: Bayesian personalized ranking from implicit feedback. In Proceedings of the twenty-fifth conference on uncertainty in artificial intelligence (pp. 452-461). AUAI Press.
_build_serving_graph()

Build serving-specific computational graphs (may be overridden).

_build_training_graph()

Build training-specific computational graphs (may be overridden).

PairwiseEuDist

class openrec.legacy.modules.interactions.PairwiseEuDist(user, item=None, item_bias=None, p_item=None, p_item_bias=None, n_item=None, n_item_bias=None, weights=1.0, margin=1.0, train=None, scope=None, reuse=False)

The PairwiseEuDist module minimizes the weighted pairwise euclidean distance-based hinge loss [cml] as follows (regularization and bias terms are not included):

\[\min \sum_{(i, p, n)} w_{ip} [m + \lVert c(u_i)-c(v_p) \lVert^2 - \lVert c(u_i)-c(v_n) \lVert^2]_+\]

where \(c(x) = \frac{x}{\max(\lVert x \lVert, 1.0)}\); \(u_i\) denotes the representation for user \(i\); \(v_p\) and \(v_n\) denote representations for positive item \(p\) and negative item \(n\), respectively.

Parameters:
  • user (Tensorflow tensor) – Representations for users involved in the interactions. Shape: [number of interactions, dimensionality of user representations].
  • item (Tensorflow tensor, required for testing) – Representations for items involved in the interactions. Shape: [number of interactions, dimensionality of item representations].
  • item_bias (Tensorflow tensor, required for testing) – Biases for items involved in the interactions. Shape: [number of interactions, 1].
  • p_item (Tensorflow tensor, required for training) – Representations for positive items involved in the interactions. Shape: [number of interactions, dimensionality of item representations].
  • p_item_bias (Tensorflow tensor, required for training) – Biases for positive items involved in the interactions. Shape: [number of interactions, 1].
  • n_item (Tensorflow tensor, required for training) – Representations for negative items involved in the interactions. Shape: [number of interactions, dimensionality of item representations].
  • n_item_bias (Tensorflow tensor, required for training) – Biases for negative items involved in the interactions. Shape: [number of interactions, 1].
  • weights (Tensorflow tensor, optional) – Weights \(w\). Shape: [number of interactions, 1].
  • margin (float, optional) – Margin \(m\). Default to 1.0.
  • train (bool, optionl) – An indicator for training or serving phase.
  • scope (str, optional) – Scope for module variables.
  • reuse (bool, optional) – Whether or not to reuse module variables.

References

[cml]Hsieh, C.K., Yang, L., Cui, Y., Lin, T.Y., Belongie, S. and Estrin, D., 2017, April. Collaborative metric learning. In Proceedings of the 26th International Conference on World Wide Web (pp. 193-201). International World Wide Web Conferences Steering Committee.
_build_serving_graph()

Build serving-specific computational graphs (may be overridden).

_build_training_graph()

Build training-specific computational graphs (may be overridden).

PointwiseGeCE

class openrec.legacy.modules.interactions.PointwiseGeCE(user, item, item_bias, l2_reg=None, labels=None, train=None, scope=None, reuse=False)

The PointwiseGeCE module minimizes the cross entropy classification loss with generalized dot product as logits. The generalized dot-product [ncf] between user representation \(u_i\) and item representation \(v_j\) is defined as:

\[h^T(u_i \odot v_j)\]

where \(\odot\) denotes element-wise dot product of two vectors, and \(h\) denotes learnable model parameters.

Parameters:
  • user (Tensorflow tensor) – Representations for users involved in the interactions. Shape: [number of interactions, dimensionality of user representations].
  • item (Tensorflow tensor) – Representations for items involved in the interactions. Shape: [number of interactions, dimensionality of item representations].
  • item_bias (Tensorflow tensor) – Biases for items involved in the interactions. Shape: [number of interactions, 1].
  • labels (Tensorflow tensor, required for training.) – Groundtruth labels for the interactions. Shape [number of interactions, ].
  • l2_reg (float, optional) – Weight for L2 regularization, i.e., weight decay.
  • train (bool, optionl) – An indicator for training or servining phase.
  • scope (str, optional) – Scope for module variables.
  • reuse (bool, optional) – Whether or not to reuse module variables.

References

[ncf](1, 2, 3) He, X., Liao, L., Zhang, H., Nie, L., Hu, X. and Chua, T.S., 2017, April. Neural collaborative filtering. In Proceedings of the 26th International Conference on World Wide Web (pp. 173-182). International World Wide Web Conferences Steering Committee.
_build_serving_graph()

Build serving-specific computational graphs (may be overridden).

_build_training_graph()

Build training-specific computational graphs (may be overridden).

PointwiseGeMLPCE

class openrec.legacy.modules.interactions.PointwiseGeMLPCE(user_mlp, user_ge, item_mlp, item_ge, item_bias, dims, labels=None, dropout=None, alpha=0.5, l2_reg=None, train=None, scope=None, reuse=False)

The PointwiseGeMLPCE module minimizes the cross entropy classification loss. The logits are calculated as follows [ncf] (Bias term is not included).

\[\alpha h^T(u_i^{ge} \odot v_j^{ge}) + (1 - \alpha)MLP([u_i^{mlp}, v_j^{mlp}])\]
Parameters:
  • user_mlp (Tensorflow tensor) – \(u^{mlp}\) for users involved in the interactions. Shape: [number of interactions, dimensionality of \(u^{mlp}\)].
  • user_ge (Tensorflow tensor) – \(u^{ge}\) for users involved in the interactions. Shape: [number of interactions, dimensionality of \(u^{ge}\)].
  • item_mlp (Tensorflow tensor) – \(v^{mlp}\) for items involved in the interactions. Shape: [number of interactions, dimensionality of \(v^{mlp}\)].
  • item_ge (Tensorflow tensor) – \(v^{ge}\) for items involved in the interactions. Shape: [number of interactions, dimensionality of \(v^{ge}\)].
  • item_bias (Tensorflow tensor) – Biases for items involved in the interactions. Shape: [number of interactions, 1].
  • dims (Numpy array.) – Specify the size of the MLP (openrec.legacy.modules.extractions.MultiLayerFC).
  • labels (Tensorflow tensor, required for training.) – Groundtruth labels for the interactions. Shape [number of interactions, ].
  • dropout (float, optional.) – Dropout rate for MLP (intermediate layers only).
  • alpha (float, optional.) – Value of \(\alpha\). Default to 0.5.
  • l2_reg (float, optional) – Weight for L2 regularization, i.e., weight decay.
  • train (bool, optionl) – An indicator for training or servining phase.
  • scope (str, optional) – Scope for module variables.
  • reuse (bool, optional) – Whether or not to reuse module variables.
_build_serving_graph()

Build serving-specific computational graphs (may be overridden).

_build_shared_graph()

Build shared computational graphs across training and serving (may be overridden).

_build_training_graph()

Build training-specific computational graphs (may be overridden).

PointwiseMLPCE

class openrec.legacy.modules.interactions.PointwiseMLPCE(user, item, dims, item_bias=None, extra=None, l2_reg=None, labels=None, dropout=None, train=None, batch_serving=True, scope=None, reuse=False)

The PointwiseMLPCE module minimizes the cross entropy classification loss with outputs of a Multi-Layer Perceptron (MLP) as logits. The inputs to the MLP are the concatenation between user and item representations [ncf].

Parameters:
  • user (Tensorflow tensor) – Representations for users involved in the interactions. Shape: [number of interactions, dimensionality of user representations].
  • item (Tensorflow tensor) – Representations for items involved in the interactions. Shape: [number of interactions, dimensionality of item representations].
  • dims (Numpy array.) – Specify the size of the MLP (openrec.legacy.modules.extractions.MultiLayerFC).
  • item_bias (Tensorflow tensor, optional) – Biases for items involved in the interactions. Shape: [number of interactions, 1].
  • extra (Tensorflow tensor, optional) – Representations for context involved in the interactions. Shape: [number of interaction, dimensionality of context representations]
  • l2_reg (float, optional) – Weight for L2 regularization, i.e., weight decay.
  • labels (Tensorflow tensor, required for training.) – Groundtruth labels for the interactions. Shape [number of interactions, ].
  • dropout (float, optional) – Dropout rate for MLP (intermediate layers only).
  • train (bool, optional) – An indicator for training or servining phase.
  • batch_serving (bool, optional) – An indicator for batch serving / pointwise serving.
  • scope (str, optional) – Scope for module variables.
  • reuse (bool, optional) – Whether or not to reuse module variables.
_build_serving_graph()

Build serving-specific computational graphs (may be overridden).

_build_training_graph()

Build training-specific computational graphs (may be overridden).

PointwiseMSE

class openrec.legacy.modules.interactions.PointwiseMSE(user, item, item_bias, labels=None, a=1.0, b=1.0, sigmoid=False, train=True, batch_serving=True, scope=None, reuse=False)

The PointwiseMSE module minimizes the pointwise mean-squre-error [ctm] as follows (regularization terms are not included):

\[\min \sum_{ij}c_{ij}(r_{ij} - u_i^T v_j)^2\]

where \(u_i\) and \(v_j\) are representations for user \(i\) and item \(j\) respectively; \(c_{ij}=a\) if \(r_{ij}=1\), otherwise \(c_{ij}=b\).

Parameters:
  • user (Tensorflow tensor) – Representations for users involved in the interactions. Shape: [number of interactions, dimensionality of user representations].
  • item (Tensorflow tensor) – Representations for items involved in the interactions. Shape: [number of interactions, dimensionality of item representations].
  • item_bias (Tensorflow tensor) – Biases for items involved in the interactions. Shape: [number of interactions, 1].
  • labels (Tensorflow tensor, required for training) – Groundtruth labels for the interactions. Shape [number of interactions, ].
  • a (float, optional) – The value of \(c_{ij}\) if \(r_{ij}=1\).
  • b (float, optional) – The value of \(c_{ij}\) if \(r_{ij}=0\).
  • sigmoid (bool, optional) – Normalize the dot products, i.e., sigmoid(\(u_i^T v_j\)).
  • train (bool, optionl) – An indicator for training or servining phase.
  • batch_serving (bool, optional) – If True, the model calculates scores for all users against all items, and returns scores with shape [len(user), len(item)]. Otherwise, it returns scores for specified user item pairs (require len(user)==len(item)).
  • scope (str, optional) – Scope for module variables.
  • reuse (bool, optional) – Whether or not to reuse module variables.

References

[ctm]Wang, C. and Blei, D.M., 2011, August. Collaborative topic modeling for recommending scientific articles. In Proceedings of the 17th ACM SIGKDD international conference on Knowledge discovery and data mining (pp. 448-456). ACM.
_build_serving_graph()

Build serving-specific computational graphs (may be overridden).

_build_training_graph()

Build training-specific computational graphs (may be overridden).