Article de revue

Collecte ciblée à partir de flux de données en ligne dans les médias sociaux

Une approche de bandit contextuel

Pages 11 à 30

Citer cet article


  • Gisselbrecht, T.,
  • Lamprier, S.
  • et Gallinari, P.
(2016). Collecte ciblée à partir de flux de données en ligne dans les médias sociaux Une approche de bandit contextuel. Document numérique, . 19(2), 11-30. https://stm.cairn.info/revue-document-numerique-2016-2-page-11?lang=fr.

  • Gisselbrecht, Thibault.,
  • et al.
« Collecte ciblée à partir de flux de données en ligne dans les médias sociaux : Une approche de bandit contextuel ». Document numérique, 2016/2-3 Vol. 19, 2016. p.11-30. CAIRN.INFO, stm.cairn.info/revue-document-numerique-2016-2-page-11?lang=fr.

  • GISSELBRECHT, Thibault,
  • LAMPRIER, Sylvain
  • et GALLINARI, Patrick,
2016. Collecte ciblée à partir de flux de données en ligne dans les médias sociaux Une approche de bandit contextuel. Document numérique, 2016/2-3 Vol. 19, p.11-30. URL : https://stm.cairn.info/revue-document-numerique-2016-2-page-11?lang=fr.

Notes

  • [1]
    er f–1 est la fonction erreur inverse, Description de l'image par IA : e r f parenthèse gauche x parenthèse droite égale 2 divisé par pi intégrale indice inférieur 0 indice supérieur x position de base e exposant négatif t au carré position de base d en normal x.

1 – Introduction

1Au cours des dernières années, de nombreux réseaux sociaux permettant aux utilisateurs de publier et de partager du contenu en ligne ont fait leur apparition. Par exemple Twitter, avec 302 millions d’utilisateurs actifs et plus de 500 millions de messages chaque jour, est l’un des principaux acteurs du marché. Ces médias sociaux sont devenus une source de données très importante pour de nombreuses applications. Étant donné un besoin prédéfini, deux solutions sont habituellement disponibles pour collecter des données à partir de ces médias : 1) avoir accès à de grandes bases de données ou 2) utiliser les services de streaming que la plupart des médias proposent et qui permettent le suivi en temps réel de l’activité de leurs utilisateurs. Tandis que la première solution implique généralement des coûts très importants, la seconde constitue une alternative moins onéreuse. Toutefois, cela implique d’être en mesure de choisir efficacement quels flux de données sont les plus pertinents. Dans cet article, nous considérons des flux de données centrés sur les utilisateurs, chaque flux fournissant l’accès aux données publiées par un utilisateur particulier, avec des contraintes restrictives liées au nombre de flux pouvant être considérés simultanément (5000 sur Twitter). Étant donné le grand nombre d’utilisateurs (302 millions sur Twitter), le ciblage des sources pertinentes représente un effort non négligeable.

2Imaginons une personne intéressée par l’informatique et souhaitant rester informée des dernières nouvelles relayées par les utilisateurs en relation avec ce sujet. Une solution consiste à sélectionner manuellement un ensemble de comptes et suivre leur activité au cours du temps. Cependant, Twitter est connu pour être extrêmement dynamique et pour une raison ou une autre, des utilisateurs pourraient se mettre à poster sur ce sujet tandis que d’autres pourraient cesser à tout moment. Donc, si l’utilisateur intéressé veut être à jour, il devrait changer le sous-ensemble des comptes suivis dynamiquement, son but étant d’anticiper les utilisateurs qui sont les plus susceptibles de produire des contenus pertinents dans un futur proche. Cette tâche semble toutefois difficile à exécuter manuellement pour deux raisons majeures. Tout d’abord, les critères choisis pour prédire si un compte sera potentiellement intéressant dans un futur proche peuvent être difficiles à définir. Deuxièmement, même si nous étions en mesure de définir manuellement ces critères, la quantité de données à analyser serait trop grande pour pouvoir réaliser cette sélection dans un temps raisonnable.

3Au vu de ces difficultés, nous proposons une solution qui, à chaque itération du processus, sélectionne automatiquement un sous-ensemble de comptes qui sont susceptibles d’être pertinents dans la fenêtre de temps suivante, en fonction de leur activité actuelle. Ces comptes sont ensuite suivis pendant un certain temps et les contenus publiés correspondants sont évalués - par l’utilisateur ou par un classifieur - afin de quantifier leur pertinence. L’algorithme derrière le système apprend alors une politique visant à améliorer la sélection à l’étape d’après. Nous abordons cette tâche comme un problème de bandit contextuel, dans lequel à chaque étape, l’algorithme choisit une action parmi un plus grand ensemble d’actions disponibles, sur la base des observations des caractéristiques de chaque action - le contexte de l’action - et reçoit une récompense qui quantifie la qualité de l’action choisie. Dans notre cas, étant donné que suivre une personne correspond à une action, plusieurs actions peuvent être sélectionnées à chaque pas de temps, car nous voulons utiliser la capacité maximale de capture autorisée par l’API de streaming.

4En définissant le contexte d’un utilisateur comme son activité présente, notre tâche s’inscrit bien le cadre du bandit contextuel. Cependant, dans son instance traditionnelle, le contexte de chaque action doit être observé à chaque itération afin d’effectuer les choix successifs et pour permettre l’apprentissage d’une politique. Dans notre cas, nous ne sommes pas en mesure d’observer l’activité présente de chaque utilisateur potentiel. Par conséquent, nous ne sommes pas en mesure d’obtenir tous les contextes et donc d’utiliser des algorithmes de bandits contextuels classiques tels que LinUCB (Chu et al., 2011). Par ailleurs, nous ne pouvons pas traiter cela comme un problème de bandit traditionnel (non-contextuel) puisque nous perdrions les informations utiles fournies par les contextes observés. A notre connaissance, cette instance hybride du problème de bandit n’a pas encore été étudiée. Pour résoudre ce problème, nous proposons un algorithme de capture de données qui, en plus d’apprendre une politique de sélections des k meilleurs flux à chaque itération, apprend sur les distributions des contextes eux-mêmes, afin d’être en mesure de faire des estimations lorsque ces derniers ne sont pas observés.

2 – État de l’art

5Le problème du bandit manchot, proposé dans (Lai, Robbins, 1985) sous sa forme stationnaire a été largement étudié dans la littérature. Dans sa première instance, l’agent n’a accès à aucune information relative aux actions disponibles, mais fait l’hypothèse de distributions stationnaires sur les récompenses de chaque action. Un grand nombre deméthodes ont été proposées pour définir des politiques de sélection efficace, avec les garanties théoriques de convergence correspondantes. Le célèbre algorithme UCB, initialement proposé dans (Auer et al., 2002), est basé sur la borne supérieure de l’intervalle de confiance des récompenses espérées pour chaque action disponible. Cet algorithme et ses très nombreuses variantes (Audibert et al., 2007 ; Audibert, Bubeck, 2009) se sont révélés très efficaces pour la résolution du problème du bandit stochastique.

6Dans (Chu et al., 2011) entre autres, les auteurs étudient le problème du bandit contextuel, dans lequel l’agent observe des attributs sur chaque action avant d’effectuer la sélection, et proposent l’algorithme LinUCB. Cet algorithme fait l’hypothèse que la récompense espérée d’une action est une fonction linéaire de ses attributs et de paramètres inconnus à estimer. Que ce soit pour le bandit stochastique ou contextuel, d’autres types de stratégies appelées Thompson Sampling ont été proposés (Agrawal, Goyal, 2012 ; Chapelle, Li, 2011). Plus récemment, le cas où il est possible de choisir plusieurs actions simultanément a été formalisé dans (Chen et al., 2013) (algorithme CUCB) et (Qin et al., 2014) (algorithme C2UCB) respectivement pour le cas non-contextuel et le cas contextuel.

