Operatioun vun Maschinn Léieren an Mail.ru Mail

Operatioun vun Maschinn Léieren an Mail.ru Mail

Baséiert op meng Rieden um Highload++ an DataFest Minsk 2019.

Fir vill haut ass Mail en integralen Deel vum Online Liewen. Mat senger Hëllef maache mir Geschäftskorrespondenz, späichere all Zorte vu wichteg Informatioun am Zesummenhang mat Finanzen, Hotelbuchungen, Bestellungen a vill méi. Mëtt 2018 hu mir eng Produktstrategie fir Mail Entwécklung formuléiert. Wéi soll modern Mail sinn?

Mail muss sinn schlau, dat heescht, d'Benotzer ze hëllefen d'Erhéijung vun Informatioun ze navigéieren: filteren, strukturéieren an op déi bequemste Manéier ubidden. Si muss sinn nëtzlech, Dir kënnt verschidden Aufgaben direkt an Ärer Mailbox léisen, zum Beispill Geldstrofen bezuelen (eng Funktioun déi ech leider benotzen). A gläichzäiteg muss natierlech d'Mail Informatiounsschutz ubidden, Spam ofschneiden a géint Hacking schützen, dat heescht sécher.

Dës Beräicher definéieren eng Zuel vu Schlësselproblemer, vill vun deenen effektiv mat Maschinnléiere geléist kënne ginn. Hei sinn Beispiller vu scho bestehend Funktiounen entwéckelt als Deel vun der Strategie - eng fir all Richtung.

  • Smart Reply. Mail huet eng Smart Äntwert Feature. Neural Netzwierk analyséiert den Text vum Bréif, versteet seng Bedeitung an Zweck, a bitt als Resultat déi dräi passendste Äntwertoptiounen: positiv, negativ an neutral. Dëst hëlleft däitlech Zäit ze spueren wann Dir Bréiwer beäntwert, an och dacks op eng net-Standard a witzeg Manéier reagéiert.
  • Gruppéieren E-MailenZesummenhang mat Bestellungen an Online Geschäfter. Mir shoppen dacks online, an als Regel kënnen d'Geschäfter e puer E-Maile fir all Bestellung schécken. Zum Beispill, vum AliExpress, dem gréisste Service, komme vill Bréiwer fir eng Bestellung eran, a mir hunn berechent datt am Terminalfall hir Zuel bis zu 29 erreechen kéint. an aner Informatioun aus dem Text a gruppéiere all Buschtawen an engem Fuedem. Mir weisen och Basisinformatioun iwwer d'Bestellung an enger separater Këscht, wat et méi einfach mécht mat dëser Zort E-Mail ze schaffen.

    Operatioun vun Maschinn Léieren an Mail.ru Mail

  • Antiphishing. Phishing ass eng besonnesch geféierlech betrügeresch Aart vun E-Mail, mat der Hëllef vun deenen Ugräifer probéieren finanziell Informatioun ze kréien (inklusiv de Benotzer seng Bankkaarten) a Login. Esou Bréiwer mimic real déi vum Service geschéckt, dorënner visuell. Dofir, mat der Hëllef vu Computer Vision, erkennen mir Logoen an den Designstil vu Bréiwer vu grousse Firmen (zum Beispill Mail.ru, Sber, Alfa) a berücksichtegen dëst zesumme mat Text an aner Funktiounen an eise Spam- a Phishing-Klassifizéierer .

Maschinn léieren

E bëssen iwwer Maschinnléieren an E-Mail am Allgemengen. Mail ass en héich gelueden System: en Duerchschnëtt vun 1,5 Milliarde Bréiwer pro Dag passéieren duerch eis Servere fir 30 Milliounen DAU Benotzer. Ongeféier 30 Maschinnléiersystemer ënnerstëtzen all déi néideg Funktiounen a Funktiounen.

All Bréif geet duerch eng ganz Klassifikatioun Pipeline. Als éischt hu mir Spam ofgeschnidden a gutt E-Maile hannerlooss. D'Benotzer bemierken dacks d'Aarbecht vum Antispam net, well 95-99% vum Spam net emol am passenden Dossier ophalen. Spam Unerkennung ass e ganz wichtege Bestanddeel vun eisem System, an déi schwieregst, well am Beräich vun Anti-Spam gëtt et eng konstant Adaptatioun tëscht Verteidegung an Attack Systemer, déi eng kontinuéierlech Ingenieur Erausfuerderung fir eis Equipe gëtt.

Als nächst trenne mir Bréiwer vu Leit a Roboteren. E-Maile vu Leit sinn déi wichtegst, sou datt mir Funktiounen wéi Smart Reply fir si ubidden. Bréiwer aus Roboteren sinn an zwee Deeler ënnerdeelt: Transaktiounen - dat si wichteg Bréiwer aus Servicer, zum Beispill, Bestätegung vun Akeef oder Hotel Reservatioun, Finanzen, an Informatiounen - dat sinn Affär Reklammen, Remise.

