{"id":9370,"date":"2021-11-26T17:02:48","date_gmt":"2021-11-26T16:02:48","guid":{"rendered":"https:\/\/scienceetonnante.com\/?p=9370"},"modified":"2021-11-26T17:03:35","modified_gmt":"2021-11-26T16:03:35","slug":"traitement-du-langage-naturel","status":"publish","type":"post","link":"https:\/\/scienceetonnante.com\/blog\/2021\/11\/26\/traitement-du-langage-naturel\/","title":{"rendered":"Comment les IA comprennent-elles notre langue ? Le traitement du langage naturel"},"content":{"rendered":"<p>Dans la vid\u00e9o d&rsquo;aujourd&rsquo;hui, on parle des m\u00e9thodes de traitement du langage naturel, et comment les techniques de deep learning dominent aujourd&rsquo;hui les algorithmes de traduction ou de compl\u00e9tion de texte.<\/p>\n<p><iframe title=\"Comment les I.A. font-elles pour comprendre notre langue ?\" width=\"770\" height=\"433\" data-src=\"https:\/\/www.youtube.com\/embed\/CsQNF9s78Nc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p>L&rsquo;id\u00e9e de cette vid\u00e9o est n\u00e9e apr\u00e8s celle sur Alpha Fold. J&rsquo;y \u00e9voquai en passant les <em>transformers<\/em>, et je me suis dit qu&rsquo;il fallait faire une vid\u00e9o sur ces fameux transformers ! Et puis en faisant la biblio et en \u00e9crivant la vid\u00e9o, je me suis dit que j&rsquo;avais bien trop de trucs \u00e0 raconter, donc \u00e0 la fin je parle \u00e0 peine des transformers ! Mais voici tout de m\u00eame les consid\u00e9rations compl\u00e9mentaires d&rsquo;usage<\/p>\n<p>Pour commencer sur la terminologie, je suis rest\u00e9 \u00e9vasif en employant de fa\u00e7on pas tr\u00e8s formelle les termes d&rsquo;algorithme, fonction, etc. Dire qu&rsquo;un r\u00e9seau de neurone est \u00ab\u00a0un algorithme\u00a0\u00bb peut \u00eatre discut\u00e9. J&rsquo;ai notamment totalement pass\u00e9 sous silence la question de l&rsquo;entrainement des r\u00e9seaux, qui est \u00e9videmment cruciale. Et c&rsquo;est l\u00e0 d&rsquo;ailleurs qu&rsquo;on utilise un algorithme essentiel : <em>la r\u00e9tropropagation du gradient (back-propagation)<\/em>. D&rsquo;ailleurs j&rsquo;ai parl\u00e9 de la dilution de la m\u00e9moire dans les r\u00e9seaux r\u00e9currents, mais il y a le probl\u00e8me conjoint du <em>gradient vanishing<\/em> qui fait que la r\u00e9tropropagation a du mal \u00e0 \u00eatre sensible \u00e0 ce qu&rsquo;il se passe dans les premi\u00e8res unit\u00e9s du r\u00e9seau.<\/p>\n<p>D&rsquo;ailleurs pour ceux qui aiment les d\u00e9tails, une des raisons du probl\u00e8me c&rsquo;est que quand le r\u00e9seau utilise une fonction d&rsquo;activation du genre sigmo\u00efde ou tanh, il compresse le signal entre 0 et 1 ou -1 et 1. Et les compressions successives sont la raison de la d\u00e9perdition de ce qui vient des premi\u00e8res unit\u00e9s r\u00e9currentes. L&rsquo;astuce dans les LSTM est d&rsquo;avoir une deuxi\u00e8me ligne de propagation d&rsquo;information qui elle ne subit pas d&rsquo;activation (\\(c_t\\) ci-dessous).<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-9374 lazyload\" data-src=\"https:\/\/scienceetonnante.com\/blog\/wp-content\/uploads\/2021\/11\/LSTM_Cell.svg_-1024x701.png\" alt=\"\" width=\"770\" height=\"527\" data-srcset=\"https:\/\/scienceetonnante.com\/blog\/wp-content\/uploads\/2021\/11\/LSTM_Cell.svg_-1024x701.png 1024w, https:\/\/scienceetonnante.com\/blog\/wp-content\/uploads\/2021\/11\/LSTM_Cell.svg_-300x205.png 300w, https:\/\/scienceetonnante.com\/blog\/wp-content\/uploads\/2021\/11\/LSTM_Cell.svg_.png 1280w\" data-sizes=\"(max-width: 770px) 100vw, 770px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 770px; --smush-placeholder-aspect-ratio: 770\/527;\" \/><\/p>\n<h3>Word2Vec<\/h3>\n<p>A propos de Word2Vec et consorts, j&rsquo;ai intentionellement pass\u00e9 sous silence la question de l&rsquo;arithm\u00e9tique des vecteurs. Et notamment les trucs du genre <strong><em>\u00ab\u00a0roi &#8211; homme + femme = reine\u00a0\u00bb.\u00a0<\/em><\/strong>La raison est que j&rsquo;ai test\u00e9 sur GloVe, et \u00e7a ne marche pas si bien que \u00e7a ! Avec les donn\u00e9es de GloVe, si on fabrique le vecteur \u00ab\u00a0roi-homme+femme\u00a0\u00bb, on obtient un nouveau vecteur, et si on cherche le mot le plus proche de ce dernier, il s&rsquo;agit de &#8230; roi !<\/p>\n<p>Je me demande si un partie du probl\u00e8me ne vient pas du fait que la mesure de similarit\u00e9 est une \u00ab\u00a0distance cosinus\u00a0\u00bb, c&rsquo;est-\u00e0-dire le cosinus de l&rsquo;angle entre les deux vecteurs. Le truc qui marche bien (et qui a \u00e9t\u00e9 mis en avant par les chercheurs), c&rsquo;est plut\u00f4t que le vecteur \u00ab\u00a0roi-reine\u00a0\u00bb est relativement bien parall\u00e8le au vecteur \u00ab\u00a0homme-femme\u00a0\u00bb.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-9375 lazyload\" data-src=\"https:\/\/scienceetonnante.com\/blog\/wp-content\/uploads\/2021\/11\/man_woman.jpg\" alt=\"\" width=\"1000\" height=\"775\" data-srcset=\"https:\/\/scienceetonnante.com\/blog\/wp-content\/uploads\/2021\/11\/man_woman.jpg 1000w, https:\/\/scienceetonnante.com\/blog\/wp-content\/uploads\/2021\/11\/man_woman-300x233.jpg 300w, https:\/\/scienceetonnante.com\/blog\/wp-content\/uploads\/2021\/11\/man_woman-87x67.jpg 87w\" data-sizes=\"(max-width: 1000px) 100vw, 1000px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1000px; --smush-placeholder-aspect-ratio: 1000\/775;\" \/><\/p>\n<p>Un truc qu&rsquo;on pourrait faire, c&rsquo;est voir s&rsquo;il n&rsquo;y a pas un coefficient \\(\\alpha\\) qui permet de faire en sorte que \u00ab\u00a0roi + \\(\\alpha\\)(femme-homme)\u00a0\u00bb soit proche de \u00ab\u00a0reine\u00a0\u00bb.<\/p>\n<p>Si j&rsquo;ai le temps, je creuserai un jour ces questions d&rsquo;arithm\u00e9tique des vecteurs.<\/p>\n<p>(En \u00e9crivant ce billet je d\u00e9couvre <a href=\"https:\/\/medium.com\/plotly\/understanding-word-embedding-arithmetic-why-theres-no-single-answer-to-king-man-woman-cd2760e2cb7f\" target=\"_blank\" rel=\"noopener\">ce billet qui semble dire des choses analogues<\/a>)<\/p>\n<h3>Autres applications<\/h3>\n<p>Par manque de temps, j&rsquo;ai aussi zapp\u00e9 quelques applications super int\u00e9ressantes comme la g\u00e9n\u00e9ration automatique de l\u00e9gendes (qui prend une image en entr\u00e9e et sort un texte en sortie). Mais aussi les applications \u00e0 d&rsquo;autres domaines comme le traitement du son, de la musique, des s\u00e9ries temporelles en g\u00e9n\u00e9ral.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans la vid\u00e9o d&rsquo;aujourd&rsquo;hui, on parle des m\u00e9thodes de traitement du langage naturel, et comment les techniques de deep learning dominent aujourd&rsquo;hui les algorithmes de traduction ou de compl\u00e9tion de texte. L&rsquo;id\u00e9e de cette vid\u00e9o est n\u00e9e apr\u00e8s celle sur Alpha Fold. J&rsquo;y \u00e9voquai en passant les transformers, et je me suis dit qu&rsquo;il fallait<\/p>\n","protected":false},"author":1,"featured_media":9371,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[45,4],"tags":[113,69],"class_list":{"0":"post-9370","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-informatique","8":"category-mathematiques","9":"tag-intelligence-artificielle","10":"tag-langage"},"jetpack_featured_media_url":"https:\/\/scienceetonnante.com\/blog\/wp-content\/uploads\/2021\/11\/transition.png","jetpack_sharing_enabled":true,"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/scienceetonnante.com\/blog\/wp-json\/wp\/v2\/posts\/9370","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scienceetonnante.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scienceetonnante.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scienceetonnante.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/scienceetonnante.com\/blog\/wp-json\/wp\/v2\/comments?post=9370"}],"version-history":[{"count":3,"href":"https:\/\/scienceetonnante.com\/blog\/wp-json\/wp\/v2\/posts\/9370\/revisions"}],"predecessor-version":[{"id":9377,"href":"https:\/\/scienceetonnante.com\/blog\/wp-json\/wp\/v2\/posts\/9370\/revisions\/9377"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/scienceetonnante.com\/blog\/wp-json\/wp\/v2\/media\/9371"}],"wp:attachment":[{"href":"https:\/\/scienceetonnante.com\/blog\/wp-json\/wp\/v2\/media?parent=9370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scienceetonnante.com\/blog\/wp-json\/wp\/v2\/categories?post=9370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scienceetonnante.com\/blog\/wp-json\/wp\/v2\/tags?post=9370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}