Bir öneri modelinin nasıl önerilerde bulunacağı, sahip olduğunuz verilerin türüne bağlı olacaktır. Yalnızca geçmişte hangi etkileşimlerin gerçekleştiğine dair verileriniz varsa, muhtemelen işbirlikçi filtrelemeyle ilgileneceksiniz. Kullanıcıyı ve etkileşimde bulunduğu öğeleri tanımlayan verileriniz varsa (örneğin, kullanıcının yaşı, bir restoranın mutfağının kategorisi, bir film için ortalama inceleme), mevcut anda bu özelliklere göre yeni bir etkileşimin olasılığını modelleyebilirsiniz. içerik ve bağlam filtreleme ekleyerek.
Tavsiye için Matris Faktorizasyonu
Matris çarpanlarına ayırma (MF) teknikleri, kelime yerleştirme ve konu modelleme de dahil olmak üzere pek çok popüler algoritmanın temelini oluşturur ve işbirliğine dayalı filtrelemeye dayalı öneri kapsamında baskın bir metodoloji haline gelmiştir. MF, öneriler sunmak amacıyla kullanıcının derecelendirmelerindeki veya etkileşimlerindeki benzerliği hesaplamak için kullanılabilir. Aşağıdaki basit kullanıcı öğesi matrisinde Ted ve Carol, B ve C filmlerini seviyor. Bob, B filmini seviyor. Bob'a bir film önermek için matris çarpanlarına ayırma, B'yi beğenen kullanıcıların C'yi de beğendiğini hesaplar; dolayısıyla C, Bob için olası bir öneridir.
Alternatif en küçük kareler (ALS) kullanılarak matris çarpanlarına ayırma algoritma, u × f ve f × i (burada u kullanıcı sayısı, i öğe sayısı ve f gizli özelliklerin sayısı). Faktör matrisleri, algoritmanın keşfetmeye çalıştığı gizli veya gizli özellikleri temsil eder. Bir matris, her kullanıcının gizli veya gizli özelliklerini tanımlamaya çalışır, diğeri ise her filmin gizli özelliklerini tanımlamaya çalışır. ALS algoritması, her kullanıcı ve her öğe için kullanıcıyı veya öğeyi temsil eden (f) sayısal “faktörleri” yinelemeli olarak öğrenir. Her yinelemede algoritma alternatif olarak bir faktör matrisini sabitler ve diğeri için optimizasyon yapar ve bu süreç yakınsayana kadar devam eder.
CuMF bir NVIDIA'dır® CUDA®Çok büyük ölçekli MF'yi çözmek için alternatif en küçük kareler (ALS) yöntemini optimize eden, tabanlı matris çarpanlara ayırma kitaplığı. CuMF, tekli ve çoklu GPU'lardaki performansı en üst düzeye çıkarmak için bir dizi teknik kullanır. Bu teknikler, GPU'lar arasındaki iletişim ek yükünü en aza indirmek için veri paralelliğini model paralelliğiyle birlikte kullanarak GPU bellek hiyerarşisinden yararlanan seyrek verilere akıllı erişimi ve yeni bir topolojiye duyarlı paralel azaltma şemasını içerir.
Tavsiye İçin Derin Sinir Ağı Modelleri
Var farklı varyasyonlar Aşağıdakiler gibi yapay sinir ağlarının (YSA'lar):
- Bilginin yalnızca bir katmandan diğerine iletildiği YSA'lara denir. ileri beslemeli sinir ağları. Çok katmanlı algılayıcılar (MLP'ler), en az üç düğüm katmanından oluşan bir tür ileri beslemeli YSA'dır: bir giriş katmanı, bir gizli katman ve bir çıkış katmanı. MLP'ler çeşitli senaryolara uygulanabilen esnek ağlardır.
- Evrişimsel Sinir Ağları nesneleri tanımlamak için kullanılan görüntü kırıcılardır.
- Tekrarlayan sinir ağları dil kalıplarını ve sıralı verileri ayrıştıran matematiksel motorlardır.
Derin öğrenme (DL) öneri modelleri, kategorik değişkenleri ele almak için değişkenler ve yerleştirmeler arasındaki etkileşimleri modellemek için çarpanlara ayırma gibi mevcut teknikler üzerine kuruludur. Gömme, benzer varlıkların (kullanıcılar veya öğeler) vektör uzayında benzer mesafelere sahip olmasını sağlayacak şekilde varlık özelliklerini temsil eden sayıların öğrenilmiş bir vektörüdür. Örneğin, işbirliğine dayalı filtrelemeye yönelik derin öğrenme yaklaşımı, bir sinir ağıyla kullanıcı ve öğe etkileşimlerine dayalı olarak kullanıcı ve öğe yerleştirmelerini (gizli özellik vektörleri) öğrenir.
DL teknikleri ayrıca büyük miktarlarda veri üzerinde eğitim vermek, özellik çıkarmak için derin öğrenmenin gücünü kullanmak ve daha etkileyici modeller oluşturmak için geniş ve hızla büyüyen yeni ağ mimarilerinden ve optimizasyon algoritmalarından da yararlanır.
Tavsiye sistemleri için mevcut DL tabanlı modeller: DLRM, Geniş ve Derin (G&D), Sinir İşbirlikçi Filtreleme (NCF), Değişken Otomatik Kodlayıcı (VAE) Ve BERT (NLP için) NVIDIA GPU ile hızlandırılmış DL model portföyü Görüntü, metin ve konuşma analizi de dahil olmak üzere öneri sistemlerinin ötesinde birçok farklı alandaki çok çeşitli ağ mimarilerini ve uygulamalarını kapsar. Bu modeller TensorFlow ve PyTorch ile eğitim için tasarlanmış ve optimize edilmiştir.
Sinir İşbirlikçi Filtreleme
Sinir İşbirlikçi Filtreleme (NCF) modeli, kullanıcı ve öğe etkileşimlerine dayalı işbirliğine dayalı filtreleme sağlayan bir sinir ağıdır. Model, matris çarpanlarına ayırmayı doğrusal olmayan bir perspektiften ele alır. NCF TensorFlow, girdi olarak bir dizi (kullanıcı kimliği, öğe kimliği) çifti alır ve ardından bunları ayrı ayrı bir matris faktörleştirme adımına (yerleştirmelerin çarpıldığı yer) ve çok katmanlı bir algılayıcı (MLP) ağına besler.
Matris çarpanlarına ayırmanın ve MLP ağının çıktıları daha sonra birleştirilir ve girdi kullanıcısının girdi öğesiyle etkileşime girip girmeyeceğini tahmin eden tek bir yoğun katmana beslenir.
İşbirliğine Dayalı Filtreleme için Değişken Otomatik Kodlayıcı
Otomatik kodlayıcı bir sinir ağı, gizli katmanda elde edilen gösterimi kullanarak giriş katmanını çıkış katmanında yeniden yapılandırır. İşbirliğine dayalı filtrelemeye yönelik bir otomatik kodlayıcı, kullanıcı öğesi matrisinin doğrusal olmayan bir temsilini öğrenir ve eksik değerleri belirleyerek onu yeniden yapılandırır.
NVIDIA GPU ile hızlandırılmış İşbirliğine Dayalı Filtreleme için Değişken Otomatik Kodlayıcı (VAE-CF) ilk olarak açıklanan mimarinin optimize edilmiş bir uygulamasıdır. İşbirliğine Dayalı Filtreleme için Değişken Otomatik Kodlayıcılar. VAE-CF, kullanıcı ve öğe etkileşimlerine dayalı işbirliğine dayalı filtreleme sağlayan bir sinir ağıdır. Bu modelin eğitim verileri, bir kullanıcı ile bir öğe arasındaki her etkileşim için kullanıcı öğesi kimlik çiftlerinden oluşur.
Model iki bölümden oluşur: kodlayıcı ve kod çözücü. Kodlayıcı, belirli bir kullanıcıya yönelik etkileşimleri içeren giriş vektörünü n boyutlu bir değişken dağılıma dönüştüren ileri beslemeli, tamamen bağlantılı bir sinir ağıdır. Bu değişken dağılım, bir kullanıcının (veya yerleştirmenin) gizli bir özellik temsilini elde etmek için kullanılır. Bu gizli gösterim daha sonra kodlayıcıya benzer yapıya sahip bir ileri beslemeli ağ olan kod çözücüye beslenir. Sonuç, belirli bir kullanıcı için öğe etkileşim olasılıklarının bir vektörüdür.
Bağlamsal Sıra Öğrenme
A Tekrarlayan sinir ağı (RNN) bir sınıftır sinir ağı Verilerdeki kalıpları daha iyi tanımasını sağlayan hafıza veya geri bildirim döngülerine sahip olan. RNN'ler, doğal dil işleme gibi bağlam ve dizilerle ilgilenen zor görevleri çözer ve aynı zamanda bağlamsal dizi önerileri için de kullanılır. Sıralı öğrenmeyi diğer görevlerden ayıran şey, aktif veri hafızasına sahip modellerin kullanılması ihtiyacıdır. LSTM'ler (Uzun Kısa Süreli Bellek) veya GRU (Geçitli Tekrarlayan Birimler) girdi verilerindeki zamansal bağımlılığı öğrenmek için. Geçmiş girdilerin bu anısı, başarılı sıralı öğrenme için çok önemlidir. BERT (Transformatörlerden Çift Yönlü Kodlayıcı Temsilleri) gibi transformatör derin öğrenme modelleri, bir dikkat tekniği uygulayan RNN'lere bir alternatiftir; bir cümleyi, dikkati ondan önce ve sonra gelen en alakalı kelimelere odaklayarak ayrıştırır. Transformatör tabanlı derin öğrenme modelleri sıralı verilerin sırayla işlenmesini gerektirmez, bu da GPU'larda RNN'lere göre çok daha fazla paralelleştirmeye ve daha kısa eğitim süresine olanak tanır.
Bir NLP uygulamasında giriş metni, kelime gömme gibi teknikler kullanılarak kelime vektörlerine dönüştürülür. Kelime yerleştirmeyle, cümledeki her kelime bir dizi sayıya dönüştürülür ve daha sonra RNN çeşitleri, Transformatör veya BERT bağlamı anlamak için. Bu sayılar sinir ağı kendini eğitirken zamanla değişir, her kelimenin anlambilimi ve bağlamsal bilgileri gibi benzersiz özellikleri kodlayarak, bu sayı uzayında benzer kelimelerin birbirine yakın, farklı kelimelerin ise birbirinden uzak olmasını sağlar. Bu DL modelleri, bir çıktı dizisi oluşturmak için kullanılan sonraki kelime tahmini ve metin özetleme gibi belirli bir dil görevi için uygun bir çıktı sağlar.
Oturum bağlamına dayalı öneriler, derin öğrenme ve NLP'den önerilere kadar dizi modellemedeki ilerlemeleri uygular. Bir oturumdaki kullanıcı olaylarının sırası (örneğin, görüntülenen ürünler, veriler ve etkileşim süresi) üzerinde eğitilen RNN modelleri, bir oturumdaki sonraki öğeyi/öğeleri tahmin etmeyi öğrenir. Bir oturumdaki kullanıcı öğesi etkileşimleri, bir cümledeki kelimelere benzer şekilde gömülür. Örneğin, izlenen filmler beslenmeden önce bir dizi sayıya çevrilir. RNN Bağlamı anlamak için LSTM, GRU veya Transformer gibi değişkenler.
Geniş ve Derin
Geniş ve Derin Paralel olarak çalışan iki parçanın (geniş model ve derin model) çıktılarını kullanan ve çıktıları bir etkileşim olasılığı oluşturmak için toplanan bir ağ sınıfını ifade eder. Geniş model, dönüşümleriyle birlikte özelliklerin genelleştirilmiş doğrusal bir modelidir. Derin model, her biri yoğun bir özellik yerleşimiyle başlayan, 1024 nörondan oluşan beş gizli MLP katmanından oluşan bir dizi olan Yoğun Sinir Ağıdır (DNN). Kategorik değişkenler, öğrenilen veya kullanıcı tarafından belirlenen yerleştirmeler yoluyla DNN'ye beslenmeden önce sürekli vektör uzaylarına gömülür.
Bu modeli tavsiye görevleri açısından bu kadar başarılı kılan şey, verilerde “derin” ve “sığ” olmak üzere iki öğrenme modeli yolu sunmasıdır. Karmaşık, doğrusal olmayan DNN, verilerdeki ilişkilerin zengin temsillerini öğrenme ve yerleştirme yoluyla benzer öğelere genelleme yapma yeteneğine sahiptir, ancak bunu iyi bir şekilde yapabilmek için bu ilişkilerin birçok örneğini görmesi gerekir. Öte yandan doğrusal parça, eğitim setinde yalnızca birkaç kez meydana gelebilecek basit ilişkileri “ezberleme” yeteneğine sahiptir.
Kombinasyon halinde, bu iki temsil kanalı genellikle tek başına olduğundan daha fazla modelleme gücü sağlar. NVIDIA, daha geleneksel makine öğrenimi modellerinin yerine Wide & Deep'i kullanarak çevrimdışı ve çevrimiçi ölçümlerde iyileşmeler olduğunu bildiren birçok endüstri ortağıyla birlikte çalıştı.
DLRM
DLRM Facebook tarafından sunulan öneriler için DL tabanlı bir modeldir araştırma. Genellikle öneri sistemi eğitim verilerinde bulunan hem kategorik hem de sayısal girdilerden faydalanmak üzere tasarlanmıştır. Kategorik verileri işlemek için katmanların yerleştirilmesi, çok katmanlı algılayıcılara (MLP) beslenmeden önce her kategoriyi yoğun bir temsille eşleştirir. Sayısal özellikler doğrudan bir MLP'ye beslenebilir.
Bir sonraki seviyede, farklı özelliklerin ikinci dereceden etkileşimleri, tüm gömme vektör çiftleri ve işlenmiş yoğun özellikler arasındaki nokta çarpımı alınarak açık bir şekilde hesaplanır. Bu ikili etkileşimler, bir kullanıcı ile öğe çifti arasındaki etkileşimin olasılığını hesaplamak için üst düzey bir MLP'ye beslenir.
Öneriye yönelik diğer DL tabanlı yaklaşımlarla karşılaştırıldığında, DLRM iki açıdan farklılık gösterir. Birincisi, etkileşimin sırasını ikili etkileşimlerle sınırlandırırken özellik etkileşimini açık bir şekilde hesaplar. İkincisi, DLRM her gömülü özellik vektörünü (kategorik özelliklere karşılık gelen) tek bir birim olarak ele alırken, diğer yöntemler (Deep ve Cross gibi), özellik vektöründeki her öğeyi farklı çapraz terimler vermesi gereken yeni bir birim olarak ele alır. Bu tasarım seçenekleri, rekabetçi doğruluğu korurken hesaplama/bellek maliyetlerinin azaltılmasına yardımcı olur.
DLRM, NVIDIA'nın bir parçasını oluşturur MersinAşağıda tartışacağımız yüksek performanslı, DL tabanlı öneri sistemleri oluşturmaya yönelik bir çerçeve.