Operasi pembelajaran mesin dina Mail.ru Mail

Operasi pembelajaran mesin dina Mail.ru Mail

Dumasar pidato kuring di Highload ++ sareng DataFest Minsk 2019.

Pikeun seueur dinten ayeuna, surat mangrupikeun bagian integral tina kahirupan online. Kalayan bantosanana, kami ngalaksanakeun korespondensi bisnis, nyimpen sagala jinis inpormasi penting anu aya hubunganana sareng kauangan, pesenan hotél, nempatkeun pesenan sareng seueur deui. Dina pertengahan 2018, urang ngarumuskeun strategi produk pikeun ngembangkeun mail. Kumaha surat modern kedah sapertos?

Surat kudu pinter, nyaeta, nulungan pamaké napigasi volume ngaronjatna inpormasi: filter, struktur jeung nyadiakeun dina cara nu pangmerenahna. Manehna kudu mangpaat, ngamungkinkeun Anjeun pikeun ngajawab rupa tugas katuhu dina kotak surat anjeun, Contona, mayar denda (fungsi anu, hanjakalna, kuring make). Sareng dina waktos anu sami, tangtosna, surat kedah nyayogikeun panyalindungan inpormasi, motong spam sareng ngajagi tina peretasan, nyaéta, janten tengtrem.

Wewengkon ieu nangtukeun sababaraha masalah konci, seueur anu tiasa direngsekeun sacara efektif nganggo pembelajaran mesin. Ieu conto fitur anu parantos aya dikembangkeun salaku bagian tina strategi - hiji pikeun unggal arah.

  • Pinter Waleran. Surat gaduh fitur balesan pinter. Jaringan saraf nganalisa téks surat, ngartos makna sareng tujuanana, sareng salaku hasilna nawiskeun tilu pilihan réspon anu paling pas: positip, négatip sareng nétral. Ieu ngabantuan ngahemat waktos sacara signifikan nalika ngawalon hurup, sareng sering ngabales dina cara anu henteu standar sareng lucu.
  • Ngagolongkeun surelekpatali jeung pesenan di toko online. Urang mindeng balanja online, sarta, sakumaha aturan, toko bisa ngirim sababaraha surelek pikeun tiap pesenan. Salaku conto, ti AliExpress, jasa panggedéna, seueur hurup pikeun hiji pesenan, sareng kami ngitung yén dina kasus terminal jumlahna tiasa dugi ka 29. Ku alatan éta, nganggo modél Pangenal Entitas Named, urang nimba nomer pesenan. sareng inpormasi sanésna tina téks sareng grup sadaya hurup dina hiji benang. Kami ogé ningalikeun inpormasi dasar ngeunaan pesenan dina kotak anu misah, anu matak ngagampangkeun damel sareng jinis email ieu.

    Operasi pembelajaran mesin dina Mail.ru Mail

  • Anti phishing. Phishing mangrupikeun jinis email panipuan anu bahaya, kalayan bantosan anu panyerang nyobian kéngingkeun inpormasi kauangan (kalebet kartu bank pangguna) sareng login. Hurup sapertos kitu meniru anu nyata anu dikirim ku jasa, kalebet sacara visual. Ku alatan éta, kalayan bantuan Computer Vision, urang mikawanoh logos jeung gaya desain hurup ti pausahaan badag (contona, Mail.ru, Sber, Alfa) jeung nyokot ieu akun babarengan jeung téks jeung fitur sejenna dina spam jeung phishing classifiers. .

Diajar mesin

Sakedik ngeunaan pembelajaran mesin dina email sacara umum. Surat mangrupikeun sistem anu sarat pisan: rata-rata 1,5 milyar hurup per dinten ngalangkungan server kami pikeun 30 juta pangguna DAU. Sakitar 30 sistem pembelajaran mesin ngadukung sadaya fungsi sareng fitur anu diperyogikeun.

Unggal hurup ngaliwatan hiji sakabéh pipa klasifikasi. Kahiji urang neukteuk off spam jeung ninggalkeun surelek alus. Pamaké mindeng teu perhatikeun karya antispam, sabab 95-99% spam teu malah mungkas nepi di folder luyu. Pangenal spam mangrupikeun bagian anu penting pisan dina sistem kami, sareng anu paling hese, sabab dina widang anti spam aya adaptasi konstan antara sistem pertahanan sareng serangan, anu nyayogikeun tantangan rékayasa kontinyu pikeun tim kami.

