Önerilen sistem, çok yönlü FM modelinin dört modelini hatırlatır

Yazar | Zhang Junlin

Yazar hakkında: Çin Bilimler Akademisi Yazılım Enstitüsü'nden Çin Çin Bilgi Toplumu Direktörü, Ph.D. Şu anda Sina Weibo AI Lab'da kıdemli bir algoritma uzmanı olarak çalışıyor. Bundan önce, Zhang Junlin, Alibaba'da kıdemli bir teknik uzman olarak görev yaptı ve yeni teknik ekibin yanı sıra Baidu ve UFIDA'da teknik müdür ve teknik direktör olarak görev yaptı. Aynı zamanda, "This is Search Engine: Detailed Explanation of Core Technology" (bu kitap 12. Ulusal Mükemmel Kitap Ödülü'nü kazandı) ve "Big Data Daily Knowledge: Architecture and Algorithms" adlı teknik kitapların yazarıdır.

Artık bu makaleye tıkladığınıza göre, belirli bir şirkette öneri sistemi olarak çalışan bir algoritma mühendisi olduğunuzu varsayıyorum. Bu varsayımın doğru oranının yaklaşık% 20 olduğunu tahmin ediyorum, çünkü deneyimlerime göre, başlık "model / algoritma / derin öğrenme / şok / güzellik ..." gibi kelimeler içerdiği sürece algoritma mühendislerinin% 80'i çok hayırsever. Her zaman üç saniye merakla izleyecekler ve sonra hayal kırıklığına uğrayarak kapatacaklar.Ne kadar teknik olursa, kapatılması o kadar kolay olur ve üç saniye sürmeyebilir. Haklı mıyım Hehe.

Aldatmak ve tıklamak için, bu makalenin başlığıyla ilgili olarak, içsel dürtülerimde en çok yazmak istediğim şok edici bölüm stili başlığı şudur: "Tanrıça seviyesindeki güzellik Cheng Yuan bile şok oldu! FM modeli aslında böyle büyük ölçekli bir öneri sistemi için geri çağrılabilir. !!! yazdıktan sonra yazının eşlik ettiği fon müziği yavaş yavaş" Sokak lambasının altındaki loş siluet, orman yolu ne kadar uzun ve uzun ... "

Pekala, tamam, itiraf ediyorum ki yukarıdaki sahneye bile dayanamıyorum, çünkü bu şarkıyı sevdiğim için Tek döngü neredeyse yarım aylık ve başlığın tarzı şarkının sanatsal anlayışını yok ediyor. Lütfen yukarıdaki başlığı gördükten sonra çökmek üzere olduğunuza dair duygularınızı temizleyin Şaka yapmayın.

Hayalime geri dönmeme izin verin, gönülsüzce bir öneri algoritması mühendisi olduğunuzu varsayın, olmadığınız konusunda ısrar ediyor musunuz? Alçakgönüllü olmayın, yakında orada olacaksınız, lütfen hemen istifa edin ve ilgili işlere başvurun ... Gerçekten tavsiye edilen bir mühendisseniz, o zaman önce bir soru sormak istiyorum: Öneri senaryosundaki öneri modelinden veya sıralama modelinden bahsetmişken, Aklınızdaki ilk düşünce hangi model veya modeller ile geldi?

İlk düşünceniz hala SVD / matris ayrışması veya başka bir şeyse, o zaman açıkça hala kitapları kemirme aşamasındasınız ve pratik deneyiminiz yoksa; ilk düşünceniz LR modeli veya GBDT modeli ise, Belirli pratik deneyime sahip, ancak yetersiz bilgi güncellemesi olan algoritma mühendisi. Şimdi 9102'dir. Şimdilik WideDeep / DeepFM modellerini bir kenara bırakalım, çünkü derin öneri modelini büyük ölçekli senaryolarda uygun maliyetli olarak kullanmak kolay değildir.

İkinci sırayı alalım. Günlük işlerinizde hala en azından FM modeli ile bir şeyler yapmayı deneyemiyorsanız, bu sadece belirli bir olasılıkla (% 30 ila% 90?), Teknoloji açısından kendinize çok fazla yüklenmediğiniz anlamına gelebilir. Algoritma mühendisinin gerekli olması, teknik yolunuzun gelecekte daha zor ve engebeli olacağını tahmin ediyorum. 2025'te başka bir siz için zor bir iş olduğunu varsayalım. Algoritma mühendisliğine giden yolda tahminim bu. Bu tahminin doğruluğuna gelince, önümüzdeki birkaç yıldaki deneyim ve zaman size doğru cevabı verecektir.Tabii ki şahsen ödenen bedelin biraz yüksek olabileceğini düşünüyorum.

Ayrıştırma aşamasında FM modeli, GBDT + LR modeli ve DNN modelini kullanmak ilk düşüncenizin olduğunu varsayarsak, bu, teknolojik çağın gelişimini yakından takip eden bir teknisyen olduğunuzu çok iyi gösterir. İşte size sadece sizin için hazırlanmış yeni ve daha profesyonel bir soru geliyor.Sorabilir miyim: Ağaçtaki yedi maymun ... Yolun dışındalar Aslında sormak istediğim şu: Her gün gördüğümüz öneri sistemi neye benziyor? Zihninde net olduğuna inanıyorum, ama rutini bozabilir misin? Örneğin, geleneksel uygulamalarla uyumlu olmayan aşağıdaki iki teknik konuyu ele alabilirsiniz:

İlk soru: Kişiselleştirilmiş öneri sisteminde ilk bağlantının genellikle geri çağırma aşaması olduğunu ve geri çağırma aşamasındaki sektördeki mevcut rutinin çok kanallı geri çağırma olduğunu ve her geri çağırmanın farklı bir strateji benimseyebileceğini biliyoruz. Dolayısıyla normu bozan düşüncelerden biri şudur: Çok kanallı geri çağırmayı tek model tek kanallı geri çağırma stratejisine dönüştürmek için birleşik bir model kullanabilir miyiz? Değilse neden? Varsa ne yapabiliriz? Bunu yapmanın avantajları ve dezavantajları nelerdir?

İkinci soru: Mevcut pratik endüstriyel öneri sisteminin genellikle iki bağlantıdan oluştuğunu biliyoruz, geri çağırma aşaması ve sıralama aşaması, öyleyse neden bu şekilde bölünmeli? Sorumlulukları nelerdir? Sözleşmeyi bozacak başka bir düşünce şudur: Geri çağırma aşamasını ve sıralama aşamasını birleştirebilecek, yani iki aşamalı öneri bağlantısını tek model tek aşamalı öneri sürecine değiştirebilecek bir model var mı? Yani, geleneksel iki aşamalı öneri sisteminin tek adımda yaptığı şeyi tamamlamak için bir modele ve bir aşamaya güvenmek? Değilse neden olmasın? Varsa ne yapabiliriz? Bu önemli görevi nasıl bir model üstlenebilir? Bu model gerçek dünyada var mı? Bu fikir gerçekten uygulanabilir mi?

18 yılın sonunda yukarıda sıralanan iki alışılmadık konuyu düşünüyordum. Bazı ön düşüncelerim ve çıkarımlarım var. Bu yüzden bir konu oluşturmak için dört makale yazmayı planlıyorum. Konu, öneri sisteminin birleşik geri çağırma modeli üzerine yoğunlaşıyor, ilki. Bu soru ve ayrıca ikinci sorudan bahsedecek olursak, her makale bir veya bir tür modeli tanıtacak, bu makale FM modelini tanıtıyor. Bu seride, Bahar Şenliği sırasında üç makale yazmayı bitirdim.Dört makaleyi de yazmayı bitirdikten sonra, ilgilenen öğrencilerin referansı için birbiri ardına göndereceğim.

Ama burada vurgulamak gerekiyor: Bu iki konuya gelince, alışılmadık oldukları için ve internette benzer problemler, ifadeler ve çözümler görmedim, bunun bir dayanağı yok Makale, gerçekten sorunsuz bir şekilde uygulanıp uygulanamayacağı, sadece kişisel düşüncemin sonucudur. İniş etkisinden şüphe duyuyorsanız, lütfen dikkatlice bakın. Bununla birlikte, mevcut algoritma geliştirme eğiliminden ve donanım koşullarının hızlı gelişiminden, tek aşamalı öneri modelinin teorik olarak uygulanabilir olduğunu düşünüyorum. Birbiri ardına birkaç plan vereceğim ve küçük ve orta ölçekli öneri işleriyle uğraşan öğrencilerin bunları çabucak deneyebileceklerini önereceğim.

Şimdi konuya geçelim, önce öneri sisteminin genel mimarisini ve çok kanallı geri çağırmanın temel modelini kısaca tanıtacağım, ardından FM modelini açıklayacağım ve ardından FM modelinin yukarıda bahsedilen iki alışılmadık sorunu çözüp çözemeyeceğini tartışacağım.

Endüstriyel öneri sisteminin genel mimarisi nedir?

Tipik bir endüstriyel sınıf öneri sisteminin genel mimarisi, genellikle bir çevrimiçi bölüm, bir yakın bölüm ve bir çevrimdışı bölüm olarak bölünmüş olan yukarıdaki şekle başvurabilir.

Çevrimiçi kısım için genellikle birkaç aşama vardır. İlk olarak, geri çağırma süreci yoluyla, kullanıcıya önerilen öğeler 1.000'den küçük bir ölçeğe indirilir; geri çağırma aşamasında hala çok fazla öğe döndürülürse, kaba sıralama aşaması ekleyebilirsiniz. Bu aşama isteğe bağlıdır. Kaba sıralama, bazı basit sıralama modelleriyle daha da azaltılabilir Öğeler sonraki bağlantılara ve ardından karmaşık bir modelin az sayıda öğeyi doğru bir şekilde sıralamak için kullanılabileceği ince sıralama aşaması.

Belirli bir kullanıcı için, ince sıralama tavsiyesinin sonuçları ortaya çıksa bile, genellikle doğrudan kullanıcıya gösterilmez.Okuma gitmek, çeşitlendirme önermek, reklam eklemek ve diğer iş stratejileri gibi bazı iş stratejileri gerekebilir. Daha sonra nihai öneri sonucu oluşturulur ve sonuç kullanıcıya gösterilir.

Yakın hat bölümü için ana amaç, gerçek zamanlı olarak kullanıcı davranışı geri bildirimini toplamak, eğitim örneklerini seçmek, birleştirme özelliklerini gerçek zamanlı olarak çıkarmak ve çevrimiçi öneri modelini neredeyse gerçek zamanlı olarak güncellemektir. Bunun avantajı, kullanıcının son ilgi alanlarının neredeyse gerçek zamanlı olarak öneri sonuçlarına yansıtılabilmesidir.

Çevrimdışı kısım için, çevrimdışı eğitim verileri, çevrimiçi kullanıcı tıklama günlüklerinin depolanması ve temizlenmesi yoluyla sıralanır ve öneri modeli periyodik olarak güncellenir. Ultra büyük ölçekli veriler ve makine öğrenimi modelleri için, çevrimdışı eğitimi desteklemek için genellikle verimli bir dağıtılmış makine öğrenimi platformuna ihtiyaç vardır.

Kaba sıralama isteğe bağlı olduğundan, çoğu öneri sistemi için genellikle çevrimiçi bölümün ana gövdesinin iki aşamaya ayrılması yeterlidir: İlk aşama geri çağırma ve ikinci aşama sıralamadır. Kişiselleştirilmiş önerinin her kullanıcıya farklı bilgi akışı veya öğe akışı göstermesi gerektiğinden ve her kullanıcı için, öneri için mevcut öğeler, belirli bir büyüklükteki bir şirkette milyonlarca ila on milyonlarca veya daha fazladır. Milyar. Dolayısıyla her kullanıcı için on milyonlarca öğeyi tek tek sıralamak ve puanlamak için gelişmiş model kullanılıyorsa, hızın yeterli olmadığı ve kaynak yatırımını dikkate almanın uygun maliyetli olmadığı aşikardır. Buradan anlaşılacağı gibi, geri çağırma aşamasının ana sorumluluğu: On milyonlarca aday maddeden, aday setlerinin sayısını azaltmak için önerilen madde aday setini hızlı bir şekilde bin hatta yüz seviyeye düşürmek için basit bir model benimseyin. Sıralama aşamasında bazı karmaşık modeller yüklenebilir ve aday küme detaylı olarak sıralanabilir.

İki aşamalı görev bölümünün yukarıdaki çevrimiçi tavsiyesinden, geri çağırma aşamasında hesaplanması gereken aday kümesi çok büyük olduğu için, hızlı olmak istiyorsanız sadece basit bir model kullanabilir, birkaç özelliği kullanabilir, genelleme yeteneği sağlayıp yapmaya çalışabilirsiniz. Kullanıcıların ilgilendikleri öğeler bu aşamada geri getirilebilir ve sıralama aşamasının temel amacı doğru olmaktır çünkü az miktarda öğe verisi işler, böylece olabildiğince çok özellik kullanabilir, daha karmaşık modeller kullanabilir ve her şey doğrudur. Amaçları.

Çoklu geri çağırma nasıl yapılır?

Mevcut endüstri tavsiye sisteminin geri çağırma aşaması genel olarak nasıl işliyor? Çok öfkeli bir cümle ile özetlenebilir. Sizi korkutmaktan korktuğunuz için lütfen emniyet kemerinizi bağlayın ve sıkıca oturun. Bu cümle: "Bir bulut delici ok binlerce askerle buluşacak." Otoriter geliyor, değil mi? Sanırım Young and Dangerous filmini izleyen herkes bu cümleye aşinadır, çeteler toplanıp kavga ettiklerinde ivmelerini artırmak ve kendilerini neşelendirmek için bu meşhur cümleyi alıntılamayı seviyorlar. Tavsiye sistemi ile uyumlu olarak anlaşılırsa, buradaki "delici ok" geri çağırma sistemidir ve binlerce asker her türlü süslü geri çağırma stratejisidir.

Sektördeki mevcut öneri sistemi, geri çağırma aşamasında genellikle çok kanallı bir geri çağırma stratejisi benimser. Yukarıdaki şekil basitleştirilmiş bir versiyonun bir örneğini göstermektedir Weibo bilgi akışının sıralanmasını bir örnek olarak ele alırsak, farklı işletmeler için yapılan çağrıların sayısı aynı değildir, ancak yaygın olarak kullanılan geri çağırma stratejileri temelde ilgi alanı etiketleri, ilgi konuları, ilgi alanları ve işbirliğine dayalı filtreleme gibi konuları içerir. , Popüler, aynı alan vb. Onlarca rota geri çağrılacak ve 7/8 rota ile daha azı geri çağrılacaktır.

Her geri çağırma için, K adet ilgili malzeme geri çekilecektir Bu K değeri bir süper parametredir ve makul bir değer aralığını belirlemek için çevrimiçi bir AB testi gereklidir. Algoritmaya duyarlıysanız, burada potansiyel bir problem bulacaksınız.Çok fazla geri çağırma döngüsü varsa, daha fazla hiperparametre olacaktır. Bu hiperparametrelerin geniş bir kombinasyon alanı vardır.Her kanal için makul sayıda geri çağırmanın nasıl ayarlanacağı bir sorundur. Ek olarak, eğer çok kanallı bir geri çağırma ise, bu süper parametrenin genellikle kullanıcıya özgü olması pek olası değildir, ancak tüm kullanıcılar için kanal başına geri çağırma sayısı sabittir ve açıkça optimizasyon için yer vardır. Bu, farklı kullanıcıların her içerik kanalına olan ilgi derecesinde farklı olabileceği anlamına gelir. Daha fazla ilgili kanal daha fazla hatırlanmalıdır. Bu nedenle, bu süper parametrelerin kişiselleştirilmiş konfigürasyona, ancak birden çok kanala dönüştürülmesi iyi olur. Geri çağırma stratejisine göre, yapılması imkansız olmasa da, olsa bile, yine de çok zor görünüyor. Bu sorunu çözmenin iyi bir yolu var mı? Evet, bu yazının ilerleyen bölümlerinde bunun hakkında konuşacağım.

FM modeli nedir?

FM modeli nedir? Bu sorunun pek çok insan için biraz fazla basit göründüğünün belirsiz bir şekilde farkındayım, çünkü FM söz konusu olduğunda, araba kullanan arkadaşlar muhtemelen buna aşinadır. Örneğin, FM1039 Trafik İstasyonu bir ev adıdır. Son zamanlarda, Trafik İstasyonunun herkese şunu hatırlattığını duymalıyım: "... Bahar Şenliği sırasındaki dönüş yolculuğunun zirvesinde, Pekin Üçüncü Ulaşım Komitesi size şunu hatırlatıyor: Onbinlerce yol var, önce güvenlik ... "

FM'i birçok insanın bu şekilde anlayabileceğini düşündüğümde gözyaşlarım bir türlü akıp gitmedi, aynı zamanda onlarla açıklanamaz bir yakınlık duygusu hissettim, neden? "Kısaltmaların standart olmadığı ve sevdiklerinin iki satırı yırttığı" anlamına gelmez miydi? Şimdi size ciddiyetle tanıtıyorum, FM'nin tam İngilizce adı "Faktorization Machine" veya kısaca FM modeli ve Çince adı "Factorization Machine".

FM modeli aslında birkaç yaşında, 2010 yılında Rendle tarafından önerilmiş, ancak CTR tahmini ve önerisi alanında büyük fabrikalarda büyük ölçüde yaygın olarak kullanılmış, aslında son yıllarda olmuştur.

FM modeli nispeten basittir ve İnternette tanıtılan daha fazla içerik vardır, bu yüzden onu ayrıntılı olarak tartışmayacağım. Ama kişisel bir yargıya varayım: Bence FM, öneri sistemi mühendislerinin ustalaşması ve uygulaması gereken, sahip olunması gereken bir algoritmadır.Sıralama modelinin birçok DNN sürümüne baksanız bile, çoğu durumda gölgesini görmelisiniz. Nedeni aslında çok basit. : Özellik kombinasyonu, öneri sıralaması için çok önemlidir ve FM fikri bu fikri çok kısa ve zarif bir şekilde somutlaştırmıştır (esas olarak ikinci dereceden özellik kombinasyonu).

DNN modeli de bu özellikten ayrılamaz ve MLP yapısı, özellik kombinasyonunu verimsiz yakalayan bir yapıdır, bu nedenle derin model için bile, FM gibi özellikleri doğrudan birleştirebilen parçadan ayrılamaz. Bu, onu tekrar tekrar bulmanızın nedenidir.Elbette, olabilir veya zorunlu olmayabilir, ancak bunun bir çeşidi olmalıdır.

Artık buradayız, şimdi öneri sıralama modeli hakkında daha fazla konuşalım. Pratik değere sahip CTR modelinin mevcut DNN sürümü, genellikle MLP yapısını benimser. CV / NLP'nin çok gerisinde olan özellik çıkarıcının geliştirme düzeyine bakıldığında, insanlara CTR'nin DNN modelinin hala ilkel derin öğrenme toplumunda olduğunu hissettirmek kolaydır. sahne. Öyleyse neden bu? Çünkü CNN'in özellikleri bu öneri sıralama senaryosu için doğal olarak uygun değildir (neden? Bunun hakkında düşünebilirsiniz.

Belirli bir benzersiz kişilik özelliklerine sahip bazı öğrencilerin bir şeyler hakkında konuşmak için bireysel örnekler kullanmasını önlemek için önce şunu belirtmeme izin verin: Lütfen bana daha derin görünen mevcut bir CNN CTR modelinden bahsetmeyin ve bunu kendiniz nasıl denediniz? . Bu benim önleyici cevabım veya varsayımsal cevabım, haha). RNN, kullanıcı davranış dizilerini yakalamak ve zaman bilgisini kullanmak için yardımcı bir yapı olarak gayet iyi, ancak aynı zamanda CTR tahmini veya öneri sıralaması için ana model olarak uygun değil (neden? Bunu düşünebilirsiniz. Buluşmak için bir şansım var. Anma).

