Operasi machine learning ing Mail.ru Mail

Operasi machine learning ing Mail.ru Mail

Adhedhasar pidato ing Highload++ lan DataFest Minsk 2019.

Kanggo akeh saiki, mail minangka bagean integral saka urip online. Kanthi bantuan, kita nindakake korespondensi bisnis, nyimpen kabeh jinis informasi penting sing ana gandhengane karo keuangan, pesenan hotel, pesenan lan liya-liyane. Ing pertengahan 2018, kita ngrumusake strategi produk kanggo pangembangan surat. Apa ngirim mail modern kaya?

Mail kudu pinter, yaiku, ngewangi pangguna navigasi volume informasi sing saya tambah: nyaring, struktur lan nyedhiyakake kanthi cara sing paling trep. Dheweke mesthi migunani, ngijini sampeyan kanggo ngatasi macem-macem tugas tengen ing kothak layang, contone, mbayar denda (fungsi sing, sayangé, aku nggunakake). Lan ing wektu sing padha, mesthi, mail kudu menehi proteksi informasi, ngilangi spam lan nglindhungi saka hacking, yaiku, aman.

Wilayah kasebut nemtokake sawetara masalah utama, akeh sing bisa ditanggulangi kanthi efektif nggunakake pembelajaran mesin. Ing ngisor iki conto fitur sing wis ana sing dikembangake minangka bagean saka strategi - siji kanggo saben arah.

  • Jawab Smart. Mail nduweni fitur balesan cerdas. Jaringan saraf nganalisa teks layang kasebut, ngerteni makna lan tujuane, lan minangka asil nawakake telung pilihan respon sing paling cocog: positif, negatif lan netral. Iki mbantu ngirit wektu kanthi signifikan nalika mangsuli surat, lan uga asring nanggapi kanthi cara sing ora standar lan lucu.
  • Panglompokan emailrelated kanggo pesenan ing toko online. Kita asring toko online, lan, minangka aturan, toko bisa ngirim sawetara email kanggo saben pesenan. Contone, saka AliExpress, layanan paling gedhe, akeh huruf sing teka kanggo siji pesenan, lan kita ngetung yen ing kasus terminal nomer kasebut bisa nganti 29. Mulane, nggunakake model Pangenalan Entitas Named, kita ngekstrak nomer pesenan. lan informasi liyane saka teks lan klompok kabeh huruf ing siji utas. Kita uga nampilake informasi dhasar babagan pesenan ing kothak sing kapisah, sing ndadekake luwih gampang nggarap jinis email iki.

    Operasi machine learning ing Mail.ru Mail

  • Antiphishing. Phishing minangka jinis email penipuan sing mbebayani, kanthi bantuan para panyerang nyoba entuk informasi finansial (kalebu kertu bank pangguna) lan mlebu. Huruf kasebut niru huruf nyata sing dikirim dening layanan kasebut, kalebu kanthi visual. Mulane, kanthi bantuan Computer Vision, kita ngenali logo lan gaya desain huruf saka perusahaan gedhe (contone, Mail.ru, Sber, Alfa) lan njupuk iki bebarengan karo teks lan fitur liyane ing spam lan phishing classifiers. .

Sinau mesin

A sethitik babagan machine learning ing email ing umum. Mail minangka sistem sing akeh dimuat: rata-rata 1,5 milyar surat saben dina ngliwati server kita kanggo 30 yuta pangguna DAU. Udakara 30 sistem pembelajaran mesin ndhukung kabeh fungsi lan fitur sing dibutuhake.

Saben huruf ngliwati pipa klasifikasi kabeh. Pisanan kita ngilangi spam lan ninggalake email sing apik. Pangguna asring ora nggatekake karya antispam, amarga 95-99% spam ora ana ing folder sing cocog. Pangenalan spam minangka bagéyan penting banget saka sistem kita, lan sing paling angel, amarga ing bidang anti-spam ana adaptasi sing terus-terusan ing antarane sistem pertahanan lan serangan, sing nyedhiyakake tantangan teknik sing terus-terusan kanggo tim kita.

