FR 3078795 A1 20190913 FR 1851948 A 20180307 SYSTÉMES DE RÉSEAUX NEURAUX ET PROCÉDÉS POUR LA NAVIGATION D'APPLICATION DOMAINE TECHNIQUE [001] La présente révélation concerne de façon générale l'utilisation de réseaux neuraux pour la navigation d'application. En particulier, cette révélation concerne l'utilisation de multiples réseaux neuraux pour prédire la prochaine page d'une application. CONTEXTE [002] Il peut être difficile de naviguer dans une application peu familière. Un utilisateur cherchant à effectuer des tâches peut ne pas savoir comment accéder aux interfaces nécessaires de l'application. Un utilisateur non entrainé peut effectuer une tâche d'une manière qui augmente le temps, le nombre d'étapes, ou la probabilité d'une erreur impliquée dans la mise en oeuvre de la tâche. Les procédés existants pour guider les utilisateurs à travers une application peuvent s'avérer inefficaces et incorrects. Par exemple, les guides de formation peuvent refléter la manière dont les développeurs estiment qu'un utilisateur devrait interagir avec une application, ce qui peut différer de la manière dont les utilisateurs compétents interagissent en fait avec l'application. Et les guides de formation peuvent s'avérer rapidement obsolètes au fur et à mesure que l'application est mise à jour ou que le contexte, dans lequel l'application est utilisée, change. [003] Il existe donc un besoin pour un système de navigation d'application qui peut refléter la manière dont les utilisateurs interagissent en fait avec une application, et qui peut continuer à fournir des recommandations justes lorsque l'application est mise à jour ou que le contexte, dans lequel l'application est utilisée, change. Selon un mode de développement d'applications, les applications (ou les composants des applications) peuvent être construites à partir d'états d'application qui oeuvrent sur des objets de donnée pour générer les pages qui -2 s'affichent à un utilisateur. Les états d'application peuvent définir l'apparence et la fonctionnalité des pages alors que les objets de données peuvent stocker la donnée réelle. Comme révélé dans les présentes, des systèmes et des procédés pour la navigation d'application peuvent exploiter ce mode de développement d'applications pour fournir des 5 systèmes améliorés de navigation d'application qui surmontent les lacunes des approches existantes. RÉSUMÉ [0041 Les modes de réalisation de la présente révélation décrivent des systèmes et des 10 procédés pour la navigation d'application en utilisant des réseaux neuraux. Ces réseaux neuraux peuvent être reliés, et peuvent être configurés pour prédire une page de l'application en prédisant l'état de l'application et un objet de donnée, où l'objet de donnée prédite pourrait être géré par l'état de l'application prédite pour générer la page prédite. La prédiction peut dépendre d'un historique des pages d'application précédemment visitées. 15 [0051 Un mode de réalisation de la présente révélation peut inclure au moins un processeur et au moins une mémoire non transitoire contenant des instructions. Lorsqu'elles sont exécutées par 1' au moins un processeur, les instructions peuvent amener le système à mettre en oeuvre des opérations. Les opérations peuvent inclure l'apport d'une application comprenant des états d'application qui oeuvrent sur des objets de données pour générer des 20- pages. Les opérations peuvent inclure également la prédiction d'une nouvelle page en utilisant un réseau neural prédicteur d'état d'application et un réseau neural prédicteur d'objet de donnée. La prédiction par ailleurs peut inclure de prédire un prochain état d'application en utilisant le réseau neural prédicteur d'état d'application et un premier vecteur d'entrée, et de prédire un prochain objet de donnée en utilisant le réseau neural prédicteur d'objet de donnée, 25 un deuxième vecteur d'entrée et le prochain état d'application. Les opérations peuvent inclure 3 également de fournir des instructions pour afficher une indication de la prochaine page prédite. [006] Dans certains modes de réalisation, une couche de sortie du réseau neural prédicteur d'état d'application peut inclure des noeuds de sortie correspondant aux états d'application. 5 Dans des modes de réalisation variés, la prédiction du prochain état d'application en utilisant le réseau neural prédicteur-d'état d'application et le premier vecteur d'entrée peut inclure le hachage du premier vecteur d'entrée. Dans certains modes de réalisation, des éléments communs du premier vecteur d'entrée et du second vecteur d'entrée peuvent être hachés une fois et être réutilisés pour prédire le prochain objet de donnée. Dans des modes de réalisation 10 variés, le premier vecteur d'entrée et le second vecteur d'entrée peuvent être le même vecteur. Dans certains modes de réalisation, une couche de sortie du réseau neural prédicteurd'objet de donnée peut inclure des noeuds de sortie correspondant aux objets de donnée. Dans des modes de réalisation variés, le premier vecteur d'entrée peut inclure un historique de l'application. Sous certains aspects, l'historique de l'application inclut des éléments 15 indiquant des états antérieurs d'une application et des objets de données antérieurs associés aux pages visitées précédemment. Dans certains modes de réalisation, le premier vecteur d'entrée peut inclure des éléments indiquant au moins un d'une entité, un utilisateur associé à l'entité, un rôle de l'utilisateur, un niveau d'autorisation de l'utilisateur, un jour de la semaine, une date ou une heure. Dans des modes de réalisation variés, le premier vecteur 20 d'entrée peut inclure un élément indiquant une valeur d'un objet de donnée réel. [007] Dans certains modes de réalisation, les opérations peuvent par ailleurs inclure la génération d'une page actuelle selon un état d'application actuel en utilisant un objet de donnée réel. Dans certains modes de réalisation, l'apport d'instructions pour afficher l'indication de la prochaine page prédite peut inclure l'apport des instructions pour afficher la 25 page actuelle, modifiée pour indiquer la prochaine page prédite. Dans certains modes de 4 réalisation, l'apport des instructions pour afficher l'indication de la prochaine page prédite peut inclure l'apport d'instructions pour générer de façon dynamique une page actuelle conformément à un état d'application réel en utilisant un objet de donnée réel, la page actuelle modifiée pour indiquer la prochaine page prédite. 5 [0081 Dans certains modes de réalisation, l'apport des instructions pour afficher une indication de la prochaine page prédite comprend l'apport d'instructions pour afficher les indications de multiples pages suivantes prédites incluant la prochaine page prédite. Sous des aspects variés, les instructions pour afficher les indications des multiples pages suivantes prédites peuvent inclure les instructions pour indiquer les probabilités relatives des multiples 10 pages suivantes prédites. Dans certains modes de réalisation, l'apport d'instructions pour afficher l'indication de la prochaine page prédite peut inclure l'apport d'instructions pour actualiser de façon dynamique une page actuelle, afin d'inclure un élément graphique indiquant la prochaine page prédite. Dans des modes de réalisation variés, l'élément graphique est une fenêtre insérée incluant une icône qui correspond à la prochaine page 15 prédite. Sous certains aspects, l'icône peut être sélectionnable pour faire une transition vers la prochaine page. Dans des modes de réalisation variés, l'apport des instructions pour afficher l'indication de la prochaine page prédite peut inclure l'apport d'instructions pour actualiser de façon dynamique une page actuelle, en modifiant un élément graphique existant de la page actuelle afin d'indiquer la prochaine page prédite. Sous certains aspects, la modification de 20 l'élément graphique existant de la page actuelle inclut au moins un changement parmi le positionnement, la forme, la taille, la couleur de l'élément graphique existant ; ou au moins un changement parmi le positionnement, la police, la taille, une accentuation ou la couleur de texte associée à l'élément graphique existant. Dans certains modes de réalisation, l'application peut être une seule page d'application. 25 - 5 - BRÈVE DESCRIPTION DES DESSINS [9] Les dessins accompagnants illustrent plusieurs modes de réalisation et conjointement avec la description, servent à expliquer les principes révélés dans les présentes. 5 Dans les dessins : [10] La Fig. 1 décrit un système pour la navigation d'application incluant un client et un serveur fournissant une application. [11] La Fig. 2A décrit à titre exemplaire une application schématique incluant des états d'application. 10 [012] La Fig. 2B décrit à titre exemplaire la génération schématique illustrative d'une page par un état d'application d'une application utilisant un objet de donnée. [13] Les Fig. 3A et 3B illustrent les trajectoires utilisateur exemplaires à travers les pages d'une application. [14] La Fig. 4 décrit un élément de prédiction configuré pour utiliser des réseaux neuraux 15 liés afin de prédire une prochaine page d'une application. [15] La Fig. 5 décrit un vecteur d'entrée exemplaire. [16] La Fig. 6 décrit un flux séquentiel illustrant un procédé exemplaire 600 pour former un composant d'une prédiction. [17] La Fig. 7 décrit un organigramme illustrant un procédé de navigation d'application 20 en utilisant des réseaux neuraux. [18] Les Fig. 8 à 10 décrivent des interfaces utilisateur exemplaires pour une application de gestion de biens. [19] La Fig. 11 est un diagramme bloc d'un exemple de dispositif avec lequel les systèmes, les procédés et les dispositifs de la présente invention peuvent être implémentés. - 6 - DESCRIPTION DÉTAILLÉE [20] Des modes de réalisation exemplaires seront maintenant discutés dans les détails en faisant référence aux dessins qui les accompagnent. Dans certains cas, les mêmes numéros de 5 référence seront utilisés dans les dessins et dans la description suivante pour faire référence à la même partie ou à des parties similaires. À moins d'être définis autrement, les termes techniques et/ou scientifiques ont la signification couramment comprise par un homme de métier. Les modes de réalisation révélés sont décrits avec suffisamment de détails pour permettre aux hommes de métier de mettre en oeuvre les modes de réalisation révélés. On 10 comprendra que d'autres modes de réalisation peuvent être utilisés et que des changements peuvent être faits sans s'éloigner de la portée des modes de réalisation révélés. Par conséquent, les supports, les procédés et les exemples sont uniquement illustratifs et ne prétendent pas nécessairement être exhaustifs. [21] Un système informatique peut fournir une application à des utilisateurs. Cette 15 application peut inclure de multiples pages. Une page peut être une interface utilisateur affichée à l'utilisateur, incluant des données et des éléments graphiques. Les éléments graphiques peuvent inclure des contrôles et des indicateurs. À titre d'exemple non exhaustif, une page peut être une page Web. Comme exemple supplémentaire, une page peut être une vue (p. ex. une représentation d'information affichée à l'utilisateur) selon un mode de 20 conception modèle-vue-contrôleur ou un mode similaire de conception logicielle (p. ex. le mode de conception modèle-vue-adaptateur ou le mode de conception modèle-vuevuemodèle). Ces pages peuvent permettre à un utilisateur de lire des informations ou de saisir des informations ou des commandes. Des pages différentes peuvent permettre la lecture ou la saisie d'informations ou de commandes différentes. L'application peut permettre à un 25 utilisateur d'accomplir des tâches par la lecture et/ou la saisie d'informations ou de 7 commandes en utilisant les pages. Dans certains cas, l'accomplissement d'une tâche peut nécessiter une interaction avec de multiples pages de l'application. À titre d'exemple non exhaustif, un utilisateur peut récupérer les informations d'une base de données en utilisant une première page, interagir avec l'application pour générer une deuxième page, et ensuite 5 saisir des données ou des commandes basées sur les informations récupérées en utilisant la deuxième page. [22] Les utilisateurs peuvent trouver difficile l'accomplissement d'une tâche à l'aide d'une telle application. Un utilisateur peut ne pas être familier avec l'application et/ou la tâche à accomplir. En conséquence, ils peuvent ne pas savoir pas comment naviguer dans 10 l'application jusqu'aux bonnes pages pour exécuter la tâche. Alternativement ou en complément, il peut exister une manière privilégiée d'exécuter la tâche, qui réduit le temps, le nombre d'étapes, ou la probabilité d'erreur. Cette manière privilégiée peut inclure de visiter un ensemble particulier de pages dans un ordre particulier. Un utilisateur peu familier avec l'application et/ou la tâche peut ne pas connaître cette manière privilégiée d'exécuter la tâche. 15 À la place, l'utilisateur peut utiliser une autre manière d'exécuter la tâche qui prend plus de temps, qui nécessite plusieurs étapes ou qui possède une probabilité d'erreur accrue. [23] Les procédés et systèmes envisagés peuvent fournir des recommandations pour utiliser une application. Par exemple, les procédés s et systèmes envisagés peuvent inférer la tâche qu'un utilisateur tente d'exécuter et recommander une page suivante pour exécuter cette 20 tâche. Cette page suivante peut être une page d'une manière privilégiée d'exécuter la tâche. Sous certains aspects, les procédés et les systèmes envisagés peuvent fournir une recommandation en modifiant une page de l'application actuellement affichée. Par exemple, la page actuellement affichée peut être modifiée pour inclure une fenêtre supplémentaire. Cette fenêtre supplémentaire peut inclure un ou plusieurs contrôles. L'interaction avec ces 25 contrôles peut amener l'application à faire une transition vers une page recommandée. À titre - 8 - d'exemple supplémentaire, si l'interaction avec un élément de la page actuellement affichée amène l'application à afficher la page recommandée, alors cet élément peut être modifié (p. ex. en changeant le placement, la forme, la taille ou la couleur de l'élément ; ou en changeant le placement, la police, la taille, l'accent ou la couleur de texte associé à l'élément 5 particulier). Cette modification peut attirer l'attention de l'utilisateur sur l'élément, agissant comme une recommandation. De cette manière, les procédés et les systèmes envisagés peuvent recommander des actions faisant une transition de la page actuellement affichée vers la page recommandée. [024] Les réseaux neuraux artificiels peuvent servir à générer la recommandation. Dans 10 certains modes de réalisation, les procédés et les systèmes envisagés peuvent diviser le processus global de prédiction en plusieurs étapes subsidiaires, chacune réalisée par un réseau neural dans une chaîne de réseaux neuraux. liés. À titre d'exemple non exhaustif, le processus de recommandation peut être divisé en deux étapes. Dans une première étape, un premier réseau neural peut recommander un état fondé sur la première saisie de donnée. Dans une 15 deuxième étape, un deuxième réseau neural peut recommander un objet de donnée basé sur l'état recommandé et la deuxième saisie de donnée. Ces réseaux neuraux artificiels peuvent être formés en utilisant les données réelles de l'application. Dans certains modes de réalisation, les première et deuxième saisies de donnée peuvent être la même saisie de donnée. 20 [025] Les procédés et les systèmes envisagés sont améliorés à partir des manuels, des assistants, des didacticiels et d'autres systèmes de recommandation existants. Par exemple, les procédés et les systèmes envisagés peuvent fournir des recommandations mises à jour qui suivent l'évolution des modèles d'utilisation ou des changements apportés à l'application. En outre, les recommandations ne sont pas limitées aux situations anticipées par les 25 développeurs de l'application. En revanche, les manuels, les assistants, les didacticiels et - 9 - autres systèmes de recommandation existants sont rendus obsolètes en changeant les modèles d'utilisation et les mises à jour de l'application, et sont limités aux situations anticipées par les développeurs. [026] Ces améliorations sont permises, au moins en partie, par l'architecture spécifique 5 révélée ici. L'univers des pages potentielles d'une application peut être extrêmement important, limitant l'applicabilité des réseaux neuraux classiques. Mais les systèmes et les procédés envisagés utilisent des réseaux neuraux liés pour diviser le problème global de prédiction en sous-problèmes plus petits. Cela permet des recommandations précises utilisant des réseaux neuraux artificiels formés avec les données réelles d'utilisation. 10 [027] La Fig. 1 illustre un système 100 pour la navigation d'application, comprenant un client et un serveur fournissant une application sur un réseau, compatible avec les modes de réalisation révélés. Le Client 101 peut être un dispositif informatique d'un utilisateur (p. ex. un dispositif portable, un appareil mobile, un ordinateur portable, un poste fixe, une station de travail, un terminal, etc.) Le Client 101 peut être configuré pour exécuter un navigateur web 15 (p. ex. CHROME, OPERA' MOZILLA®, INTERNET EXPLORER®, SAFARI®, EDGE®, etc.) Le Serveur 103 peut être un dispositif informatique configuré pour répondre aux demandes du client 101. Le réseau peut être n'importe quel type de réseau (y compris l'infrastructure) qui fournit des communications, des échanges d'information, et/ou à faciliter l'échange d'information, comme Internet, un réseau Local ou d'autres connexions 20 appropriées. Le client 101 peut être configuré pour demander une page du serveur 103 à l'étape 105. En réponse, le serveur 103 peut être configuré pour fournir un ou plusieurs fichiers décrivant la disposition et le contenu de la page à l'étape 107. Le client 101 peut alors générer cette page. [028] Le client 101 ou le serveur 103 peut générer des mises à jour de la page basée sur les 25 informations échangées lors des étapes 109 et 111. Dans certains modes de réalisation, le - 10 - client 101 peut contacter le serveur 103 pour demander une nouvelle page dans l'étape 109. Par exemple, un navigateur web en cours d'exécution sur le client 101 peut envoyer une requête POST au serveur 103. Le serveur 103 peut être configuré pour répondre à cette requête POST, dans certains modes de réalisation, en générant une nouvelle page et en 5 envoyant cette nouvelle page au client 101 à l'étape 111. Le client 101 peut alors charger cette nouvelle page. Dans de modes de réalisation variés, le client 101 peut mettre à jour dynamiquement la page sans charger une nouvelle page du serveur 103 (p. ex. l'application peut être une application à page unique). Dans de tels modes de réalisation, l'application peut être implémentée en utilisant une structure JavaScript® de navigateur web telle 10 ANGULARJS®, EMBER.JS®, METEOR.JS®, EXTJS®, REACT® ou des structures semblables connues de l'homme de métier. Le navigateur web s'exécutant sur le client 101 peut demander les données et/ou les instructions à l'étape 109 (p. ex. en utilisant un appel AJAX®). Le serveur 103 peut être configuré pour répondre avec les données et les instructions (p. ex. en tant qu'objets JSON®) à l'étape 111. Le client 101 peut ensuite mettre à 15 jour dynamiquement la page en utilisant les instructions et les données reçues. [029] La Fig. 2A illustre un schéma exemplaire d'une demande incluant les états de l'application (p. ex. état 201 - état 215), compatible avec les modes de réalisation révélés. Comme indiqués, les états d'application peuvent être liés, de telle sorte qu'un utilisateur peut faire une transition d'un état d'application vers autre. Par exemple, un utilisateur peut 20 démarrer l'application 120 dans l'état d'application 201, faire une transition de l'état d'application 203 (p. ex. en interagissant avec un élément graphique dans une page générée par l'état d'application 201), faire une transition de l'état d'application 205 (p. ex. par le biais d'une autre interaction), puis revenir à l'état d'application 201. De cette manière, les états de l'application liée peuvent former un ou plusieurs graphiques. Sous certains aspects, les états 25 de l'application peuvent faire l'application (ou un ou plusieurs composants de l'application). [030] La Fig. 2B décrit un schéma exemplaire illustrant la génération de la page 235 par l'état de l'application 233 de l'application 120 à l'aide de l'objet de donnée 231. Dans certains modes de réalisation, les états de l'application peuvent définir l'apparence et la fonctionnalité des pages. Par exemple, un état d'application peut définir un ou plusieurs 5 modèles de page, y compris le langage de balisage et les commandes de script. Sous certains aspects, chaque état d'application peut avoir un identificateur unique. Cet identificateur peut être une chaîne de texte (p. ex. « application/directory/dostuff » ou « dostuff state ») ou une valeur numérique. Un état d'application (p. ex. état d'application 233) peut prendre un objet de donnée (p. ex. l'objet de donnée 231) comme étant une entrée. Sous des aspects variés, 10 l'objet de donnée peut être choisi parmi un ensemble donné d'objets de données. Chaque objet de donnée peut avoir un identificateur unique. Cet identificateur peut être une chaîne de texte (p. ex. « re : do staff » ou « root/dir/identifier ») ou une valeur numérique. L'état d'application peut fonctionner sur l'objet de donnée sélectionné pour générer la page. À titre d'exemple non exhaustif, un état d'application définissant un modèle de page peut être 15 configuré pour appliquer l'objet de donnée au modèle de page, en exécutant les commandes de script à l'aide d'une ou plusieurs valeurs de l'objet de donnée et en présentant les résultats selon le langage de balisage. [031] Les Fig. 3A et 3B illustrent les trajectoires utilisateur exemplaires à travers les pages de l'application 120, compatible avec les modes de réalisation révélés. Comme 20 précédemment révélé, le client 101 peut être configuré pour générer ces pages à l'aide d'états d'application et d'objets de données. Par exemple, le client 101 peut être configuré pour afficher la page 501 lorsqu'un premier état d'application d'application 120 opère sur un premier objet de données. Dans cet exemple, le client 101 peut être configuré pour afficher la page 505 lorsqu'un deuxième état d'application d'application 120 opère sur le premier objet 25 de donnée. Et le client 101 peut être configuré pour afficher la page 503 lorsque le premier -12- état d'application d'application 120 opère sur un deuxième objet de donnée. Comme les pages peuvent dépendre à la fois de l'état d'application et de l'objet de donnée, le graphique des états d'application et le graphique des pages peuvent différer. [32] Les utilisateurs peuvent effectuer des transitions entre les pages lorsqu'ils 5 interagissent avec l'application 120. Par exemple, comme il est indiqué dans les Fig. 3A et 3B, un utilisateur peut faire une transition de la page 301 vers la page 303, ou vers la page 305. Les pages peuvent inclure un ou plusieurs éléments graphiques permettant à l'utilisateur de faire la transition vers une autre page. Par exemple, une page peut inclure un menu déroulant, des étiquettes d'adresses, une barre d'adresses ou d'autres contrôles appropriés 10 connus de l'homme de métier. Comme les utilisateurs exécutant des tâches différentes peuvent interagir différemment avec l'application 120, le système 100 peut utiliser des transitions entre les pages pour prédire la prochaine page pour un utilisateur. Par exemple, comme indiqué dans la Fig. 3A, lorsque la page 303 est la page active et la page 301 la page précédente, le système 100 peut estimer que la page suivante devrait être la page 307. En 15 revanche, comme indiqué dans la Fig. 3B, la page 303 est la page active et la page 305 la page précédente, le système 100 peut estimer que la page suivante devrait être page la 309. [33] La Fig. 4 illustre un composant de prédiction 400 configuré pour utiliser les réseaux neuraux liés pour prédire une prochaine page d'une application, compatible avec les modes de réalisation révélés. Sous certains aspects, un composant de prédiction 400 peut être 20 configuré pour diviser la prédiction de la page suivante en deux sous-problèmes. Le composant de prédiction 400 peut être configuré pour utiliser le prédicteur d'état 420 pour prédire un ou plusieurs états d'application prochains basés sur un premier vecteur d'entrée. Le composant de prédiction 400 peut être configuré pour utiliser le prédicteur de donnée 430 pour prédire un ou plusieurs objets de données prochains opérés par le ou plusieurs prochains 25 états basés sur le ou plusieurs prochains états d'application et un deuxième vecteur d'entrée. - 13 - Dans certains modes de réalisation, le premier et le deuxième vecteur d'entrée peuvent être le même (p. ex. le vecteur d'entrée 410, comme indiqué dans la Figure 4). Le système 100 peut être configuré pour prédire la page basée sur l'état d'application prédit et les données prédites. Dans certains modes de réalisation, le composant de prédiction 400 peut être 5 configuré pour générer plusieurs prédictions de page. Par exemple, le composant de prédiction 400 peut être configuré pour générer une prédiction de page pour chaque objet de donnée prédit et état d'application. [034] Dans certains modes de réalisation, le composant de prédiction 400 peut être un composant du système 100. Par exemple, le système 100 peut être configuré pour 10 implémenter l'application 120 et le composant de prédiction 400. Comme exemple supplémentaire, le composant de prédiction 400 peut être un composant d'application 120. Dans des modes de réalisation variés, le client 101 et/ou le serveur 103 peuvent être configurés pour implémenter le composant de prédiction 400. Sous certains aspects, le client 101 peut être configuré pour prédire l'état de l'application et/ou l'objet de donnée. Sous des 15 aspects variés, le serveur 103 peut être configuré pour prédire l'état de l'application et/ou l'objet de donnée. Sous certains aspects, le client 101 et le serveur 103 peuvent interagir pour prédire un ou plusieurs états d'application ou l'objet de donnée. Par exemple, le client 101 peut fournir au moins une partie de la première saisie ou la deuxième saisie au serveur 103. Le client 101 peut alors recevoir du serveur 103 un ou plusieurs états de l'application prédite, 20 les données et la page. [035] Le vecteur d'entrée 410, décrit plus en détail ci-dessous, peut inclure plusieurs éléments, compatibles avec les modes de réalisation révélés. Ces éléments ne se limitent pas à un type de données particulier, mais peuvent inclure sans limitation des objets, des tableaux, des chaînes, des caractères, des nombres à virgule flottante ou d'autres types de données. - 14 - [36] Le prédicteur d'état 420 peut inclure un réseau neural qui génère la sortie d'état 423 à partir du vecteur d'entrée 410. Le réseau neural peut inclure une couche d'entrée, une ou plusieurs couches cachées et une couche de sortie. Les éléments du vecteur d'entrée 410 peuvent correspondre aux noeuds de la couche d'entrée. Dans certains modes de réalisation, la 5 couche d'entrée peut inclure entre 5 et 100 noeuds, ou entre 20 et 50 noeuds. Dans des modes de réalisation variés, le réseau neural peut inclure une seule couche cachée. La ou plusieurs couches cachées peuvent inclure entre 5 et 50 noeuds. Selon des procédés connus des hommes de métier, les noeuds dans chacune de la ou plusieurs couches cachées et la couche de sortie peuvent avoir des valeurs dépendantes des poids et des valeurs des noeuds dans une couche 10 précédente. La couche de sortie peut inclure des noeuds correspondant à au moins une partie des états d'application 120. Les noeuds dans la couche de sortie peuvent avoir des scores de probabilité qui indiquent si l'état d'application correspondant au noeud est l'état prochain d'application. Sous certains aspects, les scores de probabilité peuvent indiquer une probabilité selon laquelle l'état correspondant est le prochain état d'application. Sous des 15 aspects variés, le plus grand score peut correspondre à l'état le plus probable, le plus grand score suivant peut correspondre à l'état suivant le plus probable, etc. [37] L'extracteur des caractéristiques d'état 421 peut convertir le vecteur d'entrée 410 en une valeur pour chacun des noeuds dans la couche d'entrée, compatible avec les modes de réalisation révélés. Sous des aspects variés l'extracteur des caractéristiques d'état 421 peut 20 être configuré pour calculer un hachage sur la valeur de chaque élément dans le vecteur d'entrée. L'extracteur des caractéristiques d'état 421 peut attribuer la valeur de hachage pour le noeud correspondant dans la couche d'entrée. Par exemple, lorsque l'élément est une URL (p. ex. « StateAJStateC/StateE ») alors le hachage de l'URL (p. ex. 8858d721629ce6f9c8ff608ce5cfil3d1 pour MD4) peut être attribué au noeud correspondant 25 dans la couche d'entrée. Dans certains modes de réalisation, le hachage d'un élément peut - 15 - être calculé sur les valeurs binaires brutes de l'élément. Sous certains aspects, seule une partie seulement de ce hachage (p. ex. un sous-ensemble de bits du hachage) peut être attribué. La fonction de hachage peut être la fonction de hachage Fowler-Noll-Vo, ou une autre fonction de hachage connue par les gens de métier. Attribuer la valeur du hachage au noeud peut 5 inclure de convertir la valeur du hachage en un nombre à virgule flottant comportant un nombre prédéterminé de bits. Ce nombre à virgule flottant peut être normalisé selon une plage prédéterminée (p. ex. de 0 à 1). [38] La sortie d'état 423 peut être configurée pour sélectionner un ou plusieurs états prédits d'application. Dans certains modes de réalisation, l'état d'application sélectionné peut 10 être un ou plusieurs des états d'application les plus prédits. Par exemple, la sortie d'état 423 peut sélectionner un nombre prédéterminé des états d'application les plus prédits. Comme indiqué ci-dessus en ce qui concerne la Fig. 1B, un état d'application peut avoir un identifiant, tel qu'une chaîne de texte (p. ex. « StateA.StateC.StateE » ou « StateA/StateC/StateE ») ou une valeur numérique. Dans certains modes de réalisation, la 15 sortie d'état 423 peut inclure le ou les identifiants pour le ou plusieurs états d'applications prédits. [39] Le prédicteur de donnée 430 peut générer un ou plusieurs objets de données prédits pour chaque état prédit reçu du prédicteur d'état 420. Le prédicteur de donnée 430 peut inclure un réseau neural qui génère la sortie de donnée 433. Le réseau neural peut inclure une 20 couche d'entrée, une ou plusieurs couches cachées et une couche de sortie. Dans certains modes de réalisation, la couche d'entrée peut inclure entre 5 et 100 noeuds, ou entre 20 et 50 noeuds. Dans des modes de réalisation variés, le réseau neural peut inclure une seule couche cachée. La ou plusieurs couches cachées peuvent inclure entre 5 et 50 noeuds. Le réseau neural peut générer la sortie de donnée 433 en utilisant un ou plusieurs éléments de sortie 25 d'état 423 et un vecteur d'entrée. Le vecteur d'entrée peut être le vecteur d'entrée 410 (tel -16- qu'illustré) ou un autre vecteur (p. ex. un vecteur qui diffère du vecteur d'entrée 410 d'un ou de plusieurs éléments). Les éléments du vecteur d'entrée peuvent correspondre aux noeuds de la couche d'entrée du réseau neural. Selon des procédés connus des hommes de métier, les noeuds dans chacune de la ou plusieurs couches cachées et la couche de sortie peuvent avoir 5 des valeurs dépendantes des poids et des valeurs des noeuds dans une couche précédente. [40] Comme indiqué ci-dessus en ce qui concerne la Fig. 2B, l'application 120 peut être configurée pour sélectionner des objets de données (p. ex. l'objet de donnée 231) d'un ensemble d'objets de données. Dans certains modes de réalisation, la couche de sortie du prédicteur de donnée 430 peut inclure un noeud correspondant à chaque objet dans l'ensemble 10 des objets de donnée. Les noeuds dans la couche de sortie du prédicteur 430 peuvent avoir des scores de probabilité qui indiquent si l'objet de donnée correspondant au noeud est le prochain objet de donnée. Sous certains aspects, les scores de probabilité peuvent indiquer une probabilité selon laquelle l'objet de donnée correspondant est le prochain objet de donnée de l'application. Sous des aspects variés, le plus grand score peut correspondre à l'objet de 15 donnée le plus probable, le plus grand score suivant peut correspondre à l'objet de donnée suivant le plus probable, etc. [41] L'extracteur des caractéristiques de donnée d'objet 431 peut convertir le vecteur d'entrée et la sortie d'un état ou de plusieurs états du prédicteur d'état 420 en une valeur pour chacun des noeuds dans la couche d'entrée, compatible avec les modes de réalisation révélés. 20 Sous certains aspects, la couche d'entrée du prédicteur de données 430 comprend des noeuds d'entrée correspondant à la sortie d'un d'état ou de plusieurs états du prédicteur d'état 420 et les éléments du vecteur d'entrée 410. Sous des aspects variés, l'extracteur des caractéristiques d'objet de donnée 431 peut être configuré pour calculer un hachage sur la valeur de chaque élément et attribuer la valeur du hachage au noeud correspondant dans la couche d'entrée. 25 Dans certains modes de réalisation, le hachage d'un élément peut être calculé sur les valeurs -17- binaires brutes de l'élément. Sous certains aspects, seule une partie seulement de ce hachage (p. ex. un sous-ensemble de bits du hachage) peut être attribuée. Sous certains aspects, la fonction de hachage peut être la fonction de hachage Fowler-Noll-Vo. Attribuer la valeur du hachage au noeud peut inclure de convertir la valeur du hachage en un nombre à virgule 5 flottant comportant un nombre prédéterminé de bits. Ce nombre à virgule flottant peut être normalisé selon une plage prédéterminée (p. ex. de 0 à 1). [42] Dans certains modes de réalisation, lorsque le vecteur d'entrée pour le prédicteur d'état 420 partage des éléments communs avec le vecteur d'entrée pour le prédicteur de données 430, le composant de prédiction 400 peut être configuré pour hacher ces éléments 10 communs une fois, et ensuite attribuer les valeurs obtenues aux noeuds correspondants dans les couches d'entrée à la fois du prédicteur d'état 420 et du prédicteur de donnée 430. Par exemple, lorsque le vecteur d'entrée pour le prédicteur de donnée 430 est égal au vecteur d'entrée 410, le composant de prédiction 400 peut être configuré pour hacher le vecteur d'entrée 410 une fois, et pour réutiliser les valeurs hachées du vecteur d'entrée 410 comme 15 entrées pour le prédicteur de donnée 430. [43] La sortie de donnée 433 peut sélectionner un ou plusieurs objets de données prédits. Dans certains modes de réalisation, les objets de données sélectionnés peuvent être l'objet de donnée ou plusieurs objets de données prédits les plus probables. Par exemple, la sortie de donnée 433 peut sélectionner un nombre prédéterminé d'objets de données prédits les plus 20 probables. Dans certains modes de réalisation, l'objet de donnée peut avoir un identifiant, tel qu'une chaîne d'identification de texte (p. ex. « 2 Seaport Lane ») ou une valeur d'identification numérique. Dans certains modes de réalisation, la sortie de donnée 433 peut inclure le ou les identifiant(s) pour l'un ou plusieurs états prédits. [44] La page 440 prédite peut indiquer la page prédite basée sur le vecteur d'entrée 410 25 (et, dans certains modes de réalisation, basée en complément sur une deuxième entrée de -18- vecteur qui diffère du prédicteur de données 430, tel que décrit ci-dessus). Dans certains modes de réalisation, la page prédite 440 peut inclure une ou plusieurs paires d'état et d'objet de donnée. Par exemple, la page prédite 440 peut inclure l'état d'application le plus probable et l'objet de donnée le plus probable. Comme décrit ci-dessus, lorsque le prédicteur d'état 5 420 sort de multiples objets d'état, la page prédite 440 peut inclure une paire de donnée-état pour chacun des objets d'état et l'objet de donnée le plus probable pour cet objet d'état. De même, lorsque le prédicteur de donnée 430 sort de multiples objets d'état, la page prédite 440 peut inclure une paire de donnée-état pour chacun des objets d'état et pour chacun des objets de données pour cet objet d'état. Dans certains modes de réalisation, la page prédite 440 peut 10 être basée sur une ou plusieurs paires d'états d'application et d'objets de données. Par exemple, la page prédite 440 peut inclure des données ou des instructions pour la création, ou la mise à jour dynamique, de la page 235 pour indiquer la page prédite. Par exemple, les instructions ou les données peuvent configurer l'application 120 pour afficher un lien à la page 235 vers la page prédite, ou modifier un élément graphique de la page 235 pour indiquer 15 que l'interaction avec cet élément amènerait l'application 120 à faire une transition vers la page prédite. [45] La Fig. 5 illustre un vecteur d'entrée exemplaire 410, compatible avec les modes de réalisation révélés. Comme indiqué dans la Fig. 5, le vecteur d'entrée 410 peut inclure les valeurs de données actuelles 510, le contexte d'application 520 et l'historique d'application 20 530. Comme indiqué ci-dessus, le système 100 peut être configuré pour prédire une ou plusieurs pages suivantes en appliquant le vecteur d'entrée 410 au prédicteur d'entrée 420 et en appliquant le vecteur d'entrée 410 (ou un vecteur d'entrée qui diffère dans certains modes de réalisation) au prédicteur de données 430. [46] Les valeurs des données actuelles 510 peuvent inclure un ou plusieurs éléments avec 25 des valeurs basées sur un objet de donnée actuel. Par exemple, l'application peut être dans un -19- état actuel. Dans cet état actuel, l'application peut être gérée sous un objet de donnée actuel. Sous certains aspects, une ou plusieurs valeurs peuvent être associées à cet objet de donnée actuel. Par exemple, cet objet de donnée actuel peut avoir un ou plusieurs paramètres. Ces paramètres peuvent prendre des valeurs. Par exemple, un objet de courriel peut inclure un 5 paramètre d'émetteur, un paramètre de destinataire et un paramètre de contenu, chacun prenant une valeur. [47] Le contexte d'application 520 peut inclure un ou plusieurs éléments indiquant un contexte dans lequel l'utilisateur interagit avec l'application 120. Dans certains modes de réalisation, le contexte d'application 520 peut par ailleurs spécifier qui utilise l'application 10 120. Par exemple, lorsque le serveur 103 fournit l'application 120 à des entités différentes multiples (p. ex. différentes sociétés ou personnes), l'utilisateur peut être associé à cette entité (par ex. l'utilisateur peut être un employé de l'entité). Le contexte d'application 520 peut alors inclure un ou plusieurs éléments indiquant l'entité associée à l'utilisateur. Sous certains aspects, le contexte d'application 520 peut inclure un ou plusieurs éléments indiquant au 15 moins l'un de l'utilisateur associé à l'entité (p. ex. un nom d'utilisateur), un rôle de l'utilisateur (p. ex. « Associé, » « Stagiaire », etc.), ou une autorisation de l'utilisateur (p. ex. « Utilisateur », « Admin, » « Racine », etc.) Dans certains modes de réalisation, le contexte d'application 520 peut par ailleurs préciser quand l'utilisateur interagit avec l'application 120. Par exemple, le contexte d'application 520 peut alors inclure un ou plusieurs éléments 20 indiquant au moins un des jours de la semaine, la date ou l'heure de l'interaction. [48] L'historique d'application 530 peut indiquer la trajectoire de l'utilisateur à travers l'application 120. Dans certains modes de réalisation, l'historique d'application 530 peut indiquer les pages les plus récemment visitées par l'utilisateur. L'historique d'application 530 peut se limiter à un nombre prédéterminé de pages les plus récemment visitées. Ce nombre 25 prédéterminé peut varier entre 1 et 20, ou entre 5 et 15. L'historique d'application 530 peut -20- être structuré comme une file d'attente, avec l'indication de la page la plus récemment visitée en position initiale et l'indication de la page la moins récemment visitée en dernière position. Lorsqu'une nouvelle page est visitée, la page la moins visitée récemment est sortie de la dernière position et une indication de la nouvelle page est poussée vers la position initiale. 5 Dans certains modes de réalisation, les éléments de l'historique d'application 530 peuvent être initialisés sur les valeurs par défaut (p. ex. une valeur de zéro ou « nulle »). Lorsque l'utilisateur interagit avec l'application 120, ces valeurs par défaut sont progressivement remplacées. De cette manière, l'historique d'application 530 peut documenter le chemin d'accès de l'utilisateur à travers l'application 120. 10 [049] Dans certains modes de réalisation, l'historique d'application 530 peut indiquer chaque page avec une paire d'éléments : un élément indiquant un état d'application (p. ex. l'indication d'état 531) et un élément indiquant un objet de donnée sous lequel il est géré par l'état d'application pour générer la page (p. ex. l'indication d'objet de donnée 533). Sous certains aspects, un état d'application peut ne pas fonctionner sous un objet de donnée pour 15 générer une page (p. ex. un menu ou un écran de démarrage initial de l'application peut ne pas prendre un objet de donnée). Sous ces aspects, une valeur par défaut (p. ex. une valeur de zéro ou « nulle ») pour être attribuée à l'indication d'objet de donnée 533 pour indiquer que l'état d'application n'a pas pris un objet de donnée. Comme décrit précédemment, l'application 120 peut être configurée pour attribuer des identifiants uniques aux états et aux 20 objets de données. Ces identifiants peuvent être des chaînes de texte ou des valeurs numériques. Un élément de l'historique d'application 530 indiquant un état (p. ex. l'indication d'état 531) peut inclure un tel identifiant unique, ou une valeur basée sur l'identifiant unique. De même, un élément de l'historique d'application 530 indiquant un objet de donnée (p. ex. l'indication d'objet de donnée 521) peut inclure un tel identifiant 25 unique ou une valeur basée sur l'identifiant unique. -21- [050] La Fig. 6 décrit un organigramme illustrant un procédé exemplaire 600 pour former un composant de prédiction 400, compatible avec les modes de réalisation révélés. Dans certains modes de réalisation, le procédé 600 peut inclure les étapes qui consistent à recevoir des données de formation, former un prédicteur d'état, former un prédicteur d'objet de 5 donnée, et fournir le modèle de prédiction pour l'application 120. Comme le reconnaîtrait un homme de métier, cette séquence particulière d'étapes n'est pas destinée à être restrictive. Les étapes du procédé 600 peuvent être combinées ou divisées, et le procédé 600 peut inclure des étapes supplémentaires ou moins d'étapes, sans s'écarter des modes de réalisation envisagés. 10 [051] Après avoir démarré à l'étape 601, le système de formation peut être configuré pour recevoir des données de formation à l'étape 603. Dans certains modes de réalisation, les données de formation peuvent inclure à la fois des informations pour prédire la prochaine page et des informations permettant d'identifier la page suivante réelle. Par exemple, les données de formation peuvent inclure la saisie de donnée dans le prédicteur d'état 420 (p. ex. 15 le contenu du vecteur d'entrée 410), les données d'entrée dans le prédicteur de donnée 430 (s'ils différent du contenu du vecteur d'entrée 410), un identifiant pour l'état suivant réel, et un identifiant pour l'objet de donnée réel suivant. [052] Dans certains modes de réalisation, le système de formation peut être configuré pour recevoir les données de formation à partir d'un système qui fournit l'application 120 aux 20 utilisateurs. Par exemple, le système 100 peut être configuré pour stocker et/ou constituer un enregistrement des interactions de l'utilisateur avec l'application 120 dans le système de formation. Par exemple, le client 101 et/ou le serveur 103 peuvent être configurés pour fournir un tel enregistrement. Sous certains aspects, le système de formation peut recevoir les données de formation directement du système qui fournit l'application 120 aux utilisateurs. 25 Sous des aspects variés, le système de formation peut recevoir indirectement les données de -22- formation. Par exemple, le système de formation peut recevoir les données de formation d'une base de données. Cette base de données peut à son tour recevoir les données de formation du système qui fournit l'application 120 aux utilisateurs. Sous certains aspects, le système de formation peut recevoir les données de formation, ces données de formation étant 5 générées. Sous des aspects variés, le système de formation peut recevoir les données de formation à plusieurs reprises ou périodiquement. [053] Après l'étape 603, le système de formation peut être configuré pour former un prédicteur d'état à l'étape 605. Dans certains modes de réalisation, le système de formation peut être configuré pour utiliser les données de formation pour générer les états prédits. Sous 10 certains aspects, le système de formation peut être configuré pour générer les vecteurs d'entrée et appliquer ces vecteurs d'entrée à un réseau neural de prédicteur d'état (p. ex. l'indicateur d'état 420). Le réseau neural de prédicteur d'état peut être configuré pour générer des prédictions d'état d'application basées sur les données de formation. Le système de formation peut être configuré pour comparer ces prédictions d'état d'application aux états 15 d'application réels choisis par l'utilisateur pour générer un signal d'erreur. Selon des procédés connus des hommes de métier, le système de formation peut utiliser ce signal d'erreur pour mettre à jour les poids des noeuds de l'une ou de plusieurs couches cachées et la couche de sortie. D'après les procédés connus de l'homme de métier, le système de formation peut être configuré pour générer des prédictions d'état d'application à partir des données de 20 formation, pour générer des signaux d'erreur en utilisant les états d'application prédits et réels, et pour mettre à jour les poids jusqu'à ce qu'un ou plusieurs critères de formation soient réunis. Sous certains aspects, les critères de formation peuvent inclure un critère de précision basé sur (i) le nombre de fois où l'état prédit correspond à l'état réel et (ii) le nombre d'entrées dans les données de formation. Sous des aspects variés, les critères de formation 25 peuvent inclure un critère d'erreur quadratique moyen basé sur une comparaison de l'état - 23 - prédit et de l'état actuel, pondéré par le nombre d'états d'applications et le nombre d'observations dans les données de formation. [54] Après l'étape 603, le système de formation peut être configuré pour former un prédicteur d'objet de donnée à l'étape 607. Dans certains modes de réalisation, le système de 5 formation peut être configuré pour former un prédicteur d'état à l'étape 605 et former ensuite un prédicteur d'objet de donnée à l'étape 607. Dans des modes de réalisation variés, le système de formation peut alterner entre former un prédicteur d'état et former un prédicteur de donnée. Par exemple, le système de formation peut recevoir un lot de données de formation, former le prédicteur d'état en utilisant le lot des données de formation, et ensuite 10 former le prédicteur d'objet de donnée en utilisant la sortie de la prédiction d'état et le lot des données de formation. Le système de formation peut ensuite répéter ce processus de formation avec le prochain lot de données de formation. [55] Dans certains modes de réalisation, le système de formation peut être configuré en utilisant les données de formation pour générer les objets de données prédits. Sous certains 15 aspects, le système de formation peut être configuré pour générer les vecteurs d'entrée et appliquer ces vecteurs d'entrée à un réseau neural de prédicteur de données (p. ex. l'indicateur d'état 430). Le réseau neural de prédicteur de données peut être configuré pour générer des prédictions d'objets de données basées sur les données de formation. Le système de formation peut être configuré pour comparer ces objets de données prédits aux objets de 20 données réels choisis par l'utilisateur pour générer un signal d'erreur. Selon des procédés connus des hommes de métier, le système de formation peut utiliser ce signal d'erreur pour mettre à jour les poids des noeuds de l'une ou de plusieurs couches cachées et la couche de sortie. Selon des procédés connus des hommes de métier, le système de formation peut être configuré pour générer des prédictions d'objets de données à partir des données de formation, 25 pour générer des signaux d'erreur en utilisant les objets de données réels, et pour mettre à -24- jour les poids jusqu'à ce qu'un ou plusieurs critères de formation soient réunis. Sous certains aspects, les critères de formation peuvent inclure un critère de précision basé sur (i) le nombre de fois où l'objet de donnée correspond à l'état réel et (ii) le nombre d'entrées dans les données de formation. Sous certains aspects, les critères de formation peuvent inclure un 5 critère d'erreur quadratique moyen basé sur une comparaison de l'objet de donnée prédit avec l'objet de donnée réel, pondéré par le nombre d'objets de données dans l'ensemble prédéterminé d'objets de données et le nombre d'observations dans les données de formation. [56] Après l'étape 605 et l'étape 607, le système de formation peut être configuré pour fournir le prédicteur d'état et le prédicteur d'objet de donnée au système 100 à l'étape 609. 10 Par exemple, le système de formation peut fournir le prédicteur d'état et le prédicteur d'objet de donnée au client 101 et/ou au serveur 103. Dans certains modes de réalisation, le système de formation peut fournir le prédicteur d'état et le prédicteur d'objet de donnée au système 100 en tant qu'objets (p. ex. les structures de données). Dans des modes de réalisation variés, le système de formation peut être configuré pour fournir les poids pour le prédicteur d'état et 15 le prédicteur d'objet de donnée au système 100. Dans des modes de réalisation variés, le système de formation peut être configuré pour fournir des mises à jour à un prédicteur d'état existant et au prédicteur d'objet de donnée du système 100. [57] Dans certains modes de réalisation, le système de formation et le système 100 peuvent être exécutés sur les mêmes dispositifs informatiques. Par exemple, le système 100 et 20 le système de formation peuvent tous deux être exécutés sur le serveur 103. Dans des modes de réalisation variés, le système 100 peut être utilisé pour la formation. Par exemple, le système 100 peut être configuré pour fonctionner dans un mode de formation, en s'appuyant sur les entrées utilisateur pour les données de formation, et ensuite passer au mode de prédiction lorsque les critères de formation sont remplis. Après l'étape 609, le procédé 600 25 peut prendre fin à l'étape 611. - 25 - [58] La Fig. 7 décrit un organigramme illustrant un procédé de navigation d'application 700 en utilisant des réseaux neuraux, compatibles avec les modes de réalisation révélés. Selon le procédé 700, le composant de prédiction 400 peut recevoir un vecteur d'entrée, prédire un prochain état, prédire un prochain objet de donnée, et indiquer une page suivante à 5 l'utilisateur. Comme le reconnaîtrait un homme de métier, cette séquence particulière d'étapes n'est pas destinée à être restrictive. Les étapes du procédé 700 peuvent être combinées ou divisées, et le procédé 700 peut inclure des étapes supplémentaires ou moins d'étapes, sans s'écarter des modes de réalisation envisagés. [59] Après avoir démarré dans l'étape 701, le composant de prédiction 400 peut être 10 configuré pour recevoir un vecteur d'entrée à l'étape 703. Sous certains aspects, le composant de prédiction 400 peut être configuré pour recevoir les éléments du vecteur d'entrée directement ou indirectement de l'application 120. Par exemple, dans certains modes de réalisation le composant de prédiction 400 peut être intégré à l'application 120, et peut créer le vecteur d'entrée à partir des valeurs stockées par l'application 120. À titre d'exemple 15 supplémentaire, le système 100 peut être configuré pour implanter le composant de prédiction 400 et l'application 120 en tant qu'applications séparées. L'application 120 peut ensuite fournir des valeurs pour les éléments du vecteur d'entrée directement au composant de prédiction 400, ou peut fournir ces valeurs à une mémoire ou une base de données. Le composant de prédiction 400 peut ensuite récupérer ces valeurs auprès de la mémoire ou de la 20 base de données. [60] Comme révélé ci-dessus dans la Fig. 5, dans certains modes de réalisation le vecteur d'entrée peut inclure les valeurs de données actuelles 510, le contexte d'application 520 et l'historique d'application 530. Recevoir le vecteur d'entrée peut inclure de recevoir des informations de contexte d'application de la part de l'utilisateur. Par exemple, comme 25 indiqué ci-dessus, le contexte d'application 520 peut inclure un ou plusieurs éléments - 26 - indiquant qui utilise l'application 120 (p. ex. l'entité associée à l'utilisateur, un nom d'utilisateur, un rôle d'utilisateur ou un titre de poste, ou une autorisation d'utilisateur ou la responsabilité du poste) ou lorsque l'utilisateur interagit avec l'application 120 (p. ex. au moins un jour de la semaine, la date ou l'heure de l'interaction). Le composant de prédiction 5 400 peut être configuré pour recevoir cette information une fois (p. ex. lorsque l'utilisateur ouvre une session dans l'application 120) et réutiliser ces informations pour générer le vecteur d'entrée selon la nécessité. [061] Après l'étape 703, le composant de prédiction 400 peut être configuré pour prédire au moins un prochain état d'application dans l'étape 705. Comme indiqué ci-dessus en ce qui 10 concerne la Fig. 4, le composant de prédiction 400 peut être configuré pour convertir les valeurs du vecteur d'entrée en nombres utilisant l'extracteur des caractéristiques d'état 421. Dans certains modes de réalisation, le composant de prédiction 400 peut effectuer cette conversion en utilisant une fonction de hachage. Par exemple, le composant de prédiction 400 peut être configuré pour générer un hachage des valeurs binaires brutes de chaque élément du 15 vecteur d'entrée. La fonction de hachage peut être la fonction de hachage Fowler-Noll-Vo, ou une autre fonction de hachage connue dans le métier. Les valeurs hachées peuvent être appliquées aux noeuds d'entrée du prédicteur d'état 420. Le composant de prédiction 400 peut propager ces valeurs hachées en les avançant jusqu'à la ou plusieurs couches masquées et la couche de sortie pour générer des scores de probabilité. Ces scores de probabilité peuvent 20 dépendre des valeurs hachées d'entrée et des poids du prédicteur d'état 420 (qui peuvent être déterminés selon le procédé 600). La sortie d'état 423 peut être configurée pour sélectionner un ou plusieurs des états prédits d'application les plus probables. Par exemple, la sortie d'état 423 peut être configurée pour sélectionner en tant qu'état d'application prédite l'application d'état correspondant au noeud de la couche de sortie avec la plus grande valeur de probabilité. 25 À titre d'exemple supplémentaire, la sortie d'état 423 peut être configurée pour sélectionner - 27 - les états d'application correspondant à un nombre prédéterminé de noeuds de la couche de sortie avec les plus grandes valeurs de probabilité. [062] Après l'étape 705, le composant de prédiction 400 peut être configuré pour prédire au moins un prochain objet de donnée dans l'étape 707. Dans certains modes de réalisation, 5 pour chaque état sélectionné par la sortie d'état 423, le composant de prédiction 400 peut être configuré pour générer un ou plusieurs des objets de données. Comme indiqué ci-dessus en ce qui concerne la Fig. 4, le composant de prédiction 400 peut être configuré pour convertir les identifiants de l'un ou plusieurs états d'application sélectionnés par la sortie d'état 423 et les valeurs du vecteur d'entrée en des numéros en utilisant l'extracteur des caractéristiques 10 d'objet de donnée 431. Dans certains modes de réalisation, l'extracteur des caractéristiques de l'objet de donnée 431 peut utiliser une fonction de hachage pour effectuer cette conversion. Par exemple, le composant de prédiction 400 peut être configuré pour générer un hachage des valeurs binaires brutes de chaque élément du vecteur d'entrée. La fonction de hachage peut être la fonction de hachage Fowler-Noll-Vo, ou une autre fonction de hachage 15 connue dans le métier. Les valeurs hachées peuvent être appliquées aux noeuds d'entrée du prédicteur de donnée 430. Le système 100 peut propager ces valeurs hachées en les faisant suivre jusqu'à la ou plusieurs couches cachées et la couche de sortie pour générer des scores de probabilité. Ces scores de probabilité peuvent dépendre des valeurs hachées d'entrée et des poids du prédicteur de donnée 430 (qui peuvent être déterminés selon le procédé 600). La 20 sortie de donnée 433 peut être configurée pour sélectionner un ou plusieurs des états prédits d'application les plus probables. Par exemple, la sortie de donnée 433 peut être configurée pour sélectionner en tant qu'objet de donnée prédit l'objet de donnée correspondant au noeud de la couche de sortie avec la plus grande valeur de probabilité. À titre d'exemple supplémentaire, la sortie de donnée 433 peut être configurée pour sélectionner les états -28- d'application correspondant à un nombre prédéterminé de noeuds de la couche de sortie avec les plus grandes valeurs de probabilité. [063] Après l'étape 707, le composant de prédiction 400 peut être configuré pour prédire au moins une prochaine page à l'utilisateur dans l'étape 709. Cette indication peut dépendre 5 de la ou de plusieurs paires prédites d'états d'application et d'objets de données. Par exemple, le composant de prédiction 400 peut fournir des données ou des instructions permettant d'indiquer la ou plusieurs pages prédites. Par exemple les instructions ou données peuvent configurer l'application 120 pour afficher un ou plusieurs liens vers les pages prédites, ou modifier un ou plusieurs éléments graphiques d'une page existante pour indiquer qu'interagir 10 avec le ou plusieurs éléments amènerait l'application 120 à faire une transition vers la ou plusieurs pages prédites (p. ex. mettre en surbrillance, souligner, animer, changer la. couleurde l'élément, etc.) À titre d'exemple supplémentaire, les données ou les instructions peuvent configurer l'application 120 pour afficher des instructions explicites indiquant la page suivante. Ces instructions peuvent être affichées dans une page insérée, ou dans une page 15 séparée. Sous certains aspects, les données ou les instructions peuvent être fournies au client 101, qui peut les utiliser pour mettre à jour dynamiquement une page existante. Sous des aspects variés, les données ou les instructions peuvent être fournies au serveur 103, qui peut les utiliser pour créer une nouvelle page à fournir au client 101. Après l'étape 709, le procédé 700 peut prendre fin à l'étape 711. 20 [064] La précédente révélation décrit les modes de réalisation d'un système pour la navigation d'application en utilisant les réseaux neuraux. Un tel système peut généralement être utilisé avec des applications fournies comme le décrit la Fig. 1. En outre, un tel système peut servir pour la navigation dans une application fournie par le client 101. Par exemple, une application fournie par le client 101 peut être configurée pour signaler toute information 25 d'utilisation incluant les informations d'état d'application et les informations d'objet de - 29 - donnée au serveur 103. Dans cet exemple non exhaustif l'application ne peut pas obtenir les objets de données (ou les informations contenues dans les objets de données) du serveur 103. D'après les informations d'utilisation obtenues auprès de plusieurs utilisateurs, le serveur 103 peut être configuré pour générer un prédicteur d'état et un prédicteur d'objet de donnée. Le 5 serveur 103 peut être configuré pour fournir ce prédicteur d'état d'application et le prédicteur d'objet de donnée à un composant de prédiction de l'application exécutée sur le client 101. 10651 Application exemplaire : Application de gestion de biens [66] Les procédés et systèmes envisagés peuvent fournir des recommandations aux utilisateurs d'une application de gestion de biens. Cette application exemplaire illustre 10 l'applicabilité des modes de réalisation envisagés dans le métier et ne vise pas à être limitative. [67] Conformément à la Fig. 1, un serveur peut être configuré pour fournir l'application de gestion de biens aux clients. Les utilisateurs peuvent interagir avec l'application par l'entremise des clients. Conformément à la Fig. 2A, les états d'application de gestion de biens 15 peuvent être liés, de sorte qu'un utilisateur peut faire une transition d'un état à l'autre. Conformément à la Fig. 2B, l'application de gestion des biens peut inclure les états d'application qui définissent l'apparence et la fonctionnalité des pages de l'application de gestion de biens. Ces états d'application peuvent être définis en utilisant des modèles incluant le langage de balisage et les commandes de script. Par exemple, l'application peut inclure les 20 états d'application définis en utilisant ANGULAR UI®, RÉAGIR®, ou une structure JavaScript® similaire. Conformément à la Fig. 2B, l'application de gestion de biens peut fonctionner sur des objets de données représentant les propriétés. Ces objets de gestion de données peuvent inclure des champs décrivant les caractéristiques des biens, telles que la propriété, la marque, le nom des biens, l'emplacement des biens, l'inventaire des biens, la 25 tarification de l'inventaire, les politiques, les promotions, les classes de réservation et autres - 30 - caractéristiques de des biens connues des hommes de métier. En conformité avec les modes de réalisation révélés, un état d'application peut être exécuté sur un objet de donnée représentant une politique visant à générer une page. Comme précédemment révélé, les utilisateurs peuvent interagir avec une ou plusieurs pages pour effectuer des tâches. Dans cet 5 exemple, une tâche pourrait inclure de modifier l'inventaire disponible au sein d'un bien. L'utilisateur pourrait sélectionner un bien en utilisant une première page, accéder à une deuxième page permettant à l'utilisateur d'ajouter l'inventaire à ce bien, et passer ensuite à une troisième page permettant à l'utilisateur de modifier les catégories de tarification et de réservation pour cet inventaire nouvellement ajouté. 10 [068] En conformité avec les Fig. 3A et 3B, le système de gestion de biens peut être configuré pour afficher les pages, et la probabilité qu'un utilisateur fasse une transition d'une page vers une l'autre peut dépendre de la trajectoire préalable de l'utilisateur par l'entremise de l'application de gestion de biens. [069] Conformément à la Fig. 4, dans certains modes de réalisation, l'application de 15 gestion de biens peut inclure un élément de prédiction 400 configuré pour utiliser les réseaux neuraux pour prédire la prochaine page avec laquelle l'utilisateur doit interagir. Cet élément de prédiction peut inclure un vecteur d'entrée 410, un prédicteur d'état 420, un prédicteur de donnée 430 et une prédiction de page. À titre d'exemple non exhaustif, les réseaux neuraux peuvent être implémentés en utilisant JAVA°. 20 [070] En conformité avec la Fig. 5, dans certains modes de réalisation, le vecteur d'entrée peut inclure les valeurs de données actuelles 510, le contexte d'application 520 et l'historique d'application 530. Sous certains aspects, les valeurs des données actuelles 510 peuvent inclure les valeurs de l'objet de donnée actuelles, tel qu'illustré dans le pseudo-code exemplaire suivant : 25 [071] vecteur d'entrée REVENDICATIONS: 1. Un système pour la navigation d'application en utilisant des réseaux neuraux, comprenant : au moins un processeur ; et au moins une mémoire non transitoire comprenant des instructions qui, lorsqu'elles sont exécutées par ledit au moins un processeur, amènent le système à mettre en oeuvre des opérations comprenant : l'apport d'une application comprenant des états d'application qui oeuvrent sur des objets de données pour générer des pages ; la prédiction d'une prochaine page en utilisant un réseau neural prédicteur d'état d'application et un réseau neural prédicteur d'objet de donnée, la prédiction comprenant : la prédiction d'un prochain état d'application suivant en utilisant le réseau neural prédicteur d'état d'application et un premier vecteur d'entrée ; et la prédiction d'un prochain objet de donnée en utilisant le réseau neural prédicteur d'objet de donnée, un deuxième vecteur d'entrée et le prochain état d'application ; et l'apport d'instruction pour afficher une indication de la prochaine page prédite. 2. Le système selon la revendication 1, dans lequel une couche de sortie du réseau neural prédicteur d'état d'application comprend des noeuds de sortie correspondant aux états d'application. 3. Le système selon la revendication 1 ou la revendication 2, dans lequel la prédiction du prochain état d'application en utilisant le réseau neural prédicteur-d'état - 39 - d'application et le premier vecteur d'entrée, comprend le hachage du premier vecteur d'entrée. 4. Le système selon l'une quelconque des revendications précédentes, dans lequel des éléments 5 communs du premier vecteur d'entrée et du deuxième vecteur d'entrée sont hachés une fois et réutilisés pour prédire le prochain objet de donnée. 5. Le système selon l'une quelconque des revendications précédentes, dans lequel le premier vecteur d'entrée -et le deuxième vecteur d'entrée sont le même vecteur. 10 6. Le système selon l'une quelconque des revendications précédentes, dans lequel une couche de sortie du réseau neural prédicteur-d'objet de donnée comprend des noeuds de sortie correspondant aux objets de donnée. 15 7. Le système selon l'une quelconque des revendications précédentes, dans lequel le premier vecteur d'entrée comprend un historique de l'application et/ou inclut des éléments indiquant au moins une d'une entité, un utilisateur associé à l'entité, un rôle de l'utilisateur, un niveau d'autorisation de l'utilisateur, un jour de la semaine, une date, une heure, ou une valeur d'un objet de donnée actuel. 8. Le système selon la revendication 7, dans lequel l'historique de l'application inclut des éléments indiquant des états antérieurs d'application et des objets de donnée antérieurs associés aux pages visitées précédemment. - 40 - 9. Le système selon l'une quelconque des revendications preceuentes, crans lequel les opérations comprennent par ailleurs la génération d'une page actuelle conformément à un état d'application actuel en utilisant un objet de donnée actuel, et dans lequel l'apport des instructions pour afficher l'indication de la prochaine 5 page prédite comprend l'apport d'instructions pour afficher la page actuelle, modifiée pour indiquer la prochaine page prédite. 10. Le système selon la revendication 9, dans lequel l'apport des instructions pour afficher l'indication de l&prochaine page prédite comprend l'apport d'instructions pour 10 générer de façon dynamique la page actuelle conformément à l'état d'application actuel en utilisant l'objet de donnée actuel, la page actuelle modifiée pour indiquer la prochaine page prédite. 11. Le système selon l'une quelconque des revendications précédentes, dans lequel l'apport des 15 instructions pour afficher l'indication de la prochaine page prédite comprend l'apport d'instructions pour afficher les indications de multiples pages suivantes prédites incluant la prochaine page prédite. 12. Le système selon la revendication 11, dans lequel les instructions pour afficher les 20 indications des multiples pages suivantes prédites incluent les instructions pour indiquer les probabilités relatives des multiples pages suivantes prédites. 13. Le système selon l'une quelconque des revendications 9 à 12, dans lequel l'apport des instructions pour afficher une indication de la prochaine page prédite comprend 25 l'apport d'instructions pour actualiser la page actuelle afin d'inclure un élément -41- graphique indiquant la prochaine page prédite ou en modifiant un élément graphique de la page actuelle pour indiquer la prochaine page prédite. 14. Le système selon la revendication 13, dans lequel l'élément graphique et une fenêtre 5 insérée incluant une icône correspondant à la prochaine page prédite, l'icône étant préférablement sélectionnable pour faire une transition vers la prochaine page prédite. 15. Le système selon la revendication 13 ou la revendication 14, dans lequel la modification de 10 l'élément graphique existant de la page actuelle inclut le changement d'au moins un positionnement, une forme, une taille, ou une couleur de l'élément graphique existant ; ou le changement d'au moins un positionnement, une police, une taille, une accentuation, ou une couleur de texte associé à l'élément graphique existant.