Görünüşe göre çok fazla seçenek kalmadı (Transformer çok umut verici. Geçen yılın ortalarında, Öz dikkatin özellik kombinasyonlarını yakalayabilen bir araç olması gerektiğini düşünüyorum (ikinci derece / üçüncü derece ... çoklu sıra dahil), yani, Weibo'da CTR'nin konu sıralama modeli olarak öz dikkat ve transformatörü de kullanmaya çalıştık.İş dışı veriler üzerinde test edildi.O zamanlar, test etkisi DeepFM gibi ana akım modellerden çok farklı değildi. Şimdi geriye dönüp bakıyorum ve muhtemelen detaylar yapılmamış. Evet, o sırada özel efekt avantajı olmadığını hissettim, bu yüzden bu fikri denemeye devam etmedim.

Tabii ki, 2018'in ikinci yarısında Transformer'ı bir TO sıralama modeli olarak kullanan birkaç makale olduğu görülüyor. Kişisel olarak bu CTR modelinin gelişim yönü konusunda çok iyimserim), bu nedenle kalan seçenekler MLP gibi görünüyor, yani CTR veya önerilen sıralama için Alan açısından bakıldığında, model komünizm aşamasına girmek istememesi değil, kapının çok sıkı kapatılması ve içeri girememesi, yani sadece MLP eşiğinde havada kalmasıdır.

