FR3010206A1 - Procede de gestion d'une base de donnees utilisateurs sur une plate-forme de contenus multimedias - Google Patents

Procede de gestion d'une base de donnees utilisateurs sur une plate-forme de contenus multimedias Download PDF

Info

Publication number
FR3010206A1
FR3010206A1 FR1358474A FR1358474A FR3010206A1 FR 3010206 A1 FR3010206 A1 FR 3010206A1 FR 1358474 A FR1358474 A FR 1358474A FR 1358474 A FR1358474 A FR 1358474A FR 3010206 A1 FR3010206 A1 FR 3010206A1
Authority
FR
France
Prior art keywords
users
user
behavior
vectors
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR1358474A
Other languages
English (en)
Inventor
Patrick Laffitte
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KILA SYSTEMS
Original Assignee
KILA SYSTEMS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KILA SYSTEMS filed Critical KILA SYSTEMS
Priority to FR1358474A priority Critical patent/FR3010206A1/fr
Publication of FR3010206A1 publication Critical patent/FR3010206A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Abstract

L'invention se rapporte à un procédé de gestion d'une base de données utilisateurs mis en oeuvre par des moyens informatiques sur une plate-forme de fourniture de contenus multimédias, comprenant une pluralité de grosses données générées par des utilisateurs de ladite plate-forme, comprenant : - pour chaque utilisateur courant, générer un vecteur comprenant une pluralité de valeurs binaires 0 ou 1, par conversion des grosses données; - diviser des utilisateurs d'un ensemble donné d'utilisateurs en groupes d'utilisateurs; - fournir des classes de comportements définies à partir de vecteurs caractéristiques calculés à partir d'une moyenne des vecteurs de chaque groupe ; - pour un utilisateur courant, calculer un degré d'appartenance à une ou plusieurs des classes en vue de proposer un contenu ciblé.

Description

