Umuman olganda, reklama reytingi tizimi hal qilmoqchi bo'lgan muammo quyidagicha: foydalanuvchi uchun reklama tanlash imkoniyati berilganda, foydalanuvchining o'tmishdagi xatti-harakati, foydalanuvchi qiziqishi va reklamaning tarixiy samaradorligini hisobga olgan holda eng yaxshi reklamani taqdim eting. Reklama beruvchilar uchun ROI. Xo'sh, u qanday ishlaydi? Har bir reklama uchun haqiqiy taklif narxini hisoblash formulasini eslaysizmi? Bizga nafaqat reklamaning maksimal taklif narxi, balki hodisa ehtimoli va organik qiymatlarning og'irligi ham kerak. Reklama serverining eng sodda versiyasida bu reytingchi qattiq kodlangan ballni qaytarishi mumkin. Auktsion mexanizmi barcha nomzodlar e'lonlarini ko'rib chiqadi va EOV va EAVni juda tez hisoblab chiqadi. Ammo, agar biz ushbu reytingni alohida xizmatga kengaytirsak, unumdorlik va daromadni yaxshilash uchun mashinani o'rganish kabi ko'proq usullarni qo'shishimiz mumkin.
Mashinani o'rganish quvur liniyasi
Mashinani o'rganish bo'yicha bunday quvur liniyasini qurish uchun avvalo ma'lumotlarni tozalash va birlashtirishni amalga oshirishimiz kerak. Ushbu bosqich, shuningdek, foydalanuvchi va reklama ko'rsatkichlaridan foydali ma'lumotlarni ajratib oladigan xususiyat muhandisligi deb ham ataladi. Umumiy xususiyatlar quyidagilarni o'z ichiga oladi, lekin ular bilan cheklanmaydi:
Kontekst xususiyatlari: vaqt, joylashuv, qurilma, seans va boshqalar
Ishtirok etish xususiyatlari: ko'rishlar soni, bosishlar soni va boshqalar
Reklama xususiyatlari: kampaniya identifikatori, brend identifikatori, hisob identifikatori va boshqalar
Charchoq xususiyatlari: foydalanuvchi ushbu reklamani, brendni va hokazolarni necha marta ko'rgan
Kontent xususiyatlari: kategoriya, teglar, ob'ektni aniqlash va boshqalar
Dataflow/Spark/Flint yordamida biz ushbu xususiyatlarning barchasini to'liq o'zgartirishimiz va ularni xususiyatlar do'koniga joylashtirishimiz mumkin. Keyingi qadam ushbu xususiyatlardan foydalangan holda modelni o'rgatish bo'ladi. Kompyuterni ko'rish yoki NLPdan farqli o'laroq, reklamalardagi mashinani o'rganish usullari odatda oddiyroq va etukroqdir, masalan, Sparse Logistic Regression va Gradient Boosting Decision Tree. Biz TensorFlow, XGBoost yoki scikit-learn yordamida umumiy trenerni yaratishimiz mumkin. Tajribalarni o'tkazish uchun biz treningga turli xil konfiguratsiya protobuflarini beramiz.
Trener mashg'ulotni tugatib, barcha tekshirish va baholashdan o'tgandan so'ng, u model faylini ba'zi bir masofaviy omborga nashr etadi va reytingchiga ushbu yangi modelni olish uchun xabar beradi. Ko'pincha yangi model ishlashni tekshirish uchun faqat ishlab chiqarish parkining kichik bir qismiga joylashtiriladi.
Ba'zi xususiyatlarni kiritish real vaqt ma'lumotlaridan kelib chiqqanligi sababli, biz o'z vaqtida xususiyatlar indeksini yaratishimiz kerak. Yuqorida aytib o'tganimdek, ushbu indeks reklama indeksini nashr etuvchi tomonidan tayyorlanadi. Reytingchi ish vaqtida ushbu indeksdan reklama statistikasi, foydalanuvchi ishtiroki ko'rsatkichlari kabi narsalarni qidiradi va xulosa chiqaradi.
Ishlab chiqarish mashinasini o'rganish quvurida markaziy rejalashtirish tizimi barcha vazifalarni tartibga soladi. Tizim ish o'rinlari to'g'risidagi ma'lumotlarni saqlaydi, har bir vazifaning holatini kuzatib boradi va ish oqimining DAGni boshqarishga yordam beradi. Ushbu xizmatni boshidan yozish qiyin emas, lekin Airflow yoki Kubeflow-da konteyner operatsiyalaridan foydalanish ham yaxshi variant.