Esc
Klaviatura yorliqlari
?Show this help ⌘KSearch tToggle dark/light theme nOpen notes j / kScroll down / up bBack to top /Focus search EscClose panels
Barcha kurslar
ML System Design
ENRUUZ
Eslatmalar
Current chapter
0 chars
Highlight color
Bob 1

Kirish va Umumiy Ko'rinish

~21 daq o'qish

Kirish va Umumiy Ko'rinish

Biz bu kitobni machine learning (ML) muhandislari va ma'lumotlar olimlariga ML tizim dizayni bo'yicha intervyularda muvaffaqiyat qozonishga yordam berish maqsadida yozdik. Shu bilan birga, kitob ML ning real dunyoda qanday qo'llanilishini yuqori darajada tushunmoqchi bo'lganlar uchun ham foydali bo'lishi mumkin.

Ko'plab muhandislar logistik regressiya yoki neyron tarmoqlar kabi ML algoritmlarini ML tizimining o'zi deb hisoblashadi. Biroq, ishlab chiqarishdagi ML tizimi model ishlab chiqishdan ancha ko'proq narsani o'z ichiga oladi. ML tizimlari odatda murakkab bo'lib, ma'lumotlarni boshqarish uchun ma'lumotlar stacklari, tizimni millionlab foydalanuvchilarga taqdim etish uchun serving infratuzilmasi, taklif qilingan tizim samaradorligini o'lchash uchun baholash quvuri va modelning ishlash ko'rsatkichlari vaqt o'tishi bilan pasaymasligini ta'minlash uchun monitoring kabi ko'plab komponentlarni o'z ichiga oladi.

ML tizim dizayni bo'yicha intervyuda sizdan ochiq savollarga javob berishingiz kutiladi. Masalan, film tavsiya tizimi yoki video qidiruv tizimini loyihalash so'ralishi mumkin. Yagona to'g'ri javob yo'q. Suhbatdosh sizning fikrlash jarayoningizni, turli ML mavzularini chuqur tushunishingizni, uchidan uchiga tizim loyihalash qobiliyatingizni va turli variantlarning afzallik va kamchiliklariga asoslangan dizayn tanlovlaringizni baholashni istaydi.

Murakkab ML tizimlarini loyihalashda muvaffaqiyat qozonish uchun ma'lum bir freymvorkka amal qilish juda muhim. Tartibsiz javoblar savolni kuzatishni qiyinlashtiradi. Ushbu kirish qismida biz kitob davomida ML tizim dizayni savollarini hal qilish uchun foydalaniladigan freymvorkni taklif qilamiz. Freymvork quyidagi asosiy qadamlardan iborat:

  1. Talablarni aniqlashtirish
  2. Muammoni ML vazifasi sifatida shakllantirish
  3. Ma'lumotlarni tayyorlash
  4. Modelni ishlab chiqish
  5. Baholash
  6. Joylashtirish va serving
  7. Monitoring va infratuzilma

Har bir ML tizim dizayni intervyusi turlicha bo'ladi, chunki muammo ochiq va hamma uchun mos keladigan yagona yechim yo'q. Freymvork fikrlaringizni tuzishga yordam berish uchun mo'ljallangan, lekin uni qat'iy bajarishga hojat yo'q. Moslashuvchan bo'ling. Agar suhbatdosh asosan model ishlab chiqishga qiziqsa, ularning yo'nalishiga rioya qilishingiz kerak.

Freymvorkning har bir qadamini ko'rib chiqishdan boshlaylik.

Talablarni Aniqlashtirish

ML tizim dizayni savollari odatda ataylab noaniq bo'lib, minimal ma'lumot beriladi. Masalan, intervyu savoli: "tadbirlarni tavsiya etish tizimini loyihalang" bo'lishi mumkin. Birinchi qadam aniqlashtiruvchi savollar berish. Ammo qanday savollar berish kerak? Aniq talablarni tushunish uchun savollar berishimiz kerak. Boshlashga yordam beradigan kategoriyalashtirilgan savollar ro'yxati:

  • Biznes maqsadi. Agar ta'til ijaralarini tavsiya etish tizimi yaratish so'ralsa, ikki mumkin bo'lgan sabab: bronlar sonini oshirish va daromadni oshirish.
  • Tizim qo'llab-quvvatlashi kerak bo'lgan funksiyalar. ML tizim dizaynimizga ta'sir qilishi mumkin bo'lgan funksiyalar qanday? Masalan, video tavsiya tizimini loyihalash so'ralayotgan bo'lsak, foydalanuvchilar tavsiya qilingan videolarni "yoqtirishi" yoki "yoqtirmasligi" mumkinligini bilishimiz kerak, chunki bu o'zaro ta'sirlar o'quv ma'lumotlarini belgilashda ishlatilishi mumkin.
  • Ma'lumotlar. Ma'lumot manbalari qanday? Ma'lumotlar to'plami qanchalik katta? Ma'lumotlar belgilangan (labeled) mi?
  • Cheklovlar. Qancha hisoblash quvvati mavjud? Bu bulutga asoslangan tizimmi yoki qurilmada ishlashi kerakmi? Model vaqt o'tishi bilan avtomatik ravishda yaxshilanishi kutilmoqdami?
  • Tizim miqyosi. Nechta foydalanuvchimiz bor? Videolar kabi nechta elementni boshqaramiz? Bu ko'rsatkichlarning o'sish darajasi qanday?
  • Ishlash ko'rsatkichlari. Bashorat qanchalik tez bo'lishi kerak? Real vaqt yechimi kutilmoqdami? Aniqlik ustunlikmi yoki kechikishmi?

Bu ro'yxat to'liq emas, lekin uni boshlang'ich nuqta sifatida ishlatishingiz mumkin. Maxfiylik va etika kabi boshqa mavzular ham muhim bo'lishi mumkinligini esda tuting. Ushbu qadamning oxirida suhbatdosh bilan tizimning ko'lami va talablari bo'yicha kelishishimiz kutiladi. Yig'gan talablar va cheklovlar ro'yxatini yozib qo'yish odatda yaxshi g'oya.

Muammoni ML Vazifasi Sifatida Shakllantirish

Samarali muammoni shakllantirish ML muammolarini hal qilishda muhim rol o'ynaydi. Faraz qilaylik, suhbatdosh video oqim platformasining foydalanuvchi ishtirokini oshirishni so'radi. Foydalanuvchi ishtiroki kamligi muammo, ammo bu ML vazifasi emas. Shuning uchun, uni hal qilish uchun ML vazifasi sifatida shakllantirish kerak. Amaliyotda, birinchi navbatda berilgan muammoni hal qilish uchun ML zarurmi yoki yo'qligini aniqlashimiz kerak. ML tizim dizayni intervyusida ML foydali deb taxmin qilish mumkin. Shuning uchun muammoni ML vazifasi sifatida quyidagi tarzda shakllantira olamiz:

  • ML maqsadini aniqlash
  • Tizimning kirishini va chiqishini ko'rsatish
  • To'g'ri ML kategoriyasini tanlash

ML Maqsadini Aniqlash

Biznes maqsadi savdoni 20% oshirish yoki foydalanuvchini ushlab turish darajasini yaxshilash bo'lishi mumkin. Ammo maqsad aniq belgilanmagan bo'lishi mumkin va biz modelga shunchaki "savdoni 20% oshir" deb aytib uni o'qita olmaymiz. ML tizimining vazifani hal qilishi uchun biznes maqsadini aniq belgilangan ML maqsadiga tarjima qilishimiz kerak. Yaxshi ML maqsadi ML modellari hal qila oladigan maqsaddir. Jadval 1.1'da ko'rsatilganidek, ba'zi misollarni ko'rib chiqaylik.

IlovaBiznes maqsadiML maqsadi
Tadbirlar chiptalarini sotish ilovasiChiptalr sotuvi ko'paysinTadbirlarga ro'yxatdan o'tishlar sonini maksimallashtirish
Video oqim ilovasiFoydalanuvchi ishtiroki oshsinFoydalanuvchilar video ko'rish vaqtini maksimallashtirish
Reklama kliklash bashorat tizimiFoydalanuvchi kliklari ko'paysinClick-through rate ni maksimallashtirish
Ijtimoiy media platformasida zararli kontent aniqlashPlatformaning xavfsizligini yaxshilashBerilgan kontent zararli ekanligini to'g'ri bashorat qilish
Do'stlarni tavsiya etish tizimiFoydalanuvchilar tarmoqni kengaytirish darajasini oshirishShakllangan ulanishlar sonini maksimallashtirish

Jadval 1.1: Biznes maqsadini ML maqsadiga tarjima qilish

Tizimning Kirishini va Chiqishini Ko'rsatish

ML maqsadini aniqlagach, tizimning kirishlarini va chiqishlarini belgilashimiz kerak. Masalan, ijtimoiy media platformasidagi zararli kontent aniqlash tizimi uchun kirish post, chiqish esa ushbu post zararli hisoblanganmi yoki yo'qmi.

Ba'zi hollarda tizim bir nechta ML modeldan iborat bo'lishi mumkin. Bunday holda, har bir ML modelning kirishini va chiqishini ko'rsatishimiz kerak. Masalan, zararli kontent aniqlash uchun bir model zoʻravonlikni, boshqasi esa odobsiz rasmlarni bashorat qilishi mumkin.

Yana muhim jihat shundaki, har bir modelning kirish-chiqishini ko'rsatishning bir nechta usuli bo'lishi mumkin.

To'g'ri ML Kategoriyasini Tanlash

Muammoni ML vazifasi sifatida shakllantirish uchun ko'plab turli usullar mavjud. Ko'pchilik muammolar Rasmda ko'rsatilgan ML kategoriyalaridan biri sifatida shakllantirilishi mumkin. Ko'pchilik o'quvchilar ular bilan tanish bo'lganligi sababli, bu yerda faqat qisqacha ko'rib chiqamiz.

Nazoratli o'qitish (Supervised learning). Nazoratli o'qitish modeli o'quv ma'lumotlar to'plamidan foydalangan holda vazifani o'rganadi. Amaliyotda, ko'pchilik muammolar ushbu kategoriyaga kiradi, chunki belgilangan ma'lumotlar to'plamidan o'rganish odatda yaxshiroq natijalarga olib keladi.

Nazoratсiz o'qitish (Unsupervised learning). Nazoratсiz o'qitish modellari to'g'ri javoblar bo'lmagan ma'lumotlarni qayta ishlash orqali bashorat qiladi.

Mustahkamlash orqali o'qitish (Reinforcement learning). Mustahkamlash orqali o'qitishda kompyuter agenti muhit bilan takroriy sinov va xato o'zaro ta'sirlar orqali vazifani bajarishni o'rganadi. Masalan, robotlar mustahkamlash orqali o'qitishdan foydalanib xonada yurish o'rganishi va AlphaGo kabi dasturlar Go o'yinida raqobatlashishi mumkin.

Nazoratli o'qitish bilan solishtirganda, nazoratсiz o'qitish va mustahkamlash orqali o'qitish real dunyodagi tizimlarda kamroq qo'llaniladi, chunki ML modellari o'quv ma'lumotlari mavjud bo'lganda ma'lum vazifani yaxshiroq o'rganadi. Natijada, bu kitobdagi muammolarning aksariyati nazoratli o'qitishga tayanadi.

Klassifikatsiya modeli. Klassifikatsiya diskret sinf belgisini bashorat qilish vazifasidir; masalan, kirish rasm "it", "mushuk" yoki "quyon" sifatida tasniflanishi kerakmi. Klassifikatsiya modellari ikki guruhga bo'linadi:

  • Ikkilik klassifikatsiya modellari ikkilik natijani bashorat qiladi. Masalan, model tasvirda it bormi yoki yo'qligini bashorat qiladi
  • Ko'p sinifli klassifikatsiya modellari kirishni bir nechta sinfdan biriga tasniflaydi. Masalan, rasmni it, mushuk yoki quyon sifatida tasniflashimiz mumkin

Ushbu qadamda siz to'g'ri ML kategoriyasini tanlashingiz kutiladi. Keyingi boblar intervyu davomida to'g'ri kategoriyani qanday tanlash bo'yicha misollar keltiradi.

Muhokama qilish nuqtalari

Intervyu davomida muhokama qilmoqchi bo'lgan ba'zi mavzular:

  • Yaxshi ML maqsadi nima? Turli ML maqsadlari qanday solishtirish? Ularning afzalliklari va kamchiliklari qanday?
  • ML maqsadga asoslanib, tizimning kirishlari va chiqishlari nima?
  • ML tizimida bir nechta model ishtirok etsa, har bir modelning kirishlari va chiqishlari nima?
  • Vazifani nazoratli yoki nazoratсiz tarzda o'rganish kerakmi?
  • Muammoni regressiya yoki klassifikatsiya modeli bilan hal qilish yaxshiroqmi? Klassifikatsiya bo'lsa, ikkilikmi yoki ko'p sinifli? Regressiya bo'lsa, chiqish diapazoni qanday?

Ma'lumotlarni Tayyorlash

ML modellari to'g'ridan-to'g'ri ma'lumotlardan o'rganadi, ya'ni bashorat quvvatiga ega ma'lumotlar ML modelini o'qitish uchun muhimdir. Ushbu bo'lim ML modellari uchun yuqori sifatli kirishlarni tayyorlashga qaratilgan: ma'lumotlar muhandisligi va feature engineering. Har bir jarayonning muhim jihatlarini ko'rib chiqamiz.

Ma'lumotlar muhandisligi

Ma'lumotlar muhandisligi ma'lumotlarni yig'ish, saqlash, olish va qayta ishlash uchun quvurlarni loyihalash va qurish amliyotidir. Zarur bo'lishi mumkin bo'lgan asosiy komponentlarni tushunish uchun ma'lumotlar muhandisligi asoslarini qisqacha ko'rib chiqaylik.

Ma'lumot manbalari

ML tizimi ko'p turli manbalardan ma'lumotlar bilan ishlashi mumkin. Ma'lumot manbalarini bilish ko'plab kontekst savollariga javob berishning yaxshi usuli bo'lib, quyidagilarni o'z ichiga olishi mumkin: uni kim yig'di? Ma'lumotlar qanchalik toza? Ma'lumot manbasiga ishonish mumkinmi? Ma'lumotlar foydalanuvchi tomonidan yaratilganmi yoki tizim tomonidanmi?

Ma'lumotlarni saqlash

Ma'lumotlarni saqlash, shuningdek ma'lumotlar bazasi deb ham ataladi, bu ma'lumotlar to'plamlarini doimiy saqlash va boshqarish uchun ombordir. Turli ma'lumotlar bazalari turli foydalanish holatlarini qondirish uchun qurilgan, shuning uchun turli ma'lumotlar bazalarining qanday ishlashini yuqori darajada tushunish muhim.

Ajratib olish, o'zgartirish va yuklash (ETL)

ETL uch bosqichdan iborat:

  • Ajratib olish. Bu jarayon turli ma'lumot manbalaridan ma'lumotlarni ajratib oladi.
  • O'zgartirish. Ushbu bosqichda ma'lumotlar ko'pincha tozalanadi, xaritalanadi va operatsion ehtiyojlarni qondirish uchun muayyan formatga o'zgartiriladi.
  • Yuklash. O'zgartirilgan ma'lumotlar fayl, ma'lumotlar bazasi yoki ma'lumotlar ombori bo'lishi mumkin bo'lgan maqsadli joyga yuklanadi.
Ma'lumot turlari

ML'da ma'lumot turlari dasturlash tillaridagidan farq qiladi, masalan int, float, string kabi turlar. Yuqori darajada, ma'lumot turlarini ikki turga bo'lish mumkin: tuzilgan va tuzilmagan ma'lumotlar.

Tuzilgan ma'lumotlar oldindan belgilangan ma'lumotlar sxemasiga amal qiladi, tuzilmagan ma'lumotlar esa bunday sxemaga ega emas. Masalan, sanalar, ismlar, manzillar, kredit karta raqamlari va qatorlar va ustunlar bilan jadval formatida ifodalanishi mumkin bo'lgan har qanday narsa tuzilgan ma'lumot hisoblanadi. Tuzilmagan ma'lumotlar asosiy ma'lumotlar sxemasisiz bo'lgan ma'lumotlarni anglatadi, masalan rasmlar, audio fayllar, videolar va matnlar.

Tuzilgan ma'lumotlarTuzilmagan ma'lumotlar
Xususiyatlar
•Oldindan belgilangan sxema
•Qidirish oson
•Sxema yo'q
•Qidirish qiyin
Joylashuvi
•Relyatsion ma'lumotlar bazalari
•Ko'p NoSQL ma'lumotlar bazalari
•Ma'lumotlar omborlari
•NoSQL ma'lumotlar bazalari
•Ma'lumotlar ko'llari
Misollar
•Sanalar
•Telefon raqamlari
•Kredit karta raqamlari
•Manzillar
•Ismlar
•Matn fayllari
•Audio fayllar
•Rasmlar
•Videolar

Jadval 1.2: Tuzilgan va tuzilmagan ma'lumotlar xulosasi

ML modellari ma'lumot turiga qarab turlicha ishlaydi. Ma'lumotlar tuzilgan yoki tuzilmaganligini tushunish va aniqlashtirish model ishlab chiqish bosqichida tegishli ML modelini tanlashga yordam beradi.

Raqamli ma'lumotlar

Raqamli ma'lumotlar raqamlar bilan ifodalangan har qanday ma'lumot nuqtalaridir. Raqamli ma'lumotlar uzluksiz va diskret raqamli ma'lumotlarga bo'linadi. Masalan, uy narxlari uzluksiz raqamli qiymat sifatida ko'rib chiqilishi mumkin. Bundan farqli o'laroq, o'tgan yil sotilgan uylar soni diskret raqamli ma'lumot hisoblanadi.

Kategorik ma'lumotlar

Kategorik ma'lumotlar ularning belgilangan nomlari yoki yorliqlari asosida saqlanishi va aniqlanishi mumkin bo'lgan ma'lumotlarga ishora qiladi. Masalan, jins kategorik ma'lumot chunki uning qiymati cheklangan to'plamdan keladi. Kategorik ma'lumotlar ikkiga bo'linadi: nominal va ordinal.

Nominal ma'lumotlar uning kategoriyalari o'rtasida raqamli munosabat yo'q ma'lumotlarga ishora qiladi. Ordinal ma'lumotlar oldindan belgilangan yoki ketma-ket tartiblangan ma'lumotlarga ishora qiladi.

Feature Engineering

Feature engineering ikki jarayonni o'z ichiga oladi:

  • Xom ma'lumotlardan bashorat qiluvchi feature'larni tanlash va ajratib olish uchun soha bilimini ishlatish
  • Bashorat qiluvchi feature'larni model uchun foydalanish mumkin bo'lgan formatga o'zgartirish

Tegishli feature'larni tanlash ML modellarini ishlab chiqish va o'qitishda eng muhim qarorlardan biridir. Eng ko'p qiymat keltiradigan feature'larni tanlash muhim bo'lib, ushbu feature engineering jarayoni soha bo'yicha bilimni talab qiladi va bajariladigan vazifaga juda bog'liq.

Bashorat qiluvchi feature'lar tanlangach, ularni feature engineering operatsiyalari yordamida mos formatlarga o'zgartirish kerak.

Feature engineering operatsiyalari

Tanlangan feature'larning ba'zilari model uchun ishlatish mumkin bo'lgan formatda bo'lmasligi mumkin. Feature engineering operatsiyalari tanlangan feature'larni model uchun foydalanish mumkin bo'lgan formatga o'zgartiradi. Texnikalar yo'qolgan qiymatlarni boshqarish, qiyshiq taqsimlangan qiymatlarni masshtablash va kategorik feature'larni kodlashni o'z ichiga oladi.

Yo'qolgan qiymatlarni boshqarish

Ishlab chiqarishdagi ma'lumotlarda ko'pincha yo'qolgan qiymatlar mavjud bo'lib, bu odatda ikki usulda hal qilinishi mumkin: o'chirish yoki to'ldirish (imputation).

O'chirish. Bu usul feature'larning istalganida yo'qolgan qiymat bo'lgan barcha yozuvlarni olib tashlaydi. O'chirish qator o'chirish va ustun o'chirishga bo'linishi mumkin.

O'chirishning kamchiligi shundaki, u modelning o'qitish uchun ishlatishi mumkin bo'lgan ma'lumotlar miqdorini kamaytiradi. ML modellari ko'proq ma'lumotlarga duch kelganda yaxshiroq ishlashi sababli bu ideal emas.

To'ldirish (Imputation). Muqobil ravishda, yo'qolgan qiymatlarni ma'lum qiymatlar bilan to'ldirishimiz mumkin. Ba'zi keng tarqalgan amaliyotlar:

  • Yo'qolgan qiymatlarni ularning standart qiymatlari bilan to'ldirish
  • Yo'qolgan qiymatlarni o'rtacha, mediana yoki mod (eng keng tarqalgan qiymat) bilan to'ldirish

To'ldirishning kamchiligi shundaki, u ma'lumotlarga shovqin kiritishi mumkin. Har bir texnikaning o'z afzallik va kamchiliklari borligini yodda tutish kerak.

Feature masshtablash

Feature masshtablash feature'larni standart diapazon va taqsimotga ega bo'lish uchun masshtablash jarayonidir.

Ko'pgina ML modellari ma'lumotlar to'plamining feature'lari turli diapazonda bo'lganda vazifani o'rganishda qiynaladi. Masalan, yosh va daromad kabi feature'lar turli qiymat diapazonlariga ega bo'lishi mumkin. Bundan tashqari, ba'zi modellari feature qiyshiq taqsimotga ega bo'lganda qiynalishi mumkin.

Normalizatsiya (min-max masshtablash). Ushbu yondashuvda feature'lar [0,1] diapazoniga masshtablanadi.

Standartlashtirish (Z-score normalizatsiya). Standartlashtirish feature taqsimotini 0 o'rtacha va 1 standart og'ish bo'lishi uchun o'zgartirish jarayonidir.

Log masshtablash. Feature qiyshiqligini kamaytirish uchun log masshtablash deb ataladigan keng tarqalgan texnikadan foydalanish mumkin.

Diskretizatsiya (Bucketization)

Diskretizatsiya uzluksiz feature'ni kategorik feature'ga aylantirish jarayonidir. Masalan, balandlikni uzluksiz feature sifatida ifodalash o'rniga, balandliklarni diskret bucketlarga bo'lishimiz va har bir balandlikni tegishli bucket bilan ifodalashimiz mumkin.

Diskretizatsiya diskret feature'larga ham qo'llanilishi mumkin. Masalan, foydalanuvchining yoshi diskret feature, ammo uni diskretizatsiya qilish kategoriyalar sonini kamaytiradi.

BucketYosh diapazoni
10-9
210-19
320-39
440-59
560+

Jadval 1.3: Raqamli yosh atributlarini diskretizatsiya qilish

Kategorik feature'larni kodlash

Ko'pgina ML modellarida barcha kirishlar va chiqishlar raqamli bo'lishi kerak. Bu shuni anglatadiki, agar feature kategorik bo'lsa, uni modelga yuborishdan oldin raqamlarga kodlashimiz kerak. Kategorik feature'larni raqamli ifodalarga aylantirish uchun uchta keng tarqalgan usul mavjud: butun son kodlash, one-hot encoding va embedding learning.

Butun son kodlash. Har bir noyob kategoriya qiymatiga butun son qiymati beriladi. Bu usul butun son qiymatlari o'zaro tabiiy munosabatga ega bo'lganda foydali.

One-hot encoding. Ushbu texnika bilan har bir noyob qiymat uchun yangi ikkilik feature yaratiladi. Masalan, asl feature (rang) uchta yangi ikkilik feature (qizil, yashil va ko'k) bilan almashtiriladi.

Embedding learning. Kategorik feature'ni kodlashning yana bir usuli embedding learning'dan foydalanishdir. Embedding bu kategorik feature'ni N o'lchovli vektorga xaritalashdir. Ushbu yondashuv feature qabul qiladigan noyob qiymatlar soni juda katta bo'lganda foydali.

Muhokama qilish nuqtalari

Intervyu davomida muhokama qilishni xohlashingiz mumkin bo'lgan ba'zi mavzular:

  • Ma'lumotlarning mavjudligi va to'plash: Ma'lumot manbalari qanday? Qanday ma'lumotlar mavjud va biz ularni qanday yig'amiz? Ma'lumotlar to'plamining hajmi qancha? Yangi ma'lumotlar qanchalik tez-tez keladi?
  • Ma'lumotlarni saqlash: Ma'lumotlar hozirda qayerda saqlanadi? U bulutdami yoki foydalanuvchi qurilmalaridami? Ma'lumotlarni saqlash uchun qaysi ma'lumot formati mos? Multimodal ma'lumotlarni, masalan rasmlar va matnlarni o'z ichiga olgan ma'lumot nuqtasini qanday saqlaymiz?
  • Feature engineering: Xom ma'lumotlarni modellar uchun foydali bo'lgan shaklga qanday qayta ishlaymiz? Yo'qolgan ma'lumotlar bilan nima qilamiz? Ushbu vazifa uchun feature engineering kerakmi? ML modeli uchun foydalanish mumkin bo'lgan formatga xom ma'lumotlarni o'zgartirish uchun qaysi operatsiyalardan foydalanamiz?
  • Maxfiylik: Mavjud ma'lumotlar qanchalik sezgir? Foydalanuvchilar o'z ma'lumotlarining maxfiyligi haqida tashvishlanadilarmi? Foydalanuvchi ma'lumotlarini anonimlashtirish zarurmi?
  • Noxolislik: Ma'lumotlarda biron-bir noxolislik bormi? Ha bo'lsa, qanday noxolisliklar mavjud va ularni qanday tuzatamiz?

Modelni Ishlab Chiqish

Modelni ishlab chiqish tegishli ML modelini tanlash va qo'ldagi vazifani hal qilish uchun uni o'qitish jarayonini anglatadi.

Modelni tanlash

Modelni tanlash bashoratli modellashtirish muammosi uchun eng yaxshi ML algoritmini va arxitekturasini tanlash jarayonidir. Amaliyotda, modelni tanlashning odatiy jarayoni:

  • Oddiy asosiy satrni (baseline) o'rnating. Masalan, video tavsiya tizimida asosiy satr eng mashhur videolarni tavsiya qilish orqali olinishi mumkin.
  • Oddiy modellar bilan tajriba o'tkazing. Asosiy satrga ega bo'lgach, logistik regressiya kabi tezda o'qitiladigan ML algoritmlarini o'rganish yaxshi amaliyot.
  • Murakkab modellarga o'ting. Oddiy modellar qoniqarli natijalarni bera olmasa, chuqur neyron tarmoqlar kabi murakkabroq modellarni ko'rib chiqishimiz mumkin.
  • Yanada aniq bashoratlar istasangiz, modellar ansamblidan foydalaning. Faqat bittasi o'rniga bir nechta modellar ansamblidan foydalanish bashoratlar sifatini yaxshilashi mumkin.

Intervyu muhitida, turli model variantlarini ko'rib chiqish va ularning afzalliklari va kamchiliklarini muhokama qilish muhim. Ba'zi odatiy model variantlari:

  • Logistik regressiya
  • Chiziqli regressiya
  • Qaror daraxtlari
  • Gradient boosted decision trees va random forests
  • Support vector machines
  • Naive Bayes
  • Factorization Machines (FM)
  • Neyron tarmoqlar

Turli variantlarni ko'rib chiqayotganda, algoritmni qisqacha tushuntirish va murosa-murosalarni muhokama qilish yaxshi. Masalan, logistik regressiya chiziqli vazifani o'rganish uchun yaxshi variant bo'lishi mumkin, ammo vazifa murakkab bo'lsa, boshqa modelni tanlashimiz kerak bo'lishi mumkin.

Modelni o'qitish

Model tanlash tugagach, modelni o'qitish vaqti keldi. Ushbu bosqichda intervyuda muhokama qilishingiz mumkin bo'lgan turli mavzular mavjud:

  • Ma'lumotlar to'plamini yaratish
  • Yo'qotish funksiyasini tanlash
  • Noldan o'qitish vs. fine-tuning
  • Taqsimlangan o'qitish (Distributed training)
Ma'lumotlar to'plamini yaratish

Intervyuda model o'qitish va baholash uchun ma'lumotlar to'plamini yaratish haqida gapirish odatda yaxshi g'oya. Ma'lumotlar to'plamini yaratishda 5 ta qadam mavjud.

"Feature'lar va labellarni aniqlash" dan tashqari barcha qadamlar umumiy operatsiyalar bo'lib, har qanday ML tizimi dizayni vazifasiga qo'llanilishi mumkin.

Xom ma'lumotlarni yig'ish

Bu ma'lumotlarni tayyorlash bosqichida keng muhokama qilingan, shuning uchun bu yerda takrorlamaymiz.

Feature'lar va labellarni aniqlash

Feature engineering bosqichida biz qaysi feature'lardan foydalanishni muhokama qilganmiz. Shuning uchun ma'lumotlar uchun labellar yaratishga e'tibor qarataylik. Labellarni olishning ikkita keng tarqalgan usuli mavjud: qo'lda belgilash va tabiiy belgilash.

Qo'lda belgilash. Bu shuni anglatadiki, alohida annotatorlar ma'lumotlarni qo'lda belgilaydilar. Qo'lda belgilash inson jarayonga jalb etilganligi sababli aniq labellar beradi. Biroq, qo'lda belgilashning ko'plab kamchiliklari bor: qimmat va sekin, noxolislik kiritadi, soha bilimini talab qiladi va ma'lumotlar maxfiyligi uchun xavf tug'diradi.

Tabiiy belgilash. Tabiiy belgilashda, ground truth labellar inson annotatsiyalarisiz avtomatik ravishda chiqariladi.

Faraz qilaylik, biz yangiliklar lentasini dolzarblik asosida tartiblash ML tizimini loyihalashni istaymiz. Bitta mumkin bo'lgan usul - foydalanuvchi va postni kirish sifatida qabul qiladigan va foydalanuvchi ushbu postni ko'rgandan so'ng "like" tugmasini bosish ehtimolini chiqarish sifatida beradigan modelni o'qitish. Bunday holda, o'quv ma'lumotlari ⟨ foydalanuvchi, post ⟩ juftliklari va ularning mos labellari bo'lib, foydalanuvchi postni yoqtirsa 1, yoqtirmasa 0.

Namunalash strategiyasini tanlash

Barcha ma'lumotlarni to'plash ko'pincha amaliy emas, shuning uchun namunalash tizimda ma'lumotlar miqdorini kamaytirish uchun samarali usul hisoblanadi. Keng tarqalgan namunalash strategiyalari: qulaylik namunalash, qor to'pi namunalash, stratifikatsiyalashtirilgan namunalash, rezervuar namunalash va ahamiyat namunalashtirish.

Ma'lumotlarni bo'lish

Ma'lumotlarni bo'lish ma'lumotlar to'plamini o'qitish, baholash (validatsiya) va test ma'lumotlar to'plamiga bo'lish jarayonini anglatadi.

Sinf nomutanosibligini hal qilish

Sinf labellari qiyshiq bo'lgan ma'lumotlar to'plami nomutanosib ma'lumotlar to'plami deyiladi. Ma'lumotlar to'plamining kattaroq qismini tashkil etuvchi sinf ko'pchilik sinf, kichikroq qismini tashkil etuvchi sinf ozchilik sinf deyiladi.

Nomutanosib ma'lumotlar to'plami model o'qitishda jiddiy muammo, chunki model ozchilik sinfini o'rganish uchun yetarli ma'lumotlarga ega bo'lmasligi mumkin. Bu muammoni kamaytirish uchun turli texnikalar mavjud: o'quv ma'lumotlarini qayta namunalash va yo'qotish funksiyasini o'zgartirish.

O'quv ma'lumotlarini qayta namunalash

Qayta namunalash turli sinflar o'rtasidagi nisbatni sozlash, ma'lumotlarni yanada muvozanatliroq qilish jarayonini anglatadi. Masalan, ozchilik sinfini oversample qilishimiz yoki ko'pchilik sinfini undersample qilishimiz mumkin.

Yo'qotish funksiyasini o'zgartirish

Ushbu texnika yo'qotish funksiyasini sinf nomutanosibligiga qarshi yanada mustahkam qilish uchun o'zgartiradi. Asosiy g'oya ozchilik sinfidan ma'lumot nuqtalariga ko'proq og'irlik berish. Sinf nomutanosibligini kamaytirish uchun keng ishlatiladigan ikkita yo'qotish funksiyasi: class-balanced loss va focal loss.

Yo'qotish funksiyasini tanlash

Ma'lumotlar to'plami yaratilgach, modelni o'qitish uchun tegishli yo'qotish funksiyasini tanlashimiz kerak. Yo'qotish funksiyasi modelning kutilgan natijani bashorat qilishdagi aniqligini o'lchash vositasidir.

Yangi yo'qotish funksiyasini loyihalash oson emas. ML intervyularida, odatda muammoni qanday shakllantirganingizga asoslanib, mavjud yo'qotish funksiyalari ro'yxatidan birini tanlashingiz kutiladi.

Noldan o'qitish vs. fine-tuning

Qisqacha muhokama qilish foydali bo'lishi mumkin bo'lgan mavzu - noldan o'qitish vs. fine-tuning. Fine-tuning modelni o'zining o'rganilgan parametrlariga kichik o'zgarishlar kiritish orqali yangi ma'lumotlarda o'qitishni davom ettirishni anglatadi.

Taqsimlangan o'qitish

Katta miqyosda o'qitish vaqt o'tishi bilan tobora muhim ahamiyat kasb etib bormoqda, chunki modellar o'sib bormoqda va ma'lumotlar to'plami ham keskin ko'paymoqda. Taqsimlangan o'qitish modelni bir nechta ishchi nodlar orasida ish taqsimlash orqali o'qitish uchun keng tarqalgan usuldir. Taqsimlangan o'qitishning ikkita asosiy turi mavjud: data parallelism va model parallelism.

Muhokama qilish nuqtalari

Ba'zi muhokama qilish nuqtalari quyida keltirilgan:

  • Modelni tanlash: Qaysi ML modellari vazifa uchun mos va ularning afzalliklari va kamchiliklari qanday. Modelni tanlashda ko'rib chiqish uchun mavzular ro'yxati: o'qitish vaqti, modelning kutadigan o'quv ma'lumotlari miqdori, modelga kerak bo'lishi mumkin bo'lgan hisoblash resurslari, inference vaqtidagi kechikishi, modelni foydalanuvchi qurilmasiga joylashtirish mumkinmi, modelning izohlanarliligi, uzluksiz o'qitishdan foydalanish mumkinmi yoki noldan o'qitish kerakmi, modelda nechta parametr bor va qancha xotira kerak.
  • Ma'lumotlar to'plami labellari: Labellarni qanday olishimiz kerak? Ma'lumotlar annotatsiyalanganmi va annotatsiyalar qanchalik sifatli? Tabiiy labellar mavjud bo'lsa, ularni qanday olamiz?
  • Model o'qitish: Qaysi yo'qotish funksiyasini tanlash kerak? Qaysi regulyarizatsiyadan foydalanish kerak? Backpropagation nima? SGD, AdaGrad, Momentum, RMSProp kabi keng tarqalgan optimallashtirish usullarini tavsiflashingiz kerak bo'lishi mumkin.
  • Uzluksiz o'qitish: Modelni har yangi ma'lumot nuqtasi bilan onlayn o'qitishni xohlaymizmi? Modelni har bir foydalanuvchiga moslashtirish kerakmi? Modelni qanchalik tez-tez qayta o'qitamiz?

Baholash

Model ishlab chiqishdan keyingi qadam baholash bo'lib, bu ML modelining ishlashini tushunish uchun turli metrikalardan foydalanish jarayonidir. Ushbu bo'limda biz ikkita baholash usulini ko'rib chiqamiz: oflayn va onlayn.

Oflayn baholash

Oflayn baholash model ishlab chiqish bosqichida ML modellarining ishlashini baholashni anglatadi. Modelni baholash uchun odatda avval baholash ma'lumotlar to'plamidan foydalanib bashoratlar qilamiz. Keyin bashoratlar ground truth qiymatlariga qanchalik yaqinligini o'lchash uchun turli oflayn metrikalardan foydalanamiz.

VazifaOflayn metrikalar
KlassifikatsiyaPrecision, recall, F1 score, accuracy, ROC-AUC, PR-AUC, confusion matrix
RegressiyaMSE, MAE, RMSE
ReytingPrecision@k, recall@k, MRR, mAP, nDCG
Rasm yaratishFID, Inception score
Tabiiy tilni qayta ishlashBLEU, METEOR, ROUGE, CIDEr, SPICE

Jadval 1.4: Oflayn baholashdagi mashhur metrikalar

Intervyu davomida oflayn baholash uchun mos metrikalarni aniqlash muhim. Bu qo'ldagi vazifaga va uni qanday shakllantirganingizga bog'liq.

Onlayn baholash

Onlayn baholash modelning joylashtirish va ishlab chiqarishdan keyin qanday ishlashini baholash jarayonini anglatadi. Modelning ta'sirini o'lchash uchun turli metrikalarni aniqlashimiz kerak. Onlayn metrikalar odatda biznes maqsadlariga bog'liq.

MuammoOnlayn metrikalar
Reklama kliki bashoratiClick-through rate, revenue lift va boshqalar
Zararli kontent aniqlashTarqalish darajasi, valid shikoyatlar va boshqalar
Video tavsiyasiClick-through rate, umumiy ko'rish vaqti, tugallangan videolar soni va boshqalar
Do'stlarni tavsiya etishKuniga yuborilgan so'rovlar soni, kuniga qabul qilingan so'rovlar soni va boshqalar

Jadval 1.5: Onlayn baholashdagi mumkin bo'lgan metrikalar

Amaliyotda, kompaniyalar ko'plab onlayn metrikalarni kuzatadi. Intervyuda tizimning ta'sirini o'lchash uchun eng muhimlaridan ba'zilarini tanlashimiz kerak.

Muhokama qilish nuqtalari

Baholash bosqichi uchun ba'zi muhokama qilish nuqtalari:

  • Onlayn metrikalar: ML tizimining onlayn samaradorligini o'lchash uchun qaysi metrikalar muhim? Bu metrikalar biznes maqsadi bilan qanday bog'liq?
  • Oflayn metrikalar: Ishlab chiqish bosqichida modelning bashoratlarini baholashda qaysi oflayn metrikalar yaxshi?
  • Adolatlilik va noxolislik: Model yosh, jins, irq kabi turli atributlar bo'yicha noxolislik potentsialiga egami? Buni qanday tuzatasiz?

Joylashtirish va Serving

Onlayn va oflayn baholashlar uchun tegishli metrikalarni tanlagandan keyin tabiiy keyingi qadam modelni ishlab chiqarishga joylashtirish va millionlab foydalanuvchilarga xizmat ko'rsatishdir. Ba'zi muhim mavzular:

  • Bulut vs. qurilmada joylashtirish
  • Model siqish (compression)
  • Ishlab chiqarishda sinov
  • Bashorat quvuri

Har biriga nazar solaylik.

Bulut vs. qurilmada joylashtirish

Modelni bulutda joylashtirish uni mobil qurilmada joylashtirish bilan farq qiladi. Jadval 1.6 qurilmada va bulutda joylashtirishning asosiy farqlarini xulosalaydi.

BulutQurilmada
Soddalik✓ Bulut xizmatlaridan foydalanib joylashtirish va boshqarish oson✘ Qurilmada modellarni joylashtirish murakkab
Narx✘ Bulut narxlari yuqori bo'lishi mumkin✓ Hisoblashlar qurilmada amalga oshirilganda bulut narxi yo'q
Tarmoq kechikishi✘ Tarmoq kechikishi mavjud✓ Tarmoq kechikishi yo'q
Inference kechikishi✓ Kuchliroq mashinalar tufayli odatda tezroq inference✘ ML modellari sekinroq ishlaydi
Apparat cheklovlari✓ Kamroq cheklovlar✘ Ko'proq cheklovlar, masalan cheklangan xotira, batareya sarfi
Maxfiylik✘ Foydalanuvchi ma'lumotlari bulutga o'tkazilganligi sababli kamroq maxfiylik✓ Ma'lumotlar qurilmani tark etmaganligi sababli ko'proq maxfiylik
Internet ulanishiga bog'liqlik✘ Bulutga ma'lumot yuborish va olish uchun internet ulanishi kerak✓ Internet ulanishi kerak emas

Jadval 1.6: Bulut va qurilmada joylashtirish o'rtasidagi murosa-murosalar

Model siqish

Model siqish modelni kichikroq qilish jarayonini anglatadi. Bu inference kechikishini va model hajmini kamaytirish uchun zarur. Modellarni siqish uchun uchta texnika keng tarqalgan:

  • Knowledge distillation: Maqsad kichik modelni (student) katta modelni (teacher) taqlid qilishga o'qitish.
  • Pruning: Pruning eng kam foydali parametrlarni topish va ularni nolga o'rnatish jarayonidir. Bu yanada siyrak modellarni yaratadi.
  • Quantization: Model parametrlari ko'pincha 32-bitli suzuvchi raqamlar bilan ifodalanadi. Quantization'da biz parametrlarni ifodalash uchun kamroq bitdan foydalanamiz, bu modelning hajmini kamaytiradi.

Ishlab chiqarishda sinov

Modelning ishlab chiqarishda yaxshi ishlashini ta'minlashning yagona usuli uni real trafik bilan sinab ko'rishdir. Modellarni sinash uchun keng tarqalgan texnikalar: shadow deployment, A/B testing, canary release, interleaving experiments, bandits va boshqalar.

Shadow deployment

Ushbu usulda yangi modelni mavjud model bilan parallel ravishda joylashtiramiz. Har bir kiruvchi so'rov ikkala modelga yo'naltiriladi, ammo faqat mavjud modelning bashorati foydalanuvchiga taqdim etiladi.

A/B testing

Ushbu usulda yangi modelni mavjud model bilan parallel ravishda joylashtiramiz. Trafikning bir qismi yangi ishlab chiqilgan modelga yo'naltiriladi, qolgan so'rovlar esa mavjud modelga yo'naltiriladi.

Bashorat quvuri

Ishlab chiqarishdagi so'rovlarga xizmat ko'rsatish uchun bizga bashorat quvuri kerak. Muhim dizayn qarori - onlayn bashorat va paketli bashorat o'rtasidagi tanlov.

Paketli bashorat (Batch prediction). Paketli bashorat bilan model davriy ravishda bashoratlar qiladi. Bashoratlar oldindan hisoblanganligi sababli, ular oldindan hisoblangandan keyin modelning bashoratlarni yaratish uchun qancha vaqt ketishi haqida tashvishlanishimiz shart emas.

Onlayn bashorat. Onlayn bashoratda bashoratlar so'rovlar kelishi bilanoq yaratiladi va qaytariladi. Onlayn bashoratning asosiy muammosi shundaki, model bashoratlarni yaratish uchun juda ko'p vaqt ketishi mumkin.

Bu paketli bashorat yoki onlayn bashorat tanlovi asosan mahsulot talablari bilan belgilanadi. Onlayn bashorat odatda oldindan nima hisoblash kerakligini bilmaydigan holatlarda afzal. Paketli bashorat tizim katta hajmdagi ma'lumotlarni qayta ishlashda va natijalar real vaqtda kerak bo'lmaganda ideal.

Muhokama qilish nuqtalari

  • Model siqish kerakmi? Keng tarqalgan siqish texnikalar qanday?
  • Onlayn bashorat yoki paketli bashorat yanada mos? Murosa-murosalar qanday?
  • Feature'larga real vaqtda kirish mumkinmi? Qiyinchiliklar qanday?
  • Joylashtirilgan modelni ishlab chiqarishda qanday sinab ko'rish kerak?
  • ML tizimi so'rovlarga xizmat ko'rsatish uchun birgalikda ishlaydigan turli komponentlardan iborat. Taklif qilingan dizayndagi har bir komponentning mas'uliyati qanday?

Monitoring

Monitoring turli metrikalarni kuzatish, o'lchash va jurnalga yozish vazifasini anglatadi. Ishlab chiqarishdagi ML tizimi ko'p sabablarga ko'ra muvaffaqiyatsiz bo'lishi mumkin. Monitoring tizim nosozliklari sodir bo'lganda ularni aniqlashga yordam beradi, shunda ular imkon qadar tezroq tuzatilishi mumkin.

Monitoring ML tizim dizayni intervyularida muhokama qilish uchun muhim mavzu. Siz muhokama qilmoqchi bo'lishingiz mumkin bo'lgan ikkita asosiy soha:

  • Tizim nima uchun ishlab chiqarishda muvaffaqiyatsiz bo'ladi
  • Nimalarni monitoring qilish kerak

Tizim nima uchun ishlab chiqarishda muvaffaqiyatsiz bo'ladi

ML tizimi ishlab chiqarishga joylashtirilgandan keyin muvaffaqiyatsiz bo'lishining turli sabablari mavjud. Eng keng tarqalgan sabablardan biri ma'lumotlar taqsimoti o'zgarishi (data distribution shift) hisoblanadi.

Ma'lumotlar taqsimoti o'zgarishi - bu modelning ishlab chiqarishda duch keladigan ma'lumotlari o'qitish davridagi ma'lumotlardan farq qiladigan stsenaridir.

Ma'lumotlar taqsimoti real dunyoda doimo o'zgarib turadi. Boshqacha aytganda, o'qitish uchun ishlatiladigan ma'lumotlar vaqt o'tishi bilan kamroq dolzarb bo'ladi. Bu vaqt o'tishi bilan ishlash ko'rsatkichlari yomonlashgan eskirgan modelga olib keladi.

  • Katta ma'lumotlar to'plamlarida o'qitish. Yetarlicha katta o'quv ma'lumotlar to'plami modelning keng qamrovli taqsimotni o'rganishiga imkon beradi.
  • Yangi taqsimotdan belgilangan ma'lumotlar yordamida modelni muntazam ravishda qayta o'qitish.

Nimalarni monitoring qilish kerak

Bu keng mavzu bo'lib, biz bu yerda ishlab chiqarishdan keyingi monitoring texnikalariga e'tibor qaratamiz. Maqsadimiz ML tizimidagi nosozliklarni aniqlash va o'zgarishlarni aniqlashtirish. Monitoring texnikalarini ikkita toifaga bo'lish mumkin: operatsion va ML'ga xos metrikalar.

Operatsion metrikalar: Ushbu metrikalar tizimning ishlayotganligini ta'minlaydi. Ular o'rtacha serving vaqtlari, o'tkazuvchanlik, bashorat so'rovlari soni, CPU/GPU foydalanishi va boshqalarni o'z ichiga oladi.

ML'ga xos metrikalar:

  • Kirish/chiqishlarni monitoring qilish. Modellar faqat ular iste'mol qiladigan ma'lumotlar kabi yaxshi, shuning uchun modelning kirishlarini va chiqishlarini monitoring qilish juda muhim.
  • Driftlar. Tizimga kirishlar va modelning chiqishlari ularning asosiy taqsimotidagi o'zgarishlarni aniqlash uchun monitoring qilinadi.
  • Model aniqligi. Masalan, aniqlik ma'lum diapazon ichida bo'lishini kutamiz.
  • Model versiyalari. Modelning qaysi versiyasi joylashtirilganini monitoring qilish.

Infratuzilma

Infratuzilma ML tizimlarini o'qitish, joylashtirish va saqlash uchun asos hisoblanadi.

Ko'plab ML intervyularida sizdan infratuzilma bilan bog'liq savollar so'ralmasligi mumkin. Biroq, DevOps va MLOps kabi ba'zi ML rollari infratuzilma bilimini talab qilishi mumkin.

Xulosa

Ushbu bobda biz ML tizim dizayni intervyusi uchun freymvork taklif qildik. Ushbu bobda muhokama qilingan ko'plab mavzular vazifaga xos bo'lsa-da, ba'zilari umumiy va keng ko'lamli vazifalar uchun qo'llaniladi. Kitob davomida biz faqat muammoga xos noyob muhokama qilish nuqtalariga e'tibor qaratamiz, takrorlanishdan qochish maqsadida.

Nihoyat, hech bir muhandis ML hayot tsiklining har jihatida mutaxassis bo'la olmaydi. Ba'zi muhandislar joylashtirish va ishlab chiqarishda mutaxassislashgan, boshqalari model ishlab chiqishda. Ba'zi kompaniyalar infratuzilmani unchalik e'tibor bermashi mumkin, boshqalari esa monitoring va infratuzilmaga katta e'tibor beradi. Rol va suhbatdoshning afzalliklariga qarab, ba'zi qadamlar batafsilroq muhokama qilinishi, boshqalari esa qisqacha yoki umuman ko'rib chiqilmasligi mumkin.

Endi bu asoslarni tushunganingizdan so'ng, eng keng tarqalgan ML tizim dizayni intervyu savollarini hal qilishga tayyormiz.

Adabiyotlar

  1. Ma'lumotlar ombori. https://cloud.google.com/learn/what-is-a-data-warehouse.
  2. Ansambl o'qitishda bagging texnikasi. https://en.wikipedia.org/wiki/Bootstrap_aggregating.
  3. Ansambl o'qitishda boosting texnikasi. https://aws.amazon.com/what-is/boosting/.
  4. Ansambl o'qitishda stacking texnikasi. https://machinelearningmastery.com/stacking-ensemble-machine-learning-with-python/.
  5. Machine Learningda izohlanuvchanlik. https://blog.ml.cmu.edu/2020/08/31/6-interpretability/.
  6. An'anaviy machine learning algoritmlari. https://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/.
  7. Namunalash strategiyalari. https://www.scribbr.com/methodology/sampling-methods/.
  8. Ma'lumotlarni bo'lish texnikasi. https://machinelearningmastery.com/train-test-split-for-evaluating-machine-learning-algorithms/.
  9. Class-balanced loss. https://arxiv.org/pdf/1901.05555.pdf.
  10. Focal loss maqolasi. https://arxiv.org/pdf/1708.02002.pdf.
  11. Focal loss. https://medium.com/swlh/focal-loss-an-efficient-way-of-handling-class-imbalance-4855ae1db4cb.
  12. Data parallelism. https://www.telesens.co/2017/12/25/understanding-data-parallelism-in-machine-learning/.
  13. Model parallelism. https://docs.aws.amazon.com/sagemaker/latest/dg/model-parallel-intro.html.
  14. Cross entropy loss. https://en.wikipedia.org/wiki/Cross_entropy.
  15. Mean squared error loss. https://en.wikipedia.org/wiki/Mean_squared_error.
  16. Mean absolute error loss. https://en.wikipedia.org/wiki/Mean_absolute_error.
  17. Huber loss. https://en.wikipedia.org/wiki/Huber_loss.
  18. L1 va l2 regulyarizatsiya. https://www.analyticssteps.com/blogs/l2-and-l1-regularization-machine-learning.
  19. Entropy regulyarizatsiya. https://paperswithcode.com/method/entropy-regularization.
  20. K-fold cross validatsiya. https://en.wikipedia.org/wiki/Cross-validation_(statistics).
  21. Dropout maqolasi. https://jmlr.org/papers/volume15/srivastava14a/srivastava14a.pdf.
  22. Stochastic gradient descent. https://en.wikipedia.org/wiki/Stochastic_gradient_descent.
  23. AdaGrad optimallashtirish algoritmi. https://optimization.cbe.cornell.edu/index.php?title=AdaGrad.
  24. Momentum optimallashtirish algoritmi. https://optimization.cbe.cornell.edu/index.php?title=Momentum.
  25. RMSProp optimallashtirish algoritmi. https://optimization.cbe.cornell.edu/index.php?title=RMSProp.
  26. ELU aktivatsiya funksiyasi. https://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#elu.
  27. ReLU aktivatsiya funksiyasi. https://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#relu.
  28. Tanh aktivatsiya funksiyasi. https://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#tanh.
  29. Sigmoid aktivatsiya funksiyasi. https://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html#softmax.
  30. FID score. https://en.wikipedia.org/wiki/Fr%C3%A9chet_inception_distance.
  31. Inception score. https://en.wikipedia.org/wiki/Inception_score.
  32. BLEU metrikalari. https://en.wikipedia.org/wiki/BLEU.
  33. METEOR metrikalari. https://en.wikipedia.org/wiki/METEOR.
  34. ROUGE score. https://en.wikipedia.org/wiki/ROUGE_(metric).
  35. CIDEr score. https://arxiv.org/pdf/1411.5726.pdf.
  36. SPICE score. https://arxiv.org/pdf/1607.08822.pdf.
  37. Quantization-aware training. https://pytorch.org/docs/stable/quantization.html.
  38. Model siqish so'rovi. https://arxiv.org/pdf/1710.09282.pdf.
  39. Shadow deployment. https://christophergs.com/machine%20learning/2019/03/30/deploying-machine-learning-applications-in-shadow-mode/.
  40. A/B testing. https://en.wikipedia.org/wiki/A/B_testing.
  41. Canary release. https://blog.getambassador.io/cloud-native-patterns-canary-release-1cb8f82d371a.
  42. Interleaving tajriba. https://netflixtechblog.com/interleaving-in-online-experiments-at-netflix-a04ee392ec55.
  43. Multi-armed bandit. https://vwo.com/blog/multi-armed-bandit-algorithm/.
  44. ML infratuzilmasi. https://www.run.ai/guides/machine-learning-engineering/machine-learning-infrastructure.
  45. ML'da izohlanuvchanlik. https://fullstackdeeplearning.com/spring2021/lecture-6/.
  46. Chip Huyen. Designing Machine Learning Systems: An Iterative Process for Production-Ready Application. O'Reilly Media, Inc., 2022.
Bob 2

Vizual Qidiruv Tizimi

~12 daq o'qish

Vizual Qidiruv Tizimi

Tizim foydalanuvchilarga tanlangan rasmga vizual jihatdan o'xshash rasmlarni topishga yordam beradi. Ushbu bobda biz Pinterest'ga o'xshash vizual qidiruv tizimini loyihalashtiramiz.

Talablarni Aniqlashtirish

Nomzod va suhbatdosh o'rtasidagi odatiy muloqot.

Nomzod: Natijalarni eng o'xshashdan kamroq o'xshashgacha tartiblashimiz kerakmi? Suhbatdosh: Ro'yxatda birinchi ko'rinadigan rasmlar so'rov rasmi bilan ko'proq o'xshash bo'lishi kerak.

Nomzod: Tizim videolarni ham qo'llab-quvvatlashi kerakmi? Suhbatdosh: Faqat rasmlarga e'tibor qarataylik.

Nomzod: Pinterest kabi platforma foydalanuvchilarga rasm bo'lagini tanlash va o'xshash rasmlarni topish imkonini beradi. Bu funksiyani qo'llab-quvvatlashimiz kerakmi? Suhbatdosh: Ha.

Nomzod: Ko'rsatilgan rasmlar foydalanuvchiga moslashtirilganmi? Suhbatdosh: Soddalik uchun, moslashtirish (personalization)ga e'tibor qaratmaylik. So'rov rasmi qidirayotgan kishidan qat'i nazar bir xil natijalarni beradi.

Nomzod: Model so'rov rasmining metama'lumotlaridan, masalan rasm teglaridan foydalana oladimi? Suhbatdosh: Amaliyotda, model rasm metama'lumotlaridan foydalanadi. Ammo soddalik uchun, metama'lumotlarga emas, faqat rasm piksellariga tayanamiz deb faraz qilaylik.

Nomzod: Foydalanuvchilar saqlash, ulashish yoki yoqtirish kabi boshqa harakatlar qila oladimi? Bu harakatlar o'quv ma'lumotlarini belgilashda yordam berishi mumkin. Suhbatdosh: Yaxshi nuqta. Soddalik uchun, yagona qo'llab-quvvatlanadigan harakat rasm kliklari ekanligini faraz qilaylik.

Nomzod: Rasmlarni moderatsiya qilishimiz kerakmi? Suhbatdosh: Platformani xavfsiz saqlash muhim, ammo kontent moderatsiyasi qamrovdan tashqari.

Nomzod: O'quv ma'lumotlarini onlayn tuzib, foydalanuvchi o'zaro ta'sirlari asosida belgilashimiz mumkin. O'quv ma'lumotlarini tuzishning kutilgan usuli shumi? Suhbatdosh: Ha, bu mantiqiy eshitiladi.

Nomzod: Qidiruv qanchalik tez bo'lishi kerak? Platformada 100-200 milliard rasm borligini hisobga olsak, tizim o'xshash rasmlarni tezda topishi kerak. Bu oqilona taxminmi? Suhbatdosh: Ha, bu oqilona taxmin.

Muammo bayonotini xulosalaymiz. Biz vizual qidiruv tizimini loyihalashtirishimiz so'ralmoqda. Tizim foydalanuvchi bergan so'rov rasmi bilan o'xshash rasmlarni topadi, ularni so'rov rasmi bilan o'xshashlik darajasi asosida tartiblaydi va foydalanuvchiga ko'rsatadi. Platforma faqat rasmlarni qo'llab-quvvatlaydi, video yoki matn so'rovlarisiz. Soddalik uchun, moslashtirish (personalization) talab qilinmaydi.

Muammoni ML Vazifasi Sifatida Shakllantirish

Ushbu bo'limda biz yaxshi belgilangan ML maqsadini tanlaymiz va vizual qidiruv muammosini ML vazifasi sifatida shakllantiramiz.

ML maqsadini aniqlash

ML modeli yordamida bu muammoni hal qilish uchun yaxshi belgilangan ML maqsadini yaratishimiz kerak. Mumkin bo'lgan ML maqsadi - foydalanuvchi qidirgan rasmga vizual jihatdan o'xshash rasmlarni to'g'ri topish.

Tizimning kirishini va chiqishini ko'rsatish

Vizual qidiruv tizimining kirishi foydalanuvchi bergan so'rov rasmidir. Tizim so'rov rasmi bilan vizual jihatdan o'xshash rasmlarni chiqaradi va chiqish rasmlari o'xshashlik darajasi asosida tartiblangan.

To'g'ri ML kategoriyasini tanlash

Model chiqishi so'rov rasmi bilan o'xshash tartiblangan rasmlar to'plamidir. Natijada, vizual qidiruv tizimlari reytinglash muammosi sifatida shakllantirilishi mumkin. Umuman olganda, reytinglash muammolarining maqsadi, so'rovga ko'proq mos elementlar qidiruv natijalarida yuqori ko'rinishi uchun rasmlar, saytlar, mahsulotlar kabi elementlar to'plamini tartiblashdir. Ushbu bobda biz representation learning deb ataladigan keng qo'llaniladigan yondashuvdan foydalanamiz.

Representation learning. Representation learning'da model rasm kabi kirish ma'lumotlarini embedding deb ataladigan ifodalarga aylantirish uchun o'qitiladi. Boshqacha aytganda, model kirish rasmlarini embedding maydoni deb ataladigan N o'lchovli maydondagi nuqtalarga moslaydyradi. Bu embeddinglar o'xshash rasmlarda bir-biriga yaqin embeddinglar bo'lishi uchun o'rganiladi.

Representation learning yordamida rasmlarni qanday tartiblash mumkin?

Birinchidan, kirish rasmlari embedding vektorlarga aylantiriladi. Keyin, so'rov rasmi va platforma'dagi boshqa rasmlar o'rtasidagi o'xshashlik ballari embedding maydonidagi masofalarni o'lchash orqali hisoblanadi. Rasmlar o'xshashlik ballari asosida tartiblangan.

Ma'lumotlarni Tayyorlash

Ma'lumotlar muhandisligi

Vizual qidiruv tizimi asosan foydalanuvchilar va rasmlarga qaratilganligi sababli, quyidagi ma'lumotlar mavjud:

  • Rasmlar
  • Foydalanuvchilar
  • Foydalanuvchi-rasm o'zaro ta'sirlari
Rasmlar

Yaratuvchilar rasmlar yuklaydi va tizim rasmlarni va ularning metama'lumotlarini, masalan egasi IDsi, kontekstual ma'lumotlar (masalan, yuklash vaqti), teglar va boshqalarni saqlaydi.

IDEgasi IDsiYuklash vaqtiQo'lda qo'yilgan teglar
181658451341Zebra
251658451841Makaron, Ovqat, Oshxona
3191658821820Bolalar, Oila, Bayram

Jadval 2.1: Rasm metama'lumotlari

Foydalanuvchilar

Foydalanuvchi ma'lumotlari foydalanuvchilar bilan bog'liq demografik atributlarni, masalan yosh, jins va boshqalarni o'z ichiga oladi.

IDFoydalanuvchi nomiYoshJinsShaharMamlakatEmail
1johnduo26ESan JoseAQSh[email protected]
2hs200849EParijFransiya[email protected]
3alexish16ARioBraziliya[email protected]

Jadval 2.2: Foydalanuvchi ma'lumotlari

Foydalanuvchi-rasm o'zaro ta'sirlari

O'zaro ta'sir ma'lumotlari turli turdagi foydalanuvchi o'zaro ta'sirlarini o'z ichiga oladi. Yig'ilgan talablarga asoslanib, asosiy o'zaro ta'sir turlari taassurotlar va kliklar hisoblanadi.

Foydalanuvchi IDsiSo'rov rasmi IDsiKo'rsatilgan rasm IDsiKo'rsatilgan ro'yxatdagi o'rniO'zaro ta'sir turiJoylashuv (kenglik, uzunlik)Vaqt belgisi
8261Klik38.8951 -77.03641658450539
6392Klik38.8951 -77.03641658451341
91512Taassurot41.9241 -89.03891658451365

Jadval 2.3: Foydalanuvchi-rasm o'zaro ta'siri ma'lumotlari

Feature engineering

Ushbu bo'limda siz ajoyib feature'lar yaratish va ularni model kirishlari sifatida tayyorlash haqida gapirish kutiladi. Bu odatda muammoni qanday shakllantirganingizga va model kirish nima ekanligiga bog'liq. Vizual qidiruv tizimini reytinglash muammosi sifatida shakllantirdik va uni representation learning yordamida hal qilamiz. Xususan, kirish sifatida rasmni kutadigan model ishlatdik. Rasm modelga berishdan oldin oldindan qayta ishlanishi kerak. Keng tarqalgan rasm oldindan qayta ishlash operatsiyalari:

  • O'lchamini o'zgartirish (Resizing): Modellarda odatda rasm o'lchamlari belgilangan bo'ladi (masalan, 224×224)
  • Masshtablash (Scaling): Rasm piksel qiymatlarini 0 va 1 oralig'iga masshtablash
  • Z-score normalizatsiya: Piksel qiymatlarini o'rtacha 0 va dispersiya 1 bo'lishi uchun masshtablash
  • Rang rejimi mustahkamligi: Rasmlarning bir xil rang rejimiga ega bo'lishini ta'minlash (masalan, RGB yoki CMYK)

Modelni Ishlab Chiqish

Modelni tanlash

Neyron tarmoqlarni tanlaymiz, chunki:

  • Neyron tarmoqlar rasmlar va matn kabi tuzilmagan ma'lumotlar bilan ishlashda yaxshi
  • Ko'plab an'anaviy machine learning modellaridan farqli o'laroq, neyron tarmoqlar representation learning uchun kerakli embeddinglarni yaratishi mumkin

Qaysi turdagi neyron tarmoq arxitekturalaridan foydalanish kerak? Arxitektura rasmlar bilan ishlashi muhim. CNN'ga asoslangan arxitekturalar, masalan ResNet yoki yangi Transformer'ga asoslangan arxitekturalar, masalan ViT rasm kirishlari bilan yaxshi ishlaydi.

Modelni o'qitish

Vizual jihatdan o'xshash rasmlarni topish uchun model o'qitish davomida ifodalash (embedding)larni o'rganishi kerak. Ushbu bo'limda biz rasm ifodalashlarini o'rganish uchun modelni qanday o'qitishni muhokama qilamiz.

Rasm ifodalashlarini o'rganishning keng tarqalgan texnikasi contrastive training hisoblanadi. Bu texnika bilan modelni o'xshash va o'xshash bo'lmagan rasmlarni ajratishga o'rgatamiz.

Ma'lumotlar to'plamini yaratish

Avval ta'riflanganidek, o'qitish uchun ishlatiladigan har bir ma'lumot nuqtasi so'rov rasmi, so'rov rasmi bilan o'xshash musbat rasm va so'rov rasmi bilan o'xshash bo'lmagan n-1 ta manfiy rasmni o'z ichiga oladi. Ma'lumot nuqtasining ground truth labeli musbat rasmning indeksi hisoblanadi.

O'quv ma'lumoti nuqtasini yaratish uchun, biz tasodifiy so'rov rasmi va n-1 ta manfiy rasm tanlaymiz. Musbat rasmni tanlash uchun quyidagi uchta variant mavjud:

  • Inson fikriga tayanish
  • O'xshashlik uchun proksi sifatida kliklar kabi o'zaro ta'sirlardan foydalanish
  • So'rov rasmidan sun'iy ravishda o'xshash rasm yaratish, o'z-o'zini nazorat qilish (self-supervision) deb ham ataladi

Har bir variantni baholaylik.

Inson fikriga tayanish

Ushbu yondashuv o'xshash rasmlarni qo'lda topish uchun shartnoma bo'yicha ishlaydiganlarga tayanadi. Inson ishtiroki aniq o'quv ma'lumotlarini yaratadi, ammo annotatorlardan foydalanish qimmat va vaqt talab qiladi.

O'xshashlik uchun proksi sifatida foydalanuvchi kliklari kabi o'zaro ta'sirlardan foydalanish

Ushbu yondashuvda biz o'zaro ta'sir ma'lumotlari asosida o'xshashlikni o'lchaymiz. Masalan, foydalanuvchi rasmni kliklaganda, klik qilingan rasm so'rov rasmi q bilan o'xshash deb hisoblanadi.

Ushbu yondashuv qo'lda ishlashni talab qilmaydi va o'quv ma'lumotlarini avtomatik ravishda yaratishi mumkin. Biroq, klik signali odatda juda shovqinli. Ba'zan foydalanuvchilar rasm so'rov rasmi bilan o'xshash bo'lmasa ham rasm klikleydilar. Bundan tashqari, bu ma'lumotlar juda siyrak va ko'p rasmlar uchun klik ma'lumotlari mavjud bo'lmasligi mumkin.

So'rov rasmidan sun'iy ravishda o'xshash rasm yaratish

Ushbu yondashuvda biz so'rov rasmidan sun'iy ravishda o'xshash rasm yaratamiz. Masalan, so'rov rasmini aylantirish va yangi yaratilgan rasmni o'xshash rasm sifatida ishlatish mumkin. SimCLR va MoCo kabi yaqinda ishlab chiqilgan freymvorklar xuddi shunday yondashuvdan foydalanadi.

Bizning holatimizda qaysi yondashuv eng yaxshi ishlaydi?

Intervyu muhitida, turli variantlarni taklif qilish va ularning murosa-murosalarini muhokama qilish juda muhim. Odatda har doim ishlaidigan yagona eng yaxshi yechim yo'q. Bu yerda ikkita sababga ko'ra o'z-o'zini nazorat qilish variantidan foydalanamiz. Birinchidan, jarayon avtomatlashtirilishi mumkinligi sababli undan oldindan hech qanday xarajat yo'q. Ikkinchidan, SimCLR kabi turli freymvorklar katta ma'lumotlar to'plamida o'qitilganda rag'batlantiruvchi natijalar ko'rsatdi.

Yo'qotish funksiyasini tanlash

Model rasmlarni kirish sifatida oladi va har bir kirish rasmi uchun embedding yaratadi. O'qitishning maqsadi o'xshash rasmlarda embedding maydonida bir-biriga yaqin embeddinglar bo'lishi uchun model parametrlarini optimallashtirish.

Bu maqsadga erishish uchun yaratilgan embeddinglar sifatini o'lchash uchun yo'qotish funksiyasidan foydalanishimiz kerak. Contrastive training uchun turli yo'qotish funksiyalari ishlab chiqilgan.

Contrastive yo'qotish qanday ishlashini qisqacha muhokama qilamiz.

O'xshashliklarni hisoblash. Birinchidan, biz so'rov rasmi va boshqa rasmlar embeddinglar o'rtasidagi o'xshashliklarni hisoblaymiz. Embedding maydonidagi nuqtalar o'rtasidagi o'xshashlikni o'lchash uchun dot product va cosine similarity keng tarqalgan.

Softmax. Hisoblangan masofalar ustida softmax funksiyasi qo'llaniladi. Bu qiymatlarning yig'indisi birga teng bo'lishini ta'minlaydi, bu esa qiymatlarni ehtimollik sifatida talqin qilish imkonini beradi.

Cross-entropy. Cross-entropy bashorat qilingan ehtimolliklar ground truth labellariga qanchalik yaqinligini o'lchaydi.

Baholash

Model ishlab chiqilgandan so'ng, baholashni muhokama qila olamiz. Ushbu bo'limda biz oflayn va onlayn baholashlar uchun muhim metrikalarni ko'rib chiqamiz.

Oflayn metrikalar

Berilgan talablarga asoslanib, oflayn baholash uchun baholash ma'lumotlar to'plami mavjud. Har bir ma'lumot nuqtasida so'rov rasmi, bir nechta nomzod rasmlar va har bir nomzod rasm va so'rov rasmi jufti uchun o'xshashlik bali bor deb faraz qilamiz. O'xshashlik bali 0 dan 5 gacha bo'lgan butun son bo'lib, 0 o'xshashlik yo'qligini va 5 ikki rasmning vizual va semantik jihatdan juda o'xshash ekanligini anglatadi.

Qidiruv tizimlarida keng tarqalgan oflayn metrikalarni ko'rib chiqaylik:

  • O'rtacha o'zaro daraja (MRR)
  • Recall@k
  • Precision@k
  • O'rtacha o'rtacha aniqlik (mAP)
  • Normalashtirilgan chegirmali kümülatif foyda (nDCG)

MRR. Bu metrika modelning har bir chiqish ro'yxatida birinchi tegishli elementning o'rnini hisobga olish va keyin ularni o'rtacha qilish orqali model sifatini o'lchaydi.

MRR faqat birinchi tegishli elementni hisobga olganligi va ro'yxatdagi boshqa tegishli elementlarni e'tiborsiz qoldirganligi sababli, aniqlik va tartiblash sifatini o'lchamaydi. Shu kamchilik tufayli bu metrikadan foydalanmaymiz.

Recall@k. Bu metrika chiqish ro'yxatidagi tegishli elementlar soni va butun ma'lumotlar to'plamida mavjud bo'lgan barcha tegishli elementlar soni o'rtasidagi nisbatni o'lchaydi.

Recall@k tartiblash sifatini o'lchamaganligi sababli, undan foydalanmaymiz.

Precision@k. Bu metrika chiqish ro'yxatidagi yuqori k element orasidagi tegishli elementlar nisbatini o'lchaydi.

Bu metrika chiqish ro'yxatlarining qanchalik aniq ekanligini o'lchaydi, ammo tartiblash sifatini hisobga olmaydi. Bu metrika bizning foydalanish holati uchun ideal emas, chunki natijalaring aniqligini va tartiblash sifatini o'lchashimiz kerak.

mAP. Bu metrika avval har bir chiqish ro'yxati uchun o'rtacha aniqlik (AP) ni hisoblab, keyin AP qiymatlarini o'rtacha qiladi.

mAP ikkilik dolzarbliklar uchun mo'ljallangan; boshqacha aytganda, har bir element tegishli yoki tegishli emas bo'lganda yaxshi ishlaydi. Uzluksiz dolzarblik ballari uchun nDCG yaxshiroq tanlov hisoblanadi.

nDCG. Bu metrika chiqish ro'yxatining tartiblash sifatini o'lchaydi va tartiblash ideal tartiblash bilan solishtirganda qanchalik yaxshi ekanligini ko'rsatadi.

DCG nima?

DCG har bir elementning dolzarblik ballini yig'ish orqali ro'yxatdagi elementlarning kümülatif foydasini hisoblab chiqadi. Keyin ball chiqish ro'yxatining tepasidan pastiga to'planadi, har bir natijaning bali pastroq daraja bilan chegirmali.

nDCG nima?

DCG elementlarning dolzarblik ballarini yig'ib, ularning o'rnini chegirmali qilganligi sababli, DCG natijasi istalgan qiymat bo'lishi mumkin. Yanada mazmunliroq ball olish uchun DCG ni normallashtirish kerak. Buning uchun nDCG DCG ni ideal tartiblashning DCG ga bo'ladi.

nDCG ko'pincha yaxshi ishlaydi. Uning asosiy kamchiligi - ground truth dolzarblik ballarini chiqarish har doim ham mumkin emas. Bizning holatimizda, baholash ma'lumotlar to'plami o'xshashlik ballarini o'z ichiga olganligi sababli, oflayn baholash davomida model ishlashini o'lchash uchun nDCG dan foydalanishimiz mumkin.

Onlayn metrikalar

Ushbu bo'limda foydalanuvchilar yoqtirgan rasmlarni qanchalik tez topishi mumkinligini o'lchash uchun keng tarqalgan onlayn metrikalarni ko'rib chiqamiz.

Click-through rate (CTR). Bu metrika foydalanuvchilar ko'rsatilgan elementlarni qanchalik tez-tez kliklaganligini ko'rsatadi. Yuqori CTR foydalanuvchilar ko'rsatilgan elementlarni ko'pincha kliklaganligini anglatadi.

Tavsiya qilingan rasmlar uchun kunlik, haftalik va oylik o'rtacha sarflangan vaqt. Bu metrika foydalanuvchilarning tavsiya qilingan rasmlar bilan qanchalik faol ekanligini ko'rsatadi.

Serving

Serving vaqtida, tizim so'rov rasmi asosida o'xshash rasmlarning tartiblangan ro'yxatini qaytaradi. Bashorat quvuri va indekslash quvurini yaqindan ko'rib chiqaylik.

Bashorat quvuri

Embedding yaratish xizmati

Ushbu xizmat kirish so'rov rasmining embedding vektorini hisoblab chiqadi. U rasmni oldindan qayta ishlaydi va embedding ni aniqlash uchun o'qitilgan modeldan foydalanadi.

Eng yaqin qo'shni xizmati

So'rov rasmining embedding ini olgandan so'ng, embedding maydonidan o'xshash rasmlarni topishimiz kerak. Eng yaqin qo'shni xizmati buni amalga oshiradi.

Eng yaqin qo'shni qidiruvini rasmiyroq aniqlaylik. "q" so'rov nuqtasi va S boshqa nuqtalar to'plami berilganda, S to'plamida "q" ga eng yaqin nuqtalarni topadi.

Qayta tartiblash xizmati

Bu xizmat biznes darajasidagi mantiq va siyosatlarni o'z ichiga oladi. Masalan, nomaqbul natijalarni filtrlab olib tashlaydi, shaxsiy rasmlarni kiritmasligimizni ta'minlaydi, takrorlanishlarni olib tashlaydi va boshqa shunga o'xshash mantiqni joriy etadi.

Indekslash quvuri

Indekslash xizmati

Platformadagi barcha rasmlar qidiruv unumdorligini oshirish uchun ushbu xizmat tomonidan indekslanadi.

Indekslash xizmatining yana bir mas'uliyati indeks jadvalini yangilab turish. Masalan, yaratuvchi platformaga yangi rasm qo'shganda, xizmat yangi rasmning embedding ini eng yaqin qo'shni qidiruvi orqali topish imkonini berish uchun indekslaydi.

Indekslash xotira foydalanishini oshiradi, chunki biz barcha rasmlarning embeddinglarini indeks jadvalida saqlaymiz. Xotira foydalanishini kamaytirish uchun turli optimallashtirishlar mavjud, masalan vektor kvantizatsiya va mahsulot kvantizatsiya.

Eng yaqin qo'shni (NN) algoritmlarining unumdorligi

Eng yaqin qo'shni qidiruvi axborotni olish, qidiruv va tavsiya tizimlarining asosiy komponenti hisoblanadi. Uning samaradorligidagi kichik yaxshilanish umumiy unumdorlikni sezilarli darajada yaxshilaydi.

NN algoritmlari ikkita kategoriyaga bo'linishi mumkin: aniq va taxminiy. Har birini batafsilroq ko'rib chiqaylik.

Aniq eng yaqin qo'shni

Aniq eng yaqin qo'shni, shuningdek chiziqli qidiruv deb ham ataladi, NN ning eng oddiy shakli hisoblanadi. U butun indeks jadvalini ko'rib chiqish, har bir nuqtaning so'rov nuqtasi q bilan masofasini hisoblash va k ta eng yaqin nuqtalarni topish orqali ishlaydi. Vaqt murakkabligi O(N×D) bo'lib, bu yerda N umumiy nuqtalar soni va D nuqta o'lchovidir.

N milliardlarga yetishi mumkin bo'lgan katta miqyosli tizimda chiziqli vaqt murakkabligi juda sekin.

Taxminiy eng yaqin qo'shni (ANN)

Ko'plab ilovalarda foydalanuvchilarga yetarlicha o'xshash elementlarni ko'rsatish kifoya va aniq eng yaqin qo'shni qidiruvini amalga oshirishga hojat yo'q.

ANN algoritmlarida NN qidiruvining vaqt murakkabligini subchiziqli darajaga kamaytirish uchun maxsus ma'lumotlar tuzilmasidan foydalaniladi. Ular odatda oldindan qayta ishlash yoki qo'shimcha makon talab qiladi.

ANN algoritmlari quyidagi uch kategoriyaga bo'linishi mumkin:

  • Daraxtga asoslangan ANN
  • Lokallik sezgir xeshlash (LSH)ga asoslangan ANN
  • Klasterlashga asoslangan ANN
Daraxtga asoslangan ANN

Daraxtga asoslangan algoritmlar bo'shliqni bir nechta bo'limlarga ajratish orqali daraxt hosil qiladi. Keyin ular tezroq qidiruv uchun daraxt xususiyatlaridan foydalanadi.

Lokallik sezgir xeshlash (LSH):

LSH nuqtalarning o'lchovlarini kamaytirish va ularni bucketlarga guruhlash uchun maxsus xesh funksiyalarini ishlatadi. Bu xesh funksiyalari bir-biriga yaqin nuqtalarni bir xil bucketga moslashtiradi.

Klasterlashga asoslangan ANN

Bu algoritmlar nuqtalarni o'xshashlik asosida guruhlash orqali klasterlar hosil qiladi. Klasterlar shakllangandan so'ng, algoritmlar faqat so'rov nuqtasi tegishli klasterdagi nuqtalar to'pchagini qidiradi.

Qaysi algoritmdan foydalanish kerak?

Aniq eng yaqin qo'shni usulidan olingan natijalar to'g'ri bo'lishi kafolatlanadi. Bu nisbatan kam ma'lumot nuqtalarimiz bo'lganda yoki aniq eng yaqin qo'shnilarga ega bo'lish talab qilinganda yaxshi variant. Biroq, katta miqdordagi nuqtalar bo'lganda, algoritmni samarali bajarish amaliy emas. Bunday holda, ANN usullari keng qo'llaniladi.

Bugungi tizimlardagi ma'lumotlar miqdorini hisobga olsak, ANN usuli yanada pragmatik yechim hisoblanadi. Bizning vizual qidiruv tizimimizda biz o'xshash rasm embeddinglarini topish uchun ANN dan foydalanamiz.

Boshqa Muhokama Qilish Nuqtalari

Agar intervyu oxirida qo'shimcha vaqt bo'lsa, quyidagi ba'zi mavzular uchun tayyorgarlik ko'rishingiz mumkin:

  • Nomaqbul rasmlarni aniqlash va bloklash orqali tizimdagi kontentni moderatsiya qilish.
  • Tizimdagi turli noxolisliklar, masalan pozitsion noxolislik.
  • Qidiruv natijalarini yaxshilash uchun teglar kabi rasm metama'lumotlaridan qanday foydalanish.
  • Ob'ektni aniqlash yordamida aqlli qirqish.
  • Yaxshiroq ifodalashlarni o'rganish uchun grafik neyron tarmoqlaridan qanday foydalanish.
  • Matnli so'rov orqali rasmlarni qidirishni qo'llab-quvvatlash.
  • Ma'lumotlarni yanada samarali annotatsiya qilish uchun faol o'qitish yoki inson-aylanada ML dan qanday foydalanish.

Adabiyotlar

  1. Pinterest'da vizual qidiruv. https://arxiv.org/pdf/1505.07647.pdf.
  2. Pinterest'da qidiruv uchun vizual embeddinglar. https://medium.com/pinterest-engineering/unifying-visual-embeddings-for-visual-search-at-pinterest-74ea7ea103f0.
  3. Representation learning. https://en.wikipedia.org/wiki/Feature_learning.
  4. ResNet maqolasi. https://arxiv.org/pdf/1512.03385.pdf.
  5. Transformer maqolasi. https://arxiv.org/pdf/1706.03762.pdf.
  6. Vision Transformer maqolasi. https://arxiv.org/pdf/2010.11929.pdf.
  7. SimCLR maqolasi. https://arxiv.org/pdf/2002.05709.pdf.
  8. MoCo maqolasi.
  9. Contrastive representation learning usullari. https://lilianweng.github.io/posts/2019-11-10-self-supervised/.
  10. Dot product. https://en.wikipedia.org/wiki/Dot_product.
  11. Cosine similarity. https://en.wikipedia.org/wiki/Cosine_similarity.
  12. Evklid masofasi. https://en.wikipedia.org/wiki/Euclidean_distance.
  13. O'lchovlar la'nati. https://en.wikipedia.org/wiki/Curse_of_dimensionality.
  14. ML'da o'lchovlar la'nati muammolari. https://www.mygreatlearning.com/blog/understanding-curse-of-dimensionality/.
  15. Cross-entropy yo'qotishi. https://en.wikipedia.org/wiki/Cross_entropy.
  16. Vektor kvantizatsiya. http://ws.binghamton.edu/fowler/fowler%20personal%20page/EE523_files/Ch_10_1%20VQ%20Description%20(PPT).pdf.
  17. Mahsulot kvantizatsiya. https://towardsdatascience.com/product-quantization-for-similarity-search-2f1f67c5fddd.
  18. R-Trees. https://en.wikipedia.org/wiki/R-tree.
  19. KD-Tree. https://kanoki.org/2020/08/05/find-nearest-neighbor-using-kd-tree/.
  20. Annoy. https://towardsdatascience.com/comprehensive-guide-to-approximate-nearest-neighbors-algorithms-8b94f057d6b6.
  21. Lokallik sezgir xeshlash. https://web.stanford.edu/class/cs246/slides/03-lsh.pdf.
  22. Faiss kutubxonasi. https://github.com/facebookresearch/faiss/wiki.
  23. ScaNN kutubxonasi. https://github.com/google-research/google-research/tree/master/scann.
  24. ML bilan kontent moderatsiyasi. https://appen.com/blog/content-moderation/.
  25. AI va tavsiya tizimlarida noxolislik. https://www.searchenginejournal.com/biases-search-recommender-systems/339319/#close.
  26. Pozitsion noxolislik. https://eugeneyan.com/writing/position-bias/.
  27. Aqlli qirqish. https://blog.twitter.com/engineering/en_us/topics/infrastructure/2018/Smart-Auto-Cropping-of-Images.
  28. GNN bilan yaxshiroq qidiruv. https://arxiv.org/pdf/2010.01666.pdf.
  29. Faol o'qitish. https://en.wikipedia.org/wiki/Active_learning_(machine_learning).
  30. Inson-aylanada ML. https://arxiv.org/pdf/2108.00941.pdf.
Bob 3

Google Street View Tasvirlarni Xiralash Tizimi

~14 daq o'qish

Google Street View Tasvirlarni Xiralash Tizimi

Google Street View [1] — bu Google Maps'dagi texnologiya bo'lib, dunyodagi ko'plab ommaviy yo'llar tarmog'ining ko'cha darajasidagi interaktiv panoramalarini taqdim etadi. 2008 yilda Google foydalanuvchilar maxfiyligini himoya qilish maqsadida inson yuzlari va avtomobil raqam belgilarini avtomatik xiralashtiradigan tizim yaratdi. Ushbu bobda biz Google Street View'ga o'xshash xiralash tizimini loyihalaymiz.

Talablarni Aniqlashtirish

Quyida nomzod va suhbatdosh o'rtasidagi odatiy suhbat keltirilgan.

Nomzod: Tizimning biznes maqsadi foydalanuvchilar maxfiyligini himoya qilish deb aytish to'g'rimi? Suhbatdosh: Ha.

Nomzod: Biz Street View tasvirlaridagi barcha inson yuzlari va avtomobil raqam belgilarini aniqlab, ularni foydalanuvchilarga ko'rsatishdan oldin xiralashtiradigan tizim loyihalashni istaymiz. Bu to'g'rimi? Foydalanuvchilar noto'g'ri xiralashtirilgan tasvirlar haqida xabar bera oladi deb taxmin qilsam bo'ladimi? Suhbatdosh: Ha, bu taxminlar asosli.

Nomzod: Bu vazifa uchun belgilangan ma'lumotlar to'plami bormi? Suhbatdosh: 1 million tasvir namunasi olingan deb faraz qilaylik. Inson yuzlari va avtomobil raqam belgilari ushbu tasvirlarda qo'lda belgilab chiqilgan.

Nomzod: Ma'lumotlar to'plamida muayyan irqiy profillardan yuzlar bo'lmasligi mumkin, bu esa irq, yosh, jins kabi muayyan inson xususiyatlariga nisbatan tarafkashlikka olib kelishi mumkin. Bu asosli taxminmi? Suhbatdosh: Juda yaxshi fikr. Soddalik uchun, bugun adolat va tarafkashlikka e'tibor bermaslik.

Nomzod: Tizim ob'ektlarni aniqlashi va ularni oflayn rejimda xiralashtirishga qodir bo'lgani uchun kechikish jiddiy muammo emas deb tushunaman. Bu to'g'rimi? Suhbatdosh: Ha. Yangi tasvirlar oflayn rejimda qayta ishlanayotganda foydalanuvchilarga mavjud tasvirlarni ko'rsatishimiz mumkin.

Muammoni qisqacha bayonlaymiz. Biz avtomobil raqam belgilari va inson yuzlarini avtomatik xiralashtiradigan Street View xiralash tizimini loyihalashni istaymiz. Bizga 1 million tasvirdan iborat, inson yuzlari va avtomobil raqam belgilari belgilangan o'quv ma'lumotlar to'plami berilgan. Tizimning biznes maqsadi foydalanuvchilar maxfiyligini himoya qilishdir.

Muammoni ML Vazifasi Sifatida Belgilash

Ushbu bo'limda biz muammoni ML vazifasi sifatida belgilaymiz.

ML maqsadini aniqlash

Ushbu tizimning biznes maqsadi Street View tasvirlaridagi ko'rinadigan avtomobil raqam belgilari va inson yuzlarini xiralash orqali foydalanuvchilar maxfiyligini himoya qilishdir. Lekin foydalanuvchilar maxfiyligini himoya qilish ML maqsadi emas, shuning uchun uni ML tizimi hal qila oladigan ML maqsadiga o'girishimiz kerak. Mumkin bo'lgan ML maqsadlaridan biri — tasvirda qiziqish ob'ektlarini aniq aniqlashdir. Agar ML tizimi bu ob'ektlarni aniq aniqlasa, biz tasvirlarni foydalanuvchilarga ko'rsatishdan oldin ob'ektlarni xiralashtirishimiz mumkin.

Ushbu bob davomida biz qisqalik uchun "inson yuzlari va avtomobil raqam belgilari" o'rniga "ob'ektlar" iborasidan foydalanamiz.

Tizimning kirish va chiqishini aniqlash

Ob'ekt aniqlash modelining kirish ma'lumoti — bu turli joylarda nol yoki bir nechta ob'ekt mavjud bo'lgan tasvir. Model ushbu ob'ektlarni aniqlab, ularning joylashuvini chiqaradi. 3.2-rasm ob'ekt aniqlash tizimini uning kirish va chiqishi bilan birga ko'rsatadi.

To'g'ri ML kategoriyasini tanlash

Umuman olganda, ob'ekt aniqlash tizimining ikkita vazifast bor:

  • Tasvirda har bir ob'ektning joylashuvini bashorat qilish
  • Har bir chegaralovchi quti sinfini bashorat qilish (masalan, it, mushuk va h.k.)

Birinchi vazifa — regressiya muammosi, chunki joylashuv raqamli qiymatlar bo'lgan (x,y)(x, y)(x,y) koordinatalari bilan ifodalanishi mumkin. Ikkinchi vazifa ko'p sinfli klassifikatsiya muammosi sifatida ko'rib chiqilishi mumkin.

An'anaviy ravishda ob'ekt aniqlash arxitekturalari bir bosqichli va ikki bosqichli tarmoqlarga bo'linadi. Yaqinda DETR [2] kabi Transformer asosidagi arxitekturalar istiqbolli natijalar ko'rsatdi, ammo ushbu bobda biz asosan ikki bosqichli va bir bosqichli arxitekturalarni o'rganamiz.

Ikki bosqichli tarmoqlar

Nomidan ko'rinib turibdiki, ikki bosqichli tarmoqlarda ikkita alohida model qo'llaniladi:

  1. Mintaqa taklif tarmog'i (RPN): tasvirni skanerlaydi va ob'ekt bo'lishi ehtimoli yuqori bo'lgan nomzod mintaqalarni taklif qiladi.
  2. Klassifikator: har bir taklif etilgan mintaqani qayta ishlaydi va uni ob'ekt sinfiga tasniflaydi.

3.3-rasm ushbu ikki bosqichni ko'rsatadi.

Ko'p qo'llaniladigan ikki bosqichli tarmoqlarga quyidagilar kiradi: R-CNN [3], Fast R-CNN [4] va FasterRCNN [5].

Bir bosqichli tarmoqlar

Ushbu tarmoqlarda ikkala bosqich birlashtiriladi. Bitta tarmoq yordamida chegaralovchi qutular va ob'ekt sinflari mintaqa takliflarini aniq aniqlashsiz bir vaqtda yaratiladi. 3.4-rasm bir bosqichli tarmoqni ko'rsatadi.

Ko'p qo'llaniladigan bir bosqichli tarmoqlarga YOLO [6] va SSD [7] arxitekturalari kiradi.

Bir bosqichli va ikki bosqichli

Ikki bosqichli tarmoqlar ketma-ket ishlaydigan ikki komponentdan tashkil topgan, shuning uchun ular odatda sekinroq, lekin aniqroq bo'ladi.

Bizning holatimizda ma'lumotlar to'plami 1 million tasvirdan iborat bo'lib, bu zamonaviy standartlar bo'yicha juda katta emas. Bu ikki bosqichli tarmoqdan foydalanish o'quv xarajatlarini haddan tashqari oshirmasligini ko'rsatadi. Shuning uchun ushbu mashq uchun biz ikki bosqichli tarmoqdan boshlaymiz. O'quv ma'lumotlari ko'payganida yoki bashoratlar tezroq amalga oshirilishi kerak bo'lganda, bir bosqichli tarmoqlarga o'tishimiz mumkin.

Ma'lumotlarni Tayyorlash

Ma'lumotlar muhandisligi

Kirish bobida biz ma'lumotlar muhandisligi asoslarini muhokama qildik. Bundan tashqari, ko'pincha qo'l ostidagi vazifa uchun mavjud ma'lumotlarni muhokama qilish foydali bo'ladi. Ushbu muammo uchun quyidagi ma'lumotlar mavjud:

  • Belgilangan ma'lumotlar to'plami
  • Street View tasvirlari

Keling, har birini batafsil ko'rib chiqaylik.

Belgilangan ma'lumotlar to'plami

Talablarga ko'ra, bizda 1 million belgilangan tasvir mavjud. Har bir tasvirda chegaralovchi qutular ro'yxati va ularga mos ob'ekt sinflari bor. 3.1-jadval ma'lumotlar to'plamidan bir nechta ma'lumot nuqtalarini ko'rsatadi:

Image pathObjectsBounding boxes
dataset/image1.jpg

human face


human face


license plate

[10,10,25,50]


[120,180,40,70]


[80,95,35,10]

dataset/image2.jpghuman face[170,190,30,80]
dataset/image3.jpg

license plate


human face

[25,30,210,220]


[30,40,30,60]

3.1-jadval: Belgilangan ma'lumotlar to'plamidan bir nechta ma'lumot nuqtalari

Har bir chegaralovchi quti 4 ta raqamdan iborat ro'yxat: yuqori chap X va Y koordinatalari, keyin ob'ektning kengligi va balandligi.

Street View tasvirlari

Bular ma'lumotlar to'plash jamoasi tomonidan yig'ilgan Street View tasvirlari. ML tizimi ushbu tasvirlarni qayta ishlab inson yuzlari va avtomobil raqam belgilarini aniqlaydi. 3.2-jadval tasvirlar metama'lumotlarini ko'rsatadi.

Image pathLocation (lat, lng)Pitch, Yaw, RollTimestamp
tmp/image1.jpg(37.432567, -122.143993)(0,10,20)1646276421
tmp/image2.jpg(37.387843, -122.091086)(0,10,-10)1646276539
tmp/image3.jpg(37.542081, -121.997640)(10,-20,45)1646276752

3.2-jadval: Street View tasvirlari metama'lumotlari

Xususiyatlar muhandisligi

Xususiyatlar muhandisligi davomida biz avval o'lchamni o'zgartirish va normallashtirish kabi standart amallarni bajaramiz. Shundan so'ng, ma'lumotlarni oshirish texnikasidan foydalanib ma'lumotlar to'plami hajmini ko'paytiramiz. Keling, buni batafsil ko'rib chiqaylik.

Ma'lumotlarni oshirish

Ma'lumotlarni oshirish deb ataladigan texnika asl ma'lumotlarning biroz o'zgartirilgan nusxalarini qo'shishni yoki asl ma'lumotlardan sun'iy ravishda yangi ma'lumotlar yaratishni o'z ichiga oladi. Ma'lumotlar to'plami hajmi oshgani sari, model murakkabroq naqshlarni o'rganishga qodir bo'ladi. Bu texnika ayniqsa ma'lumotlar to'plami notekis bo'lganda foydali bo'lib, ozchilik sinflaridagi ma'lumot nuqtalarini ko'paytiradi.

Ma'lumotlarni oshirishning maxsus turi — tasvirlarni oshirishdir. Keng qo'llaniladigan oshirish texnikalariga quyidagilar kiradi:

  • Tasodifiy qisqich
  • Tasodifiy to'yinganlik
  • Vertikal yoki gorizontal aks ettirish
  • Aylantirish va/yoki siljitish
  • Affin transformatsiyalar
  • Yorqinlik, to'yinganlik yoki kontrastni o'zgartirish

3.5-rasm turli ma'lumotlarni oshirish texnikalariga ega tasvirni ko'rsatadi.

Muayyan oshirish turlari bilan haqiqiy chegaralovchi qutularni ham o'zgartirish kerakligini ta'kidlash muhim. Masalan, asl tasvirni aylantirish yoki aks ettirishda haqiqiy chegaralovchi qutularni ham o'zgartirish zarur.

Ma'lumotlarni oshirish oflayn yoki onlayn shaklda qo'llaniladi.

  • Oflayn: O'quv jarayonidan oldin tasvirlarni oshirish
  • Onlayn: O'quv jarayonida tasvirlarni tezkor oshirish

Onlayn va oflayn: Oflayn ma'lumotlarni oshirishda qo'shimcha oshirish shart emasligi sababli o'quv jarayoni tezroq bo'ladi. Ammo barcha oshirilgan tasvirlarni saqlash uchun qo'shimcha xotira talab etiladi. Onlayn ma'lumotlarni oshirish o'quv jarayonini sekinlashtiradi, lekin qo'shimcha xotira sarflamaydi.

Onlayn va oflayn ma'lumotlarni oshirish o'rtasidagi tanlov xotira va hisoblash quvvati cheklovlariga bog'liq. Suhbatda muhimroq narsa — turli variantlarni ko'rib chiqish va murosalarni muhokama qilishdir. Bizning holatimizda oflayn ma'lumotlarni oshirishni bajaramiz.

3.6-rasm ma'lumotlar to'plamini tayyorlash oqimini ko'rsatadi. Oldindan qayta ishlash bilan tasvirlar o'lchamlanadi, masshtablanadi va normallanadi. Tasvirlarni oshirish bilan tasvirlar soni ko'payadi. Aytaylik, soni 1 milliondan 10 millionga oshadi.

Model Ishlab Chiqish

Model tanlash

"Muammoni ML vazifasi sifatida belgilash" bo'limida aytib o'tilganidek, biz ikki bosqichli tarmoqlarni afzal ko'ramiz. 3.7-rasm odatiy ikki bosqichli arxitekturani ko'rsatadi.

Keling, har bir komponentni ko'rib chiqaylik.

Konvolyusion qatlamlar

Konvolyusion qatlamlar [9] kirish tasvirini qayta ishlaydi va xususiyatlar xaritasini chiqaradi.

Mintaqa Taklif Tarmog'i (RPN)

RPN ob'ektlarni o'z ichiga olishi mumkin bo'lgan nomzod mintaqalarni taklif qiladi. U neyron tarmoq arxitekturasidan foydalanadi va konvolyusion qatlamlar tomonidan yaratilgan xususiyatlar xaritasini kirish sifatida qabul qilib, tasvirda nomzod mintaqalarni chiqaradi.

Klassifikator

Klassifikator har bir nomzod mintaqaning ob'ekt sinfini aniqlaydi. U xususiyatlar xaritasi va taklif etilgan nomzod mintaqalarni kirish sifatida qabul qilib, har bir mintaqaga ob'ekt sinfi tayinlaydi. Bu klassifikator odatda neyron tarmoqlarga asoslangan.

ML tizimi dizayni suhbatlarida siz odatda ushbu neyron tarmoqlar arxitekturasini muhokama qilish kutilmaydi.

Modelni o'qitish

Neyron tarmoqni o'qitish jarayoni odatda uch bosqichni o'z ichiga oladi: oldinga tarqatish, yo'qotishni hisoblash va orqaga tarqatish. O'quvchilar bu bosqichlar bilan tanish bo'lishi kutiladi, lekin ko'proq ma'lumot olish uchun [10] ga murojaat qiling. Ushbu bo'limda biz ob'ektlarni aniqlash uchun ko'p ishlatiladigan yo'qotish funksiyalarini muhokama qilamiz.

Ob'ekt aniqlash modeli ikkita vazifani yaxshi bajarishga mo'ljallangan. Birinchidan, bashorat qilingan ob'ektlarning chegaralovchi qutulari haqiqiy chegaralovchi qutular bilan yuqori darajada ustma-ust tushishi kerak. Bu regressiya vazifasidir. Ikkinchidan, har bir ob'ekt sinfi uchun bashorat qilingan ehtimolliklar aniq bo'lishi kerak. Bu klassifikatsiya vazifasidir. Keling, har biri uchun yo'qotish funksiyasini aniqlaymiz.

Regressiya yo'qotishi: Bu yo'qotish bashorat qilingan chegaralovchi qutularning haqiqiy chegaralovchi qutular bilan qanchalik mos kelishini o'lchaydi. Biz O'rtacha Kvadrat Xato (MSE) [11] kabi standart regressiya yo'qotish funksiyalaridan foydalanamiz va uni LregL_{r e g}Lreg​ bilan belgilaymiz:

Bu yerda:

  • MMM : bashoratlar umumiy soni
  • xix_ixi​ : haqiqiy yuqori chap xxx koordinatasi
  • x^i\hat{x}_ix^i​ : bashorat qilingan yuqori chap xxx koordinatasi
  • yiy_iyi​ : haqiqiy yuqori chap yyy koordinatasi
  • y^i\hat{y}_iy^​i​ : bashorat qilingan yuqori chap yyy koordinatasi
  • wiw_iwi​ : haqiqiy kenglik
  • w^i:\hat{w}_i:w^i​: bashorat qilingan kenglik
  • hih_ihi​ : haqiqiy balandlik
  • h^i\hat{h}_ih^i​ : bashorat qilingan balandlik

Klassifikatsiya yo'qotishi: Bu har bir aniqlangan ob'ekt uchun bashorat qilingan ehtimolliklarning qanchalik aniq ekanligini o'lchaydi. Bu yerda biz log yo'qotish (kross-entropiya) [12] kabi standart klassifikatsiya yo'qotishidan foydalanamiz va uni LclsL_{c l s}Lcls​ bilan belgilaymiz:

Bu yerda:

  • MMM : aniqlangan chegaralovchi qutularning umumiy soni
  • CCC : sinflar umumiy soni
  • yiy_iyi​ : iii aniqlanishi uchun haqiqiy yorliq
  • y^i:\hat{y}_i:y^​i​: iii aniqlanishi uchun bashorat qilingan sinf yorlig'i

Modelning umumiy ish faoliyatini o'lchaydigan yakuniy yo'qotishni aniqlash uchun biz klassifikatsiya yo'qotishi va regressiya yo'qotishini λ\lambdaλ muvozanatlashtirish parametri bilan og'irlik berilib birlashtiramiz:

L=Lcls+λLregL=L_{c l s}+\lambda L_{r e g}L=Lcls​+λLreg​

Baholash

Suhbat davomida ML tizimini qanday baholashni muhokama qilish muhimdir. Suhbatdosh odatda qaysi metrikalarni tanlaganingizni va nima uchun tanlaganingizni bilishni istaydi. Ushbu bo'limda ob'ekt aniqlash tizimlari odatda qanday baholanishi tasvirlanadi, so'ngra oflayn va onlayn baholash uchun muhim metrikalar tanlanadi.

Ob'ekt aniqlash modeli odatda tasvirda N\mathrm{N}N ta turli ob'ektni aniqlashi kerak. Modelning umumiy ish faoliyatini o'lchash uchun biz har bir ob'ektni alohida baholaymiz va keyin natijalarni o'rtalaymiz.

3.8-rasm ob'ekt aniqlash modelining chiqishini ko'rsatadi. U haqiqiy va aniqlangan chegaralovchi qutularni ko'rsatadi. Ko'rinib turibdiki, model 6 ta chegaralovchi qutini aniqlaganken, bizda ob'ektning faqat ikkita nusxasi bor.

Bashorat qilingan chegaralovchi quti qachon to'g'ri hisoblanadi? Ushbu savolga javob berish uchun biz Kesishma Va Birlashma (IOU) ta'rifini tushunishimiz kerak.

Kesishma Va Birlashma (IOU): IOU ikki chegaralovchi quti o'rtasidagi ustma-ust tushishni o'lchaydi. 3.93.93.9-rasm IOU ning vizual ko'rinishini ko'rsatadi.

IOU aniqlangan chegaralovchi quti to'g'ri yoki yo'qligini aniqlaydi. IOU = 1 ideal holat bo'lib, aniqlangan chegaralovchi quti va haqiqiy chegaralovchi quti to'liq mos kelishini bildiradi. Amalda IOU = 1 ni ko'rish kamdan-kam uchraydi. Yuqoriroq IOU bashorat qilingan chegaralovchi qutining aniqroq ekanligini anglatadi. IOU chegarasi odatda aniqlangan chegaralovchi quti to'g'ri (haqiqiy musbat) yoki noto'g'ri (soxta musbat) ekanligini aniqlash uchun ishlatiladi. Masalan, 0.70.70.7 IOU chegarasi shuni anglatadiki, haqiqiy chegaralovchi quti bilan 0.70.70.7 yoki undan yuqori ustma-ust tushishga ega har qanday aniqlanish to'g'ri aniqlanishdir.

IOU nima ekanligini va to'g'ri hamda noto'g'ri chegaralovchi quti bashoratlarini qanday aniqlashni bilganimizdan so'ng, oflayn baholash metrikalari haqida gapiraylik.

Oflayn metrikalar

Model ishlab chiqish — bu iterativ jarayon. Yangi ishlab chiqilgan modellarning ish faoliyatini tezda baholash uchun oflayn metrikalardan foydalanamiz. Ob'ekt aniqlash tizimi uchun foydali bo'lishi mumkin bo'lgan ba'zi metrikalar:

  • Aniqlik (Precision)
  • O'rtacha aniqlik (Average precision)
  • O'rtacha o'rtacha aniqlik (Mean average precision)
Aniqlik

Bu barcha tasvirlardagi barcha aniqlanishlar orasidagi to'g'ri aniqlanishlar ulushi. Yuqori aniqlik qiymati tizim aniqlanishlarining ishonchliligi yuqori ekanligini ko'rsatadi.

Aniqlikni hisoblash uchun IOU chegarasini tanlashimiz kerak. Keling, buni yaxshiroq tushunish uchun bir misol ko'raylik. 3.103.103.10-rasm haqiqiy chegaralovchi qutular va aniqlangan chegaralovchi qutular to'plamini ularning IOU qiymatlari bilan birga ko'rsatadi.

Uchta turli IOU chegarasi uchun aniqlikni hisoblaymiz: 0.7, 0.5 va 0.1.

  • IOU chegarasi =0.7=0.7=0.7 Olti ta umumiy aniqlanishdan ikkitasida IOU 0.7 dan yuqori. Shuning uchun bu chegara bo'yicha ikkita to'g'ri bashoratimiz bor. Aniqlik 0.7= To'g'ri aniqlanishlar Umumiy aniqlanishlar =26=0.33\text { Precision }_{0.7}=\frac{\text { Correct detections }}{\text { Total detections }}=\frac{2}{6}=0.33 Precision 0.7​= Total detections Correct detections ​=62​=0.33
  • IOU chegarasi =0.5=0.5=0.5 Bu chegara bo'yicha IOU 0.50.50.5 dan yuqori uchta aniqlanish mavjud: Aniqlik 0.5= To'g'ri aniqlanishlar Umumiy aniqlanishlar =36=0.5\text { Precision }_{0.5}=\frac{\text { Correct detections }}{\text { Total detections }}=\frac{3}{6}=0.5 Precision 0.5​= Total detections Correct detections ​=63​=0.5
  • IOU chegarasi =0.1=0.1=0.1 Bu safar to'rtta to'g'ri aniqlanish mavjud: Aniqlik 0.1= To'g'ri aniqlanishlar Umumiy aniqlanishlar =46=0.67\text { Precision }_{0.1}=\frac{\text { Correct detections }}{\text { Total detections }}=\frac{4}{6}=0.67 Precision 0.1​= Total detections Correct detections ​=64​=0.67

Siz payqagan bo'lsangiz kerak, bu metrikaning asosiy kamchiligi — aniqlik turli IOU chegaralari bilan farq qiladi. Shuning uchun ma'lum bir IOU chegarasi bilan aniqlik ko'rsatkichiga qarab modelning umumiy ish faoliyatini tushunish qiyin. O'rtacha aniqlik bu cheklovni bartaraf etadi.

O'rtacha Aniqlik (AP) Bu metrika turli IOU chegaralari bo'yicha aniqlikni hisoblaydi va ularning o'rtachasini topadi. AP formulasi:

Bu yerda P(r)P(r)P(r) — rrr IOU chegarasidagi aniqlik.

Yuqoridagi formula oldindan belgilangan chegaralar ro'yxati bo'yicha diskret yig'indi bilan taxminlanishi mumkin. Masalan, pascal VOC2008 test to'plamida [13], AP 11 ta bir xil oraliqda joylashgan chegara qiymatlari bo'yicha hisoblanadi.

AP modelning muayyan ob'ekt sinfi (masalan, inson yuzlari) uchun umumiy aniqligini umumlashtiradi. Barcha ob'ekt sinflari (masalan, inson yuzlari va avtomobil raqam belgilari) bo'yicha modelning umumiy aniqligini o'lchash uchun o'rtacha o'rtacha aniqlikdan foydalanish kerak.

O'rtacha o'rtacha aniqlik (mAP) Bu barcha ob'ekt sinflari bo'yicha AP ning o'rtachasidir. Bu metrika modelning umumiy ish faoliyatini umumlashtiradi. Formula quyidagicha:

Bu yerda CCC model aniqlaydigan ob'ekt sinflari umumiy sonidir.

mAP metrikasi ob'ekt aniqlash tizimlarini baholash uchun keng qo'llaniladi. Standart test to'plamlarida qaysi chegaralar ishlatilishini bilish uchun [14] [15] ga murojaat qiling.

Onlayn metrikalar

Talablarga ko'ra, tizim shaxslar maxfiyligini himoya qilishi kerak. Buni o'lchashning bir usuli — foydalanuvchilarning xabar va shikoyatlar sonini sanashdir. Shuningdek, noto'g'ri xiralashtirilgan tasvirlarning foizini tekshirish uchun inson annotatorlarga tayanishimiz mumkin. Tarafkashlik va adolatni o'lchaydigan boshqa metrikalar ham muhimdir. Masalan, biz turli irqlar va yosh guruhlari bo'yicha inson yuzlarini bir xil darajada xiralashtirishni istaymiz. Ammo tarafkashlikni o'lchash, talablarda ko'rsatilganidek, ko'lamdan tashqarida.

Baholash bo'limini yakunlash uchun biz oflayn metrikalar sifatida mAP va AP dan foydalanamiz. mAP modelning umumiy aniqligini o'lchaydi, AP esa bizga ma'lum sinflardagi modelning aniqligiga nazar tashlab ko'rish imkonini beradi. Onlayn baholashning asosiy metrikasi — "foydalanuvchi xabarlari".

Xizmat Ko'rsatish

Ushbu bo'limda biz avval ob'ekt aniqlash tizimlarida yuzaga kelishi mumkin bo'lgan umumiy muammoni muhokama qilamiz: ustma-ust chegaralovchi qutular. Keyin umumiy ML tizimi dizaynini taklif qilamiz.

Ustma-ust chegaralovchi qutular

Tasvirda ob'ekt aniqlash algoritmini ishlatganda, chegaralovchi qutularning ustma-ust tushishini ko'rish juda keng tarqalgan. Buning sababi shundaki, RPN tarmog'i har bir ob'ekt atrofida yuqori darajada ustma-ust tushadigan turli chegaralovchi qutularni taklif qiladi. Inference vaqtida ushbu chegaralovchi qutularni ob'ekt boshiga bitta chegaralovchi quti bilan qisqartirib, toraytirish muhimdir.

Keng qo'llaniladigan yechim — "Maksimal bo'lmaganlarni bostirish" (NMS) [16] algoritmidir. Keling, u qanday ishlashini ko'rib chiqaylik.

NMS

NMS — eng mos chegaralovchi qutularni tanlash uchun mo'ljallangan post-ishlov berish algoritmi. U yuqori ishonchli chegaralovchi qutularni saqlaydi va ustma-ust tushadigan chegaralovchi qutularni olib tashlaydi. 3.11-rasm misolni ko'rsatadi.

NMS — ML tizimi dizayni suhbatlarida ko'p so'raladigan algoritm, shuning uchun uni yaxshi tushunishingiz tavsiya etiladi [17].

ML tizimi dizayni

3.12-rasmda ko'rsatilganidek, biz xiralash tizimi uchun ML tizimi dizaynini taklif qilamiz.

Keling, har bir quvurni batafsil ko'rib chiqaylik.

Paketli bashorat quvuri

Yig'ilgan talablarga ko'ra, kechikish jiddiy muammo emas, chunki yangi tasvirlar qayta ishlanayotganda foydalanuvchilarga mavjud tasvirlarni ko'rsatishimiz mumkin. Darhol natijalar talab etilmaganligi sababli, biz paketli bashoratdan foydalanib, ob'ekt aniqlash natijalarini oldindan hisoblashimiz mumkin.

Oldindan qayta ishlash Xom tasvirlar bu komponent tomonidan oldindan qayta ishlanadi. Oldindan qayta ishlash amallarini xususiyatlar muhandisligi bo'limida allaqachon muhokama qilganimiz uchun bu bo'limda muhokama qilmaymiz.

Xiralash xizmati Bu Street View tasvirida quyidagi amallarni bajaradi:

  1. Tasvirda aniqlangan ob'ektlar ro'yxatini taqdim etadi.
  2. NMS komponenti yordamida aniqlangan ob'ektlar ro'yxatini tozalaydi.
  3. Aniqlangan ob'ektlarni xiralash tiradi.
  4. Xiralashtirilgan tasvirni ob'ekt xotirasiga (Xiralashtirilgan Street View tasvirlari) saqlaydi.

Dizaynda oldindan qayta ishlash va xiralash xizmatlari alohida ekanligini e'tiboring. Buning sababi shundaki, tasvirlarni oldindan qayta ishlash odatda CPU ga bog'liq jarayon bo'lsa, xiralash xizmati GPU dan foydalanadi. Ushbu xizmatlarni ajratishning ikkita afzalligi bor:

  • Har bir xizmatga keladigan ish yukiga qarab ularni mustaqil ravishda kengaytirish.
  • CPU va GPU resurslaridan yaxshiroq foydalanish.
Ma'lumotlar quvuri

Bu quvur foydalanuvchilarning xabarlarini qayta ishlash, yangi o'quv ma'lumotlarini yaratish va model tomonidan ishlatiladigan o'quv ma'lumotlarini tayyorlash uchun mas'ul. Ma'lumotlar quvuri komponentlari asosan o'z-o'zidan tushuntiradi. "Qiyin negatif qidirish" — ko'proq tushuntirish talab qiladigan yagona komponent.

Qiyin negatif qidirish. Qiyin negativlar — noto'g'ri bashorat qilingan misollardan ataylab negatif sifatida yaratilgan va keyin o'quv ma'lumotlar to'plamiga qo'shiladigan namunalar. Modelni yangilangan o'quv ma'lumotlar to'plamida qayta o'qitganimizda, u yaxshiroq ishlashi kerak.

Boshqa Muhokama Mavzulari

Vaqt bo'lsa, muhokama qilish uchun qo'shimcha nuqtalar:

  • Transformer asosidagi ob'ekt aniqlash arxitekturalari bir bosqichli yoki ikki bosqichli modellardan qanday farq qiladi va ularning afzalliklari va kamchiliklari qanday [18].
  • Kattaroq ma'lumotlar to'plamida ob'ekt aniqlashni yaxshilash uchun taqsimlangan o'quv texnikalari [19] [20].
  • Yevropadagi Umumiy Ma'lumotlarni Himoya Qilish Qoidalari (GDPR) tizimimizga qanday ta'sir qilishi mumkin [21].
  • Yuz aniqlash tizimlarida tarafkashlikni baholash [22] [23].
  • Modelni qanday davomiy fine-tuning qilish [24].
  • O'quv uchun ma'lumot nuqtalarini tanlashda faol o'qitishdan [25] yoki tsiklda inson bo'lgan MLdan [26] qanday foydalanish.

Manbalar

  1. Google Street View. https://www.google.com/streetview.
  2. DETR. https://github.com/facebookresearch/detr.
  3. RCNN family. https://lilianweng.github.io/posts/2017-12-31-object-recognition-part-3.
  4. Fast R-CNN paper. https://arxiv.org/pdf/1504.08083.pdf.
  5. Faster R-CNN paper. https://arxiv.org/pdf/1506.01497.pdf.
  6. YOLO family. https://pyimagesearch.com/2022/04/04/introduction-to-the-yolo-family.
  7. SSD. https://jonathan-hui.medium.com/ssd-object-detection-single-shot-multibox-detector-for-real-time-processing-9bd8deac0e06.
  8. Data augmentation techniques. https://www.kaggle.com/getting-started/190280.
  9. CNN. https://en.wikipedia.org/wiki/Convolutional_neural_network.
  10. Forward pass and backward pass. https://www.youtube.com/watch?v=qzPQ8cEsVK8.
  11. MSE. https://en.wikipedia.org/wiki/Mean_squared_error.
  12. Log loss. https://en.wikipedia.org/wiki/Cross_entropy.
  13. Pascal VOC. http://host.robots.ox.ac.uk/pascal/VOC/voc2008/index.html.
  14. COCO dataset evaluation. https://cocodataset.org/#detection-eval.
  15. Object detection evaluation. https://github.com/rafaelpadilla/Object-Detection-Metrics.
  16. NMS. https://en.wikipedia.org/wiki/NMS.
  17. Pytorch implementation of NMS. https://learnopencv.com/non-maximum-suppression-theory-and-implementation-in-pytorch/.
  18. Recent object detection models. https://viso.ai/deep-learning/object-detection/.
  19. Distributed training in Tensorflow. https://www.tensorflow.org/guide/distributed_training.
  20. Distributed training in Pytorch. https://pytorch.org/tutorials/beginner/dist_overview.html.
  21. GDPR and ML. https://www.oreilly.com/radar/how-will-the-gdpr-impact-machine-learning.
  22. Bias and fairness in face detection. http://sibgrapi.sid.inpe.br/col/sid.inpe.br/sibgrapi/2021/09.04.19.00/doc/103.pdf.
  23. AI fairness. https://www.kaggle.com/code/alexisbcook/ai-fairness.
  24. Continual learning. https://towardsdatascience.com/tag/fine-tuning/.
  25. Active learning. https://en.wikipedia.org/wiki/Active_learning_(machine_learning).
  26. Human-in-the-loop ML. https://arxiv.org/pdf/2108.00941.pdf.
Bob 4

YouTube Video Qidirish

~14 daq o'qish

YouTube Video Qidirish

YouTube kabi video ulashish platformalarida videolar soni milliardlabga tezda yetishi mumkin. Ushbu bobda biz ushbu hajmdagi kontentni samarali boshqara oladigan video qidiruv tizimini loyihalaymiz. 4.1-rasmda ko'rsatilganidek, foydalanuvchi qidiruv maydoniga matn kiritadi va tizim berilgan matn uchun eng dolzarb videolarni ko'rsatadi.

Talablarni Aniqlashtirish

Quyida nomzod va suhbatdosh o'rtasidagi odatiy muloqot keltirilgan.

Nomzod: Kirish so'rovi faqat matnmi yoki foydalanuvchilar tasvir yoki video bilan ham qidira oladimi? Suhbatdosh: Faqat matnli so'rovlar.

Nomzod: Platformadagi kontent faqat video shaklida? Tasvirlar yoki audio fayllar nima bo'ladi? Suhbatdosh: Platforma faqat videolarni taqdim etadi.

Nomzod: YouTube qidiruv tizimi juda murakkab. Videoning dolzarbligi faqat uning vizual kontenti va sarlavha hamda tavsif kabi videoga tegishli matnli ma'lumotlar bilan aniqlanadi deb faraz qilsam bo'ladimi? Suhbatdosh: Ha, bu asosli taxmin.

Nomzod: Biron o'quv ma'lumotlari mavjudmi? Suhbatdosh: Ha, faraz qilaylik, bizda o'n million ⟨\langle⟨ video, matnli so'rov ⟩\rangle⟩ jufti bor.

Nomzod: Qidiruv tizimida boshqa tillarni qo'llash kerakmi? Suhbatdosh: Soddalik uchun, faqat ingliz tili qo'llab-quvvatlanadi deb faraz qilaylik.

Nomzod: Platformada nechta video mavjud? Suhbatdosh: Bir milliard video.

Nomzod: Natijalarni shaxsiylashtirish kerakmi? Turli foydalanuvchilar uchun ularning oldingi muloqotlariga asoslanib natijalarni har xil tartiblash kerakmi? Suhbatdosh: Shaxsiylashtirish muhim bo'lgan tavsiya tizimlaridan farqli o'laroq, qidiruv tizimlarida natijalarni shaxsiylashtirish shart emas. Muammoni soddalashtirish uchun, shaxsiylashtirish talab etilmaydi deb faraz qilaylik.

Muammoni qisqacha bayonlaymiz. Bizdan videolar uchun qidiruv tizimini loyihalash so'ralmoqda. Kirish — matnli so'rov, chiqish esa matnli so'rovga dolzarb bo'lgan videolar ro'yxati. Dolzarb videolarni qidirish uchun biz videolarning vizual kontenti va matnli ma'lumotlaridan birgalikda foydalanamiz. Model o'qitish uchun bizga o'n million ⟨\langle⟨ video, matnli so'rov ⟩\rangle⟩ jufti berilgan.

Muammoni ML Vazifasi Sifatida Belgilash

ML maqsadini aniqlash

Foydalanuvchilar qidiruv tizimlaridan dolzarb va foydali natijalar berishini kutadi. Buni ML maqsadiga o'girishning bir usuli — videolarni matnli so'rovga nisbatan dolzarbligiga qarab tartiblashdir.

Tizimning kirish va chiqishini aniqlash

4.2-rasmda ko'rsatilganidek, qidiruv tizimi matnli so'rovni kirish sifatida qabul qiladi va matnli so'rovga dolzarbligiga qarab tartiblangan videolar ro'yxatini chiqaradi.

To'g'ri ML kategoriyasini tanlash

Video va matnli so'rov o'rtasidagi dolzarblikni aniqlash uchun biz vizual kontentdan ham, videoning matnli ma'lumotlaridan ham foydalanamiz. Dizaynning umumiy ko'rinishi 4.3-rasmda ko'rish mumkin.

Keling, har bir komponentni qisqacha muhokama qilaylik.

Vizual qidiruv

Bu komponent matnli so'rovni kirish sifatida qabul qilib, videolar ro'yxatini chiqaradi. Videolar matnli so'rov va videolarning vizual kontenti o'rtasidagi o'xshashlikka qarab tartiblandi.

Tasviriy o'qitish — videolarning vizual kontentini qayta ishlash orqali qidirish uchun keng qo'llaniladigan yondashuv. Ushbu yondashuvda matnli so'rov va video ikkita encoder yordamida alohida kodlanadi. 4.4-rasmda ko'rsatilganidek, ML modeli videodan embedding vektori yaratuvchi video encoder va matndan embedding vektori yaratuvchi text encoder o'z ichiga oladi. Video va matn o'rtasidagi o'xshashlik ko'rsatkichi ularning tasvirlari nuqta ko'paytmasi yordamida hisoblanadi.

Matnli so'rovga vizual va semantik jihatdan o'xshash videolarni tartiblash uchun biz embedding fazosida matn va har bir video o'rtasidagi nuqta ko'paytmasini hisoblaymiz, so'ngra videolarni o'xshashlik ko'rsatkichlariga qarab tartiblаymiz.

Matnli qidiruv

4.5-rasm foydalanuvchi "dogs playing indoor" matnli so'rovini kiritganda matnli qidiruvning qanday ishlashini ko'rsatadi: eng o'xshash sarlavhalar, tavsiflar yoki teglarga ega videolar chiqish sifatida ko'rsatiladi.

Teskari indeks — ma'lumotlar bazalarida samarali to'liq matn qidirishiga imkon beruvchi matnli qidiruv komponentini yaratish uchun keng qo'llaniladigan texnika. Teskari indekslar mashina o'qitishiga asoslanmaganligi sababli, o'quv xarajati yo'q. Kompaniyalar ko'p ishlatadigan mashhur qidiruv tizimi — kengaytiriladigan qidiruv tizimi va hujjat do'koni bo'lgan Elasticsearch. Elasticsearch haqida ko'proq ma'lumot va chuqurroq tushunish uchun [1] ga murojaat qiling.

Ma'lumotlarni Tayyorlash

Ma'lumotlar muhandisligi

Modelni o'qitish va baholash uchun bizga belgilangan ma'lumotlar to'plami berilganligi sababli, ma'lumotlar muhandisligini bajarish shart emas. 4.1-jadval belgilangan ma'lumotlar to'plami qanday ko'rinishda bo'lishini ko'rsatadi.

Video nameQuerySplit type
76134.mp4Kids swimming in a pool!Training
92167.mp4Celebrating graduationTraining
2867.mp4A group of teenagers playing soccerValidation
28543.mp4How Tensorboard worksValidation
70310.mp4Road trip in winterTest

4.1-jadval: Belgilangan ma'lumotlar to'plami

Xususiyatlar muhandisligi

Deyarli barcha ML algoritmlari faqat raqamli kirish qiymatlarini qabul qiladi. Matnlar va videolar kabi tuzilmagan ma'lumotlar ushbu bosqichda raqamli ko'rinishga o'girilishi kerak. Keling, model uchun matn va video ma'lumotlarini qanday tayyorlashni ko'rib chiqaylik.

Matn ma'lumotlarini tayyorlash

4.64.64.6-rasmda ko'rsatilganidek, matn odatda uchta bosqich yordamida raqamli vektor sifatida ifodalanadi: matnni normallashtirish, tokenlashtirish va tokenlarni ID larga o'girish [2].

Keling, har bir bosqichni batafsil ko'rib chiqaylik.

Matnni normallashtirish

Matnni normallashtirish — matnni tozalash deb ham ataladi — so'zlar va jumlalar izchil bo'lishini ta'minlaydi. Masalan, bir xil so'z biroz farqli yozilishi mumkin; masalan, "dog", "dogs" va "DOG!" barchasi bir xil narsani anglatadi, lekin turlicha yozilgan. Xuddi shunday jumlalar uchun ham. Masalan, quyidagi ikki jumlaga qarang:

  • "A person walking with his dog in Montréal !"
  • "a person walks with his dog, in Montreal."

Ikkala jumla ham bir xil ma'noni anglatadi, lekin tinish belgilari va fe'l shakllari farq qiladi. Matnni normallashtirish uchun quyidagi usullar keng qo'llaniladi:

  • Kichik harfga o'girish: barcha harflarni kichikka o'girish, chunki bu so'zlar yoki jumlalar ma'nosini o'zgartirmaydi
  • Tinish belgilarini olib tashlash: matndan tinish belgilarini olib tashlash. Keng tarqalgan tinish belgilari — nuqta, vergul, so'roq belgisi, undov belgisi va h.k.
  • Oq joylarni qisqartirish: bosh, oxiri va ko'p oq joylarni qisqartirish
  • Normallashtirish Shakli KD (NFKD) [3]: birlashtirilgan grafemallarni oddiy grafemallar kombinatsiyasiga ajratish
  • Urg'u belgilarini olib tashlash: so'zlardan urg'u belgilarini olib tashlash. Masalan: Màlaga →\rightarrow→ Malaga, Noël →\rightarrow→ Noel
  • Lemmatizatsiya va stemming: o'zaro bog'liq so'z shakllari to'plami uchun kanonik vakilni aniqlash. Masalan: walking, walks, walked →\rightarrow→ walk
Tokenlashtirish

Tokenlashtirish — matn parchasini tokenlar deb ataladigan kichik birliklarga bo'lish jarayoni. Umuman, tokenlashtirish uchta turda bo'ladi:

  • So'z tokenlashtirish: matnni muayyan ajratuvchilar asosida alohida so'zlarga bo'lish. Masalan, "I have an interview tomorrow" iborasi ["I", "have", "an", "interview", "tomorrow"] ga aylanadi
  • Quyi so'z tokenlashtirish: matnni quyi so'zlarga (yoki n-gram belgilar) bo'lish
  • Belgi tokenlashtirish: matnni belgilar to'plamiga bo'lish Turli tokenlashtirish algoritmlarining tafsilotlari ML tizimi dizayni suhbatlarida odatda asosiy diqqat markazida bo'lmaydi. Agar ko'proq o'rganmoqchi bo'lsangiz, [4] ga murojaat qiling.
Tokenlardan ID larga

Tokenlarni olganimizdan so'ng, ularni raqamli qiymatlarga (ID larga) o'girish kerak. Tokenlarni raqamli qiymatlar bilan ifodalash ikki usulda amalga oshirilishi mumkin:

  • Qidiruv jadvali
  • Xeshlash

Qidiruv jadvali. Ushbu usulda har bir noyob token ID ga mos keladi. Keyin ushbu 1:11: 11:1 mosliklarni saqlash uchun qidiruv jadvali yaratiladi. 4.74.74.7-rasm moslik jadvali qanday ko'rinishini ko'rsatadi.

Xeshlash. Xeshlash, shuningdek "xususiyat xeshlash" yoki "xeshlash hiylasi" deb ataladi, — qidiruv jadvalini saqlashsiz ID larni olish uchun xesh funksiyasidan foydalanadigan xotiraga samarali usul. 4.84.84.8-rasm so'zlarni ID larga o'girish uchun xesh funksiyasidan qanday foydalanilishini ko'rsatadi.

Keling, qidiruv jadvalini xeshlash usuli bilan taqqoslaymiz.

Lookup tableHashing
Speed✓ Quick to convert tokens to IDs✘ Need to compute hash function to convert tokens to IDs
ID to token✓ Easy to convert IDs to tokens using a reverse index table✘ Not possible to convert IDs to tokens
Memory

✘ The table is stored in memory. A large number of tokens will result in an increase in memory required

✓ The hash function is sufficient to convert any token to its ID

Unseen tokens✘ New or unseen words cannot be properly handled

✓ Easily handles new or unseen words by applying the hash function to any word

Collisions [5]✓ No collision issue✘ Collisions are a potential problem

4.2-jadval: Qidiruv jadvali va xususiyat xeshlash taqqoslamasi

Video ma'lumotlarini tayyorlash

4.9-rasm xom videoni oldindan qayta ishlash uchun odatiy ish jarayonini ko'rsatadi.

Model Ishlab Chiqish

Model tanlash

"Muammoni ML vazifasi sifatida belgilash" bo'limida muhokama qilinganidek, matnli so'rovlar text encoder yordamida embeddinglarga o'giriladi va videolar video encoder yordamida embeddinglarga o'giriladi. Ushbu bo'limda biz har bir encoder uchun mumkin bo'lgan model arxitekturalarini ko'rib chiqamiz.

Odatiy text encoder ning kirish va chiqishi 4.10-rasmda ko'rsatilgan.

Text encoder matnni vektor ko'rinishiga o'giradi [6]. Masalan, ikki jumla bir xil ma'noga ega bo'lsa, ularning embeddinglari bir-biriga yaqinroq bo'ladi. Text encoder yaratish uchun ikkita keng kategoriya mavjud: statistik usullar va ML asosidagi usullar. Keling, har birini ko'rib chiqaylik.

Statistik usullar

Bu usullar jumlani xususiyatlar vektoriga o'girish uchun statistikadan foydalanadi. Ikkita mashhur statistik usul:

  • So'z to'plami (Bag of Words — BoW)
  • Atama chastotasi - teskari hujjat chastotasi (TF-IDF)

BoW. Bu usul jumlani belgilangan uzunlikdagi vektorga o'giradi. U qatorlar jumlalarni, ustunlar esa so'z indekslarini ifodalovchi matritsa yaratib, jumla-so'z takrorlanishlarini modellashtiradi. BoW ning misoli 4.11-rasmda ko'rsatilgan.

bestholidayisnicepersonthistodaytripverywith
this person is nice very nice0012110010
today is holiday0110001000
this trip with best person is best2010110101

4.11-rasm: Turli jumlalarning BoW ko'rinishlari

BoW — jumla ko'rinishlarini tezda hisoblaydigan oddiy usul, ammo quyidagi cheklovlarga ega:

  • Jumlada so'zlar tartibini hisobga olmaydi. Masalan, "let's watch TV after work" va "let's work after watch TV" bir xil BoW ko'rinishiga ega bo'ladi.
  • Olingan ko'rinish jumlaning semantik va kontekstual ma'nosini aks ettirmaydi. Masalan, bir xil ma'noga ammo turli so'zlarga ega ikki jumla butunlay boshqa ko'rinishga ega bo'ladi.
  • Ko'rinish vektori siyrak. Ko'rinish vektorining o'lchami bizda mavjud noyob tokenlar umumiy soniga teng. Bu son odatda juda katta, shuning uchun har bir jumla ko'rinishi asosan nollar bilan to'lgan bo'ladi.

TF-IDF. Bu — so'zning hujjatlar to'plamidagi hujjat uchun qanchalik muhimligini aks ettiruvchi raqamli statistika. TF-IDF BoW kabi jumla-so'z matritsasini yaratadi, ammo matritsani so'zlar chastotasiga asoslanib normallashtiradi. Buning matematikasi haqida ko'proq ma'lumot olish uchun [7] ga murojaat qiling.

TF-IDF tez-tez uchraidigan so'zlarga kamroq og'irlik berganligi sababli, uning ko'rinishlari odatda BoW dan yaxshiroq. Biroq quyidagi cheklovlari mavjud:

  • Yangi jumla qo'shilganda atama chastotalarini qayta hisoblash uchun normallashtirish bosqichi kerak.
  • Jumlada so'zlar tartibini hisobga olmaydi.
  • Olingan ko'rinish jumlaning semantik ma'nosini aks ettirmaydi.
  • Ko'rinishlar siyrak.

Xulosa qilib aytganda, statistik usullar odatda tez. Biroq ular jumlalarning kontekstual ma'nosini aks ettirmaydi va ko'rinishlar siyrak. ML asosidagi usullar ushbu muammolarni hal etadi.

ML asosidagi usullar

Bu usullarda ML modeli jumlalarni mazmunli so'z embeddinglarga o'giradi, shunda ikki embedding o'rtasidagi masofa mos so'zlarning semantik o'xshashligini aks ettiradi. Masalan, "rich" va "wealth" kabi ikkita so'z semantik jihatdan o'xshash bo'lsa, ularning embeddinglari embedding fazosida bir-biriga yaqin bo'ladi. 4.124.124.12-rasm 2D2 \mathrm{D}2D embedding fazosida so'z embeddinglаrning oddiy vizualizatsiyasini ko'rsatadi. Ko'rib turganingizdek, o'xshash so'zlar guruhlangan.

Matnlarni embeddinglarga o'girish uchun uchta keng tarqalgan ML asosidagi yondashuv mavjud:

  • Embedding (qidiruv) qatlami
  • Word2vec
  • Transformer asosidagi arxitekturalar

Embedding (qidiruv) qatlami Bu yondashuvda har bir ID ni embedding vektoriga moslashtirish uchun embedding qatlamidan foydalaniladi. 4.13-rasm misolni ko'rsatadi.

Embedding qatlamidan foydalanish — ID lar kabi siyrak xususiyatlarni belgilangan o'lchamli embeddingga o'girishning oddiy va samarali yechimi. Keyingi boblarda uning qo'llanilishining ko'proq misollarini ko'ramiz.

Word2vec Word2vec [8] — so'z embeddinglаrini yaratish uchun ishlatiladigan o'zaro bog'liq modellar oilasi. Bu modellar sayoz neyron tarmoq arxitekturasidan foydalanadi va so'z embeddinglаrini o'rganish uchun mahalliy kontekstdagi so'zlarning birgalikda takrorlanishidan foydalanadi. Xususan, model o'quv bosqichida atrofdagi so'zlardan markaziy so'zni bashorat qilishni o'rganadi. O'quv bosqichidan so'ng model so'zlarni mazmunli embeddinglarga o'girishga qodir bo'ladi.

Word2vec ga asoslangan ikkita asosiy model mavjud: Uzluksiz So'z To'plami (CBOW) [9] va Skip-gram [10]. 4.144.144.14-rasm CBOW ning yuqori darajada qanday ishlashini ko'rsatadi. Ushbu modellar haqida ko'proq bilmoqchi bo'lsangiz, [8] ga murojaat qiling.

Word2vec va embedding qatlamlari oddiy va samarali bo'lsa-da, Transformerlarga asoslangan so'nggi arxitekturalar istiqbolli natijalar ko'rsatdi.

Transformer asosidagi modellar Bu modellar jumlalardagi so'zlar kontekstini hisobga olgan holda ularni embeddinglarga o'giradi. Word2vec modellaridan farqli o'laroq, ular kontekstga qarab bir xil so'z uchun turli embeddinglаr ishlab chiqaradi.

4.15-rasm Transformer asosidagi modelni ko'rsatadi — u jumlani kirish sifatida (so'zlar to'plami) qabul qilib, har bir so'z uchun embedding yaratadi.

Transformerlar kontekstni tushunish va mazmunli embeddinglаr yaratishda juda kuchli. BERT [11], GPT3 [12] va BLOOM [13] kabi bir qator modellar Transformerlarning keng turli Tabiiy Tilni Qayta Ishlash (NLP) vazifalarini bajarish imkoniyatini namoyish etdi. Bizning holatimizda biz text encoder sifatida BERT kabi Transformer asosidagi arxitekturani tanlaymiz.

Ba'zi suhbatlarda suhbatdosh Transformer asosidagi modelning tafsilotlariga chuqurroq kirishingizni xohlashi mumkin. Ko'proq ma'lumot olish uchun [14] ga murojaat qiling.

Video encoder

Videolarni kodlash uchun ikkita arxitektura varianti mavjud: Videolarni kodlash uchun ikkita arxitektura varianti mavjud:

  • Video darajasidagi modellar
  • Kadr darajasidagi modellar

Video darajasidagi modellar 4.16-rasmda ko'rsatilganidek, embedding yaratish uchun butun videoni qayta ishlaydi. Model arxitekturasi odatda 3D konvolyusiyalarga [15] yoki Transformerlarga asoslanadi. Model butun videoni qayta ishlaydi, shuning uchun u hisoblash jihatidan qimmat.

Kadr darajasidagi modellar boshqacha ishlaydi. Kadr darajasidagi model yordamida videodan embedding olish uchun uni uch bosqichga bo'lish mumkin:

  • Videoni oldindan qayta ishlash va kadrlarni namunalash.
  • Kadr embeddinglarini yaratish uchun namunalangan kadrlarda modelni ishga tushirish.
  • Video embeddingini hosil qilish uchun kadr embeddinglarini birlashtirish (masalan, o'rtalashtirish).

Bu model kadr darajasida ishlaydi, shuning uchun u ko'pincha tezroq va hisoblash jihatidan kamroq qimmat. Biroq kadr darajasidagi modellar odatda harakatlar va qo'zg'alish kabi videoning vaqtinchalik jihatlarini tushuna olmaydi. Amalda videoning vaqtinchalik tushunilishi muhim bo'lmagan ko'plab holatlarda kadr darajasidagi modellar afzal ko'riladi. Bu yerda biz ikkita sababga ko'ra ViT [16] kabi kadr darajasidagi modelni qo'llaymiz:

  • O'quv va xizmat ko'rsatish tezligini oshirish
  • Hisoblash sonini kamaytirish

Modelni o'qitish

Text encoder va video encoderni o'qitish uchun biz kontrastiv o'qitish yondashuvidan foydalanamiz. Bu haqda ko'proq bilmoqchi bo'lsangiz, 2-bob, Vizual Qidiruv Tizimining "Modelni o'qitish" bo'limiga qarang.

Model o'quv davrida yo'qotishni qanday hisoblash tushuntirish 4.18-rasmda ko'rsatilgan.

Baholash

Oflayn metrikalar

Qidiruv tizimlarida odatda qo'llaniladigan ba'zi oflayn metrikalar. Keling, qaysilari eng dolzarb ekanini ko'rib chiqaylik.

Precision@k va mAP

Baholash ma'lumotlar to'plamida berilgan matnli so'rov faqat bitta video bilan bog'liq. Bu shuni anglatadiki, precision@k formulasining suratdagi son ko'pi bilan 1. Bu past precision@k qiymatlariga olib keladi. Masalan, berilgan matnli so'rov uchun, agar biz bog'liq videoni ro'yxat boshiga joylashtirgan bo'lsak ham, precision@10 faqat 0.1 bo'ladi. Ushbu cheklov tufayli, precision@k va mAP kabi aniqlik metrikalari unchalik foydali emas.

Recall@k. Bu qidiruv natijalaridagi dolzarb videolar soni va dolzarb videolarning umumiy soni o'rtasidagi nisbatni o'lchaydi.

Yuqorida ta'riflanganidek, "dolzarb videolarning umumiy soni" har doim 1 ga teng. Shu asosda recall@k formulasini quyidagicha tarjima qilishimiz mumkin:

recall@ k=1\mathrm{k}=1k=1 agar dolzarb video top kkk videolar orasida bo'lsa, aks holda 0

Bu metrikaning afzalliklari va kamchiliklari nima?

Afzalliklari

  • U modelning berilgan matnli so'rov uchun bog'liq videoni topish qobiliyatini samarali o'lchaydi.

Kamchiliklari

  • U kkk ga bog'liq. To'g'ri k\mathrm{k}k ni tanlash qiyin bo'lishi mumkin.
  • Dolzarb video chiqish ro'yxatidagi k\mathrm{k}k video orasida bo'lmasa, recall@k har doim 0 bo'ladi. Masalan, A modeli dolzarb videoni 15-o'ringa, B modeli esa bir xil videoni 50-o'ringa joylashtirganda. Ushbu ikki modelning sifatini o'lchash uchun recall@10 dan foydalansak, A modeli B modeldan yaxshiroq bo'lsa-da, ikkalasi ham recall@10=0 bo'ladi.

O'rtacha Teskari Darajasi (MRR). Bu metrika har bir qidiruv natijasida birinchi dolzarb elementning darajasini o'rtalashtirish orqali modelning sifatini o'lchaydi. Formula:

Bu metrika recall@k ning kamchiliklarini bartaraf etadi va oflayn metrikamiz sifatida ishlatilishi mumkin.

Onlayn metrikalar

Onlayn baholashning bir qismi sifatida kompaniyalar keng turli metrikalarni kuzatadi. Keling, eng muhimlaridan ba'zilarini ko'rib chiqaylik:

  • Click-through rate (CTR)
  • Video tugash darajasi
  • Qidiruv natijalarining umumiy tomosha vaqti

CTR. Bu metrika foydalanuvchilar qancha tez-tez olingan videolarni bosishini ko'rsatadi. CTR ning asosiy muammosi — bosilgan videolar foydalanuvchi uchun dolzarb ekanligini kuzatmasligi. Ushbu kamchilikka qaramay, CTR kuzatish uchun yaxshi metrika bo'lib qolmoqda, chunki u qidiruv natijalarini qancha odam bosaganini ko'rsatadi.

Video tugash darajasi. Qidiruv natijalarida paydo bo'lgan va foydalanuvchilar tomonidan oxirigacha ko'rilgan videolar sonini o'lchaydigan metrika. Bu metrikaning muammosi — foydalanuvchi videoni faqat qisman ko'rishi mumkin, lekin baribir uni dolzarb deb hisoblashi mumkin. Video tugash darajasi yolg'iz qidiruv natijalarining dolzarbligini aks ettira olmaydi.

Qidiruv natijalarining umumiy tomosha vaqti. Bu metrika foydalanuvchilar qidiruv natijalarida qaytarilgan videolarni tomosha qilishga sarflagan umumiy vaqtni kuzatadi. Qidiruv natijalari dolzarb bo'lganida foydalanuvchilar ko'proq vaqt sarflaydi. Bu metrika qidiruv natijalarining qanchalik dolzarb ekanligini ko'rsatuvchi yaxshi ko'rsatkich.

Xizmat Ko'rsatish

Xizmat ko'rsatish vaqtida tizim berilgan matnli so'rovga dolzarb bo'lgan tartiblangan videolar ro'yxatini ko'rsatadi. 4.194.194.19-rasm soddalashtirilgan ML tizimi dizaynini ko'rsatadi.

Keling, har bir quvurni batafsil muhokama qilaylik.

Bashorat quvuri

Bu quvur quyidagilardan iborat:

  • Vizual qidiruv
  • Matnli qidiruv
  • Birlashtirish qatlami
  • Qayta tartiblash xizmati

Vizual qidiruv. Bu komponent matnli so'rovni kodlaydi va matn embeddingiga eng o'xshash video embeddinglarni topish uchun eng yaqin qo'shni xizmatidan foydalanadi. NN qidiruvini tezlashtirish uchun biz 2-bobda tavsiflangan taxminiy eng yaqin qo'shni (ANN) algoritmlaridan foydalanamiz, Vizual Qidiruv Tizimi.

Matnli qidiruv. Elasticsearch yordamida bu komponent matnli so'rov bilan sarlavhalari va teglari mos keladigan videolarni topadi.

Birlashtirish qatlami. Bu komponent oldingi bosqichdan dolzarb videolarning ikki xil ro'yxatini olib, ularni yangi videolar ro'yxatiga birlashtiradi.

Birlashtirish qatlami ikki usulda amalga oshirilishi mumkin, ularning eng oddiysi — videolarni bashorat qilingan dolzarblik ko'rsatkichlarining og'irlikli yig'indisiga qarab qayta tartiblashdir. Ko'proq murakkab yondashuv — videolarni qayta tartiblash uchun qo'shimcha model qo'llash bo'lib, bu model o'qitishni talab qilgani uchun qimmatroq. Bundan tashqari, u xizmat ko'rsatishda sekinroq. Natijada biz oldingi yondashuvni qo'llaymiz.

Qayta tartiblash xizmati. Bu xizmat biznes darajasidagi mantiq va siyosatlarni kiritib tartiblangan videolar ro'yxatini o'zgartiradi.

Video indekslash quvuri

O'qitilgan video encoder video embeddinglarini hisoblash uchun ishlatiladi va keyin indekslanadi. Ushbu indekslangan video embeddinglari eng yaqin qo'shni xizmati tomonidan ishlatiladi.

Matnli indekslash quvuri

Bu sarlavhalar, qo'lda kiritilgan teglar va avtomatik yaratilgan teglarni indekslash uchun Elasticsearch dan foydalanadi.

Odatda foydalanuvchi videoni yuklayotganida, videoni yaxshiroq aniqlashga yordam berish uchun teglar qo'shadi. Ammo ular teglarni qo'lda kiritmasa nima bo'ladi? Bir variant — teglar yaratish uchun alohida modeldan foydalanishdir. Biz bu komponentni avtomatik teglash deb ataymiz va u ayniqsa videoda qo'lda kiritilgan teglar bo'lmagan hollarda qimmatlidir. Bu teglar qo'lda kiritilgan teglardan shovqinliroq bo'lishi mumkin, ammo baribir qimmatlidir.

Boshqa Muhokama Mavzulari

Ushbu bobni yakunlashdan oldin, video qidiruv tizimi dizaynini soddalashtirganligimizni ta'kidlash muhim. Amalda u ancha murakkab. Ba'zi yaxshilanishlar quyidagilarni o'z ichiga olishi mumkin:

  • Ko'p bosqichli dizayndan foydalanish (nomzodlarni yaratish + tartiblash).
  • Video uzunligi, video mashhurligini va boshqalarni kabi ko'proq video xususiyatlaridan foydalanish.
  • Belgilangan ma'lumotlarga tayanish o'rniga, ma'lumotlarni yaratish va yorliq qo'yish uchun muloqotlardan (masalan, bosish, layk bosish va h.k.) foydalanish. Bu modelni uzluksiz o'qitish imkonini beradi.
  • Matnli so'rovga semantik jihatdan o'xshash sarlavhalar va teglarni topish uchun ML modelidan foydalanish. Bu model qidiruv sifatini yaxshilash uchun Elasticsearch bilan birlashtirilishi mumkin.

Suhbat oxirida vaqt qolsa, quyidagi qo'shimcha muhokama mavzulari mavjud:

  • Qidiruv tizimlarida muhim mavzu — so'rovni tushunish, masalan imlo to'g'irlash, so'rov toifasini aniqlash va ob'ektni aniqlash. So'rovni tushunish komponentini qanday qurishni muhokama qilish [17].
  • Qidiruv natijalarini yaxshilash uchun nutq va audioni qayta ishlaydigan ko'p modallikli tizimni qanday qurishni muhokama qilish [18].
  • Boshqa tillarni qo'llab-quvvatlash uchun ushbu ishni qanday kengaytirish [19].
  • Yakuniy chiqishdagi deyarli takroriy videolar foydalanuvchi tajribasiga salbiy ta'sir ko'rsatishi mumkin. Natijalarni ko'rsatishdan oldin ularni olib tashlashimiz uchun deyarli takroriy videolarni qanday aniqlash [20][20][20]?
  • Matnli so'rovlar asosiy, o'rta va quyruq so'rovlarga bo'linishi mumkin. Har bir holatda qo'llaniladigan turli yondashuvlar qanday [21]?
  • Chiqish ro'yxatini yaratishda mashhurlik va yangilikni qanday hisobga olish [22]?
  • Haqiqiy qidiruv tizimlari qanday ishlaydi [23][24][25].

Manbalar

  1. Elasticsearch. https://www.tutorialspoint.com/elasticsearch/elasticsearch_query_dsl.htm.
  2. Preprocessing text data. https://huggingface.co/docs/transformers/v4.42.0/preprocessing.
  3. NFKD normalization. https://unicode.org/reports/tr15/.
  4. What is Tokenization summary. https://huggingface.co/docs/transformers/tokenizer_summary.
  5. Hash collision. https://en.wikipedia.org/wiki/Hash_collision.
  6. Deep learning for NLP. http://cs224d.stanford.edu/lecture_notes/notes1.pdf.
  7. TF-IDF. https://en.wikipedia.org/wiki/Tf%E2%80%93idf.
  8. Word2Vec models. https://www.tensorflow.org/tutorials/text/word2vec.
  9. Continuous bag of words. https://www.kdnuggets.com/2018/04/implementing-deep-learning-methods-feature-engineering-text-data-cbow.html.
  10. Skip-gram model. http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/.
  11. BERT model. https://arxiv.org/pdf/1810.04805.pdf.
  12. GPT3 model. https://arxiv.org/pdf/2005.14165.pdf.
  13. BLOOM model. https://bigscience.huggingface.co/blog/bloom.
  14. Transformer implementation from scratch. https://peterbloem.nl/blog/transformers.
  15. 3D convolutions. https://www.kaggle.com/code/shivamb/3d-convolutions-understanding-use-case/notebook.
  16. Vision Transformer. https://arxiv.org/pdf/2010.11929.pdf.
  17. Query understanding for search engines. https://www.linkedin.com/pulse/ai-query-understanding-daniel-tunkelang/.
  18. Multimodal video representation learning. https://arxiv.org/pdf/2012.04124.pdf.
  19. Multilingual language models. https://arxiv.org/pdf/2107.00676.pdf.
  20. Near-duplicate video detection. https://arxiv.org/pdf/2005.07356.pdf.
  21. Generalizable search relevance. https://livebook.manning.com/book/ai-powered-search/chapter-10/v-10/20.
  22. Freshness in search and recommendation systems. https://developers.google.com/machine-learning/recommendation/dnn/re-ranking.
  23. Semantic product search by Amazon. https://arxiv.org/pdf/1907.00937.pdf.
  24. Ranking relevance in Yahoo search. https://www.kdd.org/kdd2016/papers/files/adf0361-yinA.pdf.
  25. Semantic product search in E-Commerce. https://arxiv.org/pdf/2008.08180.pdf.
Bob 5

Zararli Kontentni Aniqlash

~17 daq o'qish

Zararli Kontentni Aniqlash

Facebook [1], LinkedIn [2] va Twitter [3] kabi ko'plab ijtimoiy media platformalari yaxlitlikni ta'minlash va platformalarini foydalanuvchilar uchun xavfsiz qilish maqsadida standart qo'llanmalar belgilagan. Ushbu qo'llanmalar jamiyatga zarar etkazuvchi muayyan foydalanuvchi xatti-harakatlari, faoliyat va kontentni taqiqlaydi. Zararli kontentni va yomon aktyorlarni aniqlash uchun texnologiyalar va resurslar mavjud bo'lishi muhimdir. Yaxlitlikni ta'minlash e'tiborini ikki toifaga bo'lish mumkin:

  • Zararli kontent: Zo'ravonlik, yalang'ochlik, o'ziga zarar etkazish, nafrat nutqi va h.k. o'z ichiga olgan postlar.
  • Yomon harakatlar/yomon aktyorlar: Soxta hisoblar, spam, fishing, tashkillashtirilgan noetik faoliyat va boshqa xavfli xatti-harakatlar.

Ushbu bobda biz zararli kontent bo'lishi mumkin bo'lgan postlarni aniqlashga e'tibor qaratamiz. Xususan, biz yangi postlarni faol kuzatadigan, zararli kontentni aniqlashga va agar kontent platforma qo'llanmalarini buzsa, ularni o'chirib tashlashga yoki kamroq ko'rsatishga mo'ljallangan tizimni loyihalaymiz. Kompaniyalar amalda zararli kontentni aniqlash tizimini qanday qurganini tushunish uchun [4] [5] [6] ga murojaat qiling.

Talablarni Aniqlashtirish

Quyida nomzod va suhbatdosh o'rtasidagi odatiy muloqot keltirilgan.

Nomzod: Tizim zararli kontentni ham, yomon aktyorlarni ham aniqlaydi? Suhbatdosh: Ikkalasi ham bir xil darajada muhim. Soddalik uchun, faqat zararli kontentni aniqlashga e'tibor qarataylik.

Nomzod: Post faqat matn o'z ichiga olishi kerakmi yoki tasvirlar va videolarga ham ruxsat beriladimi? Suhbatdosh: Postning kontenti matn, tasvir, video yoki ularning har qanday kombinatsiyasi bo'lishi mumkin.

Nomzod: Qaysi tillar qo'llab-quvvatlanadi? Faqat ingliz tilimi? Suhbatdosh: Tizim turli tillardagi zararli kontentni aniqlay olishi kerak. Soddalik uchun, matnli kontentni joylashtirish uchun oldindan o'qitilgan ko'p tilli modeldan foydalanishimiz mumkin deb faraz qilaylik.

Nomzod: Biz qaysi zararli kontent toifalarini aniqlamoqchimiz? Zo'ravonlik, yalang'ochlik, nafrat nutqi, dezinformatsiya va h.k. haqida o'ylashim mumkin. Ko'rib chiqish uchun boshqa zararli toifalar bormi? Suhbatdosh: Juda yaxshi, asosiy toifalarni aytdingiz. Dezinformatsiya murakkab va bahsli. Soddalik uchun, dezinformatsiyaga e'tibor bermasaylik.

Nomzod: Postlarni qo'lda yorliq qo'yish uchun inson annotatorlari mavjudmi? Suhbatdosh: Platforma har kuni 500 milliondan ortiq post qabul qiladi. Odamlardan barchasini yorliq qo'yishni so'rash juda qimmat va vaqt talab etadi. Biroq siz inson annotatsiyasi kuniga 10 000 ta postni yorliq qo'yish uchun mavjud deb faraz qilishingiz mumkin.

Nomzod: Foydalanuvchilarga zararli kontentni xabar qilish imkoniyati berish tizim qayerda muvaffaqiyatsiz ekanini tushunish uchun foydali bo'ladi. Tizimda bunday xususiyat borligini faraz qilsam bo'ladimi? Suhbatdosh: Yaxshi fikr. Ha, foydalanuvchilar zararli postlarni xabar qilishi mumkin.

Nomzod: Post nima uchun zararli deb topilganini va olib tashlangani tushuntirish kerakmi? Suhbatdosh: Ha. Foydalanuvchilarga postni nima uchun olib tashlashimizni tushuntirish muhim. Bu foydalanuvchilarga kelajakdagi postlarini qo'llanmalar bilan moslashtirish imkonini beradi.

Nomzod: Tizimning kechikish talabi qanday? Bizga real vaqtda bashorat kerakmi, ya'ni tizim zararli kontentni darhol aniqlab bloklaydi, yoki paketli bashoratga tayanishimiz mumkinmi, ya'ni zararli kontentni soatlik yoki kunlik oflayn rejimda aniqlash? Suhbatdosh: Bu juda muhim savol. Fikrlaringiz qanday?

Nomzod: Menimcha, turli zararli kontent uchun talablar farq qilishi mumkin. Masalan, zo'ravonli kontent real vaqtli echimlarni talab qilishi mumkin, boshqalari uchun esa kech aniqlanish ishlashi mumkin. Suhbatdosh: Bu asosli taxminlar.

Shunday qilib, muammoni qisqacha bayonlaymiz. Biz zararli postlarni aniqlaydigan, so'ngra ularni o'chiruvchi yoki kamroq ko'rsatuvchi va postning nima uchun zararli deb topilganini foydalanuvchiga bildiruvchi zararli kontent aniqlash tizimini loyihalaymiz. Postning kontenti turli tillarda matn, tasvir, video yoki ularning har qanday kombinatsiyasi bo'lishi mumkin. Foydalanuvchilar zararli postlarni xabar qilishi mumkin.

Muammoni ML Vazifasi Sifatida Belgilash

ML maqsadini aniqlash

Biz ML maqsadimizni zararli postlarni aniq bashorat qilish sifatida belgilaymiz. Buning sababi — zararli postlarni aniq aniqlay olsak, ularni olib tashlash yoki kamroq ko'rsatish orqali platformani xavfsizroq qilishimiz mumkin.

Tizimning kirish va chiqishini aniqlash

Tizim postni kirish sifatida qabul qiladi va postning zararli ehtimolligini chiqaradi.

Kirish postga chuqurroq kiraylik. 5.3-rasmda ko'rsatilganidek, post geterogen va potentsial ko'p modallikli bo'lishi mumkin.

Aniq bashorat qilish uchun tizim barcha modalliklarni hisobga olishi kerak. Keling, geterogen ma'lumotlarni birlashtirish uchun keng qo'llaniladigan ikkita birlashtirish usulini muhokama qilaylik: kech birlashtirish va erta birlashtirish.

Kech birlashtirish

Kech birlashtirishda ML modellari turli modalliklarni mustaqil ravishda qayta ishlaydi, so'ngra yakuniy bashorat qilish uchun ularning bashoratlarini birlashtiradi. Quyidagi rasm kech birlashtirishning qanday ishlashini ko'rsatadi.

Kech birlashtirishning afzalligi shundaki, biz har bir modelni mustaqil ravishda o'qitish, baholash va yaxshilash mumkin.

Biroq kech birlashtirishning ikkita asosiy kamchiligi bor. Birinchidan, ushbu alohida modellarni o'qitish uchun har bir modallik uchun alohida o'quv ma'lumotlari kerak bo'lib, bu vaqt talab qiladi va qimmat.

Ikkinchidan, modalliklarning kombinatsiyasi zararli bo'lishi mumkin, hatto har biri alohida holda zararsiz bo'lsa ham. Bu ko'pincha tasvirlar va matnni birlashtiradigan memlar bilan sodir bo'ladi. Bunday hollarda kech birlashtirish kontent zararli yoki yo'qligini bashorat qila olmaydi. Buning sababi har bir modallik zararsiz bo'lgani uchun modellar har bir modallikni qayta ishlaganda zararsizlikni bashorat qiladi. Birlashtirish qatlami chiqishi zararsiz bo'ladi, chunki har bir alohida modallik chiqishi zararsiz. Lekin bu noto'g'ri, chunki modalliklarning kombinatsiyasi zararli bo'lishi mumkin.

Erta birlashtirish

Erta birlashtirishda modallikar avval birlashtiriladi, so'ngra model bashorat qiladi. 5.5-rasm erta birlashtirishning qanday ishlashini ko'rsatadi.

Erta birlashtirishning ikkita asosiy afzalligi bor. Birinchidan, har bir modallik uchun alohida o'quv ma'lumotlari to'plash shart emas. Bitta model o'qitish kerakligi sababli, faqat shu model uchun o'quv ma'lumotlarini to'plashimiz kerak. Ikkinchidan, model barcha modalliklarni hisobga oladi, shuning uchun agar har bir modallik zararsiz bo'lsa-da, ularning kombinatsiyasi zararli bo'lsa, model buni birlashtirilgan xususiyatlar vektori orqali potentsial ravishda aniqlashi mumkin.

Biroq modalliklar o'rtasidagi murakkab munosabatlar tufayli model uchun bu vazifani o'rganish qiyinroq. Yetarli o'quv ma'lumotlari bo'lmasa, model murakkab munosabatlarni o'rganib, yaxshi bashorat qilishi qiyin.

Qaysi birlashtirish usulini tanlash kerak?

Erta birlashtirish usuli qo'llaniladi, chunki u har bir modallik alohida holda zararsiz bo'lsa ham, umuman zararli bo'lishi mumkin bo'lgan postlarni aniqlash imkonini beradi. Bundan tashqari, har kuni taxminan 500 million post nashr etilishi bilan model vazifani o'rganish uchun yetarli ma'lumotga ega.

To'g'ri ML kategoriyasini tanlash

Ushbu bo'limda quyidagi ML kategoriya variantlarini ko'rib chiqamiz:

  • Yagona ikkilik klassifikator
  • Har bir zararli sinf uchun bitta ikkilik klassifikator
  • Ko'p yorliqli klassifikator
  • Ko'p vazifali klassifikator
Yagona ikkilik klassifikator

Bu variantda model birlashtirilgan xususiyatlarni kirish sifatida qabul qilib, postning zararli ehtimolligini bashorat qiladi (5.6-rasm). Chiqish ikkilik natija bo'lgani uchun model ikkilik klassifikator hisoblanadi.

Bu variantning kamchiligi shundaki, postning zo'ravonlik kabi qaysi zarar sinfiga tegishli ekanini aniqlash qiyin. Bu cheklov ikkita asosiy muammoga olib keladi:

  • Tizim faqat postning umuman zararli yoki yo'qligini ko'rsatuvchi ikkilik qiymat chiqarganligi sababli, foydalanuvchilarga postni nima uchun olib tashlayotganimizni tushuntirish oson emas. Post qaysi zarar sinfiga tegishli ekanini bilmaymiz.
  • Tizim yaxshi ishlamayotgan zarar sinflarini aniqlash oson emas, ya'ni biz yomon ishlayotgan sinflar uchun tizimni yaxshilay olmaymiz.

Postni nima uchun olib tashlangani tushuntirish muhim bo'lganligi sababli, yagona ikkilik klassifikator yaxshi variant emas.

Har bir zararli sinf uchun bitta ikkilik klassifikator

Bu variantda biz har bir zararli sinf uchun bitta ikkilik klassifikator qo'llaymiz. 5.75.75.7-rasmda ko'rsatilganidek, har bir model postning muayyan zararli sinfga tegishli yoki yo'qligini aniqlaydi. Har bir model birlashtirilgan xususiyatlarni kirish sifatida qabul qilib, postning zararli sinf sifatida tasniflanish ehtimolligini bashorat qiladi.

Bu variantning afzalligi shundaki, biz foydalanuvchilarga postni nima uchun olib tashlashimizni tushuntirishimiz mumkin. Bundan tashqari, biz turli modellarni kuzatish va ularni mustaqil ravishda yaxshilash mumkin.

Biroq bu variantning bitta asosiy kamchiligi bor. Bir nechta modelimiz bo'lganligi sababli, ularni alohida o'qitish va saqlash kerak. Ushbu modellarni alohida o'qitish vaqt talab qiladi va qimmat.

Ko'p yorliqli klassifikator

Ko'p yorliqli klassifikatsiyada biz tasniflashni xohlaydigan ma'lumot nuqtasi ixtiyoriy sonli sinflarga tegishli bo'lishi mumkin. Bu variantda bitta model ko'p yorliqli klassifikator sifatida ishlatiladi. 5.85.85.8-rasmda ko'rsatilganidek, modelga kirish birlashtirilgan xususiyatlar bo'lib, model har bir zararli sinf uchun ehtimolliklarni bashorat qiladi.

Barcha zararli sinflar uchun umumiy modeldan foydalanib, modelni o'qitish va saqlash kamroq xarajat talab qiladi. Bu usul haqida ko'proq bilmoqchi bo'lsangiz, WPIE [7] deb ataladigan yondashuvga murojaat qiling.

Biroq umumiy model yordamida har bir zararli sinf uchun ehtimolliklarni bashorat qilish ideal emas, chunki kirish xususiyatlarini har xil tarzda o'zgartirish kerak bo'lishi mumkin.

Ko'p vazifali klassifikator

Ko'p vazifali o'qitish — modelning bir vaqtning o'zida bir nechta vazifani o'rganishi jarayoni. Bu modelga vazifalar o'rtasidagi o'xshashliklarni o'rganish imkonini beradi. Bunda muayyan kirish transformatsiyasi bir nechta vazifa uchun foydali bo'lganda keraksiz hisoblashlardan saqlaniladi.

Bizning holatimizda biz zo'ravonlik va yalang'ochlik kabi turli zarar sinflarini turli vazifalar sifatida ko'rib chiqamiz va har bir vazifani o'rganish uchun ko'p vazifali klassifikatsiya modelidan foydalanamiz. 5.9-rasmda ko'rsatilganidek, ko'p vazifali klassifikatsiyaning ikki bosqichi bor: umumiy qatlamlar va vazifaga xos qatlamlar.

Umumiy qatlamlar 5.10-rasmda ko'rsatilganidek, umumiy qatlam — kirish xususiyatlarini yangi xususiyatlarga o'zgartiruvchi yashirin qatlamlar to'plami. Ushbu yangi o'zgartirilgan xususiyatlar har bir zararli sinf uchun bashorat qilishda ishlatiladi.

Vazifaga xos qatlamlar Vazifaga xos qatlamlar — mustaqil ML qatlamlari to'plami (klassifikatsiya boshlar deb ham ataladi). Har bir klassifikatsiya boshi xususiyatlarni muayyan zarar ehtimolligini bashorat qilish uchun optimal tarzda o'zgartiradi.

Ko'p vazifali klassifikatsiyaning uchta afzalligi bor. Birinchidan, bitta modeldan foydalanilganligi sababli o'qitish yoki saqlash qimmat emas. Ikkinchidan, umumiy qatlamlar xususiyatlarni har bir vazifa uchun foydali tarzda o'zgartiradi. Bu ortiqcha hisoblashlarning oldini oladi va ko'p vazifali klassifikatsiyani samarali qiladi. Nihoyat, har bir vazifa uchun o'quv ma'lumotlari boshqa vazifalarning o'rganishiga hissa qo'shadi. Bu ayniqsa muayyan vazifa uchun cheklangan ma'lumotlar mavjud bo'lganda foydali.

Ushbu afzalliklar sababli biz ko'p vazifali klassifikatsiya usulini qo'llaymiz. 5.125.125.12-rasm muammoni qanday belgilashimizni ko'rsatadi.

Ma'lumotlarni Tayyorlash

Ma'lumotlar muhandisligi

Quyidagi ma'lumotlar mavjud:

  • Foydalanuvchilar
  • Postlar
  • Foydalanuvchi-post muloqotlari
Foydalanuvchilar

Foydalanuvchi ma'lumotlari sxemasi quyida ko'rsatilgan.

IDUsernameAgeGenderCityCountryEmail

5.1-jadval: Foydalanuvchi ma'lumotlari sxemasi

Postlar

Post ma'lumotlari muallif, yuklash vaqti va boshqa maydonlarni o'z ichiga oladi. 5.25.25.2-jadval eng muhim atributlarning bir qismini ko'rsatadi. Amalda har bir post bilan odatda yuzlab atributlar bog'liq bo'ladi.

Post IDAuthor IDOn-deviceTimestampTextual contentImages or videosLinks
1173.93.220.2401658469431Today, I am starting my diet.http: //cdn.mysite.com/u1.jpg-
21189.42.110.2501658471428The video amazed me! Please donatehttp: //cdn.mysite.com/t3.mp4gofundme.com/f/3u1njd32
3439.55.180.0201658489233What is a good restaurant in the Bay area?http: //cdn.mysite.com/t5.jpg-

5.2-jadval: Post ma'lumotlari

Foydalanuvchi-post muloqotlari

Foydalanuvchi-post muloqot ma'lumotlari asosan layklar, izohlar, saqlash, ulashish va h.k. kabi foydalanuvchilarning postlarga reaktsiyalarini o'z ichiga oladi. Foydalanuvchilar postni zararli sifatida xabar qilishi yoki shikoyat arizasi yuborishi ham mumkin. 5.35.35.3-jadval ma'lumotlar qanday ko'rinishda bo'lishini ko'rsatadi.

User IDPost IDInteraction typeInteraction valueTimestamp
116Impression-1658450539
420Like-1658451341
117CommentThis is disgusting1658451365
420Share-1658435948
117Reportviolence1658451849

5.3-jadval: Foydalanuvchi-post muloqot ma'lumotlari

Xususiyatlar muhandisligi

"Muammoni ML vazifasi sifatida belgilash" bo'limida biz muammoni kirish post bo'lgan ko'p vazifali klassifikatsiya vazifasi sifatida belgiladik. Ushbu bo'limda biz postdan olinishi mumkin bo'lgan bashoratchi xususiyatlarni o'rganamiz. Post quyidagi elementlarni o'z ichiga olishi mumkin:

  • Matnli kontent
  • Tasvir yoki video
  • Postga foydalanuvchilarning reaktsiyalari
  • Muallif
  • Kontekstual ma'lumot

Keling, har bir elementga qaraylik.

Matnli kontent

Postning matnli kontenti postning zararli yoki yo'qligini aniqlashga yordam berishi mumkin. 4-bobda, YouTube Video Qidiruvda ta'riflanganidek, matn ma'lumotlari odatda ikki bosqichda tayyorlanadi:

  • Matnni oldindan qayta ishlash (masalan, normallashtirish, tokenlashtirish)
  • Vektorlashtirish: oldindan qayta ishlangan matnni mazmunli xususiyatlar vektoriga o'girish Vektorlashtirish ushbu bobga o'ziga xos bo'lganligi sababli unga e'tibor qarataylik. Matnni vektorlashtirish va xususiyatlar vektorini ajratib olish uchun statistik yoki ML asosidagi usullardan foydalanish mumkin. BoW yoki TF-IDF kabi statistik usullar amalga oshirish oson va hisoblash tez. Biroq ular matnning semantikasini kodlay olmaydi. Bizning tizimimiz uchun zarar aniqlashda matnli kontentning semantikasini tushunish muhim, shuning uchun biz ML asosidagi usulni qo'llaymiz. Matnni xususiyatlar vektoriga o'girish uchun biz BERT [8] kabi oldindan o'qitilgan Transformer asosidagi til modelidan foydalanamiz. Biroq asl BERT ning ikkita muammosi bor:
  • Modelning katta hajmi tufayli matn embeddingini yaratish uzoq vaqt oladi. Bu sekin jarayon bo'lganligi sababli, onlayn bashoratlar uchun foydalanish ideal emas.
  • BERT faqat ingliz tilidagi ma'lumotlarda o'qitilgan. Shuning uchun boshqa tillardagi matnlar uchun mazmunli embeddinglаr ishlab chiqarmaydi.

BERT ning samaraliroq varianti bo'lgan DistilmBERT [9] ushbu ikkala muammoni hal etadi. Ikki jumla bir xil ma'noga ega bo'lsa, lekin ikki xil tilda bo'lsa, ularning embeddinglari juda o'xshash bo'ladi. Ko'p tilli til modellari haqida ko'proq bilmoqchi bo'lsangiz, [10] ga murojaat qiling.

Tasvir yoki video

Odatda post ichidagi tasvir yoki videoga qarash orqali post nima haqida ekanini bilib olishingiz mumkin. Tuzilmagan ma'lumotlar, masalan tasvirlar yoki videolarni tayyorlash uchun quyidagi ikki bosqich odatda qo'llaniladi.

  • Oldindan qayta ishlash: ma'lumotlarni dekodlash, o'lchamini o'zgartirish va normallashtirish.
  • Xususiyatlarni ajratib olish: oldindan qayta ishlashdan so'ng, tuzilmagan ma'lumotlarni xususiyatlar vektoriga o'girish uchun oldindan o'qitilgan modeldan foydalanamiz. Bu bizga tasvir yoki videoni xususiyatlar vektori bilan ifodalash imkonini beradi. Tasvirlar uchun CLIP ning vizual encoderi [11] yoki SimCLR [12] kabi oldindan o'qitilgan tasvir modeli mos variantdir. Videolar uchun VideoMoCo [13] kabi oldindan o'qitilgan modellar yaxshi ishlashi mumkin.
Postga foydalanuvchilarning reaktsiyalari

Kontent noaniq bo'lganida, foydalanuvchilar reaktsiyalariga asoslanib postning zararli yoki yo'qligini aniqlash ham mumkin. 5.13-rasmda ko'rsatilganidek, ko'proq izohlar qo'shilgani sari post o'z-o'ziga zarar etkazish bilan bog'liq kontent o'z ichiga olgani tobora ravshan bo'lib boradi.

Foydalanuvchilar reaktsiyalari zararli kontentni aniqlashda muhim rol o'ynaydigan bo'lsa-da, keling, ularga asoslanib muhandislikimiz mumkin bo'lgan ba'zi xususiyatlarni ko'rib chiqaylik.

Layklar, ulashishlar, izohlar va xabarlar soni: Biz odatda model o'quv davrida konvergensiyani tezlashtirish uchun ushbu raqamli qiymatlarni masshtablaymiz.

Izohlar: 5.13-rasmda ko'rsatilganidek, izohlar zararli kontentni aniqlashimizga yordam berishi mumkin. Xususiyatlarni tayyorlash uchun biz izohlarni raqamli ko'rinishlarga o'giramiz, quyidagilarni bajarib:

  • Har bir izohning embeddingini olish uchun ilgari qo'llagan oldindan o'qitilgan modeldan foydalanish.
  • Yakuniy embeddingni olish uchun embeddinglarni birlashtirish (masalan, o'rtalashtirish).

Hozirgacha ta'riflagan xususiyatlar xulasasini 5.14-rasmda topishingiz mumkin.

Muallif xususiyatlari

Muallifning o'tmishdagi muloqotlari postning zararli yoki yo'qligini aniqlashga yordam berishi mumkin. Keling, post muallifi bilan bog'liq xususiyatlarni muhandislik qilaylik.

Muallifning qoidabuzarlik tarixi

  • Qoidabuzarliklar soni: Bu muallifning o'tmishda qo'llanmalarni necha marta buzganini ifodalovchi raqamli qiymat.
  • Umumiy foydalanuvchi xabarlari: Foydalanuvchilar muallifning postlarini necha marta xabar qilganini ifodalovchi raqamli qiymat.
  • Haqoratli so'zlar tezligi: Bu muallifning oldingi postlari va izohlarida haqoratli so'zlarning qo'llanilish tezligini ifodalovchi raqamli qiymat. So'zning haqoratli ekanligini aniqlash uchun haqoratli so'zlarning oldindan belgilangan ro'yxati ishlatiladi.

Muallifning demografik ma'lumotlari

  • Yosh: Foydalanuvchining yoshi eng muhim bashoratchi xususiyatlardan biri.
  • Jins: Bu kategorik xususiyat foydalanuvchining jinsini ifodalaydi. Jinsni ifodalash uchun biz bir issiq kodlashdan (one-hot encoding) foydalanamiz.
  • Shahar va mamlakat: Ham shahar, ham mamlakat ko'p noyob qiymatlarga ega. Xususiyatlarni ifodalash uchun biz shahar va mamlakatni xususiyatlar vektorlariga o'girish uchun embedding qatlamidan foydalanamiz. E'tiboring, bir issiq kodlash shahar va mamlakatni ifodalashning samarali usuli emas, chunki ularning ko'rinishlari uzun va siyrak bo'lar edi.

Hisob ma'lumotlari

  • Kuzatuvchilar va kuzatiluvchilar soni
  • Hisob yoshi: Bu muallifning hisob yoshini ifodalovchi raqamli qiymat. Bu bashoratchi xususiyat, chunki yoshi past hisoblar spam bo'lishi yoki yaxlitlikni buzishi ehtimoli ko'proq.
Kontekstual ma'lumot
  • Kunning vaqti: Bu muallifning post qilgan vaqti. Biz buni ertalab, tushda, tushdan keyin, kechqurun yoki kecha kabi bir nechta toifalarga bo'lamiz. Ushbu xususiyatni ifodalash uchun bir issiq kodlashdan foydalanamiz.
  • Qurilma: Muallif foydalanadigan qurilma, masalan smartfon yoki ish stoli kompyuter. Ushbu xususiyatni ifodalash uchun bir issiq kodlash ishlatiladi.

5.15-rasm zararli kontent aniqlash tizimining eng muhim xususiyatlaridan ba'zilarini umumlashtiradi.

Model Ishlab Chiqish

Model tanlash

Neyron tarmoq — ko'p vazifali o'qitish uchun eng keng qo'llaniladigan model. Modelimizni ishlab chiqishda neyron tarmoqlardan foydalanamiz.

Neyron tarmoqni tanlaganda qanday omillarni hisobga olish kerak? Neyron tarmoqning arxitektura dizayni va yashirin qatlamlar, aktivatsiya funksiyasi, o'quv tezligi va h.k. kabi optimal giperpareametr tanlovini aniqlash zarur. Optimal giperpareametr tanlovi odatda giperpareametr sozlash yordamida aniqlanadi. Keling, qisqacha ko'rib chiqaylik.

Giperpareametr sozlash — model uchun eng yaxshi ish faoliyatini ta'minlash maqsadida giperpareametrlar uchun eng yaxshi qiymatlarni topish jarayoni. Giperpareametrlarni sozlash uchun to'r qidiruvi keng qo'llaniladi. Bu jarayon giperpareametr qiymatlari kombinatsiyasi uchun yangi model o'qitish, har bir modelni baholash va eng yaxshi modelga olib keladigan giperpareametrlarni tanlashni o'z ichiga oladi. Giperpareametr sozlash haqida ko'proq bilmoqchi bo'lsangiz, [14] ga murojaat qiling.

Modelni o'qitish

Ma'lumotlar to'plamini yaratish

Ko'p vazifali klassifikatsiya modelini o'qitish uchun avval ma'lumotlar to'plamini yaratish kerak. Ma'lumotlar to'plami model kirish ma'lumotlari (xususiyatlar) va bashorat qilishi kutilgan chiqish ma'lumotlari (yorliqlar) dan iborat. Kirish ma'lumotlarini yaratish uchun biz postlarni oflayn rejimda paketlar bo'yicha qayta ishlab, ilgari ta'riflanganidek birlashtirilgan xususiyatlarni hisoblaymiz. Ushbu xususiyatlar kelajakdagi o'qitish uchun xususiyatlar do'konida saqlanishi mumkin. Har bir kirish uchun yorliqlar yaratish uchun ikki variant mavjud:

  • Qo'lda yorliq qo'yish
  • Tabiiy yorliq qo'yish

Qo'lda yorliq qo'yishda inson pudratchilar postlarni qo'lda yorliq qo'yadi. Bu variant aniq yorliqlar yaratadi, lekin qimmat va vaqt talab qiladi. Tabiiy yorliq qo'yishda biz postlarni avtomatik ravishda yorliq qo'yish uchun foydalanuvchi xabarlariga tayanamiz. Bu variant shovqinli yorliqlar yaratadi, lekin yorliqlar tezroq ishlab chiqariladi. Baholash ma'lumotlar to'plami uchun biz yorliqlarning aniqligini birinchi o'ringa qo'yib qo'lda yorliq qo'yishdan foydalanamiz, o'quv ma'lumotlar to'plami uchun esa yorliq qo'yish tezligini birinchi o'ringa qo'yib tabiiy yorliq qo'yishdan foydalanamiz. Yaratilgan ma'lumotlar to'plamidan bir ma'lumot nuqtasi 5.16-rasmda ko'rsatilgan.

Yo'qotish funksiyasini tanlash

Ko'p vazifali neyron tarmoqni o'qitish odatda neyron tarmoq modellarini o'qitish jarayoniga juda o'xshash. Oldinga tarqatish bashorat qilish uchun hisoblashlarni bajaradi, yo'qotish funksiyasi bashoratning to'g'riligini o'lchaydi va orqaga tarqatish keyingi iteratsiyada yo'qotishni kamaytirish uchun modelning parametrlarini optimallashtiradi. Keling, yo'qotish funksiyasini ko'rib chiqaylik. Ko'p vazifali o'qitishda har bir vazifaga ML toifasiga asoslanib yo'qotish funksiyasi tayinlanadi. Bizning holatimizda har bir vazifa ikkilik klassifikatsiya sifatida belgilangan, shuning uchun biz har bir vazifa uchun kross-entropiya kabi standart ikkilik klassifikatsiya yo'qotishini qo'llaymiz. Umumiy yo'qotish 5.175.175.17-rasmda ko'rsatilganidek, vazifaga xos yo'qotishlarni birlashtirish orqali hisoblanadi.

Ko'p modallikli tizimlarni o'qitishdagi umumiy muammo — ortiqcha o'rganish (overfitting) [15]. Masalan, o'quv tezligi turli modalliklar bo'yicha farq qilganda, bitta modallik (masalan, tasvir) o'quv jarayoniga hukmronlik qilishi mumkin. Ushbu muammoni hal qilish uchun ikkita texnika mavjud: gradient blending va focal loss. Ushbu texnikalar haqida ko'proq bilmoqchi bo'lsangiz, [16] [17] ga murojaat qiling.

Baholash

Oflayn metrikalar

Ikkilik klassifikatsiya modelining ish faoliyatini baholash uchun aniqlik (precision), to'liqlik (recall) va F1 ko'rsatkichi kabi oflayn metrikalar keng qo'llaniladi. Biroq aniqlik yoki to'liqlik yolg'iz umumiy ish faoliyatni tushunish uchun yetarli emas. Masalan, yuqori aniqlikka ega model juda past to'liqlikka ega bo'lishi mumkin. Aniqlik-to'liqlik (PR) egri chizig'i va resiver ishlash xarakteristikasi (ROC) egri chizig'i ushbu cheklovlarni bartaraf etadi. Keling, har birini ko'rib chiqaylik.

PR egri chizig'i. PR egri chizig'i model aniqlik va to'liqlik o'rtasidagi murosani ko'rsatadi. 5.185.185.18-rasmda ko'rsatilganidek, biz 0 dan 1 gacha bo'lgan turli ehtimollik chegaralari yordamida modelning aniqligini chizib PR egri chizig'ini olamiz. Aniqlik va to'liqlik o'rtasidagi murosani umumlashtirish uchun PR-AUC (aniqlik-to'liqlik egri chizig'i ostidagi maydon) PR egri chizig'i ostidagi maydonni hisoblaydi. Umuman olganda, yuqori PR-AUC aniqroq modelni ko'rsatadi.

ROC egri chizig'i. ROC egri chizig'i haqiqiy musbat darajasi (to'liqlik) va soxta musbat darajasi o'rtasidagi murosalarni ko'rsatadi. PR egri chizig'iga o'xshab, ROC-AUC ROC egri chizig'i ostidagi maydonni hisoblash orqali modelning ish faoliyatini umumlashtiradi.

ROC va PR egri chiziqlari klassifikatsiya modelining ish faoliyatini umumlashtirashning ikki xil usuli. PR egri chizig'i va ROC egri chizig'i o'rtasidagi farqlarni bilish uchun [18] ni o'qing.

Bizning holatimizda biz oflayn metrikalar sifatida ham ROC-AUC, ham PR-AUC dan foydalanamiz.

Onlayn metrikalar

Platforma qanchalik xavfsiz ekanini aks ettirish uchun bir nechta muhim metrikalarni ko'rib chiqaylik.

Tarqalish darajasi. Bu metrika biz oldini ola olmagan zararli postlar va platformadagi barcha postlar nisbatini o'lchaydi.

Bu metrikaning kamchiligi — zararli postlarni bir xil ko'rishi. Masalan, 100 K100 \mathrm{~K}100 K ko'rinish yoki taassurotga ega bitta zararli post, har biri 10 ko'rinishga ega ikkita postdan ko'ra ko'proq zararli.

Zararli taassurotlar. Biz tarqalish darajasidan ko'ra bu metrikani afzal ko'ramiz. Sababi — platformadagi zararli postlar soni ushbu postlardan necha kishi ta'sirlangani haqida ma'lumot bermaydi, zararli taassurotlar soni esa bu ma'lumotni aks ettiradi.

To'g'ri shikoyat arizalari. Zararli deb topilgan, lekin shikoyat arizasi tuzib o'zgartirtirilgan postlarning foizi.

Proaktiv darajasi. Foydalanuvchilar xabar qilishdan oldin tizim tomonidan topilgan va o'chirilgan zararli postlarning foizi.

Har bir zararli sinf uchun foydalanuvchi xabarlari. Bu metrika har bir zararli sinf uchun foydalanuvchi xabarlariga qarab tizim ish faoliyatini o'lchaydi.

Xizmat Ko'rsatish

5.19-rasm yuqori darajali ML tizimi dizaynini ko'rsatadi. Keling, har bir komponentga yaqinroq nazar tashlaymiz.

Zararli kontent aniqlash xizmati

Yangi postni hisobga olgan holda, bu xizmat zarar ehtimolligini bashorat qiladi. Talablarga ko'ra, ba'zi zarar turlari sezgirligi tufayli darhol ko'rib chiqilishi kerak. Bu sodir bo'lganda, qoidabuzarlik ta'mirlash xizmati postni darhol olib tashlaydi.

Qoidabuzarlik ta'mirlash xizmati

Zararli kontent aniqlash xizmati zararni yuqori ishonch bilan bashorat qilsa, qoidabuzarlik ta'mirlash xizmati postni darhol olib tashlaydi. Shuningdek, postni nima uchun olib tashlangani haqida foydalanuvchiga xabar beradi.

Pasaytirish xizmati

Agar zararli kontent aniqlash xizmati zararni past ishonch bilan bashorat qilsa, pasaytirish xizmati foydalanuvchilar orasida tarqalish ehtimolini kamaytirish uchun postni vaqtinchalik pasaytiradi.

Keyin post odamlar tomonidan qo'lda ko'rib chiqish uchun xotirada saqlanadi. Ko'rib chiqish jamoasi postni qo'lda ko'rib chiqadi va uni zarar sinflaridan biri bilan yorliq qo'yadi. Biz ushbu yorliqli postlarni modelni yaxshilash uchun kelajakdagi o'quv iteratsiyalarida ishlatiamiz.

Boshqa Muhokama Mavzulari

  • Inson yorliq qo'yish tomonidan kiritilgan tarafkashliklarni boshqarish [19].
  • Tizimni dolzarb zararli sinflarni (masalan, Covid-19, saylovlar) aniqlashga moslash [20].
  • Foydalanuvchilarning harakatlar ketma-ketligi kabi vaqtinchalik ma'lumotdan foydalanadigan zararli kontent aniqlash tizimini qanday qurishni muhokama qilish [21][22].
  • Inson ko'rib chiqish uchun post namunalarini qanday samarali tanlash [23].
  • Haqiqiy va soxta hisoblarni qanday aniqlash [24].
  • Chegaraviy kontentni [25] qanday boshqarish, ya'ni qo'llanmalar tomonidan taqiqlangan emas, lekin ushbu siyosatlar belgilagan qizil chiziqqa yaqin kontent turlarini.
  • Zararli kontent aniqlash tizimini qanday samarali qilib, qurilmada joylashtirish mumkin [26].
  • Transformer asosidagi arxitekturalarni chiziqli Transformerlar bilan qanday almashtirish mumkinligi va samaraliroq tizim yaratish [27] [28].

Manbalar

  1. Facebook's inauthentic behavior. https://transparency.fb.com/policies/community-standards/inauthentic-behavior/.
  2. LinkedIn's professional community policies. https://www.linkedin.com/legal/professional-community-policies.
  3. Twitter's civic integrity policy. https://help.twitter.com/en/rules-and-policies/election-integrity-policy.
  4. Facebook's integrity survey. https://arxiv.org/pdf/2009.10311.pdf.
  5. Pinterest's violation detection system. https://medium.com/pinterest-engineering/how-pinterest-fights-misinformation-hate-speech-and-self-harm-content-with-machine-learning-1806b73b40ef.
  6. Abusive detection at LinkedIn. https://engineering.linkedin.com/blog/2019/isolation-forest.
  7. WPIE method. https://ai.facebook.com/blog/community-standards-report/.
  8. BERT paper. https://arxiv.org/pdf/1810.04805.pdf.
  9. Multilingual DistilBERT. https://huggingface.co/distilbert-base-multilingual-cased.
  10. Multilingual language models. https://arxiv.org/pdf/2107.00676.pdf.
  11. CLIP model. https://openai.com/blog/clip/.
  12. SimCLR paper. https://arxiv.org/pdf/2002.05709.pdf.
  13. VideoMoCo paper. https://arxiv.org/pdf/2103.05905.pdf.
  14. Hyperparameter tuning. https://cloud.google.com/ai-platform/training/docs/hyperparameter-tuning-overview.
  15. Overfitting. https://en.wikipedia.org/wiki/Overfitting.
  16. Focal loss. https://amaarora.github.io/posts/2020-06-29-FocalLoss.html.
  17. Gradient blending in multimodal systems. https://arxiv.org/pdf/1905.12681.pdf.
  18. ROC curve vs precision-recall curve. https://machinelearningmastery.com/roc-curves-and-precision-recall-curves-for-classification-in-python/.
  19. Introduced bias by human labeling. https://labelyourdata.com/articles/bias-in-machine-learning.
  20. Facebook's approach to quickly tackling trending harmful content. https://ai.facebook.com/blog/harmful-content-can-evolve-quickly-our-new-ai-system-adapts-to-tackle-it/.
  21. Facebook's TIES approach. https://arxiv.org/pdf/2002.07917.pdf.
  22. Temporal interaction embedding. https://www.facebook.com/atscaleevents/videos/730968530723238/.
  23. Building and scaling human review system. https://www.facebook.com/atscaleevents/videos/1201751883328695/.
  24. Abusive account detection framework. https://www.youtube.com/watch?v=YeX4MdU0JNk.
  25. Borderline contents. https://transparency.fb.com/features/approach-to-ranking/content-distribution-guidelines/content-borderline-to-the-community-standards/.
  26. Efficient harmful content detection. https://about.fb.com/news/2021/12/metas-new-ai-system-tackles-harmful-content/.
  27. Linear Transformer paper. https://arxiv.org/pdf/2006.04768.pdf.
  28. Efficient AI models to detect hate speech. https://ai.facebook.com/blog/how-facebook-uses-super-efficient-ai-models-to-detect-hate-speech/.
Bob 6

Video Tavsiya Tizimi

~21 daq o'qish

Video Tavsiya Tizimi

Tavsiya tizimlari video va musiqa oqim xizmatlarida muhim rol o'ynaydi. Masalan, YouTube foydalanuvchi yoqtirishi mumkin bo'lgan videolarni tavsiya qiladi, Netflix foydalanuvchi tomosha qilishdan zavqlanishi mumkin bo'lgan filmlarni tavsiya qiladi va Spotify foydalanuvchilarga musiqa tavsiya qiladi.

Ushbu bobda biz YouTube ga o'xshash [1] video tavsiya tizimini loyihalaymiz. Tizim foydalanuvchining profili, oldingi muloqotlari va h.k. asosida foydalanuvchining bosh sahifasida videolarni tavsiya qiladi.

Tavsiya tizimlari ko'pincha dizayni jihatidan juda murakkab va samarali va kengaytiriladigan tizimni ishlab chiqish uchun ko'p muhandislik mehnat talab qilinadi. Tashvishlanmang; hech kim 45 daqiqalik suhbatda mukammal tizim qurishingizni kutmaydi. Suhbatdosh asosan fikrlash jarayoningizni, muloqot ko'nikmalaringizni, ML tizimlarini loyihalash qobiliyatingizni va murosalarni muhokama qilish qobiliyatingizni kuzatishga qiziqadi.

Talablarni Aniqlashtirish

Quyida nomzod va suhbatdosh o'rtasidagi odatiy muloqot keltirilgan.

Nomzod: Video tavsiya tizimini qurish biznes maqsadi foydalanuvchi ishtiroqini oshirish deb faraz qilsam bo'ladimi? Suhbatdosh: Ha, to'g'ri.

Nomzod: Tizim foydalanuvchi hozir tomosha qilayotgan videoga o'xshash videolarni tavsiya qiladimi? Yoki foydalanuvchining bosh sahifasida shaxsiylashtirilgan videolar ro'yxatini ko'rsatadimi? Suhbatdosh: Bu bosh sahifa video tavsiya tizimi bo'lib, foydalanuvchilar bosh sahifani yuklaganida ularga shaxsiylashtirilgan videolarni tavsiya qiladi.

Nomzod: YouTube global xizmat bo'lganligi sababli, foydalanuvchilar butun dunyoda joylashgan va videolar turli tillarda deb faraz qilsam bo'ladimi? Suhbatdosh: Bu asosli taxmin.

Nomzod: Ma'lumotlar to'plamini video kontent bilan foydalanuvchi muloqotlariga asoslanib yaratishimiz mumkin deb faraz qilsam bo'ladimi? Suhbatdosh: Ha, bu yaxshi bo'ladi.

Nomzod: Foydalanuvchi pleylistlar yaratib videolarni guruhlashi mumkinmi? Pleylistlar o'quv bosqichida ML model uchun ma'lumotli bo'lishi mumkin. Suhbatdosh: Soddalik uchun, pleylist xususiyati mavjud emas deb faraz qilaylik.

Nomzod: Platformada nechta video mavjud? Suhbatdosh: Bizda taxminan 10 milliard video bor.

Nomzod: Tizim foydalanuvchiga videolarni qanchalik tezda tavsiya qilishi kerak? Tavsiya 200 millisekunddan oshmasligi kerak deb faraz qilsam bo'ladimi? Suhbatdosh: Bu yaxshi bo'ladi.

Muammoni qisqacha bayonlaymiz. Bizdan bosh sahifa video tavsiya tizimini loyihalash so'ralmoqda. Biznes maqsadi foydalanuvchi ishtiroqini oshirish. Har safar foydalanuvchi bosh sahifani yuklaganida, tizim eng jozibali videolarni tavsiya qiladi. Foydalanuvchilar butun dunyoda joylashgan va videolar turli tillarda bo'lishi mumkin. Platformada taxminan 10 milliard video mavjud va tavsiyalar tezda xizmat ko'rsatilishi kerak.

Muammoni ML Vazifasi Sifatida Belgilash

ML maqsadini aniqlash

Tizimning biznes maqsadi foydalanuvchi ishtiroqini oshirish. Biznes maqsadlarini aniq belgilangan ML maqsadlariga o'girish uchun bir nechta variant mavjud. Biz ulardan ba'zilarini ko'rib chiqamiz va ularning murosalarini muhokama qilamiz.

Foydalanuvchi bosimlari sonini maksimallashtirish. Video tavsiya tizimi foydalanuvchi bosimlari sonini maksimallashtirish uchun loyihalanishi mumkin. Biroq bu maqsadning bitta asosiy kamchiligi bor. Model sarlavha va muqova tasviri jozibali ko'ringan, lekin video kontenti zerikarli, nomuofiq yoki hatto chalg'ituvchi bo'lishi mumkin bo'lgan "clickbait" videolarni tavsiya qilishi mumkin. Clickbait videolar vaqt o'tishi bilan foydalanuvchi qoniqishi va ishtiroqini kamaytiradi.

Tugallangan videolar sonini maksimallashtirish. Tizim foydalanuvchilar oxirigacha ko'rishi mumkin bo'lgan videolarni tavsiya qilishi ham mumkin. Bu maqsadning asosiy muammosi — model tezroq ko'rish uchun qisqaroq videolarni tavsiya qilishi mumkin.

Umumiy tomosha vaqtini maksimallashtirish. Bu maqsad foydalanuvchilar ko'proq vaqt sarflab tomosha qiladigan tavsiyalarni yaratadi.

Dolzarb videolar sonini maksimallashtirish. Bu maqsad foydalanuvchilar uchun dolzarb bo'lgan tavsiyalarni yaratadi. Muhandislar yoki mahsulot menejerlari dolzarblikni ba'zi qoidalar asosida belgilashlari mumkin. Bunday qoidalar yashirin va aniq foydalanuvchi reaktsiyalariga asoslanishi mumkin. Masalan, bitta ta'rif foydalanuvchi aniq "layk" tugmasini bosgan yoki uning kamida yarmini ko'rgan bo'lsa, video dolzarb deyilishi mumkin deb belgilashi mumkin. Dolzarblikni belgilaganidan so'ng biz ma'lumotlar to'plamini yaratib, foydalanuvchi va video o'rtasidagi dolzarblik ko'rsatkichini bashorat qilish uchun model o'qitishimiz mumkin.

Ushbu tizimda biz qaysi signallardan foydalanishimiz ustidan ko'proq nazoratimiz bo'lgani sababli yakuniy maqsadni ML maqsadi sifatida tanlaymiz. Bundan tashqari, ilgari ta'riflangan boshqa variantlarning kamchiliklari yo'q.

Tizimning kirish va chiqishini aniqlash

6.2-rasmda ko'rsatilganidek, video tavsiya tizimi foydalanuvchini kirish sifatida qabul qilib, dolzarblik ko'rsatkichlari bo'yicha tartiblangan videolar ro'yxatini chiqaradi.

To'g'ri ML kategoriyasini tanlash

Ushbu bo'limda biz shaxsiylashtirilgan tavsiya tizimlarining uchta keng tarqalgan turini ko'rib chiqamiz.

  • Kontentga asoslangan filtrlash
  • Hamkorlikdagi filtrlash
  • Gibrid filtrlash

Keling, har turni batafsil ko'rib chiqaylik.

Kontentga asoslangan filtrlash

Bu texnika foydalanuvchi o'tmishda dolzarb deb topgan videolarga o'xshash yangi videolarni tavsiya qilish uchun video xususiyatlaridan foydalanadi. Masalan, foydalanuvchi ilgari ko'plab chang'i videolari bilan muloqot qilgan bo'lsa, bu usul ko'proq chang'i videolarini taklif qiladi. 6.46.46.4-rasm misolni ko'rsatadi.

Bu sxemaning tushuntirishi quyidagicha.

  1. A foydalanuvchi o'tmishda X\mathrm{X}X va Y\mathrm{Y}Y videolari bilan muloqot qildi
  2. Z\mathrm{Z}Z videosi X\mathrm{X}X va Y\mathrm{Y}Y videolariga o'xshash
  3. Tizim A\mathrm{A}A foydalanuvchiga Z\mathrm{Z}Z videosini tavsiya qiladi

Kontentga asoslangan filtrlashning afzalliklari va kamchiliklari mavjud.

Afzalliklari:

  • Yangi videolarni tavsiya qilish qobiliyati. Bu usul bilan yangi videolar uchun foydalanuvchi muloqot ma'lumotlarini kutishimiz shart emas. Video profili butunlay uning xususiyatlariga bog'liq.
  • Foydalanuvchilarning noyob qiziqishlarini aniqlash qobiliyati. Buning sababi — biz foydalanuvchilarning oldingi muloqotlariga asoslanib videolarni tavsiya qilamiz.

Kamchiliklari:

  • Foydalanuvchining yangi qiziqishlarini kashf etish qiyin.
  • Usul soha bilimini talab qiladi. Biz ko'pincha video xususiyatlarini qo'lda muhandislik qilishimiz kerak.
Hamkorlikdagi filtrlash (CF)

CF yangi videolarni tavsiya qilish uchun foydalanuvchi-foydalanuvchi o'xshashligidan (foydalanuvchiga asoslangan CF) yoki video-video o'xshashligidan (elementga asoslangan CF) foydalanadi. CF o'xshash foydalanuvchilar o'xshash videolarni yoqtirishadi degan intuitiv g'oyaga asoslanadi. Foydalanuvchiga asoslangan CF misolini 6.5-rasmda ko'rishingiz mumkin.

Sxemani tushuntiraylik. Maqsad A foydalanuvchiga yangi videoni tavsiya qilish.

  1. Oldingi muloqotlarga asoslanib A\mathrm{A}A ga o'xshash foydalanuvchini toping; aytaylik B\mathrm{B}B foydalanuvchi
  2. B foydalanuvchi muloqot qilgan, lekin A foydalanuvchi hali ko'rmagan videoni toping; aytaylik Z\mathrm{Z}Z video
  3. A\mathrm{A}A foydalanuvchiga Z\mathrm{Z}Z videoni tavsiya qiling

Kontentga asoslangan filtrlash va CF filtrlash o'rtasidagi asosiy farq shundaki, CF filtrlash video xususiyatlaridan foydalanmaydi va tavsiyalar berish uchun faqat foydalanuvchilarning tarixiy muloqotlariga tayanadi. Keling, CF filtrlashning afzalliklari va kamchiliklarini ko'rib chiqaylik.

Afzalliklari:

  • Soha bilimi kerak emas. CF video xususiyatlariga tayanmaydi, bu esa videolardan xususiyatlarni muhandislik qilish uchun soha bilimi kerak emasligini anglatadi.
  • Foydalanuvchilarning yangi qiziqish sohalarini kashf etish oson. Tizim o'tmishda o'xshash boshqa foydalanuvchilar bilan muloqot qilgan yangi mavzulardagi videolarni tavsiya qila oladi.
  • Samarali. CF ga asoslangan modellar odatda tezroq va kontentga asoslangan filtrlashdan kamroq hisoblash talab qiladi, chunki ular video xususiyatlariga tayanmaydi.

Kamchiliklari:

  • Sovuq start muammosi. Bu yangi video yoki foydalanuvchi uchun cheklangan ma'lumot mavjud bo'lganida yuz beradi, ya'ni tizim aniq tavsiyalar bera olmaydi. CF yangi foydalanuvchilar yoki videolar uchun tarixiy muloqot ma'lumotlari yo'qligi sababli sovuq start muammosiga duchor bo'ladi. Muloqotlarning yo'qligi CF ni o'xshash foydalanuvchilar yoki videolarni topishiga to'sqinlik qiladi. Keyinroq xizmat ko'rsatish bo'limida tizimimiz sovuq start muammosini qanday hal qilishini muhokama qilamiz.
  • Tor qiziqishlarni boshqarish qiyin. CF maxsus yoki tor qiziqishlarga ega foydalanuvchilarni boshqarishda qiynalib qoladi. CF o'xshash foydalanuvchilarga tayanib tavsiyalar beradi va tor qiziqishlarga ega o'xshash foydalanuvchilarni topish qiyin bo'lishi mumkin.
Contentbased filteringCollaborative filtering
Handle new videos
Discover new interest areas
No domain knowledge necessary
Efficiency

6.1-jadval: Kontentga asoslangan filtrlash va CF taqqoslamasi

Ikki turdagi filtrlashning taqqoslamasi 6.1-jadvalda ko'rsatilgan. Ko'rib turganingizdek, ikkala usul bir-birini to'ldiradi.

Gibrid filtrlash

Gibrid filtrlash ham CF, ham kontentga asoslangan filtrlashdan foydalanadi. 6.6-rasmda ko'rsatilganidek, gibrid filtrlash CF asosidagi va kontentga asoslangan tavsiya tizimlarini ketma-ket yoki parallel holda birlashtiradi. Amalda kompaniyalar odatda ketma-ket gibrid filtrlashdan foydalanadi [2].

Bu yondashuv foydalanuvchining tarixiy muloqotlari va video xususiyatlari: ikkita ma'lumot manbasidan foydalanganligi sababli yaxshiroq tavsiyalarga olib keladi. Video xususiyatlari tizimga foydalanuvchi o'tmishda muloqot qilgan videolarga asoslanib dolzarb videolarni tavsiya qilish imkonini beradi va CF ga asoslangan filtrlash foydalanuvchilarga yangi qiziqish sohalarini kashf etishga yordam beradi.

Qaysi usulni tanlash kerak?

Ko'plab kompaniyalar yaxshiroq tavsiyalar berish uchun gibrid filtrlashdan foydalanadi. Masalan, Google tomonidan nashr etilgan maqola [2] YouTube ning birinchi bosqich (nomzod yaratuvchi) sifatida CF asosidagi modeldan, keyin ikkinchi bosqich sifatida kontentga asoslangan modeldan foydalanib videolarni qanday tavsiya qilishini ta'riflaydi. Gibrid filtrlash afzalliklari tufayli biz ushbu variantni tanlaymiz.

Ma'lumotlarni Tayyorlash

Ma'lumotlar muhandisligi

Quyidagi ma'lumotlar mavjud:

  • Videolar
  • Foydalanuvchilar
  • Foydalanuvchi-video muloqotlari
Videolar

Video ma'lumotlari xom video fayllarini va ularning metama'lumotlarini, masalan video ID, video uzunligi, video sarlavhasi va h.k. o'z ichiga oladi. Ushbu atributlarning ba'zilari video yuklovchilar tomonidan aniq taqdim etiladi, boshqalari esa video uzunligi kabi tizim tomonidan yashirin ravishda aniqlanishi mumkin.

Video IDLengthManual tagsManual titleLikesViewsLanguage
128Dog, FamilyOur lovely dog playing!1385300English
2300Car, OilHow to change your car oil?5250Spanish
33600Ouli, VlogHoneymoon to Bali2200255KArabic

6.2-jadval: Video metama'lumotlari

Foydalanuvchilar

Quyidagi oddiy sxema foydalanuvchi ma'lumotlarini ifodalaydi.

IDUsernameAgeGenderCityCountryLanguageTime zone

6.3-jadval: Foydalanuvchi ma'lumotlari sxemasi

Foydalanuvchi-video muloqotlari

Foydalanuvchi-video muloqot ma'lumotlari layklar, bosishlar, taassurotlar va o'tgan qidiruvlar kabi foydalanuvchilarning videolar bilan turli muloqotlarini o'z ichiga oladi. Muloqotlar joylashuv va vaqt belgisi kabi boshqa kontekstual ma'lumotlar bilan birga qayd etiladi. Quyidagi jadval foydalanuvchi-video muloqotlarining qanday saqlanishini ko'rsatadi.

User IDVideo IDInteraction typeInteraction valueLocation (lat, long)Timestamp
418Like-38.8951
-77.0364
1658451361
218Impression8 seconds38.8951
-77.0364
1658451841
26Watch46 minutes41.9241
-89.0389
1658822820
69Click-22.7531
47.9642
1658832118
9-SearchBasics of clustering22.7531
47.9642
1659259402
86CommentAmazing video. Thanks37.5189
122.6405
1659244197

6.4-jadval: Foydalanuvchi-video muloqot ma'lumotlari

Xususiyatlar muhandisligi

ML tizimi foydalanuvchilar uchun dolzarb videolarni bashorat qilishi kerak. Keling, tizimga asosli bashoratlar qilishda yordam beradigan xususiyatlarni muhandislik qilaylik.

Video xususiyatlari

Ba'zi muhim video xususiyatlari:

  • Video ID
  • Davomiyligi
  • Tili
  • Sarlavhalar va teglar
Video ID

IDlar kategorik ma'lumotlar. Ularni raqamli vektorlar bilan ifodalash uchun embedding qatlamidan foydalanamiz va embedding qatlami model o'quv davomida o'rganiladi.

Davomiyligi

Bu videoning boshidan oxirigacha qancha davom etishini taxminan belgilaydi. Bu ma'lumot muhim, chunki ba'zi foydalanuvchilar qisqaroq videolarni afzal ko'rishi mumkin, boshqalari esa uzunroq videolarni afzal ko'rishi mumkin.

Tili

Videoda qo'llaniladigan til muhim xususiyat. Buning sababi — foydalanuvchilar tabiiy ravishda muayyan tillarni afzal ko'radi. Til kategorik o'zgaruvchi bo'lib, diskret qiymatlarning cheklangan to'plamini qabul qilganligi sababli uni ifodalash uchun embedding qatlamidan foydalanamiz.

Sarlavhalar va teglar

Sarlavhalar va teglar videoni tavsiflab beradi. Ular yuklovchi tomonidan qo'lda taqdim etiladi yoki alohida ML modellari tomonidan yashirin ravishda bashorat qilinadi. Video sarlavhasi va teglari qimmatli bashoratchi vositalar. Masalan, "how to make pizza" sarlavhali video pizza va oshpazlik bilan bog'liq ekanini ko'rsatadi.

Qanday tayyorlash kerak? Teglar uchun ularni xususiyatlar vektorlariga moslashtirish uchun CBOW [3] kabi engil oldindan o'qitilgan modeldan foydalanamiz.

Sarlavha uchun, uni kontekstni hisobga oluvchi so'z embedding modeli, masalan oldindan o'qitilgan BERT [4] yordamida xususiyatlar vektoriga moslashtiramiz.

6.7-rasm video xususiyatlarini tayyorlash umumiy ko'rinishini ko'rsatadi.

Foydalanuvchi xususiyatlari

Biz foydalanuvchi xususiyatlarini quyidagi toifalarga ajratamiz:

  • Foydalanuvchi demografik ma'lumotlari
  • Kontekstual ma'lumot
  • Foydalanuvchining tarixiy muloqotlari
Foydalanuvchi demografik ma'lumotlari

Foydalanuvchi demografik xususiyatlariga umumiy ko'rinish 6.8-rasmda ko'rsatilgan.

Kontekstual ma'lumot

Kontekstual ma'lumotni qamrab olish uchun bir nechta muhim xususiyatlar:

  • Kunning vaqti. Foydalanuvchi turli kunlarda turli videolarni tomosha qilishi mumkin. Masalan, dasturchi kechqurunlari ko'proq ta'limiy videolarni tomosha qilishi mumkin.
  • Qurilma. Mobil qurilmalarda foydalanuvchilar qisqaroq videolarni afzal ko'rishi mumkin.
  • Haftaning kuni. Haftaning kuniga qarab foydalanuvchilar videolar bo'yicha turli afzalliklarga ega bo'lishi mumkin.
Foydalanuvchining tarixiy muloqotlari

Foydalanuvchining tarixiy muloqotlari foydalanuvchi qiziqishlarini tushunishda muhim rol o'ynaydi. Tarixiy muloqotlarga oid bir nechta xususiyatlar:

  • Qidiruv tarixi
  • Layk bosgan videolar
  • Ko'rilgan videolar va taassurotlar

Qidiruv tarixi Nima uchun muhim?

Oldingi qidiruvlar foydalanuvchi o'tmishda nima qidirganini ko'rsatadi va o'tgan xatti-harakatlar ko'pincha kelajakdagi xatti-harakatlarning ko'rsatkichi.

Qanday tayyorlash kerak?

Har bir qidiruv so'rovini embedding vektoriga moslashtirish uchun BERT kabi oldindan o'qitilgan so'z embedding modelidan foydalanamiz. Foydalanuvchining qidiruv tarixi o'zgaruvchan o'lchamli matnli so'rovlar ro'yxati ekanligini e'tiboring. Barcha qidiruv so'rovlarini umumlashtiruvchi belgilangan o'lchamli xususiyatlar vektori yaratish uchun biz so'rov embeddinglarini o'rtalaymiz.

Layk bosgan videolar Nima uchun muhim?

Foydalanuvchi ilgari layk bosgan videolar qaysi turdagi kontentga qiziqishlarini aniqlashda yordam berishi mumkin.

Qanday tayyorlash kerak?

Video IDlari embedding qatlami yordamida embedding vektorlariga moslanadi. Qidiruv tarixiga o'xshab, biz layk bosgan embeddinglarni o'rtalashtirish orqali layk bosgan videolarning belgilangan o'lchamli vektorini olamiz.

Ko'rilgan videolar va taassurotlar "Ko'rilgan videolar" va "taassurotlar" uchun xususiyat muhandisligi jarayoni layk bosgan videolar uchun qilganimizga juda o'xshash. Shuning uchun buni takrorlamaymiz.

6.10-rasm foydalanuvchi-video muloqotlari bilan bog'liq xususiyatlarni umumlashtiradi.

Model Ishlab Chiqish

Ushbu bo'limda biz CF asosidagi yoki kontentga asoslangan tavsiya tizimlarida odatda qo'llaniladigan ikki embedding asosidagi modelni ko'rib chiqamiz:

  • Matritsa faktorizatsiyasi
  • Ikki minorali neyron tarmoq

Matritsa faktorizatsiyasi

Matritsa faktorizatsiyasi modelini tushunish uchun qayta aloqa matritsasi nima ekanligini bilish muhim.

Qayta aloqa matritsasi

Foydalilik matritsasi deb ham ataladi, bu foydalanuvchilarning videolar haqidagi fikrlarini ifodalovchi matritsa. 6.11-rasm ikkilik foydalanuvchi-video qayta aloqa matritsasini ko'rsatadi, unda har bir qator foydalanuvchini, har bir ustun esa videoni ifodalaydi. Matritsa yozuvlari foydalanuvchining fikrlarini 1 = "kuzatilgan" yoki "musbat" sifatida belgilaydi.

Foydalanuvchi tavsiya etilgan videoni qanchalik dolzarb deb hisoblashini qanday aniqlash mumkin? Uchta variant mavjud:

  • Aniq qayta aloqa
  • Yashirin qayta aloqa
  • Aniq va yashirin qayta aloqalar kombinatsiyasi

Aniq qayta aloqa. Qayta aloqa matritsasi layklar va ulashishlar kabi foydalanuvchining video haqidagi fikrini aniq ko'rsatadigan muloqotlarga asoslanib quriladi. Aniq qayta aloqa foydalanuvchilar videoga qiziqishlarini aniq ifodalaganligi sababli foydalanuvchi fikrlarini aniq aks ettiradi. Biroq bu variantning bitta asosiy kamchiligi bor: foydalanuvchilarning kichik bir qismi aniq qayta aloqa berishi sababli matritsa siyrak bo'ladi. Siyraklik ML modellarini o'qitishni qiyinlashtiradi.

Yashirin qayta aloqa. Bu variant foydalanuvchining video haqidagi fikrini yashirin ko'rsatadigan muloqotlardan foydalanadi, masalan "bosishlar" yoki "tomosha vaqti". Yashirin qayta aloqa bilan ko'proq ma'lumot nuqtalari mavjud bo'lib, o'qitishdan so'ng yaxshiroq model yaratiladi. Uning asosiy kamchiligi — foydalanuvchilar fikrlarini to'g'ridan to'g'ri aks ettirmasligi va shovqinli bo'lishi mumkinligi.

Aniq va yashirin qayta aloqalar kombinatsiyasi. Bu variant evristikalar yordamida aniq va yashirin qayta aloqalarni birlashtiradi.

Qayta aloqa matritsasini qurishning eng yaxshi varianti qanday?

Modelning qayta aloqa matritsasi qiymatlarini o'rganishi kerakligi sababli, ilgari tanlagan ML maqsadiga yaxshi mos keladigan matritsani qurish muhim.

Bizning holatimizda ML maqsadi dolzarblikni maksimallashtirish bo'lib, dolzarblik aniq va yashirin qayta aloqalar kombinatsiyasi sifatida ta'riflanadi. Shu sababli aniq va yashirin qayta aloqalarni birlashtiruvchi yakuniy variant eng yaxshi tanlov.

Matritsa faktorizatsiyasi modeli

Matritsa faktorizatsiyasi — oddiy embedding modeli. Algoritm foydalanuvchi-video qayta aloqa matritsasini ikkita pastki o'lchamli matritsalar ko'paytmasiga ajratadi. Bitta pastki o'lchamli matritsa foydalanuvchi embeddinglarini, boshqasi esa video embeddinglarini ifodalaydi. Boshqacha aytganda, model har bir foydalanuvchini embedding vektoriga va har bir videoni embedding vektoriga moslashtiradi, shunda ularning masofasi dolzarbligini ifodalaydi. 6.126.126.12-rasm qayta aloqa matritsasining foydalanuvchi va video embeddinglarga qanday ajratilishini ko'rsatadi.

Matritsa faktorizatsiyasini o'qitish

O'quv jarayonida biz foydalanuvchi va video embedding matritsalarini shunday ishlab chiqarishga intilamizki, ularning ko'paytmasi qayta aloqa matritsasini yaxshi taxminlasin (6.13-rasm).

Ushbu embeddinglarni o'rganish uchun matritsa faktorizatsiyasi avval ikkita embedding matritsasini tasodifiy ishga tushiradi, so'ngra "Bashorat qilingan ko'rsatkichlar matritsasi" va "Qayta aloqa matritsasi" o'rtasidagi yo'qotishni kamaytirishga qadar embeddinglarni iterativ tarzda optimallashtiradi. Yo'qotish funksiyasini tanlash muhim masala. Keling, bir nechta variantni ko'rib chiqaylik:

  • Kuzatilgan ⟨\langle⟨ foydalanuvchi, video ⟩\rangle⟩ juftlar bo'yicha kvadrat masofa
  • Kuzatilgan va kuzatilmagan juftlar bo'yicha kvadrat masofaning og'irlikli kombinatsiyasi

Kuzatilgan ⟨\langle⟨ foydalanuvchi, video ⟩\rangle⟩ juftlar bo'yicha kvadrat masofa Bu yo'qotish funksiyasi qayta aloqa matritsasidagi barcha kuzatilgan (nol bo'lmagan qiymatli) yozuvlar juftlari bo'yicha kvadrat masofalar yig'indisini o'lchaydi. Bu 6.14-rasmda ko'rsatilgan.

AijA_{i j}Aij​ qayta aloqa matritsasidagi iii qatori va jjj ustunidagi yozuvni, UiU_iUi​ i,Vji, V_ji,Vj​ foydalanuvchi i ning embeddingini, jjj videoning embeddingini ifodalaydi va yig'indi faqat kuzatilgan juftlar ustidan amalga oshiriladi.

Faqat kuzatilgan juftlar ustidan yig'indi qilish yomon embeddinglarga olib keladi, chunki yo'qotish funksiyasi kuzatilmagan juftlar uchun yomon bashoratlar uchun modelni jazalamaydi. Masalan, hammasi birdan iborat embedding matritsalari o'quv ma'lumotlarida nol yo'qotishga ega bo'lar edi. Biroq ushbu embeddinglаr ko'rilmagan ⟨\langle⟨ foydalanuvchi, video ⟩\rangle⟩ juftlari uchun yaxshi ishlamasligi mumkin.

Ham kuzatilgan, ham kuzatilmagan ⟨\langle⟨ foydalanuvchi, video ⟩\rangle⟩ juftlar bo'yicha kvadrat masofa Bu yo'qotish funksiyasi kuzatilmagan juftlarni salbiy ma'lumot nuqtalari sifatida ko'rib, ularga qayta aloqa matritsasida nol tayinlaydi. 6.15-rasmda ko'rsatilganidek, yo'qotish qayta aloqa matritsasidagi barcha yozuvlar bo'yicha kvadrat masofalar yig'indisini hisoblaydi.

Bu yo'qotish funksiyasi kuzatilmagan yozuvlar uchun yomon bashoratlarni jazalash orqali oldingi muammoni hal etadi. Biroq bu yo'qotishning asosiy kamchiligi bor. Qayta aloqa matritsasi odatda siyrak (ko'plab kuzatilmagan juftlar), shuning uchun o'quv jarayonida kuzatilmagan juftlar kuzatilganlarni ustun qiladi. Bu natijada bashoratlar asosan nolga yaqin bo'lishiga olib keladi. Bu istalmagandir va ko'rilmagan ⟨\langle⟨ foydalanuvchi, video ⟩\rangle⟩ juftlarida yomon umumlashish ko'rsatkichiga olib keladi.

Kuzatilgan va kuzatilmagan juftlar bo'yicha kvadrat masofaning og'irlikli kombinatsiyasi Ilgari ta'riflangan yo'qotish funksiyalarining kamchiliklarini bartaraf etish uchun biz ikkalasining og'irlikli kombinatsiyasini tanlaymiz.

Yo'qotish formulasidagi birinchi yig'indi kuzatilgan juftlar bo'yicha yo'qotishni hisoblaydi, ikkinchi yig'indi esa kuzatilmagan juftlar bo'yicha yo'qotishni hisoblaydi. WWW — ikkita yig'indini vaznlashtiradigan giperpareametr. U o'quv bosqichida birining ikkinchisini ustun qilmasligini ta'minlaydi. Ushbu yo'qotish funksiyasi to'g'ri sozlangan WWW bilan amalda yaxshi ishlaydi [5]. Biz tizim uchun ushbu yo'qotish funksiyasini tanlaymiz.

Matritsa faktorizatsiyasini optimallashtirish

ML modelini o'qitish uchun optimallashtirish algoritmi kerak. Matritsa faktorizatsiyasida keng qo'llaniladigan ikki optimallashtirish algoritmi:

  • Stoxastik Gradient Pasqarish (SGD): Yo'qotishlarni minimallashtirishda ishlatiladigan ushbu optimallashtirish algoritmi [6].
  • Og'irlikli Almashtirib Eng Kichik Kvadratlar (WALS): Bu optimallashtirish algoritmi matritsa faktorizatsiyasiga xos. WALS jarayoni: Bitta embedding matritsasini (U) belgilang va boshqa embeddingni (V) optimallashtiring Boshqa embedding matritsasini (V) belgilang va embedding matritsasini (U) optimallashtiring Takrorlang. WALS odatda tezroq yaqinlashadi va parallellashtirilishi mumkin. WALS haqida ko'proq bilish uchun [7] ni o'qing. Bu yerda biz tezroq yaqinlashganligi uchun WALS dan foydalanamiz.
Matritsa faktorizatsiyasi xulosasi

Ixtiyoriy foydalanuvchi va nomzod video o'rtasidagi dolzarblikni bashorat qilish uchun biz nuqta ko'paytmasi kabi o'xshashlik o'lchovi yordamida ularning embeddinglari o'rtasidagi o'xshashlikni hisoblaymiz. Masalan, 6.17-rasmda ko'rsatilganidek, 2-foydalanuvchi va 5-video o'rtasidagi dolzarblik ko'rsatkichi 0.320.320.32.

6.18-rasm barcha ⟨\langle⟨ foydalanuvchi, video ⟩\rangle⟩ juftlari uchun bashorat qilingan ko'rsatkichlarni ko'rsatadi. Tizim dolzarblik ko'rsatkichlariga asoslanib tavsiya etilgan videolarni qaytaradi.

Matritsa faktorizatsiyasini yakunlashdan oldin, ushbu modelning afzalliklari va kamchiliklarini muhokama qilaylik.

Afzalliklari:

  • O'quv tezligi: Matritsa faktorizatsiyasi o'quv bosqichida samarali. Buning sababi — o'rganish uchun faqat ikkita embedding matritsasi mavjud.
  • Xizmat ko'rsatish tezligi: Matritsa faktorizatsiyasi xizmat ko'rsatish vaqtida tez. O'rganilgan embeddinglаr statik bo'lib, bir marta o'rgangach, so'rov vaqtida kirishni o'zgartirmasdan qayta ishlata olamiz.

Kamchiliklari:

  • Matritsa faktorizatsiyasi faqat foydalanuvchi-video muloqotlariga tayanadi. U foydalanuvchining yoshi yoki tili kabi boshqa xususiyatlardan foydalanmaydi. Bu modelning bashorat qilish qobiliyatini cheklaydi, chunki til kabi xususiyatlar tavsiyalar sifatini yaxshilash uchun foydali.
  • Yangi foydalanuvchilarni boshqarish qiyin. Yangi foydalanuvchilar uchun model mazmunli embeddinglar yaratish uchun yetarli muloqot yo'q. Shuning uchun matritsa faktorizatsiyasi ularning embeddinglari nuqta ko'paytmasini hisoblash orqali video foydalanuvchi uchun dolzarb yoki yo'qligini aniqlay olmaydi.

Keling, ikki minorali neyron tarmoqlar matritsa faktorizatsiyasining kamchiliklarini qanday hal qilishini ko'raylik.

Ikki minorali neyron tarmoq

Ikki minorali neyron tarmoq ikkita encoder minoradan iborat: foydalanuvchi minorasi va video minorasi. Foydalanuvchi encoderi foydalanuvchi xususiyatlarini kirish sifatida qabul qilib, ularni embedding vektoriga (foydalanuvchi embeddigi) moslаshtiradi. Video encoderi video xususiyatlarini kirish sifatida qabul qilib, ularni embedding vektoriga (video embeddigi) moslаshtiradi. Umumiy embedding fazosidagi ularning embeddinglari o'rtasidagi masofa dolzarbligini ifodalaydi.

6.19-rasm ikki minorali arxitekturani ko'rsatadi. Matritsa faktorizatsiyasidan farqli o'laroq, ikki minorali arxitekturalar foydalanuvchining muayyan qiziqishlarini yaxshiroq aniqlash uchun barcha turdagi xususiyatlarni kiritish uchun yetarli moslashuvchan.

Ma'lumotlar to'plamini yaratish

Biz ma'lumotlar to'plamini turli ⟨\langle⟨ foydalanuvchi, video ⟩\rangle⟩ juftlaridan xususiyatlarni ajratib, ularni foydalanuvchining qayta aloqasiga asoslanib musbat yoki manfiy sifatida yorliq qo'yish orqali yaratamiz. Masalan, foydalanuvchi videoga aniq layk bosgan yoki uning kamida yarmini ko'rgan bo'lsa, jufti "musbat" sifatida yorliqlaymiz.

Manfiy ma'lumot nuqtalarini yaratish uchun dolzarb bo'lmagan tasodifiy videolarni yoki foydalanuvchi yoqtirmaslik tugmasini bosish orqali aniq yoqtirmagan videolarni tanlashimiz mumkin. 6.20-rasm yaratilgan ma'lumot nuqtalariga misolni ko'rsatadi.

E'tiboring, foydalanuvchilar odatda faqat kichik bir qismini dolzarb deb topadi. O'quv ma'lumotlarini yaratishda bu musbat juftlardan ko'ra ancha ko'proq manfiy juftlar bo'lgan notekis ma'lumotlar to'plamiga olib keladi. Notekis ma'lumotlar to'plamida modelni o'qitish muammoli. Ma'lumotlar notekisligi muammosini hal qilish uchun 1-bobda, Kirish va Umumiy Ko'rinishda ta'riflangan texnikalardan foydalanishimiz mumkin.

Yo'qotish funksiyasini tanlash

Ikki minorali neyron tarmoq ikkilik yorliqlarni bashorat qilish uchun o'qitilganligi sababli, muammo klassifikatsiya vazifasi sifatida ko'rib chiqilishi mumkin. Biz o'quv jarayonida encodelarni optimallashtirish uchun kross-entropiya kabi odatiy klassifikatsiya yo'qotish funksiyasidan foydalanamiz. Bu jarayon 6.21-rasmda ko'rsatilgan

Ikki minorali neyron tarmoq xulosasi

Xulosa vaqtida tizim ma'lum bir foydalanuvchi uchun eng dolzarb videolarni topish uchun embeddinglardan foydalanadi. Bu klassik "eng yaqin qo'shni" muammosi. Ushbu jarayonni samarali bajarish uchun taxminiy eng yaqin qo'shni usullardan foydalanib k\mathrm{k}k ta eng o'xshash video embeddinglarini topamiz.

Ikki minorali neyron tarmoqlar ham kontentga asoslangan filtrlash, ham hamkorlikdagi filtrlash uchun ishlatiladi. Ikki minorali arxitektura hamkorlikdagi filtrlash uchun ishlatilganda, 6.226.226.22-rasmda ko'rsatilganidek, video encoderi video IDni embedding vektoriga o'giruvchi embedding qatlamidan boshqa narsa emas. Shu tarzda model boshqa video xususiyatlariga tayanmaydi.

Keling, ikki minorali neyron tarmoq modelining afzalliklari va kamchiliklarini ko'raylik.

Afzalliklari:

  • Foydalanuvchi xususiyatlaridan foydalanadi. Model foydalanuvchi xususiyatlarini, masalan yosh va jinsni kirish sifatida qabul qiladi. Ushbu bashoratchi xususiyatlar modelga yaxshiroq tavsiyalar berishga yordam beradi.
  • Yangi foydalanuvchilarni boshqaradi. Model foydalanuvchi xususiyatlariga (masalan, yosh, jins va h.k.) tayanadiligi sababli yangi foydalanuvchilarni osonlikcha boshqaradi.

Kamchiliklari:

  • Sekinroq xizmat ko'rsatish. Model so'rov vaqtida foydalanuvchi embeddingini hisoblashi kerak. Bu modelning so'rovlarga xizmat ko'rsatishini sekinlashtiradi. Bundan tashqari, kontentga asoslangan filtrlash uchun modeldan foydalansak, model video xususiyatlarini video embeddingga o'girishi kerak bo'lib, bu inference vaqtini oshiradi.
  • O'qitish qimmatroq. Ikki minorali neyron tarmoqlar matritsa faktorizatsiyasidan ko'proq o'quv parametrlariga ega. Shuning uchun o'qitish hisoblash jihatidan ko'proq talab qiladi.

Matritsa faktorizatsiyasi va ikki minorali neyron tarmoq taqqoslamasi

6.5-jadval matritsa faktorizatsiyasi va ikki minorali neyron tarmoq arxitekturasi o'rtasidagi farqlarni umumlashtiradi.

Matrix factorizationTwo-tower neural network
Training cost✓ More efficient to train✘ More costly to train
Inference speed✓ Faster as embeddings are static and can be precomputed✘ User features should be transformed into embeddings at query time
Cold-start problem✘ Cannot handle new users easily✓ Handles new users as it relies on user features
Quality of recommendations✘ Not ideal since the model does not use user/video features✓ Better recommendations since it relies on more features

6.5-jadval: Matritsa faktorizatsiyasi va ikki minorali neyron tarmoqlar taqqoslamasi

Baholash

Tizimning ish faoliyati oflayn va onlayn metrikalar bilan baholanishi mumkin.

Oflayn metrikalar

Tavsiya tizimlarida keng qo'llaniladigan quyidagi oflayn metrikalarni baholaymiz.

Precision@k. Bu metrika top k\mathrm{k}k tavsiya etilgan videolar orasidagi dolzarb videolar nisbatini o'lchaydi. Bir nechta k\mathrm{k}k qiymatlari (masalan, 1,5,101,5,101,5,10) ishlatilishi mumkin.

mAP. Bu metrika tavsiya etilgan videolarning tartiblash sifatini o'lchaydi. Bizning tizimimizda dolzarblik ko'rsatkichlari ikkilik bo'lganligi sababli yaxshi mos keladi.

Xilma-xillik. Bu metrika tavsiya etilgan videolarning bir-biridan qanchalik farq qilishini o'lchaydi. Bu metrika kuzatish muhim, chunki foydalanuvchilar xilma-xil videolarga ko'proq qiziqadi. Xilma-xillikni o'lchash uchun ro'yxatdagi videolar o'rtasidagi o'rtacha juftlar bo'yicha o'xshashlikni (masalan, kosinus o'xshashligini yoki nuqta ko'paytmasini) hisoblaymiz. Past o'rtacha juftlar bo'yicha o'xshashlik ko'rsatkichi ro'yxatning xilma-xil ekanligini ko'rsatadi.

Xilma-xillikni sifatning yagona o'lchovi sifatida ishlatish yanglish talqinlarga olib kelishi mumkinligini e'tiboring. Masalan, tavsiya etilgan videolar xilma-xil bo'lsa-da, foydalanuvchi uchun dolzarb bo'lmasa, tavsiyalar foydali bo'lmasligi mumkin. Shuning uchun biz xilma-xillikni dolzarblik va xilma-xillik ikkalasini ta'minlash uchun boshqa oflayn metrikalar bilan birga ishlatishimiz kerak.

Onlayn metrikalar

Amalda kompaniyalar onlayn baholash davomida ko'plab metrikalarni kuzatadi. Keling, eng muhimlaridan ba'zilarini ko'rib chiqaylik:

  • Click-through rate (CTR)
  • Tugallangan videolar soni
  • Umumiy tomosha vaqti
  • Aniq foydalanuvchi qayta aloqasi

CTR. Bosilgan videolar va tavsiya etilgan videolarning umumiy soni nisbati. Formula:

CTR foydalanuvchi ishtiroqini kuzatish uchun foydali metrika, ammo CTR ning kamchiligi shundaki, biz clickbait videolarni aniqlash yoki o'lcha olmaymiz.

Tugallangan videolar soni. Foydalanuvchilar oxirigacha tomosha qilgan tavsiya etilgan videolarning umumiy soni. Ushbu metrikani kuzatish orqali tizim foydalanuvchilar tomosha qiladigan videolarni qanchalik tez-tez tavsiya qilishini tushunishimiz mumkin.

Umumiy tomosha vaqti. Foydalanuvchilar tavsiya etilgan videolarni tomosha qilishga sarflagan umumiy vaqt. Tavsiyalar foydalanuvchilarga qiziqarli bo'lganida, ular umuman ko'proq vaqt sarflab videolarni tomosha qiladi.

Aniq foydalanuvchi qayta aloqasi. Foydalanuvchilar aniq layk bosgan yoki yoqtirmagan videolarning umumiy soni. Metrika foydalanuvchilarning tavsiya etilgan videolar haqidagi fikrlarini aniq aks ettiradi.

Xizmat Ko'rsatish

Xizmat ko'rsatish vaqtida tizim milliardlab videolar orasidan tanlovni toraytirish orqali ma'lum bir foydalanuvchiga eng dolzarb videolarni tavsiya qiladi. Ushbu bo'limda biz so'rovlarga xizmat ko'rsatishda samarali va aniq bo'lgan bashorat quvurini taklif qilamiz.

Milliardlab videolar mavjudligini hisobga olsak, ko'p xususiyatlarni kirish sifatida qabul qiladigan og'ir modelni tanlasak, xizmat ko'rsatish tezligi sekin bo'ladi. Boshqa tomondan, engil model tanlasak, u yuqori sifatli tavsiyalar bermasligi mumkin. Xo'sh, nima qilish kerak? Tabiiy qaror — ko'p bosqichli dizaynda bir nechta modeldan foydalanish. Masalan, ikki bosqichli dizaynda engil model birinchi bosqichda, nomzodlarni yaratish deb ataladigan jarayonda videolarni tezda toraytiradi. Ikkinchi bosqich videolarni aniq baholab tartiblash uchun og'irroq modeldan foydalanadi, bu tartiblash deb ataladi. 6.236.236.23-rasm nomzodlarni yaratish va tartiblashning dolzarb videolarni yaratish uchun birgalikda qanday ishlashini ko'rsatadi.

Keling, bashorat quvurining komponentlariga yaqinroq nazar tashlaymiz.

  • Nomzodlarni yaratish
  • Tartiblash
  • Qayta tartiblash

Nomzodlarni yaratish

Nomzodlarni yaratish maqsadi potentsial milliardlab videolardan minglab videolarga toraytirish. Bu bosqichda biz aniqlik o'rniga samaradorlikni ustun qo'yamiz va soxta musbatlarga e'tibor bermaymiz.

Nomzodlarni yaratishni tez ushlab turish uchun video xususiyatlariga tayanmaydigan modelni tanlaymiz. Bundan tashqari, bu model yangi foydalanuvchilarni boshqara olishi kerak. Ikki minorali neyron tarmoq ushbu bosqich uchun yaxshi mos keladi.

6.246.246.24-rasm nomzodlarni yaratish ish jarayonini ko'rsatadi. Nomzodlarni yaratish foydalanuvchi encoderdan foydalanuvchi embeddingini oladi. Hisoblash tugagach, taxminiy eng yaqin qo'shni xizmatidan eng o'xshash videolarni oladi. Ushbu videolar embedding fazosidagi o'xshashlikka asoslanib tartiblаnadi va chiqish sifatida qaytariladi.

Amalda kompaniyalar tavsiyalar ko'rsatkichini yaxshilashi mumkin bo'lganligi uchun bir nechta nomzodlar yaratuvchidan foydalanishni afzal ko'rishi mumkin. Keling, nima uchun ekanligiga qaraylik.

Foydalanuvchilar ko'p sabablarga ko'ra videolarni tomosha qilishni tanlashi mumkin. Masalan, foydalanuvchi videoni mashhur, tendentsiyali yoki joylashuviga mos bo'lganligi uchun tomosha qilishni tanlashi mumkin. Ushbu videolarni tavsiyalarga kiritish uchun 6.25-rasmda ko'rsatilganidek, bir nechta nomzodlar yaratuvchidan foydalanish keng tarqalgan.

Potentsial videolarni milliarddan minglab toraytganimizdan so'ng, ularni ko'rsatishdan oldin tartiblash uchun tartiblash komponentidan foydalanishimiz mumkin.

Tartiblash

Tartiblash deb ham ataladigan tartiblash, foydalanuvchi va nomzod videolarni kirish sifatida qabul qilib, har bir videoni baholaydi va tartiblangan videolar ro'yxatini chiqaradi.

Bu bosqichda biz samaradorlik o'rniga aniqlikni ustun qo'yamiz. Buning uchun biz kontentga asoslangan filtrlashni tanlaymiz va video xususiyatlariga tayanadigan modelni tanlaymiz. Ikki minorali neyron tarmoq ushbu bosqich uchun keng qo'llaniladigan tanlov. Tartiblash bosqichida faqat bir nechta video tartiblanganligi sababli ko'proq parametrli og'irroq modeldan foydalanishimiz mumkin. 6.26-rasm tartiblash komponentiga umumiy ko'rinishni ko'rsatadi.

Qayta tartiblash

Bu komponent qo'shimcha mezonlar yoki cheklovlarni qo'shib videolarni qayta tartiblaydi. Masalan, videoni clickbait ekanligini aniqlash uchun alohida ML modellaridan foydalanishimiz mumkin. Qayta tartiblash komponentini qurishda bir nechta muhim narsalar:

  • Mintaqaviy cheklangan videolar
  • Video yangiligi
  • Dezinformatsiyani tarqatadigan videolar
  • Takroriy yoki deyarli takroriy videolar
  • Adolat va tarafkashlik

Video tavsiya tizimlarining muammolari

Ushbu bobni yakunlashdan oldin, keling, bizning dizaynimiz video tavsiya tizimlaridagi odatiy muammolarni qanday hal qilishini ko'raylik.

Xizmat ko'rsatish tezligi

Videolarni tezda tavsiya qilish juda muhim. Biroq ushbu tizimda milliardlab videolar mavjudligi sababli, ularni samarali va aniq tavsiya qilish qiyin. Bu muammoni hal qilish uchun biz ikki bosqichli dizayndan foydalandik.

Xususan, birinchi bosqichda nomzod videolarni milliarddan minglab toraytirish uchun engil modeldan foydalanamiz. YouTube shunga o'xshash yondashuvdan foydalanadi [2] va Instagram ko'p bosqichli dizaynni qabul qiladi [8].

Aniqlik

Aniqlikni ta'minlash uchun video xususiyatlarini ham o'z ichiga olgan ko'proq xususiyatlarga tayanadigan kuchli modeldan foydalanadigan tartiblash komponentini qo'llaymiz. Kuchliroq modeldan foydalanish nomzodlarni yaratish bosqichidan so'ng faqat kichik videolar to'plami tanlanganı uchun xizmat ko'rsatish tezligiga ta'sir qilmaydi.

Xilma-xillik

Ko'pchilik foydalanuvchilar tavsiyalarida xilma-xil videolar ko'rishni afzal ko'radi. Tizimimizning xilma-xil videolar to'plamini yaratishini ta'minlash uchun nomzodlarni yaratish bo'limida ta'riflanganidek, bir nechta nomzodlar yaratuvchilardan foydalanamiz.

Sovuq start muammosi

Tizimimiz sovuq start muammosini qanday hal qiladi?

Yangi foydalanuvchilar uchun: Foydalanuvchilar platformamizni ishlatishni boshlaganida, yangi foydalanuvchilar haqida hech qanday muloqot ma'lumoti yo'q.

Bunday holda bashoratlar yosh, jins, til, joylashuv va h.k. kabi xususiyatlarga asoslanib ikki minorali neyron tarmoqlar yordamida amalga oshiriladi. Tavsiya etilgan videolar yangi foydalanuvchilar uchun ham ma'lum darajada shaxsiylashtirilgan. Foydalanuvchi ko'proq videolar bilan muloqot qilgani sari, yangi muloqotlarga asoslanib yaxshiroq bashoratlar berish mumkin bo'ladi.

Yangi videolar uchun: Yangi video tizimga qo'shilganda, video metama'lumotlari va kontenti mavjud, lekin muloqotlar yo'q. Buni hal qilishning bir usuli — evristikalardan foydalanish. Biz videolarni tasodifiy foydalanuvchilarga ko'rsatib, muloqot ma'lumotlarini yig'ishimiz mumkin. Yetarli muloqotlarni yig'ganimizdan so'ng, yangi muloqotlardan foydalanib ikki minorali neyron tarmoqni fine-tuning qilamiz.

O'quv miqyosliligiy

Katta ma'lumotlar to'plamlarida modellarni iqtisodiy jihatdan o'qitish qiyin. Tavsiya tizimlarida yangi muloqotlar uzluksiz qo'shiladi va modelllar aniq tavsiyalar berish uchun tezda moslashishi kerak. Yangi ma'lumotlarga tezda moslashish uchun modellar fine-tuning qilina olishi kerak.

Bizning holatimizda modellar neyron tarmoqlarga asoslangan va osongina fine-tuning qilinishi uchun mo'ljallangan.

Boshqa Muhokama Mavzulari

Suhbat oxirida vaqt qolsa, quyidagi qo'shimcha muhokama mavzulari mavjud:

  • Tavsiya tizimlarida qidirish-foydalanish murosasi [9].
  • Tavsiya tizimlarida mavjud bo'lishi mumkin bo'lgan turli tarafkashlik turlari [10].
  • Tavsiya tizimlarini qurishda etikaga oid muhim mulohazalar [11].
  • Tavsiya tizimida mavsumiylik ta'sirini ko'rib chiqing — turli mavsumlar davomida foydalanuvchi xatti-harakatlarining o'zgarishi [12].
  • Yagona maqsad o'rniga bir nechta maqsad uchun tizimni optimallashtirish [13].
  • Yoqtirmaslik kabi salbiy qayta aloqadan qanday foydalanish [14].
  • Foydalanuvchining qidiruv tarixi yoki tomosha tarixidagi videolar ketma-ketligidan foydalanish [2].

Manbalar

  1. YouTube recommendation system. https://blog.youtube/inside-youtube/on-youtubes-recommendation-system.
  2. DNN for YouTube recommendation. https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45530.pdf.
  3. CBOW paper. https://arxiv.org/pdf/1301.3781.pdf.
  4. BERT paper. https://arxiv.org/pdf/1810.04805.pdf.
  5. Matrix factorization. https://developers.google.com/machine-learning/recommendation/collaborative/matrix.
  6. Stochastic gradient descent. https://en.wikipedia.org/wiki/Stochastic_gradient_descent.
  7. WALS optimization. https://fairyonice.github.io/Learn-about-collaborative-filtering-and-weighted-alternating-least-square-with-tensorflow.html.
  8. Instagram multi-stage recommendation system. https://ai.facebook.com/blog/powered-by-ai-instagrams-explore-recommender-system/.
  9. Exploration and exploitation trade-offs. https://en.wikipedia.org/wiki/Multi-armed_bandit.
  10. Bias in AI and recommendation systems. https://www.searchenginejournal.com/biases-search-recommender-systems/339319/#close.
  11. Ethical concerns in recommendation systems. https://link.springer.com/article/10.1007/s00146-020-00950-y.
  12. Seasonality in recommendation systems. https://www.computer.org/csdl/proceedings-article/big-data/2019/09005954/1hJsfgT0qL6.
  13. A multitask ranking system. https://daiwk.github.io/assets/youtube-multitask.pdf.
  14. Benefit from a negative feedback. https://arxiv.org/abs/1607.04228?context=cs.
Bob 7

Tadbir Tavsiya Tizimi

~22 daq o'qish

Tadbir Tavsiya Tizimi

Ushbu bobda biz Eventbrite platformasiga o'xshash tadbir tavsiya tizimini loyihalaymiz. Eventbrite — foydalanuvchilarga tadbirlarni yaratish, ko'rish va ro'yxatdan o'tish imkoniyatini beruvchi mashhur tadbir boshqaruvi va chipta savdosi sayti. Tavsiya tizimi tajribani shaxsiylashtiradi va foydalanuvchilar uchun dolzarb tadbirlarni ko'rsatadi.

Talablarni Aniqlashtirish

Quyida nomzod va suhbatdosh o'rtasidagi odatiy muloqot keltirilgan.

Nomzod: Biznes maqsadi nima? Asosiy biznes maqsad chipta sotishini oshirish deb faraz qilsam bo'ladimi? Suhbatdosh: Ha, bu yaxshi bo'ladi.

Nomzod: Tadbirga qatnashishdan tashqari, foydalanuvchilar platformada mehmonxona yoki restoran bron qilishi mumkinmi?

Suhbatdosh: Soddalik uchun, faqat tadbirlar qo'llab-quvvatlanadi deb faraz qilaylik.

Nomzod: Tadbir bir marta sodir bo'ladigan va keyin tugaydigan o'tib ketuvchi voqea deb hisoblanadi. Bu taxmin to'g'rimi? Suhbatdosh: Bu juda yaxshi kuzatuv.

Nomzod: Qanday tadbir atributlari mavjud? Tadbirning matnli tavsifi, narx oralig'i, joylashuvi, sana va vaqti va h.k. ga kirish imkoniga egamiz deb faraz qilsam bo'ladimi? Suhbatdosh: Albatta, bular asosli taxminlar.

Nomzod: Biron belgilangan ma'lumotlar bormi? Suhbatdosh: Qo'lda yorliq qo'yilgan ma'lumotlar to'plamimiz yo'q. O'quv ma'lumotlar to'plamini yaratish uchun tadbir va foydalanuvchi muloqot ma'lumotlaridan foydalanishingiz mumkin.

Nomzod: Foydalanuvchining joriy joylashuviga kirishimiz bormi? Suhbatdosh: Ha. Ushbu muammo joylashuvga asoslangan tavsiya tizimiga e'tibor qaratganligi sababli, foydalanuvchilar joylashuv ma'lumotlarini ulashishga rozi bo'lgan deb faraz qilaylik.

Nomzod: Foydalanuvchilar platformada do'st bo'lishi mumkinmi? Do'stlik ma'lumotlari shaxsiylashtirilgan tadbir tavsiya tizimini qurishda qimmatli. Suhbatdosh: Yaxshi savol. Ha, foydalanuvchilar platformamizda do'stlik o'rnatishi mumkin deb faraz qilaylik. Do'stlik ikki tomonlama, ya'ni A B ning do'sti bo'lsa, B ham A ning do'sti bo'ladi.

Nomzod: Foydalanuvchilar boshqalarni tadbirlarga taklif qilishi mumkinmi? Suhbatdosh: Ha.

Nomzod: Foydalanuvchi tadbirga RSVP qila oladimi? Suhbatdosh: Soddalik uchun, tadbir uchun faqat ro'yxatdan o'tish varianti mavjud deb faraz qilaylik.

Nomzod: Tadbirlar bepulmi yoki pullikmi? Suhbatdosh: Ikkalasini ham qo'llab-quvvatlash kerak.

Nomzod: Jami qancha foydalanuvchi va tadbir mavjud? Suhbatdosh: Har oyda jami taxminan 1 million tadbir o'tkazamiz.

Nomzod: Kunlik nechta faol foydalanuvchi veb-sayt/ilovaga kiradi? Suhbatdosh: Kuniga bir million noyob foydalanuvchimiz bor deb faraz qiling.

Nomzod: Biz joylashuvga asoslangan tadbir tavsiya tizimini qurayotganimiz sababli ikkita joylashuv o'rtasidagi masofa va sayohat vaqtini samarali hisoblash muhim. Google Maps API yoki boshqa xarita xizmatlari kabi tashqi APIlardan bunday ma'lumotlarni olish uchun foydalanishimiz mumkin deb faraz qilsam bo'ladimi? Suhbatdosh: Yaxshi fikr. Joylashuv ma'lumotlarini olish uchun uchinchi tomon xizmatlaridan foydalanishimiz mumkin deb faraz qiling.

Muammoni qisqacha bayonlaymiz. Bizdan foydalanuvchilarga shaxsiylashtirilgan tadbirlar ro'yxatini ko'rsatadigan tadbir tavsiya tizimini loyihalash so'ralmoqda. Tadbir tugagach, foydalanuvchilar unda ro'yxatdan o'ta olmaydi. Tadbirlarga ro'yxatdan o'tishdan tashqari, foydalanuvchilar boshqalarni tadbirlarga taklif qilishi va do'stlik o'rnatishi mumkin. O'quv ma'lumotlari foydalanuvchi muloqotlaridan onlayn yaratilishi kerak. Ushbu tizimning asosiy maqsadi jami chipta sotishini oshirish.

Muammoni ML Vazifasi Sifatida Belgilash

ML maqsadini aniqlash

Talablarga ko'ra, biznes maqsadi chipta sotishini oshirish. Buni aniq belgilangan ML maqsadiga o'girishning bir usuli — tadbir ro'yxatdan o'tishlar sonini maksimallashtirish.

Tizimning kirish va chiqishini aniqlash

Tizimga kirish — foydalanuvchi, chiqish esa foydalanuvchiga dolzablik bo'yicha tartiblangan top k tadbir.

To'g'ri ML kategoriyasini tanlash

Tavsiya muammosini hal qilishning turli usullari mavjud:

  • Oddiy qoidalar, masalan mashhur tadbirlarni tavsiya qilish
  • Kontentga asoslangan yoki hamkorlikdagi filtrlashga tayanadigan embedding asosidagi modellar
  • Uni tartiblash muammosi sifatida qayta belgilash

Qoidaga asoslangan usullar boshlang'ich nuqtani shakllantirish uchun yaxshi. Biroq ML ga asoslangan yondashuvlar odatda yaxshiroq natijalarga olib keladi. Ushbu bobda biz vazifani tartiblash muammosi sifatida qayta belgilaymiz va uni hal qilish uchun Tartiblashni O'rgatish (LTR) dan foydalanamiz.

LTR — tartiblash muammolarini hal qilish uchun nazorat ostidagi mashina o'qitishini qo'llaydigan algoritmik texnikalar sinfi. Tartiblash muammosi rasmiy ravishda quyidagicha aniqlanishi mumkin: "so'rov va elementlar ro'yxati mavjud bo'lganda, eng dolzarbdan eng kamroq dolzarbga qadar elementlarning optimal tartibi qanday?" Umuman olganda, uchta LTR yondashuvi mavjud: nuqtaviy, juftlikli va ro'yxat bo'yicha. Keling, har birini qisqacha ko'rib chiqaylik. Ushbu yondashuvlarning batafsil tushuntirishi ushbu kitob doirasidan tashqarida. LTR haqida ko'proq bilmoqchi bo'lsangiz, [1] ga murojaat qiling.

Nuqtaviy LTR

Bu yondashuvda biz har bir elementni ko'rib chiqamiz va klassifikatsiya yoki regressiya usullari yordamida so'rov va element o'rtasidagi dolzarblikni bashorat qilamiz. E'tiboring, bitta element ko'rsatkichi boshqa elementlardan mustaqil ravishda bashorat qilinadi.

Yakuniy tartiblash bashorat qilingan dolzarblik ko'rsatkichlarini saralash orqali amalga oshiriladi.

Juftlikli LTR

Bu yondashuvda model ikkita elementni qabul qilib, so'rovga qaysi element ko'proq dolzarb ekanligini bashorat qiladi.

Eng mashhur juftlikli LTR algoritmlaridan ba'zilari: RankNet [2], LambdaRank [3] va LambdaMART [4].

Ro'yxat bo'yicha LTR

Ro'yxat bo'yicha yondashuvlar so'rovni hisobga olgan holda butun elementlar ro'yxatining optimal tartibini bashorat qiladi.

Ba'zi mashhur ro'yxat bo'yicha LTR algoritmlari: SoftRank [5], ListNet [6] va AdaRank [7].

Umuman olganda, juftlikli va ro'yxat bo'yicha yondashuvlar aniqroq natijalar beradi, lekin ularni amalga oshirish va o'qitish qiyinroq. Soddalik uchun, ushbu muammo uchun nuqtaviy yondashuvdan foydalanamiz. Xususan, biz bir vaqtning o'zida bitta tadbirni qabul qilib, foydalanuvchi unda ro'yxatdan o'tish ehtimolini bashorat qiluvchi ikkilik klassifikatsiya modelini qo'llaymiz. Bu yondashuv 7.6-rasmda ko'rsatilgan.

Ma'lumotlarni Tayyorlash

Ma'lumotlar muhandisligi

Yaxshi xususiyatlarni muhandislik qilish uchun avval tizimda mavjud xom ma'lumotlarni tushunishimiz kerak. Tadbir boshqaruvi platformasi asosan foydalanuvchilar va tadbirlar atrofida markazlashganligi sababli, quyidagi ma'lumotlar mavjud deb faraz qilamiz:

  • Foydalanuvchilar
  • Tadbirlar
  • Do'stlik
  • Muloqotlar
Foydalanuvchilar

Foydalanuvchi ma'lumotlari sxemasi quyida ko'rsatilgan.

IDUsernameAgeGenderCityCountryLanguageTime zone

7.1-jadval: Foydalanuvchi ma'lumotlari sxemasi

Tadbirlar

7.2-jadval tadbir ma'lumotlari qanday ko'rinishini ko'rsatadi.

IDHost User IDCategory/ SubcategoryDescriptionPriceLocationDate/Time
15Music ConcertDua Lipa Tour in Miami200-900American Airlines Arena Miami, FL09/18/2022 19:00-24:00
211Sports BasketballGolden State Warriors vs. Milwaukee Bucks140-2500Chase Center SF, CA09/22/2022 17:00-19:00
37Art TheaterThe Comedy and Magic of Robert HallFreeSan Jose Improv San Jose, CA09/06/2022 18:00-19:30

7.2-jadval: Tadbir ma'lumotlari

Do'stlik

7.3-jadvalda har bir qator ikkita foydalanuvchi o'rtasida tuzilgan do'stlik va u qachon tuzilgani vaqt belgilagisi bilan birga ko'rsatilgan

User ID 1User ID 2Timestamp when friendship was formed
2831658451341
7391659281720
11251659312942

7.3-jadval: Do'stlik ma'lumotlari

Muloqotlar

7.4-jadval tadbir ro'yxatdan o'tishlari, takliflar va taassurotlar kabi foydalanuvchi muloqot ma'lumotlarini saqlaydi. Amalda muloqot ma'lumotlarini turli ma'lumotlar bazalarida saqlashimiz mumkin, lekin soddalik uchun ularni bitta jadvalda ko'rsatamiz.

User IDEvent IDInteraction typeInteraction valueLocation (lat, long)Timestamp
418Impression-38.8951
-77.0364
1658450539
418RegisterConfirmation number38.8951
-77.0364
1658451341
418InviteUser 941.9241
-89.0389
1658451365

7.4-jadval: Muloqot ma'lumotlari

Xususiyatlar muhandisligi

Tadbir asosidagi tavsiyalar an'anaviy tavsiyalardan ko'ra qiyinroq. Tadbir film yoki kitobdan tubdan farq qiladi, chunki tadbir tugagandan so'ng iste'mol yo'q. Tadbirlar odatda qisqa muddatli bo'lib, tadbir yaratilgandan u tugashigacha bo'lgan vaqt qisqa. Natijada berilgan tadbir uchun ko'p tarixiy muloqotlar mavjud emas. Shu sababli tadbir asosidagi tavsiyalar o'ziga xos sovuq start muammosiga duchor bo'ladi.

Ushbu muammolarni hal etish uchun biz imkon qadar ko'proq mazmunli xususiyatlarni yaratishga ko'proq kuch sarflaymiz. Hajm cheklovlari tufayli eng muhim xususiyatlarning bir qismini muhokama qilamiz. Amalda bashoratchi xususiyatlar soni ancha yuqori bo'lishi mumkin. Bu bo'limda biz quyidagi toifalar uchun xususiyatlar yaratamiz:

  • Joylashuv bilan bog'liq xususiyatlar
  • Vaqt bilan bog'liq xususiyatlar
  • Ijtimoiy bilan bog'liq xususiyatlar
  • Foydalanuvchi bilan bog'liq xususiyatlar
  • Tadbir bilan bog'liq xususiyatlar
Joylashuv bilan bog'liq xususiyatlar

Tadbirning joylashuvi qanchalik qulay?

Tadbirning joylashuvi qanchalik qulay ekanligi muhim omil. Masalan, agar tadbir jamoat transportidan uzoqdagi tepaliklarda bo'lsa, yo'l foydalanuvchilarning kelishiga to'sqinlik qilishi mumkin. Qulaylikni aniqlash uchun quyidagi xususiyatlarni yarataylik:

  • Piyoda yurish ko'rsatkichi: Piyoda yurish ko'rsatkichi 0 dan 100 gacha bo'lgan son bo'lib, yaqin atrofdagi qulayliklar masofasiga asoslanib manzilning piyoda yurishga qanchalik mosligini o'lchaydi. U yaqin atrofdagi qulayliklarigacha masofa, piyoda yurish imkoniyati, aholi zichligi va h.k. kabi turli omillarni tahlil qilish orqali hisoblanadi. Google Maps, Open Street Map va h.k. kabi tashqi ma'lumot manbalaridan piyoda yurish ko'rsatkichlari olinishi mumkin deb faraz qilamiz. 7.57.57.5-jadval piyoda yurish ko'rsatkichlarini 5 toifaga bo'lishni ko'rsatadi.
CategoryWalk scoreDescription
190-100No car needed
270-89Very walkable
350-69Somewhat walkable
425-49Car-dependent
50-24Requires a car

7.5-jadval: Piyoda yurish ko'rsatkichi toifalari

  • Piyoda yurish ko'rsatkichi o'xshashligiy: Tadbirning piyoda yurish ko'rsatkichi va foydalanuvchi ilgari ro'yxatdan o'tgan tadbirlarning o'rtacha piyoda yurish ko'rsatkichi o'rtasidagi farq.
  • Tranzit ko'rsatkichi, tranzit ko'rsatkichi o'xshashligiy, velosiped ko'rsatkichi, velosiped ko'rsatkichi o'xshashligiy.

Tadbir foydalanuvchi bilan bir xil mamlakat va shahar?nimi? Foydalanuvchi uchun juda muhim hal qiluvchi omil — tadbir ular joylashgan mamlakat va shahar ichida ekanligimi. Quyidagi ikkita xususiyat yaratilishi mumkin:

  • Agar foydalanuvchi mamlakatiy tadbir mamlakatiga teng bo'lsa, bu xususiyat 1, aks holda 0
  • Agar foydalanuvchi shahri tadbir shahriga teng bo'lsa, bu xususiyat 1, aks holda 0

Foydalanuvchi masofadan qoniqadimi? Ba'zi foydalanuvchilar joylashuvlariga juda yaqin tadbirlarni afzal ko'rishi mumkin, boshqalari esa uzoqroq tadbirlarni afzal ko'rishi mumkin. Buni aniqlash uchun quyidagi xususiyatlardan foydalanamiz:

  • Foydalanuvchining joylashuvi va tadbir joylashuvi o'rtasidagi masofa. Bu qiymat tashqi APIlardan olinishi va bir nechta toifalarga bo'linishi mumkin. Masalan: 0: bir milya dan kam 1: 1-5 milya 2: 5-20 milya 3: 20-50 milya 4: 50-100 milya 5: 100+ milya
  • Masofa o'xshashligiy: Tadbir masofasi va foydalanuvchi ilgari ro'yxatdan o'tgan tadbirlar o'rtacha masofasi (amalda mediana yoki persentil oralig'idan foydalanish mumkin) o'rtasidagi farq.
Vaqt bilan bog'liq xususiyatlar

Tadbirgacha qolgan vaqt qanchalik qulay? Ba'zi foydalanuvchilar tadbirlarni bir necha kun oldin rejalashtirishi mumkin, boshqalari esa rejalashtirmaydi. Buni aniqlash uchun quyidagi xususiyatlarni yarataylik:

  • Tadbir boshlanishigacha qolgan vaqt. Bu xususiyat turli toifalarga bo'linib bir issiq kodlash bilan ifodalanishi mumkin. Masalan: 0: tadbir boshlanishiga 1 soatdan kam vaqt qoldi 1: 1-2 soat 2: 2-4 soat 3: 4-6 soat 4: 6-12 soat 5: 12-24 soat 6: 1-3 kun 7: 3-7 kun 8: 7+ kun
  • Qolgan vaqt o'xshashligiy: "Qolgan vaqt" va foydalanuvchi ilgari ro'yxatdan o'tgan tadbirlarning o'rtacha "qolgan vaqti" o'rtasidagi farq.
  • Foydalanuvchi joylashuvidan tadbir joylashuvigacha taxminiy sayohat vaqti. Bu qiymat tashqi xizmatlardan olinib toifalarga bo'linadi.
  • Taxminiy sayohat vaqti o'xshashligiy: Ko'rib chiqilayotgan tadbirgacha taxminiy sayohat vaqti va foydalanuvchi ilgari ro'yxatdan o'tgan tadbirlarning o'rtacha taxminiy sayohat vaqti o'rtasidagi farq.

Sana va vaqt foydalanuvchi uchun qulaymi? Ba'zi foydalanuvchilar dam olish kunlarida bo'ladigan tadbirlarni afzal ko'rishi mumkin, boshqalari esa ish kunlarini afzal ko'rishi mumkin. Ba'zi foydalanuvchilar ertalabki tadbirlarni afzal ko'rishi mumkin, boshqalari esa kechqurungi tadbirlarni. Foydalanuvchining haftaning kunlari bo'yicha tarixiy afzalliklarini aniqlash uchun foydalanuvchi profili yaratamiz. Bu foydalanuvchi profili 7 o'lchamli vektor bo'lib, har bir qiymat foydalanuvchi muayyan kunda qatnashgan tadbirlar sonini hisoblaydi. Ushbu qiymatlarni qatnashilgan tadbirlarning umumiy soniga bo'lib, haftaning har bir kuni uchun tadbir qatnashishining tarixiy tezligini olamiz. 7.8-rasm foydalanuvchining avvalgi tadbirlarining kun bo'yicha taqsimotini ko'rsatadi. Ko'rib turganingizdek, ushbu foydalanuvchi hech qachon Dushanba yoki Chorshanba kuni tadbirga kelmagan, shuning uchun Chorshanba kuni bo'ladigan tadbir ko'rsatish bu foydalanuvchi uchun yaxshi tavsiya bo'lmasligi mumkin. Soat bo'yicha foydalanuvchi profillarini shunga o'xshash usulda yaratish mumkin. Xuddi shunday, kun va soat o'xshashliklarini qo'shamiz.

Vaqt bilan bog'liq xususiyatlar xulosasi 7.9-rasmda ko'rsatilgan

Ijtimoiy bilan bog'liq xususiyatlar

Bu tadbirga qancha odam qatnashmoqda? Umuman olganda, foydalanuvchilar ko'proq ishtirokchilar bo'lgan tadbirlarga ro'yxatdan o'tishi ko'proq. Buni aniqlash uchun quyidagi xususiyatlarni ajratamiz:

  • Ushbu tadbirga ro'yxatdan o'tgan foydalanuvchilar soni
  • Ro'yxatdan o'tgan foydalanuvchilarning umumiy soni va taassurotlar soni nisbati
  • Ro'yxatdan o'tgan foydalanuvchilar o'xshashligiy: Ko'rib chiqilayotgan tadbir va avvalgi ro'yxatdan o'tilgan tadbirlar uchun ro'yxatdan o'tgan foydalanuvchilar soni o'rtasidagi farq

Do'stlar qatnashishiga oid xususiyatlar Do'stlari tadbirda qatnashayotgan bo'lsa, foydalanuvchi ro'yxatdan o'tish ehtimoli yuqoriroq. Biz qo'llashimiz mumkin bo'lgan ba'zi xususiyatlar:

  • Bu tadbirga ro'yxatdan o'tgan foydalanuvchining do'stlari soni
  • Ro'yxatdan o'tgan do'stlar va umumiy do'stlar sonining nisbati
  • Ro'yxatdan o'tgan do'stlar o'xshashligiy: Ko'rib chiqilayotgan tadbir va avvalgi ro'yxatdan o'tilgan tadbirlar uchun ro'yxatdan o'tgan do'stlar soni o'rtasidagi farq

Foydalanuvchi boshqalar tomonidan bu tadbirga taklif qilinganmi? Foydalanuvchilar taklif qilingan tadbirlarga ko'proq qatnashadi. Foydali bo'lishi mumkin ba'zi xususiyatlar:

  • Bu foydalanuvchini tadbirga taklif qilgan do'stlar soni
  • Bu shaxsni tadbirga taklif qilgan hamdo'stlar soni

Tadbirning mezboni foydalanuvchining do'stimi? Foydalanuvchilar do'stlari tomonidan yaratilgan tadbirlarga qatnashishga moyil. Buni aks ettirish uchun ikkilik xususiyat yaratamiz: agar tadbirning mezboni foydalanuvchining do'sti bo'lsa, bu qiymat 1, aks holda 0.

Foydalanuvchi ushbu mezbon tomonidan avvalgi tadbirlarning qanchasiga qatnashgan? Ba'zi foydalanuvchilar muayyan mezbon tadbirlarini kuzatishga qiziqadi.

Foydalanuvchi bilan bog'liq xususiyatlar

Yosh va jins Ba'zi tadbirlar muayyan yosh va jinslarga yo'naltirilgan. Masalan, "Women in Tech" va "Life lessons to excel in your 30s" muayyan demografik guruhlar uchun xos bo'lishi mumkin bo'lgan tadbirlar misoli. Buni aniqlash uchun ikkita xususiyat yaratamiz:

  • Foydalanuvchi jinsi, bir issiq kodlash bilan ifodalangan
  • Foydalanuvchi yoshi, bir nechta toifalarga bo'linib bir issiq kodlash bilan ifodalangan
Tadbir bilan bog'liq xususiyatlar

Tadbir narxi: Tadbir narxi foydalanuvchining unda ro'yxatdan o'tish qaroriga ta'sir qilishi mumkin. Foydalanish uchun ba'zi xususiyatlar:

  • Tadbir narxi, bir nechta toifalarga bo'lingan. Masalan: 0: Bepul 1: $1-$99 2: $100-$499 3: $500-$1,999 4: $2,000+
  • Narx o'xshashligiy: Ko'rib chiqilayotgan tadbir narxi va foydalanuvchi avvalgi ro'yxatdan o'tgan tadbirlarning o'rtacha narxi o'rtasidagi farq.

Ushbu tadbirning tavsifi avvalgi ro'yxatdan o'tgan tavsiflar bilan qanchalik o'xshash? Bu foydalanuvchining ilgari ro'yxatdan o'tgan tadbirlar asosidagi qiziqishlarini ko'rsatadi. Masalan, agar "konsert" so'zi oldingi tadbirlar tavsifida takroriy ko'rinsa, foydalanuvchi konsert tadbirlariga qiziqadi degan xulosa chiqarish mumkin. Buni aniqlash uchun biz tadbir tavsifi va foydalanuvchining ilgari ro'yxatdan o'tgan tadbirlar tavsifi o'rtasidagi o'xshashlikni ifodalovchi xususiyat yaratamiz. O'xshashlikni hisoblash uchun tavsif TF-IDF yordamida raqamli vektorga o'giriladi va o'xshashlik kosinus masofasi yordamida hisoblanadi.

E'tiboring, tavsiflar mezbon tomonidan qo'lda taqdim etilgani sababli bu xususiyat shovqinli bo'lishi mumkin. Biz modelimizni ushbu xususiyat bilan va unsiż o'qitishni sinab ko'rib uning ahamiyatini o'lchashimiz mumkin.

7.107.107.10-rasm foydalanuvchi xususiyatlariga, tadbir xususiyatlariga va ijtimoiy bilan bog'liq xususiyatlarga umumiy ko'rinishni ko'rsatadi.

Yuqorida sanab o'tilgan xususiyatlar to'liq emas. Amalda yaratilishi mumkin bo'lgan boshqa ko'plab bashoratchi xususiyatlar mavjud. Masalan, mezbon mashhurligiga oid mezbon bilan bog'liq xususiyatlar, foydalanuvchining qidiruv tarixi, tadbirning toifasi, avtomatik yaratilgan tadbir teglari va h.k. Suhbatda ushbu bo'limni qat'iy kuzatish shart emas. Uni boshlang'ich nuqta sifatida ishlatishingiz va suhbatdosh uchun ko'proq dolzarb mavzularni muhokama qilishingiz mumkin. Quyida siz ishlab chiqmoqchi bo'lgan ba'zi potentsial muhokama mavzulari:

  • Paketli va oqim xususiyatlari: Paketli (statik) xususiyatlar yosh, jins va tadbir tavsifi kabi kamroq o'zgaradigan xususiyatlarni bildiradi. Ushbu xususiyatlar xususiyatlar do'konida saqlanib, davriy ravishda paket qayta ishlash yordamida hisoblanishi mumkin. Aksincha, oqim (dinamik) xususiyatlar tez o'zgaradi. Masalan, tadbir uchun ro'yxatdan o'tgan foydalanuvchilar soni va tadbir boshlanishigacha qolgan vaqt dinamik xususiyatlar. Suhbatdosh sizni bu mavzuni chuqurroq ko'rib chiqishingizni va ML da paketli va onlayn qayta ishlashni muhokama qilishingizni xohlashi mumkin. Ko'proq bilmoqchi bo'lsangiz, [8] ga murojaat qiling.
  • Xususiyat hisoblash samaradorligi. Xususiyatlarni real vaqtda hisoblash samarali emas. Siz ushbu muammoni va undan qochishning mumkin bo'lgan usullarini muhokama qilmoqchi bo'lishingiz mumkin. Masalan, foydalanuvchining joriy joylashuvi va tadbir joylashuvi o'rtasidagi masofani xususiyat sifatida hisoblash o'rniga, ikkalasini modeli uchun ikki alohida xususiyat sifatida uzatishimiz va ikkita joylashuvdan foydali ma'lumotni yashirin ravishda hisoblashni modelga bog'lashimiz mumkin. ML modellari uchun joylashuv ma'lumotlarini qanday tayyorlash haqida ko'proq bilmoqchi bo'lsangiz, [9] ga murojaat qiling
  • Foydalanuvchining oxirgi X ta muloqotiga tayanadigan xususiyatlar uchun tanazzul koeffitsientidan foydalanish. Tanazzul koeffitsienti foydalanuvchining so'nggi muloqotlari/xatti-harakatlariga ko'proq og'irlik beradi.
  • Har bir tadbir va foydalanuvchini embedding vektoriga o'girish uchun embedding o'qitishdan foydalanish. Ushbu embedding vektorlari tadbirlar va foydalanuvchilarni ifodalovchi xususiyatlar sifatida ishlatiladi.
  • Foydalanuvchilar atributlaridan xususiyatlar yaratish tarafkashlik yaratishi mumkin. Masalan, ish uchun murojaatchi yaxshi mos kelishini aniqlash uchun yosh yoki jinsga tayanish kamsitishga olib kelishi mumkin. Biz foydalanuvchilar atributlaridan xususiyatlar yaratganimiz sababli, potentsial tarafkashlik muammolaridan xabardor bo'lish muhim.

Model Ishlab Chiqish

Model tanlash

Ikkilik klassifikatsiya muammolarini turli ML usullari yordamida hal qilish mumkin. Quyidagilarga qaraylik:

  • Logistik regressiya
  • Qaror daraxti
  • Gradient kuchaytirish qaror daraxti (GBDT)
  • Neyron tarmoq
Logistik regressiya (LR)

LR bitta yoki bir nechta xususiyatlarning chiziqli kombinatsiyasidan foydalanib ikkilik natijaning ehtimolligini modellashtiradi. LR tafsilotlari uchun [10] ga murojaat qiling.

Keling, LR ning afzalliklari va kamchiliklarini ko'raylik.

Afzalliklari:

  • Tez inference tezligi. Kirish xususiyatlarining og'irlikli kombinatsiyasini hisoblash tez.
  • Samarali o'qitish. Oddiy arxitektura tufayli uni amalga oshirish, tushuntirish va tezda o'qitish oson.
  • Ma'lumotlar chiziqli ajraladigan bo'lganda yaxshi ishlaydi (7.12-rasm).
  • Talqin qilinishi oson. Har bir xususiyatga tayinlangan og'irliklar turli xususiyatlarning ahamiyatini ko'rsatadi, bu bizga qaror nima uchun qabul qilinganligiga nazar tashlashimizga yordam beradi.

Kamchiliklari:

  • Chiziqli bo'lmagan muammolarni LR yordamida hal qilib bo'lmaydi, chunki u kirish xususiyatlarining chiziqli kombinatsiyasidan foydalanadi.
  • Ko'p koloniyalik ikkita yoki undan ko'p xususiyat yuqori darajada korrelyatsiyalangan bo'lganda yuzaga keladi. LR ning ma'lum cheklovlaridan biri shundaki, kirish xususiyatlarida ko'p koloniyalik mavjud bo'lganda u vazifani yaxshi o'rganolmaydi.

Bizning tizimimizda kirish xususiyatlarining soni juda ko'p bo'lishi mumkin. Ko'pincha ushbu xususiyatlar maqsad o'zgaruvchi (ikkilik natija) bilan murakkab va chiziqli bo'lmagan munosabatlarga ega. Bu murakkablik LR uchun o'rganish qiyin bo'lishi mumkin.

Qaror daraxti

Qaror daraxtlari — bashorat qilish uchun qarorlar va ularning mumkin bo'lgan oqibatlarining daraxtsimon modelini ishlatadigan boshqa o'qitish usullari sinfi. 7.13-rasm ikkita xususiyatga ega oddiy qaror daraxtini ko'rsatadi: yosh va jins. U shuningdek mos qaror chegarasini ko'rsatadi. Qaror daraxti har bir barg tugunida "+" berilgan kirish musbat sifatida, "-" manfiy sifatida tasniflanganligini ko'rsatadigan ikkilik natijani bildiradi. Qaror daraxtlari haqida ko'proq bilmoqchi bo'lsangiz, [11] ga murojaat qiling.

Afzalliklari:

  • Tez o'qitish: Qaror daraxtlarini o'qitish tez.
  • Tez inference: Qaror daraxtlari inference vaqtida bashoratlarni tezda amalga oshiradi.
  • Ma'lumotlarni deyarli tayyorlamaslik: Algoritm kirish xususiyatlari taqsimotiga bog'liq emasligi sababli qaror daraxti modellari ma'lumotlarni normallashtirish yoki masshtablashni talab qilmaydi.
  • Talqin qilinishi oson. Daraxtni vizuallashtirish qaror nima uchun qabul qilinganligiga va muhim qaror omillariga yaxshi nazar tashlash imkonini beradi.

Kamchiliklari:

  • Optimal bo'lmagan qaror chegarasi: qaror daraxti modellari xususiyatlar fazosida o'qlarga parallel qaror chegaralarini ishlab chiqaradi (7.13-rasm). Bu muayyan ma'lumotlar taqsimotlari uchun qaror chegarasini topishning optimal usuli bo'lmasligi mumkin.
  • Ortiqcha o'rganish: Qaror daraxtlari ma'lumotlardagi kichik o'zgarishlarga juda sezgir. Kirish ma'lumotlarining kichik o'zgarishi xizmat ko'rsatish vaqtida boshqa natijalarga olib kelishi mumkin. Xuddi shunday, o'quv ma'lumotlarining kichik o'zgarishi butunlay boshqa daraxt tuzilishiga olib kelishi mumkin. Bu jiddiy muammo va bashoratlarni kamroq ishonchli qiladi.

Amalda ibtidoiy qaror daraxtlari kamdan-kam qo'llaniladi. Buning sababi — ular kirish ma'lumotlari o'zgarishiga juda sezgir. Qaror daraxtlarining sezgirligini kamaytirish uchun ikkita texnika keng qo'llaniladi:

  • Bootstrap yig'ish (Bagging)
  • Kuchaytirish (Boosting)

Bu ikkala texnika texnologiya sanoatida keng qo'llaniladi. Ularning qanday ishlashini tushunish muhim. Keling, batafsil ko'rib chiqaylik.

Bagging

Bagging — bir nechta ML modellarini parallel ravishda o'quv ma'lumotlarining bir nechta to'plamlarida o'qitadigan ensemble o'quv usuli. Bagging da barcha ushbu o'qitilgan modellarning bashoratlarini birlashtirib yakuniy bashorat qilinadi. Bu modelning ma'lumotlar o'zgarishiga (dispersiya) sezgirligini sezilarli darajada kamaytiradi.

Bagging ning misoli — keng qo'llaniladigan "tasodifiy o'rmon" modeli [12]. Tasodifiy o'rmon modelning sezgirligini kamaytirish uchun o'quv jarayonida parallel ravishda bir nechta qaror daraxtlarini quradi. Bashorat qilish uchun har bir qaror daraxti berilgan kirishning chiqish sinfi (musbat yoki manfiy) ni mustaqil ravishda bashorat qiladi, so'ngra ushbu bashoratlarni birlashtirish uchun ovoz berish mexanizmi ishlatiladi. 7.147.147.14-rasm uchta qaror daraxtiga ega tasodifiy o'rmonni ko'rsatadi.

Bagging texnikasining quyidagi afzalliklari bor:

  • Ortiqcha o'rganish (yuqori dispersiya) ta'sirini kamaytiradi.
  • Qaror daraxtlarini parallel ravishda o'qitish mumkinligi sababli o'quv vaqtini sezilarli darajada oshirmaydi.
  • Qaror daraxtlari kirishni parallel ravishda qayta ishlashi mumkinligi sababli inference vaqtida ko'p kechikish qo'shmaydi.

O'z afzalliklariga qaramay, bagging model past moslashuvga duchor bo'lganda (yuqori tarafkashlik) foydali emas. Bagging ning kamchiliklarini hal qilish uchun kuchaytirish deb ataladigan boshqa texnikani ko'rib chiqaylik.

Kuchaytirish

ML da kuchaytirish bashorat xatolarini kamaytirish uchun bir nechta zaif klassifikatorlarni ketma-ket o'qitishni o'z ichiga oladi. "Zaif klassifikator" iborasi tasodifiy taxminlardan biroz yaxshiroq ishlaydigan oddiy klassifikatorni bildiradi. Kuchaytirishda bir nechta zaif klassifikatorlar bitta kuchli o'quv modeliga o'giriladi. 7.157.157.15-rasm kuchaytirish misolini ko'rsatadi.

Afzalliklari:

  • Kuchaytirish tarafkashlik va dispersiyani kamaytiradi. Zaif klassifikatorlarni birlashtirish ma'lumotlar o'zgarishiga kamroq sezgir kuchli modelga olib keladi. Tarafkashlik/dispersiya murosalari haqida ko'proq bilmoqchi bo'lsangiz, [13] ga murojaat qiling. Kamchiliklari:
  • Sekinroq o'quv va inference. Klassifikatorlar oldingi klassifikatorlarning xatolariga asoslanib o'qitilganligi sababli, ular ketma-ket ishlaydi. Bu kuchaytirishning ketma-ket tabiati tufayli xizmat ko'rsatish vaqtini oshiradi.

Kuchaytirish usuli amalda odatda bagging dan afzal ko'riladi, chunki bagging tarafkashlik holatlarida foydali emas, kuchaytirish esa ham tarafkashlik, ham dispersiya ta'sirini kamaytiradi.

Odatiy kuchaytirish asosidagi qaror daraxtlari: Adaboost [14], XGBoost [15] va Gradient boost [16]. Ular klassifikatsiya modellarini o'qitish uchun keng qo'llaniladi.

GBDT

GBDT — qaror daraxtlarini yaxshilash uchun GradientBoost dan foydalanadigan keng qo'llaniladigan daraxt asosidagi model. XGBoost [15] kabi GBDT ning ba'zi variantlari turli ML musobaqalarida [17] kuchli ko'rsatkichlarni namoyish etdi. GBDT haqida ko'proq bilmoqchi bo'lsangiz, [18] [19] ga murojaat qiling.

GBDT modelining afzalliklari va kamchiliklari quyidagilar.

Afzalliklari:

  • Ma'lumotlarni oson tayyorlash: Qaror daraxtlariga o'xshab, ma'lumotlarni tayyorlash talab etilmaydi.
  • Dispersiyani kamaytiradi: GBDT kuchaytirish texnikasidan foydalanganligi sababli dispersiyani kamaytiradi.
  • Tarafkashlikni kamaytiradi: GBDT bir nechta zaif klassifikatorlardan foydalanib oldingi klassifikatorlarning noto'g'ri tasniflangan ma'lumot nuqtalarini iterativ tarzda yaxshilash orqali bashorat xatosini kamaytiradi.
  • Tuzilgan ma'lumotlar bilan yaxshi ishlaydi.

Kamchiliklari:

  • Sozlash uchun ko'p giperpareametrlar, masalan iteratsiyalar soni, daraxt chuqurligi, regularizatsiya parametrlari va h.k.
  • GBDT tasvirlar, videolar, audio va h.k. kabi tuzilmagan ma'lumotlar bilan yaxshi ishlamaydi.
  • Oqim ma'lumotlaridan uzluksiz o'qitish uchun mos emas.

Bizning holatimizda, yaratilgan xususiyatlar tuzilgan ma'lumotlar bo'lgani sababli, GBDT yoki uning XGBoost kabi variantlaridan biri sinab ko'rilishi mumkin.

GBDT ning asosiy kamchiligi — uzluksiz o'qitish uchun mos emasligi. Tadbir tavsiya tizimida yangi ma'lumotlar, masalan so'nggi foydalanuvchi muloqotlari, ro'yxatdan o'tishlar, yangi tadbirlar va hatto yangi foydalanuvchilar uzluksiz tizimga qo'shiladi. Bundan tashqari, foydalanuvchilarning did va qiziqishlari vaqt o'tishi bilan o'zgarishi mumkin. Yaxshi tadbir tavsiya tizimi uchun yangi ma'lumotlarga uzluksiz moslashish juda muhim. Uzluksiz o'qitish imkoniyatisiz GBDTni muntazam ravishda noldan qayta o'qitish juda qimmat. Keyingi qadamda biz ushbu cheklovni bartaraf etuvchi neyron tarmoqlarni ko'rib chiqamiz.

Neyron tarmoq (NN)

Tadbir tavsiya tizimida natija bilan chiziqli korrelyatsiya qilmasligi mumkin bo'lgan ko'p xususiyatlar mavjud. Bu murakkab munosabatlarni o'rganish qiyin. Bundan tashqari, modelni yangi ma'lumotlarga moslashtirishda uzluksiz o'qitish zarur.

NNlar ushbu muammolarni hal qilishda ajoyib. Ular chiziqli bo'lmagan qaror chegaralariga ega murakkab vazifalarni o'rganishga qodir. Bundan tashqari, NN modellari yangi ma'lumotlarda osongina fine-tuning qilinishi mumkin, bu ularni uzluksiz o'qitish uchun ideal qiladi. NNlarning tafsilotlari bilan tanish bo'lmasangiz, [20] ni o'qishingiz tavsiya etiladi.

Keling, afzalliklari va kamchiliklarini ko'raylik.

Afzalliklari

  • Uzluksiz o'qitish: NNlar ma'lumotlardan o'rganish va uzluksiz o'zini yaxshilash uchun mo'ljallangan.
  • Matn, tasvir, video yoki audio kabi tuzilmagan ma'lumotlar bilan yaxshi ishlaydi.
  • Expressiveness: NNlar o'quv parametrlarining ko'p soni tufayli ifodali kuchga ega. Ular juda murakkab vazifalar va chiziqli bo'lmagan qaror chegaralarini o'rganishi mumkin.

Kamchiliklari

  • O'qitish hisoblash jihatidan qimmat.
  • Kirish ma'lumotlari sifati natijaga kuchli ta'sir qiladi: NNlar kirish ma'lumotlariga sezgir. Masalan, agar kirish xususiyatlari juda har xil oraliqda bo'lsa, model o'quv bosqichida sekin yaqinlashishi mumkin. NNlar uchun muhim qadam — normallashtirish, log masshtablash, bir issiq kodlash va h.k. kabi ma'lumotlarni tayyorlash.
  • NNlarni o'qitish uchun katta o'quv ma'lumotlari kerak.
  • Qora quti tabiyati: NNlar talqin qilinmaydigan, ya'ni kirish xususiyatlari bir nechta chiziqli bo'lmagan transformatsiya qatlamlaridan o'tgani sababli har bir xususiyatning natijaga ta'sirini tushunish oson emas.
Qaysi modelni tanlash kerak?

To'g'ri modelni tanlash qiyin. Ko'pincha qaysi model eng yaxshi ishlashini aniqlash uchun turli modellar bilan tajriba o'tkazishimiz kerak. Biz to'g'ri modelni turli omillarga asoslanib tanlashimiz mumkin:

  • Vazifaning murakkabligi
  • Ma'lumotlar taqsimoti va ma'lumotlar turi
  • O'quv xarajati, tezlik, model hajmi va h.k. kabi mahsulot talablari yoki cheklovlari Bu muammoda ham GBDTlar, ham NNlar tajriba o'tkazish uchun yaxshi nomzodlar. GBDT varianti XGBoost dan boshlaymiz, chunki uni amalga oshirish va o'qitish tez. Natija dastlabki boshlang'ich nuqta sifatida ishlatilishi mumkin.

Boshlang'ich nuqtaga ega bo'lganimizdan so'ng, NNlar bilan yaxshiroq model qurish imkoniyatini o'rganamiz. Neyron tarmoqlar bu yerda quyidagi sabablarga ko'ra yaxshi ishlashi kutiladi:

  • Tizimimizda katta o'quv ma'lumotlari mavjud. Foydalanuvchilar tadbirlarga ro'yxatdan o'tish, do'stlarni taklif qilish, yangi tadbirlarni nashr etish va h.k. orqali tizim bilan uzluksiz muloqot qiladi. Foydalanuvchilar soni hisobga olsak, bu o'qitish uchun mavjud katta miqdordagi ma'lumotlarni yaratadi.
  • Ma'lumotlar chiziqli ajralib turmasligi mumkin va neyron tarmoqlar chiziqli bo'lmagan ma'lumotlarni o'rganishi mumkin.

NN arxitekturasini loyihalashda yashirin qatlamlar soni, har bir qatlamdagi neyronlar, aktivatsiya funksiyasi va h.k. kabi bir nechta giperpareametrlarni ko'rib chiqish kerak. Bularni giperpareametr sozlash texnikalarini qo'llash orqali aniqlash mumkin. NN arxitektura tafsilotlari ML tizimi dizayni suhbatlarida odatda asosiy e'tibor markazida bo'lmaydi, chunki to'g'ri arxitekturani tanlashning tizimli usuli yo'q.

Modelni o'qitish

Ma'lumotlar to'plamini yaratish

O'quv va baholash ma'lumotlar to'plamlarini yaratish model ishlab chiqishning muhim bosqichi. Masalan, xususiyatlarni va ularning yorliqlarini qanday hisoblaymiz?

Bitta ma'lumot nuqtasini yaratish uchun muloqot ma'lumotlaridan ⟨\langle⟨ foydalanuvchi, tadbir ⟩\rangle⟩ juftini ajratamiz va juftdan kirish xususiyatlarini hisoblaymiz. Keyin foydalanuvchi tadbirda ro'yxatdan o'tgan bo'lsa ma'lumot nuqtasini 1, aks holda 0 bilan yorliq qo'yamiz.

Ma'lumotlar to'plamini yaratgandan so'ng duch kelishimiz mumkin bo'lgan muammo — sinf notekisligi. Buning sababi — foydalanuvchilar bitta ro'yxatdan o'tishdan oldin o'nlab yoki yuzlab tadbirlarni ko'rishi mumkin. Shuning uchun manfiy ⟨\langle⟨ foydalanuvchi, tadbir ⟩\rangle⟩ juftlari soni musbat ma'lumot nuqtalaridan sezilarli darajada ko'p. Sinf notekisligi muammosini hal qilish uchun quyidagi texnikalardan birini qo'llashimiz mumkin:

  • Klassifikatorni o'qitish uchun focal loss yoki sinf-muvozanatli yo'qotishdan foydalanish
  • Ko'pchilik sinfni kam namunalash
Yo'qotish funksiyasini tanlash

Model ikkilik klassifikatsiya modeli bo'lganligi sababli neyron tarmoq modelini optimallashtirish uchun binary cross-entropy kabi odatiy klassifikatsiya yo'qotish funksiyasidan foydalanamiz.

Baholash

Oflayn metrikalar

Tartiblash tizimini baholash uchun quyidagi variantlarni ko'rib chiqamiz.

Recall@k yoki Precision@k. Bu metrikalar tartiblash sifatini hisobga olmaganligi uchun yaxshi mos kelmaydi.

MRR, nDCG yoki mAP. Ushbu uchta metrika tartiblash sifatini o'lchash uchun keng qo'llaniladi. Lekin qaysi biri eng yaxshi?

MRR ro'yxatdagi birinchi dolzarb elementning darajasiga e'tibor qaratadi, bu faqat bitta dolzarb element olinishi kutilgan tizimlar uchun mos. Biroq tadbir tavsiya tizimida bir nechta tavsiya etilgan tadbirlar foydalanuvchi uchun dolzarb bo'lishi mumkin. MRR yaxshi mos kelmaydi.

nDCG foydalanuvchi va element o'rtasidagi dolzarblik ko'rsatkichi ikkilik bo'lmagan holda yaxshi ishlaydi. Aksincha, mAP dolzarblik ko'rsatkchlari ikkilik bo'lganda ishlaydi. Tadbirlar dolzarb (foydalanuvchi unda ro'yxatdan o'tgan) yoki dolzarb emas (foydalanuvchi tadbirni ko'rgan lekin ro'yxatdan o'tmagan) bo'lganligi sababli, mAP yaxshiroq mos keladi.

Onlayn metrikalar

Bizning holatimizda biznes maqsadi chipta sotishini oshirish orqali daromadni oshirish. Tizimning daromadga ta'sirini o'lchash uchun quyidagi metrikalarga qaraylik:

  • Click-through rate (CTR)
  • Konversiya darajasi
  • Xatlama (bookmark) darajasi
  • Daromad o'sishi

CTR. Tavsiya etilgan tadbirlarni ko'rgan foydalanuvchilar tadbirni bosish darajasini ko'rsatuvchi nisbat.

Yuqori CTR tizimimiz foydalanuvchilar bosadigan tadbirlarni tavsiya qilishda yaxshi ekanligini ko'rsatadi. Ko'proq bosishlar odatda ko'proq tadbir ro'yxatdan o'tishlarini anglatadi.

Biroq CTR ni yagona onlayn metrika sifatida ishlatish yetarli bo'lmasligi mumkin. Ba'zi tadbirlar clickbait bo'ladi. U'rinishimizda tavsiya etilgan tadbirlar foydalanuvchi uchun qanchalik dolzarb ekanligini o'lchashni istaymiz. Bu metrika konversiya darajasi deb ataladi.

Konversiya darajasi. Tavsiya etilgan tadbirlarni ko'rgan foydalanuvchilar unda ro'yxatdan o'tish darajasini ko'rsatuvchi nisbat. Formula:

Yuqori konversiya darajasi foydalanuvchilar tavsiya etilgan tadbirlarga ko'proq ro'yxatdan o'tishini ko'rsatadi. Masalan, 0.30.30.3 konversiya darajasi shuni anglatadiki, foydalanuvchilar o'rtacha har 10 ta tavsiya etilgan tadbirdan 3 taga ro'yxatdan o'tadi.

Xatlama darajasi. Foydalanuvchilar tavsiya etilgan tadbirlarni qanchalik tez-tez xatlaydigan (bookmark) nisbat. Bu platformaning foydalanuvchilarga tadbirni saqlash yoki xatlash imkonini berishini taxmin qilishga asoslanadi.

Daromad o'sishi. Bu tadbir tavsiyalari natijasida daromadning oshishidir.

Xizmat Ko'rsatish

Ushbu bo'limda biz so'rovlarga xizmat ko'rsatish uchun ishlatiladigan ML tizimi dizaynini taklif qilamiz. 7.20-rasmda ko'rsatilganidek, dizaynda ikkita asosiy quvur mavjud:

  • Onlayn o'qitish quvuri
  • Bashorat quvuri

Onlayn o'qitish quvuri

Yuqorida ta'riflanganidek, tadbir tavsiyalari o'ziga xos sovuq start va doimiy yangi element muammosiga duchor bo'ladi. Natijada model yangi ma'lumotlarga moslashish uchun uzluksiz fine-tuning qilinishi kerak. Bu quvur yangi ma'lumotlarni kiritish orqali yangi modellarni uzluksiz o'qitish, o'qitilgan modellarni baholash va ularni joylashtirish uchun mas'ul.

Bashorat quvuri

Bashorat quvuri berilgan foydalanuvchi uchun k\mathrm{k}k ta eng dolzarb tadbirlarni bashorat qilish uchun mas'ul. Keling, bashorat quvurining eng muhim komponentlarini muhokama qilaylik.

Tadbirlarni filtrlash

Tadbirlarni filtrlash komponenti so'rov foydalanuvchisini kirish sifatida qabul qilib, tadbirlarni 1 milliondan kichik to'plamga toraytiradi. Bu tadbir joylashuvlari yoki boshqa turdagi foydalanuvchi filtrlari kabi oddiy qoidalarga asoslanadi. Masalan, foydalanuvchi "faqat konsertlar" filtri qo'shsa, komponent ro'yxatni nomzod tadbirlarning kichik to'plamiga tezda toraytiradi. Bunday turdagi filtrlar tadbir tavsiya tizimlarida keng tarqalgan bo'lganligi sababli, ular potentsial millionlab tadbirlardan yuzlab nomzod tadbirlarga qidiruv maydonimizni sezilarli darajada kamaytirish uchun ishlatilishi mumkin.

Tartiblash xizmati

Bu xizmat filtrlash komponenti tomonidan yaratilgan foydalanuvchi va nomzod tadbirlarni kirish sifatida qabul qilib, har bir ⟨\langle⟨ foydalanuvchi, tadbir ⟩\rangle⟩ jufti uchun xususiyatlarni hisoblaydi, model tomonidan bashorat qilingan ehtimolliklarga asoslanib tadbirlarni tartiblaydi va foydalanuvchi uchun top k\mathrm{k}k ta eng dolzarb tadbirlarning tartiblangan ro'yxatini chiqaradi.

Tartiblash xizmati model kutgan xususiyatlarni hisoblash uchun mas'ul xususiyat hisoblash komponenti bilan muloqot qiladi. Statik xususiyatlar xususiyatlar do'konidan olinadi, dinamik xususiyatlar esa xom ma'lumotlardan real vaqtda hisoblanadi.

Boshqa Muhokama Mavzulari

Suhbat oxirida vaqt qolsa, quyidagi qo'shimcha muhokama mavzulari mavjud:

  • Ushbu tizimda qanday tarafkashlik turlarini kuzatishimiz mumkin [21].
  • Ko'proq ifodalililikka erishish uchun xususiyat kesishmalaridan qanday foydalanish [22].
  • Ba'zi foydalanuvchilar xilma-xil tadbirlar ro'yxatini ko'rishni yoqtiradi. Tavsiya etilgan tadbirlar xilma-xil va yangi bo'lishini qanday ta'minlash [23]?
  • Model o'qitish uchun foydalanuvchi atributlarini ishlatamiz. Shuningdek foydalanuvchilarning jonli joylashuvlariga tayanamiz. Maxfiylik va xavfsizlikka oid qo'shimcha mulohazalar nima [24]?
  • Tadbir boshqaruvi platformalari odatda ikki tomonlama bozorlar bo'lib, tadbir mezbonlari ta'minotchi hisoblanadi va foydalanuvchilar talab tomonini qondiradi. Tizim faqat bitta tomon uchun optimallanganiga yo'l qo'ymaslik uchun nima qilish kerak? Bundan tashqari, platformani turli mezbon uchun qanday adolatli saqlash kerak? Ikki tomonlama bozorlardagi noyob muammolar haqida ko'proq bilmoqchi bo'lsangiz, [25] ga murojaat qiling.
  • Ma'lumotlar to'plamini yaratishda ma'lumot oqib chiqishidan qanday qochish [26].
  • Modellarni yangilashning to'g'ri chastotasini qanday aniqlash [27].

Manbalar

  1. Learning to rank methods. https://livebook.manning.com/book/practical-recommender-systems/chapter-13/53.
  2. RankNet paper. https://icml.cc/2015/wp-content/uploads/2015/06/icml_ranking.pdf.
  3. LambdaRank paper. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/lambdarank.pdf.
  4. LambdaMART paper. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/MSR-TR-2010-82.pdf.
  5. SoftRank paper. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/SoftRankWsdm08Submitted.pdf.
  6. ListNet paper. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-2007-40.pdf.
  7. AdaRank paper. https://dl.acm.org/doi/10.1145/1277741.1277809.
  8. Batch processing vs stream processing. https://www.confluent.io/learn/batch-vs-real-time-data-processing/.
  9. Leveraging location data in ML systems. https://towardsdatascience.com/leveraging-geolocation-data-for-machine-learning-essential-techniques-192ce3a969bc.
  10. Logistic regression. https://www.youtube.com/watch?v=yIYKR4sgzI8.
  11. Decision tree. https://careerfoundry.com/en/blog/data-analytics/what-is-a-decision-tree/.
  12. Random forests. https://en.wikipedia.org/wiki/Random_forest.
  13. Bias/variance trade-off. http://www.cs.cornell.edu/courses/cs578/2005fa/CS578.bagging.boosting.lecture.pdf.
  14. AdaBoost. https://en.wikipedia.org/wiki/AdaBoost.
  15. XGBoost. https://xgboost.readthedocs.io/en/stable/.
  16. Gradient boosting. https://machinelearningmastery.com/gentle-introduction-gradient-boosting-algorithm-machine-learning/.
  17. XGBoost in Kaggle competitions. https://www.kaggle.com/getting-started/145362.
  18. GBDT. https://blog.paperspace.com/gradient-boosting-for-classification/.
  19. An introduction to GBDT. https://www.machinelearningplus.com/machine-learning/an-introduction-to-gradient-boosting-decision-trees/.
  20. Introduction to neural networks. https://www.youtube.com/watch?v=i2fmaabIs5w.
  21. Bias issues and solutions in recommendation systems. https://www.youtube.com/watch?v=pPq9iyGIZZ8.
  22. Feature crossing to encode non-linearity. https://developers.google.com/machine-learning/crash-course/feature-crosses/encoding-nonlinearity.
  23. Freshness and diversity in recommendation systems. https://developers.google.com/machine-learning/recommendation/dnn/re-ranking.
  24. Privacy and security in ML. https://www.microsoft.com/en-us/research/blog/privacy-preserving-machine-learning-maintaining-confidentiality-and-preserving-trust/.
  25. Two-sides marketplace unique challenges. https://www.uber.com/blog/uber-eats-recommending-marketplace/.
  26. Data leakage. https://machinelearningmastery.com/data-leakage-machine-learning/.
  27. Online training frequency. https://huyenchip.com/2022/01/02/real-time-machine-learning-challenges-and-solutions.html#towards-continual-learning.
Bob 8

Ijtimoiy Platformalarda Reklama Bosilishini Bashorat Qilish

~19 daq o'qish

Ijtimoiy Platformalarda Reklama Bosilishini Bashorat Qilish

Kirish

Onlayn reklama reklama beruvchilarga platforma ustida taassurot, bosish va konversiyalar kabi o'lchanadigan natijalar uchun taklif qilish va reklamalarini (reklama) joylashtirish imkonini beradi. Foydalanuvchilarga tegishli reklamalarni ko'rsatish Google, Facebook va Instagram kabi ko'plab onlayn platformalar uchun asosiy vazifadir.

Ushbu bobda biz mashhur ijtimoiy media platformalari foydalanadiganiga o'xshash reklama bosilishini bashorat qilish (shuningdek, deb ham ataladi) tizimini loyihalashtiramiz.

Talablarni Aniqlashtirish

Bu yerda nomzod va suhbatdosh o'rtasidagi odatiy muloqot keltirilgan.

Nomzod: Reklama bashorat tizimi yaratishning biznes maqsadi daromadni maksimallashtirish deb taxmin qilsam bo'ladimi? Suhbatdosh: Ha, to'g'ri.

Nomzod: Video va rasmli reklamalar kabi turli xil reklama turlari mavjud. Bundan tashqari, reklamalar foydalanuvchilarning vaqt jadvallaridagi, pop-up reklamalar va boshqalar kabi turli o'lcham va formatlarda ko'rsatilishi mumkin. Soddalik uchun reklamalar faqat foydalanuvchilarning vaqt jadvallarida joylashtiriladi va har bir bosish bir xil daromad keltiradi deb taxmin qilsam bo'ladimi? Suhbatdosh: Yaxshi eshitiladi.

Nomzod: Tizim bir xil reklamani bir xil foydalanuvchiga bir necha marta ko'rsata oladimi? Suhbatdosh: Ha, reklamani bir necha marta ko'rsatishimiz mumkin. Ba'zida reklama bir necha taassurotdan keyin bosilishga aylanadi. Amalda, kompaniyalarda «charchoq davri» bo'ladi, ya'ni foydalanuvchi uni takroran e'tiborsiz qoldirsa, X kun davomida bir xil reklamani ko'rsatmaydilar. Soddalik uchun bizda charchoq davri yo'q deb faraz qiling.

Nomzod: Biz «ushbu reklamani yashirish» funksiyasini qo'llab-quvvatlayapmizmi? «Ushbu reklama beruvchini bloklash» haqida nima deyish mumkin? Bunday salbiy fikr-mulohazalar bizga tegmasiz reklamalarni aniqlashga yordam beradi. Suhbatdosh: Yaxshi savol. Foydalanuvchilar yoqtirmagan reklamani yashira olishi mumkin deb faraz qilaylik. «Reklama beruvchini bloklash» qiziqarli funksiya, lekin hozir buni qo'llab-quvvatlashimiz shart emas.

Nomzod: O'qitish to'plamini foydalanuvchi va reklama ma'lumotlari yordamida tuzish kerak va yorliqlar foydalanuvchi-reklama o'zaro ta'siriga asoslanishi kerak deb taxmin qilsam bo'ladimi? Suhbatdosh: Albatta.

Nomzod: Biz foydalanuvchi bosishlari orqali ijobiy o'qitish ma'lumotlari nuqtalarini yaratishimiz mumkin, lekin salbiy ma'lumotlar nuqtalarini qanday yaratamiz? Bosilmagan har qanday taassurot salbiy ma'lumot nuqtasi deb taxmin qilsak bo'ladimi? Foydalanuvchi tez aylantirsa va reklamani ko'rishga vaqt sarflamasa nima bo'ladi? Agar taassurotni salbiy deb hisoblasak, lekin foydalanuvchi oxir-oqibat reklamani bossa nima bo'ladi? Suhbatdosh: Bular ajoyib savollar. Fikrlaringiz qanday?

Nomzod: Agar reklama ma'lum muddatga foydalanuvchi ekranida ko'rinib tursa, lekin bosilmasa, buni salbiy ma'lumot nuqtasi sifatida hisoblashimiz mumkin. Muqobil yondashuv taassurotlar bosish kuzatilgunga qadar salbiy deb hisoblanishini taxmin qilishdir. Bundan tashqari, salbiy ma'lumot nuqtalarini belgilash uchun «reklamani yashirish» kabi salbiy fikr-mulohazalarga tayanishimiz mumkin. Suhbatdosh: Mantiqli! Amalda, salbiy ma'lumotlar nuqtalarini belgilash uchun boshqa murakkab usullardan foydalanishimiz mumkin. Ushbu suhbat uchun takliflaringiz bilan davom etaylik.

Nomzod: Reklama bosilishini bashorat qilish tizimlarida model yangi o'zaro ta'sirlardan uzluksiz o'rganishi juda muhim. Doimiy o'qitish bu yerda zaruriy shart deb taxmin qilish to'g'rimi? Suhbatdosh: Juda yaxshi savol. Tajribalar shuni ko'rsatdiki, modellarni yangilashda hatto 5 daqiqalik kechikish ham ishlashga zarar yetkazishi mumkin [1].

Muammo bayonotini xulosalaymiz. Bizdan reklama bosilishini bashorat qilish tizimini loyihalash so'ralgan. Tizimning biznes maqsadi daromadni maksimallashtirish. Reklamalar faqat foydalanuvchilarning vaqt jadvallarida joylashtiriladi va har bir bosish bir xil daromad keltiradi. Modelni yangi o'zaro ta'sirlar bo'yicha uzluksiz o'qitish zarur. Biz to'plamni foydalanuvchi va reklama ma'lumotlaridan yaratamiz va ularni o'zaro ta'sirlar asosida belgilaymiz. Ushbu bobda AdTech-ga xos mavzularni muhokama qilmaymiz, chunki ular ML suhbatlari uchun tegishli emas. AdTech haqida ko'proq ma'lumot olish uchun [2] ga murojaat qiling.

Muammoni ML Vazifasi Sifatida Shakllantirish

ML maqsadini aniqlash

Reklama bosilishini bashorat qilish tizimining maqsadi foydalanuvchilarga bosish ehtimoli yuqori reklamalarni ko'rsatish orqali daromadni oshirishdir. Bu quyidagi ML maqsadiga aylantirilishi mumkin: reklamaning bosilishini bashorat qilish. Buning sababi shundaki, bosish ehtimollarini to'g'ri bashorat qilish orqali tizim foydalanuvchilarga tegishli reklamalarni ko'rsatishi mumkin, bu daromad oshishiga olib keladi.

Tizimning kiritish va chiqarishini belgilash

Reklama bosilishini bashorat qilish tizimi kiritish sifatida foydalanuvchini qabul qiladi va bosish ehtimollariga ko'ra tartiblangan reklamalar ro'yxatini chiqaradi.

To'g'ri ML kategoriyasini tanlash

8.2-rasm reklama bashoratini tartib muammosi sifatida qanday shakllantirish mumkinligini ko'rsatadi. 7-bobda, Tadbir Tavsiya Tizimida ta'riflanganidek, nuqtali Learning to Rank (LTR) tartib muammolarini hal qilish uchun ajoyib boshlang'ich nuqtadir. Nuqtali LTR kirish sifatida ⟨\langle⟨ foydalanuvchi, reklama ⟩\rangle⟩ juftligini qabul qiladigan va foydalanuvchi reklamani bosadimi yoki yo'qligini bashorat qiladigan ikkilik klassifikatsiya modelidan foydalanadi. 8.3-rasm modelning kiritish va chiqarishini ko'rsatadi.

Ma'lumotlarni Tayyorlash

Ma'lumotlar muhandisligi

Bu tizimda mavjud bo'lgan ba'zi xom ma'lumotlar:

  • Reklamalar
  • Foydalanuvchilar
  • Foydalanuvchi-reklama o'zaro ta'sirlari

Reklamalar

Reklama ma'lumotlari 8.1-jadvalda ko'rsatilgan. Amalda, har bir reklamaga bog'liq yuzlab atributlar bo'lishi mumkin. Soddalik uchun faqat muhimlarini sanab o'tamiz.

Ad IDAdvertiser IDAd group IDCampaign IDCategorySubcategoryImages or Videos
1147travelhotelhttp: //cdn.mysite.com/u1.jpg
2729insurancecarhttp: //cdn.mysite.com/t3.mp4
39628travelairlinehttp: //cdn.mysite.com/t5.jpg

8.1-jadval: Reklama ma'lumotlari

Foydalanuvchilar

Foydalanuvchi ma'lumotlarining sxemasi quyida ko'rsatilgan.

IDUsernameAgeGenderCityCountryLanguageTime zone

8.2-jadval: Foydalanuvchi ma'lumotlari sxemasi

Foydalanuvchi-reklama o'zaro ta'sirlari

Bu jadval taassurotlar, bosishlar va konversiyalar kabi foydalanuvchi-reklama o'zaro ta'sirlarini saqlaydi.

User IDAd IDInteraction typeDwell timeLocation (lat, long)Timestamp
116Impression5sec38.8951
-77.0364
165845053
117Impression0.4 sec41.9241
-89.0389
1658451365
420Click-22.7531
47.9642
1658435948
116Conversion-22.7531
47.9642
1658451849

8.3-jadval: Foydalanuvchi-reklama o'zaro ta'sir ma'lumotlari

Xususiyatlar muhandisligi

Ushbu bo'limdagi maqsadimiz foydalanuvchi bosishlarini bashorat qilishga yordam beradigan xususiyatlarni yaratishdir.

Reklama xususiyatlari

Reklama xususiyatlariga quyidagilar kiradi:

  • IDlar
  • Rasm/video
  • Kategoriya va subkategoriya
  • Taassurot va bosish sonlari

Keling, har birini batafsilroq ko'rib chiqamiz.

IDlar

Bular reklama beruvchi ID, kampaniya ID, reklama guruhi ID, reklama ID va hokazo.

Nima uchun muhim? IDlar reklama beruvchini, kampaniyani, reklama guruhini va reklamaning o'zini ifodalaydi. Bu IDlar turli reklama beruvchilar, kampaniyalar, reklama guruhlari va reklamalarning noyob xususiyatlarini qamrab olish uchun bashorat xususiyatlari sifatida ishlatiladi.

Qanday tayyorlanadi? Embedding qatlami IDlar kabi siyrak xususiyatlarni zich xususiyat vektorlariga aylantiradi. Har bir ID turi o'zining embedding qatlamiga ega.

Rasm/video

Nima uchun muhim? Postdagi video yoki rasm reklamaning nima haqida ekanligini bashorat qilishga yordam beradigan yana bir signal hisoblanadi. Masalan, samolyot tasviri reklamaning sayohat bilan bog'liqligini ko'rsatishi mumkin.

Qanday tayyorlanadi? Rasmlar yoki videolar avval qayta ishlanadi. Shundan so'ng, tuzilmaviy bo'lmagan ma'lumotlarni xususiyat vektoriga aylantirish uchun SimCLR [3] kabi oldindan o'qitilgan modeldan foydalanamiz.

Reklama kategoriyasi va subkategoriyasi

Reklama beruvchi tomonidan taqdim etilgan reklama kategoriyasi va subkategoriyasi. Masalan, maqsadli bo'lishi mumkin bo'lgan keng toifalar ro'yxati: San'at va Ko'ngilochar, Avtomobillar va Transport vositalari, Go'zallik va Fitnes va hokazo.

Nima uchun muhim? Bu modelga reklamaning qaysi kategoriyaga tegishli ekanligini tushunishga yordam beradi.

Qanday tayyorlanadi? Bular reklama beruvchi tomonidan belgilangan kategoriyalar va subkategoriyalar ro'yxati asosida qo'lda taqdim etiladi. Matnli ma'lumotlarni tayyorlash haqida ko'proq bilish uchun 4-bob, YouTube Video Qidiruvini o'qing.

Taassurotlar va bosish sonlari
  • Reklamadagi jami taassurot/bosishlar
  • Reklama beruvchi tomonidan taqdim etilgan reklamalardagi jami taassurot/bosishlar
  • Kampaniyaning jami taassurotlari

Nima uchun muhim? Bu raqamlar boshqa foydalanuvchilar ushbu reklamaga qanday munosabatda bo'lganligini ko'rsatadi. Masalan, foydalanuvchilar yuqori bosish ulushi (CTR) ga ega reklamani bosish ehtimoli yuqori.

Foydalanuvchi xususiyatlari

Oldingi boblarga o'xshab, quyidagi xususiyatlarni tanlaymiz:

  • Demografik ma'lumotlar: yoshi, jinsi, shahri, mamlakati va hokazo
  • Kontekstual ma'lumotlar: qurilma, kunning vaqti va hokazo
  • O'zaro ta'sir bilan bog'liq xususiyatlar: bosilgan reklamalar, foydalanuvchining tarixiy jalb statistikasi va hokazo

Keling, o'zaro ta'sir bilan bog'liq xususiyatlarga yaqinroq nazar tashlaylik.

Bosilgan reklamalar

Foydalanuvchi tomonidan avval bosilgan reklamalar.

Nima uchun muhim? Oldingi bosishlar foydalanuvchi qiziqishlarini ko'rsatadi. Masalan, foydalanuvchi ko'p sug'urta bilan bog'liq reklamalarni bosganida, bu ularning o'xshash reklamani yana bosish ehtimoli yuqori ekanligini bildiradi.

Qanday tayyorlanadi? «Reklama xususiyatlari» bo'limida ta'riflanganidek.

Foydalanuvchining tarixiy jalb statistikasi

Bular foydalanuvchining jami reklama ko'rishlari va reklama bosish ulushi kabi tarixiy jalb ko'rsatkichlari.

Nima uchun muhim? Shaxsning tarixiy jalbi kelajakdagi jalb yaxshi ko'rsatkichidir. Umuman olganda, agar foydalanuvchilar o'tmishda tez-tez reklamalarga bosgan bo'lsa, kelajakda ham reklamalarga bosish ehtimoli yuqori.

Qanday tayyorlanadi? Jalb statistikasi raqamli qiymatlar sifatida ifodalanadi. Ularni tayyorlash uchun qiymatlarini o'xshash diapazonga keltirish uchun masshtablaymiz.

Ma'lumotlarni tayyorlash bo'limini yakunlashdan oldin, reklama bosilishini bashorat qilish tizimlaridagi umumiy muammoni ko'rib chiqaylik. Ko'p hollarda, bu tizimlar ko'plab yuqori kardinallikdagi kategorik xususiyatlar bilan ishlaydi. Masalan, «reklama kategoriyasi» barcha mumkin bo'lgan kategoriyalarning katta ro'yxatidan qiymatlar oladi. Xuddi shunday, «reklama beruvchi ID» va «foydalanuvchi ID» platformada qancha foydalanuvchi yoki reklama beruvchi faolligiga qarab, potentsial millionlab noyob qiymatlarni oladi. Ko'pincha mavjud bo'lgan katta xususiyat maydoni hisobga olinsa, aksariyat xususiyatlar nollar bilan to'ldirilgan minglab yoki millionlab xususiyatlarga ega bo'lish odatiy holdir. Model tanlash bo'limida bu noyob muammolarni bartaraf etish usullarini ko'rib chiqamiz.

Model Ishlab Chiqish

Model tanlash

«Muammoni ML Vazifasi Sifatida Shakllantirish» bo'limida ta'riflanganidek, tartib muammosini hal qilish uchun ikkilik klassifikatsiya modeli tanlanadi. Ikkilik klassifikatsiyalar bir necha xil usullar bilan modellanishi mumkin. Quyidagilar reklama bosilishini bashorat qilish tizimlarida keng tarqalgan tanlovlardir:

  • Logistik regressiya
  • Xususiyat kesishuvi + logistik regressiya
  • Gradient kuchaytirish qaror daraxtlari
  • Gradient kuchaytirish qaror daraxtlari + logistik regressiya
  • Neyron tarmoqlar
  • Deep & Cross tarmoqlari
  • Faktorizatsiya mashinalari
  • Chuqur Faktorizatsiya Mashinalari

Logistik regressiya (LR)

LR bir yoki bir nechta xususiyatlarning chiziqli kombinatsiyasidan foydalanib ikkilik natija ehtimolini modellashtiradi. LR o'qitish uchun tez va amalga oshirish uchun oson. Biroq, LR asosidagi reklama bosilishini bashorat qilish tizimi quyidagi kamchiliklarga ega:

  • Chiziqli bo'lmagan muammolarni LR bilan hal qilib bo'lmaydi. LR vazifani kiritish xususiyatlarining chiziqli kombinatsiyasi yordamida hal qiladi, bu chiziqli qaror chegarasiga olib keladi. Reklama bosilishini bashorat qilish tizimlarida ma'lumotlar odatda chiziqli ajratiladigan emas, shuning uchun LR yomon ishlashi mumkin.
  • Xususiyat o'zaro ta'sirlarini qamrab olish imkonsizligi. LR xususiyat o'zaro ta'sirlarini qamrab ololmaydi. Reklama bashorat tizimlarida xususiyatlar o'rtasida turli xil o'zaro ta'sirlar bo'lishi juda oddiy holat. Xususiyatlar bir-biri bilan o'zaro ta'sir qilganda, chiqish ehtimolini xususiyat ta'sirlari yig'indisi sifatida ifodalab bo'lmaydi, chunki bir xususiyatning ta'siri boshqa xususiyat qiymatiga bog'liq.

Bu ikki kamchilikni hisobga olgan holda, LR reklama bashorat tizimi uchun eng yaxshi tanlov emas. Biroq, tez amalga oshirish va o'qitish uchun oson bo'lganligi sababli, ko'plab kompaniyalar bazaviy model yaratish uchun undan foydalanadi.

Xususiyat kesishuvi + LR

Xususiyat o'zaro ta'sirlarini yaxshiroq qamrab olish uchun xususiyat kesishuvi deb atalgan usuldan foydalanamiz.

Xususiyat kesishuvi nima?

Xususiyat kesishuvi ML da mavjud xususiyatlardan yangi xususiyatlar yaratish uchun ishlatiladigan usuldir. Bu ikki yoki undan ortiq mavjud xususiyatlarni ularning ko'paytmasi, yig'indisi yoki boshqa kombinatsiya orqali bitta yangi xususiyatga birlashtiradi. Bu yo'l bilan asl xususiyatlar o'rtasidagi chiziqli bo'lmagan o'zaro ta'sirlarni qamrab olish mumkin, bu ML modellarining ishlashini yaxshilashi mumkin. Masalan, «yosh va basketbol» yoki «AQSh va futbol» kabi o'zaro ta'sirlar modelning bosish ehtimolini bashorat qilish qobiliyatiga ijobiy ta'sir ko'rsatishi mumkin.

Xususiyat kesishuvlarini qanday yaratish mumkin?

Xususiyat kesishuvida, oldindan bilim asosida mavjud xususiyatlarga yangi xususiyatlar qo'lda qo'shamiz. 8.6-rasmda ko'rsatilganidek, «mamlakat» va «til» kabi ikkita xususiyatni kesish mavjud xususiyat maydoniga oltita yangi xususiyat qo'shadi. Kesishuv haqida ko'proq bilish uchun [4] ga murojaat qiling.

Xususiyat kesishuvi + LR dan qanday foydalanish mumkin?

8.7-rasmda ko'rsatilganidek, xususiyat kesishuvi + LR quyidagicha ishlaydi:

  1. Yangi xususiyatlar (kesishgan xususiyatlar) olish uchun asl xususiyatlar to'plamida xususiyat kesishuvidan foydalaning
  2. LR modeli uchun kiritish sifatida asl va kesishgan xususiyatlardan foydalaning

Bu usul modelga ma'lum juftlik (ikkinchi tartib) xususiyat o'zaro ta'sirlarini qamrab olish imkonini beradi. Biroq, uning uchta kamchiligi bor:

  • Qo'lda jarayon: Qaysi xususiyatlarni kesish kerakligini tanlash uchun inson ishtiroki talab etiladi, bu ko'p vaqt talab qiladi va qimmat.
  • Domain bilimi talab qiladi: Xususiyat kesishuvi domain ekspertizasini talab qiladi. Xususiyatlar o'rtasidagi qaysi o'zaro ta'sirlar model uchun bashorat signallari ekanligini aniqlash uchun muammo va xususiyat maydonini oldindan tushunishimiz kerak.
  • Murakkab o'zaro ta'sirlarni qamrab ololmaydi: Kesishgan xususiyatlar minglab siyrak xususiyatlardan barcha murakkab o'zaro ta'sirlarni qamrab olish uchun yetarli bo'lmasligi mumkin.
  • Siyraklik: Asl xususiyatlar siyrak bo'lishi mumkin. Xususiyat kesishuvi bilan kesishgan xususiyatlarning kardinaligi ancha katta bo'lishi mumkin, bu ko'proq siyraklikka olib keladi.

Kamchiliklarni hisobga olgan holda, bu usul reklama bashorat tizimi uchun ideal yechim emas.

Gradient kuchaytirish qaror daraxtlari (GBDT)

GBDT ni 7-bobda, Tadbir Tavsiya Tizimida ko'rib chiqdik. Bu yerda, faqat reklama bosilishini bashorat qilish tizimiga qo'llanganda GBDT ning afzalliklari va kamchiliklarini ko'rib chiqamiz.

Afzalliklari

  • GBDT talqin qilish mumkin va tushunish oson

Kamchiliklari

  • Doimiy o'qitish uchun samarasiz. Reklama bosilishini bashorat qilish tizimlarida biz foydalanuvchi, reklama va o'zaro ta'sir ma'lumotlari kabi yangi ma'lumotlarni uzluksiz to'playmiz. Modalni yangi ma'lumotlar bo'yicha doimiy o'qitish uchun umumiy ikkita variant bor: 1) noldan o'qitish yoki 2) modelni yangi ma'lumotlar bo'yicha nozik sozlash. GBDT yangi ma'lumotlar bilan nozik sozlash uchun mo'ljallanmagan. Shuning uchun odatda modelni noldan o'qitishimiz kerak, bu katta miqyosda samarasiz.
  • Embedding qatlamlarini o'qita olmaydi. Reklama bashorat tizimlarida ko'plab siyrak kategorik xususiyatlarga ega bo'lish odatiy holdir va embedding qatlami bu xususiyatlarni ifodalashning samarali usuli hisoblanadi. Biroq, GBDT embedding qatlamlaridan foyda ko'ra olmaydi.

GBDT + LR

Bu yondashuvda ikkita qadam bor:

  1. GBDT modelini vazifani o'rganish uchun o'qiting.
  2. O'qitilgan modelni bashorat qilish uchun ishlatish o'rniga, yangi bashorat xususiyatlarini tanlash va ajratib olish uchun foydalaning. Yangi yaratilgan xususiyatlar va asl xususiyatlar bosishlarni bashorat qilish uchun LR modeliga kiritish sifatida ishlatiladi.

Xususiyatlarni tanlash uchun GBDT dan foydalaning Xususiyatlarni tanlash faqat eng foydali va ma'lumotli bo'lganlarga kiritish xususiyatlarini kamaytirish uchun mo'ljallangan. Qaror daraxtlaridan foydalanib, ularning ahamiyati asosida xususiyatlar to'plamini tanlab olishimiz mumkin. Xususiyat yaratish uchun qaror daraxtlaridan qanday foydalanilishini yaxshiroq tushunish uchun [5] ga murojaat qiling.

Xususiyatlarni ajratib olish uchun GBDT dan foydalaning Xususiyatlarni ajratib olishning maqsadi mavjud xususiyatlardan yangi xususiyatlar yaratish orqali xususiyatlar sonini kamaytirish. Yangi ajratilgan xususiyatlar yaxshiroq bashorat kuchiga ega bo'lishi kutiladi. 8.8-rasm GBDT yordamida xususiyatlarni qanday ajratib olishni tushuntiradi.

LR dan keyin foydalaniladigan GBDT ning umumiy ko'rinishi 8.9-rasmda ko'rsatilgan.

Keling, bu yondashuvning afzalliklari va kamchiliklarini ko'rib chiqaylik.

Afzalliklari:

  • Mavjud xususiyatlardan farqli o'laroq, GBDT tomonidan yaratilgan yangilar ko'proq bashoratlidir, bu LR modelining vazifani o'rganishini osonlashtiradi.

Kamchiliklari:

  • Murakkab o'zaro ta'sirlarni qamrab ololmaydi. LR ga o'xshab, bu yondashuv juftlik xususiyat o'zaro ta'sirlarini o'rgana olmaydi.
  • Doimiy o'qitish sekin. GBDT modellarini yangi ma'lumotlar bo'yicha nozik sozlash vaqt talab qiladi, bu umuman doimiy o'qitishni sekinlashtiradi.

Neyron tarmoq (NN)

NN reklama bosilishini bashorat qilish tizimini yaratish uchun yana bir nomzod hisoblanadi. NN yordamida bosish ehtimollarini bashorat qilish uchun ikki arxitektura variantimiz bor:

  • Yagona NN
  • Ikki minora arxitekturasi

Yagona NN: Asl xususiyatlarni kiritish sifatida ishlatib, neyron tarmoq bosish ehtimolini chiqaradi (8.10-rasm).

Ikki minora arxitekturasi: Bu opsiyada ikkita encoder dan foydalanamiz: foydalanuvchi encoderi va reklama encoderi. Reklama va foydalanuvchi embeddinglarining o'xshashligi tegishlilikni, ya'ni bosish ehtimolini aniqlash uchun ishlatiladi. 8.11-rasm ushbu arxitekturaning umumiy ko'rinishini ko'rsatadi.

NNlar ko'plab afzalliklarga ega bo'lsa-da, ular reklama bosilishini bashorat qilish tizimlarining eng yaxshi tanlovi bo'lmasligi mumkin, chunki:

  • Siyraklik: Xususiyat maydoni odatda katta va siyrak bo'lgani hisobga olinsa, aksariyat xususiyatlar nollar bilan to'ldirilgan. NN yetarlicha ma'lumot nuqtalariga kirish imkoni bo'lmagani uchun vazifani samarali o'rgana olmasligi mumkin.
  • Ko'p sonli xususiyatlar tufayli barcha juftlik xususiyat o'zaro ta'sirlarini qamrab olish qiyin.

Ushbu cheklovlarni hisobga olgan holda, NNlardan foydalanmaymiz.

Deep & Cross Network (DCN)

2017-yilda Google DCN [6] nomli arxitekturani xususiyat o'zaro ta'sirlarini avtomatik topish uchun taklif qildi. Bu qo'lda xususiyat kesishuvi usulining qiyinchiliklarini hal qiladi. Bu usulda quyidagi ikkita parallel tarmoq qo'llaniladi:

  • Chuqur tarmoq: Deep Neural Network (DNN) arxitekturasidan foydalanib murakkab va umumlashtiriladigan xususiyatlarni o'rganadi.
  • Cross tarmoq: Xususiyat o'zaro ta'sirlarini avtomatik ravishda qamrab oladi va yaxshi xususiyat kesishuvlarini o'rganadi.

Chuqur tarmoq va cross tarmoq chiqishlari yakuniy bashorat qilish uchun birlashtirilib qo'shiladi.

DCN arxitekturalarining ikki turi mavjud: yig'ilgan va parallel. 8.12-rasm parallel DCN arxitekturasini ko'rsatadi. Yig'ilgan arxitektura haqida ko'proq bilish uchun [7] ga murojaat qiling. E'tibor bering, ML tizim dizayni suhbatlari davomida DCN tafsilotlarini taqdim etish odatda kutilmaydi. DCN tarmoqlari haqida ko'proq bilishni xohlasangiz, [7] [8] ga murojaat qiling.

DCN arxitekturasi neyron tarmoqlarga qaraganda samaraliroq, chunki u xususiyat kesishuvlarini yashirin tarzda o'rganadi. Biroq, cross tarmoq faqat ma'lum xususiyat o'zaro ta'sirlarini modellashtiradiki, bu cross tarmoq modelining ishlashiga salbiy ta'sir ko'rsatishi mumkin.

Faktorizatsiya Mashinalari (FM)

FM embedding asosidagi model bo'lib, barcha juftlik xususiyat o'zaro ta'sirlarini avtomatik modellash orqali logistik regressiyani yaxshilaydi. Reklama bosilishini bashorat qilish tizimlarida FM keng qo'llaniladi, chunki u xususiyatlar o'rtasidagi murakkab o'zaro ta'sirlarni samarali modellay oladi.

Keling, FM qanday ishlashini tushunaylik. U har bir xususiyat uchun embedding vektorini o'rganish orqali barcha juftlik xususiyat o'zaro ta'sirlarini avtomatik modellaydi. Ikki xususiyat o'rtasidagi o'zaro ta'sir ularning embeddinglarining nuqtaviy ko'paytmasi bilan aniqlanadi. Uni yaxshiroq tushunish uchun formulasiga qaraymiz:

Bunda xix_ixi​ i-chi xususiyatni, wiw_iwi​ o'rganilgan og'irlikni, viv_ivi​ esa i-chi xususiyatning embeddingini ifodalaydi. ⟨\langle⟨ v_i, v_j ⟩\rangle⟩ ikki embedding o'rtasidagi nuqtaviy ko'paytmani bildiradi.

Bu formula murakkab ko'rinishi mumkin, lekin aslida tushunish oson. Birinchi ikkita had logistik regressiya qanday ishlashiga o'xshab xususiyatlarning chiziqli kombinatsiyasini hisoblaydi. Uchinchi had juftlik xususiyat o'zaro ta'sirlarini modellashtiradi. 8.13-rasm FM ning yuqori darajadagi ko'rinishini ko'rsatadi. FM tafsilotlarini o'rganish uchun [9] ga murojaat qiling.

FM va uning variantlari, masalan FFM, xususiyatlar o'rtasidagi juftlik o'zaro ta'sirlarni samarali qamrab oladi. FM neyron tarmoqlardan farqli o'laroq, xususiyatlardan yuqori tartibli murakkab o'zaro ta'sirlarni o'rgana olmaydi. Keyingi usulda buni bartaraf etish uchun FM va DNN ni birlashtiramiz.

Chuqur Faktorizatsiya Mashinalari (DeepFM)

DeepFM NN va FM ning kuchli tomonlarini birlashtirgan ML modelidir. DNN tarmoqi murakkab yuqori tartibli xususiyatlarni qamrab oladi, FM esa past darajadagi juftlik xususiyat o'zaro ta'sirlarini qamrab oladi. 8.14-rasm DeepFM ning yuqori darajadagi arxitekturasini ko'rsatadi. DeepFM haqida ko'proq bilishni xohlasangiz, [10] ga murojaat qiling.

Potentsial yaxshilanish GBDT va DeepFM ni birlashtirish bo'lishi mumkin. GBDT asl xususiyatlarni ko'proq bashoratli xususiyatlarga aylantiradi, DeepFM esa yangi xususiyatlar ustida ishlaydi. Bu usul turli reklama bashorat tizimi musobaqalarida g'alaba qozongan [11]. Biroq, DeepFM ga GBDT qo'shish o'qitish va inference tezligiga salbiy ta'sir ko'rsatadi va doimiy o'qitish jarayonini sekinlashtiradi.

Amalda, odatda eksperimentlar o'tkazish orqali to'g'ri modelni tanlaymiz. Bizning holatda, bazaviy chiziq yaratish uchun oddiy LR bilan boshlaymiz. Keyin, ikkisi ham texnologiya sanoatida keng qo'llaniladigan DCN va DeepFM bilan tajriba o'tkazamiz.

Modelni o'qitish

To'plamni tuzish

Har bir reklama taassurot uchun yangi ma'lumot nuqtasi yaratamiz. Kiritish xususiyatlari foydalanuvchi va reklamadan hisoblanadi. Ma'lumot nuqtasiga quyidagi strategiya asosida yorliq beriladi:

  • Ijobiy yorliq: agar foydalanuvchi reklama ko'rsatilgandan keyin t soniyadan kam vaqt ichida reklamani bosgan bo'lsa, ma'lumot nuqtasini «ijobiy» deb belgilaymiz. E'tibor bering, t giperparametr bo'lib, eksperimentlar orqali sozlanishi mumkin.
  • Salbiy yorliq: agar foydalanuvchi t soniyadan kam vaqt ichida reklamani bosmagan bo'lsa, ma'lumot nuqtasini «salbiy» deb belgilaymiz.

Amalda, kompaniyalar salbiy ma'lumotlar nuqtalarini belgilash uchun optimal strategiyani topishda murakkabroq usullardan foydalanadi. Ko'proq bilish uchun [1] ga murojaat qiling.

Modelni yangi ma'lumotlarga moslashuvchan saqlash uchun uni uzluksiz o'qitish kerak. Natijada, yangi o'qitish ma'lumotlari nuqtalari yangi o'zaro ta'sirlardan uzluksiz generatsiya qilinishi kerak. Doimiy o'qitishni xizmat ko'rsatish bo'limida batafsilroq muhokama qilamiz.

Yo'qotish funksiyasini tanlash

Ikkilik klassifikatsiya modelini o'qitayotganimiz uchun klassifikatsiya yo'qotish funksiyasi sifatida cross-entropy ni tanlaymiz.

Baholash

Offline metrikalar

Reklama bosilishini bashorat qilish tizimini baholash uchun odatda ikkita metrikadan foydalaniladi:

  • Cross-entropy (CE)
  • Normallashtirilgan cross-entropy (NCE)

CE. Bu metrika modelning bashorat qilingan ehtimollari qanchalik haqiqiy yorliqlarga yaqin ekanligini o'lchaydi. Agar salbiy sinflar uchun 0 va ijobiy sinflar uchun 1 ni bashorat qiladigan ideal tizimimiz bo'lsa, CE nolga teng. CE qancha past bo'lsa, bashorat aniqligi shuncha yuqori. Formula:

bunda p haqiqiy qiymat, q bashorat qilingan ehtimol, C esa sinflar umumiy soni.

Ikkilik klassifikatsiya uchun CE formulasini quyidagicha qayta yozish mumkin:

bunda yiy_iyi​ i-chi ma'lumot nuqtasining haqiqiy yorlig'i va y^i\hat{y}_iy^​i​ i-chi ma'lumot nuqtasining bashorat qilingan ehtimoli.

8.16-rasmda ko'rsatilganidek, aniq bir misolga qaraymiz.

E'tibor bering, CE ni metrika sifatida ishlatishdan tashqari, u model o'qitish davomida klassifikatsiya vazifalarida standart yo'qotish funksiyasi sifatida ham keng qo'llaniladi.

Normallashtirilgan cross-entropy (NCE). NCE bizning modelimizning CE si va fon CTR (o'qitish ma'lumotlaridagi o'rtacha CTR) ning CE si o'rtasidagi nisbatdir. Boshqacha qilib aytganda, NCE modelni doim fon CTR ni bashorat qiladigan oddiy bazaviy chegara bilan taqqoslaydi. Past NCE model oddiy bazaviy chegaradan ustun ekanligini bildiradi. NCE≥1N C E \geq 1NCE≥1 model oddiy bazaviy chegaradan yaxshiroq ishlamayotganini bildiradi.

NCE qanday hisoblanishini yaxshiroq tushunish uchun aniq bir misolga qaraymiz. 8.17-rasmda ko'rsatilganidek, oddiy bazaviy chegara model doimo 0.6 ni (o'qitish ma'lumotlaridagi CTR) bashorat qiladi. Bunday holda, NCE qiymati 0.324 (1 dan kam) bo'lib, A model oddiy bazaviy chegaradan ustun ekanligini ko'rsatadi.

Online metrikalar

Online baholash davomida foydalanishimiz mumkin bo'lgan ba'zi metrikalarni ko'rib chiqamiz.

  • CTR
  • Konversiya ulushi
  • Daromad o'sishi
  • Yashirish ulushi

CTR. Bu metrika bosilgan reklamalar va ko'rsatilgan reklamalarning umumiy soni o'rtasidagi nisbatni o'lchaydi.

CTR reklama bosilishini bashorat qilish tizimlari uchun ajoyib online metrika hisoblanadi, chunki foydalanuvchi reklamalarga bosishini maksimallashtirish daromad oshishi bilan bevosita bog'liq.

Konversiya ulushi. Bu metrika konversiyalar soni va ko'rsatilgan reklamalarning umumiy soni o'rtasidagi nisbatni o'lchaydi.

Ushbu metrika kuzatish uchun muhim, chunki u reklama beruvchilar tizimdan qancha marta haqiqiy foyda ko'rganini ko'rsatadi. Bu muhim, chunki agar reklamalari konversiyalarga olib kelmasa, reklama beruvchilar oxir-oqibat qiziqishini yo'qotib, reklamalarga xarajatlarni to'xtatadi.

Daromad o'sishi. Bu vaqt o'tishi bilan daromad foizining oshishini o'lchaydi.

Yashirish ulushi. Bu metrika foydalanuvchilar tomonidan yashirilgan reklamalar soni va ko'rsatilgan reklamalar soni o'rtasidagi nisbatni o'lchaydi.

Bu metrika tizim foydalanuvchilarga ko'rsatgan tegmasiz reklamalar sonini tushunish uchun foydali, buni noto'g'ri ijobiylar ham deyishadi.

Xizmat Ko'rsatish

Xizmat ko'rsatish vaqtida tizim bosish ehtimollari bo'yicha tartiblangan reklamalar ro'yxatini chiqarish uchun javobgardir. Taklif etilayotgan ML tizim dizayni 8.18-rasmda ko'rsatilgan. Quyidagi pipelinelarning har birini ko'rib chiqaylik:

  • Ma'lumotlarni tayyorlash pipeline
  • Doimiy o'qitish pipeline
  • Bashorat pipeline

Ma'lumotlarni tayyorlash pipeline

Ma'lumotlarni tayyorlash pipeline quyidagi ikkita vazifani bajaradi:

  1. Online va batch xususiyatlarni hisoblash
  2. Yangi reklamalar va o'zaro ta'sirlardan o'qitish ma'lumotlarini uzluksiz generatsiya qilish

Xususiyatlarni hisoblash uchun quyidagi ikkita variant qo'llaniladi: batch xususiyat hisoblash va online xususiyat hisoblash. Keling, ular bir-biridan qanday farqlanishini ko'ramiz.

Batch xususiyat hisoblash Tanlab olingan xususiyatlarning bir qismi statik, ya'ni ular juda kamdan-kam o'zgaradi. Masalan, reklamaning tasviri va kategoriyasi statik xususiyatlar hisoblanadi. Ushbu komponent batch ishlar bilan vaqti-vaqti bilan (masalan, har bir necha kun yoki haftalarda) statik xususiyatlarni hisoblab, keyin ularni xususiyatlar do'konida saqlaydi. Bu xususiyatlar oldindan hisoblanganligi sababli xizmat ko'rsatish davomida tizim ishlashini yaxshilaydi.

Online xususiyat hisoblash Ba'zi xususiyatlar dinamik, chunki ular tez-tez o'zgaradi. Masalan, reklama taassurotlari va bosishlari sonlari dinamik xususiyatlarga misol. Bu xususiyatlar so'rov vaqtida hisoblanishi kerak va ushbu komponent dinamik xususiyatlarni hisoblash uchun ishlatiladi.

Doimiy o'qitish pipeline

Talablar asosida, modelni doimiy o'qitish muhim ahamiyatga ega. Ushbu pipeline yangi o'qitish ma'lumotlari bo'yicha modelni nozik sozlash, yangi modelni baholash va agar u metrikalarni yaxshilasa modelni joylashtirish uchun javobgardir. U bashorat pipelinening doimo eng so'nggi ma'lumotlarga moslashtirilgan modeldan foydalanishini ta'minlaydi.

Bashorat pipeline

Bashorat pipeline kiritish sifatida so'rov foydalanuvchisini qabul qiladi va bosish ehtimollari bo'yicha tartiblangan reklamalar ro'yxatini chiqaradi. Modelning tayanganlari dinamik xususiyatlar bo'lgani uchun, batch bashoratdan foydalana olmaymiz. Buning o'rniga, so'rovlar kelgan sayin online bashorat yordamida xizmat ko'rsatiladi.

Oldingi boblarda ko'rganimizdek, bashorat pipelinida ikki bosqichli arxitektura qo'llaniladi. Birinchidan, mavjud reklamalar havzasini samarali ravishda kichik reklamalar to'plamiga toraytirish uchun nomzodlarni yaratish xizmatini qo'llaymiz. Bunday holda, reklama beruvchilar tomonidan tez-tez beriladigan maqsadli yosh, jins va mamlakat kabi reklama maqsadlash mezonlaridan foydalanamiz.

Keyin, nomzodlarni yaratish xizmatidan nomzod reklamalarni oluvchi, ularni bosish ehtimoli asosida tartiblaydigan va eng yaxshi reklamalarni chiqaradigan tartib modeli ishga tushiriladi. Ushbu komponent bir xil xususiyatlar do'koni va online xususiyat hisoblash komponenti bilan o'zaro ta'sir qiladi. Statik va dinamik xususiyatlar olingandan so'ng, tartib xizmati har bir nomzod reklama uchun bashorat qilingan bosish ehtimolini olish uchun modeldan foydalanadi. Bu ehtimollar reklamalarni tartiblashtirish va eng yuqori bosish ehtimollariga ega bo'lganlarni chiqarish uchun ishlatiladi.

Nihoyat, qayta tartiblashtirish xizmati qo'shimcha mantiq va evristikalarni o'z ichiga olish orqali reklamalar ro'yxatini o'zgartiradi. Masalan, ro'yxatdan juda o'xshash reklamalarni olib tashlash orqali reklamalar xilma-xilligini oshirishimiz mumkin.

Boshqa Muhokama Mavzulari

Agar suhbat oxirida vaqt qolsa, suhbatdosh bilan muhokama qilishingiz mumkin bo'lgan ba'zi potentsial mavzular:

  • Tartiblash va tavsiya tizimlarida ma'lumotlar sizishini oldini olish muhim [12][13][12][13][12][13]
  • Reklama bosilishini bashorat qilish tizimlarida model kalibratsiya qilinishi kerak. Model kalibratsiyasini va modelni kalibratsiya qilish usullarini muhokama qiling [14].
  • FM ning keng tarqalgan varianti maydondan xabardor Faktorizatsiya Mashinalari (FFM) hisoblanadi. FFM va u FM dan qanday farqlanishi haqida gapirish foydali [15].
  • DeepFM ning keng tarqalgan varianti XDeepFM hisoblanadi. XDeepFM va u DeepFM dan qanday farqlanishi haqida gapiring [10].
  • Reklama bosilishini bashorat qilish tizimlari uchun nima uchun uzluksiz o'qitish zarurligini ta'rifladik. Biroq, yangi ma'lumotlar bo'yicha doimiy o'qitish halokatli unutishga olib kelishi mumkin. Halokatli unutish nima va uning keng tarqalgan yechimlari qanday ekanligini muhokama qiling [16].

Adabiyotlar

  1. Kechiktirilgan fikr-mulohazalarni hal qilish. https://arxiv.org/pdf/1907.06558.pdf.
  2. AdTech asoslari. https://advertising.amazon.com/library/guides/what-is-adtech.
  3. SimCLR maqolasi. https://arxiv.org/pdf/2002.05709.pdf.
  4. Xususiyat kesishuvi. https://developers.google.com/machine-learning/crash-course/feature-crosses/video-lecture.
  5. GBDT bilan xususiyatlarni ajratib olish. https://towardsdatascience.com/gradient-boosted-decision-trees-explained-9259bd8205af/.
  6. DCN maqolasi. https://arxiv.org/pdf/1708.05123.pdf.
  7. DCN V2 maqolasi. https://arxiv.org/pdf/2008.13535.pdf.
  8. Microsoft ning deep crossing network maqolasi. https://www.kdd.org/kdd2016/papers/files/adf0975-shanA.pdf.
  9. Faktorizatsiya Mashinalari. https://www.jefkine.com/recsys/2017/03/27/factorization-machines/.
  10. Deep Faktorizatsiya Mashinalari. https://d2l.ai/chapter_recommender-systems/deepfm.html.
  11. Reklama bosilishi bashoratida Kaggle g'olib yechim. https://www.youtube.com/watch?v=4Go5crRVyuU.
  12. ML tizimlarida ma'lumotlar sizishi. https://machinelearningmastery.com/data-leakage-machine-learning/.
  13. Vaqtga asoslangan to'plamni bo'lish. https://www.linkedin.com/pulse/time-based-splitting-determining-train-test-data-come-manraj-chalokia/?trk=public_profile_article_view.
  14. Model kalibratsiyasi. https://machinelearningmastery.com/calibrated-classification-model-in-scikit-learn/.
  15. Maydondan xabardor Faktorizatsiya Mashinalari. https://www.csie.ntu.edu.tw/~cjlin/papers/ffm.pdf.
  16. Doimiy o'qitishdagi halokatli unutish muammosi. https://www.cs.uic.edu/~liub/lifelong-learning/continual-learning.pdf.
Bob 9

Dam Olish Ijarasi Platformalarida O'xshash E'lonlar

~13 daq o'qish

Dam Olish Ijarasi Platformalarida O'xshash E'lonlar

Foydalanuvchi hozir ko'rib turgan narsalarga o'xshash elementlarni tavsiya qilish katta platformalarda odamlar potentsial tegishli kontent topishiga imkon beradigan asosiy texnologiya hisoblanadi. Masalan, Airbnb o'xshash turar joy e'lonlarini, Amazon o'xshash mahsulotlarni tavsiya qiladi va Expedia foydalanuvchilarga o'xshash tajribalarni tavsiya qiladi.

Ushbu bobda biz Airbnb va Vrbo kabi dam olish ijarasi veb-saytlari foydalanadiganiga o'xshash «o'xshash e'lonlar» funksiyasini loyihalashtiramiz. Foydalanuvchi ma'lum bir e'lonni bosganda, unga o'xshash e'lonlar ro'yxati tavsiya qilinadi.

Talablarni Aniqlashtirish

Bu yerda nomzod va suhbatdosh o'rtasidagi odatiy muloqot keltirilgan.

Nomzod: Biznes maqsadi bron qilishlar sonini oshirish deb taxmin qilsam bo'ladimi? Suhbatdosh: Ha.

Nomzod: «O'xshashlik» ta'rifi nima? Tavsiya etilayotgan e'lonlar foydalanuvchi hozir ko'rib turgan e'longa o'xshash bo'lishi kutilmoqdami? Suhbatdosh: Ha, to'g'ri. Ikkita e'lon bir xil mahalla, shahar, narx diapazoni va hokazoda joylashganda o'xshash deb hisoblanadi.

Nomzod: Tavsiya etilayotgan e'lonlar foydalanuvchilarga moslashtiriladimi? Suhbatdosh: Biz bu funksiya tizimga kirgan va anonim foydalanuvchilar uchun ishlashini xohlaymiz. Amalda, biz ikki guruhni turlicha ko'ramiz va tizimga kirgan foydaluvchilarga moslashtirish qo'llaymiz. Biroq, soddalik uchun tizimga kirgan va anonim foydalanuvchilarga teng munosabatda bo'lamiz deb faraz qilaylik.

Nomzod: Platformada qancha e'lon mavjud? Suhbatdosh: 5 million e'lon.

Nomzod: O'qitish to'plamini qanday tuzamiz? Suhbatdosh: Yaxshi savol. Ushbu suhbat uchun faqat foydalanuvchi-e'lon o'zaro ta'sirlaridan foydalanamiz deb faraz qilaylik. Model foydalanuvchi atributlaridan, masalan yoshi yoki joylashuvidan, yoki e'lon atributlaridan, masalan narxi va joylashuvidan umuman foydalanmaydi.

Nomzod: Yangi e'lonlar o'xshash e'lonlar natijalarida paydo bo'lishi uchun qancha vaqt kerak? Suhbatdosh: Yangi e'lonlar joylashtirilgandan bir kun keyin tavsiya sifatida paydo bo'lishi mumkin deb faraz qilaylik. Bu vaqt davomida tizim yangi e'lonlar uchun o'zaro ta'sir ma'lumotlarini yig'adi.

Muammo bayonotini xulosalaymiz. Bizdan dam olish ijarasi platformalari uchun «o'xshash e'lonlar» funksiyasini loyihalash so'ralgan. Kiritish foydalanuvchi hozir ko'rib turgan ma'lum bir e'lon, chiqish esa foydalanuvchi keyingi bosganga o'xshash e'lonlarning tartiblangan ro'yxati. Tavsiya etilayotgan e'lonlar anonim va tizimga kirgan foydalanuvchilar uchun bir xil bo'lishi kerak. Platformada taxminan 5 million e'lon mavjud va yangi e'lonlar bir kundan keyin tavsiyalarda paydo bo'lishi mumkin. Tizimning biznes maqsadi bron qilishlar sonini oshirishdir.

Muammoni ML Vazifasi Sifatida Shakllantirish

ML maqsadini aniqlash

Foydalanuvchi bosadigan e'lonlar ketma-ketligi odatda bir xil shaharda joylashish yoki o'xshash narx diapazoniga ega bo'lish kabi o'xshash xususiyatlarga ega. Biz ushbu kuzatuvga tayanib ML maqsadini quyidagicha aniqlaymiz: foydalanuvchi hozir ko'rib turgan e'longa asoslanib, foydalanuvchi keyingi qaysi e'lonni bosishini aniq bashorat qilish.

Tizimning kiritish va chiqarishini belgilash

9.2-rasmda ko'rsatilganidek, «o'xshash e'lonlar» tizimi kiritish sifatida foydalanuvchi hozir ko'rib turgan e'lonni qabul qiladi va keyin e'lonlarning tartiblangan ro'yxatini, ushbu foydalanuvchi tomonidan ularni bosilish ehtimollariga ko'ra saralab chiqaradi.

To'g'ri ML kategoriyasini tanlash

Ko'pgina tavsiya tizimlari foydalanuvchilarning uzoq muddatli qiziqishlarini tushunish uchun ularning tarixiy o'zaro ta'sirlariga tayanadi. Biroq, bunday tavsiya tizimlari o'xshash e'lonlar muammosini hal qilishda yaxshi bo'lmasligi mumkin. Bizning vaziyatimizda, yaqinda ko'rilgan e'lonlar uzoq vaqt oldin ko'rilganlardan ko'ra ko'proq ma'lumotga ega. Bunday holda, sessiyaga asoslangan tavsiya tizimi odatda qo'llaniladi.

Airbnb kabi ko'plab elektron tijorat va sayohat bron qilish platformalari tavsiyalar uchun ko'proq qisqa muddatli qiziqishlarga tayanadi. Yuqori sifatli tavsiyalar uzoq muddatli qiziqishlardan ko'ra yaqindagi o'zaro ta'sirlarga ko'proq bog'liq bo'lgan tizimlarda, sessiyaga asoslangan tavsiya ko'pincha an'anaviy tavsiya tizimlarining o'rnini bosadi. Sessiyaga asoslangan tavsiya foydalanuvchining joriy ko'rish sessiyasi asosida tavsiyalar beradi. Endi sessiyaga asoslangan tavsiya tizimlarini batafsilroq ko'rib chiqamiz.

Sessiyaga asoslangan tavsiya tizimlari

Sessiyaga asoslangan tavsiya tizimi foydalanuvchi tomonidan ko'rilgan so'nggi elementlar ketma-ketligiga asoslanib keyingi elementni bashorat qilishga qaratilgan. Tizimda foydalanuvchilarning qiziqishlari kontekstga bog'liq va tez o'zgaradi. Yaxshi tavsiya foydalanuvchining umumiy qiziqishlaridan ko'ra uning eng so'nggi o'zaro ta'sirlariga kuchli bog'liq.

Sessiyaga asoslangan va an'anaviy tavsiya tizimlari qanday taqqoslanadi?

An'anaviy tavsiya tizimlarida foydalanuvchilarning qiziqishlari kontekstdan mustaqil va juda tez-tez o'zgarmaydi. Sessiyaga asoslangan tavsiyalarda foydalanuvchilarning qiziqishlari dinamik va tez o'zgaradi. An'anaviy tavsiya tizimining maqsadi foydalanuvchilarning umumiy qiziqishlarini o'rganish. Buning aksiga o'laroq, sessiyaga asoslangan tavsiya tizimlari foydalanuvchilarning so'nggi ko'rish tarixiga asoslanib ularning qisqa muddatli qiziqishlarini tushunishga qaratilgan.

Sessiyaga asoslangan tavsiya tizimlarini yaratishning keng qo'llaniladigan usuli foydalanuvchilarning ko'rish tarixi qaydlarida elementlarning birgalikda paydo bo'lishlaridan foydalanib element embeddinglarini o'rganishdir. Masalan, Instagram o'zining «Kashf qilish» funksiyasini qo'llab-quvvatlash uchun hisob embeddinglarini o'rganadi [1], Airbnb o'xshash e'lonlar funksiyasini qo'llab-quvvatlash uchun e'lon embeddinglarini o'rganadi [2] va word2vec [3] mazmunli so'z embeddinglarini o'rganish uchun o'xshash yondashuvdan foydalanadi.

Ushbu bobda biz «o'xshash e'lonlar» muammosini sessiyaga asoslangan tavsiya vazifasi sifatida shakllantiramiz. Biz har bir e'lonni embedding vektoriga aks ettiradigan modelni o'qitish orqali tizim yaratamiz, shunda agar ikkita e'lon foydalanuvchilarning ko'rish tarixida tez-tez birgalikda paydo bo'lsa, ularning embedding vektorlari embedding maydoni ichida yaqin joylashgan bo'ladi.

O'xshash e'lonlarni tavsiya qilish uchun hozir ko'rilayotgan e'longa eng yaqin e'lonlarni topish maqsadida embedding maydonini qidiramiz. Keling, buning misolini ko'raylik. 9.4-rasmda har bir e'lon 2D maydoniga aks ettirilgan. LtL_tLt​ ga o'xshash e'lonlarni tavsiya qilish uchun eng yaqin embeddinglariga ega 3 ta e'lonni tanlaymiz.

Ma'lumotlarni Tayyorlash

Ma'lumotlar muhandisligi

Quyidagi ma'lumotlar mavjud:

  • Foydalanuvchilar
  • E'lonlar
  • Foydalanuvchi-e'lon o'zaro ta'sirlari
Foydalanuvchilar

Soddalashtirilgan foydalanuvchi ma'lumotlari sxemasi quyida ko'rsatilgan.

IDUsernameAgeGenderCityCountryLanguageTime zone

9.1-jadval: Foydalanuvchi ma'lumotlari sxemasi

E'lonlar

E'lon ma'lumotlari narx, to'shaklarning soni, xo'jayin IDsi va hokazo kabi har bir e'longa tegishli atributlarni o'z ichiga oladi. 9.2-jadval e'lon ma'lumotlari qanday ko'rinishi mumkinligining oddiy misolini ko'rsatadi.

IDHost IDPriceSq ftRateTypeCityBedsMax guests
113513510604.97Entire placeNYC34
281808304.6Private roomSF12
3646525405.0Shared roomBoston46

9.2-jadval: E'lon ma'lumotlari

Foydalanuvchi-e'lon o'zaro ta'sirlari

9.3-jadval taassurotlar, bosishlar va bronlar kabi foydalanuvchi-e'lon o'zaro ta'sirlarini saqlaydi.

IDUser IDListing IDPosition of the listing in the displayed listInteraction typeSourceTimestamp
218262ClickSearch feature1655121925
35185BookSimilar listing feature1655135257

9.3-jadval: Foydalanuvchi-e'lon o'zaro ta'sir ma'lumotlari

Xususiyatlar muhandisligi

«Muammoni ML Vazifasi Sifatida Shakllantirish» bo'limida ta'riflanganidek, model o'qitish davomida faqat foydalanuvchilarning ko'rish tarixidan foydalanadi. E'lon narxi, foydalanuvchi yoshi va hokazo kabi boshqa ma'lumotlar ishlatilmaydi.

Ushbu bobda ko'rish tarixi «qidiruv sessiyalari» deb ataladi. Qidiruv sessiyasi to'xtatmasdan ketma-ket bosilgan e'lonlar IDlari, so'ngra oxir-oqibat bron qilingan e'londan iborat. 9.5-rasm qidiruv sessiyasining misolini ko'rsatadi, bunda foydalanuvchi sessiyasi foydalanuvchi L1L_1L1​ ni bosganida boshlangan va foydalanuvchi L20L_{20}L20​ ni oxir-oqibat bron qilganida tugagan.

Xususiyatlar muhandisligi bosqichida biz o'zaro ta'sir ma'lumotlaridan qidiruv sessiyalarini ajratib olamiz. 9.4-jadval qidiruv sessiyalarining oddiy misolini ko'rsatadi.

Session IDClicked listing IDsEventually booked listing ID
11,5,4,926
26,8,9,21,6,13,65
35,911

9.4-jadval: Qidiruv sessiyasi ma'lumotlari

Model Ishlab Chiqish

Model tanlash

Neyron tarmoq embeddinglarni o'rganishning standart usuli hisoblanadi. Neyron tarmoq uchun yaxshi arxitekturani tanlash vazifaning murakkabligi, o'qitish ma'lumotlari miqdori va hokazo kabi turli omillarga bog'liq. Neyron tarmoq arxitekturalari bilan bog'liq giperparametrlarni, masalan neyronlar soni, qatlamlar, aktivatsiya funksiyasi va hokazolarni tanlashning bir keng tarqalgan usuli eksperimentlar o'tkazish va eng yaxshi ishlash ko'rsatadigan arxitekturani tanlashdir. Bizning holatimizdagi e'lon embeddinglarini o'rganish uchun sayoz neyron tarmoq arxitekturasini tanlaymiz.

Modelni o'qitish

9.6-rasmda ko'rsatilganidek, berilgan kiritish e'lon uchun modelning vazifasi kiritish e'lonning kontekstidagi e'lonlarni bashorat qilishdir.

O'qitish jarayoni e'lon embeddinglarini tasodifiy vektorlarga ishga tushirishdan boshlanadi. Bu embeddinglar suruvchi oyna usulidan foydalanib qidiruv sessiyalarini o'qish orqali asta-sekin o'rganiladi. Oyna siljigan sari, oynadagi markaziy e'lonning embeddingiga oyna ichidagi boshqa e'lonlarning embeddingiga o'xshash, oyna tashqarisidagi e'lonlarnikidan esa farqli bo'lishi uchun yangilanadi. Keyin model berilgan e'lonning kontekstini bashorat qilish uchun bu embeddinglardan foydalanadi.

Modelni yangi e'lonlarga moslashtirish uchun uni yangi tuzilgan o'qitish ma'lumotlarida har kunda o'qitamiz.

To'plamni tuzish

To'plamni tuzishning turli yo'llari mavjud. Bizning holatimizda, embeddinglarni o'rganish uchun odatda qo'llaniladigan «salbiy namunalash» [4] deb atalgan usulni tanlaymiz.

O'qitish ma'lumotlarini tuzish uchun qidiruv sessiyalaridan ijobiy juftlar va salbiy juftlar yaratamiz. Ijobiy juftlar o'xshash embeddinglariga ega bo'lishi kutilayotgan e'lonlar, salbiy juftlar esa o'xshamagan embeddinglariga ega bo'lishi kutilayotganlar.

Aniqroq qilib aytganda, har bir sessiya uchun suruvchi oyna usulidan foydalanib e'lonlar orqali o'tamiz. Oyna siljigan sari, ijobiy juftlar yaratish uchun oynadagi markaziy e'londan va uning kontekst e'lonlaridan foydalanamiz. Salbiy juftlar tuzish uchun markaziy e'londan va tasodifiy namunalangan e'lonlardan foydalanamiz. Ijobiy juftlarga 1, salbiy juftlarga esa 0 haqiqiy yorliq beriladi.

9.7-rasm qidiruv sessiyasi bo'ylab surish orqali ijobiy va salbiy juftlar qanday generatsiya qilinishini ko'rsatadi.

Yo'qotish funksiyasini tanlash

Yo'qotish funksiyasi haqiqiy yorliq va bashorat qilingan ehtimol o'rtasidagi kelishuvni o'lchaydi. Agar ikkita e'lon ijobiy juft hosil qilsa, embeddinglar yaqin bo'lishi kerak, va agar ikkita e'lon salbiy juft hosil qilsa, embeddinglar bir-biridan uzoq bo'lishi kerak. Rasmiyroq qilib aytganda, yo'qotishni hisoblash qadamlari quyidagilar:

  1. Ikki embedding o'rtasidagi masofani hisoblang (masalan, nuqtaviy ko'paytma).
  2. Hisoblangan masofani 0 va 1 o'rtasidagi ehtimol qiymatiga aylantirish uchun Sigmoid funksiyasidan foydalaning.
  3. Bashorat qilingan ehtimol va haqiqiy yorliq o'rtasidagi yo'qotishni o'lchash uchun standart klassifikatsiya yo'qotishi sifatida cross-entropy dan foydalaning.

9.8-rasm yo'qotishni hisoblash qadamlarini ko'rsatadi.

Yo'qotish quyidagi formula bilan ifodalanishi mumkin:

Bunda:

  • c markaziy e'lon, p ijobiy e'lon (c bilan kontekstda birgalikda paydo bo'lgan) va n salbiy e'lon (c bilan birgalikda paydo bo'lmagan)
  • EcE_cEc​ markaziy c e'lonning embedding vektorini ifodalaydi
  • EnE_nEn​ salbiy n e'lonning embedding vektorini ifodalaydi
  • EpE_pEp​ ijobiy p e'lonning embedding vektorini ifodalaydi
  • DpD_pDp​ vektorlari bir-biriga yaqinlashtirilayotgan (markaziy e'lon, kontekst e'loni) kortejlarini ifodalovchi ⟨c,p⟩\langle c, p\rangle⟨c,p⟩ juftlarining ijobiy to'plami
  • DnD_nDn​ vektorlari bir-biridan uzoqlashtirilayotgan (markaziy e'lon, tasodifiy e'lon) kortejlarini ifodalovchi ⟨c,n⟩\langle c, n\rangle⟨c,n⟩ juftlarining salbiy to'plami

Birinchi yig'indi ijobiy juftlar bo'ylab yo'qotishni, ikkinchi yig'indi esa salbiy juftlar bo'ylab yo'qotishni hisoblaydi.

Yaxshiroq embeddinglarni o'rganish uchun yo'qotish funksiyasini yaxshilash mumkinmi?

Yuqorida ta'riflangan yo'qotish funksiyasi yaxshi boshlang'ich nuqta, lekin uning ikkita kamchiligi bor. Birinchidan, o'qitish davomida markaziy e'lonning embeddingiga kontekstidagi embeddinglariga yaqin bo'lishi uchun itariladi, lekin oxir-oqibat bron qilingan e'lonning embeddingiga emas. Bu qo'shni bosilgan e'lonlarni bashorat qilishda yaxshi bo'lgan, lekin oxir-oqibat bron qilingan e'lonlarni bashorat qilishda emas. Bu foydalanuvchilarga bronga olib keluvchi e'lonni topishda yordam berishning optimal usuli emas.

Ikkinchidan, avvalgi salbiy juftlar asosan turli mintaqalardan e'lonlarni o'z ichiga oladi, chunki ular tasodifiy namunalangan. Biroq, foydalanuvchilar odatda faqat ma'lum mintaqada, masalan San Francisco da qidiradilar. Bu bir xil mintaqadagi e'lonlar uchun yaxshi ishlamaydigan embeddinglar hosil qilishi mumkin; ular kontekstda birgalikda paydo bo'lmagan, lekin bir xil mintaqadan bo'lgan.

Keling, bu kamchiliklarni hal qilaylik.

Oxir-oqibat bron qilingan e'londan global kontekst sifatida foydalanish Oxir-oqibat bron qilingan e'lonlarni bashorat qilishda yaxshi embeddinglarni o'rganish uchun, o'qitish bosqichida oxir-oqibat bron qilingan e'lonni global kontekst sifatida ko'rib chiqamiz. Oyna siljigan sari, ba'zi e'lonlar kontekst to'plamiga kiradi yoki undan chiqadi, oxir-oqibat bron qilingan e'lon esa doimo global kontekstda qoladi va markaziy e'lon vektorini yangilash uchun ishlatiladi.

O'qitish davomida oxir-oqibat bron qilingan e'londan global kontekst sifatida foydalanish uchun ⟨\langle⟨ markaziy e'lon, oxir-oqibat bron qilingan e'lon ⟩\rangle⟩ juftlarini o'qitish ma'lumotlarimizga qo'shamiz va ularni ijobiy deb belgilaymiz. Bu model o'qitish davomida oxir-oqibat bron qilingan e'lonning embeddingini sessiyada bosilgan e'lonlarning har birining embeddingiga yaqin itarishga majbur qiladi, 9.9-rasmda ko'rsatilganidek.

O'qitish ma'lumotlariga bir xil mintaqadan salbiy juftlar qo'shing

Oyna siljigan sari, markaziy e'lon bilan bir xil mahalladan bo'lgan va markaziy e'lonning kontekstida bo'lmagan e'lonni tanlaymiz. Juftni salbiy deb belgilaymiz va o'qitish ma'lumotlarimizga qo'shamiz. Keling, yangi qo'shilgan o'qitish ma'lumotlarini hisobga oladigan yangilangan yo'qotish funksiyasini ko'raylik.

Bunda:

  • EbE_bEb​ oxir-oqibat bron qilingan b e'lonning embedding vektorini ifodalaydi
  • Dbooked D_{\text {booked }}Dbooked ​ vektorlari bir-biriga yaqinlashtirilayotgan (markaziy e'lon, bron qilingan e'lon) kortejlarini ifodalovchi ⟨c,b⟩\langle c, b\rangle⟨c,b⟩ juftlari
  • Dhard D_{\text {hard }}Dhard ​ vektorlari bir-biridan uzoqlashtirilayotgan (markaziy e'lon, bir xil mintaqadan salbiy e'lon) kortejlarini ifodalovchi qiyin salbiy ⟨c,n⟩\langle c, n\rangle⟨c,n⟩ juftlari

Birinchi ikkita yig'indini avval tushuntirdik. Uchinchi yig'indi global kontekstni o'z ichiga olgan yangi qo'shilgan ijobiy juftlar bo'ylab yo'qotishni hisoblaydi. Bu modelga markaziy e'lonlarning embeddinglarini oxir-oqibat bron qilingan e'lonlarning embeddinglariga yaqin itarishga yordam beradi.

To'rtinchi yig'indi bir xil mintaqadan yangi qo'shilgan salbiy juftlar bo'ylab yo'qotishni hisoblaydi. U modelni ularning embeddinglarini bir-biridan uzoq itarishga majbur qiladi.

Baholash

Offline metrikalar

Model ishlab chiqish bosqichida modelning chiqish sifatini o'lchash va yangi ishlab chiqilgan modellarni eskisi bilan taqqoslash uchun offline metrikalardan foydalanamiz. O'rganilgan embeddinglarni baholashning bir usuli ularning eng so'nggi foydalanuvchi bosilishiga asoslanib, oxir-oqibat bron qilingan e'lonni bashorat qilishda qanchalik yaxshi ekanligini sinab ko'rishdir. Keling, «oxir-oqibat bron qilingan e'lonning o'rtacha tartibi» deb atalgan metrika yaratamiz va buni batafsil muhokama qilaylik.

Oxir-oqibat bron qilingan e'lonning o'rtacha tartibi. Ushbu metrikani tushunish uchun misol ko'raylik. 9.10-rasm foydalanuvchining qidiruv sessiyasini ko'rsatadi. Ko'rib turganimizdek, qidiruv sessiyasi jami ettita e'londan iborat. Birinchi e'lon foydalanuvchi birinchi ko'rgan narsa (L0)\left(L_0\right)(L0​). Keyingi beshtasi foydalanuvchi ketma-ket bosgan e'lonlar. Oxirgisi (L6)\left(L_6\right)(L6​) foydalanuvchi oxir-oqibat bron qilgan e'lon.

Birinchi bosilgan e'lon va boshqa e'lonlar o'rtasidagi embedding maydonidagi o'xshashliklarni hisoblash uchun modeldan foydalanamiz. O'xshashliklar hisoblanganidan so'ng, e'lonlar tartiblanadi. Oxir-oqibat bron qilingan e'lonning pozitsiyasi yangi modeldan foydalanib uni (L6)\left(L_6\right)(L6​) tartib ro'yxatida qanchalik yuqori tavsiya qilishimiz mumkinligini ko'rsatadi. 9.10-rasmda ko'rishingiz mumkinki, yangi model (ikkinchi satr) oxir-oqibat bron qilingan e'lonni (L6)\left(L_6\right)(L6​) ikkinchi o'ringa qo'ya oldi.

Agar model oxir-oqibat bron qilingan e'lonni yuqori tartibda joylashtirsq, bu o'rganilgan embeddinglar oxir-oqibat bron qilingan e'lonni tavsiya ro'yxatida avvalroq joylashtira olishini ko'rsatadi. Ushbu metrika qiymatini hisoblash uchun tasdiqlash to'plamidagi barcha sessiyalar bo'yicha oxir-oqibat bron qilingan e'lonlarning tartibini o'rtacha hisoblaymiz.

Online metrikalar

Talablarga ko'ra, biznes maqsadi bron qilishlar sonini oshirishdir. Online metrikalar uchun ba'zi variantlar:

  • Bosish ulushi (CTR)
  • Sessiya bron ulushi

CTR. Tavsiya etilayotgan e'lonlarni ko'rgan odamlarning qanchasinin ularni bosishini ko'rsatadigan nisbat.

Bu metrika foydalanuvchi jalb darajasini o'lchash uchun ishlatiladi. Masalan, foydalanuvchilar e'lonlarni ko'proq bosganida, ba'zi bosilgan e'lonlarning bronajga aylanishi ehtimoli yuqori bo'ladi. Lekin CTR platformada amalga oshirilgan bron qilishlar haqiqiy sonini o'lchamayapti, shuning uchun CTR ni to'ldirish uchun «sessiya bron ulushi» metrikasidan foydalanamiz.

Sessiya bron ulushi. Qancha qidiruv sessiyalarining bronajga aylanishini ko'rsatadigan nisbat.

Bu metrika bron qilishlar sonini oshirish bo'lgan biznes maqsadimiz bilan bevosita bog'liq. «Sessiya bron ulushi» qanchalik yuqori bo'lsa, platforma shuncha ko'p daromad keltiradi.

Xizmat Ko'rsatish

Xizmat ko'rsatish vaqtida tizim foydalanuvchi hozir ko'rib turgan e'longa o'xshash e'lonlarni tavsiya qiladi. 9.11-rasm ML tizim dizaynining umumiy ko'rinishini ko'rsatadi.

Keling, asosiy komponentlarni batafsil ko'rib chiqamiz.

O'qitish pipeline

O'qitish pipeline yangi e'lonlar va foydalanuvchi-e'lon o'zaro ta'sirlari yordamida modelni nozik sozlaydi. Bu model doimo yangi o'zaro ta'sirlar va e'lonlarga moslashtirilishini ta'minlaydi.

Indekslash pipeline

O'qitilgan model bilan platformadagi barcha e'lonlarning embeddinglarini oldindan hisoblash va indeks jadvalida saqlash mumkin. Bu bashorat pipelineni sezilarli darajada tezlashtiradi.

Indekslash pipeline indeks jadvalini yaratadi va saqlaydi. Masalan, yangi e'lon embeddingiga erishilganda, pipeline uning embeddingini indeks jadvaliga qo'shadi. Bundan tashqari, yangi o'qitilgan model paydo bo'lganda, pipeline yangi model yordamida barcha embeddinglarni qayta hisoblaydi va indeks jadvalini yangilaydi.

Bashorat pipeline

Bashorat pipeline foydalanuvchi hozir ko'rib turgan e'longa o'xshash e'lonlarni tavsiya qiladi. 9.11-rasmda ko'rsatilganidek, bashorat pipeline quyidagilardan iborat:

  • Embedding oluvchi xizmat
  • Eng yaqin qo'shni xizmat
  • Qayta tartiblashtirish xizmati

Keling, har bir komponentni ko'rib chiqaylik.

Embedding oluvchi xizmat

Bu xizmat kiritish sifatida hozir ko'rilayotgan e'lonni qabul qiladi va e'lon o'qitish davomida model tomonidan ko'rilganmi yoki yo'qligiga qarab har xil harakat qiladi.

Kiritish e'lon o'qitish davomida model tomonidan ko'rilgan

Agar e'lon o'qitish davomida ko'rilgan bo'lsa, uning embedding vektori allaqachon o'rganilgan va indeks jadvalida mavjud. Bunday holda, embedding oluvchi xizmat to'g'ridan-to'g'ri indeks jadvalidan e'lon embeddingini oladi.

Kiritish e'lon o'qitish davomida model tomonidan ko'rilmagan

Agar kiritish e'lon yangi bo'lsa, model uni o'qitish davomida ko'rmagan. Berilgan e'lonning embeddingiga ega bo'lmasak, o'xshash e'lonlarni topa olmasligimiz sababli bu muammo tug'diradi.

Ushbu muammoni hal qilish uchun embedding oluvchi xizmat yangi e'lonlarni boshqarish uchun evristikalardan foydalanadi. Masalan, e'lon yangi bo'lganda geografik jihatdan yaqin e'lonning embeddingidan foydalanishimiz mumkin. Yangi e'lon uchun yetarli o'zaro ta'sir ma'lumotlari to'planganda, o'qitish pipeline modelni nozik sozlash orqali embeddingni o'rganadi.

Eng yaqin qo'shni xizmat

O'xshash e'lonlarni tavsiya qilish uchun hozir ko'rilayotgan e'lonning embeddingai va platformadagi boshqa e'lonlarning embeddinglar o'rtasidagi o'xshashlikni hisoblashimiz kerak. Bu yerda eng yaqin qo'shni xizmat ishga tushadi. Bu xizmat bu o'xshashliklarni hisoblab, embedding maydonidagi eng yaqin qo'shni e'lonlarni chiqaradi.

Talablardan esda tutingki, platformada besh million e'lon mavjud. Bu ko'plab e'lonlar uchun o'xshashliklarni hisoblash vaqt talab qiladi va xizmat ko'rsatishni sekinlashtirishi mumkin. Shuning uchun qidiruvni tezlashtirish uchun taxminiy eng yaqin qo'shni usulidan foydalanamiz.

Qayta tartiblashtirish xizmati

Bu xizmat foydalanuvchi filtrlari va ma'lum cheklovlarni qo'llash orqali e'lonlarni o'zgartiradi. Masalan, agar e'lon foydalanuvchi tomonidan o'rnatilgan ma'lum narx filtridan yuqori bo'lsa, bu qatlam uni olib tashlaydi. Bundan tashqari, hozir ko'rilayotgan e'londan boshqa shaharlardagi e'lonlar foydalanuvchiga ko'rsatishdan oldin ro'yxatdan olib tashlanishi mumkin.

Boshqa Muhokama Mavzulari

Agar suhbat oxirida vaqt qolsa, qo'shimcha muhokama mavzulari:

  • Pozitsion noto'g'rilik nima va u qanday hal qilinadi [5].
  • Sessiyaga asoslangan yondashuv tasodifiy yurish [6] bilan qanday taqqoslanadi va qayta ishga tushirish bilan tasodifiy yurish (RWR) o'xshash e'lonlarni tavsiya qilish uchun qanday ishlatilishi mumkin [7].
  • Foydalanuvchilarning uzoq muddatli qiziqishlarini hisobga olgan holda (sessiya ichida moslashtirish) sessiyaga asoslangan tavsiya tizimi natijalarini qanday moslashtirish mumkin [2].
  • Mavsumiylik dam olish ijarasiga kuchli ta'sir qilishini hisobga olib, o'xshash e'lonlar tizimimizga mavsumiylikni qanday kiritishimiz kerak [8].

Adabiyotlar

  1. Instagram Explore tavsiya tizimi. https://ai.facebook.com/blog/powered-by-ai-instagrams-explore-recommender-system.
  2. Qidiruv tartibidagi e'lon embeddinglar. https://medium.com/airbnb-engineering/listing-embeddings-for-similar-listing-recommendations-and-real-time-personalization-in-search-601172f7603e.
  3. Word2vec. https://en.wikipedia.org/wiki/Word2vec.
  4. Salbiy namunalash texnikasi. https://www.baeldung.com/cs/nlps-word2vec-negative-sampling.
  5. Pozitsion noto'g'rilik. https://eugeneyan.com/writing/position-bias/.
  6. Tasodifiy yurish. https://en.wikipedia.org/wiki/Random_walk.
  7. Qayta ishga tushirish bilan tasodifiy yurish. https://www.youtube.com/watch?v=HbzQzUaJ_9I.
  8. Tavsiya tizimlarida mavsumiylik. https://www.computer.org/csdl/proceedings-article/big-data/2019/09005954/1hJsfgT0qL6.
Bob 10

Shaxsiylashtiriлган Yangiliklar Tasmasi

~14 daq o'qish

Shaxsiylashtirilgan Yangiliklar Tasmasi

Kirish

Yangiliklar tasmasi — ijtimoiy tarmoq platformalarining foydalanuvchilarni platformada ushlab turish uchun mo'ljallangan xususiyati bo'lib, do'stlarning so'nggi faoliyatini ularning lentasida ko'rsatadi. Facebook [1], Twitter [2] va LinkedIn [3] kabi ko'pchilik ijtimoiy tarmoqlar foydalanuvchi faolligini saqlab qolish uchun yangiliklar tasmasini shaxsiylashtiradi.

Ushbu bobda bizdan shaxsiylashtirilgan yangiliklar tasmasi tizimini loyihalash so'raladi.

Talablarni Aniqlashtirish

Nomzod va suhbatdosh o'rtasidagi odatiy muloqot quyidagicha.

Nomzod: Shaxsiylashtirilgan yangiliklar tasmasining maqsadi foydalanuvchilarni platformada ushlab turish deb faraz qilsam bo'ladimi? Suhbatdosh: Ha, biz postlar orasida reklama ko'rsatamiz va faollik oshgani sari daromad ham ortadi.

Nomzod: Foydalanuvchi lentasini yangilaganida ularga yangi faollikdagi postlar ko'rsatiladi. Bu faollik ko'rilmagan postlar va ko'rilmagan izohlar bilan postlarni o'z ichiga oladi, deb faraz qilsam to'g'rimi? Suhbatdosh: Bu mantiqli faraz.

Nomzod: Post matnli kontent, rasmlar, video yoki ularning birikmasini o'z ichiga olishi mumkinmi? Suhbatdosh: Har qanday birikmasi bo'lishi mumkin.

Nomzod: Foydalanuvchilarni ushlab turish uchun tizim eng qiziqarli kontentni lenta boshiga joylashtirishi kerak, chunki odamlar birinchi bir nechta postga ko'proq murojaat qiladi. Bu to'g'rimi? Suhbatdosh: Ha, to'g'ri.

Nomzod: Biz qaysi turdagi faollikni optimallashtiramiz? Bosish, layk bosish va ulashish kabi turli xil faollik turlari borligini faraz qilaman. Suhbatdosh: Ajoyib savol. Platformamizdagi turli reaktsiyalarning turlicha qiymati bor. Masalan, postni layklash uni faqat bosishdan ko'ra qimmatroq. Ideal holda, tizimimiz postlarni reytinglashda asosiy reaktsiyalarni hisobga olishi kerak. Shu bilan, "faollik" ta'rifini o'zingiz belgilashingiz va modelingiz nima uchun optimallashtirishini tanlashingizni sizga qoldiraman.

Nomzod: Platformadagi asosiy reaktsiyalar qaysilar? Foydalanuvchilar bosishi, layk bosishi, ulashishi, izoh qoldirishi, yashirishi, boshqa foydalanuvchini bloklashi va do'stlik so'rovi yuborishi mumkin deb faraz qilaman. Hisobga olishimiz kerak bo'lgan boshqa reaktsiyalar bormi? Suhbatdosh: Asosiy reaktsiyalarni sanab o'tdingiz. Shularga e'tiborimizni qarataylik.

Nomzod: Tizim qanchalik tez ishlashi kerak? Suhbatdosh: Foydalanuvchilar lentasini yangilaganidan yoki ilovani ochganidan so'ng tizim reytinglangan postlarni tezda ko'rsatishi kerak. Juda uzoq kutilsa, foydalanuvchilar zerikib ketadi. Tizim reytinglangan postlarni 200 millisekunddan (ms) kamroq vaqt ichida ko'rsatishi kerak deb faraz qilaylik.

Nomzod: Kunlik faol foydalanuvchilarimiz qancha? Har kuni qancha lenta yangilanishi kutiladi? Suhbatdosh: Jami deyarli 3 milliard foydalanuvchimiz bor. Kuniga ikki marta lentalarini tekshiradigan taxminan 2 milliard kunlik faol foydalanuvchi bor.

Muammoni qisqacha bayon qilaylik. Bizdan shaxsiylashtirilgan yangiliklar tasmasi tizimini loyihalash so'raladi. Tizim ko'rilmagan postlar yoki ko'rilmagan izohlari bo'lgan postlarni oladi va ularni foydalanuvchi uchun qanchalik qiziqarli ekanligiga qarab reytinglaydi. Bu 200 ms dan ko'p vaqt olmasligi kerak. Tizimning maqsadi foydalanuvchi faolligini oshirishdir.

Muammoni ML Vazifasi Sifatida Shakllantirish

ML maqsadini belgilash

Quyidagi uchta mumkin bo'lgan ML maqsadini ko'rib chiqaylik:

  • Muddatini o'tkazish vaqti yoki bosishlar kabi muayyan yashirin reaktsiyalar sonini maksimallash
  • Layklar yoki ulashishlar kabi muayyan ochiq reaktsiyalar sonini maksimallash
  • Yashirin va ochiq reaktsiyalarga asoslangan og'irlikli ballni maksimallash

Har bir variantni batafsil muhokama qilaylik.

1-variant: Muddatini o'tkazish vaqti yoki bosishlar kabi muayyan yashirin reaktsiyalar sonini maksimallash Bu variantda yashirin signallarni foydalanuvchi faolligi ko'rsatkichi sifatida tanlaymiz. Masalan, ML tizimini foydalanuvchi bosishlarini maksimallash uchun optimallashtiramiz.

Afzalligi shundaki, yashirin reaktsiyalar haqida ochiq reaktsiyalarga qaraganda ko'proq ma'lumotga egamiz. Ko'proq o'quv ma'lumotlari odatda aniqroq modellarga olib keladi.

Kamchiligi shundaki, yashirin reaktsiyalar har doim ham foydalanuvchining post haqidagi haqiqiy fikrini aks ettirmaydi. Masalan, foydalanuvchi postni bosishi mumkin, lekin uni o'qishga arzimasligini anglashi mumkin.

2-variant: Layklar, ulashishlar va yashirishlar kabi muayyan ochiq reaktsiyalar sonini maksimallash

Bu variantda ochiq reaktsiyalarni foydalanuvchining post haqidagi fikri ko'rsatkichi sifatida tanlaymiz.

Bu yondashuvning afzalligi shundaki, ochiq signallar odatda yashirin signallarga qaraganda ko'proq ahamiyat kasb etadi. Masalan, foydalanuvchining postni layklashi, uni shunchaki bosishdan ko'ra kuchliroq faollik signalini beradi.

Asosiy kamchilik shundaki, aslida juda kam foydalanuvchi o'z fikrini ochiq reaktsiyalar orqali ifodalaydi. Masalan, foydalanuvchi postni qiziqarli deb topishi mumkin, lekin unga reaktsiya bildirmasligi mumkin. Bunday holatda, cheklangan o'quv ma'lumotlari tufayli model to'g'ri bashorat qilishi qiyin.

3-variant: Yashirin va ochiq reaktsiyalarga asoslangan og'irlikli ballni maksimallash

Bu variantda foydalanuvchining post bilan qanchalik shug'ullanishini aniqlash uchun yashirin va ochiq reaktsiyalarni birlashtiramiz. Xususan, har bir reaktsiyaga uning bizga qanchalik qimmatli ekanligiga qarab og'irlik belgilaymiz. Keyin ML tizimini reaktsiyalarning og'irlikli ballini maksimallash uchun optimallashtiramiz.

10.1-jadval turli reaktsiyalar va og'irliklar o'rtasidagi moslikni ko'rsatadi. Ko'rinib turibdiki, "layk" tugmasini bosish bosishdan ko'ra ko'proq og'irlikka ega, ulashish esa laykdan qimmatroq. Bundan tashqari, yashirish va bloklash kabi salbiy reaktsiyalar salbiy og'irlikka ega. E'tibor bering, bu og'irliklar biznes ehtiyojlariga qarab tanlanishi mumkin.

ReaktsiyaBosishLaykIzohUlashishDo'stlik so'roviYashirishBloklash
Og'irlik15102030-20-50

10.1-jadval: Turli reaktsiyalarning og'irliklari

Qaysi variantni tanlash kerak?

Turli reaktsiyalarga turli og'irliklar belgilash imkonini berganligi uchun oxirgi aralash variantni tanlaymiz. Bu muhim, chunki biz tizimni biznes uchun muhim bo'lgan narsaga qarab optimallashtirishimiz mumkin.

Tizimning kirish va chiqishini aniqlash

10.2-rasmda ko'rsatilganidek, shaxsiylashtirilgan yangiliklar tasmasi tizimi foydalanuvchini kirish sifatida qabul qiladi va faollik balliga qarab saralangan ko'rilmagan postlar yoki ko'rilmagan izohlari bo'lgan postlarning reytinglangan ro'yxatini chiqaradi.

To'g'ri ML kategoriyasini tanlash

Shaxsiylashtirilgan yangiliklar tasmasi tizimi postlarni foydalanuvchi uchun qanchalik qiziqarli ekanligiga qarab reytinglangan ro'yxatini yaratadi. Nuqtaviy o'rganishdan reytinglash (LTR) — yangiliklar tasmasini foydalanuvchilar uchun faollik balllariga qarab postlarni reytinglash orqali shaxsiylashtiruvchi oddiy, ammo samarali yondashuv. Foydalanuvchilar va postlar o'rtasidagi faollik balllarini qanday hisoblashni tushunish uchun aniq misolni ko'rib chiqaylik.

10.3-rasmda ko'rsatilganidek, ⟨foydalanuvchi, post⟩ juftligi uchun turli yashirin va ochiq reaktsiyalar ehtimolliklarini bashorat qilish uchun bir nechta ikkilik klassifikatorlar qo'llaymiz.

Bu ehtimolliklar bashorat qilingandan so'ng, faollik ballini hisoblaymiz. 10.4-rasm faollik ballini qanday hisoblashning namunaсini ko'rsatadi.

ReaktsiyaBosishLaykIzohUlashishDo'stlik so'roviYashirishBloklash
Bashorat qilingan ehtimollik23%48%12%4%0.1%0.005%0.0003%
Qiymat15102030-20-50
Ball0.232.41.20.80.03-0.001-0.00015
Faollik balli = 4.65885

10.4-rasm: Faollik ballini hisoblash

Ma'lumotlarni Tayyorlash

Ma'lumotlar muhandisligi

Bashoratli xususiyatlarni yaratishdan oldin qaysi xom ma'lumotlar mavjudligini tushunish odatda foydali. Bu yerda quyidagi turdagi xom ma'lumotlar mavjud deb faraz qilamiz:

  • Foydalanuvchilar
  • Postlar
  • Foydalanuvchi-post o'zaro ta'sirlari
  • Do'stlik
Foydalanuvchilar

Foydalanuvchi ma'lumotlari sxemasi quyida ko'rsatilgan.

IDFoydalanuvchi nomiYoshiJinsiShahriMamlakatiTiliVaqt mintaqasi

10.2-jadval: Foydalanuvchi ma'lumotlari sxemasi

Postlar

10.3-jadval post ma'lumotlarini ko'rsatadi.

Muallif IDMatnli KontentXeshteglarEslatmalarRasmlar yoki videolarVaqt belgisi
5Today at our fav place with my best friendlife_is_good, happyhs2008-1658450539
1It was the best trip we ever hadTravel, MaldivesAlexish, shan.tonyhtcdn.mysite.com/maldives.jpg1658451341
29Today I had a bad experience I would like to tell you about. I went...---1658451365

10.3-jadval: Post ma'lumotlari

Foydalanuvchi-post o'zaro ta'sirlari

10.4-jadval foydalanuvchi-post o'zaro ta'sir ma'lumotlarini ko'rsatadi.

Foydalanuvchi IDPost IDO'zaro ta'sir turiO'zaro ta'sir qiymatiJoylashuv (kenglik, uzunlik)Vaqt belgisi
418Layk-38.8951
-77.0364
1658450539
418UlashishFoydalanuvchi 941.9241
-89.0389
1658451365
918IzohYou look amazing22.7531
47.9642
1658435948
918Bloklash-22.7531
47.9642
1658451849
69Taassurot37.5189
122.6405
1658821820

10.4-jadval: Foydalanuvchi-post o'zaro ta'sir ma'lumotlari

Do'stlik

Do'stlik jadvali foydalanuvchilar o'rtasidagi aloqalar ma'lumotlarini saqlaydi. Foydalanuvchilar yaqin do'stlari va oila a'zolarini belgilashi mumkin deb faraz qilamiz. 10.5-jadval do'stlik ma'lumotlari misollarini ko'rsatadi.

Foydalanuvchi ID 1Foydalanuvchi ID 2Do'stlik o'rnatilgan vaqtYaqin do'stOila a'zosi
2831558451341HaYo'q
7391559281720Yo'qHa
11251559312942Yo'qYo'q

10.5-jadval: Do'stlik ma'lumotlari

Xususiyat muhandisligi

Bu bo'limda bashoratli xususiyatlarni yaratamiz va ularni model uchun tayyorlaymiz. Xususan, quyidagi toifalarning har biridan xususiyatlar yaratamiz:

  • Post xususiyatlari
  • Foydalanuvchi xususiyatlari
  • Foydalanuvchi-muallif yaqinliklari
Post xususiyatlari

Amalda har bir postning ko'plab atributlari bor. Hammasini qamrab olish mumkin emas, shuning uchun faqat eng muhimlarini muhokama qilamiz.

  • Matnli kontent
  • Rasmlar yoki videolar
  • Reaktsiyalar
  • Xeshteglar
  • Postning yoshi
Matnli kontent

Bu nima? Bu postning asosiy qismi — matnli kontentidir.

Nima uchun muhim? Matnli kontent postning nima haqida ekanligini aniqlashga yordam beradi.

Qanday tayyorlanadi? Matnli kontentni oldindan qayta ishlaymiz va matnni raqamli vektortga aylantirish uchun oldindan o'qitilgan til modelidan foydalanamiz. Matnli kontent odatda bitta so'z emas, jumlalar shaklida bo'lgani uchun, BERT [4] kabi kontekstga sezgir til modelidan foydalanamiz.

Rasmlar yoki videolar

Bu nima? Post rasmlar yoki videolarni o'z ichiga olishi mumkin.

Nima uchun muhim? Rasmlardan muhim signallarni ajratib olish mumkin. Masalan, qurol rasmi postning bolalar uchun xavfsiz emasligini ko'rsatishi mumkin.

Qanday tayyorlanadi? Avval rasm yoki videolarni qayta ishlash. So'ngra, tuzilmagan rasm/video ma'lumotlarini embedding vektoriga aylantirish uchun oldindan o'qitilgan modeldan foydalanish. Masalan, oldindan o'qitilgan model sifatida ResNet [5] yoki yaqinda taqdim etilgan CLIP modelidan [6] foydalanish mumkin.

Reaktsiyalar

Bu nima? Bu postning layklari, ulashishlari, javoblari va hokazo soni.

Nima uchun muhim? Layklar, ulashishlar, yashirishlar va hokazolarning soni foydalanuvchilar postni qanchalik qiziqarli deb topishini ko'rsatadi. Foydalanuvchi o'n laykga ega postdan ko'ra ming laykka ega post bilan shug'ullanishi ehtimoli ko'proq.

Qanday tayyorlanadi? Bu qiymatlar raqamli qiymatlar bilan ifodalanadi. Biz bu raqamli qiymatlarni o'xshash diapazonga keltirish uchun masshtablaymiz.

Xeshteglar

Nima uchun muhim? Foydalanuvchilar kontentni muayyan mavzu atrofida guruhlash uchun xeshteglardan foydalanadi. Bu xeshteglar postning qaysi mavzularga aloqador ekanligini ifodalaydi. Masalan, "#women_in_tech" xeshtegi bilan post texnologiya va ayollar bilan bog'liq ekanligini ko'rsatadi, shuning uchun model texnologiyaga qiziqqan odamlar uchun uni yuqoriroq reytinglashga qaror qilishi mumkin.

Qanday tayyorlanadi? Matnni oldindan qayta ishlashning batafsil bosqichlari 4-bobda, YouTube Video Qidiruvida allaqachon tushuntirilgan, shuning uchun biz xeshteglarni tayyorlashning faqat o'ziga xos bosqichlariga e'tibor qaratamiz.

  • Tokenizatsiya: "lifeisgood" yoki "programmer_lifestyle" kabi xeshteglar bir nechta so'zdan iborat. Xeshteglarni tokenizatsiya qilish uchun Viterbi [7] kabi algoritmlardan foydalanamiz. Masalan, "lifeisgood" 3 so'zga bo'linadi: "life" "is" "good".
  • Tokenlardan IDlarga: Ijtimoiy media platformalarida xeshteglar tendentsiyalar o'zgarishi bilan tezda yangilanadi. Xususiyat xeshlash texnikasi mos keladi, chunki u ko'rilmagan xeshteglarni indekslash qobiliyatiga ega.
  • Vektorizatsiya: Transformer-ga asoslangan modellar o'rniga TF-IDF [8] yoki word2vec [9] kabi oddiy matn ifodalash usullaridan foydalanamiz. Buning sababi quyidagicha. Transformer-ga asoslangan modellar ma'lumotlar konteksti muhim bo'lganda foydali. Xeshteglar holatida, har biri odatda bitta so'z yoki ibora bo'lib, xeshtegning ma'nosini tushunish uchun ko'pincha kontekst kerak emas. Shuning uchun tezroq va yengilroq matn ifodalash usullari afzalroq.
Postning yoshi

Bu nima? Bu xususiyat muallif kontentni e'lon qilganidan beri qancha vaqt o'tganini ko'rsatadi.

Nima uchun muhim? Foydalanuvchilar yangi kontentga ko'proq murojaat qiladi.

Qanday tayyorlanadi? Postning yoshini bir nechta toifaga ajratamiz va uni ifodalash uchun bir tomonlama kodlashdan (one-hot encoding) foydalanamiz. Masalan, quyidagi chelaklar (buckets) dan foydalanamiz:

  • 0: 1 soatdan kam
  • 1: 1 dan 5 soatgacha
  • 2: 5 dan 24 soatgacha
  • 3: 1-7 kun oralig'ida
  • 4: 7-30 kun oralig'ida
  • 5: bir oydan ko'proq
Foydalanuvchi xususiyatlari

Foydalanuvchiga oid eng muhim xususiyatlardan ba'zilari:

  • Demografiya: yoshi, jinsi, mamlakati va hokazo
  • Kontekstual ma'lumot: qurilma, kunning vaqti va hokazo
  • Foydalanuvchi-post tarixiy o'zaro ta'sirlari
  • Postda eslatib o'tilganlik

Foydalanuvchi demografik va kontekstual ma'lumotlarini oldingi boblarda allaqachon muhokama qilganimiz uchun, bu yerda faqat qolgan ikki xususiyatni ko'rib chiqamiz.

Foydalanuvchi-post tarixiy o'zaro ta'sirlari

Foydalanuvchi tomonidan layklangan barcha postlar post IDlar ro'yxati bilan ifodalanadi. Xuddi shu mantiq ulashishlar va izohlarga ham tegishli.

Nima uchun muhim? Foydalanuvchilarning oldingi faolliklari odatda ularning kelajakdagi faolliklarini aniqlashda foydali.

Qanday tayyorlanadi? Foydalanuvchi o'zaro ta'sir qilgan har bir postdan xususiyatlarni ajratib olish.

Postda eslatib o'tilganlik

Bu nima? Bu foydalanuvchining postda eslatib o'tilgan yoki yo'qligini anglatadi. Nima uchun muhim? Foydalanuvchilar odatda ularni eslatib o'tgan postlarga ko'proq e'tibor beradi.

Qanday tayyorlanadi? Bu xususiyat ikkilik qiymat bilan ifodalanadi. Agar foydalanuvchi postda eslatib o'tilgan bo'lsa, bu xususiyat 1, aks holda 0.

10.6-rasm foydalanuvchilar uchun xususiyatlarni tayyorlashni umumlashtiradi.

Foydalanuvchi-muallif yaqinliklari

Tadqiqotlarga ko'ra, foydalanuvchi va muallif o'rtasidagi aloqa kabi yaqinlik xususiyatlari Facebook-da foydalanuvchi faolligini bashorat qilishda eng muhim omillar orasida [10]. Foydalanuvchi-muallif yaqinliklarini qamrab olish uchun ba'zi xususiyatlarni yarataylik.

Layk/bosish/izoh/ulashish darajasi

Bu foydalanuvchining muallif tomonidan avvalgi postlarga reaktsiya bildirish darajasi. Masalan, 0.95 layk darajasi foydalanuvchi o'sha muallifning postlarini 95 foiz hollarda layklaganligini ko'rsatadi.

Do'stlik muddati

Foydalanuvchi va muallif platformada do'st bo'lgan kunlar soni. Bu xususiyat do'stlik ma'lumotlaridan olinishi mumkin.

Nima uchun muhim? Foydalanuvchilar do'stlari bilan ko'proq shug'ullanadi.

Yaqin do'stlar va oila

Foydalanuvchi va muallifning bir-birini yaqin do'stlar va oila ro'yxatiga kiritgan yoki kiritmaganligini ko'rsatuvchi ikkilik qiymat.

Nima uchun muhim? Foydalanuvchilar yaqin do'stlar va oila a'zolarining postlariga ko'proq e'tibor beradi. 10.7-rasm foydalanuvchi-muallif yaqinliklariga oid xususiyatlarni umumlashtiradi.

Model Ishlab Chiqish

Modelni tanlash

Neyron tarmoqlarni quyidagi sabablarga ko'ra tanlaymiz:

  • Neyron tarmoqlar matn va rasmlar kabi tuzilmagan ma'lumotlar bilan yaxshi ishlaydi.
  • Neyron tarmoqlar kategorik xususiyatlarni ifodalash uchun embedding qatlamlaridan foydalanish imkonini beradi.
  • Neyron tarmoq arxitekturasi bilan xususiyat muhandisligi davomida foydalanilgan oldindan o'qitilgan modellarni nozik sozlash (fine-tuning) mumkin. Bu boshqa modellar bilan mumkin emas.

Neyron tarmoqni o'qitishdan oldin uning arxitekturasini tanlashimiz kerak. Neyron tarmoqlarimizni qurish va o'qitish uchun ikkita arxitektura varianti mavjud:

  • N ta mustaqil DNN
  • Ko'p vazifali DNN

Har birini ko'rib chiqaylik.

1-variant: N ta mustaqil DNN Bu variantda har bir reaktsiya uchun bittadan N ta mustaqil chuqur neyron tarmoq (DNN) dan foydalanamiz. Bu 10.8-rasmda ko'rsatilgan.

Bu variantning ikkita kamchiligi bor:

  • O'qitish qimmat. Bir nechta mustaqil DNN larni o'qitish hisoblash resurslari talab qiladi va ko'p vaqt oladi.
  • Kam uchraydigan reaktsiyalar uchun yetarli o'quv ma'lumotlari bo'lmasligi mumkin. Bu tizimimizning kam uchraydigan reaktsiyalar ehtimolliklarini to'g'ri bashorat qila olmasligiga olib keladi.

2-variant: Ko'p vazifali DNN Bu muammolarni hal qilish uchun ko'p vazifali o'rganish yondashuvini qo'llaymiz (10.9-rasm).

Ko'p vazifali o'rganishni 5-bobda, Zararli Kontentni Aniqlashda, tushuntirganmiz, shuning uchun bu yerda faqat qisqacha muhokama qilamiz. Xulosa qilib aytganda, ko'p vazifali o'rganish bir vaqtda bir nechta vazifalarni o'rganish jarayonini anglatadi. Bu modelga vazifalar o'rtasidagi o'xshashliklarni o'rganish va keraksiz hisoblashlardan qochish imkonini beradi. Ko'p vazifali neyron tarmoq modeli uchun mos arxitekturani tanlash muhim. Arxitektura va unga bog'liq giperparametrlar tanlovini odatda tajribalar o'tkazish orqali aniqlanadi. Bu turli arxitekturalarda modelni o'qitish va baholash va eng yaxshi natijaga olib keluvchini tanlashni anglatadi.

Passiv foydalanuvchilar uchun DNN arxitekturasini yaxshilash

Hozircha ulashishlar, layklar, bosishlar va izohlar kabi reaktsiyalarni bashorat qilish uchun DNN ni qo'llaganmiz. Biroq, ko'plab foydalanuvchilar platformadan passiv tarzda foydalanadi, ya'ni ular lentalaridagi kontent bilan unchalik o'zaro ta'sir qilmaydi. Bunday foydalanuvchilar uchun joriy DNN modeli barcha reaktsiyalar uchun juda past ehtimolliklarni bashorat qiladi, chunki ular postlarga kamdan-kam reaktsiya bildiradi. Shu sababli, DNN arxitekturasini passiv foydalanuvchilarni hisobga olish uchun o'zgartirish kerak.

Buning uchun vazifalar ro'yxatiga ikkita yashirin reaktsiyani qo'shamiz:

  • Muddatini o'tkazish vaqti (Dwell-time): foydalanuvchining post ustida sarflaydigan vaqti.
  • O'tkazib yuborish (Skip): agar foydalanuvchi postga t sekunddan (masalan, 0.5 soniya) kam vaqt sarflasa, u holda bu post foydalanuvchi tomonidan o'tkazib yuborilgan deb hisoblanadi.

10.10-rasm qo'shimcha vazifalar bilan ko'p vazifali DNN modelini ko'rsatadi.

Modelni o'qitish

Ma'lumotlar to'plamini tuzish

Bu bosqichda xom ma'lumotlardan ma'lumotlar to'plamini tuzamiz. DNN modeli bir nechta vazifalarni o'rganishi kerakligi sababli, har bir reaktsiya uchun (masalan, bosish, layk va hokazo) musbat va manfiy ma'lumot nuqtalari yaratiladi.

Musbat/manfiy ma'lumot nuqtalarini qanday yaratishni tushuntirish uchun "layk" reaktsiya turini misol sifatida olamiz. Foydalanuvchi postni har layklaganida, ma'lumotlar to'plamimizga ma'lumot nuqtasini qo'shamiz, ⟨foydalanuvchi, post⟩ xususiyatlarini hisoblaymiz va keyin uni musbat sifatida belgilaymiz.

Manfiy ma'lumot nuqtalarini yaratish uchun "layk" reaktsiyasiga olib kelmagan taassurotlarni tanlaymiz. E'tibor bering, manfiy ma'lumot nuqtalarining soni odatda musbat ma'lumot nuqtalariga qaraganda ancha ko'p. Nomutanosib ma'lumotlar to'plamidan qochish uchun manfiy ma'lumot nuqtalarini musbat ma'lumot nuqtalari soniga teng qilib yaratamiz. 10.11-rasm "layk" reaktsiyasi uchun musbat va manfiy ma'lumot nuqtalarini ko'rsatadi.

Xuddi shu jarayon boshqa reaktsiyalar uchun musbat va manfiy teglar yaratishda ham qo'llanilishi mumkin. Biroq, muddatini o'tkazish vaqti regressiya vazifasi bo'lgani uchun, uni boshqacha tuzamiz. 10.12-rasmda ko'rsatilganidek, haqiqiy qiymat tegchasi taassurotning muddatini o'tkazish vaqtidir.

Yo'qotish funksiyasini tanlash

Ko'p vazifali modellar bir vaqtda bir nechta vazifalarni o'rganish uchun o'qitiladi. Bu har bir vazifa uchun yo'qotishni alohida hisoblash va keyin umumiy yo'qotishni olish uchun ularni birlashtirish kerakligini anglatadi. Odatda, har bir vazifa uchun vazifaning ML toifasiga qarab yo'qotish funksiyasini aniqlaymiz. Bizning holatimizda, har bir ikkilik klassifikatsiya vazifasi uchun ikkilik o'zaro entropiya yo'qotishidan, regressiya vazifasi (muddatini o'tkazish vaqtini bashorat qilish) uchun esa MAE [11], MSE [12] yoki Huber yo'qotishi [13] kabi regressiya yo'qotishidan foydalanamiz. Umumiy yo'qotish vazifaga xos yo'qotishlarni birlashtirish orqali hisoblanadi, bu 10.13-rasmda ko'rsatilgan.

Baholash

Oflayn metrikalar

Oflayn baholash davomida modelimizning turli reaktsiyalarni bashorat qilishdagi ishlashini o'lchaymiz. Alohida reaktsiya turining ishlashini baholash uchun aniqlik va to'liqlik kabi ikkilik klassifikatsiya metrikalaridan foydalanishimiz mumkin. Biroq, bu metrikalar yolg'iz ikkilik klassifikatsiya modelining umumiy ishlashini tushunish uchun yetarli bo'lmasligi mumkin. Shuning uchun, haqiqiy musbat darajasi va soxta musbat darajasi o'rtasidagi munosabatni tushunish uchun ROC egri chizig'idan foydalanamiz. Bundan tashqari, ikkilik klassifikatsiya ishlashini raqamli qiymat bilan umumlashtirish uchun ROC egri chizig'i ostidagi maydonni (ROC-AUC) hisoblaymiz.

Onlayn metrikalar

Foydalanuvchi faolligini turli tomonlardan o'lchash uchun quyidagi metrikalardan foydalanamiz:

  • Bosish-ko'rish nisbati (CTR)
  • Reaktsiya darajasi
  • Jami sarflangan vaqt
  • Foydalanuvchi so'rovi orqali aniqlangan qoniqish darajasi

CTR. Bosishlar soni va taassurotlar o'rtasidagi nisbat.

Yuqori CTR har doim ham foydalanuvchi faolligini ko'paytirmaydi. Masalan, foydalanuvchilar past qiymatli kliklash o'tish (clickbait) postini bosishi va uni o'qishga arzimasligini tezda anglashi mumkin. Bu cheklovga qaramay, bu kuzatib boriladigan muhim metrika.

Reaktsiya darajalari. Bu foydalanuvchi reaktsiyalarini aks ettiruvchi metrikalar to'plami. Masalan, layk darajasi foydalanuvchilar lentasida ko'rsatilgan postlar jami soniga nisbatan layklangan postlar nisbatini o'lchaydi.

Xuddi shunday, biz "ulashish darajasi", "izoh darajasi", "yashirish darajasi", "bloklash darajasi" va "o'tkazib yuborish darajasi" kabi boshqa reaktsiyalarni ham kuzatib boramiz. Foydalanuvchilar o'z afzalliklarini ochiqchasiga ifodalaganligi uchun bu CTRdan kuchliroq signallar.

Hozirgacha muhokama qilgan metrikalar foydalanuvchi reaktsiyalariga asoslangan. Ammo passiv foydalanuvchilar haqida-chi? Bu postlarning ko'pchiligiga umuman reaktsiya bildirmaydigan foydalanuvchilar. Passiv foydalanuvchilar uchun shaxsiylashtirilgan yangiliklar tasmasi tizimimizning samaradorligini qamrab olish uchun quyidagi ikkita metrikani qo'shamiz.

Jami sarflangan vaqt. Bu foydalanuvchilarning 1 hafta kabi belgilangan muddat davomida lentada sarflagan jami vaqti. Bu metrika passiv va faol foydalanuvchilarning umumiy faolligini o'lchaydi.

Foydalanuvchi so'rovi orqali aniqlangan qoniqish darajasi. Shaxsiylashtirilgan yangiliklar tasmasi tizimimizning samaradorligini o'lchashning yana bir usuli — foydalanuvchilardan lenta haqidagi fikrlari yoki postlarni qanchalik qiziqarli deb topishlarini to'g'ridan-to'g'ri so'rash. Biz ochiq fikrlarni so'raganimiz uchun, bu tizim samaradorligini o'lchashning aniq usuli.

Xizmat Ko'rsatish

Xizmat ko'rsatish vaqtida tizim postlarning reytinglangan ro'yxatini chiqarish orqali so'rovlarga javob beradi. 10.14-rasm shaxsiylashtirilgan yangiliklar tasmasi tizimining arxitektura diagrammasini ko'rsatadi. Tizim quyidagi konveyerlardan iborat:

  • Ma'lumotlarni tayyorlash konveyeri
  • Bashorat konveyeri

Ma'lumotlarni tayyorlash konveyerini batafsil ko'rib chiqmaymiz, chunki u 8-bobda, Ijtimoiy Platformalarda Reklama Bosishlarini Bashorat Qilishda tasvirlanganga juda o'xshash. Bashorat konveyerini ko'rib chiqaylik.

Bashorat konveyeri

Bashorat konveyeri quyidagi komponentlardan iborat: olish xizmati, reytinglash xizmati va qayta reytinglash xizmati.

Olish xizmati

Bu komponent foydalanuvchi ko'rmagan postlar yoki ular ko'rmagan izohlari bo'lgan postlarni oladi. Ko'rilmagan postlarni samarali olish haqida ko'proq ma'lumot olish uchun [14] ga murojaat qiling.

Reytinglash xizmati

Bu komponent olingan postlarni har biriga faollik balli berib reytinglaydi.

Qayta reytinglash xizmati

Bu xizmat qo'shimcha mantiq va foydalanuvchi filtrlari qo'shish orqali postlar ro'yxatini o'zgartiradi. Masalan, agar foydalanuvchi futbol kabi muayyan mavzuga o'z qiziqishini ochiqchasiga bildirgan bo'lsa, bu xizmat shu mavzudagi postga yuqoriroq reyting beradi.

Boshqa Muhokama Mavzulari

Agar suhbat oxirida vaqt qolsa, quyidagi qo'shimcha muhokama mavzulari mavjud:

  • Virusga aylanib borayotgan postlarni qanday boshqarish [15].
  • Yangi foydalanuvchilar uchun yangiliklar tasmasini qanday shaxsiylashtirish [16].
  • Tizimda mavjud pozitsion xolislikni (positional bias) qanday kamaytirish [17].
  • To'g'ri qayta o'qitish chastotasini qanday aniqlash [18].

Adabiyotlar

  1. Facebook-da yangiliklar tasmasi reytingi. https://engineering.fb.com/2021/01/26/ml-applications/news-feed-ranking/.
  2. Twitter-ning yangiliklar tasmasi tizimi. https://blog.twitter.com/engineering/en_us/topics/insights/2017/using-deep-learning-at-scale-in-twitters-timelines.
  3. LinkedIn-ning yangiliklar tasmasi tizimi. https://engineering.linkedin.com/blog/2020/understanding-feed-dwell-time.
  4. BERT maqolasi. https://arxiv.org/pdf/1810.04805.pdf.
  5. ResNet modeli. https://arxiv.org/pdf/1512.03385.pdf.
  6. CLIP modeli. https://openai.com/blog/clip/.
  7. Viterbi algoritmi. https://en.wikipedia.org/wiki/Viterbi_algorithm.
  8. TF-IDF. https://en.wikipedia.org/wiki/Tf%E2%80%93idf.
  9. Word2vec. https://en.wikipedia.org/wiki/Word2vec.
  10. Milliard shaxsiylashtirilgan yangiliklar tasmasiga xizmat ko'rsatish. https://www.youtube.com/watch?v=Xpx5RYNTQvg.
  11. O'rtacha mutlaq xato yo'qotishi. https://en.wikipedia.org/wiki/Mean_absolute_error.
  12. O'rtacha kvadratik xato yo'qotishi. https://en.wikipedia.org/wiki/Mean_squared_error.
  13. Huber yo'qotishi. https://en.wikipedia.org/wiki/Huber_loss.
  14. Yangiliklar tasmasi tizimini loyihalash. https://liuzhenglaichn.gitbook.io/system-design/news-feed/design-a-news-feed-system.
  15. Viral tvitlarni bashorat qilish. https://towardsdatascience.com/using-data-science-to-predict-viral-tweets-615b0acc2e1e.
  16. Tavsiya tizimlarida sovuq boshlash muammosi. https://en.wikipedia.org/wiki/Cold_start_(recommender_systems).
  17. Pozitsion xolislik. https://eugeneyan.com/writing/position-bias/.
  18. Qayta o'qitish chastotasini aniqlash. https://huyenchip.com/2022/01/02/real-time-machine-learning-challenges-and-solutions.html#towards-continual-learning.
Bob 11

Tanishingiz Bo'lishi Mumkin Bo'lgan Odamlar

~15 daq o'qish

Tanishingiz Bo'lishi Mumkin Bo'lgan Odamlar

Kirish

"Tanishingiz bo'lishi mumkin" (PYMK) — sizga umumiy jihatlar, masalan, umumiy do'st, maktab yoki ish joyi asosida ulanishingiz mumkin bo'lgan foydalanuvchilar ro'yxati. Facebook, LinkedIn va Twitter kabi ko'plab ijtimoiy tarmoqlar PYMK funksionalini ta'minlash uchun ML dan foydalanadi.

Ushbu bobda biz LinkedIn-nikiga o'xshash PYMK xususiyatini loyihalashtiramiz. Tizim kirish sifatida foydalanuvchini qabul qiladi va chiqish sifatida potentsial ulanishlar ro'yxatini tavsiya qiladi.

Talablarni Aniqlashtirish

Nomzod va suhbatdosh o'rtasidagi odatiy muloqot quyidagicha.

Nomzod: PYMK xususiyatini yaratishning maqsadi foydalanuvchilarga potentsial aloqalarni topishga va tarmoqlarini o'stirishga yordam berish deb faraz qilsam bo'ladimi? Suhbatdosh: Ha, bu to'g'ri faraz.

Nomzod: Potentsial aloqalarni tavsiya qilish uchun joylashuv, ta'lim, ish tajribasi, mavjud aloqalar, oldingi faolliklar va boshqalar kabi ko'plab omillarni hisobga olish kerak. Eng muhim omillarga — ta'lim, ish tajribasi va foydalanuvchining ijtimoiy kontekstiga e'tibor qaratishim kerakmi? Suhbatdosh: Bu yaxshi eshitiladi.

Nomzod: LinkedIn-da ikkita kishi do'st bo'ladi, agar va faqat agar har biri ikkinchisining do'sti bo'lsa. Bu to'g'rimi? Suhbatdosh: Ha, do'stlik simmetrikdir. Kimdir boshqa foydalanuvchiga ulanish so'rovi yuborganida, ulanish o'rnatilishi uchun qabul qiluvchi so'rovni qabul qilishi kerak.

Nomzod: Platformadagi foydalanuvchilarning jami soni qancha? Ulardan qanchasi kunlik faol foydalanuvchilar? Suhbatdosh: Bizda deyarli 1 milliard foydalanuvchi va 300 million kunlik faol foydalanuvchi bor.

Nomzod: O'rtacha foydalanuvchining qancha ulanishi bor? Suhbatdosh: 1,000 ta ulanish.

Nomzod: Ko'pchilik foydalanuvchilarning ijtimoiy grafigi unchalik dinamik emas, ya'ni ularning aloqalari qisqa vaqt ichida sezilarli darajada o'zgarmaydi. PYMK ni loyihalashda shu farazni qabul qilsam bo'ladimi? Suhbatdosh: Bu ajoyib mulohaza. Ha, bu oqilona faraz.

Muammoni qisqacha bayon qilaylik. Bizdan LinkedIn-nikiga o'xshash PYMK tizimini loyihalash so'raladi. Tizim kirish sifatida foydalanuvchini qabul qiladi va chiqish sifatida reytinglangan potentsial aloqalar ro'yxatini tavsiya qiladi. Tizim qurishning maqsadi foydalanuvchilarga yangi aloqalarni osonroq topish va tarmoqlarini o'stirish imkonini berishdir. Platformada jami 1 milliard foydalanuvchi bor va o'rtacha foydalanuvchining 1,000 ta ulanishi mavjud.

Muammoni ML Vazifasi Sifatida Shakllantirish

ML maqsadini belgilash

PYMK tizimlarida keng tarqalgan ML maqsadi — foydalanuvchilar o'rtasida shakllangan aloqalar sonini maksimallash. Bu foydalanuvchilarga tarmoqlarini tezda o'stirishga yordam beradi.

Tizimning kirish va chiqishini aniqlash

PYMK tizimiga kirish — foydalanuvchi, chiqish esa foydalanuvchiga aloqadorlik darajasiga qarab reytinglangan aloqalar ro'yxati. Bu 11.2-rasmda ko'rsatilgan.

To'g'ri ML kategoriyasini tanlash

PYMK ni qurish uchun keng qo'llaniladigan ikki yondashuvni ko'rib chiqaylik: nuqtaviy o'rganishdan reytinglash (LTR) va qirra bashoratlash.

Nuqtaviy LTR

Bu yondashuvda PYMK ni reytinglash muammosi sifatida shakllantiramiz va foydalanuvchilarni reytinglash uchun nuqtaviy LTR dan foydalanamiz. 11.3-rasmda ko'rsatilganidek, nuqtaviy LTR da ikki foydalanuvchini kirish sifatida qabul qiladigan va berilgan juftlikning ulanish hosil qilish ehtimolligini chiqaradigan ikkilik klassifikatsiya modelini qo'llaymiz.

Biroq, bu yondashuvda asosiy kamchilik bor: model kirishlari ikki alohida foydalanuvchi bo'lgani uchun, u mavjud ijtimoiy kontekstni hisobga olmaydi. Bu ishlarni soddalashtirsa-da, foydalanuvchi aloqalari haqidagi ma'lumotni o'tkazib yuborish bashoratlarni kamroq aniq qilishi mumkin.

Ijtimoiy kontekst qanchalik muhim tushunchalar berishi mumkinligini tushunish uchun bir misolni tahlil qilaylik. Tasavvur qiling, ⟨foydalanuvchi A, foydalanuvchi B⟩ potentsial aloqa yoki yo'qligini bashorat qilmoqchimiz.

Ularning bir-pog'onali qo'shniligiga (foydalanuvchi A yoki foydalanuvchi B ning aloqalariga) qarab, ⟨foydalanuvchi A, foydalanuvchi B⟩ potentsial aloqa yoki yo'qligini aniqlash uchun ko'proq ma'lumot olamiz. 11.5-rasmda ko'rsatilganidek, ikkita turli stsenariyni ko'rib chiqaylik.

1-stsenariyda, foydalanuvchi A va foydalanuvchi B ning har biri to'rtta umumiy aloqaga ega, va C, D, E va F foydalanuvchilari o'rtasida aloqalar mavjud.

2-stsenariyda, foydalanuvchi A va foydalanuvchi B ning har biri ikkita do'stga ega, va foydalanuvchi A va foydalanuvchi B aloqalari o'rtasida hech qanday bog'lanish yo'q.

Ularning bir-pog'onali qo'shniligiga qarab, ⟨foydalanuvchi A, foydalanuvchi B⟩ 2-stsenariyga qaraganda 1-stsenariyda ulanish hosil qilishi ehtimoli ko'proq deb kutish mumkin. Amalda, ijtimoiy kontekstdan yanada foydali ma'lumotlarni olish uchun ikki-pog'onali yoki uch-pog'onali qo'shnilardan ham foydalanish mumkin.

Ikkinchi yondashuvni muhokama qilishdan oldin, grafiklar qanday tuzilmali ma'lumotlarni — masalan, ijtimoiy kontekstni — saqlaslashini va grafiklarda qaysi mashina o'rganish vazifalari bajarilishi mumkinligini tushunaylik.

Umuman olganda, grafik bir to'plam ob'ektlar (tugunlar) o'rtasidagi aloqalarni (qirralarni) ifodalaydi. Butun ijtimoiy kontekst grafik orqali ifodalanishi mumkin, bunda har bir tugun foydalanuvchini ifodalaydi, va ikki tugun o'rtasidagi qirra ikki foydalanuvchi o'rtasida shakllangan aloqani ko'rsatadi. 11.6-rasm to'rtta tugun va uchta qirrali oddiy grafikni ko'rsatadi.

Grafiklar bilan ifodalangan tuzilmali ma'lumotlarda bajarilishi mumkin bo'lgan uch turdagi bashorat vazifalari mavjud:

  • Grafik darajasidagi bashorat. Masalan, kimyoviy birikmani grafik sifatida berib, birikmaning ferment yoki yo'qligini bashorat qilamiz.
  • Tugun darajasidagi bashorat. Masalan, ijtimoiy tarmoq grafikini berib, muayyan foydalanuvchi (tugun) spam tarqatuvchi yoki yo'qligini bashorat qilamiz.
  • Qirra darajasidagi bashorat. Ikki tugun o'rtasida qirra mavjud yoki yo'qligini bashorat qilish. Masalan, ijtimoiy tarmoq grafikini berib, ikki foydalanuvchining ulanish hosil qilishi ehtimolini bashorat qilamiz.

PYMK tizimini qurish uchun qirra bashorat yondashuvini ko'rib chiqaylik.

Qirra bashorat

Bu yondashuvda modelni grafik ma'lumotlari bilan to'ldiramiz. Bu modelga ikki tugun o'rtasida qirra mavjud yoki yo'qligini bashorat qilish uchun ijtimoiy grafikdan ajratib olingan qo'shimcha bilimlardan foydalanish imkonini beradi.

Rasmiyroq qilib aytganda, butun ijtimoiy grafikni kirish sifatida qabul qiladigan va ikki muayyan tugun o'rtasida qirra mavjudligi ehtimolini bashorat qiladigan modeldan foydalanamiz. Foydalanuvchi A uchun potentsial aloqalarni reytinglash uchun foydalanuvchi A va boshqa foydalanuvchilar o'rtasidagi qirra ehtimolliklarini hisoblaymiz va bu ehtimolliklarni reytinglash mezoni sifatida qo'llaymiz.

Model odatda foydalanadigan xususiyatlardan tashqari, ikki tugun o'rtasida qirra mavjud yoki yo'qligini bashorat qilish uchun ijtimoiy grafikdan ajratib olingan qo'shimcha bilimlardan ham foydalanadi.

Ma'lumotlarni Tayyorlash

Ma'lumotlar muhandisligi

Bu bo'limda mavjud xom ma'lumotlarni muhokama qilamiz:

  • Foydalanuvchilar
  • Aloqalar
  • O'zaro ta'sirlar
Foydalanuvchilar

Foydalanuvchilarning demografik ma'lumotlaridan tashqari, ularning ta'lim va ish tarixi, ko'nikmalar va hokazo haqida ma'lumotlarga egamiz. 11.1-jadval foydalanuvchining ta'lim tarixi ma'lumotlarining namunaсini ko'rsatadi. Ish tajribalari, ko'nikmalar va hokazolarni saqlash uchun shunga o'xshash jadvallar bo'lishi mumkin.

Foydalanuvchi IDMaktabDarajaMutaxassislikBoshlanish sanasiTugash sanasi
11WaterlooM.ScComputer ScienceAvgust 2015May 2017
11HarvardM.ScFizikaMay 2004Avgust 2006
11UCLABakalavrElektrotexnikaSen 2022-

11.1-jadval: Foydalanuvchilarning ta'lim tarixi ma'lumotlari

Bu turdagi xom ma'lumotlarda asosiy qiyinchilik shundaki, muayyan atribut turli shaklda ifodalanishi mumkin. Masalan, "computer science" va "CS" bir xil ma'noni anglatadi, lekin matn farq qiladi. Shu sababli, bir atributning turli shakllarini har xil tarzda ko'rib chiqmaslik uchun ma'lumotlar muhandisligi bosqichida xom ma'lumotlarni standartlashtirish muhim. Xom ma'lumotlarni standartlashtirishning turli yondashuvlari mavjud. Masalan:

  • Foydalanuvchilarni atributlarni oldindan belgilangan ro'yxatdan tanlashga majburlash.
  • Atributning turli ifodalanishlarini guruhlash uchun evristikadan foydalanish.
  • O'xshash atributlarni guruhlash uchun klasterlash [1] yoki til modellari kabi ML-ga asoslangan usullardan foydalanish.
Aloqalar

11.2-jadvalda aloqa ma'lumotlarining soddalashtirilgan namunasi ko'rsatilgan. Har bir qator ikki foydalanuvchi o'rtasidagi aloqani va aloqa qachon o'rnatilganini ifodalaydi.

Foydalanuvchi ID 1Foydalanuvchi ID 2Aloqa o'rnatilgan vaqt belgisi
2831658451341
7391659281720
11251659312942

11.2-jadval: Aloqa ma'lumotlari

O'zaro ta'sirlar

Turli xil o'zaro ta'sir turlari mavjud: foydalanuvchi ulanish so'rovi yuboradi, so'rovni qabul qiladi, boshqa foydalanuvchini kuzatadi, ob'ektni qidiradi, profilni ko'radi, postga layk bosadi yoki reaktsiya bildiradi va hokazo. E'tibor bering, amalda biz o'zaro ta'sir ma'lumotlarini turli ma'lumotlar bazalarida saqlashimiz mumkin, lekin soddalik uchun bu yerda hammasini bitta jadvalga kiritamiz.

Foydalanuvchi IDO'zaro ta'sir turiO'zaro ta'sir qiymatiVaqt belgisi
11Ulanish so'roviuser_id_81658450539
8Ulanishni qabul qilishuser_id_111658451341
11Izoh[user_id_4, Very insightful]1658451365
4Qidiruv"Scott Belsky"1658435948
11Profilni ko'rishuser_id_211658451849

11.3-jadval: O'zaro ta'sir ma'lumotlari

Xususiyat muhandisligi

Foydalanuvchi (masalan, foydalanuvchi A) uchun potentsial aloqalarni aniqlash uchun model foydalanuvchi A ning yoshi, jinsi va hokazo ma'lumotlaridan foydalanishi kerak. Bundan tashqari, foydalanuvchi A va boshqa foydalanuvchilar o'rtasidagi yaqinliklar foydalidir. Bu bo'limda eng muhim xususiyatlarning bir qismini muhokama qilamiz.

Foydalanuvchi xususiyatlari
Demografiya: yoshi, jinsi, shahri, mamlakati va hokazo.

Demografik ma'lumotlar ikki foydalanuvchining ulanish hosil qilishi ehtimolini aniqlashga yordam beradi. Foydalanuvchilar o'xshash demografik ko'rsatkichlarga ega odamlar bilan ulanishga moyil.

Demografik ma'lumotlarda yo'qolgan qiymatlar ko'p uchraydi. Yo'qolgan qiymatlarni qanday boshqarish haqida ko'proq ma'lumot olish uchun "Kirish va Ko'rib Chiqish" bobiga murojaat qiling.

Aloqalar, kuzatuvchilar, kuzatiluvchilar va kutilayotgan so'rovlar soni

Bu ma'lumot muhim, chunki foydalanuvchilar kam aloqali foydalanuvchiga qaraganda ko'p kuzatuvchi yoki aloqaga ega birov bilan ulanish ehtimoli ko'proq.

Hisob yoshi

Yaqinda yaratilgan hisoblar uzoq vaqtdan beri mavjud bo'lganlarga qaraganda kamroq ishonchli. Masalan, agar hisob kecha yaratilgan bo'lsa, u spam hisob bo'lish ehtimoli ko'proq. Shuning uchun, uni foydalanuvchilarga tavsiya qilish yaxshi fikr bo'lmasligi mumkin.

Olingan reaktsiyalar soni

Bu bir hafta kabi muayyan muddat davomida olingan layklar, ulashishlar va izohlar kabi reaktsiyalarning jami sonini ifodalovchi raqamli qiymatlar. Foydalanuvchilar boshqa foydalanuvchilardan ko'proq o'zaro ta'sir oladigan platformadagi faolroq foydalanuvchilar bilan ulanishga moyil.

Foydalanuvchi-foydalanuvchi yaqinliklari

Ikki foydalanuvchi o'rtasidagi yaqinlik ularning ulanishi yoki yo'qligini bashorat qilishda yaxshi signal. Foydalanuvchi-foydalanuvchi yaqinliklarini qamrab oladigan ba'zi muhim xususiyatlarni ko'rib chiqaylik.

Ta'lim va ish yaqinligi
  • Umumiy maktablar: Foydalanuvchilar bir xil maktabda o'qigan odamlar bilan ulanishga moyil.
  • Maktabda birga o'qish: Maktabda o'qigan yillar o'rtasidagi kesishma ikki foydalanuvchining ulanish ehtimolini oshiradi. Masalan, foydalanuvchilar ular o'qigan vaqtda X maktabida o'qigan biri bilan ulanmoqchi bo'lishi mumkin.
  • Bir xil mutaxassislik: Ikki foydalanuvchi maktabda bir xil mutaxassislikda o'qigan yoki yo'qligini ko'rsatuvchi ikkilik xususiyat.
  • Umumiy kompaniyalar soni: Foydalanuvchilar bir xil kompaniyalarda ishlagan odamlar bilan ulanishi mumkin.
  • Bir xil soha: Ikki foydalanuvchi bir xil sohada ishlaydi yoki yo'qligini ko'rsatuvchi ikkilik xususiyat.
Ijtimoiy yaqinlik
  • Profil tashrifi: Foydalanuvchining boshqa foydalanuvchi profilini ko'rish sonlari.
  • Umumiy aloqalar soni, ya'ni o'zaro aloqalar: Agar ikki foydalanuvchida ko'p umumiy aloqalar bo'lsa, ular ulanish hosil qilish ehtimoli ko'proq. Bu xususiyat eng muhim bashoratli xususiyatlardan biri [2].
  • Vaqt bilan o'lchangan o'zaro aloqalar: Bu xususiyat o'zaro aloqalarni ularning qancha vaqtdan beri mavjudligiga qarab og'irlaydi. Bu xususiyat ortidagi fikrni tushunish uchun bir misolni ko'rib chiqaylik.

Tasavvur qiling, foydalanuvchi B foydalanuvchi A uchun potentsial aloqa yoki yo'qligini aniqlashni xohlaymiz. Ikkita stsenariyni ko'rib chiqaylik: 1-stsenariyda foydalanuvchi A ning aloqalari juda yaqinda o'rnatilgan, 2-stsenariyda esa aloqalar uzoq vaqt oldin o'rnatilgan. Bu 11.8-rasmda ko'rsatilgan.

1-stsenariyda, foydalanuvchi A ning tarmog'i yaqinda o'sgani uchun, foydalanuvchi A foydalanuvchi B bilan ulanish hosil qilishi ehtimoli ko'proq. Shu bilan birga, 2-stsenariyda, foydalanuvchi A foydalanuvchi B haqida bilishi lekin ulanmaslikka qaror qilganligi ehtimoli ko'proq.

Model Ishlab Chiqish

Modelni tanlash

Oldinroq, PYMK muammosini qirra bashorat vazifasi sifatida shakllantirdik, bunda model ijtimoiy grafikni kirish sifatida qabul qiladi va ikki foydalanuvchi o'rtasida qirra mavjudligi ehtimolini bashorat qiladi. Qirra bashorat vazifasini bajarish uchun grafik kiruvchilarni qayta ishlay oladigan modelni tanlaymiz. Grafik neyron tarmoqlar (GNN) grafik ma'lumotlari bilan ishlash uchun mo'ljallangan. Keling, batafsil ko'rib chiqaylik.

GNN lar

GNN lar to'g'ridan-to'g'ri grafiklarga qo'llaniladigan neyron tarmoqlar. Ular grafik darajasidagi, tugun darajasidagi va qirra darajasidagi bashorat vazifalarini bajarishning oson usulini taqdim etadi.

11.9-rasmda ko'rsatilganidek, GNN kirishda grafikni oladi. Bu kirish grafigi tugunlar va qirralar bilan bog'liq atributlarni o'z ichiga oladi. Masalan, tugunlar yoshi, jinsi va hokazo kabi ma'lumotlarni saqlashi mumkin, qirralar esa umumiy maktablar va ish joylari soni, aloqa yoshi va hokazo kabi foydalanuvchi-foydalanuvchi xarakteristikalarini saqlashi mumkin. Kirish grafigi va bog'liq atributlar berilganida, GNN har bir tugun uchun tugun embeddings larini yaratadi.

Tugun embeddings lari yaratilgandan so'ng, ikki tugunning ulanish hosil qilishi ehtimolini bashorat qilish uchun nuqtalar ko'paytmasi kabi o'xshashlik o'lchovi yordamida ular ishlatiladi. Masalan, 11.10-rasmda ko'rsatilganidek, ular o'rtasida qirra mavjud yoki yo'qligini bashorat qilish uchun 2-tugun va 4-tugun embeddings larining nuqtalar ko'paytmasini hisoblaymiz.

So'nggi yillarda GCN [3], GraphSAGE [4], GAT [5] va GIT [6] kabi ko'plab GNN-ga asoslangan arxitekturalar ishlab chiqildi. Bu variantlar turli arxitektura va turli darajadagi murakkablikka ega. Qaysi arxitektura eng yaxshi ishlashini aniqlash uchun keng ko'lamli tajribalar o'tkazish talab etiladi. GNN-ga asoslangan arxitekturalarni chuqurroq tushunish uchun [7] ga murojaat qiling.

Modelni o'qitish

GNN modelini o'qitish uchun modeli t vaqtidagi ijtimoiy grafikning suratini (snapshot) beramiz. Model t+1 vaqtida hosil bo'ladigan aloqalarni bashorat qiladi. O'quv ma'lumotlarini qanday tuzishni ko'rib chiqaylik.

Ma'lumotlar to'plamini tuzish

Ma'lumotlar to'plamini tuzish uchun quyidagilarni bajaramiz:

  1. t vaqtidagi grafik suratini yaratish
  2. Grafikning dastlabki tugun xususiyatlari va qirra xususiyatlarini hisoblash
  3. Teglar yaratish

1. t vaqtidagi grafik suratini yaratish. O'quv ma'lumotlarini tuzishning birinchi bosqichi — model uchun kirish yaratish. GNN modeli kirish sifatida ijtimoiy grafikni kutgani uchun, mavjud xom ma'lumotlardan foydalanib t vaqtidagi ijtimoiy grafikning suratini yaratamiz. 11.11-rasm t vaqtidagi grafik namunaсini ko'rsatadi.

2. Grafikning dastlabki tugun xususiyatlari va qirra xususiyatlarini hisoblash. 11.12-rasmda ko'rsatilganidek, foydalanuvchining yoshi, jinsi, hisob yoshi, aloqalar soni va hokazo xususiyatlarini ajratib olamiz. Bular tugunlarning dastlabki xususiyat vektorlari sifatida ishlatiladi.

Xuddi shunday, foydalanuvchi-foydalanuvchi yaqinlik xususiyatlarini ajratib olamiz va ularni qirralarning dastlabki xususiyat vektorlari sifatida qo'llaymiz. 11.13-rasmda ko'rsatilganidek, foydalanuvchi 2 va foydalanuvchi 4 o'rtasida qirra mavjud. E2,4 o'zaro aloqalar soni, profil tashrifi, umumiy maktablarda birga o'qish vaqti kesishmasi va hokazo ma'lumotlarni qamrab oladigan dastlabki xususiyat vektorini ifodalaydi.

3. Teglar yaratish Bu bosqichda model bashorat qilishi kutilgan teglarni yaratamiz. Musbat yoki manfiy teglarni aniqlash uchun t+1 vaqtidagi grafik suratidan foydalanamiz. Keling, aniq misolni ko'rib chiqaylik.

11.14-rasmda ko'rsatilganidek, t+1 vaqtida yangi qirra hosil bo'lganiga qarab musbat va manfiy teglar yaratiladi. Xususan, t+1 da ulanadigan tugunlar juftligini musbat sifatida belgilaymiz. Aks holda, ular manfiy sifatida belgilanadi.

Yo'qotish funksiyasini tanlash

Kirish grafigi va teglar yaratilgandan so'ng, GNN modelini o'qitishga tayyormiz. GNN o'qitishining qanday ishlashi va qaysi yo'qotish funksiyalarini qo'llash haqida batafsil tushuntirish ushbu kitob doirasidan tashqarida. Bu haqda ko'proq ma'lumot olish uchun [7] ga qarang.

Baholash

Oflayn metrikalar

Oflayn baholash davomida GNN modelining va PYMK tizimining ishlashini baholaymiz.

GNN modeli

GNN modeli qirralar mavjudligini bashorat qilgani uchun, uni ikkilik klassifikatsiya modeli sifatida ko'rib chiqishimiz mumkin. Model ishlashini o'lchash uchun ROC-AUC metrikasi qo'llaniladi.

PYMK tizimi

Reytinglash va tavsiya tizimları uchun to'g'ri oflayn metrikalarni tanlashni oldingi boblarda batafsil muhokama qildik, shuning uchun bu yerda batafsil to'xtalmaymiz. Bizning tizimimizda foydalanuvchi tavsiya etilgan aloqa bilan ulanadi yoki uni rad etadi. Bu ikkilik xususiyat (ulanganligi yoki ulanmaganligi) tufayli mAP yaxshi tanlov.

Onlayn metrikalar

Amalda, kompaniyalar PYMK tizimlarining ta'sirini o'lchash uchun ko'plab onlayn metrikalarni kuzatib boradi. Eng muhim ikkita metrikani ko'rib chiqaylik:

  • So'nggi X kun ichida yuborilgan ulanish so'rovlarining jami soni
  • So'nggi X kun ichida qabul qilingan ulanish so'rovlarining jami soni

So'nggi X kun ichida yuborilgan ulanish so'rovlarining jami soni. Bu metrika modelning ulanish so'rovlari sonini oshirishi yoki kamaytirishi yoki yo'qligini tushunishga yordam beradi. Masalan, agar model yuborilgan ulanish so'rovlarining jami sonida 5% o'sishga olib kelsa, model biznes maqsadiga ijobiy ta'sir ko'rsatmoqda deb faraz qilishimiz mumkin.

Biroq, bu metrikaning asosiy kamchiligi bor. Ikki foydalanuvchi o'rtasida yangi aloqa faqat qabul qiluvchi ulanish so'rovini qabul qilganida hosil bo'ladi. Masalan, foydalanuvchi 1,000 ta ulanish so'rovi yuborishi mumkin, lekin qabul qiluvchilar faqat kichik foizini qabul qiladi. Bu metrika foydalanuvchilar tarmog'ining haqiqiy o'sishini to'g'ri aks ettirmasligi mumkin. Keling, keyingi metrika bilan bu kamchilikni bartaraf etaylik.

So'nggi X kun ichida qabul qilingan ulanish so'rovlarining jami soni. Yangi aloqa faqat qabul qiluvchi jo'natuvchining so'rovini qabul qilganida hosil bo'lgani uchun, bu metrika foydalanuvchilar tarmog'ining haqiqiy o'sishini aniq aks ettiradi.

Xizmat Ko'rsatish

Xizmat ko'rsatish vaqtida PYMK tizimi berilgan foydalanuvchiga potentsial aloqalar ro'yxatini samarali tavsiya qiladi. Bu bo'limda nima uchun tezlikni optimallashtirish kerakligini tushuntiramiz va PYMK ni samarali qilish uchun ba'zi texnikalarni taqdim etamiz. Keyin turli komponentlar birgalikda so'rovlarga xizmat ko'rsatadigan loyihani taklif qilamiz.

Samaradorlik

Talablarni yig'ish bo'limida muhokama qilganimizdek, platformadagi foydalanuvchilarning jami soni 1 milliard, bu esa bitta foydalanuvchi uchun potentsial aloqalarni topish uchun 1 milliard embeddings orqali saralash kerakligini ko'rsatadi. Yana murakkab jihati shundaki, algoritm har bir foydalanuvchi uchun ishga tushirilishi kerak. Ajablanarli emas, bu bizning ko'lamimizdagi noto'g'ri yondashuv. Muammoni yumshatish uchun ikki keng tarqalgan texnikadan foydalaniladi: 1) do'stlarning do'stlaridan (FoF) foydalanish va 2) PYMK ni oldindan hisoblash.

FoF dan foydalanish

Meta tadqiqotiga ko'ra [2], yangi do'stliklarning 92% i FoF orqali shakllanadi. Bu texnika qidiruv maydonini toraytirish uchun foydalanuvchining FoF ini ishlatadi.

Yuqorida aytib o'tilganidek, foydalanuvchining o'rtacha 1,000 ta do'sti bor. Demak, foydalanuvchining o'rtacha 1 million (1000 × 1000) ta FoF i bor. Bu qidiruv maydonini 1 milliarddan 1 milliongacha kamaytiradi.

PYMK ni oldindan hisoblash

Bir qadam orqaga qaytib, onlayn yoki paketli bashoratlarni qabul qilishni ko'rib chiqaylik.

Onlayn bashorat PYMK da onlayn bashorat foydalanuvchi bosh sahifani yuklaganida potentsial aloqalarni real vaqtda yaratishni anglatadi. Bu yondashuvda faol bo'lmagan foydalanuvchilar uchun tavsiyalar yaratmaymiz. Tavsiyalar "bir zumda" hisoblanadi, agar ularni hisoblash uzoq vaqt olsa, bu yomon foydalanuvchi tajribasini yaratadi.

Paketli bashorat Paketli bashorat tizim barcha foydalanuvchilar uchun potentsial aloqalarni oldindan hisoblab ma'lumotlar bazasida saqlashini anglatadi. Foydalanuvchi bosh sahifani yuklaganida, oldindan hisoblangan tavsiyalarni to'g'ridan-to'g'ri olamiz, shuning uchun oxirgi foydalanuvchi nuqtai nazaridan tavsiya oniydir. Paketli bashoratning kamchiligi shundaki, keraksiz hisoblashlarga duch kelishimiz mumkin. Tasavvur qiling, foydalanuvchilarning 20% i kundalik tarzda tizimga kiradi. Agar har kuni barcha foydalanuvchilar uchun tavsiyalar yaratilsa, 80% tavsiyalarni yaratish uchun ishlatiladigan hisoblash quvvati bekorga sarflanadi.

Qaysi variantni tanlaymiz: onlayn yoki paketli? Ikki sababga ko'ra paketli bashoratni tavsiya qilamiz. Birinchidan, yig'ilgan talablarga ko'ra, 300 million kunlik faol foydalanuvchi bor. Barcha 300 million foydalanuvchi uchun PYMK ni bir zumda hisoblash sifatli foydalanuvchi tajribasi uchun juda sekin bo'lishi mumkin.

Ikkinchidan, PYMK dagi ijtimoiy grafik tezda o'zgarmagani uchun, oldindan hisoblangan tavsiyalar uzoq muddat davomida dolzarb qoladi. Masalan, PYMK tavsiyalarini yetti kun saqlab, keyin qayta hisoblashimiz mumkin. Tarmoqlari tezroq o'sishi sababli yangi foydalanuvchilar uchun vaqt oynasini qisqartirish (masalan, bir kunga) mumkin.

Ijtimoiy tarmoqda foydalanuvchi bir xil tavsiya etilgan aloqalar to'plamini qayta-qayta ko'rishni istamasligi mumkin. Bunga qo'llab-quvvatlash uchun kerakligidan ko'proq aloqalarni oldindan hisoblashimiz va foydalanuvchi ilgari ko'rmaganlarini ko'rsatishimiz mumkin.

ML tizimi loyihasi

11.19-rasm PYMK ML tizimi loyihasini ko'rsatadi. Loyiha ikkita konveyerdan iborat:

  • PYMK yaratish konveyeri
  • Bashorat konveyeri

Har birini ko'rib chiqaylik.

PYMK yaratish konveyeri

Bu konveyер barcha foydalanuvchilar uchun PYMK ni yaratish va natijalarni ma'lumotlar bazasida saqlash uchun javobgar. Ushbu konveyerni yanada batafsil ko'rib chiqaylik.

Birinchi navbatda, muayyan foydalanuvchi uchun FoF xizmati aloqalarni nomzod aloqalar (2-pog'onali qo'shnilar) kichik to'plamiga toraytiradi. Bu 11.20-rasmda ko'rsatilgan.

Keyinchalik, baholash xizmati FoF xizmati tomonidan yaratilgan nomzod aloqalarni oladi, ularning har birini GNN modeli yordamida baholaydi, keyin foydalanuvchi uchun reytinglangan PYMK ro'yxatini yaratadi. PYMK ma'lumotlar bazasida saqlanadi. Foydalanuvchi so'rovi yuborilganida, biz ularning alohida PYMK ro'yxatini to'g'ridan-to'g'ri ma'lumotlar bazasidan olishimiz mumkin. Bu oqim 11.21-rasmda ko'rsatilgan.

Bashorat konveyeri

So'rov kelganida, PYMK xizmati avval tavsiyalar mavjudligini ko'rish uchun oldindan hisoblangan PYMK larga qaraydi. Agar mavjud bo'lsa, tavsiyalar to'g'ridan-to'g'ri olinadi. Agar yo'q bo'lsa, PYMK yaratish konveyeriga bir martalik so'rov yuboriladi.

E'tibor bering, biz taklif qilgan narsa soddalashtirilgan tizim. Suhbatda uni optimallashtirish so'ralsa, quyida bir nechta muhokama mavzulari:

  • PYMK ni faqat faol foydalanuvchilar uchun oldindan hisoblash.
  • Baholash xizmati ularni ball berguncha yaratilgan nomzodlar sonini kichikroq to'plamga kamaytirish uchun yengil reytingleştirgich ishlatish.
  • Yakuniy PYMK ro'yxatiga xilma-xillik qo'shish uchun qayta reytinglash xizmatidan foydalanish.

Boshqa Muhokama Mavzulari

Agar suhbat oxirida vaqt qolsa, quyidagi qo'shimcha muhokama mavzulari mavjud:

  • Shaxsiylashtirilgan tasodifiy yurish [8] — tavsiyalar berish uchun keng qo'llaniladigan yana bir usul. U samarali bo'lgani uchun, bazisni o'rnatishning foydali usuli.
  • Xolislik muammosi. Faol foydalanuvchilar o'quv ma'lumotlarida vaqti-vaqti bilan foydalanadigan foydalanuvchilarga qaraganda ko'proq ifodalanishga moyil. Model o'quv ma'lumotlarida notekis ifodalanish tufayli ba'zi guruhlarga nisbatan xolislik hosil qilishi mumkin. Masalan, PYMK ro'yxatida faol foydalanuvchilar boshqa foydalanuvchilarga yuqoriroq tezlikda tavsiya etilishi mumkin. Keyinchalik, bu foydalanuvchilar yanada ko'proq aloqalar o'rnatishi mumkin va ularni o'quv ma'lumotlarida yanada ko'proq ifodalanishga olib keladi [9].
  • Foydalanuvchi tavsiya etilgan aloqalarni qayta-qayta e'tiborsiz qoldirganda, ularni kelajakdagi qayta reytinglashlarda qanday hisobga olish masalasi tug'iladi. Ideal holda, e'tiborsiz qoldirilgan tavsiyalar pastroq reytingga ega bo'lishi kerak [9].
  • Foydalanuvchi uni tavsiya qilganimizda darhol ulanish so'rovi yubormasligi mumkin. Bir necha kun yoki hafta vaqt ketishi mumkin. Xo'sh, tavsiya etilgan aloqani qachon manfiy deb belgilashimiz kerak? Umuman olganda, tavsiya tizimlarida kechiktirilgan fikr-mulohazani qanday hal qilamiz [10]?

Adabiyotlar

  1. ML da klasterlash. https://developers.google.com/machine-learning/clustering/overview.
  2. Facebook-da PYMK. https://youtu.be/Xpx5RYNTQvg?t=1823.
  3. Grafik konvolyutsion neyron tarmoqlar. http://tkipf.github.io/graph-convolutional-networks/.
  4. GraphSage maqolasi. https://cs.stanford.edu/people/jure/pubs/graphsage-nips17.pdf.
  5. Grafik e'tibor tarmoqlari. https://arxiv.org/pdf/1710.10903.pdf.
  6. Grafik izomorfizm tarmog'i. https://arxiv.org/pdf/1810.00826.pdf.
  7. Grafik neyron tarmoqlar. https://distill.pub/2021/gnn-intro/.
  8. Shaxsiylashtirilgan tasodifiy yurish. https://www.youtube.com/watch?v=HbzQzUaJ_9I.
  9. LinkedIn-ning PYMK tizimi. https://engineering.linkedin.com/blog/2021/optimizing-pymk-for-equity-in-network-creation.
  10. Kechiktirilgan fikr-mulohazani bartaraf etish. https://arxiv.org/pdf/1907.06558.pdf.