FR3078795A1 - NEURAL NETWORK SYSTEMS AND METHODS FOR APPLICATION NAVIGATION - Google Patents

NEURAL NETWORK SYSTEMS AND METHODS FOR APPLICATION NAVIGATION Download PDF

Info

Publication number
FR3078795A1
FR3078795A1 FR1851948A FR1851948A FR3078795A1 FR 3078795 A1 FR3078795 A1 FR 3078795A1 FR 1851948 A FR1851948 A FR 1851948A FR 1851948 A FR1851948 A FR 1851948A FR 3078795 A1 FR3078795 A1 FR 3078795A1
Authority
FR
France
Prior art keywords
application
page
state
input vector
data object
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.)
Granted
Application number
FR1851948A
Other languages
French (fr)
Other versions
FR3078795B1 (en
Inventor
Geoffroy ROLLAT
Julien DUTTO
Kevin KWONG
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.)
Amadeus SAS
Original Assignee
Amadeus SAS
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 Amadeus SAS filed Critical Amadeus SAS
Priority to FR1851948A priority Critical patent/FR3078795B1/en
Priority to PCT/EP2019/055674 priority patent/WO2019170800A1/en
Priority to CN201980022974.0A priority patent/CN111919199A/en
Priority to EP19708123.5A priority patent/EP3762821A1/en
Publication of FR3078795A1 publication Critical patent/FR3078795A1/en
Application granted granted Critical
Publication of FR3078795B1 publication Critical patent/FR3078795B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24575Query processing with adaptation to user needs using context
    • 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/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles
    • 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/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Abstract

La présente révélation concerne des systèmes et des procédés pour la navigation d'application en utilisant des réseaux neuraux. Les systèmes et les procédés révélés peuvent effectuer des opérations incluant l'apport d'une application comprenant des états d'application qui œuvrent sur des objets de donnée pour générer des pages, déterminer un état d'application actuel et un objet de donnée actuel qui prédisent une prochaine page en utilisant un réseau neural prédicteur-d'état d'une application et un réseau neural prédicteur-d'objet de donnée, et l'apport d'instructions pour afficher une indication de la prochaine page prédite. La prédiction de la page suivante 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, un deuxième vecteur d'entrée et le prochain état d'application.The present disclosure relates to systems and methods for application navigation using neural networks. The disclosed systems and methods may perform operations including providing an application including application states that work on data objects to generate pages, determine a current application state, and a current data object that predict a next page using a predictor-state neural network of an application and a predictor neural network-data object, and the provision of instructions to display an indication of the next predicted page. The next page prediction may include predicting a next application state using the prediction-application state neural network and a first input vector, and predicting a next data object using the neural network. predictor-of data object, a second input vector and the next application state.

Description

SYSTÈMES DE RÉSEAUX NEURAUX ET PROCÉDÉS POUR LA NAVIGATION D’APPLICATIONNEURAL NETWORK SYSTEMS AND METHODS FOR APPLICATION NAVIGATION

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.TECHNICAL FIELD [001] This revelation relates generally to the use of neural networks for application navigation. In particular, this revelation concerns the use of multiple neural networks to predict the next page of an 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 entraîné 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 œuvre 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.BACKGROUND [002] It may be difficult to navigate in an unfamiliar application. A user looking to perform tasks may not know how to access the necessary interfaces of the application. An untrained user can perform a task in a way that increases the time, number of steps, or the probability of an error involved in implementing the task. Existing processes to guide users through an application may prove to be ineffective and incorrect. For example, training guides may reflect how developers think a user should interact with an application, which may differ from how skillful users actually interact with the application. And training guides can quickly become obsolete as the app is updated or the context in which the app is used changes.

