Patent Description:
Electronic devices also include a variety of components, such as application software, internal hardware, and external hardware (e.g., peripherals and the like) that may be initially configured with generalized default software that supports a wide variety of functions of the component. But, some functions of the component may not be utilized by the user and thus the component may include unnecessary software that may stress the limited memory and/or processing power of the particular component. Moreover, while components of electronic devices may react to real-time notifications from the operating system of various events (e.g., the device shutting down, peripherals being unplugged, loss of power, application software being activated, and the like), such real-time reactions may slow operation of the device. For example, it may take longer to power-down hardware associated with an unplugged peripheral, or it may take longer to load a requested application, other components subscribed to the application, or hardware associated with the requested application. <CIT> describes a user activity pattern may be ascertained using signal data from a set of computing devices. The activity pattern may be used to infer user intent with regards to a user interaction with a computing device or to predict a likely future action by the user. In one implementation, a set of computing devices is monitored to detect user activities using sensors associated with the computing devices. Activity features associated with the detected user activities are determined and used to identify an activity pattern based on a plurality of user activities having similar features. Examples of user activity patterns may include patterns based on time, location, content, or other context. The inferred user intent or predicted future actions may be used to provide improved user experiences, such as personalization, modifying functionality of user devices, or providing more efficient consumption of bandwidth or power.

A computerized method comprises receiving, at an electronic device, machine learning models matched to device metadata from a cloud service, accessing telemetry data representing device usage data, inputting the accessed telemetry data into the received machine learning models to determine notifications to publish to components of the electronic device, publishing the determined notifications to the components, the notifications representing events predicted to occur on the electronic device, and configuring, by the components, the electronic device based on the published notifications.

Referring to the figures, the devices, systems, and methods described herein enable automatically configuring an electronic device using artificial intelligence (AI). The devices, systems, and methods enable accessing telemetry data representing device usage data, inputting the accessed telemetry data into machine learning models that are matched to device metadata, and determining notifications to publish to components of the electronic device. The notifications represent events predicted to occur on the electronic device. The notifications are published to the components of the electronic device such that the electronic device is configured according to the published notifications. The determined notifications enable the identification of optimal settings for the electronic device based on the usage pattern of the device and enable components of the electronic device to preemptively take action on events which are predicted to occur in the near future.

The devices, systems, and methods described herein enable components of the electronic device to utilize personalization, configuration, and predictive notifications to automatically configure the electronic device. The determined notifications increase the intelligence of an operating system of the electronic device, and improve the resilience and overall functioning of the electronic device. The determined notifications enable automatic remediation of the electronic device and may result in less expensive hardware (e.g., Internet of Things (IoT) devices) tailored for user-specific use.

Further, the electronic device, when configured to perform the operations described herein, operates in an unconventional manner to increase the speed of the electronic device, conserve memory, reduce processor load, improve operating system resource allocation, improve user efficiency, increase user interaction performance, reduce error rate, and/or the like.

Referring to <FIG>, an exemplary block diagram illustrates an electronic device <NUM> including an artificial intelligence (AI) client service <NUM> and an AI broker <NUM> according to an embodiment. As will be described in more detail below, the AI client service <NUM> inputs telemetry data that represents at least device usage data into machine learning models <NUM> to determine notifications that are published by the AI broker <NUM> to various components <NUM>, <NUM>, <NUM>, and/or <NUM> of the electronic device <NUM> for automatically configuring the electronic device <NUM>.

The electronic device <NUM> represents any device executing instructions (e.g., as application programs/software, operating system functionality, or both) to implement the operations and functionality associated with the electronic device. The electronic device may include a mobile electronic device or any other portable device. In some examples, the mobile electronic device includes a mobile telephone, laptop, tablet, computing pad, netbook, gaming device, personal digital assistant, and/or portable media player. The electronic device may also include less portable devices such as desktop personal computers, servers, kiosks, tabletop devices, media players, industrial control devices, gaming consoles, wireless charging stations, and electric automobile charging stations. Additionally, the electronic device may represent a group of processing units or other computing devices. As used herein, 'components' of the electronic device <NUM> may include, but are not limited to, an operating system of the electronic device <NUM>, application software (also referred to herein as "applications") that runs on the electronic device <NUM>, internal hardware of the electronic device <NUM>, and/or external hardware (e.g., peripherals and/or the like) communicatively coupled to the electronic device <NUM>.