Sabanjure, kita misahake huruf saka wong lan robot. Email saka wong sing paling penting, mula kita nyedhiyakake fitur kaya Smart Reply kanggo wong-wong mau. Huruf saka robot dipérang dadi rong bagéan: transactional - iki layang penting saka layanan, contone, konfirmasi tumbas utawa hotel leladen, keuangan, lan informasi - iki iklan bisnis, diskon.

Kita yakin manawa email transaksional padha karo korespondensi pribadi. Padha kudu ing tangan, amarga kita kerep kudu cepet golek informasi bab pesenan utawa leladen tiket udhara, lan kita nglampahi wektu nelusuri huruf iki. Mulane, kanggo penak, kita kanthi otomatis dibagi dadi enem kategori utama: lelungan, pesenan, keuangan, tiket, registrasi lan, pungkasane, denda.

Huruf informasi minangka klompok paling gedhe lan mbokmenawa kurang penting, sing ora mbutuhake respon langsung, amarga ora ana owah-owahan sing signifikan ing urip pangguna yen ora maca layang kasebut. Ing antarmuka anyar, kita ambruk dadi rong utas: jaringan sosial lan buletin, saéngga mbusak kothak mlebu kanthi visual lan mung pesen penting sing katon.

Operasi machine learning ing Mail.ru Mail

Operasi

A nomer akeh sistem nimbulaké akèh kangelan ing operasi. Sawise kabeh, model ngrusak wektu, kaya piranti lunak: fitur rusak, mesin gagal, kode dadi bengkok. Kajaba iku, data saya ganti: sing anyar ditambahake, pola prilaku pangguna diowahi, lan liya-liyane, supaya model tanpa dhukungan sing tepat bakal dadi luwih elek lan luwih elek saka wektu.

Kita ora kudu lali manawa mesin sinau sing luwih jero mlebu ing urip pangguna, luwih gedhe pengaruhe ing ekosistem, lan, minangka asil, kerugian finansial utawa bathi sing bisa ditampa para pemain pasar. Mulane, ing wilayah sing saya tambah akeh, pemain adaptasi karo karya algoritma ML (conto klasik yaiku iklan, telusuran lan antispam sing wis kasebut).

Uga, tugas machine learning duwe kekhasan: owah-owahan apa wae, sanajan cilik, ing sistem bisa ngasilake akeh karya karo model: nggarap data, latihan maneh, penyebaran, sing bisa njupuk minggu utawa sasi. Mulane, luwih cepet lingkungan ing ngendi model sampeyan operate owah-owahan, luwih akeh gaweyan kanggo njaga. Tim bisa nggawe akeh sistem lan seneng, nanging banjur nglampahi meh kabeh sumber daya kanggo njaga, tanpa kesempatan kanggo nindakake apa-apa anyar. Kita tau nemoni kahanan kaya ngono ing tim antispam. Lan dheweke nggawe kesimpulan sing jelas manawa dhukungan kudu otomatis.

Otomasi

Apa bisa otomatis? Meh kabeh, bener. Aku wis nemtokake papat wilayah sing nemtokake infrastruktur machine learning:

  • pangumpulan data;
  • latihan tambahan;
  • nyebarake;
  • testing & ngawasi.

Yen lingkungan ora stabil lan terus-terusan ganti, kabeh infrastruktur ing saubengé model dadi luwih penting tinimbang model kasebut. Bisa uga dadi klasifikasi linear lawas sing apik, nanging yen sampeyan menehi fitur sing tepat lan entuk umpan balik sing apik saka pangguna, bakal luwih apik tinimbang model State-Of-The-Art kanthi kabeh lonceng lan peluit.

Umpan Balik Loop

Siklus iki nggabungake koleksi data, latihan tambahan lan penyebaran - nyatane, kabeh siklus nganyari model. Apa sebabe penting? Deleng jadwal registrasi ing surat:

Operasi machine learning ing Mail.ru Mail

Pangembang machine learning wis ngetrapake model anti-bot sing nyegah bot ndhaptar ing email. Grafik kasebut mudhun menyang nilai sing tetep mung pangguna nyata. Kabeh apik! Nanging patang jam liwat, bot-bot ngapiki skrip, lan kabeh bali normal. Ing implementasine iki, pangembang ngenteni sasi kanggo nambah fitur lan nglatih maneh model kasebut, nanging spammer bisa adaptasi sajrone patang jam.