7Concernant les médias sociaux, plusieurs tâches existantes présentent des similarités avec la nôtre. Dans (R. Li et al., 2013), les auteurs construisent une plate-forme appelée ATM qui vise à cibler automatiquement des tweets en rapport avec un certain sujet. Ils développent un algorithme qui sélectionne efficacement des mots-clés pour couvrir les tweets cibles. Dans notre cas, nous ne nous concentrons pas sur des mots clés, mais sur les profils des utilisateurs. Dans (Colbaugh, Glass, 2011), les auteurs modélisent la blogosphère comme un réseau où chaque nœud est considéré comme un flux de données pouvant être suivi. Leur objectif est d’identifier des blogs qui contiennent des contenus pertinents pour suivre les sujets émergents. Cependant, leur approche est statique et leur modèle est basé sur des données déjà collectées. Dans (Hannon et al., 2010), les auteurs construisent un système de recommandation appelé Twittomender, utilisant des méthodes de filtrage collaboratif pour trouver les comptes Twitter susceptibles d’intéresser un utilisateur cible. Les auteurs supposent la connaissance du graphe des followers/followees, ce qui est impossible pour les applications à grande échelle en raison des politiques de restriction de Twitter.

8Les algorithmes de bandit ont déjà été appliqués à diverses tâches liées aux réseaux sociaux. Par exemple, dans (Kohli et al., 2013), les auteurs traitent des tâches de minimisation d’abandon dans les systèmes de recommandation. Dans (Buccapatnam et al., 2014), les bandits sont utilisés pour la publicité en ligne tandis que dans (Lage et al., 2013), les auteurs utilisent un bandit contextuel pour une tâche de maximisation de l’audience. Dans (Gisselbrecht et al., 2015), une tâche de capture de données similaire est abordée via des algorithmes de bandits non contextuels. Dans ce cas, chaque utilisateur est supposé avoir une distribution stationnaire et le processus doit trouver des utilisateurs avec les meilleures moyennes en jouant sur l’exploitation des bonnes sources déjà connues et l’exploration des inconnues. Notre approche diffère de ce travail principalement par la considération d’une hypothèse de non stationnarité de l’utilité des différents utilisateurs. Nous considérons toutefois ce dernier dans nos expérimentations pour nous comparer.

3 – La sélection de flux de données

3.1 – Contexte

9Notre objectif est de construire un système permettant de capturer des données pertinentes à partir des API proposées par les médias sociaux. Étant donné que les API limitent généralement le nombre d’utilisateurs pouvant être suivis de façon simultanée, l’objectif est de sélectionner dynamiquement ceux qui sont susceptibles de publier des contenus pertinents relativement à un besoin prédéfini. Il est important de noter que, quand bien même il n’y aurait pas de telles restrictions, notre approche reste valide vu l’énorme quantité de données publiées. La principale difficulté est donc de sélectionner efficacement les comptes à suivre étant donné le grand nombre d’utilisateurs et sachant qu’au début du processus, aucune information sur ces derniers n’est connue. En outre, même si certains comptes spécifiques pourraient être trouvés manuellement, le changement dynamique des sources semble complexe à réaliser manuellement. Pour ces raisons, la construction d’une solution automatique pour orienter le choix des sources apparaît pertinente.

3.2 – Un processus de décision sous contraintes

10Notre tâche revient à sélectionner à chaque itération t un sous-ensemble Kt de k profils à suivre parmi l’ensemble de tous les utilisateurs Description de l'image par IA : K majuscule de ronde parenthèse gauche K majuscule de ronde indice t position de base sous ensemble ou égal à K majuscule de ronde parenthèse droite

, selon leur propension à poster des tweets pertinents. Etant donné un score ra,t associé au contenu produit par l’utilisateur a à l’étape t, le but est de sélectionner le sous-ensemble d’utilisateurs maximisant la somme des scores de pertinence :

11

Description de l'image par IA : maximum début souscript parenthèse gauche K majuscule de ronde indice t position de base parenthèse droite t égale 1 point point n fin scripts sommation début souscript t égale 1 début suscript n fin scripts sommation début souscript a appartient à K majuscule de ronde indice t position de base fin scripts r indice a virgule t position de base parenthèse gauche 1 parenthèse droite

12Notons que, contrairement à la majorité des tâches classiques en recherche information, nous ne nous préoccupons pas ici de la précision des informations collectées. L’objectif est de maximiser le volume de messages pertinents collectés, un filtrage pouvant être éventuellement appliqué a posteriori. Cet aspect diffère des tâches habituelles en recherche d’information. Les scores de pertinence considérés dépendent d’un besoin d’information, défini par l’utilisateur du système, pouvant prendre des formes variées. Par exemple, l’utilisateur pourrait souhaiter suivre des profils actifs sur des thématiques précises, ou bien des profils influents (au sens où leurs messages sont souvent repostés par d’autres utilisateurs). Ces scores peuvent soit être assignés manuellement, relativement à une évaluation humaine des contenus, ou bien automatiquement, par exemple à l’aide d’un classifieur (voir section 5). Dans (Gisselbrecht et al., 2015) les auteurs se basent sur une hypothèse de stationnarité des scores associés à chaque utilisateur, ce qui parait une hypothèse peu réaliste sur des réseaux sociaux généralistes tels que Twitter, où les utilisateurs peuvent changer de centre d’intérêt à tout moment. Nous supposons ici qu’il est possible de mieux anticiper le comportement futur des utilisateurs (i.e. les contenus futurs) en considérant leur activité présente (i.e. les contenus déjà postés). En d’autres termes, si l’on représente l’activité de l’utilisateur a au temps t – 1 par un vecteur za,t ∈ ℝd, il existe une fonction h : ℝd → ℝ permettant d’expliquer le score de a au temps t. Cette fonction de corrélation doit être apprise au fur et à mesure du processus de décision. Cependant, la maximisation de la fonction définie dans la formule 1 est contrainte par différents facteurs :

  • les scores de pertinences ra,t sont seulement définis pour les utilisateurs suivis à l’itération t (i.e. pour les aKt) ;
  • les vecteurs de contextes za,t sont seulement observés pour un sous-ensemble Ot des utilisateurs (i.e. il est impossible d’observer la totalité de l’activité du réseau).

13Ces contraintes proviennent des restrictions liées aux API de streaming que nous utilisons pour la collecte des données :

  • d’une part, une API Sample streaming, qui renvoie en temps réel 1 % de tous les tweets publics. Nous utilisons cette API pour découvrir de nouveaux utilisateurs mais aussi pour récolter les contextes (activités) d’un grand nombre d’utilisateurs actifs à un moment donné ;
  • d’autre part, une API Follow streaming, qui permet d’obtenir en temps réel les contenus produits par 5000 utilisateurs définis. Nous utilisons cette API pour capturer les données produites par les utilisateurs sélectionnés par notre système.

14Pour les profils appartenant à Ot, les scores de pertinences peuvent être estimés grâce à la fonction de corrélation h, qui traduit les variations temporelles de la qualité d’un utilisateur. En revanche, pour les autres, nous proposons de considérer le cas stationnaire, en introduisant une tendance générale (ou qualité intrinsèque) pour chaque utilisateur. Nous sommes alors face à un problème hybride, où les contextes observés sont utilisés pour prédire des variations autour d’une utilité moyenne estimée.

3.3 – Description du système

15La figure 1 illustre le fonctionnement général du système. Ce dernier réitère les mêmes actions à chacune des itérations (trois itérations sont représentées). Au début de chaque étape, la politique de sélection des sources choisit un ensemble d’utilisateurs à suivre (Kt) parmi tous les utilisateurs connus du système (K), selon des observations et des connaissances fournies par un module d’apprentissage. Ensuite, les messages postés par les k profils sélectionnés sont collectés via l’API Follow streaming. Comme nous pouvons le voir dans la partie centrale du schéma, après avoir suivi les utilisateurs de Kt pendant l’itération courante t, les messages collectés sont analysés (soit par un humain, soit automatiquement) et le résultat - traduisant la pertinence - est renvoyé au module d’apprentissage. En parallèle, à chaque itération, l’activité courante de certains utilisateurs est capturée par l’API Sample streaming. Cela nous offre la possibilité d’enrichir la base des utilisateurs potentiels K, mais aussi de construire l’ensemble des utilisateurs dont on connaît le contexte. Chaque profil ayant publié au moins un message parmi ceux qui ont été collecté via l’API Sample streaming à l’étape t sont inclus dans Ot+1, les messages d’un même auteur a étant concaténés pour former za,t+1 (voir la partie 5 pour des exemples de construction de vecteurs de contexte à partir des messages). À cet ensemble sont ajoutés les utilisateurs de Kt, puisque leur activité complète a été suivie pendant l’étape t.

