lang: french babel-lang: french handout: true header-includes:
- \def\no{n\textsuperscript{o}}
\includegraphics[width=\linewidth]{figures/amazon.jpg}
\includegraphics[width=\linewidth]{figures/amazon2.jpg}
\includegraphics[width=\linewidth]{figures/amazon3.jpg}
\begin{tabular}{ccccc} & \includegraphics[height=2.5cm]{figures/1.jpg} & \includegraphics[height=2.5cm]{figures/2.jpg} & \includegraphics[height=2.5cm]{figures/3.jpg} & \includegraphics[height=2.5cm]{figures/4.jpg}\ Sacha & ? & 5 & 2 & ?\ Ondine & 4 & 1 & ? & 5\ Pierre & 3 & 3 & 1 & 4\ Joëlle & 5 & ? & 2 & ? \end{tabular}
\begin{tabular}{ccccc} & \includegraphics[height=2.5cm]{figures/1.jpg} & \includegraphics[height=2.5cm]{figures/2.jpg} & \includegraphics[height=2.5cm]{figures/3.jpg} & \includegraphics[height=2.5cm]{figures/4.jpg}\ Sacha & \alert{3} & 5 & 2 & \alert{2}\ Ondine & 4 & 1 & \alert{4} & 5\ Pierre & 3 & 3 & 1 & 4\ Joëlle & 5 & \alert{2} & 2 & \alert{5} \end{tabular}
Pour recommander des films à quelqu'un :
- On introduit un \alert{score de similarité} entre personnes
- On détermine les 10 personnes \alert{les plus proches} de lui
- On lui recommande ce qu'ils ont aimé qu'il n'a pas vu
\begin{tabular}{c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c}
& \footnotesize{007} & \footnotesize{Batman 1} & \footnotesize{Shrek 2} & \footnotesize{Toy Story 3} & \footnotesize{Star Wars 4} & \footnotesize{Twilight 5}\
Alice &
\begin{center} Quel score de similarité entre utilisateurs choisir ? \end{center}
\begin{tabular}{c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c}
& \footnotesize{007} & \footnotesize{Batman 1} & \footnotesize{Shrek 2} & \footnotesize{Toy Story 3} & \footnotesize{Star Wars 4} & \footnotesize{Twilight 5}\
Alice &
\end{center}
\vspace{2mm}
\begin{tabular}{c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c}
& \footnotesize{007} & \footnotesize{Batman 1} & \footnotesize{Shrek 2} & \footnotesize{Toy Story 3} & \footnotesize{Star Wars 4} & \footnotesize{Twilight 5}\
Alice &
Alice est \alert{plus proche} de Charles que de Bob \end{center}
\begin{center}
\begin{tabular}{c@{\hspace{2mm}}|c@{\hspace{2mm}}c@{\hspace{2mm}}c@{\hspace{2mm}}c@{\hspace{2mm}}c}
& Alice & Bob & Charles & Daisy & JJ\
\hline
Alice &
\begin{center} Qui sont les 2 plus proches voisins d'Alice ? \end{center}
\begin{tabular}{c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c}
& \footnotesize{007} & \footnotesize{Batman 1} & \footnotesize{Shrek 2} & \footnotesize{Toy Story 3} & \footnotesize{Star Wars 4} & \footnotesize{Twilight 5}\
Alice &
\begin{center} Connaissant ses voisins, quelles sont les chances d'Alice d'apprécier ces films ? \end{center}
\begin{tabular}{c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c@{\hspace{3mm}}c}
& \footnotesize{007} & \footnotesize{Batman 1} & \footnotesize{Shrek 2} & \footnotesize{Toy Story 3} & \footnotesize{Star Wars 4} & \footnotesize{Twilight 5}\
Alice &
\begin{center}
On peut calculer la moyenne :\
- \texttt{calculer_score}$(i, j)$
- \texttt{calculer_tous_scores}$()$
- \texttt{plus_proches_voisins}$(i)$
- \texttt{calculer_prediction}$(i, i_{film})$
- \texttt{calculer_toutes_predictions}$(i)$
- Le même code pour le petit exemple et pour la grosse base de données
- Calculer tous les scores, c'est long, j'ai juste besoin de connaître les voisins d'Alice
- Recalculer les voisins à chaque fois, c'est idiot
- Division par zéro lorsqu'aucun voisin n'a vu le film
- Le 2 octobre 2006, Netflix a lancé un concours :
Le premier qui bat notre algorithme de plus de 10 % remportera 1 million de dollars.
et ont filé des données anonymisées- La moitié de la communauté en IA s'est jetée sur le problème
- Le 8 octobre, quelqu'un a battu Cinematch
- Le 15 octobre, 3 équipes l'avaient battu, dont 1 de 1,06 %
- Le 26 juin 2009, une équipe \no 1 bat Cinematch de 10,05 %
$\rightarrow$ \alert{last call} : plus qu'un mois pour gagner- Le 25 juillet 2009, une \alert{équipe \no 2} bat Cinematch de 10,09 %
- L'équipe \no 1 fait 10,09 % aussi
- 20 minutes plus tard \alert{l'équipe \no 2} fait 10,10 %
- … En fait, les deux équipes étaient ex \ae quo sur le sous-ensemble de validation
- … Du coup c'est la première équipe à envoyer ses résultats qui a gagné (équipe 1, 10,09 %)
- Août 2009, Netflix annonce une saison 2
- Entre-temps, en 2007 deux chercheurs de l'université du Texas ont été capables d'\alert{identifier} les utilisateurs du jeu de données anonymisées en croisant les données avec IMDb
- (année approximative de naissance, code postal, films vus)
- En décembre 2009, 4 utilisateurs de Netflix ont attaqué Netflix en justice
- Mars 2010, arrangement à l'amiable, la plainte est close
\pause
Faire de la recommandation qui respecte la \alert{confidentialité} des utilisateurs
Et bon code :-)