Supaya ora nglarani banget lan ora kudu mbaleni maneh kabeh, mula kudu dipikirake kaya apa loop umpan balik lan apa sing bakal ditindakake yen lingkungan diganti. Ayo diwiwiti kanthi ngumpulake data - iki minangka bahan bakar kanggo algoritma kita.

Pangumpulan data

Cetha yen kanggo jaringan saraf modern, luwih akeh data, luwih apik, lan nyatane, digawe dening pangguna produk kasebut. Pangguna bisa mbantu kita kanthi menehi tandha data, nanging kita ora bisa nyalahake iki, amarga ing sawetara titik pangguna bakal kesel ngrampungake model sampeyan lan bakal ngalih menyang produk liyane.

Salah sawijining kesalahan sing paling umum (ing kene aku nggawe referensi kanggo Andrew Ng) yaiku fokus banget ing metrik ing dataset test, lan dudu umpan balik saka pangguna, sing sejatine minangka ukuran utama kualitas karya, amarga kita nggawe. produk kanggo pangguna. Yen pangguna ora ngerti utawa ora seneng karo karya model, kabeh bakal rusak.

Mulane, pangguna kudu tansah bisa milih lan kudu diwenehi alat kanggo umpan balik. Yen kita mikir yen surat sing ana hubungane karo keuangan wis teka ing kothak layang, kita kudu menehi tandha "keuangan" lan tarik tombol sing bisa diklik pangguna lan ujar manawa iki dudu keuangan.

Kualitas umpan balik

Ayo ngomong babagan kualitas umpan balik pangguna. Kaping pisanan, sampeyan lan pangguna bisa nggawe macem-macem makna dadi siji konsep. Contone, sampeyan lan manajer produk sampeyan mikir yen "keuangan" tegese layang saka bank, lan pangguna mikir yen layang saka nenek babagan pensiun uga nuduhake keuangan. Kapindho, ana pangguna sing ora seneng menet tombol tanpa logika. Katelu, pangguna bisa uga salah banget ing kesimpulane. Conto sing mencolok saka praktik kita yaiku implementasi classifier spam Nigeria, jinis spam sing lucu banget ing ngendi pangguna dijaluk njupuk pirang-pirang yuta dolar saka sedulur sing ujug-ujug ditemokake ing Afrika. Sawise ngleksanakake klasifikasi iki, kita mriksa "Ora Spam" klik ing email iki, lan ternyata 80% saka wong-wong mau minangka spam Nigerian jus, sing nuduhake yen pangguna bisa gampang ditipu.

Lan aja lali yen tombol bisa diklik ora mung dening wong, nanging uga kabeh jinis bot sing nyamar dadi browser. Dadi umpan balik mentah ora apik kanggo sinau. Apa sampeyan bisa nindakake karo informasi iki?

Kita nggunakake rong pendekatan:

  • Umpan balik saka link ML. Contone, kita duwe sistem anti-bot online, sing, kaya sing dakkandhakake, nggawe keputusan kanthi cepet adhedhasar tandha-tandha sing winates. Lan ana liya, sistem alon sing dianggo sawise kasunyatan. Wis luwih akeh data babagan pangguna, prilaku, lsp. Akibaté, keputusan sing paling informed digawe; mula, akurasi lan kelengkapan sing luwih dhuwur. Sampeyan bisa ngarahake prabédan ing operasi sistem kasebut menyang sing pisanan minangka data latihan. Mangkono, sistem sing luwih prasaja bakal tansah nyoba nyedhaki kinerja sing luwih rumit.
  • Klik klasifikasi. Sampeyan mung bisa nggolongake saben klik pangguna, ngevaluasi validitas lan kegunaane. Kita nindakake iki ing surat antispam, nggunakake atribut pangguna, riwayate, atribut pangirim, teks kasebut dhewe lan asil klasifikasi. Akibaté, kita entuk sistem otomatis sing validasi umpan balik pangguna. Lan amarga kudu dilatih maneh luwih jarang, karyane bisa dadi dhasar kanggo kabeh sistem liyane. Prioritas utama ing model iki yaiku presisi, amarga nglatih model babagan data sing ora akurat banget karo akibat.

