Hogyan nyisd meg a kommentárokat, és ne fulladj a spambe

Hogyan nyisd meg a kommentárokat, és ne fulladj a spambe

Amikor a munkád a szépség megteremtése, arról különösebben nem kell beszélni, mert az eredmény mindenki szeme előtt ott van. Viszont ha feliratokat törölsz a kerítésekről, akkor a munkádat senki nem veszi észre, amíg a kerítések rendben vannak, vagy amíg nem törölsz valami kellemetlent.

Bármely szolgáltatás, ahol megjegyzést, visszajelzést, üzenetet lehet küldeni vagy képeket feltölteni, előbb-utóbb szembesül a spam, csalás és vulgáris tartalom problémájával. Ezt elkerülni nem lehet, de harcolnunk kell vele.

Az én nevem Mihail, az Antispam csapat tagja vagyok, amely megvédi a Yandex szolgáltatásainak felhasználóit az ilyen problémáktól. A munkánk ritkán észlelhető (és ez jó!), így ma részletesebben bemutatom ezt. Megtudhatja, mikor haszontalan a moderálás és miért nem csak a pontosság a hatékonyság egyedüli mutatója. A macskák és kutyák példáján keresztül beszélgetünk a vulgáris kifejezésekről, és arról, miért lehet néha hasznos „gondolkodni vulgárisan”.

A Yandexben egyre több szolgáltatás jelenik meg, ahol a felhasználók közzéteszik saját tartalmukat. Kérdést tehet fel vagy válaszolhat a Yandex.Q-n, megvitathatja a udvar híreit a Yandex.Régióban, megoszthatja az úti állapotokat a Yandex.Térképek beszélgetéseiben. De amikor a szolgáltatás közönsége nő, vonzóvá válik a csalók és spam küldők számára. Ők megjelennek, és megtöltik a megjegyzéseket: könnyű pénzt kínálnak, csodálatos szert reklámoznak, és szociális kifizetéseket ígérnek. A spam miatt egyes felhasználók pénzt veszítenek, míg mások elveszítik a kedvüket, hogy időt töltsenek egy elhanyagolt, spam által elborított szolgáltatáson.

És ez nem az egyetlen probléma. Nemcsak arra törekszünk, hogy megvédjük a felhasználókat a csalóktól, hanem hogy kényelmes légkört teremtsünk a kommunikációhoz is. Ha az emberek a megjegyzésekben vulgáris kifejezésekkel és sértéssel találkoznak, valószínűleg el fognak menni, és többé nem fognak visszatérni. Ezért ezzel is tudni kell harcolni.

Tiszta Web

Ahogyan ezt általában csináljuk, az első próbálkozások a keresésben születtek, azon a részen, amelyik a spam ellen küzd. Tíz évvel ezelőtt ott felmerült a feladat, hogy kiszűrjük a felnőtt tartalmat a családi kereséshez és az olyan lekérdezésekhez, amelyek nem vártak el 18+ kategóriájú válaszokat. Így születtek meg az első, kézzel összeállított pornográf és vulgáris szótárak, amelyeket az elemzők töltöttek fel. A fő feladat az volt, hogy a lekérdezéseket osztályozzuk aszerint, hogy hol megengedett felnőtt tartalmat megjeleníteni és hol nem. Erre a feladatra gyűjtöttek mintákat, építettek heuristikákat, tanították a modelleket. Így születtek meg az első munkák a nem kívánt tartalom szűrésére.

Idővel a Yandexnél megjelent az UGC (felhasználók által generált tartalom) — üzenetek, amelyeket maguk a felhasználók írtak, és a Yandex csak közzétette. A fent említett okok miatt sok üzenetet nem lehetett csak úgy megjelentetni — moderációra volt szükség. Akkor döntöttek úgy, hogy készítenek egy szolgáltatást, amely védelmet nyújt a spam és a rosszindulatú felhasználók ellen az összes Yandex UGC-termék számára, és felhasználja a nem kívánt tartalom keresési szűrésénél alkalmazott fejlesztéseket. A szolgáltatás neve „Tiszta Web” lett.

Új feladatok és segítségnyújtás a tolmácsoknak

Eleinte csak egyszerű automatizálás működött nálunk: a szolgáltatások szövegeket küldtek nekünk, mi pedig a vulgáris, pornográf szótárakat és reguláris kifejezéseket futtattunk rajtuk — az elemzők mindent kézzel állítottak össze. De az idő múlásával a szolgáltatás egyre több Yandex termékben kezdett el működni, és nekünk meg kellett tanulni, hogyan bánjunk az új problémákkal.

Gyakran a felhasználók vélemény helyett értelmetlen betűhalmazt publikálnak, próbálva maguknak megszerezni a pontokat, néha a konkurens cég véleményében reklámozzák a saját vállalatukat, és néha csak összekeverik a szervezeteket, és az állatkereskedésről szóló véleményükben azt írják: „Gyönyörűen elkészített hal!”. Lehetséges, hogy egyszer az mesterséges intelligencia tökéletesen megérti bármilyen szöveg jelentését, de a jelenlegi automatizálás sokszor rosszabbul teljesít, mint az ember.

