The invention is described in connection with the embodiments illustrated in the following diagrams.
In the following description of various exemplary embodiments, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration various embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized, as structural and operational changes may be made without departing from the scope of the present invention.
Generally, the present invention relates to methods, systems, and apparatus that enable people to discover digital content that is more accurately aligned with their personal preferences. The preferences of each individual may be tracked automatically by user actions and behaviors and stored in a common database. The individual preferences stored in the database can be combined into a set of group preferences to refine tasks such as content searching and discovery. In other arrangements, the users may upload data to network servers that conform to their tastes. The personal preferences may be determined using this uploaded data.
In reference now to
In the illustrated system, a user device (e.g., device 110) creates a personal preference file 122 through the actions and usage behaviors of the user. As used herein, actions generally refer to an explicit action by the user to mark a content item as interesting or uninteresting (e.g., when rating content). In contrast, behavior generally involves observation of the user's content usage by the devices 102 or other apparatus. These behaviors may involve any combination of selecting/rejecting items, tracking the number of times an item has been used, and actions taken during the usage of an item, such as skipping items in a content stream, uploading content to another user or to a network service, etc.
The preference file 122 may be stored within the system 100 to enhance the user experience when utilizing system content. For example, the preference file 122 may be used to filter large numbers of content matches when searching local or remote content via the networks 104, 106. This makes the search results smaller and more manageable, as well as more likely to conform to the user's tastes. For example, if a user searches for “rock music” the number of matches may be weighed towards “metal rock music” according to the user's preference file 122.
Preference files 122 may be used in conjunction with content servers 124, 126 to provide suitable content to an individual user or a community of users. The content servers 124, 126 generally store and distribute digital content in the form of downloadable files or media streams to the user devices 102, or to any other device where the media may benefit the user. In the illustrated arrangement, where the environment 100 includes multiple devices 102 and services 124, 126, a preference server 128 can gather dissimilar preferences from various locations and formats. For example, the preference server 128 can access preference file(s) 122 associated with the user device 110. The preference server 128 may also access preferences from a source that is independent of the preference files 122, such as a preference file 130 associated with an Internet service 132, such as an online music service. The preference server 128 can convert the preferences 122, 130 to a standard preference file 134. For example, a plug-in content harvester 136 that resides on the user device 110 (or elsewhere, such as preference server 128 or Internet server 132) can collect disparate preference data 122, 130, as represented by paths 138, 140. The content harvester 136 can either convert the preferences 122, 130 to the common format before sending 138, 140, or the receiving element 128 can do the conversion and merging into the single presence file 134.
Besides managing preferences 122, 130, the content harvester 136 may also be able to use local preferences 122 and/or group preferences 134 to drive content 142 to and from the user device 110. For example, as indicated by path 144, the preferences 122, 130 can be used to send content 142 from the content server 126 to the device 110 for consumption by the device user. Alternatively, the preferences 122, 130 may be used to send the content 142 to the content server 126 or other network entity. The latter case may be used for synchronizing or backing up user data from the device 110. This uploading of content 142 from the device 110 may also act as a form of local data mining, e.g., extracting important data from a large amount of data that is found on the user device 110. Generally, this important data can be determined by way of the personal and/or group preferences 122, 130.
Personal preference files can be created automatically through user action or user behaviors and sent to a community preference server or a generic preference server using standard XML or similar Web-service-compliant presentation. A scenario of maintaining user profiles at a community preference server 200 according to embodiments of the invention is shown in
The community preference server 200 stores the received preference data 202, 204, 206. The stored preference data 202, 204, 206 can be combined 218 by the community preference server 200 to create a community preference file 220. The community preference file 220 can be used when searching for content available to all member devices 208, 210, and 212. For example, a search request 222 that is sent to a content server 224 on behalf of one or more of the devices 208, 210, and 212 may include special modifiers to ensure results 226 are returned that is in conformance with the community preferences. Alternatively, the search 222 could be sent out unaltered, and the results 226 filtered or otherwise modified by the preference server 200 to conform to the community preferences 220. Those skilled in the art will appreciate that the term “search,” as used herein, may refer to any combination of actions that enable the discovery of data, including directory browsing, enumerating, pattern matching, random selection, traversal of data structures/hierarchies, database queries, etc.
The results 226 that are processed by via the community preference server 200 are generally tailored to reflect some combination of the tastes of the individual (e.g., via preferences 208, 210, and 212) and the community (e.g., via community preference 220). Combining group and individual preferences according to embodiments of the invention is shown in the block diagram of
In the illustrated example, the modified query 242 is formed by applying respective weightings 244, 246 to the personal preference data 202 and the community preference data 220. Here, the personal preference data 202 is given a greater weighting 244 than the community data weighting 246 (e.g., 60% versus 40%). These weighting values 244, 246 can be predetermined by the user, such as by applying the weightings 244, 246 on a default, per-user, and/or per-search basis. In response to the modified search 242, the content server 224 returns a result 248 to the user device 208. The result 248 may be returned directly to the device 208 from the content server 224, or via the community preference server 200.
A different scenario of combining group and individual preferences according to embodiments of the invention is shown in the block diagram of
In the examples of
The content server 224 can periodically perform queries 262 or use other mechanisms to update the contents of the community repository 260. In reference now to
Just as the community preference server 200 can push content from an external content repository, the preference server 200 can also push content to user devices. An example of content push to user devices according to embodiments of the invention is shown in
In other embodiment of the present, the individual preferences may be stored in a generic preferences server and applied separately. An example preference system according to embodiments of the invention is shown in the block diagram of
The generic preference server 300 may collect preferences 302, 304, 306 from multiple users and store them as individual preference files, which are used when searching for content for that particular user. The generic preference server system 300 can also independently download content using the individual preference file into an individual content repository. The use of an individual content repository according to embodiments of the invention is shown in
The end-user device can be used to determine individual user preferences, form search queries, and receive tailored content. These functions may be implemented in any data process device known in the art. Mobile devices may be particularly useful in this capacity, as mobile devices are gaining increased capacity and are often carried with the user. A user device that includes capabilities according to embodiments of the invention is shown as a mobile computing arrangement 400 in
The processing unit 402 controls the basic functions of the arrangement 400. Those functions associated may be included as instructions stored in a program storage/memory 404. In one embodiment of the invention, the program modules associated with the storage/memory 404 are stored in non-volatile electrically-erasable, programmable read-only memory (EEPROM), flash read-only memory (ROM), hard-drive, etc. so that the information is not lost upon power down of the mobile terminal. The relevant software for carrying out conventional mobile terminal operations and operations in accordance with the present invention may also be transmitted to the mobile computing arrangement 400 via data signals, such as being downloaded electronically via one or more networks, such as the Internet and an intermediate wireless network(s).
The mobile computing arrangement 400 includes hardware and software components coupled to the processing/control unit 402 for performing network data exchanges. The mobile computing arrangement 400 may include multiple network interfaces for maintaining any combination of wired or wireless data connections. In particular, the illustrated mobile computing arrangement 400 includes wireless data transmission circuitry for performing network data exchanges.
This wireless circuitry includes a digital signal processor (DSP) 406 employed to perform a variety of functions, including analog-to-digital (A/D) conversion, digital-to-analog (D/A) conversion, speech coding/decoding, encryption/decryption, error detection and correction, bit stream translation, filtering, etc. A transceiver 408, generally coupled to an antenna 410, transmits the outgoing radio signals 412 and receives the incoming radio signals 414 associated with the wireless device.
The incoming and outgoing radio signals 412, 414 to communicate with a mobile services network 416. The network 416 may include any voice and data communications infrastructure known in the art, including CDMA, W-CDMA, GSM, EDGE, etc. The network 416 may also include short-range networks, using technologies such as 802.11 Wireless Local Area Network (WAN), Ultrawideband (UWB), Bluetooth, etc. The transceiver 408 may be adapted to communicate via these short-range networks 416, or the arrangement 400 may include an alternate data interface 418 for purposes of connecting to such networks. The alternate data interface 418 may include any combination of wired or wireless data communications circuitry coupled to the processor 402 for purposes of communicating with devices on the network 416.
The processor 402 is also coupled to user-interface elements 420 associated with the mobile terminal 400. The user-interface 420 of the mobile terminal 400 may include, for example, a display 422 such as a liquid crystal display. Other user-interface mechanisms may be included in the interface 420, such as keypads 424, speakers, microphones, voice commands, switches, touch pad/screen, graphical user interface using a pointing device, trackball, joystick, etc. These and other user-interface components are coupled to the processor 402 as is known in the art.
The program storage/memory 404 typically includes operating systems for carrying out functions and applications associated with functions on the mobile computing arrangement 400. The program storage 404 may include one or more of read-only memory (ROM), flash ROM, programmable and/or erasable ROM, random access memory (RAM), subscriber interface module (SIM), wireless interface module (WIM), smart card, hard drive, or other removable memory device. The storage/memory 404 of the mobile computing arrangement 400 may also include software modules for performing functions according to embodiments of the present invention.
In particular, the program storage/memory 404 may include a preferences module 426 for collecting user preferences via user actions and/or behaviors. For example, the preferences collection module 426 may communicate with a behaviors interface 428 that determines user behavior patterns related to access of applications 430 of the device. The applications 430 may include media players, browsers, games, email, instant messaging, or any other application that regularly receives user input that may indicate preferences of the user related to digital content. The applications 430 and behaviors interface 428 may inter-communicate using a standard Application Program Interface (API) provided by any combination of the operating system, applications 430, and/or the behaviors interface 428. In another arrangement, the behaviors interface 428 may be implemented as a plug-in module that is loaded by the applications 430 at run time.
Generally, the behaviors interface 428 and the applications 430 collect preference data without the user's explicit input related to preferences. The preference data collected by the behaviors interface 428 may require some statistical analysis to ensure unusual or outlier data does not get included with the user preferences. In contrast, an interface that directly accepts user preference inputs, as represented by an actions interface 432, will not need to do any statistical derivation of actual preferences, because it may be safely assumed that the user's explicit declaration of preferences is accurate.
The actions user interface 432 determines preferences based on explicit user inputs. The actions user interface 432 may appear as a stand-alone application, or may be integrated with user applications (e.g., applications 430). For example, the actions user interface 432 may be implemented as a plug-in component that is loaded at run-time into another of the applications 430 running on the device 400. The actions interface 432 can provide the user a consistent interface for directly affecting preferences, even when the interface 432 is used with different applications.
Generally, the preference data collected by the collection interface 426 can be stored locally in a local preferences database 434. The local preferences database 434 may use any type of persistent or non-persistent data storage that allows accessing, adding, deleting, and modifying of preference data. The storage of preferences in the database 434 may be for either short-term and/or long-term storage purposes. The data stored in the database 434 can be used locally, such as being access by the applications 430 for selecting local content. Another use of the locally stored preference data 434 is to share it with other network entities via a preferences network interface 436.
The preferences network interface 436 may utilize data structures and protocols for exchanging preference data with service and client elements of the network 416. For example, the preferences network interface 436 may communicate with a community preference server 440 for purposes of adding/merging local preference data 434 to the preferences of the community. Similarly, the preferences network interface 436 may communicate the preference data 434 to a generic preference server 442 which maintains user-specific versions of preference data. The preference servers 440, 442 may collect, analyze, correlate, and store data for purposes of providing content to the user device 400. This content may be stored on the device 400 itself (as represented by content database 446), and/or provided real-time (e.g., streamed) by a network-coupled content server 444.
The device may include one or more content renderers 448 for rendering the network content 444 and/or locally stored content 446. The content renderer 448 may be included as a generic application 430, or may be a custom application designed to interface with the network content server 444, preference servers 440, 442, and local preference collection module 426. For example, the content renderer 448 may include facilities for managing and rendering content based on different communities maintained by the community preference server 440, selecting and managing categories and sub-categories of preferences, synchronizing preferences between different mediums (e.g., music, television), and other preference-specific features that may not be included in generic rendering software.
In the preceding figures, various examples were presented of network environments where user devices share preferences for selection and rendering of media according to embodiments of the invention. In some arrangements, one or more fixed servers may assist in gathering preferences, selecting media based on the preferences, and rendering the selected media. Many types of apparatus may be able to act as such a server, including conventional desktop a portable computers, set top boxes, digital media centers, portable communications devices, and other processing devices known in the art. In reference now to
The computing arrangement 501 may include one or more data storage devices, including hard and floppy disk drives 512, CD-ROM drives 514, and other hardware capable of reading and/or storing information such as DVD, etc. In one embodiment, software for carrying out the operations in accordance with the present invention may be stored and distributed on a CD-ROM 516, diskette 518 or other form of media capable of portably storing information. These storage media may be inserted into, and read by, devices such as the CD-ROM drive 514, the disk drive 512, etc. The software may also be transmitted to computing arrangement 501 via data signals, such as being downloaded electronically via a network, such as the Internet. The computing arrangement 501 may be coupled to a user input/output interface 522 for user interaction. The user input/output interface 522 may include apparatus such as a mouse, keyboard, microphone, touch pad, touch screen, voice-recognition system, monitor, LED display, LCD display, etc.
The computing arrangement 501 may be coupled to other computing devices via networks. In particular, the computing arrangement includes a network interface 524 capable of interacting with a network 526. The network interface 524 may include a combination of hardware and software components, including media access circuitry, drivers, programs, and protocol modules. Ultimately, the computing arrangement 501 may be enabled via the network interface 524 to exchange media preference data between devices 528, 530 of the network 526, and to exchange media and associated metadata with devices such as media renderer 532 and media server 534.
The computing arrangement 501 includes processor executable instructions 536 for carrying out tasks of the computing arrangement 501. These instructions 540 may include a collector 538 that collects preference data from user devices 528, 530 via the network 526 (or other data communication medium). The collector 538 may also collect preferences data from entities that are not included in the local group of devices 528, 530, such as Internet preferences 539.
The collected preference data may be placed in a database 540. A correlator/classifier 542 generally reduces and classifies the collected preference data 540 into formats suitable for a selector component 544 to assist the user devices 528, 530 in finding data via the network 526 or elsewhere. In one embodiment, the correlator/classifier 542 merges the collected preference data into a single set of data associated with one or more groups. The stored group data 540 can be used to assist members of the group in selecting network content. In another embodiment, the correlator/classifier 542 stores preference data for each individual user of the devices 528, 530, and uses the stored data 540 to assist the users of the devices 528, 530 on an individual basis.
The selector component 544 assists the user devices 528, 530 in choosing content in accordance with the tastes of the users. This assistance may be in the form of modifying search queries originating from the devices 528, 530, modifying results of search queries that are sent to the devices 528, 530, pushing content to the devices 528, 530, and storing the content for the benefit of the devices 528, 530, such as on a locally accessible content database 546. The content that is ultimately used by the user devices 528, 530 may originate from the local content storage 546 via a content server interface 550. The content may also originate from other data processing elements, such as a content server 548 coupled to the network 526.
In reference now to
The foregoing description of the exemplary embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not with this detailed description, but rather determined by the claims appended hereto.