Salajengna, urang misahkeun hurup ti jalma jeung robot. Surélék ti jalma-jalma anu paling penting, ku kituna kami nyayogikeun fitur sapertos Smart Reply pikeun aranjeunna. Surat tina robot dibagi jadi dua bagian: transactional - ieu téh surat penting tina jasa, contona, confirmations of purchases atawa reservations hotél, finances, sarta informational - ieu téh iklan bisnis, diskon.

Kami yakin yén email transaksional sami pentingna sareng korespondensi pribadi. Éta kudu di leungeun, sabab urang mindeng kudu gancang manggihan inpo ngeunaan hiji pesenan atawa tikét hawa reservasi, sarta kami méakkeun waktu néangan hurup ieu. Ku alatan éta, pikeun genah, urang otomatis ngabagi kana genep kategori utama: perjalanan, pesenan, keuangan, tiket, registrations na, tungtungna, denda.

Surat inpormasi mangrupikeun grup anu panggedéna sareng sigana kirang penting, anu henteu peryogi réspon langsung, sabab teu aya anu signifikan anu bakal robih dina kahirupan pangguna upami anjeunna henteu maca surat sapertos kitu. Dina panganteur anyar urang, urang ambruk kana dua threads: jaringan sosial jeung buletin, sahingga visually mupus koropak tur ninggalkeun pesen penting wungkul katempo.

Operasi pembelajaran mesin dina Mail.ru Mail

eksploitasi

Sajumlah ageung sistem nyababkeun seueur kasusah dina operasi. Barina ogé, modél nguraikeun kana waktosna, sapertos parangkat lunak naon waé: fitur rusak, mesin gagal, kode janten bengkok. Salaku tambahan, data terus-terusan robih: anu énggal ditambah, pola paripolah pangguna dirobih, sareng sajabana, janten modél tanpa dukungan anu leres bakal langkung parah sareng parah kana waktosna.

Urang teu kudu poho yén learning mesin deeper penetrates kana kahirupan pamaké, nu leuwih gede dampak maranéhanana dina ékosistem, sarta, salaku hasilna, leuwih karugian finansial atawa pamaén pasar kauntungan bisa narima. Ku alatan éta, dina ngaronjatna jumlah wewengkon, pamaén adaptasi jeung karya algoritma ML (conto klasik nyaéta iklan, pilarian jeung antispam geus disebutkeun).

Ogé, tugas mesin learning boga peculiarity: sagala, sanajan minor, parobahan dina sistem bisa ngahasilkeun loba karya kalawan modél: gawé bareng data, palatihan balik, deployment, nu bisa nyandak minggu atawa bulan. Ku alatan éta, beuki gancang lingkungan dimana model Anjeun beroperasi robah, beuki loba usaha diperlukeun pikeun ngajaga eta. Hiji tim bisa nyieun loba sistem jeung senang ngeunaan eta, tapi lajeng méakkeun ampir sakabéh sumberdaya na ngajaga aranjeunna, tanpa kasempetan pikeun ngalakukeun nanaon anyar. Kami sakali mendakan kaayaan sapertos kitu dina tim antispam. Sareng aranjeunna ngadamel kacindekan anu jelas yén dukungan kedah otomatis.

Automation

Naon anu tiasa otomatis? Ampir sagalana, sabenerna. Kuring geus ngaidentifikasi opat wewengkon nu nangtukeun infrastruktur learning mesin:

  • ngumpulkeun data;
  • latihan tambahan;
  • nyebarkeun;
  • nguji & ngawaskeun.

Upami lingkunganana teu stabil sareng terus-terusan robih, maka sadaya prasarana di sekitar modél tétéla langkung penting tibatan modél éta sorangan. Bisa jadi hiji classifier linier heubeul alus, tapi lamun eupan eta fitur katuhu jeung meunang eupan balik alus ti pamaké, éta bakal dianggo leuwih hadé ti model State-Of-The-Art kalawan sagala bells na whistles.

Eupan Balik Loop

siklus ieu ngagabungkeun pendataan, latihan tambahan sarta deployment - kanyataanna, sakabéh siklus update model. Naha éta penting? Tingali jadwal pendaptaran dina surat:

Operasi pembelajaran mesin dina Mail.ru Mail

Pamekar diajar mesin parantos ngalaksanakeun modél anti bot anu nyegah bot ngadaptar dina email. Grafik turun ka nilai dimana ngan ukur pangguna nyata tetep. Sagalana hébat! Tapi opat jam kaliwat, bot tweak skrip maranéhanana, sarta sagalana balik deui ka normal. Dina palaksanaan ieu, pamekar nyéépkeun sabulan pikeun nambihan fitur sareng ngalatih deui modél, tapi spammer tiasa adaptasi dina opat jam.

