
Çdo shërbim, të cilët përdoruesit e tij mund të krijojnë përmbajtje të vetme (UGC — Përmbajtje e krijuar nga përdoruesit), është i detyruar jo vetëm të zgjidhë probleme biznesi, por gjithashtu të vendosë rend në UGC. Moderimi i dobët ose i papërshtatshëm i përmbajtjes në përfundim mund të zvogëlojë tërheqjen e shërbimit për përdoruesit, deri në ndalimin e funksionimit të tij.
Sot ne do t'ju tregojmë për sinergjinë mes Yula dhe Odnoklassniki, e cila na ndihmon të moderomë shpalljet në Yula në mënyrë efikase.
Sinergjia është një gjë shumë e dobishme, dhe në botën moderne, kur teknologjitë dhe trendet ndryshojnë shumë shpejt, ajo mund të shndërrohet në një shkop magjik. Pse të harxhoni burime dhe kohë të kufizuara për të shpikur atë që dikush tjetër e ka shpikur dhe e ka zhvilluar përpara jush?
Kështu menduam edhe ne, kur para nesh doli detyra e moderimit të përmbajtjes së përdoruesit — fotografive, teksteve dhe lidhjeve. Përdoruesit tanë ngarkojnë çdo ditë miliona njësi përmbajtjeje në Yula, dhe pa përpunim automatik, të moderosh të gjithë këto të dhëna manualisht është thjesht e pamundur.
Prandaj, ne kemi përdorur një platformë moderimi të gatshme, të cilën në atë kohë kolegët tanë nga Odnoklassniki e përmirësuan deri në statusin e «gati perfekt».
Pse Odnoklassniki?
Çdo ditë, në rrjetin social vijnë dhjetëra miliona përdorues, të cilët publikojnë miliarda njësish përmbajtjeje: nga fotografitë deri te videot dhe tekstet. Platforma e moderimit të Odnoklassniki ndihmon në verifikimin e volumeve shumë të mëdha të të dhënave dhe në luftimin e spamers dhe robotëve.
Ekipa e moderimit të OK ka grumbulluar një përvojë të madhe, pasi ka përmirësuar mjetin e saj për 12 vjet. E rëndësishme është që ata jo vetëm që mund të ndajnë zgjidhjet e tyre të gatshme, por gjithashtu të përshtatin arkitekturën e platformës së tyre për nevojat tona specifike.

Tani për shkak të shkurtësisë do ta quajmë platformën e moderimit të OK thjesht «platforma».
Si funksionon gjithçka
Midis Yula dhe Odnoklassniki shkëmbimi i të dhënave është vendosur përmes .
Pse e zgjodhëm këtë mjet:
- Në Yula, të gjitha shpalljet kalojnë post-moderim, prandaj fillimisht përgjigjja sinkronike nuk kërkohej.
- Nëse ndodh ndonjë krizë dhe Yula ose Odnoklassniki nuk janë të aksesueshme, përfshirë për shkak të ngarkesave pikore, të dhënat nga Kafka nuk do të humbasin dhe mund të lexohen më vonë.
- Platforma tashmë është integruar me Kafka, kështu që shumica e çështjeve të sigurise janë zgjidhur.

Për çdo njoftim të krijuar apo të ndryshuar nga përdoruesi në Yula, formohet një JSON me të dhënat, i cili vendoset në Kafka për moderimin e mëvonshëm. Nga Kafka, njoftimet ngarkohen në platformë, ku për to merren vendime automatikisht ose manualisht. Njoftimet e këqija bllokohen me arsyen e dhënë, ndërsa ata që platforma nuk gjen shkelje i shënon si "të mira". Më pas, të gjitha vendimet dërgohen përsëri në Yula dhe aplikohen në shërbim.
Si rezultat, për Yula gjithçka përfundon në veprime të thjeshta: dërgo njoftimin në platformën e Odnoklassniki dhe merr përsëri rezolutën "oke", ose arsyen pse nuk është "oke".
Përpunimi automatik
Çfarë ndodh me njoftimin pasi ai kalon në platformë? Çdo njoftim ndahet në disa entitete:
- titulli,
- përshkrimi,
- fotografitë,
- kategoria dhe nënkategoria e shpalljes e zgjedhur nga përdoruesi,
- çmimi.