Figure 1

Illustration du système

Description de l'image par IA : Schéma montrant l'algorithme d'apprentissage avec sélection de politique et apprentissage par renforcement sur plusieurs itérations.

Illustration du système

4 – Modèle et algorithme

4.1 – Une approche de bandit contextuel

16Dans le problème du bandit contextuel, l’hypothèse classique considère l’existence d’un vecteur inconnu β ∈ ℝd permettant d’estimer l’espérance de récompense que l’on peut observer pour chaque action et à chaque itération du processus : Description de l'image par IA : pour tous t appartient à début ensemble 1 virgule point point virgule T majuscule fin ensemble virgule pour tous a appartient à pour tous suscrire t avec tilde appartient à E majuscule ajouré crochet gauche r indice a virgule t position de base barre verticale z indice a virgule t position de base crochet droit égale z indice a virgule t exposant T majuscule position de base bêta

(Agrawal, Goyal, 2013). Dans notre cas, afin de modéliser la qualité intrinsèque de chaque action (une action correspondant à la sélection d’un utilisateur), nous introduisons également un terme de biais θa ∈ ℝ pour chaque action a. Ainsi, sur les T itérations de notre processus de collecte :

17

Description de l'image par IA : pour tous t appartient à début ensemble 1 virgule point point virgule T majuscule fin ensemble virgule pour tous a appartient à K majuscule de ronde deux points E majuscule ajouré crochet gauche r indice a virgule t position de base barre verticale z indice a virgule t position de base crochet droit égale z indice a virgule t exposant T majuscule position de base bêta thêta indice a position de base

18Cette formulation correspond à un cas particulier de l’algorithme LinUCB hybride proposé dans (L. Li et al., 2010) en considérant une valeur de 1 pour la valeur du contexte propre à chaque action. Il est important de noter que plusieurs paramètres individuels auraient pu être considérés dans notre étude, cependant cette approche ne nous semble pas adaptée étant donné le nombre très élevé d’actions disponibles (qui mènerait à un apprentissage d’autant plus complexe). D’autre part, l’utilisation d’un vecteur de paramètres commun permet une exploration facilitée, cela permettant la généralisation de corrélations observées pour des utilisateurs à l’ensemble des utilisateurs à l’activité courante proche. Ainsi, nous restreignons la modélisation individuelle à un terme unique de biais. Comme précisé plus haut, notre tâche nécessite la sélection de multiples actions simultanément et donc à chaque itération t, l’algorithme doit sélectionner k (k < K) utilisateurs parmi un ensemble de K, selon les contextes observés et les qualités intrinsèques de ces derniers. Le gain obtenu après une période d’écoute correspond donc à la somme des gains individuels. Dans notre cas, une difficulté majeure provient du fait que tous les contextes ne sont pas observables, contrairement aux problèmes de bandits contextuels traditionnels. Dans la suite de ce travail, nous considérons pour chaque utilisateur une probabilité pa (0 < pa < 1) de révéler son contexte. Notons que cette probabilité est contrainte par le problème considéré. Il s’agit alors de choisir à chaque itération t les k meilleurs utilisateurs à suivre parmi les K utilisateurs de Description de l'image par IA : K majuscule de ronde égale O majuscule de ronde indice t position de base union O majuscule de ronde indice t

, avec Description de l'image par IA : suscrire O majuscule de ronde avec macron indice t l’ensemble des utilisateurs pour lesquels on ne connaît pas le contexte pour l’étape t. La prochaine sous-section concerne le cas où l’on observe le contexte de tous les utilisateurs, la sous-section suivante étendant ce travail pour la prise en compte des utilisateurs de Ot. Enfin, cette section se termine par une description de l’algorithme de collecte global.

4.2 – Une approche contextuelle pour la collecte de données dynamique

19Afin de dériver notre algorithme de collecte, nous considérons les hypothèses suivantes :

  • Vraisemblance : les scores de récompense sont identiquement et indépendamment distribués selon les contextes observés : Description de l'image par IA : r indice a virgule t position de base opérateur tilde N majuscule de ronde parenthèse gauche z indice a virgule t exposant T majuscule position de base bêta thêta indice a position de base virgule lambda indice a position de base parenthèse droite, avec λa correspondant à la variance de l’écart entre la récompense ra,t et l’application linéaire de prédiction Description de l'image par IA : z indice a virgule t exposant T majuscule position de base bêta thêta indice a ;
  • Prior : les paramètres inconnus sont normalement distribués autour de l’origine : Description de l'image par IA : bêta opérateur tilde N majuscule de ronde parenthèse gauche 0 virgule b I majuscule ajouré indice d position de base parenthèse droite et Description de l'image par IA : thêta indice a position de base opérateur tilde N majuscule de ronde parenthèse gauche 0 virgule rhô indice a position de base parenthèse droite, où b et ρa permettent de contrôler la variance des paramètres et Description de l'image par IA : d est la matrice identité de taille d (taille des vecteurs de contexte).

20L’idée est alors de construire un estimateur des paramètres β et θ par maximum a posteriori connaissant les récompenses collectées, et les contextes associés, jusqu’à l’itération courante. Pour simplifier, nous fixons b, ρa et λa à 1 pour tout a. Cependant, tous les résultats peuvent être étendus à des cas plus complexes.

21Proposition 1. — En notant Ta l’ensemble des itérations où a a été choisi durant les n premières étapes Description de l'image par IA : parenthèse gauche T majuscule indice a position de base égale début ensemble t plus petit ou égal à n virgule a appartient à K majuscule de ronde indice t position de base fin ensemble virgule début valeur absolue T majuscule indice a position de base fin valeur absolue égale tau indice a position de base parenthèse droite

, ca le vecteur de récompenses obtenues par a lorsqu’il a été écouté Description de l'image par IA : parenthèse gauche c indice a position de base égale parenthèse gauche r indice a virgule t position de base parenthèse droite indice t appartient à T majuscule sub-indice a sub position de base parenthèse droite et Da la matrice des contextes associée à Description de l'image par IA : a parenthèse gauche D majuscule indice a position de base égale parenthèse gauche z indice a virgule t exposant T majuscule position de base parenthèse droite indice t appartient à T majuscule sub-indice a sub position de base parenthèse droite, la distribution a posteriori de β et θa après n étapes, lorsque tous les contextes sont disponibles, est donnée par :

22

Description de l'image par IA :

23Preuve 2. — Voir Annexe A.

24Notons que tous ces paramètres possèdent une dépendance en t, que nous avons volontairement omise afin d’alléger les notations. De plus tous ces paramètres peuvent être mis à jour de façon peu coûteuse à mesure que de nouveaux exemples d’apprentissage arrivent (la complexité de la mise à jour des paramètres est constante sur l’ensemble du processus). En combinant les équations 2, 3 et 4, la valeur espérée Description de l'image par IA : E majuscule ajouré crochet gauche r indice a virgule t position de base barre verticale z indice a virgule t position de base crochet droit

, de la récompense de l’utilisateur a à l’itération t sachant son contexte za,t, suit la distribution postérieure :

25

