所以我有以下的目标函数。它一次只适用于一个培训示例(我有避免批处理的理由)。正如你所看到的,它非常轻,所以我希望它运行得非常快。在def objective(data, lam, item_biases, latent_items, latent_users):
user = data[0]
rated_item = data[1]
unrated_item = data[2]
rated_item_bias = item_biases[rated_item]
unrated_item_bias = item_biases[unrated_item]
rated_latent_item = latent_items[rated_item]
unrated_latent_item = latent_items[unrated_item]
latent_user = latent_users[user]
rated_pred = rated_item_bias + tf.reduce_sum(tf.multiply(rated_latent_item, latent_user))
unrated_pred = unrated_item_bias + tf.reduce_sum(tf.multiply(unrated_latent_item, latent_user))
difference = rated_pred - unrated_pred
obj = tf.sigmoid(difference)
obj += lam * tf.reduce_sum(rated_item_bias**2)
obj += lam * tf.reduce_sum(unrated_item_bias**