Predictive navigation and fields platform to reduce processor and network resources usage

A navigation prediction tool tracks and analyzes a user's navigation through a software application to predict the interfaces that are most desired by the user. The tool then dynamically changes the presentation of the software application to present these interfaces to the user. The tool may further conserve resources by predicting how the user will fill certain fields in the interface.

TECHNICAL FIELD

This disclosure relates generally to navigating user interfaces in software applications.

BACKGROUND

Users can use devices to navigate user interfaces in software applications.

SUMMARY OF THE DISCLOSURE

Users use devices like computers, laptops, tablets, and mobile phones to navigate user interfaces in software applications. Conventionally, the presentation of user interfaces in software applications is static. When a software application loads, it presents a starting interface to the user. If the user wants to navigate to other interfaces, then the user performs a series of actions to control that navigation. For example, a user may click links or buttons to navigate to other pages, windows, or menus in the software application. Each click may cause processor and memory resources (e.g., to retrieve and load an interface) and/or network bandwidth (e.g., to communicate the interface over the network to the device) to be consumed. If a user frequently navigates to a particular interface without using or paying attention to the previous interfaces, then these resources are effectively wasted.

This disclosure contemplates a navigation prediction tool that tracks and analyzes a user's navigation through a software application to predict the interfaces that are most desired by the user. The tool then dynamically changes the presentation of the software application to present these interfaces to the user. In this manner, the user need not navigate through other interfaces to reach the desired interface, thereby conserving processor and memory resources and network bandwidth. The tool may further conserve resources by predicting how the user will fill certain fields in the interface. Certain embodiments are described below.

According to an embodiment, an apparatus includes a memory and a hardware processor communicatively coupled to the memory. The hardware processor receives, from a user, a request to load a software application and retrieves, from a database, a record of the user's previous uses of the software application. The record indicates a first chronological ordering of user interface pages visited by the user during a first use of the software application and a second chronological ordering of user interface pages visited by the user during a second use of the software application. The hardware processor then transforms the first chronological ordering into a first vector comprising a numerical representation of the first chronological ordering and transforms the second chronological ordering into a second vector comprising a numerical representation of the second chronological ordering. The hardware processor also generates, by a neural network and based on the first and second vectors, an output vector, transforms the output vector into an output ordering of user interface pages, and after the software application is loaded, directs the software application to a first user interface page in the output ordering.

According to another embodiment, a method includes receiving, by a hardware processor communicatively coupled to a memory and from a user, a request to load a software application and retrieving, by the hardware processor and from a database, a record of the user's previous uses of the software application. The record indicates a first chronological ordering of user interface pages visited by the user during a first use of the software application and a second chronological ordering of user interface pages visited by the user during a second use of the software application. The method also includes transforming, by the hardware processor, the first chronological ordering into a first vector comprising a numerical representation of the first chronological ordering and transforming, by the hardware processor, the second chronological ordering into a second vector comprising a numerical representation of the second chronological ordering. The method further includes generating, by the hardware processor, by a neural network and based on the first and second vectors, an output vector, transforming, by the hardware processor, the output vector into an output ordering of user interface pages, and after the software application is loaded, directing, by the hardware processor, the software application to a first user interface page in the output ordering.

According to another embodiment, a system includes a database and a navigation prediction tool that includes a hardware processor communicatively coupled to a memory. The hardware processor receives, from a user, a request to load a software application and retrieves, from the database, a record of the user's previous uses of the software application. The record indicates a first chronological ordering of user interface pages visited by the user during a first use of the software application and a second chronological ordering of user interface pages visited by the user during a second use of the software application. The hardware processor then transforms the first chronological ordering into a first vector comprising a numerical representation of the first chronological ordering and transforms the second chronological ordering into a second vector comprising a numerical representation of the second chronological ordering. The hardware processor also generates, by a neural network and based on the first and second vectors, an output vector, transforms the output vector into an output ordering of user interface pages, and after the software application is loaded, directs the software application to a first user interface page in the output ordering.