Mir gleewen datt Transaktiouns-E-Maile gläich a Wichtegkeet fir perséinlech Korrespondenz sinn. Si solle bei der Hand sinn, well mir brauchen dacks séier Informatiounen iwwert eng Bestellung oder Flugbilljeeën Reservatioun ze fannen, a mir verbréngen Zäit fir dës Bréiwer ze sichen. Dofir, fir d'Kamoudheet, ënnerdeele mir se automatesch a sechs Haaptkategorien: Reesen, Bestellungen, Finanzen, Ticketen, Aschreiwungen a schliisslech Geldstrofen.

Informatiounsbréiwer sinn déi gréisst a wahrscheinlech manner wichteg Grupp, déi keng direkt Äntwert erfuerderen, well näischt Wichtegst am Liewen vum Benotzer ännert wann hien net sou e Bréif liest. An eiser neier Interface zerbriechen mir se an zwee Threads: sozial Netzwierker an Newslettere, sou datt d'Inbox visuell läscht an nëmme wichteg Messagen siichtbar sinn.

Operatioun vun Maschinn Léieren an Mail.ru Mail

Operatioun

Eng grouss Zuel vu Systemer verursaacht vill Schwieregkeeten an der Operatioun. Nodeems d'Modeller mat der Zäit degradéieren, wéi all Software: Feature briechen, Maschinnen falen, Code gëtt kromm. Zousätzlech ännert sech d'Donnéeën dauernd: nei ginn dobäi, d'Benotzerverhalensmuster ginn transforméiert, asw., sou datt e Modell ouni adäquate Ënnerstëtzung mat der Zäit ëmmer méi schlëmm funktionnéiert.

Mir däerfen net vergiessen datt wat méi déif Maschinnléieren an d'Liewe vun de Benotzer penetréiert, dest méi grouss ass den Impakt op den Ökosystem, an als Resultat, wat méi finanziell Verloschter oder Gewënn Maartspiller kënnen kréien. Dofir passen d'Spiller an enger ëmmer méi grousser Zuel un d'Aarbecht vun ML Algorithmen un (klassesch Beispiller si Reklammen, Sich an de schonn ernimmten Antispam).

Och Maschinn Léieren Aufgaben hunn eng Besonneschheet: all, och kleng, Ännerung am System kann vill Aarbecht mam Modell generéieren: mat Daten schaffen, Retraining, Détachement, wat Wochen oder Méint daueren kann. Dofir, wat méi séier d'Ëmwelt an där Är Modeller funktionnéieren ännert, wat méi Effort et erfuerdert fir se z'erhalen. E Team ka vill Systemer kreéieren a frou doriwwer sinn, awer verbréngen dann bal all seng Ressourcen fir se z'erhalen, ouni d'Méiglechkeet eppes Neies ze maachen. Mir hunn eng Kéier esou eng Situatioun am Antispam Team begéint. A si hunn déi offensichtlech Conclusioun gemaach datt d'Ënnerstëtzung automatiséiert muss ginn.

Automatioun

Wat kann automatiséiert ginn? Bal alles, eigentlech. Ech hunn véier Beräicher identifizéiert déi d'Maschinn Léierinfrastruktur definéieren:

  • Datensammlung;
  • zousätzlech Formatioun;
  • ofsetzen;
  • Testen & Iwwerwaachung.

Wann d'Ëmwelt onbestänneg ass a stänneg ännert, da gëtt déi ganz Infrastruktur ronderëm de Modell vill méi wichteg wéi de Modell selwer. Et kann eng gutt al linear classifier ginn, mä wann Dir fidderen et déi richteg Fonctiounen a kréien gutt Feedback vun Benotzer, et Aarbecht vill besser wéi State-Of-The-Art Modeller mat all de Klacken.

Feedback Loop

Dësen Zyklus kombinéiert Datensammlung, zousätzlech Ausbildung an Ofbau - tatsächlech de ganze Modellaktualiséierungszyklus. Firwat ass et wichteg? Kuckt den Umeldungsplang an der Mail:

Operatioun vun Maschinn Léieren an Mail.ru Mail

E Maschinn Léieren Entwéckler huet en Anti-Bot Modell implementéiert dee verhënnert datt Bots sech an E-Mail registréieren. D'Grafik fällt op e Wäert wou nëmmen echte Benotzer bleiwen. Alles ass super! Awer véier Stonne passéieren, d'Bots tweaken hir Scripten, an alles geet zréck op normal. An dëser Implementatioun huet den Entwéckler e Mount verbruecht fir Features ze addéieren an de Modell ëmzestellen, awer de Spammer konnt sech a véier Stonnen adaptéieren.