Më pas, platforma kryen grumbullimin për secilën entitet, për të gjetur kopjet. Teksti dhe fotografitë grumbullohen sipas skemave të ndryshme.
Tekstet para grumbullimit normalizohen për të hequr simbolet speciale, shkronjat e modifikuara dhe mbeturinat e tjera. Të dhënat e marra ndahen në N-grama, secila prej të cilave hash-izohet. Në fund rezulton një shumësi unike hash-esh. masës Jaccard
midis dy shumësave të marra. Nëse ngjashmëria është më e madhe se pragu, atëherë tekstet bashkohen në një grumbull. Përshpejtimi i kërkimit të grumbujve të ngjashëm përdor MinHash dhe hashing të ndjeshëm ndaj lokalitetit.
Për fotografitë janë krijuar variante të ndryshme për bashkimin e imazheve, nga krahasimi i pHash të imazheve deri në gjetjen e kopjeve me ndihmën e një rrjeti nervor.
Kur rrjeti nervor merr imazhe si input, ai për secilin prej tyre gjeneron një vektor N(128) dimensional dhe bën një kërkesë për vlerësimin e afërsisë së imazhit. Më pas, llogaritet një prag, ku imazhet e ngjashme konsiderohen dublikate.
Modeli është mjeshtër në identifikimin e spamerëve, të cilët fotografiojnë qëllimisht të njëjtin produkt nga këndvështrime të ndryshme për të anashkaluar krahasimin mbi pHash.


Shembuj të fotografive spamer, të cilat janë kombinuar nga rrjeti nervor si dublikate.
Në fazën përfundimtare, dublikatet e ankesave kërkohen njëkohësisht si sipas tekstit ashtu edhe sipas imazhit.
Nëse në klastera bashkohen dy ose më shumë shpallje, sistemi aktivizon një bllokim automatik, i cili sipas algoriteve të caktuara zgjedh se cilat dublikate të fshihen dhe cilat të mbahen. Për shembull, nëse dy përdoruesit kanë në shpallje të njëjtat fotografi, sistemi do të bllokojë shpalljen më të re.
Pas krijimit, të gjitha klasteret kalojnë përmes një serie filtrash automatikë. Çdo filtr u jep klastereve një numër pikësh (score): me sa probabilitet ato përmbajnë kërcënimin që identifikon ky filtr.
Për shembull, sistemi analizon përshkrimin në shpallje dhe zgjedh për të njësi potenciale kategorish. Më pas merr atë, për të cilën ka probabilitetin maksimal, dhe e krahasojnë me kategorinë që ka specifikuar autori i shpalljes. Nëse ato nuk përputhen, shpallja bllokohet për kategori të gabuar. Dhe pasi ne jemi të mirë dhe të ndershëm, e themi direkt përdoruesit se cila kategori duhet të zgjedhë që shpallja të kalojë moderimin.

Njoftim për bllokim për kategori të gabuar.
Në platformën tonë, mësimi i makinerisë ndjehet si në shtëpinë e tij. Për shembull, me ndihmën e tij ne kërkojmë në tituj dhe përshkrime produkte të ndaluara në RF. Modelet e rrjeteve nervore me kujdes "shikojnë" imazhet, për të parë nëse kanë adresat URL, tekste spamer, numra telefoni dhe të njëjtën "ndalese".
Për rastet kur një produkt i ndaluar përpiqet të shitet, duke u maskuar si diçka ligjore, dhe në të njëjtën kohë nuk ka asnjë tekst në titull ose përshkrim, ne përdorim etiketimin e imazheve. Për secilin imazh mund të vendosen deri në 11,000 etiketa të ndryshme, që përshkruajnë se çfarë ndodhet në imazh.