[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 œuvrent sur des objets de donnée pour générer les pages qui[003] There is therefore a need for an application navigation system which can reflect the way in which users in fact interact with an application, and which can continue to provide correct recommendations when the application is updated or when the context, in which the application is used, changes. According to an application development mode, the applications (or the components of the applications) can be built from application states which work on data objects to generate the pages which

-2s’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 systèmes améliorés de navigation d’application qui surmontent les lacunes des approches existantes.-2 are displayed to a user. Application states can define the appearance and functionality of pages, while data objects can store actual data. As disclosed herein, systems and methods for application navigation can exploit this mode of application development to provide improved application navigation systems that overcome the shortcomings of existing approaches.

RÉSUMÉ [004] Les modes de réalisation de la présente révélation décrivent des systèmes et des 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.SUMMARY The embodiments of this disclosure describe systems and methods for application navigation using neural networks. These neural networks can be linked, and can be configured to predict a page of the application by predicting the state of the application and a data object, where the predicted data object could be managed by the state of the predicted application to generate the predicted page. Prediction may depend on a history of previously visited application pages.

[005] 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 l’au moins un processeur, les instructions peuvent amener le système à mettre en œuvre des opérations. Les opérations peuvent inclure l’apport d’une application comprenant des états d’application qui œuvrent sur des objets de données pour générer des 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, un deuxième vecteur d’entrée et le prochain état d’application. Les opérations peuvent inclureAn embodiment of the present disclosure may include at least one processor and at least one non-transient memory containing instructions. When executed by at least one processor, the instructions can cause the system to implement operations. Operations may include providing an application that includes application states that work on data objects to generate pages. Operations can also include predicting a new page using an application state predictor neural and a data object predictor neural network. Prediction may further include predicting a next application state using the application state predictor neural network and a first input vector, and predicting a next data object using the predictor neural network data object, a second input vector and the next application state. Operations may include

-3 également de fournir des instructions pour afficher une indication de la prochaine page prédite.-3 also to provide instructions for displaying an indication of the next predicted page.

[006] Dans certains modes de réalisation, une couche de sortie du réseau neural prédicteur d’état d’application peut inclure des nœuds de sortie correspondant aux états d’application.[006] In some embodiments, an output layer of the application state predictor neural network can include output nodes corresponding to the application states.

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 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 nœuds 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 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 d’entrée peut inclure un élément indiquant une valeur d’un objet de donnée réel.In various embodiments, predicting the next application state using the application state predictor-neural network and the first input vector may include hashing the first input vector. In some embodiments, common elements of the first input vector and the second input vector can be hashed once and be reused to predict the next data object. In various embodiments, the first input vector and the second input vector can be the same vector. In some embodiments, an output layer of the data object predictor neural network may include output nodes corresponding to the data objects. In various embodiments, the first input vector may include a history of the application. In some aspects, the history of the application includes elements indicating previous states of an application and previous data objects associated with the pages visited previously. In certain embodiments, the first input vector can include elements indicating at least one of an entity, a user associated with the entity, a role of the user, a level of authorization of the user, a day of the week, a date or a time. In various embodiments, the first input vector may include an element indicating a value of an actual data object.

[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 page actuelle, modifiée pour indiquer la prochaine page prédite. Dans certains modes deIn some embodiments, the operations can also include the generation of a current page according to a current application state using a real data object. In some embodiments, providing instructions for displaying the indication of the next predicted page may include providing instructions for displaying the current page, modified to indicate the next predicted page. In some modes of

-4ré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.Realization, the provision of instructions for displaying the indication of the next predicted page may include the provision of instructions for dynamically generating a current page in accordance with an actual application state using a real data object, the current page modified to indicate the next predicted page.

[008] 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 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 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 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.In some embodiments, providing instructions for displaying an indication of the next predicted page includes providing instructions for displaying indications of multiple predicted next pages including the next predicted page. In various aspects, the instructions for displaying the indications of the multiple predicted next pages may include the instructions for indicating the relative probabilities of the multiple predicted next pages. In some embodiments, providing instructions to display the indication of the next predicted page may include providing instructions to dynamically refresh a current page, to include a graphical element indicating the next page. predicted. In various embodiments, the graphical element is an inserted window including an icon which corresponds to the next predicted page. In some ways, the icon can be selectable to transition to the next page. In various embodiments, the provision of instructions for displaying the indication of the next predicted page may include the provision of instructions for dynamically updating a current page, by modifying an existing graphic element of the current page in order to indicate the next predicted page. In certain aspects, the modification of the existing graphic element of the current page includes at least one change among the positioning, the shape, the size, the color of the existing graphic element; or at least one change among the positioning, the font, the size, an accentuation or the color of text associated with the existing graphic element. In some embodiments, the application may be a single application page.

-5BRÈVE DESCRIPTION DES DESSINS [009] 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. Dans les dessins :BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings illustrate several embodiments and, together with the description, serve to explain the principles disclosed herein. In the drawings:

[0101 La Fig. 1 décrit un système pour la navigation d’application incluant un client et un serveur fournissant une application.FIG. 1 describes a system for application navigation including a client and a server providing an application.

[011] La Fig. 2A décrit à titre exemplaire une application schématique incluant des états d’application.[011] FIG. 2A describes, by way of example, a schematic application including application states.

[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.[012] FIG. 2B describes, by way of example, the illustrative schematic generation of a page by an application state of an application using a data object.

[013] Les Fig. 3A et 3B illustrent les trajectoires utilisateur exemplaires à travers les pages d’une application.[013] Figs. 3A and 3B illustrate exemplary user trajectories through the pages of an application.

[014] La Fig. 4 décrit un élément de prédiction configuré pour utiliser des réseaux neuraux liés afin de prédire une prochaine page d’une application.[014] FIG. 4 describes a prediction element configured to use linked neural networks to predict a next page of an application.

[015] La Fig. 5 décrit un vecteur d’entrée exemplaire.[015] FIG. 5 describes an exemplary input vector.

[016] La Fig. 6 décrit un flux séquentiel illustrant un procédé exemplaire 600 pour former un composant d’une prédiction.[016] FIG. 6 describes a sequential flow illustrating an exemplary method 600 for forming a component of a prediction.

[017] La Fig. 7 décrit un organigramme illustrant un procédé de navigation d’application en utilisant des réseaux neuraux.[017] FIG. 7 describes a flow diagram illustrating a method of application navigation using neural networks.

[018] Les Fig. 8 à 10 décrivent des interfaces utilisateur exemplaires pour une application de gestion de biens.[018] Figs. 8 to 10 describe exemplary user interfaces for an asset management application.

[019] 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.[019] FIG. 11 is a block diagram of an exemplary device with which the systems, methods and devices of the present invention can be implemented.

-6DESCRIPTION DÉTAILLÉE [020] 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 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 œuvre les modes de réalisation révélés. On 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.-6 DETAILED DESCRIPTION [020] Exemplary embodiments will now be discussed in detail with reference to the accompanying drawings. In some cases, the same reference numbers will be used in the drawings and in the following description to refer to the same or similar parts. Unless defined otherwise, technical and / or scientific terms have the meaning commonly understood by a person skilled in the art. The disclosed embodiments are described in sufficient detail to allow those skilled in the art to implement the disclosed embodiments. It will be understood that other embodiments can be used and that changes can be made without departing from the scope of the disclosed embodiments. Consequently, the supports, methods and examples are only illustrative and do not necessarily claim to be exhaustive.

[021] Un système informatique peut fournir une application à des utilisateurs. Cette 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 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 utilisateur d’accomplir des tâches par la lecture et/ou la saisie d’informations ou de[021] A computer system can provide an application to users. This app can include multiple pages. A page can be a user interface displayed to the user, including data and graphics. Graphic elements may include controls and indicators. As a non-exhaustive example, a page can be a web page. As a further example, a page can be a view (eg, a representation of information displayed to the user) according to a model-view-controller design mode or a similar software design mode (eg mode model-view-adapter design or model-view-model view mode). These pages can allow a user to read information or enter information or commands. Different pages can be used to read or enter different information or commands. The application can allow a user to perform tasks by reading and / or entering information or

-7commandes 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 saisir des données ou des commandes basées sur les informations récupérées en utilisant la deuxième page.- 7 commands using the pages. In some cases, accomplishing a task may require interaction with multiple pages of the application. As a non-exhaustive example, a user can retrieve information from a database using a first page, interact with the application to generate a second page, and then enter data or commands based on the information retrieved using the second page.

[022] 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 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. À 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.[022] Users may find it difficult to accomplish a task using such an application. A user may not be familiar with the application and / or the task at hand. As a result, they may not know how to navigate the application to the correct pages to complete the task. Alternatively or in addition, there may be a preferred way of performing the task, which reduces the time, the number of steps, or the probability of error. This preferred way may include visiting a particular set of pages in a particular order. A user unfamiliar with the application and / or the task may not know this preferred way of performing the task. Instead, the user can use another way of performing the task that takes longer, requires more steps, or has an increased likelihood of error.

[023] 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 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 contrôles peut amener l’application à faire une transition vers une page recommandée. À titreThe methods and systems envisaged can provide recommendations for using an application. For example, the methods and systems envisioned may infer the task that a user is trying to perform and recommend a next page to perform this task. This next page can be a page in a preferred way of executing the task. In certain aspects, the methods and systems envisaged can provide a recommendation by modifying a page of the application currently displayed. For example, the page currently displayed can be modified to include an additional window. This additional window can include one or more controls. Interaction with these controls may cause the application to transition to a recommended page. As

-8d’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 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.-8further example, if the interaction with an element of the currently displayed page causes the application to display the recommended page, then this element can be modified (e.g. by changing the placement, shape, size or the color of the item; or by changing the placement, font, size, accent, or color of text associated with the particular item). This change can draw the user's attention to the item, acting as a recommendation. In this way, the methods and systems envisaged can recommend actions making a transition from the currently displayed page to the recommended page.

[024] Les réseaux neuraux artificiels peuvent servir à générer la recommandation. Dans 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 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.[024] Artificial neural networks can be used to generate the recommendation. In some embodiments, the methods and systems contemplated may divide the overall prediction process into several subsidiary steps, each performed by a neural network in a chain of linked neural networks. As a non-exhaustive example, the recommendation process can be divided into two stages. In a first step, a first neural network can recommend a state based on the first data entry. In a second step, a second neural network can recommend a data object based on the recommended state and the second data entry. These artificial neural networks can be trained using real data from the application. In certain embodiments, the first and second data entries can be the same data entry.

[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 développeurs de l’application. En revanche, les manuels, les assistants, les didacticiels etThe methods and systems envisaged are improved on the basis of the manuals, assistants, tutorials and other existing recommendation systems. For example, the processes and systems being considered may provide updated recommendations that follow changes in usage patterns or changes to the application. In addition, the recommendations are not limited to situations anticipated by the developers of the application. In contrast, textbooks, assistants, tutorials, and

-9autres 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.- 9 other existing recommendation systems are made obsolete by changing usage patterns and application updates, and are limited to situations anticipated by developers.

[026] Ces améliorations sont permises, au moins en partie, par l’architecture spécifique 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.[026] These improvements are enabled, at least in part, by the specific architecture disclosed here. The universe of the potential pages of an application can be extremely important, limiting the applicability of conventional neural networks. But the systems and methods envisaged use linked neural networks to divide the global prediction problem into smaller sub-problems. This allows for precise recommendations using artificial neural networks trained with actual usage data.

[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 (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 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.[027] FIG. 1 illustrates a system 100 for application navigation, comprising a client and a server providing an application over a network, compatible with the embodiments disclosed. Client 101 can be a user's computing device (eg, portable device, mobile device, laptop, landline, workstation, terminal, etc.) Client 101 can be configured to run a web browser (eg CHROME®, OPERA®, MOZILLA®, INTERNET EXPLORER®, SAFARI®, EDGE®, etc.) Server 103 can be a computer device configured to respond to requests from client 101. The network can be any type of network (including infrastructure) which provides communications, information exchange, and / or facilitates the exchange of information, such as the Internet, a Local Area Network or others appropriate connections. The client 101 can be configured to request a page from the server 103 in step 105. In response, the server 103 can be configured to provide one or more files describing the layout and content of the page in step 107. client 101 can then generate this page.

[028] Le client 101 ou le serveur 103 peut générer des mises à jour de la page basée sur les informations échangées lors des étapes 109 et 11L Dans certains modes de réalisation, leThe client 101 or the server 103 can generate updates of the page based on the information exchanged during steps 109 and 11L. In certain embodiments, the

-10client 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 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 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 à jour dynamiquement la page en utilisant les instructions et les données reçues.-10client 101 can contact the server 103 to request a new page in step 109. For example, a web browser running on the client 101 can send a POST request to the server 103. The server 103 can be configured to responding to this POST request, in certain embodiments, by generating a new page and by sending this new page to the client 101 in step 111. The client 101 can then load this new page. In various embodiments, the client 101 can dynamically update the page without loading a new page from the server 103 (eg, the application can be a single page application). In such embodiments, the application can be implemented using a JavaScript® web browser structure such as ANGULARJS®, EMBER.JS®, METEOR.JS®, EXTJS®, REACT® or similar structures known to man. business. The web browser running on client 101 can request the data and / or instructions in step 109 (eg using an AJAX® call). The server 103 can be configured to respond with data and instructions (eg, as JSON® objects) in step 111. The client 101 can then dynamically update the page using the instructions and data received.

[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 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 de l’application peuvent faire l’application (ou un ou plusieurs composants de l’application).[029] FIG. 2A illustrates an exemplary diagram of a request including the states of the application (eg state 201 - state 215), compatible with the embodiments disclosed. As noted, the application states can be linked, so that a user can transition from one application state to another. For example, a user can start the application 120 in the application state 201, make a transition from the application state 203 (e.g. by interacting with a graphic element in a page generated by the state 201), transition from application state 205 (eg, through another interaction), then return to application state 201. In this way, the states of the linked application can form one or more graphics. In certain aspects, the states of the application can make the application (or one or more components of the application).

- 11 [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 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, 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 stuff » 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 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.- 11 [030] FIG. 2B describes an exemplary diagram illustrating the generation of page 235 by the state of the application 233 of the application 120 using the data object 231. In certain embodiments, the states of the application can define the appearance and functionality of the pages. For example, an application state can define one or more page templates, including markup language and script commands. In some aspects, each application state can have a unique identifier. This identifier can be a text string (eg "application / directory / dostuff" or "dostuff_state") or a numeric value. An application state (eg, application state 233) can take a data object (eg, data object 231) as an input. In various aspects, the data object can be chosen from a given set of data objects. Each data object can have a unique identifier. This identifier can be a text string (eg "re: do stuff" or "root / dir / identifier") or a numeric value. The application state can work on the data object selected to generate the page. As a non-exhaustive example, an application state defining a page template can be configured to apply the data object to the page template, by executing script commands using one or more values of the data object and presenting the results according to the markup language.

[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 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 de donnée. Et le client 101 peut être configuré pour afficher la page 503 lorsque le premier[031] Figs. 3A and 3B illustrate the exemplary user trajectories through the pages of the application 120, compatible with the embodiments revealed. As previously revealed, client 101 can be configured to generate these pages using application states and data objects. For example, client 101 can be configured to display page 501 when a first application application state 120 operates on a first data object. In this example, client 101 can be configured to display page 505 when a second application application state 120 operates on the first data object. And client 101 can be configured to display page 503 when the first

-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.-12 application application state 120 operates on a second data object. Since pages can depend on both the application state and the data object, the application state graph and the page graph may differ.

[032] Les utilisateurs peuvent effectuer des transitions entre les pages lorsqu’ils 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 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 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.[032] Users can make transitions between pages when they interact with the 120 application. For example, as shown in Figs. 3A and 3B, a user can transition from page 301 to page 303, or to page 305. The pages can include one or more graphical elements allowing the user to transition to another page. For example, a page may include a drop-down menu, address labels, an address bar, or other appropriate controls known to those of skill in the art. Since users performing different tasks may interact differently with the application 120, the system 100 may use transitions between pages to predict the next page for a user. For example, as shown in Fig. 3A, when the page 303 is the active page and the page 301 the previous page, the system 100 can estimate that the next page should be the page 307. On the other hand, as indicated in FIG. 3B, page 303 is the active page and page 305 the previous page, the system 100 can estimate that the next page should be page 309.

[033] 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 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 états basés sur le ou plusieurs prochains états d’application et un deuxième vecteur d’entrée.[033] FIG. 4 illustrates a prediction component 400 configured to use the linked neural networks to predict a next page of an application, compatible with the embodiments revealed. In some aspects, a prediction component 400 can be configured to divide the prediction of the next page into two sub-problems. The prediction component 400 can be configured to use the state predictor 420 to predict one or more future application states based on a first input vector. The prediction component 400 can be configured to use the data predictor 430 to predict one or more next data objects operated by the one or more next states based on the one or more next application states and a second input vector.

- 13Dans 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 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.- 13 In some embodiments, the first and second input vector can be the same (eg, input vector 410, as shown in Figure 4). The system 100 can be configured to predict the page based on the predicted application state and the predicted data. In some embodiments, the prediction component 400 can be configured to generate multiple page predictions. For example, the prediction component 400 can be configured to generate a page prediction for each predicted data object and application state.

[034] Dans certains modes de réalisation, le composant de prédiction 400 peut être ün composant du système 100. Par exemple, le système 100 peut être configuré pour 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 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, les données et la page.[034] In certain embodiments, the prediction component 400 can be a component of the system 100. For example, the system 100 can be configured to implement the application 120 and the prediction component 400. As a further example, the component 400 can be an application component 120. In various embodiments, the client 101 and / or the server 103 can be configured to implement the prediction component 400. In certain aspects, the client 101 can be configured to predict the state of the application and / or data object. In various aspects, the server 103 can be configured to predict the state of the application and / or the data object. In some aspects, the client 101 and the server 103 can interact to predict one or more application states or the data object. For example, the client 101 can provide at least part of the first entry or the second entry to the server 103. The client 101 can then receive from the server 103 one or more states of the predicted application, the data and the 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.The input vector 410, described in more detail below, can include several elements, compatible with the embodiments revealed. These elements are not limited to a particular data type, but may include, without limitation, objects, arrays, strings, characters, floating point numbers, or other data types.

- 14[036] 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 nœuds de la couche d’entrée. Dans certains modes de réalisation, la couche d’entrée peut inclure entre 5 et 100 nœuds, ou entre 20 et 50 nœuds. 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 nœuds. Selon des procédés connus des hommes de métier, les nœuds 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 nœuds dans une couche précédente. La couche de sortie peut inclure des nœuds correspondant à au moins une partie des états d’application 120. Les nœuds dans la couche de sortie peuvent avoir des scores de probabilité qui indiquent si l’état d’application correspondant au nœud 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 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.[036] The state predictor 420 can include a neural network which generates the state output 423 from the input vector 410. The neural network can include an input layer, one or more hidden layers and an output layer. The elements of the input vector 410 can correspond to the nodes of the input layer. In some embodiments, the input layer may include between 5 and 100 knots, or between 20 and 50 knots. In various embodiments, the neural network can include a single hidden layer. The hidden layer (s) can include between 5 and 50 knots. According to methods known to those skilled in the art, the nodes in each of the one or more hidden layers and the output layer may have values dependent on the weights and values of the nodes in a previous layer. The output layer may include nodes corresponding to at least some of the application states 120. The nodes in the output layer may have probability scores which indicate whether the application state corresponding to the node is the state next application. In some respects, probability scores can indicate a probability that the corresponding state is the next state of application. In various aspects, the highest score can correspond to the most probable state, the next highest score can correspond to the next most probable state, etc.

[037] L’ extracteur des caractéristiques d’état 421 peut convertir le vecteur d’entrée 410 en une valeur pour chacun des nœuds 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 ê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 nœud correspondant dans la couche d’entrée. Par exemple, lorsque l’élément est une URL (p. ex. « StateA/StateC/StateE ») alors le hachage de l’URL (p. ex. 8858d721629ce6f9c8ff608ce5cff8dl pour MD4) peut être attribué au nœud correspondant dans la couche d’entrée. Dans certains modes de réalisation, le hachage d’un élément peut[037] The state feature extractor 421 can convert the input vector 410 to a value for each of the nodes in the input layer, compatible with the disclosed embodiments. In various aspects, the state characteristic extractor 421 can be configured to calculate a hash on the value of each element in the input vector. The state feature extractor 421 can assign the hash value for the corresponding node in the input layer. For example, when the element is a URL (eg "StateA / StateC / StateE") then the hash of the URL (eg 8858d721629ce6f9c8ff608ce5cff8dl for MD4) can be assigned to the corresponding node in the layer of Entrance. In some embodiments, hashing an element can

- 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 nœud peut 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).- 15 be calculated on the raw binary values of the element. In some aspects, only part of this hash (eg, a subset of the hash bits) can be assigned. The hash function may be the Fowler-Noll-Vo hash function, or another hash function known to those skilled in the art. Assigning the hash value to the node can include converting the hash value to a floating point number with a predetermined number of bits. This floating point number can be normalized within a predetermined range (eg, 0 to 1).

[038] 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 ê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. IB, 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 sortie d’état 423 peut inclure le ou les identifiants pour le ou plusieurs états d’applications prédits.[038] State output 423 can be configured to select one or more predicted application states. In some embodiments, the selected application state can be one or more of the most predicted application states. For example, state output 423 can select a predetermined number of the most predicted application states. As indicated above with regard to FIG. IB, an application state can have an identifier, such as a text string (eg "StateA.StateC.StateE" or "StateA / StateC / StateE") or a numeric value. In some embodiments, the state output 423 may include the identifier (s) for the one or more predicted application states.

[039] 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 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 nœuds, ou entre 20 et 50 nœuds. 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 nœuds. Le réseau neural peut générer la sortie de donnée 433 en utilisant un ou plusieurs éléments de sortie d’état 423 et un vecteur d’entrée. Le vecteur d’entrée peut être le vecteur d’entrée 410 (tel[039] The data predictor 430 can generate one or more predicted data objects for each predicted state received from the state predictor 420. The data predictor 430 can include a neural network that generates the data output 433. The neural network may include an entry layer, one or more hidden layers, and an exit layer. In some embodiments, the input layer may include between 5 and 100 knots, or between 20 and 50 knots. In various embodiments, the neural network can include a single hidden layer. The hidden layer (s) can include between 5 and 50 knots. The neural network can generate data output 433 using one or more state output elements 423 and an input vector. The input vector can be the input vector 410 (such

-16qu’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 nœuds de la couche d’entrée du réseau neural. Selon des procédés connus des hommes de métier, les nœuds 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 nœuds dans une couche précédente. [040] 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 nœud correspondant à chaque objet dans l’ensemble 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 nœud 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 donnée le plus probable, le plus grand score suivant peut correspondre à l’objet de donnée suivant le plus probable, etc.-16 as shown) or another vector (eg a vector that differs from the input vector 410 of one or more elements). The elements of the input vector can correspond to the nodes of the input layer of the neural network. According to methods known to those skilled in the art, the nodes in each of the one or more hidden layers and the output layer may have values dependent on the weights and values of the nodes in a previous layer. [040] As indicated above with regard to FIG. 2B, application 120 can be configured to select data objects (eg, data object 231) from a set of data objects. In some embodiments, the output layer of the data predictor 430 may include a node corresponding to each object in the set of data objects. The nodes in the output layer of the predictor 430 can have probability scores that indicate whether the data object corresponding to the node is the next data object. In some respects, probability scores can indicate a probability that the corresponding data object is the next data object in the application. In various aspects, the highest score may correspond to the most likely data object, the next highest score may correspond to the next most likely data object, etc.

[041] 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 nœuds dans la couche d’entrée, compatible avec les modes de réalisation révélés. Sous certains aspects, la couche d’entrée du prédicteur de données 430 comprend des nœuds 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 nœud correspondant dans la couche d’entrée. Dans certains modes de réalisation, le hachage d’un élément peut être calculé sur les valeurs[041] The object data characteristic extractor 431 can convert the input and output vector of a state or several states of the state predictor 420 to a value for each of the nodes in the layer of input, compatible with the disclosed embodiments. In some aspects, the input layer of the data predictor 430 includes input nodes corresponding to the output of one state or more states of the state predictor 420 and the elements of the input vector 410. In various aspects, the data object feature extractor 431 can be configured to calculate a hash on the value of each element and assign the value of the hash to the corresponding node in the input layer. In some embodiments, the hash of an element can be calculated on the values

- 17binaires 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 nœud peut 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).- 17 raw binaries of the element. In some aspects, only part of this hash (eg, a subset of hash bits) can be assigned. In some aspects, the hash function can be the Fowler-Noll-Vo hash function. Assigning the hash value to the node can include converting the hash value to a floating point number with a predetermined number of bits. This floating point number can be normalized within a predetermined range (eg, 0 to 1).

[042] 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 communs une fois, et ensuite attribuer les valeurs obtenues aux nœuds 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 entrées pour le prédicteur de donnée 430.[042] In certain embodiments, when the input vector for the state predictor 420 shares common elements with the input vector for the data predictor 430, the prediction component 400 can be configured to hash these common elements once, and then assign the values obtained to the corresponding nodes in the input layers of both the state predictor 420 and the data predictor 430. For example, when the input vector for the data predictor 430 is equal to the input vector 410, the prediction component 400 can be configured to hash the input vector 410 once, and to reuse the hashed values of the input vector 410 as inputs for the data predictor 430.

[043] 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 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.[043] Data output 433 can select one or more predicted data objects. In some embodiments, the selected data objects may be the most likely predicted data object or multiple predicted data objects. For example, data output 433 can select a predetermined number of the most likely predicted data objects. In some embodiments, the data object may have an identifier, such as a text identification string (eg, "2 Seaport Lane") or a numeric identification value. In some embodiments, the data output 433 can include the identifier (s) for one or more predicted states.

[044] La page 440 prédite peut indiquer la page prédite basée sur le vecteur d’entrée 410 (et, dans certains modes de réalisation, basée en complément sur une deuxième entrée de[044] The predicted page 440 can indicate the predicted page based on the entry vector 410 (and, in certain embodiments, based in addition on a second entry of

- 18vecteur 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 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 ê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 que l’interaction avec cet élément amènerait l’application 120 à faire une transition vers la page prédite.- 18 vector which differs from the data predictor 430, as described above). In some embodiments, the predicted page 440 may include one or more state pairs and data object pairs. For example, predicted page 440 may include the most likely application state and the most likely data object. As described above, when the state predictor 420 exits multiple state objects, the predicted page 440 may include a data-state pair for each of the state objects and the most likely data object for this state object. Likewise, when the data predictor 430 exits multiple state objects, the predicted page 440 may include a data-state pair for each of the state objects and for each of the data objects for that state object. In some embodiments, the predicted page 440 may be based on one or more pairs of application states and data objects. For example, the predicted page 440 may include data or instructions for creating, or dynamically updating, the page 235 to indicate the predicted page. For example, instructions or data can configure the application 120 to display a link on page 235 to the predicted page, or modify a graphic element on page 235 to indicate that interaction with this element would bring the application 120 to transition to the predicted page.

[0451 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 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.FIG. 5 illustrates an exemplary input vector 410, compatible with the embodiments revealed. As shown in Fig. 5, the input vector 410 can include the current data values 510, the application context 520 and the application history 530. As indicated above, the system 100 can be configured to predict one or more pages following by applying the input vector 410 to the input predictor 420 and by applying the input vector 410 (or an input vector which differs in some embodiments) to the data predictor 430.

[046] Les valeurs des données actuelles 510 peuvent inclure un ou plusieurs éléments avec des valeurs basées sur un objet de donnée actuel. Par exemple, l’application peut être dans un[046] Current data values 510 may include one or more elements with values based on a current data object. For example, the application can be in a

- 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 paramètre d’émetteur, un paramètre de destinataire et un paramètre de contenu, chacun prenant une valeur.- 19current state. In this current state, the application can be managed under a current data object. In some respects, one or more values can be associated with this current data object. For example, this current data object can have one or more parameters. These parameters can take values. For example, an email subject can include a sender setting, a recipient setting, and a content setting, each of which takes a value.

[047] 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 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 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 indiquant au moins un des jours de la semaine, la date ou l’heure de l’interaction.[047] The application context 520 can include one or more elements indicating a context in which the user interacts with the application 120. In certain embodiments, the application context 520 can also specify who uses the application 120. For example, when server 103 provides application 120 to multiple different entities (eg, different companies or individuals), the user can be associated with that entity (eg, the user can be a employee of the entity). The application context 520 can then include one or more elements indicating the entity associated with the user. In some aspects, the application context 520 may include one or more elements indicating at least one of the user associated with the entity (e.g. a user name), a role of the user ( eg "Associate," "Intern," etc.), or user authorization (eg, "User," "Admin," "Root," etc.) In some embodiments, the application context 520 can also specify when the user interacts with application 120. For example, application context 520 can then include one or more elements indicating at least one of the days of the week, the date or the time of interaction.

[048] 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 prédéterminé peut varier entre 1 et 20, ou entre 5 et 15. L’historique d’application 530 peut[048] The application history 530 can indicate the trajectory of the user through the application 120. In certain embodiments, the application history 530 can indicate the pages most recently visited by the user. . The 530 application history can be limited to a predetermined number of most recently visited pages. This predetermined number can vary between 1 and 20, or between 5 and 15. The 530 application history can

-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 t- be structured as a queue, with the indication of the most recently visited page in the initial position and the indication of the least recently visited page in the last position. When a new page is visited, the least visited page recently left the t

dernière position et une indication de la nouvelle page est poussée vers la position initiale. 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.last position and an indication of the new page is pushed to the initial position. In some embodiments, elements of the 530 application history can be initialized to default values (eg, a value of zero or "null"). When the user interacts with the application 120, these default values are gradually replaced. In this way, the application history 530 can document the user's path through the application 120.

[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 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 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 unique ou une valeur basée sur l’identifiant unique.[049] In some embodiments, the application history 530 can indicate each page with a pair of elements: an element indicating an application state (eg the status indication 531) and a element indicating a data object under which it is managed by the application state to generate the page (eg the data object indication 533). In some aspects, an application state may not work under a data object to generate a page (eg a menu or an initial application start screen may not take a data object). In these aspects, a default value (eg, a value of zero or "null") to be assigned to the data object indication 533 to indicate that the application state has not taken a data object. As previously described, the application 120 can be configured to assign unique identifiers to reports and data objects. These identifiers can be text strings or numeric values. An item in application history 530 indicating a state (eg, state indication 531) may include such a unique identifier, or a value based on the unique identifier. Likewise, an item in application history 530 indicating a data object (eg, data object indication 521) may include such a unique identifier or a value based on the unique identifier.

-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 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.[050] FIG. 6 describes a flow diagram illustrating an exemplary method 600 for forming a prediction component 400, compatible with the embodiments revealed. In some embodiments, the method 600 may include the steps of receiving training data, forming a state predictor, forming a data object predictor, and providing the prediction model for the application 120. As one skilled in the art would recognize, this particular sequence of steps is not intended to be restrictive. The steps of method 600 can be combined or divided, and the method 600 can include additional steps or fewer steps, without departing from the embodiments envisaged.

[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. 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.[051] After starting in step 601, the training system can be configured to receive training data in step 603. In some embodiments, the training data can include both information for predicting the next page and information to identify the actual next page. For example, training data can include data entry in state predictor 420 (e.g., content of input vector 410), input data in data predictor 430 (if differ from the content of the input vector 410), an identifier for the next real state, and an identifier for the next real data object.

[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 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. Sous des aspects variés, le système de formation peut recevoir indirectement les données de[052] In some embodiments, the training system can be configured to receive training data from a system that provides the application 120 to users. For example, the system 100 can be configured to store and / or constitute a record of the interactions of the user with the application 120 in the training system. For example, the client 101 and / or the server 103 can be configured to provide such registration. In some aspects, the training system can receive training data directly from the system that provides the application 120 to users. In various aspects, the training system can indirectly receive data from

-22formation. 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 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.-22formation. For example, the training system can receive training data from a database. This database can in turn receive training data from the system that provides the application 120 to users. In certain aspects, the training system can receive the training data, this training data being generated. In various aspects, the training system can receive training data repeatedly or periodically.

[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 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 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 nœuds 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 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 peuvent inclure un critère d’erreur quadratique moyen basé sur une comparaison de l’état[053] After step 603, the training system can be configured to form a state predictor in step 605. In some embodiments, the training system can be configured to use the training data to generate predicted states. In some aspects, the training system can be configured to generate input vectors and apply these input vectors to a state predictor neural network (eg, state indicator 420). The state predictor neural network can be configured to generate application state predictions based on training data. The training system can be configured to compare these application state predictions to the actual application states chosen by the user to generate an error signal. According to methods known to those skilled in the art, the training system can use this error signal to update the weights of the nodes of one or more hidden layers and the output layer. According to methods known to those skilled in the art, the training system can be configured to generate application state predictions from the training data, to generate error signals using the state states. predicted and actual application, and to update the weights until one or more training criteria are met. In some aspects, the training criteria may include a precision criterion based on (i) the number of times the predicted state corresponds to the actual state and (ii) the number of entries in the training data. In various aspects, the training criteria can include a criterion of mean square error based on a comparison of the state

-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.-23 predicted and current state, weighted by the number of application states and the number of observations in training data.

[054] 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 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 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.[054] After step 603, the training system can be configured to form a data object predictor in step 607. In some embodiments, the training system can be configured to form a data predictor state in step 605 and then forming a data object predictor in step 607. In various embodiments, the training system may alternate between forming a state predictor and forming a data predictor. For example, the training system may receive a batch of training data, train the state predictor using the batch of training data, and then train the data object predictor using the output of the training prediction. status and batch of training data. The training system can then repeat this training process with the next batch of training data.

[055] 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 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 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 nœuds 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, pour générer des signaux d’erreur en utilisant les objets de données réels, et pour mettre à[055] In some embodiments, the training system can be configured using the training data to generate the predicted data objects. In some aspects, the training system can be configured to generate the input vectors and apply these input vectors to a neural data predictor network (eg, status indicator 430). The neural data predictor network can be configured to generate predictions of data objects based on training data. The training system can be configured to compare these predicted data objects to the actual data objects chosen by the user to generate an error signal. According to methods known to those skilled in the art, the training system can use this error signal to update the weights of the nodes of one or more hidden layers and the output layer. According to methods known to those skilled in the art, the training system can be configured to generate predictions of data objects from the training data, to generate error signals using the actual data objects, and to set at

-24jour 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 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. [056] 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. 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 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.-24 days the weights until one or more training criteria are met. In some aspects, the training criteria may include a precision criterion based on (i) the number of times the data object corresponds to the actual state and (ii) the number of entries in the training data. In some aspects, the training criteria may include a mean square error criterion based on a comparison of the predicted data object with the actual data object, weighted by the number of data objects in the predetermined set data objects and the number of observations in training data. [056] After step 605 and step 607, the training system can be configured to provide the state predictor and the data object predictor to the system 100 in step 609. For example, the system can provide the state predictor and the data object predictor to the client 101 and / or the server 103. In some embodiments, the training system can provide the state predictor and the object predictor data to system 100 as objects (eg data structures). In various embodiments, the training system can be configured to supply the weights for the state predictor and the data object predictor to the system 100. In various embodiments, the training system can be configured to provide updates to an existing state predictor and the system object data object predictor 100.

[057] 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 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 peut prendre fin à l’étape 611.[057] In certain embodiments, the training system and the system 100 can be executed on the same computer devices. For example, both the system 100 and the training system can be run on the server 103. In various embodiments, the system 100 can be used for training. For example, the system 100 can be configured to operate in a training mode, relying on user input for training data, and then enter prediction mode when the training criteria are met. After step 609, method 600 can end in step 611.

-25[058] 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 à 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.-25 [058] FIG. 7 describes a flow diagram illustrating a method of application navigation 700 using neural networks, compatible with the embodiments revealed. According to method 700, the prediction component 400 can receive an input vector, predict a next state, predict a next data object, and indicate a next page to the user. As one skilled in the art would recognize, this particular sequence of steps is not intended to be restrictive. The steps of method 700 can be combined or divided, and method 700 can include additional steps or fewer steps, without departing from the embodiments envisaged.

[059] Après avoir démarré dans l’étape 701, le composant de prédiction 400 peut être 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 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 base de données.[059] After starting in step 701, the prediction component 400 can be configured to receive an input vector in step 703. In certain aspects, the prediction component 400 can be configured to receive the elements of the input vector directly or indirectly from the application 120. For example, in certain embodiments the prediction component 400 can be integrated into the application 120, and can create the input vector from the values stored by l application 120. As a further example, system 100 can be configured to implement prediction component 400 and application 120 as separate applications. The application 120 can then supply values for the elements of the input vector directly to the prediction component 400, or can supply these values to a memory or a database. The prediction component 400 can then retrieve these values from the memory or from the database.

[060] 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 indiqué ci-dessus, le contexte d’application 520 peut inclure un ou plusieurs éléments[060] As revealed above in FIG. 5, in some embodiments the input vector may include the current data values 510, the application context 520 and the application history 530. Receiving the input vector may include receiving context information application by the user. For example, as noted above, the 520 application context can include one or more elements

-26indiquant 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 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é.-26 indicating who is using the application 120 (e.g. the entity associated with the user, a user name, a user role or a job title, or a user authorization or job responsibility ) or when the user interacts with the 120 application (e.g. at least one day of the week, the date or time of the interaction). The prediction component 400 can be configured to receive this information once (eg when the user logs into the application 120) and reuse this information to generate the input vector as necessary.

[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 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 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 nœuds 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 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 nœud de la couche de sortie avec la plus grande valeur de probabilité. À titre d’exemple supplémentaire, la sortie d’état 423 peut être configurée pour sélectionner[061] After step 703, the prediction component 400 can be configured to predict at least one next state of application in step 705. As indicated above with regard to FIG. 4, the prediction component 400 can be configured to convert the values of the input vector into numbers using the state characteristics extractor 421. In some embodiments, the prediction component 400 can perform this conversion using a hash function. For example, the prediction component 400 can be configured to generate a hash of the raw binary values of each element of the input vector. The hash function may be the Fowler-Noll-Vo hash function, or another hash function known in the art. The hash values can be applied to the input nodes of the state predictor 420. The prediction component 400 can propagate these hash values by advancing them to the masked layer (s) and the output layer to generate probability scores . These probability scores may depend on the hashed input values and the weights of the state predictor 420 (which can be determined according to the method 600). State output 423 can be configured to select one or more of the most likely predicted application states. For example, state output 423 can be configured to select as the predicted application state the state application corresponding to the node of the output layer with the highest probability value. As an additional example, state output 423 can be configured to select

-27les états d’application correspondant à un nombre prédéterminé de nœuds de la couche de sortie avec les plus grandes valeurs de probabilité.-27the application states corresponding to a predetermined number of nodes of the output layer with the largest probability values.

[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, 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 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 connue dans le métier. Les valeurs hachées peuvent être appliquées aux nœuds 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 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 nœud 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[062] After step 705, the prediction component 400 can be configured to predict at least one next data object in step 707. In certain embodiments, for each state selected by state output 423, the prediction component 400 can be configured to generate one or more of the data objects. As indicated above with regard to FIG. 4, the prediction component 400 can be configured to convert the identifiers of one or more application states selected by the state output 423 and the values of the input vector into numbers using the feature extractor 431 data object. In some embodiments, the feature extractor for data object 431 can use a hash function to perform this conversion. For example, the prediction component 400 can be configured to generate a hash of the raw binary values of each element of the input vector. The hash function may be the Fowler-Noll-Vo hash function, or another hash function known in the art. The hashed values can be applied to the input nodes of the data predictor 430. The system 100 can propagate these hashed values by forwarding them to the hidden layer (s) and the output layer to generate probability scores. These probability scores may depend on the hashed input values and the weights of the data predictor 430 (which can be determined by method 600). Data output 433 can be configured to select one or more of the most likely predicted application states. For example, data output 433 can be configured to select as the predicted data object the data object corresponding to the node of the output layer with the highest probability value. As an additional example, data output 433 can be configured to select the states

-28d’application correspondant à un nombre prédéterminé de nœuds de la couche de sortie avec les plus grandes valeurs de probabilité.-28 of application corresponding to a predetermined number of nodes of the output layer with the largest probability values.

[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 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 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 couleur de 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 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.[063] After step 707, the prediction component 400 can be configured to predict at least one next page to the user in step 709. This indication can depend on the one or more predicted pairs of states of application and data objects. For example, the prediction component 400 may provide data or instructions to indicate the predicted page (s). For example, the instructions or data can configure the application 120 to display one or more links to the predicted pages, or modify one or more graphic elements of an existing page to indicate that interacting with the one or more elements would bring the application 120 to transition to the predicted page (s) (eg highlight, underline, animate, change element color, etc.). As an additional example, data or instructions can configure the application 120 to display explicit instructions indicating the next page. These instructions can be displayed on an inserted page, or on a separate page. In some aspects, the data or instructions can be provided to the client 101, which can use them to dynamically update an existing page. In various aspects, the data or the instructions can be supplied to the server 103, which can use them to create a new page to be supplied to the client 101. After step 709, the method 700 can end in step 711.

[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 d’utilisation incluant les informations d’état d’application et les informations d’objet de[064] The previous revelation describes the embodiments of a system for application navigation using neural networks. Such a system can generally be used with supplied applications as described in FIG. 1. In addition, such a system can be used for navigation in an application supplied by the client 101. For example, an application supplied by the client 101 can be configured to report any usage information including the status information. application and object information of

-29donné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 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.Given to the server 103. In this non-exhaustive example the application cannot obtain the data objects (or the information contained in the data objects) from the server 103. According to the usage information obtained from several users , the server 103 can be configured to generate a state predictor and a data object predictor. The server 103 can be configured to provide this application state predictor and the data object predictor to a prediction component of the application running on the client 101.

[065] Application exemplaire : Application de gestion de biens [066] 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 l’applicabilité des modes de réalisation envisagés dans le métier et ne vise pas à être limitative.[065] Exemplary application: Asset management application [066] The processes and systems envisaged can provide recommendations to users of an asset management application. This exemplary application illustrates the applicability of the embodiments envisaged in the art and is not intended to be limiting.

[067] 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 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 é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 tarification de l’inventaire, les politiques, les promotions, les classes de réservation et autres[067] According to FIG. 1, a server can be configured to provide the asset management application to customers. Users can interact with the app through clients. According to FIG. 2A, the asset management application states can be linked, so that a user can transition from one state to another. According to FIG. 2B, the asset management application can include the application states that define the appearance and functionality of the pages of the asset management application. These application states can be defined using templates including markup language and script commands. For example, the application can include the application states defined using ANGULAR UI®, RESPOND®, or a similar JavaScript® structure. According to FIG. 2B, the asset management application can operate on data objects representing properties. These data management objects may include fields describing the characteristics of the goods, such as ownership, brand, name of the goods, location of the goods, inventory of the goods, pricing of the inventory, policies , promotions, booking classes and more

-30caracté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 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é.-30 characteristics of goods known to those skilled in the art. In accordance with the disclosed embodiments, an application state can be executed on a data object representing a policy aimed at generating a page. As previously revealed, users can interact with one or more pages to perform tasks. In this example, a task could include modifying the inventory available within an asset. The user could select a property using a first page, access a second page allowing the user to add the inventory to this property, and then go to a third page allowing the user to modify the categories of pricing and reservation for this newly added inventory.

[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.[068] In accordance with Figs. 3A and 3B, the asset management system can be configured to display pages, and the probability that a user will transition from one page to another may depend on the user's prior trajectory by the through the asset management application.

[069] Conformément à la Fig. 4, dans certains modes de réalisation, l’application de 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®.[069] According to FIG. 4, in some embodiments, the asset management application may include a predictor 400 configured to use neural networks to predict the next page with which the user is to interact. This prediction element can include an input vector 410, a state predictor 420, a data predictor 430 and a page prediction. As a non-exhaustive example, neural networks can be implemented using JAVA®.

[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 :[070] In accordance with FIG. 5, in some embodiments, the input vector may include the current data values 510, the application context 520 and the application history 530. In some aspects, the values of the current data 510 may include the values of the current data object, as illustrated in the following exemplary pseudo-code:

[0711 vecteur d’entrée <= get(propertyCode) ;[0711 input vector <= get (propertyCode);

-31 [072] vecteur d’entrée <= get(propertyDetails.extemalInventory) ;-31 [072] input vector <= get (propertyDetails.extemalInventory);

[073] vecteur d’entrée <- get(propertyDetails.interfacedAvalon) ;[073] input vector <- get (propertyDetails.interfacedAvalon);

[074] vecteur d’entrée <= get(propertyDetails.interfacedRms);[074] input vector <= get (propertyDetails.interfacedRms);

[075] vecteur d’entrée <= get(propertyDetails.overrideSellStrategy);[075] input vector <= get (propertyDetails.overrideSellStrategy);

[076] vecteur d’entrée <= get(propertyDetails.regionConversion);[076] input vector <= get (propertyDetails.regionConversion);

[077] vecteur d’entrée <= get(propertyDetails.roomClass);[077] input vector <= get (propertyDetails.roomClass);

[078] vecteur d’entrée <= get(propertyDetails.tieredPricing);[078] input vector <= get (propertyDetails.tieredPricing);

[079] vecteur d’entrée <= get(propertyDetails.visibility) ;[079] input vector <= get (propertyDetails.visibility);

[080] vecteur d’entrée <= get(propertyDetails.status);[080] input vector <= get (propertyDetails.status);

[081] vecteur d’entrée <= get(propertyDetails.marketingCity);[081] input vector <= get (propertyDetails.marketingCity);

[082] vecteur d’entrée <= get(propertyDetai!s.brandConversion) [083] vecteur d’entrée <= get(propertyDetails.classSharing);[082] input vector <= get (propertyDetai! S.brandConversion) [083] input vector <= get (propertyDetails.classSharing);

[084] Ainsi les valeurs de données actuelles 510 peuvent inclure des informations à propos de l’inventaire, la tarification et l’emplacement de l’objet de donnée actuels [085] Sous des aspects variés, le contexte d’application 520 peut inclure des paramètres contextuels concernant l’utilisateur de l’application de gestion de biens, comme indiqué dans le pseudo-code exemplaire suivant [086] vecteur d’entrée <= get(login);[084] Thus the current data values 510 may include information about the inventory, pricing and location of the current data object [085] In various aspects, the application context 520 may include contextual parameters concerning the user of the asset management application, as indicated in the following exemplary pseudo-code [086] input vector <= get (login);

[087] vecteur d’entrée <= get(day);[087] input vector <= get (day);

[088] vecteur d’entrée <= get(month);[088] input vector <= get (month);

[089] vecteur d’entrée <= get(chainCode);[089] input vector <= get (chainCode);

[090] vecteur d’entrée <= get(brandCode);[090] input vector <= get (brandCode);

[091] Ainsi le contexte d’application 520 peut inclure les informations de connexion de l’utilisateur, le jour et le mois de l’utilisateur et les informations décrivant le propriétaire et la marque.[091] Thus, the application context 520 can include the user's login information, the user's day and month and the information describing the owner and the brand.

-32[092] Sous des aspects variés, l’historique d’application 530 peut inclure les états d’application antérieurs et les paramètres d’identifiant de l’utilisateur, comme illustré dans le pseudo-code suivant exemplaire :-32 [092] In various aspects, the 530 application history can include previous application states and user ID parameters, as illustrated in the following exemplary pseudo-code:

[093] vecteur d’entrée <= [get(prior_states), get(prior_data_objects)];[093] input vector <= [get (prior_states), get (prior_data_objects)];

[094] Ainsi l’historique d’application 530 peut inclure les paires d’états d’application antérieures et les objets de données exécutés tandis que l’application se trouvait dans ces états.[094] Thus, the application history 530 can include the pairs of previous application states and the data objects executed while the application was in these states.

[095] En conformité avec la Fig. 6, dans certains modes de réalisation l’élément de prédiction de l’application de gestion de biens peut être formé. Comme révélé dans la Fig. 6, un système de formation peut être configuré pour recevoir des données de formation. Sous certains aspects, ce système de formation peut être le système implémentant l’application de gestion de biens. Sous des aspects variés, ce système de formation peut être un système distinct qui reçoit les données de formation à partir du système implémentant l’application de gestion de biens. Les données de formation peuvent inclure les données communiquées cidessus, et peuvent en plus inclure l’état d’application actuel et l’objet de donnée actuel. Comme révélé dans la Fig. 6, le système de formation peut être configuré pour former un prédicteur d’état et un prédicteur d’objet. Le prédicteur d’état et le prédicteur d’objet peuvent être fournis au système implémentant l’application de gestion de biens.[095] In accordance with FIG. 6, in some embodiments the prediction element of the asset management application can be formed. As revealed in Fig. 6, a training system can be configured to receive training data. In some aspects, this training system can be the system implementing the asset management application. In various aspects, this training system can be a separate system that receives training data from the system implementing the asset management application. Training data may include the data communicated above, and may additionally include the current application status and the current data object. As revealed in Fig. 6, the training system can be configured to train a state predictor and an object predictor. The state predictor and the object predictor can be provided to the system implementing the asset management application.

[096] En conformité avec la Fig. 7, dans certains modes de réalisation, le composant de prédiction de l’application de gestion de biens peut être configuré pour recevoir un vecteur d’entrée, prédire un prochain état, prédire un prochain objet de donnée, et ensuite indiquer une ou plusieurs prochaines pages prédites à l’utilisateur. Dans certains modes de réalisation, cette prédiction peut être effectuée lorsqu’un utilisateur fait la transition d’une première page vers une deuxième page dans l’application de gestion de biens. Dans cet exemple, l’utilisateur pourrait faire une transition vers une de la ou de plusieurs pages prochaines[096] In accordance with FIG. 7, in some embodiments, the prediction component of the asset management application can be configured to receive an input vector, predict a next state, predict a next data object, and then indicate one or more next pages predicted to the user. In some embodiments, this prediction can be made when a user transitions from a first page to a second page in the asset management application. In this example, the user could transition to one of the next page (s)

-33prédites à partir de la deuxième page. Comme révélé ci-dessus en ce qui concerne la Fig. 7, le composant de prévision de l’application de gestion de biens peut être configuré pour fournir une indication de la page prédite à l’utilisateur. Sous certains aspects, cette indication peut être fournie en tant que mise à jour dynamique de la deuxième page. Sous des aspects variés, une deuxième page modifiée peut être fournie au client pour être affichée à l’intention de l’utilisateur.-33 predicted from the second page. As revealed above with respect to FIG. 7, the forecasting component of the asset management application can be configured to provide an indication of the predicted page to the user. In some respects, this indication can be provided as a dynamic update of the second page. In various aspects, a modified second page can be provided to the customer to be displayed to the user.

[097] La Fig. 8 illustre une interface utilisateur graphique exemplaire 800 pour une application de gestion de biens, compatible avec les modes de réalisation révélés. Comme indiqué dans la Fig. 8, le composant de prédiction peut être configuré pour fournir des instructions afin de modifier l’interface utilisateur graphique 800 pour inclure l’encart 801. L’encart 801 peut inclure les icônes correspondant aux prochaines pages prédites (dans cet exemple, les biens 803a et la région 803b). Comme indiqué, ces icônes peuvent varier en taille et/ou en couleur. Sous certains aspects, ces variations peuvent indiquer des différences en matière de probabilité. Par exemple, lorsque la page suivante la plus probable est les biens 803a, l’icône correspondant aux biens 803a peut être plus grand que l’icône correspondant à la région 803b. Dans certains modes de réalisation, l’interface utilisateur graphique 800 peut être configurée pour modifier les icônes sur les événements sur lesquels le pointeur de la souris est placé. Par exemple, lorsque le curseur est placé sur une des icônes, cette icône peut croître en taille, changer de forme ou changer de couleur. Dans certains modes de réalisation, la sélection de l’une de ces icônes peut amener l’application de gestion de biens à faire une transition vers la page correspondante.[097] FIG. 8 illustrates an exemplary graphical user interface 800 for an asset management application, compatible with the embodiments disclosed. As shown in Fig. 8, the prediction component can be configured to provide instructions to modify the graphical user interface 800 to include the insert 801. The insert 801 can include the icons corresponding to the next predicted pages (in this example, the goods 803a and region 803b). As indicated, these icons may vary in size and / or color. In some respects, these variations may indicate differences in probability. For example, when the next most likely page is goods 803a, the icon for goods 803a may be larger than the icon for region 803b. In some embodiments, the graphical user interface 800 can be configured to modify the icons on the events on which the mouse pointer is placed. For example, when the cursor is placed on one of the icons, this icon can grow in size, change shape or change color. In some embodiments, selecting one of these icons may cause the asset management application to transition to the corresponding page.

[098] La Fig. 9 illustre une interface utilisateur graphique exemplaire supplémentaire 900 pour une application de gestion de biens, compatible avec les modes de réalisation révélés. Comme indiqué dans la Figure 9, le composant de prédiction peut être configuré pour fournir des instructions afin de modifier l’interface utilisateur graphique 900 pour inclure une[098] FIG. 9 illustrates an additional exemplary graphical user interface 900 for an asset management application, compatible with the embodiments disclosed. As shown in Figure 9, the prediction component can be configured to provide instructions for modifying the graphical user interface 900 to include a

-34indication textuelle 903 du risque relatif de la prochaine page prédite correspondant à l’élément graphique 901. Dans certains modes de réalisation, cette indication textuelle peut être fournie, outre le fait d’indiquer les probabilités relatives des pages en utilisant la taille relative des icônes correspondantes.-34 textual indication 903 of the relative risk of the next predicted page corresponding to the graphic element 901. In certain embodiments, this textual indication can be provided, in addition to indicating the relative probabilities of the pages using the relative size of the corresponding icons.

[099] La Fig. 10 illustre une interface graphique exemplaire supplémentaire 1000 pour une application de gestion de biens, compatible avec les modes de réalisation révélés. Comme indiqué dans la Fig. 10, le composant de prédiction peut être configuré pour fournir des instructions permettant de modifier l’interface utilisateur graphique 1000 pour inclure un encart 1001. L’encart 1001 peut inclure une description textuelle d’une page suivante prédite. [0100] 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 l’invention présente peuvent être implémentés. Le dispositif d’exemple 1100 peut comprendre au moins un processeur (p. ex. 1103) et au moins une mémoire (p. ex. les mémoires 1105a et 1105b). Le processeur 1103 peut comprendre une unité centrale de traitement (UCT), une unité graphique de traitement (UGT), ou autre circuit similaire capable d’effectuer une ou plusieurs opérations sur un flux de données. Le processeur 1103 peut être configuré pour exécuter les instructions qui peuvent, par exemple, être stockées sur une ou plusieurs des mémoires 1105a et 1105b. Les mémoires 1105a et 1105b peuvent être une mémoire volatile (comme la RAM ou similaire) et/ou une mémoire non-volatile (telle qu’une mémoire flash, un disque dur ou similaires). Comme expliqué cidessus, les mémoires 1105a et 1105b peuvent stocker des instructions pour exécution par le processeur 1103. Comme illustré ultérieurement dans la FIG. 11, le dispositif d’interface utilisateur 1100 peut inclure au moins un contrôleur d’interface réseau (CIR) (p. ex. CIR 1115). Le CIR 1115 peut être configuré pour faciliter la communication sur au moins un réseau informatique (p. ex. le réseau 1117). Les fonctions de communication peuvent donc être facilitées à travers un ou plusieurs CIR, qui risque(nt) d’être sans fil ou fîlaire(s) et[099] FIG. 10 illustrates an additional exemplary graphical interface 1000 for an asset management application, compatible with the embodiments disclosed. As shown in Fig. 10, the prediction component can be configured to provide instructions for modifying the graphical user interface 1000 to include an insert 1001. Inset 1001 can include a text description of a predicted next page. [0100] FIG. 11 is a block diagram of an exemplary device with which the systems, methods and devices of the present invention can be implemented. The example device 1100 can comprise at least one processor (eg 1103) and at least one memory (eg memories 1105a and 1105b). The processor 1103 may include a central processing unit (UCT), a graphics processing unit (UGT), or other similar circuit capable of performing one or more operations on a data stream. The processor 1103 can be configured to execute the instructions which can, for example, be stored on one or more of the memories 1105a and 1105b. Memories 1105a and 1105b can be volatile memory (such as RAM or the like) and / or non-volatile memory (such as a flash memory, a hard disk or the like). As explained above, the memories 1105a and 1105b can store instructions for execution by the processor 1103. As illustrated later in FIG. 11, the user interface device 1100 may include at least one network interface controller (CIR) (eg CIR 1115). The CIR 1115 can be configured to facilitate communication on at least one computer network (eg network 1117). Communication functions can therefore be facilitated through one or more CIRs, which risk (s) of being wireless or wired and

-35inclure éventuellement un port Ethernet, les émetteurs et les récepteurs de fréquence radio, et/ou les émetteurs et récepteurs optiques (p. ex. à infra-rouge). La conception spécifique et la mise en œuvre du ou de plusieurs CIR dépendent du réseau informatique 1117 sur lequel le dispositif de l’interface utilisateur 1100 est destiné à fonctionner. Par exemple, dans certains modes de réalisation, le dispositif d’interface utilisateur 1100 peut inclure un ou plusieurs CIR sans fil ou filaire(s) conçu(s) pour fonctionner sur un réseau GSM, un réseau GPRS, un réseau EDGE, un réseau Wi-Fi ou WiMax, et un réseau Bluetooth®. Alternativement ou en même temps, le dispositif d’interface utilisateur 1100 peut inclure un ou plusieurs CIR sans fil ou filaire(s) conçu(s) pour fonctionner sur un réseau TCP/IP. Tel que décrit dans la FIG.-35 possibly include an Ethernet port, radio frequency transmitters and receivers, and / or optical transmitters and receivers (e.g. infrared). The specific design and implementation of the one or more CIRs depend on the computer network 1117 on which the user interface device 1100 is intended to operate. For example, in certain embodiments, the user interface device 1100 can include one or more wireless or wired CIRs designed to operate on a GSM network, a GPRS network, an EDGE network, a network Wi-Fi or WiMax, and a Bluetooth® network. Alternatively or at the same time, the user interface device 1100 can include one or more wireless or wired CIRs designed to operate on a TCP / IP network. As described in FIG.

11, le dispositif d’interface utilisateur 1100 peut inclure et/ou être relié de manière opérationnelle à un dispositif de stockage 1121. Le dispositif de stockage 1121 peut être volatile (telle que la RAM ou similaire) ou non volatile (telle que la mémoire flash, un disque dur ou similaire). Le module I/O 1119 peut permettre les communications entre le processeur 1103, les mémoires 1105a et 1105b, le CIR 1115, et/ou le dispositif de stockage 1121. Le processeur 1103, les mémoires 1105a et 1105b, le CIR 1115 et/ou le dispositif de stockage 1121 peuvent comprendre des composants distincts ou peuvent être intégrés à un ou plusieurs circuits intégrés. Les différents composants au sein du dispositif d’interface utilisateur 1100 peuvent être couplés à un ou plusieurs bus de communication ou des lignes de signaux (non illustrés).11, the user interface device 1100 can include and / or be operatively connected to a storage device 1121. The storage device 1121 can be volatile (such as RAM or the like) or non-volatile (such as memory flash, hard drive or similar). The I / O module 1119 can allow communications between the processor 1103, the memories 1105a and 1105b, the CIR 1115, and / or the storage device 1121. The processor 1103, the memories 1105a and 1105b, the CIR 1115 and / or the storage device 1121 can comprise separate components or can be integrated into one or more integrated circuits. The various components within the user interface device 1100 can be coupled to one or more communication buses or signal lines (not shown).

[0101] La description qui précède a été présentée à des fins d’illustration. Elle n’est pas exhaustive et n’est pas limitée aux formes précises ou aux modes de réalisation révélés. Les modifications et les adaptations des modes de réalisation découleront de l’examen de la spécification et de la mise en œuvre des modes de réalisation révélés. Par exemple, les implémentations décrites comprennent le matériel et le logiciel, mais les systèmes et les procédés compatibles avec la présente révélation peuvent être implémentés avec le matérielThe above description has been presented for the purpose of illustration. It is not exhaustive and is not limited to the precise forms or to the embodiments disclosed. The modifications and adaptations of the embodiments will result from the examination of the specification and the implementation of the disclosed embodiments. For example, the described implementations include hardware and software, but systems and methods compatible with this disclosure can be implemented with hardware

-36Demande de brevet n° 18 51948 A5013309FRP00Mm seul. En outre, alors que certains composants ont été décrits comme étant couplés l’un à l’autre, ces composants peuvent être intégrés les uns aux autres ou répartis comme il convient.-36 Patent application n ° 18 51948 A5013309FRP00Mm only. In addition, while some components have been described as being coupled together, these components can be integrated with each other or distributed as appropriate.

[0102] De plus, tandis que les modes de réalisation illustratifs ont été décrits dans les présentes, la portée inclut tous les modes de réalisation ayant des éléments équivalents, des modifications, des omissions, des combinaisons (p. ex. d’aspects à travers des modes de réalisation variés), des adaptations et/ou des altérations basées sur la présente révélation. [0103] Les instructions ou les étapes opérationnelles stockées par un support lisible par ordinateur peuvent être sous la forme de programmes informatiques, de modules de programme, ou de codes. Comme décrit dans les présentes, les programmes informatiques, les modules de programme, et le code basé sur la description écrite de cette spécification, telle que celle utilisée par le processeur, relèvent aisément de la compétence d’un développeur de logiciels. Les programmes informatiques, les modules de programme, ou le code peuvent être créés en utilisant une variété de techniques de programmation. Par exemple, ils peuvent être conçus dans ou par le biais de Java, C, C++, le langage d'assemblage, ou tout autre langage de programmation. Un ou plusieurs de ces programmes, modules ou code peuvent être intégrés dans un système de dispositif ou un logiciel de communication existants. Les programmes, les modules ou le code peuvent également être implémentés ou répliqués comme micrologiciel ou logique de circuit.In addition, while the illustrative embodiments have been described herein, the scope includes all embodiments having equivalent elements, modifications, omissions, combinations (e.g., aspects to through various embodiments), adaptations and / or alterations based on this disclosure. The instructions or the operational steps stored by a computer-readable medium can be in the form of computer programs, program modules, or codes. As described herein, computer programs, program modules, and code based on the written description of this specification, such as that used by the processor, is easily the responsibility of a software developer. Computer programs, program modules, or code can be created using a variety of programming techniques. For example, they can be designed in or through Java, C, C ++, assembly language, or any other programming language. One or more of these programs, modules or code can be integrated into an existing device system or communication software. Programs, modules or code can also be implemented or replicated as firmware or circuit logic.

[0104] Les caractéristiques et les avantages de la révélation se dégagent des spécifications détaillées. Par ailleurs, dans la mesure où de nombreuses modifications et variations résulteront ouvertement de l’étude de la présente révélation, il n’est pas envisage de limiter la révélation à la construction exacte et au fonctionnement tels qu’illustrés et décrits, et enThe characteristics and advantages of the disclosure emerge from the detailed specifications. Furthermore, insofar as numerous modifications and variations will result openly from the study of this revelation, it is not intended to limit the revelation to the exact construction and to the operation as illustrated and described, and in

-37conséquence, toutes les modifications appropriées et équivalences peuvent être invoquées, en demeurant raisonnablement dans le cadre de la portée de la révélation.Consequently, all appropriate modifications and equivalences can be invoked, while remaining reasonably within the scope of the revelation.

[0105] D’autres modes de réalisation découleront de l’examen de la spécification et de la mise en œuvre des modes de réalisation révélés aux présentes. Il est prévu que les spécifications et les exemples soient considérés comme des exemples uniquement.Other embodiments will follow from examining the specification and implementing the embodiments disclosed herein. It is intended that the specifications and examples are to be regarded as examples only.

Claims (15)

Revendications :Claims: 1. Un système pour la navigation d’application en utilisant des réseaux neuraux, comprenant :1. A system for application navigation using neural networks, comprising: 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 œuvre des opérations comprenant :at least one processor; and at least one non-transient memory comprising instructions which, when executed by said at least one processor, cause the system to implement operations comprising: l’apport d’une application comprenant des états d’application qui œuvrent sur des objets de données pour générer des pages ;the provision of an application comprising application states which work on data objects to generate 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 :predicting a next page using an application state predictor neural network and a data object predictor neural network, the prediction comprising: 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.predicting a next next application state using the application state predictor neural network and a first input vector; and predicting a next data object using the data object predictor neural network, a second input vector and the next application state; and instructional instruction to display an indication of the next predicted page. 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 nœuds de sortie correspondant aux états d’application.2. The system according to claim 1, in which an output layer of the application state predictor neural network comprises output nodes corresponding to the application states. 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 The system of claim 1 or claim 2, wherein predicting the next state of application using the state-predictor neural network. -39d’application et le premier vecteur d’entrée, comprend le hachage du premier vecteur d’entrée.-39 of application and the first input vector, includes the hash of the first input vector. 4. Le système selon l’une quelconque des revendications précédentes, dans lequel des éléments 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.4. The system according to any one of the preceding claims, wherein common elements of the first input vector and the second input vector are hashed once and reused to predict the next data object. 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.5. The system according to any one of the preceding claims, wherein the first input vector and the second input vector are the same vector. 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 nœuds de sortie correspondant aux objets de donnée.The system according to any of the preceding claims, wherein an output layer of the data object predictor-neural network includes output nodes corresponding to the data objects. 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.7. The system according to any one of the preceding claims, in which the first input vector comprises a history of the application and / or includes elements indicating at least one of an entity, a user associated with the entity. , a user role, a user authorization level, a day of the week, a date, a time, or a value of a current data object. 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.8. The system of claim 7, wherein the application history includes elements indicating prior application states and prior data objects associated with the pages previously visited. 9. Le système selon l’une quelconque des revendications preceuenies, dans 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 page prédite comprend l’apport d’instructions pour afficher la page actuelle, modifiée pour indiquer la prochaine page prédite.9. The system according to claim 1, in which the operations furthermore comprise the generation of a current page in accordance with a current application state using a current data object, and in which the contribution of instructions for displaying the indication of the next predicted page includes the provision of instructions for displaying the current page, modified to indicate the next predicted page. 10. Le système selon la revendication 9, dans lequel l’apport des instructions pour afficher l’indication de la prochaine page prédite comprend l’apport d’instructions pour 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.The system of claim 9, wherein providing instructions to display the indication of the next predicted page includes providing instructions to dynamically generate the current page in accordance with the current application state. using the current data object, the current page modified to indicate the next predicted page. 11. Le système selon l’une quelconque des revendications précédentes, dans lequel l’apport des 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.The system according to any one of the preceding claims, wherein providing instructions to display the indication of the next predicted page includes providing instructions to display the indications of multiple predicted next pages including the next page. predicted. 12. Le système selon la revendication 11, dans lequel les instructions pour afficher les indications des multiples pages suivantes prédites incluent les instructions pour indiquer les probabilités relatives des multiples pages suivantes prédites.The system of claim 11, wherein the instructions for displaying the indications of the predicted next multiple pages include the instructions for indicating the relative probabilities of the predicted next multiple pages. 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 l’apport d’instructions pour actualiser la page actuelle afin d’inclure un élément 13. The system of any of claims 9 to 12, wherein providing instructions for displaying an indication of the next predicted page includes providing instructions for refreshing the current page to include an item -41 graphique indiquant la prochaine page prédite ou en moditiant un élément graphique de la page actuelle pour indiquer la prochaine page prédite.-41 graphic indicating the next predicted page or by modifying a graphic element of the current page to indicate the next predicted page. 14. Le système selon la revendication 13, dans lequel l’élément graphique et une fenêtre14. The system of claim 13, wherein the graphical element and a window 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.5 inserted including an icon corresponding to the next predicted page, the icon being preferably selectable for making a transition to the next predicted page. 15. Le système selon la revendication 13 ou la revendication 14, dans lequel la modification de15. The system of claim 13 or claim 14, wherein the modification of 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.10 the existing graphic element of the current page includes changing at least one positioning, shape, size, or color of the existing graphic element; or changing at least one positioning, font, size, accent, or color of text associated with the existing graphic element.
FR1851948A 2018-03-07 2018-03-07 NEURAL NETWORK SYSTEMS AND METHODS FOR APPLICATION BROWSING Expired - Fee Related FR3078795B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR1851948A FR3078795B1 (en) 2018-03-07 2018-03-07 NEURAL NETWORK SYSTEMS AND METHODS FOR APPLICATION BROWSING
PCT/EP2019/055674 WO2019170800A1 (en) 2018-03-07 2019-03-07 Neural network systems and methods for application navigation
CN201980022974.0A CN111919199A (en) 2018-03-07 2019-03-07 Neural network system and method for application navigation
EP19708123.5A EP3762821A1 (en) 2018-03-07 2019-03-07 Neural network systems and methods for application navigation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1851948A FR3078795B1 (en) 2018-03-07 2018-03-07 NEURAL NETWORK SYSTEMS AND METHODS FOR APPLICATION BROWSING
FR1851948 2018-03-07

Publications (2)

Publication Number Publication Date
FR3078795A1 true FR3078795A1 (en) 2019-09-13
FR3078795B1 FR3078795B1 (en) 2022-07-08

Family

ID=63637942

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1851948A Expired - Fee Related FR3078795B1 (en) 2018-03-07 2018-03-07 NEURAL NETWORK SYSTEMS AND METHODS FOR APPLICATION BROWSING

Country Status (1)

Country Link
FR (1) FR3078795B1 (en)

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
LI XIANG ET AL: "An Improved Mining Strategy of Preferred Paths in Web Applications Based on RBF Neural Network", 2013 INTERNATIONAL CONFERENCE ON COMPUTER SCIENCES AND APPLICATIONS, IEEE, 14 December 2013 (2013-12-14), pages 300 - 304, XP032609241, DOI: 10.1109/CSA.2013.76 *
PAUL COVINGTON ET AL: "Deep Neural Networks for YouTube Recommendations", RECOMMENDER SYSTEMS, ACM, 2 PENN PLAZA, SUITE 701 NEW YORK NY 10121-0701 USA, 7 September 2016 (2016-09-07), pages 191 - 198, XP058278047, ISBN: 978-1-4503-4035-9, DOI: 10.1145/2959100.2959190 *
SAI WU ET AL: "Personal recommendation using deep recurrent neural networks in NetEase", 2016 IEEE 32ND INTERNATIONAL CONFERENCE ON DATA ENGINEERING (ICDE), 1 May 2016 (2016-05-01), pages 1218 - 1229, XP055556215, ISBN: 978-1-5090-2020-1, DOI: 10.1109/ICDE.2016.7498326 *
WIKIPEDIA: "Single-page application", WIKIPEDIA, 25 February 2018 (2018-02-25), pages 1 - 9, XP055556244, Retrieved from the Internet <URL:file:///C:/Users/PB22514/Desktop/Single-page%20application%20-%20Wikipedia.pdf> [retrieved on 20190213] *

Also Published As

Publication number Publication date
FR3078795B1 (en) 2022-07-08

Similar Documents

Publication Publication Date Title
US11417320B2 (en) Scalable multi-service virtual assistant platform using machine learning
US11029926B2 (en) System and method for delivering autonomous advice and guidance
US11586945B2 (en) Methods and systems for automated, intelligent application process development that recommend how to modify applications based on usage patterns of end users
US20170185904A1 (en) Method and apparatus for facilitating on-demand building of predictive models
US20200004604A1 (en) Automated systems and methods for generating executable workflows
US20200159690A1 (en) Applying scoring systems using an auto-machine learning classification approach
US11656889B2 (en) Method and system for automatically invoking functionality while using a primary application without user action
US20200134529A1 (en) Intelligent priming of mobile device for field service
US20230334303A1 (en) Cross in-database machine learning
US20230351308A1 (en) System and method for universal mapping of structured, semi-structured, and unstructured data for application migration in integration processes
US20150278316A1 (en) Task reduction in dynamic case management
US20210342130A1 (en) Systems and methods for software application generation and delivery
FR3078795A1 (en) NEURAL NETWORK SYSTEMS AND METHODS FOR APPLICATION NAVIGATION
US11455555B1 (en) Methods, mediums, and systems for training a model
CN114945927A (en) End-to-end email tag prediction
US20240061994A1 (en) Systems and methods for content creation based on audience preference and contextual factors
US20220180409A1 (en) Machine intelligence platform
US20230419341A1 (en) Assessment of user price sensitivity
CN117909840A (en) Model training method and device, storage medium and electronic equipment
Kastis Service-Oriented Evironments For:‘Here We Are’Vehicle Accident Statement & Car Damage Detection
WO2023220068A1 (en) Systems and methods for content creation based on audience preference and contextual factors

Legal Events

Date Code Title Description
PLSC Publication of the preliminary search report

Effective date: 20190913

PLFP Fee payment

Year of fee payment: 2

ST Notification of lapse

Effective date: 20191106

RN Application for restoration

Effective date: 20200123

FC Decision of inpi director general to approve request for restoration

Effective date: 20200213

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7