Certain embodiments provide one or more technical advantages. For example, an embodiment predicts a user interface that is desired by a user and presents that interface to the user so that the user does not waste processor and memory resources and network bandwidth navigating to that interface. Certain embodiments may include none, some, or all of the above technical advantages. One or more other technical advantages may be readily apparent to one skilled in the art from the figures, descriptions, and claims included herein.

DETAILED DESCRIPTION

Users use devices like computers, laptops, tablets, and mobile phones to navigate user interfaces in software applications. Conventionally, the presentation of user interfaces in software applications is static. When a software application loads, it presents a starting interface to the user. If the user wants to navigate to other interfaces, then the user performs a series of actions to control that navigation. For example, a user may click links or buttons to navigate to other pages, windows, or menus in the software application. Each click may cause processor and memory resources (e.g., to retrieve and load an interface) and/or network bandwidth (e.g., to communicate the interface over the network to the device) to be consumed. If a user frequently navigates to a particular interface without using or paying attention to the previous interfaces, then these resources are effectively wasted.

This disclosure contemplates a navigation prediction tool that tracks and analyzes a user's navigation through a software application to predict the interfaces that are most desired by the user. The tool then dynamically changes the presentation of the software application to present these interfaces to the user. In this manner, the user need not navigate through other interfaces to reach the desired interface, thereby conserving processor and memory resources and network bandwidth. The tool may further conserve resources by predicting how the user will fill certain fields in the interface.

A practical application of the navigation prediction tool is that the tool automatically predicts the user interface that a user desires and presents that interface to the user. In this manner, user does not need to waste processor and memory resources and network bandwidth navigating to the desired interface. The system will be described in more detail usingFIGS. 1 through 3.

FIG. 1illustrates an example system100. As seen inFIG. 1system100includes one or more devices104, a network106, a database108, and a navigation prediction tool110. Generally, navigation prediction tool110uses one or more neural networks to predict how a user102will navigate through one or more interfaces of a software application. Navigation predication tool110then directs the software application to the interfaces in the predicted navigation. In particular embodiments, navigation predication tool110reduces the processor and memory resources and/or network bandwidth consumed by a user102using the software application by skipping portions of the navigation that would otherwise waste resources.

User102uses device104to execute applications and or interact with other components of system100. As seen inFIG. 1, device104includes a processor112and a memory114. This disclosure contemplates processor112and memory114being configured to perform any of the functions of device104described herein. For example, memory114may store one or more software applications116. The software applications116may include software instructions that are executed by processor112to perform one or more functions on device104. User102may load a software application116on device104. Software application116when executed may present one or more user interfaces to user102on device104. For example, these interfaces may include pages, windows, menus, etc. User102may navigate through one or more of these interfaces by performing various actions on device104such as, for example, clicking, touching, typing, and/or any other suitable action to issue a command. When user102issues a command to proceed to another interface, device104may retrieve that interface from a server through network106. Device104may then process the received interface to present that interface to user102. In conventional systems, user102may navigate through several interfaces before arriving at a desired interface. When user102does not use or pay attention to the interfaces that are retrieved prior to the desired interface, the resources that are used to retrieve the previous interfaces are wasted. Navigation prediction tool110may reduce the amount of wasted resources by predicting the interface that user102desires and directing software application116to navigate directly to that interface.

Devices104include any appropriate device for communicating with components of system100over network106. For example, devices104may be a telephone, a mobile phone, a computer, a laptop, a tablet, an automated assistant, and/or a cash register. This disclosure contemplates device104being any appropriate device for sending and receiving communications over network106. As an example and not by way of limitation, device104may be a computer, a laptop, a wireless or cellular telephone, an electronic notebook, a personal digital assistant, a tablet, or any other device capable of receiving, processing, storing, and/or communicating information with other components of system100. Device104may also include a user interface, such as a display, a microphone, keypad, or other appropriate terminal equipment usable by user102. Device104may include a hardware processor, memory, and/or circuitry configured to perform any of the functions or actions of device104described herein. For example, a software application designed using software code may be stored in the memory and executed by the processor to perform the functions of device104.