Një llullë përpiqet të shitet, duke u maskuar si samovar.
Paralelisht me filtrat e ndërlikuara, funksionojnë edhe ata të thjeshtë, që zgjidhin detyra të qarta, të lidhura me tekstin:
- fjalë të ndaluara;
- detektori i adresave URL dhe numrave të telefonit;
- përmendja e mesazherëve dhe kontakteve të tjera;
- çmimi i ulët;
- njoftime në të cilat nuk shitet asgjë, etj.
Sot, çdo njoftim kalon përmes një sitë të imët prej më shumë se 50 filtrave automatikë, që përpiqen të gjejnë në njoftim diçka të keqe.
Nëse asnjë nga detektorët nuk funksionon, një përgjigje dërgohet në Yula që tregimi ka, "me sa duket", një gjendje të plotë. Ne e përdorim këtë përgjigje dhe përdoruesit që kanë abonuar te shitësi marrin një njoftim për shfaqjen e një produkti të ri.

Njoftimi që shitësi ka vendosur një produkt të ri.
Si rezultat, çdo njoftim "përfshin" metadata, disa prej të cilave gjenerohen gjatë krijimit të njoftimit (adresa IP e autorit, user-agent, platforma, gjeolokacioni etj.), dhe të tjera janë score, të dhënë nga çdo filtrë.
Radhët e njoftimeve
Kur një njoftim hyn në platformë, sistemi e vendos atë në një nga radhët. Çdo radhë formohet përmes një formule matematike që kombinon metadatën e njoftimit në një mënyrë që zbulon ndonjë model të keq.
Për shembull, mund të krijoni një radhe njoftimesh në kategorinë "Telefona celularë" nga përdoruesit e Yula që pretendohen se janë nga Shën Petersburg, por në të vërtetë adresat e tyre IP janë nga Moska ose qytete të tjera.

Shembuj njoftimesh të vendosura nga një përdorues në qytete të ndryshme.
Ose mund të krijoni radhë të bazuara në pikët që rrjeti nervor u jep shpalljeve, duke i renditur ato në renditje që zvogëlohet.
Çdo radhë, sipas formules së saj, i jep një pikë të fundit shpalljes. Më pas mund të veprohet në mënyra të ndryshme:
- të përcaktoni një vlerë kufizuese, në të cilën shpallja do të marrë një lloj bllokimi të caktuar;
- të dërgoni të gjitha shpalljet në radhë te moderatorët për një kontroll manual;
- apo të kombinoheni me opsionet e mëparshme: të përcaktoni një prag bllokimi automatik dhe të dërgoni te moderatorët ato shpallje që nuk e arritën këtë prag.

Pse nevojiten këto radhë? Supozoni, përdoruesi ngarkoi një fotografi të një arme zjarri. Rrjeti nervor i jep saj një pikë nga 95 deri në 100 dhe me një saktësi prej 99 përqind përcakton se në imazh ka armë. Por nëse vlera e pikës është më e ulët se 95%, saktësia e modelit fillon të bie (kjo është një veçori e modeleve të rrjeteve nervorë).
Si rezultat, krijohet një radhë në bazë të pikës së modelit, dhe ato nga shpalljet që morën nga 95 deri në 100 bllokohen automatikisht si "Mall i Ndaluar". Shpalljet me pikë më të ulët se 95 i dërgohen për trajtim manual te moderatorët.

Çokolada Beretta me cartridge. Vetëm për moderim manual! 🙂
Moderim manual
Në fillim të vitit 2019, rreth 94% e të gjitha shpalljeve në Yula moderohen automatikisht.

