Time-bound action suggestion system
By computing the system to identify user parameters and activity time periods, it proactively provides users with personalized time-defined action suggestions, solving the problems of user boredom and resource waste during time-limited activities, and improving user experience and computing resource utilization efficiency.
Patent Information
- Application Number
- CN202210110740.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2016-10-19
- Filing Date
- 2017-09-27
- Publication Date
- 2026-01-23
- Estimated Expiration
- 2037-09-27
AI Technical Summary
Users’ idle time during time-limited activities may lead to boredom and wasted computing resources, and active searching may be distracting.
By computing the system to identify user-related parameters and time-limited activity periods, the system proactively suggests actions for users during these activities, including location-specific and task-specific suggestions. Machine learning models are used to train and improve the accuracy and personalization of these suggestions.
It improves user experience, saves computing resources, reduces user distraction, increases security, and provides more appropriate activity suggestions.
Smart Images

Figure CN114579881B_ABST
Abstract
Description
[0001] Divisional Statement
[0002] This application is a divisional application of Chinese Patent Application No. 201710892428.5, filed on September 27, 2017, which is incorporated by reference in its entirety. TECHNICAL FIELD
[0003] The present disclosure relates generally to suggested actions to users of user devices, and more particularly, to systems and methods for proactively providing time-bound action suggestions. BACKGROUND
[0004] Often users request actions to be taken by their mobile devices or other computer devices, such as performing a search, or providing directions to a particular geographic location of interest. The mobile device is able to process the request and perform a task (e.g., navigation) to satisfy the user's request. When the task begins, the user is often left with idle time. During this idle time, the user can become bored, wasting a valuable opportunity to provide assistance to the user. In some cases, the user will proactively search for something on the user's mobile device to occupy the user's time. However, this proactive searching uses valuable computing resources, and potentially distracts the user. SUMMARY
[0005] Aspects and advantages of embodiments of the present disclosure will be set forth in part in the following description, or can be learned from the description, or can be learned through practice of the embodiments.
[0006] One example aspect of the present disclosure relates to a computer-implemented method for providing time-bound action suggestions. The method includes receiving, by one or more computing devices, data from a user device indicating a user request for a time-limited activity. The time-limited activity is associated with a time period. The method includes identifying, by the one or more computing devices, one or more parameters associated with the user requesting the time-limited activity. The method includes determining, by the one or more computing devices, at least in part, a suggested action based on the one or more parameters associated with the user and the time period associated with the time-limited activity. The method includes providing, by the one or more computing devices, an output to the user device indicating the suggested action.
[0007] Another example aspect of the disclosure relates to a system for providing time-bound action suggestions. The system includes one or more processors and one or more memory devices. The one or more memory devices store instructions that, when executed by the one or more processors, cause the one or more processors to perform operations. The operations include receiving, from a user device, data indicative of a time-bounded activity requested by a user. The time-bounded activity is associated with a time period. The operations include identifying one or more parameters associated with the user requesting the time-bounded activity. The operations include determining a suggested action based at least in part on the parameters associated with the user and the time period associated with the time-bounded activity. The suggested action is capable of being completed within the time period associated with the time-bounded activity. The operations include providing, to the user device, an output indicative of the suggested action.
[0008] Yet another example aspect of the disclosure relates to one or more tangible, non-transitory computer-readable media storing computer-readable instructions that, when executed by one or more processors, cause the one or more processors to perform operations. The operations include receiving data indicative of a time-bounded activity requested by a user associated with a time period. The operations include identifying one or more parameters associated with the user requesting the time-bounded activity. The operations include determining a suggested action based at least in part on the parameters associated with the user and the time period associated with the time-bounded activity. The suggested action is capable of being completed within the time period associated with the time-bounded activity. The operations include providing, to a user device, an output indicative of the suggested action. The user device is configured to communicate the suggested action to the user.
[0009] Other example aspects of the disclosure relate to systems, methods, apparatuses, tangible, non-transitory computer-readable media, user interfaces, memory devices, and user devices for providing time-bound action suggestions.
[0010] These and other features, aspects, and advantages of various embodiments will become better understood with reference to the following description and appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the technology and serve to explain the related principles. BRIEF DESCRIPTION OF DRAWINGS
[0011] Embodiments are discussed in detail below with reference to the accompanying drawings, which are incorporated in and constitute a part of this specification, wherein:
[0012] Figure 1 depicting an example system in accordance with example embodiments of the disclosure;
[0013] Figure 2 depicting an example user interface in accordance with example embodiments of the disclosure;
[0014] Figure 3 depicting training of a machine learning model according to example embodiments of the present disclosure;
[0015] Figure 4 depicting a flowchart of an example method according to example embodiments of the present disclosure; and
[0016] Figure 5 depicting an example system according to example embodiments of the present disclosure. DETAILED DESCRIPTION
[0017] Reference will now be made in detail embodiments, one or more examples of which are illustrated in the drawings. Each example is provided by way of explanation of the embodiments and not as a limitation. In fact, it will be apparent to those skilled in the art that various modifications and variations can be made in the embodiments without departing from the scope or spirit of the present disclosure. For instance, features illustrated or described as part of one embodiment, can be used with another embodiment to yield still a further embodiment. Thus, it is intended that aspects of the present disclosure cover such modifications and variations.
[0018] Example aspects of the present disclosure relate to providing time-bound action suggestions for a user to complete within a given time period while performing another time-constrained activity. The time-bound activity can be, for example, an activity associated with a particular time period for completing the activity. For example, a user can request that its user device (e.g., a mobile phone) perform a time-bound activity, such as navigating the user to a destination location. The time period associated with navigating to the destination location can include the time required to travel to the destination location. The user device can send data indicative of the navigation activity to a computing system, which can identify one or more parameters associated with the user. Those parameters can include, for example, a software application downloaded to the user's user device, a podcast that the user frequently listens to, the user's calendar, the user's contacts, etc. The computing system can use the one or more parameters associated with the user to proactively suggest to the user a specific action that can be completed within the time required to travel to the destination. For example, in the case where the travel time to the location is forty-five minutes, the computing system can suggest that the user listen to a forty-two minute long episode of the user's favorite podcast, so that the podcast can provide entertainment for the user while the user is traveling to the destination location. In this way, the systems and methods of the present disclosure can proactively provide suggested actions to a user during otherwise idle time while a time-bound activity requested by the user (e.g., navigation) is being completed.
[0019] More specifically, a user can request a time-limited activity via a user device. As indicated above, a time-limited activity can be associated with a time period for completion of the activity. The user device can include a mobile phone, a tablet, a laptop, etc. As an example, a user can request that the user device navigate the user to a destination location. The time period associated with such navigation can include the time for the user to travel to the destination location. In another example, a user can use her user device to place a transportation request (e.g., via a rideshare software application) to be taken to an airport, and the time period can include the estimated time for the requested vehicle to arrive to pick up the user. In accordance with aspects of the present disclosure, the user device can send data indicative of the time-limited activity to a remote computing system.
[0020] The computing system can receive data indicative of a time-limited activity requested by a user, and compare its associated time period to an initial time threshold. This can allow the computing system to determine whether it is worthwhile to suggest an action to the user during the time period. The initial time threshold can be selected (e.g., by a user, a system administrator, a default setting) such that if the time period associated with the time-limited activity is below the threshold, the computing system will not suggest an action to the user. For example, the initial time threshold can be thirty seconds, one minute, two minutes, etc. If the time period associated with the time-limited activity is above the initial time threshold, the computing system can suggest an action to the user.
[0021] To help determine an appropriate action specifically for the user, the computing system can identify one or more parameters associated with the user. For example, the computing system can obtain a first set of parameters from the user device (e.g., a contacts list, a to-do list), and / or a second set of parameters from a computing device remote from the user device (e.g., a user calendar, downloaded software applications, downloaded media content, search queries, email data). In some implementations, these parameters can include a location (e.g., a destination, a current location of the user), a time of day, a type of user device, etc. The remote device can include, for example, a cloud-based server system associated with a provider of the user device and / or its operating system.
[0022] In addition to the above, a user can be provided with control to allow the user to make decisions about whether and when the systems, programs, or features described herein can enable collection of user information (e.g., information about a user's social network, social actions, or activities, a user's preferences, or a user's current location), and if the user is sent content or communications from a server that is likely to result in a personally- identifiable information, as well as give the user control over what information is collected about the user, how it is used, and what it is used for. In addition, certain data can be treated in one or more ways before it is stored or used, so that personally-identifiable information is removed. As one example, a user's identity can be treated so that no personally- identifiable information can be determined for the user. Thus, users can have control over information that is collected about them, and how it is used.
[0023] The computing system can determine a suggested action for the user based at least in part on the parameter and the time period associated with the time-bounded activity. This can allow the computing system to suggest an action that is customized for the particular user and that can be completed within the time period associated with the user's requested time-bounded activity. Moreover, the system can proactively suggest an action for the user without the user requesting a particular action and / or otherwise requesting the suggested action from the system. In some implementations, the suggested action can include a location-specific action, such as a suggested stop along a travel route (e.g., a restaurant, a store). A location-specific action can be an action that does include (and / or is associated with) a particular location (e.g., for completing the action). In some implementations, the suggested action can include a task-specific action, such as those for entertaining the user and / or those for achieving a particular user goal. Moreover, a task-specific action can be an action that does not include (and / or is not associated with) a particular location (e.g., for completing the action). The user need not travel to, enter, and / or the like, a particular location to complete a task-specific action. As an example, the computing system can receive data indicative of a navigation activity that indicates that the user will spend forty-five minutes driving to a destination. The computing system can identify a parameter that indicates media content (e.g., a podcast) that is typically streamed and / or downloaded by the user. The computing system can proactively suggest to the user to listen to a forty-two minute episode of the user's favorite podcast (e.g., podcast A) during the forty-five minute car ride to entertain the user. In another example, the computing system can receive data indicative of a transportation request from the user's current location to an airport. The requested vehicle arrives at the user's location to pick up the user for an estimated ten minutes. The computing system can identify a parameter associated with the user's calendar that indicates that the user has an airline flight later that day and proactively suggest to the user to check in for her flight. This can allow the user to complete the purpose of checking in for her flight. In another example, the computing system can identify a parameter associated with the user's to-do list that indicates that the user wants to "call a dry cleaner" at some point. The computing system can suggest to the user to "call a dry cleaner" while waiting for the vehicle to arrive. In these examples, the suggested action can be completed within the time period associated with the time-bounded activity (e.g., navigation, transportation request).
[0024] In some implementations, the computing system can determine the suggested action based at least in part on a user engagement level and / or an activity type associated with the user-requested time-limited activity. The user engagement level can indicate a degree of interaction (or lack thereof) required of the user during performance of the time-limited activity. This can allow the computing system to make contextually-aware and activity-appropriate suggestions. For example, the user engagement level for a navigation activity can be high given the activity type (e.g., driving along a navigable route). The user engagement level for a transportation request activity can be low given the activity type (e.g., waiting for a vehicle). Thus, in situations where the user engagement level is high, and / or the activity type (e.g., driving) indicates that the user will be more actively engaged, the computing system can suggest an action that can require less active interaction from the user (e.g., listening to a podcast). However, in situations where the user engagement level is low, and / or the activity type (e.g., waiting for a ride) indicates that the user will be less actively engaged, the computing system can suggest an action that can require more active interaction from the user (e.g., using the user device to check-in for a user flight, fill out a passport renewal application). Additionally, and / or alternatively, the suggested action can be based at least in part on a reason for the user-requested time-limited activity. For example, if the user requests navigation to Santa Fe, New Mexico, the computing system can suggest that the user listen to a podcast related to Santa Fe.
[0025] The computing system can provide output to the user device indicating the suggested action. For example, the computing system can generate audio output indicating the suggested action (e.g., "The drive from your location to the destination is forty-five minutes, you have one episode of podcast A that is forty-two minutes, would you like to listen to the podcast?"). Additionally, and / or alternatively, the computing system can generate visual output indicating the suggested action, such as a user interface, and / or a message that can be displayed on the user interface via the user device. The user can confirm the suggested action to implement it, or reject the suggested action to ignore it. As will be further described herein, the computing system can use these confirmations and / or rejections to track user preferences and / or train its model for determining suggested actions.
[0026] Example aspects in accordance with the present disclosure provide time-bound action suggestions that can improve a user's experience with a user device. More specifically, the systems and methods described herein can proactively provide suggested actions that are specifically tailored to a user. This can allow the user to accomplish more tasks in a time-efficient and relevant manner, and can be entertaining. Moreover, by utilizing data indicative of a time-bounded activity requested by the user, the systems and methods of the present disclosure can ultimately suggest more appropriate actions for the user as the time period of the activity requested by the user is more explicit (and possibly more accurate) than, for example, relying on a user's presumed intent (e.g., the user's geographic intent). The suggested actions can be accomplished within the time period associated with the activity requested by the user, which the user can not otherwise occupy. This can increase the likelihood that the user will decide to implement the suggested actions. In turn, by determining a user engagement level and / or an activity type, the systems and methods described herein can help ensure that the suggested actions are contextually aware and activity appropriate.
[0027] The systems and methods of the present disclosure provide improvements to user device computing technology by enabling a user device to utilize computing resources of a described computing system to proactively suggest user-specific actions to a user. For example, a user device can utilize a computing system to identify one or more parameters associated with a user requesting a time-bounded activity, proactively determine a suggested action (e.g., a task-specific action) based at least in part on the one or more parameters associated with the user and a time period associated with the time-bounded activity requested by the user, and provide an output to the user device indicative of the suggested action. Doing so using a computing system can help conserve computing resources (e.g., processing resources, power resources) of the user device by reducing the need for the user to perform internet searches and / or otherwise search for content during idle time. Moreover, by using a computing system to proactively suggest actions to a user, the systems and methods can help reduce the user's distraction from an activity (e.g., driving), thus increasing the user's safety. Additionally, by comparing the time period associated with the time-bounded activity to an initial time threshold, the computing system can avoid unnecessarily using computing resources to inappropriately determine suggested actions that are likely to be rejected by the user.
[0028] Additionally, the suggested actions can be created and communicated by a computing system that is remote from the user device. The computing system can have significantly more resources and data to help improve the ability to create suggested actions. For example, the computing system can utilize its computing resources to search millions of documents about Santa Fe to create a short summary of the city and / or relevant up-to-date news. Thus, the suggested actions can be more efficiently and effectively determined and provided.
[0029] Reference is now made to the following drawings Figure 1Example embodiments of the present disclosure will be discussed in greater detail. Figure 1 An example system 100 according to example embodiments of the present disclosure is depicted. The system 100 can include a computing system 102 and at least one user device 104. The computing system 102 can be remote from the at least one user device 104. For example, the computing system 102 can be a cloud-based computing system. In some implementations, the computing system 102 can be associated with an operating system, a software application, a provider of the user device, and / or another entity. The computing system 102 and the user device 104 can be interconnected via a direct connection and / or can be coupled via a communication network, which can be wired and / or wireless, such as a LAN, a WAN, the Internet, etc., and / or can include any number of wired and / or wireless communication links.
[0030] The computing system 102 can include various means for performing various operations and functions described herein. For example, the computing system 102 can include one or more computing devices 106 (e.g., servers). As will be further described herein, the computing device 106 can include one or more processors and one or more memory devices. The one or more memory devices can include, for example, one or more tangible, non-transitory computer-readable media storing computer-readable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations and functions, for example, those described herein for providing time-bound action suggestions.
[0031] The user device 104 can be various types of user devices, such as a telephone, a smartphone, a tablet computer, a navigation system, a personal digital assistant (PDA), a laptop computer, a desktop computer, a computerized watch (e.g., a smartwatch), computerized eyewear, computerized headwear, other types of wearable computing devices, a gaming system, a media player, an e-book reader, a television platform, an embedded computing device, and / or any other type of mobile and / or non-mobile computing device. In some implementations, the user device 104 can be located (temporarily or permanently) in a vehicle 108 (e.g., an automobile). The user device 104 can include various means for performing various operations and functions described herein. For example, the user device 104 can include one or more processors and one or more memory devices.
[0032] User 110 can provide user input 112 to user device requesting a time-limited activity 114. As indicated above, time-limited activity 114 can be associated with a time period 116. Time period 116 can be, for example, a time to complete the activity. Time period 116 can be explicit and / or inferred. As an example, time-limited activity 114 can include navigation of user 110 to a destination location, and time period 116 can include a time to travel to the destination location (e.g., via vehicle 108) as explicitly specified during the navigation process. Additionally, and / or alternatively, if the user is making her normal commute in her car, time period 116 can be inferred based at least in part on an estimated route, speed, traffic, time of day, etc. In another example, user 110 can use user device 104 to make a transportation request (e.g., via a software application) that will take the user to a destination location (e.g., an airport), and time period 116 can include an estimated time for the requested vehicle to arrive to pick up user 110.
[0033] User device 104 can receive user input 112 from the user requesting time-limited activity 114. In some implementations, user device 104 can process user input 112 to determine information associated with time-limited activity 114, such as time period 116, one or more locations associated with time-limited activity 114, etc. For example, in the case where time-limited activity 114 is a request for navigation to a destination location, user device 104 can determine time period 116 (e.g., an explicit and / or inferred time to travel to the destination location), an origin location, a destination location, a route, a heading of the user, traffic, etc. User device 104 can send data 118 indicating the user's requested time-limited activity 114 to computing device 106 (e.g., computing system 102). Data 118 can also and / or alternatively indicate information associated with time-limited activity 114 determined by user device 104.
[0034] Computing device 106 can receive data 118 indicating the user's requested time-limited activity 114 (e.g., from user device 104). In some implementations, computing device 106 can receive data indicating time period 116 from user device 104. Computing device 106 can determine time period 116 associated with time-limited activity 114 (e.g., based at least in part on information associated with the time-limited activity).
[0035] In some implementations, the computing device 106 can compare the time period 116 associated with the time-limited activity 114 to an initial time threshold 120. The initial threshold 120 can be selected (e.g., by a user, system administrator, default setting) such that if the time period 116 associated with the time-limited activity 114 is below the initial threshold 120, the computing device 106 will not determine a suggested action for the user 110. The initial time threshold 120 can be five seconds, ten seconds, thirty seconds, one minute, two minutes, etc. If the time period 116 associated with the time-limited activity is above the initial time threshold 120, the computing device 106 can determine a suggested action for the user 110. However, if the time period 116 associated with the time-limited activity is below the initial time threshold 120, the computing device 106 can refrain from determining a suggested action for the user 110. Thus, the initial time threshold 120 can indicate a minimum time required for a suggested action. This can allow the computing system 102 to determine whether it is worth suggesting an action for the user 110 during the time period 116 and avoid wasting computing resources for a time period that is too short to complete a suggested action.
[0036] As an example, a user-requested time-limited activity 114 can include navigating the user 110 to a destination location, such as a neighbor's house. The time period 116 for traveling to the neighbor's house can be one minute. The initial time threshold 120 can be two minutes. Thus, the computing device 106 can refrain from suggesting an action to the user 110 because the time period until the user 110 reaches the neighbor's house is below the threshold (e.g., not worth filling with a suggested action). However, if the time period 116 for traveling to the neighbor's house is ten minutes (e.g., due to construction), the computing device 106 can determine a suggested action for the user 110 during the travel to the neighbor's house. In some implementations, the computing device 106 can provide data 121 to the user device 104 indicating that the time period 116 exceeds the initial time threshold 120.
[0037] To help determine an appropriate action specific to user 110, computing device 106 can identify one or more parameters 122A-B associated with user 110 that requested time-limited activity 114. For example, computing device 106 can obtain a first set of parameters 122A from user device 104 and / or a second set of parameters 122B from one or more computing devices (e.g., one or more computing devices 106) remote from user device 104. The first set of parameters 122A can include a contact list, a to-do list, information associated with time-limited activity 114, and / or other information associated with user 110 that can be stored and / or accessed by user device 104. The second set of parameters 122B can include, for example, a user's calendar, software applications the user has downloaded, media content the user has accessed (e.g., downloaded, played, streamed), search queries of the user, email data, and / or other data information associated with user 110 that can be stored and / or accessed by computing device 106. In some implementations, to conserve computing resources, user device 104 can only provide (and / or computing device 106 can only obtain) the first set of parameters 122A (and / or the second set of parameters 122B) in the event that time period 116 exceeds initial threshold 120. As indicated above, the systems and methods described herein can provide a protective setting for user information and the ability for the user to control which information the computing system uses.
[0038] Computing device 106 can determine a suggested action based at least in part on parameters 122A-B associated with user 110 and time period 116 associated with time-limited activity 114. The suggested action can be completed within time period 116 associated with time-limited activity 114. For example, when determining the suggested action, the computing device can compile a list of possible actions and disregard from the list any action that cannot be completed within time period 116 associated with time-limited activity 114. Computing device 106 can proactively determine a suggested action when user 110 does not request a particular action to be suggested and / or does not request computing device 106 to determine and / or provide a suggested action to user 110. This can help reduce user distraction (e.g., caused by a search initiated by the user). Moreover, by using parameters associated with user 110, computing device 106 can proactively suggest an action that is tailored to a particular user 110 and can be completed within time period 116 associated with the user's requested time-limited activity 114. This can increase the chance that user 110 will accept the suggested action (e.g., as opposed to searching user device 104 and / or the Internet for entertainment).
[0039] The computing device 106 can determine various numbers and types of suggested actions. The suggested actions can be generally useful, entertaining, and / or specific to the user 110. The computing device 106 can determine one or more suggested actions for the user 110 that can be completed within the time period 116. In some implementations, the suggested actions can include location-specific actions, such as suggested stops (e.g., restaurants, stores) along a travel route. A location-specific action can be an action that does include (and / or is associated with) a particular location (e.g., for completing the action). In some implementations, the suggested actions can include task-specific actions, such as actions for entertaining the user and / or for achieving a particular user goal. Also, a task-specific action can be an action that does not include (and / or is not associated with) a particular location (e.g., for completing the action).
[0040] As an example, the computing device 106 can receive data 118 indicating that the user 110 is to spend fifty-five minutes traveling to a destination location for a navigation activity. Among other things, the computing device 106 can identify parameters indicating media content (e.g., a podcast) that is typically streamed and / or downloaded by the user 110. The computing device 106 can determine that the user 110 has not yet accessed (e.g., downloaded, streamed) a new episode of a user favorite podcast (e.g., podcast A). Also, the computing device 106 can determine that the podcast has a duration of forty-two minutes, and thus can be completed within the time period 116 (e.g., forty-five minutes) of the time-limited activity 116. As such, the computing device 106 can designate the task of listening to the podcast as a suggested action for the user 110 to occupy the forty-five minutes of travel time.
[0041] In another example, the computing device 106 can receive data 118 indicating that the user 110 is traveling on the user's morning commute. The commute is approximately twenty minutes, and the user's to-do list indicates that the user 110 wants to "call Jack" at some point. The computing device 106 can proactively designate the task of "calling Jack" as a suggested action that can be completed during the user's morning commute.
[0042] In yet another example, the computing device 106 can receive data 118 indicating a transportation request from a current location of the user to an airport. The time period 116 associated with such a time-limited activity can be ten minutes, as the requested vehicle will take an estimated ten minutes to arrive at the user's location to pick up the user 110. The computing device 106 can identify a parameter associated with the user's calendar indicating that the user 110 has an airline flight later that day, and proactively determine a suggested action for the user to check-in for the user's flight. This can allow the user to accomplish her goal of checking in for her flight, which can typically take less than 10 minutes (e.g., the time period 116). Additionally, and / or alternatively, the computing device 106 can identify a parameter associated with the user's to-do list indicating that the user 110 wants to "call a dry cleaner" at some point. The computing device 106 can suggest that the user "call a dry cleaner" while waiting for the requested vehicle to arrive.
[0043] In some implementations, the computing device 106 can receive data 124 indicating at least one of a user engagement level 126 associated with the time-limited activity 114 and an activity type 128 associated with the time-limited activity 114. The computing device 106 can determine the suggested action based at least in part on at least one of the user engagement level 126 and the activity type 128. The computing device 106 can obtain the data 124 indicating the user engagement level 126 and / or the activity type 128 from the user device 104 (e.g., a user device capable of determining such information) and / or one or more other computing devices.
[0044] The user engagement level 126 can indicate an amount of interaction (or lack thereof) required of the user 110 during performance of the time-limited activity 114. The activity type 128 can indicate a type of activity that the user can perform during the time-limited activity 114. For example, given an activity type 128 (e.g., driving along a navigable route), the user engagement level 126 for a navigation activity can be high. Given an activity type 128 (e.g., waiting for a vehicle), the user engagement level 126 for a transportation request activity can be low. Thus, where the user engagement level 126 is high and / or the activity type 128 (e.g., driving) indicates that the user 110 will be more actively engaged, the computing device 106 can determine a suggested action (e.g., listening to a podcast) that can require less active interaction of the user 110. However, where the user engagement level 126 is low and / or the activity type 128 (e.g., waiting for a ride) indicates that the user 110 will be less actively engaged, the computing device 106 can determine a suggested action (e.g., using the user device 104 to check-in for a user flight, filling out a passport renewal application) that can require more active interaction of the user 110. In this way, the computing device 106 can determine a contextually-aware and activity-appropriate suggested action.
[0045] Additionally, and / or alternatively, the suggested action can be based at least in part on the user request for the time-bounded activity 114 and / or a reason for the destination location associated with the time-bounded activity 114. For example, if the user requests navigation to a baseball stadium, the computing device 106 can suggest that the user listen to a podcast related to the home team of the baseball stadium. In another example, the time-bounded activity 114 can be associated with a request for transportation to a destination location (e.g., Santa Fe, New Mexico). The suggested action can be associated with the destination location, such as reading a recent news article related to Santa Fe.
[0046] The computing device 106 can generate an output 130 indicating the suggested action. The computing device 106 can provide the output 130 indicating the suggested action to the user device 104. The output 130 can include at least one of an audio output indicating the suggested action and a visual output indicating the suggested action that can be displayed via a user interface on the user device 104. The output 130 can be generated, for example, by resolving parameters and, in some implementations, by identifying a software application associated with the suggested action. In this way, the computing device 106 can proactively provide the suggested action to the user 110 without the user requesting that the computing device 106 determine and / or provide the suggested action.
[0047] In some implementations, the output 130 can include a user interface indicating the suggested action that can be displayed on the user device 104. In some implementations, the output 130 can include a message to be displayed on a user interface via a display device (e.g., the user device 104). For example, Figure 2 An example user interface 200 is depicted in accordance with example embodiments of the present disclosure. The user interface 200 can be displayed via a display device 202 of the user device 104. A visual output 204 can indicate one or more suggested actions 205A-C and can be displayed via the user interface 200. Additionally, and / or alternatively, an audio output 206 can indicate the suggested action (e.g., "It is forty-five minutes to travel from your location to the destination, you have one episode of podcast A that is forty-two minutes, do you want to listen to the podcast?"). The user device 104 can be configured to communicate the audio output 206 to the user 110 via an audio output member (e.g., a speaker).
[0048] The user 110 can confirm the suggested action to implement it, or reject the suggested action to ignore it. The user 110 can provide user input 208 to confirm or reject one or more of the suggested actions 205A-C. For example, the suggested actions 205A-C can be associated with interactive elements (e.g., widgets, soft buttons, hyperlinks) such that the user can implement, initiate, start, etc. the suggested actions 205A-C by interacting with the interactive elements. For example, the user 110 can select the suggested action 205A such that the user device 104 begins playing the podcast for the user 110. In some implementations, the user 110 can confirm one or more of the suggested actions 205A-C via user input (e.g., voice input) that indicates confirmation of one or more of the suggested actions 205A-C (e.g., "yes," "play the podcast"). The user 110 can reject one or more of the suggested actions 205A-C by providing user input (e.g., a swipe touch interaction, selection of an ignore element) that indicates rejection of one or more of the suggested actions 205A-C. In some implementations, the user 110 can reject a suggested action 205A-C by avoiding providing any input regarding the suggested action 205A-C for a particular time period, thereby ignoring the suggestion. After such a time period, the user device 104 can remove the visual output 204 from the user interface 200 and / or provide a reminder (e.g., visual, audio) to the user 110.
[0049] The computing system 102 can use these confirmations and / or rejections to train and / or build its model for determining suggested actions. Figure 3 Training / building of a machine learning model in accordance with example embodiments of the present disclosure is depicted. The computing system 102 can include and / or otherwise be associated with a training computing system 300, which can be implemented locally and / or remotely from the computing device 106. The training system 300 can include a simulation trainer 302 that trains and / or helps build, e.g., a suggestion model 304 (e.g., stored and / or used by the computing system 102) using various training or learning techniques. The model 304 can be a machine learning model associated with determined suggested actions. The model 304 can be or can include various machine-learned models, such as neural networks (e.g., deep neural networks) or other multi-layer non-linear models.
[0050] Model trainer 302 is capable of training model 304 at least in part based on a set of training data 306. In some implementations, training data 306 can be provided by computing system 102 or otherwise selected (e.g., from a database). For example, model trainer 302 can train model 304 using training data 306 that instructs the user to confirm and / or reject past suggestions. Computing device 106 is capable of receiving data 132 (e.g., actions 205A-C instructing user 110 to confirm or reject suggestions) Figure 1 (As shown in the diagram). The computing device 106 is capable of training and / or constructing a machine learning model 304 associated with the determined suggested actions (e.g., 205A-C) based at least in part on data 132 indicating confirmation or rejection. For example, training data 304 indicating known suggested actions that have been confirmed and / or rejected by user 110 can be used to train and / or construct model 304. Additionally, and / or alternatively, training data 304 can be a type of data that includes information associated with user 110 and / or the requested time-limited activity 114 when user 110 confirms or rejects the suggested action, which is related to the suggested action. This training can help construct and / or improve model 304 to more accurately reflect a particular user's preference for certain suggested actions during certain time-limited activities (and / or other situations). In this way, the computing system 102 is able to better understand user preferences and use them (e.g., as parameters) to determine suggested actions (e.g., 205A-C). This can help increase the likelihood that the computing device 106 will determine the suggested actions 205A-C to be implemented by the user 110, thereby avoiding the use of processing resources for undesirable suggested actions.
[0051] Figure 4 A flowchart illustrating an example method for providing time-defined action recommendations according to an exemplary embodiment of this disclosure is provided. One or more portions of method 400 can be implemented by one or more computing devices, such as... Figure 1 and Figure 2 Those shown. Furthermore, one or more portions of method 400 can be implemented in the apparatus described herein (e.g., as shown). Figure 5 The algorithm is implemented on the hardware component shown to proactively provide users with time-defined action suggestions, for example. For illustrative and discussion purposes, Figure 4 The steps performed in a specific order are described. Using the disclosure provided herein, those skilled in the art will understand that the steps of any method discussed herein can be adapted, rearranged, extended, omitted, or modified in various ways without departing from the scope of this disclosure.
[0052] At (402), the method 400 can include receiving a request for a time-limited activity. For example, the user device 104 can receive a user input 112 requesting performance of a time-limited activity 114. The time-limited activity 114 can be associated with a time period 116. For example, as described herein, the time-limited activity 114 can include navigation of the user 110 to a destination location, and the time period 114 can include a time to travel to the destination location. At (404), the user device 104 can provide data 118 indicative of the time-limited activity 114 to a computing device 106 of the computing system 102. The computing device 106 can receive the data from the user device 104 at (406) indicative of the user-requested time-limited activity 116.
[0053] The time period 116 associated with the time-limited activity 114 can be determined in various ways. In some implementations, the user device 104 can determine the time period 116 associated with the time-limited activity 114 by processing information associated with the requested time-limited activity 114 and / or by receiving data indicative of the time period 116 from another computing device. The user device 104 can provide data indicative of the time period 116 (e.g., included in the data 118 and / or other data) to the computing device 106. In some implementations, the computing device 106 can determine the time period 116 associated with the time-limited activity 114. To do so, the computing device 106 can process information associated with the time-limited activity 114 (e.g., time until a requested vehicle picks up the user, distance between a requested vehicle and the user) and / or receive data indicative of the time period 116 from another computing system (e.g., associated with a transportation service provider system).
[0054] At (408), the method 400 can include comparing the time period to an initial time threshold. For example, the computing device 106 can compare the time period 116 associated with the time-limited activity 114 to the initial time threshold 120 indicating a minimum time required for the suggested action (e.g., 205A-C). As described above, this can allow the computing device 106 to determine whether it is worth expending the computing resources required to determine one or more suggested actions 205A-C. In some implementations, at (410), the computing device 106 can provide data 121 indicating whether the time period 116 exceeds the initial time threshold 120. The user device 104 can receive such data at (412). For example, this can allow the user device 104 to determine whether to provide parameters associated with the user 110 to the computing device 106. For example, in the case that the time period 116 does not exceed the initial time threshold 120, the user device 104 can refrain from providing parameters associated with the user 110 (e.g., 122A) to the computing device 106. In some implementations, in the case that the time period 116 does exceed the initial time threshold 120, the user device 104 can provide parameters associated with the user 110 (e.g., 122A) to the computing device 106.
[0055] At (414), the method 400 can include identifying one or more parameters associated with the user 110. For example, the computing device 106 can identify one or more parameters 122A-B associated with the user 110 requesting the time-limited activity 114. As described herein, the parameters associated with the user 110 can include a first set of parameters 122A obtained from the user device 104 (e.g., contact list, to-do list) and / or a second set of parameters 122B obtained from a computing device remote from the user device 104 (e.g., user calendar, downloaded software applications, downloaded media content). Additionally, and / or alternatively, at (416), the method 400 can include receiving data indicating a user engagement level and / or an activity type. For example, the computing device 106 can receive data indicating an activity type 128 (e.g., driving) associated with the time-limited activity 114 (e.g., navigation of a car), and / or can receive data indicating a user engagement level 126 (e.g., high) associated with the time-limited activity 114 (e.g., navigation of a car). The engagement level 126 and the activity type 128 can be received by the computing device 106 in the same and / or different data sets.
[0056] At (418), the method 400 can include determining a suggested action. For example, the computing device 106 can determine (proactively) a suggested action 205A-C based at least in part on one or more parameters 122A-B associated with the user 110 and the time period 116 associated with the time-limited activity 114. Different types of suggested actions can be determined using different types of parameters 122A-B. The suggested action 122A-B can be completed within the time period 116 associated with the time-limited activity 114. As described herein, the suggested action 205A-C can be a task-specific action that is independent of a location for completing the action. For example, the computing device 106 can receive data 118 indicating a transportation request from a current location of the user to a restaurant. The time period 116 associated with such a time-limited activity can be ten minutes, as the requested vehicle will take approximately ten minutes to reach the location of the user to pick up the user 110. The computing device 106 can identify a parameter associated with a to-do list of the user 110 indicating that the user 110 wants to "call a dry cleaner" at some point in time. The computing device 106 can suggest that the user "call a dry cleaner" while waiting for the vehicle to arrive. In some implementations, the computing device 106 can determine (proactively) a suggested action (e.g., call a dry cleaner) based at least in part on a user engagement level 126, which can be low while the user 110 is waiting for the requested transportation. Additionally, and / or alternatively, the computing device 106 can determine a suggested action (e.g., make a call) based at least in part on an activity type 128 (e.g., waiting) such that the safety and / or awareness of the user is not compromised by performing the suggested action. In some implementations, the suggested action can be based at least in part on a history of the user (e.g., confirming / rejecting suggested actions), based on other individuals (e.g., other users / drivers), and / or can be a canned suggestion.
[0057] At (420) and (422), the method 400 can include generating and providing an output indicating the suggested action. For example, the computing device 106 can generate an output 130 indicating one or more suggested actions 205A-B. The output 130 can include at least one of an audio output 206 indicating the suggested action 205A-C and a visual output 204 (e.g., a text message, a graphical message) indicating the suggested action 205A-C (e.g., "call a dry cleaner") displayable via the user interface 200 on the user device 104. The computing device 106 can provide the output 130 indicating the suggested action 205A-C to the user device 104.
[0058] At (424), the user device 104 can receive the output 130 indicating the suggested actions 205A-C. The user device 104 can be configured to transmit the suggested actions 205A-C to the user 110 (e.g., via the display device 202) at (426). The user 110 can view (e.g., visual output 204), hear (e.g., audio output 206), and / or feel (e.g., a vibration) an indication of the suggested actions. The user 110 can confirm and / or reject one or more of the suggested actions 205A-C. For example, at (428), the user device 104 can receive user input 208 confirming and / or rejecting one or more of the suggested actions 205A-C.
[0059] In the event that the user 110 confirms more than one suggested action, the user device 104 can implement the actions in a particular order and / or simultaneously, if possible. For example, the user device 104 can implement the suggested actions 205A-C in the order in which they were transmitted to the user 110, in the order in which they were confirmed by the user 110, and / or based on the user’s preferences (e.g., as determined by the model 304) such that the most preferred action is implemented first.
[0060] At (430) and (432), respectively, the method 400 can include providing and receiving data indicating that the user confirmed or rejected the suggested actions 205A-C. For example, the user device 104 can provide data 132 indicating that the user 110 confirmed and / or rejected the suggested actions 205A-C. The computing device 106 can receive the data 132 from the user device 104 indicating that the user 110 confirmed and / or rejected the suggested actions 205A-C. At (434), the computing device 106 can update, build, train, etc. the model 304 associated with determining the suggested actions 205A-C based at least in part on the data 132 indicating the confirmation and / or rejection. In this way, the computing system 102 can learn and / or track the preferences of the user 110. The computing system 102 can use the model 304 to determine suggested actions for the user 110 that have a higher likelihood of being confirmed in line with the user’s preferences.
[0061] Figure 5 An example system 500 in accordance with example embodiments of the present disclosure is depicted. The system 500 can include a computing system 502 and one or more user devices 504. The computing system 502 and the user devices 504 can correspond to the computing system 102 and the at least one user device 104 as described herein. The computing system 502 and the user devices 504 can be configured to communicate via one or more networks 505.
[0062] The computing system 502 can include one or more computing devices 506. The computing device 506 can include one or more processors 508A and one or more memory devices 508B. The one or more processors 508A can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, a FPGA, a controller, a microcontroller, etc.) and can be one processor or a plurality of processors that are operatively connected. The memory devices 508B can include one or more non-transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and / or combinations thereof.
[0063] The memory devices 508B can store information accessible by the one or more processors 508A, including computer-readable instructions 508C that can be executed by the one or more processors 508A. The instructions 508C can be any set of instructions that, when executed by the one or more processors 508A, cause the one or more processors 508A to perform operations. In some embodiments, the instructions 508C can be executed by the one or more processors 508A to cause the one or more processors 508A to perform any of the operations and functions of the computing device 106, or any of the operations and functions for which the computing device 106 is configured as described herein, operations for providing time-bounded action suggestions (e.g., one or more portions of the method 400), and / or any other operations or functions for providing time-bounded action suggestions as described herein. As an example, these operations can include receiving data indicative of a user request for a time-bounded activity associated with a time period, identifying one or more parameters associated with the user requesting the time-bounded activity, determining a suggested action based at least in part on the one or more parameters associated with the user and the time period associated with the time-bounded activity, where the suggested action can be completed within the time period associated with the time-bounded activity, and providing output indicative of the suggested action to a user device, where the user device is configured to communicate the suggested action to the user. The instructions 508C can be software written in any suitable programming language, or can be implemented in hardware. Additionally, and / or alternatively, the instructions 508C can be executed on the processors 508A in logically and / or physically separate threads.
[0064] The one or more storage devices 508B can also store data 508D that can be retrieved, manipulated, created, or stored by the one or more processors 508A. The data 508D can include, for example, data indicative of time-limited activities, their associated time periods, initial time thresholds, one or more parameters associated with a user, a user engagement level, an activity type, a suggested action, an output, training data, a suggestion model, and / or other data or information. The data 508D can be stored in one or more databases. The one or more databases can be connected to the computing device 506 by a high-bandwidth LAN or WAN, or can also be connected to the computing device 506 by the network 505. The one or more databases can be distributed, such that they are located in multiple locales.
[0065] The computing device 506 can also include a network interface 508E for communicating with one or more other components of the system 500 (e.g., the user device 504) over the network 505. The network interface 508E can include any suitable components for interfacing with one or more networks, including, for example, transmitters, receivers, ports, controllers, antennas, or other suitable components.
[0066] As described herein, the user device 504 can be any suitable type of computing device. The user device 504 can include one or more processors 510A and one or more memory devices 510B. The one or more processors 510A can include any suitable processing device, such as a microprocessor, microcontroller, integrated circuit, an application-specific integrated circuit (ASIC), a digital signal processor (DSP), a field- programmable gate array (FPGA), a logic device, one or more central processing units (CPUs), a graphics processing unit (GPU) (e.g., specialized for efficiently rendering images), a processing unit that performs other specialized calculations, or the like. The memory devices 510B can include one or more non-transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and / or combinations thereof.
[0067] Memory device 510B can include one or more computer-readable media, and can store information accessible by the one or more processors 510A, including instructions 510C that can be executed by the one or more processors 510A. For example, memory device 510B can store instructions 510C for running one or more software applications, displaying a user interface, receiving user input, processing user input, accessing parameters, etc. as described herein. In some embodiments, instructions 510C can be executable by the one or more processors 510A to cause the one or more processors 510A to perform operations such as any operations and functions for which user device 504 is configured, and / or any other operations or functions of user device 504 as described herein. Instructions 510C can be software written in any suitable programming language or can be implemented in hardware. Additionally, and / or alternatively, instructions 510C can be executed on the processors 510A in logically and / or physically separate threads.
[0068] The one or more memory devices 510B can also store data 510D that can be retrieved, manipulated, created, or stored by the one or more processors 510A. The data 510D can include, for example, data indicative of user input, data indicative of time-limited activities, data indicative of time periods, data indicative of parameters associated with a user, etc. In some implementations, data 510D can be received from another device.
[0069] User device 504 can also include a network interface 510E for communicating with one or more other components of system 500 (e.g., computing device 506) over network 505. Network interface 510E can include any suitable components for interfacing with one or more networks, including for example, transmitters, receivers, ports, controllers, antennas, or other suitable components.
[0070] User device 504 can include one or more input components 510F and / or one or more output components 510G. Input components 510F can include, for example, hardware and / or software for receiving information from a user, such as a touchscreen, touchpad, mouse, data input keys, speakers, microphones suitable for voice recognition, etc. Output components 510G can include hardware and / or software for audibly producing audio content (e.g., a podcast) for a user. For example, audio output components 510G can include one or more speakers, headphones, headsets, cell phones, etc. Output components 510G can include a display device, which can include hardware for displaying a user interface and / or messages for a user. As examples, output components 510G can include a display screen, CRT, LCD, plasma screen, touchscreen, TV, projector, and / or other suitable display components. In some implementations, user device 504 can not include a display device.
[0071] Network 505 can be any type of communications network, such as a local area network (e.g., intranet), wide area network (e.g., Internet), cellular network, or some combination thereof, and can include any number of wired and / or wireless links. Network 505 can also include direct connections between one or more components of system 500. Generally, communications over network 505 can be carried out using a variety of communication protocols (e.g., TCP / IP, HTTP, SMTP, FTP), encodings (e.g., HTML, XML) and / or protection schemes (e.g., VPN, secure HTTP, SSL) as can be necessary to implement the intended functionality of the system.
[0072] The technology discussed herein makes reference to servers, databases, software applications, and other computer-based systems, as well as actions taken and information sent to and from such systems. One of ordinary skill in the art will recognize that the inherent flexibility of computer-based systems allows for a great variety of possible configurations, combinations, and divisions of tasks and functionality between and among components. For example, server processes discussed herein can be implemented using a single server or multiple servers working in combination. Databases and applications can be implemented on a single system or distributed across multiple systems. Distributed components can operate sequentially or in parallel.
[0073] Also, the computing tasks discussed herein as being performed at a server can alternatively be performed at a user device. Similarly, the computing tasks discussed herein as being performed at a user device can alternatively be performed at a server.
[0074] While the subject matter has been described in detail with respect to specific exemplary embodiments and methods, it will be appreciated that those skilled in the art, upon attaining an understanding of the foregoing, can readily alter, modify and / or improve upon the embodiments detailed herein. Accordingly, the scope of the present disclosure is set forth in the following claims, and it is intended that all things within the claims and equivalents thereof be encompassed thereby.
Claims
1. A computer-implemented method, comprising: One or more computing devices receive data indicating time-limited activities of a user for a user device, wherein the time-limited activities are associated with a time period. One or more of the computing devices determine a user engagement level associated with the time-limited activity, wherein the user engagement level associated with the time-limited activity indicates the amount of user interaction during the execution of the time-limited activity; One or more of the computing devices identify one or more parameters associated with the user who has a time-limited activity, wherein the one or more parameters associated with the user who has a time-limited activity include at least one application parameter of one or more software applications that the user device can access; One or more of the computing devices select one or more suggested actions based at least in part on the time period associated with the time-limited activity, the user engagement level associated with the time-limited activity, and the one or more parameters associated with the user; and One or more of the computing devices provide the user device of the user with an output indicating one or more suggested actions selected.
2. The computer-implemented method according to claim 1, further comprising: The activity type associated with the time-limited activity is determined by one or more of the computing devices. The user engagement level associated with the time-limited activity is determined at least in part based on the activity type associated with the time-limited activity.
3. The computer-implemented method according to claim 2, wherein, The activity type associated with the time-limited activity includes one of the following: driving activity, riding activity, or waiting activity.
4. The computer-implemented method according to claim 1, further comprising: When the user engagement level is the first user engagement level, one or more of the computing devices select one or more suggested actions from the first set of suggested actions, and When the user engagement level is the second user engagement level, one or more of the computing devices select one or more suggested actions from the second set of suggested actions.
5. The computer-implemented method according to claim 1, wherein, The one or more parameters associated with the user with the time-limited activity include data indicating the current location of the user on the user device, wherein at least one of the one or more suggested actions is selected at least in part based on the data indicating the current location of the user on the user device, and wherein identifying the one or more parameters associated with the user with the time-limited activity includes receiving the data indicating the current location of the user on the user device.
6. The computer-implemented method according to claim 1, wherein, The one or more parameters associated with the user of the time-limited activity include data indicating the user's future destination on the user device, wherein at least one of the one or more suggested actions is selected at least in part based on the data indicating the user's future destination on the user device, and wherein identifying the one or more parameters associated with the user of the time-limited activity includes receiving the data indicating the user's future destination on the user device.
7. The computer-implemented method according to claim 1, wherein, Each of the one or more suggested actions can be completed within the time period associated with the time-limited activity and can be executed by one or more applications installed on the user device.
8. The computer-implemented method according to claim 1, wherein, The output includes at least one of the following: The audio output of one or more of the suggested actions, and Visual output that can be displayed via a user interface on the user device, indicating one or more of the suggested actions.
9. The computer-implemented method according to claim 1, further comprising: One or more of the computing devices receive data from the user indicating one or more actions to confirm or reject the suggestion; as well as The model associated with the action of selecting one or more of the proposed actions is updated by one or more of the computing devices, at least in part, based on data indicating the confirmation or rejection.
10. The computer-implemented method according to claim 1, wherein, The at least one application parameter of the one or more software applications accessible to the user device includes content associated with one or more of the software applications accessible to the user device.
11. A system comprising: One or more processors; as well as One or more memory devices storing instructions that, when executed, cause one or more of the processors to: Receive data indicating time-limited activities of a user for a user device, wherein the time-limited activities are associated with a time period; Determine the user engagement level associated with the time-limited activity, wherein the user engagement level associated with the time-limited activity indicates the amount of user interaction during the execution of the time-limited activity; Identify one or more parameters associated with the user who has a time-limited activity, wherein the one or more parameters associated with the user who has a time-limited activity include at least one application parameter of one or more software applications that the user device can access; At least a first suggested action and a second suggested action are selected based, at least in part, on the time period associated with the time-limited activity, the user engagement level associated with the time-limited activity, and one or more parameters associated with the user; and The user device is provided with an output indicating at least the first suggested action and the second suggested action.
12. The system of claim 11, further comprising instructions to cause one or more of the processors to perform the following steps: Determine the activity type associated with the time-limited activity. in, The user engagement level associated with the time-limited activity is determined at least in part based on the activity type associated with the time-limited activity.
13. The system according to claim 12, wherein, The activity type associated with the time-limited activity includes one of the following: driving activity, riding activity, or waiting activity.
14. The system of claim 11, further comprising instructions to cause one or more of the processors to perform the following steps: When the user engagement level is the first user engagement level, at least the first suggested action and the second suggested action are selected from the first set of suggested actions. When the user engagement level is the second user engagement level, at least the first suggested action and the second suggested action are selected from the second set of suggested actions.
15. The system according to claim 11, wherein, The one or more parameters associated with the user with the time-limited activity include data indicating the current location of the user on the user device, wherein at least one of the first suggested action and the second suggested action is selected at least in part based on the data indicating the current location of the user on the user device, and wherein the instruction to identify the one or more parameters associated with the user with the time-limited activity includes an instruction to receive the data indicating the current location of the user on the user device.
16. The system according to claim 11, wherein, The one or more parameters associated with the user with the time-limited activity include data indicating the user's future destination on the user device, wherein at least one of the first suggested action and the second suggested action is selected at least in part based on the data indicating the user's future destination on the user device, and wherein the instruction to identify the one or more parameters associated with the user with the time-limited activity includes an instruction to receive the data indicating the user's future destination on the user device.
17. The system according to claim 11, wherein, The at least one application parameter of the one or more software applications accessible to the user device includes content associated with one or more of the software applications accessible to the user device.
18. The system according to claim 11, wherein, The first suggested action is associated with a first application in the one or more software applications, and the second suggested action is associated with a second application in the one or more software applications.
19. The system according to claim 11, wherein, Both the first suggested action and the second suggested action are associated with a given software application in one or more of the software applications.
20. A non-transitory computer-readable medium storing computer-readable instructions, said computer-readable instructions causing said one or more processors to perform operations when executed, said operations including... Receive data indicating time-limited activities of a user for a user device, wherein the time-limited activities are associated with a time period; Determine the user engagement level associated with the time-limited activity, wherein the user engagement level associated with the time-limited activity indicates the amount of user interaction during the execution of the time-limited activity; Identify one or more parameters associated with the user who has a time-limited activity, wherein the one or more parameters associated with the user who has a time-limited activity include at least one application parameter of one or more software applications that the user device can access; One or more suggested actions are selected based at least in part on the time period associated with the time-limited activity, the user engagement level associated with the time-limited activity, and one or more parameters associated with the user; and Provide the user's device with an output instructing the one or more suggested actions.
21. A computer-implemented method, comprising: The vehicle's vehicle computing unit identifies time-limited activities for the user of the vehicle, wherein the time-limited activities are associated with a time period of navigation activities of the vehicle from its current location to its destination location; The vehicle computing device identifies one or more parameters associated with the user, wherein the one or more parameters associated with the user include at least one application parameter of one or more software applications that can be accessed by the vehicle computing device or the user's user device in the vehicle. The vehicle computing device selects one or more suggested actions based at least in part on one or more parameters associated with the user and the destination location of the navigation activity; and The vehicle computing device causes an output indicating one or more suggested actions to be provided to the user.
22. The computer-implemented method according to claim 21, wherein, Identifying time-limited activities for users of the vehicle includes: The vehicle computing device infers an estimated route for the vehicle from its current location to its destination location; The time period is determined by the vehicle computing device based on the estimated route of the vehicle from its current location to its destination location; and The vehicle computing device identifies the time-limited activities of the user for the vehicle, at least based on the time period.
23. The computer-implemented method according to claim 22, wherein, Identifying the time-limited activities of the user for the vehicle is further based on one or more of the following: the time of day or estimated traffic for the time of day.
24. The computer-implemented method according to claim 22, wherein, One or more of the suggested actions include at least one location-specific action.
25. The computer-implemented method according to claim 24, wherein, Selecting one or more of the suggested actions, at least in part, based on the time period associated with the time-limited activity, the one or more parameters associated with the user, and the destination location of the navigation activity, includes: The vehicle computing device identifies one or more suggested stops along the estimated route of the vehicle from its current location to its destination location; and The vehicle computing device selects one or more of the suggested stops along the estimated route of the vehicle from the current location to the destination location as the at least one location-specific action.
26. The computer-implemented method according to claim 21, wherein, One or more of the suggested actions include at least one media content action.
27. The computer-implemented method according to claim 26, wherein, Select one or more of the suggested actions, further based on the time period associated with the time-limited activity.
28. The computer-implemented method according to claim 27, wherein, Selecting one or more of the suggested actions, at least in part, based on the time period associated with the time-limited activity, the one or more parameters associated with the user, and the destination location of the navigation activity, includes: The vehicle computing device identifies at least one media content item based on the destination location; and The vehicle computing device selects at least one media content item as the at least one media content action based on the destination location identification.
29. A vehicle computing device for a vehicle, the vehicle computing device comprising: One or more processors; as well as One or more memory devices storing instructions that, when executed, cause one or more of the processors to: Identify time-limited activities for the user of the vehicle, wherein the time-limited activities are associated with a time period of navigation activities of the vehicle from its current location to its destination location; Identify one or more parameters associated with the user, wherein the one or more parameters associated with the user include at least one application parameter of one or more software applications that can be accessed by the vehicle computing device or the user device of the user in the vehicle. Select one or more suggested actions based at least in part on the one or more parameters associated with the user and the destination location of the navigation activity; and This causes the output indicating one or more suggested actions to be provided to the user.
Citation Information
Patent Citations
Method and system for accurately publishing the data information
CN101034997A
Suggesting things to do during time slots in a schedule
CN102165470A