Nalika kita ngresiki data lan nglatih sistem ML kita, kita ora kudu lali babagan pangguna, amarga kanggo kita, ewonan, mayuta-yuta kesalahan ing grafik minangka statistik, lan kanggo pangguna, saben bug minangka tragedi. Saliyane kasunyatan manawa pangguna kudu urip kanthi kesalahan sampeyan ing produk kasebut, sawise nampa umpan balik, dheweke ngarepake kahanan sing padha bakal diilangi ing mangsa ngarep. Mulane, mesthine kudu menehi pangguna ora mung kesempatan kanggo milih, nanging uga kanggo mbenerake prilaku sistem ML, nggawe, contone, heuristik pribadi kanggo saben klik umpan balik; ing kasus email, iki bisa dadi kemampuan kanggo nyaring. layang kuwi dening pangirim lan judhul kanggo pangguna iki.

Sampeyan uga kudu mbangun model adhedhasar sawetara laporan utawa panjalukan kanggo ndhukung ing mode semi-otomatis utawa manual supaya pangguna liyane ora nandhang sangsara marga saka masalah padha.

Heuristik kanggo sinau

Ana rong masalah karo heuristik lan kruk kasebut. Ingkang sepisan inggih menika kathahipun kruk-kruk ingkang saya tambah angel dipunpertahanaken, punapa malih kualitas lan kinerjanipun ing salebeting jangka panjang. Masalah kapindho yaiku kesalahan bisa uga ora kerep, lan sawetara klik kanggo nglatih model kasebut ora cukup. Katon yen loro efek sing ora ana hubungane kasebut bisa dinetralake kanthi signifikan yen pendekatan ing ngisor iki ditrapake.

  1. Kita nggawe crutch sementara.
  2. We ngirim data saka iku kanggo model, iku ajeg nganyari dhewe, kalebu ing data ditampa. Ing kene, mesthine, penting yen heuristik nduweni akurasi sing dhuwur supaya ora nyuda kualitas data ing set latihan.
  3. Banjur kita nyetel ngawasi kanggo micu crutch, lan yen sawise sawetara wektu crutch ora bisa digunakake lan wis rampung dijamin dening model, sampeyan bisa kanthi aman nyopot. Saiki masalah iki ora mungkin kedadeyan maneh.

Dadi tentara kruk migunani banget. Ingkang utama yaiku layanan kasebut urgent lan ora permanen.

Latihan tambahan

Latihan maneh yaiku proses nambahake data anyar sing dipikolehi minangka asil umpan balik saka pangguna utawa sistem liyane, lan nglatih model sing wis ana. Bisa uga ana sawetara masalah karo latihan tambahan:

  1. Model kasebut bisa uga ora ndhukung latihan tambahan, nanging sinau mung saka awal.
  2. Ora ana ing buku alam sing ditulis yen latihan tambahan mesthi bakal ningkatake kualitas karya ing produksi. Asring ngelawan kedadeyan, yaiku, mung bisa rusak.
  3. Owah-owahan bisa ora bisa ditebak. Iki minangka titik sing rada subtle sing wis diidentifikasi dhewe. Sanajan model anyar ing tes A/B nuduhake asil sing padha dibandhingake karo sing saiki, iki ora ateges bakal bisa digunakake kanthi identik. Pakaryan bisa beda-beda mung siji persen, sing bisa nyebabake kesalahan anyar utawa ngasilake kesalahan lawas sing wis didandani. Loro-lorone kita lan pangguna wis ngerti carane urip karo kesalahan saiki, lan nalika akeh kesalahan anyar muncul, pangguna bisa uga ora ngerti apa sing kedadeyan, amarga dheweke ngarepake prilaku sing bisa ditebak.

Mulane, sing paling penting ing latihan tambahan yaiku kanggo mesthekake yen model kasebut apik, utawa paling ora luwih elek.

Babagan pisanan sing dipikirake nalika kita ngomong babagan latihan tambahan yaiku pendekatan Pembelajaran Aktif. Apa tegese iki? Contone, classifier nemtokake manawa email ana hubungane karo keuangan, lan ing sekitar wates keputusane kita nambahake conto conto sing dilabeli. Iki bisa dianggo kanthi apik, umpamane, ing pariwara, ing ngendi ana akeh umpan balik lan sampeyan bisa nglatih model kasebut kanthi online. Lan yen ana umpan balik sing sithik, mula kita entuk sampel sing bias banget babagan distribusi data produksi, kanthi basis ora bisa ngevaluasi prilaku model sajrone operasi.

