Cum moderăm anunțurile

Cum moderăm anunțurile

Fiecare serviciu, care permite utilizatorilor să creeze propriul conținut (UGC — Conținut generat de utilizatori), este obligat să rezolve nu doar problemele de afaceri, ci și să organizeze UGC-ul. Moderarea slabă sau de calitate inferioară a conținutului poate reduce, în cele din urmă, atractivitatea serviciului pentru utilizatori, până la încetarea activității acestuia.

Astăzi vă vom vorbi despre sinergia dintre Yula și Odnoklassniki, care ne ajută să moderăm eficient anunțurile pe Yula.

Sinergia este în general un lucru foarte util, iar în lumea modernă, unde tehnologiile și tendințele se schimbă foarte repede, poate deveni o baghetă magică. De ce să cheltuim resurse și timp rare pentru a inventa ceea ce alții au deja inventat și perfecționat?

Așa am gândit și noi, când am întâmpinat sarcina moderării conținutului utilizatorilor — imagini, texte și linkuri. Utilizatorii noștri încarcă zilnic milioane de unități de conținut pe Yula, iar fără procesare automată, moderarea manuală a tuturor datelor nu este deloc realizabilă.

De aceea, am folosit o platformă de moderare deja existentă, pe care colegii noștri de la Odnoklassniki o perfecționaseră până la stadiul de „aproape perfect”.

De ce Odnoklassniki?

În fiecare zi, rețeaua socială atrage zeci de milioane de utilizatori care publică miliarde de unități de conținut: de la fotografii la videoclipuri și texte. Platforma de moderare a Odnoklassniki ajută la examinarea unor volume foarte mari de date și la combaterea spamerilor și botilor.

Echipa de moderare a O.K. a acumulat o experiență considerabilă, deoarece își perfecționează instrumentul de 12 ani. Este important ca ei nu doar să fi putut împărtăși soluțiile lor gata, ci și să ajusteze arhitectura platformei lor la cerințele noastre specifice.

Cum moderăm anunțurile

În continuare, din considerente de concizie, vom numi platforma de moderare a O.K. simplu „platformă”.

Cum este organizat totul

Între Yula și Odnoklassniki, schimbul de date este stabilit prin Apache Kafka.

De ce am ales acest instrument:

  • Pe Yula, toate anunțurile trec prin postmoderare, astfel că nu era necesar un răspuns sincron la început.
  • Dacă se va întâmpla un incident grav și Yula sau Odnoklassniki vor fi indisponibile, inclusiv din cauza unor sarcini de vârf, datele din Kafka nu vor dispărea nicăieri și le putem citi mai târziu.
  • Platforma a fost deja integrată cu Kafka, astfel că cele mai multe probleme de securitate au fost rezolvate.

Cum moderăm anunțurile

Pentru fiecare anunț creat sau modificat de utilizator pe Yula, se generează un JSON cu date, care este plasat în Kafka pentru moderarea ulterioară. Anunțurile sunt încărcate din Kafka în platformă, unde sunt luate decizii automat sau manual. Anunțurile proaste sunt blocate cu indicarea motivului, iar cele în care platforma nu a găsit încălcări sunt marcate ca „bune”. Apoi, toate deciziile sunt trimise înapoi în Yula și aplicate în serviciu.

În final, pentru Yula totul se rezumă la acțiuni simple: trimite un anunț în platforma Odnoklassniki și primește înapoi o rezoluție „ok” sau motivul pentru care nu este „ok”.

Prelucrare automată

Ce se întâmplă cu anunțul după ce ajunge în platformă? Fiecare anunț este împărțit în mai multe entități:

  • titlu,
  • descriere,
  • fotografii,
  • categoria și subcategoria selectată de utilizator pentru anunț,
  • preț.

Cum moderăm anunțurile

Apoi, pentru fiecare entitate, platforma efectuează o clusterizare pentru a găsi duplicate. Atât textul cât și fotografiile sunt clusterizate conform unor scheme diferite.

Textele sunt normalizate înainte de clusterizare pentru a elimina simbolurile speciale, literele modificate și alte mizerii. Datele obținute sunt împărțite în N-gramme, fiecare dintre ele fiind hășuită. În final, se obțin numeroase hashe-uri unice. Similaritatea între texte este calculată după măsura Jaccard între cele două mulțimi obținute. Dacă similaritatea depășește un prag, textele sunt unite într-un singur cluster. Pentru a accelera căutarea clusterelor asemănătoare, se folosește MinHash și Locality-sensitive hashing.

Pentru fotografii, s-au gândit diferite variante de unire a imaginilor, de la compararea imaginilor cu pHash până la căutarea duplicatelor cu ajutorul unei rețele neuronale.

