مدل‌های مقیاس‌پذیر، یادگیری عصبی برای رتبه‌بندی (LTR)، مدل‌های مقیاس‌پذیر، یادگیری عصبی برای رتبه‌بندی (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 = {
    "float_features": tf.keras.Input(shape=(None, 136), dtype=tf.float32)
}
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)

TensorFlow Ranking یک کتابخانه منبع باز برای توسعه مدل های مقیاس پذیر و عصبی برای رتبه بندی (LTR) است. مدل‌های رتبه‌بندی معمولاً در سیستم‌های جستجو و توصیه استفاده می‌شوند، اما همچنین با موفقیت در زمینه‌های مختلف، از جمله ترجمه ماشینی ، سیستم‌های گفتگو ، تجارت الکترونیک ، حل‌کننده‌های SAT ، برنامه‌ریزی شهر هوشمند ، و حتی زیست‌شناسی محاسباتی نیز با موفقیت استفاده شده‌اند.

یک مدل رتبه‌بندی فهرستی از موارد (صفحات وب، اسناد، محصولات، فیلم‌ها و غیره) را می‌گیرد و فهرستی را به ترتیب بهینه‌سازی شده تولید می‌کند، مانند بیشتر موارد مرتبط در بالا و کمترین موارد مرتبط در پایین، معمولاً در پاسخ به یک پرسش کاربر:

این کتابخانه از توابع از دست دادن استاندارد نقطه ای، زوجی و لیستی برای مدل های LTR پشتیبانی می کند. همچنین از طیف گسترده‌ای از معیارهای رتبه‌بندی، از جمله میانگین رتبه متقابل (MRR) و سود تجمعی تنزیل‌شده عادی (NDCG) پشتیبانی می‌کند، بنابراین می‌توانید این رویکردها را برای کار رتبه‌بندی خود ارزیابی و مقایسه کنید. کتابخانه رتبه‌بندی همچنین عملکردهایی را برای رویکردهای رتبه‌بندی پیشرفته ارائه می‌دهد که توسط مهندسین یادگیری ماشین در Google مورد تحقیق، آزمایش و ساخته شده‌اند.

با بررسی این آموزش ، با کتابخانه رتبه بندی TensorFlow شروع کنید. با مطالعه مرور کلی درباره قابلیت های کتابخانه بیشتر بیاموزید کد منبع رتبه بندی TensorFlow را در GitHub بررسی کنید.