Hur man öppnar kommentarer och inte drunknar i skräppost

Hur man öppnar kommentarer och inte drunknar i skräppost

När ditt jobb är att skapa något vackert behöver du inte prata för mycket om det, för resultatet ligger framför allas ögon. Men om du raderar inskriptioner från staket, kommer ingen att märka ditt arbete så länge staketet ser anständigt ut eller tills du raderar något fel.

Alla tjänster där du kan lämna en kommentar, recensera, skicka ett meddelande eller ladda upp bilder möter förr eller senare problemet med spam, bedrägeri och obscenitet. Detta kan inte undvikas, men det måste hanteras.

Jag heter Mikhail, jag arbetar i Antispam-teamet, som skyddar användare av Yandex-tjänster från sådana problem. Vårt arbete uppmärksammas sällan (och det är bra!), så idag ska jag berätta mer om det. Du kommer att lära dig när måttfullhet är värdelös och varför noggrannhet inte är den enda indikatorn på dess effektivitet. Vi kommer också att prata om svordomar genom att använda exemplet med katter och hundar och varför det ibland är användbart att "tänka som en svärare."

Fler och fler tjänster dyker upp i Yandex där användare publicerar sitt innehåll. Du kan ställa en fråga eller skriva ett svar i Yandex.Q, diskutera gårdsnyheter i Yandex.District, dela trafikförhållandena i konversationer på Yandex.Maps. Men när tjänstens publik växer blir den attraktiv för bedragare och spammare. De kommer och fyller i kommentarer: de erbjuder lätta pengar, annonserar mirakelkurer och lovar sociala förmåner. På grund av spammare förlorar vissa användare pengar, medan andra tappar lusten att spendera tid på en ovårdad tjänst som är övervuxen med spam.

Och detta är inte det enda problemet. Vi strävar inte bara efter att skydda användare från bedragare, utan också att skapa en bekväm atmosfär för kommunikation. Om människor konfronteras med svordomar och förolämpningar i kommentarerna kommer de sannolikt att lämna och aldrig återvända. Det gör att du också behöver kunna hantera detta.

Ren webb

Som ofta är fallet med oss ​​föddes den första utvecklingen i Sök, i den del som bekämpar spam i sökresultat. För ungefär tio år sedan dök uppgiften att filtrera barnförbjudet innehåll för familjesökningar och för frågor som inte krävde svar från kategorin 18+ upp där. Så här dök de första manuellt maskinskrivna ordböckerna över porr och svordomar ut, de fylldes på av analytiker. Huvuduppgiften var att klassificera förfrågningar i sådana där det är acceptabelt att visa vuxet innehåll och där det inte är det. För denna uppgift samlades uppmärkning, heuristik byggdes och modeller tränades. Så här såg de första utvecklingarna för att filtrera oönskat innehåll ut.

Med tiden började UGC (användargenererat innehåll) dyka upp i Yandex - meddelanden som är skrivna av användarna själva, och Yandex publicerar bara. Av de skäl som beskrivs ovan kunde många meddelanden inte publiceras utan att titta - moderering krävdes. Sedan bestämde de sig för att skapa en tjänst som skulle ge skydd mot spam och angripare för alla Yandex UGC-produkter och använda utvecklingar för att filtrera oönskat innehåll i Sök. Tjänsten kallades "Clean Web".

Nya uppgifter och hjälp från pushers

Till en början fungerade bara enkel automatisering för oss: tjänsterna skickade oss texter, och vi körde obscenitetsordböcker, porrordböcker och reguljära uttryck på dem - analytiker kompilerade allt manuellt. Men med tiden användes tjänsten i ett ökande antal Yandex-produkter, och vi var tvungna att lära oss att arbeta med nya problem.

Ofta, istället för en recension, publicerar användare en meningslös uppsättning brev och försöker öka sina prestationer, ibland annonserar de sitt företag i recensioner av en konkurrents företag, och ibland förvirrar de helt enkelt organisationer och skriver i en recension om en djuraffär: " Perfekt tillagad fisk!” Kanske kommer artificiell intelligens en dag att lära sig att perfekt förstå innebörden av vilken text som helst, men nu klarar automatisering ibland sämre än människor.