The electronic device <NUM> includes platform software comprising an operating system (OS) <NUM> or any other suitable platform software to enable application software <NUM> to be executed on the electronic device. The electronic device <NUM> includes internal hardware <NUM>, such as, but not limited to, video (graphic) cards, sound cards, network cards, television tuners, radio tuners, processors, motherboards, memories, hard drives, media drives, batteries, power supplies, and/or the like. The electronic device <NUM> also includes external hardware <NUM>, such as, but not limited to, input devices (e.g., keyboards, trackpads, a mouse, microphones, cameras, drawing tablets, headsets, scanners, and/or the like), output devices (e.g., monitors, televisions, printers, speakers, fax machines, and/or the like), external hard drives, wireless routers, surge protectors, IoT devices, other peripherals, and/or the like.

The electronic device <NUM> includes a universal telemetry client (UTC) <NUM> that gathers telemetry data from the electronic device <NUM> for use by the AI client service <NUM>. The UTC <NUM> is communicatively coupled to the various components of the electronic device <NUM> to receive the telemetry data from the various components, such as, but not limited to, the OS <NUM>, the application software <NUM>, the internal hardware <NUM>, the external hardware <NUM>, and/or the like. The telemetry data gathered by the UTC <NUM> represents device usage data. Specifically, the telemetry data gathered by the UTC <NUM> includes data that represents how the electronic device <NUM> has been used by the user (e.g., the usage pattern over time) and may, in some examples, include real-time data that represents how the electronic device <NUM> is currently being used by the user. The telemetry data gathered by the UTC <NUM> is used to indicate how the user intends to use the electronic device <NUM> in the future. For example, the telemetry data gathered by the UTC <NUM> may enable the AI client service <NUM> to predict events that occur on the electronic device <NUM>, as described herein.

Examples of telemetry data gathered by the UTC <NUM> include, but are not limited to, data from the OS <NUM> representing the personal settings of the user on the electronic device <NUM> (e.g., how the user has personalized the electronic device <NUM>), data from the OS <NUM> representing how particular use of the electronic device <NUM> affects the performance (e.g., battery life, processing load, processing time, loading time, faults, and/or the like) of the electronic device <NUM> and/or one or more components thereof, data representing a fault of the electronic device <NUM> and/or a component thereof, data representing a bad deployment of application software and/or hardware, data representing preferences of the user, data representing expectations of the user, data representing thresholds defined and/or expected by the user, data representing when and/or how the user has used the various application software <NUM>, data representing intended use of application software <NUM>, data representing when and/or how the user has used the various internal hardware <NUM>, data representing intended use of internal hardware <NUM>, data representing when and/or how the user has used the various external hardware <NUM>, data representing intended use of external hardware <NUM>, data representing the closing and/or de-activation of application software <NUM>, data representing the powering-down of internal hardware <NUM>, data representing powering-down and/or disconnection of external hardware <NUM>, data representing the powering-down of the electronic device <NUM>, custom hardware of the electronic device <NUM>, proprietary chips, additional hardware and/or software of the electronic device <NUM> (e.g., a military device, a government device, a developer device, etc.), whether the electronic device <NUM> is a work device or a personal device, and/or the like.

The UTC <NUM> is communicatively coupled to the AI client service <NUM>. As will be described in more detail below, the UTC <NUM> transmits or otherwise provides the telemetry data to the AI client service <NUM>, which inputs the telemetry data into the machine learning models <NUM> to determine notifications that are published by the AI broker <NUM> to various components <NUM>, <NUM>, <NUM>, and/or <NUM> of the electronic device <NUM>. The UTC <NUM> is also communicatively coupled to a cloud service <NUM> for uploading the telemetry data to the cloud service <NUM> to enable the cloud service to create and/or update the machine learning models <NUM> based on the telemetry data.

The machine learning models <NUM> are generated in the cloud service <NUM>, in one example, and are grouped by device metadata. Device metadata includes any data describing the electronic device <NUM>, such as device name, ownership, user name, hardware configuration and capability, device usage patterns, device execution behavior, location, and the like. In some examples, the machine learning models <NUM> include custom machine learning models <NUM> from the electronic device <NUM> and/or a private cloud service (not shown) that is associated with the electronic device <NUM> and/or the user of the electronic device <NUM>. For example, machine learning models <NUM> generated in the cloud service <NUM> is augmented (e.g., updated) using information that is unknown to the cloud service <NUM> but is known by the electronic device <NUM> and/or the user. In some examples, the information unknown by the cloud service <NUM> that is used by the electronic device <NUM> to augment the machine learning models <NUM> is not transmitted to the cloud service <NUM> by the UTC <NUM> (e.g., is not crowdsourced). In this way, the electronic device <NUM> can update at least some of the machine learning models <NUM> without sharing proprietary and/or custom information with the cloud service <NUM>. Examples of the information unknown by the cloud service <NUM> that is used by the electronic device <NUM> to augment the machine learning models <NUM> include, but are not limited to, custom hardware of the electronic device <NUM>, proprietary chips, additional hardware and/or software of the electronic device <NUM> (e.g., a military device, a government device, a developer device, etc.), whether the electronic device <NUM> is a work device or a personal device, and/or the like.

