
Ădo shĂ«rbim, tĂ« cilin pĂ«rdoruesit e tij mund tĂ« krijojnĂ« pĂ«rmbajtje tĂ« vet, Ă«shtĂ« i detyruar jo vetĂ«m tĂ« zgjidhĂ« detyrat e biznesit, por edhe tĂ« organizojĂ« pĂ«rmbajtjen e pĂ«rdoruesve. Moderimi i dobĂ«t ose i pacaktuar i pĂ«rmbajtjes mund tĂ« zvogĂ«lojĂ« tĂ«rheqjen e shĂ«rbimit pĂ«r pĂ«rdoruesit, madje deri nĂ« ndĂ«rprerjen e funksionimit tĂ« tij.
Sot do t'ju tregojmë për sinergjinë midis Yula dhe Odnoklassniki, e cila na ndihmon të moderonim efektivisht shpalljet në Yula.
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ë shpëtim. Pse të harxhojmë burime dhe kohë të çmuara për të shpikur atë që dikush e ka shpikur dhe e ka zhvilluar para nesh?
KĂ«shtu menduam edhe ne, kur u pĂ«rballĂ«m me detyrĂ«n e moderimit tĂ« pĂ«rmbajtjes sĂ« pĂ«rdoruesve â imazhe, tekste dhe lidhje. PĂ«rdoruesit tanĂ« ngarkojnĂ« çdo ditĂ« miliona njĂ«si pĂ«rmbajtjeje nĂ« Yula, dhe pa pĂ«rpunim automatik, nuk Ă«shtĂ« reale tĂ« moderosh tĂ« dhĂ«na tĂ« tilla manualisht.
Prandaj, përdorëm një platformë moderimi që ishte gati, e cila në atë kohë ishte përmirësuar nga kolegët tanë nga Odnoklassniki deri në një gjendje "gati perfekte".
Pse Odnoklassniki?
Ădo ditĂ«, dhjetĂ«ra miliona pĂ«rdorues regjistrohen nĂ« rrjetin social, duke publikuar miliarda njĂ«si pĂ«rmbajtjeje: nga fotografitĂ« deri te videot dhe tekstet. Platforma e moderimit tĂ« Odnoklassniki ndihmon nĂ« kontrollin e volumedheve tĂ« mĂ«dha tĂ« tĂ« dhĂ«nave dhe nĂ« luftimin e spamereve dhe botĂ«ve.
Ekipa e moderimit të OK ka akumuluar një përvojë shumë 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ë kishin mundësi të ndanin zgjidhjet e tyre të gatshme, por gjithashtu të konfiguronte arkitekturën e platformës së tyre për nevojat tona specifike.

Nga këtu e tutje për shkak të shkurtësisë, do ta quajmë platformën e moderimit të OK thjesht "platforma".
Si është ndërtuar gjithçka
Midis Yula dhe Odnoklassniki, shkëmbimi i të dhënave është i organizuar përmes .
Pse e zgjodhëm këtë mjet:
- Në Yula, të gjitha shpalljet kalojnë post-moderim, prandaj në fillim nuk ishte e nevojshme një përgjigje sinkrone.
- Nëse ndodh një situatë e papritur dhe Yula ose Odnoklassniki nuk janë të aksesueshme, duke përfshirë për shkak të ngarkesave të pikave, të dhënat nga Kafka nuk do të humbasin dhe më vonë do të mund të lexohen.
- Platforma është integruar tashmë me Kafka, kështu që shumica e çështjeve të sigurisë janë zgjidhur.

Për çdo njoftim të krijuar ose të ndryshuar nga përdoruesi në Jula formohet një JSON me të dhënat, i cili vendoset në Kafka për moderim të mëvonshëm. Nga Kafka, njoftimet ngarkohen në platformë, ku vendosen vendime automatikisht ose manualisht. Njoftimet e këqija bllokohen me shpjegimin e arsyeve, ndërsa ato për të cilat platforma nuk ka gjetur shkelje, shënohen si 'të mira'. Më pas, të gjitha vendimet dërgohen përsëri në Jula dhe aplikohet në shërbim.
Në fund, për Jula gjithçka reduktohet në veprime të thjeshta: dërgo një njoftim në platformën e Odnoklassnikov dhe merr mbrapsht një rezolutë 'mirë', ose pse nuk është 'mirë'.
Përpunimi automatik
ĂfarĂ« ndodh me njoftimin pasi ai arrin nĂ« platformĂ«? Ădo njoftim ndahet nĂ« disa entitete:
- titulli,
- përshkrimi,
- fotografitë,
- kategoria dhe nëkategoria e zgjedhur nga përdoruesi për njoftimin,
- çmimi.