Derin öğrenme trendi altında, modeller açısından bakıldığında birçok alanla karşılaştırıldığında önerilen alanın çok geride kaldığı görülüyor ki bu bir gerçek. Bence asıl sebep kendi alan özellikleridir, kendi özelliklerine uygun bir DNN sıralama modeli oluşturması gerekebilir. Tıpkı görüntü alanında bir Resnet anı ve NLP'de bir Bert anı olduğu gibi, önerilen sıralama derinliği modelinin henüz mevcut olmadığını düşünüyorum.Bu benzer vurgu anına şimdi ve gelecekte de ihtiyaç var ve bu, özelliklerine uyarlanmış yeni bir yapı gerektiriyor. Daha iyimserim, bu anın bir yıl içinde ortaya çıkmayacağına dair bir önsezim var ama muhtemelen yolda ve bizden uzak değil.

Daha da ileri gidersek, başlangıçta temamız hatırlamaktı: Sıralama modeline gelince, ana şeride doğru yürüdüm. Yukarıdakiler başlangıçta FM modelinin çalışmasını ve kullanımını vurgulamayı amaçlamaktadır. FM modelini iki açıdan kısaca tanıtmama izin verin: Bir bakış açısı, özellik kombinasyonu modelinin evrimsel perspektifinden, diğeri ise işbirlikçi filtreleme modelinin evrimsel perspektifinden. FM modeli, bu iki tip modelin evriminin kesişme noktasındadır.