Fir net sou onermiddlech deet ze sinn an net méi spéit alles nei ze maachen, musse mir ufanks iwwerleeën wéi d'Feedback-Loop ausgesäit a wat mir maache wann d'Ëmwelt ännert. Loosst eis ufänken mat Daten ze sammelen - dëst ass de Brennstoff fir eis Algorithmen.

Datensammlung

Et ass kloer datt fir modern neural Netzwierker, wat méi Daten, wat besser ass, a si ginn tatsächlech vun de Benotzer vum Produkt generéiert. D'Benotzer kënnen eis hëllefen andeems Dir Daten markéiert, awer mir kënnen dëst net mëssbrauchen, well iergendwann ginn d'Benotzer midd fir Är Modeller ofzeschléissen an op en anert Produkt ze wiesselen.

Ee vun den heefegste Feeler (hei maachen ech eng Referenz op den Andrew Ng) ass ze vill Fokus op Metriken op der Testdates, an net op Feedback vum Benotzer, wat eigentlech den Haaptmooss fir d'Qualitéit vun der Aarbecht ass, well mir kreéieren e Produit fir de Benotzer. Wann de Benotzer d'Aarbecht vum Modell net versteet oder net gär huet, ass alles ruinéiert.

Dofir soll de Benotzer ëmmer kënnen wielen a soll en Instrument fir Feedback kréien. Wa mir mengen, datt e Bréif am Zesummenhang mat Finanzen an der Mailbox ukomm ass, musse mir et "Finanzen" markéieren an e Knäppche zéien, deen de Benotzer klickt kann a soen datt dëst net Finanzen ass.

Feedback Qualitéit

Loosst eis iwwer d'Qualitéit vum Benotzer Feedback schwätzen. Als éischt kënnt Dir an de Benotzer verschidde Bedeitungen an ee Konzept setzen. Zum Beispill, Dir an Är Produktmanager mengt datt "Finanzen" Bréiwer vun der Bank bedeit, an de Benotzer mengt datt e Bréif vun der Bomi iwwer hir Pensioun och op Finanzen bezitt. Zweetens ginn et Benotzer déi ouni Gedanken gär Knäppercher drécken ouni Logik. Drëttens, kann de Benotzer zudéifst falsch a senge Conclusiounen ginn. E markant Beispill aus eiser Praxis ass d'Ëmsetzung vun engem Klassifizéierer Nigerian Spam, eng ganz lëschteg Aart vu Spam, wou de Benotzer opgefuerdert gëtt, e puer Milliounen Dollar vun engem plötzlech fonnte wäitem Familljemember an Afrika ze huelen. No der Ëmsetzung vun dëser Klassifikatioun, mir iwwerpréift der "Net Spam" Klick op dës Mailen, an et huet sech erausgestallt, datt 80% vun hinnen saftbar Nigerian Spam waren, déi hindeit datt Benotzer extrem gullible kann.

A loosst eis net vergiessen datt d'Knäppercher net nëmme vu Leit geklickt kënne ginn, awer och vun all Zorte vu Bots, déi sech als Browser virstellen. Also rau Feedback ass net gutt fir ze léieren. Wat kënnt Dir mat dëser Informatioun maachen?

Mir benotzen zwou Approche:

  • Feedback vun verlinkt ML. Zum Beispill hu mir en Online Anti-Bot-System, deen, wéi ech erwähnt hunn, eng séier Entscheedung baséiert op enger limitéierter Unzuel vun Schëlder. An et gëtt en zweeten, luesen System deen no der Tatsaach funktionnéiert. Et huet méi Daten iwwer de Benotzer, säi Verhalen, asw. Als Resultat gëtt déi informéiertst Entscheedung getraff; deementspriechend huet et méi héich Genauegkeet a Vollständegkeet. Dir kënnt den Ënnerscheed an der Operatioun vun dëse Systemer op déi éischt als Trainingsdaten direkten. Also wäert e méi einfache System ëmmer probéieren d'Leeschtung vun engem méi komplexen unzegoen.
  • Klickt Klassifikatioun. Dir kënnt einfach all Benotzerklick klassifizéieren, seng Validitéit an Usability evaluéieren. Mir maachen dat an Antispam Mail, benotzt Benotzer Attributer, seng Geschicht, Sender Attributer, den Text selwer an d'Resultat vun de Classeuren. Als Resultat kréie mir en automatesche System deen de Feedback vun de Benotzer validéiert. A well et vill manner dacks retrainéiert muss ginn, kann seng Aarbecht d'Basis fir all aner Systemer ginn. D'Haaptprioritéit an dësem Modell ass Präzisioun, well d'Ausbildung vum Modell op ongenau Donnéeën mat Konsequenzen voll ass.

Wärend mir d'Daten botzen an eis ML Systemer weider trainéieren, däerfe mir d'Benotzer net vergiessen, well fir eis sinn Dausende, Millioune Feeler op der Grafik Statistiken, a fir de Benotzer ass all Käfer eng Tragedie. Zousätzlech zu der Tatsaach, datt de Benotzer iergendwéi mat Ärem Feeler am Produkt muss liewen, nodeems hien Feedback kritt huet, erwaart hien datt eng ähnlech Situatioun an der Zukunft eliminéiert gëtt. Dofir ass et ëmmer derwäert d'Benotzer net nëmmen d'Méiglechkeet ze stëmmen, awer och d'Behuele vun ML Systemer ze korrigéieren, zum Beispill perséinlech Heuristike fir all Feedback-Klick erstellen; am Fall vu Mail kann dëst d'Fäegkeet sinn ze filteren esou Bréiwer vum Sender an Titel fir dëse Benotzer.

Dir musst och e Modell bauen op Basis vun e puer Berichter oder Ufroe fir an engem semi-automateschen oder manuelle Modus z'ënnerstëtzen, sou datt aner Benotzer net vun ähnlechen Probleemer leiden.

Heuristik fir Léieren

Et ginn zwee Probleemer mat dësen Heuristiken a Krutchen. Déi éischt ass datt déi ëmmer méi grouss Zuel vu Krutzen schwéier z'erhalen ass, eleng hir Qualitéit a Leeschtung iwwer laang Strecken. Déi zweet Problem ass, datt de Feeler vläicht net heefeg ginn, an e puer Klicks de Modell weider Zuch wäert net genuch ginn. Et géif schéngen datt dës zwee net verbonne Effekter wesentlech neutraliséiert kënne ginn wann déi folgend Approche applizéiert gëtt.

  1. Mir kreéieren eng temporär Krut.
  2. Mir schécken Donnéeën dovunner un de Modell, et aktualiséiert sech regelméisseg, och iwwer déi kritt Donnéeën. Hei ass et natierlech wichteg datt d'Heuristik eng héich Genauegkeet hunn fir d'Qualitéit vun den Daten am Trainingsset net ze reduzéieren.
  3. Da setzen mir d'Iwwerwaachung fir d'Krütt auszeléisen, a wann no enger Zäit d'Krütt net méi funktionnéiert a komplett vum Modell bedeckt ass, da kënnt Dir se sécher ewechhuelen. Elo ass dëse Problem onwahrscheinlech erëm ze geschéien.

Also eng Arméi vu Krutzen ass ganz nëtzlech. Den Haapt Saach ass, datt hire Service dréngend ass an net permanent.

Zousätzlech Formatioun

Retraining ass de Prozess fir nei Donnéeën ze addéieren, déi als Resultat vu Feedback vu Benotzer oder aner Systemer kritt goufen, an en existente Modell drop trainéieren. Et kann e puer Problemer mat zousätzlech Training ginn:

  1. De Modell kann einfach net zousätzlech Ausbildung ënnerstëtzen, mee léiere just vun Null.
  2. Néierens am Buch vun der Natur ass et geschriwwen datt zousätzlech Ausbildung sécherlech d'Qualitéit vun der Aarbecht an der Produktioun verbessert. Oft geschitt de Géigendeel, dat ass, nëmmen Verschlechterung ass méiglech.
  3. Ännerungen kënnen onberechenbar sinn. Dëst ass en zimlech subtile Punkt dee mir fir eis selwer identifizéiert hunn. Och wann en neie Modell an engem A/B Test ähnlech Resultater am Verglach zum aktuellen weist, heescht dat net datt et identesch funktionnéiert. Hir Aarbecht kann an nëmmen engem Prozent ënnerscheeden, déi nei Feeler bréngen oder al déi scho korrigéiert ginn zréck. Souwuel mir wéi och d'Benotzer wësse schonn, wéi ee mat aktuellen Feeler liewen, a wann eng grouss Unzuel vun neie Feeler entstinn, kann de Benotzer och net verstoen, wat geschitt, well hien erwaarden prévisibel Verhalen.

Dofir ass dat Wichtegst an der zousätzlech Ausbildung ze garantéieren datt de Modell verbessert oder op d'mannst net verschlechtert gëtt.

Déi éischt Saach déi am Kapp kënnt wa mir iwwer zousätzlech Training schwätzen ass d'Aktiv Léieren Approche. Wat heescht dat? Zum Beispill bestëmmt de Klassifizéierer ob eng E-Mail mat Finanzen Zesummenhang ass, a ronderëm seng Entscheedungsgrenz addéiere mir eng Probe vu markéierte Beispiller. Dëst funktionnéiert gutt, zum Beispill an der Reklamm, wou et vill Feedback gëtt an Dir kënnt de Modell online trainéieren. A wann et wéineg Feedback ass, da kréie mir eng héich partizipativ Probe relativ zu der Produktiounsdatenverdeelung, op Basis vun deem et onméiglech ass d'Behuele vum Modell während der Operatioun ze evaluéieren.

Operatioun vun Maschinn Léieren an Mail.ru Mail