Description de l'image par IA : N majuscule de ronde parenthèse gauche suscrire mû avec macron indice a position de base parenthèse gauche z indice a virgule t position de base moins suscrire z avec macron indice a position de base parenthèse droite exposant T majuscule position de base suscrire bêta avec macron virgule début fraction 1 sur tau indice a position de base 1 fin fraction parenthèse gauche z indice a virgule t position de base moins suscrire z avec macron indice a position de base parenthèse droite exposant T majuscule position de base A majuscule indice 0 exposant négatif 1 position de base parenthèse gauche z indice a virgule t position de base moins suscrire z avec macron indice a position de base parenthèse droite parenthèse droite parenthèse gauche 5 parenthèse droite

26Théorème 3. — Pour tout 0 < δ < 1 et Description de l'image par IA : z indice a virgule t position de base appartient à R majuscule ajouré exposant d

, en notant Description de l'image par IA : alpha égale début racine carrée 2 fin racine carrée e r f exposant négatif 1 position de base parenthèse gauche 1 moins delta parenthèse droite[1], pour chaque action a, après t itérations :

27

Description de l'image par IA :

28Preuve 4. — Voir Annexe B.

29Cette formule peut directement être utilisée pour définir une borne supérieure de l’intervalle de confiance (UCB - Upper Confidence Bound) de la récompense espérée pour chaque utilisateur dont le contexte a été observé pour l’itération t :

30

Description de l'image par IA : s indice a virgule t position de base égale suscrire mû avec macron indice a position de base parenthèse gauche z indice a virgule t position de base moins suscrire z avec macron indice a position de base parenthèse droite exposant T majuscule position de base suscrire bêta avec macron alpha sigma indice a position de base parenthèse gauche 7 parenthèse droite

31De manière classique, les approches type UCB étant des approches optimistes, l’idée est alors de sélectionner à chaque instant t les k utilisateurs ayant les k bornes sa,t les plus élevées. Nous rappelons qu’une formulation similaire est utilisée dans le bandit contextuel traditionnel. Dans la partie suivante, nous proposons une méthode permettant d’adapter cette dernière au cas où l’on ne peut pas observer tous les contextes.

4.3 – Prise en compte des utilisateurs avec contexte caché

32Ces scores permettant de sélectionner les utilisateurs à écouter ne peuvent pas être calculés lorsque les contextes za,t ne sont pas observés (i.e. lorsque les utilisateurs ne sont pas dans Ot). Cela nécessite donc une méthode permettant de qualifier les personnes dont le contexte est inconnu. De plus, cela implique des problématiques de mise à jour des paramètres appris lorsqu’un utilisateur a été écouté mais dont le contexte n’a pas été révélé. Bien qu’il soit tentant de penser que le paramètre β commun à tous et les paramètres individuels θa peuvent être appris séparément, ces derniers sont en réalité corrélés, comme le montrent les formules 3 et 4. Il est important de remarquer que pour conserver les garanties probabilistes, les paramètres du problème ne devraient être mis à jour que lorsqu’un profil appartient à KtOt. Remplacer Ta par Description de l'image par IA : T majuscule indice a exposant b o t h position de base égale début ensemble t plus petit ou égal à n virgule a appartient à K majuscule de ronde indice t position de base intersection O majuscule de ronde indice t position de base fin ensemble

(nous conservons la notation Description de l'image par IA : début valeur absolue T majuscule indice a exposant b o t h position de base fin valeur absolue égale tau indice a), nous permet de réutiliser les formules de mise à jour des paramètres de la Proposition 1. Toutefois, le calcul du score de sélection d’un utilisateur dont le contexte est caché ne peut être effectué grâce à l’équation 7. Pour pallier à ce problème, nous proposons d’utiliser un estimateur de la distribution moyenne du vecteur de contexte de chaque profil.

33Nouvelles notations

  • L’ensemble des itérations où le contexte de a a été observé au bout de n étapes est noté Description de l'image par IA : T majuscule indice a exposant o b s position de base égale début ensemble t plus petit ou égal à n virgule a appartient à O majuscule de ronde indice t position de base fin ensemble avec Description de l'image par IA : début valeur absolue T majuscule indice a exposant o b s position de base fin valeur absolue égale n indice a ;
  • La moyenne empirique des vecteurs de contexte de l’utilisateur a est notéDescription de l'image par IA : suscrire z avec circonflexe indice a avec Description de l'image par IA : suscrire z avec circonflexe indice a position de base égale 1 divisé par n indice a position de base sommation début souscript t appartient à T majuscule indice a exposant o b s position de base fin scripts z indice a virgule t. Remarquons que Description de l'image par IA : suscrire z avec circonflexe indice a est différent de Description de l'image par IA : suscrire z avec macron indice a car le premier est mis à jour à chaque fois que le contexte est observé tandis que le second l’est uniquement lorsque l’utilisateur a été observé et sélectionné lors d’une même itération.

34Hypothèses supplémentaires

  • Sans perte de généralité, nous supposons que β est borné par M ∈ ℝ+∗, i.e. ||β|| ≤ M, où || || désigne la norme L2 sur ℝd ;
  • Pour tout a et à chaque t, les contextes za,t ∈ ℝd sont iid depuis une distribution inconnue de moyenne Description de l'image par IA : E majuscule ajouré crochet gauche z indice a position de base crochet droit et variance Σa finie, et que Tracea) ≤ S, avec S ∈ ℝ+∗.

35Théorème 5. — Étant donné 0 < δ < 1, 0 < δ1 < 1. Alors pour tout a après t itérations du processus :

36

Description de l'image par IA :

37 Description de l'image par IA : alpha égale début racine carrée 2 fin racine carrée e r f exposant négatif 1 position de base parenthèse gauche 1 moins delta parenthèse droite

et Description de l'image par IA : alpha indice 1 position de base égale M majuscule début racine carrée début fraction d S majuscule sur delta indice 1 position de base fin fraction fin racine carrée point.

38Preuve 6. — Voir Annexe C.

39Ainsi, l’inégalité ci-dessus nous donne une borne relativement serrée de l’intervalle de confiance associé à la récompense espérée de l’utilisateur a, d’où nous pouvons dériver un nouveau score de sélection. À chaque itération t, si le contexte de a n’est pas observé :

40

Description de l'image par IA : s indice a virgule t position de base égale suscrire mû avec macron indice a position de base parenthèse gauche suscrire z indice a position de base avec circonflexe moins suscrire z indice a position de base avec macron parenthèse droite exposant T majuscule position de base suscrire bêta avec macron alpha suscrire sigma avec circonflexe indice a position de base début fraction alpha indice 1 position de base sur n indice a exposant 1 divisé par 2 position de base fin fraction parenthèse gauche 9 parenthèse droite

41Notons que le terme d’exploration supplémentaire Description de l'image par IA : début fraction 1 sur n indice a exposant 1 divisé par 2 position de base fin fraction

tend vers 0 à mesure que le nombre d’observations de a augmente, et le score tend donc vers un score LinUCB classique (comme dans l’équation 7) dans lequel le contexte est remplacé par sa moyenne empirique Description de l'image par IA : suscrire z avec circonflexe indice a. Finalement, comme chaque utilisateur a une probabilité 0 < pa < 1 de révéler son contexte à chaque temps t, nous pouvons affirmer que Description de l'image par IA : début fraction 1 sur n indice a exposant 1 divisé par 2 position de base fin fraction tend vers 0 lorsque t augmente.

4.4 – Algorithme de capture de connées contextuel

42Les ensembles et paramètres manipulés sont tout d’abord initialisés :

  • A0 par une matrice identité de taille d × d et b0 par un vecteur nul de taille d, avec d la taille des vecteurs de contexte ;
  • K par l’ensemble vide ;
  • O1 par les utilisateurs auteurs de messages collectés au cours d’une première utilisation de l’API Sample pendant une période de temps d’une durée L. La représentation des messages de ces utilisateurs aO1 correspondent à leur contexte za,1.

43L’algorithme complet est disponible en Annexe D, il procède, pour chaque itération t de la collecte selon :

  1. Insertion dans K de chaque utilisateur de Ot n’en faisant pas encore partie (en limitant le nombre de nouveau entrants à newMax utilisateurs par itération afin d’éviter une sur-exploration pour le cas des très grands réseaux tels que Twitter) ;
  2. Mise à jour des moyennes empiriques des contextes Description de l'image par IA : suscrire z avec circonflexe indice a pour les profils de Ot ;
  3. Calcul de l’estimateur du paramètre Description de l'image par IA : suscrire bêta avec macron (voir proposition 1) ;
  4. Calcul des scores de sélection sa,t de tous les utilisateurs dans K, selon la formule 7 pour les utilisateurs de Ot et selon la formule 9 ceux de Description de l'image par IA : suscrire O majuscule de ronde avec macron indice t. Le score des nouveaux utilisateurs est fixé à +∞ pour forcer le système à les choisir une première fois ;
  5. Sélection des k profils ayant les meilleurs scores sa,t ;
  6. Capture simultanée via les APIs Sample et Follow pendant une période de durée L. L’API Follow écoute les k utilisateurs sélectionnés Kt ;
  7. Calcul des récompenses des messages collectés pour les utilisateurs de Kt à partir de l’API Follow, puis mise à jour des paramètres du modèle ;
  8. Mise à jour de l’ensemble des utilisateurs observés Ot+1, et des contextes associés, en considérant tous les utilisateurs pour lesquels au moins un message a été collecté pendant l’itération t (provenant soit de l’API Sample soit de l’API Follow) ;

5 – Expérimentations

5.1 – Description générale

44Outre une politique (appelée Random) sélectionnant uniformément les utilisateurs à suivre à chaque itération, nous comparons notre approche de collecte à deux autres algorithmes de bandits : CUCB et CUCBV respectivement proposés dans (Qin et al., 2014) et (Gisselbrecht et al., 2015). Ces algorithmes ne prennent pas en compte les contextes des actions. Dans toutes nos expérimentations, nous fixons les paramètres suivants : 1) Le terme d’exploration à α = 1, 96, ce qui correspond à un intervalle de confiance à 95 % pour l’estimation de l’espérance de la récompense d’une action lorsque son contexte est observé ; 2) Le nombre d’utilisateurs pouvant être ajoutés à K à chaque itération à newMax = 200.

