Opinion spam: un nuovo algoritmo becca le recensioni false

Alla recente conferenza WWW tenutasi a fine aprile sono state presentate, come ogni anno, una nutrita serie di documenti e studi che proponevano nuove metodologie per meglio comprendere e analizzare il web.

Opinion spammingUna parte delle paper presentate alle conferenze WWW riguardano spesso nuovi algoritmi per classificare informazioni, fare il ranking di risorse o individuare lo spam. In altre parole, algoritmi di information retrieval, la disciplina su cui si basa la tecnologia dei motori di ricerca.

Leggere i documenti presentati ad ogni conferenza è un buon modo per capire di che cosa sono teoricamente capaci gli ingegneri dei motori di ricerca o di altri servizi web che gestiscono grandi quantità di dati. Io ritengo che le informazioni acquisite leggendo questi documenti siano molto più significative di quelle che si acquisiscono leggendo i brevetti degli algoritmi di Google.

Quest’anno, un documento in particolare ha attratto la mia attenzione e vi linko anche il PDF: “Spotting Fake Reviewer Groups in Consumer Reviews“.

Si tratta di una nuova metodologia chiamata GSRank, nata per individuare attività di opinion spamming e in particolare gruppi di recensori falsi tra quelli veri e genuini che scrivono recensioni o opinioni sui portali di prodotti o servizi.

Il documento non è scritto in inglese molto scorrevole e rutta anche un po’ di matematica; il presente articolo ha l’obiettivo spiegarvi questa nuova metodologia in modo che chiunque possa capirla.

Teoria e pratica

Se non conoscete bene le conferenze dedicate all’information retrieval, dovete innanzitutto sapere che esse sono sostanzialmente uno “sfoggio di tecnologia” da parte di diversi ricercatori.

Tanti ricercatori vanno a queste conferenze per mostrare nuove metodologie per risolvere diverse classi di problemi, quello dell’opinion spam è solo uno dei tanti.

In altre parole sono raduni ai quali i nerd vanno a fare i fighi. Nessuno li biasima per questo, c’è chi si sfoga ai rave party e c’è chi gode mostrando al mondo quanto ha grosso il cervello.

Tuttavia bisogna fare attenzione: i nuovi algoritmi e le nuove metodologie illustrate sono spesso studi teorici e non c’è garanzia che i metodi spiegati siano già stati implementati da qualche azienda o che verranno implementati in futuro da qualcuno.

Quindi considerate l’algoritmo che sto per spiegarvi né più e né meno di “ciò che è teoricamente possibile fare“.

Introduzione all’opinion spamming

Come lo stesso documento spiega, i fenomeni di creazione di recensioni e opinioni false di prodotti o servizi sono aumentati considerevolmente negli ultimi anno perché tale attività genera indirettamente profitto.

La creazione di recensioni false, positive o negative che siano, modifica la percezione di un prodotto, servizio o marchio agli occhi degli utenti, col risultato di far propendere potenziali acquirenti verso una soluzione piuttosto che un’altra.

Come in tutti i contesti in cui è possibile creare valore, sono anche nate aziende e servizi che producono recensioni false per conto terzi, incrementando ulteriormente la vastità del fenomeno, che ormai ha assunto connotazioni industriali.

Finora gli approcci seguiti per individuare le recensioni false si son basati sostanzialmente sulla valutazione di singole recensioni e recensori, in cerca di elementi e segnali che potevano essere testimonianza di attività spammose.

GSRank, al contrario, utilizza un approccio molto diverso da quelli già esistenti, un approccio che garantisce risultati anti spam molto maggiori.

Peculiarità di GSRank

La principale caratteristica peculiare di GSRank è che non ha lo scopo di individuare recensioni false bensì ha l’obiettivo di individuare gruppi di recensori falsi.

Per “gruppo di recensori” non si intende necessariamente un gruppo di persone diverse ma, più generalmente, un insieme di ID (identificatori) utente di un sito web o servizio (es: EBay, Trip Advisor, ecc.). Dietro un gruppo di diversi ID utente poi ci può essere una singola persona fisica, un gruppo di persone o persino un software: per GSRank questo è del tutto irrilevante.

Per quanto possa sembrare strano, vien fuori che l’individuazione di interi gruppi di recensori farlocchi è più semplice dell’individuazione delle recensioni false.