Tatsächlech ass eist Zil et al Musteren, scho bekannte Modeller ze erhaalen, an nei ze kréien. Kontinuitéit ass hei wichteg. De Modell, dee mir dacks vill Efforte gemaach hunn fir auszerollen, funktionnéiert scho, sou datt mir op seng Leeschtung fokusséiere kënnen.

Verschidde Modeller ginn an der Mail benotzt: Beem, linear, neural Netzwierker. Fir jidderee maache mir eisen eegenen zousätzlechen Trainingsalgorithmus. Am Prozess vun zousätzlech Ausbildung kréie mir net nëmmen nei Donnéeën, awer och dacks nei Fonctiounen, déi mir an all den Algorithmen hei drënner berücksichtegen.

Linearmodeller

Loosst eis soen datt mir logistesch Réckgang hunn. Mir kreéieren e Verloschtmodell aus de folgende Komponenten:

  • LogLoss op nei Donnéeën;
  • mir reguléieren d'Gewiichter vun neie Fonctiounen (mir beréieren net déi al);
  • mir léieren och vun alen Donnéeën fir al Musteren ze erhaalen;
  • an, vläicht, déi wichtegst Saach: Mir addéieren Harmonesch Regulariséierung, déi garantéiert datt d'Gewiichter net vill relativ zum ale Modell no der Norm änneren.

Zënter datt all Verloschtkomponent Koeffizienten huet, kënne mir déi optimal Wäerter fir eis Aufgab auswielen duerch Kräizvalidatioun oder baséiert op Produktfuerderunge.

Operatioun vun Maschinn Léieren an Mail.ru Mail

Beem

Loosst eis op d'Entscheedungsbeem goen. Mir hunn de folgenden Algorithmus fir zousätzlech Ausbildung vu Beem zesummegesat:

  1. D'Produktioun leeft e Bësch vun 100-300 Beem, deen op engem alen Datesaz trainéiert gëtt.
  2. Um Enn hu mir M = 5 Stécker ewechgeholl an addéieren 2M = 10 nei, trainéiert op de ganzen Datesaz, awer mat engem héije Gewiicht fir déi nei Donnéeën, wat natierlech eng inkrementell Ännerung vum Modell garantéiert.

Selbstverständlech, mat der Zäit, erhéicht d'Zuel vun de Beem immens, a si musse periodesch reduzéiert ginn fir den Timing z'erreechen. Fir dëst ze maachen, benotze mir déi elo ubiquitär Knowledge Distillation (KD). Kuerz iwwer de Prinzip vu senger Operatioun.

  1. Mir hunn den aktuelle "komplexe" Modell. Mir lafen et op der Trainingsdatenset a kréien d'Klass Wahrscheinlechkeetsverdeelung beim Ausgang.
  2. Als nächst trainéiere mir de Studentemodell (de Modell mat manner Beem an dësem Fall) fir d'Resultater vum Modell ze widderhuelen mat der Klassverdeelung als Zilvariabel.
  3. Et ass wichteg hei ze notéieren datt mir d'Date Set Markup op keng Manéier benotzen, an dofir kënne mir arbiträr Daten benotzen. Natierlech benotze mir eng Datenprobe aus dem Kampfstroum als Trainingsprobe fir de Studentemodell. Also erlaabt d'Trainingsset eis d'Genauegkeet vum Modell ze garantéieren, an d'Streamprobe garantéiert eng ähnlech Leeschtung op der Produktiounsverdeelung, kompenséiert d'Viraussetzung vum Trainingsset.

Operatioun vun Maschinn Léieren an Mail.ru Mail

D'Kombinatioun vun dësen zwou Techniken (Beem bäizefügen a periodesch hir Zuel reduzéieren andeems d'Wëssensdestillatioun benotzt) garantéiert d'Aféierung vun neie Mustere a komplett Kontinuitéit.

Mat der Hëllef vu KD maache mir och verschidde Operatiounen op Modellfeatures, wéi d'Features ewechhuelen an un Lücken schaffen. An eisem Fall hu mir eng Rei vu wichtege statistesche Fonctiounen (vu Sender, Text-Hashes, URLen, etc.), déi an der Datebank gespäichert sinn, déi tendéieren ze versoen. De Modell ass natierlech net prett fir esou eng Entwécklung vun Eventer, well Ausfallsituatiounen net am Trainingsset optrieden. An esou Fäll kombinéiere mir KD- a Augmentatiounstechniken: beim Training fir en Deel vun den Donnéeën, hu mir déi néideg Funktiounen ewechhuelen oder zrécksetzen, a mir huelen d'Original Etiketten (Ausgänge vum aktuelle Modell), an de Studentemodell léiert dës Verdeelung ze widderhuelen. .

Operatioun vun Maschinn Léieren an Mail.ru Mail

Mir hu gemierkt datt déi méi sérieux Modellmanipulatioun geschitt, dest méi grouss ass de Prozentsaz vun der Fuedemprobe erfuerderlech.

