Model neural learning to rank (LTR) yang dapat diskalakan

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 di Notebook

TensorFlow Ranking adalah sebuah perpustakaan open-source untuk mengembangkan scalable, saraf belajar untuk peringkat model (LTR). Model Peringkat biasanya digunakan dalam sistem pencarian dan rekomendasi, tetapi juga telah berhasil diterapkan di berbagai bidang, termasuk terjemahan mesin , sistem dialog e-commerce , SAT pemecah , perencanaan kota yang cerdas , dan bahkan biologi komputasi.

Model peringkat mengambil daftar item (halaman web, dokumen, produk, film, dll.) dan menghasilkan daftar dalam urutan yang dioptimalkan, seperti item yang paling relevan di bagian atas dan item yang paling tidak relevan di bagian bawah, biasanya sebagai tanggapan terhadap permintaan pengguna:

Pustaka ini mendukung fungsi pointwise, pairwise, dan listwise loss standar untuk model LTR. Ini juga mendukung berbagai peringkat metrik, termasuk Berarti Reciprocal Ranking (MRR) dan Normalisasi Diskon kumulatif Gain (NDCG), sehingga Anda dapat mengevaluasi dan membandingkan ini pendekatan untuk tugas peringkat Anda. Pustaka Pemeringkatan juga menyediakan fungsi untuk pendekatan pemeringkatan yang disempurnakan yang diteliti, diuji, dan dibuat oleh insinyur pembelajaran mesin di Google.

Memulai dengan TensorFlow perpustakaan Ranking dengan memeriksa tutorial . Pelajari lebih lanjut tentang kemampuan perpustakaan dengan membaca Ikhtisar Periksa kode sumber untuk TensorFlow Peringkat di GitHub .