Come moderiamo gli annunci

Come moderiamo gli annunci

Ogni servizio i cui utenti possono creare i propri contenuti (UGC - User-generated content) è costretto non solo a risolvere problemi aziendali, ma anche a mettere le cose in ordine in UGC. Una moderazione dei contenuti scarsa o di bassa qualità può in definitiva ridurre l’attrattiva del servizio per gli utenti, fino a interromperne il funzionamento.

Oggi vi parleremo della sinergia tra Yula e Odnoklassniki, che ci aiuta a moderare in modo efficace le pubblicità su Yula.

La sinergia in generale è una cosa molto utile e nel mondo moderno, quando le tecnologie e le tendenze cambiano molto rapidamente, può trasformarsi in un vero toccasana. Perché sprecare tempo e risorse scarse inventando qualcosa che è già stato inventato e che ti è già venuto in mente?

Abbiamo pensato la stessa cosa quando ci siamo trovati di fronte al compito di moderare i contenuti degli utenti: immagini, testi e collegamenti. I nostri utenti caricano milioni di contenuti su Yula ogni giorno e senza l'elaborazione automatica è completamente impossibile moderare manualmente tutti questi dati.

Pertanto, abbiamo utilizzato una piattaforma di moderazione già pronta, che a quel punto i nostri colleghi di Odnoklassniki avevano completato fino a raggiungere uno stato “quasi perfetto”.

Perché Odnoklassniki?

Ogni giorno decine di milioni di utenti accedono al social network e pubblicano miliardi di contenuti: dalle foto ai video, ai testi. La piattaforma di moderazione Odnoklassniki aiuta a controllare grandi volumi di dati e a contrastare spammer e bot.

Il team di moderazione di OK ha accumulato molta esperienza, poiché da 12 anni migliora il suo strumento. È importante che possano non solo condividere le loro soluzioni già pronte, ma anche personalizzare l’architettura della loro piattaforma per adattarla ai nostri compiti specifici.

Come moderiamo gli annunci

D’ora in poi, per brevità, chiameremo semplicemente “piattaforma” la piattaforma di moderazione OK.

Come funziona tutto

Lo scambio di dati tra Yula e Odnoklassniki viene stabilito tramite Apache Kafka.

Perché abbiamo scelto questo strumento:

  • In Yula, tutti gli annunci sono post-moderati, quindi inizialmente non era richiesta una risposta sincrona.
  • Se si verifica un paragrafo errato e Yula o Odnoklassniki non sono disponibili, anche a causa di alcuni picchi di carico, i dati di Kafka non scompariranno da nessuna parte e potranno essere letti in seguito.
  • La piattaforma era già integrata con Kafka, quindi la maggior parte dei problemi di sicurezza sono stati risolti.

Come moderiamo gli annunci

Per ogni annuncio creato o modificato dall'utente in Yula, viene generato un JSON con i dati, che viene inserito in Kafka per la successiva moderazione. Da Kafka, gli annunci vengono caricati nella piattaforma, dove vengono aggiudicati automaticamente o manualmente. Gli annunci dannosi vengono bloccati con un motivo e quelli in cui la piattaforma non rileva violazioni vengono contrassegnati come “buoni”. Quindi tutte le decisioni vengono rimandate a Yula e applicate al servizio.

Alla fine, per Yula tutto si riduce a semplici azioni: inviare un annuncio sulla piattaforma Odnoklassniki e ottenere in risposta una risoluzione “ok”, o perché no “ok”.

Elaborazione automatica

Cosa succede all'annuncio dopo aver raggiunto la piattaforma? Ogni annuncio è suddiviso in più entità:

  • Nome,
  • descrizione,
  • fotografie,
  • categoria e sottocategoria dell'annuncio selezionate dall'utente,
  • prezzo.

Come moderiamo gli annunci

La piattaforma esegue quindi il clustering per ciascuna entità per trovare duplicati. Inoltre, testi e fotografie sono raggruppati secondo schemi diversi.

Prima del clustering, i testi vengono normalizzati per rimuovere caratteri speciali, lettere modificate e altra spazzatura. I dati ricevuti sono divisi in N-grammi, ciascuno dei quali viene sottoposto ad hashing. Il risultato sono molti hash unici. La somiglianza tra i testi è determinata da Misura di Jaccard tra i due insiemi risultanti. Se la somiglianza è maggiore della soglia, i testi vengono uniti in un unico cluster. Per velocizzare la ricerca di cluster simili, vengono utilizzati l'hashing MinHash e Locality-sensitive.

Sono state inventate varie opzioni per incollare le immagini per le fotografie, dal confronto delle immagini pHash alla ricerca di duplicati utilizzando una rete neurale.

L'ultimo metodo è il più “severo”. Per addestrare il modello, sono state selezionate triplette di immagini (N, A, P) in cui N non è simile ad A e P è simile ad A (è un semiduplicato). Quindi la rete neurale ha imparato a rendere A e P il più vicini possibile e A e N il più lontano possibile. Ciò si traduce in un minor numero di falsi positivi rispetto alla semplice acquisizione di incorporamenti da una rete preaddestrata.