Kiderült, hogy kézi címkézés nélkül nem boldogulunk, így a rendszerünkhöz hozzáadtunk egy második lépcsőt – a szövegek kézi ellenőrzését. Azok a szövegek kerültek ide, amelyek esetében a klasszifikátor nem észlelt problémát. A feladat méretét könnyen elképzelheti, ezért nemcsak az értékelőkre támaszkodtunk, hanem a "tömeg bölcsességét" is kihasználtuk, tehát segítséget kérve a tolokerektől. Ők segítenek nekünk az észlelt műszaki hiányosságok feltárásában, ezzel is tanítva a gépet.

Intelligens gyorsítótárazás és LSH-hashelés

Még egy probléma, amellyel a hozzászólásokkal foglalkozva szembesültünk, a spam, pontosabban annak mennyisége és terjedési sebessége. Amikor a Yandex.Rajon közönsége gyorsan növekedni kezdett, spamelők érkeztek. Megtanulták kijátszani a reguláris kifejezéseket, kicsit megváltoztatva a szöveget. A spamet természetesen így is megtalálták és eltávolították, de a Yandex méretein belül egy olyan üzenetet, amelyet akár csak 5 percre tettek közzé, már több százan is láthattak.

Hogyan nyisd meg a kommentárokat, és ne fulladj a spambe

Ez nyilvánvalóan nem volt számunkra kielégítő, így intelligens gyorsítótárazást vezettünk be szövegek számára LSH alapú módon (helyi érzékeny hashelés). Ez úgy működik, hogy normalizáltuk a szöveget, eltávolítottuk belőle a linkeket, majd n-grammokra (n betűs sorozatokra) vágtuk. Ezután hash értékeket számítottunk az n-grammokról, és ezek alapján felépítettük az LSH-vektor dokumentumot. A lényeg az, hogy a hasonló szövegek, még ha kicsit meg is változtatták őket, hasonló vektorokká alakultak.

Ez a megoldás lehetővé tette a klasszifikátorok és a tolokerek ítéleteinek újrahasználatát hasonló szövegek esetén. Spam támadásnál, ahogy az első üzenet ellenőrzése átment és a "spam" ítélet került a gyorsítótárba, minden új, hasonló szöveg, még ha meg is változtatták őket, ugyanezt az ítéletet kapták és automatikusan eltávolították. Később megtanultuk, hogyan képezzük ki és automatikusan képezzük át a spam klasszifikátorokat, de ez az "intelligens gyorsítótár" velünk maradt, és még ma is gyakran segít nekünk.

A jó szövegek klasszifikálója

Mielőtt kipihentük volna magunkat a spam elleni harcból, rájöttünk, hogy a tartalom 95%-át kézzel moderáljuk: a klasszifikátorok csak a szabálytalanságokra reagálnak, és a legtöbb szöveg jó. Tolokereket terhelünk meg, akik 95 esetből 100-ban a „Minden rendben van” értékelést adják. Szokatlan munkával kellett foglalkoznunk – jó tartalmak klasszifikálóit kellett készítenünk, ami nem is volt nehéz, mivel az idő során elégséges címkét halmoztunk fel.

Az első klasszifikátor így nézett ki: lemmatizáltuk a szöveget (a szavakat az alapformájukra bontva), eltávolítottuk az összes segédszót, és alkalmaztuk a korábban előkészített „jó lemmaták szótárát”. Ha a szövegben minden szó „jó”, akkor a szöveg összességében sem tartalmaz szabálytalanságot. Különböző szolgáltatásoknál ez a megközelítés azonnal 25-35% automatizálást eredményezett a kézi címkézésben. Természetesen ez a megközelítés nem tökéletes: nem nehéz több ártalmatlan szót kombinálni, és nagyon sértő kifejezéseket kapni, de lehetővé tette számunkra, hogy gyorsan elérjünk egy jó automatizálási szintet, és időt adott a bonyolultabb modellek betanítására.

A következő jó szövegek klasszifikátor verziói már tartalmazták a lineáris modelleket, döntési fákat és azok kombinációit. A durvaságok és sértések címkézésére például a BERT neurális hálót próbálgatjuk. Itt fontos elkapni a szó értelmét a kontextusban és a szavak közötti kapcsolatokat különböző mondatokban, és a BERT jól megbirkózik ezzel. (Egyébként nemrégiben a kollégák a hírekből, beszéltünk, hogyan alkalmazzák a technológiát nem szokványos feladatra – hibák keresésére a címekben.) Végül 90%-os automatizálást sikerült elérni a szolgáltatástól függően.

Pontosság, teljesség és sebesség

A fejlődéshez meg kell érteni, hogy az egyes automatikus klasszifikátorok, a bennük bekövetkezett változások milyen hasznot hoznak, valamint hogy a kézi ellenőrzések minősége nem romlik-e. Ehhez a pontosság és teljesség mutatóit alkalmazzuk.

