# Savoir du sens commun

Dans le domaine de l'intelligence artificielle, le savoir du sens commun est l'ensemble des faits appartenant au monde quotidien que les humains sont censés connaître du simple fait de leurs activités et éducation de base. Sa prise en considération, au moyen de bases, et son intégration aux processus, notamment aux raisonnements, restent un problème non résolu en intelligence artificielle générale. Le premier programme d'IA qui aborde le savoir du sens commun est l'Advice Taker, en 1959, par John McCarthy.
Le savoir du sens commun soutient un processus de raisonnement de sens commun, pour des inférences comme « On peut faire cuire un gâteau parce qu'on veut que des gens mangent ce gâteau. » Un processus de traitement automatique du langage naturel se rattache à la base de connaissances du sens commun pour permettre à la base de connaissances de tenter de répondre aux questions sur le monde. Le savoir du sens commun aide aussi à résoudre des problèmes face à une information incomplète. En utilisant des croyances largement partagées à propos d'objets quotidiens, ou un sens commun, les systèmes d'IA font des hypothèses de sens commun ou des hypothèses par défaut similaires à la manière dont les gens raisonnent. Dans un système d'IA ou en français, on exprime cela comme « Normalement P est vrai », « Habituellement P » ou « Typiquement P donc on suppose P ». Par exemple, si on sait le fait que « Tweety est un oiseau », parce qu'on connaît cette vérité générale sur les oiseaux, « typiquement les oiseaux volent », sans rien connaître d'autre sur Tweety, on suppose raisonnablement le fait « Tweety peut voler ». Au fur et à mesure que l'on découvre ou apprend plus sur le monde, le système d'IA révise ses hypothèses sur Tweety en utilisant un processus de maintenance des raisons. Si on apprend ensuite que « Tweety est un pingouin », alors la maintenance des raisons révise cette hypothèse parce qu'on sait aussi « les pingouins ne volent pas ».

## Raisonnement de sens commun

Le raisonnement de sens commun simule la capacité humaine à utiliser le savoir du sens commun pour faire des suppositions sur la nature et l'essence des situations ordinaires rencontrées chaque jour, et pour changer d'« opinion » si de nouvelles informations apparaissent. Cela inclut le temps, l'information manquante ou incomplète et la cause et l'effet. La capacité d'expliquer la cause et l'effet est un aspect important de l'IA explicable. Les algorithmes de maintenance des raisons fournissent automatiquement une fonction d'explication parce qu'ils créent des registres détaillés des suppositions. Comparés aux humains, tous les programmes informatiques existants qui tentent une IA de niveau humain obtiennent des performances très faibles dans les tests modernes de « raisonnement de sens commun » comme le Winograd Schema Challenge. Le problème de parvenir à une compétence de niveau humain dans les tâches de « savoir du sens commun » est considéré comme probablement « AI complete » (c'est-à-dire que le résoudre exigerait la capacité de concevoir une intelligence de niveau entièrement humain)$^,$, même si certains s'y opposent et estiment qu'une intelligence compatissante est aussi nécessaire pour une IA de niveau humain. Le raisonnement de sens commun s'applique avec succès dans des domaines plus limités comme le traitement automatique du langage naturel$^,$, le diagnostic ou l'analyse.

## Construction d'une base de connaissances de sens commun

La constitution de bases de connaissances exhaustives d'assertions de sens commun (CSKB) est un défi de longue date dans la recherche en IA. Depuis les premiers efforts basés sur des experts comme CYC et WordNet, on réalise des avancées importantes grâce au projet participatif OpenMind Commonsense, qui aboutit à la base de connaissances participative ConceptNet. Plusieurs approches tentent d'automatiser la construction de CSKB, notamment via l'exploration de textes (WebChild, Quasimodo, TransOMCS, Ascent), ainsi que la création directe à partir de modèles de langage préentraînés (AutoTOMIC). Ces ressources sont nettement plus volumineuses que ConceptNet, même si leur construction automatisée leur confère une qualité modérément plus faible. Des difficultés persistent aussi quant à la représentation du savoir du sens commun : la plupart des projets CSKB suivent un modèle de données en triplets, qui ne s'adapte pas forcément à des énoncés en langage naturel plus complexes. Une exception notable est GenericsKB, qui n'applique pas de normalisation supplémentaire aux phrases, mais les conserve dans leur intégralité.

## Applications

Vers 2013, des chercheurs du MIT développent BullySpace, une extension de la base de connaissances du sens commun ConceptNet, pour repérer les commentaires à caractère harcelant sur les réseaux sociaux. BullySpace inclut plus de deux-cents assertions sémantiques autour de stéréotypes, pour aider le système à déduire que des commentaires comme « Mets une perruque et du rouge à lèvres et sois qui tu es vraiment » sont plus susceptibles d'être une insulte si on les adresse à un garçon qu'à une fille$^,$$^,$.
On utilise aussi ConceptNet dans des robots conversationnels et par des ordinateurs qui composent des fictions originales. Au Lawrence Livermore National Laboratory, on utilise le savoir du sens commun dans un agent logiciel intelligent pour détecter des violations d'un Traité d'interdiction complète des essais nucléaires.

## Données

À titre d'exemple, en 2012, ConceptNet inclut ces vingt-unes relations indépendantes de la langue :
* IsA (Un « RV » est un « véhicule »)
* UsedFor
* HasA (Un « lapin » a une « queue »)
* CapableOf
* Desires
* CreatedBy (« gâteau » peut être créé par « faire cuire »)
* PartOf
* Causes
* LocatedNear
* AtLocation (Un endroit où un « Cook » se trouve est un « restaurant »)
* DefinedAs
* SymbolOf (X représente Y)
* ReceivesAction (« gâteau » peut être « mangé »)
* HasPrerequisite (X ne fait pas Y sauf si A fait B)
* MotivatedByGoal (« On fait cuire » parce qu'on veut « manger »)
* CausesDesire (« faire cuire » donne envie de « suivre une recette »)
* MadeOf
* HasFirstSubevent (La première chose requise quand on fait X est que l'entité Y fasse Z)
* HasSubevent (« manger » a un sous-événement « avaler »)
* HasLastSubevent

## Bases de connaissances de sens commun

* Cyc
* Open Mind Common Sense (source de données) et ConceptNet (stockage de données et moteur de TAL)
* Evi
* Graphiq