The machine learning models <NUM> may be any type of machine learning model, such as, but not limited to, Open Neural Network Exchange (ONNX) models and/or the like. The UTC <NUM> uploads the telemetry data from the electronic device <NUM> to the cloud service <NUM> to create and/or update the machine learning models <NUM> at the cloud service <NUM>. For example, the cloud service <NUM> collects the telemetry data from the electronic device <NUM> and the collected telemetry data is used to train the machine learning models <NUM>. In addition, the cloud service <NUM> may collect telemetry data from other electronic devices (not shown) to further update the machine learning models <NUM>. Many electronic devices may provide the cloud service <NUM> with telemetry data such that future machine learning models <NUM> may be improved through crowdsourcing in this manner.

The AI client service <NUM> is communicatively coupled to the cloud service <NUM> to receive the machine learning models <NUM> from the cloud service <NUM>. For example, the AI client service <NUM> may request the machine learning models <NUM> from the cloud service <NUM> based on metadata of the electronic device <NUM>, and receive the machine learning models <NUM> that have been created for devices such as electronic device <NUM>. In this manner, the electronic device <NUM> receives specific machine learning models <NUM> that are more suitable for the electronic device <NUM> than other machine learning models <NUM>.

The AI client service <NUM> receives the machine learning models <NUM> from the cloud service <NUM> and stores the machine learning models <NUM> using a memory of the electronic device <NUM>. The AI client service <NUM> is also communicatively coupled to the UTC <NUM> for receiving the telemetry data from the UTC <NUM>. The AI client service <NUM> inputs the telemetry data received from the UTC <NUM> into the machine learning models <NUM>, received from the cloud service <NUM>, to determine notifications to publish to the components <NUM>, <NUM>, <NUM>, and <NUM> of the electronic device <NUM>. The notifications represent events predicted to occur on the electronic device <NUM> based on the telemetry data input into the machine learning models <NUM>.

In some examples, the AI client service <NUM> comprises a trained regressor such as, but not limited to, a random decision forest, directed acyclic graph, support vector machine, neural network, other trained regressor, and/or the like. The trained regressor may be trained using the telemetry data from the electronic device <NUM> and/or telemetry data from other electronic devices. Examples of trained regressors include a convolutional neural network and a random decision forest. It should further be understood that the AI client service <NUM>, in some examples, may operate according to machine learning principles and/or techniques known in the art without departing from the systems and/or methods described herein.

The AI client service <NUM> comprises software stored in memory and executed on a processor in some cases. In some examples, the AI client service <NUM> is executed on an Field-programmable Gate Array (FPGA) or a dedicated chip. For example, the functionality of the AI client service <NUM> may be implemented, in whole or in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include FPGAs, Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), Graphics Processing Units (GPUs), and/or the like.

The AI client service <NUM> and/or the cloud service <NUM> may make use of training data pairs when applying machine learning techniques and/or algorithms. Millions of training data pairs (or more) may be stored in a machine learning data structure (e.g., the machine learning models <NUM>). In some examples, a training data pair includes an input or feedback data value paired with a criteria update value. The pairing of the two values demonstrates a relationship between the input or feedback data value and the criteria update value that may be used by the machine learning models <NUM> to determine future criteria updates according to machine learning techniques and/or algorithms.

The AI client service <NUM> is arranged to execute the methods described herein with respect to <FIG> to determine notifications that are published by the AI broker <NUM> to various components <NUM>, <NUM>, <NUM>, and/or <NUM> of the electronic device <NUM> for automatically configuring the electronic device <NUM>, or taking other action on the electronic device <NUM>. In some examples, notifications determined by the AI client service <NUM> may include a prompt to the user informing the user of the automatic configuration, along with a selection to confirm or reject the automatic configuration.