LR'den SVM'ye FM modeline

LR modeli, CTR tahmini alanındaki en başarılı erken modeldir. Çoğu endüstriyel öneri sıralama sistemi, "doğrusal model + yapay özellik kombinasyonu doğrusal olmayanlığı getirir" LR modelini benimser. LR modeli basit, kullanışlı, açıklaması kolay ve ölçeklemesi kolay olduğu için, birçok gerçek sistem hala bu modeli benimsemektedir. Bununla birlikte, LR modelinin en büyük dezavantajı, zaman alıcı ve yoğun emek gerektiren ve yoğun emek gerektiren manuel özellik mühendisliğidir, bu nedenle özellik kombinasyonu yeteneği model seviyesine yansıtılabilir mi?

Aslında, bu noktaya ulaşmak zor değildir.Yukarıdaki şekilde gösterildiği gibi hesaplama formülüne ikinci dereceden özellik kombinasyonunu eklemeniz yeterlidir.Her iki özelliği birleştirdiğinizde, birleştirilmiş özellik yeni bir özellik olarak kabul edilebilir ve doğrusal modele entegre edilebilir. Birleştirilmiş özelliğin ağırlığı, birinci dereceden özellik ağırlığı gibi, birleşik özellik ağırlığının eğitim aşamasında öğrenildiğini belirtmek için kullanılabilir. Aslında, bu ikinci dereceden özellik kombinasyonunun kullanımı, polinom çekirdek SVM'sine eşdeğerdir.

Bu model, ikinci dereceden özellik kombinasyonu problemini çözüyor gibi görünse de, potansiyel bir problemi vardır: özellikle büyük ölçekli seyrek özelliklerin bulunduğu senaryolarda, birleşik özellikleri modeller ve zayıf genelleme kabiliyetine sahiptir. Özellikle CTR tahmini ve öneri sıralaması gibi öne çıkan bu senaryoların en büyük özelliği, özelliklerin büyük ölçekli seyrek olmasıdır. Bu nedenle, yukarıdaki model endüstride yaygın olarak benimsenmemiştir. Peki, bu sorunu çözmenin herhangi bir yolu var mı?