Supados henteu nyeri pisan sareng henteu kedah ngulang deui sadayana engké, urang mimitina kedah mikirkeun kumaha loop eupan balik bakal katingali sareng naon anu bakal urang laksanakeun upami lingkunganana robih. Hayu urang mimitian ku ngumpulkeun data - ieu suluh pikeun algoritma urang.

Ngumpulkeun data

Éta jelas yén pikeun jaringan saraf modern, langkung seueur data, langkung saé, sareng aranjeunna, kanyataanna, dihasilkeun ku pangguna produk. Pamaké tiasa ngabantosan kami ku cara nyirian data, tapi kami henteu tiasa nyiksa ieu, sabab dina sababaraha waktos pangguna bakal bosen ngalengkepan modél anjeun sareng bakal ngalih ka produk anu sanés.

Salah sahiji kasalahan paling umum (di dieu kuring nyieun rujukan ka Andrew Ng) nyaeta teuing fokus kana metrics on dataset test, teu on eupan balik ti pamaké, nu sabenerna ngarupakeun ukuran utama kualitas karya, saprak urang nyieun. produk pikeun pamaké. Upami pangguna henteu ngartos atanapi henteu resep kana karya modél, maka sadayana ancur.

Ku alatan éta, pamaké kudu salawasna bisa milih jeung kudu dibikeun alat pikeun eupan balik. Lamun urang mikir yén surat nu patali jeung keuangan geus anjog di kotak surat, urang kudu ditandaan eta "keuangan" jeung ngagambar tombol nu pamaké bisa klik sarta nyebutkeun yén ieu teu keuangan.

Kualitas eupan balik

Hayu urang ngobrol ngeunaan kualitas eupan balik pamaké. Anu mimiti, anjeun sareng pangguna tiasa nempatkeun hartos anu béda dina hiji konsép. Salaku conto, anjeun sareng manajer produk anjeun mikir yén "keuangan" hartosna surat ti bank, sareng pangguna nyangka yén surat ti nini ngeunaan mancén na ogé ngarujuk kana kauangan. Bréh, aya pamaké anu mindlessly resep mencet tombol tanpa logika nanaon. Thirdly, pamaké bisa jadi deeply salah kasimpulan na. Conto anu luar biasa tina prakték urang nyaéta palaksanaan classifier spam Nigerian, jenis spam pisan lucu dimana pamaké dipenta pikeun nyandak sababaraha juta dollar ti baraya jauh ujug-ujug kapanggih di Afrika. Saatos nerapkeun classifier ieu, urang pariksa "Henteu Spam" clicks on surelek ieu, sarta tétéla yén 80% di antarana éta juicy spam Nigerian, nu nunjukkeun yén pamaké tiasa pisan gampang katipu.

Sarta ulah poho yén tombol bisa diklik teu ukur ku jalma, tapi ogé sagala sorts bot nu pretend janten browser a. Jadi eupan balik atah teu alus keur diajar. Naon anu anjeun tiasa laksanakeun sareng inpormasi ieu?

Urang ngagunakeun dua pendekatan:

  • Eupan balik ti numbu ML. Contona, urang boga sistem anti bot online, nu, sakumaha kuring disebutkeun, nyieun kaputusan gancang dumasar kana jumlah kawates tanda. Tur aya kadua, sistem slow anu hade sanggeus kanyataan. Éta ngagaduhan langkung seueur data ngeunaan pangguna, paripolahna, jsb. Hasilna, kaputusan anu paling terang dilakukeun; sasuai, éta gaduh akurasi sareng lengkep anu langkung luhur. Anjeun tiasa ngarahkeun bédana dina operasi sistem ieu ka anu munggaran salaku data latihan. Ku kituna, sistem basajan bakal salawasna coba mun ngadeukeutan kinerja hiji leuwih kompleks.
  • Klik klasifikasi. Anjeun saukur tiasa mengklasifikasikan unggal klik pamaké, evaluate validitas sarta usability. Urang ngalakukeun ieu dina surat antispam, ngagunakeun atribut pamaké, sajarah na, atribut pangirim, téks sorangan jeung hasil tina classifiers. Hasilna, urang meunang sistem otomatis nu validates eupan balik pamaké. Sareng sabab kedah dilatih deui langkung jarang, karyana tiasa janten dasar pikeun sadaya sistem anu sanés. Prioritas utama dina modél ieu nyaéta katepatan, sabab ngalatih modél dina data anu teu akurat téh pinuh ku akibat.

