Filtering content using a learning mechanismno marking
no marking
no marking
RELATED APPLICATIONS
This application claims the benefit of U.S. provisional application serial No. 60/371111, filed on 8/4/2002, which is hereby incorporated by reference.
Technical Field
The present application relates generally to filtering information and, more particularly, to filtering information using a learning mechanism.
Copyright declaration and permission
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the patent and trademark office patent file or records, but otherwise reserves all copyright rights whatsoever. The following claims apply to the software and data described below and in the accompanying drawings: copyright rights2003, Sony Electronics, inc, all rights reserved.
Background of the invention
A process of selecting a product or entertainment is often collaborative. Typically, it starts with a conversation with a friend, followed by surveys and information gathering. Then, some choices are reviewed in advance before canceling and making a final purchase. Thereafter, the cycle begins anew. Many sites are becoming increasingly powerful by allowing their users to engage in such activities to allow them to sort, rank, and define existing media and each other (e.g., associations. com, AOL charomoms, or eBay, etc.).
To leverage (leveraging) the emergence of this group intelligence and value offered by networked communities, services can become successful by combining opinions with a sales method that creates one-stop-shop (one-stop-shop) for obtaining purchase recommendations. One challenge comes with the need to create a moving inventory of community spaces that reflects user personality, behavior, and habits. Conventional methods only accept input items entered by the user.
Summary of The Invention
Filtering content using a learning mechanism is described herein. When a request to search for content within a community is received, a search is performed to find the content at one or more nodes of the community. Filtering information received from the one or more nodes based on the user's personal information using a learning mechanism. A search result is generated based on the filtered information.
Brief Description of Drawings
The present invention is illustrated by way of example and is not limited by the figures of the accompanying drawings, in which like references indicate similar elements.
FIG. 1A is a block diagram illustrating a computer network that may be used in one embodiment of the invention.
FIG. 1B is a block diagram illustrating a peer-to-peer network that may be used with one embodiment of the invention.
FIG. 2 is a block diagram illustrating a computer system that may be used in one embodiment of the invention.
Fig. 3A to 3D show block diagrams illustrating embodiments of a multi-level hierarchical search and filtering process.
FIG. 4 shows a block diagram illustrating a data presentation format according to one embodiment.
Fig. 5A and 5B show block diagrams illustrating a user interface according to another embodiment.
FIG. 6 is a flow chart illustrating one embodiment of a filtering process.
Fig. 7 is a flow chart illustrating another embodiment of a filtering process.
FIG. 8 is a flow chart illustrating yet another embodiment of a filtering process.
FIG. 9 shows a user interface that may be used with embodiments of the invention.
FIGS. 10A and 10B show user interfaces that may be used to display one or more ends in a community.
FIG. 11 shows another user interface that may be used with one embodiment of the invention.
FIG. 12 shows yet another user interface that may be used with one embodiment of the invention.
Detailed Description
In the following description, numerous details are set forth to provide a more thorough explanation of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention.
Some portions of the detailed descriptions which follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. And, in general, an algorithm is here, and generally, considered to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or the like, refer to the action and processes of a computer system, or similar data processing device, that manipulate and transform data represented as physical, such as electronic, quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The present invention also relates to apparatus for performing the operations herein. An apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may also be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), Random Access Memories (RAMs) such as any type of disk including Dynamic Random Access Memories (DRAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the method. The structure for a variety of these systems will appear from the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
A machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes read only memory ("ROM"); random access memory ("RAM"); a magnetic disk storage medium; an optical storage medium; a flash memory device; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.); and so on.
Accordingly, embodiments of the present invention are described herein to enable users to easily find people with similar interests or with similar content in a community network space. According to one embodiment, a level-of-detail (LOD) algorithm is applied to identify user space in the browsable hierarchy. Learning algorithms, such as genetic algorithms or neural network algorithms, are introduced to allow the user to easily specify what results he/she likes and what results the user dislikes. In one embodiment, a ranking mechanism is used, such as a "thumb-up" ranking. By applying a learning algorithm to a set of search features, a new list of search hits is provided, the search being learned from simple user input. As searches become more focused, more parameters may be used in the learning algorithm. Over time, the search may become more appropriate to the user's interests, while, when new levels of parameters are used for the search, the search may become more granular. In particular embodiments, the search can be applied to the multimedia domain-e.g., music-to allow for the ordering of music, receiving and generating suggestions, and making personal broadcasts.
FIG. 1A is a schematic diagram of a network of computer systems in which a hierarchical search using a learning mechanism according to one embodiment of the present invention may be performed. As shown in FIG. 1, network 100 includes a number of client computer systems coupled together by the Internet 122. It will be understood that the term "internet" refers to a multi-network. These multiple networks may use various protocols for exchanging information-e.g., TCP/IP, ATM, SNA, SDI, etc. The physical connections of the internet and the protocols and communication procedures of the internet are well known to those skilled in the art. It will also be appreciated that such a system may be implemented within an intranet within an organization.
Access to the internet 122 is typically provided by Internet Service Providers (ISPs), such as ISP124 and ISP 126. Users at client systems, such as client computer systems 102, 104, 118, and 120, typically gain access to the internet through internet service providers, such as ISPs 124 and 126. Accessing the internet may facilitate transferring information (e.g., mail, text files, media files, etc.) between two or more digital processing systems, such as client computer systems 102, 104, 118, and 120 and/or web server system 128. For example, one or more of the client computer systems 102, 104, 118, and 120 and/or the Web server 128 may provide a file presentation (e.g., a Web page) to another one or more of the client computer systems 102, 104, 118, and 120 and/or the Web server 128. For example, in one embodiment of the invention, one or more of the client computer systems 102, 104, 118, and 120 may request access to a file that may be stored at a remote location, such as the web server 128. In the case of remote storage, the data may be transferred as a file (e.g., downloaded) and then displayed (e.g., in a window of a browser) after the file is transferred. In another embodiment, the file representations may be stored locally in the client computer systems 102, 104, 118, and/or 120. In the case of local storage, the client system may retrieve and display the file through an application such as a word processing application. No network connection is required.
Web server 128 typically includes at least one computer system running one or more data communication protocols, such as the world Wide Web protocol, and Web server 128 is typically coupled to the Internet 122. Alternatively, the Web server 128 may be part of an ISP, which may provide client systems with access to the Internet and/or other networks. The client computer systems 102, 104, 118, and 120 may each use appropriate Web browsing software to access data, such as HTML files (e.g., Web pages), which may be provided by the Web server 128. The browsing software may incorporate a backback interface according to one embodiment of the present invention to allow a user to retrieve a document presentation directly from a recorded location without having to browse through intermediate pages.
The ISP124 provides internet connectivity to the client computer system 102 through the modem interface 106, which modem interface 106 may be considered part of the client computer system 102. Client computer systems 102, 104, 118, and 120 may be conventional data processing systems, such as Power Mac G4 or iMac computers, available from apple computer, Inc., a "network" computer, a handheld/portable computer, a cellular telephone with data processing capabilities, a web TV system, or other types of digital processing systems (e.g., Personal Digital Assistants (PDAs)).
Likewise, the ISP126 provides Internet connectivity to the client computer systems 102, 104, 118 and 120. However, as depicted in FIG. 1, this connectivity may vary between different client computer systems (such as client computer systems 102, 104, 118, and 120). For example, as shown in FIG. 1, client computer system 104 is coupled to ISP126 through modem interface 108, while client computer systems 118 and 120 are part of a Local Area Network (LAN). Interfaces 106 and 108, such as modems 106 and 108 shown, may represent analog modems, ISDN modems, DSL modems, cable modems, wireless interfaces, or other interfaces for coupling a digital processing system (e.g., a client computer system) to another digital processing system. Client computer systems 118 and 120 are coupled to the LAN bus 112 through network interfaces 114 and 116, respectively. The network interfaces 114 and 116 may be ethernet type, Asynchronous Transfer Mode (ATM), or other types of network interfaces. The LAN bus is also coupled to a gateway digital processing system 110 that may provide firewalls and other Internet-related services for LANs. The gateway digital processing system 110, in turn, is coupled to the ISP126 to provide internet connectivity to the client computer systems 118 and 120. Gateway digital processing system 110 comprises, for example, a conventional server computer system. Likewise, for example, the Web server 128 includes a conventional server computer system.
Network 100 may include a peer-to-peer network according to some embodiments of the invention. For example, client computers 102, 104, 118, and 120 may be coupled together to form a peer-to-peer network. Peer-to-peer computing is the sharing of computer resources, such as music or movies, and services through the direct exchange of information between systems (e.g., peers). These resources and services include information exchange, processing cycles, caching, and disk storage of documents. Peer-to-peer computing leverages the advantages of existing desktop computing power and network connectivity, allowing economical clients to leverage their collective power to benefit the entire company.
In a peer-to-peer architecture, computers that traditionally have been used only as clients communicate directly between themselves and can act as both clients and servers. This reduces the load on the servers and allows them to perform certain services more efficiently. At the same time, peer-to-peer computing can reduce the need for IT (information technology) organizations to grow parts of ITs infrastructure to support certain services such as backup storage.
On the internet, peer-to-peer (P2P) is a transient internet network that lets a group of computer users with essentially the same networking program connect to each other and access files directly from each other's storage. Companies are considering the advantages of using P2P as a way for employees to share files without involving the expense in maintaining a central server, and using the advantages of P2P as a way for businesses to exchange information directly with each other.
FIG. 1B illustrates one embodiment of a peer-to-peer network environment (150) on top of a standard network, such as a wide area network or a local area network, where each device node connected to the network 40 may be logically coupled to any other node on the network 40 through the network 40 to form the peer-to-peer network environment 150. Each node may correspond to one or more physical devices. As illustrated, peer-to-peer network environment 150 includes device 5, device 10, device 15, device 20, device 25, device 30, and device 35. Each device is capable of performing peer-to-peer communications with at least other devices in network environment 150 that function as peers. Peer-to-peer communication includes sharing of computer resources and services by directly exchanging between peers (or indirectly through intermediate peers). These resources and services may include the exchange of information, processing cycles, caching, and disk storage of documents, among other examples, although not all resources and services are required to be present on each peer. Thus, each device 5, 15, 20, 25, 30, and 35 in network 150 may initiate a peer-to-peer communication session in network environment 150.
Each device also has the capability to identify the device with which the device wants to communicate or initiate a relationship with, to discover devices entering and leaving the network environment 150 (discovery process), and to determine the communication protocol being used in the network environment 150. For example, communication between peers may occur via wired and/or wireless protocols, such as TCP/IP, Bluetooth, the 802.11x protocol commonly known as WiFi (Wireless Fidelity), and WAP (Wireless application protocol) for exchanging data between mobile phone networks, as well as other communication protocols well known in the art.
Devices 5, 10, 15, 20, 25, 30, and 35 may include mobile devices such as Personal Digital Assistants (PDAs), mobile phones, portable computers, pagers, mobile music players (e.g., MP3 players), and other devices. Alternatively, devices 5, 10, 15, 20, 25, 30, and 35 may comprise typical non-mobile devices-such as desktop computers, home entertainment systems, set-top boxes, gaming systems, and other examples.
It is to be appreciated that the peer-to-peer network environment 150 illustrated in FIG. 1B is not intended to limit the configuration of a peer-to-peer network in which embodiments of the present invention may operate. For example, a server may be coupled to a peer-to-peer network to provide centralized services to peers, as will be understood by those skilled in the art. Moreover, those skilled in the art will immediately appreciate that more than one peer-to-peer network environment may be superimposed on the same underlying network structure, and that each peer may participate in multiple peer-to-peer network environments simultaneously.
Each device 5, 10, 15, 20, 25, 30 and 35 also includes relationship initiation software 50 that facilitates the generation, sharing, modification, and deletion of personal information, as will be described. The personal information may reflect the personality, behavior, habits, and personal interests of each device user. For example, the personal information for each device user may include a set of attributes-e.g., artist list, song list, favorite artist list, user rating, song rating, interest list (e.g., vegetarian, chess player, etc.), and other attributes associated with the user. Those of ordinary skill in the art will appreciate that a number of attributes may be used and the present invention is not limited to only those attributes described herein.
In one embodiment, personal information associated with a device user is automatically collected. For example, the list of user interests of the device 5 may be automatically generated by recording the web sites visited by the user, the music listened to by the user, the movies watched by the user, and so on. The personal information may be stored as public and private personal information related to the device user.
The relationship initiation software 50 on each device 5, 10, 15, 20, 25, 30 and 35 also allows the user of each device to initiate relationships and store personal information from one or more users of other devices on the network. For example, a user may seek to seek a relationship with another user to share digital content of a common interest (e.g., music, poetry, literary works, movies, pictures, etc.) by initiating a session (e.g., asking other users for restaurant recommendations, initiating an instant messaging session, etc.). Moreover, trust levels may be established and visually displayed in accordance with the type of relationship generated between users.
FIG. 2 is a block diagram of a digital processing system that may be used with one embodiment of the invention. For example, the system 200 shown in FIG. 2 may be used as a client computer system (e.g., client computer systems 102, 104, 118, and/or 120), a Web server system (e.g., Web server system 128), or a conventional server system, among others. Moreover, the digital processing system 200 may be used to perform one or more functions of an internet service provider, such as ISPs 124 and 126.
Note that while fig. 2 illustrates various components of a computer system, it is not intended to represent any particular architecture or manner of interconnecting the components as such details are not germane to the present invention. It will be appreciated that network computers, hand-held computers, cellular telephones, and other data processing systems which have fewer components or perhaps more components may also be used with the present invention. The computer system of fig. 2 may be, for example, an IBM compatible PC or an apple Macintosh computer.
As shown in FIG. 2, computer system 200, which is one form of a data processing system, includes a bus 202 coupled to a microprocessor 203 and ROM207, volatile RAM205, and non-volatile memory 206. The microprocessor 203, which may be a PowerPC G3 or PowerPC G4 microprocessor from Motorola, Inc. or IBM, is coupled to a cache 204 as shown in the example of FIG. 2. The bus 202 interconnects these various components together and also interconnects these components 203, 207, 205, and 206 to a display controller and display device 208 and also to input/output (I/O) devices 210, which may be mice, keyboards, modems, network interfaces, printers, and other devices that are well known in the art. Typically, input/output (I/O) devices 210 are coupled to the system through an input/output (I/O) controller 209. The volatile RAM205 is typically implemented as dynamic RAM (dram), which requires continuous power to refresh or maintain the data in the memory. The non-volatile memory 206 is typically a magnetic hard disk, a magneto-optical disk, an optical drive, or a DVD RAM or other type of memory system that maintains data after power is removed from the system. Typically, the non-volatile memory will also be a random access memory, although this is not required. Although FIG. 2 shows that the non-volatile memory is a local device coupled directly to the rest of the components in the data processing system, it will be appreciated that the present invention may utilize a non-volatile memory which is remote from the system, such as a network storage device which is coupled to the data processing system through a network interface such as a modem or Ethernet interface. The bus 202 may include one or more buses connected to each other through various bridges, controllers, and/or adapters as is well known in the art. In one embodiment, the I/O controller 209 includes a USB (Universal Serial bus) adapter for controlling USB peripheral devices. In a peer-to-peer community environment, the system 200 may operate as a peer with both client and server capabilities.
According to one embodiment. Lists of content such as music or movies may be collected from one or more peers in the community by using some mechanism based on a multi-level hierarchical search method of the user's personal information. The personal information of the user may include personal tastes of a particular item or event-for example, the style of the music field. Optionally, the personal information may include personal settings of the personal environment-e.g., desktop solution settings. Other information related to the individual's personal selection may also be used as personal information. Content searched and received from one or more peers may be filtered based on the user's personal information using multiple levels of granularity and learning algorithms such as genetic algorithms or neural network algorithms. For example, in a music space, the user's personal information may include, but is not limited to, at least one of the following:
● style (e.g., what the user likes or dislikes)
● interest in
● list of artists
● Song List
● favorite songs
● favorite artist
● user ratings
● review of songs
● mood of song
● beats per minute
● words of song (e.g., lyrics)
The set of information may be used as parameters to match people or to match song profiles about people when a user conducts a search.
Fig. 3A to 3D show block diagrams illustrating an embodiment of a multi-level hierarchical search and filtering process according to user personal information according to an embodiment of the present invention. Referring to FIG. 3A, when a user initiates a search, a set of parameters 301 may be used to specify how the search is to be conducted. In one embodiment, these parameters are set at run-time when the user initiates a search. Alternatively, these parameters may be collected automatically based on the user's current or previous behavior. For example, when a user of a music player (e.g., an MP3 player) begins playing a song, such as jazz, the search immediately obtains the genre of the song being played. In addition, the search may observe what the user has done in the past with respect to a genre associated with the song-e.g., classic jazz or fantasy (Acid) jazz, and so on. The search then searches among one or more peers of the community and identifies nodes from those peers that have related content and displays the nodes associated with the content in a geographic visualized (geographic visualized) manner on the display 302. Optionally, the search may further retrieve (e.g., download) at least a portion of the content from the identified node, e.g., a title or artist associated with the content. In one embodiment, display 302 is generated, which is the same as display 1000 or 1050 of FIGS. 10A and 10B. In this embodiment, referring to FIG. 3A, the search results include a plurality of clusters (clusters) of nodes having content of genres A through D. Clusters of nodes having the contents of each cluster are identified in a style associated therewith. Other genres such as 303 and 304 may also be displayed. However, genres 303 and 304 are not as close to the user's interests as genres a through D, but are somewhat related, as determined from a search of the user's personal information. Multiple clusters of genres a-D may overlap in the display to represent one or more peers in the community that are interested in one or more genres. The user may further observe by specifying an area (e.g., intersection area 305 representing those peers interested in genres a and B).
In one embodiment, the search enables a learning mechanism or algorithm, such as a genetic algorithm or a neural network algorithm, to filter the information collected from the peers. The learning mechanism may store user selections or preferences regarding searching and filtering for future reference. This information may be used by the search during subsequent searches to provide an impact on the search. The learning algorithm used in the search may automatically alter the search based on the user's past experience or behavior. Optionally, the user may specify how much a learning algorithm can alter the search, which will be described in further detail below.
In one embodiment, a user specifies how many songs that match genres A through D must be owned for a peer device for display in the community view. Alternatively, the number of songs used for matching searches may be automatically collected by searches based on the user's past preferences and behaviors. It will be appreciated that the embodiments are not limited to the parameters shown in figures 3A to 3D, and that other parameters, such as those mentioned above, may be utilised.
When a user selects an area, such as area 305, from a displayed search result, the search will conduct another search and retrieve relevant information from peers related to the selected area. When a user selects area 305, the search conducts a search and filters the information collected from peers based on the user's personal information and the user's past preferences or behaviors collected using a learning mechanism (e.g., a genetic algorithm or a neural network algorithm). The result is that the search then searches among one or more peers in the community, and identifies nodes from those peers that have relevant content (e.g., sub-styles 306), and displays the identified nodes on display 302 in a geographic visualization (geographicalized) manner, as shown in fig. 3B. In this embodiment, the clusters of nodes with sub-genres A-D are placed closely in the display, illustrating that they are similar to each other. Some regions, such as region 309, are overlapping, which indicates that more than one peer may be interested in more than one sub-genre. Additionally, clusters of other sub-genres, such as sub-genres 307 and 308, may also be further displayed away from the clusters of sub-genres A through D based in part on the user's personal information, indicating that these clusters are not as relevant as the clusters of sub-genres A through D.
Likewise, when the user selects an area from the hierarchical display shown in FIG. 3B, the search may further display detailed information of the search results, such as information 310 about the particular song artist derived from those genres or sub-genres shown in FIG. 3C. The overlap region 311 may illustrate that more than one artist may support similar genres.
As shown in FIG. 3D, when a user selects an area indicating which artist or artists the user is interested in, the search displays a result in display 302 showing one or more peers in the community that are interested in the selected artist or artists-e.g., peers 312 through 315. Referring to FIG. 3D, the lines connecting peers 312, 313, and 314 may indicate that the peers may belong to a sub-community within the community shown in display 302. A user may select any one of the peers in the display 302 to display other information about the search for the selected peer. For example, as shown in FIG. 3D, when the user selects peer 315, which is represented by a dashed circle, a sub-display area 31 may be displayed in display 316 or view 302 to show what songs are being recommended or played by this peer. In one embodiment, the sub-region 316 may be expanded to a full screen display, such as display 1100 of FIG. 11. Additionally, the sub-display area 316 may include ratings for one or more songs by the selected peer. The rating information may be displayed upon request by a user, such as those specified by parameters 310 of FIG. 3C. Also, the user may participate in rating the songs of other peers through, for example, the sub-display interface 316. A user's rating of a particular song or content may be captured by a search, which then utilizes the obtained rating information to influence subsequent searches. Other information may be displayed in further detail.
It is to be understood that the multi-level hierarchies shown in fig. 3A through 3D are not limited to only a specific number of levels. More specifically, the process involved in fig. 3A to 3D may be repeated to further obtain finer-grained content search results based on the user's personal information. It is also to be understood that the process described herein is not limited to a peer-to-peer network community. The processes may apply to a general network environment, such as a Wide Area Network (WAN) (e.g., the internet) or a Local Area Network (LAN) (e.g., an intranet within an organization).
FIG. 4 shows a block diagram illustrating a data presentation format that may be used with one embodiment of the invention. Referring to fig. 4, the data presentation format 400 may include one or more peers, such as peers 401, 402, and 403. Each of peers 01 through 403 may include one or more songs by one or more artists. When a user conducts a search, the search enables the user's personal information and learning mechanisms to filter the content received from the peers. For example, when a user searches for music under the general jazz category. The search issues a search and generates content information in the same format as data presentation format 404. Subsequently, when the user selects an area, such as artist 405, from the search results, the search may retrieve the corresponding information from branch 405 and display it in a display or community view (e.g., view 302 shown in FIG. 3D). Other data structures may also be utilized.
As described above, according to one embodiment of the present invention, the search enables a learning mechanism (e.g., a genetic algorithm or a neural network algorithm) to search according to personal information, a current behavior, or a past behavior of a user. According to one embodiment, the learning mechanism alters the scope or style of the search based on the user's past selections or behavior. Thus, a user interface is provided to allow a user to specify how much the learning mechanism can change (e.g., the user's tolerance) while conducting a search.
Fig. 5A and 5B show block diagrams illustrating a user interface that allows a user to specify to what extent the learning mechanism can alter the search, according to one embodiment of the invention. In these embodiments, all previous levels of the genome may give a gene, such as a genetic process, that the learning algorithm can handle. At some stage, the genes may mutate and cross to allow new elements to appear in the rendered view.
Genetic algorithms belong to the class of random search methods, and they operate on a population of solutions. To use a genetic algorithm, a user typically encodes a solution to his/her problem into a structure that can be stored in computer memory. This object is called a gene (or chromosome). The genetic algorithm creates a population of genes and applies staggering and variation to the individuals in the population to create new individuals. The genetic algorithm uses a variety of selection criteria so that it picks the best individual to fit (and subsequently crosses). The objective function determines the degree to which each individual excels. More detailed information about genetic algorithms can be found at the following websites:http://lancet.mit.edu/~mbwall/presentations/IntroToGAs/P002.html
in one embodiment, cursors such as cursors 504 and 506 can be used to indicate how much change the user wants. Other means, such as a circle, may be used to indicate intent. As shown in fig. 5A, the user interface may be simply a bar representing different levels (e.g., levels 501, 502, 503) of the hierarchy that the learning mechanism can change. Alternatively, as shown in FIG. 5B, a geographic view such as view 505 may be used. Other configurations may also exist.
Fig. 6 is a flow diagram illustrating a process of filtering content according to one embodiment of the invention. In one embodiment, process 600 includes receiving a request from a user to search for content in a community environment, searching for content at one or more nodes of the community, filtering information received from the one or more nodes in response to the search, wherein the filtering is performed based on personal information of the user using a first learning mechanism, and generating a first search result based on the filtered information.
Referring to FIG. 6, at block 601, a request is received from a user to search for a single content or multiple contents (e.g., music or movies) within a community environment. In one embodiment, the community is a peer-to-peer network community. The community may be a Wide Area Network (WAN), such as the internet. Alternatively, the community may be a Local Area Network (LAN), such as an intranet within an organization. At block 602, the process searches for content at one or more nodes (e.g., one or more peers within a peer-to-peer community). After receiving information from one or more nodes of the community in response to the search, the process filters the information based in part on the user's personal information at block 603.
In one embodiment, the personal information includes genre, interests, and other personal preferences mentioned above. In one embodiment, the filtering is performed using a learning mechanism such as a genetic algorithm or a neural network algorithm. The learning mechanism may record or store previous preferences or behaviors of the user with respect to similar searches or content being searched. The learning mechanism may automatically change some search rules or criteria based on information learned from the user's past actions or behaviors. Optionally, the learning mechanism may also vary the search according to the allowable limits allowed by the respective user. Such tolerance may be set by a user via a user interface (such as the user interfaces shown in fig. 5A and 5B).
In one embodiment, the filtering operation may be performed by a user node that initiated the search. In an alternative embodiment, the filtering operation may also be performed in a distributed manner by one or more nodes in the community that provide those searched content. In this embodiment, the user may initiate the search by transmitting some of their personal information or preferences to various nodes in the community. The nodes may use their own processing resources instead of the user's processing resources to perform the filtering operation. As a result, the process of finding content by a user is accelerated because the algorithm helps explore the relatively large space available for exhaustive searching. Unlike conventional methods, such as those used by Google Technology, which provide the highest hit rate to the user, the process described herein is tailored to the user's individual. Thus, network traffic is reduced since the operation is performed on a relatively small portion of information. In another embodiment, depending on the bandwidth of the various nodes (e.g., network connections between the various nodes), some content may be processed by the initiating user's node while the remaining content may be processed at the various nodes. Moreover, the filtering operation may also be performed on a central server (e.g., the Web server 128 of FIG. 1A). Other configurations may also be utilized.
Still referring to FIG. 6, at block 604, search results (e.g., a hit list) are generated based on the filtered information. The highlighted information in the search results may be in the same format as the data presentation format shown in fig. 4. At block 605, the search results are presented to the user. In one embodiment, the search results may be represented in a geographic visualization comprising one or more clusters of one or more nodes representing communities relevant to the search. The search results may be represented in the same community view as shown in fig. 9 through 12, which will be described in further detail below.
If the user is not satisfied with the results at block 607, the user may select a portion of the search results from the display or view, such as by circling the area of interest to the user, at block 606. The above process may be repeated until the user is satisfied with the search results.
According to one embodiment, the search for content is initiated by a user of the node, as described above. According to another embodiment, the search may be performed automatically based on the current or past behavior of the user. For example, on a portable device such as a CD player, the search and filtering process may be performed automatically. The selection of the relevant parameters can be preset by the search and gradually adapted by a learning mechanism, such as a genetic algorithm or a neural network algorithm. During the search, the search may change the search parameters. For example, when a user selects certain genres, artists, and songs, the learning process may provide new elements. Alternatively, the user's listening pattern may be used to match his current behavior.
Fig. 7 is a flow diagram illustrating a process of filtering content according to one embodiment of the invention. In one embodiment, the process 700 includes determining an event implemented by a user, automatically searching for content in the community environment based on the user's current behavior with respect to the event, and presenting search results to the user in the form of a candidate list associated with the event.
Referring to FIG. 7, at block 701, the process determines an event currently associated with the user, such as playing a song or movie. At block 702, the process automatically searches for content (e.g., other music or movies authored by the same author) in a community (e.g., a peer-to-peer network community) based on the user's current behavior with respect to the event. At block 703, the search results, e.g., a displayed list of photo albums, are presented to the user in the form of a selection list associated with the event. The search results may be filtered based on the user's personal information through a mechanism that uses the learning mechanism described above.
At block 704, a selection of one or more candidates in the list is received, and at block 705, in response to the selection, the process displays one or more selectable clusters representing at least one of the one or more nodes associated with the selected one or more candidates (e.g., those nodes that are currently recommending the content of the selected cluster). At block 706, a selection of a node of the one or more clusters is received and at block 707, the process displays information published by the selected node. The information displayed may be a portion of the personal information of the selected node, including, for example, favorites lists recommended by the respective node. The displayed information may be displayed in the same manner as shown in fig. 9.
It will be appreciated that the search is not limited to content on those nodes in the current community. According to one embodiment, content outside the current community can be searched. For example, when a user initiates a search for particular content, such as jazz, which is popular in new orleans but not heard in san francisco. Thus, when a community user in san Francisco initiates a search for Jazz in san Francisco, the current community around san Francisco may not have enough information to provide to the search. According to one embodiment of the invention, the search may span the current community and discover new nodes around the new orleans, and form a new community with those newly discovered nodes or peers. Thereafter, the contents of those nodes may be shared by the newly created community.
FIG. 8 is a flow diagram illustrating a process of searching and filtering content according to one embodiment of the invention. In one embodiment, process 800 includes receiving a request from a user to search for content in a network environment, discovering one or more nodes within the network environment to form a community, one or more nodes associated with the content, and displaying search results having one or more clusters representing the one or more nodes associated with the content.
Referring to FIG. 8, at block 801, a request is received to search for single content or multiple content within a community. At block 802, the process determines whether there are existing communities related to the searched content. If there is an existing community, at block 803, the process identifies one or more nodes within the existing community and searches for content in the identified nodes. If, at block 804, the information received from the identified nodes of the existing community is insufficient, or alternatively, if there is no existing community related to the searched content, then at block 805, the process discovers one or more nodes related to the searched content to form a new community.
In one embodiment, the process enables genetic algorithms based on the gene and LOD (grade of fineness) method. Genes and LODs define what will be displayed. The nodes may be chosen based on the current learning state and the LOD being used. According to one embodiment, a certain threshold may be specified for each level that determines how much data is to be displayed. This is similar to those definitions of how many hits a user would like to see in a search. For example, for the highest level, there may be 100 nodes and for the second level (e.g., artist level), there may be 1000 songs, and so on. Individual users may want to specify how dense the search results are visualized. Additionally, the user may want to specify how many information (e.g., related but somewhat off) hits to display. In one embodiment, the user may enter this information through a Graphical User Interface (GUI). Alternatively, threshold information may be automatically collected based on past experiences of the user.
Still referring to FIG. 8, at block 806, the process filters the information received from the nodes based on the user's personal information using a learning mechanism (e.g., a genetic algorithm or a neural network algorithm). At block 807, search results are generated based on the filtered information and displayed in a geographic visualization manner in the same manner as shown in FIGS. 9-11 and 3A-3D at block 808 as described above. The displayed search results may include one or more clusters representing one or more genres or nodes associated with the content.
FIG. 9 shows a user interface for an embodiment of the invention. For example, interface 900 may be a Graphical User Interface (GUI) of a multimedia player (e.g., a music player) executing on a peer of the P2P community (e.g., peers 102, 104, 118, or 120 of fig. 1A). The program with the user interface 900 may be stored in a memory of the peer, such as the non-volatile memory 206 of the peer 200 shown in fig. 2. User interface 900 may be displayed on a display device (e.g., display device 208) when the program is executed by a processor (e.g., processor 203).
Referring to FIG. 9, in one embodiment, interface 900 includes a playlist 901 referred to therein as a Jukebox (Jukebox). Within the display window of interface 900, a list of songs is displayed. All titles that are not in the local peer system display their provenance to the right of the interface 900, e.g., marker 905. These songs may be shared with or downloaded from other peers through a network interface on a network, such as IO interface 210 of system 200. Songs that are not in the present system may be stored in the memory of the respective peer. Alternatively, they may be stored in a central server hosting the community, such as Web server 128. As a result, a device having interface 900 may be used as a conventional standalone player, community listening environment, or mini-player station.
Additionally, according to one embodiment of the invention, interface 900 includes one or more play controls 906 to directly control the song or songs being played. Moreover, according to an alternative embodiment, interface 900 includes one or more friends (e.g., buddies) such as buddy 902-. According to one embodiment, selecting one of the plurality of buddies may display information about the selected buddy, which will be described in further detail below. Other information may also be included as would be apparent to one of ordinary skill in the art. According to one embodiment, the listed list of songs may be collected and filtered within the community through a multi-level hierarchical search method based on the user's personal information using a learning mechanism, which will be described in further detail below.
Finding new options is often a task performed on the local PC. It is desirable to allow a user to explore a community while being mobile and socially active. According to one embodiment, when listening to music, users can imagine their mood and see the quality of peers they can participate in.
FIG. 10A illustrates a user interface that may be used to display one or more peers in a community in a geographic visualization manner according to one embodiment of the invention. For example, when a user of a peer is listening to a song in his/her playlist (such as the one shown in FIG. 9), the user may want to display where those songs that are not in the user's present system come from. The user may invoke the user interface 1000 to display those peers in the community. According to one embodiment, this view may be used to find other people or an expert with the same interests to obtain some recommended content (e.g., music), for example.
The community view 1000 shows three groups of interest to a user, such as Classic Jazz (Classic Jazz), illusion Jazz (Acid Jazz) and texano (Techno). Surrounding users automatically appear near the group that best describes their respective interests. This type of view is also known as Affinity Visualization. In this way, a user can view the composition of surrounding users, request information for each user, identify groups in which they are interested, and automatically create playlists of content available in the viewed community. According to one embodiment, the automatically accumulated playlist includes a set of in-community content collected from a multi-level hierarchical search method of personal information of a user using a learning mechanism, which will be described in further detail below.
For the definition of the term "surrounding" used above, some physical proximity can serve as a natural boundary and provide the potential for a "hot spot" like a service in a limited area, such as a college campus or a cafe. However, the techniques described herein are not limited to confined areas. They can be applied to a large area and can be extended to virtual communities on the internet. According to one embodiment, the groups shown in interface 1000 can be freely arranged on the display by a user through, for example, a drag and drop operation.
Referring to fig. 10A, user interface 1000 may include one or more groups of peers, such as groups 1001, 1002, and 1003 having the same interests and styles. For example, group 1001 is composed of those peers such as peers 1008 and 1009 that are interested in classical jazz, while groups 1002 and 1003 are composed of those peers that are interested in hallucinogenic jazz and taconol, respectively. One peer may be interested in more than one group. It will be appreciated that groups 1001 through 1003 may be formed based on other information (e.g., the artist of the song, etc.).
Additionally, when a corresponding peer (e.g., peer 1009) is selected, the user interface 1000 may display the name 1004 of the current peer hosting the interface 1000. Name 1004 may be the user's real name. Optionally, the name 1004 may also be an alias that is specific to the user. A user or a peer may have multiple aliases corresponding to real names. These aliases can be used to communicate with other peers without revealing the true identity of the peer. A peer may use one alias in one community and another alias in another community.
Also, according to one embodiment, interface 1000 includes a buddy tab 405, which when selected will display a buddy list. Interface 1000 may also include an Advice (ADVISE) tab 1006 that when selected displays a list of content (e.g., a list of songs) provided by the current peer. Interface 1000 may also include a playlist (PLAY LIST) tab 1007 that when selected displays a current playlist of multimedia content. Other elements may be included as would be apparent to one of ordinary skill in the art.
It will be appreciated that the user interface 1000 is not limited to the configuration shown in FIG. 10A, and other types of user interfaces, such as the user interface 1050 shown in FIG. 10B, may be utilized. In this embodiment, a picture of the corresponding peer may be used to identify the peer. It will be appreciated that other symbols (e.g., icons or bitmaps) may also be used to display peers.
FIG. 11 shows a user interface that may be used with one embodiment of the invention. For example, when the user of the current peer selects suggestion tag 1006 from interface 1000 of FIG. 10A, user interface 1100 may be used to display a list of songs that the current peer is recommending. The recommended song list may be collected and filtered in the community through a multi-level hierarchical search method based on the user's personal information using a learning mechanism, which will be described in further detail below.
The traditional way to obtain recommendations is through friends and trusted people. Successful service requires the use of community dynamic web pages that can enhance publication availability. Some individuals found in a community view may recommend new avenues to interested users, which in turn may create new playlists from the newly obtained avenues.
Referring to FIG. 11, similar to user interface 900 of FIG. 9, user interface 1100 also includes buddies 1101 through 1103, as well as buddy list tab 1104, suggestion tab 1105, playlist tab 1106, etc. displayed within the interface so that the user may toggle back and forth between different windows or interfaces. In addition, user interface 1100 may also include a play control 1107 to control any one of the songs listed. Other elements may also be included.
In addition to querying the remaining peers within the community, a user of a peer may actively walk out and invite other peers to collaborate with the user to share their content. FIG. 12 shows a user interface 1200 with which a user may invite other peers to participate in a particular session through a control 1201, according to one embodiment. In addition, the user may send suggestions to friends or talk to friends via instant message 1202. Other communication mechanisms may also be utilized.
Thus, techniques for searching and filtering information in a community have been described. In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of the invention as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.