Il nuovo algoritmo quindi parte dallo studio di un contesto più ampio, quello dei gruppi, e si basa sull’assunto (che il documento poi dimostra essere corretto) che un gruppo di utenti falsi e con uno specifico obiettivo mostra delle differenze rispetto al comportamento di un gruppo formato da utenti reali.

Esistono altre caratteristiche di GSRank che è importante evidenziare:

  • Nel documento si fa un esempio specifico sulla recensione di prodotti ma GSRank è in realtà applicabile a qualsiasi generico contesto in cui gruppi di utenti forniscono opinioni su qualcosa, quindi anche recensioni di esercizi commerciali
  • GSRank individua gruppi di utenti falsi a prescindere che essi siano creati/gestiti dal medesimo soggetto; l’algoritmo considera “gruppo” un qualsiasi insieme di utenti anche se i suoi componenti sono gestiti da spammer diversi
  • L’algoritmo è un grado di considerare appartenenti ad un gruppo anche quegli utenti che hanno prodotto recensioni (o dato voti) in momenti diversi e distanti tra loro
  • E’ indifferente se un gruppo ha l’obiettivo di migliorare la percezione di un oggetto/soggetto o di peggiorarla: l’algoritmo identifica un gruppo in funzione di quanto i comportamenti dei suoi membri si discostano dai comportamenti degli utenti che non vi appartengono

In quest’ultima affermazione risiede la particolarità dell’algoritmo e la ragione del perché si è dimostrato molto superiore rispetto a quanto finora esisteva: per definizione, un gruppo di utenti falsi ha un obiettivo da raggiungere e le attività svolte dal gruppo per raggiungere l’obiettivo sono ciò che lo differenzia da un generico gruppo di utenti che quell’obiettivo non ce l’ha.

Come funziona per sommicapi

Preso in esempio un ambiente contenente un insieme di recensioni e di recensori, GSRank studia l’intero scenario definendo tre elementi chiave del sistema: recensori, gruppi di recensori e prodotti/servizi recensiti.

Successivamente definisce un modello in base al quale queste tre diverse entità interagiscono tra loro, cioè cosa ciascuna di queste tre entità può raccontare delle altre due.

L’algoritmo stabilisce poi quali segnali possono essere indice di “spammosità” per un singolo recensore o per un gruppo di questi.

Infine, viene computata la spammosità finale di ciascun gruppo calcolando non solo quella diretta, cioè osservabile dai segnali di spammosità di un gruppo, ma sopratutto quella indiretta, inferita da quanto spammosi sono i singoli utenti del gruppo e quanto oggetto di spam sono i servizi o prodotto spammati dal gruppo stesso.

La spammosità di un gruppo che viene raccontata/rivelata dagli altri due elementi chiave del sistema rappresenta la principale peculiarità del nuovo algoritmo e la ragione per la quale le sue prestazioni sono superiori a quelle degli altri algoritmi finora esistenti.

I gruppi di utenti

L’algoritmo ha lo scopo di analizzare una comunità di utenti nel tentativo di individuare gruppi di essi che, quando vengono considerati assieme, mostrano comportamenti che deviano da quelli mostrati da un gruppo di utenti selezionati a caso.

Per ottenere questo risultato, GSRank prende in considerazione tutti i possibili gruppi di due o più persone che esistono all’interno della comunità di utenti da analizzare. Siccome l’algoritmo non ha idea di chi siano i recensori falsi, valuta tutte le combinazioni di gruppi possibili!

Combinazioni gruppiNell’immagine che allego vengono mostrati tutti i gruppi composti da due o più utenti estratti da una popolazione composta da cinque individui (A, B, C, D, E). Solo cinque individui producono 25 gruppi diversi da prendere in considerazione, se si esclude il gruppo di cinque elementi composto dall’intera popolazione.

Con popolazioni molto più grandi, come si può immaginare, la quantità di combinazioni sale in modo vertiginoso e i gruppi da prendere in considerazione diventano tantissimi.

Queste quantità sono però facilmente gestibili per quelle aziende che possiedono capacità di calcolo consistenti, come lo sono presumibilmente tutte quelle che sono proprietarie di grandi portali e siti che ospitano recensioni da parte di un vasto pubblico.

Tre elementi chiave

GSRank definisce tre entità:

  • i prodotti o servizi recensiti
  • i gruppi di utenti presi in considerazione dall’algoritmo
  • i singoli membri che compongono i gruppi

La forza dell’algoritmo risiede nel fatto che ciascuno di questi elementi è fortemente correlato agli altri due e che i fenomeni che emergono su una di queste tre entità forniscono informazioni importanti sulle altre entità rimanenti: per esempio valutando un prodotto o servizio recensito è possibile ottenere informazioni sia sui gruppi di utenti che lo hanno recensito sia sui singoli membri di tali gruppi.

Il concetto di spammosità

Relazioni in GSRankL’algoritmo sfrutta la stretta relazione esistente tra le tre entità sopra descritte per stabilire quanto un gruppo di utenti è spammoso, quanto un singolo utente è spammoso e quanto un prodotto/servizio è soggetto ad attività di spam da parte dei recensori.

Sono costretto a semplificare di molto i criteri descritti nel documento e le esatte relazioni che sono state stabilite tra le tre diverse entità, tuttavia i concetti di base che è importante memorizzare sono riassumibili come segue:

Un prodotto è considerato più soggetto a spam a seconda di:

  • quanto è stato spammato dai gruppi di utenti che lo hanno recensito
  • quanto ciascun gruppo che lo ha recensito è spammoso

Un gruppo è considerato più spammoso a seconda di:

  • quanto ha collettivamente contribuito a spammare prodotti diversi
  • quanto ciascun suo membro ha contribuito a spammare prodotti diversi
  • quanto tali prodotti sono globalmente oggetto di spam

Un singolo utente è considerato più spammoso a seconda di:

  • quanto sono spammosi i gruppi a cui appartiene
  • quanto oggetto di spam sono i prodotti che ha recensito

A questo punto, dando un’occhiata alle relazioni, si noterà che la definizione di spammosità per una delle tre entità dipende sempre dalla spammosità delle altre due entità rimanenti. “A” dipende da “B”, che dipende da “C” che a sua volta dipende da “A”. Come si esce da questo circolo vizioso per determinare chi è più spammoso di altri?

Fortunatamente esiste il modo di uscire da questo genere di logiche ricorsive, dove ogni elemento viene definito come dipendente dagli altri. Non è necessario scendere nei particolari di implementazione tecnici, fidatevi e sappiate che l’obiettivo è raggiungibile.

(chi ha letto almeno una volta la formula del PageRank dovrebbe provare una sensazione di deja vu, in quanto il valore di PageRank di una risorsa dipende sempre dal valore di PageRank delle risorse che lo linkano; ecco, il contesto e la metodologia per uscire fuori dalla ricorsività è simile)

Indicatori di spammosità per gruppi e individui

Per capire quanto il grado di spammosità di ciascun dei tre elementi influisce sugli altri due è comunque necessario partire da una base dati di partenza.

GSRank quindi definisce un elenco di segnali che evidenzierebbero un comportamento spammoso da parte di un gruppo ed un secondo elenco di simili segnali che evidenzierebbero un comportamento spammoso da parte di un singolo recensore.

Elencherò di seguito l’elenco di indicatori definiti dall’algoritmo. Per ciascuno di essi il documento fornisce la formula matematica usata, che io non riporterò. Descriverò invece gli intenti e la logica dietro ad ogni indicatore di spammosità.

Cesareone scrive il 17 May 2012 at 20:45

Dico solo Grazie!! E tu sai…

  • salvatore scrive il 3 June 2012 at 15:42

    Argomento attualissimo e di grande interesse! Se è vero che riesce a cogliere in fallo gli spammer che utilizzato template di scrittura più o meno fissi (più o meno come fanno gli article spinner), rimane nonostante tutto il problema delle recensioni false scritte da utenti singoli pagati su Fiverr e simili. Quello secondo me è un vero e proprio malcostume difficile da estirpare, e certamente è già qualcosa che esista un procedimento di questo tipo: mi auguro che sia implementato nella pratica e non resti su carta. Ciao, Salvatore

    • LowLevel scrive il 3 June 2012 at 16:01

      @Salvatore: l’aspetto interessante di questo nuovo algoritmo è proprio quello che il contenuto delle recensioni è relativo e rappresenta una parte minima della soluzione trovata. La tecnica di individuazione del gruppo è basata principalmente su caratteristiche comuni ai suoi membri che vanno al di là del testo della recensione; le recensioni potrebbero anche essere prive di testo e l’algoritmo avrebbe altri fattori sui quali basarsi per prendere una decisione.

  • Leave a Reply

    Your email address will not be published. Required fields are marked *

    More in Science
    Il formato WebP di Google e il movimento anti-JPEG

    Nota: questo post è un esercizio per spiegare concetti complessi con parole semplici. Nella sua crociata per velocizzare il Web,...

    Close