Nalika kami ngabersihan data sareng ngalatih sistem ML kami, urang henteu kedah hilap ngeunaan pangguna, sabab pikeun kami, rébuan, jutaan kasalahan dina grafik mangrupikeun statistik, sareng pikeun pangguna, unggal bug mangrupikeun tragedi. Salian kanyataan yén pamaké kudu kumaha bae hirup kalawan kasalahan anjeun dina produk, sanggeus narima eupan balik, anjeunna nyangka yén kaayaan sarupa bakal dileungitkeun dina mangsa nu bakal datang. Ku alatan éta, éta salawasna patut masihan pamaké teu ukur kasempetan pikeun ngajawab, tapi ogé pikeun ngabenerkeun kabiasaan sistem ML, nyieun, contona, heuristics pribadi pikeun tiap klik eupan balik; dina kasus mail, ieu bisa jadi kamampuhan pikeun nyaring. hurup sapertos ku pangirim sareng judul pikeun pangguna ieu.

Anjeun ogé kedah ngawangun modél dumasar kana sababaraha laporan atanapi pamenta pikeun ngadukung dina modeu semi-otomatis atanapi manual supados pangguna sanés henteu ngalaman masalah anu sami.

Heuristik pikeun diajar

Aya dua masalah sareng heuristik sareng crutches ieu. Anu kahiji nyaéta yén jumlah crutches anu terus-terusan sesah dijaga, sumawona kualitas sareng kinerjana dina jangka panjang. Masalah anu kadua nyaéta yén kasalahan éta henteu sering, sareng sababaraha klik pikeun ngalatih modél éta moal cekap. Éta sigana yén dua épék anu teu aya hubunganana ieu tiasa nétralisasi sacara signifikan upami pendekatan ieu diterapkeun.

  1. Urang nyieun crutch samentara.
  2. Urang ngirim data ti dinya ka model, eta rutin ngamutahirkeun sorangan, kaasup dina data narima. Di dieu, tangtosna, penting yén heuristik ngagaduhan akurasi anu luhur supados henteu ngirangan kualitas data dina set pelatihan.
  3. Teras we nyetél ngawaskeun pikeun memicu kruk, sareng upami saatos sababaraha waktos kruk teu tiasa dianggo sareng lengkep katutupan ku modél, maka anjeun tiasa aman nyabut éta. Ayeuna masalah ieu teu mungkin kajadian deui.

Ku kituna hiji tentara crutches pohara kapaké. Hal utama nyaéta yén jasana urgent sareng henteu permanén.

Latihan tambahan

Latihan deui nyaéta prosés nambahkeun data anyar anu diala salaku hasil tina eupan balik ti pamaké atawa sistem séjén, sarta ngalatih model nu geus aya. Meureun aya sababaraha masalah sareng latihan tambahan:

  1. Modél bisa saukur teu ngarojong latihan tambahan, tapi diajar ngan ti scratch.
  2. Teu aya dina buku alam anu ditulis yén latihan tambahan pasti bakal ningkatkeun kualitas gawé dina produksi. Mindeng sabalikna kajadian, nyaeta, ngan deterioration mungkin.
  3. Parobahan tiasa unpredictable. Ieu mangrupikeun titik anu rada halus anu kami parantos dikenalkeun pikeun diri urang sorangan. Sanaos modél énggal dina tés A/B nunjukkeun hasil anu sami dibandingkeun sareng anu ayeuna, ieu sanés hartosna éta bakal tiasa dianggo sami. Karya maranéhanana bisa jadi béda dina ngan hiji persen, nu bisa mawa kasalahan anyar atawa balik deui nu heubeul nu geus dilereskeun. Duanana urang jeung pamaké geus nyaho kumaha carana hirup kalawan kasalahan ayeuna, sarta lamun sajumlah badag kasalahan anyar timbul, pamaké ogé bisa jadi teu ngarti naon anu lumangsung, sabab ekspektasi kabiasaan bisa diprediksi.

Ku alatan éta, hal anu paling penting dina latihan tambahan nyaéta pikeun mastikeun yén modél ningkat, atanapi sahenteuna henteu parah.

Hal kahiji anu jadi pikiran nalika urang ngobrol ngeunaan latihan tambahan nyaéta pendekatan Active Learning. Naon ieu hartosna? Contona, classifier nangtukeun naha surelek aya hubunganana jeung keuangan, sarta sabudeureun wates kaputusan na urang nambahkeun sampel conto dilabélan. Ieu jalan ogé, contona, dina iklan, dimana aya loba eupan balik sarta anjeun bisa ngalatih model online. Tur upami aya saeutik eupan balik, teras urang meunang sampel kacida bias relatif ka distribusi data produksi, dina dasar nu teu mungkin keur evaluate kabiasaan model salila operasi.

