TensorFlow Sıralamasına Genel Bakış,TensorFlow Sıralamasına Genel Bakış

TensorFlow Ranking 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 optimize edilmiş bir listesini oluşturur, örneğin en alakalı ve en az alakalı sayfalar. Modelleri sıralamayı öğrenmenin arama, soru cevaplama, ö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 için bu kitaplığı kullanabilirsiniz. Sıralama kitaplığı ayrıca, dağıtılmış işleme stratejilerini kullanarak büyük veri kümeleriyle etkin bir şekilde çalışmak üzere model uygulamanızın ölçeğini büyütmeyi kolaylaştırmak için iş akışı yardımcı programları sağlar.

Bu genel bakış, bu kitaplık ile modelleri sıralamak için öğrenme 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 için sağlanan iş akışı yardımcı programlarını tartışır.

Modelleri sıralamak için öğrenmeyi geliştirme

TensorFlow Ranking kitaplığı ile model oluşturmak şu genel adımları takip eder:

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

Filmleri tavsiye et öğreticisi , bu kitaplıkla bir model sıralamayı öğrenmenin 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 bakı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ı için destek sağlar. Aşağıdaki bölümler, bu tekniklerin bazılarına ve bunları uygulamanızda kullanmaya nasıl başlayacağınıza ilişkin bir genel bakış sağlar.

BERT listesi giriş sıralaması

Sıralama kitaplığı, liste girdilerinin sırasını optimize etmek için BERT ile LTR modellemesini birleştiren bir puanlama mimarisi olan TFR-BERT'nin 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 gösterimini öğrenmek yerine, yer gerçeği etiketlerine göre tüm sıralanmış listenin faydasını en üst düzeye çıkaran bir BERT gösterimini ortaklaşa öğrenmek için bir sıralama kaybı uygular. Aşağıdaki şekil bu tekniği göstermektedir:

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

Bu yaklaşım, bir sorguya yanıt olarak sıralanacak bir belge listesini bir <query, document> demetleri listesine düzleştirir. Bu demetler daha sonra bir BERT önceden eğitilmiş dil modeline beslenir. Tüm belge listesi için havuzlanmış BERT çıktıları daha sonra TensorFlow Sıralamasında bulunan özel sıralama kayıplarından biri ile birlikte ince ayar yapılır.

Bu mimari, özellikle birden fazla önceden eğitilmiş dil modeli birleştirildiğinde, birkaç popüler sıralama görevi için son teknoloji ürünü performans üreterek önceden eğitilmiş dil modeli performansında önemli iyileştirmeler sağlayabilir. Bu teknik hakkında daha fazla bilgi için ilgili araştırmaya bakın. TensorFlow Ranking örnek kodunda basit bir uygulama ile başlayabilirsiniz.

Sinirsel Sıralama Genelleştirilmiş Katkı Modelleri (GAM)