5.2 – Expérimentations hors ligne

45Deux jeux de données sont utilisés pour nos expérimentations hors ligne :

  1. USElections : jeu de données de 2 148 651 messages collectés pendant les dix jours précédents les élections présidentielles américaines de 2012. Ces messages correspondent à la totalité de ceux postés pendant cette période par les 5 000 premiers utilisateurs à avoir utilisé les mots “Obama”, “Romney” ou “#USElections” ;
  2. Libya : jeu de données de 1 211 475 messages provenant de 17 341 utilisateurs. Ces messages correspondent à l’ensemble de ceux postés sur une période de trois mois contenant le mot clé “Libya”.

46Modèle de contexte : dans nos expérimentations, nous considérons que le contexte za,t d’un utilisateur a pour une itération t correspond à une représentation de la concaténation des messages collectés pour cet utilisateur pendant l’étape t − 1 selon l’une des deux APIs. Plutôt que d’utiliser directement une représentation fréquentielle en sac de mots, ce qui impliquerait de très longs vecteurs de contextes et un coût important lié à l’inversion des matrices requise lors de la mise à jour des paramètres, nous appliquons une réduction de dimensions à un espace de 30 concepts par l’emploi de l’algorithme LDA (Blei et al., 2003). Outre une réduction de la complexité, l’utilisation de cet algorithme permet une meilleure généralisation des observations en regroupant sous un même concept des mots sémantiquement proches.

47Modèle de récompense : nous nous intéressons à des modèles de collecte visant à récompenser les messages ayant un fort impact sur une thématique donnée. Quatre thématiques sont considérées (correspondant à 4 différents modèles de récompense) : politique, religion, sport et science. L’appartenance à l’une de ces 4 thématiques se fait par l’application d’un classifieur linéaire entraîné sur le corpus 20 Newsgroups. Ainsi, si un message correspond à la classe de la thématique recherchée, le score de récompense qui y est associé est alors égal au nombre de fois où ce message est reposté (retweeté sur Twitter) par d’autres utilisateurs pendant l’itération courante.

48Afin d’obtenir des résultats généralisables, nous avons expérimenté plusieurs configurations de collecte en considérant plusieurs valeurs pour p, la probabilité d’observation des contextes, k, le nombre d’utilisateurs pouvant être suivis simultanément, et L, la durée d’une itération. Plus précisément nous avons testé toutes les combinaisons possibles avec p ∈ {0, 1 ; 0, 5 ; 1}, k ∈ {50 ; 100 ; 150} et L ∈ {2 ; 3 ; 6 ; 10} minutes. Néanmoins, pour des raisons de places, nous reportons seulement les résultats pour k = 100, L = 2. De la même façon, pour le jeu de données USElections, seule les expérimentations considérant le modèle de récompense centré sur la classe politique sont reportées, tandis que pour le jeu de données Libya, seul celui centré sur la classe religion l’est. Des tendances similaires ont été observées pour les autres configurations et modèles de récompense.

49Résultats : les figures 2a et 2b représentent le gain cumulé en fonction du temps respectivement pour USElections et Libya. Tout d’abord, nous remarquons que chaque politique fonctionne mieux que la politique Random, ce qui est un premier élément pour affirmer la pertinence des algorithmes de bandit pour la tâche en question. Nous notons également que CUCBV fonctionne mieux que CUCB, ce qui confirme les résultats obtenus dans (Gisselbrecht et al., 2015) sur une tâche similaire de capture de données ciblée. Plus intéressant, lorsque chaque contexte est observable (p = 1), notre algorithme contextuel fonctionne mieux que les approches CUCB et CUCBV. Ce résultat montre que nous sommes en mesure de mieux anticiper les utilisateurs qui vont être les plus pertinents à l’étape suivante, compte tenu de ce qu’ils ont dit juste avant. Cela confirme aussi le comportement non-stationnaire des utilisateurs. Par exemple, les utilisateurs peuvent parler de science au cours de la journée tout en étant plus axé sur le sport quand ils reviennent à la maison. Considérer les contextes permet également de converger plus rapidement vers les utilisateurs intéressants puisque tous les comptes partagent le même paramètre β. En outre, les résultats montrent que, même pour de faibles probabilités d’observation des contextes p, notre politique contextuelle se comporte beaucoup mieux que les approches non-contextuelles, ce qui valide empiriquement notre approche : il est possible de tirer parti de l’information contextuelle, même si une grande partie de cette information est cachée. En particulier, pour le jeu de données Libya où aucune différence significative entre les deux algorithmes CUCB et CUCBV n’est remarquable, notre algorithme semble plus approprié. En donnant la possibilité de sélectionner des utilisateurs même si leur contexte est inconnu, nous permettons à l’algorithme de compléter sa sélection en choisissant les utilisateurs dont le contexte moyen correspond à un profil appris. Si aucun utilisateur dans Ot ne semble actuellement pertinent, l’algorithme peut alors compter sur les utilisateurs avec une bonne qualité intrinsèque moyenne. Numériquement pour k = 100, le nombre moyen d’utilisateurs sélectionnés pour lesquels le contexte a été observé à chaque pas de temps est de 43 pour p = 0, 1 et 58 pour p = 0, 5, ce qui confirme que l’utilisation de contextes intéressants lorsque ceux-ci sont disponibles, tout en conservant une probabilité de sélection non négligeable pour les utilisateurs de qualité dont le contexte n’est pas connu.

5.3 – Expérience en ligne