Operasi pembelajaran mesin dina Mail.ru Mail

Kanyataanna, tujuan urang pikeun ngawétkeun pola heubeul, model geus dipikawanoh, sarta acquire nu anyar. Kontinuitas penting di dieu. Modélna, anu sering urang teras-terasan ngaluncurkeun, parantos damel, janten urang tiasa difokuskeun kana pagelaranana.

Model anu béda dianggo dina surat: tangkal, linier, jaringan saraf. Pikeun unggal urang ngadamel algoritma latihan tambahan sorangan. Dina prosés latihan tambahan, urang nampi teu ukur data anyar, tapi ogé mindeng fitur anyar, nu urang bakal tumut kana akun dina sakabéh algoritma handap.

Modél liniér

Anggap urang gaduh régrési logistik. Urang nyieun model leungitna tina komponén handap:

  • LogLoss on data anyar;
  • urang ngaregepkeun beurat fitur anyar (urang henteu nyabak anu lami);
  • urang ogé diajar tina data heubeul guna ngawétkeun pola heubeul;
  • jeung, meureun, hal pangpentingna: urang tambahkeun Regularization harmonik, nu ngajamin yén beurat moal robah teuing relatif ka model heubeul nurutkeun norma.

Kusabab unggal komponén Loss gaduh koefisien, urang tiasa milih nilai optimal pikeun tugas urang ngaliwatan cross-validasi atanapi dumasar kana syarat produk.

Operasi pembelajaran mesin dina Mail.ru Mail

Tangkal

Hayu urang ngaléngkah ka tangkal kaputusan. Kami parantos nyusun algoritma ieu pikeun latihan tambahan tangkal:

  1. Produksi ngajalankeun leuweung tina 100-300 tangkal, nu dilatih dina set data heubeul.
  2. Dina tungtungna urang nyabut M = 5 lembar sarta nambahan 2M = 10 nu anyar, dilatih dina sakabéh set data, tapi ku beurat tinggi pikeun data anyar, nu sacara alami ngajamin parobahan Incremental dina modél.

Jelas, kana waktu, jumlah tangkal naek greatly, sarta maranéhanana kudu périodik ngurangan guna minuhan timings. Jang ngalampahkeun ieu, kami nganggo Distilasi Pangaweruh (KD) anu ayeuna aya di mana-mana. Sakeudeung ngeunaan prinsip operasi na.

  1. Kami gaduh model "kompleks" ayeuna. Urang ngajalankeun eta dina set data latihan jeung meunang sebaran probabiliti kelas di kaluaran.
  2. Salajengna, urang ngalatih model murid (model kalawan tangkal pangsaeutikna dina hal ieu) malikan hasil model ngagunakeun distribusi kelas salaku variabel target.
  3. Kadé dicatet di dieu yén kami henteu nganggo markup set data dina cara naon waé, sareng ku kituna urang tiasa nganggo data sawenang-wenang. Tangtosna, kami nganggo sampel data tina aliran tempur salaku conto latihan pikeun modél murid. Ku kituna, set latihan ngamungkinkeun urang pikeun mastikeun katepatan modél, sarta sampel stream ngajamin kinerja sarupa dina distribusi produksi, compensating pikeun bias set latihan.

Operasi pembelajaran mesin dina Mail.ru Mail

Kombinasi dua téhnik ieu (nambahkeun tangkal jeung périodik ngurangan jumlah maranéhanana ngagunakeun Distilasi Pangaweruh) ensures bubuka pola anyar jeung continuity lengkep.

Kalayan bantosan KD, kami ogé ngalaksanakeun operasi anu béda dina fitur modél, sapertos ngahapus fitur sareng ngerjakeun sela. Dina kasus urang, urang boga sababaraha fitur statistik penting (ku senders, hashes téks, URL, jsb) nu disimpen dina database, nu condong gagal. Modél, tangtosna, henteu siap pikeun ngembangkeun acara sapertos kitu, sabab kaayaan gagal henteu lumangsung dina set latihan. Dina kasus kawas, urang ngagabungkeun KD jeung téhnik augmentation: nalika latihan pikeun bagian tina data, urang nyabut atawa ngareset fitur diperlukeun, sarta kami nyandak labél aslina (output tina model ayeuna), sarta modél murid diajar ngulang distribusi ieu. .

Operasi pembelajaran mesin dina Mail.ru Mail

