Jak moderujeme inzeráty

Jak moderujeme inzeráty

Každá služba, jejíž uživatelé mohou vytvářet vlastní obsah (UGC – User-generated content), musí řešit nejen obchodní úkoly, ale také se postarat o pořádek v UGC. Špatná nebo nekvalitní moderace obsahu může nakonec snížit atraktivitu služby pro uživatele, až po ukončení jejího fungování.

Dnes vám povíme o synergii mezi Joulou a Odnoklassniky, která nám pomáhá efektivně moderovat inzeráty na Joulě.

Synergie je obecně velmi užitečná, a v moderním světě, kdy se technologie a trendy rychle mění, se může stát kouzelnou hůlkou. Proč vynakládat vzácné zdroje a čas na vymýšlení toho, co už bylo vynalezeno a vylepšeno před vámi?

To samé jsme si pomysleli, když jsme čelili úkolu moderovat uživatelský obsah – obrázky, text a odkazy. Naši uživatelé každodenně nahrávají na Joulou miliony jednotek obsahu a bez automatického zpracování by bylo ruční moderování všech těchto dat zcela nemožné.

Proto jsme využili již hotovou platformu moderace, kterou naši kolegové z Odnoklassniky v té době dotáhli k téměř dokonalému stavu.

Proč Odnoklassniki?

Denně do sociální sítě přicházejí desítky milionů uživatelů, kteří publikují miliardy jednotek obsahu: od fotografií po videa a texty. Platforma moderace Odnoklassniky pomáhá kontrolovat velmi velké objemy dat a bránit spamerům a robotům.

Tým moderace O.K. nashromáždil velmi rozsáhlé zkušenosti, protože svůj nástroj zdokonaluje už 12 let. Je důležité, že nejen mohli sdílet svá hotová řešení, ale také přizpůsobit architekturu své platformy našim specifickým úkolům.

Jak moderujeme inzeráty

Dále budeme pro stručnost nazývat platformu moderace O.K. jednoduše „platforma“.

Jak to všechno funguje

Mezi Joulou a Odnoklassniky je výměna dat nastavena přes Apache Kafka.

Proč jsme vybrali tento nástroj:

  • Na Joulou procházejí všechny inzeráty postmoderací, proto původně nebyla potřebná synchronní odpověď.
  • Pokud dojde k vážnému výpadku a Yula nebo Odnoklassniki nebudou dostupné, včetně důsledků jakýchkoli špičkových zátěží, data z Kafka se nikam neztratí a později je možné je dočíst.
  • Platforma již byla integrována s Kafkou, takže většina bezpečnostních problémů byla vyřešena.

Jak moderujeme inzeráty

Pro každé oznámení vytvořené nebo změněné uživatelským způsobem se vytváří JSON s daty, který se ukládá do Kafky pro následnou moderaci. Oznámení jsou z Kafky načítána do platformy, kde jsou na ně rozhodnutí přijímána automaticky nebo ručně. Špatná oznámení jsou blokována s uvedením důvodu, zatímco ta, kde platforma nenašla porušení, jsou označena jako „dobrá“. Poté jsou všechna rozhodnutí odeslána zpět do Yuly a aplikována v servisu.

Nakonec se vše pro Yulu shrnuje do jednoduchých akcí: odeslat oznámení na platformu Odnoklassniki a zpět získat rezoluci „ok“, nebo důvod, proč to není „ok“.

Automatizované zpracování

Co se stane s oznámením poté, co se dostane na platformu? Každé oznámení se dělí na několik entit:

  • název,
  • popis,
  • fotografie,
  • uživatelsky vybraná kategorie a podkategorie oznámení,
  • cena.

Jak moderujeme inzeráty

Poté platforma provádí clusterizaci na každé entitě, aby našla duplicity. Texty a fotografie se však clusterizují podle různých schémat.

Texty před clusterizací se normalizují, aby se odstranily speciální znaky, změněné písmena a další nečistoty. Získaná data se dělí na N-gramy, z nichž každá je hashována. Výsledkem je množství unikátních hashů. Podobnost mezi texty se posuzuje podle Jaccardovy míry mezi dvěma výslednými množinami. Pokud je podobnost vyšší než práh, texty se sloučí do jednoho clusteru. Pro urychlení vyhledávání podobných clusterů se používá MinHash a Locality-sensitive hashing.

Pro fotografie byly vytvořeny různé varianty sloučení obrázků, od porovnání pHash obrázků po hledání duplicity pomocí neuronové sítě.

Poslední způsob je nejvíc "drsný". Pro trénink modelu byly vybírány trojice obrázků (N, A, P), kde N není podobný A, zatímco P je podobný A (je částečným duplicitou). Následně se neuronová síť učila, jak A a P co nejvíce přiblížit a A a N co nejvíce vzdálit. Tímto způsobem se snižuje počet falešných pozitivních výsledků ve srovnání s pouhým využitím embeddingů z předtrénované sítě.

Když neuronová síť dostane obrázky jako vstup, generuje pro každý z nich N(128)-rozměrný vektor a provádí dotaz na hodnocení blízkosti obrázku. Dále se vypočítá prahová hodnota, při které se blízké obrázky považují za duplicity.

Model mistrovsky identifikuje spammery, kteří cíleně fotografují stejný produkt z různých úhlů, aby obešli srovnání podle pHash.

Jak moderujeme inzerátyJak moderujeme inzeráty
Příklad spamových fotografií, které neuronová síť spojila jako duplicity.

Ve finální fázi se duplicity inzerátů hledají současně podle textu a podle obrázku.

Pokud se v clusteru spojí dva a více inzerátů, systém spustí automatickou blokaci, která podle určitých algoritmů rozhodne, které duplicity odstranit a které ponechat. Například, pokud mají dva uživatelé v inzerátu totožné fotografie, systém zablokuje novější inzerát.

Po vytvoření procházejí všechny clustery řadou automatických filtrů. Každý filtr přiřadí clusteru určitý počet bodů (score): jakou pravděpodobnost má, že obsahuje hrozbu, kterou tento filtr identifikuje.

Například systém analyzuje popis v inzerátu a vybírá pro něj potenciální kategorie. Dále bere tu, u které je maximální pravděpodobnost, a porovnává s kategorií, kterou uvedl autor inzerátu. Pokud se neshodují, inzerát je zablokován za nesprávnou kategorii. A protože jsme laskaví a čestní, jasně uživateli říkáme, jakou kategorii má vybrat, aby inzerát prošel moderací.

Jak moderujeme inzeráty
Oznámení o blokaci za nesprávnou kategorii.

Na naší platformě se strojové učení cítí jako doma. Například s jeho pomocí hledáme v názvech a popisech zakázané zboží v Rusku. A modely neuronových sítí pečlivě "zkoumají" obrázky, zda na nich nejsou URL adresy, spamové texty, telefonní čísla a stále to samé "zakázané" zboží.

Pro případy, kdy se zakázaný produkt snaží prodat pod nějakou legální formou a neobsahuje žádný text ani v názvu, ani v popisu, používáme tagování obrázků. Pro každý obrázek může být přidáno až 11 tisíc různých tagů, které popisují, co se na obrázku nachází.

Jak moderujeme inzeráty
Vodní dýmku se snaží prodat, maskující ji jako samovar.

Vedle složitých filtrů pracují také jednoduché, které řeší jasné úkoly spojené s textem:

  • antimat;
  • detektor URL adres a telefonních čísel;
  • zmínka o messengeru a dalších kontaktech;
  • nízká cena;
  • inzeráty, ve kterých se nic neprodává, atd.

Dnes každý inzerát prochází jemným sítem více než 50 automatickými filtry, které se snaží najít v inzerátu něco špatného.

Pokud žádný z detektorů nezafungoval, odešle se na Yulu odpověď, že s inzerátem „pravděpodobně“ není žádný problém. Tuto odpověď využíváme u sebe a uživatelé, kteří se přihlásili k prodejci, dostávají upozornění na nový produkt.

Jak moderujeme inzeráty
Upozornění o tom, že u prodejce se objevil nový produkt.

Celkově každý inzerát „získává“ metadata, jejichž část je generována při jeho vytvoření (IP adresa autora, user-agent, platforma, geolokace atd.), a zbytek jsou skóre vydaná každým filtrem.

Fronty inzerátů

Když inzerát vstoupí na platformu, systém ho umístí do jedné z front. Každá fronta je vytvořena pomocí matematického vzorce, který kombinuje metadata inzerátu takovým způsobem, aby odhalil nějaký špatný vzor.

Například je možné vytvořit frontu inzerátů v kategorii „Mobilní telefony“ od uživatelů Yuly zdánlivě z Petrohradu, ale zároveň mají jejich IP adresy z Moskvy nebo jiných měst.

Jak moderujeme inzeráty
Příklad inzerátů umístěných jedním uživatelem v různých městech.

Nebo je možné vytvářet fronty na základě bodů, které neuronová síť přiřazuje inzerátům, řadí je podle sestupného pořadí.

Každá fronta podle svého vzorce přiřazuje inzerátu konečné skóre. Dále se může jednat různými způsoby:

  • stanovit prahem hodnotu, při které inzerát obdrží určitý typ blokování;
  • odeslat všechny inzeráty moderátorům na ruční kontrolu;
  • nebo zkombinovat předchozí varianty: nastavit práh automatického blokování a poslat moderátorům ty inzeráty, které tento práh nedosáhly.

