Jak otevírat komentáře a neutopit se ve spamu

Jak otevírat komentáře a neutopit se ve spamu

Když je vaším úkolem vytvořit něco krásného, ​​nemusíte o tom příliš mluvit, protože výsledek je všem před očima. Pokud ale vymažete nápisy z plotů, nikdo si vaší práce nevšimne, dokud ploty vypadají slušně nebo dokud nesmažete něco špatného.

Jakákoli služba, kde můžete zanechat komentář, recenzi, poslat zprávu nebo nahrát obrázky, dříve či později čelí problému spamu, podvodů a obscénností. Tomu se nelze vyhnout, ale je třeba se s tím vypořádat.

Jmenuji se Michail, pracuji v týmu Antispam, který chrání uživatele služeb Yandex před takovými problémy. Naše práce je málokdy zaznamenána (a to je dobře!), takže dnes vám o ní povím více. Dozvíte se, kdy je umírněnost k ničemu a proč přesnost není jediným ukazatelem její účinnosti. Budeme také mluvit o nadávkách na příkladu koček a psů a o tom, proč je někdy užitečné „myslet jako nadávka“.

V Yandexu se objevuje stále více služeb, kde uživatelé publikují svůj obsah. Můžete položit otázku nebo napsat odpověď na Yandex.Q, diskutovat o zprávách ze dvora v Yandex.District, sdílet dopravní podmínky v konverzacích na Yandex.Maps. Když však publikum služby roste, stává se atraktivní pro podvodníky a spammery. Přicházejí a vyplňují komentáře: nabízejí snadné peníze, inzerují zázračné léky a slibují sociální výhody. Kvůli spammerům někteří uživatelé přicházejí o peníze, zatímco jiní ztrácejí chuť trávit čas na neudržované službě přerostlé spamem.

A to není jediný problém. Snažíme se nejen chránit uživatele před podvodníky, ale také vytvořit příjemnou atmosféru pro komunikaci. Pokud jsou lidé v komentářích konfrontováni s nadávkami a urážkami, pravděpodobně odejdou a už se nevrátí. To znamená, že se s tím také musíte umět vypořádat.

Čistý web

Jak už to u nás bývá, první vývoj se zrodil ve Vyhledávání, v části, která bojuje proti spamu ve výsledcích vyhledávání. Zhruba před deseti lety se tam objevil úkol filtrovat obsah pro dospělé pro rodinné vyhledávání a pro dotazy, které nevyžadovaly odpovědi z kategorie 18+. Tak se objevily první ručně psané slovníky porna a nadávek, které doplnili analytici. Hlavním úkolem bylo roztřídit požadavky na ty, kde je obsah pro dospělé ukazovat a kde ne. Pro tento úkol byly shromážděny značky, vytvořena heuristika a byly trénovány modely. Tak se objevil první vývoj pro filtrování nežádoucího obsahu.

Postupem času se v Yandexu začal objevovat UGC (obsah vytvářený uživateli) – zprávy, které píší samotní uživatelé a Yandex pouze publikuje. Z výše popsaných důvodů nebylo možné mnoho zpráv publikovat bez nahlédnutí – bylo zapotřebí moderování. Poté se rozhodli vytvořit službu, která by poskytovala ochranu proti spamu a útočníkům pro všechny produkty Yandex UGC a využívala vývoj k filtrování nežádoucího obsahu ve Vyhledávání. Služba se jmenovala „Čistý web“.

Nové úkoly a pomoc od posunovačů

Zpočátku nám fungovala jen jednoduchá automatizace: služby nám posílaly texty a my jsme na nich provozovali slovníky obscénností, porno slovníky a regulární výrazy – analytici vše sestavovali ručně. Postupem času se ale služba používala ve stále větším počtu produktů Yandex a museli jsme se naučit pracovat s novými problémy.

Uživatelé často místo recenze publikují nesmyslnou sadu dopisů, snaží se zvýšit své úspěchy, někdy inzerují svou společnost v recenzích konkurenční společnosti a někdy jednoduše matou organizace a píší do recenze o zverimexu: “ Perfektně vařené ryby!” Snad se někdy umělá inteligence naučí dokonale chápat význam jakéhokoli textu, ale automatizace si nyní poradí hůř než lidé.