Urang noticed nu manipulasi model beuki serius lumangsung, nu gede persentase sampel thread diperlukeun.

Panyabutan fitur, operasi pangbasajanna, merlukeun ukur bagian leutik tina aliran, sabab ngan sababaraha fitur robah, sarta model ayeuna dilatih dina set anu sarua - bédana minimal. Pikeun nyederhanakeun modél (ngurangan jumlah tangkal sababaraha kali), parantos diperyogikeun 50 dugi ka 50. Sareng pikeun ngaleungitkeun fitur statistik penting anu serius bakal mangaruhan kinerja modél, bahkan langkung seueur aliran anu diperyogikeun pikeun ngabéréskeun padamelan. model omission-tahan anyar dina sagala jinis hurup.

Operasi pembelajaran mesin dina Mail.ru Mail

FastText

Hayu urang ngaléngkah ka FastText. Hayu atuh ngingetkeun yén ngagambarkeun (Embedding) kecap diwangun ku jumlah embedding kecap sorangan jeung sakabéh hurup na N-gram, biasana trigrams. Kusabab aya tiasa rada loba trigrams, Ember Hashing dipaké, nyaéta, ngarobah sakabéh spasi kana hashmap tetep tangtu. Hasilna, matriks beurat dicandak kalayan diménsi lapisan jero per jumlah kecap + ember.

Kalayan latihan tambahan, tanda anyar muncul: kecap sareng trigram. Euweuh kajadian signifikan dina latihan nurutan-up standar ti Facebook. Ngan beurat heubeul kalawan cross-éntropi anu retrained on data anyar. Ku kituna, fitur-fitur anyar henteu dianggo, tangtosna, pendekatan ieu ngagaduhan sadaya kalemahan anu dijelaskeun di luhur pakait sareng unpredictability model dina produksi. Éta sababna urang ngarobih sakedik FastText. Urang tambahkeun sagala beurat anyar (kecap jeung trigrams), dilegakeun sakabéh matriks kalawan cross-éntropi tur nambahkeun regularization harmonik ku analogi jeung model linier, nu ngajamin parobahan teu signifikan dina beurat heubeul.

Operasi pembelajaran mesin dina Mail.ru Mail

CNN

Jaringan konvolusional rada rumit. Upami lapisan terakhir réngsé dina CNN, maka, tangtosna, anjeun tiasa nerapkeun teraturisasi harmonik sareng ngajamin kontinuitas. Tapi lamun latihan tambahan tina sakabéh jaringan diperlukeun, regularization misalna teu bisa dilarapkeun ka sadaya lapisan. Tapi, aya pilihan pikeun ngalatih embeddings pelengkap ngaliwatan Triplet Loss (artikel aslina).

Karugian tripel

Ngagunakeun tugas anti phishing sabagé conto, hayu urang tingali Triplet Loss sacara umum. Kami nyandak logo urang, kitu ogé conto positip sareng négatip tina logo perusahaan sanés. Urang ngaleutikan jarak antara kahiji jeung maksimalkeun pungsi jarak antara kadua, urang ngalakukeun ieu kalawan gap leutik pikeun mastikeun compactness gede tina kelas.

Operasi pembelajaran mesin dina Mail.ru Mail

Upami urang langkung ngalatih jaringan, maka rohangan métrik urang parantos robih, sareng janten teu cocog sareng anu sateuacana. Ieu masalah serius dina masalah anu ngagunakeun vektor. Pikeun ngurilingan masalah ieu, urang bakal nyampur embeddings heubeul salila latihan.

Kami parantos nambihan data énggal kana set latihan sareng ngalatih versi kadua modél ti mimiti. Dina tahap kadua, urang salajengna ngalatih jaringan urang (Finetuning): kahiji lapisan panungtungan geus réngsé, lajeng sakabéh jaringan unfrozen. Dina prosés nyusun triplets, urang ngan ukur ngitung bagian tina embeddings nganggo modél anu dilatih, sésana - nganggo anu lami. Ku kituna, dina prosés latihan tambahan, urang mastikeun kasaluyuan spasi métrik v1 jeung v2. Versi unik tina regularization harmonik.

Operasi pembelajaran mesin dina Mail.ru Mail

Sakabéh arsitéktur

Lamun urang nganggap sakabéh sistem ngagunakeun antispam sabagé conto, model teu terasing, tapi nested dina unggal lianna. Kami nyandak gambar, téks sareng fitur sanésna, nganggo CNN sareng Fast Text kami nampi émbeddings. Salajengna, classifiers diterapkeun dina luhureun embeddings, nu nyadiakeun skor pikeun sagala rupa kelas (jenis hurup, spam, ayana logo). Sinyal-sinyal sareng tanda-tanda parantos asup ka leuweung tangkal pikeun kaputusan anu terakhir. Klasifikasi individu dina skéma ieu ngamungkinkeun pikeun napsirkeun hasil sistem sareng langkung khusus ngalatih deui komponén upami aya masalah, tinimbang nyoco sadaya data kana tangkal kaputusan dina bentuk atah.

Operasi pembelajaran mesin dina Mail.ru Mail

Hasilna, kami ngajamin kontinuitas dina unggal tingkat. Dina tingkat handap dina CNN jeung Fast Text kami nganggo regularization harmonik, pikeun classifiers di tengah kami ogé ngagunakeun regularization harmonik jeung laju calibration pikeun konsistensi sebaran probabiliti. Nya, naekeun tangkal dilatih sacara bertahap atanapi nganggo Distilasi Pangaweruh.

Sacara umum, ngajaga sistem pembelajaran mesin sapertos kitu biasana nyeri, sabab komponén naon waé di tingkat handap nyababkeun pembaruan ka sadaya sistem di luhur. Tapi saprak di setup kami unggal komponén rada robah sarta kompatibel jeung saméméhna, sakabéh sistem bisa diropéa sapotong-sapotong tanpa kudu ngalatih deui sakabéh struktur, anu ngamungkinkeun pikeun ngarojong tanpa overhead serius.

Nyebarkeun

Kami parantos ngabahas pendataan sareng pelatihan tambahan tina sababaraha jinis modél, ku kituna urang teraskeun kana panyebaranna kana lingkungan produksi.

Uji A/B

Salaku Cenah mah saméméhna, dina prosés ngumpulkeun data, urang biasana meunang sampel bias, nu teu mungkin keur evaluate kinerja produksi model. Ku alatan éta, nalika deploying, model kudu dibandingkeun jeung versi saméméhna dina urutan ngartos kumaha kaayaan sabenerna lumangsung, nyaeta, ngalaksanakeun tés A / B. Nyatana, prosés ngagulung sareng nganalisa grafik cukup rutin sareng tiasa otomatis otomatis. Urang gulung kaluar model urang laun ka 5%, 30%, 50% jeung 100% tina pamaké, bari ngumpulkeun sakabeh metrics sadia on réspon modél jeung eupan balik pamaké. Dina kasus sababaraha outliers serius, urang otomatis gulung deui model, sarta pikeun kasus séjén, sanggeus ngumpulkeun jumlah cukup clicks pamaké, urang mutuskeun pikeun ngaronjatkeun persentase. Hasilna, urang mawa modél anyar pikeun 50% pamaké sagemblengna otomatis, sarta rollout ka sakabéh panongton bakal disatujuan ku hiji jalma, sanajan hambalan ieu bisa otomatis.

Nanging, prosés uji A / B nawiskeun rohangan pikeun optimasi. Kanyataan yén sagala tés A / B cukup panjang (dina hal urang butuh ti 6 nepi ka 24 jam gumantung kana jumlah eupan balik), nu ngajadikeun eta rada mahal tur kalawan sumberdaya kawates. Salaku tambahan, persentase aliran anu cukup luhur pikeun tés diperyogikeun pikeun dasarna nyepetkeun waktos umum tina tés A / B (ngarekrut sampel anu signifikan sacara statistik pikeun meunteun métrik dina persentase leutik tiasa nyandak waktos anu lami pisan), anu ngajantenkeun. jumlah A / B slot pisan kawates. Jelas, urang kedah nguji ngan ukur model anu paling ngajangjikeun, anu kami nampi seueur pisan salami prosés latihan tambahan.

Pikeun ngajawab masalah ieu, urang ngalatih hiji classifier misah nu prédiksi kasuksésan hiji test A / B. Jang ngalampahkeun ieu, urang nyandak statistik-nyieun kaputusan, Precision, ngelingan tur metrics sejenna dina set latihan, nu ditunda, sarta dina sampel tina aliran salaku fitur. Kami ogé ngabandingkeun modél sareng anu ayeuna dina produksi, kalayan heuristik, sareng tumut kana kompleksitas modél. Ngagunakeun sagala fitur ieu, hiji classifier dilatih dina sajarah test ngaevaluasi model calon, bisi urang ieu leuweung tina tatangkalan, sarta mutuskeun nu mana nu dipaké dina test A / B.

Operasi pembelajaran mesin dina Mail.ru Mail