Pastaj, për secilën entitet, platforma realizon klasterizimin për të gjetur dublikatet. Teksti dhe fotografitë klasterizohen sipas skemave të ndryshme.
Tekstet para klasterizimit normalizohen për të hequr karakteret speciale, shkronjat e modifikuara dhe mbeturinat e tjera. Të dhënat e marra ndahen në N-gra, çdo njëra e cila hash-izohet. Në fund rezulton një numër i madh hash-eve unik. masës Jaccard
ndërmjet dy grupeve të marra. Nëse ngjashmëria është më e madhe se pragu, tekstet bashkohen në një klaster. Për të përshpejtuar kërkimin e klastereve të ngjashme, përdoret MinHash dhe hashing sensitiv ndaj lokalitetit.
Për fotografitë janë shpikur variante të ndryshme për bashkimin e imazheve, nga krahasimi i pHash të imazheve deri te gjetja e dublikatëve me ndihmën e një rrjeti neuronik. Metoda e fundit është më 'e ashpër'. Për të trajnuar modelin, janë zgjedhur treqesh njëjësish (N, A, P), ku N nuk është i ngjashëm me A, ndërsa P është i ngjashëm me A (është një polidublikatë). Më pas, rrjeti neuronik u trajnuar të bënte që A dhe P të ishin sa më të afërt, dhe A dhe N të ishin sa më larg. Kështu, rezulton një numër më i vogël i alarmeve false krahasuar me thjesht marrjen e embed-eve nga një rrjet i trajnuar paraprakisht.
Kur një rrjet nervor merr imazhe si hyrje, për secilin prej tyre gjeneron një vektor N(128)-dimensional dhe bën një kërkesë për të vlerësuar afërsinë e imazhit. Më pas llogaritet një kufi, për të cilin imazhet e afërta konsiderohen si kopje.
Modeli është mjeshtër në gjetjen e spammerëve, të cilët fotografiojnë qëllimisht të njëjtin produkt nga kënde të ndryshme për të kaluar përballimin e përdorimit të pHash.


Shembuj të fotografive spam, të lidhura nga rrjeti nervor si kopje.
Në fazën përfundimtare, kopjet e shpalljeve kërkohen njëkohësisht si sipas tekstit ashtu edhe sipas imazhit.
Nëse në një grup lidhen dy ose më shumë shpallje, sistemi aktivizon një bllokim automatik, i cili sipas algoritmeve të caktuara zgjedh se cilat kopje të fshihen dhe cilat të mbahen. Për shembull, nëse dy përdorues kanë fotografi identike në shpallje, sistemi do të bllokojë shpalljen më të re.
Pas krijimit, tĂ« gjithĂ« grupet kalojnĂ« pĂ«rmes njĂ« sĂ«rĂ« filtrash automatikĂ«. Ădo filtr pĂ«rcakton grupit njĂ« numĂ«r pikĂ«sh (score): me cila mundĂ«si ai pĂ«rmban njĂ« kĂ«rcĂ«nim qĂ« identifikon ky filtr.
Për shembull, sistemi analizon përshkrimin në shpallje dhe zgjidh për të një kategori potenciale. Më pas merr atë, për të cilën ka probabilitetin më të lartë, dhe e krahasojnë me kategorinë që ka caktuar autori i shpalljes. Nëse ato nuk përputhen, shpallja bllokohet për kategori të gabuar. Dhe duke qenë se ne jemi të mirë dhe të ndershëm, e themi drejtpërdrejt përdoruesit se çfarë kategorie duhet të zgjedhë për të kaluar moderimin.

Njoftim për bllokim për kategori të gabuar.
Në platformën tonë, machine learning ndihet si në shtëpi. Për shembull, me ndihmën e tij ne gjejmë në tituj dhe përshkrime produkte të ndaluara në RF. Dhe modelet e rrjeteve nervore shqyrtojnë me kujdes pamjet, për të parë nëse kanë URL, tekste spam, numra telefoni dhe gjithashtu 'produkte të ndaluara'.
Për rastet kur një produkt i ndaluar përpiqet të shitet, duke e maskuar si diçka të ligjshme dhe nuk ka asnjë tekst në titull ose përshkrim, ne përdorim etiketimin e imazheve. Për çdo imazh mund të jenë të vendosur deri në 11,000 etiketa të ndryshme, që përshkruajnë se çfarë ndodhet në imazh.

Një kallg është përpjekur të shitet, duke e maskuar si samovar.
Paralelisht me filtrat e komplikuarë punojnë edhe ata të thjeshtë, të cilët zgjidhin detyra të dukshme që lidhen me tekstin:
- antimat;
- detektor URL-sh dhe numrash telefoni;
- përmendje të mesazhereve dhe kontakteve të tjera;
- çmim i ulur;
- njoftime në të cilat nuk shitet asgjë, etj.
Sot, çdo njoftim kalon përmes një sita shumë të imët nga mbi 50 filtre automatike që përpiqen të gjejnë diçka të keqe në njoftim.
Nëse asnjë nga detektorët nuk është aktivizuar, atëherë në Yula dërgohet një përgjigje që njoftimi, "më ndoshta", është në rregull. Ne e aplikojmë këtë përgjigje te vetja dhe përdoruesit që janë abonuar te shitësi marrin një njoftim për shfaqjen e një produkti të ri.

Njoftim që shitësi ka një produkt të ri.
Në fund, çdo njoftim "rritet" me metadita, një pjesë e së cilave gjenerohet gjatë krijimit të njoftimit (adresa IP e autorit, user-agent, platforma, gjeolokacioni etj.), dhe e tjera janë score, të lëna nga çdo filtër.
Radhët e njoftimeve
Kur njoftimi hy nĂ« platformĂ«, sistemi e vendos atĂ« nĂ« njĂ« nga radhĂ«t. Ădo radhĂ« formohet me njĂ« formula matematikore, e cila kombinon metaditat e njoftimit nĂ« mĂ«nyrĂ« qĂ« tĂ« zgjidhĂ« ndonjĂ« model tĂ« keq.
Për shembull, mund të krijohet një radhë njoftimesh në kategorinë "Telefona celularë" nga përdorues të Yula-s të supozuar nga Shën Petersburgu, por me adresat e tyre IP nga Moska ose qytete të tjera.

Shembuj njoftimesh të publikuara nga një përdorues në qytete të ndryshme.
Ose mund të formohen radhë në bazë të pikëve, të cilat rrjeti nervor jep njoftimeve, duke i renditur ato sipas rënies.
Ădo radhĂ«, sipas formulĂ«s sĂ« saj, i jep njĂ« score pĂ«rfundimtar njoftimit. MĂ« pas mund tĂ« veprohet nĂ« mĂ«nyra tĂ« ndryshme:
- të përcaktohet një vlerë prag, në të cilën njoftimi do të marrë një lloj të caktuar bllokimi;
- të gjitha njoftimet në radhë t'i dërgohen moderuesve për verifikim manual;
- ose të kombinohen opsionet e mëparshme: të vendoset një prag bllokimi automatik dhe të dërgohen moderuesve ato njoftime që nuk e arritën këtë prag.

Pse i nevojiten këto radhë? Të supozojmë se një përdorues ka ngarkuar një fotografi të një armë zjarri. Rrjeti nervor i jep asaj një pikë nga 95 deri në 100 dhe me një saktësi 99% përcakton se në foto është armë. Por nëse vlera e pikës është më e ulët se 95%, saktësia e modelit fillon të bjerë (kjo është një karakteristikë e modeleve të rrjeteve nervore).
Si rezultat, formohet një radhë në bazë të pikës së modelit, dhe ato nga njoftimet që morën nga 95 deri në 100, automatikisht bllokohen si «Produkt i Ndaluar». Njoftimet me numër pikash më poshtë se 95 dërgohen për përpunim manual nga moderatorët.

Beretta e çokollatĂ«s me fishekĂ«. VetĂ«m pĂ«r moderim manual! đ
Moderim manual
Në fillim të vitit 2019, rreth 94% e të gjitha njoftimeve në Juola moderohen automatikisht.