PROCEDE DE GESTION D'UNE BASE DE DONNEES UTILISATEURS SUR UNE PLATE-FORME DE CONTENUS MULTIMEDIAS DOMAINE TECHNIQUE L'invention se rapporte au domaine des procédés de gestion des bases de données utilisateurs. Plus particulièrement, l'invention concerne la gestion et le tri de bases de données faisant intervenir des « grosses données », également appelées « Big data » selon la terminologie anglo-saxonne, par exemple dans le contexte de données générées par des utilisateurs d'une plate-forme de contenus multimédias. ARRIÈRE-PLAN TECHNOLOGIQUE Les opérateurs de télévision numérique diffusent de plus en plus leurs programmes en ligne à l'aide de services de type vidéo à la demande, ou rediffusion aussi appelée « replay », selon la terminologie anglo-saxonne. L'utilisation de tels services de diffusion de contenus multimédias génère un nombre important de données brutes, correspondant typiquement à une quantité pouvant dépasser un téraoctet par jour. Ces données sont stockées sur des serveurs gérés par les opérateurs, servant de plate-forme à la fourniture de contenu multimédia. Connaître et être capable d'anticiper le comportement d'un utilisateur revêt une grande importance pour les opérateurs, qui cherchent à fidéliser leur clientèle. De même, il est économiquement intéressant d'être capable de prédire le comportement de tout utilisateur courant et adapter le contenu qui lui est proposé afin de répondre à ses attentes, et, par exemple, réduire l'attrition, c'est-à-dire le nombre d'utilisateurs qui se désabonnent d'un service de vidéo à la demande. Les utilisateurs d'une plate-forme de contenu multimédia génèrent, en se connectant à la plate-forme, des informations de connexion, encore appelées « logs » selon la terminologie anglo-saxonne. Des données relatives à des évènements survenant pendant ses connexions sont généralement stockées, par exemple sous la forme de métadonnées, sur le serveur de l'opérateur. À titre d'exemples, les instants et durées de connexion, le type de contenu consulté, les métadonnées d'un produit sélectionné sur la plate-forme, ou des données de type qualité de service peuvent être enregistrées dans les informations de connexion. Un produit désigne tout contenu disponible sur la plate-forme ; il peut par exemple s'agir d'un film, d'une vidéo, ou d'une page de texte. Bien qu'elles soient porteuses d'informations sur le comportement d'un ensemble d'utilisateurs, ces grosses données ne sont pas exploitées faute de procédés de traitement efficaces pour les rendre intelligibles et les manipuler avec des outils informatiques déjà disponibles. Du fait de la masse de données colossale que peuvent représenter ces grosses données, les procédés traditionnels de tri de l'information, comme par exemple des techniques d'analyse discriminante linéaire, ne constituent pas des outils adaptés pour en extraire des informations de comportement pertinentes. En effet, la génération de matrices à partir des grosses données donnerait lieu à des matrices de grande dimension nécessitant une puissance de calcul importante et impliquant des temps de calcul prohibitifs. Par ailleurs, les grosses données comprennent un contenu non structuré qui n'est pas exploitable en l'état par des algorithmes de traitement.
Par conséquent, il est recherché une technique permettant de gérer et trier efficacement une base de données contenant des grosses données, générées par les utilisateurs d'une plate-forme de contenu multimédia, de manière à pouvoir facilement identifier des comportements typiques parmi les utilisateurs en vue d'adapter le contenu multimédia proposé. Un procédé ne nécessitant pas de puissance ou temps de calculs importants, et compatible avec les méthodes de traitement de données existantes est donc recherché. EXPOSE DE L'INVENTION Pour répondre aux problèmes exposés ci-avant, la présente invention propose un procédé de gestion d'une base de données utilisateurs mis en oeuvre par des moyens informatiques sur une plate-forme de fourniture de contenus multimédias, la base de données comprenant une pluralité de grosses données générées par des utilisateurs de la plate-forme, comprenant : - pour chaque utilisateur courant, générer un vecteur binaire de comportement comprenant une pluralité de champs, chaque champ comprenant une valeur binaire 0 ou 1, par conversion des grosses données générées par l'utilisateur courant; - diviser des utilisateurs d'un ensemble donné d'utilisateurs en au moins deux groupes d'utilisateurs distincts sur la base d'au moins un critère choisi parmi un critère externe et une valeur d'un champ des vecteurs binaires de comportement ; - fournir des classes de comportements associées aux groupes d'utilisateurs, les classes étant définies à partir de vecteurs caractéristiques calculés à partir d'une moyenne des vecteurs binaires de comportement de chaque groupe ; - pour un utilisateur courant, calculer un degré d'appartenance de l'utilisateur courant à une ou plusieurs des classes par comparaison du vecteur binaire de comportement de l'utilisateur courant aux vecteurs caractéristiques, - en fonction des degrés respectifs d'appartenance de l'utilisateur courant auxdites classes, déterminer un profil de l'utilisateur courant pour proposer à l'utilisateur courant un choix de contenus multimédias adaptés audit profil. Ce procédé peut présenter l'avantage de permettre une gestion et un tri efficace de grosses données, en vue d'en extraire des informations pertinentes sur les utilisateurs d'au moins une plate-forme de contenus multimédia, sans passer par des techniques de traitement de données coûteuses en temps et puissance de calcul. L'information peut en effet être triée utilisateur par utilisateur, les grosses données de chaque utilisateur étant converties en un vecteur binaire de comportement. Un ensemble donné fini, correspondant avantageusement à un échantillon statistiquement significatif d'individus, peut être sélectionné pour former des groupes d'utilisateurs. Ces groupes peuvent être définis soit en fonction de valeurs 0 ou 1 des champs des vecteurs binaires, soit en fonction d'un paramètre extérieur, pouvant être issu de connaissances transverses sur les utilisateurs, comme par exemple leur sexe, la tranche d'âge à laquelle ils appartiennent, leur état civil, ou le désabonnement récent de l'utilisateur d'une partie ou de tous les services de la plate-forme. Dans chaque groupe, une moyenne peut être calculée sur les vecteurs binaires de comportement des individus du groupe, permettant de fournir un vecteur caractéristique représentatif des données d'un individu type du groupe, définissant un profil d'utilisateur. Un tel vecteur peut donc comprendre des champs dont les valeurs sont comprises entre 0 et 1. Chaque vecteur caractéristique peut définir une classe d'utilisateurs, à laquelle tout utilisateur courant peut être comparé en effectuant par exemple un produit scalaire ou un calcul de similarité entre un vecteur caractéristique et le vecteur binaire de comportement d'un utilisateur. Une telle comparaison peut permettre d'estimer quantitativement la tendance générale du comportement d'un utilisateur, ou bien identifier un type d'utilisateur, par exemple distinguer un homme d'une femme, ou un enfant d'un adulte. Après avoir identifié le profil qui correspond le mieux à un utilisateur, l'opérateur de la plate-forme peut proposer un contenu multimédia ciblé, ou bien prévoir une offre promotionnelle intéressante adaptée aux attentes d'un utilisateur courant. L'invention peut être mise en oeuvre sur un ensemble de plates-formes de contenu multimédia, pouvant être reliées à un même serveur, ou bien sur une seule plate-forme.
Un utilisateur courant désigne tout utilisateur de la plate-forme, pouvant notamment différer des utilisateurs servant à définir les classes de comportement. Il peut par exemple s'agir de tout nouvel utilisateur de la plate-forme. Le terme grosses données se réfère dans ce document à des données de type « Big data » selon la terminologie anglo-saxonne, c'est-à-dire des données brutes non structurées, avec peu de liens logiques entre ses différentes composantes, et pouvant regrouper une quantité d'information supérieure à celle qu'un algorithme de traitement d'informations manipule habituellement. Ce procédé est avantageux en ce qu'il peut faire intervenir des opérations simples sur des jeux de données de taille réduite. En effet, les grosses données sont converties en valeurs binaires dans un vecteur associé à un utilisateur. Cette conversion rend intelligible des données brutes pouvant combiner des valeurs numériques et des chaînes de caractères. Cette conversion peut également permettre de mettre en oeuvre des opérations de partition, combinaison et réduction de vecteurs, appelés respectivement MAP, COMBINE et REDUCE selon la terminologie anglo-saxonne, pour réorganiser les données et constituer des vecteurs binaires de comportement normalisés et comparables entre eux. Le procédé offre également un degré de liberté dans le choix de l'ensemble d'utilisateurs servant à définir des classes de comportement. Ainsi, un nombre statistiquement significatif d'utilisateurs peut avantageusement être choisi, par exemple mille utilisateurs. Le procédé peut notamment comprendre, lors de l'étape d'identification de classes de comportement, une étape de réduction des vecteurs binaires de comportement en éliminant les champs prenant la valeur 0 pour un pourcentage d'utilisateurs parmi l'ensemble donné d'utilisateurs, le pourcentage étant supérieur à une valeur choisie, comprise entre 70% et 100%. De cette manière, il est possible de réduire la dimension des vecteurs binaires de comportement, pour ne conserver que les champs porteurs d'une information pertinente et exploitable. En effet, étant donné le nombre important de types d'informations différents contenus dans les grosses données, un nombre non négligeable de champs peut ne prendre la valeur 1 que pour un nombre limité d'utilisateurs. Il peut être utile d'alléger le procédé en éliminant ces bouts d'information des vecteurs binaires de comportement. De manière avantageuse, le calcul du degré d'appartenance peut comprendre, pour un utilisateur courant, un calcul de similarité entre le vecteur binaire de comportement de l'utilisateur et les vecteurs caractéristiques, le calcul déterminant un angle entre le vecteur binaire de comportement et chacun des vecteurs caractéristiques. En calculant un angle entre vecteurs, l'identification d'un type de comportement peut être facilement obtenue par quantification. Un angle de 90° correspondrait à des comportements opposés, ou une non appartenance manifeste d'un utilisateur à une classe de comportements. Un angle compris dans un intervalle de quelques degrés, par exemple un intervalle de 15° indiquerait une appartenance très marquée à une classe. L'utilisation d'un angle peut également permettre de comparer des degrés d'appartenance à différentes classes, et ainsi obtenir une connaissance plus fine du profil d'un utilisateur courant.
Il se peut également, au cours du procédé, que la conversion des grosses données s'opère selon une logique attribuant à une valeur 1 la signification « vrai » et à une valeur O la signification d'un état inconnu ou non réalisé. Dans cette configuration, seules les valeurs binaires 1 sont porteuses d'information exploitable. Les champs qui ont la valeur 0 peuvent par exemple correspondre à des données mal renseignées, illisibles ou bien des données auxquelles est attribuée la signification « faux », c'est-à-dire, des données associées à des états non réalisés. Cette logique présente l'avantage d'être propice à la conversion de données de différents types, comme des grosses données, en valeurs binaires. D'autre part, cette logique permet de sélectionner habilement les champs pour lesquels les données sont les mieux renseignées et comprenant le moins de défaut ou de bruit. Le procédé peut également comprendre l'acquisition des grosses données par intervalles de temps At d'une durée déterminée, les grosses données relatives à chaque utilisateur de l'ensemble donné d'utilisateurs comprenant une indication d'un nombre d'évènements survenus pendant chaque intervalle de temps At. Le procédé peut en outre également comprendre, préalablement à la conversion des grosses données, une étape de comparaison du nombre d'évènements associés à chaque utilisateur de l'ensemble donné d'utilisateurs à un nombre seuil prédéfini, l'utilisateur étant pris en compte dans la définition des vecteurs caractéristiques lorsque le nombre d'évènements est supérieur au seuil. Un tel critère de sélection permet d'améliorer la fiabilité du procédé et définir des classes de comportement plus pertinentes en ne se fondant que sur des utilisateurs ayant généré un nombre statistiquement représentatif de données. Par exemple, un utilisateur qui ne s'est connecté à la plate-forme qu'une fois sur une semaine, et qui n'a généré que deux évènements, peut être considéré comme un utilisateur peu fiable pour extraire un comportement représentatif. Un utilisateur ayant généré plus de cent évènements peut quant à lui être considéré comme un utilisateur plus intéressant d'un point de vu statistique. Selon un mode de réalisation, la moyenne des vecteurs binaires de comportement de chaque groupe peut être déterminée en sélectionnant des vecteurs binaires de comportement qui, pris deux à deux, ont un angle inférieur à une valeur 25 prédéfinie. Il est avantageux de définir un critère de sélection parmi les utilisateurs d'un groupe d'utilisateurs de manière à éviter de prendre en compte, dans le calcul d'un vecteur caractéristique, des utilisateurs vérifiant le critère d'appartenance au groupe, mais ayant un comportement extraordinaire, se démarquant considérablement de celui 30 des autres utilisateurs du groupe. Certains utilisateurs peuvent par exemple être renseignés comme étant des adultes mais avoir un comportement typique d'un utilisateur renseigné comme étant un enfant, ce qui pourrait par exemple être dû à une erreur dans les données renseignées, ou bien un indicateur d'un comportement non représentatif. En définissant un écart maximal entre vecteurs binaire de comportements pris en compte dans le calcul d'une moyenne, le procédé permet de converger plus efficacement vers un vecteur caractéristique pertinent, représentatif d'un comportement propre aux utilisateurs d'un groupe donné.
De manière avantageuse, le procédé comprend pour chaque utilisateur de l'ensemble donné d'utilisateurs une étape de conversion des grosses données en valeurs numériques en appliquant des règles de répartition. L'utilisation de règles de répartition permet de transformer des données brutes pouvant être numériques ou comprenant des chaînes de caractères en valeurs numériques entières. Une règle de répartition désigne un critère vérifié sur une donnée brute. Par exemple, une règle de répartition peut être la vérification de la présence du nom d'un acteur dans les métadonnées d'une vidéo consultée par l'utilisateur. Si le nom de l'acteur apparaît, le champ du vecteur binaire de comportement correspondant reçoit la valeur 1. Si cette donnée n'est pas renseignée, ce champ reçoit la valeur O. La valeur numérique renvoyée peut cependant être supérieure à 1, notamment lorsque le nombre d'évènements générant un type de donnée brute particulier est supérieur à un. Par exemple, si l'utilisateur a regardé cinq vidéos dans lesquelles un même acteur apparaît, la règle de répartition consistant à vérifier la présence du nom de cet acteur renvoie une valeur égale à 5. Une conversion de ces valeurs numériques en valeurs binaires est avantageusement mise en oeuvre dans les étapes ultérieures du procédé. La définition de règles de répartition permet d'opérer un premier traitement des grosses données, et générer pour chaque utilisateur un vecteur dont les champs peuvent regrouper des données générées à des instants différents. De cette manière, le traitement ultérieur des données en vue de générer un vecteur binaire est simplifié. De manière avantageuse, le procédé peut comprendre, préalablement à la génération d'un vecteur binaire de comportement, pour chaque utilisateur de l'ensemble donné d'utilisateurs, un premier classement des grosses données, dans un premier vecteur, selon un ordre prédéterminé. Ce premier tri des grosses données permet d'ordonner les données brutes par type, et faciliter ainsi les opérations réalisées en vue de générer un vecteur binaire de comportement. De manière à pouvoir effectuer rapidement des opérations de traitement sur les grosses données, il est utile de pouvoir identifier un type de données dans un vecteur associé à un utilisateur. Dans certains systèmes mettant en oeuvre l'invention, un tel tri des données brutes peut être systématiquement mis en oeuvre au moment de la génération même des grosses données. Alternativement, cette étape de tri peut identifier dans un premier temps l'ensemble des types d'informations disponibles parmi les grosses données, ou bien identifier l'ensemble des types de données existant dans la base de données multimédia proposée sur la plate-forme et définir par la suite un ordre de classement. Cet ordre de classement peut par exemple être défini aléatoirement, ou bien être un ordre regroupant les données par catégories, comme par exemple des durées, des noms d'acteurs dans des métadonnées, ou des données de type qualité de service. Selon un mode de réalisation avantageux, au cours du procédé, les grosses données sont acquises par intervalles de temps At d'une durée déterminée, et pour chaque utilisateur de l'ensemble donné d'utilisateurs, préalablement à la génération d'un vecteur binaire de comportement, le procédé comprend : l'obtention d'un vecteur de comportement par sommation des premiers vecteurs à valeurs numériques pour un nombre N d'intervalles de temps At.
En sommant plusieurs vecteurs à valeurs numériques, générés pendant des intervalles de temps At distincts, le procédé permet d'augmenter le nombre d'évènements associés au vecteur d'un utilisateur, augmentant ainsi la significativité du vecteur binaire de comportement généré. Le choix du nombre N d'intervalles de temps At offre un degré de liberté pour définir une durée d'acquisition de données. Il est également possible de choisir les intervalles de temps At sélectionnés, de manière par exemple à constituer des classes de comportement relatives à une période d'utilisation donnée de la plate-forme. Ceci peut s'avérer intéressant lorsque des comportements saisonniers apparaissent parmi les utilisateurs, afin de caractériser le comportement d'un utilisateur pendant une telle période, ou bien au contraire pour éviter de la prendre en compte et n'utiliser que des données représentatives d'un comportement moyen typique. De cette manière, le procédé peut faire ressortir des tendances comportementales liées à des effets de mode parmi les utilisateurs de la plate-forme.
L'invention peut également proposer un procédé dans lequel la génération d'un vecteur binaire de comportement comprend : définir des plages de valeurs, sur la base des valeurs des champs des vecteurs de comportement, en vue de partitionner chaque champ des vecteurs de comportement en une pluralité de sous-champs destinés à recevoir une valeur 0 ou 1 en fonction de l'appartenance ou non de la valeur du champ à une des plages de valeurs. En divisant chaque champ des vecteurs de comportement en une pluralité de sous-champs prenant une valeur binaire 0 ou 1, il est possible de traiter les données de manière à faire ressortir une information supplémentaire dans le vecteur binaire de comportement généré. En effet, l'appartenance à un sous-champ reflète le nombre de fois qu'un champ du vecteur associé à l'utilisateur a reçu la valeur 1. De cette manière, il est par exemple possible de savoir si un utilisateur à fréquemment vérifié le critère d'un champ ou s'il ne l'a vérifié que rarement. Par exemple, si un champ représente le nombre de fois qu'un utilisateur a consulté un produit, le sous-champ correspondant à une plage de valeurs comprises entre 25 et 50 pour ledit champ pourrait être porté à 1 pour indiquer que l'utilisateur a fréquemment consulté ledit produit. Il est avantageux de fixer des plages de valeurs pour chaque champ en fonction de critères objectifs liés au nombre d'évènements générés par les utilisateurs de l'ensemble donné d'utilisateurs. Par exemple, l'une des plages peut être bornée par une valeur nulle, et une autre plage par un nombre égal au nombre d'évènements. Une autre borne d'une plage pourrait par exemple être liée à une valeur moyenne du champ sur l'ensemble des utilisateurs de l'ensemble donné d'utilisateurs.
Au cours du procédé, la division des utilisateurs en au moins deux groupes d'utilisateurs distincts sur la base d'au moins un critère externe peut être suivie des étapes suivantes: pour chaque groupe, calcul de vecteurs caractéristiques pour toute combinaison de valeurs dans les champs des vecteurs binaires de comportement; et - dans chaque groupe, identification d'un vecteur caractéristique de plus petite similarité avec les vecteurs caractéristiques des autres groupes.
Dans ce mode de réalisation, un critère externe, par exemple la tranche d'âge de l'utilisateur, divise les utilisateurs en au moins deux groupes. Une recherche des critères caractérisant un groupe est effectuée par l'intermédiaire d'une recherche des champs qui caractérisent le mieux un groupe par rapport aux autres. Le critère qui permet de différencier le mieux les groupes est estimé à partir d'un calcul d'angles entre vecteurs binaires de comportement moyen. Par exemple, le procédé peut identifier le comportement type d'un enfant, d'un adulte ou d'un senior, grâce à des vecteurs caractéristiques pertinents. Ainsi, un adulte peut avoir fréquemment une valeur 1 sur le champ correspond à un nom d'acteur de films d'action et une valeur 1 sur le champ correspondant par exemple au genre film d'action. Le vecteur caractéristique issu de la moyenne sur les champs des utilisateurs vérifiant ces deux critères peut être un vecteur pertinent pour caractériser ce type d'utilisateurs. Un enfant pouvant regarder plus de dessins animés, la combinaison de champs de valeurs opposées à celle d'un adulte pourrait fournir le meilleur vecteur caractéristique de ce type d'utilisateur. Les vecteurs caractéristiques de groupes différents possèdent avantageusement un angle proche de 90° car les coordonnées communes sont rares voire inexistantes. Le procédé peut également être mis en oeuvre de sorte que la division des utilisateurs en au moins deux groupes d'utilisateurs distincts sur la base d'au moins une valeur d'un champ des vecteurs binaires de comportement soit réalisée en prenant en compte des champs qui séparent les utilisateurs en groupes de tailles similaires. Il est avantageux de sélectionner des champs qui séparent les utilisateurs en groupes de tailles similaires afin de ne pas prendre en compte des types de données porteuses d'informations non significatives. En effet, étant donné que la valeur 0 correspond à un état inconnu ou non réalisé, un champ pour lequel la majorité des utilisateurs possède une valeur nulle pourrait être lié à une erreur de lecture de la donnée. Inversement, un champ pour lequel une majorité d'utilisateurs possède une valeur 1 ne constitue pas un critère de séparation intéressant. Il pourrait simplement s'agir d'une donnée triviale, par exemple une donnée indiquant que la connexion avec la plate-forme a été réalisée avec succès. Deux groupes peuvent être considérés comme étant de taille similaire lorsque l'écart relatif entre les tailles des deux groupes est par exemple inférieur à 25%.
L'invention se rapporte également à un système de gestion d'une base de données utilisateurs mis en oeuvre par des moyens informatiques sur une plate-forme de fourniture de contenus multimédias, la base de données comprenant une pluralité de grosses données générées par des utilisateurs de la plate-forme, le système de gestion comprenant: - des calculateurs, destinés à générer, pour chaque utilisateur courant, un vecteur binaire de comportement comprenant une pluralité de champs, chaque champ comprenant une valeur binaire 0 ou 1, par conversion des grosses données générées par l'utilisateur courant; - un serveur maître relié aux calculateurs, destiné à : - diviser des utilisateurs d'un ensemble donné d'utilisateurs en au moins deux groupes d'utilisateurs distincts sur la base d'au moins un critère choisi parmi un critère externe et une valeur d'un champ des vecteurs binaires de comportement; - fournir des classes de comportements associées aux groupes d'utilisateurs, les classes étant définies à partir de vecteurs caractéristiques calculés à partir d'une moyenne des vecteurs binaires de comportement de chaque groupe ; - pour un utilisateur courant, calculer un degré d'appartenance de l'utilisateur courant à une ou plusieurs des classes par comparaison du vecteur binaire de comportement de l'utilisateur courant aux vecteurs caractéristiques, - en fonction des degrés respectifs d'appartenance de l'utilisateur courant aux classes, déterminer un profil de l'utilisateur courant pour proposer à l'utilisateur courant un choix de contenus multimédias adaptés au profil. L'utilisation de plusieurs calculateurs reliés au serveur maître permet de paralléliser un grand nombre de calculs simples sur un grand nombre de machines de puissance standard. Ce fonctionnement en réseau optimise fortement les temps de calcul.
L'invention se rapporte également à un programme d'ordinateur comportant une suite d'instructions mémorisées sur un support de mémorisation pour exécution par un ordinateur ou un dispositif dédié, caractérisé en ce que lors de cette exécution, le programme exécute les étapes décrites ci-avant.
DESCRIPTIF DES FIGURES Le procédé objet de l'invention, sera mieux compris à la lecture de la description qui suit d'exemples de réalisations présentés à titre illustratif, aucunement limitatifs, et à l'observation des dessins ci-après sur lesquels : - la figure 1 est un ordinogramme simplifié du procédé selon un mode de réalisation; - les figures 2a et 2b sont des représentations schématiques de grosses données associées à un utilisateur courant; - la figure 3 est une représentation schématique d'un vecteur de comportement d'un utilisateur courant avant et après conversion en vecteur binaire de comportement; - la figure 4 est une représentation schématique d'un ensemble de vecteurs binaires de comportement des utilisateurs d'un groupe et du vecteur caractéristique associé; - la figure 5 est une représentation schématique d'un ensemble de vecteurs 15 binaires de comportement des utilisateurs de deux groupes et des vecteurs caractéristiques associés; - la figure 6 éléments A, B et C, est une représentation schématique de vecteurs à valeurs numériques d'un utilisateur courant sur trois intervalles de temps différents; - la figure 7 est une représentation schématique d'un vecteur à valeurs numériques 20 d'un utilisateur issu d'une somme de vecteurs à valeurs numériques; - la figure 8a est un ordinogramme partiel du procédé; - la figure 8b reprend et termine l'ordinogramme de la figure 8a. - la figure 9 est une représentation schématique d'un système informatique mettant en oeuvre le procédé selon un mode de réalisation; 25 Pour des raisons de clarté, les dimensions des différents éléments représentés sur ces figures ne sont pas nécessairement en proportion avec leurs dimensions réelles. Sur les figures, des références identiques correspondent à des éléments identiques. DESCRIPTION DÉTAILLÉE 30 La figure 1 est un ordinogramme résumant les principales étapes du procédé décrit ci-après. Ce procédé consiste à gérer et trier des grosses données 1, en générant des vecteurs binaires de comportement 2, pour pouvoir les analyser et en extraire des classes de comportement 3 à partir d'un ensemble donné d'utilisateurs 11. Les classes de comportement 3 sont identifiées par des vecteurs caractéristiques 30. Le procédé compare ensuite le vecteur binaire de comportement de tout utilisateur courant 100 aux vecteurs caractéristiques 30 en vue d'obtenir une compréhension pertinente du comportement de l'utilisateur courant 100 et pour proposer une offre de contenu ciblée.
Le procédé fait intervenir un ensemble d'utilisateurs 10 d'une plate-forme de contenus multimédia, chaque utilisateur générant, au cours de son utilisation de la plate-forme, des grosses données 1. Ces grosses données 1 sont généralement désorganisées et non structurées. À chaque utilisateur courant 100 de la plate-forme est associé un identifiant 200 permettant de reconnaître les données qui lui sont associées.
Comme illustré sur la figure 2a, Les grosses données 1 peuvent généralement comprendre des métadonnées de contenu consulté, par exemple des noms d'acteurs 201, 220, des durées de vidéo, des heures de diffusion ou de consultation 203 d'un produit, un nom de chaîne 202, ou des valeurs correspondant à une évaluation 221 du contenu par les utilisateurs, appelées aussi données de qualité de service. Ces données peuvent par exemple être construites au fur et à mesure de la consultation du contenu de la plate-forme par l'utilisateur pour constituer une chaîne de données comme représentée sur la figure 2a. Comme indiqué sur la figure 1, au cours d'une première étape S1, pour chaque utilisateur courant 100 de la plate-forme, les grosses données 1 sont converties en valeurs binaires et assemblées dans un vecteur binaire de comportement 2 normalisé. Le terme normalisé signifie que les vecteurs binaires de comportement 2 sont organisés et structurés de manière à pouvoir être comparés entre eux et de manière à permettre la mise en oeuvre de calculs standards sur des vecteurs binaires sans transformations supplémentaires. L'Homme du métier peut avantageusement avoir recours à des fonctions connues dans la manipulation de grosses données comme par exemples les fonctions MAP, COMBINE ou REDUCE, afin de regrouper les informations d'un même type, sommer et réduire les types de données qui se répètent, comme par exemple les données 201 et 220 de la figure 2a. La conversion à proprement parler peut être mise en oeuvre de différentes façons et selon plusieurs critères différents. Il est par exemple possible de simplement convertir les données de chaque champ des grosses données 1 en attribuant une valeur de 1 à tous les champs renseignés plus d'une fois, et une valeur de 0 pour tous les champs non renseignés ou mal renseignés.
Alternativement, il est possible d'effectuer une première conversion des grosses données 1 en valeurs numériques, comme représenté schématiquement sur la figure 2b, chaque valeur numérique pouvant être égale au nombre de fois qu'une donnée d'un même type est renseignée correctement. Par exemple, un champ peut recevoir une valeur de 1 à chaque fois que le nom d'un même acteur ou le titre d'une vidéo est renseigné dans les grosses données 1 d'un utilisateur courant 100. Ces valeurs numériques peuvent être obtenues en appliquant des règles de répartition prédéfinies. Une règle de répartition peut être une question interrogeant les grosses données 1. Par exemple, au lieu de conserver une valeur numérique ou alphanumérique comme sur la métadonnée 203 de la figure 2a, il est possible de convertir un horaire de diffusion en une valeur numérique suivant l'appartenance de l'horaire à une plage horaire déterminée. Il est par exemple possible de définir les plages horaires suivantes : la nuit entre minuit et 6h, le matin entre 6h et 11h, l'heure du déjeuner entre 11h et 14h, le début d'après-midi entre 14h et 18h, la fin d'après-midi entre 18h et 20h30 et le soir entre 20h30 et minuit. Il est par exemple possible d'associer à chaque tranche horaire une valeur numérique, ou bien décider d'attribuer la valeur 1 à toutes les données appartenant à une plage horaire ou un ensemble de plages horaires choisies et une valeur 0 aux autres plages horaires. L'intitulé de la métadonnée associée à une grosse donnée peut être convertie en un identifiant numérique, comme représenté sur la figure 2b.
Comme indiqué sur la figure 3, ces valeurs numériques peuvent ensuite être converties en valeurs binaires 0 ou 1 en appliquant une autre règle de répartition, par exemple en définissant des plages de valeurs 301, 302, 303 avantageusement bornées entre une valeur minimale et une valeur maximale évaluée sur les utilisateurs d'un ensemble donné 11 d'utilisateurs.
Sur la figure 3, les trois plages de valeurs permettent, pour un utilisateur courant 100, d'indiquer si la valeur de chaque champ est plutôt faible, élevée ou moyenne par rapport aux valeurs des autres utilisateurs. Pour déterminer ces plages de valeurs, le procédé détermine avantageusement pour les utilisateurs de l'ensemble donné 11 d'utilisateurs, la valeur maximale, minimale et moyenne de chaque champ. La plage 301 dans l'exemple représenté sur la figure 3 correspond alors aux valeurs comprises entre la valeur minimale et une moyenne arithmétique entre la valeur minimale et la valeur moyenne du champ correspondant. La plage 303 correspond aux valeurs comprises entre la valeur maximale et une moyenne arithmétique entre la valeur moyenne et la valeur maximale du champ correspondant. La plage 302 correspond aux valeurs intermédiaires n'appartenant ni à la plage 301 ni à la plage 303. D'autres critères peuvent être utilisés pour définir d'autres plages de valeurs, pouvant par exemple ne pas intégralement partitionner l'ensemble des valeurs des champs des utilisateurs de l'ensemble donné 11 d'utilisateur. De manière avantageuse, quel que soit la méthode utilisée pour générer les vecteurs binaires de comportements 2, ces derniers peuvent être réduits en taille en éliminant les champs correspondant à des données non porteuses d'informations pertinentes. Par exemple, il est possible d'identifier les champs pour lesquels tous les utilisateurs possèdent une valeur égale à 0. Il est également possible d'éliminer les champs pour lesquels une majorité d'utilisateurs possèdent une valeur égale à 0, par exemple un pourcentage supérieur à 70% des utilisateurs. De la même manière, il est possible d'éliminer les champs pour lesquels tous les utilisateurs possèdent une valeur égale à 1. De cette manière, il est possible de passer d'un nombre de champs de l'ordre de la centaine de milliers à quelques milliers voire quelques centaines de champs dans chaque vecteur binaire. Il convient de remarquer que les champs éliminés peuvent ultérieurement redevenir pertinents et vice versa. En effet, des effets de mode, par exemple liés à la popularité passagère d'un acteur, peut rendre temporairement significatif un ensemble de champs qui ne le restent pas longtemps. Par conséquent, l'une des possibilités avantageuses offertes par l'invention consiste à mettre en oeuvre le procédé à intervalles de temps réguliers de manière à s'assurer que les champs sélectionnés lors d'une réduction antérieure sont toujours pertinents. Des vecteurs binaires de comportement 2 étant constitués, l'étape suivante, comprenant les étapes S20, S21 et S22, consiste, à partir d'un ensemble donné d'utilisateurs 11, à diviser les utilisateurs en groupes. L'ensemble donné 11 d'utilisateurs peut ne pas contenir tous les utilisateurs 10 de la plate-forme. Deux méthodes pour diviser les utilisateurs en groupes d'utilisateurs sont proposées. La première, représentée par l'étape S21 sur la figure 1, consiste à recevoir un critère extérieur, choisi par exemple par une équipe marketing ou bien par l'opérateur de la plate-forme de contenus multimédias. Ce critère extérieur peut être un critère distinctif comme par exemple le sexe de l'utilisateur ou son appartenance à une tranche d'âge, ou un critère de comportement comme le désabonnement d'un utilisateur.
Avantageusement, au moins quelques-uns des utilisateurs ont correctement renseigné ce type d'information lors de leur inscription sur la plate-forme. Alternativement, il est possible de diviser les utilisateurs de l'ensemble donné 11 d'utilisateurs sur la base de la valeur d'un champ du vecteur binaire de comportement 2, comme indiqué par l'étape S22 sur la figure 1. De manière avantageuse, le choix du champ discriminant se porte sur un champ qui divise les utilisateurs de l'ensemble donné 11 en deux groupes de tailles similaires. Par exemple, si le champ correspondant à un nom d'acteur donné est à 1 dans une plage donnée pour la moitié des utilisateurs de l'ensemble 11, ce champ peut être considéré comme pertinent pour diviser les utilisateurs en deux groupes distincts. Les utilisateurs pour lesquels le même champ porte la valeur 0 sont associés à un autre groupe d'utilisateurs. L'opération peut ensuite être reproduite au sein de chacun des groupes d'utilisateurs créés, afin de diviser les utilisateurs de l'ensemble 11 en un nombre plus important de groupes. Pour diviser chaque groupe d'utilisateurs en deux nouveaux groupes, un autre champ est utilisé, avantageusement un champ séparant les utilisateurs en groupes de tailles similaires comme précédemment. Ainsi, il est avantageux de définir au plus seize groupes d'utilisateurs, afin de permettre à l'opérateur de ne retenir qu'un nombre limité de champs discriminants. À partir de ces groupes, l'invention procède ensuite avec l'étape S3 représentée sur la figure 1. Cette étape consiste à calculer un vecteur caractéristique 30 pour chaque groupe d'utilisateurs. Ce vecteur caractéristique est obtenu en effectuant le calcul d'une moyenne sur des vecteurs binaires de comportement 2 d'utilisateurs d'un groupe. Selon le critère qui a servi à définir les groupes, ces vecteurs peuvent être calculés de deux manières différentes.
Dans le cas correspondant à l'étape S22, où un groupe est défini par la valeur 0 ou 1 prise par un champ des vecteurs binaires de comportement 2 des utilisateurs, une première sélection des utilisateurs de chaque groupe est avantageusement mise en oeuvre. En effet, il est possible que certains utilisateurs vérifiant le critère d'appartenance au groupe soient non représentatifs d'un comportement propre au groupe car leur vecteur binaire de comportement 2 diffère fortement des vecteurs binaires de comportement 2 des autres utilisateurs du groupe, comme représenté schématiquement sur la figure 4. La figure 4 représente schématiquement en deux dimensions, à partir d'un même point d'origine, un ensemble de vecteurs binaires de comportement 2 d'un groupe. Pour ne pas fausser le calcul d'un vecteur caractéristique, ces utilisateurs non représentatifs 400, 401, 402, 403, ou anormaux, sont exclus du calcul. Pour déterminer si un utilisateur est non représentatif, l'angle entre toute combinaison de deux vecteurs binaires de comportements des utilisateurs d'un groupe est déterminé par un calcul de similarité cosinus connu de l'Homme du métier. Les utilisateurs 400, 401, 402, 403, pour lesquels l'angle est supérieur à une valeur seuil 405 choisie sont éliminés. L'angle seuil 405 peut par exemple être fixé égal à un angle a pour lequel l'écart relatif par rapport à la valeur moyenne des angles entre tous les utilisateurs du groupe, ou une partie des utilisateurs de similarité la plus grande, est supérieur à 20%. Il est alternativement possible de fixer cette valeur seuil 405 à une valeur fixe, par exemple de 30°. Lorsqu'une partie des utilisateurs a été éliminée selon ce critère, le procédé de sélection peut être mis en oeuvre à nouveau pour converger vers un nombre d'utilisateurs encore plus représentatifs du groupe. Une fois que les utilisateurs 404 de similarité la plus grande ont été sélectionnés, le procédé utilise ces utilisateurs 404 pour calculer une moyenne de leurs vecteurs binaires de comportement correspondant au vecteur caractéristique 406 du groupe. Le vecteur caractéristique permet de définir une classe de comportement caractéristique du groupe. Il apparaît, d'après ce procédé, que certains utilisateurs 400, 401, 402, 403, vérifiant le critère d'appartenance au groupe ne sont pas représentatifs d'un comportement type. Ils sont donc considérés à partir de l'étape S30 comme ne faisant pas partie de la classe de comportement 3 définie par le vecteur caractéristique 406. Alternativement, lorsque les groupes d'utilisateurs sont définis à partir d'un critère externe, le procédé ne sélectionne pas un ensemble représentatif d'utilisateurs 404. Une pluralité de vecteurs caractéristiques est calculée, correspondant chacun aux moyennes calculées sur les vecteurs vérifiant certaines combinaisons de valeurs de champs des vecteurs binaires de comportement 2. Chaque vecteur caractéristique est donc associé à un sous-ensemble d'utilisateurs d'un groupe, vérifiant la combinaison de valeurs de champs choisie. Par ailleurs, chaque combinaison de valeurs de champs définit un deuxième sous-ensemble d'utilisateurs vérifiant la combinaison de valeurs de champs opposée. La figure 5 représente schématiquement à partir d'un même point d'origine dans un plan des vecteurs caractéristiques 500, 510, 501, 511, 502, 512, 503, 513, calculés pour des combinaisons opposées de valeurs de champs de vecteurs binaires de comportement 2. À partir de ces vecteurs caractéristiques, le procédé sélectionne la paire de vecteurs caractéristiques 500, 510 de plus faible similarité, c'est-à-dire la paire de vecteurs caractéristiques 500, 510 formant un angle de l'ordre de 90°. L'expression « de l'ordre de » peut par exemple couvrir tout angle compris entre 65° et 90°. Ces vecteurs caractéristiques 500, 510 sont les vecteurs caractéristiques du comportement des utilisateurs vérifiant le critère externe. Il convient de noter que l'espace vectoriel de travail peut être de dimension élevée, typiquement de dimension égale au nombre de champs sélectionnés pour constituer des vecteurs binaires de comportement. Les champs des vecteurs prenant des valeurs 0 ou 1, ces vecteurs ont été représentés sur les figures 4 et 5 comme compris dans un secteur angulaire de 90°. Le procédé peut avantageusement mettre en oeuvre les deux méthodes de définition de groupes, à partir d'un critère externe ou à partir d'une valeur d'un champ des vecteurs binaires de comportement 2, pour définir des classes de comportement 30. Lors d'une ultime étape, représentée par l'étape S4 sur la figure 1, le procédé détermine, pour chaque utilisateur courant 100, le degré d'appartenance aux classes de comportement 30 définies par les vecteurs caractéristiques 406, 510, 500. Ce calcul s'effectue avantageusement à l'aide, par exemple, d'un produit scalaire ou bien d'un calcul de similarité cosinus permettant d'identifier une valeur d'angle entre le vecteur binaire de comportement 2 d'un utilisateur courant 100 et les vecteurs caractéristiques 406, 510, 500. Plus l'angle entre un vecteur caractéristique et un vecteur binaire de comportement 2 est proche de zéro, plus l'utilisateur associé est susceptible d'avoir un comportement identifié par le vecteur caractéristique. Les mêmes conclusions sont valables pour une valeur du produit scalaire calculé se rapprochant du produit des normes des deux vecteurs.
Grâce à ce traitement des grosses données 1, et à l'identification de classes de comportement 30, l'opérateur d'une plate-forme de contenus multimédias est en mesure de proposer un contenu ciblé à chaque utilisateur. Par exemple, lorsqu'un utilisateur affiche un comportement se rapprochant de celui d'autres utilisateurs qui se sont désabonnés, l'opérateur peut proposer une offre promotionnelle intéressante, ciblée en fonction du type de produit préféré par l'utilisateur. Les goûts et usages de l'utilisateur sont tous identifiables grâce aux classes de comportement 3 obtenues au cours du procédé.
Le procédé décrit ci-avant repose sur de l'information statistique extraite d'une base de données alimentée en grosses données 1. La fiabilité du procédé repose en grande partie sur la grande quantité d'informations disponible qui dépend donc étroitement du nombre d'utilisateurs de la plate-forme et de la fréquence d'utilisation de la plate-forme par ces derniers. Il est possible que certains utilisateurs ne génèrent pas assez de grosses données pendant l'intervalle de temps At entre deux collectes des données enregistrées sur le serveur de la plate-forme. De manière avantageuse, le procédé comprend l'acquisition répétée à des intervalles de temps de durée similaire, de grosses données enregistrées sur le serveur de la plate-forme. Cette acquisition peut se faire par intervalles de temps At pouvant correspondre par exemple à une journée, une semaine ou un mois. Afin d'augmenter la fiabilité des données de tout utilisateur courant 100, le procédé peut prévoir l'enregistrement de toutes les données collectées afin de les regrouper en vue de constituer un jeu de données plus complet. La figure 6 éléments A, B et C, illustre ainsi pour un utilisateur courant 100 trois jeux de grosses données converties en valeurs numériques issues de grosses données 1 acquises au cours de trois intervalles de temps 610, 620, 630 distincts. Les données comprennent avantageusement un champ 215 indiquant le nombre d'évènements générés par l'utilisateur pendant l'intervalle de temps 610, 620, 630 considéré. Comme indiqué sur la figure 7, un vecteur 700, correspondant à une somme des données des vecteurs 610, 620, 630 de la figure 6, est généré. Ce vecteur 700 correspond à un nombre d'évènements 215 plus important que celui des vecteurs 610, 620, 630, et est par conséquent porteur d'une information plus fiable. Le procédé peut par ailleurs fixer un critère d'exclusion d'un individu de l'ensemble donné d'utilisateurs 11 lorsque le nombre d'évènements 215 généré par ce dernier est inférieur à un seuil prédéfini. Les figures 8a et 8b illustrent de manière schématique un ordinogramme selon un mode de réalisation privilégié. À partir d'un ensemble 10 d'utilisateurs, le procédé acquiert à un instant initial, des grosses données BIG DAT. 1 générées pendant un intervalle de temps At à l'étape S100. Ces données sont stockées à l'étape S101, pour tout utilisateur courant 100, dans un vecteur indiquant le nombre d'évènements 215 générés pendant l'intervalle de temps At. À l'étape S102, en appliquant des fonctions standard MAP, COMBINE et REDUCE, le procédé transforme les grosses données 1 en données à valeurs numériques BIG DAT. MOD 123. À l'étape S103, si la durée pendant laquelle les grosses données ont été générées est inférieure à la profondeur d'analyse voulue, le procédé revient à l'étape S101 en augmentant la durée d'acquisition d'un intervalle de temps At. Sinon, le nombre total d'évènements NB EVNTS 215 est calculé. Si ce nombre est inférieur à une valeur seuil NB(THR), ce qui est vérifié à l'étape S105, l'utilisateur 100 n'est pas pris en compte dans l'estimation des classes de comportement.
Dans le cas contraire, le procédé effectue l'étape S106 en effectuant les conversions nécessaires pour fournir un vecteur binaire de comportement V(01)[TAGS] 2. À l'étape S200, une réduction du nombre de champs des vecteurs binaires est effectuée. Cette réduction permet de passer d'environ cent mille champs à quelques milliers voire quelques centaines de champs ou encore quelques dizaines de champs significatifs.
Le procédé vérifie si un critère extérieur est fourni à l'étape S201, pour diviser les utilisateurs en groupes. Si tel est le cas, à l'étape S202, les utilisateurs sont divisés en deux groupes, l'un vérifiant le critère l'autre non. Ensuite, à l'étape S203, des moyennes sont calculées pour toute combinaison de valeurs de champs dans les deux groupes. À l'étape suivante S301, une combinaison 804 de valeurs de champs et sa combinaison opposée sont choisis de manière à définir deux vecteurs caractéristiques 500 et 510. Le procédé revérifie la condition de l'étape S202 pour ensuite définir de nouvelles classes de comportement 3 et donc des vecteurs caractéristiques 30, sur la base de valeurs de champs des vecteurs binaires de comportement 2 aux étapes S205 et S302, à partir d'un ensemble donné 11 d'utilisateurs.
Finalement, l'identification de l'appartenance de tout utilisateur courant 100 à l'une ou plusieurs des classes 3 définies s'effectue avantageusement par un calcul de similarité cosinus à l'étape S300. Bien que non représentée, le procédé peut comprendre une étape de modification du contenu proposé à l'utilisateur courant 100 sur la base des informations de comportement identifiées, ou bien proposer une offre promotionnelle ciblée compatible avec le comportement identifié. La figure 9 représente un exemple de système de gestion de bases de données utilisateurs d'une plate-forme de contenus multimédias dans un mode de réalisation de l'invention.
Dans ce mode de réalisation, le dispositif comporte un ordinateur 900, comprenant une mémoire 905 pour stocker des instructions permettant la mise en oeuvre du procédé, les données de mesures reçues, et des données temporaires pour réaliser les différentes étapes du procédé tel que décrit précédemment.
L'ordinateur comporte en outre un circuit 904. Ce circuit peut être, par exemple : - un processeur apte à interpréter des instructions sous la forme de programme informatique, ou - une carte électronique dont les étapes du procédé de l'invention sont décrites dans le silicium, ou encore - une puce électronique programmable comme une puce FPGA (pour « Field- Programmable Gate Array » en anglais). Cet ordinateur comporte une interface d'entrée 903 pour la réception de données liées aux utilisateurs, et une interface de sortie 906 pour la fourniture de commandes contrôlant le dispositif d'évacuation 907. Le dispositif d'évacuation 907, pouvant être un serveur, peut transmettre des instructions de calcul dans un nuage d'ordinateurs 908, comprenant un ensemble d'ordinateurs 909 effectuant en parallèle les calculs et instructions envoyées par le dispositif d'évacuation 907. Enfin, l'ordinateur peut comporter, pour permettre une interaction aisée avec un utilisateur, un écran 901 et un clavier 902. Bien entendu, le clavier est facultatif, notamment dans le cadre d'un ordinateur ayant la forme d'une tablette tactile, par exemple. L'invention permet d'identifier des profils d'utilisateurs d'après leur utilisation d'une plate-forme de contenu multimédia. L'utilisateur abonné peut accéder à la plate-forme par une multitude de supports différents, par exemple un téléviseur, un ordinateur, un téléphone portable ou une tablette. Il est également possible qu'un compte utilisateur soit utilisé par plusieurs utilisateurs physiques différents, par exemple les membres d'une même famille abonnée au fournisseur de contenu multimédia. L'invention peut utiliser un champ indiquant le support utilisé pour accéder au contenu multimédia et utiliser cette information pour discriminer différents utilisateurs physiques accédant à la plate-forme par un même compte abonné. L'invention présente également l'avantage de fournir des éléments quantitatifs pour déterminer si le compte d'un abonné est partagé par plusieurs utilisateurs différents, les différencier par leur comportement et éventuellement détecter ou supposer une utilisation frauduleuse d'un compte utilisateur. Une utilisation pourrait notamment être jugée suspecte lorsque des profils incohérents avec les données renseignées lors de l'inscription d'un utilisateur apparaissent.
L'invention ne se limite pas aux modes de réalisation décrits ci-avant, et peut comprendre des modes de réalisation équivalents. Par exemple, il est possible d'utiliser le procédé décrit ci-avant dans un système d'apprentissage, dans lequel les vecteurs caractéristiques sont recalculés au bout d'une certaine échéance, par exemple une fois par an. Les vecteurs caractéristiques peuvent également être recalculés en vue d'être précisés au fur et à mesure que des données additionnelles de nouveaux utilisateurs sont disponibles, ou lorsque la durée d'utilisation de la plate-forme par des utilisateurs existants permet d'augmenter le nombre d'intervalles de temps At utilisés pour générer des vecteurs binaires de comportement 2.
L'invention peut également mettre en oeuvre un réseau neuronal à deux couches pour apprendre à calculer, à partir des données disponibles, la probabilité d'appartenance d'un individu à un groupe. Il est aussi possible de suivre l'évolution dans le temps du comportement d'un utilisateur courant 100 de la plate-forme, en comparant les vecteurs binaires de comportement 2 générés à différents intervalles de temps At avec les vecteurs caractéristiques. En ce qui concerne la réduction du nombre de champs d'un vecteur binaire, il est possible d'effectuer une seconde réduction des vecteurs binaires après avoir mis en oeuvre le procédé au moins une fois, de manière à ne garder qu'une cinquantaine de champs significatifs. Cette étape peut néanmoins nécessiter d'effectuer le procédé une seconde fois sur ce nombre réduit de champs afin de constituer de nouveaux vecteurs binaires de comportement et de nouveaux vecteurs caractéristiques. L'avantage de cette réduction est qu'elle augmente considérablement la rapidité d'exécution ultérieure du procédé.