Processor112is any electronic circuitry, including, but not limited to microprocessors, application specific integrated circuits (ASIC), application specific instruction set processor (ASIP), and/or state machines, that communicatively couples to memory114and controls the operation of device104. Processor112may be 8-bit, 16-bit, 32-bit, 64-bit or of any other suitable architecture. Processor112may include an arithmetic logic unit (ALU) for performing arithmetic and logic operations, processor registers that supply operands to the ALU and store the results of ALU operations, and a control unit that fetches instructions from memory and executes them by directing the coordinated operations of the ALU, registers and other components. Processor112may include other hardware that operates software to control and process information. Processor112executes software stored on memory to perform any of the functions described herein. Processor112controls the operation and administration of device104by processing information received from network106and memory114. Processor112may be a programmable logic device, a microcontroller, a microprocessor, any suitable processing device, or any suitable combination of the preceding. Processor112is not limited to a single processing device and may encompass multiple processing devices.

Memory114may store, either permanently or temporarily, data, operational software, or other information for processor112. Memory114may include any one or a combination of volatile or non-volatile local or remote devices suitable for storing information. For example, memory114may include random access memory (RAM), read only memory (ROM), magnetic storage devices, optical storage devices, or any other suitable information storage device or a combination of these devices. The software represents any suitable set of instructions, logic, or code embodied in a computer-readable storage medium. For example, the software may be embodied in memory114, a disk, a CD, or a flash drive. In particular embodiments, the software may include an application executable by processor112to perform one or more of the functions described herein.

Network106allows communication between and amongst the various components of system100. For example, user102may use devices104to communicate over network106. This disclosure contemplates network106being any suitable network operable to facilitate communication between the components of system100. Network106may include any interconnecting system capable of transmitting audio, video, signals, data, messages, or any combination of the preceding. Network106may include all or a portion of a public switched telephone network (PSTN), a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a local, regional, or global communication or computer network, such as the Internet, a wireline or wireless network, an enterprise intranet, or any other suitable communication link, including combinations thereof, operable to facilitate communication between the components.

Database108stores the usage history of user102. For example, database108may store records that track the navigation of user102in various software applications116. When user102navigates from interface-to-interface in software application116, device104may generate a record of that navigation and communicate the record to database108for storage. These records may then be used for navigation prediction tool110to predict the interfaces that user102desires when loading application116. Database108may communicate these records to navigation prediction tool110when navigation prediction tool110requests these records.

Navigation prediction tool110uses one or more neural networks to predict the user interfaces that user102desires when user102loads a software application116. In particular embodiments, navigation prediction tool110reduces the amount of processor and memory resources and/or network bandwidth that is wasted by directing the software application116to the predicted interface. As seen in FIG.1navigation prediction tool110includes a processor118and a memory120. This disclosure contemplates processor118and memory120being configured to perform any of the functions and/or actions of navigation prediction tool110described herein.

Processor118is any electronic circuitry, including, but not limited to microprocessors, application specific integrated circuits (ASIC), application specific instruction set processor (ASIP), and/or state machines, that communicatively couples to memory120and controls the operation of navigation prediction tool110.

Processor118may be 8-bit, 16-bit, 32-bit, 64-bit or of any other suitable architecture. Processor118may include an arithmetic logic unit (ALU) for performing arithmetic and logic operations, processor registers that supply operands to the ALU and store the results of ALU operations, and a control unit that fetches instructions from memory and executes them by directing the coordinated operations of the ALU, registers and other components. Processor118may include other hardware that operates software to control and process information. Processor118executes software stored on memory to perform any of the functions described herein.

Processor118controls the operation and administration of navigation prediction tool110by processing information received from devices104, network106, and memory120. Processor118may be a programmable logic device, a microcontroller, a microprocessor, any suitable processing device, or any suitable combination of the preceding. Processor118is not limited to a single processing device and may encompass multiple processing devices.

Memory120may store, either permanently or temporarily, data, operational software, or other information for processor118. Memory120may include any one or a combination of volatile or non-volatile local or remote devices suitable for storing information. For example, memory120may include random access memory (RAM), read only memory (ROM), magnetic storage devices, optical storage devices, or any other suitable information storage device or a combination of these devices. The software represents any suitable set of instructions, logic, or code embodied in a computer-readable storage medium. For example, the software may be embodied in memory120, a disk, a CD, or a flash drive. In particular embodiments, the software may include an application executable by processor118to perform one or more of the functions described herein.

