Réseaux et hyper-réseaux

Ce joli tutoriel sur les premières étapes d’une construction de réseau bipartite avec R remarque que ce sont ces toutes premières étapes, où il faut penser en « listes » et en « matrices », qui sont les plus difficiles.

J’aimerais fournir un exemple de cette difficulté, qui me semble flagrante en sciences sociales où l’on se dispense généralement de réfléchir à la géométrie des données autrement que par la pratique1.

Hier, une étudiante me disait que l’exercice le plus compliqué du cours du semestre dernier était celui où il fallait trouver la manière la plus efficace de coder numériquement – dans une feuille de tableur, par exemple – le graphique suivant :

Heer et al.

Le graphique est un tableau qui représente les rencontres entre les personnages des Misérables : chaque fois qu’un personnage en a rencontré un autre, la case du graphique est colorée. L’auteur des données (qui fait par ailleurs partie du Panthéon de la science informatique pour ses recherches en algorithmique) n’a oublié que quelques relations.

Oubliez les couleurs différentes, car ce qui compte, comme l’indique Étienne dans son tutoriel, se trouve sur les bords du tableau. La caractéristique essentielle ici est que les colonnes et les lignes contiennent les mêmes noms : le réseau que contient ce tableau, qui va de personnage à personnage, est dit “unipartite” car il contient un seul type d’entité2.

Une fois converti en réseau, ce graphique donne l’équivalent de ce que vous pouvez obtenir en dessinant la “rosace” de vos amis Facebook, en les pointant sur un cercle et en les reliant par un arc à chaque fois qu’ils se connaissent aussi entre eux : un réseau d’interconnaissance où un seul type d’acteur apparaît. En voici un autre exemple :

Via The Monkey Cage.

Dans ce réseau unipartite, les liens vont de banque à banque, et dans les précédents, les liens allaient d’individu à individu. Mais ces représentations gomment les intermédiaires de ces relations : par quels ressources financières les banques établissent-elles ces liens ? dans quels bâtiments les individus se rencontrent-ils ?

Ces intermédiaires sont parfois pertinents pour l’analyse, et presque toujours pertinents pour l’exploration, ce qui demande d’introduire une entité supplémentaire dans les données. Dans un réseau bipartite ou “à deux modes”, les relations vont ainsi d’un type d’entité à un autre, établissant la jonction entre deux surfaces réticulaires.

Comme le signale Étienne, l’exemple classique de ce type de réseau est celui des réseaux d’affiliation entre des individus et des groupes, qui contiennent par exemple des artistes de hard rock et les groupes auxquels ils ont participé. Les couleurs distinguent les deux modes du réseau artiste-groupe :

Testament.BlackSabbath.small_

Le mode primaire d’un réseau social à deux modes est généralement un agent et le mode secondaire une structure, qui peut être de n’importe quelle nature : par exemple, en ce qui concerne les featurings dans le rap français, les artistes peuvent être liés par des albums solo, des compilations ou des groupes. L’application aux communautés en ligne est également aisée, comme dans l’exemple ci-dessous :

bipartite

On peut aller plus loin et introduire n types d’entités dans ce qu’on appellera alors un réseau k-partite, ou “hyper-réseau”, avec un mode primaire et tout plein de modes secondaires imbriqués les uns dans les autres. Pour illustrer cette catégorie, les réseaux sociaux qui utilisent des “tags” pour désigner leurs “ressources” (vidéos, liens, billets…) fournissent un bon exemple de réseau tripartite, représenté ici tout à droite :

Screen Shot 2014-03-21 at 11.22.10 AM

Les questions qui se posent dans cette configuration des données évoquent celle des structures multi-niveaux, où chaque niveau va obéir à ses propres règles de variabilité, croisée avec celles des réseaux, où chaque observation est structurellement dépendante d’une partie des autres, ce qui a pour effet de rendre inopérants les modèles homoscédastiques auxquels on est généralement habitué en sciences sociales3.

Ce croisement se modélise assez bien, même si les temps de calcul sont plutôt longs, car les matrices étudiées sont larges et que la simulation de données aléatoires dans des dimensions identiques aux données réelles y intervient à plusieurs reprises, généralement à plusieurs milliers d’occurrences. Ces problèmes se posent et se résolvent dans des termes analogues en dehors des sciences sociales proprement dites.

La manipulation de réseaux requiert ces différentes représentations spatiales, qui se traduisent fondamentalement par des listes et des matrices, et qui se prolongent ensuite dans des objets de type “réseau” : objets de classe igraph ou network dans R, fichiers GEXF manipulables avec Gephi, données aux format Pajek ou UCINET…

