Business

People Analytics peut-il le faire?

People Analytics peut-il le faire?


Suralimenter l'analyse des personnes avec la technologie graphique

0*jti g9bgAktTUKx2 - People Analytics peut-il le faire?

Dans un article précédent, j'avais déjà plaidé en faveur de Graphes dans l'analyse de personnes. Vous pouvez lire le post ici: https://towardsdatascience.com/the-dawn-of-a-new-era-for-people-analytics-9a748f7fdc2. Dans cet article, je vais approfondir un peu plus la technologie des graphes et montrer comment un graphe de personnes peut permettre trois domaines importants de la gestion du capital humain: comprendre les réseaux organisationnels, s'attaquer au sous-rendement et développer les talents.

La technologie graphique est particulièrement bien adaptée aux applications People Data, où les données sous-jacentes sont fortement connectées et où les relations que nous voulons modéliser et analyser changent et évoluent constamment. Je montrerai en quoi les graphiques sont parfaits pour une analyse exploratoire de données connectées. Je vais aussi montrer comment algorithmes de graphes pour détection de la communauté et centralité peut fournir des informations précieuses sur les réseaux organisationnels - des informations difficiles à obtenir à partir de structures de tables relationnelles. Je vais également expliquer comment les graphiques permettent aux entreprises d’atteindre un niveau plus élevé de analyse avancée et prédictive.

J'utiliserai les données HR Metrics and Analytics mises à disposition par le New England College of Business; un ensemble de données synthétiques comprenant 300 enregistrements d’employés. J'utiliserai seulement un sous-ensemble des données disponibles pour créer le graphique, notamment le nom de l'employé, le responsable, le service, les compétences et une référence à la méthode d'acquisition de cet employé.

Pour héberger le graphique, j'utilise neo4j Desktop et je construis un OGM (modèle d'objet graphique) avec la bibliothèque neomodel et une API permettant aux applications d'interagir avec les objets du modèle graphique. Avant de plonger dans le graphique lui-même, je vais tout d'abord expliquer le concept d'un OGM de manière plus détaillée et pourquoi je pense que cette approche convient particulièrement bien au défi de créer un «graphe de personnes».

Le modèle de graphe d'objet

Bien sûr, j'aurais pu utiliser le chiffrement pour créer le graphique directement. Cependant, investir du temps dans la création d'un OGM (modèle objet-graphe) avec des objets sensibles à la base de données (Python) avec lesquels nos applications peuvent interagir présente deux avantages. Premièrement, cela nous permet d’ajouter progressivement à la définition de notre modèle à mesure que de nouveaux points de données et relations sont découverts. Nous ne saurons pas tout dès le début, mais nous voudrons certainement ajouter à la définition du modèle pour enrichir encore davantage la «photo des personnes». Et nous pouvons construire le graphique de manière itérative, avec un retour continu des utilisateurs professionnels, afin de savoir que le modèle de graphique sera adapté à ses besoins. Deuxièmement, l’API (Application Programming Interface), que les applications utiliseront pour interagir avec les objets du modèle de graphe, contribuera à garantir que les résultats obtenus par les utilisateurs lors de l’interrogation sont toujours exacts. L'architecture de la solution avec laquelle nous allons nous retrouver ressemble à ceci:

Schéma d'architecture de solution

Pour que le graphique reste simple, je ne vais pas utiliser toutes les données fournies dans le jeu de données HR, mais simplement définir suffisamment de nœuds et de relations pour pouvoir générer des informations utiles et afficher les algorithmes de neo4j. L'OGM aura des classes pour les types de nœuds suivants:

La personne - l'employé, avec les propriétés suivantes: nom, département, responsable, source et compétences.La source - d'où provient la personneCompétence - la compétence de la personnedépartement - le département auquel appartient l'employé

.. et les types de relation suivants.

HAS SOURCE - L'employé a une sourceHAS DEPARTMENT - L'employé a un départementHAS MANAGER - L'employé a un managerHAS PERFORMANCE SCORE - L’employé a un score de performanceA SA COMPETENCE - Un employé a une compétence

L'API

L'API (Application Programming Interface) est l'interface entre les applications et le graphe. Il aura un certain nombre de fonctions, permettant de créer des objets pour les nœuds et les relations et de rechercher des nœuds dans le graphique. Au fur et à mesure que vous développez votre graphique pour activer les applications et les outils d’entreprise sociale, vous souhaiterez offrir davantage de fonctions aux applications via l’API pour extraire toutes sortes de sous-graphes, nœuds, relations et propriétés différents du graphe.

