Modèles évolutifs d'apprentissage neuronal pour classer (LTR),Modèles évolutifs d'apprentissage neuronal pour classer (LTR)

import tensorflow as tf
import tensorflow_datasets as tfds
import tensorflow_ranking as tfr

# Prep data
ds = tfds.load("mslr_web/10k_fold1", split="train")
ds = ds.map(lambda feature_map: {
    "_mask": tf.ones_like(feature_map["label"], dtype=tf.bool),
    **feature_map
})
ds = ds.shuffle(buffer_size=1000).padded_batch(batch_size=32)
ds = ds.map(lambda feature_map: (
    feature_map, tf.where(feature_map["_mask"], feature_map.pop("label"), -1.)))

# Create a model
inputs = {
    "float_features": tf.keras.Input(shape=(None, 136), dtype=tf.float32)
}
norm_inputs = [tf.keras.layers.BatchNormalization()(x) for x in inputs.values()]
x = tf.concat(norm_inputs, axis=-1)
for layer_width in [128, 64, 32]:
  x = tf.keras.layers.Dense(units=layer_width)(x)
  x = tf.keras.layers.Activation(activation=tf.nn.relu)(x)
scores = tf.squeeze(tf.keras.layers.Dense(units=1)(x), axis=-1)

# Compile and train
model = tf.keras.Model(inputs=inputs, outputs=scores)
model.compile(
    optimizer=tf.keras.optimizers.Adam(learning_rate=0.01),
    loss=tfr.keras.losses.SoftmaxLoss(),
    metrics=tfr.keras.metrics.get("ndcg", topn=5, name="NDCG@5"))
model.fit(ds, epochs=3)

TensorFlow Ranking est une bibliothèque open source permettant de développer des modèles évolutifs d'apprentissage neuronal pour classer (LTR). Les modèles de classement sont généralement utilisés dans les systèmes de recherche et de recommandation, mais ont également été appliqués avec succès dans une grande variété de domaines, notamment la traduction automatique , les systèmes de dialogue, le commerce électronique , les solveurs SAT , la planification urbaine intelligente et même la biologie computationnelle.

Un modèle de classement prend une liste d'éléments (pages Web, documents, produits, films, etc.) et génère une liste dans un ordre optimisé, comme les éléments les plus pertinents en haut et les éléments les moins pertinents en bas, généralement en réponse à une requête utilisateur :

Cette bibliothèque prend en charge les fonctions de perte standard par point, par paire et par liste pour les modèles LTR. Il prend également en charge un large éventail de mesures de classement, notamment le classement réciproque moyen (MRR) et le gain cumulé actualisé normalisé (NDCG), afin que vous puissiez évaluer et comparer ces approches pour votre tâche de classement. La bibliothèque de classement fournit également des fonctions pour des approches de classement améliorées qui sont recherchées, testées et créées par des ingénieurs en apprentissage automatique de Google.

Commencez avec la bibliothèque TensorFlow Ranking en consultant le didacticiel . Pour en savoir plus sur les fonctionnalités de la bibliothèque, lisez la vue d'ensemble Découvrez le code source de TensorFlow Ranking sur GitHub .