Jak moderujeme inzeráty

Proč jsou tyto fronty potřebné? Představme si, že uživatel nahrál fotografii střelné zbraně. Neurální síť jí přiřazuje skóre od 95 do 100 a s 99% přesností určuje, že na obrázku je zbraň. Ale pokud je hodnota skóre nižší než 95 %, přesnost modelu začíná klesat (to je vlastnost neurálních sítí).

V důsledku toho se vytváří fronta na základě skóre modelu, a ty inzeráty, které získaly od 95 do 100, jsou automaticky blokovány jako „Zakázané zboží“. Inzeráty se skóre nižším než 95 jsou zasílány na ruční zpracování moderátorům.

Jak moderujeme inzeráty
Čokoládová Beretta s náboji. Pouze pro ruční moderaci! 🙂

Ruční moderace

Na začátku roku 2019 bylo přibližně 94 % všech inzerátů na Jule moderováno automaticky.

Jak moderujeme inzeráty

Pokud si platforma není jistá některými inzeráty, posílá je na ruční moderaci. Odnoklassniki vyvinuli vlastní nástroj: v úkolech pro moderátory je okamžitě zobrazeny všechny potřebné informace pro rychlé rozhodování — zda je inzerát vhodný, nebo by měl být zablokován s uvedením důvodu.

A aby při ruční moderaci netrpěla kvalita služby, je práce lidí neustále kontrolována. Například v toku úkolů se moderátorům zobrazují „léčky“ — inzeráty, pro které již existují hotová řešení. Pokud rozhodnutí moderátora nesouhlasí s připraveným, moderátorovi se započítává chyba.

Na kontrolu jednoho inzerátu moderátor průměrně stráví 10 sekund. Přičemž počet chyb činí maximálně 0,5 % ze všech prověřených inzerátů.

Hromadná moderace

Kolegové z Odnoklassniki zašli ještě dále a využili „pomoc publika“: napsali pro sociální síť aplikaci-hru, ve které lze rychle označovat velké množství dat, vyznačujíc nějaký špatný znak — Moderátor Odnoklassniki (https://ok.ru/app/moderator). Skvělý způsob, jak využít pomoc uživatelů O.K., kteří se snaží, aby byl obsah příjemnější.

Jak moderujeme inzeráty
Hra, ve které uživatelé označují fotografie, na kterých je telefonní číslo.

Každou frontu inzerátů na platformě lze přesměrovat do hry Moderátor Odnoklassnikov. Vše, co uživatelé hry označují, následně putuje interním moderátorům ke kontrole. Tento systém umožňuje blokovat inzeráty, pro které ještě nebyly vytvořeny filtry, a zároveň vytvářet vzdělávací výběry.

Ukládání výsledků moderace

Ukládáme všechna přijatá rozhodnutí během moderace, abychom znovu nezpracovávali ty inzeráty, pro které už bylo učiněno nějaké rozhodnutí.

Každý den se vytváří miliony klastrů pro inzeráty. V průběhu času každý klastr dostává označení „dobrý“ nebo „špatný“. Každý nový inzerát nebo jeho úprava, když se dostane do klastru s označením, automaticky obdrží rozhodnutí daného klastru. Takových automatických rozhodnutí se denně nahromadí kolem 20 tisíc.

Jak moderujeme inzeráty

Pokud do klastru nepřicházejí nové inzeráty, je odstraněn z paměti a jeho hash a rozhodnutí jsou uložena v Apache Cassandra.

Když platforma obdrží nový inzerát, nejprve se snaží najít podobný klastr mezi již vytvořenými a vzít z něj rozhodnutí. Pokud takový klastr neexistuje, platforma jde do Cassandry a hledá tam. Našla? Skvělé, uplatní rozhodnutí na klastr a odešle to do Yuly. Takových „opakovaných“ rozhodnutí se denně nahromadí v průměru 70 tisíc — 8 % z celkového počtu.

Shrnutí

Používáme platformu moderace Odnoklassnikov už dva a půl roku. Výsledky nás těší:

  • Automaticky moderujeme 94 % všech inzerátů za den.
  • Náklady na moderaci jedné inzerce jsme snížili z 2 rublů na 7 kopejek.
  • Díky hotovému nástroji jsme zapomněli na problémy s řízením moderátorů.
  • O 2,5x jsme zvýšili počet ručně zpracovaných inzerátů při stejném počtu moderátorů a rozpočtu. Kvalita ruční moderace se navíc zlepšila díky automatizované kontrole a pohybuje se kolem 0,5 % chyb.
  • Rychle pokrýváme filtry nové typy spamu.
  • Rychle připojujeme k moderaci nová oddělení "Yula Vertikály". Od roku 2017 se na Yule objevily vertikály Nemovitosti, Práce a Auto.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster