Kako otvoriti komentare i ne utopiti se u neželjenu poštu

Kako otvoriti komentare i ne utopiti se u neželjenu poštu

Kada je vaš posao da kreirate nešto lepo, ne morate previše da pričate o tome, jer rezultat je svima pred očima. Ali ako obrišete natpise sa ograda, niko neće primetiti vaš rad sve dok ograde izgledaju pristojno ili dok ne izbrišete nešto pogrešno.

Svaki servis na kojem možete ostaviti komentar, recenziju, poslati poruku ili postaviti slike prije ili kasnije suočava se s problemom neželjene pošte, prijevare i opscenosti. To se ne može izbjeći, ali se mora riješiti.

Zovem se Mikhail, radim u Antispam timu koji štiti korisnike Yandex servisa od ovakvih problema. Naš rad se rijetko primjećuje (i to je dobro!), pa ću vam danas reći nešto više o njemu. Naučićete kada je moderacija beskorisna i zašto tačnost nije jedini pokazatelj njene efikasnosti. Govorit ćemo i o psovanju na primjeru mačaka i pasa i zašto je ponekad korisno „razmišljati kao psovka“.

Sve više usluga pojavljuje se u Yandexu gdje korisnici objavljuju svoj sadržaj. Možete postaviti pitanje ili napisati odgovor u Yandex.Q, razgovarati o novostima iz dvorišta u Yandex.District, podijeliti stanje u saobraćaju u razgovorima na Yandex.Maps. Ali kada publika usluge raste, ona postaje privlačna za prevarante i spamere. Dolaze i popunjavaju komentare: nude laku zaradu, reklamiraju čudotvorne lijekove i obećavaju socijalne beneficije. Zbog spamera neki korisnici gube novac, dok drugi gube želju da provode vrijeme na neuređenom servisu obraslom neželjenom poštom.

I to nije jedini problem. Nastojimo ne samo zaštititi korisnike od prevaranata, već i stvoriti ugodnu atmosferu za komunikaciju. Ako se ljudi suoče s psovkama i uvredama u komentarima, vjerovatno će otići i nikada se više neće vratiti. To znači da i vi morate biti u stanju da se nosite sa ovim.

Clean Web

Kao što kod nas često biva, prvi razvoji su rođeni u Pretraživanju, u dijelu koji se bori protiv neželjene pošte u rezultatima pretraživanja. Tamo se prije desetak godina pojavio zadatak filtriranja sadržaja za odrasle za porodične pretrage i za upite koji ne zahtijevaju odgovore iz kategorije 18+. Tako su se pojavili prvi ručno kucani rječnici pornografije i psovki, a dopunili su ih analitičari. Glavni zadatak je bio razvrstavanje zahtjeva u one gdje je prihvatljivo prikazivanje sadržaja za odrasle i gdje nije. Za ovaj zadatak prikupljene su oznake, izgrađene heuristike i obučeni modeli. Tako su se pojavili prvi razvoji za filtriranje neželjenog sadržaja.

Vremenom se u Yandexu počeo pojavljivati ​​UGC (sadržaj generiran od strane korisnika) - poruke koje pišu sami korisnici, a Yandex samo objavljuje. Iz gore opisanih razloga mnoge poruke nisu mogle biti objavljene bez gledanja - bila je potrebna moderacija. Tada su odlučili kreirati uslugu koja bi pružala zaštitu od neželjene pošte i napadača za sve Yandex UGC proizvode i koristila razvoj za filtriranje neželjenog sadržaja u Pretraživanju. Usluga se zvala “Čista web”.

Novi zadaci i pomoć gurača

U početku nam je radila samo jednostavna automatizacija: servisi su nam slali tekstove, a mi smo na njima pokretali rječnike opscenosti, porno rječnike i regularne izraze - analitičari su sve ručno kompajlirali. Ali s vremenom se usluga koristila u sve većem broju Yandex proizvoda i morali smo naučiti raditi s novim problemima.

Često, umjesto recenzije, korisnici objavljuju besmisleni skup pisama, pokušavajući povećati svoja postignuća, ponekad reklamiraju svoju kompaniju u recenzijama konkurentske kompanije, a ponekad jednostavno zbune organizacije i napišu u recenziji o trgovini kućnim ljubimcima: “ Savršeno skuvana riba!” Možda će jednog dana umjetna inteligencija naučiti savršeno shvatiti značenje bilo kojeg teksta, ali sada se automatizacija ponekad nosi gore od ljudi.

