Teaching - PIAD/PING


PIAD/PING : Projet de M1/M2 dans la filière IAD

Review Spam Detection

Les principales ressources sont disponibles sur le site de Bing Liu: http://www.cs.uic.edu/~liub/FBS/fake-reviews.html

Afin d'avoir accès aux informations de base, il sera intéressant de lire le rapport de Qikai Gu lien.

Les spams sont difficiles à détecter, il faut mettre en place plusieurs approches en parallèle pour réussir:

  • détecter les revues qui apparaissent en double
  • détecter les arrivées massives de revues
  • détecter les changements importants dans la distribution des notes d'un produits
  • détecter les utilisateurs ayant des comportements suspects (notations extrêmes, en désaccord avec la distribution...)

Ressources

Travail à effectuer

Préliminaires

  • Télécharger des données de revues (B. Liu ou Leskovec ou autre)
  • Charger les données dans un tableau en lisant les fichiers
  • Réflexion sur l'architecture à utiliser pour développer les algorithmes

Algorithmes

  • Détection des doublons
  • Détection des arrivées massive de revues
  • Détection des auteurs et groupes d'auteurs suspects
  • Sur le contenu des messages: parmi les messages suspects, identifier des auteurs en utilisant des N-grams de mots
  • Développer des algorithmes avancés supervisés et non-supervisés pour l'amélioration de la détection, extraire des nouvelles caractéristiques.
  • Détecter les fraudes précoces

Mise en valeur des résultats

  • Comment développer un système de détection de la fraude à vendre à des professionnels?
    • API
    • Interfaçage avec une base SQL
    • ...
  • Développer une IHM pour présenter les résultats

Algorithme d'analyse de graphe

L'algorithme type pagerank est défini dans l'article suivant: http://www.cs.uic.edu/~gwang/papers/ICDM-2011-final.pdf

L'idée est de caractériser les différents éléments du graphe:

  • Les revues
    • doublons (=> spam)
    • revues proches des doublons
    • revues postées pendant un burst
    • revues présentant (ou pas) des méta-données (acheteur certifié, utilité du commentaire...)
  • Les utilisateurs
    • déviation moyenne par rapport aux produits notés
  • Les produits

De manière connexe, il peut être intéressant de caractériser le burst

  • durée
  • quantification de la déviation de la distribution de notes

Une fois les éléments notés, nous allons effectuer une diffusion de l'information de fiabilité

Auteur r

  • Score d'honnêteté de l'auteur r: H_r = \sum_{i=1}^{n_r} H(\alpha_r^i) avec:
    • H : fonction de mesure de l'honnêteté d'une revue
      • [OPT] prise en compte des critères ci-dessus
      • Formule de base donnée ci-dessous
    • \alpha_r^i i ème revue de l'auteur r
  • Score normalisé: T(r) = \frac{2}{1+\exp(-H_r)} -1

Revue v

  • Ecart dans une fenêtre de temps \delta_t pour un produit p: nombre de revues avec une note similaire - nombre de revues différentes

A_{\delta_t}(v) = \# \{i |\ |\psi_v - \psi_{v_i}| < \epsilon \} - \#\{i |\ |\psi_v - \psi_{v_i}| > \epsilon \}

  • \psi_v : note de la revue v
  • Score normalisé : H(v) = R(p) (\frac{2}{1-\exp(-A(v))}-1)
    • R(p) : score produit (ci-dessous)
  • Possibilité d'intégrer d'autres critères

Produit p

  • Pour chaque revue: confiance en l'auteur & écart à la moyenne des notes:

B(p) = \sum_i T(r_p^i) (\psi_{v_i} - \mu)

  • Normalisation : R(p) = \frac{2}{1-\exp(-B(p))}-1

Algorithme:

  • Initialisation
  • Mettre à jour H
  • mettre à jour T
  • mettre à jour R
  • Itérer le processus