Det blev tydligt att vi inte kunde göra detta utan manuell märkning, och vi lade till ett andra steg till vår krets – skicka den för manuell inspektion av en person. Där fanns de publicerade texter som klassificeraren inte såg några problem för. Du kan enkelt föreställa dig omfattningen av en sådan uppgift, så vi förlitade oss inte bara på bedömare, utan utnyttjade också "publikens visdom", det vill säga vi vände oss till tolokarna för att få hjälp. Det är de som hjälper oss att identifiera vad maskinen missat, och därigenom lära ut den.

Smart caching och LSH-hashning

Ett annat problem vi stötte på när vi arbetade med kommentarer var skräppost, eller mer exakt, dess volym och spridningshastighet. När Yandex.Region-publiken började växa snabbt kom spammare dit. De lärde sig att kringgå reguljära uttryck genom att ändra texten något. Spam, naturligtvis, hittades fortfarande och raderades, men på Yandex skala kunde ett oacceptabelt meddelande som postades även i 5 minuter ses av hundratals människor.

Hur man öppnar kommentarer och inte drunknar i skräppost

Det här passade såklart inte oss, och vi gjorde smart textcache baserat på LSH (lokaliseringskänslig hashing). Det fungerar så här: vi normaliserade texten, tog bort länkar från den och skar den i n-gram (sekvenser med n bokstäver). Därefter beräknades hasharna för n-gram, och dokumentets LSH-vektor byggdes från dem. Poängen är att liknande texter, även om de ändrades något, förvandlades till liknande vektorer.

Denna lösning gjorde det möjligt att återanvända klassificerares och tolokers domar för liknande texter. Under en skräppostattack, så snart det första meddelandet passerade genomsökningen och kom in i cachen med ett "spam"-utslag, fick alla nya liknande meddelanden, även modifierade, samma dom och raderades automatiskt. Senare lärde vi oss hur man tränar och automatiskt omskolar spamklassificerare, men denna "smarta cache" stannade kvar hos oss och hjälper oss fortfarande ofta.

Bra textklassificerare

Utan att ha tid att ta en paus från att bekämpa spam insåg vi att 95 % av vårt innehåll modereras manuellt: klassificerare reagerar bara på överträdelser, och de flesta texterna är bra. Vi laddar städare som i 95 fall av 100 ger betyget ”Allt är OK”. Jag var tvungen att göra ett ovanligt jobb - att göra klassificerare av bra innehåll, lyckligtvis hade tillräckligt med uppmärkning samlats under den här tiden.

Den första klassificeraren såg ut så här: vi lemmatiserar texten (reducerar orden till deras ursprungliga form), kastar ut alla hjälpord och använder en förberedd "ordbok över goda lemman". Om alla ord i texten är "bra" innehåller inte hela texten några överträdelser. På olika tjänster gav detta tillvägagångssätt omedelbart från 25 till 35 % automatisering av manuell markering. Naturligtvis är detta tillvägagångssätt inte idealiskt: det är lätt att kombinera flera oskyldiga ord och få ett mycket stötande uttalande, men det gjorde att vi snabbt kunde nå en bra nivå av automatisering och gav oss tid att träna mer komplexa modeller.

Nästa versioner av bra textklassificerare inkluderade redan linjära modeller, beslutsträd och deras kombinationer. För att markera elakheter och förolämpningar provar vi till exempel BERTs neurala nätverk. Det är viktigt att förstå betydelsen av ett ord i sitt sammanhang och sambandet mellan ord från olika meningar, och BERT gör ett bra jobb med detta. (Förresten, nyligen kollegor från News sa, hur teknik används för en icke-standarduppgift - att hitta fel i rubriker.) Som ett resultat var det möjligt att automatisera upp till 90 % av flödet, beroende på tjänst.

Noggrannhet, fullständighet och snabbhet

För att utveckla måste du förstå vilka fördelar vissa automatiska klassificerare ger, ändringar i dem och om kvaliteten på manuella kontroller är försämrad. För att göra detta använder vi precisions- och återkallningsmått.