Quando la rete neurale riceve immagini in input, genera per ciascuna di esse un vettore N(128) dimensionale e viene richiesta la valutazione della prossimità dell'immagine. Successivamente, viene calcolata una soglia alla quale le immagini vicine vengono considerate duplicate.

Il modello è in grado di scovare abilmente gli spammer che fotografano specificamente lo stesso prodotto da diverse angolazioni per aggirare il confronto pHash.

Come moderiamo gli annunciCome moderiamo gli annunci
Un esempio di foto spam incollate insieme da una rete neurale come duplicati.

Nella fase finale, gli annunci duplicati vengono ricercati simultaneamente sia per testo che per immagine.

Se due o più annunci vengono raggruppati insieme in un cluster, il sistema avvia un blocco automatico che, utilizzando determinati algoritmi, seleziona quali duplicati eliminare e quali lasciare. Ad esempio, se due utenti hanno le stesse foto in un annuncio, il sistema bloccherà l'annuncio più recente.

Una volta creati, tutti i cluster passano attraverso una serie di filtri automatici. Ogni filtro assegna un punteggio al cluster: quanto è probabile che contenga la minaccia identificata da questo filtro.

Ad esempio, il sistema analizza la descrizione di un annuncio e seleziona le potenziali categorie per esso. Quindi prende quello con la massima probabilità e lo confronta con la categoria specificata dall'autore dell'annuncio. Se non corrispondono, l'annuncio viene bloccato per la categoria sbagliata. E poiché siamo gentili e onesti, diciamo direttamente all'utente quale categoria deve selezionare affinché l'annuncio superi la moderazione.

Come moderiamo gli annunci
Notifica di blocco per categoria errata.

L'apprendimento automatico si sente come a casa nella nostra piattaforma. Ad esempio, con il suo aiuto cerchiamo nomi e descrizioni di merci vietate nella Federazione Russa. E i modelli di rete neurale “esaminano” meticolosamente le immagini per vedere se contengono URL, testi di spam, numeri di telefono e le stesse informazioni “proibite”.

Per i casi in cui si tenta di vendere un prodotto proibito mascherato da qualcosa di legale e non è presente testo né nel titolo né nella descrizione, utilizziamo il tagging delle immagini. Per ogni immagine si possono aggiungere fino a 11mila tag diversi che descrivono cosa c'è nell'immagine.

Come moderiamo gli annunci
Stanno cercando di vendere il narghilè camuffandolo da samovar.

Parallelamente ai filtri complessi, funzionano anche quelli semplici, risolvendo evidenti problemi legati al testo:

  • antimat;
  • Rilevatore di URL e numero di telefono;
  • menzione di messaggistica istantanea e altri contatti;
  • prezzo ridotto;
  • annunci pubblicitari in cui non c'è nulla in vendita, ecc.

Oggi ogni annuncio passa attraverso un setaccio di oltre 50 filtri automatici che cercano di trovare qualcosa di brutto nell'annuncio.

Se nessuno dei rilevatori ha funzionato, viene inviata una risposta a Yula che l'annuncio è "molto probabilmente" in perfetto ordine. Usiamo noi stessi questa risposta e gli utenti che si sono iscritti al venditore ricevono una notifica sulla disponibilità di un nuovo prodotto.

Come moderiamo gli annunci
Notifica che il venditore ha un nuovo prodotto.

Di conseguenza, ogni annuncio è "ricoperto" di metadati, alcuni dei quali vengono generati al momento della creazione dell'annuncio (indirizzo IP dell'autore, agente utente, piattaforma, geolocalizzazione, ecc.), mentre il resto è il punteggio emesso da ciascun filtro. .

Code di annunci

Quando un annuncio arriva sulla piattaforma, il sistema lo inserisce in una delle code. Ogni coda viene creata utilizzando una formula matematica che combina i metadati degli annunci in modo da rilevare eventuali modelli errati.

Ad esempio, puoi creare una coda di annunci nella categoria "Cellulari" di utenti Yula presumibilmente di San Pietroburgo, ma i loro indirizzi IP provengono da Mosca o da altre città.

Come moderiamo gli annunci
Un esempio di annunci pubblicati da un utente in diverse città.

Oppure puoi formare delle code in base ai punteggi che la rete neurale assegna agli annunci, disponendole in ordine decrescente.

Ogni coda, secondo la propria formula, assegna un punteggio finale all'annuncio. Successivamente si può procedere in diversi modi:

  • specificare la soglia alla quale un annuncio riceverà un determinato tipo di blocco;
  • inviare tutti gli annunci in coda ai moderatori per la revisione manuale;
  • oppure combina le opzioni precedenti: specifica la soglia di blocco automatico e invia ai moderatori gli annunci che non hanno raggiunto questa soglia.

Come moderiamo gli annunci