Sonuç olarak, FM modeli şu anda piyasaya sürülebilir. Yukarıdaki şekilde gösterildiği gibi, FM modeli ayrıca herhangi iki özelliğin ikinci dereceden özellik kombinasyonunu doğrudan sunar.SVM modelinden en büyük farkı, özellik kombinasyon ağırlığının hesaplama yöntemidir. FM, her özellik için k büyüklüğünde tek boyutlu bir vektör öğrenir, bu nedenle iki özelliğin özellik kombinasyonunun ağırlık değeri, özelliğe karşılık gelen vektör toplamının iç çarpımı ile temsil edilir.

Bu, özünde, şu anda çok yaygın olan çeşitli varlıkların gömülmesinin özü ile aynı çizgide olan özelliklerin gömülü karakterizasyonudur, ancak FM'nin bunu yaptığı (2010) çağda, şimdi görülebilecek bir çeşitliliğin olmadığı açıktır. Göz kamaştırıcı gömme formlar ve kavramlar. Bu nedenle, bir özellik yerleştirme olarak FM, mevcut derin öğrenmede çeşitli gömme yöntemlerinin eski öncülü olarak kabul edilebilir.

Tabii ki, FM modelinin önceki modelleri var mı? Evet, görüşmeleri bekleyin. Aslında, mevcut çeşitli derin DNN sıralama modelleriyle karşılaştırıldığında, çok sıralı özelliklerin doğrusal olmayan kombinasyonunu doğrudan modellemek için kullanılan yalnızca 2 veya 3 gizli MLP katmanına sahiptir ve diğer yönler temelde aynıdır.

Öyleyse, bu özellik gömme modunun büyük ölçekli bir seyrek özellik uygulama ortamında kullanımı neden daha kolay? Neden güçlü bir genelleme yeteneğine sahip olduğu söyleniyor? Yukarıdaki resme bakın. Eğitim verisindeki iki özellik aynı anda eğitim örneğinde görülmese bile, birlikte görünme sayısının 0 olduğu anlamına gelir. SVM moduna geçerseniz, bu özellik kombinasyonunun ağırlığını öğrenemezsiniz.

Ancak FM, tek bir özelliği öğrenmenin gömülü olduğu için, belirli bir özellik kombinasyonunun ortaya çıkıp çıkmadığına bağlı değildir, bu nedenle özellik ve diğer herhangi bir özellik kombinasyonu ortaya çıktığı sürece, kendi ilgili gömme vektörünüzü öğrenebilirsiniz. Bu nedenle, bu özellik kombinasyonu daha önce görülmemiş olmasına rağmen, tahmin sırasında bu yeni özellik kombinasyonunu görürseniz, çünkü kendi ilgili yerleştirmelerini öğrenebilir ve bu yeni özellik kombinasyonunun ağırlığı, iç çarpım üzerinden hesaplanabilir. FM modelinin güçlü bir genelleme yeteneğine sahip olmasının temel nedeni budur.

Aslında, bu aynı zamanda şu anda birçok yerleştirmenin temel özelliğidir; 0/1 ikili sabit çekirdek eşleştirmesinden yumuşak vektör eşleştirmeye geçmektir, böylece orijinal eşleştirme belirli bir dereceye kadar yakın düşünülemez. İyi bir genelleme performansına sahiptir.

MF'den FM modeline

Muhtemelen FM'in ne anlama geldiğini bilmeliyiz. Aniden burada bir MF belirir, biraz FM'e benziyor.Peki MF nedir? FM ile ne alakası var?

Lütfen bana şunu okuyun: "Doğudan bir fener geldi, elinizde bir serseri turta ile; batıdan bir MF geldi, belinize bir kornayla tutturulmuş; bir kedi tartı taşıyan FM korna çalmak istedi. MF'nin belindeki trompet ... "Tökezlemeden tekrar okuyabiliyorsanız ... Onların karmaşık ilişkilerini anladığınızı düşünüyorsunuz, değil mi? Hayır, çapraz konuşma öğrenmeye gidebilirsiniz ...

MF (Matrix Factorization) modeli, öneri sistemleri alanında derin niteliklere sahip eski moda bir işbirliğine dayalı filtreleme modelidir. Temel fikir, esas olarak kullanıcıları kodlayan iki düşük boyutlu küçük matrisin (biri kullanıcı gömme matrisini ve diğeri öğe yerleştirme matrisini temsil eden) çarpımını hesaplayarak gerçek kullanıcıların tıklamaları veya derecelendirmeleriyle oluşturulan büyük işbirliğine dayalı bilgi seyrek matrisini simüle etmektir. Öğe işbirliğine dayalı bilginin boyut azaltma modeli.

Eğitim tamamlandığında ve her kullanıcı ve öğe karşılık gelen düşük boyutlu gömme ifadesini aldığında, bir iç çarpım hesaplaması yaptıkları sürece bir çift puan tahmin etmek istiyorsanız, bu puan tahmin edilen puandır. Bunu görmek size bir şey hatırlatıyor mu?

Bir öneri algoritması mühendisi olarak, buna aşina olduğunuzu varsayıyorum. Bu konuda daha fazla tartışmayacağım. İlgili birçok malzeme var. MF ve FM arasındaki ilişkiye odaklanacağız.

MF ve FM kısaltmalarında sadece biraz benzer görünmekle kalmaz, aslında özünde birçok benzerliğe sahiptir. Peki, MF ile FM arasındaki ilişki nedir?

Esasen, MF modeli, FM modelinin özel bir durumudur.MF, yalnızca Kullanıcı Kimliği ve Öğe Kimliği Alanlarının iki özelliğine sahip bir FM modeli olarak düşünülebilir.MF, bu iki tür özelliğin yerleştirilmesini sağlamak için bu iki tür özelliği matris ayrıştırma yoluyla ayrıştırır. İfadenin amacı.

FM, MF modelinin daha ileri bir uzantısı olarak görülebilir.Kullanıcı Kimliği ve Öğe Kimliği özelliklerine ek olarak, diğer birçok özellik türü de FM modeline daha fazla entegre edilebilir.Tüm bu özellikleri, düşük boyutlu vektörlerin gömülmesine dönüştürür. Özellik kombinasyonunun ağırlığı olan herhangi iki özellik yerleştirmenin iç çarpımını ifade edin ve hesaplayın.FM yalnızca Kullanıcı Kimliği ve Öğe Kimliği kullanıyorsa, bunu FM formülüne koyabilir ve tahmin sürecinin MF ile aynı olup olmadığını görebilirsiniz.