Dina waktu palaksanaan, pendekatan ieu ngamungkinkeun urang pikeun ngaronjatkeun jumlah suksés A / B tés sababaraha kali.

Nguji & ngawaskeun

Nguji sareng ngawaskeun, cukup aneh, henteu ngarugikeun kaséhatan urang; sabalikna, aranjeunna ningkatkeunana sareng ngaleungitkeun setrés anu teu perlu. Tés ngamungkinkeun anjeun pikeun nyegah kagagalan, sareng ngawaskeun ngamungkinkeun anjeun ngadeteksi dina waktosna pikeun ngirangan dampak kana pangguna.

Kadé ngartos didieu yén sooner atanapi engké sistem anjeun bakal salawasna nyieun kasalahan - ieu téh alatan siklus ngembangkeun software nanaon. Dina awal pamekaran sistem sok aya seueur bug dugi ka sadayana settles sareng tahap utama inovasi réngsé. Tapi kana waktu, éntropi nyokot tol na, sarta kasalahan némbongan deui - alatan degradasi komponén sabudeureun tur parobahan data, nu kuring ngobrol ngeunaan di awal.

Di dieu Abdi hoyong dicatet yén sagala sistem learning mesin kudu dianggap ti sudut pandang kauntungan na sapanjang sakabéh siklus hirup na. Grafik di handap nembongkeun conto kumaha sistem jalan nyekel hiji tipe langka spam (garis dina grafik deukeut enol). Hiji poé, alatan atribut lepat sindangan, manéhna jadi gélo. Sapertos nasibna, teu aya mantau pikeun pemicu anu teu normal; salaku hasilna, sistem mimiti nyimpen hurup dina jumlah anu ageung kana folder "spam" dina wates pengambilan kaputusan. Sanajan ngabenerkeun konsékuansi, sistem geus loba kali nyieun kasalahan anu teu mayar sorangan sanajan dina lima taun. Sareng ieu mangrupikeun kagagalan lengkep tina sudut pandang siklus kahirupan modél.

Operasi pembelajaran mesin dina Mail.ru Mail

Ku alatan éta, hal basajan sapertos ngawaskeun tiasa janten konci dina kahirupan modél. Salian metrics baku tur atra, urang tempo sebaran réspon model jeung skor, kitu ogé sebaran nilai fitur konci. Nganggo divergénsi KL, urang tiasa ngabandingkeun distribusi ayeuna sareng anu sajarah atanapi nilai-nilai dina tés A / B sareng sesa aliran, anu ngamungkinkeun urang perhatikeun anomali dina modél sareng gulung deui parobihan dina waktosna.

Dina kalolobaan kasus, urang ngaluncurkeun vérsi sistem munggaran urang nganggo heuristik atanapi modél saderhana anu kami anggo pikeun ngawaskeun ka hareup. Salaku conto, urang ngawas modél NER dibandingkeun sareng anu biasa pikeun toko online khusus, sareng upami cakupan klasifikasi turun dibandingkeun sareng aranjeunna, maka urang ngartos alesanana. Mangpaat séjén tina heuristik!

hasil

Hayu urang balik deui gagasan konci artikel.

  • Fibdeck. Kami salawasna mikirkeun pangguna: kumaha anjeunna bakal hirup sareng kasalahan urang, kumaha anjeunna tiasa ngalaporkeunana. Ulah hilap yén pangguna sanés sumber eupan balik murni pikeun modél pelatihan, sareng éta kedah dibersihkeun kalayan bantosan sistem ML bantu. Lamun teu mungkin pikeun ngumpulkeun sinyal ti pamaké, urang néangan sumber alternatif eupan balik, contona, sistem disambungkeun.
  • Latihan tambahan. Hal utama di dieu nyaéta kontinuitas, janten urang ngandelkeun modél produksi ayeuna. Kami ngalatih modél énggal supados henteu bénten jauh ti anu sateuacana kusabab teraturisasi harmonik sareng trik anu sami.
  • Nyebarkeun. Otomatis-deployment dumasar kana metrics greatly ngurangan waktu pikeun nerapkeun model. Statistik ngawaskeun sareng distribusi pengambilan kaputusan, jumlah ragrag tina pangguna wajib pikeun sare tenang anjeun sareng sabtu minggu produktif.

Nya, kuring ngarepkeun ieu ngabantosan anjeun ningkatkeun sistem ML anjeun langkung gancang, kéngingkeun ka pasar langkung gancang, sareng ngajantenkeunana langkung dipercaya sareng teu stres.

sumber: www.habr.com

Tambahkeun komentar