Recommendation systems are applications that involve predicting user responses to options and user intentions for queries. Although various technologies and approaches have evolved to solicit feedback from users for the recommendation systems, these solutions have relied on explicit user feedback. As a result, these solutions have been unable to provide reliable implicit feedback in order to improve the recommendation systems.
It is with respect to these and other general considerations that the aspects disclosed herein have been made. Also, although relatively specific problems may be discussed, it should be understood that the examples should not be limited to solving the specific problems identified in the background or elsewhere in this disclosure.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detail Description section. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Examples of the present disclosure describe systems and methods for improving the recommendations provided to a user by a recommendation system using viewed content as implicit feedback. In some aspects, attention models are created and/or updated to infer\user attention based at least upon content that the user has viewed or is viewing on a computing device. The attention model may be used to generate inferences of user attention into inferences of user satisfaction with the viewed content. The inferences of user satisfaction may be used to generate inferences of fatigue with the viewed content. The inferences of user satisfaction and inferences of user fatigue may then be used as implicit feedback to improve the content selection, content triggering and/or content presentation by the recommendation system.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Additional aspects, features, and/or advantages of examples will be set forth in part in the description which follows and, in part, will be apparent from the description, or may be learned by practice of the disclosure.
Non-limiting and non-exhaustive examples are described with reference to the following figures.
Various aspects of the disclosure are described more fully below with reference to the accompanying drawings, which form a part hereof, and which show specific exemplary aspects. However, different aspects of the disclosure may be implemented in many different forms and should not be construed as limited to the aspects set forth herein; rather, these aspects are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the aspects to those skilled in the art. Aspects may be practiced as methods, systems or devices. Accordingly, aspects may take the form of a hardware implementation, an entirely software implementation or an implementation combining software and hardware aspects. The following detailed description is, therefore, not to be taken in a limiting sense.
The present disclosure provides systems and methods for improving the electronic recommendations provided to a user by a recommendation system. Improvements may be based implicit feedback. The implicit feedback may be determined based upon content viewed by a user. In examples, a recommendation system may be distributed among one or more computing devices and 1) uses a user's viewed content data to create satisfaction and/or fatigue models. The satisfaction and/or fatigue models may be used to improve the quality of the electronic recommendations. A recommendation system, as used herein, may be one or more information filtering software components that attempts to predict a user's preference, feedback and/or intention based upon the user's implicit and explicit input. In examples, a client computing device tracks content viewed by a user. The viewed content may then be provided to the recommendation system. Viewed content, as used herein, may refer to the one or more viewports that define the user viewing experience. A viewport, as used herein, may refer to a text content, video content, audio content, one or more display images or some combination thereof within a viewing region on a display screen. A viewport may comprise a card, a portion of a card, multiple portions of multiple cards, an image, text, document and/or webpage objects, etc. A card, as used herein, may refer to a message or notification that is displayed on a display screen and that indicates information relevant an action received from a user, location or query. For example, a card may display the weather for a particular location, information about a sports teams, recent news events, or nearby movie theatres and movie times related to the user's search query for a particular movie. One of skill in the art will appreciate that, while specific examples of information are provided herein, other types of information may be included on a card without departing from the scope of this disclosure.
In aspects, the recommendation system creates one or more attention models to infer user attention from the viewed content. A model, as used herein, may refer to a structure of organized data elements that standardize the manner by which the data elements relate to each other. For example, a model may be a rule-based model, a machine-learned regressor, a machine-learned classifier, etc. The attention models interpret and convert the viewed content into accurate and useful interpretations of user attention. For example, the attention models may attribute the duration of each card within a viewport based on the visible area of each card within the viewport. The duration of a card may refer to the amount of time the card, or portions thereof, was visible within a viewport. The duration of a card may be attributed by determining the amount of time the card, or portions thereof, was visible within one or more viewports. After the attention models have been attributed for one or more cards in one or more of the viewports, the attention models may aggregate the attributed cards to obtain the cumulative user attention for a card. The cumulative user attention, as used herein, may refer to the total amount of time a card was visible within all viewports the card appeared. The cumulative user attention may be calculated by adding the durations of time a card was visible in each viewport of a user's viewed content.
The recommendation system may use the data interpreted by the attention models to create one or more satisfaction models to infer user satisfaction. The satisfaction models convert inferences of user attention into inferences of user satisfaction of the viewed content or satisfaction with the type of viewed content. For example, the satisfaction models may normalize the attention model data by content density. Normalization, as used herein, may refer to the creation of shifted and/or scaled versions of statistical data, where the shifted and/or scaled values allow for the comparison of corresponding values for different datasets in a way that eliminates/mitigates the effects of certain influences. Content density, as used herein, may refer to the ratio or percentage of content within a viewing area in relation to the size of that viewing area. The normalized attention data may then be used to determine optimal thresholds for inferring user satisfaction with viewed content. Satisfaction models may be trained, at least in part, using these optimal thresholds.
The recommendation system may use the satisfaction models or the inferred satisfaction data to create one or more fatigue models to infer user fatigue. The fatigue models use inferences of user satisfaction with viewed data to determine if/when the relevance of the viewed content may become degraded to the user. Degraded content, as referred to herein, may refer to content that no longer satisfies the user or satisfies the user to a lesser degree than when the content was previously viewed. Content may be degraded due to time lapse, due to changing interests, or because the content has been repeatedly viewed, but not updated. For example, the fatigue models may determine when viewed content has been modified and/or updated. The fatigue models may then determine that the information associated with the viewed content is no longer current and is therefore no longer relevant or useful to the user. Accordingly, a fatigue score may be generated and/or the fatigue models may be trained to degrade the relevance of the viewed content.
The recommendation system may use the inferred satisfaction data and/or the inferred fatigue data as implicit user feedback. Implicit feedback, as used herein, may refer to user data that indirectly reflects opinions through observations of user behavior, user interests, or user preferences. Implicit feedback may be used to improve the recommendation system, which is generally highly personalized and contextualized and may not easily obtain feedback to improve performance otherwise. For example, using implicit feedback, the recommendation system may improve the content selection, content triggering, content ranking and/or the content presentation of recommendations. These improvements improve the user experience for users of the recommendation system by, for example, allowing the recommendation system to proactively provide accurate recommendations to users.
Accordingly, the present disclosure provides a plurality of benefits including but not limited to: automatic recommendation generation from implicit user feedback; minimizing the need for developers/programmers to rely on user “click” signals; increased accuracy of contextual recommendation selection, triggering, and ranking; improved presentation of recommendations within a display area; improved efficiency and reliability for applications interfacing with the recommendation system, among other examples.
As one example, the system 100 comprises client computing device 102A, client computing device 102B, client computing device 102C, distributed network 104, and a distributed server environment comprising one or more servers such as server 106A, server 106B and server 106C. One of skill in the art will appreciate that the scale of systems such as system 100 may vary and may include more or fewer components than those described in
The client computing devices 102A, 102B and 102C may be configured to generate and display viewing content to a user, and to transmit the viewed content to one or more of servers 106A, 106B and 106C via network 104. Server 106A, for example, may be configured to receive viewed content, to create/update an attention model based on the viewed content, to create/update a satisfaction and/or a fatigue model for the viewed content, and to integrate the satisfaction and/or a fatigue model into a recommendation system within server 106A. Server 106A may further be configured to create/update a profile based on the integration of the satisfaction and/or a fatigue model. The profile may comprise profile data associated with the user of client computing device 102A, for example. The profile data may include personal data, financial data, preferences, behavior data, psychographic data, geo-locations, dates and times, etc. The recommendation system may then provide recommendations based on the user profile. The recommendations may be transmitted by server 106A via network 104 to client computing device 102A. Client computing device 102A may receive and display the recommendations to the user.
In some aspects, the profile may be a single-user profile. In other aspects, the profile may be a global profile. For example, the users of client computing devices 102A, 102B and 102C may have no prior relationship or social connection. Server 106A may create a user profile based on viewed content received from client computing device 102A. Server 106A may then receive viewed content from computing device 102B. Accordingly, Server 106A may use the viewed content to update the attention model, satisfaction model, fatigue model and/or user profile, such that the user profile comprises profile data associated with the users of client computing devices 102A and 102B. Server 106A may then receive viewed content from computing device 102C, which Server 106A may use to further update the attention model, satisfaction model, fatigue model and/or user profile. After updating the user profile, the user profile comprises profile data associated with the users of client computing devices 102A, 102B and 102C; thus, representing a global profile. A global profile may be publicly accessible and/or modifiable by any computing device with access to network 104.
In yet other aspects, the profile may be a cohort profile. For example, the users of client computing devices 102A, 102B and 102C may be friends or may be associated with the same social group or organization. In other examples, the users of client computing devices 102A, 102B and 102C may not be acquainted, but may be located in the same area or region. Server 106A may create a user profile based on viewed content received from client computing device 102A. The user profile may be updated based on viewed content received from client computing device 102B. The user profile may further be updated based on viewed content received from client computing device 102C. After updating the user profile, the user profile comprises profile data associated with the users of client computing devices 102A, 102B and 102C; thus, representing a cohorts profile. A cohorts profile may only be accessible to or updatable by the users of client computing devices 102A, 102B and 102C and members of their social group or organization. Alternately, the cohorts profile may be accessible to any computing device located in the same area or region as at least one of computing devices 102A, 102B and 102C.
The server 220 may comprise an attention module 222, a satisfaction module 224, a fatigue module 226, an optimization module 228, and a recommendation system 230 each having one or more additional components. The attention module 222 may be configured to receive captured viewing data from client computing device 200 and to create/update an attention model. For example, upon receiving transmitted viewing data, attention module 222 may parse the viewing data into a plurality of viewports and cards. Each of the cards may be assigned or attributed a duration in order to designate that amount of time the card appeared or was visible in a viewport. The attributed durations from each viewport may then be aggregated to obtain the cumulative user attention for each card. In aspects, the cumulative user attention data may be used to create/update an attention model.
The satisfaction module 224 may be configured to convert the cumulative user attention data into user satisfaction data. In aspects, the satisfaction module 224 may receive and normalize the cumulative user attention data by card content density. For example, the normalization process may include determining the number of characters on each card or the size in pixels of each card. The information that results from the normalization process may then be used to create/update a satisfaction model.
The fatigue module 226 may be configured to determine the relevance of the satisfaction model data over time. For example, the fatigue module 226 may use the satisfaction model data to identity information related to the viewed content, such as the content and/or card types within the viewed content, the ratio of click cards (e.g., a card that requires a click to satisfy user's need) to non-click cards (e.g., a card that can satisfy a user's needs without a click), the time lapses between user revisits of previously viewed content, the time lapses before viewing content is updated or is available to be updated, etc. The fatigue module 226 may then use this information to determine how and to what degree the relevance of the satisfaction model data diminishes over time for users. In aspects, this information may be used to create/update a fatigue model.
The optimization module 228 may be configured to integrate the satisfaction model data and/or fatigue model data as implicit user feedback into a recommendation system. In aspects, the optimization module 228 may receive and use the satisfaction model data and/or fatigue model data to optimize the recommendations provided by a recommendation module 230. For example, the satisfaction model data and/or fatigue model data may be used to create or update a profile comprising profile data associated with the user of a client computing device. The profile may be used to determine recommendations to provide to the user of the client computing device. In exemplary aspects, the satisfaction model data and/or fatigue model data may be used to update the profile, thereby improving the recommendation selection process, the recommendation triggering process, the recommendation ranking and prioritization process, and/or the recommendation presentation process.
The recommendation module 230 may be configured to select and/or generate recommendations and to transmit the recommendations to client computing device 200. For example, recommendation module 230 may generate recommendations based on the information within a profile. The recommendation may be optimized as discussed with respect to optimization module 228. The optimized recommendation may then be transmitted to client computing device 200.
In operation 404, an attention model may be created/updated using the captured viewing data. In aspects, the captured viewing data may be parsed into a plurality of viewports and cards. A plurality of cards from each viewport may then be assigned or attributed a duration value designating the amount of time the card appeared or was visible in a viewport. The attributed durations for the cards in the viewports may then be aggregated to obtain the cumulative user attention for each card. In aspects, the cumulative user attention data may be used to create/update an attention model. In one example, the cumulative user attention data may be provided to a rule-based model that is instantiated by specifying rules to reflect user viewing patterns. In another example, the cumulative user attention data may be provided to a statistical analysis device or a component of the recommendation system operable to perform statistical analysis. The statistical analysis device may comprise or have access to a machine learning regression model that processes the cumulative user attention data by representing user viewing patterns as features and using eye-tracking data collected from controlled use studies as labels.
In operation 406, a satisfaction model may be created/updated using the cumulative user attention data. In aspects, the cumulative user attention data is normalized by the content density of the cards associated with the data. Content density may be expressed, for example, by the number of characters in a card or the size in pixels of a card. Measuring content density in such a manner allows for accurate comparisons across a heterogeneous population of content and/or card types. In some aspects, the normalized user attention data is an accurate proxy of user satisfaction for cards that can satisfy users without clicks, as well as for cards that require clicks to satisfy users. The normalized attention data may then be used to create/update a satisfaction model. The satisfaction model may be a hybrid model based on user-defined rules and optimal thresholds that are derived by analyzing data distribution and long-term engagement metrics.
In operation 408, a fatigue model may be created/updated using the satisfaction model, the normalized user attention data, and/or the cumulative user attention data. In aspects, new captured viewing data may be received from the client computing device of operation 402. Additionally, data associated with the content and/or card types may be received from the cumulative user attention data and/or the normalized user attention data. The new captured viewing data and the associated content and/or card type data may be used to determine that the initial captured viewing data of operation 402 has been changed, deleted, updated or otherwise modified. Based on this determination, a fatigue model may then determine that the information associated with the viewed content is no longer relevant or useful to the user. Accordingly, a fatigue score may be generated and/or the fatigue models may be trained to degrade the relevance of the initial captured viewing data.
In operation 410, the satisfaction model data and/or the fatigue model data may be used as implicit feedback to an electronic recommendation system. In aspects, inferences of user attention, user satisfaction and user fatigue determined from at least the user attention model, the user satisfaction model, and/or the user fatigue model are used to improve various features of the electronic recommendation system. For example, inferences of user satisfaction may be used to improve the content selection of recommendations provided by the recommendation system. Inferences of user fatigue may be used to improve the content triggering of recommendations provided by the recommendation system. Similarly, the inferences of user satisfaction and/or user fatigue may be used to improve the ranking of ranking and prioritization of recommendations provided by the recommendation system. Moreover, the inferences of user satisfaction and/or user fatigue may be used to improve the content presentation of recommendations provided by the recommendation system.
In operation 412, the recommendation system may provide to a client computing device recommendation content that has been optimized using the implicit feedback. The optimized recommendation may be displayed in a display area of the client computing device. The optimized recommendation content improves the user experience by reducing the amount time the user wastes searching for desirable content; reducing the amount of time the user wastes waiting for new content to be displayed; increasing the accuracy of recommendations; and proactively providing the user with relevant content.
At operation 504, the captured viewing data may be parsed by an attention modeling component or by software accessible to the recommendation system. The captured viewing data may be parsed into a plurality of individual viewports, which may further be parsed into a plurality of individual cards. The individual cards may be assigned or attributed a duration value designating the amount of time the card appeared or was visible in a stabilized viewport. A stabilized viewport, as used herein, may refer to a viewport that is not in motion and/or has not been swiped by a user for a requisite time period (e.g., 200 milliseconds). An attributed duration may correlate to accurate inferences of user attention to viewing content by accounting for user viewing patterns. Viewing patterns may be determined in various ways. For example, viewing patterns may be based on stabilized viewports. During a stabilized viewport, most of the user attention may be focused on the upper portion of the display area of a client computing device. When the client computing device receives an indication to switch to a different viewport or to open a menu, the user attention may be shifted to a different portion of the screen. In one example, when the client computing device receives an indication that the display screen has been swiped up (e.g., a change viewport request), the user attention is shifted from the top half of the screen to the lower half of the screen where the new content scrolls onto the screen. In such an example, a viewing pattern may be determined such that the areas of the viewport where user attention is focused may be attributed a longer duration or may weigh more heavily in a duration calculation. In another example, viewing patterns may be determined by excluding noise accumulated from swiping and/or changing between viewports, such that only the longest continuous viewport durations are factored into a duration. In yet another example, viewing patterns may be determined by excluding areas that are being touched by users (such that the underlying content is occluded) or are otherwise obscured.
In operation 506, an attention modeling component may aggregate the duration-attributed cards from each of the viewports to obtain the cumulative user attention for each card. For example, referring back to
In operation 508, aggregated, duration-attributed card data is used to create/update an attention model and/or an attention modeling component. In aspects, an attention model may be a rule-based model that is instantiated by specifying rules to reflect user viewing patterns. In other aspects, an attention model may be a machine learning regressor or classifier that represents viewing patterns as features and uses eye-tracking data collected from controlled use studies as labels. Methods for creating, updating, and/or training statistical models are well-known to those skilled in the art.
In operation 604, a satisfaction modeling component may normalize the data to allow for accurate comparisons across a heterogeneous population of content and/or card types. In aspects, a content type or card type may refer to the type of information on a card or the presentation of information of a card. For example, referring back to
The data may be normalized according to several factors. In some aspects, the data may be normalized according to the content density of the card from which the data was gathered. Content density may be expressed, for example, by the number of characters in a card, size in pixels of a card, content type, card type, or some combination thereof. For example, some cards, such as weather event cards, comprise sparser text and require less attention to satisfy user needs. Other cards, such as news event cards, comprise denser text and require more attention to satisfy user needs. In such examples, weather event cards and news event cards may be accorded different weights during, or as a result of, the normalization process.
In some aspects, while normalized viewport-based attention data is an accurate proxy of user satisfaction for cards that do not require clicks to satisfy user needs (e.g., a “click-less” card), the normalized attention data may also improve inferences of user satisfaction for cards that do require a click to satisfy user needs (e.g., a “click” card). For example, using the normalized attention data, a recommendation system may determine whether an unclicked click card was not clicked due to relevance or visibility. Such a determination may be important because a card that was viewed and not clicked is likely to indicate dissatisfaction with the card, whereas a card that was not viewed and not clicked may not indicate dissatisfaction. As another example, using the normalized attention data, a recommendation system may improve the estimation of click satisfaction on a landing page. For instance, a landing page is likely to be more relevant and/or satisfying if the viewport changing behavior is less frequent than another landing page with more viewport changes during the similar viewing time or dwell time.
In operation 608, normalized attention data may be used to create/update a satisfaction model and/or the satisfaction modeling component. In aspects, the satisfaction model may be a model as discussed with respect to the attention model of method 500. Additionally, the satisfaction model may incorporate data regarding the click and click-less cards, content and card types, and optimal thresholds related normalized attention. In some aspects, the optimal thresholds may be determined by analyzing data distribution and correlating viewport data with long-term engagement metrics (e.g., page views per user) and/or human judgement from controlled user studies or editorial tasks.
In operation 706, a second display data may be received by one or more components of the recommendation system, as discussed above with respect to method 400. The second display data may represent raw viewport data from the second viewing session of the user. In operation 708, the second display data may be received, parsed, attributed durations and aggregated, as discussed above with respect to method 500. After the user attention model has been updated using the second aggregated duration data, the second aggregated duration data may be received, normalized and used to update the satisfaction model, as discussed above with respect to method 600.
In operation 710, a fatigue model component may calculate or otherwise determine the differences between the data generated by the first display data and the data generated from the second display data. In aspects, a fatigue model component may receive and compare the first aggregated duration data and the second aggregated duration data. The comparison may include factors such as duration time, content type, card type, card density, viewing patterns, thresholds, etc. The comparison may generate a set of data identifying the differences between the first aggregated duration data and the second aggregated duration data. In some aspects, this set of data may be used to infer user fatigue with the display data. For example, the weather event card may be generally relevant for users who routinely check the daily weather forecast in the morning. However, once a user has viewed the weather card on a particular morning, the relevance of that weather card diminishes unless there is a substantial change in the weather card from the last time the user viewed it or sufficient time has lapsed for it to be interesting, relevant and/or useful again (e.g., the next morning).
In operation 712, the set of data identifying the differences may be used to create/update a fatigue model and/or the fatigue modeling component. In aspects, the fatigue model may be a model as discussed with respect to the attention model of method 500. In some examples, the set of data may not identify any differences between the first aggregated duration data and the second aggregated duration data. In such examples, the set of data may be discarded or the set of data may still be applied to the fatigue model and/or the fatigue modeling component.
In operation 804, a recommendation component may enhance the recommendation content. In some aspects, the enhancements include improving recommendation content selection, based on inferred user satisfaction or inferred user fatigue. For example, the recommendation system may prioritize and/or fetch recommendation content that provides the largest inferences of user satisfaction. This prioritization may decrease the amount of time users must sift through recommendation results and may decrease the amount of processing that must be performed on larger recommendation sets that include marginally satisfactory recommendations. As another example, the recommendation system may prioritize and/or fetch recommendation content based on inferences of a user's degraded interest in the display data. For instance, the priority of content may be based on the novelty of the content, such that more recent content is prioritized above less recent content.
In some aspects, the enhancements include improving recommendation content triggering. Content triggering, as used herein, may refer to the determination to provide or check for new recommendations. This determination may include a scoring function that receives and processes contextual factors, such as time of day, day of week, location, content relevance, content type, card type, elapsed time since the last recommendations were provided, user behavior, and/or user demographics. In one example, the scoring function may be a static algorithm, such that a finite number of factors are accepted and/or expected as input. Each input factor may be assigned a value and/or weight. The static algorithm adds the values of each weighted factor to generate a final score. In another example, the scoring function may be a dynamic algorithm that can be modified and/or learned by training a statistical model using the inferred satisfaction data and/or the inferred fatigue labels. In yet another example, the scoring function may be a hybrid of both the static and dynamic algorithms discussed above. In such aspects, a score generated by the scoring function may be compared to a threshold triggering value. In aspects, when a score exceeds the threshold triggering value, a search for new and/or updated recommendation content commences.
In some aspects, the enhancements include improving recommendation content ranking. For example, after recommendation content has been selected, the recommendations may be ranked using factors associated with user satisfaction and/or user fatigue. As one example, recommendations for sports events may be ranked according to the behavioral history of the user. The behavioral history may include tickets purchased for past sporting event, indications of favorite sports and sport teams, the reading history of sports news articles, etc. As another example, recommendations for restaurants may be ranked according to the geolocational proximity of the restaurants to the client computing device. As yet another example, recommendations for news events may be ranked according to the “buzz” or interest generated by the event on a local, national or global scale. In aspects, the recommendation rankings may also be improved by training a machine learning model using the implicit user feedback as online features that are routinely updated (e.g., daily, hourly, etc.) and as labels for training the machine learning model offline. Although specific examples of implicit user feedback are provided herein in reference to user fatigue and user satisfaction, other variants of implicit user feedback are contemplated. For example, implicit user feedback may be derived by conditioning contextual factors, such as time, location, card types, content types, and user groups.
In optional operation 804, a recommendation component may optimize the presentation of the enhanced recommendation content. In some aspects, the recommendation component may group and/or sort enhanced recommendation according to various factors, such as content type, card type, user behavior, etc. For example, in a viewing session, a user may tend to browse through content in the order: news events, sports events, financial events, and then weather events. The recommendation component may group the news events cards together and display them first, instead of having the news events cards interspersed between the other content types. Additionally, the recommendation component may alter the look of the card content. For example, a recommendation component may reduce the content density of a particularly dense card in order to increase the readability of the card. In aspects, after optimizing the presentation of the enhanced recommendation content, the recommendations are transmitted to the client computing device.
As stated above, a number of program modules and data files may be stored in the system memory 906. While executing on the processing unit 904, the program modules 908 (e.g., application 928, Input/Output (I/O) manager 924, and other utility 926) may perform processes including, but not limited to, one or more of the stages of the operational method 400 illustrated in
Furthermore, examples of the invention may be practiced in an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors. For example, examples of the invention may be practiced via a system-on-a-chip (SOC) where each or many of the components illustrated in
The computing device 902 may also have one or more input device(s) 912 such as a keyboard, a mouse, a pen, a sound input device, a device for voice input/recognition, a touch input device, etc. The output device(s) 914 such as a display, speakers, a printer, etc. may also be included. The aforementioned devices are examples and others may be used. The computing device 904 may include one or more communication connections 916 allowing communications with other computing devices 918. Examples of suitable communication connections 916 include, but are not limited to, RF transmitter, receiver, and/or transceiver circuitry; universal serial bus (USB), parallel, and/or serial ports.
The term computer readable media as used herein may include computer storage media. Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, or program modules. The system memory 906, the removable storage device 909, and the non-removable storage device 910 are all computer storage media examples (i.e., memory storage.) Computer storage media may include RAM, ROM, electrically erasable read-only memory (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 article of manufacture which can be used to store information and which can be accessed by the computing device 902. Any such computer storage media may be part of the computing device 902. Computer storage media does not include a carrier wave or other propagated or modulated data signal.
Communication media may be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” may describe a signal that has one or more characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.
One or more application programs 1066 may be loaded into the memory 1062 and run on or in association with the operating system 1064. Examples of the application programs include phone dialer programs, e-mail programs, personal information management (PIM) programs, word processing programs, spreadsheet programs, Internet browser programs, messaging programs, and so forth. The system 1002 also includes a non-volatile storage area 1068 within the memory 1062. The non-volatile storage area 1068 may be used to store persistent information that should not be lost if the system 1002 is powered down. The application programs 1066 may use and store information in the non-volatile storage area 1068, such as e-mail or other messages used by an e-mail application, and the like. A synchronization application (not shown) also resides on the system 1002 and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in the non-volatile storage area 1068 synchronized with corresponding information stored at the host computer. As should be appreciated, other applications may be loaded into the memory 1062 and run on the mobile computing device 1000, including application 928, IO manager 924, and other utility 926 described herein.
The system 1002 has a power supply 1070, which may be implemented as one or more batteries. The power supply 1070 might further include an external power source, such as an AC adapter or a powered docking cradle that supplements or recharges the batteries.
The system 1002 may include peripheral device port 1078 that performs the function of facilitating connectivity between system 1002 and one or more peripheral devices. Transmissions to and from the peripheral device port 1072 are conducted under control of the operating system 1064. In other words, communications received by the peripheral device port 1078 may be disseminated to the application programs 1066 via the operating system 1064, and vice versa.
The system 1002 may also include a radio 1072 that performs the function of transmitting and receiving radio frequency communications. The radio 1072 facilitates wireless connectivity between the system 1002 and the “outside world,” via a communications carrier or service provider. Transmissions to and from the radio 1072 are conducted under control of the operating system 1064. In other words, communications received by the radio 1072 may be disseminated to the application programs 1066 via the operating system 1064, and vice versa.
The visual indicator 1020 may be used to provide visual notifications, and/or an audio interface 1074 may be used for producing audible notifications via the audio transducer 1025. In the illustrated example, the visual indicator 1020 is a light emitting diode (LED) and the audio transducer 1025 is a speaker. These devices may be directly coupled to the power supply 1070 so that when activated, they remain on for a duration dictated by the notification mechanism even though the processor 1060 and other components might shut down for conserving battery power. The LED may be programmed to remain on indefinitely until the user takes action to indicate the powered-on status of the device. The audio interface 1074 is used to provide audible signals to and receive audible signals from the user. For example, in addition to being coupled to the audio transducer 1025, the audio interface 1074 may also be coupled to a microphone to receive audible input, such as to facilitate a telephone conversation. In accordance with examples of the present invention, the microphone may also serve as an audio sensor to facilitate control of notifications, as will be described below. The system 1002 may further include a video interface 1076 that enables an operation of an on-board camera 1030 to record still images, video stream, and the like.
A mobile computing device 1000 implementing the system 1002 may have additional features or functionality. For example, the mobile computing device 1000 may also include additional data storage devices (removable and/or non-removable) such as, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
Data/information generated or captured by the mobile computing device 1000 and stored via the system 1002 may be stored locally on the mobile computing device 1000, as described above, or the data may be stored on any number of storage media that may be accessed by the device via the radio 1072 or via a wired connection between the mobile computing device 1000 and a separate computing device associated with the mobile computing device 1000, for example, a server computer in a distributed computing network, such as the Internet. As should be appreciated such data/information may be accessed via the mobile computing device 1000 via the radio 1072 or via a distributed computing network. Similarly, such data/information may be readily transferred between computing devices for storage and use according to well-known data/information transfer and storage means, including electronic mail and collaborative data/information sharing systems.
Reference has been made throughout this specification to “one example” or “an example,” meaning that a particular described feature, structure, or characteristic is included in at least one example. Thus, usage of such phrases may refer to more than just one example. Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more examples.
One skilled in the relevant art may recognize, however, that the examples may be practiced without one or more of the specific details, or with other methods, resources, materials, etc. In other instances, well known structures, resources, or operations have not been shown or described in detail merely to observe obscuring aspects of the examples.
While sample examples and applications have been illustrated and described, it is to be understood that the examples are not limited to the precise configuration and resources described above. Various modifications, changes, and variations apparent to those skilled in the art may be made in the arrangement, operation, and details of the methods and systems disclosed herein without departing from the scope of the claimed examples.