Operasi machine learning ing Mail.ru Mail

Nyatane, tujuan kita yaiku kanggo ngreksa pola lawas, model sing wis dikenal, lan entuk sing anyar. Kontinuitas penting ing kene. Model kasebut, sing asring ditindakake, wis bisa digunakake, mula kita bisa fokus ing kinerja.

Model sing beda digunakake ing surat: wit, linear, jaringan saraf. Kanggo saben kita nggawe algoritma latihan tambahan dhewe. Ing proses latihan tambahan, kita ora mung nampa data anyar, nanging uga asring fitur anyar, sing bakal dianggep ing kabeh algoritma ing ngisor iki.

Model linear

Ayo kita duwe regresi logistik. Kita nggawe model mundhut saka komponen ing ngisor iki:

  • LogLoss ing data anyar;
  • kita ngatur bobot fitur anyar (kita ora ndemek sing lawas);
  • kita uga sinau saka data lawas kanggo ngreksa pola lawas;
  • lan, mbok menawa, sing paling penting: kita nambah Regularization harmonik, kang njamin sing bobot ora ngganti akeh relatif kanggo model lawas miturut pakewuh.

Amarga saben komponen Loss duwe koefisien, kita bisa milih nilai optimal kanggo tugas kita liwat validasi silang utawa adhedhasar syarat produk.

Operasi machine learning ing Mail.ru Mail

Pohon

Ayo pindhah menyang wit keputusan. Kita wis nyusun algoritma ing ngisor iki kanggo latihan tambahan wit:

  1. Produksi nganggo alas 100-300 wit, sing dilatih ing set data lawas.
  2. Ing pungkasan kita mbusak M = 5 bêsik lan nambah 2M = 10 anyar, dilatih ing kabeh set data, nanging karo bobot dhuwur kanggo data anyar, kang alamiah njamin owah-owahan tambahan ing model.

Temenan, suwene wektu, jumlah wit saya tambah akeh, lan kudu dikurangi kanthi periodik supaya bisa nyukupi wektu. Kanggo nindakake iki, kita nggunakake Distillation Knowledge (KD) sing saiki ana ing ngendi-endi. Sedhela babagan prinsip operasi.

  1. Kita duwe model "kompleks" saiki. Kita mbukak ing set data latihan lan entuk distribusi kemungkinan kelas ing output.
  2. Sabanjure, kita nglatih model siswa (model karo wit sing luwih sithik ing kasus iki) kanggo mbaleni asil model nggunakake distribusi kelas minangka variabel target.
  3. Penting kanggo dicathet ing kene yen kita ora nggunakake markup set data kanthi cara apa wae, lan mulane kita bisa nggunakake data sewenang-wenang. Mesthi, kita nggunakake sampel data saka aliran pertempuran minangka conto latihan kanggo model mahasiswa. Mangkono, set latihan ngidini kita njamin akurasi model, lan sampel stream njamin kinerja sing padha ing distribusi produksi, ngimbangi bias set latihan.

Operasi machine learning ing Mail.ru Mail

Kombinasi saka rong teknik kasebut (nambah wit-witan lan nyuda jumlahe kanthi periodik nggunakake Distilasi Pengetahuan) njamin introduksi pola anyar lan kesinambungan lengkap.

Kanthi bantuan KD, kita uga nindakake operasi sing beda ing fitur model, kayata mbusak fitur lan nggarap celah. Ing kasus kita, kita duwe sawetara fitur statistik penting (dening pangirim, hash teks, URL, lan liya-liyane) sing disimpen ing basis data, sing cenderung gagal. Model kasebut, mesthi, ora siap kanggo pangembangan acara kasebut, amarga kahanan gagal ora kedadeyan ing set latihan. Ing kasus kaya mengkono, kita gabungke KD lan Techniques augmentation: nalika latihan kanggo bagéan saka data, kita mbusak utawa ngreset fitur sing perlu, lan kita njupuk label asli (output saka model saiki), lan model mahasiswa sinau kanggo mbaleni distribusi iki. .