50Nous considérons notre tâche de collecte dans une expérimentation en ligne sur Twitter prenant en compte l’ensemble du réseau social ainsi que les contraintes de l’API. Pour ces expériences, nous avons utilisé tout le potentiel de l’API Twitter, à savoir 1 % de tous les tweets publics pour l’API Sample, qui s’exécute en arrière-plan, et 5 000 utilisateurs suivis simultanément (k = 5000) pour l’API Follow. À chaque itération, les utilisateurs sélectionnés sont suivis pendant L = 15 minutes. Compte tenu des restrictions de Twitter, chaque expérience nécessite un compte développeur, ce qui limite le nombre de politiques que nous pouvons tester en parallèle. Nous avons choisi de tester les quatre stratégies suivantes : notre approche contextuelle, CUCBV, Random et une autre appelée Static, qui suit les mêmes 5 000 comptes, sélectionnés a priori, à chaque étape du processus. Les 5 000 comptes suivis par l’approche Static ont été choisis en sélectionnant les 5 000 utilisateurs ayant cumulé le plus fort volume de récompenses selon les messages collectés par l’API Sample sur une période de 24 heures. Pour information, certains comptes célèbres tels que @dailytelegraph, @Independent ou @CNBC en faisaient partie.

51Résultats : la figure 2c représente l’évolution du gain cumulé sur deux semaines pour les quatre algorithmes. On remarque le très bon comportement de notre algorithme dans un scénario réel, car la somme des récompenses qu’il accumule croît beaucoup plus rapidement que celle des autres politiques, surtout après les 500 premières itérations. Après ces premières itérations, notre algorithme semble avoir acquis une bonne connaissance sur les distributions de récompenses en fonction des contextes observés sur les différents utilisateurs du réseau. Afin d’analyser le comportement des politiques expérimentées pendant les premières itérations, nous représentons aussi dans la figure 2d un zoom des mêmes courbes sur les 150 premiers pas de temps. Au début, la politique Static est plus performante que toutes les autres, ce qui peut s’expliquer par deux raisons : 1) les algorithmes de bandits utilisés ont besoin de sélectionner tous les utilisateurs au moins une fois pour initialiser les scores et 2) les utilisateurs faisant partie de l’ensemble Static sont supposés être des sources relativement pertinentes étant donné la façon dont ils ont été choisis. Vers l’itération 80, aussi bien l’algorithme CUCBV que l’algorithme contextuel deviennent meilleurs que Static, ce qui correspond au moment où ils commencent à pouvoir exploiter des “bonnes” actions identifiées. Ensuite, une période d’environ 60 itérations est observée (approximativement entre les itérations 80 et 140), au cours de laquelle l’algorithme CUCBV et notre approche contextuelle ont des performances comparables. Cette période s’explique par le fait que notre approche nécessite un certain nombre d’itérations pour apprendre des corrélations efficaces entre contextes et récompenses afin d’en tirer avantage. Enfin, après cette période d’initialisation, on peut remarquer un changement significatif de pente pour la courbe correspondant à notre algorithme, ce qui souligne sa faculté à être bien plus réactif dans un environnement dynamique.

Figure 2
Description de l'image par IA : Quatre graphiques montrant la récompense cumulative sur le temps pour différentes expériences et contextes.
Récompense cumulée en fonction du temps. (a) USElections/politique. (b) Libya/religion. (c) expérience en ligne. (d) expérience en ligne avec un zoom sur les premiers pas de temps

6 – Conclusion

52Nous avons formalisé une tâche de collecte de données sur les réseaux sociaux comme une instance spécifique du problème de bandit contextuel, dans laquelle, en raison des restrictions imposées par les médias sociaux, seule une partie des contextes est observable à chaque itération. Pour résoudre cette tâche, nous avons proposé une adaptation de l’algorithme de bandit contextuel LinUCB lorsque certains contextes sont cachés. Bien qu’aucune borne supérieure sous-linéaire sur le regret ne puisse être atteinte, en raison de la grande incertitude induite par les contextes cachés, notre algorithme offre de bons résultats pour la collecte de données, même lorsque la proportion de contextes cachés est élevée. Cela permet en outre d’envisager son application à bien d’autres tâches, pour lesquelles des contraintes restreignent l’observation des contextes associés aux actions disponibles.

Remerciements

Ce travail a été effectué dans le cadre des recherches menées au sein de l’IRT SystemX et a ainsi bénéficié d’une aide de l’Etat au titre du programme d’Investissements d’Avenir, ainsi que dans le cadre du projet LUXIDX du dispositif RAPID du fond de compétitivité des entreprises.

Annexe A

Preuve de la proposition 1

53On note Description de l'image par IA : D majuscule égale parenthèse gauche parenthèse gauche r indice a sub-indice 1 sub virgule 1 position de base virgule z indice a sub-indice 1 sub virgule 1 position de base parenthèse droite virgule point point point parenthèse gauche r indice a sub-indice n sub virgule n position de base virgule z indice a sub-indice n sub virgule n position de base parenthèse droite parenthèse droite

l’ensemble des exemples d’apprentissage n. Ensuite, l’utilisation de la règle de Bayes donne :

54

Description de l'image par IA :

55Pour plus de clarté nous fixons b, ρa et λa à 1 pour tout a, ce qui conduit à :

56

Description de l'image par IA : p parenthèse gauche bêta virgule thêta indice 1 position de base point point point thêta indice K majuscule position de base barre verticale D majuscule parenthèse droite proportionnel à exponentielle parenthèse gauche négatif un-demi parenthèse gauche sommation début souscript t égale 1 début suscript n fin scripts parenthèse gauche r indice a sub-indice t sub virgule t position de base moins z indice a sub-indice t sub virgule t exposant T majuscule position de base bêta moins thêta indice a position de base parenthèse droite au carré bêta exposant T majuscule position de base bêta sommation début souscript a égale 1 début suscript K majuscule fin scripts thêta indice a exposant 2 position de base parenthèse droite parenthèse droite

57En notant Description de l'image par IA : T majuscule indice a position de base égale début ensemble t plus petit ou égal à n virgule a indice t position de base égale a fin ensemble

, on a :

58

Description de l'image par IA : p parenthèse gauche bêta virgule thêta indice 1 position de base point point point thêta indice K majuscule position de base barre verticale D majuscule parenthèse droite proportionnel à exponentielle parenthèse gauche négatif un-demi parenthèse gauche sommation début souscript a égale 1 début suscript K majuscule fin scripts sommation début souscript t appartient à T majuscule indice a position de base fin scripts parenthèse gauche r indice a virgule t position de base moins z indice a virgule t exposant T majuscule position de base bêta moins thêta indice a position de base parenthèse droite au carré bêta exposant T majuscule position de base bêta sommation début souscript a égale 1 début suscript K majuscule fin scripts thêta indice a exposant 2 position de base parenthèse droite parenthèse droite

59Ce qui donne : Description de l'image par IA : p parenthèse gauche bêta virgule thêta indice 1 position de base point point point thêta indice K majuscule position de base barre verticale D majuscule parenthèse droite

60

Description de l'image par IA : proportionnel à exponentielle parenthèse gauche négatif un-demi parenthèse gauche sommation début souscript a égale 1 début suscript K majuscule fin scripts parenthèse gauche c indice a position de base moins D majuscule indice a position de base bêta moins 1 en gras indice a position de base thêta indice a position de base parenthèse droite exposant T majuscule position de base parenthèse gauche c indice a position de base moins D majuscule indice a position de base bêta moins 1 en gras indice a position de base thêta indice a position de base parenthèse droite bêta exposant T majuscule position de base bêta sommation début souscript a égale 1 début suscript K majuscule fin scripts thêta indice a exposant 2 position de base parenthèse droite parenthèse droite

61Avec :

  • ca le vecteur de récompense a : ca = (ra,t) tTa
  • 1a un vecteur de 1 de dimension |Ta| = τa
  • Da la matrice des contextes de a lorsqu’il a été choisi : Da = (zTa,t)tTa

62Ainsi :

63

Description de l'image par IA : début tableau 1re rangée  p parenthèse gauche bêta virgule thêta indice 1 position de base point point point thêta indice K majuscule position de base barre verticale D majuscule parenthèse droite 2e rangée  proportionnel à exponentielle parenthèse gauche négatif un-demi parenthèse gauche sommation début souscript a égale 1 début suscript K majuscule fin scripts parenthèse gauche parenthèse gauche c indice a position de base moins D majuscule indice a position de base bêta moins 1 en gras indice a position de base thêta indice a position de base parenthèse droite exposant T majuscule position de base parenthèse gauche c indice a position de base moins D majuscule indice a position de base bêta moins 1 en gras indice a position de base thêta indice a position de base parenthèse droite thêta indice a exposant 2 position de base parenthèse droite bêta exposant T majuscule position de base bêta parenthèse droite parenthèse droite fin tableau