Navigation prediction tool110receives an authentication122. Authentication122may be provided by user102via device104. For example, user102may provide a user name, a password, a personal identification number, biometric information, etc. as part of authentication122. User102may provide authentication122as part of logging in to the application116. Navigation prediction tool110may use authentication122to determine the user102that is loading application116. This information may then be used to retrieve the navigation history of a particular user102from database108.

Navigation prediction tool110may receive a request124to load software application116. User102and/or device104may generate request124when user102instructs device104to load application116. In some embodiments request,124and authentication122may be part of the same message communicated to navigation prediction tool110when user102attempts to load application116. The information in request124may be used by navigation prediction tool110to retrieve the navigation history of user102in a particular application116from database108.

Navigation prediction tool110retrieves record126from database108. Record126may include the navigation history of user102for a particular application116. In the example ofFIG. 1, record126includes various chronological orderings128of interfaces that user102used during previous executions of application116. In a first execution of application116, user102used only a first page of application116. As a result chronological ordering128A shows only Page1. During the second execution of application116, user102loaded a first page and then a third page and then a second page, thus, chronological ordering128B shows Page1, Page3, and Page2. In a third execution of application116, user102used a second page and a fourth page. As a result, chronological ordering128C shows Page2and Page4. Record126may include any suitable number of chronological orderings128. Each chronological ordering128may include any suitable number of interfaces. Although the interfaces shown in the example ofFIG. 1include pages, record126may show any suitable type of interface, such as, for example, pages, windows, menus, etc. Each chronological ordering128includes a chronological sequence of interfaces that were accessed or used by user102during an execution of application116. Navigation prediction tool110may use these chronological orderings128to predict the interfaces that are desired by user102.

Navigation prediction tool110converts the chronological orderings128into vectors130. In particular embodiments, navigation prediction tool110uses an encoder that receives the information in each chronological ordering128and transforms that information into a vector130. Each vector130may include a numerical representation of a chronological ordering128. Vector130may include any number of dimensions. If two vectors130are close or similar to each other, then the chronological orderings128represented by those vectors130are similar to each other. If two vectors130are distant or different from each other, then the chronological orderings128represented by those vectors130are different from each other. In the example ofFIG. 1, navigation prediction tool110transforms chronological ordering128A into vector130A, chronological ordering128B into vector130B, and chronological ordering128C into vector130C. Navigation prediction tool110may then use these vectors130to predict a desired interface for user102. For example, if several vectors130are similar to each other, then navigation prediction tool110may determine that these vectors130show that user102has a desired navigation pattern. Vectors130may include information about any suitable number of factors considered by the neural network to predict a desired user interface. For example, vectors130may also capture the actions performed by user102on a particular interface.

Navigation prediction tool110may implement and use a neural network, such as, for example, an attention network, to analyze the vectors130. The neural network analyzes the numerical representations of chronological orderings128represented by vectors130to generate an output vector132. Output vector132is a numerical representation of a predicted ordering of user interfaces desired by user102. The neural network may predict the desired ordering of user interfaces based on the historical navigation of user102shown by vectors130. These predictions may be based on any number of factors such as frequency, periodicity, and/or actions performed on each interface.

Navigation prediction tool110uses a decoder to transform the output vector132into an ordering134of user interfaces. The ordering134may indicate a predicted ordering of user interfaces that are desired by user102. In the example ofFIG. 1, ordering134shows that user102desires a second page and then a fourth page. Thus, ordering134shows Page2followed by Page4. Navigation prediction tool110may then instruct device104to navigate to the predicted interfaces shown in ordering134. In response, device104may load Page2when application116first starts. After user102performs an action on Page2, device104may then load Page4. In this manner, user102does not waste resources loading and navigating through undesired pages of application116. Instead, application116is directed to Pages2and4without forcing user102to navigate through other pages (e.g., Pages1and3).