Claims (14)

  1. REVENDICATIONS1. Procédé de gestion d'une base de données utilisateurs (10) mis en oeuvre par des moyens informatiques sur au moins une plate-forme de fourniture de contenus multimédias, ladite base de données comprenant une pluralité de grosses données (1) générées par des utilisateurs (10) de ladite plate-forme, le procédé comprenant les étapes: - pour chaque utilisateur courant (100), générer (Si, S106) un vecteur binaire de comportement (2) comprenant une pluralité de champs (211, 212, 213, 214, 215), chaque champ comprenant une valeur binaire 0 ou 1, par conversion des grosses données (1) générées par ledit utilisateur courant (100); - diviser (S21, S22, S205, S202) des utilisateurs d'un ensemble donné (11) d'utilisateurs en au moins deux groupes d'utilisateurs distincts sur la base d'au moins un critère choisi parmi un critère externe (S21, S202) et une valeur d'un champ (S22, S205) desdits vecteurs binaires de comportement (2); - fournir (S3, S301, S302) des classes de comportements (3) associées auxdits groupes d'utilisateurs, lesdites classes (3) étant définies à partir de vecteurs caractéristiques (30) calculés à partir d'une moyenne des vecteurs binaires de comportement (2) de chaque groupe ; - pour un utilisateur courant (100), calculer (S4, S400) un degré d'appartenance de l'utilisateur courant (100) à une ou plusieurs desdites classes (3) par comparaison du vecteur binaire de comportement (2) dudit utilisateur courant (100) auxdits vecteurs caractéristiques (30), - en fonction des degrés respectifs d'appartenance de l'utilisateur courant (100) auxdites classes (3), déterminer un profil de l'utilisateur courant (100) pour proposer à l'utilisateur courant (100) un choix de contenus multimédias adaptés audit profil.
  2. 2. Procédé selon la revendication 1, caractérisé en ce que l'étape d'identification de classes de comportement (3) comprend une étape de réduction des vecteurs binaires de comportement (2) en éliminant les champs prenant la valeur 0 pour un pourcentage d'utilisateurs parmi l'ensemble donné (11) d'utilisateurs, ledit pourcentage étant supérieur à une valeur choisie, comprise entre 70% et 100%.
  3. 3. Procédé selon l'une des revendication 1 ou 2, caractérisé en ce que le calcul (S4, S400) du degré d'appartenance comprend, pour un utilisateur courant (100), un calcul de similarité entre le vecteur binaire de comportement (2) dudit utilisateur (100) et lesdits vecteurs caractéristiques (30), ledit calcul déterminant un angle entre ledit vecteur binaire de comportement (2) et chacun desdits vecteurs caractéristiques (30).
  4. 4. Procédé selon l'une des revendications précédentes, caractérisé en ce que la conversion (Si, S102, S106) des grosses données (1) s'opère selon une logique attribuant à une valeur 1 la signification vrai et à une valeur 0 la signification d'un état inconnu ou non réalisé.
  5. 5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que les grosses données (1) sont acquises par intervalles de temps At (610, 620, 630) d'une durée déterminée, et les grosses données (1) relatives à chaque utilisateur de l'ensemble donné (11) d'utilisateurs comprennent une indication d'un nombre d'évènements (215) survenus pendant chaque intervalle de temps At (610, 620, 630), le procédé comprenant, préalablement à la conversion (51, S102) des grosses données (1), une étape de comparaison du nombre d'évènements (215) associés à chaque utilisateur de l'ensemble donné (11) d'utilisateurs à un nombre seuil prédéfini, ledit utilisateur étant pris en compte dans la définition des vecteurs caractéristiques (30) lorsque ledit nombre d'évènements (215) est supérieur audit seuil.
  6. 6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la moyenne des vecteurs binaires de comportement (2) de chaque groupe est déterminée en sélectionnant des vecteurs binaires de comportement (2) qui, pris deux à deux, ont un angle inférieur à une valeur prédéfinie (405).
  7. 7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend pour chaque utilisateur de l'ensemble donné (11) d'utilisateurs une étape de conversion (S102) des grosses données (1) en valeurs numériques (123) en appliquant des règles de répartition.
  8. 8. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend, préalablement à la génération (S1, S106) d'un vecteur binaire de comportement (2), pour chaque utilisateur de l'ensemble donné (11) d'utilisateurs, un premier classement des grosses données (1), dans un premier vecteur, selon un ordre prédéterminé.
  9. 9. Procédé selon l'une quelconque des revendications 7 à 8, caractérisé en ce que les grosses données (1) sont acquises (S101) par intervalles de temps At (610, 620, 630) d'une durée déterminée, et pour chaque utilisateur de l'ensemble donné (11) d'utilisateurs, préalablement à la génération (Si, S106) d'un vecteur binaire de comportement (2), le procédé comprend : l'obtention (S106) d'un vecteur de comportement (700) par sommation des premiers vecteurs à valeurs numériques pour un nombre N d'intervalles de temps At (610, 620, 630).
  10. 10. Procédé selon la revendication 9, caractérisé en ce que la génération (Si, S106) d'un vecteur binaire de comportement (2) comprend : définir des plages de valeurs, sur la base des valeurs des champs des vecteurs de comportement (601, 602, 603), en vue de partitionner chaque champ des vecteurs de comportement (2) en une pluralité de sous-champs (301, 302, 303) destinés à recevoir une valeur 0 ou 1 en fonction de l'appartenance ou non de la valeur dudit champ à une desdites plages de valeurs.
  11. 11. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la division (S21, S202) des utilisateurs en au moins deux groupes d'utilisateurs distincts sur la base d'au moins un critère externe est suivie des étapes suivantes: pour chaque groupe, calcul (S203) de vecteurs caractéristiques (30) pour toute combinaison de valeurs dans les champs des vecteurs binaires de comportement (2); et - dans chaque groupe, identification (S301) d'un vecteur caractéristique (500, 510) de plus petite similarité avec les vecteurs caractéristiques (30) des autres groupes.
  12. 12. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la division (S22, S205) des utilisateurs en au moins deux groupes d'utilisateurs distincts sur la base d'au moins une valeur d'un champ des vecteurs binaires de comportement (2) est réalisée en prenant en compte des champs qui séparent les utilisateurs en groupes de tailles similaires.
  13. 13. Système de gestion d'une base de données utilisateurs mis en oeuvre par des moyens informatiques sur une plate-forme de fourniture de contenus multimédias, ladite base de données comprenant une pluralité de grosses données (1) générées par des utilisateurs (10) de ladite plate-forme, le système de gestion comprenant: - des calculateurs (909), destinés à générer (51, S106), pour chaque utilisateur courant (100), un vecteur binaire de comportement (2) comprenant une pluralité de champs (211, 212, 213, 214, 215), chaque champ comprenant une valeur binaire 0 ou 1, par conversion des grosses données (1) générées par ledit utilisateur courant (100); - un serveur maître (900, 907) relié auxdits calculateurs, destiné à : - diviser (S21, S22, S205, S202) des utilisateurs d'un ensemble donné (11) d'utilisateurs en au moins deux groupes d'utilisateurs distincts sur la base d'au moins un critère choisi parmi un critère externe (S21, S202) et une valeur d'un champ (S22, S205) desdits vecteurs binaires de comportement (2); - fournir (S3, S301, S302) des classes de comportements (3) associées auxdits groupes d'utilisateurs, lesdites classes (3) étant définies à partir de vecteurs caractéristiques (30) calculés à partir d'une moyenne des vecteurs binaires de comportement (2) de chaque groupe ; - pour un utilisateur courant (100), calculer (S4, S400) un degré d'appartenance de l'utilisateur courant (100) à une ou plusieurs desdites classes (3) par comparaison du vecteur binaire de comportement (2) dudit utilisateur courant (100) auxdits vecteurs caractéristiques (30), - en fonction des degrés respectifs d'appartenance de l'utilisateur courant (100) auxdites classes (3), déterminer un profil de l'utilisateur courant (100) pour proposer à l'utilisateur courant (100) un choix de contenus multimédias adaptés audit profil.
  14. 14. Programme d'ordinateur comportant une suite d'instructions mémorisées sur un support de mémorisation pour exécution par un ordinateur ou un dispositif dédié, caractérisé en ce que lors de cette exécution, ledit programme exécute les étapes selon l'une des revendications 1 à 12.
FR1358474A 2013-09-04 2013-09-04 Procede de gestion d'une base de donnees utilisateurs sur une plate-forme de contenus multimedias Withdrawn FR3010206A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1358474A FR3010206A1 (fr) 2013-09-04 2013-09-04 Procede de gestion d'une base de donnees utilisateurs sur une plate-forme de contenus multimedias

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1358474A FR3010206A1 (fr) 2013-09-04 2013-09-04 Procede de gestion d'une base de donnees utilisateurs sur une plate-forme de contenus multimedias

Publications (1)

Publication Number Publication Date
FR3010206A1 true FR3010206A1 (fr) 2015-03-06

Family

ID=49816951

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1358474A Withdrawn FR3010206A1 (fr) 2013-09-04 2013-09-04 Procede de gestion d'une base de donnees utilisateurs sur une plate-forme de contenus multimedias

Country Status (1)

Country Link
FR (1) FR3010206A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230281662A1 (en) * 2021-08-11 2023-09-07 Tencent Technology (Shenzhen) Company Limited Service data processing method and apparatus, electronic device, computer-readable storage medium and computer program product

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090177689A1 (en) * 2007-08-22 2009-07-09 Samsung Electronics Co., Ltd. Situation-aware pattern extraction and recommendation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090177689A1 (en) * 2007-08-22 2009-07-09 Samsung Electronics Co., Ltd. Situation-aware pattern extraction and recommendation

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BALAGANI K S ET AL: "Adaptive neural network clustering of web users", COMPUTER, IEEE, US, vol. 37, no. 4, 1 April 2004 (2004-04-01), pages 34 - 40, XP011112716, ISSN: 0018-9162, DOI: 10.1109/MC.2004.1297299 *
KLEANTHI LAKIOTAKI ET AL: "User profiling based on multi-criteria analysis: the role of utility functions", OPERATIONAL RESEARCH, vol. 9, no. 1, 1 May 2009 (2009-05-01), pages 3 - 16, XP055110136, ISSN: 1109-2858, DOI: 10.1007/s12351-008-0024-4 *
MIN GAO ET AL: "Personalisation in web computing and informatics: Theories, techniques, applications, and future research", INFORMATION SYSTEMS FRONTIERS ; A JOURNAL OF RESEARCH AND INNOVATION, KLUWER ACADEMIC PUBLISHERS, BO, vol. 12, no. 5, 21 July 2009 (2009-07-21), pages 607 - 629, XP019863470, ISSN: 1572-9419, DOI: 10.1007/S10796-009-9199-3 *
OLFA NASRAOUI ET AL: "A Web Usage Mining Framework for Mining Evolving User Profiles in Dynamic Web Sites", IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 20, no. 2, 1 February 2008 (2008-02-01), pages 202 - 215, XP011195310, ISSN: 1041-4347, DOI: 10.1109/TKDE.2007.190667 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230281662A1 (en) * 2021-08-11 2023-09-07 Tencent Technology (Shenzhen) Company Limited Service data processing method and apparatus, electronic device, computer-readable storage medium and computer program product