Nëse platforma nuk mund të vendosë për disa shpallje, ato dërgohen për moderim manual. Klasa e njohur ka zhvilluar një mjet të vetin: në detyrat për moderuesit shfaqet menjëherë gjithë informacioni i nevojshëm për të marrë një vendim të shpejtë - nëse shpallja është e përshtatshme apo duhet të bllokohet me arsyen përkatëse.
Në mënyrë që moderimi manual të mos dëmtojë cilësinë e shërbimit, puna e njerëzve monitorohet vazhdimisht. Për shembull, në fluksin e detyrave, moderatori sheh "trap" - shpallje për të cilat tashmë ka zgjidhje të gatshme. Nëse vendimi i moderatorit nuk përputhet me atë të gatshme, moderatorit i llogaritet gabim.
Për të verifikuar një shpallje, moderatorët në mesatare shpenzojnë 10 sekonda. Në të njëjtën kohë, numri i gabimeve është jo më shumë se 0.5% e të gjitha shpalljeve të verifikuara.
Moderimi popullor
Kolegët nga Odnoklassniki shkuan edhe më tej, duke përdorur "ndihmën e sallës": krijuan për rrjetin social një aplikacion-lojë, në të cilin mund të shënohen shpejt një sasi e madhe të dhënash, duke theksuar një karakteristikë të keqe. — Moderator i Odnoklassniki (). Një mënyrë e mirë për të përdorur ndihmën e përdoruesve të OK, të cilët përpiqen ta bëjnë përmbajtjen më të këndshme.

Lojë, në të cilën përdoruesit shënojnë fotografi, ku ka numra telefoni.
Çdo radhë shpalljesh në platformë mund të ridrejtohet në lojën Moderator i Odnoklassniki. Çdo gjë që shënojnë përdoruesit e lojës, më pas i dërgohet moderatorëve të brendshëm për verifikim. Kjo skemë lejon bllokimin e shpalljeve, për të cilat ende nuk janë krijuar filtrat, dhe njëkohësisht krijon mostra për trajnimin.
Ruajtja e rezultateve të moderimit
Ne ruajmë të gjitha vendimet e marra gjatë moderimit, për të mos e procesuar përsëri atë shpallje, për të cilat tashmë është marrë një vendim.
Çdo ditë krijohen miliona klasterë për njoftime. Me kalimin e kohës, secili klaster merr një etiketë "e mirë" ose "e keqe". Çdo njoftim të ri ose redaktim, që hyn në një klaster me një etiketë, automatikisht merr rezolutën e klasterit. Në ditë, ka rreth 20 mijë rezoluta automatike.

Nëse nuk merr njoftime të reja, klasteri largohet nga memorja, dhe hesh i tij dhe zgjidhja regjistrohen në Apache Cassandra.
Kur platforma merr një njoftim të ri, ajo përpiqet fillimisht të gjendet një klaster të ngjashëm midis atyre që janë krijuar dhe të marrë zgjidhjen prej tij. Nëse nuk ka një klaster të tillë, platforma shkon në Cassandra dhe kërkon aty. E gjeti? Shkëlqyeshëm, aplikon zgjidhjen në klaster dhe dërgon në Yula. Çdo ditë, realizohen mesatarisht 70 mijë "vendime të përsëritura" - 8% e numrit total.
Në përfundim
Ne kemi përdorur platformën e moderimit të Odnoklassniki për dy vjet e gjysmë. Ne na pëlqen rezultati:
- Moderoni automatikisht 94% të të gjitha njoftimeve brenda 24 orëve.
- Kostoja e moderimit të një njoftimi e kemi ulur nga 2 rubla në 7 cope.
- Falë mjetit të gatshëm, ne harrojmë për problemet e menaxhimit të moderatorëve.
- Kemi rritur me 2.5 herë numrin e njoftimeve të përpunuara manualisht me të njëjtin numër moderatorësh dhe buxhet. Cilësia e moderimit manual gjithashtu ka përmirësuar falë kontrollit automatizuar, me një shkallë gabimi rreth 0.5%.
- Menjëherë mbulojmë tipet e reja të spamit me filtra.
- E lidhim shpejt njësi të reja me moderimin. . Që nga viti 2017, Yula ka prezantuar verticalet e Pasurive të Patundshme, Mundësive të Punës dhe Automjeteve.
Burimi: habr.com