As described above, the notifications determined by the AI client service <NUM> represent events predicted to occur on the electronic device <NUM> based on the telemetry data input into the machine learning models <NUM>. Events that are predicted to occur by the AI client service <NUM> include, but are not limited to, the contradiction of a preference and/or action of the user with an expectation of the user, the contradiction of a preference and/or action of the user with a threshold defined and/or expected by the user, a bad deployment of application software and/or hardware, a fault of the electronic device <NUM> and/or a component thereof, the upcoming use and/or activation of application software <NUM>, an intended use of application software <NUM>, the upcoming use and/or activation of internal hardware <NUM>, an intended use of internal hardware <NUM>, the upcoming use and/or activation of external hardware <NUM>, an intended use of external hardware <NUM>, the upcoming closing and/or de-activation of application software <NUM>, the upcoming powering-down of internal hardware <NUM>, the upcoming powering-down and/or disconnection of external hardware <NUM>, and/or other predictions.

In some examples, notifications determined by the AI client service <NUM> concern, or otherwise relate to, one or more settings of the OS <NUM> such that the notification indicates, to the OS <NUM>, to configure the setting(s) according to the notification. The notification concerning the setting(s) of the OS <NUM> may also instruct other subscribed components of the OS <NUM> and/or other subscribed components <NUM>, <NUM>, and <NUM> of the electronic device <NUM> to be configured according to the notifications, or according to the configuration of the setting(s) of the OS <NUM> in response to the notifications.

Notifications determined by the AI client service <NUM>, in some examples, may concern particular application software <NUM> such that the particular application software <NUM> self-configures according to the notification. The notification concerning the application software <NUM> may also instruct one or more subscribed components of the OS <NUM> and/or other subscribed components <NUM>, <NUM>, and/or <NUM> of the electronic device <NUM> to be configured according to the configuration of the application software <NUM>. Alternatively, the components of the OS <NUM> and/or other subscribed components <NUM>, <NUM>, and/or <NUM> of the electronic device <NUM> may choose, at their discretion, to act on the notification (e.g., self-configure).

In some examples, notifications determined by the AI client service <NUM> may concern particular internal hardware <NUM> such that the notification indicates, communicates, or represents to the particular internal hardware <NUM> (and subscribed components of the OS <NUM> and/or other subscribed components <NUM>, <NUM>, and/or <NUM>), desirable configuration corresponding to, or based on, the notification. Moreover, notifications determined by the AI client service <NUM>, in some examples, may concern particular external hardware <NUM> such that the notification instructs the particular external hardware <NUM> (and subscribed components of the OS <NUM> and/or other subscribed components <NUM>, <NUM>, and/or <NUM>) to configure according to the notification.

As described above, in some examples, the machine learning models <NUM> include custom machine learning models <NUM>. For example, the AI client service <NUM> may receive from the UTC <NUM> telemetry data and/or other information associated with the user and/or the electronic device <NUM> that is unknown to the cloud service <NUM>. The AI client service <NUM> then augments one or more of the machine learning models <NUM> using the received telemetry data and/or other information that is unknown to the cloud service <NUM> to generate one or more custom machine learning models <NUM> that are customized to the user and/or the electronic device <NUM>. The AI client service <NUM> can thereby determine notifications that are customized to the user and/or the electronic device <NUM>. As described above, the UTC <NUM> may not transmit the telemetry data and/or other information to the cloud service <NUM> such that the custom machine learning models <NUM> are generated without sharing proprietary and/or custom information with the cloud service <NUM>. In addition or alternatively to generating custom machine learning models <NUM>, in some examples, the AI client service <NUM> is configured to reject determined notifications based on telemetry data and/or other information received from the UTC <NUM> that is unknown to the cloud service <NUM>.

The AI client service <NUM> is communicatively coupled to the AI broker <NUM> for transmitting the determined notifications from the AI client service <NUM> to the AI broker <NUM>. The AI broker <NUM> publishes the determined notifications received from the AI client service <NUM> to the relevant components <NUM>, <NUM>, <NUM>, and/or <NUM> of the electronic device <NUM>. For example, the AI broker <NUM> publishes notifications concerning the OS <NUM> to the OS <NUM> and any subscribed components <NUM>, <NUM>, and <NUM>. The AI broker <NUM> publishes notifications concerning particular application software <NUM> to the particular application software <NUM> and any subscribed components <NUM>, <NUM>, <NUM>, and/or <NUM>. Similarly, the AI broker <NUM> publishes notifications concerning particular hardware <NUM> or <NUM> to the particular hardware <NUM> or <NUM> and any subscribed components <NUM>, <NUM>, <NUM>, and/or <NUM>. The components <NUM>, <NUM>, <NUM>, and/or <NUM> of the electronic device <NUM> that have received published notifications then configure according to the published notifications, for example, according to logic of the OS <NUM> and/or the components <NUM>, <NUM>. Any determined notifications that have been rejected by the AI client service <NUM>, as described above, will not be published by the AI broker <NUM>.

