Hogyan nyissunk megjegyzéseket, és ne fulladjunk bele a spambe

Hogyan nyissunk megjegyzéseket, és ne fulladjunk bele a spambe

Ha az a feladatod, hogy valami szépet alkoss, akkor nem kell sokat beszélned róla, mert az eredmény mindenki szeme előtt van. De ha letörli a feliratokat a kerítésekről, senki sem fogja észrevenni a munkáját, amíg a kerítések tisztességesnek tűnnek, vagy amíg ki nem töröl valami hibát.

Minden olyan szolgáltatás, ahol megjegyzést írhat, véleményt írhat, üzenetet küldhet vagy képeket tölthet fel, előbb-utóbb szembesül a spam, a csalás és az obszcenitás problémájával. Ezt nem lehet elkerülni, de kezelni kell.

A nevem Mikhail, a Levélszemét-blokkoló csapatban dolgozom, amely megvédi a Yandex szolgáltatások felhasználóit az ilyen problémáktól. A mi munkánkra ritkán figyelnek fel (és ez jó dolog!), ezért ma többet mesélek róla. Megtudhatja, mikor haszontalan a mértékletesség, és miért nem a pontosság az egyetlen mutatója annak hatékonyságának. Beszélni fogunk a káromkodásról is a macskák és kutyák példáján keresztül, és arról is, hogy miért hasznos néha „gondolkodni káromkodóként”.

Egyre több szolgáltatás jelenik meg a Yandexben, ahol a felhasználók közzéteszik tartalmaikat. Feltehet kérdést vagy írhat választ a Yandex.Q-ban, megvitathatja az udvari híreket a Yandex.District-ben, megoszthatja a forgalmi viszonyokat a Yandex.Maps beszélgetéseiben. De amikor a szolgáltatás közönsége növekszik, vonzóvá válik a csalók és a spamküldők számára. Jönnek és kommenteket töltenek ki: könnyű pénzt kínálnak, csodaszereket hirdetnek és szociális juttatásokat ígérnek. A spammerek miatt egyes felhasználók pénzt veszítenek, míg mások nem akarnak időt tölteni egy ápolatlan, spammel benőtt szolgáltatáson.

És nem ez az egyetlen probléma. Nemcsak arra törekszünk, hogy megvédjük a felhasználókat a csalóktól, hanem a kommunikáció kényelmes légkörét is megteremtjük. Ha az emberek káromkodással és sértésekkel szembesülnek a megjegyzésekben, akkor valószínűleg elmennek, és soha nem térnek vissza. Ez azt jelenti, hogy ezt is tudni kell kezelni.

Tiszta web

Ahogy az nálunk lenni szokott, az első fejlesztések a Keresésben születtek meg, a keresési eredmények spam ellen küzdő részében. Körülbelül tíz évvel ezelőtt jelent meg ott a családi keresések, illetve a 18+ kategóriából választ nem igénylő lekérdezések felnőtt tartalmak szűrésének feladata. Így jelentek meg az első kézzel gépelt pornó- és káromkodásszótárak, amelyeket elemzők töltöttek fel. A fő feladat az volt, hogy a kéréseket olyan csoportba sorolják, ahol elfogadható a felnőtt tartalom megjelenítése, és ahol nem. Ehhez a feladathoz jelöléseket gyűjtöttek, heurisztikákat építettek, és modelleket képeztek ki. Így jelentek meg az első fejlesztések a nem kívánt tartalmak szűrésére.

Idővel az UGC (felhasználó által generált tartalom) kezdett megjelenni a Yandexben - olyan üzenetek, amelyeket maguk a felhasználók írnak, és a Yandex csak közzéteszi. A fent leírt okok miatt sok üzenetet nem lehetett megnézni nélkül közzétenni – moderálásra volt szükség. Aztán úgy döntöttek, hogy létrehoznak egy olyan szolgáltatást, amely védelmet nyújt a kéretlen levelek és a támadók ellen minden Yandex UGC-termék számára, és a fejlesztések segítségével kiszűri a nem kívánt tartalmat a Keresésben. A szolgáltatás a „Clean Web” nevet kapta.

Új feladatok és segítség a tolóktól

Eleinte csak az egyszerű automatizálás működött nálunk: a szolgálatok szövegeket küldtek nekünk, mi pedig obszcén szótárakat, pornószótárakat és reguláris kifejezéseket futtattunk rajtuk – az elemzők mindent kézzel állítottak össze. De idővel a szolgáltatást egyre több Yandex termékben használták, és meg kellett tanulnunk új problémákkal dolgozni.

Gyakran áttekintés helyett a felhasználók értelmetlen leveleket tesznek közzé, megpróbálva növelni eredményeiket, néha reklámozzák cégüket egy versenytárs cég értékelésében, néha pedig egyszerűen összezavarják a szervezeteket, és véleményt írnak egy kisállat boltról: “ Tökéletesen főtt hal!” Talán egy nap a mesterséges intelligencia megtanulja tökéletesen felfogni bármilyen szöveg jelentését, de mostanra az automatizálás néha rosszabbul birkózik meg, mint az emberek.