Postalo je jasno da to ne možemo učiniti bez ručnog označavanja i dodali smo drugu fazu našem krugu - poslali ga na ručnu inspekciju od strane osobe. Tu su uvršteni oni objavljeni tekstovi za koje klasifikator nije vidio probleme. Razmjere takvog zadatka možete lako zamisliti, pa smo se ne samo oslonili na ocjenjivače, već smo iskoristili i „mudrost gomile“, odnosno obratili smo se za pomoć tolokerima. Oni su ti koji nam pomažu da identifikujemo šta je mašina propustila i na taj način je podučavaju.

Pametno keširanje i LSH heširanje

Drugi problem na koji smo naišli u radu sa komentarima je spam, tačnije, njegov obim i brzina širenja. Kada je publika Yandex.Region počela brzo da raste, tamo su došli spameri. Naučili su da zaobilaze regularne izraze laganom promjenom teksta. Spam je, naravno, i dalje pronađen i izbrisan, ali na skali Yandexa, neprihvatljivu poruku objavljenu čak i na 5 minuta moglo je vidjeti stotine ljudi.

Kako otvoriti komentare i ne utopiti se u neželjenu poštu

Naravno, to nam nije odgovaralo, pa smo napravili pametno keširanje teksta bazirano na LSH (heširanje osjetljivo na lokalitet). To funkcionira ovako: normalizirali smo tekst, uklonili linkove iz njega i izrezali ga na n-grame (nizove od n slova). Zatim su izračunati heševi n-grama i iz njih je izgrađen LSH vektor dokumenta. Stvar je u tome da su se slični tekstovi, čak i ako su malo izmijenjeni, pretvorili u slične vektore.

Ovo rješenje omogućilo je ponovno korištenje presuda klasifikatora i tolokera za slične tekstove. Tokom spam napada, čim je prva poruka prošla skeniranje i ušla u keš memoriju sa presudom „spam“, sve nove slične poruke, čak i one izmijenjene, su dobile istu presudu i automatski su izbrisane. Kasnije smo naučili kako da obučimo i automatski ponovo obučimo klasifikatore neželjene pošte, ali ovaj “pametni keš” je ostao sa nama i još uvek nam često pomaže.

Dobar klasifikator teksta

Bez vremena da se odmorimo od borbe protiv neželjene pošte, shvatili smo da se 95% našeg sadržaja moderira ručno: klasifikatori reaguju samo na kršenja, a većina tekstova je dobra. Punimo čistače koji u 95 slučajeva od 100 daju ocjenu „Sve je u redu“. Morao sam da uradim neobičan posao - da napravim klasifikatore dobrog sadržaja, na sreću se za to vreme nakupilo dovoljno maraka.

Prvi klasifikator je izgledao ovako: lematiziramo tekst (reduciramo riječi na njihov početni oblik), izbacujemo sve pomoćne dijelove govora i koristimo unaprijed pripremljeni „rječnik dobrih lema“. Ako su sve riječi u tekstu “dobre”, onda cijeli tekst ne sadrži nikakve povrede. Na različitim servisima ovaj pristup je odmah dao od 25 do 35% automatizacije ručnog označavanja. Naravno, ovaj pristup nije idealan: lako je spojiti nekoliko nevinih riječi i dobiti vrlo uvredljivu izjavu, ali nam je omogućio da brzo dođemo do dobrog nivoa automatizacije i dao nam je vremena za obuku složenijih modela.

Sljedeće verzije dobrih tekstualnih klasifikatora već su uključivale linearne modele, stabla odlučivanja i njihove kombinacije. Za označavanje grubosti i uvreda, na primjer, isprobavamo BERT neuronsku mrežu. Važno je shvatiti značenje riječi u kontekstu i vezu između riječi iz različitih rečenica, a BERT to dobro radi. (Usput, nedavno kolege iz Novosti rekao je, kako se tehnologija koristi za nestandardni zadatak - traženje grešaka u zaglavljima.) Kao rezultat, bilo je moguće automatizirati do 90% toka, ovisno o servisu.

Tačnost, potpunost i brzina

Da biste ga razvili, morate razumjeti koje prednosti donose određeni automatski klasifikatori, promjene u njima i da li je kvalitet ručnih provjera degradirajući. Da bismo to učinili, koristimo metriku preciznosti i opoziva.

