He is back!! Et oui revoilà Mathieu! Près de 5 mois ont passé depuis son dernier dossier, et il revient en Guest-star nous présenter un sujet sur les algorithmes de recommandation. Vous allez enfin savoir comment fonctionnent les applications en ligne pour nous suggérer des produits correspondant à nos goûts.
La version écrite du dossier est accessible par ce lien mais si vous préférez entendre nos voix mélodieuses, vous pouvez écouter la version mp3.
Et Nico a pour l’occasion réalisé une illustration
La quote de Mathieu:
- “More personalization means less privacy” (auteur perdu en cours en route)
Il existe des centaines d'algorithmes qui ont été utilisés pour l'implémentation de systèmes de recommandation. La plupart relève de concepts mathématiques avancés. Dans ce dossier, on va tenter d'analyser différentes approches et stratégies utilisées lors de la mise en place d'un système de recommandation.
Wikipedia définit un système de recommandation comme une forme spécifique de filtrage de l'information visant à présenter les éléments d'information (films, musique, livres, news, images, pages Web, etc) qui sont susceptibles d'intéresser l'utilisateur.
Dit autrement, un système de recommandation cherche à prédire la valorisation ou préférence qu'un utilisateur attribuerait à un objet (livre, musique, film…) ou à un élément social (personne, groupe, communauté) qu'il n'avait pas encore considéré.
Un système de recommandation requiert généralement 3 étapes:
- La première consiste à recueillir de l'information sur l'utilisateur.
- La deuxième consiste à bâtir une matrice ou un modèle utilisateur contenant l'information recueillie.
- La troisième consiste à extraire à partir de cette matrice une liste de recommandations.
Collecte d'Information
Pour être pertinent, un système de recommandation doit pouvoir faire des prédictions sur les intérêts des utilisateurs. Il faut donc pouvoir collecter un certain nombre de données sur ceux-ci afin d'être capable de construire un profil pour chaque utilisateur.
Une distinction peut être faite entre 2 formes de collecte de données:
- Collecte de données explicite – Filtrage actif: repose sur le fait que l'utilisateur indique explicitement au système ses intérêts.
- Exemple: demander à un utilisateur de commenter, taguer/étiqueter, noter, liker ou encore ajouter comme favoris des contenus (objets, articles…) qui l'intéressent. On utilise souvent une échelle de ratings allant de 1 étoile (je n'aime pas du tout) à 5 étoiles (j'aime beaucoup) qui sont ensuite transformées en valeurs numériques afin de pouvoir être utilisées par les algorithmes de recommandation.
- Avantage: capacité à reconstruire l'historique d'un individu et capacité à éviter d'agréger une information qui ne correspond pas à cet unique utilisateur (plusieurs personnes sur un même poste).
- Inconvénient: les informations recueillies peuvent contenir un biais dit de déclaration.
- Collecte de données implicite – Filtrage passif: repose sur une observation et une analyse des comportements de l'utilisateur effectuées de façon implicite dans l'application qui embarque le système de recommandation, le tout se fait en “arrière-plan” (en gros sans rien demander à l'utilisateur).
- Exemples:
- Obtenir la liste des éléments que l'utilisateur a écoutés, regardés ou achetés en ligne.
- Analyser la fréquence de consultation d'un contenu par un utilisateur, le temps passé sur une page.
- Monitorer le comportement en ligne de l'utilisateur.
- Analyser son réseau social.
- Avantage: Aucune information n'est demandée aux utilisateurs, toutes les informations sont collectées automatiquement. Les données récupérées sont a priori justes et ne contiennent pas de biais de déclaration.
- Inconvénient: Les données récupérées sont plus difficilement attribuables à un utilisateur et peuvent donc contenir des biais d'attribution (utilisation commune d'un même compte par plusieurs utilisateurs). Un utilisateur peut ne pas aimer certains livres qu'il a acheté, ou il peut l'avoir acheté pour quelqu'un d'autre.
Modèle Utilisateur
Le modèle utilisateur se présente généralement sous forme de matrice. On peut se le représenter comme un tableau qui contient des données recueillies sur l'utilisateur associées aux produits disponibles sur le site web.
Un autre point important est comment le temps influence le profil de l'utilisateur. Les intérêts des utilisateurs, généralement, évoluent au cours du temps. Les données du modèle utilisateurs devraient donc constamment être réajustées pour rester conformes aux nouveaux centre d'intérêts de l'utilisateur.
Liste de recommandations
Pour extraire une liste de suggestions à partir d'un modèle utilisateur, les algorithmes utilisent la notion de mesure de similarité entre objets ou personnes décrits par le modèle utilisateur. La similarité a pour but de donner une valeur ou un nombre (au sens mathématique du terme) à la ressemblance entre 2 choses. Plus la ressemblance est forte, plus la valeur de la similarité sera grande. A l'inverse, plus la ressemblance est faible, et plus la valeur de la similarité sera petite. On verra plus tard dans le dossier quelques exemples.
Types de système de recommandation
On a l'habitude de présenter 4 approches possibles pour un système de recommandation:
- Recommandation Personnalisée
- Recommandation Objet (Content-Based filtering CB)
- Recommandation Sociale (Collaborative Filtering CF – Context Aware)
- Recommandation Hybride
Recommandation Personnalisée
Il s'agit de recommander des objets sur la base du comportement passé de l’utilisateur.
Exemples:
- Des produits achetés ou sélectionnés sur un site de e-commerce, ainsi qu'un certain nombre d'actions ou décisions effectuées par l'utilisateur qui permettent de prédire de nouveaux produits susceptibles de l'intéresser.
- Les annonces publicitaires (par ex. Adsense de Google) sont considérées comme des systèmes de recommandation personnalisée qui se basent sur le comportement passé de l'utilisateur (navigation, clics, historique de recherche…)
Recommandation Objet
Il s'agit de recommander des objets (ou contenus) en se basant sur les qualités et propriétés intrinsèques de l’objet lui-même et en les corrélant avec les préférences et intérêts de l'utilisateur. Ce type de système va donc extraire un certain nombre de caractéristiques et attributs propres à un contenu, afin de pouvoir recommander à l'utilisateur des contenus additionnels possédant des propriétés similaires. Cette méthode crée un profil pour chaque objet ou contenu, c'est-à-dire un ensemble d'attributs/propriétés qui caractérisent l'objet.
Exemples:
- La décision de sélection et recommandation ou non d'un document à un utilisateur peut se baser sur le contenu (les mots présents) dans celui-ci, c'est-à-dire sur une comparaison des thèmes abordés dans le document par rapport aux thèmes qui intéressent l’utilisateur.
- Pour décider la suggestion d'un article (news) ou non, un système de recommandation peut se baser sur les mot-clés principaux de l'article et les comparer avec les mot-clés apparaissant dans d'autres articles que l'utilisateur a évalués positivement dans le passé.
- Dans le cas d'un site de vente de livre en ligne, on va se baser sur les caractéristiques du livre pour effectuer des recommandations, comme par exemple le sujet que traite l'ouvrage, son genre, son auteur, l'éditeur, etc. On pourrait ainsi recommander le livre Harry Potter à un utilisateur, si on sait d'une part que ce livre est un roman fantastique et d'autre part que l'utilisateur aime les romans fantastiques. Un système de recommandation pourra donc accomplir cette tâche seulement s'il a à disposition 2 types d'information: 1) la description des caractéristiques du livre et 2) un profil utilisateur qui décrit les intérêts (passés) de celui-ci en termes de préférence de type de livre. La tâche de recommandation consiste donc à déterminer les livres qui correspondent le mieux aux préférences de l'utilisateur.
Les algorithmes de recommandation objet permettent de développer des modèles afin de trouver des patterns ou motifs semblables entre différentes données. Ils évaluent à quel point un contenu pas encore vu par l'utilisateur est similaire aux contenus que celui-ci a évalués positivement dans le passé. Pour ce faire, on utilise la notion de similarité qui peut être mesurée de plusieurs manières:
- Le système peut tout simplement vérifier si le livre se trouve dans la liste des genres préférés de l'utilisateur. Dans ce cas la similarité sera de 0 ou 1 (binaire/boolean).
- Une autre façon serait de ne pas se baser sur le genre du livre, mais sur les mot-clés qui caractérisent l'ouvrage, et calculer la similarité de chevauchement entre les mots-clés du livre qui va éventuellement être suggéré avec les mots-clés préférés de l'utilisateur. Un des indicateurs de mesure de similarité qu'on utilise dans le cas d'un objet avec des propriétés multi-valeurs (cas des mot-clés) est le coefficient de Dice. Si chaque livre est décrit par un ensemble de mot-clés, le coefficient de Dice permet de mesurer le degré de similarité entre 2 livres à partir de leurs mot-clés.
Dans le cas de documents de texte, on peut également imaginer que le contenu de chaque document soit décrit à partir d'une liste de tous les mots apparaissant dans le document, et décrire chaque document par un vecteur de valeurs binaires/booléennes, où un 1 indiquerait que le mot apparaît dans le document et un 0 indiquerait que le mot n'apparaît pas dans le document. Si le profil utilisateur est décrit par une liste similaire (un 1 indique un intérêt pour un mot-clé), on peut facilement associer et proposer des documents en mesurant le chevauchement entre les mot-clés qui intéressent l'utilisateur et les mots contenus dans le document. Le problème qui surgit avec une telle approche est qu'on assume que chaque mot a la même importance au sein d'un document. Or un mot qui apparaît très souvent ne caractérise pas forcément mieux un document. En plus, un plus large chevauchement entre les préférences de l'utilisateur et un document apparaîtera naturellement plus le document est long. En conséquence, le système de recommandation tendera à proposer des longs documents. Pour résoudre ces problèmes, on applique des techniques qui permettent de réduire le poids des mots qui apparaissent très souvent et d'augmenter le poids de ceux qui apparaissent plus rarement. Pour rendre encore plus compacte la liste des mots présents dans un document, on peut aussi quitter un certain nombre de mots qui sont sans intérêt, comme les prépositions, les articles… En normalisant aussi différentes variantes d'un même mot, par exemple les verbes conjugués sont remplacés par leur infinitif (volait par voler). On peut aussi décider de limiter la liste aux n mots les plus pertinents apparaissant dans les documents. Différents travaux ont montrés que le nombre optimum de mots à prendre en compte se trouve aux alentours de 100. Si trop peu de mots sont sélectionnées (moins de 50), on voit que d'importantes caractéristiques d'un document ne sont pas couvertes. Et si trop de mots sont inclus, certains ont peu d'importance et apportent plus de bruit qu'autre chose, ce qui réduit la qualité de la recommandation. On utilise aussi des base de connaissances lexicales externes pour éliminer des mots non pertinents.
De façon générale, les algorithmes de recommandation objet assignent un poids plus ou moins élevé aux attributs d'un contenu selon l'importance de ceux-ci. Le poids exprime donc l'importance de chaque attribut pour un utilisateur.
Un autre algorithme de recommandation objet couramment utilisé est la méthode de retour de pertinence de Rocchio (Rocchio’s relevance feedback) ou classification de Rocchio. L'idée de cette méthode est de prendre en compte le point de vue des utilisateurs sur les recommandations proposées. Le principe, simple, repose sur le fait que l'utilisateur est le seul à savoir exactement ce qu'il recherche et apprécie, il est donc le plus à même de juger de la pertinence des suggestions retournées par un système de recommandation. Partant de cette idée, les systèmes exploitant le retour de pertinence permettent de récupérer ces « jugements » utilisateurs et les exploitent pour améliorer et affiner les recommandations. Techniquement, l'idée est dans un premier temps de décomposer les contenus évalués par l'utilisateur en 2 groupes (vecteurs, clusters) D+ (contenus évalués positivement et pertinents) et D- (contenus évalués négativement et non pertinents). Par un procédé mathématique on calcule une moyenne (prototype) qui permet de déterminer le centre (centroid) de chacun des 2 groupes (vecteurs) D+ et D-. Lorsqu'un nouvelle requête est effectuée par l'utilisateur, les résultats à recommander sont pondérés en fonction des 2 groupes D+ et D-. C'est-à-dire, on ajoute au résutats de la requête la liste D+ et on soustrait (retire) la liste D-, le tout de façon pondérée. L'effet obtenu est que les résultats retournés se rapprochent à chaque itération un peu plus du centre (centroid) de la liste D+ des contenus évalués positivement par l'utilisateur. Avec cette technique, on voit qu'il est possible d'affiner la requête initiale des utilisateurs au fur et à mesure que ceux-ci fournissent des jugements de pertinence sur des documents consultés. Le système de recommandation est donc doté d'une boucle de retour qui permet au même système de reformuler des recommandations plus pertinente en favorisant ou écartant certains contenus.
Avantages et inconvénients
Avantage: ce type de recommandation objet n'a pas besoin d'une large communauté d'utilisateurs pour pouvoir effectuer des recommandations. Une liste de recommandations peut être générée même s'il n'y a qu'un seul utilisateur.
Inconvénients: certains attributs peuvent être extraits automatiquement d'un contenu, comme par exemple pour un document de texte, on peut relativement facilement déduire certaines propriétés sémantiques automatiquement. On voit aussi qu'en pratique, des caractéristiques et propriétés comme le genre d'un livre ou la liste des acteurs dans un film, sont généralement fournis pas les créateurs du livre ou du film et sont généralement offerts sous forme électronique. Ce qui reste plus problématique, c'est l'acquisition de caractéristiques subjectives et qualitatives… Des propriétés, comme par exemple le style, le design… peuvent difficilement être acquises automatiquement, et devront plutôt être introduites manuellement avec tout ce que ça implique, comme le coût, les éventuelles erreurs…
Recommandation Sociale
Recommander des choses sur la base du comportement passé des utilisateurs similaires, en effectuant une corrélation entre des utilisateurs ayant des préférences et intérêts similaires. On utilise des méthodes qui collectent et analysent des données sur le comportement, les activités, les préférences des utilisateurs et des algorithmes tentent de prédire ce que l'utilisateur aimera en cherchant des utilisateurs qui ont les mêmes comportements que l'utilisateur à qui l'on souhaite faire des recommandations. L'idée sous-jacente est de dire que si un personne A a la même opinion (ou les même goûts) qu'une personne B sur un objet x, alors la personne A a plus de chance d'avoir la même opinion que B sur un autre objet y, plutôt que d'avoir la même opinion que quelqu'un choisi au hasard pour l'objet y. L'idée de base est donc de dire que si des utilisateurs ont partagés des mêmes intérêts dans le passé, il y a de fortes chances qu'ils partagent aussi les mêmes goûts dans le futur.
Les techniques de recommandation sociale (filtrage collaboratif) sont classées en 2 sous-types:
- memory-based
- model-based
User-based nearest neighbor (user-centric / memory-based)
Les algorithmes de recommandation sociale utilisent généralement différentes variantes d'un mécanisme basé sur le voisinage proche (user-based nearest neighborhood approach). Dans cette approche, un nombre d'utilisateurs (peer users / nearest neighbors / plus proches voisins) est identifié et sélectionné sur la base de la similarité de leurs intérêts et préférences avec l'utilisateur actif. On utilise alors principalement les ratings (par ex: films) de ces utilisateurs “voisins” pour calculer des similarités avec l'utilisateur actif. Pour chaque produit p que l'utilisateur n'a pas encore vu, une prédicition est faite en se basant sur les ratings de p assignés par le panel d'utilisateurs voisins. Cette méthode suppose 2 conditions initiales (inconvénients):
- On assume que si des utilisateurs ont eu des goûts similaires dans le passé, ils auront aussi des goûts similaires dans le futur.
- Les préférences des utilisateurs restent stables et cohérentes dans le temps.
Pour bien comprendre, on peut imaginer un tableau ou matrice de ratings de films, avec sur un axe les utilisateurs et sur un autre les films. Chaque cellule de la matrice contient le rating donné par un utilisateur pour un film. Un signe “+” indique que l'utilisateur a aimé le film, un signe “-” qu'il ne l'a pas aimé, pas de signe signifie qu'il n'a pas d'avis particulier sur ce film. Pour pouvoir prédire si Ken apprécierait le film “Fargo” et éventuellement lui recommander ce film, on compare les ratings de Ken à ceux des autres utilisateurs sélectionnés. On peut alors voir que Ken et Mike ont des ratings identiques, et que Mike a aimé le film Fargo, on pourrait alors prédire que Ken aimera aussi ce film et lui faire cette suggestion (user-centric).
Au lieu de se baser uniquement sur l'utilisateur le plus semblable, la prédiction est normalement calculée à partir de la moyenne pondérée des ratings de plusieurs utilisateurs. Le poids donné au rating de chaque utilisateur est déterminé par le degré de corrélation entre cet utilisateur et l'utlisateur pour qui on désire faire la recommandation. Pour mesurer le degré de corrélation entre 2 utilisateurs, on fait appel généralement au coefficient de corrélation de Pearson r. D'autres indicateurs de mesure de la similarité ou proximité entre utilisateurs sont aussi utilisés comme la corrélation de Ringo, ou le coefficient de corrélation de Spearman. Le coefficient de corrélation de Pearson se calcule à partir des valeurs présentes dans la matrice et peut prendre une valeur allant de +1 (forte corrélation positive) à -1 (forte corrélation négative). Par exemple, un coefficient de corrélation 0.70 entre 2 utilisateurs indiquerait une bonne similarité de leurs intérêts. On introduit aussi souvent dans le calcul de la mesure de Pearson un facteur de pondération afin de prendre en compte et pondérer le fait que certains utilisateurs ont toujours tendance à donner seulement de bons ratings, ou que d'autres ne vont jamais donné le rating maximum à un produit.
Les systèmes de recommandation doivent généralement aussi gérer un grand nombre d'utilisateurs. Faire des recommandations à partir des ratings de millions d'utilisateurs peut avoir de sérieuses implications en termes de performance. Ainsi, qua
nd le nombre d'utilisateurs atteint un certain seuil, une sélection des “meilleurs” voisins doit être faite
On n'est pas non plus limités aux ratings ou like/dislike, on peut aussi se baser sur des données plus implicites en observant le comportement de l'utilisateur sur le site, par opposition à la récolte de données explicite comme l'est le rating. On peut observer par exemple quelle musique il a écouté, quel article il a lu, et on croise ses infos avec celles du reste des utilisateurs afin de lui proposer de nouvelles suggestions.
La recommandation sociale user-centric a cependant ses limites. Lorsqu'il s'agit d'un gros site qui gère des millions d'utilisateurs et un catalogue de milliers de produits, il faut scanner un grand nombre de voisins potentiels, ce qui rend impossible la recommandation en temps réel. Pour palier ce problème, les gros sites implémentent souvent une technique différente plus apte au traitement préalable des données hors-ligne (offline preprocessing), la recommandation sociale item-centric (à ne pas confondre avec la recommandation objet).
Item-based nearest neighbor (item-centric / model-based)
Cette autre approche, appelée aussi item-to-item, propose une inversion de l'approche user-based nearest neighbor. Au lieu de mesurer la corrélation entre des utilisateurs, les ratings sont utilisés pour mesurer la corrélation entre les contenus (films), en s'aidant toujours du coefficient de corrélation de Pearson, mais cette fois-ci appliqué au contenu. Si par exemple les ratings des deux films “Fargo” et “Pulp Fiction” ont une parfaite corrélation, c'est-à-dire qu'ils ont reçu les mêmes ratings (positif, négatif ou nul) de la part des utilisateurs, on peut ainsi prédire que Ken aimera le film “Fargo” car il a aimé “Pulp Fiction” (les ratings des utilisateurs sur ces deux films sont parfaitement corrélés).
Pour le dire autrement, l'approche item-centric propose de rechercher en premier lieu des contenus similaires et ensuite de faire une recommandation à l'utilisateur. Cette approche permet de faire un traitement préalable sur la matrice pour déterminer les contenus similaires et ainsi pouvoir effectuer des prédictions en temps réel, contrairement à l'approche user-centric très gourmande en mémoire.
Autant le coefficient de corrélation de Pearson est très utilisé pour déterminer des utilisateurs similaires (cas de la recommandation sociale user-centric), dans l'approche item-centric, on utilise plutôt comme indicateur de mesure de similarité entre items un autre indicateur qu'on appelle de similarité cosinus ajustée. Les valeurs possibles pour cet indicateur vont comme dans le cas de mesure de Pearson de +1 (forte similarité positive) à -1 (forte similarité négative). Une fois que la similarité entre les items a été établie à l'aide de la similarité cosinus ajustée, on peut alors prédire un rating pour un item grâce aux ratings effectués par l'utilisateur sur les items similaires.
Dans l'approche item-centric, l'idée est donc de construire à l'avance la matrice de similarité entre items. Et en temps réel, on peut facilement ensuite déduire la prédiction de recommandation (le rating) d'un produit pour un utilisateur actif en déterminant depuis la matrice déjà construite quels sont les produits les plus similaires, et en calculant la valeur moyenne de ratings sur ces produits effectués par les utilisateurs voisins.
Avantages et inconvénients
Avantage: L'approche purement de recommandation sociale n'exploite pas ou ne demande aucune connaissance sur les contenus eux-même. Par exemple, dans le cas d'un magasin de vente de livres en ligne, le système de recommandation collaboratif n'a pas besoin de savoir le type de contenu du livre, son genre, qui en est l'auteur, etc… Pas besoin de se baser sur l'analyse des propriétés intrinsèques d'un livre ou d'un contenu, la recommandation sociale est capable de recommander des contenus sans avoir besoin de comprendre le sens ou la sémantique du contenu lui-même. Les informations propres au livre n'ont pas besoin d'être introduite dans le système.
Inconvénients:
- Scalability: souvent, les plate-formes sur lesquelles sont utilisés les filtres collaboratifs ont des millions d'utilisateurs, de produits et contenus. Ça demande donc beaucoup de puissance de calcul pour pouvoir proposer des suggestions aux utilisateurs. La recommandation sociale de type user-centric est aussi appelée memory-based, car la base de données des ratings est maintenue en permanence en mémoire dans le serveur et utilisée directement pour générer des recommandations à l'utilisateur actif. Bien que cette approche memory-based soit théoriquement plus précise, car elle a disposition en permanence et en temps réel toutes les données pour générer les recommandations, elle souffre de problèmes de scalability pour des bases de données de millions d'utilisateurs et de millions de contenus. Dans une approche item-centric ou model-based, les données sont préalablement traitées hors-ligne. Ensuite lors de l'exécution de l'application ou service web, le modèle “appris” ou pré-traité sera utilisé pour effectuer les prédictions. L'approche model-based permet d'éviter le problème de scalability.
- Cold Start: les systèmes de recommandation sociale ont besoin de beaucoup de données et beaucoup d'utilisateurs pour être performants. Le lancement d'un service de recommandation peut souffrir au début du manque d'utilisateurs et d'informations sur ceux-ci.
- Sparsity (Rareté): le nombre de produits ou contenus est énorme sur certaines plates-formes, et même les utilisateurs les plus actifs auront noté ou valorisé qu'un tout petit sous-ensembe de toute la base de données. Donc, même l'article le plus populaire n'aura que très peu de bonnes notes. Dans une telle situation, deux utilisateurs auront peu d'articles valorisés en commun, ce qui rend plus difficile la tâche de corrélation. C'est une situation qu'on retrouve lorsque le système dispose d'un ratio élevé de contenu par rapport aux utilisateurs, et qu'on retrouve aussi souvent au stade initial du lancement du service de recommandation, ce qui nous ramène au problème de cold start (qui peut être vu comme un cas spécial du problème de rareté).
Recommandation Hybride
Une combinaison des trois approches ci-dessus. Les méthodes hybrides sont de plus en plus utilisées, car elle permettent de résoudre des problèmes comme le cold start et la sparsity (rareté) qu'on retrouve dans une approche de recommandation uniquement sociale. D'autre part, si par exemple on considère 2 utilisateurs avec les mêmes goûts mais qui n'ont pas évalué ou “raté” des objets en commun, un filtrage collaboratif pur ne les considérera pas comme similaires ou voisins. Rappelons que la mesure de similarité standard ne prend en compte que les éléments pour lesquels l'utilisateur actif et l'utilisateur à comparer ont effectué un rating. L'idée est alors de pouvoir assigner une valeur par défaut aux éléments qui ont été “ratés” seulement par un des deux utilisateurs, afin d'améliorer la qualité de prédiction en cas de rareté (sparsity). En appliquant préalablement un algorithme de recommandation objet sur les contenus pour en exploiter leurs descriptions et caractéristiques, accompagné ensuite d'un algorithme de recommandation sociale pour effectuer les recommandations peut aider à résoudre ces limitations. Autrement dit, pour les cas de rareté (sparsity), lorsque peu d'items ont été évalués par les utilisateurs et qu'un filtrage collaboratif n'est pas possible, ce qu'on fait, c'est qu'on assigne en premier lieu un pseudo-rating ou vote artificiel par défaut à l'utilisateur sur les contenus disponibles en utilisant préalablement un algorithme objet, puis on applique ensuite sur la matrice (contenant peu de vrais rating et beaucoup de pseudo-ratings) un filtrage collaboratif.
Exemples:
Netflix est aussi un bon exemple de système hybride. Il propose des recommandations en comparant les habitudes de visionnage des films d'utilisateurs similaires (recommandation sociale) et suggère aussi des films qui partagent des caractéristiques avec des films que l'utilisateur a noté positivement (recommandation objet).
- Recommandation Personalisée:
- Google customise nos résultats de recherche, quand cela est possible, en se basant sur notre localisation et/ou nos dernières recherches.
- Lorsqu'on est connecté à notre compte Google, il propose un contenu encore plus pertinent en fonction de notre historique de recherche.
- Recommandation Sociale:
- L’algorithme du PageRank est de manière intrinsèque un outil basé sur de la recommandation sociale dans la mesure ou il utilise les liens entre les pages web.
- L'utilisation de contenus provenant de nos cercles de Google+ est aussi une forme de recommandation sociale.
- Recommandation Objet
- Google utilise aussi une approche sémantique pour sa fonction « Did you mean » de son moteur de recherche.
Pandora vs Last.fm
La différence entre les approches de recommandation objet et de recommandation sociale (collaborative) peut être illustrée en comparant deux services de radio en ligne que sont Pandora (seulement disponible aux USA) et Last.fm.
Pandora utilise principalement une approche de recommandation objet. Le système se base sur les propriétés de la chanson et/ou de l'artiste, c'est à dire il décompose dans un premier temps les morceaux de musique afin de mettre en évidence ses propriétés intrinsèques. Chaque morceau de musique disposerait de plus de 400 attributs, permettant de déterminer une sorte de code génétique de la chanson (Music Genome Project). En comparant les propriétés similaires entre différents morceaux, le système arrive alors à nous proposer de nouvelles chansons à écouter, c'est-à-dire une sorte de station radio qui diffuse de la musique avec des propriétés susceptibles de correspondre à nos goûts. L'utilisateur peut ensuite indiquer s'il aime ou pas le morceau en écoute, et permet ainsi à Pandora d'affiner son filtre de recommandation en privilégiant (ou pas) certains attributs selon l'information venue en retour de l'utilisateur.
Last.fm lui utilise un filtre de recommandation sociale (collaborative). Le service crée une station de radio personnalisée en observant quels sont les groupes, artistes et chansons que l'utilisateur a écouté régulièrement et les compare avec les comportements d'écoute d'autre utilisateurs. Last.fm va alors proposer des morceaux fréquemment écoutés par des utilisateurs ayant des goûts similaires.
Netflix Prize
De 2006 à 2009, Netflix a parrainé un concours, le Netflix prize, offrant un prix de $1'000'000 à celui qui à partir d'un set de données de plus de 100 millions de ratings de films pourrait offrir des recommandations 10% plus précises que celles générées par le système original de la compagnie Netflix. Le 21 septembre 2009, le prix a été attribué à une équipe appelée BellKor's Pragmatic Chaos. Les gagnants avaient misé sur un mélange de centaines d'approches algorithmiques et méthodes prédictives qui réunies ensemble permettent d'être plus performant dans la prédiction. La solution la plus performante semble donc bien s'appuyer sur un ensemble de méthodes algorithmiques plutôt que sur le raffinement et l'optimisation d'une seule technique spécifique.
Pour l'anecdote, le Netflix prize n'a pas été renouvelé en 2010, car malgré le fait que le set de million de données fournies aux participants du concours aient été rendues anonymes pour préserver l'identité des clients, deux chercheurs de l'Université du Texas ont été capables d'identifier des utilsateurs présents dans le set de données utilisé lors du concours en associant et croisant ces données avec des ratings de films soumis sur l'Internet Movie Database (IMDb). Il s'en est suivi qu'en décembre 2009, un des utilisateurs anonymes du set de données a poursuivi Netflix pour violation de la législation américaine en terme de confidentialité.
Efficacité d'un algorithme de recommandation
On a vu que la recommandation sociale (filtrage collaboratif) a l'avantage contrairement à la recommandation objet de permettre d'effectuer des prédicitions même lorsqu'il y a peu de information associée au contenu à recommander ou lorsque que le contenu est difficile d'analyser automatiquement (idées, opinions…) Mais la recommandation sociale souffre aussi d'inconvénients comme le cold start et le problème de rareté (sparsity).
Evaluer l'efficacité des algorithmes de recommandation est loin d'être trivial. En premier lieu, parce que différents algorithmes peuvent être meilleurs ou moins bons en fonction du set de données sélectionné et sur lequel ils sont appliqués. D'autre part, les objectifs fixés par un système de recommandation peuvent être divers et variés. Un système de recommandation peut être mis en place pour estimer avec exactitude la note que donnerait un utilisateur à un élément, alors que d'autres auront comme objectif principal de ne pas proposer des recommandations erronées.
On peut donc légitimement se demander jusqu'à quel point ces différentes méthodes de recommandation sont réellement efficaces. Pour déterminer l'efficacité d'un système, des indicateurs comme la précision et le recall sont utilisés.
La précision est un indicateur qui représente la qualité de la recommandation, c'est-à-dire à quel point les suggestions proposées sont conformes aux intérêts de l'utilisateur:
précision = nbre de suggestions pertinentes / nbre de suggestions
Le recall indique combien de suggestions pertinentes ont été recommandées à l'utilisateur par rapport au nombre total de suggestions pertinentes disponibles dans le système.
recall = nbre de suggestions pertinentes proposées à l'utilisateur / nbre de suggestions pertinentes totale
L'indicateur de précision permet de déterminer la probabilité qu'un élément recommandé soit pertinent.
L'indicateur de recall permet de déterminer la probabilité qu'un élément pertinent soit recommandé.
On utilise aussi des techniques statistiques pour mesurer l'efficacité d'un algorithme de recommandation. L'idée c'est d'évaluer la précision de la prédiction effectuée par le système en comparant les prédicitions avec les choix qu'aurait fourni l'utilisateur dans un cas réel. On utilise par exemple l'Erreur Moyenne Absolue (MAE) qui mesure la déviation des recommandation prédites avec les choix réels effectués par les utilisateurs. Plus l'erreur moyenne absolue est faible, meilleure est la prédicition.
Pour conclure, la meilleure mesure de l'efficacité d'un algorithme de recommandation et de la pertinence des suggestions c'est finalement la satisfaction de l'utilisateur, qui n'est pas toujours facile à bien identifier.
Sources:
http://www.readwriteweb.com/archives/recommendation_engines.php
http://fr.wikipedia.org/wiki/Syst%C3%A8me_de_recommandation
http://en.wikipedia.org/wiki/Recommender_system
http://en.wikipedia.org/wiki/Collaborative_filtering
http://recommender-systems.org/
http://www.it.uc3m.es/jvillena/irc/descarga.htm?url=practicas/06-07/31.pdf
http://www.docstoc.com/docs/35703482/Top-N-Recommendation-Algorithm-B
http://www.cs.utexas.edu/users/ml/papers/cbcf-aaai-02.pdf
http://www.amazon.es/Recommender-Systems-Introduction-Dietmar-Jannach/dp/0521493366

