Modelos escalables de aprendizaje neuronal para clasificar (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 = {
    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)
Ejecutar en una computadora portátil

TensorFlow Ranking es una biblioteca de código abierto para desarrollar modelos escalables de aprendizaje neuronal para clasificar (LTR). Los modelos de clasificación se utilizan normalmente en sistemas de búsqueda y recomendación, pero también se han aplicado con éxito en una amplia variedad de campos, incluida la traducción automática , el comercio electrónico de sistemas de diálogo , los solucionadores de SAT , la planificación de ciudades inteligentes e incluso la biología computacional.

Un modelo de clasificación toma una lista de elementos (páginas web, documentos, productos, películas, etc.) y genera una lista en un orden optimizado, como los elementos más relevantes en la parte superior y los elementos menos relevantes en la parte inferior, generalmente en respuesta a una consulta de usuario:

Esta biblioteca admite funciones de pérdida estándar por puntos, por pares y por listas para modelos LTR. También es compatible con una amplia gama de métricas de clasificación, incluida la clasificación recíproca media (MRR) y la ganancia acumulativa descontada normalizada (NDCG), para que pueda evaluar y comparar estos enfoques para su tarea de clasificación. La biblioteca de clasificación también proporciona funciones para enfoques de clasificación mejorados que son investigados, probados y creados por ingenieros de aprendizaje automático en Google.

Comience con la biblioteca TensorFlow Ranking consultando el tutorial . Obtenga más información sobre las capacidades de la biblioteca leyendo la Descripción general Consulte el código fuente de TensorFlow Ranking en GitHub .