64

Description de l'image par IA :

65Avec : Description de l'image par IA : suscrire mû avec macron indice a position de base égale début fraction c indice a exposant T majuscule position de base 1 en gras indice a position de base sur tau indice a position de base 1 fin fraction virgule suscrire z avec macron indice a position de base égale début fraction D majuscule indice a exposant T majuscule position de base 1 en gras indice a position de base sur tau indice a position de base 1 fin fraction virgule suscrire Sigma majuscule en normal avec macron indice a position de base égale début fraction D majuscule indice a exposant T majuscule position de base D majuscule indice a position de base sur tau indice a position de base 1 fin fraction moins suscrire z avec macron indice a position de base suscrire z avec macron indice a exposant T majuscule

et Description de l'image par IA : suscrire xi avec macron indice a position de base égale début fraction c indice a exposant T majuscule position de base D majuscule indice a position de base sur tau indice a position de base 1 fin fraction moins suscrire mû avec macron indice a position de base suscrire z avec macron indice a exposant T majuscule

66Finalement, si l’on note : Description de l'image par IA : A majuscule indice 0 position de base égale sommation début souscript a égale 1 début suscript K majuscule fin scripts parenthèse gauche tau indice a position de base 1 parenthèse droite suscrire Sigma majuscule en normal avec macron indice a position de base I majuscule ajouré indice d position de base e en normal t en normal b indice 0 exposant T majuscule position de base égale sommation début souscript a égale 1 début suscript K majuscule fin scripts parenthèse gauche tau indice a position de base 1 parenthèse droite suscrire xi avec macron indice a

67On obtient :

68

Description de l'image par IA : début tableau 1re rangée  p parenthèse gauche bêta virgule thêta indice 1 position de base point point point thêta indice K majuscule position de base barre verticale D majuscule parenthèse droite 2e rangée  proportionnel à exponentielle parenthèse gauche négatif un-demi parenthèse gauche bêta exposant T majuscule position de base A majuscule indice 0 position de base bêta moins 2 b indice 0 exposant T majuscule position de base bêta sommation début souscript a égale 1 début suscript K majuscule fin scripts parenthèse gauche tau indice a position de base 1 parenthèse droite parenthèse gauche thêta indice a position de base suscrire z avec macron indice a exposant T majuscule position de base bêta moins suscrire mû avec macron indice a position de base parenthèse droite au carré parenthèse droite parenthèse droite 3e rangée  proportionnel à exponentielle parenthèse gauche négatif un-demi parenthèse gauche bêta moins A majuscule indice 0 exposant négatif 1 position de base b indice 0 exposant T majuscule position de base parenthèse droite exposant T majuscule position de base A majuscule indice 0 position de base parenthèse gauche bêta moins A majuscule indice 0 exposant négatif 1 position de base b indice 0 exposant T majuscule position de base parenthèse droite parenthèse droite produit début souscript a égale 1 début suscript K majuscule fin scripts exponentielle parenthèse gauche négatif début fraction tau indice a position de base 1 sur 2 fin fraction parenthèse gauche thêta indice a position de base suscrire z avec macron indice a exposant T majuscule position de base bêta moins suscrire mû avec macron indice a position de base parenthèse droite au carré parenthèse droite fin tableau

69Et les distributions a posteriori sont :

70

Description de l'image par IA : bêta opérateur tilde N majuscule de ronde parenthèse gauche suscrire bêta avec macron virgule A majuscule indice 0 exposant négatif 1 position de base parenthèse droite thêta indice a position de base suscrire z avec macron indice a exposant T majuscule position de base bêta opérateur tilde N majuscule de ronde parenthèse gauche suscrire mû avec macron indice a position de base virgule début fraction 1 sur tau indice a position de base 1 fin fraction parenthèse droite

71Avec Description de l'image par IA : suscrire bêta avec macron égale A majuscule indice 0 exposant négatif 1 position de base b indice 0 exposant T majuscule

Annexe B

Preuve du théorème 3

72Nous savons que : Description de l'image par IA : E majuscule ajouré crochet gauche r indice a virgule t position de base barre verticale z indice a virgule t position de base crochet droit égale z indice a virgule t exposant T majuscule position de base bêta thêta indice a position de base égale parenthèse gauche z indice a virgule t position de base moins suscrire z avec macron indice a position de base parenthèse droite exposant T majuscule position de base bêta thêta indice a position de base suscrire z avec macron indice a exposant T majuscule position de base bêta

.

73Donc Description de l'image par IA : E majuscule ajouré crochet gauche r indice a virgule t position de base barre verticale z indice a virgule t position de base crochet droit opérateur tilde N majuscule de ronde parenthèse gauche suscrire mû avec macron indice a position de base parenthèse gauche z indice a virgule t position de base moins suscrire z avec macron indice a position de base parenthèse droite exposant T majuscule position de base suscrire bêta avec macron virgule début fraction 1 sur tau indice a position de base 1 fin fraction parenthèse gauche z indice a virgule t position de base moins suscrire z avec macron indice a position de base parenthèse droite exposant T majuscule position de base A majuscule indice 0 exposant négatif 1 position de base parenthèse gauche z indice a virgule t position de base moins suscrire z avec macron indice a position de base parenthèse droite parenthèse droite

74Et en normalisant on a : Description de l'image par IA : X majuscule égale début fraction E majuscule ajouré crochet gauche r indice a virgule t position de base barre verticale z indice a virgule t position de base crochet droit moins suscrire mû avec macron indice a position de base moins parenthèse gauche z indice a virgule t position de base moins suscrire z avec macron indice a position de base parenthèse droite exposant T majuscule position de base suscrire bêta avec macron sur début racine carrée début fraction 1 sur tau indice a position de base 1 fin fraction parenthèse gauche z indice a virgule t position de base moins suscrire z avec macron indice a position de base parenthèse droite exposant T majuscule position de base A majuscule indice 0 exposant négatif 1 position de base parenthèse gauche z indice a virgule t position de base moins suscrire z avec macron indice a position de base parenthèse droite fin racine carrée fin fraction opérateur tilde N majuscule de ronde parenthèse gauche 0 virgule 1 parenthèse droite

75Donc : Description de l'image par IA : P majuscule parenthèse gauche début valeur absolue X majuscule fin valeur absolue plus petit ou égal à x parenthèse droite égale 2 Phi majuscule en normal parenthèse gauche x parenthèse droite moins 1 égale e r f parenthèse gauche début fraction x sur début racine carrée 2 fin racine carrée fin fraction parenthèse droite

76Où Φ(x) est la fonction de répartition d’une loi normale et er f est la fonction erreur. Donc : Description de l'image par IA : P majuscule parenthèse gauche début valeur absolue X majuscule fin valeur absolue inférieur à début racine carrée 2 fin racine carrée e r f exposant négatif 1 position de base parenthèse gauche 1 moins delta parenthèse droite parenthèse droite égale 1 moins delta

77Et finalement :

78

Description de l'image par IA : P majuscule parenthèse gauche début valeur absolue E majuscule ajouré crochet gauche r indice a virgule t position de base barre verticale z indice a virgule t position de base crochet droit moins suscrire mû avec macron indice a position de base moins parenthèse gauche z indice a virgule t position de base moins suscrire z avec macron indice a position de base parenthèse droite exposant T majuscule position de base suscrire bêta avec macron fin valeur absolue plus petit ou égal à alpha début racine carrée début fraction 1 sur tau indice a position de base 1 fin fraction parenthèse gauche z indice a virgule t position de base moins suscrire z avec macron indice a position de base parenthèse droite exposant T majuscule position de base A majuscule indice 0 exposant négatif 1 position de base parenthèse gauche z indice a virgule t position de base moins suscrire z avec macron indice a position de base parenthèse droite parenthèse droite fin racine carrée parenthèse droite