Bylo jasné, že to nemůžeme udělat bez ručního značení, a přidali jsme do našeho okruhu druhý stupeň – odeslání k ruční kontrole osobou. Byly tam zařazeny ty publikované texty, u kterých klasifikátor neshledal žádné problémy. Rozsah takového úkolu si snadno dovedete představit, a tak jsme se nejen spoléhali na hodnotitele, ale také využili „moudrosti davu“, tedy obrátili jsme se o pomoc na tolokery. Jsou to oni, kdo nám pomáhají identifikovat, co stroj vynechal, a tím ho učit.

Inteligentní ukládání do mezipaměti a hašování LSH

Dalším problémem, na který jsme při práci s komentáři narazili, byl spam, přesněji jeho objem a rychlost šíření. Když publikum Yandex.Region začalo rychle růst, přišli tam spammeři. Naučili se obcházet regulární výrazy mírnou změnou textu. Spam byl samozřejmě stále nalezen a smazán, ale v měřítku Yandexu mohla nepřijatelná zpráva zveřejněná i po dobu 5 minut vidět stovky lidí.

Jak otevírat komentáře a neutopit se ve spamu

To nám samozřejmě nevyhovovalo a udělali jsme chytré ukládání textu do mezipaměti založené na LSH (hašování citlivé na lokalitu). Funguje to takto: text jsme normalizovali, odstranili z něj odkazy a rozřezali ho na n-gramy (sekvence n písmen). Dále byly vypočteny hashe n-gramů a z nich byl sestaven LSH vektor dokumentu. Jde o to, že podobné texty, i když byly mírně pozměněny, se změnily v podobné vektory.

Toto řešení umožnilo znovu použít verdikty klasifikátorů a tolokerů pro podobné texty. Během spamového útoku, jakmile první zpráva prošla kontrolou a vstoupila do mezipaměti s verdiktem „spam“, všechny nové podobné zprávy, dokonce i upravené, obdržely stejný verdikt a byly automaticky smazány. Později jsme se naučili trénovat a automaticky rekvalifikovat klasifikátory spamu, ale tato „chytrá cache“ nám zůstala a stále nám často pomáhá.

Dobrý klasifikátor textu

Aniž bychom měli čas si odpočinout od boje proti spamu, uvědomili jsme si, že 95 % našeho obsahu je moderováno ručně: klasifikátoři reagují pouze na porušení a většina textů je dobrá. Načítáme čističe, kteří v 95 případech ze 100 dávají hodnocení „Vše je v pořádku“. Musel jsem udělat neobvyklou práci – vytvořit klasifikátory dobrého obsahu, naštěstí se během této doby nashromáždilo dost značek.

První klasifikátor vypadal takto: text lemmatizujeme (slova zredukujeme do původní podoby), vyhodíme všechny pomocné slovní druhy a použijeme předem připravený „slovník dobrých lemmat“. Pokud jsou všechna slova v textu „dobrá“, pak celý text neobsahuje žádná porušení. U různých služeb tento přístup okamžitě poskytl 25 až 35% automatizaci ručního značkování. Tento přístup samozřejmě není ideální: je snadné spojit několik nevinných slov a získat velmi urážlivé prohlášení, ale umožnilo nám to rychle dosáhnout dobré úrovně automatizace a poskytlo nám čas na trénování složitějších modelů.

Další verze dobrých textových klasifikátorů již obsahovaly lineární modely, rozhodovací stromy a jejich kombinace. Pro označení hrubosti a urážek zkoušíme například neuronovou síť BERT. Je důležité pochopit význam slova v kontextu a spojení mezi slovy z různých vět a BERT to dělá dobře. (Mimochodem, nedávno kolegové z News řekla, jak se využívá technologie pro nestandardní úkol – hledání chyb v hlavičkách.) Díky tomu bylo možné automatizovat až 90 % toku v závislosti na službě.

Přesnost, úplnost a rychlost

Chcete-li se vyvíjet, musíte pochopit, jaké výhody přinášejí určité automatické klasifikátory, změny v nich a zda se kvalita ručních kontrol nesnižuje. K tomu používáme metriky přesnosti a vyvolání.

Přesnost je poměr správných verdiktů mezi všemi verdikty o špatném obsahu. Čím vyšší přesnost, tím méně falešných poplachů. Pokud nebudete dbát na přesnost, teoreticky můžete smazat veškerý spam a obscénnosti a spolu s nimi i polovinu dobrých zpráv. Na druhou stranu, pokud se spoléháte pouze na přesnost, pak bude nejlepší technologie ta, která nechytne vůbec nikoho. Existuje tedy také ukazatel úplnosti: podíl identifikovaného špatného obsahu na celkovém objemu špatného obsahu. Tyto dvě metriky se navzájem vyvažují.

Pro měření vzorkujeme celý příchozí tok pro každou službu a poskytujeme vzorky obsahu hodnotitelům k odbornému vyhodnocení a porovnání se strojovými řešeními.

Je tu ale ještě jeden důležitý ukazatel.

Výše jsem psal, že nepřijatelnou zprávu mohou vidět stovky lidí i za 5 minut. Takže počítáme, kolikrát jsme lidem ukázali špatný obsah, než jsme ho skryli. To je důležité, protože nestačí pracovat efektivně – musíte také pracovat rychle. A když jsme postavili obranu proti nadávkám, cítili jsme to naplno.

Antimatismus na příkladu koček a psů

Malá lyrická odbočka. Někdo by mohl říci, že obscénnost a urážky nejsou tak nebezpečné jako škodlivé odkazy a nejsou tak otravné jako spam. Snažíme se ale zachovat komfortní podmínky pro komunikaci pro miliony uživatelů a lidé se neradi vracejí na místa, kde je urážejí. Ne nadarmo je zákaz nadávek a urážek uveden v pravidlech mnoha komunit, včetně Habrého. Ale to jsme odbočili.

Nadávkové slovníky se nedokážou vyrovnat s veškerým bohatstvím ruského jazyka. Navzdory tomu, že existují pouze čtyři hlavní nadávkové kořeny, lze z nich poskládat nespočet slov, která žádné běžné motory nepochytí. Kromě toho můžete napsat část slova v transliteraci, nahradit písmena podobnými kombinacemi, přeskupit písmena, přidat hvězdičky atd. Někdy bez kontextu v podstatě nelze určit, že uživatel myslel nadávku. Respektujeme Habrova pravidla, proto to předvedeme ne na živých příkladech, ale na kočkách a psech.

Jak otevírat komentáře a neutopit se ve spamu

"Zákon," řekla kočka. Ale chápeme, že kočka řekla jiné slovo...

Začali jsme přemýšlet o algoritmech „fuzzy párování“ pro náš slovník a o chytřejším předběžném zpracování: poskytli jsme transliteraci, slepili mezery a interpunkci, hledali vzory a psali na ně samostatné regulární výrazy. Tento přístup přinesl výsledky, ale často snižoval přesnost a neposkytoval požadovanou úplnost.

Pak jsme se rozhodli „myslet jako přísežníci“. Sami jsme začali do dat vnášet šum: přeskupovali jsme písmena, generovali překlepy, nahrazovali písmena podobným pravopisem a tak dále. Počáteční označení pro toto bylo přijato aplikací podložkových slovníků na velké korpusy textů. Pokud vezmete jednu větu a překroutíte ji několika způsoby, skončíte s mnoha větami. Tréninkový vzorek tak můžete navýšit desítkykrát. Zbývalo natrénovat na výsledném bazénu nějaký více či méně chytrý model zohledňující kontext.

Jak otevírat komentáře a neutopit se ve spamu

O konečném rozhodnutí je příliš brzy mluvit. S přístupy k tomuto problému stále experimentujeme, ale již nyní vidíme, že jednoduchá symbolická konvoluční síť několika vrstev výrazně předčí slovníky a běžné enginy: je možné zvýšit přesnost i vybavitelnost.

Samozřejmě chápeme, že vždy budou existovat způsoby, jak obejít i tu nejpokročilejší automatizaci, zvláště když je to tak nebezpečné: pište tak, že hloupý stroj nebude rozumět. Zde, stejně jako v boji proti spamu, není naším cílem vymýtit samotnou možnost napsat něco obscénního, naším úkolem je zajistit, aby hra nestála za svíčku.

Otevření možnosti sdílet svůj názor, komunikovat a komentovat není těžké. Je mnohem obtížnější dosáhnout bezpečných, pohodlných podmínek a ohleduplného zacházení s lidmi. A bez toho nedojde k rozvoji žádné komunity.

Zdroj: www.habr.com

Přidat komentář