<FIG> illustrates a flow chart of a method <NUM> for configuring an electronic device using artificial intelligence according to an embodiment. The example method <NUM> is performed by an electronic device such as electronic device <NUM>, and includes receiving, at <NUM>, at the electronic device, machine learning models matched to device metadata from a cloud service. At <NUM>, the method <NUM> includes accessing telemetry data representing device usage data. The accessed telemetry data is input, at <NUM>, into the received machine learning models to determine notifications to publish to components of the electronic device. At <NUM>, the method includes publishing the determined notifications to the components. The notifications representing events predicted to occur on the electronic device. At <NUM>, the method <NUM> includes configuring, by the components, the electronic device based on the published notifications.

<FIG> illustrates a flow chart of a method <NUM> for configuring one or more settings of an operating system of an electronic device using artificial intelligence according to an embodiment. The example method <NUM> is performed by an electronic device such as electronic device <NUM>, and includes receiving, at <NUM>, at the electronic device, machine learning models matched to device metadata from a cloud service. In the example method <NUM>, the machine learning models are matched to device metadata that relates to an operating system of the electronic device. The method <NUM> includes uploading, at 302a, the telemetry data to a cloud service and updating the machine learning models at the cloud service based on the telemetry data of the electronic device and/or telemetry data from another electronic device.

At <NUM>, the method <NUM> includes accessing telemetry data representing device usage data. The telemetry data accessed at <NUM> may include data that represents how the electronic device has been used by the user over time (i.e., may represent a usage pattern over time). In addition or alternatively, in some examples, accessing at <NUM> the telemetry data includes accessing at 304a real-time telemetry data from the electronic device that represents how the electronic device is currently being used by the user.

In some examples, accessing at <NUM> the telemetry data includes accessing at 304b telemetry data and/or other information associated with the user and/or the electronic device that is unknown to the cloud service. The method <NUM> includes, at 304c, augmenting at least one machine learning model using the telemetry data and/or other information that is unknown to the cloud service. For example, unknown to the cloud service, the electronic device may include additional hardware that uses battery power of the electronic device. The method <NUM> therefore may include augmenting, at 304c, a machine learning model such that a notification determined (e.g., at operation <NUM> described below) from the augmented machine learning model includes reducing power consumption of the electronic device.

The accessed telemetry data is input, at <NUM>, into the received machine learning models. At <NUM>, the method <NUM> includes determining whether an event is predicted to occur on the electronic device. The event predicted at <NUM> relates to the operating system of the electronic device, and may include, but is not limited to, the contradiction of a preference and/or action of the user with an expectation (e.g., determined from the telemetry data and/or the like) of the user, the contradiction of a preference and/or action of the user with a threshold defined and/or expected (e.g., determined from the telemetry data and/or the like) by the user, a bad deployment of application software and/or hardware, a fault of the electronic device <NUM> and/or a component thereof, and/or the like. For example, the user may attempt to manually configure the operating system of the electronic device with a preference (e.g., a personalization preference, a preference that a particular application automatically launches at boot up of the electronic device, and/or the like) that contradicts an expectation or threshold of the user (e.g., a maximum boot up time of the operating system or a particular application, a battery life of the electronic device, a processing load of the electronic device, and/or the like).

If it is determined at <NUM> that the event is not predicted to occur, the method <NUM> includes taking, at <NUM>, no further action. If it is determined at <NUM> that the event is predicted to occur, the method <NUM> includes determining, at <NUM>, one or more notifications concerning the one or more settings of the operating system that relate to the predicted event. In some examples, determining one or more notifications at <NUM> includes determining the notification(s) using a custom machine learning model that has been augmented at 304c.

The method <NUM> includes, at <NUM>, automatically rejecting at least one determined notification based on telemetry data and/or other information accessed at 304b that is unknown to the cloud service. For example, a notification determined at <NUM> may provide power settings for a work device (e.g., a higher performance setting, etc.) that reduce battery life of the electronic device, while the telemetry data and/or other information accessed at 304b identifies the electronic device as a personal device of the user. The method <NUM> therefore may include automatically rejecting at <NUM> the power settings of the notification determined at <NUM> based on the knowledge that the electronic device is a personal device and the power settings will drain the battery of the electronic device. In some examples, personal settings may trump enterprise settings when the electronic device is a personal device.

At <NUM>, the method <NUM> includes publishing the determined notifications to the operating system and any subscribed components of the electronic device. The publication occurs using any notification architecture of the electronic device. Any notifications that have been automatically rejected at <NUM> will not be published at operation <NUM>.

At <NUM>, the method <NUM> includes configuring the setting(s) of the operating system (and any subscribed components) of the electronic device based on the published notifications.

In an example of the method <NUM>, when the user selects a personalization preference on the electronic device, it is determined at <NUM> whether the selected preference will decrease the battery life of the electronic device below an expectation of the user. The user's expectation of the battery life of the electronic device may be learned from the telemetry data and may, in some examples, be built into the corresponding machine learning model(s) (e.g., the machine learning model(s) used at operation <NUM>). If it is predicted at operation <NUM> that the preference will decrease the battery life of the electronic device below the expectation of the user, one or more notifications indicating that the preference change should be rejected are determined and published at operations <NUM> and <NUM>, respectively. In some examples, the notifications may be a prompt to the user informing the user of the expected negative consequences, along with a request to confirm the selected preference.

In an example of the method <NUM>, when the user selects that a particular application automatically launches at boot up of the electronic device, it is determined at <NUM> whether the selected application will increase the boot-up time of the electronic device beyond a threshold that has been previously set by the user (and may be built into the corresponding machine learning model(s) used at operation <NUM>). If it is predicted at operation <NUM> that launching the particular application at boot-up of the electronic device will increase the boot-up time beyond the threshold, one or more notifications conveying this information, or denying the request to automatically launching the particular application at boot-up, are determined and published at operations <NUM> and <NUM>, respectively.

In an example of the method <NUM>, telemetry data from one or more other electronic devices indicating a bad deployment of a particular application is built into the machine learning model(s) used at operation <NUM>. If it is predicted at operation <NUM> that deployment of the particular application will fail, one or more notifications conveying this information, or denying deployment of the particular application, are determined and published at operations <NUM> and <NUM>, respectively.

In an example of the method <NUM>, telemetry data from one or more other electronic devices indicating a remediation action of a fault of the electronic device is built into the machine learning model(s) used at operation <NUM>. If it is predicted at operation <NUM> that the remediation action will facilitate remediating the fault of the electronic device, one or more notifications that deploy, or suggest deploying, the remediation action are determined and published at operations <NUM> and <NUM>, respectively. Accordingly, the method <NUM> may enable automatic remediation of the electronic device.

<FIG> illustrates a flow chart of a method <NUM> for configuring an application and/or hardware of an electronic device using artificial intelligence according to an embodiment. The example method <NUM> includes receiving, at <NUM>, at the electronic device, machine learning models matched to device metadata from a cloud service. In the example method <NUM>, the machine learning models are matched to device metadata that relates to application software, internal hardware, and/or external hardware of the electronic device. The method <NUM> includes uploading, at 402a, the telemetry data to a cloud service and updating the machine learning models at the cloud service based on the telemetry data of the electronic device and/or telemetry data from another electronic device.

At <NUM>, the method <NUM> includes accessing telemetry data representing device usage data. The telemetry data accessed at <NUM> may include data that represents a usage pattern of the electronic device over time. In addition or alternatively, in some examples, accessing at <NUM> the telemetry data includes accessing at 404a real-time telemetry data from the electronic device that represents how the electronic device is currently being used by the user.

In some examples, accessing at <NUM> the telemetry data includes accessing at 404b telemetry data and/or other information associated with the user and/or the electronic device that is unknown to the cloud service. The method <NUM> includes, at 404c, augmenting at least one machine learning model using the telemetry data and/or other information that is unknown to the cloud service.

The accessed telemetry data is input, at <NUM>, into the received machine learning models. At <NUM>, the method <NUM> includes determining whether an event is predicted to occur on the electronic device. The event predicted at <NUM> relates one or more applications and/or one or more pieces of hardware of the electronic device, and may include, but is not limited to, the upcoming use and/or activation of an application, an intended use of an application, the upcoming use and/or activation of internal hardware, an intended use of internal hardware, the upcoming use and/or activation of external hardware, an intended use of external hardware, the upcoming closing and/or de-activation of an application software, the upcoming powering-down of internal hardware, the upcoming powering-down and/or disconnection of external hardware, and/or the like.

For example, the method <NUM> may determine at <NUM> that a particular application and/or particular hardware is predicted to be used at an upcoming point in time based on the user's prior use of the particular application and/or hardware. Moreover, and for example, the method <NUM> may determine at <NUM> an intended use for particular hardware (e.g., a monitor will only be used to watch television) based on the user's prior use of the particular hardware and/or based on the prior use of the particular hardware on other electronic devices.

If it is determined at <NUM> that the event is not predicted to occur, the method <NUM> includes taking, at <NUM>, no further action. If it is determined at <NUM> that the event is predicted to occur, the method <NUM> includes determining, at <NUM>, one or more notifications concerning the application and/or the hardware that relate to the predicted event. Determining one or more notifications at <NUM> may include, in some examples, determining the notification(s) using a custom machine learning model that has been augmented at 404c. The method <NUM> includes, at <NUM>, automatically rejecting at least one determined notification based on telemetry data and/or other information accessed at 404b that is unknown to the cloud service.

At <NUM>, the method <NUM> includes publishing the determined notifications to the application and/or hardware and any subscribed other components of the electronic device. The operation <NUM> does not include publishing any notifications that have been rejected at <NUM>, such that such automatically rejected notifications will remain unpublished.

At <NUM>, the method <NUM> includes configuring the application and/hardware (and any subscribed other components) of the electronic device based on the published notifications.

In an example of the method <NUM>, the method <NUM> predicts, at operation <NUM>, that the user will make a video call at an upcoming point in time. One or more notifications that prepare the electronic device for the video call are then determined at operation <NUM> and published at <NUM> to the video call application (e.g., Microsoft® Skype®) and any subscribing components (e.g., a video card, a sound card, a network card, an advertisement service application, and/or the like). For example, the notification(s) may instruct the skype application to open and configure for the video call. Moreover, the notification(s) may instruct the video call application and/or any subscribing components to download additional components to execute to facilitate the video call.

In an example of the method <NUM>, the method <NUM> predicts, at operation <NUM>, an intended use for an IoT device. One or more notifications that instruct the IoT device to be configured with one or more applications that relate to the predicted usage of the IoT device are then determined at operation <NUM> and published at operation <NUM> to the IoT device and any subscribing components, such that the IoT device and any subscribing components are configured, at operation <NUM> with the application(s) that relate to or are connected with the predicted usage. Optionally, the notification(s) instructs the IoT device and any subscribing components to be configured at operation <NUM> with a minimal application set required to operate the IoT device according to the predicted usage. In other words, the notification(s) instructs the IoT device and any subscribing components to be configured at operation <NUM> with only the application(s) necessary to operate the IoT device according to, to satisfy, to accommodate, or otherwise enable the predicted usage (e.g., the IoT device may be configured with a minimal set of binaries, in a binary driven data set). The predicted use of the IoT device are learned from the telemetry data of the user and/or from telemetry data from one or more other electronic devices and may, in some examples, be built into the corresponding machine learning model(s) (e.g., the machine learning model(s) used at operation <NUM>). The predicted use of the hardware may result in less expensive hardware (such as, but not limited to, IoT devices and/or the like) tailored for user-specific use.

In one example scenario, the methods, systems, and electronic devices described herein may be used to increase the functionality of virtual personal assistants (e.g., Microsoft® Cortana®, Amazon® Alexa®, Google® Home®, etc.) based on a user's usage of the virtual personal assistant. For example, new skills may be added to the virtual personal assistant based on the user's history of walking into a room, downloading music, setting lights, ordering food, and/or the like.

In another example scenario, the methods, systems, and electronic devices described herein may be used to tailor an electronic device to the uses of a family. For example, the configuration of the electronic device may be automatically changed based on usage patterns indicating that the user is an adult or a child.

The present disclosure is operable with an electronic device (i.e., a computing apparatus) according to an embodiment as a functional block diagram <NUM> in <FIG>. In an embodiment, components of a computing apparatus <NUM> may be implemented as a part of an electronic device according to one or more embodiments described in this specification. The computing apparatus <NUM> comprises one or more processors <NUM> which may be microprocessors, controllers or any other suitable type of processors for processing computer executable instructions to control the operation of the electronic device. Platform software comprising an operating system <NUM> or any other suitable platform software may be provided on the apparatus <NUM> to enable application software <NUM> to be executed on the device. According to an embodiment, correlation of frames of video streams using a system clock may be accomplished by software.

Computer executable instructions may be provided using any computer-readable media that are accessible by the computing apparatus <NUM>. Computer-readable media may include, for example, computer storage media such as a memory <NUM> and communications media. Computer storage media, such as a memory <NUM>, include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or the like. Computer storage media include, but are not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing apparatus. In contrast, communication media may embody computer readable instructions, data structures, program modules, or the like in a modulated data signal, such as a carrier wave, or other transport mechanism. As defined herein, computer storage media do not include communication media. Therefore, a computer storage medium should not be interpreted to be a propagating signal per se. Propagated signals per se are not examples of computer storage media. Although the computer storage medium (the memory <NUM>) is shown within the computing apparatus <NUM>, it will be appreciated by a person skilled in the art, that the storage may be distributed or located remotely and accessed via a network or other communication link (e.g. using a communication interface <NUM>).

The computing apparatus <NUM> may comprise an input/output controller <NUM> configured to output information to one or more output devices <NUM>, for example a display or a speaker, which may be separate from or integral to the electronic device. The input/output controller <NUM> may also be configured to receive and process an input from one or more input devices <NUM>, for example, a keyboard, a microphone or a touchpad. In one embodiment, the output device <NUM> may also act as the input device. An example of such a device may be a touch sensitive display. The input/output controller <NUM> may also output data to devices other than the output device, e.g. a locally connected printing device. In some embodiments, a user <NUM> may provide input to the input device(s) <NUM> and/or receive output from the output device(s) <NUM>.

The functionality described herein can be performed, at least in part, by one or more hardware logic components. According to an embodiment, the computing apparatus <NUM> is configured by the program code when executed by the processor <NUM> to execute the embodiments of the operations and functionality described. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), Graphics Processing Units (GPUs).

Although some of the present embodiments may be described and illustrated as being implemented in a smartphone, a mobile phone, or a tablet computer, these are only examples of a device and not a limitation. As those skilled in the art will appreciate, the present embodiments are suitable for application in a variety of different types of devices, such as portable and mobile devices, for example, in laptop computers, tablet computers, game consoles or game controllers, various wearable devices, etc..

At least a portion of the functionality of the various elements in the figures may be performed by other elements in the figures, or an entity (e.g., processor, web service, server, application program, computing device, etc.) not shown in the figures.

Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with aspects of the disclosure include, but are not limited to, mobile computing devices, personal computers, server computers, handheld or laptop devices, multiprocessor systems, gaming consoles, microprocessor-based systems, set top boxes, programmable consumer electronics, mobile telephones, mobile computing and/or communication devices in wearable or accessory form factors (e.g., watches, glasses, headsets, or earphones), network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like. Such systems or devices may accept input from the user in any way, including from input devices such as a keyboard or pointing device, via gesture input, proximity input (such as by hovering), and/or via voice input.

The examples illustrated and described herein as well as examples not specifically described herein but within the scope of aspects of the disclosure constitute exemplary means for configuring an electronic device using AI. For example, the elements illustrated in <FIG>, such as when encoded to perform the operations illustrated in <FIG>, constitute exemplary means for configuring an electronic device using AI.

While no personally identifiable information is tracked by aspects of the disclosure, examples have been described with reference to data monitored and/or collected from the users. In some examples, notice may be provided to the users of the collection of the data (e.g., via a dialog box or preference setting) and users are given the opportunity to give or deny consent for the monitoring and/or collection. The consent may take the form of opt-in consent or opt-out consent.

In some examples, the operations illustrated in the figures may be implemented as software instructions encoded on a computer readable medium, in hardware programmed or designed to perform the operations, or both. For example, aspects of the disclosure may be implemented as a system on a chip or other circuitry including a plurality of interconnected, electrically conductive elements.

Claim 1:
An electronic device (<NUM>) comprising:
at least one processor (<NUM>);
at least one memory (<NUM>) storing telemetry data gathered from the electronic device (<NUM>), the telemetry data at least representing device usage data;
an artificial intelligence (AI) client service (<NUM>) that, in response to execution by the at least one processor (<NUM>), causes
the at least one processor to:
request from a cloud service at least one machine learning model (<NUM>) based on the device metadata of the electronic device,
receive the at least one machine learning models (<NUM>) from the cloud service (<NUM>), the at least one machine learning model created for the electronic device based on the device metadata,
update the received at least one machine learning models at the electronic device with information that is associated with at least one of the electronic device or a user of the electronic device,
input the telemetry data from the memory (<NUM>) into the updated at least one machine learning models (<NUM>), and
determine, based on the telemetry data input into the updated at least one machine learning model, a notification to publish to a component (<NUM>, <NUM>, <NUM>, <NUM>) of the electronic device (<NUM>) that is customized to at least one of the user or the electronic device; and
an AI client broker (<NUM>) that, in response to execution by the at least one processor (<NUM>), publishes the determined notification to the component (<NUM>, <NUM>, <NUM>, <NUM>), the notification representing an event predicted to occur on the electronic device (<NUM>);
wherein the component (<NUM>, <NUM>, <NUM>, <NUM>) configures the electronic device (<NUM>) based at least on the published notifications.