NĂ«se platforma nuk mund tĂ« vendosĂ« pĂ«r disa njoftime, ato dĂ«rgohen pĂ«r moderim manual. Odnoklassniki kanĂ« zhvilluar njĂ« mjet tĂ« vetin: nĂ« detyrat pĂ«r moderatorĂ«t shfaqet menjĂ«herĂ« e gjithĂ« informacioni i nevojshĂ«m pĂ«r tĂ« marrĂ« njĂ« vendim tĂ« shpejtĂ« â nĂ«se njoftimi Ă«shtĂ« i vlefshĂ«m apo duhet bllokuar me arsyen e shĂ«nuar.
Dhe qĂ« gjatĂ« moderimit manual tĂ« mos vuajĂ« cilĂ«sia e shĂ«rbimit, puna e njerĂ«zve kontrollohet vazhdimisht. PĂ«r shembull, nĂ« fluksin e detyrave, moderatorit i shfaqen «trap» â njoftime, pĂ«r tĂ« cilat janĂ« marrĂ« vendime tĂ« gatshme. NĂ«se vendimi i moderatorit nuk pĂ«rputhet me tĂ« gatshmet, atij i llogaritet njĂ« gabim.
Për kontrollin e një njoftimi, moderatorit në mesatarje i nevojiten 10 sekonda. Ndërkohë, numri i gabimeve nuk kalon 0,5% të të gjitha njoftimeve të kontrolluara.
Moderim popullor
KolegĂ«t nga Odnoklassniki shkuan edhe mĂ« tej, duke shfrytĂ«zuar «ndihmĂ«n e sallĂ«s»: krijuan njĂ« aplikacion-lojĂ« pĂ«r rrjetin social, ku mund tĂ« etiketohet shpejt njĂ« numĂ«r i madh tĂ« dhĂ«nash, duke e shfaqur njĂ« ndonjĂ« karakteristikĂ« tĂ« keqe â Moderator i Odnoklassniki (). NjĂ« mĂ«nyrĂ« e shkĂ«lqyer pĂ«r tĂ« shfrytĂ«zuar ndihmĂ«n e pĂ«rdoruesve tĂ« OK, tĂ« cilĂ«t pĂ«rpiqen tĂ« bĂ«jnĂ« pĂ«rmbajtjen mĂ« tĂ« kĂ«ndshme.

Një lojë në të cilën përdoruesit shënojnë fotografitë që kanë numra telefonash.
Ădo renditje shpalljesh nĂ« platformĂ« mund tĂ« redirektohet nĂ« lojĂ«n Moderator i Odnoklassniki. Gjithçka qĂ« etiketohen nga pĂ«rdoruesit e lojĂ«s pastaj i dorĂ«zohet moderatorĂ«ve tĂ« brendshĂ«m pĂ«r verifikim. Kjo skemĂ« e lejon bllokimin e shpalljeve pĂ«r tĂ« cilat ende nuk janĂ« krijuar filtre dhe po ashtu krijon modele tĂ« mĂ«simit.
Ruajtja e rezultateve të moderimit
Ne ruajmë të gjitha vendimet e marra gjatë moderimit, në mënyrë që më vonë të mos përpunojmë përsëri ato shpallje për të cilat tashmë është marrë një vendim.
PĂ«r çdo ditĂ« krijohen miliona grupe pĂ«r shpalljet. Me kalimin e kohĂ«s, çdo grup merr njĂ« etiketĂ« "e mirĂ«" ose "e keqe". Ădo shpallje e re apo rregullim i saj, pas kalimit nĂ« njĂ« grup me etiketĂ«, automatikisht merr rezolutĂ«n e grupit tĂ« vet. Ădo ditĂ« krijohen afĂ«rsisht 20,000 rezoluta automatikisht.

Nëse nuk mbërrijnë shpallje të reja në grup, ai fshihet nga memória, ndërsa heshi dhe vendimi shkruhen në Apache Cassandra.
Kur platforma merr njĂ« shpallje tĂ« re, ajo sĂ« pari pĂ«rpiqet tĂ« gjejĂ« njĂ« grup tĂ« ngjashĂ«m mes atyre qĂ« janĂ« krijuar tashmĂ« dhe tĂ« marrĂ« vendimin nga aty. NĂ«se nuk ka njĂ« grup tĂ« tillĂ«, platforma shkon nĂ« Cassandra dhe kĂ«rkon aty. E gjeti? ShkĂ«lqyeshĂ«m, aplikon vendimin ndaj grupit dhe e dĂ«rgon nĂ« Yula. TĂ« tilla "vendime tĂ« pĂ«rsĂ«ritura" grumbullohen çdo ditĂ« me mesatarisht 70,000 â 8 % tĂ« totalit.
Në përfundim
Ne kemi përdorur platformën e moderimit të Odnoklassniki për dy vjet e gjysmë. Rezultatet na pëlqejnë:
- Moderojmë automatikisht 94 % të të gjitha shpalljeve për ditë.
- Kostot e moderimit të një shpalljeje i kemi ulur nga 2 rubla në 7 cope.
- Falë mjetit të gatshëm, harrova për problemet e menaxhimit të moderatorëve.
- E rritëm me 2.5 herë numrin e shpalljeve të përpunuara manualisht, duke mbajtur të njëjtin numër moderatorësh dhe buxhet. Edhe cilësia e moderimit manual është rritur falë kontrollit automatizuar dhe luhatet rreth 0.5 % gabimeve.
- Aktivisht mbulojmë tipet e reja të spamit me filtra.
- Shpejt lidhemi me moderimin e njësive të reja . Që nga viti 2017, në Yula janë shfaqur verticalet e Lëvizjeve, Vendeve të Punes dhe Automjeteve.
Burimi: habr.com