FIG. 2illustrates an example navigation prediction tool110of the system100ofFIG. 1. Generally, navigation prediction tool110uses one or more neural networks to predict the behavior of a user102using an application116. Navigation prediction tool110may then direct the software application116to certain interfaces and/or to perform certain functions based on the predictions. In this manner, navigation prediction tool110reduces the amount of wasted computing resources in particular embodiments.

Navigation prediction tool110receives authentication122from user102and/or device104. As discussed previously, authentication122may include information that authenticates user102to navigation prediction tool110. Authentication122may include a username, a password, a personal identification number, biometric information, etc. Navigation prediction tool110may use authentication122to retrieve information about the user102from a database108.

Navigation prediction tool110receives request124from user102and/or device104. Request124may be a request to load a particular application116. Device104may generate request124in response to user102issuing a command to load an application116. Navigation prediction tool110may use request124to retrieve the user's102behavioral history for application116from database108. In particular embodiments, request124may include authentication122.

Navigation prediction tool110retrieves record126from database108. Record126includes the behavioral history of the user102for an application116. For example, record126may include chronological orderings128of interfaces that user102has used in application116. Record126may include other information in particular embodiments. For example, record126may further include dates202of when user102used application116. Additionally, record126may include actions performed by user102, such as entries204that show how user102filled in particular fields of an interface. For example, each page may include certain fields, such as textboxes, that allow user102to input entries. Record126may track the entries204that a user inputted while using application116. In the example ofFIG. 2, record126includes a chronological ordering128A that is associated with a date202A and entries204A. This information shows that on a first use of application116, user102used Page1of the application116on a date202A. While using Page1, user102filled in fields using entries204A. During a second use of application116, user102used Page1, then Page3, and then Page2, according to chronological ordering128B. User102used these pages on date202B and filled in fields on those pages using entries204B. During the third use of application116, user102used Pages2and4, according to chronological ordering128C. User102used application116on a date202C and filled in fields using entries204C.

Navigation prediction tool110transforms each portion of record126into vectors130using an encoder. Each vector130may include a numerical representation of the various portions of record126such as, for example, chronological ordering128, date202, and/or entries204. In the example ofFIG. 2, vector130A includes a numerical representation of chronological ordering128A, date202A, and entries204A. Vector130B includes a numerical representation of chronological ordering128B, date202B, and entries204B. Vector130C includes a numerical representation of chronological ordering128C, date202C, and entries204C. Vectors130may include any suitable number of dimensions and represent any suitable number of factors associated with user's102use of application116. The more similar the user's behavior during a use of application116is to other uses of application116, the more similar and/or closer the vectors130representing those uses are to each other.

Navigation prediction tool110may analyze vectors130to predict the behavior of user102when using application116. Navigation prediction tool110may use a neural network such as, for example, an attention network to analyze vectors130to generate an output vector132. The attention network may analyze the numerical representations in each vector130to predict a numerical representation in output vector132. In this manner, the output vector132includes a numerical representation of the predicted behavior of user102in application116. Navigation prediction tool110may use output vector132to direct software application116, according to the predicted user behavior.

Navigation prediction tool110transforms output vector132into an output ordering134using a decoder. Output ordering134may indicate predicted behavior of user102when using application116. In the example ofFIG. 2, navigation prediction tool110transforms output vector132into an output ordering134, showing that user102is predicted to desire Page2and then Page4of application116. This prediction may be based on any suitable number of factors. For example, navigation prediction tool110may have analyzed the actions of user102during previous uses of application116. Navigation prediction tool110may have determined that user102navigates to Page2frequently to perform certain actions and then navigates to Page4to perform certain actions such as, for example, filling in fields with entries204. As a result, navigation prediction tool110may predict that user102will navigate to page2first and then page4. Thus, output ordering134shows Page2and then Page4.

Navigation prediction tool110may then instruct device104to navigate directly to Page2first when user102loads application116. After user102has completed an action on Page2, navigation prediction tool110may instruct device104to navigate to Page4. In particular embodiments, navigation prediction tool110may include a link206on Page2that directs the application116to Page4when the link is activated by user102. In this manner, user102is provided a way to navigate directly from Page2to Page4. As a result, navigation prediction tool110dynamically changes the behavior of software application116to conform to the predicted behavior of user102. In particular embodiments, by dynamically altering the behavior of software application116, navigation prediction tool110reduces the amount of wasted computing resources such as, for example, processor and memory resources and/or network bandwidth.