Világossá vált, hogy ezt nem tudjuk megtenni kézi jelölés nélkül, és egy második fokozattal bővítettük az áramkörünket: elküldtük egy személy általi ellenőrzésre. Ide kerültek azok a megjelent szövegek, amelyeknél az osztályozó nem látott problémát. Könnyen elképzelhető egy ilyen feladat nagysága, így nem csak felmérőkre támaszkodtunk, hanem kihasználtuk a „tömeg bölcsességét”, vagyis a tolokerekhez fordultunk segítségért. Ők azok, akik segítenek azonosítani, mit hagyott ki a gép, és ezáltal megtanítani.

Intelligens gyorsítótár és LSH-kivonat

Egy másik probléma, amellyel a megjegyzésekkel dolgozva találkoztunk, a spam volt, pontosabban annak mennyisége és terjedési sebessége. Amikor a Yandex.Region közönsége gyorsan növekedni kezdett, spammerek jöttek ide. Megtanulták a reguláris kifejezések megkerülését a szöveg enyhe megváltoztatásával. A kéretlen leveleket természetesen továbbra is megtalálták és törölték, de a Yandex méretéhez képest egy akár 5 percig is feladott, elfogadhatatlan üzenetet több száz ember láthatott.

Hogyan nyissunk megjegyzéseket, és ne fulladjunk bele a spambe

Természetesen ez nekünk nem jött be, és LSH-n alapuló intelligens szöveggyorsítótárat készítettünk (helyérzékeny hash). Ez így működik: normalizáltuk a szöveget, eltávolítottuk belőle a hivatkozásokat és n-grammokra vágtuk (n betűből álló sorozatok). Ezután n-gramok hash-eit számítottuk ki, és ezekből építettük fel a dokumentum LSH vektorát. A lényeg az, hogy a hasonló szövegek, még ha kissé megváltoztatták is őket, hasonló vektorokká alakultak.

Ez a megoldás lehetővé tette az osztályozók és tolokerek ítéleteinek újrafelhasználását hasonló szövegekre. Egy spam támadás során, amint az első üzenet átment a vizsgálaton, és „spam” ítélettel bekerült a gyorsítótárba, minden új hasonló üzenet, még a módosítottak is, ugyanazt az ítéletet kapták, és automatikusan törlődnek. Később megtanultuk, hogyan kell betanítani és automatikusan áttanítani a spam-osztályozókat, de ez az „okos gyorsítótár” velünk maradt, és még mindig gyakran segít.

Jó szövegosztályozó

Anélkül, hogy volt időnk szünetet tartani a spam elleni küzdelemben, rájöttünk, hogy tartalmaink 95%-át manuálisan moderáljuk: az osztályozók csak a jogsértésekre reagálnak, és a szövegek többsége jó. Olyan takarítókat töltünk be, akik 95-ból 100 esetben „Minden rendben” minősítést adnak. Szokatlan munkát kellett végeznem - jó tartalom osztályozóit készíteni, szerencsére ezalatt az idő alatt elég jelölés gyűlt össze.

Az első osztályozó így nézett ki: lemmatizáljuk a szöveget (a szavakat a kezdeti formájukra redukáljuk), kidobjuk az összes segédszót, és egy előre elkészített „jó lemmák szótárát” használunk. Ha a szövegben minden szó „jó”, akkor a teljes szöveg nem tartalmaz szabálysértéseket. Különböző szolgáltatásoknál ez a megközelítés azonnal 25-35%-kal automatizálta a kézi jelölést. Természetesen ez a megközelítés nem ideális: könnyű kombinálni több ártatlan szót, és nagyon sértő kijelentést kapni, de ez lehetővé tette számunkra, hogy gyorsan elérjük az automatizálás jó szintjét, és időt hagyott a bonyolultabb modellek betanítására.

A jó szövegosztályozók következő verziói már tartalmaztak lineáris modelleket, döntési fákat és ezek kombinációit. A durvaság és sértések megjelölésére például a BERT neurális hálózatot próbáljuk ki. Fontos megragadni egy szó jelentését a szövegkörnyezetben, és a különböző mondatokból származó szavak közötti kapcsolatot, és a BERT ezt jól végzi. (Mellesleg nemrégiben a News kollégái mondta, hogyan használják a technológiát egy nem szabványos feladathoz - hibák keresése a fejlécekben.) Ennek eredményeként szolgáltatástól függően akár az áramlás 90%-át is automatizálni lehetett.

Pontosság, teljesség és gyorsaság

A fejlesztéshez meg kell érteni, hogy bizonyos automatikus osztályozók milyen előnyökkel járnak, változnak bennük, és nem romlik-e a kézi ellenőrzések minősége. Ehhez precíziós és visszahívási mérőszámokat használunk.

A pontosság a helyes ítéletek aránya a rossz tartalommal kapcsolatos összes ítélet között. Minél nagyobb a pontosság, annál kevesebb a hamis pozitív eredmény. Ha nem ügyel a pontosságra, akkor elméletileg törölhet minden spamet és trágárságot, és velük együtt a jó üzenetek felét is. Másrészt, ha csak a pontosságra hagyatkozik, akkor az lesz a legjobb technológia, amelyik egyáltalán nem fog meg senkit. Ezért van a teljesség mutatója is: az azonosított rossz tartalom aránya a rossz tartalom teljes mennyiségében. Ez a két mérőszám kiegyenlíti egymást.

A méréshez minden szolgáltatáshoz mintát veszünk a teljes bejövő adatfolyamból, és tartalommintákat adunk át az értékelőknek szakértői értékelés és a gépi megoldásokkal való összehasonlítás céljából.

De van még egy fontos mutató.

Fentebb írtam, hogy egy elfogadhatatlan üzenetet akár 5 perc alatt is több száz ember láthat. Tehát megszámoljuk, hányszor mutattunk rossz tartalmat az embereknek, mielőtt elrejtettük. Ez azért fontos, mert nem elég hatékonyan dolgozni, hanem gyorsan is kell dolgozni. És amikor felépítettük a védekezést a káromkodás ellen, azt a legteljesebb mértékben éreztük.

Antimatizmus macskák és kutyák példáján

Egy kis lírai kitérő. Egyesek azt mondhatják, hogy az obszcenitás és a sértések nem olyan veszélyesek, mint a rosszindulatú linkek, és nem olyan bosszantóak, mint a spam. De arra törekszünk, hogy kényelmes kommunikációs feltételeket biztosítsunk több millió felhasználó számára, és az emberek nem szeretnek visszatérni olyan helyekre, ahol megsértik őket. Nem hiába, hogy a káromkodás és szidalmak tilalma számos közösség szabályaiban szerepel, így Habré esetében is. De elkalandozunk.

A káromkodó szótárak nem képesek megbirkózni az orosz nyelv minden gazdagságával. Annak ellenére, hogy csak négy fő káromkodási gyökér van, számtalan olyan szót lehet alkotni belőlük, amelyeket egyetlen rendszeres motor sem fog fel. Ezenkívül leírhatja a szó egy részét átírással, betűket helyettesíthet hasonló kombinációkkal, átrendezheti a betűket, hozzáadhat csillagokat stb. Néha kontextus nélkül gyakorlatilag lehetetlen megállapítani, hogy a felhasználó káromkodásra gondolt-e. Tiszteletben tartjuk Habr szabályait, ezért ezt nem élő példákkal, hanem macskákkal és kutyákkal fogjuk bemutatni.

Hogyan nyissunk megjegyzéseket, és ne fulladjunk bele a spambe

– Törvény – mondta a macska. De megértjük, hogy a macska más szót mondott...

Elkezdtünk gondolkodni a szótárunk „fuzzy matching” algoritmusain és az intelligensebb előfeldolgozáson: átírást biztosítottunk, szóközöket és írásjeleket ragasztottunk össze, mintákat kerestünk és külön reguláris kifejezéseket írtunk rájuk. Ez a megközelítés hozott eredményeket, de gyakran csökkentette a pontosságot, és nem biztosította a kívánt teljességet.

Aztán úgy döntöttünk, hogy „károskodóként gondolkodunk”. Mi magunk kezdtünk zajt bevinni az adatokba: átrendeztük a betűket, gépelési hibákat generáltunk, a betűket hasonló írásmódra cseréltük stb. Ennek kezdeti jelölését a mat szótárak nagy szövegkorpusaira történő alkalmazása tette meg. Ha veszel egy mondatot és többféleképpen kiforgatod, sok mondatot kapsz. Így tízszeresére növelheti a képzési mintát. Nem maradt más hátra, mint az így létrejövő készleten a kontextust figyelembe vevő többé-kevésbé intelligens modell képzése.

Hogyan nyissunk megjegyzéseket, és ne fulladjunk bele a spambe

A végső döntésről még korai beszélni. Még mindig kísérletezünk ennek a problémának a megközelítésével, de már most azt látjuk, hogy egy egyszerű, több rétegből álló szimbolikus konvolúciós hálózat jelentősen felülmúlja a szótárakat és a normál motorokat: mind a pontosság, mind az előhívás növelhető.

Természetesen megértjük, hogy mindig lesz mód a legfejlettebb automatizálást is megkerülni, különösen, ha a dolog annyira veszélyes: írj úgy, hogy egy hülye gép ne értse. Itt, akárcsak a spam elleni küzdelemben, nem az a célunk, hogy felszámoljuk a trágár írás lehetőségét, hanem az, hogy a játék ne érje meg a gyertyát.

Nem nehéz megnyitni a lehetőséget véleményének megosztására, kommunikációra és megjegyzésekre. Sokkal nehezebb biztonságos, kényelmes körülményeket és az emberekkel való tiszteletteljes bánásmódot elérni. Enélkül pedig egyetlen közösségnek sem lesz fejlődése.

Forrás: will.com

Hozzászólás