TensorFlow Sıralamasına Genel Bakış

TensorFlow Sıralama kitaplığı, son araştırmalardan elde edilen köklü yaklaşımları ve teknikleri kullanarak makine öğrenimi modellerini sıralamak için ölçeklenebilir öğrenme oluşturmanıza yardımcı olur. Bir sıralama modeli, web sayfaları gibi benzer öğelerin bir listesini alır ve bu öğelerin, örneğin en alakalı sayfalardan en az alakalı sayfalara kadar optimize edilmiş bir listesini oluşturur. Modellerin sıralanmasını öğrenmenin arama, soru yanıtlama, öneri sistemleri ve diyalog sistemlerinde uygulamaları vardır. Keras API'sini kullanarak uygulamanız için bir sıralama modeli oluşturmayı hızlandırmak amacıyla bu kitaplığı kullanabilirsiniz. Sıralama kitaplığı ayrıca, dağıtılmış işleme stratejilerini kullanarak büyük veri kümeleriyle etkili bir şekilde çalışmak üzere model uygulamanızın ölçeğini büyütmenizi kolaylaştırmak için iş akışı yardımcı programları da sağlar.

Bu genel bakış, bu kitaplık ile öğrenme modellerini sıralamaya yönelik geliştirmenin kısa bir özetini sağlar, kitaplık tarafından desteklenen bazı gelişmiş teknikleri tanıtır ve sıralama uygulamaları için dağıtılmış işlemeyi desteklemek üzere sağlanan iş akışı yardımcı programlarını tartışır.

Modelleri sıralamayı öğrenmeyi geliştirme

TensorFlow Ranking kütüphanesiyle model oluşturmak şu genel adımları takip eder:

  1. Keras katmanlarını ( tf.keras.layers ) kullanarak bir puanlama işlevi belirtin
  2. Değerlendirme için kullanmak istediğiniz metrikleri tanımlayın (ör. tfr.keras.metrics.NDCGMetric ).
  3. tfr.keras.losses.SoftmaxLoss gibi bir kayıp işlevi belirtin
  4. Modeli tf.keras.Model.compile() ile derleyin ve verilerinizle eğitin

Film tavsiye etme eğitimi, bu kitaplık ile sıralamaya göre öğrenme modeli oluşturmanın temelleri konusunda size yol gösterir. Büyük ölçekli sıralama modelleri oluşturmaya ilişkin daha fazla bilgi için Dağıtılmış sıralama desteği bölümüne göz atın.

Gelişmiş sıralama teknikleri

TensorFlow Sıralama kitaplığı, Google araştırmacıları ve mühendisleri tarafından araştırılan ve uygulanan gelişmiş sıralama tekniklerinin uygulanmasına yönelik destek sağlar. Aşağıdaki bölümlerde bu tekniklerden bazılarına ve bunları uygulamanızda kullanmaya nasıl başlayacağınıza dair bir genel bakış sunulmaktadır.

BERT listesi giriş sıralaması

Sıralama kitaplığı, liste girişlerinin sıralamasını optimize etmek için BERT'i LTR modellemeyle birleştiren bir puanlama mimarisi olan TFR-BERT'in bir uygulamasını sağlar. Bu yaklaşımın örnek bir uygulaması olarak, bir sorguyu ve bu sorguya yanıt olarak sıralamak istediğiniz n belgenin bir listesini düşünün. LTR modelleri <query, document> çiftleri arasında bağımsız olarak puanlanan bir BERT temsilini öğrenmek yerine, temel doğruluk etiketlerine göre tüm sıralanmış listenin faydasını en üst düzeye çıkaran bir BERT temsilini ortaklaşa öğrenmek için bir sıralama kaybı uygular. Aşağıdaki şekil bu tekniği göstermektedir:

TensorFlow Sıralaması BERT diyagramı
Şekil 1 : Bireysel <sorgu, belge> çiftlerinin BERT temsillerini kullanan n belgelik bir liste üzerinde ortak bir LTR modelini gösteren TensorFlow Sıralaması BERT mimari diyagramı.

Bu yaklaşım, bir sorguya yanıt olarak belge listesini düzleştirerek <query, document> dizilerinden oluşan bir liste haline getirir. Bu demetler daha sonra BERT önceden eğitilmiş bir dil modeline beslenir. Tüm belge listesi için havuzda toplanan BERT çıktıları daha sonra TensorFlow Sıralamasında mevcut olan özel sıralama kayıplarından biriyle ortaklaşa ince ayar yapılır.

Bu mimari, önceden eğitilmiş dil modeli performansında önemli iyileştirmeler sağlayarak, özellikle önceden eğitilmiş birden fazla dil modeli birleştirildiğinde, çeşitli popüler sıralama görevleri için en son teknoloji performansı üretebilir . Bu teknik hakkında daha fazla bilgi için ilgili araştırmaya bakın. TensorFlow Ranking örnek kodundaki basit bir uygulamayla başlayabilirsiniz.

Sinir Sıralaması Genelleştirilmiş Toplama Modelleri (GAM)