Noggrannhet är andelen korrekta domar bland alla domar om dåligt innehåll. Ju högre noggrannhet, desto färre falska positiva. Om du inte är uppmärksam på noggrannhet kan du i teorin ta bort all skräppost och obsceniteter, och tillsammans med dem hälften av de bra meddelandena. Å andra sidan, om du bara litar på noggrannhet, kommer den bästa tekniken att vara den som inte fångar någon alls. Därför finns det också en indikator på fullständighet: andelen identifierat dåligt innehåll av den totala volymen dåligt innehåll. Dessa två mätvärden balanserar varandra.

För att mäta samplar vi hela den inkommande strömmen för varje tjänst och ger innehållsprover till bedömare för expertutvärdering och jämförelse med maskinlösningar.

Men det finns en annan viktig indikator.

Jag skrev ovan att ett oacceptabelt meddelande kan ses av hundratals människor även på 5 minuter. Så vi räknar hur många gånger vi visade folk dåligt innehåll innan vi gömde det. Detta är viktigt eftersom det inte räcker att arbeta effektivt – du behöver också arbeta snabbt. Och när vi byggde upp ett försvar mot svordomar kände vi det till fullo.

Antimatism med exemplet med katter och hundar

En liten lyrisk utvikning. Vissa kanske säger att obscenitet och förolämpningar inte är lika farliga som skadliga länkar, och inte lika irriterande som spam. Men vi strävar efter att upprätthålla bekväma förhållanden för kommunikation för miljontals användare, och människor gillar inte att återvända till platser där de blir förolämpade. Det är inte för inte som förbudet mot svordomar och förolämpningar anges i reglerna för många samhällen, inklusive på Habré. Men vi avviker.

Svära ordböcker kan inte klara av det ryska språkets rikedom. Trots det faktum att det bara finns fyra huvudsakliga svordomsrötter, från dem kan du skapa ett oräkneligt antal ord som inte kan fångas av några vanliga motorer. Dessutom kan du skriva en del av ett ord i translitteration, ersätta bokstäver med liknande kombinationer, ordna om bokstäver, lägga till asterisker etc. Ibland, utan sammanhang, är det i princip omöjligt att avgöra att användaren menade ett svordomsord. Vi respekterar Habrs regler, så vi kommer att visa detta inte med levande exempel, utan med katter och hundar.

Hur man öppnar kommentarer och inte drunknar i skräppost

"Lag", sa katten. Men vi förstår att katten sa ett annat ord...

Vi började fundera på "fuzzy matching"-algoritmer för vår ordbok och på smartare förbearbetning: vi tillhandahöll translitteration, limmade mellanslag och interpunktion, letade efter mönster och skrev separata reguljära uttryck på dem. Detta tillvägagångssätt gav resultat, men minskade ofta noggrannheten och gav inte den önskade fullständigheten.

Sedan bestämde vi oss för att "tänka som svärare." Vi började själva införa brus i data: vi ordnade om bokstäver, genererade stavfel, ersatte bokstäver med liknande stavningar och så vidare. Den initiala markeringen för detta togs genom att använda matordböcker på stora korpus av texter. Om du tar en mening och vrider på den på flera sätt får du många meningar. På så sätt kan du öka träningsprovet tiotals gånger. Det återstod bara att träna på den resulterande poolen någon mer eller mindre smart modell som tog hänsyn till sammanhanget.

Hur man öppnar kommentarer och inte drunknar i skräppost

Det är för tidigt att tala om det slutgiltiga beslutet. Vi experimenterar fortfarande med tillvägagångssätt för detta problem, men vi kan redan se att ett enkelt symboliskt faltningsnätverk av flera lager avsevärt överträffar ordböcker och vanliga motorer: det är möjligt att öka både noggrannhet och återkallelse.

Naturligtvis förstår vi att det alltid kommer att finnas sätt att kringgå även den mest avancerade automatiseringen, speciellt när saken är så farlig: skriv på ett sådant sätt att en dum maskin inte förstår. Här, som i kampen mot spam, är vårt mål inte att utrota själva möjligheten att skriva något obscent, vår uppgift är att se till att spelet inte är värt ljuset.

Att öppna upp möjligheten att dela din åsikt, kommunicera och kommentera är inte svårt. Det är mycket svårare att uppnå säkra, bekväma förhållanden och respektfullt bemötande av människor. Och utan detta blir det ingen utveckling av något samhälle.

Källa: will.com

Lägg en kommentar