Illustration de Nicolas Tupégabet
(pour le dossier de Mathieu sur les algorithmes de recommandation)
Déjà le 3e dossier de Nico, qui nous chauffe cette fois-ci les neurones en nous parlant des algorithmes, dont voici un rappel du teaser:
“De tout temps (même si au début ils n’étaient pas clairement nommés), l’homme a utilisé des algorithmes. De la méthode pour chasser le mammouth à celle pour calculer pi. De la recette de cuisine à l’intelligence artificielle. Quels sont les grand algorithmes de l’histoire? Quelles furent les grandes étapes de l’histoire des algorithmes? Mais au fait qu’est-ce qu’un algorithme?”
Retrouvez la version écrite ou audio du dossier!
Résultats du concours
- Adrien a gagné un t-shirt Podcast Science Bravo à lui!
- Pierre Kerner a gagné le livre de son choix Bravo itou
2 – Vrai (Nico, Banach-Tarski)
3 – Faux (Ln, rhinogrades)
4 – Vrai (Alan, miraculine)
5 – Faux (Nico, Pi)
6 – Vrai (Alan, électricité=>carburant)
7 – Vrai (Ln, embryons en pause)
8 – Vrai (Nico, théorie universelle)
9 – Faux (Alan, balance pour 1 électron)
10 – Vrai (Marco, galaxie rectangulaire)
11 – Vrai (Ln, films tristes bons pour le moral)
12 – Vrai (Marco, MS écran tactile auto-nettoyant)
Plug
- http://12minutesde.com/2012/04/episode-8-20-minutes-sur-la-constante-cosmologique-34-theorie-de-letat-stationnaire-et-modele-du-big-bang/
- La science, une histoire d’humour :http://www.espgg.org/La-science-une-histoire-d-humour.html (avec une illustration de Lucile ici)
Les quotes en anglais de Marco de la semaine
- “I am thinking about something much more important than bombs. I am thinking about computers.” – John von Neumann, 1946
- “Nous sommes automates dans les trois quarts de nos actions” – Leibniz
- “Je méprise profondément ceux qui aiment marcher en rang sur une musique: ce ne peut être que par erreur qu’ils ont reçu un cerveau. Une moelle épinière leur suffirait amplement.” – Albert Einstein
Rappel: SORTIE PALAIS DECOUVERTE 9 JUIN PROCHAIN!
Pour un troisième dossier, on s'attaque aujourd'hui à un sujet très vaste, sans aucun doute le plus vieux de l'histoire des sciences… Lors du dossier sur Pi, nous avions pu découvrir que dès que l'homme a su écrire, il a parlé de la constante célèbre. Force est de constater que depuis que l'homme existe, il existe des algorithmes même si ce n'est que très récemment (au début du XXe siècle) qu'une définition formelle à commencé à se montrer. Je serais même tenté d'affirmer que certains animaux usent d'algorithmes, mais devant ma méconnaissance du sujet, je laisserai des personnes plus compétentes apporter leur contribution une fois le dossier assimilé!
Un algorithme? Mais koikeskecédonc?
Depuis que l'homme existe donc et encore aujourd'hui, tout le monde utilise tous les jours, toutes les heures des algorithmes… Pour autant peu de personnes connaissent le mot et moins encore la définition exacte et cela est bien compréhensible tant elle est finalement complexe! Pourtant, l'idée est assez simple, voire même naturelle : une méthode qui, à partir de plusieurs données permet d'obtenir un résultat. Si cette définition n'est pas suffisamment précise pour bâtir une théorie mathématique, elle est suffisante pour donner à ce stade quelques exemples.
Commençons donc par le plus célèbre des algorithmes, celui que l'on a tous utilisé au moins une fois, celui qui est aussi vieux que l'invention du feu (ou presque) : la recette de cuisine! Dans toute bonne recette, à l'image de celle ci-dessous (provenant de l'excellent blog la foodbox), on a exactement les mêmes éléments…
Le nom nous permet de savoir à quoi sert cette recette, la liste d'ingrédients assure que l'on ait tous les outils et éléments nécessaires à sa réalisation. La procédure à suivre permet à n'importe qui, cuisinier ou non, intelligent ou non, de produire cette réalisation complexe. Les variantes et autres tests permettent de s'adapter à la situation et à l'envie.
Cet exemple traduit très bien l'idée partagée par nombre de scientifiques de la notion d'algorithme après l'apparition de ce mot au IXe siècle. L'origine du mot algorithme est arabe, il correspond à la traduction du nom du mathématicien Al-Khwārizmī qui a accessoirement écrit un ouvrage qui a permis de propager en Europe l'écriture décimale positionnelle des nombres inventée par les Indiens (c'est celle que nous utilisons encore aujourd'hui). S'il n'y a pas aujourd'hui de définition simple communément acceptée de la notion d'algorithme, on y retrouve toujours les idées suivantes :
À partir d'une définition aussi générale, vous comprendrez pourquoi j'affirme sans peur que c'est le plus vieux sujet scientifique : partout où il y a routine, méthode, transmission d'un savoir-faire, il y a algorithme! On pourrait donc pousser le vice jusqu'à considérer que les méthodes de chasse de nos ancêtres préhistoriques, qu'ils inscrivaient selon certaines théories sur les murs des grottes, étaient bel et bien des algorithmes.
Quelques algorithmes au cours de l'histoire
Pour autant, ce n'est que beaucoup plus tard qu'est généralement placée la date des premiers algorithmes principalement parce qu'il fallut attendre l'apparition de l'écriture pour avoir des traces des méthodes employées et non seulement de leur résultat. Dans le dossier sur Pi, je vous avais présenté une des premières apparitions du nombre sur le papyrus de Rhind. Ce papyrus, qui date de -2000, contient aussi des traces d'un algorithme pour réduire plusieurs fractions au même dénominateur. De manière plus générale, toutes les méthodes pour calculer Pi sont des algorithmes et sont un bon exemple de la diversité du sujet.
Datant cette même période des débuts de l'écriture, entre -3500 et -1500 av. J.-C., on a retrouvé des tablettes babyloniennes indiquant comment calculer un inverse, effectuer une division, etc. Ces opérations peuvent paraître simples aujourd'hui, mais en tant qu'algorithmes, les méthodes devenaient applicables par n'importe qui (sans culture ni éducation nécessaire). Ces méthodes permettaient de faire facilement des multiplications, des règles de trois, etc. Pour l'anecdote, cette civilisation ne comptait pas en base 10 (avec 10 chiffres), mais en base 60, cela simplifie les divisions. Le choix de la base 60 s'explique probablement du nombre de phalanges des doigts d'une main (sans compter le pouce) et du nombre de doigts de la main (5×12=60). À titre d'anecdotes à ressortir en dîner de famille, c'est parce que les Babyloniens comptaient en base 60 que nous comptons 60 minutes dans une heure.
Il n'y a pas que ces vieilles civilisations qui s'aidaient d'algorithmes pour effectuer des opérations simples. Lorsque vous posez une division, vous effectuez des étapes mécaniques sans forcément savoir pourquoi elles fonctionnent, mais au contraire, vous avez appris par cœur un rituel qui permet de vite effectuer l'opération. Parmi les outils originaux pour effectuer des opérations simples, l'image ci-dessous (provenant de Wikipedia) représente l'invention de Lucas-Genaille : un système de réglettes pour effectuer la multiplication de deux grands nombres.
Pour effectuer la multiplication, il suffit de placer les réglettes correspondant au nombre choisi et de suivre les flèches noires comme sur la figure ci-dessous (provenant tout autant de Wikipedia).
Dans cet exemple, on effectue la multiplication de 52749 par 4 : en suivant les flèches noires, on trouve 210996. Ces réglettes furent commercialisées jusqu'en 1911! Ce système aussi amusant qu'ingénieux est une goutte d'eau au milieu des autres méthodes permettant de faire des opérations arithmétiques.
De tout temps, les algorithmes ont donc été au centre de l'activité humaine, mais il fallut attendre 1900 pour voir apparaître un début de formalisation de ce concept avec le 10e problème de Hilbert, nous y revenons dans la prochaine partie. Il n'a pas fallu attendre la formalisation pour voir apparaître des algorithmes très complexes. Jusqu'à cette période, le mot algorithme était le plus souvent associé à Euclide et une manière simple de présenter la notion d'algorithme était de donner l'exemple du célèbre calcul.
Algorithme d'Euclide
Euclide écrit au troisième siècle av. J.-C. 13 livres “les éléments“. Les premiers traitent de géométrie alors que les livres VII, VIII et IX posent les bases de la théorie des nombres. C'est justement dans le 7e livre qu'Euclide présente une méthode pour calculer le plus grand diviseur commun à deux nombres. Le plus grand diviseur commun de a et b, PGCD pour les intimes, est le plus grand nombre qui divise a et b (c'est-à-dire le plus grand nombre p tel que a/p et b/p soient entiers). Nous ne reviendrons pas ici sur la preuve du fonctionnement de l'algorithme ni sur la théorie des nombres, car ce n'est pas le sujet.
Bien qu'il soit très vieux, cet algorithme reste d'actualité et contient tous les éléments d'un algorithme “moderne”. Son fonctionnement tel que décrit dans le livre est résumé par la figure suivante. Pour les puristes, l'algorithme présenté ici est celui décrit par Euclide dans son livre et non l'amélioration utilisant la division euclidienne généralement présentée.
C'est un algorithme très utile et encore très utilisé, car il à été généralisé pour plusieurs résultats, par exemple, il permet de calculer les coefficients de l'identité de bezout qui sert dans le système de cryptage RSA, énormément utilisé pour la sécurisation du e-commerce. C'est l'un des plus vieux algorithmes encore en activité.
On y retrouve encore nombre d'éléments de la recette de cuisine :
Et surtout, l'algorithme d'Euclide correspond bien à l'idée de ce qu'est un algorithme présenté en début de dossier. Les souhaits présentés dans la première liste correspondent à ce que l'on attend d'un algorithme alors que cette nouvelle liste correspond à 5 outils qui permettent de construire des objets correspondant à la première intention. Deux questions s'imposent alors : ces 5 outils sont-ils indispensables? Et surtout est-ce qu'avec ces seuls 5 outils, on peut construire tous les algorithmes correspondants aux désirs énoncés? Avant de répondre à ces deux questions, nous allons faire un petit écart historique pour dire deux mots sur l'événement qui amena à une meilleure définition des algorithmes et déclencha les nombreux travaux qui aboutirent à leur réponse.
La fin du formalisme de Hilbert
En 1900, au congrès international des mathématiciens, Hilbert présenta 23 problèmes non résolus qui selon lui étaient les plus importants du moment. Un certain nombre sont aujourd'hui résolus : c'est-à-dire que l'on a montré qu'ils étaient soit vrais soit faux. Ou alors on a prouvé qu'ils étaient indécidables, qu'on ne peut pas dire s'ils sont vrais ou faux; ils sont indépendants de la théorie considérée. Un équivalent aujourd'hui de cette démarche est les problèmes du prix du millénaire pour lesquels l'institut mathématique Clay offre un million de dollars à qui apporte une solution (et pour information, cette somme ne serait qu'un pourboire tant la plupart de ces problèmes sont importants et ont plusieurs applications cruciales telles que la cryptographie).
Hilbert dans sa démarche visait à montrer une certaine “perfection” des mathématiques en demandant la démonstration de trois résultats :
Ironie de l'histoire, alors qu'Hilbert souhaitait que tous ces énoncés soient vrais, il fallut moins de 50 ans pour démontrer q
u'il n'existait pas de théorie mathématique suffisamment complexe pour contenir les opérations élémentaires (addition, multiplication, inverse…) à la fois consistante et complète. Et surtout qu'une procédure qui permet de décider si un énoncé est vrai en un temps fini n'existe pas. Une défaite pour la pensée de Hilbert, mais grâce à ses problèmes, une avancée exceptionnelle des mathématiques et de la connaissance de leurs limites.
La dernière question, qui correspond au 10e problème de Hilbert, parle sans s'en rendre compte d'algorithme. En effet, Hilbert souhaite trouver une méthode qui s'exécute en un nombre fini d'étapes pour obtenir son résultat. Et pour apporter une solution à ce problème (la solution est que c'est impossible, mais ça reste une solution), il fallut bien définir la notion d'algorithme. Et grâce à cette bonne définition, on put en cerner certaines limites.
La caractérisation précise des algorithmes a pu se faire en définissant la notion de fonction calculable, c'est-à-dire une fonction qui coïncide avec la description faite en début de dossier. Beaucoup de très grands noms des mathématiques du XXe siècle ont proposé une définition de la calculabilité. Il y a d'abord Godel, qui après avoir détruit les rêves de Hilbert sur l'incomplétude et la cohérence présenta une définition de “fonctions récursives” conçues sur quelques règles simples. Alonzo Church démontra l'impossibilité du problème de décision posé par Hilbert, résultat qui a aujourd'hui son nom. Il créa de son côté le lambda calcul, qui tout comme les fonctions récursives de Godel, avait pour but de représenter les algorithmes. Enfin, Turing proposa encore une autre construction, les machines de Turing, dont nous allons reparler tout de suite.
Entre 1931 et 1936, divers scientifiques brillants ont proposé plusieurs définitions de fonctions calculables qui paraissaient toutes aussi pertinentes. En fait toutes ces constructions sont équivalentes, les algorithmes que l'on peut construire avec sont les mêmes! Il n'y avait donc en fait qu'un ensemble de fonctions, de méthodes que l'on pouvait fabriquer et c'est ce que l'on appelle aujourd'hui les algorithmes. Dans la partie suivante, nous allons voir l'une de ces constructions, sans aucun doute la plus célèbre : la machine de Turing.
Machine de Turing
Il n'a pas été facile de choisir la définition de fonction calculable que j'allais présenter pour ce dossier. À vrai dire, je ne savais pas qu'il y en avait autant et surtout celle des machines de Turing était de loin celle qui me parlait le moins, me paraissait la moins intuitive. Puis, j'ai lu l'extrait traduit de “on the computable numbers, with an application to the Entscheidungsproblem” que vous pourrez trouver dans “histoires d'algorithmes”, livre dont la référence complète est donnée en fin de dossier. Si vous le pouvez, lisez le texte directement, c'est limpide et explique très simplement la construction de ces “machines”.
Turing cherche donc à formaliser l'opération que l'on appelle intuitivement “calcul”. Il commence par énumérer les différents éléments nécessaires pour faire un calcul. Le calcul est fait sur une feuille où l'on écrit les symboles les uns après les autres sur une ligne. Il propose donc de modéliser cela par un ruban de papier quadrillé. Il explique ensuite qu'on doit se limiter à un nombre fini de symboles tels que dans notre alphabet et précise que l'un de ces symboles doit être repéré comme étant le “0″, la case vierge.
Tout comme nous ne regardons qu'une étape de recette à la fois, Turing poursuit en disant qu'un calculateur ne peut observer qu'un nombre de symboles fini fixé à chaque étape. Et tout comme le plat est dans un état bien déterminé et le cuisinier dans un état d'esprit bien précis avant le début d'une étape, il précise que sa machine est dans un nombre fini d'états au moment de l'observation.
Il explique ensuite que la donnée de l'état du calculateur et de l'observation des symboles permet d'effectuer deux opérations :
- changer l'ordre des cases en échangeant une case observée par une case voisine ;
- remplacer le symbole dans une case du ruban par un nouveau.
Lorsque l'on suit une recette de cuisine, on n'effectue pas autre chose, on ajoute et retire des ingrédients, on les mélange… Si l'on décompose la recette au maximum en opérations simples, on arrive à rester dans la modélisation de Turing.
Et… C'est tout! À partir de cette construction, on arrive à modéliser toutes les choses que nous appelons ou soupçonnons être à ce jour des “algorithmes”. En fait, ce que nous appelons aujourd'hui une machine de Turing est encore plus simple et permet de fabriquer exactement les mêmes systèmes : l'alphabet n'a que deux symboles (0 et 1), on observe une seule case à la fois et on ne peut utiliser que les cases directement voisines à la case observée.
Il fut montré que les machines de Turing sont équivalentes à toutes les autres fonctions “calculables” de l'époque et on ne connaît pas à ce jour de “méthode” exécutable par une machine, un humain ou un animal qui ne soit pas modélisable par l'une d'elles. Mais pour autant, est-ce que ces fonctions calculables correspondent bien à l'intuition de la notion d'algorithme? Alonzo Church en était convaincu et cette hypothèse est aujourd'hui connue sous le nom de “thèse de Church“. Autant dire tout de suite que cette conjecture à peu d'espoir d'être démontrée tant elle est plus proche de la philosophie que des sciences (allez donc jeter un oeil à la conférence mise en lien en fin de dossier si le sujet vous intéresse)… D'autant plus que grâce aux raisonnements de Cantor, on peut démontrer que l'ensemble des fonctions calculables est dénombrable. Comme l'ensemble des nombres réels est indénombrable, il existe une infinité de nombres non calculables par des algorithmes! Reste à savoir si ce sont des nombres atteignables dans le monde “réel”.
Savoir calculer ne suffit pas
Une fois la notion de fonction calculable posée et la thèse de Church avancées, nous savions que nous avions en main tous les outils pour créer des algorithmes des plus complexes. Pourtant, cela est encore trop théorique. Dans les faits, avec l'arrivée des ordinateurs, pourtant dotés d'une capacité de calcul énorme (tout en étant parfaitement stupides, ce qui colle bien avec la définition d'un algorithme), on s'est rendu compte qu'une autre limitation empêchait de finir certains calculs.
Dans le cher monde réel, dire que l'on obtiendra un résultat en un temps fini ne suffit pas, parce que cela n'empêche pas par exemple que le temps d'exécution d'un algorithme prenne plusieurs fois l'âge de l'univers pour s'exécuter (sisi, c'est très grand, mais c'est fini). Dans le guide du voyageur galactique par exemple, des habitants d'une planète construisent une machine pour répondre à la grande question sur la vie l'univers et tout le reste et ce n'est que 7 millions et demi d'années plus tard que la réponse, 42, est obtenue!
La complexité algorithmique est l'objet de l'un des 7 problèmes à un million de dollars et déjà traité dans le tout premier épisode du podcast (contrairement à ce que l'on a cru brièvement a l'époque, le problème est toujours ouvert). Ce problème, que l'on résume souvent à “P=NP” est selon la plupart des mathématiciens à la fois le plus important de ceux de l'institut Clay et le plus à même à être résolu par un amateur. Certains problèmes appartiennent à la catégorie P (les plus “simples”) et d'autres a la catégorie NP (les plus complexes), tout l'enjeu du problème est de prouver que ces catégories sont les mêmes. Et pour le démontrer, il suffirait soit de prouver qu'un seul problème NP n'est pas P (on a alors P different de NP) ou qu'un seul problème NP-Complet (classe particulière de problèmes NP qui sont équivalents à tous les autres) est en fait dans P (alors P=NP), voilà pourquoi beaucoup pensent qu'un amateur pourrait apporter une solution.
Ce qui différencie ces problèmes, c'est la complexité des algorithmes que l'on connaît pour les résoudre. La complexité d'un algorithme est un ordre de grandeur du temps qu'il faut pour obtenir un résultat en fonction de la taille des données du problème dans le pire des cas. Prenons un exemple amusant qui a été posé à un ami lors d'un entretien d'embauche.
Imaginons que vous ayez une noix de coco et devant vous un immeuble de n étages. Vous souhaitez savoir à quel étage exactement la noix de coco se casse. La seule solution dans ce cas, et d'aller à chaque étage en commençant par le rez-de-chaussée et de lâcher la noix de coco pour voir si elle se casse (on suppose que la noix de coco ne s'abîme pas, soit elle se casse soit elle reste indemne). Dans le pire des cas, c'est au dernier étage que la noix de coco se casse, il faut donc faire n tests.
Avec deux noix de coco, le problème devient plus intéressant. Ce qui vient tout de suite à l'esprit est de balancer la première noix de coco à la moitié du bâtiment puis en fonction de la casse à la moitié de la moitié restante et ainsi de suite jusqu'à ce qu'elle casse et de finir avec l'autre en testant tous les étages restants.
Mais quitte à séparer le bâtiment en deux parties, on peut le séparer en 3, 4, 5 ou plus généralement k parties. Il faudra alors au pire des cas que l'on effectue k tests avec la première noix de coco puis n/k tests (les étages restants) avec la deuxième noix de coco. On effectue donc opérations. Il s'agit alors de trouver pour quel k on effectuera le moins d'opérations.
C'est à dire de trouver le nombre m tel que pour toutes les valeurs de k, soit supérieur à m. Autrement dit que
est supérieur à zéro pour tous les k. Comme k est supérieur à zéro, cela revient à trouver le minimum du polynôme
.
Pour résoudre un polynôme de degré 2, rappelez-vous de l'algorithme appris à l'école ou allez consulter votre mémoire numérique Wikipédia, il faut calculer le déterminant qui vaut
pour le polynôme
. Dans notre cas, il vaut donc :
Pour qu'un polynôme ne change pas de signe, il faut qu'il ait une racine double (le fameux cas rappelez vous!), c'est-à-dire que
. Le k pour lequel est atteint ce minimum est alors
. Il faut donc diviser le bâtiment en racine carrée du nombre d'étages pour aller au plus vite à la solution (on obtient alors le résultat en
opérations).
Ces exemples montrent que l'on peut résoudre un même problème de façon plus ou moins rapide. Dans les cas présents, si l'on passe d'un bâtiment de 10 étages à un bâtiment qui en a 100 000, dans le premier cas, on multiplie le nombre d'opérations par 10000 alors que dans le second on le multiplie seulement par 100. Cela peut dans certains cas différencier un algorithme exécutable en temps humain d'un algorithme dont nous ne verrons jamais la fin.
Pour revenir au problème P=NP, les problèmes P sont ceux pour lesquelles ont connaît un algorithme qui ne nécessite “que” un nombre polynomial d'opérations par rapport à la taille des données d'entrée. C'est-à-dire que le nombre d'opérations qu'ils nécessitent pour des données de taille n est inférieur à pour un certain k. Les problèmes NP sont quant à eux des problèmes dont on ne connaît pas d'algorithme les résolvant en temps polynomial, mais où il est facile de vérifier si l'on a une solution (facile veut dire que cette vérification se fait en temps polynomial). Dans l'exemple de la noix de coco, même s'il faut n opérations pour résoudre le problème il n'en faut qu'une seule pour voir si la noix de coco est cassée.
Les problèmes NP sont alors des problèmes que l'on résout facilement avec de la chance : en prenant une configuration au hasard et pour peu qu'on soit par chance tombé sur la solution, on sait s'en rendre compte rapidement. Toute la question de P=NP est alors de savoir si des problèmes simples à vérifier sont simples à résoudre.
Les problèmes NP ne sont pas du tout des problèmes exotiques mis en avant par un mathématicien un peu fou, ce sont des problèmes que l'on croise tous les jours. Le plus connu, le voyageur de commerce, demande à proposer une méthode pour trouver le chemin le plus court étant donné une répartition de maisons pour que le voyageur de commerce puisse toutes les voir. On sait facilement vérifier si l'on a bien le chemin le plus court, mais on ne sait pas facilement trouver ce chemin.
Plus amusant, étant donné une liste de mots et un mot croisé vierge, trouver où il faut mettre chaque mot est un problème NP, on sait très rapidement vérifier si la grille est bien remplie, mais on ne sait pas la remplir rapidement.
Ce problème reste aujourd'hui complètement ouvert. À une époque, on pensait qu'il était vrai, aujourd'hui beaucoup pensent qu'il est faux et d'autres qu'il serait indécidable…..
Ici s'achève le dossier sur les algorithmes, j'espère vous avoir éclairé sur le sujet et surtout vous avoir démontré que l'on pouvait parler d'algorithmes sans jamais parler d'ordinateur ni de langage de programmation!
Sources bibliographiques et autres liens pour aller plus loin :
- “histoires d'algorithmes : du caillou a la puce” : un excellent livre qui regorge d'exemples d'algorithmes. On y trouve le texte original, sa traduction quand c'est nécessaire et des explications historiques, c'est de loin celui qui m'al le plus servi a construire ce dossier.
- “Godel Escher et Bach : Les Brins d'une Guirlande Eternelle” : un livre référence en diffusion des mathématiques qui traite sur une grande part de ce sujet. Contrairement au précédent qui a une approche très historique, celui-ci a une approche plus poétique et plus imagée tout en restant parfaitement rigoureux.
- “les métamorphoses du calcul : une étonnante histoire des mathématiques” : un livre qui parle de Math et qui a eu le prix de philosophie de l'académie française! Livre qui parle de l'histoire du calcul et de la thèse de Church, ses implications, de la philosophie autour de cette hypothèse. Ce livre est écrit par un très bon pédagogue et est passionnant, pour autant, il ne faut pas oublier à la lecture que c'est le livre d'un informaticien, parfois un peu trop convaincu de la supériorité du calcul sur les mathématiques au sens large (calculables ou non).
- Gilles Dowek qui a écrit le livre précédent est écoutable et visionable dans une conférence. Elle nécessite l'instalation de l'horreur “Real Player” mais je vous assure que cela vaut le coup!
- “Dossier pour la science : Les grands problèmes mathématiques” : un excellent numéro sur les problèmes a un million de dollars et sur quelques uns des problèmes de Hilbert.
- “on the computable numbers, with an application to the Entscheidungsproblem” Le papier original de Turing en anglais
- La recette a base de choux fractal : je ne suis pas responsable de la qualité de la recette, je ne l'ai pas testé!
merci à Sébastien pour le problème des noix de coco.
Cette semaine Ln nous parle de l’historique d’Internet et des logiciels libres, ces derniers ayant donné naissance à une nouvelle espèce de militants politiques.
La sociologie du logiciel libre, par Ln.
Retrouvez la version écrite ici: dossier
Les quotes de la semaine
- ”On Twitter we get excited if someone follows us. In real life we get really scared and run away. ” – Anonyme
- “The Internet is like alcohol in some sense. It accentuates what you would do anyway. If you want to be a loner, you can be more alone. If you want to connect, it makes it easier to connect.” – Esther Dyson
Pour une fois, on va parler un peu de la genèse de ce dossier. J’ai eu cette idée de dossier après la fermeture de MegaUpload et de la série d’attaques de déni de service revendiquée par Anonymous. Elle-même s’inscrivait dans un combat sur les lois de protections du droit d’auteur au États-Unis et de la ratification d’un accord international pour lutter contre la contrefaçon du nom d’ACTA. J’avais également en tête d’autres groupes proposant des actions politiques en lien avec ce qu’on pourrait appeler la “culture internet” comme La Quadrature du Net en France ou les Partis Pirates de par le monde.
Me voilà partie à la recherche d’informations scientifiques sur ces mouvements. Je connaissais déjà ce qu’en disaient les journalistes et autres experts mais pas les universitaires. Il faut dire que le noyau de ces groupes est une communauté particulière différente de l’internaute lambda. Du coup, j’ai eu du mal à trouver des sources scientifiques mais j’en avais quelques unes. La plupart expliquait les modes d’organisation de ces mouvements, comment ils se structuraient (ou pas), la structure de leur argumentaires. Souvent, c’étaient des observations assez ponctuelles. Bref, il me manquait un lien entre tout ça, un fil conducteur, le petit truc d’un bon dossier Podcast Science. Au moment où je désespérais de le trouver dans la littérature scientifique, une thèse a été publiée et là tout est devenu simple. Il s’agit de la thèse de Sébastien Broca, disponible librement sur TEL, l’archive ouverte des thèses françaises. Je reviendrai plus tard sur la notion d’archive ouverte. Cette thèse de sociologie s’intéresse à la construction de projets de transformation sociale en lien avec le mouvement du logiciel libre. En effet ces mouvements libertaires (basés sur la notion de liberté de l’individu) proposent un monde en se reposant sur leurs deux plus grands succès: Internet et le logiciel libre. Nous verrons comment doucement on est passé d’une culture partagée par un petit groupe d’universitaires à des réalisations marquées par leurs idéaux et de ces réalisation à une action politique qui modifiera le monde de la recherche.
La culture hacker
Avant d’aller plus loin, il faut revenir aux créateurs d’Internet et du mouvement du logiciel libre. Il s’agit d’universitaires imprégnés de l’idéologie libertaire présente sur les campus américain dans les années 60 et 70 (mouvement des droits civiques, hippie…) Ils se sont auto-nommés hackers (ou bidouilleur en français). Le choix du terme de hacker n’est pas anodin puisqu’il signifie celui qui fait un hack en anglais. Le terme de hack en informatique signifie une solution rapide et bricolée pour contourner un problème. Il ne faut pas le confondre avec le cracker qui est celui qui trouve une faiblesse dans un logiciel ou dans un système. Il peut ou non exploiter cette faiblesse, l’indiquer aux créateurs ou la rendre publique.
Ces valeurs libertaires sont mises en forme à travers différents textes des années 80 proposant un cadre aux programmeurs et surtout aux hackers. L’« éthique hacker » a été codifiée par Steven Levy (journaliste spécialisé dans l’histoire du mouvement hacker) selon les principes suivants :
- Toute information est par nature libre;
- Ne pas se fier à l’autorité, promouvoir la décentralisation;
- Les hackers se jugent par leurs prouesses, non par d’autres hiérarchies sociales;
- Art et beauté peuvent être créés avec un ordinateur;
- Les ordinateurs peuvent changer et améliorer la vie.
La question qu’on peut se poser est de savoir si ces hackers sont de droite ou de gauche. A vrai dire, il existe des hackers de toutes les tendances politiques entre l’extrême gauche à l’extrême droite. Pour bien comprendre, il faut changer la façon de représenter les positions politiques. Classiquement on les représente sur un axe gauche/droite, mais il est possible de classer les opinions politiques selon d’autres axes tels que l’écologie, le rôle de la religion, le commerce extérieur etc… Un politicien américain, Nolan, a ainsi proposé un graphique a deux axes : l’horizontal sur la liberté économique et le vertical sur la liberté individuelle. Ce graphique a été modifié pour être représenté sous la forme d’un cadran ou d’une boussole :
Ainsi les hackers se retrouvent vers le pôle libertaire mais répartis le long de l’axe gauche/droite. On remarquera qu’avec ce genre de représentation, la plupart de nos hommes politiques sont plutôt du côté “autoritaire” de l’axe libertaire/autoritaire. Cette non-appartenance à un parti en particulier a poussé à la création en 2006 d’un Parti Pirate en Suède puis dans d’autres pays (33) qui se regroupent au sein du Parti Pirate International. C’est en Allemagne que le Parti Pirate fait actuellement ses meilleurs scores. Peut-on y voir la politisation ancienne des hackers allemands en particulier via le Chaos Computer Club à Berlin, un espace de partage de ressources informatiques ou hackspace qui à toujours eu une réflexion sociétal?
Les valeurs de la culture hacker vont être importantes dans la construction d’Internet et le fondement des logiciels libres. Ainsi le sociologue des usages numériques Antonio A. Casilli nous explique :
“La spécificité de la culture numérique réside dans l’inséparabilité de ses valeurs politiques et des usages technologiques. L’architecture même du Web actuel représente la mise en place de la décentralisation et de l’autonomie prônées pas ses pionniers. Internet est un réseau de réseaux, une multitude d’ordinateurs qui ne sont reliés à aucun grand serveur central. Malgré les restrictions du trafic des données, les filtres aux contenus et les dispositifs de surveillance imposés constamment par les pouvoirs étatiques, l’effort pour normaliser ce bourdonnement d’informations et d’opinions antagoniques s’avère vain.”
La naissance d’Internet et des logiciels libres et leurs principes de base
Il nous faut bien comprendre ce que sont le logiciel libre, l’Internet et leur morale libertaire. Pour cela rien ne vaut de revenir leurs origines universitaires, maintenant que nous avons vu la culture qui imprègne leurs créateurs.
Si le mythe veut qu’Internet soit né d’une demande de l’armée américaine d’avoir un réseau qui résiste une attaque nucléaire, la réalité est quelque peu différente. Tout commence en 1958 quand la société Bell invente le premier modem qui permet de transférer des données binaires sur une ligne téléphonique. A cette époque, il existe des réseaux d’ordinateurs mais ils sont limités et reposent sur un ordinateur central. En 1961, l’informaticien Leonard Kleinrock du Massachusetts Institute of Technology (MIT) publie une première théorie sur l’utilisation de la commutation de paquets pour transférer des données. Il s’agit de découper les données en plusieurs paquets pour accélérer le transfert. Bien sûr, chaque paquet a un en-tête qui indique le contenu et sa destination. En 1962, J.C.R. Licklider défend avec succès l’idée d’un réseau global d’ordinateurs au sein de l’ARPA, un organisme de recherche de l’armée américaine. Si l’idée d’un réseau informatique résistant à une attaque nucléaire a bien été avancée dans les années 60, l’armée n’a pas retenu cette idée. Elle développe néanmoins un réseau, ARPANET, pour rendre service aux militaires et aux scientifiques. C’est le 29 octobre 1969 qu’a lieu la première connexion via ARPANET entre l’Université de Californie à Los Angeles et le Stanford Research Institut. La connexion fut brève et racontée ainsi par Kleinrock :
“Nous avons appelé au téléphone les gars de SRI. Nous avons tapé L et nous avons demandé au téléphone:
_ Voyez-vous le L?
_ Oui, nous voyons le L.
Nous avons tapé le O et nous avons demandé “Voyez-vous le O?”
_ Oui, nous voyons le O.
Alors nous avons tapé le G et le système a crashé.”
Tandis que 23 ordinateurs sont reliés sur ARPANET en 1972, le premier mail est envoyé. Pendant dix ans, ce sera l’application majeure du réseau. Vers 1975, le protocole IP (Internet Protocol) est développé. C’est l’adresse nécessaire à l’envoi des paquets. En 1979, apparaît le réseau USENET, un réseau de forum toujours actif. Plusieurs autres réseaux se développent et s’interconnectent en 1981 grâce au protocole IP. C’est la naissance d’Internet. En 1988, un système de messagerie instantané est mis en place : l’IRC (Internet Relay Chat) qui est toujours très utilisé par les développeurs et les Anonymous en particulier. Début 1990, Tim Berners-Lee travaillant au CERN propose l’idée d’une architecture permettant de lier et d’accéder à des informations via une interface de navigation et utilisant la technique de l’HyperText (langage HTML et protocole HTTP). Il s’agit du World Wide Web (WWW) qui se mettra en place l’année suivante.
Dans le même temps, les premiers micro-ordinateurs arrivent sur le marché et avec cette arrivée, le monde du logiciel se trouve chamboulé. Jusque-là, les fabricants vendaient l’ordinateur et “offraient” le logiciel nécessaire à l’acheteur. L’entreprise qui achetait des ordinateurs, avait des informaticiens qui amélioraient au besoin le logiciel. Mais la micro-informatique démocratisait l’ordinateur et multipliait son usage. Des entreprises se créaient pour vendre des logiciels en fournissant une version dite “compilée”. Si on peut assimiler un logiciel à un plat, la version compilée est le plat tout prêt tandis que le code source est la recette. Pour protéger leurs logiciels, ces entreprises affirmèrent leurs droits d’auteurs sur ceux-ci et émirent des licences d’utilisation restreignant les droits des usagers à partager et à modifier les logiciels.
Cela trancha avec les habitudes des programmeurs puisque au début de l’informatique, cette communauté était restreinte et travaillait en collaboration. Bon nombre d’étudiants en informatique des années 1960 et 1970 sont des hackers (ou bidouilleurs). Ils prônent l’autonomie individuelle, le partage et la coopération. C’était en particulier le cas au laboratoire d’intelligence artificielle du MIT où travaillait Richard Stallman. Voyant ses possibilités de travailler à partir de logiciels déjà existants se réduire à zéro, il décida de partager ses propres programmes avec la communauté d’informaticiens. Il voulait créer un système d’exploitation et créer le projet GNU (GNU’s Not UNIX) en 1984. Pour protéger le partage de son travail, il créa une licence (la GNU/GPL – GNU General Public License -) pour garantir 4 libertés fondamentales :
0. la liberté d’exécuter le programme, pour tous les usages;
1. la liberté d’étudier le fonctionnement du programme et de l’adapter à ses besoins;
2. la liberté de redistribuer des copies du programme (ce qui implique la possibilité aussi bien de donner que de vendre des copies);
3. la liberté d’améliorer le programme et de distribuer ces améliorations au public, pour en faire profiter toute la communauté.
Pour pouvoir donner cette liberté à l’utilisateur, il est nécessaire de publier le code-source du logiciel (ou la recette). Le logiciel est alors appelé logiciel libre ou open source. Il se créait alors une petite communauté pour aider Stallman sur son projet. Ce projet resta inutilisable car il manquait un cœur qui fut codé par un jeune finlandais Linus Torvalds qui nomma son logiciel Linux en 1991. Si Stallman a créé les logiciels libres par idéologie, Linus Torvalds explique son choix de ces licences pour une raison pratique. La coopération technique est très efficace pour améliorer les logiciels. C’est cette position qui permit aux logiciels libres d’exploser dans le monde informatique. On peut affirmer que les licences libres sont des hacks du droit d’auteur.
Même si les licences permettent en général de modifier et même de revendre les logiciels libres, ou des applications basées sur des logiciels libres, le modèle restera gratuit car il se trouvera toujours quelqu’un pour les redistribuer gratuitement. Au lieu de gagner de l’argent sur les licences, les éditeurs de libre font leur chiffre d’affaire sur le développement, les formations, le support et des versions premium (par exemple le business modèle de MySQL). D’ailleurs, il ne faut pas confondre gratuit et libre. Les navigateurs Internet Explorer et Safari par exemple sont gratuits mais ils ne sont pas libres. Idem pour la technologie Flash. Tout le monde peut s’en servir gratuitement mais la technologie reste “propriétaire” et son développement n’est pas collaboratif.
Au niveau d’Internet, ces valeurs libertaires se traduisent essentiellement par le fait que l’information doit être libre, gratuite, de n’être pas soumise à la propriété privée et une certaine méfiance vis-à-vis de pouvoir. C’est dans cette optique qu’est né Wikipédia dont le but est de créer une encyclopédie libre et coopérative au début des années 2000. De même, WikiLeaks se veut être un espace qui diffuse l’information pour faire un contre-pouvoir en publiant et relayant des fuites.
On voit bien à travers cette histoire que les idéaux libertaires présents dans les campus américain des années 60 et 70, en particulier dans certains laboratoires d’informatique ont influencé la naissance d’Internet et des logiciels libres. Le succès de chacun des deux étant lié à l’autre : sans logiciels libres pas de réseau des réseaux (chacun ayant son propre langage) et sans Internet, la possibilité de développer des logiciels de façon communautaire et de les proposer aux plus grand nombre n’est pas faisable.
Du code à la culture libre
Depuis le début des années 2000, pour défendre la possibilité de faire des logiciels libres, les programmeurs se mobilisèrent contre différentes régulations renforçant la protection de la propriété intellectuelle. Les développeurs adoptèrent un discours plus large que leurs intérêts propres : on ne se bat pas pour défendre le logiciel libre mais la liberté d’expression et donc la démocratie (avec une liberté d’expression totale). Dans ces combats, les programmeurs utilisèrent les mêmes méthodes que celles qu’ils utilisaient dans les projets de logiciels libres : discussion démocratique, coopération dans la collecte d’information et diffusion des idées. Ces combats ont aussi donnés naissance à différentes formes d’engagement politique que soit sous forme d’un parti politique (le Parti Pirate), d’associations militantes telle que La Quadrature du Net ou des groupes d’actions plus directes tel qu’Anonymous. Enfin ces combats permirent la rencontre entre les défenseurs des logiciels libres et d’autres militants libertaires.
En 1998, aux États-Unis, le congrès vote le Sonny Bono Copyright Term Extension Act suite au lobbying de Disney qui, sans cette loi, perdait le copyright du personnage de Mickey Mouse. En effet, cette loi étendait le copyright à 70 ans après la mort de l’auteur, à 95 ans après publication ou 120 ans après création pour les copyrights détenus par des entreprises. Devant ce renforcement de la propriété intellectuelle,
[…] plusieurs personnes travaillant sur des projets similaires à contre-courant des idées reçues avec différents degrés d’interconnexion, semblèrent converger vers un mouvement intellectuel commun, centré sur l’importance des biens communs pour la production de l’information et la créativité de manière générale, et pour l’environnement numérique en réseau en particulier»
Explique Yochai Benkler, un professeur de droit s’intéressant à cette question.
Pour résister à cette privatisation, le juriste Lawrence Lessig prit pour modèle le monde du logiciel libre et il créa avec l’aide d’autres juristes les licences Creative Commons pour laisser libre des pans entiers de la culture contemporaine. Il est intéressant que si certaines de ces licences sont libre dans le même sens que celui défini par Stallman, d’autres sont des licences de libre distribution.
Les militants libertaires ont vu dans le logiciel libre une alternative concrète au capitalisme industriel. Ainsi il est possible de créer en coopération ou/et en autogestion des biens ou des services de façon indépendante du marché ou de l’État. Pour le libertaire, cela permet à l’individu de faire ce qui lui plait même s’il ne veut ou ne peut pas le monétiser. Par exemple, Lessig, le créateur des Creatives Commons et Benkler propose l’idée de “biens communs” qui serviraient la communauté et serait en autogestion. Cela soulève deux problèmes : la mise en place de l’autogestion sur de grandes communautés et la réutilisation d’un travail gratuit pour faire de l’argent.
Application de l’idéal du logiciel dans le monde de la recherche scientifique
Si ce mouvement provient du monde universitaire américain, il a un effet boomerang et vient modifier le monde de la recherche et en particulier sur la diffusion de l’information scientifique.
Un petit rappel (ou non) du mode de traditionnel de diffusion du travail scientifique est nécessaire avant de pousser plus loin l’effet de la culture libre sur les Sciences. Quand un scientifique obtient un résultat, il écrit un article qu’il soumet à une revue scientifique. Cette revue fait appel à d’autres scientifiques spécialistes du domaine ou “reviewers” pour vérifier si les résultats semblent corrects et corriger quelques erreurs. Si l’article est de bonne qualité, l’auteur fait les quelques corrections nécessaires indiquées par les reviewer. Ces échanges sont censés être anonymes: les reviewers ne connaissent pas le nom du ou des auteurs qui à leur tour ne connaissent pas leur reviewers. Une fois accepté, l’article peut être publié dans un numéro du journal. Selon les disciplines et les journaux, entre la découverte du résultat et la publication, il peut se passer plusieurs années. Tout ce travail est fourni gratuitement par les universitaires. Seule la publication faite par les éditeurs est monétisée. Ainsi l’abonnement et l’achat d’article à l’unité est payant.
Dès l’apparition du web (1991), des physiciens créèrent une archive (arXiv) de pré-print (version de l’article soumis au journal mais sans les correctifs de reviewers). Cela permettait d’envoyer par e-mail les pré-prints. Cette première archive ouverte mit au jour la possibilité de mettre un article en ligne permettant à tous d’y accéder et de le lire. Cette possibilité est arrivée au même moment où le système traditionnel d’impression papier de revues scientifique était en crise. Si le nombre d’articles augmentait, les abonnements augmentaient plus vite que l’inflation alors que les budgets des bibliothèques universitaires stagnaient. Cela entraîna une diminution de l’accès à l’information alors qu’elle pouvait être facilement accessible. Les bibliothécaires ont alors alerté les chercheurs et l’administration sur cette crise puis ont fait une promotion active de l’Open Access.
La première déclaration de l’accès libre remonte à 2001 et l’Open Access Initiative de Budapest. Il existe deux façons de rendre un article libre d’accès: soit l’auteur le dépose dans une archive ouverte ou une page personnelle. L’article y est accessible gratuitement pour tous. Il s’agit de l’auto-archivage ou la voie verte. La plus grande archive française est HAL du CNRS mais les autres grands organismes de recherche en ont souvent une. Sinon, l’auteur publie son article directement dans une revue dite Open Access, c’est-à-dire donnant accès librement aux articles immédiatement. Il s’agit de la voie en or. Certains journaux proposent leurs articles gratuitement après une période dite d’embargo où seuls les abonnés ou les acheteurs peuvent avoir accès aux articles. Cette période est le plus souvent comprise entre 6 mois et 1 an mais peut durer plus longtemps. De même, certains éditeurs refusent aux auteurs d’archiver eux-mêmes un article trop récent.
L’usage de l’Open Access est très variable selon les domaines scientifiques ainsi en physique des particules 100% des publications sont en accès libres (par auto-archivage) alors qu’en chimie, il ne s’agit que de 13% des publications sont en accès libre. Ces variations dépendent de l’habitude et la mentalité propre à chaque discipline. La physique des particules a très tôt utilisé arXiv pour archiver ces publications et elle repose sur de forte collaboration. En chimie, au contraire, une forte compétitivité industrielle peut limiter une diffusion libre de l’information.
Les principaux arguments pour l’accès libre aux articles scientifiques sont l’accès de tous les chercheurs à l’information scientifique en particulier les étudiants et les chercheurs dans les pays en voies de développement dont les institutions ne peuvent pas payer d’abonnement. Mais ce libre accès permet également à la connaissance de quitter la sphère de la recherche pour être accessible à des professionnels tels que des médecins, aux journalistes -en particulier scientifiques-, aux hommes politiques ou aux simples amateurs. Aux USA, cette accessibilité est mise en avant pour la recherche publique dont les résultats doivent être accessibles à celui qui paye – alias le contribuable.
Néanmoins, le libre accès n’est pas sans coût. Pour les archives ouvertes, ce sont de grandes institutions qui payent pour l’hébergement et le support technique nécessaire à leur fonctionnement. Mais pour les journaux en libre accès se posent la question du financement du travail d’éditions. Ils font supporter ce coût non pas aux lecteurs mais à l’auteur. Ce mode de monétisation est critiqué puisque les journaux pourraient être tentés d’accepter tous les articles quelque soit leurs qualités scientifiques. De même ce type de financement oblige les institutions à prévoir un budget pour la publication en plus de ceux pour la recherche en elle-même.
Si logiciel libre propose des alternative intéressante en dehors du libre marché, il soulève d’autres problèmes comme le support des coûts non réductible, l’application des licences libres…
Cette semaine, c’est concours sur Podcast Science!
Nous vous avons mijoté une émission faite de vraies et de fausses news pour le 1er avril et vous avez jusqu’au mercredi 18 avril (avant le live à 20h30) pour démêler le bon grain de l’ivraie et nous indiquer votre verdict. Lesquelles de ces news news sont vraies et lesquelles sont fausses?
Indice: 1 seule news par animateur est fausse, toutes les autres sont vraies. Les news de Nico sont sous-titrées et munies de quelques indices pour que vous ayez vos chances de vous y retrouver (et de comprendre la question
)
A gagner: un magnifique t-shirt Podcast Science (n’oubliez pas d’indiquer votre adresse et votre taille de t-shirt dans la réponse) et/ou un livre à choix de notre bibliothèque idéale.
- Marco: on pourra bientôt repasser sans effort grâce aux nanotechnologies. Vrai ou faux?
=> FAUX! cette news était inventée de toute pièces par Marco - Nico: La multiplication des pains : Banach et Tarski ont montré en
1724*1924 que l’on pouvait, en découpant une sphère (ou un morceau de pain) en un nombre fini de morceaux en reconstituer deux identiques à la première. Soit une technique pour multiplier les pains!
Est-ce un vrai résultat mathématique ou une pure invention?
* Erratum: nous avons dit 1724 à l’antenne. On parle bien de 1924!
=> VRAI! Voir le paradoxe de Banach-Tarski - Ln: découverte et présentation de trois nouvelles espèces de Rhinogrades
=> FAUX! Mais Google et Wikipédia pouvaient vous induire en erreur si vous regardiez un peu trop vite… - Alan: la miraculine rend sucrés les aliments acides et on sait pourquoi
=> VRAI! Plusieurs sources… Ma préférée, SSAFT, bien sûr! - Nico: Pi n’est pas un nombre univers : Angela Socpittebu aurait démontré en aout de cet année que le nombre 15 140 818 181 413 n’était pas dans les décimales de pi, ce qui implique directement que pi n’est pas unnombre univers
Ce résultat est en cours de validation.A. Socpittebu a-t-elle vraiment proposé une démonstration que Pi n’est pas un nombre univers?
=> FAUX! Du grand délire… Angela Socpittebu n’est autre que l’anagramme de Nicolas Tupégabet… Quant à 15 140 818 181 413, il suffit de compter les lettres de l’alphabet en partant de zéro… C’est un15 P
14 O
08 I
18 S
18 S
14 O
13 N - Alan: des chercheurs en ingénierie de l’UCLA transforment du courant électrique en carburant
=> VRAI! http://www1.cnsi.ucla.edu/news/item?item_id=2046567 (Merci à Vincent Jaquel pour le lien) - Ln: des embryons de mammifères peuvent mettre leur développement en pause
=> VRAI! http://www.sciencepresse.qc.ca/actualite/2012/03/21/quand-lembryon-se-met-pause
- Nico: la théorie universelle : B. Russel expliquait dans ses cours qu’en prenant des hypothèses contradictoires (comme 2+2=5), on pouvait démontrer n’importe quel résultat. En quelque sorte donc, construire une théorie où toute proposition est vraie.
B. Russel a-t-il vraiment existé et surtout a-t-il vraiment prouvé qu’en supposant que 2+2=5 on pouvait tout démontrer?
=> VRAI! http://fr.wikipedia.org/wiki/2_%2B_2_%3D_5 - Alan: la plus petite balance du monde peut peser un électron
=> FAUX! Elle peut peser un proton. http://www.popsci.com/science/article/2012-04/worlds-most-sensitive-scale-can-detect-single-protons - Marco: on a découvert une galaxie rectangulaire
=> VRAI! http://www.futura-sciences.com/fr/news/t/astronomie/d/decouverte-dune-etonnante-galaxie-rectangulaire_37569/
- Ln: voir un film triste est bon pour le moral
=> VRAI! http://www.sciencedaily.com/releases/2012/03/120326132533.htm
liens:
- la re sortie de Titanic en 3D
- la série TV Titanic sur TMC
- le compte twitter du Titanic : @RMS_Titanic_Inc
- Marco: Microsoft a breveté un écran tactile qui lutte contre les bactéries
=> VRAI! http://www.techno-science.net/?onglet=news&news=9704
Le plug de la semaine
(Via Xavier Agnès)
Conférence de Nicolas Gauvrit: « L’art de mentir avec les statistiques »
L’Association Française pour l’Information Scientifique du Languedoc-Roussillon (AFIS-LR) vous convie à assister, dans le cadre des «rencontres pour l’information scientifique », à une conférence de Nicolas Gauvrit, Docteur en sciences cognitives, Agrégé de mathématiques, ayant pour thème « L’art de mentir avec les statistiques ».
Présentation:
Le jeu des statistiques commence avec le choix d’un échantillon. Puis vient l’application d’un questionnaire particulier ou d’une autre manière de « mesurer ». On calcule ensuite des indices, on trace des graphes, et on les interprète. Parfois, on utilise même des statistiques pour vérifier que l’on peut généraliser les résultats observés.
A chaque étape de ce parcours, des paradoxes parfois étonnants, des pièges dissimulés peuvent tromper le statisticien de bonne foi… ou aider le charlatan. Nous verrons sur des exemples variés certains de ces pièges, sur un mode pointilliste.
Cette conférence se tiendra au Corum de Montpellier, le lundi 30 avril 2012 à 20h, dans le salon du belvédère.
Entrée libre et gratuite. Et ce sera l’occasion de faire connaissance avec Ln!
Plus d’infos sur http://afislr.over-blog.com/article-bientot-notre-premiere-conference-100718823.html
La quote de la semaine
When people are laughing, they’re generally not killing each other.
- Alan Alda (entre autres présentateur de Scientific American Frontiers)
Prochain event
- Samedi 9 juin 2012, Paris, Palais de la Découverte. Infos suivront
Prochain live
- le mercredi 11 avril 2012 avec Ln : du logiciel libre à la politique, décryptage sociologique du phénomène.
Bonne semaine, à bientôt!

























Derniers commentaires