Kredi uygunluk değerlendirmesi, reklam hedefleme veya tıbbi tedaviye yönelik rehberlik gibi bazı sıralama sistemleri için şeffaflık ve açıklanabilirlik kritik öneme sahiptir. Genelleştirilmiş toplamsal modelleri (GAM'ler) iyi anlaşılmış ağırlıklandırma faktörleriyle uygulamak, sıralama modelinizin daha açıklanabilir ve yorumlanabilir olmasına yardımcı olabilir.

GAM'ler, regresyon ve sınıflandırma görevleriyle kapsamlı bir şekilde incelenmiştir, ancak bunların bir sıralama uygulamasına nasıl uygulanacağı daha az açıktır. Örneğin, GAM'ler listedeki her bir öğeyi modellemek için basit bir şekilde uygulanabilirken, hem öğe etkileşimlerini hem de bu öğelerin sıralandığı bağlamı modellemek daha zorlu bir sorundur. TensorFlow Sıralaması, sıralama sorunları için tasarlanmış genelleştirilmiş toplamsal modellerin bir uzantısı olan sinirsel sıralama GAM'ın bir uygulamasını sağlar. GAM'lerin TensorFlow Sıralaması uygulaması , modelinizin özelliklerine belirli ağırlıklandırma eklemenizi sağlar.

Aşağıdaki otel sıralama sistemi çizimi, birincil sıralama özellikleri olarak alaka düzeyini, fiyatı ve mesafeyi kullanır. Bu model, kullanıcının cihaz bağlamına göre bu boyutları farklı şekilde tartmak için bir GAM tekniği uygular. Örneğin, sorgu bir telefondan geldiyse kullanıcıların yakındaki bir oteli aradıkları varsayılarak mesafeye daha fazla ağırlık verilir.

Sıralama örneği için Genelleştirilmiş Toplama Modeli
Şekil 2 : Yerel arama için sinir sıralaması GAM'ın uygulanması. Fiyat veya mesafe gibi her bir girdi özelliği için bir alt model, şeffaflık sağlayan, incelenebilen bir alt puan üretir. Alt model puanlarının ağırlıklarını belirlemek için kullanıcı cihaz türü gibi bağlam özellikleri kullanılabilir.

GAM'leri sıralama modelleriyle kullanma hakkında daha fazla bilgi için ilgili araştırmaya bakın. Bu tekniğin örnek uygulamasını TensorFlow Ranking örnek kodunda başlatabilirsiniz.

Dağıtılmış sıralama desteği

TensorFlow Ranking, uçtan uca büyük ölçekli sıralama sistemleri oluşturmak için tasarlanmıştır: veri işleme, model oluşturma, değerlendirme ve üretim dağıtımı dahil. Heterojen yoğun ve seyrek özellikleri işleyebilir, milyonlarca veri noktasına kadar ölçeklenebilir ve büyük ölçekli sıralama uygulamaları için dağıtılmış eğitimi desteklemek üzere tasarlanmıştır.

TensorFlow Sıralaması sınıflarının şeması
Şekil 3 : Dağıtılmış işlemeyi desteklemek için TensorFlow Sıralaması sınıflarının diyagramı. Yeşil modüller sıralama modelinize göre özelleştirilebilir.

Kitaplık, tekrarlanan standart kodları önlemek ve sıralama modelinizin eğitilmesinden hizmete sunulmasına kadar uygulanabilecek dağıtılmış çözümler oluşturmak için optimize edilmiş bir sıralama hattı mimarisi sağlar. Sıralama hattı, MirroredStrategy , TPUStrategy , MultiWorkerMirroredStrategy ve ParameterServerStrategy dahil olmak üzere TensorFlow'un dağıtılmış stratejilerinin çoğunu destekler. Sıralama hattı, eğitimli sıralama modelini çeşitli giriş imzalarını destekleyen tf.saved_model formatında dışa aktarabilir. Ayrıca, Sıralama hattı, uzun süreli arızalardan kurtulmaya yardımcı olmak için TensorBoard veri görselleştirmesi ve BackupAndRestore desteği de dahil olmak üzere faydalı geri aramalar sağlar. eğitim operasyonları.

Sıralama kitaplığı, bir model oluşturucuyu, veri oluşturucuyu ve hiperparametreleri girdi olarak alan bir dizi tfr.keras.pipeline sınıfı sağlayarak dağıtılmış bir eğitim uygulaması oluşturmaya yardımcı olur. Keras tabanlı tfr.keras.ModelBuilder sınıfı, dağıtılmış işleme için bir model oluşturmanıza olanak tanır ve genişletilebilir OutputCreator, Preprocessor ve Scorer sınıflarıyla çalışır:

TensorFlow Ranking ardışık düzen sınıfları aynı zamanda hiperparametreleri içerebilen eğitim verilerini ayarlamak için bir DatasetBuilder ile de çalışır. Son olarak, boru hattının kendisi bir PipelineHparams nesnesi olarak bir dizi hiper parametreyi içerebilir.

Dağıtılmış sıralama eğitimini kullanarak dağıtılmış sıralama modelleri oluşturmaya başlayın.