Daha önce özellik yerleştirmeyi kimin kullandığı açısından bakıldığında, FM ile karşılaştırıldığında, MF'nin gerçek öncül olduğu, daha az özellik türünden başka bir şey olmadığı açıktır. FM, MF'nin özellik yerleştirme ifadesinin avantajını devralır ve aynı zamanda özellik olarak daha fazla Yan bilgi sunar ve FM modeline daha fazla özellik ve Yan bilgi yerleştirir. Dolayısıyla, FM modelinin daha esnek olduğu ve daha fazla uygulamaya adapte olabileceği açıktır.

MF ve FM arasındaki karmaşık ve kaotik ilişki göz önüne alındığında, aşağıdaki bakış açısını (kişisel görüş) çıkardım:

Bir: İşbirlikçi filtreleme için MF kullanma fikriniz olduğunda, bu dürtüyü geçici olarak bastırın.Geleneksel MF yerine FM tanıtmaya öncelik verebilirsiniz, çünkü bu temelde eşdeğer işlevleri gerçekleştirebilir. Eklemek istediğiniz diğer özellikleri kolayca ekleyin ve elinizin altında daha renkli şeyler yapın.

İkincisi: Gerçek büyük ölçekli veri senaryolarındaki uygulamalar açısından, sıralama aşamasında, yalnızca kimlik bilgilerini kullanan çoğu model pratik değildir ve Yan Bilgiler kullanılmaz, yani Kullanıcı Kimliği / Öğe Kimliği dışında pek çok kişi Mevcut özelliklere sahip modeller pratik değerde değildir. Nedeni basittir.Gerçek uygulama senaryolarının çoğunda, Kullanıcı / Öğe çok fazla bilgiye sahiptir ve işbirliğine dayalı veriler bunlardan yalnızca biridir.Daha fazla özelliğin tanıtılması, daha doğru kişiselleştirilmiş öneri için açıkça çok yararlıdır. Ve eğer model daha fazla özelliğin uygun bir şekilde sunulmasını desteklemiyorsa, açıkça ciddi şekilde sınırlandırılmıştır ve gerçekten pratik olması zordur.Bu nedenle, matris çarpanlara ayırma yöntemi, genellikle bir hatırlama biçimi olarak, Sıralama aşamasında nadiren görülür.

Basitçe algoritmanın verimliliği hakkında konuşun

FM'nin orijinal matematiksel formülünden, çünkü 2 dereceli özellik kombinasyonu gerçekleştirirken, n farklı özellik olduğunu varsayarsak, ikinci dereceden özellik kombinasyonu, herhangi iki özelliğin çapraz birleştirilmesi gerektiği anlamına gelir, böylece yapabilirsiniz Doğrudan çıkarsanan: FM'nin zaman karmaşıklığı n'nin karesidir. Ancak hikaye sadece bu noktaya gelirse, FM modelinin endüstride bu kadar yaygın olarak kullanılması olası değildir. Gerçek hayatta n uygulamaları genellikle çok büyük bir özellik numarası olduğundan, FM n karenin zaman karmaşıklığı ise, kimsenin onunla oynamayacağı tahmin edilmektedir.

Pratik bir model için, etkinin yeterince iyi olup olmadığı sadece bir yöndür ve hesaplama verimliliğinin yeterince yüksek olup olmadığı da çok önemlidir.Bu iki nokta, algoritmalarda yaygın olarak kullanılabilen bir madalyonun iki yüzüdür. İkisi olmadan dikkate alınmayabilir. Mükemmel algoritma. İkisini birbirinden ayırmak daha önemliyse, nasıl seçilir?

Buraya nasıl seçim yapacağınızla ilgili bir açıklama ekleyin. Bu konu hakkında derinlemesine düşünürseniz, muhtemelen derin bir felsefi soru olduğunu göreceksiniz. Nasıl seçim yapacağımı konuşmadan önce, seçimle ilgili iki şakayı tekrar anlatacağım: Erkek versiyon ve kadın versiyon olmak üzere iki versiyon var.

Erkek versiyonu şöyle: "Bir erkek kardeş bana son zamanlarda kafasının çok karışık olduğunu söyledi. Üç kız onu takip ediyordu ve tereddütlüydü. Hangisini kız arkadaşı olarak seçmeliyim? Biri nazik ve erdemli, biri akıllı, diğeri beyaz. Güzel. Seçmesi çok zor ... Üç gün sonra onunla tekrar tanıştığımda, bir seçim yaptığını ve en büyük sandığı olanı seçtiğini söyledi! "

Kadın versiyonu şöyle: "Bir kız kardeş bana kafasının çok karışık olduğunu söyledi. Son zamanlarda üç mükemmel adam onu takip ediyordu ve kiminle evleneceği konusunda tereddüt ediyordu? Biri çalışkan, biri uzun boylu ve yakışıklı, diğeri iyi huylu. Gunun ailesi. Seçmek çok zor ... Üç gün sonra onunla tekrar tanıştığımda, bir seçim yaptığını ve en zengin olanı seçtiğini söyledi! "

Bu şablona bakın, algoritma seçim versiyonu şöyle görünmelidir: "Bir algoritma mühendisi hangi modelin çevrimiçi olacağına karar vermekte tereddüt etmiştir. Seçmek için üç mükemmel algoritması vardır. Bir algoritma teoride zariftir; bir algoritma etkilidir; diğer algoritma çok şıktır. , Karar vermek çok zor ... Onunla üç gün sonra tanıştığımda, algoritma yöneticilerinin onu en hızlı koşucuya taşıdığını söyledi! "

buna ne dersin? Hayatta veya işte seçim gerçekten çok gizemli bir felsefi sorudur, değil mi? Seçim hakkındaki şakanın bu algoritmik versiyonu, yukarıdaki cevaplanmamış soruyu zaten cevaplamış olmalı, değil mi? Özellikle büyük miktarda veri olması durumunda, iyi etki ile hızlı hız arasında seçim yaparsanız, çoğu zaman hızlı çalışan basit bir model kazanacaktır.Bu nedenle LR modeli, CTR tahmini alanında yaygın olarak kullanılmaktadır.

FFM modeli bir karşı örnektir.Birkaç veri seti üzerinde test ettik. Bir sıralama modeli olarak, FFM modeli gerçekten FM modelinden daha iyidir. Bununla birlikte, FFM modeli çok fazla parametre depolaması gerektirir ve FM'ye ulaşamaz. FFM modelinin işletim verimliliği, küçük ve orta ölçekli bir veri ölçeğinde sıralama yapılıyorsa sorun değildir, ancak veri miktarı arttıkça, kaynaklar ve verimlilik gereksinimleri keskin bir şekilde artacaktır, bu da FFM modelinin büyük ölçekli veri senaryolarının pratik uygulamasını ciddi şekilde engelleyen önemli bir faktördür.