Operasi machine learning ing Mail.ru Mail

Kita weruh yen manipulasi model sing luwih serius, luwih akeh persentase sampel benang sing dibutuhake.

Ngilangi fitur, operasi sing paling gampang, mung mbutuhake bagean cilik saka aliran, amarga mung sawetara fitur sing diganti, lan model saiki dilatih ing set sing padha - bedane minimal. Kanggo nyederhanakake model kasebut (nyuda jumlah wit kaping pirang-pirang), 50 nganti 50. Lan kanggo ngilangi fitur statistik penting sing bakal mengaruhi kinerja model kasebut, luwih akeh aliran dibutuhake kanggo level karya saka model omission-tahan anyar ing kabeh jinis aksara.

Operasi machine learning ing Mail.ru Mail

FastText

Ayo pindhah menyang FastText. Ayo kula ngelingake sampeyan yen representasi (Embedding) tembung kasusun saka jumlah saka embedding tembung dhewe lan kabeh huruf N-gram, biasane trigrams. Amarga bisa uga ana akeh trigram, Bucket Hashing digunakake, yaiku, ngowahi kabeh ruang dadi peta hash tetep tartamtu. Akibaté, matriks bobot dipikolehi kanthi dimensi lapisan jero saben jumlah tembung + ember.

Kanthi latihan tambahan, pratandha anyar katon: tembung lan trigram. Ora ana kedadeyan sing signifikan ing latihan tindakake standar saka Facebook. Mung bobot lawas kanthi entropi silang sing dilatih maneh ing data anyar. Mangkono, fitur-fitur anyar ora digunakake, mesthi, pendekatan iki duwe kabeh cacat ing ndhuwur-diterangake gadhah unpredictability model ing produksi. Pramila kita ngowahi FastText sethithik. Kita nambah kabeh bobot anyar (tembung lan trigram), nggedhekake kabeh matriks kanthi cross-entropy lan nambah regularisasi harmonik kanthi analogi karo model linear, sing njamin owah-owahan sing ora pati penting ing bobot lawas.

Operasi machine learning ing Mail.ru Mail

CNN

Jaringan konvolusional rada rumit. Yen lapisan pungkasan rampung ing CNN, mesthine sampeyan bisa ngetrapake regularisasi harmonik lan njamin kesinambungan. Nanging yen latihan tambahan saka kabeh jaringan dibutuhake, regularization kuwi ora bisa ditrapake maneh kanggo kabeh lapisan. Nanging, ana pilihan kanggo nglatih embeddings pelengkap liwat Triplet Loss (artikel asli).

Mundhut Triple

Nggunakake tugas anti-phishing minangka conto, ayo goleki Triplet Loss ing istilah umum. Kita njupuk logo kita, uga conto positif lan negatif saka logo perusahaan liyane. Kita nyilikake jarak antarane pisanan lan nggedhekake jarak antarane kaloro, kita nindakake iki karo longkangan cilik kanggo mesthekake compactness luwih saka kelas.

Operasi machine learning ing Mail.ru Mail

Yen kita luwih nglatih jaringan kasebut, ruang metrik kita wis ganti, lan dadi ora kompatibel karo sing sadurunge. Iki minangka masalah serius ing masalah sing nggunakake vektor. Kanggo ngatasi masalah iki, kita bakal nyampur embeddings lawas sajrone latihan.

Kita wis nambahake data anyar menyang set latihan lan nglatih model versi kapindho saka awal. Ing tahap kapindho, kita luwih nglatih jaringan kita (Finetuning): pisanan lapisan pungkasan wis rampung, lan banjur kabeh jaringan unfrozen. Ing proses nyipta triplet, kita mung ngetung bagean saka embeddings nggunakake model sing dilatih, liyane - nggunakake sing lawas. Mangkono, ing proses latihan tambahan, kita njamin kompatibilitas spasi metrik v1 lan v2. Versi unik saka regularisasi harmonik.

Operasi machine learning ing Mail.ru Mail

Kabeh arsitektur

