Blog Posts

  • finished

    On the 14th of March 2019, Linkage was presented to M. Jean-Michel Blanquer, French minister of education, and M. Antoine Petit, CEO of CNRS, as part of the Pi Day

    https://twitter.com/jmblanquer/status/1106206825702215680

  • Published 5 years, 3 months ago
    Commercial brochure and licensing

    The Linkage software is now available for local installation and commercial use through licensing. The commercialization of Linkage is handled by SATT IdfInnov (http://idfinnov.com). Should you require any further information especially regarding licences, please contact SATT: bd-3s@idfinnov.com

    The commercial brochure is available in English and French below:

  • Published 5 years, 4 months ago
    Data challenge : weak signal detection

    This data set aims at illustrating the capacity of Linkage to detect weak signals. Users can test Linkage on this data set by using the CSV entry in "New jobs". They can also experiment their own detection tools / softwares . The two targets individuals to identify have these ids : 329, 722. The CSV file has the following format : sender, receiver, text. Other testing data sets can be created upon request.

    data set available here

    The data set is also preloaded on any Linkage account and accessible in the "Demonstration datasets" panel (WeakSignalDetection.csv).

  • Published 5 years, 7 months ago
    The press talks about Linkage...
  • Muriel Epstein, chercheuse en sociologie à Paris 1, nous fait ici l'honneur d'expliquer linkage.fr pour un public non-averti

    Quelques collègues mathématiciens et informaticiens ont développé en juin 2017 la plateforme linkage.fr qui devraient intéresser les sociologues. L’objectif de ce petit article est de donner des explications sur ce que c’est et comment ça marche. Il s’agit donc d’un tutoriel en français destiné à des sociologues.

    Linkage combine deux types d’études : l’étude de réseau et l’analyse textuelle. Il part du principe qu’une manière d’analyser un réseau est de comprendre de quoi on parle avec qui. Il permet ainsi de proposer trois analyses :

    • Les groupes de personnes qui parlent ensemble
    • Les sujets dont parlent les personnes
    • La structure et le contenu des relations entre les personnes

    Par exemple, prenons le cas (fictif) de Claude. Claude aime l’art et en parle beaucoup à ses amis. Quand elle envoie un mail à ceux-ci, il n’est pas rare qu’elle mentionne un musée ou un tableau qu’elle a aimé. Un sous-groupe de ses amis est passionné de sculpture en particulier. Avec sa famille, elle discute de la santé des uns et des autres, des problèmes de garde d’enfants, parfois de problèmes financiers ou de l’organisation des vacances. Les vacances sont aussi un sujet de discussion occasionnelle au travail mais Claude, qui est commerciale, parle plus souvent des résultats, des clients, des objectifs avec ses collègues.

    Dans le cas de Claude, une analyse des champs lexicaux utilisés permettra à la fois de reconstituer les sphères familiales, professionnelles, amicales, voire celles liées à un intérêt particulier (la sculpture) et de savoir ce qu’elle partage avec ces groupes de personnes.

    En effet, on retrouvera très souvent les mots « musées », « peinture », « tableau », « sculpture » dans les mails avec ses amis. Les mots « santé », « enfants », « argent », « euros », « vacances » ainsi que les mots « tu », « salut » « coucou » « bises » distingueront la famille des collègues où les termes « euros », « vacances » apparaitront également mais associés à d’autres champs lexicaux et d’autres termes comme « cordialement » qu’on ne retrouvera pas dans les mails à la famille.

    L’objet de ce tutoriel est donc 1) d’expliquer succinctement les concepts mathématiques qu’il y a derrière l’analyse textuelle de réseau pour 2) permettre à n’importe quel sociologue qui voudrait faire de l’analyse textuelle sur des réseaux de se saisir de linkage.fr

    1. Aspects théoriques

    a) Les topics models

    Le modèle utilisé pour générer des topics, appelé « lda » pour « latent dirichlet association », fait l’hypothèse suivante : chaque personne parle ou écrit avec, à sa disposition, des « sacs de mots » ou « champs lexicaux » qui pré-existent. On appelle ces « sacs de mots » ou « champs lexicaux » des « topics ». En observant ce que la personne dit, on peut reconstituer les sacs de mots ou champs lexicaux dans lesquelles elle a pioché. Un même mot peut être associé à plusieurs champs lexicaux mais un même groupe de mots ne peut être associé qu’à un champ.

    Par exemple, l’expression « feu rouge » pourra être associée à un autre champ lexical que l’expression « il y avait le feu »

    Un topic (ou un sujet en bon français) est une distribution de mots. Un document est un mélange de quelques topics. Chaque mot est tiré au sort dans un topic (comme on tire des boules d’une urne dans les exercices de probabilité).

    Dans la réalité, on observe des documents et on recherche les topics qui existaient le plus probablement pour que ce soit cette observation-là qui existe. On parle d’apprentissage non supervisé car le modèle n’est pas construit a priori (on ne fait pas une hypothèse sur les sacs de mots) mais construit a postériori.

    Ce qu’on peut en retenir si on est allergique aux maths c’est que cette technique : - Fait une hypothèse forte qui est l’existence de ces sacs de mots (thèmes ou sujets) dans lesquels les gens piochent pour écrire - Permet de (re)trouver les thèmes utilisés dans des documents

    b) Le clustering

    L'image est issue du site https://lovelyanalytics.com/2017/03/25/cah-comment-ca-marche/

    Cluster en anglais signifie « groupe/ communauté ». Le clustering est le regroupement en communautés. Parmi les techniques classiques de regroupements, on trouve la classification ascendante hiérarchique (CAH) et les K-means. Dans les deux cas, il s’agit de regrouper les individus qui « se ressemblent » et sont proches sur des critères préalablement choisis, en un nombre de groupes imposés (pour les K-means) ou en un nombre de groupes choisi selon des critères statistiques (pour la CAH). Par exemple, sur la figure ci-dessus, les individus sont regroupés parce qu’ils ont un panier moyen et une ancienneté similaire. Dans le cas du clustering sur linkage, on procède en testant quelques situations, à la manière des K-means. C’est-à-dire que, par défaut, il est proposé de chercher entre 2 et 5 groupes et qu’on garde le nombre de groupes qui donne les meilleurs résultats. Par « meilleurs résultats », on entend un maximum de vraisemblance au sens statistique. L’algorithme procède un peu comme pour l’analyse textuelle c’est-à-dire en apprentissage non supervisé. On suppose que les gens appartiennent à des groupes (sur des critères de champs lexicaux et de liens entre eux) et on observe quels sont les groupes qui se forment qui sont les plus probables.

    L’avantage de cette méthode par rapport à d’autres méthodes d’analyse de réseau est qu’elle ne suppose pas de hiérarchie ou d’influenceur. La seule chose qui compte est ce qui est partagé entre les acteurs. Deux personnes sont dans le même cluster parce qu’elles utilisent les mêmes champs lexicaux et/ou qu’elles ont interagit. Le fait qu’elles interagissent augmente leur chance d’être dans le même cluster sans que ce ne soit indispensable.

    Selon le type de graphes étudiés, ils sont ou non connexes. Par exemple, une requête twitter sur un hashtag n’a pas de raison d’être connexe. En revanche, une requête sur les mails est nécessairement connexe.

    2. En pratique

    a) Login

    On se logue avec un login et un mot de passe sur https://linkage.fr/ en cliquant sur « try linkage » En cas de mot de passe oublié, écrire à contact@linkage.fr

    Lors de la première fois, on tombe sur la page ci-dessus où il faut dire si vous utilisez ce site pour raisons personnelles, de recherches universitaires ou pour une entreprise. Vous vous engagez alors à citer linkage si vous l’utilisez. Le plus simple étant d’ajouter en bibliographie le papier « C. Bouveyron, P. Latouche and R. Zreik, The Stochastic Topic Block Model for the Clustering of Networks with Textual Edges, Statistics and Computing, in press, 2017. DOI: 10.1007/s11222-016-9713-7 ».

    On arrive alors sur la page ci-dessous et on clique sur « new job » en haut à gauche. Si on clique sur jobs on peut revoir tout ce qu’on a déjà fait comme travail.

    b) New job

    La colonne de gauche propose en particulier :

    • Papers co-authorship network qui permet de voir qui écrit des papiers avec qui. En ce cas, il faut choisir un ou des mots clés puis choisir si l’on veut voir les articles publiés sous HAL, sous arXiv ou sous PubMed (trois archivages libres de papiers scientifiques). Deux personnes sont reliées si elles ont écrit ensemble. Il peut être judicieux d’augmenter le nombre de papiers limite téléchargés (limite fixée par défaut à 500) et de décocher la case « only keep the largest subgraph from the graph » qui est utile quand on étudie de gros réseaux mais moins pour de petits réseaux. En effet, supprimer les petits graphiques est utile pour mieux voir les réseaux importants.

    • MBox file qui permet des études de réseaux basées sur les mails. Il suffit alors d’entrer un fichier MBox. Sur roundcube, il suffit de faire un export. Sur gmail, il faut se connecter à son compte puis aller sur la page https://takeout.google.com/ pour récupérer tout ou partie de ses mails en format .mbox (attention cela peut prendre entre quelques heures et quelques jours). Attention, on ne peut pas aller au-delà de 1Go de fichier. Il existe une fonction « Gmail » permettant l’import de Gmail directement.

    • Twitter search, avec une option « Use loklak API » qui permet de ne pas se restreindre aux 7 derniers jours qui est le paramètre par défaut de l’API twitter. On peut chercher des mots clés mais aussi des comptes twitters.

    • Your own network (CSV) c’est-à-dire un réseau présenté en format CSV fourni par nos soins. Autrement dit, un tableau contenant trois colonnes : le nœud source, le nœud de destination et le texte. Chaque ligne est un lien qui contient donc ces trois informations.

    Exemple :

    noeud source noeud destination text
    Personne 1 Personne 2 Blabla de personne 1 à personne 2
    Personne 3 Personne 4 Baeu beuh de personne 3 à personne 4
    Personne 2 Personne 4 Texte de personne 2 à personne 4
    ..

    Une fois le cas choisi, on a accès à un certain nombre d’informations pour l’analyse

    c) Les graphiques

    On a accès à deux types de graphiques. Le premier est une représentation synthétique des groupes (les carrés sur la figure ci-dessus) avec leurs sujets de discussion.

    Les exemples sont données sur des sociologues de l’éducation, après recherche de leurs écrits sur HAL.

    Sur la figure précédente, il y a 3 clusters et 5 topics.

    Les membres du cluster en rose parlent entre eux majoritairement en utilisant le topic bleu (sur les diplômés) et communiquent avec les deux autres clusters en utilisant majoritairement le topic vert (sur l’éducation). Les membres du cluster en vert parlent particulièrement d’Europe. Enfin les membres du cluster orange parlent particulièrement entre eux de formation, d’activités académiques et salariées. Il suffit de cliquer sur les carrés pour avoir le nom des membres du cluster et sur les flèches pour avoir les topics et leur distribution. Le terme PI donne la probabilité d’interaction entre les clusters, c’est-à-dire à quel point les groupes communiquent entre eux.

    Sur la figure ci-dessous, on visualise les mêmes 3 clusters et 5 topics mais en détaillant qui a écrit quoi à qui (ou en l’occurrence avec qui car il s’agit d’une étude sur les co-auteurs mais ce serait le même type de graphique si l’on parlait d’échanges de mails). Pour ce faire, il faut cliquer sur « expand clusters » Le fait de pointer sur un individu particulier (un rond) permet de chercher où se trouvent tel ou tel auteur. Ainsi, on observe une position centrale de Roger Establet en sociologie de l’éducation en France.

    d) Les clusters

    Les clusters apparaissent dans la colonne de gauche. Il est possible de modifier le nombre de clusters entre 2 (minimum) et 5 (maximum) avec un « cliquer-glisser » de la souris qui emmène le cercle vers le nombre de clusters souhaités.

    Ensuite, un simple clic sur « show nodes » ou « hide nodes » permet de visualiser qui sont les membres d’un cluster. Par exemple, ici, le cluster vert comprend, entre autre, Yaël Brinbaum, Patrick Werquin, Agnès Van Zanten, et François Dubet

    En cliquant sur le petit crayon à droite du nombre ( indiquant le nombre de personnes présentes dans un cluster), on peut donner un nom au groupe.

    Si l’on modifie le nombre de topics, on modifie le nombre de clusters et réciproquement, les deux étant inter-dépendants.

    e) Les topics

    On peut procéder de la même façon avec les topics qu’avec les clusters et modifier le nombre de topics et le nom du topic. Par exemple, par défaut le topic orange dont le mot que l’on retrouve le plus souvent est « comment » s’appelle « comment ». Il semble évident que ce mot-là n’est pas caractéristique et l’on peut voir en descendant un peu que ce topic se caractérise surtout par les mots « formations », « compétences », « activité salariée ». C’est-à-dire qu’il s’agit d’un sujet qui relie le monde des études au monde du travail. On peut rebaptiser ce sujet « formations vers le monde salarié » qui correspond dans l’ensemble aux thèmes travaillés par les chercheurs concernés.

    f) La matrice d’adjacence

    La matrice d’adjacence est plus ou moins lisible selon le nombre de personnes étudiées. Elle représente l’ensemble des individus intégrés à l’étude. La couleur du topic le plus utilisé entre eux est indiqué au croisement entre deux individus.

    g) Les statistiques

    Les statistiques proposées sont celles du nombre de membres de chaque cluster, de la répartition des sujets, des mots les plus utilisés par sujet. Cf figure ci-dessous:

    h) Advanced

    On trouve dans la rubrique « advanced » (onglet de gauche) un seuil (cluster to cluster cut off) que l’on peut faire varier. Si ce seuil est à 0, tous les liens entre clusters sont affichés, même ceux qui sont nuls, c’est-à-dire que la probabilité que les deux clusters soient liés est nulle. Le fait d’augmenter ce seuil permet d’éclaircir les graphiques. On dispose aussi d’un score par nombre de clusters et de topics. Il s’agit du score de vraisemblance. Par exemple, le maximum de vraisemblance est atteint pour 2 topics et 2 clusters. Le choix fait de 3 topics et 5 clusters est nettement moins bon statistiquement que 2 clusters et 2 topics. Et de fait, lors des analyses, si le cluster 1 que j’ai nommé « sociologues de la jeunesse » se distinguent assez bien des clusters 2 et 3, il a été très difficile de donner un nom aux clusters 2 et 3.

  • Charles Bouveyron is a researcher at Paris Descartes, co-author on the paper that forms the core of Linkage

    We focus here on the Enron scandal which was the largest bankruptcy in the U.S. history in 2001 and resulted in more than 4,000 lost jobs. Here, we focus on the period 1, September to 31, December, 2001. We chose this specific time window because it is the denser period in term of sent emails and since it corresponds to a critical period for the company. Indeed, after the announcement early September 2001 that the company was “in the strongest and best shape that it has ever been in,” the Securities and Exchange Commission (SEC) opened an investigation on 31, October for fraud and the company finally filed for bankruptcy on 2, December, 2001.

    We consider here the Enron Email data set, which contains all email communications between 149 employees at the head of the famous company from 1999 to 2002. The original dataset is available here. Here, we focus on the period 1, September to 31, December, 2001 and only emails exchanged in this period are considered. The dataset considered here contains 20 940 emails sent between the 149 employees. All messages sent between two individuals were coerced in a single meta-message. Thus, we end up with a dataset of 1 234 directed edges between employees, each edge carrying the text of all messages between two persons.

    The data set is available in the "New Job" page, under the "Demonstration data set" panel. Select the "Enron data set" and ask the platform to cluster in a autonomous way (option "Auto") the network. The clustering may take up to a few minutes (a progress bar will appear) since Linkage is doing (in parallel on several CPUs) the clustering for different number of individual groups and different number of topics.

    Once Linkage has finished the clustering of the data, you can access the result by clicking on the "View" button in the "Jobs" page. Linkage found that the network is made of 8 clusters of persons and 5 topics of discussion. Linkage displays by default what we can call the "meta-network" since it is the network between the 8 groups. The size of the nodes indicates the proportion of persons in each group, the width of the edges is proportional to the probability of connexion between the groups, and the color of the edges indicates the majority topic between the groups.

    Before to go further in the analysis, it is necessary to have a look at the found topics. A summary of the topics is available in the side bar which display the most specific words of each topic. Notice that it is also possible to edit the topic titles to personalize the analysis. A global view of the topics is also proposed in the "Statistics" panel.

    The found topics can be easily interpreted by looking at the most specific words of each topic, displayed in the above figure. In a few words, we can summarize the found topics as follows: - Topic 1 refers to technical discussions on gas deliveries (mmBTU represents 1 million of British thermal unit, which is equal to 1055 joules), - Topic 2 contains elements related to the California electricity crisis, in which Enron was involved, and which almost caused the bankruptcy of SCE-corp (Southern California Edison Corporation) early 2001, - Topic 3 is concerned with Enron activities in Afghanistan (Enron and the Bush administration were suspected to work secretly with Talibans up to a few weeks before the 9/11 attacks), - Topic 4 is about usual logistic issues (building equipment, computers, ...), - Topic 5 seems to refer to the financial and trading activities of Enron.

    At this point, it is possible to go back to the meta-network or the unfold version of the network (click on the "Expand clusters" button at the bottom) to see which individuals were interested in the "Afghanistan" issue, for instance. It turns out that the persons involved in this issue are mostly in the purple group (cluster 4).

    This short note has shown how the Linkage platform can be used to analyze, with a novel point of view, one of the most studied communication network, highlighting in an automatic way the main elements of the Enron scandal.

  • The different imports as here to give you a taste of what Linkage can do but more often than not you're gonna want to customize your dataset.

    Linkage can take a .csv as input. It should be formatted as lines of source,target,text for each edge. To escape the text, you can quote it using ", best is to use a csv library instead of doing the csv quoting yourself.

    Here we will use reddit comments as our dataset. The nodes being the users and the edges the comments.

    Here's the python script we use to make the .csv:

    Then we get our clustered network:

    Feel free to play with the script and let us know what you find out !

  • Published 6 years, 3 months ago
    Tip: Labeling your clusters and topics

    By default your topics are gonna be named by the top word of topic (TODO FORMULA). You can customize the name by using the edit button next to the current name:

    Here we can see the results from a search of Speech Synthesis papers. We can clearly see that the top one is more about the anatomy of the mouth and the second one is about machine learning.

    Now it's easier to see the topics of each clusters:

    Often it's also useful to label the clusters. Here's what you can have for example at the end as a meta-graph:

    Bonus: when you Export to gephi, you're gonna see the same clusters and topics names.

  • Published 6 years, 3 months ago
    Spacialize and view your result in Gephi

    Linkage provide a simple visualization of your result but it you want more control over the look of your result, you might want to try using Gephi

    Exporting the job

    Each job results can be downloaded for use in many applications via the Download button:

    Inside the ZIP file you can see a directory structure like this one:

    terminal ├── edges.csv ├── k4_q3 │   ├── clusters.csv │   ├── edges_with_topics.csv │   ├── nodes_with_clusters.csv │   ├── raw │   │   ├── clusters │   │   ├── ... └── raw ├── dictionnary ├── labels ├── tdm.sp_mat └── X.sp_mat

    Your clustering data can be found under k{X}_q{Y} with k the number of topics of q the number of clusters.

    Importing in Gephi

    After selecting New Project in the startup screen, go to File > Import Spreadsheet. Then you're gonna use the edges_with_topics.csv and nodes_with_clusters.csv to import the edges and the nodes.

    When your importing is complete, you're ready to layout your graph. Let's use Force Atlas 2:

    And let's add color the nodes by cluster: You can do the same for the edges then.

    Then, in the Preview tab, you can select a few nice settings (Black background, keep the colors of edges) and export it.

    Bravo, you've finished this tutorial. Thanks for reading and don't hesitate to contact us at feedback@linkage.fr.

  • Published 1 year, 12 months ago
    How to analyse a co-authorship network in Linkage

    Let's see how you can explore the papers and their authors in Linkage.

    Importing the graph

    First, you must have an account, you can signup here.

    After selecting "New Job", you should have "co-authorship network" selected. Let's type in a subject: "Bayesian Networks". There, we can choose between 3 sources: arXiv, HAL or PubMed. I'm gonna continue with HAL.

    Here, Linkage is gonna fetch papers from the selected source which match you search term. Each node is an author and each link is a co-publication between 2 authors.

    Then Linkage execute a clustering on the freshly obtained graph. This can take some time and you can make this faster by restricting the search range in the import page by select Manual in the Clustering section

    When the clustering is finished, you will be able to download the results and view them them.

    Exploring the graph and the clustering

    Linkage job is to find two things: The topics of discussion and the clusters of people that discuss together.

    So, when going to the result page, you're gonna be welcomed with a network: The clusters linked between each others by the topics.

    finished

    You can adjust the number of topics and clusters to simplify or complexify the view. The default one shown is the one with the best score based on a likelyhood score, you can see the score and a graph of this score for all the topics at the bottom of the page.

    Thanks for reading and feel free to send us your feedback at feedback@linkage.fr


    When we had no computers, we had no programming problem either. When we had a few computers, we had a mild programming problem. Confronted with machines a million times as powerful, we are faced with a gigantic programming problem.

    Dijkstra (1986) Visuals for BP's Venture Research Conference