Ultima metodă este cea mai „aspră”. Pentru antrenarea modelului s-au selectat astfel de trio-uri de imagini (N, A, P), în care N nu este asemănător cu A, iar P este asemănător cu A (este un quasi-duplicat). Apoi, rețeaua neuronală a învățat să facă astfel încât A și P să fie cât mai apropiate, iar A și N să fie cât mai îndepărtate. Astfel se obțin mai puține alarme false comparativ cu simpla utilizare a embeddings de la o rețea pre-antrenată.

Când rețeaua neuronală primește imagini, aceasta generează un vector N(128)-dimensional pentru fiecare dintre ele și face o cerere pentru evaluarea similitudinii imaginii. Apoi, se calculează un prag, la care imaginile apropiate sunt considerate duplicate.

Modelul poate să găsească cu măiestrie spammerii care fotografiază același produs din unghiuri diferite pentru a ocoli comparația prin pHash.

Cum moderăm anunțurileCum moderăm anunțurile
Exemplu de fotografii de spam, unite de rețeaua neuronală ca duplicate.

În etapa finală, duplicatele anunțurilor sunt căutate simultan atât pe text, cât și pe imagine.

Dacă în cluster se unesc două sau mai multe anunțuri, sistemul activează o blocare automată, care, conform unor algoritmi specifici, selectează care duplicate să fie șterse și care să rămână. De exemplu, dacă doi utilizatori au aceleași fotografii în anunț, sistemul va bloca anunțul mai recent.

După crearea lor, toate clusterele trec printr-o serie de filtre automate. Fiecare filtru atribuie clusterului un număr de puncte (score): cu ce probabilitate conține acea amenințare identificată de acest filtru.

De exemplu, sistemul analizează descrierea din anunț și selectează categorii potențiale pentru acesta. Apoi ia categoria cu cea mai mare probabilitate și o compară cu categoria specificată de autorul anunțului. Dacă acestea nu se potrivesc, anunțul este blocat pentru categorie greșită. Iar pentru că suntem buni și onești, le spunem utilizatorilor ce categorie trebuie să aleagă pentru ca anunțul să treacă de moderare.

Cum moderăm anunțurile
Notificare de blocare pentru categorie greșită.

Pe platforma noastră, învățarea automată se simte ca acasă. De exemplu, cu ajutorul ei, căutăm în titluri și descrieri produse interzise în RF. Modelele rețelelor neuronale inspectează cu atenție imaginile, căutând URL-uri, texte de spam, telefoane și aceeași „interzicere”.

Pentru cazurile în care un produs interzis este vândut sub masca unuia legal și nu există niciun text în titlu sau descriere, folosim etichetarea imaginilor. Fiecare imagine poate primi până la 11 000 de tag-uri diferite, descriind ce se află în imagine.

Cum moderăm anunțurile
Se încearcă vânzarea unui narghilea sub masca unui samovar.

În paralel cu filtrele complexe funcționează și cele simple, care rezolvă sarcini evidente legate de text:

  • antimat;
  • detector de URL-uri și numere de telefon;
  • menționarea aplicațiilor de mesagerie și altor contacte;
  • preț redus;
  • anunțuri în care nu se vând nimic etc.

Astăzi, fiecare anunț trece printr-o sită fină de peste 50 de filtre automate, care încearcă să găsească ceva negativ în anunț.

Dacă niciunul dintre detectoare nu s-a activat, se trimite unui utilizator un răspuns că, „cel mai probabil”, anunțul este în ordine. Aplicăm acest răspuns și utilizatorii care s-au abonat la vânzător primesc o notificare despre apariția unui nou produs.

Cum moderăm anunțurile
O notificare că vânzătorul a adăugat un nou produs.

În consecință, fiecare anunț „se îmbogățește” cu metadate, parte din care sunt generate la crearea anunțului (adresa IP a autorului, user-agent, platformă, geolocație etc.), iar restul este scoruri, acordate de fiecare filtru.

Cozi de anunțuri

Când un anunț ajunge pe platformă, sistemul îl plasează într-una dintre cozi. Fiecare coadă este formată printr-o formulă matematică, care combină metadatele anunțului pentru a detecta un model negativ.

De exemplu, se poate crea o coadă de anunțuri din categoria „Telefoane mobile” de la utilizatori ai platformei Yula care pretind că sunt din Sankt Petersburg, dar au adrese IP provenind din Moscova sau alte orașe.

Cum moderăm anunțurile
Exemplu de anunțuri postate de un singur utilizator în diferite orașe.

Sau se pot forma cozi pe baza scorurilor pe care rețeaua neuronală le atribuie anunțurilor, ordonându-le în ordine descrescătoare.

Fiecare coadă, conform formulei sale, atribuie un scor final anunțului. Ulterior, se pot lua diferite decizii:

  • a stabili o valoare limită, la care anunțul va primi un anumit tip de blocare;
  • toate anunțurile din coadă să fie trimise moderatorilor pentru o verificare manuală;
  • sau să combine opțiunile anterioare: să stabilească un prag de blocare automată și să trimită moderatorilor acele anunțuri care nu au atins acest prag.