Yen kita nimbang kabeh sistem nggunakake antispam minangka conto, banjur model ora diisolasi, nanging nested ing saben liyane. Kita njupuk gambar, teks lan fitur liyane, nggunakake CNN lan Fast Text kita entuk embeddings. Sabanjure, klasifikasi ditrapake ing ndhuwur embeddings, sing nyedhiyakake skor kanggo macem-macem kelas (jinis huruf, spam, anane logo). Sinyal lan pratandha wis mlebu ing alas wit-witan kanggo nggawe keputusan pungkasan. Klasifikasi individu ing skema iki ndadekake luwih bisa napsirake asil sistem lan luwih khusus nglatih maneh komponen yen ana masalah, tinimbang menehi kabeh data menyang wit keputusan kanthi bentuk mentah.

Operasi machine learning ing Mail.ru Mail

Akibaté, kita njamin kesinambungan ing saben level. Ing tingkat ngisor ing CNN lan Fast Text kita nggunakake regularization harmonik, kanggo classifiers ing tengah uga nggunakake regularization harmonik lan kalibrasi tarif kanggo konsistensi saka distribusi kemungkinan. Ya, ngedongkrak wit dilatih kanthi bertahap utawa nggunakake Distilasi Pengetahuan.

Umumé, njaga sistem learning machine nested kuwi biasane pain, amarga sembarang komponen ing tingkat ngisor ndadékaké kanggo nganyari kanggo kabeh sistem ndhuwur. Nanging amarga ing persiyapan kita, saben komponèn diganti rada lan kompatibel karo sing sadurunge, kabeh sistem bisa dianyari Piece dening Piece tanpa perlu kanggo retrain kabeh struktur, kang ngidini kanggo ndhukung tanpa overhead serius.

nyebarake

Kita wis ngrembug koleksi data lan latihan tambahan saka macem-macem jinis model, supaya kita pindhah menyang penyebaran menyang lingkungan produksi.

Tes A/B

Kaya sing wis dakkandhakake sadurunge, ing proses ngumpulake data, kita biasane entuk sampel bias, saka ngendi ora bisa ngevaluasi kinerja produksi model kasebut. Mula, nalika nyebarake, model kasebut kudu dibandhingake karo versi sadurunge supaya bisa ngerti kepiye kedadeyan, yaiku, nganakake tes A/B. Nyatane, proses nggulung lan nganalisa grafik cukup rutin lan bisa gampang diotomatisasi. Kita muter model kita kanthi bertahap nganti 5%, 30%, 50% lan 100% pangguna, nalika ngumpulake kabeh metrik sing kasedhiya babagan respon model lan umpan balik pangguna. Ing kasus sawetara outlier serius, kita kanthi otomatis muter maneh model, lan kanggo kasus liyane, wis diklumpukake nomer cukup klik pangguna, kita mutusaké kanggo nambah persentasi. Akibaté, kita nggawa model anyar menyang 50% pangguna kanthi otomatis, lan rollout menyang kabeh pamirsa bakal disetujoni dening wong, sanajan langkah iki bisa otomatis.

Nanging, proses tes A / B nawakake ruang kanggo optimasi. Kasunyatane manawa tes A / B cukup suwe (ing kasus kita butuh saka 6 nganti 24 jam gumantung saka jumlah umpan balik), sing ndadekake cukup larang lan sumber daya winates. Kajaba iku, persentase aliran sing cukup dhuwur kanggo tes dibutuhake kanggo nyepetake wektu sakabèhé tes A/B (ngambil sampel sing signifikan sacara statistik kanggo ngevaluasi metrik kanthi persentase cilik bisa njupuk wektu sing suwe), sing ndadekake nomer A / B slot arang banget winates. Temenan, kita kudu nyoba mung model sing paling janjeni, sing ditampa akeh sajrone proses latihan tambahan.

Kanggo ngatasi masalah iki, kita nglatih klasifikasi kapisah sing prédhiksi sukses tes A/B. Kanggo nindakake iki, kita njupuk statistik nggawe keputusan, Precision, Recall lan metrik liyane ing set latihan, ing sing ditundha, lan ing sampel saka stream minangka fitur. Kita uga mbandhingake model karo sing saiki ing produksi, kanthi heuristik, lan njupuk menyang akun Kompleksitas model. Nggunakake kabeh fitur kasebut, klasifikasi sing dilatih babagan riwayat tes ngevaluasi model calon, ing kasus iki, iki minangka alas wit, lan mutusake sing digunakake ing tes A/B.