DNN sıralama modelinden bahsedelim Şimdi, DNN sıralama modellerinin birçok sürümü var gibi görünüyor, ancak yukarıda bahsedilen hesaplama verimliliği sorunları göz önüne alındığında, pratik değeri olmayan çok sayıda sözde iyi model bulacaksınız. Karmaşık, etki çok iyi ve etki çok sınırlı, ultra büyük ölçekli eğitim veya çevrimiçi Hizmet hızı devam edemiyor. Şirketiniz, süper büyük veri ölçeği altında büyük ölçekli performans optimizasyonu gerçekleştirebilecek oldukça güçlü bir mühendislik ekibine sahip olmadığı sürece, o zaman yukarıdaki cümleyi söylemedim.

Sıralama modeli için, onu çevrimiçi kullanmayı planlıyorsanız, önerim şu sırayla denemektir: FM-- > DeepFM. Biraz kısa görünüyorsun, değil mi? Gerçekten kısa. DeepFM sonuç üretemezse, daha karmaşık modelleri denemeye çalışmayın, optimizasyon planını başka yönlerden değerlendirmek daha iyidir. Bazı daha karmaşık modellerin daha iyi sonuçları olabilir. Bazı büyük şirketlerde piyasaya sürülebilir. Ancak, iyi sonuçların algoritmadan kaynaklanmaması mümkündür. Güçlü mühendislik yetenekleri gibi birden çok faktörden kaynaklanmaktadır. Başkaları yapabiliyorsa, yapamayabilirsiniz. Yaptım.

Yaygın olarak denenen Wide Deep'e gelince, şahsen buna karşı bir önyargım var, bu yüzden doğrudan atladım. Elbette, orijinal çevrimiçi sürümünüz LR ise, önce doğrudan WideDeep'i deneyebilirsiniz, ancak öyle olsa bile, bir yükseltme planı yapmamı istiyorsanız, önerim şu sıra olacaktır: LR > FM-- > DeepFM > Başka bir şey yap.

FM'nin hesaplama verimliliği nasıl optimize edilir

Yine, FM'nin yaygın olarak benimsenmesi ve başarılı bir şekilde LR modelinin yerini almasının kilit noktalarından biri, görünen karmaşıklığı azaltmak için matematiksel formüller aracılığıyla yeniden yazılabilmesidir; burada n, özellik sayısı ve k, özelliğin gömme boyutu, yani FM modelini LR'ye benzer bir zaman karmaşıklığına değiştirmek çok iyidir ve n özelliklerinin sayısı doğrusal bir ölçek haline gelir.

Öyleyse, karmaşıklığını azaltmak için orijinal FM matematik formülü nasıl yeniden yazılır? Orijinal makale türetme sırasında ayrıntılı bir açıklama yapmadığından, birçok insanın onu okuduktan sonra biraz kafasının karıştığına inanıyorum, bu yüzden işte türetme sürecinin kısa bir açıklaması. Matematiksel formül Parkinson hastaları aşağıdaki içeriği atlayabilir ve geriye bakabilir. Bu makalenin ana noktasını anlamanızı etkilemez.

Yukarıdaki şekil tüm türetme sürecini göstermektedir.Eğer matematikte sağlam bir temeli olmayan öğrenciler ona bakarlarsa başları ağrır İnanıyorum.Bu dönüşüm, aşağıdaki adımlarda açıklanan dört adımdan oluşur.

İlk yeniden yazma adımı ve neden yeniden yazıldığı, lütfen daha sezgisel olan ve açıklanmayacak olan yukarıdaki şekle bakın.

İkinci dönüştürme adımı, açıklamadan bahsetmek yerine daha basittir.

Üçüncü dönüştürme adımı çok sezgisel değildir. Basit bir türetme gerektirebilir. Birçok kişi bu adımda takılıp kalabilir, bu yüzden işte bir açıklama.

Aslında, k-boyutlu özellik vektörünün iç ürününün toplama formülü en dış tarafa çıkarılırsa, formül yukarıdaki formüle dönüştürülecektir (en dıştaki k-boyutlu toplama işlemi dikkate alınmadan). İki döngü katmanına sahiptir. İç döngü aslında belirli bir özelliğin f'inci bitini belirtmek içindir (bu f en dıştaki k ile belirtilir) ve sonra onu başka bir özelliğe karşılık gelen vektörün f'inci bit değeriyle çarpmaktır; ve Dış döngü, bir döngü toplamı yapmak için her f'inci biti geçer. Bu, belirli bir özellik biti f'yi belirledikten sonra özellik kombinasyonu hesaplama işlemini tamamlar. En dış katmandaki k-boyutlu döngü bunu beşinci konuma kadar takip eder, böylece 3. adımın özellik kombinasyonu tamamlanır.

Önceki sayfadaki formül resmini gösterme süreci tekrar formülle yeniden yazılmıştır (yukarıdaki resme bakın) Aslında, ortak faktörün sadece iki çıkarımıdır. Şimdi anlamalısınız? Hala anlamadıysanız, teşhisiniz geç Parkinson'un matematiksel bir formülüdür. Benimle bir sorunum var. İki hastamız da aynı hastalığa sahip ve benim yapacak bir şeyim yok.

Dördüncü adım formülü değiştirmektir.Anlamı için yukarıdaki şekle bakın Bu adım da çok basittir ve açıklamaz.

Bu nedenle, yukarıdaki dört adımlı formül yeniden yazma yoluyla, FM modeli uygulandığında zaman karmaşıklığının azaldığı görülebilir. N biraz büyük gibi görünse de, gerçek öneri verilerinin özdeğerleri son derece seyrek, yani Çok sayıda xi değerinin 0 olduğu söylenir, bu da gerçekten hesaplanması gereken n özellik sayısının toplam özellik sayısından çok daha az olduğu anlamına gelir, bu da şüphesiz FM'nin hesaplama verimliliğini büyük ölçüde hızlandıracaktır.

Burada yeniden yazılan FM formülünün ilk kare terimini vurgulamalıyız Bu kare terimin anlamını nasıl anlarız? Bu aslında, daha sonra tartışılacak olan çok kanallı geri çağırmayı birleştirmek için FM modelini kullanma temel fikrini içerir, bu yüzden burada özel bir hatırlatma.

