Comment sont les sections d'apprentissage automatique lors des entretiens avec Yandex

Chaque service Yandex est largement basé sur l'analyse des données et les méthodes d'apprentissage automatique. Ils sont nécessaires pour classer les résultats de recherche sur le Web, pour rechercher des images et pour former des blocs de recommandations. L'apprentissage automatique nous permet de créer des véhicules sans pilote et des assistants vocaux, de réduire les temps d'arrêt inutiles pour les chauffeurs de taxi et de réduire les temps d'attente pour leurs clients. Toutes les applications et non la liste!


Par conséquent, nous ressentons toujours le besoin de spécialistes de l'analyse des données et de l'apprentissage automatique. L'une des étapes les plus importantes d'un entretien dans Yandex pour eux est la section générale sur l'apprentissage automatique, dont je parlerai dans cet article. Un exemple de la tâche modèle pour cette section et du contenu possible de la réponse que j'ai faite dans une vidéo qui est récemment devenue disponible sur YouTube . Dans cet article, je parlerai davantage de ce que nous attendons d'un candidat fort dans une telle section et pourquoi nous avons formulé précisément de tels critères.


image


1. Entretiens avec Yandex Machine Learning


Les employés supérieurs et dirigeants de Yandex sont capables de transformer indépendamment des tâches formulées en termes commerciaux en tâches d'apprentissage automatique correctement posées; choisir les méthodes de solution appropriées, former des descriptions de caractéristiques, construire le processus de mise à jour des modèles et le contrôle correct de leur qualité; enfin, vérifiez que les solutions résultantes répondent aux exigences commerciales d'origine.


Dans une large mesure, ces personnes influencent // la formation des // exigences commerciales: les personnes qui travaillent directement avec des données peuvent mieux connaître dans le monde quelles caractéristiques des services affectent leur popularité et leur utilité, quels problèmes d'utilisateurs doivent être résolus et à quels indicateurs cela affectera.


En règle générale, nos meilleurs employés ont également des connaissances spécialisées dans des domaines spécifiques - par exemple, la vision par ordinateur, la création de modèles de langage ou des modèles de services de conseil ou de recherche.


Nous apprécions vraiment nos employés et leur expertise et souhaitons que les candidats externes atteignent également ce niveau. Pour tester cela, une ou plusieurs sections peuvent être consacrées à des sujets spéciaux, tels que la vision par ordinateur ou le classement des méthodes de formation. Une des sections est obligatoire consacrée aux questions «générales»: énoncé du problème, formation de la fonction objectif et de l'échantillon d'apprentissage, acceptation des modèles. Il s'agit d'elle maintenant et sera discuté.


Bien entendu, l'éventail complet des exigences ne s'applique qu'aux candidats qui postulent pour les postes de spécialistes seniors ou de premier plan. Les candidats qui comptent sur des postes intermédiaires ou juniors n'ont pas besoin de pouvoir faire tout ce qui précède, mais ils doivent savoir que les compétences pertinentes sont extrêmement utiles pour la croissance de carrière - à la fois chez Yandex et dans d'autres entreprises.


Selon les exigences de l'unité, une section d'algorithme avec du code d'écriture ou même une section architecturale peut également être requise.


2. Énoncé du problème


Ainsi, la tâche principale de la section est de vérifier dans quelle mesure le candidat est capable de gérer indépendamment la tâche dans son intégralité, à partir de sa formulation et se terminant par des questions d'acceptation dans les expériences utilisateur.


La section commence par l'énoncé du problème en termes commerciaux. Dites, vous devrez peut-être créer un service qui invite les établissements à proximité, recommande certains produits ou classe les films ou la musique qui intéressent les utilisateurs.


Vous pouvez commencer par identifier les applications possibles pour la tâche en question. Combien d'utilisateurs la solution résultante aura-t-elle, qui sont-ils, pourquoi ont-ils besoin de cette fonctionnalité, comment la découvrent-ils? Le candidat peut poser toutes ces questions ou proposer sa propre vision des réponses (cette dernière option est bien sûr préférable).


En fonction des causes de la tâche, des mesures commerciales sont formulées, puis des mesures peuvent être optimisées dans le processus d'apprentissage ou la sélection de modèles. Un indicateur d'une classe extrêmement élevée d'un candidat est si le choix des mesures d'optimisation est dicté par la signification physique du problème à résoudre. L'exemple le plus simple de ce type est l'utilisation de mesures de type DCG pour le classement des tâches ou de mesures de type AUC pour certains problèmes de classification spécifiques.


Ici, il est également nécessaire d'aborder la question de la formation d'un échantillon d'apprentissage. Quelles données sont nécessaires à sa formation, comment les obtenir? Qu'est-ce qu'un événement pour notre formation? Un échantillonnage est-il nécessaire? Si oui, comment faire?


3. Méthodes d'apprentissage automatique


Une fois la tâche entièrement formulée, vous pouvez commencer à discuter des méthodes pour la résoudre.


Ici, vous devez choisir un modèle qui construira la solution et justifier votre choix. Il vaut la peine de parler de la fonction de perte optimisée dans le processus de construction du modèle et de la raison pour laquelle c'est un bon choix pour optimiser les métriques discutées dans le paragraphe précédent. Il est également utile de considérer la méthode d'optimisation utilisée.


L'élément suivant à discuter est l'espace des fonctionnalités. Un spécialiste de classe peut immédiatement trouver plusieurs dizaines voire des centaines de signes dans une nouvelle tâche, après les avoir préalablement divisés en plusieurs classes selon les types de données utilisées (par exemple, les signes peuvent dépendre uniquement de l'utilisateur, ou ils peuvent dépendre de la paire «utilisateur-objet»).


Un autre avantage est la prise en compte du problème de démarrage à froid. Lorsque le service Yandex.Taxi a déjà été créé, nous pouvons utiliser des informations sur les trajets réels pour optimiser les méthodes de routage dans la ville; lorsqu'il existe déjà un moteur de recherche Yandex, vous pouvez utiliser des actions utilisateur pour recevoir des signaux sur les documents pertinents pour vos requêtes. Mais que se passe-t-il si le service n'a pas encore été créé et que le problème résolu est critique pour son fonctionnement? Nous devons offrir un moyen de construire une solution raisonnablement bonne dans ce cas.


4. Contrôle qualité


Enfin, lorsque la solution est prête, vous devez vous assurer qu'elle est suffisamment bonne. Si la décision précédente a été précédée d'une décision précédente, il est nécessaire de comprendre si la nouvelle solution est meilleure.


À ce stade, le candidat doit démontrer sa capacité à formuler des expériences pour tester des hypothèses pertinentes. Ici, vous devez choisir un modèle d'expérience et un moyen de tester la signification statistique des changements. Disons que cela peut être une expérience A / B régulière sur les utilisateurs du service, ou une évaluation experte des résultats du travail. Quels indicateurs devraient être contrôlés? Que faut-il surveiller et comment garantir l'exactitude de l'expérience?


5. Comment réussir dans la section


Le niveau du candidat est entièrement déterminé par son indépendance et sa profondeur à déterminer la solution de la tâche. Une section d'apprentissage automatique bien menée ne peut être distinguée d'une section connue de nos collègues occidentaux sous le nom de ML System Design, et une section faible peut ressembler à une discussion sur un problème spécial - par exemple, l'optimisation LLH par des règles de division linéaire.


Dans le même temps, nous comprenons bien que dans les problèmes d'apprentissage automatique, il est souvent difficile de savoir quelle méthode fonctionnera et si au moins certaines fonctionneront. Par conséquent, n'hésitez pas à discuter du problème avec l'interlocuteur comme si c'était votre collègue avec qui vous aviez décidé de discuter des solutions possibles au problème survenu lors d'un travail normal. Nous n'exigeons pas que la solution décrite dans la section soit garantie comme étant bonne - nous voulons seulement qu'elle ait une justification raisonnable pour nous permettre de croire que vous accomplirez une telle tâche dans des conditions réelles.


Par exemple, nous n'exigeons pas une connaissance approfondie de divers critères statistiques, mais nous nous attendons à ce que vous reconnaissiez l'importance de tester correctement les hypothèses et que vous soyez qualifié pour utiliser ces méthodes si nécessaire. De même, cette section ne nécessite pas de description détaillée du fonctionnement des méthodes d'apprentissage automatique, mais nous nous attendons à ce que vous puissiez raisonnablement choisir certains modèles pour vos tâches.


Dans le même temps, vous êtes libre de vous plonger dans les domaines que vous connaissez bien. Passez plus de temps dans votre réponse et moins parler de l'endroit où vos connaissances ne sont pas si profondes. Nous comprenons qu'il est impossible d'être un spécialiste dans tous les domaines et en même temps, nous apprécions l'honnêteté intellectuelle. Si un candidat comprend bien ses forces et ses faiblesses et est capable d'en parler ouvertement, c'est un très bon signe. De plus, cela vous permet de passer efficacement du temps de section: il sera plus consacré à l'identification des points forts du candidat.




Enfin, je donnerai quelques sources, qui seront utiles pour étudier à la fois afin de travailler avec plus de succès sur des projets liés au machine learning, et afin de préparer la section machine learning.



Eh bien, notre vidéo YouTube:


Source: https://habr.com/ru/post/fr475584/


All Articles