Cum moderăm anunțurile

De ce sunt necesare aceste cozi? Să presupunem că un utilizator a încărcat o fotografie a unei arme de foc. Rețeaua neuronală îi acordă un scor între 95 și 100 și determină cu o precizie de 99% că pe imagine este o armă. Dar dacă valoarea scorului este sub 95%, precizia modelului începe să scadă (aceasta este o caracteristică a modelelor de rețele neuronale).

Astfel, se formează o coadă pe baza scorului modelului, iar cele dintre anunțuri care au obținut între 95 și 100 sunt blocate automat ca „Produse interzise”. Anunțurile cu un număr de puncte sub 95 sunt trimise pentru procesare manuală de către moderatori.

Cum moderăm anunțurile
Beretta din ciocolată cu cartușe. Doar pentru moderare manuală! 🙂

Moderare manuală

La începutul anului 2019, aproximativ 94% din toate anunțurile de pe Yula sunt moderate automat.

Cum moderăm anunțurile

Dacă platforma nu poate decide asupra unor anunțuri, le trimite pentru moderare manuală. Odnoklassniki a dezvoltat un instrument propriu: în sarcinile pentru moderatori se afișează imediat toate informațiile necesare pentru a lua o decizie rapidă — anunțul este valid sau trebuie blocat cu o indicație a motivei.

Și pentru a nu afecta calitatea serviciului în timpul moderării manuale, activitatea oamenilor este constant monitorizată. De exemplu, în fluxul de sarcini, moderatorului i se arată „capcane” – anunțuri pentru care deja există soluții pregătite. Dacă decizia moderatorului nu corespunde cu soluția existentă, moderatorului i se cere o eroare.

Moderatorul cheltuie în medie 10 secunde pentru verificarea unui anunț. În acest timp, numărul de erori nu depășește 0,5% din toate anunțurile verificate.

Moderare populară

Colegele de la Odnoklassniki au mers și mai departe, folosind „ajutorul mulțimii”: au scris pentru rețeaua socială o aplicație-joc, în care este posibil să marchezi rapid o cantitate mare de date, evidențiind un anumit semn rău — Moderator Odnoklassniki (https://ok.ru/app/moderator). O modalitate bună de a beneficia de ajutorul utilizatorilor OK, care se străduiesc să facă conținutul mai plăcut.

Cum moderăm anunțurile
Un joc în care utilizatorii marchează fotografii în care apare un număr de telefon.

Orice grup de anunțuri pe platformă poate fi redirecționat către jocul Moderator Odnoklassniki. Tot ceea ce marchează utilizatorii jocului este ulterior înaintat moderatorilor interni pentru verificare. Această schemă permite blocarea anunțurilor pentru care nu au fost încă create filtre, și în același timp, se creează seturi de instruire.

Stocarea rezultatelor moderării

Păstrăm toate deciziile luate în timpul moderării pentru a nu procesa din nou anunțurile pentru care deja s-a luat o decizie.

Zi de zi, se creează milioane de grupuri pentru anunțuri. În timp, fiecare grup primește eticheta "bun" sau "rău". Fiecare nou anunț sau revizuirea sa, atunci când ajunge într-un grup cu eticheta corespunzătoare, primește automat rezoluția grupului. În fiecare zi, se adună aproximativ 20 de mii de rezoluții automate.

Cum moderăm anunțurile

Dacă nu mai sosesc altele noi în grup, acesta este șters din memorie, iar hash-ul și soluția sunt salvate în Apache Cassandra.

Când platforma primește un nou anunț, încearcă mai întâi să găsească un grup similar dintre cele deja create și să preia decizia din acesta. Dacă un astfel de grup nu există, platforma caută în Cassandra. A găsit? Perfect, aplică soluția grupului și o trimite în Iula. Astfel de soluții "repetate" se strâng zilnic, în medie, 70 de mii — 8% din total.

În concluzie

Folosim platforma de moderare Odnoklassniki de doi ani și jumătate. Rezultatele ne plac:

  • Moderăm automat 94% din toate anunțurile pe zi.
  • Costul moderării unui anunț a fost redus de la 2 ruble la 7 kopeici.
  • Datorită instrumentului gata folosit, am uitat de problemele de gestionare a moderatorilor.
  • Am crescut de 2,5 ori numărul anunțurilor procesate manual, menținând același număr de moderatori și buget. De asemenea, calitatea moderării manuale a crescut datorită controlului automatizat, fluctuând în jur de 0,5% erori.
  • Acoperim rapid noile tipuri de spam cu filtre.
  • Conectăm rapid noi unități la moderare „Iula Verticale”. Din 2017, Iula a lansat verticale pentru Imobiliare, Locuri de muncă și Auto.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster