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 un cuaderno

TensorFlow clasificación es una biblioteca de código abierto para desarrollar escalable, neuronal de aprendizaje para clasificar los modelos (LTR). Modelos de clasificación se utilizan normalmente en los sistemas de búsqueda y recomendación, pero también se han aplicado con éxito en una amplia variedad de campos, incluyendo la traducción automática , sistemas de diálogo de comercio electrónico , solucionadores SAT , planificación de ciudad inteligente , 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 estándar de pérdida puntual, por pares y por lista para los modelos LTR. También es compatible con una amplia gama de indicadores de clasificación, incluyendo Mean recíproco Rango (MRR) y normalizado con descuento acumulado de ganancia (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.

Empezar a trabajar con la biblioteca de clasificación TensorFlow por el control de la clase particular . Más información sobre las capacidades de la biblioteca mediante la lectura de la Descripción general Comprobar el código fuente para TensorFlow Clasificación en GitHub .