D’où l’utilité de ce qu’indique Étienne, et aussi de tout ce que Baptiste a pu raconter au fil de ses billets, sur les toutes premières étapes de construction de ces réseaux, car la chaîne des opérations qui suit est plus longue et plus complexe que pour l’analyse de données “plates”, comme les tableaux croisés, plus familières en sciences sociales, mais parfois moins efficaces pour se représenter une réalité intrinsèquement relationnelle à un degré élevé de granularité empirique4.

Il n’y a pas de révolution méthodologique associée à ces techniques de mesure et de visualisation, notamment parce que le reste des méthodes fonctionne plutôt bien au regard des objectifs interprétatifs que l’on se donne, mais les réseaux permettent d’alimenter les modèles avec des données plus proches de certaines représentations relationnelles de la réalité, ce dont on a assez régulièrement besoin en sociologie.

  1. La difficulté sous-jacente résidant dans la manipulation des arrays, celle-ci concerne aussi tout langage informatique qui peut manipuler des objets de taille supérieure à 1, donc pas de souci à se faire, on est bien sur un problème répandu et partagé. []
  2. Ce réseau est aussi très faiblement dense : il contient peu de relations par rapport à l’ensemble des relations possibles, représenté par l’intégralité des cases du tableau. Le codage le plus efficace pour ce graphique est une matrice creuse. Quelques étudiants sont intuitivement arrivés à ce résultat lorsque j’ai corrigé l’exercice en classe, mais la vaste majorité se demandait ce qu’on avait fumé. []
  3. Le format des enseignements de statistiques introductives encourage clairement à privilégier ces approches, probablement avec raison dans la mesure où tous les enseignements sur l’inférence linéaire sont utiles pour analyser des réseaux. []
  4. Merci également à Pedro Jordano, qui m’a initié à ces notions lorsque j’ai commencé à étudier la visualisation de réseaux, à la fois pour apprendre un peu de programmation fonctionnelle et pour enfin comprendre un manuel que j’avais photocopié en intégralité il y a presque dix ans, sans jamais le lire ensuite. []

Activisme en ligne et structures relationnelles

Quelques images qui illustraient un très bref passage en revue du thème indiqué en titre, pour la journée d’étude du Master GIDE à Lille :

Les trois premières slides sont tirées de recherches antérieures sur les réseaux d’activistes anti-DADVSI et anti-HADOPI (voir ce papier récent), et les deux qui suivent sont des exemples d’utilisation méthodique de données Twitter. Les sources sont reprises dans les commentaires des slides.

La deuxième partie de l’exposé portait sur les réseaux pondérés, unimodaux et bimodaux, sur la simulation de liens aléatoires dans des réseaux sociaux, et sur les réseaux dynamiques, qui évoluent au fil du temps, et qui se modélisent de manière encore plus avancée. La dernière slide n’avait presque rien à voir.

L’idée de la présentation était de dire :

  1. Quand on étudie des réseaux d’activistes, on peut avoir les mêmes préoccupations que dans l’étude d’un réseau social : classer les éléments influents (par degré de centralité ou par distances minimales), ou dessiner des réseaux égocentrés. Néanmoins, quand les réseaux se multiplient, la topologie de chaque réseau devient essentielle pour comprendre quel type d’influence s’exerce dans quel environnement : étudier des réseaux égocentrés, comme ci-dessous, ne suffit plus.

    Screen Shot 2014-03-13 at 5.10.05 PM

  2. De plus, lorsque l’on étudie une structure très dense (ou l’inverse), la structure des liens change, et il faut pouvoir prendre en compte le nombre d’échanges entre les noeuds du réseau, voire les supports intermédiaires, comme d’un cas des réseaux bimodaux de type « user-hashtag », pour pouvoir modéliser la structure du réseau et l’importance de certaines caractéristiques comme les effets d’interconnaissance :

    Screen Shot 2014-03-13 at 5.10.31 PM

  3. Enfin, il faut se donner les moyens de se demander si le réseau observé aurait pu exister par accident, en simulant quelques-uns de ses paramètres et en découpant ce travail dans le temps pour saisir les évolutions temporelles de la structure. Je n’ai pas développé ce point parce c’était hors-sujet et que je n’ai pas eu le temps de l’apprendre au cours des dernières vacances (de Noël…), mais j’y reviendrai ici quand j’aurai des données et des modèles finalisés à présenter.

Il y a eu une question dans la salle sur le cas d’un “buzz” qui est apparemment passé de Twitter aux rédactions nationales en un weekend, mais je crois avoir répondu que la structure du réseau (médiatique) était moins importante pour expliquer le phénomène que le mécanisme d’imitation rationnelle qui contraint les journalistes quotidiens à créer des “buzz” de toutes pièces, pour le meilleur comme pour le pire.