Perché sono necessarie queste code? Supponiamo che un utente abbia caricato la foto di un'arma da fuoco. La rete neurale gli assegna un punteggio da 95 a 100 e determina con una precisione del 99% che nell'immagine c'è un'arma. Ma se il valore del punteggio è inferiore al 95%, la precisione del modello inizia a diminuire (questa è una caratteristica dei modelli di reti neurali).

Di conseguenza, viene formata una coda in base al modello di punteggio e gli annunci ricevuti tra 95 e 100 vengono automaticamente bloccati come "Prodotti vietati". Gli annunci con un punteggio inferiore a 95 vengono inviati ai moderatori per l'elaborazione manuale.

Come moderiamo gli annunci
Beretta al cioccolato con cartucce. Solo per moderazione manuale! 🙂

Moderazione manuale

All'inizio del 2019, circa il 94% di tutti gli annunci pubblicitari su Yula sono moderati automaticamente.

Come moderiamo gli annunci

Se la piattaforma non può decidere su alcuni annunci, li invia alla moderazione manuale. Odnoklassniki ha sviluppato il proprio strumento: i compiti per i moderatori mostrano immediatamente tutte le informazioni necessarie per prendere una decisione rapida: l'annuncio è adatto o dovrebbe essere bloccato, indicando il motivo.

E affinché la qualità del servizio non venga compromessa dalla moderazione manuale, il lavoro delle persone viene costantemente monitorato. Ad esempio, nel flusso di attività, al moderatore vengono mostrate "trappole", annunci per i quali esistono già soluzioni già pronte. Se la decisione del moderatore non coincide con quella finale, al moderatore viene segnalato un errore.

In media, un moderatore impiega 10 secondi a controllare un annuncio. Inoltre, il numero di errori non supera lo 0,5% di tutti gli annunci verificati.

La moderazione popolare

I colleghi di Odnoklassniki sono andati ancora oltre e hanno approfittato dell '"aiuto del pubblico": hanno scritto un'applicazione di gioco per il social network in cui è possibile contrassegnare rapidamente una grande quantità di dati, evidenziando qualche brutto segno - Moderatore Odnoklassniki (https://ok.ru/app/moderator). Un buon modo per sfruttare l'aiuto degli utenti OK che stanno cercando di rendere i contenuti più divertenti.

Come moderiamo gli annunci
Un gioco in cui gli utenti taggano le foto su cui è riportato un numero di telefono.

Qualsiasi coda di annunci nella piattaforma può essere reindirizzata al gioco Moderatore Odnoklassniki. Tutto ciò che gli utenti del gioco contrassegnano viene quindi inviato ai moderatori interni per la verifica. Questo schema ti consente di bloccare gli annunci per i quali non sono ancora stati creati filtri e contemporaneamente creare campioni di formazione.

Memorizzazione dei risultati della moderazione

Salviamo tutte le decisioni prese durante la moderazione in modo da non rielaborare quegli annunci su cui abbiamo già preso una decisione.

Ogni giorno vengono creati milioni di cluster basati sulla pubblicità. Nel corso del tempo, ogni cluster viene etichettato come "buono" o "cattivo". Ogni nuovo annuncio o sua revisione, entrando in un cluster contrassegnato, riceve automaticamente una risoluzione dal cluster stesso. Esistono circa 20mila risoluzioni automatiche di questo tipo al giorno.

Come moderiamo gli annunci

Se al cluster non arrivano nuovi annunci, questo viene rimosso dalla memoria e il suo hash e la soluzione vengono scritti su Apache Cassandra.

Quando la piattaforma riceve un nuovo annuncio, cerca innanzitutto di trovare un cluster simile tra quelli già creati e trarne una soluzione. Se non esiste un cluster di questo tipo, la piattaforma va a Cassandra e guarda lì. L'hai trovato? Ottimo, applica la soluzione al cluster e la invia a Yula. Ogni giorno si contano in media 70mila decisioni “ripetute”, ovvero l’8% del totale.

Riassumendo

Utilizziamo la piattaforma di moderazione Odnoklassniki da due anni e mezzo. I risultati ci piacciono:

  • Moderiamo automaticamente il 94% di tutti gli annunci al giorno.
  • Il costo per moderare un annuncio è stato ridotto da 2 rubli a 7 centesimi.
  • Grazie allo strumento già pronto, ci siamo dimenticati dei problemi legati alla gestione dei moderatori.
  • Abbiamo aumentato il numero di annunci elaborati manualmente di 2,5 volte con lo stesso numero di moderatori e budget. Anche la qualità della moderazione manuale è aumentata grazie al controllo automatizzato e oscilla intorno allo 0,5% degli errori.
  • Copriamo rapidamente nuovi tipi di spam con filtri.
  • Colleghiamo rapidamente nuovi dipartimenti con moderazione "Verticali di Yula". Dal 2017, Yula ha aggiunto i verticali Immobiliare, Offerte di lavoro e Auto.

Fonte: habr.com

Aggiungi un commento