Yukarıdaki şekle bakın, bu hesaplama sürecini yaşayabilirsiniz. Gerçekte neye eşdeğerdir?

Bu kare terim, FM'nin tüm özellik öğelerinin gömme vektörlerini toplamaya ve ardından iç çarpımı bulmaya eşdeğerdir. Daha önce sorduğum soruyu sormama izin verin: "Birleşik bir geri çağırma yapmak için FM modelini nasıl kullanıyoruz?" Bu kare terimin anlamı size ilham veriyor mu? Aralarındaki bağlantı hakkında düşünebilirsiniz.

Birleştirilmiş bir geri çağırma modeli oluşturmak için FM modeli nasıl kullanılır?

Önceki belgede belirtildiği gibi, geri çağırma aşamasındaki mevcut endüstri öneri sistemlerinin çoğu, çok kanallı geri çağırma stratejilerini benimser.Örneğin, tipik geri çağırma döngüleri şunlardır: kullanıcı ilgi etiketlerine dayalı geri çağırma; işbirliğine dayalı filtrelemeye dayalı geri çağırma; sıcak noktalara dayalı geri çağırma; Coğrafi hatırlama; Konu bazlı geri çağırma; İsimlendirilmiş varlık bazlı geri çağırma, vb. Ek olarak, birçok başka tipte geri çağırma döngüsü vardır.

Şimdi ilk soruya geliyoruz: Geri çağırma aşamasında, birden fazla geri çağırma sağlamak için birleşik bir model kullanılabilir mi? Yani tek model ve tek yönlü geri çağırma kullanan bir modele mi dönüşüyor? Bu makaleye özel olarak, çok kanallı geri çağırmayı birleştirmek için FM modelini kullanmak mümkün müdür?

Yukarıdaki soruları cevaplamadan önce sanırım sorular soracaksınız: Şu anda herkes çok kanallı hatırlamayı iyi kullanmıştır, neden bunu yapmanız ve çok kanallı geri çağırmayı birleştirmek için tek bir model kullanmanız gerekiyor? Bu soru çok güzel ve ilk önce bunu yapmanın gerekliliğine gerçekten bakmalıyız.

Birleştirilmiş geri çağırmanın ve çoklu geri çağırmanın avantaj ve dezavantajlarının karşılaştırılması

Öncelikle birleşik geri çağırmanın ve çok kanallı hatırlamanın avantajlarını ve dezavantajlarını açıklayalım.Birleşik geri çağırma modunu kullanmanın, çok kanallı geri çağırmaya göre aşağıdaki avantajları olduğunu düşünüyorum:

Her şeyden önce, çok kanallı geri çağırma kullanılır.Her geri çağırma tarafından benimsenen farklı stratejiler veya modeller nedeniyle, ilgili geri çağırma modellerinin puanları karşılaştırılamaz.Örneğin, işbirlikçi filtreleme geri çağırma ile bulunan aday Öğenin puanları ve ilgi etiketi hatırlamasına göre bulunan aday Öğenin puanı. , Tamamen kıyaslanamaz.RankingFMItem

+RankingRankingItemKAB

K

FMFM

RankingRankingRankingRanking

FMRanking

FM

FM

FM

Context

FM

FMFMembedding

User(Item)Context,FItemFFItem

FM

FM

FM

FMembeddingnembeddingU

FMembeddingmembeddingI

FMUI

RedisIDembeddingFaiss(Facebookembedding)

IDembeddingFaissembeddingTop KFaiss

FMFM

embeddingembeddingFMFM

UIFM

FMFMUI

FMembeddingV < V,V > .FM

FMUIUI

UIFM

FM

FM

FM

CUCI

UIDembeddingCUI

CUScore= < U,C > .FMUCUI

UCU+CFaissTop KUU+C < U,I > < C,I > .

Top KScore1 < U,C > Score < U,C > FMSigmoidU/I/C

FMuser embeddingContext embeddingItem embeddingFaissembeddingFM

FM

FMFM

Topic

FMFMFMTopicFM

FMMFMFFMFMUser IDItem IDFields

user IDItem IDFMFMIDIDID

FM

FMFMAB

FM

FMFMFMFM

FMFMFM

FM+

FM+FMFMFMFMFM

FMFMFM

FM

FMUser embeddingItem embeddingFacebookFaiss

18Faiss100embeddingembedding size=300TPS60013200embedding size=300TPS40020

embedding sizeFaissembeddingFaissembedding size

FaissembeddingembeddingembeddingContextembedding

FM+FM

sonuç olarak

FM

FMFMFM+

Bu ne gösteriyor?

FFM

Faiss

https://zhuanlan.zhihu.com/p/58160982

Libra R-CNN: Tam dengeli bir hedef dedektörü
önceki
2018 yıllık raporundan borsa şirketlerinin ihraççılarının potansiyel risklerine bakmak
Sonraki
Para piyasası faiz oranlarının çoğu yükseliyor, faiz tahvilleri kısa ve orta vadede hala ayarlama baskısıyla karşı karşıya
2017 Yıllık Fon Bireysel Yatırımcı Yatırım Anketi Analiz Raporu (10): Emeklilik Sorunları
Gizli Markov modeli basit ve anlaşılması kolay örneklerle nasıl açıklanır?
Karar Ağacının Çok Faktörlü Modelde Uygulanması
Çinli öğrenciler American Airlines School Classmate'te intihar etti: Öğretmenler sanki hapisteymiş gibi fiziksel cezayı cezalandırıyor ve kötüye kullanıyor
36 ÖzelNetEase Koala'nın "küresel fabrika mağazası" çevrimdışı oluyor ve onu açmak için ülkeye katılmaya bağlı
A-hisseleri genellikle düşer, gizli tehlikeler kalır
HBase en iyi uygulama-yazma performansı optimizasyon stratejisi
Çin, 2020'de uzay istasyonu görev aşamasının ilk uçuşunu bekliyor
Guangdong'daki 22 İnternet hastanesinin ilk partisi piyasaya sürüldü!
"Tek Kuşak Bir Yol" inşaatı, uluslararası üretim kapasitesi işbirliği için "yeni fırsatlar" getiriyor
At otlatmadan nasıl çalıştırılır, mikro hizmetlerin düşük maliyetli dönüşümü nasıl tamamlanır?
To Top