Similar Documents

Publication Publication Date Title
CN105427129B (zh) 一种信息的投放方法及系统
CN111309614B (zh) A/b测试方法、装置及电子设备
EP3846046A1 (fr) Procede et systeme de traitement de donnees pour la preparation d'un jeu de donnees
US20150032673A1 (en) Artist Predictive Success Algorithm
US20160099854A1 (en) Digital content consumption analysis
CN111259195A (zh) 一种视频推荐方法、装置、电子设备及可读存储介质
CN114297509A (zh) 用户兴趣向量生成方法、产品推荐方法、装置、设备、介质
US11653064B2 (en) Methods and systems for determining disliked content
EP3588301A1 (fr) Determination automatique et auto-optimisee des parametres d'execution d'une application logicielle sur une plateforme de traitement de l'information
US20220335270A1 (en) Knowledge graph compression
EP1727060A1 (fr) Procédé et dispositif de construction et d'utilisation d'une table de profils réduits de parangons, produit programme d'ordinateur correspondant
Ruhrländer et al. Improving box office result predictions for movies using consumer-centric models
FR3010206A1 (fr) Procede de gestion d'une base de donnees utilisateurs sur une plate-forme de contenus multimedias
FR2925724A1 (fr) Procede d'analyse d'un contenu multimedia, produit programme d'ordinateur et dispositif d'analyse correspondants
Wei et al. Multimedia QoE Evaluation
EP3846047A1 (fr) Procédé et système d'identification de variables pertinentes
Perrault Efficient Learning in Stochastic Combinatorial Semi-Bandits
WO2018206871A1 (fr) Procede, mise en oeuvre par ordinateur, de recherche de regles d'association dans une base de donnees
WO2019086782A1 (fr) Procédé, dispositif et programme de composition d'une liste ordonnée d'éléments recommandés
US20230169345A1 (en) Multiscale dimensional reduction of data
Shirsath et al. Big data analytical architecture for real-time applications
FR3022066A1 (fr) Dispositif et procede de saisie de reponses d'au moins un utilisateur a au moins un questionnaire
WO2021009364A1 (fr) Procédé d'identification de données aberrantes dans d'un jeu de données d'entrée acquises par au moins un capteur
EP4226267A1 (fr) Procédé d'évaluation du risque de ré-identification de données anonymisées
EP4155967A1 (fr) Procédé d'échanges d'informations sur un objet d'intérêt entre une première et une deuxième entités, dispositif électronique d'échange d'informations et produit programme d'ordinateur associés

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 3

ST Notification of lapse

Effective date: 20170531