Tačnost je udio ispravnih presuda među svim presudama o lošem sadržaju. Što je tačnost veća, to je manje lažnih pozitivnih rezultata. Ako ne pazite na točnost, teoretski možete izbrisati svu neželjenu poštu i opscenosti, a zajedno s njima i polovinu dobrih poruka. S druge strane, ako se oslanjate samo na tačnost, onda će najbolja tehnologija biti ona koja nikoga ne uhvati. Dakle, postoji i pokazatelj kompletnosti: udio identifikovanog lošeg sadržaja u ukupnom obimu lošeg sadržaja. Ove dvije metrike uravnotežuju jedna drugu.

Za mjerenje uzorkujemo cijeli dolazni stream za svaku uslugu i dajemo uzorke sadržaja ocjenjivačima za stručnu ocjenu i poređenje sa mašinskim rješenjima.

Ali postoji još jedan važan pokazatelj.

Gore sam napisao da neprihvatljivu poruku stotine ljudi mogu vidjeti i za 5 minuta. Dakle, računamo koliko smo puta ljudima pokazali loš sadržaj prije nego što smo ga sakrili. Ovo je važno jer nije dovoljno raditi efikasno - potrebno je i raditi brzo. I kada smo izgradili odbranu od psovki, osjetili smo to u potpunosti.

Antimatizam na primjeru mačaka i pasa

Mala lirska digresija. Neki bi mogli reći da opscenost i uvrede nisu toliko opasni kao zlonamjerni linkovi, niti dosadni kao spam. Ali nastojimo da održimo ugodne uslove za komunikaciju za milione korisnika, a ljudi ne vole da se vraćaju na mesta gde ih vređaju. Nije uzalud što je zabrana psovki i uvreda navedena u pravilima mnogih zajednica, uključujući i Habré. Ali mi skrećemo pažnju.

Psovni rječnici ne mogu se nositi sa svim bogatstvom ruskog jezika. Unatoč činjenici da postoje samo četiri glavna korijena psovki, od njih možete sastaviti bezbroj riječi koje ne mogu uhvatiti nijedan obični motor. Osim toga, dio riječi možete napisati u transliteraciji, zamijeniti slova sličnim kombinacijama, preurediti slova, dodati zvjezdice itd. Ponekad je bez konteksta u osnovi nemoguće utvrditi da je korisnik mislio na psovku. Poštujemo Habrova pravila, pa ćemo to pokazati ne na živim primjerima, već na mačkama i psima.

Kako otvoriti komentare i ne utopiti se u neželjenu poštu

"Zakon", reče mačka. Ali razumemo da je mačka rekla drugačiju reč...

Počeli smo da razmišljamo o algoritmima za „nerazgovetno podudaranje“ za naš rečnik i o pametnijoj prethodnoj obradi: obezbedili smo transliteraciju, zalepili razmake i interpunkciju, tražili uzorke i napisali odvojene regularne izraze na njima. Ovakav pristup je davao rezultate, ali je često smanjivao preciznost i nije davao željenu potpunost.

Onda smo odlučili da “razmišljamo kao psovke”. Počeli smo sami unositi buku u podatke: preuređivali smo slova, generirali greške u kucanju, zamijenili slova sličnim pravopisima itd. Početna oznaka za ovo je uzeta primjenom mat rječnika na velike korpuse tekstova. Ako uzmete jednu rečenicu i izvrnete je na nekoliko načina, na kraju ćete dobiti mnogo rečenica. Na ovaj način možete povećati uzorak treninga desetine puta. Preostalo je samo da se na rezultirajućem bazenu trenira neki manje-više pametan model koji je uzeo u obzir kontekst.

Kako otvoriti komentare i ne utopiti se u neželjenu poštu

Prerano je govoriti o konačnoj odluci. Još uvijek eksperimentiramo s pristupima ovom problemu, ali već možemo vidjeti da jednostavna simbolička konvoluciona mreža od nekoliko slojeva značajno nadmašuje rječnike i obične mašine: moguće je povećati i točnost i pamćenje.

Naravno, razumijemo da će uvijek postojati načini da se zaobiđe čak i najnaprednija automatizacija, posebno kada je stvar toliko opasna: pišite na takav način da glupa mašina neće razumjeti. Ovdje, kao iu borbi protiv neželjene pošte, naš cilj nije iskorijeniti samu mogućnost da napišemo nešto opsceno, naš zadatak je da se pobrinemo da igra nije vrijedna svijeće.

Otvaranje prilike da podijelite svoje mišljenje, komunicirate i komentirate nije teško. Mnogo je teže postići sigurne, ugodne uslove i poštovanje prema ljudima. A bez toga neće biti razvoja nijedne zajednice.

izvor: www.habr.com

Dodajte komentar