We apologize for untranslated text, you can use the Google Translation button to get an automatic translation of the web page in the language of your choice.

Predictive Recommendation Plugin 1.1

Description

Ce module qui utilise l'outil libre PredictionIO pour permettre une sélection intelligente des contenus à recommander à l'utilisateur.

Ce module est encore expérimental. Ne pas utiliser en production.

Ce module est développé par Benoît Moraillon de la Région Bretagne.

logo Region bretagne


Screenshots

1.

Installation

1. Introduction

Ce module fondé sur la technologie libre PredictionIO en version 0.8 permet de recommander des contenus aux utilisateurs en fonction de leur comportement passé sur le site.
PredictionIO est une technologie qui offre un service d'apprentissage automatique capable à partir de données comportementales de réaliser des prédictions ou d'établir des similarités. Dans un système de gestion de contenus, ce service peut notamment permettre de lutter contre l'infobésité et de solliciter intelligemment l'attention des utilisateurs.

2. Implémentation dans JCMS

Un agent spécifique JCMS Analytics transmet quotidiemment (à 00:30) les statistiques de consultations des contenus ainsi que les votes opérés sur les commentaires au serveur d'événements PredictionIO.
La configuration, sur ce dernier, d'un moteur de recommandation et d'un moteur de similarité, permet de proposer des propositions de contenus intelligentes soit sous la forme d'une portlet, soit sous la forme d'alertes transmises sur différents canaux (mail,sms,web...).
Ces propositions sont obtenues à l'aide de requêtes REST/JSON effectuées à partir de votre instance JCMS et à des destinations des moteurs PredictionIO.
Cliquer ici pour consulter le schéma de fonctionnement.

3. Installation

  1. Installer un serveur PredictionIO 0.8, pour cela il suffit de suivre la documentation consultable ici. Attention : lors du lancement du serveur d'événements, veillez à spécifier 0.0.0.0 comme ip de bind. Ceci se fait en paramétrant la commande de lancement comme ceci :

    $PIO_HOME/bin/pio eventserver --ip 0.0.0.0 --port 7070

    Vous devez pouvoir accéder depuis un navigateur à l'adresse http://votre-serveur-pio:7070 et obtenir le message suivant :

    { "status": "alive" }

  2. Installer ensuite le module "Predictive Recommendation Plugin" sur votre instance JCMS et paramétrer le module avec l'adresse de votre serveur d'événement comme suit :

    PIO App Id : id unique de l'application (exemple : 1)
    URL Event Server URL : http://votre-serveur-d-evenements-pio:7070

  3. Pour intégrer les statistiques des trois derniers mois, il suffit de lancer cette adresse dans votre navigateur :

    http://votre-instance-jcms/plugins/PredictiveRecommendationPlugin/jsp/runAgent.jsp

     

    Ensuite, les statistiques pertinentes sont automatiquement intégrées tous les soirs grâce à l'agent JCMS Analytics.

  4. Pour consulter les données transmises, utilisez cette adresse :

    http://votre-serveur-pio:7070/events.json?appId=votre-app-id

    Vous devez obtenir un écran similaire à celui présenté ci-dessous:

    <
    Résultat d'une requête au serveur d'événements PredictionIO

    D'autres requêtes sont possibles en spécifiant les paramètre entityType et entityId

    Exemple pour rechercher tous les membres intégrés dans PredictionIO :

    http://votre-serveur-pio:7070/events.json?appId=votre-app-id&entityType=pio_user

    Exemple pour rechercher tous les contenus intégrés dans PredictionIO :

    http://votre-serveur-pio:7070/events.json?appId=votre-app-id&entityType=pio_item

  5. Ceci fait, configurer un moteur de recommandation et un moteur de similarité au niveau de la machine qui héberge PredictionIO.

    Pour cela, suivez les documentations des moteurs de recommandations et de similarités.

    Le fonctionnement de ces moteurs est facilement paramétrable pour améliorer la pertinence des résultats. Par exemple, il est possible de privilégier les contenus les plus récents, ceux qui n'ont pas encore été vus par l'utilisateur concerné ou encore d'inclure une certain effet de surprise...

    Attention à spécifier les paramètres --ip 0.0.0.0 et -- port lors du déploiement de vos moteurs.

    A la fin, vos moteurs doivent être accessibles depuis un navigateur externe en tapant http://votre-serveur-prediction-io:8000 pour le moteur de recommandation et http://votre-serveur-prediction-io:9000 pour le moteur de similarité.

    L'écran ci-dessous montre les pages web d'accueil des moteurs :

    Accueil Web du moteur de recommandations
    Accueil Web du moteur de similarités

     

  6. Configurer ensuite les adresses internes des deux moteurs dans les propriétés du module côté JCMS :

    Recommendation Engine URL : http://votre-serveur-reco-pio:8000
    Similarity Engine URL : http://votre-serveur-simi-pio:7000

4. Utilisation

4.1 Côté recommandations

Deux mécanismes sont disponibles au sein du module pour suggérer des recommandations aux utilisateurs de votre site JCMS :

  • Porlet Predictive Recommendations : affiche 5 recommandations intelligentes de contenus obtenues directement à partir du moteur de recommandations PredictionIO via un appel REST/JSON.

     

    Pour utiliser cette portlet, il faut :
    1. Activer celle-ci dans l'administration de votre espace de travail.
    2. Ajouter une nouvelle boîte de type Porlet Predictive Recommendation à votre page portail.

    L'écran ci-dessous présente un exemple d'utilisation de cette Portlet :

    Utilisation de la Portlet PredictionIO au sein d'une page portail.

     

  • Alerte Predictive Recommendations : utilise le mécanisme d'alertes JCMS implémenté à la partir de la version 8 pour notifier l'utilisateur à heure convenue de 5 recommandations pertinentes.

     

    Pour activer cette alerte, il faut :
    1. Sélectionner Oui au niveau de la propriété "Activer les alertes ?" du module.
    2. Configurer le CRON d'exécution de l'alerte au niveau du fichier plugin.xml. Par défaut, l'alerte est expédiée à 08:00 chaque jour.

       

4.2 Côté similarités

Un pied de page (doSimilarityFooter.jsp) est disponible dans le module pour proposer 3 contenus ayant été jugés similaires Par PredictionIO au contenu visualisé par l'utilisateur.

Pour cela, le module définit la target DISPLAY_FOOTER pour permettre cette affichage automatique en mode FullDisplay.

Pour désactiver ce pied-de-page, il suffit de commenter la ligne suivante dans le fichier plugin.xml du module :

<file path="jsp/doSimilarityFooter.jsp" include="DISPLAY_FOOTER" />

5. Développements futurs

Le service PredictionIO va encore évoluer et notamment proposer prochainement une interface d'administration conviviale qui permettra de créer et de configurer les moteurs de recommandations ou de similarités sans avoir besoin de taper une quelconque ligne de commande.

Ce module évoluera prochainement pour prendre en compte cet aspect ainsi que les possibilités du moteur de ranking.


Information

Version
  • 1.1
Stability
  • Stable
Compatibility
  • JCMS 8
    JCMS 9
Certified by Jalios
  • No
Price
  • Module gratuit
Support
  • Non supporté
Author
  • Benoît Moraillon - Région Bretagne
License
  • LGPL
Size
  • 4.94 MB
Updated
  • 10/27/14
Download
  • 20