Feature Entfernung, déi einfachst Operatioun, erfuerdert nëmmen e klengen Deel vum Flow, well nëmmen e puer Features änneren, an den aktuelle Modell gouf um selwechte Set trainéiert - den Ënnerscheed ass minimal. Fir de Modell ze vereinfachen (d'Zuel vun de Beem e puer Mol ze reduzéieren), sinn 50 bis 50 schonn erfuerderlech. A fir Ausléiser vu wichtege statistesche Fonctiounen, déi d'Performance vum Modell eescht beaflossen, ass nach méi Flux erfuerderlech fir d'Aarbecht vun der auszegläichen. neie Omission-resistente Modell op all Zorte vu Bréiwer.

Operatioun vun Maschinn Léieren an Mail.ru Mail

FastText

Loosst eis op FastText weidergoen. Loosst mech Iech drun erënneren datt d'Representatioun (Embedding) vun engem Wuert aus der Zomm vun der Embedding vum Wuert selwer an all säi Bréif N-Gram besteet, normalerweis Trigrammen. Well et zimmlech vill Trigramme kënne ginn, gëtt Bucket Hashing benotzt, dat heescht, de ganze Raum an e bestëmmte fixen Hashmap ëmzewandelen. Als Resultat gëtt d'Gewiichtsmatrix mat der Dimensioun vun der banneschter Schicht pro Unzuel vu Wierder + Eemer kritt.

Mat zousätzlech Ausbildung erschéngen nei Schëlder: Wierder an Trigrammer. Näischt bedeitend geschitt am Standard Follow-up Training vu Facebook. Nëmmen al Gewiichter mat Kräiz-Entropie ginn op nei Donnéeën nei trainéiert. Also, nei Fonctiounen ginn net benotzt; natierlech huet dës Approche all déi uewe beschriwwen Nodeeler verbonne mat der Onberechenbarkeet vum Modell an der Produktioun. Dofir hu mir FastText e bësse geännert. Mir addéieren all nei Gewiichter (Wierder an Trigrammer), erweideren déi ganz Matrix mat Kräizentropie a fügen harmonesch Reguléierung duerch Analogie mam linearem Modell un, wat eng onbedeitend Ännerung vun den alen Gewiichter garantéiert.

Operatioun vun Maschinn Léieren an Mail.ru Mail

verstuerwen

Convolutional Netzwierker sinn e bësse méi komplizéiert. Wann déi lescht Schichten am CNN ofgeschloss sinn, da kënnt Dir selbstverständlech harmonesch Regulariséierung applizéieren a Kontinuitéit garantéieren. Awer wann zousätzlech Ausbildung vum ganzen Netz erfuerderlech ass, da kann esou Regulariséierung net méi op all Schichten applizéiert ginn. Wéi och ëmmer, et gëtt eng Optioun fir komplementär Embeddingen duerch Triplet Loss ze trainéieren (original Artikel).

Triple Verloscht

Benotzt eng Anti-Phishing Aufgab als Beispill, loosst eis Triplet Loss allgemeng kucken. Mir huelen eise Logo, souwéi positiv an negativ Beispiller vu Logoen vun anere Firmen. Mir minimiséieren d'Distanz tëscht der éischter a maximéieren d'Distanz tëscht der zweeter, mir maachen dat mat engem klenge Spalt fir méi Kompaktheet vun de Klassen ze garantéieren.

Operatioun vun Maschinn Léieren an Mail.ru Mail

Wa mir d'Netz weider trainéieren, da ännert eis metresch Raum komplett, an et gëtt komplett inkompatibel mat der viregter. Dëst ass e seriöse Problem bei Probleemer déi Vektoren benotzen. Fir dëse Problem ëmzegoen, vermësche mir al Embeddings wärend dem Training.

Mir hunn nei Donnéeën am Trainingsset bäigefüügt a trainéieren déi zweet Versioun vum Modell vun Null. Op der zweeter Stuf trainéiere mir eist Netzwierk weider (Finetuning): als éischt ass déi lescht Schicht fäerdeg, an dann ass de ganzen Netz gefruer. Am Prozess fir Triplets ze komponéieren, berechnen mir nëmmen en Deel vun den Embeddingen mat dem ausgebilten Modell, de Rescht - mat der aler. Also, am Prozess vun der zousätzlecher Ausbildung, garantéieren mir d'Kompatibilitéit vu metresche Raum v1 a v2. Eng eenzegaarteg Versioun vun der harmonescher Regulariséierung.

Operatioun vun Maschinn Léieren an Mail.ru Mail

Ganz Architektur

Wa mir de ganze System mat Antispam als Beispill betruechten, da sinn d'Modeller net isoléiert, awer aneneen nestéiert. Mir huelen Biller, Text an aner Funktiounen, mat CNN a Fast Text kréien mir Embeddings. Als nächst ginn Klassifizéierer uewen op den Embeddings applizéiert, déi Partituren fir verschidde Klassen ubidden (Type vu Bréiwer, Spam, Präsenz vun engem Logo). D'Signaler an d'Schëlder gi schonn an de Bësch vun de Beem fir déi definitiv Decisioun ze huelen. Individuell Klassifizéierer an dësem Schema maachen et méiglech, d'Resultater vum System besser ze interpretéieren a méi spezifesch Komponenten am Fall vu Probleemer z'ënnerschreiwen, anstatt all d'Donnéeën an Entscheedungsbeem an enger rauer Form ze fidderen.

Operatioun vun Maschinn Léieren an Mail.ru Mail

Als Resultat garantéieren mir Kontinuitéit op all Niveau. Um ënneschten Niveau am CNN a Fast Text benotze mir harmonesch Regulariséierung, fir d'Klassifizéierer an der Mëtt benotze mir och harmonesch Regulariséierung an Tauxekalibratioun fir Konsistenz vun der Wahrscheinlechkeetsverdeelung. Gutt, Bam Boostung gëtt inkrementell trainéiert oder benotzt Knowledge Distillation.

Allgemeng ass d'Erhalen vun sou engem nestéierte Maschinnléieresystem normalerweis e Schmerz, well all Komponent um ënneschten Niveau féiert zu engem Update vum ganze System uewen. Awer well an eisem Setup all Komponent liicht ännert a mat der viregter kompatibel ass, kann de ganze System Stéck fir Stéck aktualiséiert ginn ouni d'Notzung vun der ganzer Struktur ze retrainéieren, wat et erlaabt ouni eeschte Overhead z'ënnerstëtzen.

Deploy

Mir hunn Datensammlung an zousätzlech Ausbildung vu verschiddenen Aarte vu Modeller diskutéiert, sou datt mir weidergoen op hir Deployment an d'Produktiounsëmfeld.

A/B Test

Wéi ech virdru gesot hunn, am Prozess vun Daten sammelen, kréien mir normalerweis eng partiell Probe, aus deem et onméiglech ass d'Produktiounsleeschtung vum Modell ze evaluéieren. Dofir, beim Ofbau, muss de Modell mat der viregter Versioun verglach ginn fir ze verstoen wéi d'Saachen tatsächlech lafen, dat heescht A/B Tester ausféieren. Tatsächlech ass de Prozess fir d'Ausrollen an d'Analyse vun Charts ganz routinéiert a ka liicht automatiséiert ginn. Mir rullen eis Modeller graduell op 5%, 30%, 50% an 100% vun de Benotzer aus, wärend all verfügbare Metriken iwwer Modellreaktiounen a Benotzerfeedback sammelen. Am Fall vun e puer schlëmmen Auslänner, rullen mir de Modell automatesch zréck, a fir aner Fäll, nodeems se eng genuch Zuel vu Benotzerklicks gesammelt hunn, decidéiere mir de Prozentsaz ze erhéijen. Als Resultat bréngen mir den neie Modell op 50% vun de Benotzer komplett automatesch, an d'Rollout fir de ganze Publikum gëtt vun enger Persoun guttgeheescht, obwuel dëse Schrëtt automatiséiert ka ginn.

Wéi och ëmmer, den A / B Testprozess bitt Plaz fir Optimiséierung. D'Tatsaach ass datt all A / B Test zimlech laang ass (an eisem Fall dauert et vu 6 bis 24 Stonnen ofhängeg vun der Quantitéit vum Feedback), wat et zimlech deier mécht a mat limitéierten Ressourcen. Zousätzlech ass e genuch héije Prozentsaz vum Flow fir den Test erfuerderlech fir d'Gesamtzäit vum A/B Test wesentlech ze beschleunegen (eng statistesch bedeitend Probe rekrutéieren fir Metriken op e klenge Prozentsaz ze evaluéieren kann ganz laang daueren), wat mécht d'Zuel vun A / B Plaze extrem limitéiert. Natierlech musse mir nëmmen déi villverspriechend Modeller testen, vun deenen mir während dem zousätzleche Trainingsprozess zimlech vill kréien.

Fir dëse Problem ze léisen, hu mir e separaten Klassifizéierer trainéiert deen den Erfolleg vun engem A / B Test virausgesot. Fir dëst ze maachen, huelen mir Entscheedungsstatistiken, Präzisioun, Erënnerung an aner Metriken op der Trainingsset, op der ofgeschlosser, an op der Probe aus dem Stroum als Features. Mir vergläichen och de Modell mat der aktueller an der Produktioun, mat Heuristik, a berücksichtegen d'Komplexitéit vum Modell. Mat all dës Fonctiounen evaluéiert e Klassifizéierer, deen op Testgeschicht trainéiert ass, Kandidatemodeller, an eisem Fall sinn dës Bëscher vu Beem, an entscheet wéi een am A/B Test benotzt.

Operatioun vun Maschinn Léieren an Mail.ru Mail

Zu der Zäit vun der Ëmsetzung huet dës Approche eis erlaabt d'Zuel vun erfollegräichen A / B Tester e puer Mol ze erhéijen.

Testen & Iwwerwachung

Testen an Iwwerwaachung, komesch genuch, schueden eis Gesondheet net, éischter, am Géigendeel, verbesseren se et an entlaaschten eis vun onnéidege Stress. Testen erlaabt Iech e Feeler ze vermeiden, an d'Iwwerwaachung erlaabt Iech et an der Zäit z'entdecken fir den Impakt op d'Benotzer ze reduzéieren.

Et ass wichteg hei ze verstoen datt desto oder spéider Äre System ëmmer Feeler mécht - dëst ass wéinst dem Entwécklungszyklus vun all Software. Am Ufank vun der Systementwécklung ginn et ëmmer vill Bugs bis alles sech nidderléisst an d'Haaptstadium vun der Innovatioun fäerdeg ass. Awer mat der Zäit hëlt d'Entropie seng Maut, a Feeler erschéngen erëm - wéinst der Degradatioun vu Komponenten ronderëm an Ännerungen an Daten, iwwer déi ech am Ufank geschwat hunn.

Hei wëll ech bemierken datt all Maschinnléieresystem aus der Siicht vu sengem Gewënn während hirem ganze Liewenszyklus berücksichtegt soll ginn. D'Grafik hei ënnen weist e Beispill wéi de System funktionnéiert fir eng selten Aart vu Spam ze fangen (d'Linn an der Grafik ass no bei Null). Enges Daags, wéinst engem falsch cachéierten Attribut, ass si verréckt ginn. Wéi d'Gléck et hätt, gouf et keng Iwwerwaachung fir onnormal Ausléisung; Als Resultat huet de System ugefaang Bréiwer a grousse Quantitéiten an den Dossier "Spam" op der Entscheedungsgrenz ze späicheren. Och wann d'Konsequenze korrigéiert goufen, huet de System scho sou oft Feeler gemaach, datt et sech och a fënnef Joer net wäert bezuelen. An dëst ass e komplette Feeler aus der Siicht vum Liewenszyklus vum Modell.

Operatioun vun Maschinn Léieren an Mail.ru Mail

Dofir kann sou eng einfach Saach wéi Iwwerwaachung Schlëssel am Liewen vun engem Modell ginn. Zousätzlech zu Standard an offensichtleche Metriken, betruechte mir d'Verdeelung vu Modellreaktiounen a Partituren, souwéi d'Verdeelung vu Schlëssel Feature Wäerter. Mat KL-Divergenz kënne mir déi aktuell Verdeelung mat der historescher oder de Wäerter am A / B-Test mat dem Rescht vum Stroum vergläichen, wat et eis erlaabt Anomalien am Modell ze bemierken an d'Verännerungen op eng fristgerecht Manéier zréckzekréien.

An deene meeschte Fäll lancéiere mir eis éischt Versioune vu Systemer mat einfachen Heuristiken oder Modeller déi mir an Zukunft als Iwwerwaachung benotzen. Zum Beispill iwwerwaache mir den NER Modell am Verglach mat de reguläre fir spezifesch Online Geschäfter, a wann d'Klassifikatiounsdeckung am Verglach mat hinnen fällt, da verstinn mir d'Grënn. Eng aner nëtzlech Notzung vun Heuristik!

Resultater

Loosst eis nach eng Kéier iwwer d'Schlësselidee vum Artikel goen.

  • Fibdeck. Mir denken ëmmer un de Benotzer: wéi hie mat eise Feeler wäert liewen, wéi hien se mellen kann. Vergiesst net datt d'Benotzer keng Quell vu pure Feedback fir Trainingsmodeller sinn, an et muss mat Hëllef vun Hëllefs-ML Systemer geläscht ginn. Wann et net méiglech ass e Signal vum Benotzer ze sammelen, da sichen mir fir alternativ Quelle vu Feedback, zum Beispill verbonne Systemer.
  • Zousätzlech Formatioun. Den Haapt Saach hei ass Kontinuitéit, also mir vertrauen op déi aktuell Produktioun Modell. Mir trainéieren nei Modeller sou datt se net vill vun der viregter ënnerscheeden wéinst der harmonescher Reguléierung an ähnlechen Tricken.
  • Deploy. Auto-Deployment baséiert op Metriken reduzéiert d'Zäit fir d'Ëmsetzung vun Modeller staark. Iwwerwaachungsstatistiken a Verdeelung vun der Entscheedung, d'Zuel vun de Fäll vu Benotzer ass obligatoresch fir Äre rouege Schlof a produktive Weekend.

Gutt, ech hoffen dat hëlleft Iech Är ML Systemer méi séier ze verbesseren, se méi séier op de Maart ze bréngen an se méi zouverlässeg a manner stresseg ze maachen.

Source: will.com

Setzt e Commentaire