79

Description de l'image par IA : égale 1 moins delta virgule a en normal v en normal e en normal c en normal alpha égale 2 Phi majuscule en normal exposant négatif 1 position de base parenthèse gauche 1 moins delta parenthèse droite moins 1 point

Annexe C

Preuve du théorème 5

80On note Description de l'image par IA : X majuscule indice a position de base égale parenthèse gauche suscrire z indice a position de base avec circonflexe moins suscrire z indice a position de base avec macron parenthèse droite exposant T majuscule position de base bêta thêta indice a position de base suscrire z indice a position de base avec macron exposant T majuscule position de base bêta

.

81Comme Description de l'image par IA : bêta opérateur tilde N majuscule de ronde parenthèse gauche suscrire bêta avec macron virgule A majuscule indice 0 exposant négatif 1 position de base parenthèse droite e en normal t en normal thêta indice a position de base suscrire z avec macron indice a exposant T majuscule position de base bêta opérateur tilde N majuscule de ronde parenthèse gauche suscrire mû avec macron indice a position de base virgule début fraction 1 sur tau indice a position de base 1 fin fraction parenthèse droite

, nous avons :

82

Description de l'image par IA : X majuscule indice a position de base opérateur tilde N majuscule de ronde parenthèse gauche souscrire parenthèse gauche suscrire z indice a position de base avec circonflexe moins suscrire z indice a position de base avec macron parenthèse droite exposant T majuscule position de base suscrire bêta avec macron suscrire mû avec macron indice a position de base avec accolade inférieure début souscript m indice a position de base fin scripts virgule souscrire début fraction 1 sur tau indice a position de base 1 fin fraction parenthèse gauche suscrire z indice a position de base avec circonflexe moins suscrire z indice a position de base avec macron parenthèse droite exposant T majuscule position de base A majuscule indice 0 exposant négatif 1 position de base parenthèse gauche suscrire z indice a position de base avec circonflexe moins suscrire z indice a position de base avec macron parenthèse droite avec accolade inférieure début souscript sigma indice a exposant 2 position de base fin scripts parenthèse droite

83On remarque que Description de l'image par IA : début fraction X majuscule indice a position de base moins m indice a position de base sur sigma indice a position de base fin fraction opérateur tilde N majuscule de ronde parenthèse gauche 0 virgule 1 parenthèse droite

.

84En utilisant l’inégalité de Cauchy Schwarz :

85

Description de l'image par IA :

86D’une part, pour tout 0 < δ < 1, on a : Description de l'image par IA : P majuscule parenthèse gauche début valeur absolue X majuscule indice a position de base moins m indice a position de base fin valeur absolue plus petit ou égal à alpha sigma indice a position de base parenthèse droite égale 1 moins delta

87D’autre part, l’inégalité de Chebyshev montre que pour tout η > 0 :

88

Description de l'image par IA : P majuscule parenthèse gauche début valeur absolue fin valeur absolue E majuscule ajouré crochet gauche z indice a position de base crochet droit moins suscrire z indice a position de base avec circonflexe début valeur absolue fin valeur absolue plus grand ou égal à êta parenthèse droite plus petit ou égal à début fraction d sur n indice a position de base êta au carré fin fraction T majuscule r a c e parenthèse gauche Sigma majuscule en normal indice a position de base parenthèse droite

89Où l’on rappelle que na désigne le nombre de fois que le contexte de l’action a a été observé. Soit δ1 > 0, en prenant Description de l'image par IA : êta égale début racine carrée d début fraction T majuscule r a c e parenthèse gauche Sigma majuscule en normal indice a position de base parenthèse droite sur n indice a position de base delta indice 1 position de base fin fraction fin racine carrée

, il vient :

90

Description de l'image par IA : P majuscule parenthèse gauche début valeur absolue fin valeur absolue E majuscule ajouré crochet gauche z indice a position de base crochet droit moins suscrire z indice a position de base avec circonflexe début valeur absolue fin valeur absolue M majuscule plus grand ou égal à M majuscule début racine carrée d début fraction T majuscule r a c e parenthèse gauche Sigma majuscule en normal indice a position de base parenthèse droite sur n indice a position de base delta indice 1 position de base fin fraction fin racine carrée parenthèse droite plus petit ou égal à delta indice 1

91En utilisant la propriété de la borne uniforme et en notant on arrive a :

92

Description de l'image par IA : P majuscule parenthèse gauche début valeur absolue E majuscule ajouré crochet gauche r indice a position de base crochet droit moins m indice a position de base fin valeur absolue plus petit ou égal à alpha sigma indice a position de base M majuscule début racine carrée d début fraction T majuscule r a c e parenthèse gauche Sigma majuscule en normal indice a position de base parenthèse droite sur n indice a position de base delta indice 1 position de base fin fraction fin racine carrée parenthèse droite plus grand ou égal à 1 moins delta moins delta indice 1

93Ce qui conclut la preuve.

Annexe D

Détail de l’algorithme de proposé

94L’algorithme utilisé pour la capture de donnée est présenté ci-après :

Description de l'image par IA :

Bibliographie

  • Agrawal S., Goyal N. (2012). Analysis of thompson sampling for the multi-armed bandit problem. In Colt.
  • Agrawal S., Goyal N. (2013). Thompson sampling for contextual bandits with linear payoffs. ICML.
  • Audibert J.-Y., Bubeck S. (2009). Minimax policies for adversarial and stochastic bandits. In COLT.
  • Audibert J.-Y., Munos R., Szepesvari C. (2007). Tuning bandit algorithms in stochastic environments. In Alt.
  • Auer P., Cesa-Bianchi N., Fischer P. (2002). Finite-time analysis of the multiarmed bandit problem. Mach. Learn..
  • Blei D. M., Ng A. Y., Jordan M. I. (2003). Latent dirichlet allocation. J. Mach. Learn. Res..
  • Buccapatnam S., Eryilmaz A., Shroff N. B. (2014). Stochastic bandits with side observations on networks. In Sigmetrics.
  • Chapelle O., Li L. (2011). An empirical evaluation of thompson sampling. In Nips.
  • ChenW.,Wang Y., Yuan Y. (2013). Combinatorial multi-armed bandit : General framework and applications. In Icml. JMLR Workshop and Conference Proceedings.
  • Chu W., Li L., Reyzin L., Schapire R. E. (2011). Contextual bandits with linear payoff functions. In Aistats.
  • Colbaugh R., Glass K. (2011). Emerging topic detection for business intelligence via predictive analysis of’meme’ dynamics. In Aaai spring symposium : Ai for business agility.
  • Gisselbrecht T., Denoyer L., Gallinari P., Lamprier S. (2015). Whichstreams : A dynamic approach for focused data capture from large social media. In Icwsm.
  • Hannon J., Bennett M., Smyth B. (2010). Recommending twitter users to follow using content and collaborative filtering approaches. In Recsys.
  • Kohli P., Salek M., Stoddard G. (2013). A fast bandit algorithm for recommendation to users with heterogenous tastes. In Aaai.
  • Lage R., Denoyer L., Gallinari P., Dolog P. (2013). Choosing which message to publish on social networks : A contextual bandit approach. In Asonam.
  • Lai T., Robbins H. (1985). Asymptotically efficient adaptive allocation rules. Advances in Applied Mathematics, vol. 6, no 1, p. 4 - 22.
  • Li L., ChuW., Langford J., Schapire R. E. (2010). A contextual-bandit approach to personalized news article recommendation. In Www’10, p. 661–670.
  • Li R.,Wang S., Chang K. C.-C. (2013). Towards social data platform : Automatic topic-focused monitor for twitter stream. Proc. VLDB Endow..
  • Qin L., Chen S., Zhu X. (2014). Contextual combinatorial bandit and its application on diversified online recommendation. In Siam.

Mots-clés éditeurs : apprentissage statistique, bandit banchot, médias sociaux

Date de mise en ligne : 10/01/2017