Kredi uygunluk değerlendirmesi, reklam hedefleme veya tıbbi tedavi için rehberlik gibi bazı sıralama sistemleri için şeffaflık ve açıklanabilirlik kritik hususlardır. İyi anlaşılmış ağırlık faktörlerine sahip Genelleştirilmiş toplamsal modellerin (GAM'ler) uygulanması, 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çe uygulanabilirken, hem öğe etkileşimlerini hem de bu öğelerin sıralandığı bağlamı modellemek daha zorlu bir problemdir. TensorFlow Ranking, sıralama problemleri için tasarlanmış genelleştirilmiş katkı modellerinin bir uzantısı olan nöral sıralama GAM'nin bir uygulamasını sağlar. GAM'lerin TensorFlow Sıralaması uygulaması , modelinizin özelliklerine belirli ağırlıklar eklemenize olanak tanır.

Bir otel sıralama sisteminin aşağıdaki çizimi, birincil sıralama özellikleri olarak alaka düzeyi, 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 mesafe daha fazla ağırlıklandırılır.

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

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

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ıralama 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 modeliniz için özelleştirilebilir.

Kitaplık, tekrar eden, standart kodlardan kaçınmak ve sıralama modelinizi eğitmekten ona hizmet etmeye kadar uygulanabilecek dağıtılmış çözümler oluşturmak için optimize edilmiş bir sıralama boru hattı mimarisi sağlar. Sıralama ardışık düzeni, MirroredStrategy , TPUStrategy , MultiWorkerMirrorredStrategy ve ParameterServerStrategy dahil olmak üzere TensorFlow'un dağıtılmış stratejilerinin çoğunu destekler. Sıralama ardışık düzeni, eğitimli sıralama modelini, birkaç giriş imzasını destekleyen tf.saved_model biçiminde dışa aktarabilir. Buna ek olarak, Sıralama işlem hattı, TensorBoard veri görselleştirme desteği ve uzun süreli arızalardan kurtarmaya yardımcı olmak için BackupAndRestore dahil olmak üzere yararlı geri aramalar sağlar. eğitim operasyonları.

Sıralama kitaplığı, girdi olarak bir model oluşturucu, veri oluşturucu ve hiper parametreleri 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 InputCreator, Preprocessor ve Scorer sınıflarıyla çalışır:

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

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

,

TensorFlow Ranking 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 optimize edilmiş bir listesini oluşturur, örneğin en alakalı ve en az alakalı sayfalar. Modelleri sıralamayı öğrenmenin arama, soru cevaplama, ö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 için bu kitaplığı kullanabilirsiniz. Sıralama kitaplığı ayrıca, dağıtılmış işleme stratejilerini kullanarak büyük veri kümeleriyle etkin bir şekilde çalışmak üzere model uygulamanızın ölçeğini büyütmeyi kolaylaştırmak için iş akışı yardımcı programları sağlar.

Bu genel bakış, bu kitaplık ile modelleri sıralamak için öğrenme 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 için sağlanan iş akışı yardımcı programlarını tartışır.

Modelleri sıralamak için öğrenmeyi geliştirme

TensorFlow Ranking kitaplığı ile model oluşturmak şu genel adımları takip eder:

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

Filmleri tavsiye et öğreticisi , bu kitaplıkla bir model sıralamayı öğrenmenin 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 bakı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ı için destek sağlar. Aşağıdaki bölümler, bu tekniklerin bazılarına ve bunları uygulamanızda kullanmaya nasıl başlayacağınıza ilişkin bir genel bakış sağlar.

BERT listesi giriş sıralaması

Sıralama kitaplığı, liste girdilerinin sırasını optimize etmek için BERT ile LTR modellemesini birleştiren bir puanlama mimarisi olan TFR-BERT'nin 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 gösterimini öğrenmek yerine, yer gerçeği etiketlerine göre tüm sıralanmış listenin faydasını en üst düzeye çıkaran bir BERT gösterimini ortaklaşa öğrenmek için bir sıralama kaybı uygular. Aşağıdaki şekil bu tekniği göstermektedir:

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

Bu yaklaşım, bir sorguya yanıt olarak sıralanacak bir belge listesini bir <query, document> demetleri listesine düzleştirir. Bu demetler daha sonra bir BERT önceden eğitilmiş dil modeline beslenir. Tüm belge listesi için havuzlanmış BERT çıktıları daha sonra TensorFlow Sıralamasında bulunan özel sıralama kayıplarından biri ile birlikte ince ayar yapılır.

Bu mimari, özellikle birden fazla önceden eğitilmiş dil modeli birleştirildiğinde, birkaç popüler sıralama görevi için son teknoloji ürünü performans üreterek önceden eğitilmiş dil modeli performansında önemli iyileştirmeler sağlayabilir. Bu teknik hakkında daha fazla bilgi için ilgili araştırmaya bakın. TensorFlow Ranking örnek kodunda basit bir uygulama ile başlayabilirsiniz.

Sinirsel Sıralama Genelleştirilmiş Katkı Modelleri (GAM)

Kredi uygunluk değerlendirmesi, reklam hedefleme veya tıbbi tedavi için rehberlik gibi bazı sıralama sistemleri için şeffaflık ve açıklanabilirlik kritik hususlardır. İyi anlaşılmış ağırlık faktörlerine sahip Genelleştirilmiş toplamsal modellerin (GAM'ler) uygulanması, 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çe uygulanabilirken, hem öğe etkileşimlerini hem de bu öğelerin sıralandığı bağlamı modellemek daha zorlu bir problemdir. TensorFlow Ranking, sıralama problemleri için tasarlanmış genelleştirilmiş katkı modellerinin bir uzantısı olan nöral sıralama GAM'nin bir uygulamasını sağlar. GAM'lerin TensorFlow Sıralaması uygulaması , modelinizin özelliklerine belirli ağırlıklar eklemenize olanak tanır.

Bir otel sıralama sisteminin aşağıdaki çizimi, birincil sıralama özellikleri olarak alaka düzeyi, 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 mesafe daha fazla ağırlıklandırılır.

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

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

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ıralama 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 modeliniz için özelleştirilebilir.

Kitaplık, tekrar eden, standart kodlardan kaçınmak ve sıralama modelinizi eğitmekten ona hizmet etmeye kadar uygulanabilecek dağıtılmış çözümler oluşturmak için optimize edilmiş bir sıralama boru hattı mimarisi sağlar. Sıralama ardışık düzeni, MirroredStrategy , TPUStrategy , MultiWorkerMirrorredStrategy ve ParameterServerStrategy dahil olmak üzere TensorFlow'un dağıtılmış stratejilerinin çoğunu destekler. Sıralama ardışık düzeni, eğitimli sıralama modelini, birkaç giriş imzasını destekleyen tf.saved_model biçiminde dışa aktarabilir. Buna ek olarak, Sıralama işlem hattı, TensorBoard veri görselleştirme desteği ve uzun süreli arızalardan kurtarmaya yardımcı olmak için BackupAndRestore dahil olmak üzere yararlı geri aramalar sağlar. eğitim operasyonları.

Sıralama kitaplığı, girdi olarak bir model oluşturucu, veri oluşturucu ve hiper parametreleri 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 InputCreator, Preprocessor ve Scorer sınıflarıyla çalışır:

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

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