Exclusif | Un article pour comprendre le système de connaissance du système de recommandation - suivant (bilan, combat réel, supports d'apprentissage)

(cliquez pour agrandir l'image)

Article principal Élaborer:

  • Évaluation du système de recommandation (Évaluation)

  • Le problème de démarrage à froid du système de recommandation (Cold Start)

  • Système de recommandation Combat réel

  • Cas du système de recommandation (étude de cas)

Parcourez les trois premiers chapitres de Veuillez vous référer à l'article précédent pour le contenu.

4. Évaluation des systèmes de recommandation (évaluation)

Comment juger du pour et du contre d'un système de recommandation ? C'est le principal problème que l'évaluation du système de recommandation doit résoudre. Un système de recommandation complet compte généralement 3 participants :

  • utilisateur

  • fournisseur d'articles

  • Sites Web proposant des systèmes de recommandation

Une bonne conception du système de recommandation peut permettre au système de recommandation lui-même de recueillir des commentaires des utilisateurs de haute qualité, d'améliorer continuellement la qualité des recommandations, d'augmenter l'interaction entre les utilisateurs et le site Web et d'augmenter les revenus du site Web. Par conséquent, lors de l'évaluation d'un algorithme de recommandation, les intérêts des trois parties doivent être pris en compte en même temps. Un bon système de recommandation est un système qui peut rendre les trois parties gagnant-gagnant.

4.1 Méthode expérimentale du système de recommandation

De manière générale, lorsqu'un nouvel algorithme de recommandation est enfin lancé, il doit compléter les trois expérimentations mentionnées ci-dessus : expérimentations hors ligne, enquêtes auprès des utilisateurs et expérimentations en ligne.

4.1.1 Expérience hors ligne

La méthode d'expérimentation hors ligne comprend généralement les étapes suivantes :

  • Obtenir des données sur le comportement des utilisateurs via le système de journalisation et générer un ensemble de données standard selon un certain format ;

  • Divisez l'ensemble de données en ensemble d'apprentissage et en ensemble de test selon certaines règles ;

  • Former le modèle d'intérêt de l'utilisateur sur l'ensemble d'apprentissage et faire des prédictions sur l'ensemble de test ;

  • Les résultats de prédiction de l'algorithme sur l'ensemble de test sont évalués par des repères hors ligne prédéfinis.

Comme le montrent les étapes ci-dessus, les expériences hors ligne du système de recommandation sont toutes effectuées sur l'ensemble de données, c'est-à-dire qu'il n'a pas besoin d'un système réel pour ses expériences, mais uniquement d'un ensemble de données extrait des journaux système réels. alors Les expériences hors ligne sont rapides et peuvent tester un grand nombre d'algorithmes, ce qui est un avantage significatif des expériences hors ligne. et son principal L'inconvénient est que vous ne pouvez pas obtenir beaucoup d'indicateurs commercialement concernés , tels que le taux de clics, le taux de conversion, etc., et il est également difficile de trouver des indicateurs hors ligne très liés aux indicateurs commerciaux.

4.1.2 Enquête auprès des utilisateurs

Il existe un écart entre les indicateurs des tests hors connexion et les indicateurs commerciaux réels. Par exemple, il existe une grande différence entre la précision des prédictions et la satisfaction des utilisateurs. Une précision élevée des prédictions n'est pas synonyme de satisfaction élevée des utilisateurs. Par conséquent, si vous souhaitez évaluer avec précision un algorithme, vous avez besoin d'un environnement relativement réel. Le meilleur moyen est de tester l'algorithme directement en ligne, mais lorsque vous n'êtes pas sûr que l'algorithme réduira la satisfaction des utilisateurs, Les tests de mise en ligne comportent des risques élevés, c'est pourquoi un test appelé enquête auprès des utilisateurs est généralement requis avant la mise en ligne.

La sélection des utilisateurs de test doit essayer de s'assurer que la distribution des utilisateurs de test est la même que la distribution des utilisateurs réels , par exemple, la répartition des hommes et des femmes, et la répartition par âge et activité sont aussi proches que possible de la répartition des utilisateurs réels. De plus, l'enquête auprès des utilisateurs doit essayer de s'assurer qu'il s'agit d'une expérience en double aveugle et ne pas laisser l'expérimentateur et l'utilisateur connaître à l'avance l'objectif du test, afin que la réponse de l'utilisateur et le test de l'expérimentateur ne soient pas affectés par la composante subjective.

Les avantages et les inconvénients de la recherche d'utilisateurs sont également clairs. son L'avantage est que de nombreux indicateurs reflétant les sentiments subjectifs des utilisateurs peuvent être obtenus. , le risque est très faible par rapport aux expériences en ligne et il est facile de rattraper les erreurs. L'inconvénient est qu'il est coûteux de recruter des utilisateurs de test , il est difficile d'organiser des utilisateurs de test à grande échelle , ce qui rend les résultats des tests moins significatifs sur le plan statistique. De plus, il est très difficile de concevoir des expériences en double aveugle dans de nombreux cas, et le comportement des utilisateurs dans l'environnement de test peut être différent de celui dans l'environnement réel, de sorte que les métriques de test collectées dans l'environnement de test peuvent ne pas être reproductibles dans l'environnement réel.

4.1.3 Expérience en ligne

Après avoir terminé les expériences hors ligne et les enquêtes d'utilisateurs nécessaires, le système de recommandation peut être mis en ligne pour les tests AB afin de le comparer avec l'ancien algorithme. Le test AB est une méthode expérimentale très couramment utilisée pour les algorithmes d'évaluation en ligne. Il divise au hasard les utilisateurs en plusieurs groupes selon certaines règles, adopte différents algorithmes pour différents groupes d'utilisateurs, puis compare différents algorithmes en comptant divers indicateurs d'évaluation de différents groupes d'utilisateurs, tels que le taux de clics de différents groupes d'utilisateurs. les performances des différents algorithmes par taux de clics. Les lecteurs intéressés par les tests AB peuvent parcourir le site Web qui donne de nombreux exemples d'amélioration de la satisfaction des utilisateurs du site Web grâce à des tests AB réels, à partir desquels nous pouvons apprendre à effectuer des tests AB raisonnables.

Testé AB L'avantage est que les indicateurs de performance de différents algorithmes lorsqu'ils sont réellement en ligne peuvent être obtenus de manière équitable. , y compris les mesures d'intérêt commercial. Testé AB Le principal inconvénient est que le cycle est relativement long et qu'il faut mener des expériences à long terme pour obtenir des résultats fiables. . Par conséquent, les tests AB ne sont généralement pas utilisés pour tester tous les algorithmes, mais uniquement les algorithmes qui fonctionnent bien dans les expériences hors ligne et les enquêtes auprès des utilisateurs. Deuxièmement, la conception du système de test AB d'un grand site Web est également un projet complexe. L'architecture d'un grand site Web est divisée en front-end et back-end. De l'interface affichée à l'utilisateur au front-end jusqu'à l'algorithme à la fin, il y a souvent de nombreuses couches au milieu. Ces couches sont souvent contrôlées par différentes équipes, et il est possible de faire des tests AB.

Si le système de test AB est conçu pour différentes couches, les différents tests AB ont tendance à interférer les uns avec les autres. Par exemple, lorsque nous effectuons un test AB d'un algorithme de recommandation en arrière-plan, et qu'en même temps, l'équipe Web effectue un test AB de l'interface de la page recommandée, le résultat final est que vous ne savez pas si le résultat du test est causé par le changement de votre propre algorithme ou le changement de l'interface de recommandation. Par conséquent, le découpage du trafic est la clé des tests AB. Différentes couches et les équipes qui contrôlent ces couches doivent obtenir leur propre trafic de test AB à partir d'un emplacement unifié, et le trafic entre les différentes couches doit être orthogonal.

4.2 Indicateurs d'évaluation

4.2.1 Satisfaction des utilisateurs

En tant que participant important au système de recommandation, les utilisateurs, Sa satisfaction est l'indicateur le plus important pour évaluer les systèmes de recommandation . Cependant, il n'existe aucun moyen de calculer la satisfaction des utilisateurs hors ligne, et elle ne peut être obtenue que par le biais d'enquêtes auprès des utilisateurs ou d'expériences en ligne.

Dans le système en ligne, la satisfaction des utilisateurs est principalement obtenue grâce à certaines statistiques sur le comportement des utilisateurs. Par exemple, dans un site de commerce électronique, si un utilisateur achète un produit recommandé, cela signifie qu'il est satisfait dans une certaine mesure. Par conséquent, nous pouvons utiliser le taux d'achat pour mesurer la satisfaction des utilisateurs.

De plus, certains sites Web recueillent la satisfaction des utilisateurs en concevant une interface de rétroaction des utilisateurs. Par exemple, dans Douban Internet Radio, il y a des boutons de retour qui sont satisfaits ou insatisfaits des résultats recommandés (la satisfaction de l'utilisateur est mesurée par le retour des curs rouges et des poubelles), et la satisfaction de l'utilisateur du système peut être mesurée en comptant le clics des deux boutons Dépenser. Plus généralement, nous pouvons mesurer la satisfaction des utilisateurs avec des mesures telles que le taux de clics, le temps de séjour des utilisateurs et le taux de conversion.

4.2.2 Précision de la prédiction

La précision de la prédiction mesure la capacité d'un système de recommandation ou d'un algorithme de recommandation à prédire le comportement des utilisateurs et constitue l'indicateur d'évaluation hors ligne le plus important pour les systèmes de recommandation. Depuis la naissance des systèmes de recommandation, près de 99 % des articles liés aux recommandations ont discuté de cette métrique. C'est principalement parce que cet indicateur peut être calculé par le biais d'expériences hors ligne, ce qui est pratique pour de nombreux chercheurs universitaires pour étudier les algorithmes de recommandation.

Lors du calcul de cette métrique, un ensemble de données hors ligne est requis, qui contient les enregistrements de comportement historique de l'utilisateur. Ensuite, cet ensemble de données est divisé en ensembles d'apprentissage et de test au fil du temps. Enfin, le comportement de l'utilisateur sur l'ensemble de test est prédit en établissant le modèle de comportement et d'intérêt de l'utilisateur sur l'ensemble d'apprentissage, et la coïncidence du comportement prédit et du comportement réel sur l'ensemble de test est calculée comme la précision de la prédiction. Les métriques de précision des prévisions incluent les catégories suivantes :

  • Prédiction de notation

De nombreux sites qui offrent des services de recommandation ont une fonctionnalité qui permet aux utilisateurs d'évaluer les éléments. Si vous connaissez l'évaluation historique d'un élément par l'utilisateur, vous pouvez en tirer le modèle d'intérêt de l'utilisateur et prédire dans quelle mesure l'utilisateur évaluera un élément lorsqu'il verra un élément qu'il n'a pas évalué à l'avenir.

  • Recommandé par TopN

Lorsque les sites Web fournissent des services de recommandation, ils fournissent généralement aux utilisateurs une liste de recommandations personnalisée, appelée recommandation TopN. La précision de prédiction recommandée par TopN est généralement mesurée par précision/rappel. Soit R(u) une liste de recommandations faites aux utilisateurs en fonction de leurs comportements sur l'ensemble d'apprentissage, et T(u) une liste de comportements des utilisateurs sur l'ensemble de test. Ensuite, le taux de rappel du résultat de la recommandation est défini comme :

La précision des résultats recommandés est définie comme suit :

  • couverture

La couverture décrit la capacité d'un système de recommandation à découvrir la longue traîne des éléments. Il existe différentes manières de définir la couverture. La définition la plus simple est la proportion d'articles que le système de recommandation peut recommander par rapport à l'ensemble d'articles total. En supposant que l'ensemble d'utilisateurs du système est U, le système de recommandation recommande une liste d'éléments R(u) de longueur N à chaque utilisateur. Ensuite, la couverture du système de recommandation peut être calculée par la formule suivante :

La couverture est une mesure dont les fournisseurs de contenu se soucieront. Prenant l'exemple des recommandations de livres, les éditeurs peuvent être très préoccupés par la question de savoir si leurs livres sont recommandés aux utilisateurs. Un système de recommandation avec une couverture de 100 % peut recommander chaque article à au moins un utilisateur. De plus, on peut voir à partir de la définition ci-dessus que la couverture de recommandation de la liste populaire est très faible, et elle ne recommandera que les articles populaires, qui représentent une petite proportion du total des articles. Un bon système de recommandation doit non seulement avoir une satisfaction utilisateur relativement élevée, mais également un taux de couverture relativement élevé.

  • la diversité

Afin de satisfaire les intérêts généraux des utilisateurs, la liste de recommandations doit pouvoir couvrir différents domaines d'intérêt des utilisateurs, c'est-à-dire que les résultats des recommandations doivent être divers. Bien que les intérêts de l'utilisateur soient les mêmes sur une longue période, à un certain moment où l'utilisateur accède au système de recommandation, ses intérêts sont souvent uniques, donc si la liste de recommandation ne peut couvrir qu'un seul point d'intérêt de l'utilisateur, et ce point d'intérêt Si ce n'est pas le point d'intérêt de l'utilisateur à ce moment, la liste de recommandations ne satisfera pas l'utilisateur. Au contraire, si la liste de recommandations est plus diversifiée et couvre la plupart des points d'intérêt de l'utilisateur, cela augmentera la probabilité que l'utilisateur trouve l'élément qui l'intéresse. Par conséquent, la liste de recommandations pour les utilisateurs doit également satisfaire les intérêts généraux des utilisateurs, c'est-à-dire avoir de la diversité.

La diversité décrit la dissemblance entre des paires d'éléments dans la liste de recommandations. Par conséquent, la diversité et la similitude correspondent. Hypothèse

La similarité entre les éléments i et j est définie, puis la diversité de la liste de recommandations R(u) de l'utilisateur u est définie comme suit :

La diversité globale du système de recommandation peut être définie comme la moyenne de la diversité de toutes les listes de recommandations d'utilisateurs :

Comme on peut le voir à partir de la définition ci-dessus, différentes fonctions de mesure de la similarité des éléments

Différentes diversités peuvent être définies. Si nous utilisons la similarité de contenu pour décrire la similarité entre les éléments, nous pouvons obtenir la fonction de diversité de contenu. Si nous utilisons la fonction de similarité du filtrage collaboratif pour décrire la similarité entre les éléments, nous pouvons obtenir la fonction de diversité du filtrage collaboratif.

  • nouveauté

Les nouvelles recommandations font référence à la recommandation d'éléments aux utilisateurs dont ils n'ont jamais entendu parler auparavant. Le moyen le plus simple d'obtenir de la nouveauté dans un site Web consiste à filtrer les éléments de la liste de recommandations sur lesquels les utilisateurs ont déjà agi sur le site Web. Par exemple, dans un site vidéo, les nouvelles recommandations ne doivent pas recommander aux utilisateurs des vidéos qu'ils ont déjà regardées, notées ou visionnées. Cependant, certaines vidéos peuvent avoir été visionnées par des utilisateurs sur d'autres sites Web ou à la télévision. Par conséquent, le simple fait de filtrer les éléments de ce site Web sur lesquels les utilisateurs ont agi ne peut pas pleinement apporter de la nouveauté.

Cependant, mesurer la nouveauté par la popularité moyenne des résultats de recommandation est grossier, car différents utilisateurs ne savent pas différentes choses. Par conséquent, des enquêtes auprès des utilisateurs sont nécessaires pour compter avec précision la nouveauté.

  • surprendre

La sérendipité est le sujet le plus brûlant dans le domaine des systèmes de recommandation ces dernières années. Les résultats de recommandation qui surprennent les utilisateurs sont ceux qui ne sont pas similaires aux éléments que l'utilisateur a aimés dans l'historique, mais l'utilisateur se sent satisfait. Ensuite, pour définir le degré de surprise, il faut d'abord définir la similarité entre le résultat de la recommandation et les éléments que l'utilisateur a aimés dans l'historique, et deuxièmement, il faut définir la satisfaction de l'utilisateur avec le résultat de la recommandation.

La satisfaction des utilisateurs ne peut être obtenue que par le biais de questionnaires ou d'expériences en ligne, et la similitude entre les résultats des recommandations et les éléments que les utilisateurs aiment dans l'historique peut généralement être définie par la similitude du contenu. C'est-à-dire que si l'historique de visionnage de films d'un utilisateur est obtenu, l'ensemble A d'acteurs et de réalisateurs de ces films est obtenu, puis un film créé par un réalisateur et un acteur qui n'appartient pas à l'ensemble A est recommandé à l'utilisateur , et l'utilisateur exprime sa satisfaction. Une recommandation très agréable. Par conséquent, pour améliorer le degré de surprise de la recommandation, il est nécessaire d'améliorer la satisfaction de l'utilisateur du résultat de la recommandation, et en même temps de réduire la similarité entre le résultat de la recommandation et l'intérêt historique de l'utilisateur.

  • Confiance

Pour mesurer le degré de confiance du système de recommandation, nous pouvons seulement demander aux utilisateurs s'ils font confiance aux résultats de recommandation du système de recommandation au moyen d'un questionnaire. Il existe deux façons principales d'améliorer la confiance d'un système de recommandation :

  • besoin Accroître la transparence des systèmes de recommandation , et le principal moyen d'accroître la transparence des systèmes de recommandation consiste à fournir des explications sur les recommandations. Ce n'est qu'en permettant aux utilisateurs de comprendre le mécanisme de fonctionnement du système de recommandation et en permettant aux utilisateurs d'être d'accord avec le mécanisme de fonctionnement du système de recommandation que la confiance de l'utilisateur dans le système de recommandation peut être améliorée.

  • Considérez les informations du réseau social de l'utilisateur, Utiliser les informations d'ami de l'utilisateur pour faire des recommandations aux utilisateurs , et utilisez des amis pour recommander des explications. En effet, les utilisateurs font généralement confiance à leurs amis, donc si le produit recommandé est acheté par un ami, ils auront relativement plus confiance dans le résultat de la recommandation.

  • temps réel

Dans de nombreux sites Web, parce que les articles (actualités, Weibo, etc.) ont une forte actualité, il est nécessaire de recommander des articles aux utilisateurs lorsqu'ils sont encore d'actualité. Par exemple, recommander les actualités d'hier aux utilisateurs n'est évidemment pas aussi bon que recommander les actualités d'aujourd'hui aux utilisateurs. Par conséquent, dans ces sites Web, les performances en temps réel du système de recommandation sont très importantes.

La performance en temps réel des systèmes de recommandation comprend deux aspects :

  • Le système de recommandation doit mettre à jour la liste de recommandation en temps réel pour répondre aux nouveaux changements de comportement des utilisateurs. Par exemple, lorsqu'un utilisateur achète un iPhone, si le système de recommandation peut lui recommander immédiatement les accessoires pertinents, cela aura certainement plus de valeur que de recommander les accessoires pertinents à l'utilisateur le lendemain. De nombreux systèmes de recommandation calculent la liste de recommandations utilisateur une fois par jour dans l'état hors ligne, puis affichent la liste de recommandations à l'utilisateur pendant la période en ligne. Cette conception est évidemment incapable de répondre aux performances en temps réel. Les performances en temps réel correspondant au comportement de l'utilisateur peuvent être évaluées par le taux de changement de la liste de recommandations. Si la liste de recommandations ne change pas beaucoup ou ne change pas après que l'utilisateur a agi, cela signifie que les performances en temps réel du système de recommandation ne sont pas élevées.

  • Un système de recommandation doit pouvoir recommander aux utilisateurs les éléments nouvellement ajoutés au système. Cela teste principalement la capacité du système de recommandation à gérer le démarrage à froid des éléments. Pour pouvoir recommander de nouveaux éléments, nous pouvons utiliser le pourcentage d'éléments de la liste de recommandations de l'utilisateur qui ont été récemment ajoutés ce jour-là à évaluer.

  • robustesse

Tout système algorithmique pouvant apporter des avantages sera attaqué, et l'exemple le plus typique à cet égard est le moteur de recherche. La lutte contre la triche et l'anti-triche dans les moteurs de recherche est extrêmement féroce, car si vous pouvez faire de vos produits le premier résultat de recherche des termes de recherche populaires, cela apportera de grands avantages commerciaux. Les systèmes de recommandation souffrent actuellement du même problème de triche, alors que robustesse Les métriques mesurent la capacité d'un système de recommandation à lutter contre la triche.

L'évaluation de la robustesse des algorithmes utilise principalement des attaques simulées. Premièrement, étant donné un ensemble de données et un algorithme, l'algorithme peut être utilisé pour générer des listes de recommandations pour les utilisateurs de cet ensemble de données. Ensuite, les données de bruit sont injectées dans l'ensemble de données à l'aide de méthodes d'attaque courantes, puis l'algorithme est utilisé pour générer à nouveau une liste de recommandations pour l'utilisateur sur l'ensemble de données injecté de bruit. Enfin, la robustesse de l'algorithme est évaluée en comparant la similarité des listes de recommandations avant et après l'attaque. Si la liste de recommandations après l'attaque ne change pas de manière significative par rapport à avant l'attaque, cela signifie que l'algorithme est relativement robuste.

Dans le système réel, pour améliorer la robustesse du système, en plus de sélectionner l'algorithme à haute robustesse, il existe les méthodes suivantes :

  • Lors de la conception d'un système de recommandation, essayez de Comportement des utilisateurs coûteux à utiliser . Par exemple, s'il existe des comportements d'achat des utilisateurs et des comportements de navigation des utilisateurs, alors les comportements d'achat des utilisateurs doivent être principalement utilisés, car les achats nécessitent un paiement, de sorte que le coût de l'attaque des comportements d'achat est bien supérieur à celui de l'attaque des comportements de navigation.

  • Avant d'utiliser les données, Faire la détection d'attaque , pour nettoyer les données.

  • objectifs d'affaires

le plus souvent, Le système d'évaluation et de recommandation du site Web accorde plus d'attention à la réalisation des objectifs commerciaux du site Web , et les objectifs commerciaux et le modèle de profit du site Web sont étroitement liés. De manière générale, l'objectif commercial le plus essentiel est le profit qu'un utilisateur moyen apporte à l'entreprise. Cependant, ce type d'indicateur n'est pas difficile à calculer, mais il nécessite un prix relativement important à calculer une fois. Par conséquent, de nombreuses entreprises conçoivent différents objectifs commerciaux en fonction de leurs propres modèles de profit.

Différents sites Web ont des objectifs commerciaux différents. Par exemple, l'objectif d'un site Web de commerce électronique peut être les ventes, l'objectif commercial d'un site Web qui est rentable sur la base des annonces display peut être le nombre total d'impressions d'annonces et l'objectif commercial d'un site qui est rentable sur la base des clics. peut être le nombre total de clics sur l'annonce. Par conséquent, l'objectif commercial final doit être pris en compte lors de la conception d'un système de recommandation, et le but de l'utilisation d'un système de recommandation sur un site Web n'est pas seulement de répondre aux besoins des utilisateurs pour découvrir du contenu, mais également d'utiliser le système de recommandation pour accélérer la réalisation d'indicateurs commerciaux.

5. Le problème de démarrage à froid du système de recommandation (Cold Start)

5.1 Définition du problème de démarrage à froid

Le système de recommandation doit prédire le comportement et les intérêts futurs de l'utilisateur en fonction du comportement et des intérêts historiques de l'utilisateur. Pour les grandes entreprises telles que BAT, elles ont accumulé une grande quantité de données utilisateur, il n'y a donc pas lieu de s'inquiéter. Mais pour de nombreux sites Web qui font des systèmes de recommandation purs ou qui souhaitent avoir des applications de recommandation personnalisées au début, comment faire la recommandation la plus efficace sans rien savoir des utilisateurs (c'est-à-dire aucune donnée sur le comportement des utilisateurs) ? ? Cela conduit au problème de démarrage à froid.

5.2 Classification du démarrage à froid

Il existe trois principaux types de problèmes de démarrage à froid :

  • Démarrage à froid utilisateur , c'est-à-dire comment faire des recommandations personnalisées pour les nouveaux utilisateurs

  • démarrage à froid , c'est-à-dire comment recommander un nouvel article aux utilisateurs susceptibles d'être intéressés

  • Démarrage à froid du système , c'est-à-dire comment concevoir un système de recommandation personnalisé sur un site Web nouvellement développé (pas d'utilisateurs, pas de comportement d'utilisateur, seulement quelques informations sur les éléments), afin que les utilisateurs puissent bénéficier de recommandations personnalisées lorsque le site Web vient d'être publié

5.3 Solutions au problème du démarrage à froid

5.3.1 Fournir des recommandations non personnalisées

L'exemple le plus simple consiste à fournir des classements populaires, qui peuvent recommander des classements populaires aux utilisateurs, puis à passer à des recommandations personnalisées lorsque les données des utilisateurs sont collectées dans une certaine mesure. Les recherches de Netflix montrent également que les nouveaux utilisateurs sont en effet plus enclins à la liste chaude pendant la phase de démarrage à froid, et les anciens utilisateurs auront davantage besoin de recommandations à longue traîne.

5.3.2 Utilisation des informations d'enregistrement de l'utilisateur

Il existe trois types d'informations d'enregistrement d'utilisateur :

  • Informations démographiques, y compris l'âge, le sexe, la profession, l'origine ethnique, l'éducation et le lieu de résidence

  • Description des intérêts des utilisateurs, certains sites Web permettent aux utilisateurs de décrire leurs intérêts avec des mots

  • Le comportement hors site des utilisateurs importés d'autres sites Web, tels que l'utilisateur se connectant avec le compte d'un site de réseau social, peut importer une partie des données de comportement de l'utilisateur et des données de réseau social sur le site de réseau social avec l'autorisation de l'utilisateur .

La granularité de cette personnalisation est très grossière.En supposant que le sexe soit recommandé comme granularité, toutes les femmes qui viennent de s'inscrire verront les mêmes résultats, mais par rapport à la façon dont les hommes et les femmes ne sont pas différenciés, la précision de cette recommandation a été grandement amélioré.

5.3.3 Choisir le bon élément pour activer l'intérêt de l'utilisateur

L'utilisateur donne des commentaires sur certains éléments lorsqu'il se connecte, recueille les informations d'intérêt de l'utilisateur sur ces éléments, puis recommande les éléments similaires à ces éléments à l'utilisateur. En général, les éléments qui peuvent être utilisés pour activer les intérêts des utilisateurs doivent avoir les caractéristiques suivantes :

  • Plus populaire, si les utilisateurs souhaitent donner leur avis sur des éléments, le principe est que les utilisateurs doivent savoir de quoi il s'agit ;

  • Il est représentatif et différencié, et les éléments qui activent l'intérêt de l'utilisateur ne peuvent pas être populaires ou adaptés à tous les âges, car ces éléments ne différencient pas l'intérêt de l'utilisateur ;

  • La collection d'éléments de démarrage doit être diversifiée. Pendant le démarrage à froid, nous ne connaissons pas les intérêts des utilisateurs, et il existe de nombreuses possibilités pour les intérêts des utilisateurs. Afin de répondre à divers intérêts, nous devons fournir une collection d'éléments de démarrage avec un haut Ces éléments peuvent couvrir presque tous les intérêts des utilisateurs grand public.

5.3.4 Utilisation des informations sur le contenu des éléments

Le problème de démarrage à froid des éléments est très important dans les sites Web sensibles au temps tels que les sites d'actualités, car ces sites ont de nouveaux éléments ajoutés tout le temps, et chaque élément doit pouvoir être affiché aux utilisateurs la première fois, sinon après une période de temps, la valeur de l'article est considérablement réduite.

Pour l'algorithme UserCF , pour les sites où la liste recommandée n'est pas la seule liste de contenu à afficher aux utilisateurs (la plupart des sites le sont). Lorsqu'un nouvel élément est ajouté, il y aura toujours des utilisateurs qui le verront par certains moyens, donc lorsqu'un utilisateur donne son avis, l'élément peut apparaître dans la liste de recommandations d'utilisateurs ayant des intérêts historiques similaires, afin que plus de personnes l'élément a fait apparaître l'élément dans les listes de recommandations d'un plus grand nombre de personnes.

Par conséquent, l'élément peut être diffusé en continu et affiché progressivement dans la liste de recommandations des utilisateurs qui s'y intéressent. Pour les sites Web où la liste de recommandations est le principal moyen pour les utilisateurs d'obtenir des informations (comme Douban Internet Radio), l'algorithme UserCF a besoin pour résoudre le premier push La question du pouvoir, c'est-à-dire où le premier utilisateur a-t-il découvert le nouvel élément. Le plus simple est de donner à l'utilisateur le nouvel objet guerrier aléatoire, mais c'est trop impersonnel. Par conséquent, nous pouvons envisager d'utiliser les informations sur le contenu de l'élément pour livrer d'abord le nouvel élément aux utilisateurs qui ont aimé d'autres éléments avec un contenu similaire.

Pour l'algorithme ItemCF , le démarrage à froid des articles est un problème très sérieux. Étant donné que la base de l'algorithme consiste à calculer la similarité entre les éléments via le comportement de l'utilisateur sur l'élément, lorsque le nouvel élément n'a pas été montré à l'utilisateur, l'utilisateur ne peut pas générer de comportement. Pour cette raison, seules les informations de contenu de l'élément peuvent être utilisées pour calculer le degré de pertinence de l'élément. L'idée de base est de convertir les éléments en vecteurs de mots clés et d'obtenir le degré de corrélation des éléments en calculant la similarité entre les vecteurs (par exemple, en calculant la similarité en cosinus).

5.3.5 Utilisation d'annotations d'experts

Lorsque de nombreux systèmes sont construits, il n'y a ni données sur le comportement des utilisateurs ni informations suffisantes sur le contenu des éléments pour calculer la similarité des éléments. Dans ce cas, de nombreux systèmes utilisent des experts pour l'annotation.

Systèmes représentatifs : station de radio Internet personnalisée Pandora, site Web de recommandation de films Jinni.

Prenons l'exemple de Pandora Radio, Pandora a embauché un groupe de musiciens pour étiqueter les chansons de dizaines de milliers de chanteurs dans différentes dimensions, et a finalement sélectionné plus de 400 fonctionnalités. Chaque chanson peut être identifiée comme un vecteur à 400 dimensions, puis la similarité des chansons est calculée à l'aide d'un algorithme de similarité vectoriel commun.

6. Système de recommandation en pratique

6.1 Ensembles de données couramment utilisés dans la recherche universitaire sur les systèmes de recommandation

  • MovieLen (https://grouplens.org/datasets/movielens/)

    Dans l'ensemble de données MovieLens, les utilisateurs évaluent les films qu'ils ont regardés, avec un score allant de 1 à 5. MovieLens comprend deux bibliothèques de tailles différentes pour des algorithmes d'échelles différentes. La bibliothèque à petite échelle est constituée des données de 10 000 évaluations de 1 682 films par 943 utilisateurs uniques ; la bibliothèque à grande échelle est d'environ 1 million d'évaluations de 3 900 films par 6 040 utilisateurs uniques.

  • LivreCrossin g (

    Cet ensemble de données correspond aux évaluations de 271 379 livres par 278 858 utilisateurs de la communauté de livres en ligne Book-Crossing, à la fois des évaluations explicites et implicites. Les caractéristiques démographiques telles que l'âge de ces utilisateurs sont gardées anonymes et disponibles pour analyse. Cet ensemble de données a été collecté auprès de la communauté de livres Book-Crossing en 2004 par Cai-Nicolas Ziegler à l'aide d'un crawler.

  • blague de bouffon (

    Jester Joke est un site en ligne pour recommander et partager des blagues. Cet ensemble de données compte 4,1 millions d'évaluations pour 100 blagues par 73496 utilisateurs. La plage de notation est un nombre réel continu de 10 à 10. Les données ont été publiées par Ken Goldberg de l'Université de Californie à Berkeley.

  • Netflix (

    Ce jeu de données provient de la base de données du site de location de films Netflix. Netflix a publié cet ensemble de données fin 2005 et a mis en place un prix d'un million de dollars (prix netflix) pour solliciter des algorithmes et des architectures de recommandation pouvant améliorer de 10 % les performances de son système de recommandation. Cet ensemble de données contient environ 1 milliard d'évaluations d'environ 17770 films par 480189 utilisateurs anonymes.

  • Groupes de discussion Usenet (

    Cet ensemble de données comprend les données de navigation des utilisateurs pour 20 groupes de discussion. La dernière application est un article au KDD 2007. Le contenu des groupes de discussion et les sujets abordés incluent la technologie informatique, les motos, le basket-ball, la politique, etc. Les utilisateurs évaluent et donnent leur avis sur ces sujets.

  • Bibliothèque de l'UCI (https://archive.ics.uci.edu/ml/datasets.html)

    La bibliothèque UCI est une base de données pour l'apprentissage automatique et l'évaluation ouverte par Blake et al. en 1998, qui stocke un grand nombre d'échantillons étiquetés pour la formation de modèles et peut être utilisée pour les données de test de performance des systèmes de recommandation.

6.2 Bibliothèques disponibles pour les systèmes de recommandation

  • LibRec (

LibRec est une bibliothèque d'algorithmes open source pour les systèmes de recommandation couvrant plus de 70 types d'algorithmes de recommandation, qui résout efficacement deux problèmes de recommandation clés de prédiction de notation et de recommandation d'articles. La structure du projet est claire, le style de code est bon, le test est suffisant, les annotations et les manuels sont complets et le code est open source basé sur le protocole GPL3.0. Le lien GitHub est : https://github.com/guoguibing/librec

  • Crabe (

Crab est un logiciel de recommandation open source développé sur la base de Python, qui implémente un filtrage collaboratif des éléments et des utilisateurs. On dit que d'autres algorithmes sont encore en développement, et le code python de Crab semble très clair et adapté à la lecture.

Le tutoriel du système peut être vu ici :

  • Fonction SVDF (

Un outil de filtrage et de tri collaboratif basé sur les fonctionnalités développé par le laboratoire Apex de l'Université Jiaotong de Shanghai avec une qualité de code élevée. 1ère place à la KDD Cup 2012, 3ème place à la KDD Cup 2011, articles connexes publiés dans JMLR 2012. SVDFeature comprend un cadre de recommandation de factorisation matricielle très flexible, qui peut facilement implémenter SVD, SVD++ et d'autres méthodes, et est le plus précis parmi les algorithmes de recommandation à modèle unique. Le code SVDFeature est affiné et une version autonome à grande échelle de la factorisation matricielle peut être implémentée avec relativement moins de mémoire. De plus, le modèle contenant la régression logistique peut être facilement utilisé pour l'ensemble.

  • LibMF (

L'auteur Chih-Jen Lin est de la célèbre université nationale de Taiwan. Ils sont bien connus dans le domaine de l'apprentissage automatique. Ces dernières années, ils ont obtenu d'excellents résultats dans plusieurs compétitions consécutives de la KDD-Cup et ont remporté le championnat pour de nombreuses années consécutives. Le style de l'Université de Taiwan est très pragmatique. Les logiciels LibSVM et Liblinear couramment utilisés dans l'industrie sont développés par eux. L'efficacité et la qualité du code open source sont très élevées.

LibMF a apporté une bonne contribution à la parallélisation de la décomposition matricielle. Visant le problème de verrouillage et le problème de discontinuité mémoire de la méthode d'optimisation SGD (Stochastic Gradient Descent) en calcul parallèle, un algorithme efficace de décomposition matricielle FPSGD (Fast Parallel) est proposé. SGD ), divisez le bloc de matrice de notation en fonction du nombre de nuds de calcul et attribuez des nuds de calcul.

  • LibFM ( )

L'auteur est Steffen Rendle de l'Université de Constance en Allemagne. Il a utilisé LibFM pour jouer les unités de sous-compétition Track1 et Track2 de la KDD Cup 2012 en même temps, et a obtenu de bons résultats, indiquant que LibFM est un outil très utile.

LibFM est un outil puissant spécialement utilisé pour la décomposition matricielle, en particulier l'algorithme d'optimisation MCMC (Markov Chain Monte Carlo) est implémenté, qui est plus précis que la méthode d'optimisation SGD courante, mais la vitesse de fonctionnement est plus lente. Bien sûr, LibFM implémente également des algorithmes tels que SGD, SGDA (Adaptive SGD) et ALS (Alternating Least Squares).

  • Lenskit ( )

Ce système de recommandation open source développé en Java provient de l'équipe GroupLens de l'Université du Minnesota aux États-Unis, et est également l'auteur de Movielens, un ensemble de données de test bien connu dans le domaine de la recommandation.

Le code source est hébergé sur GitHub (https://github.com/grouplens/lenskit). Comprend principalement lenskit-api, lenskit-core, lenskit-knn, lenskit-svd, lenskit-slopone, lenskit-parent, lenskit-data-structures, lenskit-eval, lenskit-test et d'autres modules, implémente principalement k-NN, SVD , Slope-One et d'autres algorithmes typiques du système de recommandation.

  • EasyRec ( )

EasyRec est un système de recommandation puissant, facile à intégrer, facile à développer, avec une gestion visuelle. Il s'agit plutôt d'un produit de recommandation complet, comprenant un module de saisie de données, un module de gestion, une extraction de recommandations, une analyse hors ligne, etc. Il peut fournir des services de recommandation à plusieurs sites Web différents en même temps et distinguer différents sites Web par le biais de locataires. Configurez un serveur EasyRec, postulez pour un locataire pour le site Web et intégrez-le facilement dans le site Web via le locataire.

7. Cas du système de recommandation (étude de cas)

7.1 Comment Facebook recommande des choses à un milliard de personnes

En tant que premier site de réseautage social au monde, Facebook utilise un système de recommandation distribué pour aider les utilisateurs à trouver des pages, des groupes, des événements ou des jeux susceptibles de les intéresser. Facebook a annoncé le principe, les performances et l'utilisation de son système de recommandation sur son site officiel. (https://code.facebook.com/posts/861999383875667/recommending-items-to-more-than-a-billion-people/)

L'ensemble de données auquel le système de recommandation de Facebook fait face contient environ 100 milliards d'évaluations, plus d'un milliard d'utilisateurs et des millions d'éléments. Par rapport au célèbre prix Netflix, l'échelle de données de Facebook a dépassé ses deux niveaux de données. Comment maintenir de bonnes performances dans le cas d'une grande échelle de données est devenu un problème de classe mondiale. Pour résoudre ce dilemme, l'équipe Facebook utilise une plate-forme distribuée d'itération et de traitement d'images Apache Giraph En tant que plate-forme de base du système de recommandation.

En termes de fonctionnement, le système de recommandation de Facebook utilise la technique de filtrage collaboratif populaire. Mathématiquement, le problème consiste à prédire des valeurs inconnues en fonction de valeurs connues dans la matrice de notation des éléments utilisateur. Le processus de résolution est généralement Méthode de factorisation matricielle (MF) . La méthode MF exprime la matrice d'évaluation des utilisateurs comme le produit de la matrice des utilisateurs et de l'élément, et utilise le résultat R' de la multiplication de ces matrices pour ajuster la matrice d'évaluation d'origine R, de sorte que les deux soient aussi proches que possible. Si nous prenons la distance entre et comme objectif d'optimisation, alors la factorisation matricielle devient le problème de trouver la valeur minimale.

Pour les données à grande échelle, le processus de résolution peut prendre du temps. Pour réduire la complexité temporelle et spatiale, des algorithmes itératifs à partir de vecteurs propres aléatoires sont proposés. Ces algorithmes itératifs convergent progressivement et peuvent trouver une solution optimale en un temps raisonnable. Algorithme de descente de gradient stochastique (SGD) C'est l'un d'entre eux, qui a été utilisé avec succès pour résoudre de nombreux problèmes. L'idée de base de SGD est de parcourir les données de l'ensemble d'apprentissage de manière aléatoire et de donner une valeur de score prédite pour chaque score connu. L'ajustement des vecteurs de caractéristiques d'utilisateur et d'élément est effectué de manière itérative dans le sens d'une erreur de notation décroissante jusqu'à ce que l'erreur atteigne l'exigence de conception. Par conséquent, la méthode SGD peut résoudre le vecteur propre sans traverser tous les échantillons. Alternating Least Square (ALS) est un autre algorithme itératif. L'idée de base est de fixer alternativement les valeurs des vecteurs propres utilisateur et des vecteurs propres élément, et de trouver en permanence des solutions optimales locales jusqu'à ce que les conditions de solution soient remplies.

Afin d'utiliser l'algorithme ci-dessus pour résoudre le problème du système de recommandation Facebook, la méthode standard d'origine dans Giraph doit être modifiée. Auparavant, l'approche standard de Giraph consistait à traiter à la fois les utilisateurs et les éléments comme des sommets dans le graphique et les évaluations connues comme des arêtes. Ensuite, le processus itératif de SGD ou ALS consiste à parcourir toutes les arêtes du graphe, à envoyer les vecteurs de caractéristiques des utilisateurs et des éléments et à effectuer des mises à jour locales. Il y a plusieurs problèmes importants avec cette approche.

Premièrement, le processus itératif entraînera une énorme charge de communication réseau. Étant donné que le processus itératif doit parcourir toutes les arêtes, la quantité de données envoyées en une itération est le produit du nombre d'arêtes et du nombre de vecteurs de caractéristiques. En supposant que le nombre de scores est de 100 milliards et que le vecteur de caractéristiques est de 100 paires, la quantité de données de communication par itération est de 80 To. Deuxièmement, la popularité différente des éléments entraînera une répartition inégale des degrés de nud dans le graphique. Ce problème peut entraîner une mémoire insuffisante ou provoquer un goulot d'étranglement de traitement. En supposant qu'un élément a 100 milliards de notes et 100 paires de vecteurs de caractéristiques, un point correspondant à l'élément doit recevoir 80 Go de données en une itération. Enfin, l'algorithme SGD n'est pas implémenté dans Giraph exactement comme requis dans la formule. Dans une implémentation réelle, chaque point fonctionne avec les vecteurs propres réellement reçus au début de l'itération, et non avec les vecteurs propres globalement à jour.

D'après ce qui précède, on peut voir que le plus gros problème de Giraph est que les informations de mise à jour doivent être envoyées à chaque sommet à chaque itération. Pour résoudre ce problème, Facebook a inventé un exploit travail à travail Une méthode efficace et pratique de transfert d'informations. Cette méthode divise le graphe original en un cercle composé de plusieurs travaux. Chaque travailleur contient une collection d'éléments et plusieurs utilisateurs. À chaque étape, les travailleurs adjacents envoient des informations contenant des mises à jour d'éléments aux travailleurs en aval dans le sens des aiguilles d'une montre. De cette façon, seuls les scores internes de chaque travailleur sont traités à chaque étape, et après le même nombre d'étapes que le nombre de travailleurs, tous les scores sont également traités. Cette méthode réalise que la quantité de communication est indépendante du nombre de scores, ce qui peut réduire considérablement la quantité de communication de données dans le graphique. De plus, le problème de distribution inégale des degrés de nuds dans la méthode standard disparaît également car les éléments ne sont plus représentés par des sommets. Afin d'améliorer encore les performances de l'algorithme, Facebook a combiné les deux algorithmes de SGD et ALS, et a proposé une méthode de solution hybride rotative .

Ensuite, Facebook exécute le réel Test A/B La performance du système de recommandation a été mesurée entre. Tout d'abord, en saisissant un ensemble d'apprentissage constant, le système de recommandation affine les paramètres de l'algorithme pour améliorer la précision de la prédiction. Le système donne ensuite un score par rapport à l'ensemble de test et le compare avec les résultats connus. L'équipe Facebook évalue le système de recommandation à partir de la note moyenne des éléments, de la précision de la note des 1/10/100 meilleurs éléments, de la précision moyenne de tous les éléments testés, etc. En outre, l'erreur quadratique moyenne (RMSE) est également utilisée pour enregistrer l'impact des erreurs individuelles.

De plus, même avec des méthodes informatiques distribuées, il serait toujours impossible pour Facebook de vérifier les notes de chaque paire utilisateur/élément. L'équipe doit trouver un moyen plus rapide d'obtenir les K éléments recommandés pour chaque utilisateur, puis utiliser le système de recommandation pour calculer la note de l'utilisateur. Une des solutions possibles est d'utiliser structure de données de l'arbre à billes pour stocker le vecteur d'éléments. La structure en arbre à billes peut accélérer le processus de recherche de 10 à 100 fois, de sorte que le travail de recommandation d'articles puisse être terminé dans un délai raisonnable. Une autre approche qui peut approximer le problème consiste à classer les éléments en fonction de leurs vecteurs de caractéristiques. De cette manière, la recherche des scores de recommandation est divisée en deux processus : la recherche du groupe d'éléments le plus recommandé et l'extraction de l'élément avec la note la plus élevée dans le groupe d'éléments. Cette méthode réduira dans une certaine mesure la crédibilité du système de recommandation, mais elle peut accélérer le processus de calcul.

Enfin, Facebook présente les résultats de quelques expériences. En juillet 2014, Databricks a publié des résultats de performances pour la mise en uvre d'ALS sur Spark. Facebook mène des expériences standard basées sur Spark MLlib par rapport à l'ensemble de données d'Amazon, comparant les résultats avec sa propre approche spin-hybride. Les résultats expérimentaux montrent que le système de Facebook est environ 10 fois plus rapide que le système standard. En outre, le premier peut facilement gérer plus de 100 milliards de notes.

À l'heure actuelle, cette méthode a été utilisée dans de nombreuses applications Facebook, y compris la recommandation de page ou de groupe. Afin de réduire la charge du système, Facebook ne considère que les pages et les groupes avec un degré supérieur à 100 comme candidats. De plus, dans l'itération initiale, le système de recommandation de Facebook prend en entrée à la fois les pages que l'utilisateur aime/les groupes qu'il rejoint et les groupes que l'utilisateur n'aime pas ou refuse de rejoindre. De plus, Facebook utilise également des algorithmes basés sur ALS pour obtenir des commentaires indirects des utilisateurs. À l'avenir, Facebook continuera d'améliorer le système de recommandation, notamment en utilisant des graphiques sociaux et des connexions utilisateur pour améliorer les ensembles de recommandations, en automatisant l'ajustement des paramètres et en essayant de mieux diviser les machines.

7.2 Netflix annonce la personnalisation et l'architecture du système de recommandation

En tant que fournisseur de location de films en ligne, Netflix a été classé cinq fois de suite comme le site le plus satisfaisant pour les clients. Les fonctionnalités de recommandation et de personnalisation de Netflix sont connues dans l'industrie pour leur précision, et ils ont publié leur propre architecture système à cet égard. (

Netflix a publié son schéma fonctionnel du système avec une explication des composants et des processus :

Pour les données, le moyen le plus simple consiste à les enregistrer pour un traitement hors ligne ultérieur, qui fait partie de l'architecture que nous utilisons pour gérer les travaux hors ligne. le calcul peut être hors ligne , proche de en ligne ou en ligne Finir.

  • Calcul en ligne Répondez plus rapidement aux événements récents et aux interactions des utilisateurs, mais cela doit être fait en temps réel. Cela limite la complexité de l'algorithme utilisé et la quantité de données traitées.

  • Calcul hors ligne Il y a moins de restrictions sur la quantité de données et la complexité de l'algorithme car cela se fait par lots sans exigences de temps fortes. Cependant, comme les données les plus récentes ne sont pas ajoutées en temps opportun, elles peuvent facilement devenir obsolètes. Un problème clé pour les architectures personnalisées est de savoir comment combiner et gérer de manière transparente les processus informatiques en ligne et hors ligne.

  • Calcul quasi-linéaire Entre les deux approches, il est possible d'effectuer des méthodes similaires aux calculs en ligne, mais sans nécessairement se faire en temps réel.

  • Formation modèle est un autre calcul qui utilise des données existantes pour générer un modèle qui peut être utilisé ultérieurement dans le calcul des résultats réels.

Un autre élément de l'architecture consiste à utiliser la distribution d'événements et de données pour gérer différents types de données et d'événements. Un problème connexe est de savoir comment combiner les différents signaux et modèles qui s'étendent hors ligne, presque en ligne et en ligne. Enfin, nous devons comprendre comment combiner les résultats de la recommandation afin qu'ils aient un sens pour l'utilisateur.

Ressources de référence :

< Le manuscrit ci-dessus a été écrit en référence aux ressources suivantes > :

https://www.slideshare.net/xamat/recommender-systems-machine-learning-summer-school-2014-cmu

https://code.facebook.com/posts/861999383875667/recommending-items-to-more-than-a-billion-people/

https://github.com/mendeley/mrec

https://github.com/muricoca/crabe

https://github.com/ocelma/python-recsys

https://github.com/markusweimer/cofirank

https://github.com/jegonzal/PowerGraph

https://github.com/hernad/easyrec

https://github.com/lenskit/lenskit

https://github.com/apache/mahout

https://github.com/davidcelis/recommendable

« Pratique du système de recommandation » (éclairage des éléments)

Système de recommandation (Dietmar Jannach et al., traduit par Jiang Fan)

"Portrait du comportement de l'utilisateur sur le réseau" (Niu Wenjia et al.)

Manuel des systèmes de recommandation (Paul B. Kantor et al.)

Illustrated Wuhan | phénomène super chaud à deux à onze, ligne
Précédent
Cent ans de la victoire de la guerre | ingéniosité courageuse: les travailleurs chinois qui ont mis un obus d'artillerie sculpté dans des uvres d'art
Prochain
Exclusif | suggestions à 8:00 scientifiques de données primaires (ci-joint des ressources d'apprentissage)
membre italien de la Société photographique chinoise Wang Huirong a remporté le treizième Prix national des Arts italien
Qiuya Guan grande Gif défaite 2-0 de la défense rivale, les fans coréens célébrations sauvages!
Exclusive | lire un savoir système recommender article - le (concept, la structure, les algorithmes)
collations essentielles de printemps, 2 minutes pour apprendre, doux et doux, est aussi délicieux que d'acheter
Le gouvernement britannique: construire des pouvoirs AI du monde 18 recommandations (Télécharger le rapport)
Journée offre spéciale de mère | femme aiguille sous-marine de coeur, ces produits technologiques envoyer des « mères » pour être sûr
Les gens regardent comment les programmeurs confession! (Avec des tutoriels ~)
Exclusive | lire un article d'apprentissage intégré (ressources d'apprentissage ci-joint)
Exclusive | vous apprendre à créer vos propres jeux de données avec Scrapy
"New York Times": 2016 de la plupart des nouvelles de la science mémorable
Aujourd'hui, une personne a participé au marathon Mulanshan