WEBVTT 00:00:17.602 --> 00:00:19.239 Bonjour, je m'appelle Christian Rudder, 00:00:19.239 --> 00:00:21.875 je suis un des fondateurs de OK Cupid. 00:00:21.875 --> 00:00:24.502 C'est désormais l'un des plus grands sites de rencontre aux États-Unis. 00:00:24.502 --> 00:00:25.749 Comme presque tout le monde sur le site, 00:00:25.749 --> 00:00:27.296 j'étais doué en math et comme vous pouvez l'imaginer, 00:00:27.296 --> 00:00:28.644 nous étions connus pour l'approche analytique 00:00:28.644 --> 00:00:29.887 que nous avions de l'amour. 00:00:29.887 --> 00:00:31.717 On appelle ça notre algorithme d'appariement. 00:00:31.717 --> 00:00:33.428 Essentiellement, l'algorithme d'appariement d'OK Cupid 00:00:33.428 --> 00:00:36.481 nous aide à décider si deux personnes peuvent sortir ensemble. 00:00:36.481 --> 00:00:38.765 Nous avons construit notre business dessus. 00:00:38.765 --> 00:00:40.572 Cependant, algorithme est un mot prétentieux, 00:00:40.572 --> 00:00:43.047 les gens préfèrent le laisser tomber, 00:00:43.047 --> 00:00:45.148 mais un algorithme est simplement une façon systématique, 00:00:45.148 --> 00:00:47.817 pas à pas, de résoudre un problème. 00:00:47.817 --> 00:00:49.949 Ça n'a rien de prétentieux. 00:00:49.949 --> 00:00:51.802 Ici, dans cette leçon, je vais vous expliquer 00:00:51.802 --> 00:00:53.657 comment on en est arrivé à notre algorithme à nous 00:00:53.657 --> 00:00:55.660 pour que vous voyez comment ça marche. 00:00:55.660 --> 00:00:57.576 Maintenant, pourquoi est-ce que les algorithmes sont importants ? 00:00:57.576 --> 00:00:59.045 Pourquoi est-ce que cette leçon existe ? 00:00:59.045 --> 00:01:02.457 Eh bien, relisez cette phrase importante que je viens de dire : 00:01:02.457 --> 00:01:05.029 c'est une façon de résoudre un problème pas à pas 00:01:05.029 --> 00:01:05.841 et, comme vous le savez probablement, 00:01:05.841 --> 00:01:08.470 les ordinateurs excellent dans les processus pas à pas. 00:01:08.470 --> 00:01:09.588 Un ordinateur sans algorithme 00:01:09.588 --> 00:01:12.933 est simplement un couteux presse-papiers. 00:01:12.933 --> 00:01:15.430 Depuis que les ordinateurs sont omniprésents dans notre vie quotidienne, 00:01:15.430 --> 00:01:17.223 les algorithmes sont partout. 00:01:18.515 --> 00:01:20.267 Les mathématiques derrière l'algorithme d'appariement d'OK Cupid 00:01:20.267 --> 00:01:21.811 sont étonnamment simples. 00:01:21.811 --> 00:01:22.629 Ce sont juste quelques additions, 00:01:22.629 --> 00:01:23.687 multiplications 00:01:23.687 --> 00:01:25.340 et quelques racines carrées. 00:01:25.340 --> 00:01:27.611 La difficulté lors de la conception, cependant, 00:01:27.611 --> 00:01:30.235 était de comprendre comment prendre quelque chose de mystérieux, 00:01:30.235 --> 00:01:31.212 l'attirance humaine, 00:01:31.212 --> 00:01:33.810 et la décomposer en éléments avec lesquels un ordinateur peut travailler. 00:01:33.810 --> 00:01:36.360 La première chose dont nous avons besoin pour faire correspondre des gens sont des données, 00:01:36.360 --> 00:01:38.382 ce sur quoi l'algorithme puisse travailler. 00:01:38.382 --> 00:01:40.412 La meilleure façon d'avoir rapidement des données des gens 00:01:40.412 --> 00:01:41.747 est tout simplement de les demander. 00:01:41.747 --> 00:01:44.166 Donc nous avons décidé qu'OK Cupid devait poser des questions aux utilisateurs : 00:01:44.166 --> 00:01:46.834 « Est-ce que vous voulez des enfants ? », 00:01:46.834 --> 00:01:48.754 « À quelle fréquence vous lavez vous les dents ? », 00:01:48.754 --> 00:01:50.227 « Est-ce que vous aimez les films d'horreur ? » 00:01:50.227 --> 00:01:53.514 et des trucs importants comme « Est-ce que vous croyez en Dieu ? » 00:01:53.514 --> 00:01:55.308 Certes, beaucoup de questions sont bonnes 00:01:55.308 --> 00:01:56.381 pour faire correspondre ce qui est comparable, 00:01:56.381 --> 00:01:59.052 quand deux personnes répondent de la même manière. 00:01:59.052 --> 00:02:01.471 Par exemple, deux personnes qui aiment bien les films d'horreur 00:02:01.471 --> 00:02:02.684 se correspondent probablement mieux 00:02:02.684 --> 00:02:03.843 qu'une personne qui les aime 00:02:03.843 --> 00:02:05.115 et une qui ne les aime pas. 00:02:05.115 --> 00:02:06.480 Mais qu'en est-il d'une question comme, 00:02:06.480 --> 00:02:08.189 « Aimez-vous être le centre de l'attention ? » 00:02:08.189 --> 00:02:10.729 Si les deux personnes d'un couple répondent oui, 00:02:10.729 --> 00:02:13.068 alors il va y avoir de gros problèmes. 00:02:13.068 --> 00:02:14.447 Nous avons compris ça rapidement 00:02:14.447 --> 00:02:15.614 et nous avons décidé que nous avions besoin 00:02:15.614 --> 00:02:17.581 d'un peu plus d'information pour chaque question. 00:02:17.581 --> 00:02:20.332 Nous devions demander aux personnes de donner non seulement leur réponse, 00:02:20.332 --> 00:02:23.038 mais également la réponse qu'ils attendaient de l'autre. 00:02:23.038 --> 00:02:24.207 Ça a vraiment bien marché, 00:02:24.207 --> 00:02:26.291 mais nous avions besoin d'une dimension supplémentaire. 00:02:26.291 --> 00:02:28.835 Certaines questions nous en disent plus sur une personne que d'autres. 00:02:28.835 --> 00:02:31.795 Par exemple, une question sur la politique, quelque chose comme, 00:02:31.795 --> 00:02:34.589 « Qu'est-ce qui est pire : brûler un livre ou brûler un drapeau ? » 00:02:34.589 --> 00:02:37.207 pourrait en révéler plus sur quelqu'un que ses goûts cinématographiques. 00:02:37.207 --> 00:02:39.387 Et ça n'a pas beaucoup de sens de donner le même poids à toutes ces choses, 00:02:39.387 --> 00:02:41.605 nous avons donc ajouté une dernière donnée. 00:02:41.605 --> 00:02:43.440 Pour chaque question qu'OK Cupid vous pose, 00:02:43.440 --> 00:02:44.642 vous avez la possibilité de nous dire 00:02:44.642 --> 00:02:46.223 le rôle qu'elle joue dans votre vie, 00:02:46.223 --> 00:02:49.089 ça va de non significatif à obligatoire. 00:02:49.089 --> 00:02:50.564 Donc, pour chaque question, 00:02:50.564 --> 00:02:52.692 nous avons trois choses pour notre algorithme : 00:02:52.692 --> 00:02:54.068 premièrement, votre réponse ; 00:02:54.068 --> 00:02:56.362 deuxièmement, comment vous souhaitez que quelqu'un, 00:02:56.362 --> 00:02:57.196 votre partenaire potentiel, 00:02:57.196 --> 00:02:58.781 réponde 00:02:58.781 --> 00:03:02.327 et troisièmement, quelle est l'importance de cette question pour vous. 00:03:02.327 --> 00:03:03.702 Avec toutes ces informations, 00:03:03.702 --> 00:03:07.128 OK Cupid peut déterminer comment deux personnes s'entendront. 00:03:07.128 --> 00:03:09.458 L'algorithme mouline les chiffres et nous donne un résultat. 00:03:09.458 --> 00:03:11.262 Comme exemple pratique, 00:03:11.262 --> 00:03:13.712 regardons comment on vous fait correspondre à quelqu'un, 00:03:13.712 --> 00:03:15.581 que nous appelerons "B". 00:03:15.581 --> 00:03:17.479 Votre taux de correspondance avec B est fondé sur 00:03:17.479 --> 00:03:19.424 les questions auxquelles vous avez répondu tous les deux. 00:03:19.424 --> 00:03:21.978 Appelons la série de questions communes "s". 00:03:21.978 --> 00:03:24.932 Comme c'est un exemple très simple, utilisons une petite série "s" 00:03:24.932 --> 00:03:26.434 avec seulement deux questions en commun 00:03:26.434 --> 00:03:28.310 et calculons la correspondance. 00:03:28.310 --> 00:03:30.144 Voici nos deux exemples de questions. 00:03:30.144 --> 00:03:32.349 La première, disons, « Êtes-vous bordélique ? », 00:03:32.349 --> 00:03:34.669 les réponses possibles sont 00:03:34.669 --> 00:03:35.618 beaucoup, 00:03:35.618 --> 00:03:36.398 moyennement 00:03:36.398 --> 00:03:38.172 et très organisé. 00:03:38.172 --> 00:03:39.755 Disons que vous répondiez « très organisé », 00:03:39.755 --> 00:03:42.581 et que vous souhaitez que l'autre réponde « très organisé », 00:03:42.581 --> 00:03:45.202 et que cette question est très importante pour vous. 00:03:45.202 --> 00:03:46.498 Fondamentalement vous êtes un maniaque de la propreté. 00:03:46.498 --> 00:03:47.212 Vous êtes propre, 00:03:47.212 --> 00:03:48.296 vous voulez que l'autre soit propre 00:03:48.296 --> 00:03:49.248 et c'est comme ça. 00:03:49.248 --> 00:03:51.015 Supposons que B soit un peu différent. 00:03:51.015 --> 00:03:53.539 Il a répondu très organisé pour lui-même, 00:03:53.539 --> 00:03:55.171 mais moyennement est correct pour lui 00:03:55.171 --> 00:03:56.740 comme réponse de l'autre, 00:03:56.740 --> 00:03:58.748 et la question n'a pas d'importance pour lui. 00:03:58.748 --> 00:04:00.308 Regardons la seconde question, 00:04:00.308 --> 00:04:01.896 c'est l'une de notre exemple précédent : 00:04:01.896 --> 00:04:03.653 « Aimez-vous être le centre de l'attention ? » 00:04:03.653 --> 00:04:05.231 Les réponses sont uniquement oui et non. 00:04:05.231 --> 00:04:06.407 Donc vous avez répondu « Non », 00:04:06.407 --> 00:04:08.235 vous attendez comme réponse de l'autre « non », 00:04:08.235 --> 00:04:10.862 et la question est faiblement importante pour vous. 00:04:10.862 --> 00:04:12.419 Maintenant B a répondu « Oui », 00:04:12.419 --> 00:04:14.087 il attend quelqu'un qui réponde « Non », 00:04:14.087 --> 00:04:16.332 parce qu'il veut la lumière pour lui 00:04:16.332 --> 00:04:19.334 et la question est plutôt importante pour lui. 00:04:19.334 --> 00:04:21.716 Essayons de calculer tout ça. 00:04:21.716 --> 00:04:22.855 Notre première étape est, 00:04:22.855 --> 00:04:24.376 comme nous utilisons des ordinateurs, 00:04:24.376 --> 00:04:26.162 nous devons assigner des valeurs numériques 00:04:26.162 --> 00:04:29.041 aux idées comme « plutôt important » et « très important » 00:04:29.041 --> 00:04:31.335 parce que les ordinateurs ont besoin que tout soit chiffré. 00:04:31.335 --> 00:04:33.523 Nous, à OK Cupid, avons choisi l'échelle suivante : 00:04:33.523 --> 00:04:35.858 non significatif vaut 0, 00:04:35.858 --> 00:04:38.307 un peu important vaut 1, 00:04:38.307 --> 00:04:40.302 plutôt important vaut 10, 00:04:40.302 --> 00:04:42.426 très important est 50 00:04:42.426 --> 00:04:46.353 et obligatoire vaut 250. 00:04:46.353 --> 00:04:48.852 Ensuite, l'algorithme fait deux calculs simples. 00:04:48.852 --> 00:04:51.941 Le premier est « à quel niveau les réponses de B sont satisfaisantes pour vous », 00:04:51.941 --> 00:04:55.568 ce qui revient « à combien de points a B sur votre échelle ? » 00:04:55.568 --> 00:04:58.138 Vous avez indiqué que la réponse de B 00:04:58.138 --> 00:04:59.947 à la première question à propos du rangement 00:04:59.947 --> 00:05:01.448 était très importante pour vous. 00:05:01.448 --> 00:05:04.041 Ça vaut 50 points et B les as eus. 00:05:04.041 --> 00:05:05.947 La seconde question vaut seulement 1 00:05:05.947 --> 00:05:07.558 parce que vous avez répondu que c'était seulement un peu important 00:05:07.558 --> 00:05:09.036 et B avait répondu faux. 00:05:09.036 --> 00:05:12.392 Donc les réponses de B valent 50 points sur 51. 00:05:12.392 --> 00:05:14.023 C'est 98% de satisfaction. 00:05:14.023 --> 00:05:15.220 C'est vraiment bon. 00:05:15.220 --> 00:05:16.832 La seconde question que regarde l'algorithme 00:05:16.832 --> 00:05:18.918 est à quel niveau vous satisfaites B. 00:05:18.918 --> 00:05:20.768 B a placé un point sur votre réponse 00:05:20.768 --> 00:05:22.353 à la question sur le rangement 00:05:22.353 --> 00:05:24.745 et 10 à votre réponse à la seconde. 00:05:24.745 --> 00:05:27.156 Sur ces 11 points, c'est 1 plus 10, 00:05:27.156 --> 00:05:28.324 vous gagnez 10, 00:05:28.324 --> 00:05:30.617 vous correspondez l'un à l'autre pour la seconde question. 00:05:30.617 --> 00:05:32.611 Donc vos réponses donnent 10 sur 11 00:05:32.611 --> 00:05:35.240 ce qui vaut 91% de satisfaction pour B. 00:05:35.240 --> 00:05:36.117 Ce n'est pas mal. 00:05:36.117 --> 00:05:38.286 L'étape finale est de prendre les deux pourcentages de correspondances 00:05:38.286 --> 00:05:40.454 et d'obtenir un chiffre pour vous deux. 00:05:40.454 --> 00:05:42.747 Pour faire ça, l'algorithme multiplie vos résultats 00:05:42.747 --> 00:05:44.500 et prend la racine n-ième, 00:05:44.500 --> 00:05:46.792 où n est le nombre de questions. 00:05:46.792 --> 00:05:49.401 Parce que s, le nombre de questions, 00:05:49.401 --> 00:05:51.507 dans cet exemple, est seulement 2 00:05:51.507 --> 00:05:54.093 nous avons : le pourcentage d'appariement est égal 00:05:54.093 --> 00:05:58.154 à la racine carrée de 98% fois 91%. 00:05:58.154 --> 00:06:00.304 Qui est égal à 94%. 00:06:00.304 --> 00:06:03.194 Ce 94% est votre taux d'appariement avec B. 00:06:03.194 --> 00:06:04.561 C'est l'expression mathématique 00:06:04.561 --> 00:06:06.405 de comment vous seriez heureux l'un avec l'autre 00:06:06.405 --> 00:06:07.749 fondé sur ce que nous savons. 00:06:07.749 --> 00:06:10.131 Maintenant, pourquoi est-ce que l'algorithme multiplie au lieu de 00:06:10.131 --> 00:06:12.284 faire la moyenne des deux taux de correspondances ensemble 00:06:12.284 --> 00:06:14.530 puis prend la racine carrée ? 00:06:14.530 --> 00:06:16.479 En général, cette formule est appelée la moyenne géométrique, 00:06:16.479 --> 00:06:17.881 c'est une bonne façon de combiner des valeurs 00:06:17.881 --> 00:06:19.076 qui ont de grandes variations 00:06:19.076 --> 00:06:20.861 et présentent des propriétés très différentes. 00:06:20.861 --> 00:06:23.164 En d'autres mots, c'est parfait pour un appariement sentimental. 00:06:23.164 --> 00:06:24.248 On a de grandes plages de valeurs 00:06:24.248 --> 00:06:26.206 et des quantités de valeurs différentes, 00:06:26.206 --> 00:06:27.156 comme je l'ai dit, au sujet des films, 00:06:27.156 --> 00:06:28.006 de la politique, 00:06:28.006 --> 00:06:29.201 de la religion, 00:06:29.201 --> 00:06:30.395 de tout. 00:06:30.395 --> 00:06:32.256 Intuitivement, aussi, ça a du sens. 00:06:32.256 --> 00:06:34.918 Deux personnes qui se correspondent chacune à 50% 00:06:34.918 --> 00:06:36.052 devraient être une meilleure combinaison 00:06:36.052 --> 00:06:39.180 que deux autres qui se correspondent à 0 et 100, 00:06:39.180 --> 00:06:40.847 parce que l'affection doit être mutuelle. 00:06:40.847 --> 00:06:43.147 Après avoir ajouté une petite correction pour la marge d'erreur 00:06:43.147 --> 00:06:45.770 dans le cas où on a très peu de questions, 00:06:45.770 --> 00:06:47.234 comme dans l'exemple, 00:06:47.234 --> 00:06:48.811 on est prêt. 00:06:48.811 --> 00:06:50.191 À chaque fois qu'OK Cupid associe deux personnes, 00:06:50.191 --> 00:06:52.234 on passe par les étapes qu'on vient de montrer. 00:06:52.234 --> 00:06:54.484 En premier on collecte les données liées aux questions, 00:06:54.484 --> 00:06:56.619 puis on compare les choix et les préférences 00:06:56.619 --> 00:06:59.740 pour les autres personnes d'une façon mathématique, simple. 00:06:59.740 --> 00:07:02.453 Ça, cette capacité à prendre des phénomènes réels 00:07:02.453 --> 00:07:05.167 et à les transformer en quelque chose qu'un microprocesseur puisse comprendre, 00:07:05.167 --> 00:07:05.742 est, je pense, 00:07:05.742 --> 00:07:08.565 la plus importante compétence que quelqu'un puisse avoir actuellement. 00:07:08.565 --> 00:07:10.919 De la même façon que vous utilisez des phrases pour raconter une histoire à une personne, 00:07:10.919 --> 00:07:13.665 vous utilisez des algorithmes pour raconter une histoire à un ordinateur. 00:07:13.665 --> 00:07:14.921 Si vous apprenez la langue, 00:07:14.921 --> 00:07:16.381 vous pouvez sortir et raconter des histoires. 00:07:16.381 --> 00:07:18.768 J'espère que ça vous aidera à le faire.