Maintenant que nous avons le modèle défini et une instance active du graphique dans neo4j, nous pouvons nous concentrer sur les questions que notre graphique va nous aider à répondre et sur le type de requêtes que nous pourrions vouloir intégrer à notre API.

Un domaine d’intérêt croissant pour la gestion du capital humain (HCM) et qui est fondamental pour la livraison Agile est la capacité de comprendre réseaux d'organisation. En effet, la manière dont les individus et les équipes sont assemblés autour de projets est mieux rendue car nous comprenons les relations entre les personnes et les équipes de notre réseau organisationnel.

Nous pouvons interroger notre graphique pour voir les nœuds avec les relations HAS MANAGER. Cette visualisation en organigramme est utile, mais avec d'autres types de relations professionnelles dans notre graphique, que ce soit des collègues sur des projets, des mentorés / mentors, etc., le tableau serait beaucoup plus riche.

Faire correspondre les noeuds personnels à la relation HAS MANAGER dans le navigateur neo4j

Qui nous rend le plus vulnérable? Où sont les goulots d'étranglement?

La centralité de Betweenness est un algorithme utile pour rechercher les goulots d'étranglement, les points de contrôle et les vulnérabilités. L'algorithme calcule un score de centralité pour chaque nœud en effectuant une itération sur chaque paire de nœuds et en recherchant le nombre de chemins les plus courts passant par ce nœud. L'hypothèse étant que les nœuds les plus centraux - les goulets d'étranglement ou les nœuds qui rendent le réseau le plus vulnérable - se trouvent sur le chemin le plus court. Nous renvoyons la centralité betweenness pour les nœuds de personnes dans notre graphique avec la requête suivante, dans laquelle les individus avec le score de centralité le plus élevé pourraient être considérés comme des goulots d'étranglement ou des points de vulnérabilité:

CALL algo.betweenness.stream («Personne», «HAS MANAGER») YIELD nodeId, centralité RETOUR algo.getNodeById (nodeId) .name AS name, centrality ORDER BY centrality DESC
Entre centralité des nœuds de personnes

Qui a le plus d'influence?

PageRank est un algorithme populaire pour comprendre l'influence globale d'un nœud dans le réseau. Alors que Betweenness Centrality mesure l’influence directe d’un nœud, le classement PageRank prend en compte l’influence des voisins du nœud et de leurs voisins. Nous renvoyons le noeud PageRank des personnes de notre graphique avec la requête suivante, dans laquelle les individus ayant le score le plus élevé peuvent être considérés comme ceux ayant la plus grande influence sur l'ensemble de l'organisation:

CALL algo.pageRank.stream («Person», «HAS MANAGER», {itérations: 20, dampingFactor: 0,85}) YIELD nodeId, score RETURN algo.getNodeById (nodeId) .name AS nom, score ORDER BY score DESC.

Avec différents types de relations ajoutées au graphique - formelles, informationnelles, professionnelles et sociales - la photo des personnes devient beaucoup plus riche. Nous pouvons trouver des réponses à des questions telles que, certaines équipes sont-elles plus interconnectées que d'autres? et, certaines équipes sont-elles plus interconnectées que d'autres? Si nous considérons aussi les autres nœuds de notre graphique, tels que les nœuds pour le score de performance, nous pourrions déterminer la connectivité des individus a un impact sur le score de performance. Obtenir des réponses à ces questions à l'aide de modèles relationnels prend beaucoup de temps, mais avec des graphiques, obtenir les réponses à ce type de questions est relativement simple.

Le score de performance est représenté sous forme de nœud et de relation dans notre graphique. Nous pouvons donc exécuter une requête pour faire correspondre les relations avec HAS PERFORMANCE SCORE afin d'afficher le sous-graphe suivant.

L’interface graphique du navigateur neo4j est utile pour les analyses exploratoires car elle permet aux nœuds d’être «éclatés» pour afficher toutes les relations. Par exemple, si nous voulions exploser sur le nœud intitulé «Smith, John», le sous-graphe est étendu comme indiqué:

S'attaquer à la sous-performance ne consiste pas seulement à s'attaquer aux individus, mais également à s'attaquer à une culture dans laquelle des comportements ou des attitudes indésirables de la part d'un individu ont créé un environnement dans lequel la performance ne nous plairait pas. Algorithmes de graphes pour détection de la communauté peut être appliqué ici pour détecter des groupes d’employés présentant des traits négatifs.

