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

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 = {
    name: tf.keras.Input(shape=(None, 1), dtype=tf.float32, name=name)
    for name in ds.element_spec[0]
    if name != "_mask"
}
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)
Run dans un ordinateur portable

Tensorflow Le classement est une bibliothèque open source pour le développement évolutif, neurales d' apprentissage pour classer les modèles (LRT). Modèles classement sont généralement utilisés dans les systèmes de recherche et de recommandation, mais ont également été appliquées avec succès dans une grande variété de domaines, y compris la traduction automatique , les systèmes de dialogue e-commerce , solveurs SAT , une planification intelligente de la ville , 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, y compris réciproque Rang moyen (MRR) et Normalisée à prix réduits cumulé Gain (NDCG), afin que vous puissiez évaluer et de 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 construites par les ingénieurs en apprentissage automatique de Google.

Commencez avec la bibliothèque Classement tensorflow en consultant le tutoriel . En savoir plus sur les capacités de la bibliothèque en lisant l' Aperçu Vérifiez le code source pour tensorflow Classement sur GitHub .