Operasi machine learning ing Mail.ru Mail

Ing wektu implementasine, pendekatan iki ngidini kita nambah jumlah tes A / B sing sukses kaping pirang-pirang.

Testing & ngawasi

Tes lan ngawasi, cukup aneh, ora ngrusak kesehatan kita, nanging, sebaliknya, nambah lan nyuda stres sing ora perlu. Testing ngijini sampeyan kanggo nyegah Gagal, lan ngawasi ngijini sampeyan kanggo ndeteksi ing wektu kanggo nyuda impact ing pangguna.

Penting kanggo ngerti ing kene manawa cepet utawa mengko sistem sampeyan bakal nggawe kesalahan - iki amarga siklus pangembangan piranti lunak apa wae. Ing wiwitan pangembangan sistem mesthi ana akeh kewan omo nganti kabeh rampung lan tahap utama inovasi rampung. Nanging liwat wektu, entropi njupuk tol, lan kasalahan katon maneh - amarga degradasi komponen watara lan owah-owahan ing data, kang aku ngomong bab ing wiwitan.

Ing kene aku pengin nyathet manawa sistem pembelajaran mesin apa wae kudu dianggep saka sudut pandang keuntungan sajrone kabeh siklus urip. Grafik ing ngisor iki nuduhake conto cara sistem bisa nyekel jinis spam sing langka (garis ing grafik cedhak nol). Sawijining dina, amarga atribut sing ora disimpen kanthi bener, dheweke dadi edan. Minangka luck, ora ana pemantauan kanggo pemicu abnormal; Akibaté, sistem wiwit nyimpen huruf kanthi jumlah gedhe menyang folder "spam" ing wates pengambilan keputusan. Sanajan mbenerake akibate, sistem kasebut wis nggawe kesalahan kaping pirang-pirang sing ora bakal mbayar dhewe sanajan limang taun. Lan iki minangka kegagalan lengkap saka sudut pandang siklus urip model.

Operasi machine learning ing Mail.ru Mail

Mula, perkara sing gampang kaya ngawasi bisa dadi kunci ing urip model. Saliyane metrik standar lan ketok, kita nimbang distribusi respon model lan skor, uga distribusi nilai fitur tombol. Nggunakake divergensi KL, kita bisa mbandhingake distribusi saiki karo sejarah utawa nilai-nilai ing tes A / B karo aliran liyane, sing ngidini kita ngelingi anomali ing model kasebut lan ngowahi owah-owahan kanthi pas wektune.

Umume kasus, kita miwiti versi sistem pisanan nggunakake heuristik utawa model prasaja sing digunakake minangka pemantauan ing mangsa ngarep. Contone, kita ngawasi model NER dibandhingake karo sing biasa kanggo toko online tartamtu, lan yen jangkoan klasifikasi mudhun dibandhingake karo wong-wong mau, mula kita ngerti sebabe. Panggunaan heuristik liyane sing migunani!

Hasil

Ayo goleki maneh gagasan utama artikel kasebut.

  • Fibdeck. Kita mesthi mikir babagan pangguna: kepiye dheweke bakal urip karo kesalahane, kepiye carane bisa nglaporake. Aja lali yen pangguna ora dadi sumber umpan balik murni kanggo model latihan, lan kudu diresiki kanthi bantuan sistem ML tambahan. Yen ora bisa ngumpulake sinyal saka pangguna, mula kita goleki sumber umpan balik alternatif, contone, sistem sing disambungake.
  • Latihan tambahan. Sing utama ing kene yaiku kontinuitas, mula kita ngandelake model produksi saiki. Kita nglatih model anyar supaya ora beda karo sing sadurunge amarga regularisasi harmonik lan trik sing padha.
  • nyebarake. Penyebaran otomatis adhedhasar metrik nyuda wektu kanggo ngleksanakake model. Statistik ngawasi lan distribusi nggawe keputusan, jumlah tiba saka pangguna wajib kanggo turu sing tenang lan akhir minggu sing produktif.

Muga-muga iki mbantu sampeyan nambah sistem ML kanthi luwih cepet, supaya bisa dipasarake kanthi luwih cepet, lan nggawe luwih dipercaya lan ora ngepenakke.

Source: www.habr.com

Add a comment