Par exemple, nous pouvons utiliser le Louvain Modularité Un algorithme intégré à neo4j permet d'identifier les communautés dans la structure de gestion formelle et de générer un score de performance pour chaque individu de la communauté. Voici à quoi ressemblerait la requête:

CALL algo.louvain.stream ('Person', 'HAS MANAGER', {})
YIELD nodeId, communauté
RETOUR algo.asNode (nodeId) .name nom AS, communauté, algo.asNode (nodeId) .performance performance AS
ORDER BY community;

Les résultats obtenus dans le navigateur neo4j sont les suivants:

Algorithme de Louvain

Il est bien sûr utile de voir la répartition des scores de performance au sein des structures de gestion formelles (les communautés identifiées par Louvain), mais cette approche est beaucoup plus révélatrice lorsque nous commençons à examiner certains types de nœuds et de relations définis dans notre modèle. Par exemple, Louvain Modularity pourrait nous permettre d’identifier les communautés aux performances médiocres au sein d’un groupe de pairs ou d’une cohorte, et en recherchant non seulement les relations de gestion, mais également les relations entre en dehors de la structure de gestion aussi. Les algorithmes de détection de communauté fournissent ici un outil pour identifier les comportements négatifs dans le réseau et les cultures indésirables.

Nous pouvons utiliser des algorithmes de détection de communauté pour identifier les individus et les équipes les plus talentueux de notre réseau organisationnel. Mais avec les données sur les compétences et les performances déjà présentes dans notre modèle de graphique, nous pouvons faire beaucoup plus pour développer les talents. Par exemple, nous souhaiterions peut-être identifier des employés possédant des compétences similaires, pourvoir un poste vacant ou recommander un apprentissage que des employés possédant des antécédents et des compétences similaires ont trouvé utiles. Neo4j nous permet de fournir la similarité des nœuds de notre graphique presque en temps réel en utilisant un calcul métrique de distance appelé Similarité Jaccard. Avec la requête suivante, nous pouvons identifier des employés ayant des compétences similaires.

MATCH (p: Personne) -[:`HAS SKILL`]-> (compétence)
WITH {item: id (p), catégories: collect (id (skill))} en tant que userData
WITH collect (userData) en tant que données
CALL algo.similarity.jaccard.stream (data)
YIELD item1, item2, count1, count2, intersection, similitude
RETOUR algo.asNode (item1) .name AS à partir de, algo.asNode (item2) .name AS à, intersection, similarité
ORDER BY similarity DESC

Avec les postes vacants définis en tant que nœuds dans notre graphique et les relations entre les postes vacants et les compétences dont les employés ont besoin dans ces rôles, le graphique devient encore plus utile. En utilisant la similarité Jaccard, nous pouvons recommander employés aux postes vacants. Ensuite, en allant un peu plus loin, nous pourrions définir des nœuds pour les cours et les relations entre ces cours et les compétences acquises par les apprenants, ce qui nous permettra de: recommander cours aux employés. Nous utilisons maintenant le graphique non seulement pour les rapports opérationnels, mais aussi pour analyses prédictives; les données que nous récupérons du graphique signifient que nous pouvons personnaliser nos interactions avec les employés et les aidons à faire les bons choix en matière d’apprentissage et de développement.

À mesure que de nouveaux points de données et relations sont découverts et ajoutés au modèle de graphique, la valeur obtenue à partir du graphique s'améliore. J'ai montré comment un graphe limité et quelques-uns des algorithmes de graphes disponibles dans neo4j peuvent fournir des informations précieuses pour aborder certains des domaines les plus difficiles de HCM. Le potentiel de graphes dans HCM est vaste. Pour plus d'informations ou pour voir un graphique de personnes en action, contactez-nous par Twitter DM @jamesdhope.

[1] Langage d'interrogation Cypher avec Neo4j, https://neo4j.com/developer/cypher-query-language/

[2] Similarité Jaccard https://neo4j.com/docs/graph-algorithms/current/algorithms/similarity-jaccard/

[3] Louvain, https://neo4j.com/docs/graph-algorithms/current/algorithms/louvain/

[4] Betweenness Centrality, https://neo4j.com/docs/graph-algorithms/current/algorithms/betweenness-centrality/

[5] PageRank, https://neo4j.com/docs/graph-algorithms/current/algorithms/page-rank/

Show More

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Related Articles

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Close
Close