In certain embodiments, navigation prediction tool110analyzes any certain number of factors to generate output vector132. For example, navigation prediction tool110may analyze the dates202on which user102used application116and/or performed certain actions in application116. Vectors130may include a numerical representation of these dates202. Output vector132may be different depending on the date that user102is requesting to load application116. For example, if navigation prediction tool110predicts that user102navigates to a particular page of application116on a particular day of the week or a particular day of the month, navigation prediction tool110may determine an output vector132that is different on that particular day of the week or that particular day of the month. Navigation prediction tool110may then transform output vector132into a different output ordering208. In the example ofFIG. 2, output ordering208may show a different ordering of pages than output ordering134. In this manner, navigation prediction tool110may dynamically alter the behavior of software application116based on any number of factors such as, for example, the dates202of use.

In particular embodiments, navigation prediction tool110may further predict the entries204that user102will use to fill certain fields of certain interfaces. For example, navigation prediction tool110may determine a frequency210, at which a user102fills in a particular field of an interface with a particular entry204. Navigation prediction tool110then compares that frequency210against a threshold212. Depending on whether frequency210meets or exceeds threshold212, navigation prediction tool110may perform various predictive actions for that particular field. For example, if frequency210does not meet threshold212, navigation prediction tool110may determine a recommended entry214for that particular field. As a result, when user102begins filling in that field, navigation prediction tool110may recommend recommended entry214to user102for selection. In this manner, user102may not waste additional resources completing the field. If frequency210meets threshold212, navigation prediction tool110may predict an entry216for a particular field. The predicted entry may be based on the previous entries204that user102used to fill that field. Navigation prediction tool110may include a numerical representation of those entries in a vector130and make the prediction to output vector132. Navigation prediction tool110may then transform output vector132to produce entry216, in certain embodiments. In certain embodiments, navigation prediction tool110may predict entries216separate from vectors130and output vector132. For example, navigation prediction tool110may use a separate neural network such as, for example, a memory network to predict entry216based on entries204. After navigation prediction tool110has predicted entry216, navigation prediction tool110may automatically fill a particular field with entry216when user102loads the interface that includes that field. In this manner, navigation prediction tool110reduces the amount of computing resources wasted in filling fields of the interface in particular embodiments.

FIG. 3is a flow chart illustrating a method300for predicting navigation, using the system100ofFIG. 1. Generally, navigation prediction tool110performs the steps of method300. By performing method300, navigation prediction tool110reduces the amount of wasted computing resources when using a software application116in particular embodiments.

Navigation prediction tool110begins by receiving a request124to load an application116in step302. The request124may include an authentication122from a user102using device104. In step304, navigation prediction tool110retrieves a record126of previous uses of the application116. The record126may include chronological orderings128that show the chronological orderings of interfaces accessed by the user102during previous uses of application116. In step306, navigation prediction tool110transforms the chronological orderings128in record126into vectors130. Vectors130include numerical representations of the chronological orderings128. Navigation prediction tool110analyzes the vectors130using a neural network, such as an attention network, to generate an output vector132in step308. Output vector132includes a numerical representation of the predicted behavior of user102using application116. Navigation prediction tool110transforms the output vector132into an output ordering134of interfaces in step310. The interfaces may include pages, windows, menus, etc. In step312, navigation prediction tool110directs the application116to a first page, according to the output ordering134, after the application116loads. In this manner, the application116navigates directly to the interface that is predicted to be desired by user102. As a result, user102does not waste computing resources navigating to the desired interface in particular embodiments.

Modifications, additions, or omissions may be made to method300depicted inFIG. 3. Method300may include more, fewer, or other steps. For example, steps may be performed in parallel or in any suitable order. While discussed as navigation prediction tool110performing the steps, any suitable component of system100, such as device(s)104for example, may perform one or more steps of the methods.