Sensor data from mobile client 703 feeds into a processing server 704, which performs real-time or batch processing on the sensor data. Note that processing server 704 can run on a mobile device, or any other Internet-connected or smart device. It can also run remotely in the cloud or in a data center. (In general, any of the set of components 706 can be run, in whole or in part, on cloud services, or remote servers.)
The processed sensor data is sent to a learner 705, which uses the sensor data to learn about the device and the user implicitly. Note that learner 705 can run on a mobile device, or any other Internet-connected or smart device. It can also run remotely in the cloud or in a data center.
FIG. 7B illustrates a variation of the system illustrated in FIG. 7A that uses an adaptive notification server 707 to trigger collection of sensor data in accordance with the disclosed embodiments. During operation, adaptive notification server 707 requests sensor data from mobile client 703 at variable intervals, based on previous feedback from the learner 105. It requests more data when necessary (for example when there is less information about the user, or when the identification confidence level drops), and less data when data is not needed (for example, when the user is asleep and is not generating useful data). Adaptive notification server 707 can also adjust notification intervals based on other types of factors, including battery level data, usage pattern data, Wi-Fi data, cellular communication data, or received notifications.
Data Collection Triggered by Activity Detection