A pontosság az összes rossz tartalomra vonatkozó helyes ítéletek arányát jelenti. Minél magasabb a pontosság, annál kevesebb a téves riasztás. Ha nem figyelünk a pontosságra, akkor elméletileg eltávolíthatjuk az összes spamet és trágár szót, ami együtt a jó üzenetek felét is eltüntetheti. Másrészről, ha csak a pontosságra támaszkodunk, akkor a legjobb technológia az lesz, amely egyáltalán nem észlel senkit. Ezért van még egy mérőszám, a teljesség: a rossz tartalom azonosított arányát az összes rossz tartalom között. E két metrika kiegyensúlyozza egymást.

Az értékeléshez minta alapján megvizsgáljuk az összes bejövő forgalmat minden szolgáltatás esetében, és átadjuk a tartalmi mintákat értékelőknek szakértői értékelésre és a gép által hozott döntésekkel való összehasonlításra.

De van még egy fontos mutató.

Fentebb írtam, hogy egy elfogadhatatlan üzenetet akár 5 perc alatt is megpillanthatnak százan. Ezért figyeljük, hányszor tudtuk megmutatni az embereknek a rossz tartalmat, mielőtt eltüntettük volna. Ez fontos, mert nem elég jól dolgozni — gyorsan is kell dolgozni. Amikor építettük az új szűrőt a trágár szavak ellen, ezt teljes mértékben érzékeltük.

Trágár szavak cica és kutya példáján keresztül

Egy kis lírai eltérés. Valaki azt mondhatja, hogy a trágár nyelvezet és a sértések nem annyira veszélyesek, mint a káros linkek, és nem annyira idegesítőek, mint a spam. De mi arra törekszünk, hogy a tisztes kommunikációs környezetet támogassuk milliók számára, és az emberek nem szeretnek olyan helyekre visszatérni, ahol megsértik őket. Nem véletlen, hogy a trágár nyelv és sértések tilalma sok közösség szabályzatában benne van, így a Habr-on is. De eltértünk a témától.

A trágár szavakat tartalmazó szótárak nem képesek átfogni az orosz nyelv gazdagságát. Annak ellenére, hogy mindössze négy alapvető trágár gyökér létezik, ezekből számtalan szót lehet alkotni, amelyeket semmilyen reguláris kifejezéssel nem lehet elkapni. Ezen kívül a szavak részleteit átírni, betűsorozatokat helyettesíteni, a betűket átrendezni, csillagokat hozzáadni stb. lehet. Néha a kontextus hiányában gyakorlatilag lehetetlen meghatározni, hogy a felhasználó pontosan milyen trágár szót értett. Tiszteletben tartjuk a Habr szabályait, ezért ezt nem élő példákon fogjuk megmutatni, hanem cicákon és kutyákon.

Hogyan nyisd meg a kommentárokat, és ne fulladj a spambe

„Miau”, mondta a cica. De tudjuk, hogy a cica valójában egy másik szót mondott...

Azzal kezdtünk el foglalkozni, hogy a szótárunk „homályos egyeztetési” algoritmusai és a fejlettebb előfeldolgozás érdekében a transzliterációt végeztük, összeillesztettük a szóközöket és a pontosvesszőket, mintákat kerestünk, és külön reguláris kifejezéseket írtunk. Ez a megközelítés eredményeket hozott, de gyakran csökkentette a pontosságot, nem biztosítva a kívánt teljességet.

Akkor úgy döntöttünk, hogy „úgy gondolkodunk, mint a trágár beszélők”. Magunk kezdtünk el zajt vinni az adatokba: áthelyeztük a betűket, elgépeléseket generáltunk, hasonló írásmódú betűket cseréltünk egymásra, és így tovább. A kezdeti annotációt ehhez a trágár szótárak nagy szövegkorpuszaival alkalmaztuk. Ha egy mondatot többféleképpen eltorzítunk, már sok mondatot kapunk. Ezzel a tanulási minták számát több tízszeresére növelhetjük. Már csak annyit kellett tenni, hogy egy értelmesebb modellt tanítsunk az így kapott mintákon, figyelembe véve a kontextust.

Hogyan nyisd meg a kommentárokat, és ne fulladj a spambe

A végleges megoldásról még korai beszélni. Még mindig kísérletezünk a problémához való megközelítésekkel, de már látjuk, hogy egy egyszerű karakteralapú konvolúciós hálózat, amely több rétegből áll, lényegesen felülmúlja a szótárakat és a reguláris kifejezéseket: így mind a pontosság, mind a teljesség növelhető.

Természetesen tudatában vagyunk annak, hogy mindig lesznek módszerek a legfejlettebb automatizálás megkerülésére, különösen, ha a dolog ilyen izgalmas: úgy írni, hogy a buta gép ne értse. Itt, mint a spam elleni küzdelem során, nem az a célunk, hogy kiirtsuk a lehetőséget, hogy bárki trágár dolgokat írjon, hanem az, hogy a játék ne érje meg a gyertyát.

Az emberek véleményének megosztásának, kommunikálásának és kommentálásának lehetőségének megteremtése nem nehéz. Sokkal nehezebb biztonságos, kényelmes körülményeket biztosítani, és tiszteletteljesen bánni az emberekkel. Enélkül pedig nem lehetséges közösséget fejleszteni.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster