Ako otvárať komentáre a neutopiť sa v spame

Ako otvárať komentáre a neutopiť sa v spame

Keď je vašou úlohou vytvoriť niečo krásne, nemusíte o tom príliš hovoriť, pretože výsledok je každému pred očami. Ale ak vymažete nápisy z plotov, nikto si vašu prácu nevšimne, pokiaľ ploty vyzerajú slušne alebo kým nezmažete niečo zlé.

Každá služba, v ktorej môžete zanechať komentár, recenziu, poslať správu alebo nahrať obrázky, skôr či neskôr čelí problému spamu, podvodov a obscénnosti. Tomu sa nedá vyhnúť, ale treba sa s tým vyrovnať.

Moje meno je Michail, pracujem v tíme Antispam, ktorý chráni používateľov služieb Yandex pred takýmito problémami. Našu prácu si málokto všimne (a to je dobre!), takže dnes vám o nej poviem viac. Dozviete sa, kedy je moderovanie zbytočné a prečo presnosť nie je jediným ukazovateľom jeho účinnosti. Budeme hovoriť aj o nadávkach na príklade mačiek a psov a o tom, prečo je niekedy užitočné „myslieť ako nadávka“.

Stále viac služieb sa objavuje v Yandex, kde používatelia zverejňujú svoj obsah. Môžete položiť otázku alebo napísať odpoveď na Yandex.Q, diskutovať o správach z dvora v Yandex.District, zdieľať dopravné podmienky v rozhovoroch na Yandex.Maps. Keď však publikum služby rastie, stáva sa príťažlivou pre podvodníkov a spamerov. Prídu a vyplnia komentáre: ponúkajú ľahké peniaze, inzerujú zázračné lieky a sľubujú sociálne výhody. Kvôli spamerom niektorí používatelia prichádzajú o peniaze, iní strácajú chuť tráviť čas na neudržiavanej službe prerastenej spamom.

A to nie je jediný problém. Snažíme sa nielen chrániť používateľov pred podvodníkmi, ale aj vytvárať príjemnú atmosféru pre komunikáciu. Ak sú ľudia v komentároch konfrontovaní s nadávkami a urážkami, pravdepodobne odídu a už sa nevrátia. To znamená, že aj s tým sa musíte vedieť vysporiadať.

Čistý web

Ako to už u nás býva, prvý vývoj sa zrodil vo Vyhľadávaní, v časti, ktorá bojuje proti spamu vo výsledkoch vyhľadávania. Asi pred desiatimi rokmi sa tam objavila úloha filtrovať obsah pre dospelých pre rodinné vyhľadávania a pre dopyty, ktoré nevyžadovali odpovede z kategórie 18+. Takto sa objavili prvé ručne písané slovníky porna a nadávok, ktoré doplnili analytici. Hlavnou úlohou bolo zatriediť požiadavky na tie, kde je prípustné zobrazovať obsah pre dospelých a kde nie. Pre túto úlohu sa zhromaždili značky, vytvorila sa heuristika a trénovali sa modely. Takto sa objavil prvý vývoj v oblasti filtrovania neželaného obsahu.

Postupom času sa v Yandex začal objavovať UGC (obsah generovaný používateľmi) - správy, ktoré píšu samotní používatelia a Yandex iba publikuje. Z vyššie popísaných dôvodov sa mnohé správy nedali zverejniť bez toho, aby ste sa pozreli – bolo potrebné moderovať. Potom sa rozhodli vytvoriť službu, ktorá by poskytovala ochranu pred spamom a útočníkmi pre všetky produkty Yandex UGC a využívala vývoj na filtrovanie nežiaduceho obsahu vo Vyhľadávaní. Služba sa volala „Čistý web“.

Nové úlohy a pomoc od posunovačov

Spočiatku nám fungovala len jednoduchá automatizácia: služby nám posielali texty a spúšťali sme na nich slovníky obscénností, porno slovníky a regulárne výrazy – analytici všetko kompilovali ručne. Postupom času sa však služba používala v čoraz väčšom počte produktov Yandex a museli sme sa naučiť pracovať s novými problémami.

Používatelia často namiesto recenzie zverejňujú nezmyselný súbor listov, v ktorých sa snažia zvýšiť svoje úspechy, niekedy inzerujú svoju spoločnosť v recenziách spoločnosti konkurenta a niekedy jednoducho zmiatnu organizácie a napíšu do recenzie o obchode s domácimi zvieratami: “ Dokonale uvarená ryba!” Možno sa jedného dňa umelá inteligencia naučí dokonale pochopiť význam akéhokoľvek textu, ale teraz si automatizácia niekedy poradí horšie ako ľudia.

Bolo jasné, že to nemôžeme urobiť bez manuálneho označovania a pridali sme do nášho okruhu druhú fázu – odoslanie na manuálnu kontrolu osobou. Boli tam zaradené tie publikované texty, pri ktorých klasifikátor nevidel žiadne problémy. Rozsah takejto úlohy si viete ľahko predstaviť, a tak sme sa nespoliehali len na hodnotiteľov, ale využili sme aj „múdrosť davu“, čiže obrátili sme sa o pomoc na tolokerov. Sú to oni, ktorí nám pomáhajú identifikovať, čo stroj vynechal, a tým ho naučiť.

Inteligentné ukladanie do vyrovnávacej pamäte a hašovanie LSH

Ďalším problémom, na ktorý sme pri práci s komentármi narazili, bol spam, presnejšie jeho objem a rýchlosť šírenia. Keď publikum Yandex.Region začalo rýchlo rásť, prišli tam spameri. Naučili sa obchádzať regulárne výrazy miernou zmenou textu. Spam sa, samozrejme, stále našiel a odstránil, ale na úrovni Yandexu mohli stovky ľudí vidieť neprijateľnú správu uverejnenú aj na 5 minút.

Ako otvárať komentáre a neutopiť sa v spame

To nám, samozrejme, nevyhovovalo a urobili sme inteligentné ukladanie textu do vyrovnávacej pamäte založené na LSH (hašovanie citlivé na lokalitu). Funguje to takto: text sme normalizovali, odstránili z neho odkazy a rozrezali ho na n-gramy (sekvencie n písmen). Ďalej sa vypočítali haše n-gramov a z nich sa zostavil vektor LSH dokumentu. Ide o to, že podobné texty, aj keď boli mierne pozmenené, sa zmenili na podobné vektory.

Toto riešenie umožnilo opätovne použiť verdikty klasifikátorov a tolokerov pre podobné texty. Počas spamového útoku, hneď ako prvá správa prešla kontrolou a vstúpila do vyrovnávacej pamäte s verdiktom „spam“, všetky nové podobné správy, dokonca aj upravené, dostali rovnaký verdikt a boli automaticky vymazané. Neskôr sme sa naučili trénovať a automaticky rekvalifikovať klasifikátory spamu, ale táto „inteligentná vyrovnávacia pamäť“ nám zostala a stále nám často pomáha.

Dobrý klasifikátor textu

Bez toho, aby sme mali čas na prestávku v boji proti spamu, sme si uvedomili, že 95 % nášho obsahu je moderovaných manuálne: klasifikátory reagujú iba na porušenia a väčšina textov je dobrá. Načítavame čističe, ktoré v 95 prípadoch zo 100 dávajú hodnotenie „Všetko je v poriadku“. Musel som urobiť nezvyčajnú prácu - vytvoriť klasifikátory dobrého obsahu, našťastie sa počas tejto doby nahromadilo dosť značiek.

Prvý klasifikátor vyzeral takto: text lemmatizujeme (redukujeme slová do pôvodnej podoby), vyhodíme všetky pomocné slovné druhy a použijeme vopred pripravený „slovník dobrých lemmov“. Ak sú všetky slová v texte „dobré“, potom celý text neobsahuje žiadne porušenia. Na rôznych službách tento prístup okamžite poskytol 25 až 35% automatizáciu manuálneho označovania. Samozrejme, tento prístup nie je ideálny: je ľahké spojiť niekoľko nevinných slov a získať veľmi urážlivé vyhlásenie, ale umožnilo nám to rýchlo dosiahnuť dobrú úroveň automatizácie a dalo nám čas na trénovanie zložitejších modelov.

Ďalšie verzie dobrých textových klasifikátorov už obsahovali lineárne modely, rozhodovacie stromy a ich kombinácie. Na označenie hrubosti a urážok napríklad skúšame neurónovú sieť BERT. Je dôležité pochopiť význam slova v kontexte a spojenie medzi slovami z rôznych viet a BERT to robí dobre. (Mimochodom, nedávno kolegovia z News povedal, ako sa využíva technológia na neštandardnú úlohu – hľadanie chýb v hlavičkách.) Vďaka tomu bolo možné automatizovať až 90 % toku v závislosti od služby.

Presnosť, úplnosť a rýchlosť

Aby ste sa mohli rozvíjať, musíte pochopiť, aké výhody prinášajú určité automatické klasifikátory, zmeny v nich a či sa kvalita manuálnych kontrol nezhoršuje. Na tento účel používame metriky presnosti a vybavovania.

Presnosť je podiel správnych úsudkov medzi všetkými úsudkami o zlom obsahu. Čím vyššia presnosť, tým menej falošných poplachov. Ak nevenujete pozornosť presnosti, teoreticky môžete odstrániť všetok spam a obscénnosti a spolu s nimi polovicu dobrých správ. Na druhej strane, ak sa spoliehate iba na presnosť, potom bude najlepšia technológia tá, ktorá nezachytí vôbec nikoho. Preto existuje aj indikátor úplnosti: podiel identifikovaného zlého obsahu na celkovom objeme zlého obsahu. Tieto dve metriky sa navzájom vyvažujú.

Na meranie vzorkujeme celý prichádzajúci tok pre každú službu a poskytujeme vzorky obsahu hodnotiteľom na odborné vyhodnotenie a porovnanie so strojovými riešeniami.

Ale je tu ešte jeden dôležitý ukazovateľ.

Vyššie som napísal, že neprijateľnú správu môžu vidieť stovky ľudí aj za 5 minút. Takže spočítame, koľkokrát sme ľuďom ukázali zlý obsah, kým sme ho skryli. Je to dôležité, pretože nestačí pracovať efektívne – treba pracovať aj rýchlo. A keď sme postavili obranu proti nadávkam, pocítili sme to naplno.

Antimatizmus na príklade mačiek a psov

Malá lyrická odbočka. Niekto by mohol povedať, že obscénnosť a urážky nie sú také nebezpečné ako škodlivé odkazy a nie také otravné ako spam. Snažíme sa však zachovať komfortné podmienky na komunikáciu pre milióny používateľov a ľudia sa neradi vracajú na miesta, kde ich urážajú. Nie nadarmo je zákaz nadávok a urážok zakotvený v pravidlách mnohých komunít, vrátane Habrého. Ale to sme odbočili.

Nadávkové slovníky sa nedokážu vyrovnať so všetkým bohatstvom ruského jazyka. Napriek tomu, že hlavné nadávky sú len štyri, dá sa z nich vyskladať nespočetné množstvo slov, ktoré žiadne bežné motory nepochytia. Okrem toho môžete napísať časť slova v prepise, nahradiť písmená podobnými kombináciami, zmeniť usporiadanie písmen, pridať hviezdičky atď. Niekedy je bez kontextu v podstate nemožné určiť, že používateľ myslel nadávku. Rešpektujeme Habrove pravidlá, preto to predvedieme nie na živých príkladoch, ale na mačkách a psíkoch.

Ako otvárať komentáre a neutopiť sa v spame

"Zákon," povedala mačka. Ale chápeme, že mačka povedala iné slovo...

Začali sme premýšľať o algoritmoch „fuzzy párovania“ pre náš slovník a o inteligentnejšom predbežnom spracovaní: poskytli sme prepis, zlepili medzery a interpunkciu, hľadali sme vzory a napísali sme do nich samostatné regulárne výrazy. Tento prístup priniesol výsledky, ale často znížil presnosť a neposkytol požadovanú úplnosť.

Potom sme sa rozhodli „premýšľať ako nadávky“. Sami sme začali do údajov zavádzať šum: preusporiadali sme písmená, vygenerovali preklepy, nahradili písmená podobným pravopisom atď. Počiatočné označenie pre toto bolo prijaté aplikáciou matových slovníkov na veľké korpusy textov. Ak vezmete jednu vetu a prekrútite ju niekoľkými spôsobmi, skončíte s mnohými vetami. Takto môžete tréningovú vzorku zväčšiť desaťkrát. Ostávalo už len natrénovať na výslednom bazéne nejaký viac-menej chytrý model zohľadňujúci kontext.

Ako otvárať komentáre a neutopiť sa v spame

Hovoriť o konečnom rozhodnutí je priskoro. Stále experimentujeme s prístupmi k tomuto problému, ale už teraz vidíme, že jednoduchá symbolická konvolučná sieť niekoľkých vrstiev výrazne prevyšuje slovníky a bežné motory: je možné zvýšiť presnosť aj vybavovanie.

Samozrejme, chápeme, že vždy budú existovať spôsoby, ako obísť aj tú najpokročilejšiu automatizáciu, najmä keď je vec taká nebezpečná: píšte tak, že hlúpy stroj nebude rozumieť. Tu, rovnako ako v boji proti spamu, nie je naším cieľom vykoreniť samotnú možnosť napísať niečo obscénne, našou úlohou je zabezpečiť, aby hra nestála za sviečku.

Otvorenie možnosti podeliť sa o svoj názor, komunikovať a komentovať nie je ťažké. Je oveľa ťažšie dosiahnuť bezpečné, pohodlné podmienky a úctivé zaobchádzanie s ľuďmi. A bez toho nebude rozvoj žiadnej komunity.

Zdroj: hab.com

Pridať komentár