Ölçeklenebilir, sıralama için sinirsel öğrenme (LTR) modelleri

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)
bir Notebook Çalıştır

TensorFlow Sıralaması ölçeklenebilir, nöral geliştirmek için bir açık kaynak kütüphanesidir sıralaması için öğrenme (LTR) modelleri. Sıralama modelleri genellikle arama ve öneri sistemlerinde kullanılan, aynı zamanda başarılı bir de dahil olmak üzere alanlarda geniş bir yelpazede uygulanmıştır makine çevirisi , diyalog sistemleri , e-ticaret , SAT çözücüler , akıllı şehir planlama ve hatta hesaplamalı biyoloji.

Sıralama modeli, öğelerin (web sayfaları, belgeler, ürünler, filmler vb.) bir listesini alır ve genellikle yanıt olarak en alakalı öğeler en üstte ve en az alakalı öğeler en altta olacak şekilde optimize edilmiş bir sırayla bir liste oluşturur. bir kullanıcı sorgusu:

Bu kitaplık, LTR modelleri için standart noktasal, ikili ve liste düzeyinde kayıp işlevlerini destekler. Aynı zamanda da dahil olmak üzere sıralama metrikleri geniş bir yelpazede destekler Ortalama Karşılıklı Rank (MRR) ve normalize Kümülatif Kazanç İskontolu değerlendirmek ve bu sıralamanızı görev için yaklaşımlar karşılaştırabilirsiniz böylece, (NDCG). Sıralama kitaplığı ayrıca Google'daki makine öğrenimi mühendisleri tarafından araştırılan, test edilen ve oluşturulan gelişmiş sıralama yaklaşımları için işlevler sağlar.

Kontrol ederek TensorFlow Sıralaması kütüphane ile başlayın öğretici . Okuyarak daha fazla kütüphanenin özellikleri hakkında bilgi Bakış TensorFlow üzerinde Sıralaması için kaynak koduna göz Kontrolü GitHub'dan .