SYSTEM AND METHOD FOR TARGETED RECOMMENDATIONS USING
SOCIAL GAMING NETWORKS
BACKGROUND OF THE INVENTION
[0001] Online multi-player services for video games such as the XBOX LIVE® service (Microsoft Corporation, Redmond, WA) allow gamers anywhere in the world to play with and against each other. Online multi-player services enable users to interact with each other within the gaming service.
[0002] Electronic commerce systems strive to connect a user to items and/or services likely to be of interest to the user. For example, an electronic commerce system may present recommendations, suggestions, related items and/or services, or the like to the user. The user may also be shown contextual advertisements similar to the item or service being viewed.
[0003] These electronic commerce systems generally use make recommendations based on the user's buying/viewing history, the clustering of purchases made by others at the site, recommendations made by strangers to the user, and the like. However, these legacy recommendation techniques do not leverage the unique information available in the environment of an online multi-player gaming service that captures aspects of the natural social network developed within the online multi-player gaming service. The art of targeted recommendations may be improved by leveraging this unique information about the relationships of like minded users.
SUMMARY OF THE INVENTION
[0004] The disclosed methods and systems leverage the preferences of users in an on-line multiplayer gaming environment and the natural social-networking relationships among those users to provide recommendations, such as e-commerce recommendations. To illustrate, a first user and a second user may connect to an on-line multiplayer gaming environment. Once connected, the users may interact with the gaming environment and/or each other within the gaming environment.
[0005] Activity that indicates a relationship between a first user and second user may be tracked. The activity may be indicative of an interaction between the first user and the second user within the on-line multiplayer gaming environment. For example, the first user and the second user may have played a game together, may have listed each other as
friends within the gaming environment, may have participated in a common on-line chat within the gaming environment, or the like. The users may transfer game data to each other, may play the same instance of the same game, may transfer text, audio or video communications with each other, or the like.
[0006] An e-commerce preference of the second user may be received. The e- commerce preference may be associated with a product and/or service that the second user has purchased and/or used. For example, the e-commerce preference may be associated with a game that the second user regularly plays within the gaming environment.
[0007] The activity between the first and second user as well as the e-commence preference of the second user may be used to determine a recommendation for the first user. The recommendation may be sent to the first user in a format compatible with an access device of the first user. For example, the access device may include a gaming console and the recommendation may include a link to a recommended product, such as a downloadable game within the gaming environment.
[0008] Because the first user and the second user may have an established relationship within the natural social network of an on-line multiplayer gaming environment, it is more likely that they have common interests, hobbies, beliefs, values, etc. Thus, it is more likely that a recommendation based on the preferences of a second user will be more relevant to the first user and more effective at connecting the first user with a desired product and/or service.
[0009] The foregoing is a summary and thus contains, by necessity, simplifications, generalizations and omissions of detail. Those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The systems, methods, and computer readable media for making recommendations to users of an online multi-player gaming service via a computerized gaming environment based on that user's behavior and social networks in accordance with this specification are further described with reference to the accompanying drawings in which:
[0011] FIG. 1 illustrates an example system for providing a targeted recommendation to a user based a using a social online-multiplayer gaming network.
[0012] FIG. 2 illustrates an example system for providing a targeted recommendation to a user based a using a social online-multiplayer gaming network.
[0013] FIG. 3 illustrates an example operational procedure for providing a targeted recommendation to a user based a using a social online-multiplayer gaming network.
[0014] FIG. 4 is a block diagram of an exemplary computer network environment suitable for providing a targeted recommendation to a user based a using a social online- multiplayer gaming network.
[0015] FIG. 5 is a block diagram illustrating an example gaming console that may be incorporated into the computer network environment.
[0016] FIG. 6 is a block diagram of an example computing environment that may be incorporated into the computer network environment.
[0017] FIG. 7 illustrates a block diagram of one embodiment of a processor.
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
[0018] Certain specific details are set forth in the following description and figures to provide a thorough understanding of various embodiments. Those of ordinary skill in the relevant art will understand that they can practice other embodiments without one or more of the details described below. While various methods are described with reference to steps and sequences in the following disclosure, the description as such is for providing a clear implementation of embodiments of the invention, and the steps and sequences of steps should not be taken as required. FIGs. 1, 2 and 4-7 illustrate operating environments in which operating procedures may be performed. FIG. 3 depicts example operating procedures.
[0019] FIG. 1 illustrates using data in social networks within an online multi- player gaming environment 100 to make recommendations 122. The system comprises a computing network 108 which links a gaming server 102, e-commerce server 104, recommendation server 106, a first user's access device 112, and a second user's access device 116. The gaming server 102, e-commerce server 104 and recommendation server 106 may exist on one physical computational device or a plurality of computational devices. Likewise, the online-multi-player gaming environment may comprise a single computing server or a plurality of such servers that are networked together.
[0020] An access device 112, 114 is a computing device which a user 110, 114 may use to connect to an online multi-player gaming environment 100. This may comprise
a dedicated video game console, a general purpose computer which is configured to play games online, a portable digital media player which is configured to play simple games, a cellular telephone or personal data assistant which is configured to play simple games, or the like. Through the access device 112, 116, a user 110, 114 is able to access the online multi-player gaming environment lOOand engage in activities thereon.
[0021] The online multi-player gaming environment 100 is an environment that comprises services that enable users to interact with one another. For example, a user may play a game with or against another user, chat with another user via audio, video and text (both in real-time and asynchronously), post to a message board, view audio or video, and otherwise participate in the services offered by the service. As a result of users interacting via the environment, social networks may be formed. A social network is a social structure made of nodes (which are generally individuals or organizations) that are tied by one or more specific types of interdependency, such as values, visions, idea, financial exchange, friends, kinship, dislike, conflict, trade, and web links. These network connections may be both explicit, such as when two users add each other to a list of "friends" kept by the server, or implicit, such as when two users post to the same message board, though do not explicitly direct their messages at each other.
[0022] A component of an online multi-player gaming environment may be an e- commerce server 104. This provides the functionality that allows a user to search for, learn about, and purchase an item. The item may be an entire game, additional content for a game like a new map on which to play, video content, music, and the like. Included in the functionality of purchasing an item is the functionality of interfacing with financial institutions to transfer funds to pay for a purchase. The e-commerce server may be a web server separate from the online multi-player gaming environment.
[0023] Another component of an online multi-player gaming environment may be a gaming server 102. This gaming sever may allow a user to find other users playing the same game, establish an instance of the game with each other, and to enable the mutual play of the game. The gaming server may also track such things as a user's high score, the best users in a game, tournament play, and a user's record against another user. In one embodiment, the gaming server assists a user in finding other users to play a game with, initializes the game according to the chosen parameters, and then monitors all communication between players while the game occurs. In another embodiment, the gaming server assists a user in finding other users to play a game with, initializes the game
according to the chosen parameters, and then the users communicate independent of the game server during game play.
[0024] An e-commerce activity or preference of a second user may comprise an item the second user has searched for, an item the second user has viewed the details of, an item the second user has rated, an item the second user has read reviews of and an item the second user has purchased. Data indicative of the first user's online activity may comprise a game that the first user plays, a video that the first user watches, a content that the first user purchases, a service that the first user uses, and a preferred language of the first user. Data indicative of a second user's preference may comprise a game that the second user plays, a video that the second user watches, a content that the second user purchases, a service that the second user uses, and a preferred language of the second user.
[0025] A recommendation server 106 may take both data indicative of a first user's online activity 118 drawn from the first user's access device 112 as well as data indicative of a second user's preference 120 drawn from a second user's access device 116 to determine a recommendation 112 which is then sent to the first user. The recommendation server takes this data and from it determines a recommendation which comprises an item offered by the service in which the first user is likely to be interested. The recommendation may comprise a friend to add to a friends list, a video to watch, a song to hear, a game to play, a competition in which to engage, a group to which to subscribe, and an opponent to play a game against. For example, the recommendation server may take the first user's friends list, and data that many of the users on that friends list have downloaded a new game to make a recommendation of that new game to the first user.
[0026] FIG. 2 illustrates an example system for providing a targeted recommendation to a user based a using a social online-multiplayer gaming environment. Recommendation server 200 can be implemented on a general purpose computing device, or on a plurality of general purpose computing devices which are networked together. The server may comprise memory that stores a first data of a first user's activity while using the online multi-player gaming environment. That data may be indicative of a relationship between the first user and a second user. The memory may also store a second data that may be indicative of a preference of the second user. The server may further comprise a processor that may determine a recommendation based on the first data and the second data and send that recommendation to the first user.
[0027] There exists with the recommendation server 200, which may be a component of an online multi-player gaming environment, a bi-directional communication link with a first user's access device 202. This device may comprise a gaming console, a cellular telephone, a personal data assistant, a general purpose computer, and a portable digital music player that is capable of playing simple games.
[0028] While interacting with the online multi-playing gaming environment, the user will convey behavioral data which is collected by the behavioral data collection component 204. This behavioral data may be the entirety of the information conveyed by the first user to the environment, such as which sections of the environment the user views, which videos the user watches, and which games the user plays. The behavioral data may also be e-commerce behavior.
[0029] The behavioral data is then sent from the behavioral data collection component to the behavioral data cleansing and aggregation component 206. This component may determine which portion of the data is valuable in making a recommendation, and pass only that data along. For instance, in one embodiment, it may not be useful in making a recommendation to know how much time the user has spent viewing a particular section of the environment, only that the user has viewed that section. In such a case, the behavioral data cleansing and aggregation component would pass along from that data the information about which sections the user viewed, but not how long the user spent viewing each section.
[0030] The behavioral data cleansing and aggregation component then sends the cleaned data to a data analytics and inference engine 214. The engine takes this information, along with information from a user database 208, an item database 210 and a games database to assign relative weights to each item in the item database, where the relative weight represents the likelihood that the first user will be interested in the item. The user database 208 may comprise a collection of users, noting which ones have relationships with the first user and the nature of such relationship, as well as preferences of each user regarding items. The item database 210 may comprise a collection of items offered by the recommendation server, such as a game, a video, a song, a user to befriend, and supplemental content to a game, as well as information that describes each item, such as a title, descriptive text, and a preview. The games database may comprise a list of games that may be played on the online multi-player gaming environment, and also games that may be downloaded to an access device and played independent of the environment.
[0031] The data analytics and reference engine 214 then sends its weighted results to a recommendation component 216. The recommendation component takes that information, along with the user database 208, the item database 210 and the games database 212 and may use that information to determine a recommended item to return to the first user via the first user access device 202. In one embodiment, the recommendation component may return to the first user the item which the first user is most likely to desire. In another embodiment, the recommendation component may return to the first user a plurality of items which comprise those items that the user is likely to be interested in. For example, the recommendation may comprise a link to purchase the item, descriptive text about the item, a title for the item, a preview of the item, reviews of the item, and where appropriate, the item itself.
[0032] FIG. 3 illustrates an example operational flow for providing a targeted recommendation to a user based a using a social online-multiplayer gaming network. Those skilled in the art will note that the disclosed process is illustrative and that different implementations are contemplated.
[0033] At 300 the process flow begins. The process may be triggered in response to a determination that a first user is using the online-multiplayer gaming service, for example.
[0034] At 302, activity of the first user within an online multiplayer gaming environment may be tracked. The activity may include logging into the online multiplayer gaming environment selecting aspects of a game to play, such as game maps and/or levels to play. The activity may include selecting characteristics that modify game play such as music, game options, difficulty levels, and the like. The activity may include operations that interact with other users of the online multiplayer gaming environment. For example, the activity may include online chatting, collaborative game play, message postings, and the like.
[0035] The activity may be indicative of a relationship between the first user and a second user. For example, the first and second user may play each other in an online match. The first and second user may chat with each other. The first and second user may play with other users in common. The first and second user may have similar game options and/or difficulty levels. The first and second user may be part of the same online grouping or team.
[0036] In an embodiment, the activity may include playing games that the first and second user play with or against each other. The activity may include audio, video and
text communications directly between the first user and the second user. The activity may include interactions with mutual friends. The activity may include presenting videos, music, message boards, etc. that are common to both the first user and the second user.
[0037] The tracking may include storing data about the activity in a database. The storing may include filtering the data about the activity such that the data is indicative of an interaction between the first user and the second user.
[0038] The interaction between the first user and the second user could comprise an explicit interaction. For example, the two users may add each other to their respective friends lists, may play a game with or against each other, may post to the same thread on a message board, and/or may have a direct conversation with each other, such as over instant messaging, audio, and/or video chat. The interaction between the first user and the second user could also be implicit of a relationship. For example, they could share a mutual friend, have played the same game, watched the same video, log in from the same time zone, share a default language preference, or rated something the same level.
[0039] The interaction between the first user and the second may occur in realtime, such as during an audio or video chat session, or playing a game together, or asynchronously, such as when the first user posts to a message board while the second user is not using the environment, and the second user later responds on that message board while the first user is not using the environment.
[0040] At 304, first data that is indicative of a preference of the second user may be received, for example, at the recommendation engine.. In an embodiment, the first data comprises a game that the second user plays, a video that the second user watches, a content that the second user purchases, a service that the second user uses, and a preferred language of the second user. Additionally, the preference of the second user may also comprise preferences as manifested by any of gaming activities of the second user within the gaming environment, e-commerce activities of the second user within the gaming environment, e-commerce activities of the second user outside of gaming the environment, and social activities of the second user within the environment.
[0041] A preference of the second user may be explicit. Such an explicit preference may comprise answering a survey, rating a product, message board post, video, game or user, or voting for or against something in a poll. A preference of the second user may also be implicit. Such an implicit preference may comprise playing a specific game, playing a specific game often, viewing content, and spending a large portion of time on a specific portion of the environment.
[0042] A preference of the second user may originate in the gaming system. Such a preference that originates in the gaming system may comprise downloading a map for a game, playing a game against a particular user, and playing a game. A preference of the second user may also originate outside the gaming system. Such a preference that originates outside the gaming system may comprise searching for, and purchasing a product from an e-commerce website.
[0043] At 306, a recommendation based on the first data and the activity may be determined. The recommendation may suggest a course of action for the first user. For example, the recommendation may recommend a friend to add to a friends list, a game to play, a competition in which to engage, a group to which to subscribe, and an opponent to play a game against.
[0044] The online multi-player gaming environment may determine a plurality of recommendations suitable for the first user. The recommendation presented to the user may be selected as the most relevant of the determined recommendations.
[0045] In an embodiment, determining the recommendation may include receiving a data indicative of a preference of the first user and basing the recommendation on the preference of the first user. The preferences of the first user may help provide better results, like where the first user has shown a strong preference away from obtaining new game maps for games the user possesses.
[0046] Furthermore, in an embodiment, the recommendation may be determined determining the recommendation based on any of a characteristic of a social network of the first user, a behavior of a third user connected to the first user via the second user, and a characteristic of the first user's gaming environment, or the like. The additional data about the first user may be help provide better results.
[0047] The recommendation may be determined based on the communications capabilities of an access device associated with the first user. The access device could comprise a gaming console, a cellular telephone, a personal data assistant, a general purpose computer, and a portable digital music player. For example, where the first user is using an portable digital music player that has the capability to play simple games, it may be preferable to make the recommendation either a song or a simple game - things that can be used with the portable digital music player.
[0048] In an embodiment, the recommendation could comprise a suggestion for a course of action for the first user. This course of action could be to visit a message board
with content that might be of interest to the first user, or to use the service at a certain time, when users of a similar skill level at a game frequently play that game.
[0049] In an embodiment, determining the recommendation may be based on any of a characteristic of a social network of the first user, a behavior of a third user connected to the first user via the second user, and a characteristic of the first user's gaming environment
[0050] In one embodiment, determining the recommendation comprises determining the recommendation based on a characteristic of a social network of the second user. The characteristic of a social network of the second user may comprise any of a quantity of friends associated with the second user, feedback from other users about the second user, behavior of friends of the second user, and behavior of friends of the second user's friends.
[0051] In one embodiment, this operation also includes receiving a request for the recommendation from the first user. The first user may click on a link that indicates that the user wishes to see which game maps are recommended to that user, or when viewing such a map may click on a link to display similar maps that the user might like. In both of those instances, such action comprises a request by the first user to receive a recommendation that is sent to the online multi-player gaming environment.
[0052] The recommendation system may employ an information filtering algorithm to determine the recommendation based on the activity and the first data about the preferences of the second user. The information filtering algorithm may include collaborative filtering methods that coordinate multiple inputs from multiple sources to formulate a recommendation. For example, the information filtering algorithm may be a slope-one algorithm.
[0053] At 308, the recommendation may be sent to the first user. The recommendation may include a descriptive object. The descriptive object may be selected to be compatible with the communications capabilities of the first user's access device. For example, the descriptive object may include descriptive text, price, title, length, an image of the recommendation, a preview of the recommendation, a rating of the quality level of the recommendation, a rating of the age-appropriateness of the recommendation, or the like.
[0054] The recommendation may include additional content. For example, where a song is recommended, a short sample of the song may be included in the recommendation. The recommendation may further include a descriptive object containing
the text that describes the song, genre information, artist information, the song name, a photograph of the artist or album from which the song is drawn, the length of the song, a sample of an accompanying music video to the song, and other such information.
[0055] The descriptive object may be selected based on the compatibility of the first user's access device. For example, the first user's access device may include a gaming console, a cellular telephone, a personal data assistant, a general purpose computer, and a portable digital music player. To illustrate, where the first user is using an portable digital music player that has the capability to play audio files, the descriptive object might include towards audio information. Similarly, where the first user's access device has limited communications bandwidth, the selected descriptive object may have a complementary small storage size. In an embodiment, the recommendation may be sent to the first user responsive to a request from the first user for the recommendation. The first user may not wish to receive unsolicited recommendations, but may welcome one when he or she initiates the process.
[0056] In an embodiment, the recommendation may include a link to a product. For example, the link may be a hyperlink in accordance with the hypertext markup language (HTML), extensible markup language (XML), or the like. The link may facilitate a purchase of a product and/or service in accordance with the recommendation.
[0057] FIG. 4 is a diagram of an example computer network that may include aspects of media reliability. Computers 400a-400e may host various computing objects such as games or other applications. Although the physical environment shows the connected devices as computers, such illustration is merely for explanation and may comprise various digital devices and processors such as PDAs, game consoles, cellular telephones, etc. Moreover, communications network 460 may itself comprise a number of computers, servers and network devices such as routers and the like.
[0058] There are a variety of systems, components, and network configurations that support distributed computing environments. For example, computing systems may be connected together by wired or wireless systems, by local networks or widely distributed networks. Currently, many of such networks are coupled to the Internet, which provides the infrastructure for widely distributed computing and may encompass many different networks. Aspects of various embodiments could be usable to distribute computer-readable instructions, code fragments, applications, and the like, to various distributed computing devices.
[0059] An example of a known network configuration is the Microsoft Xbox® networking service. Microsoft Xbox® consoles support home network connections to a service called Xbox LIVE®. Xbox LIVE® is an online network developed by Microsoft that enables Xbox® game systems to play with or against other Xbox® users over the Internet or other network. The service allows players to communicate verbally, maintains scoreboards, etc. The connection allows for multi-player Internet contact.
[0060] The network infrastructure enables a host of network topologies such as client/server, peer-to-peer, or hybrid architectures. The client is a member of a class or group that uses the services of another class or group to which it is not related. Thus, in computing, a client may be a process (i.e., a set of instructions or tasks) that requests a service provided by another program. The client process may utilize the requested service without having to know any working details about the other program or the service itself. In a client/server architecture, particularly a networked system, a client is usually a computer that accesses shared network resources provided by another computer (i.e., a server). A server may be a remote computer system accessible over a remote network such as, for example, the Internet. The client process may be active in a first computer system, and the server process may be active in a second computer system, communicating with one another over a communications medium, thus providing distributed functionality and allowing multiple clients to take advantage of the information-gathering capabilities of the server.
[0061] Clients and servers may communicate with one another using the functionality provided by a protocol layer. For example, Hypertext- Transfer Protocol (HTTP) is a common protocol that is used in conjunction with the World Wide Web (WWW). A computer network address such as a Uniform Resource Locator (URL) or an Internet Protocol (IP) address may be used to identify the server or client computers to each other. Communication among computing devices may be provided over a communications medium. In particular, the client and server may be operatively coupled to one another by way of TCP/IP connections for high-capacity communication.
[0062] In general, the computer network may comprise both server devices and client devices deployed in a network environment (in a peer-to-peer environment devices may be both clients and servers). Communications network 460 may be a LAN, WAN, intranet or the Internet, or any combination thereof that facilitates communication among a number of computing devices 400a-400e. Moreover, communication network 460 may comprise wireless, wired or a combination of wireless and wired connections. Additionally,
the computer network may comprise a distributed computing environment. In such an environment, a computing task may be spread over a number of computing devices that are addressable elements in a computer network.
[0063] According to an embodiment, communication network 460 may host a network service 450 that is accessible from the plurality of computers 400a-400e. The network service 450 may gather information and track users of computers 400a-400e to provide computing services for the users of service 450.
[0064] FIG.5 is a block diagram of an example game console via which the above techniques may be implemented. In general, the processor 500 is one type of computing device or system and is exemplary of a computing device or system that can be used with such techniques. In the example scenario, the processor 500 comprises a game console, such as an XBOX® game console for example. Media content played on or read by a game console 500 may include, but is not limited to, game content and such non-game content as movie content, music content, audio content, video content, video conferencing content, and/or digital video disk (DVD) content. The game content can also include, e.g., data and media relating to vehicles, characters, weapons, spells, levels, updated statistics, or other such graphically displayable or game usable information that applies to any particular game to be played on a game console that is generally known to user/players of game consoles. The media content can include any game content that can optionally be combined with non-game content.
[0065] Game console 500 has a central processing unit (CPU) 501 having a level 1 (Ll) cache 502, a level 2 (L2) cache 504, and a flash ROM (Read-only Memory) 506. The level 1 cache 502 and level 2 cache 504 temporarily store data and hence reduce the number of memory access cycles, thereby improving processing speed and throughput. The flash ROM 506 can store executable code that is loaded during an initial phase of a boot process when the game console 500 is initially powered. Alternatively, the executable code that is loaded during the initial boot phase can be stored in a FLASH memory device (not shown). Further, ROM 506 can be located separate from CPU 501. Game console 500 can, optionally, be a multi-processor system; for example game console 500 can have three processors 501, 503, and 505, where processors 503 and 505 have similar or identical components to processor 501.
[0066] A graphics processing unit (GPU) 508 and a video encoder/video codec (coder/decoder) 514 form a video processing pipeline for high speed and high resolution graphics processing. Data is carried from the graphics processing unit 508 to the video
encoder/video codec 514 via a bus. The video processing pipeline outputs data to an A/V (audio/video) port 540 for transmission to a television or other display device. A memory controller 510 is connected to the GPU 508 and CPU 501 to facilitate processor access to various types of memory 512, such as, but not limited to, a RAM (Random Access Memory).
[0067] Processor 500 may include an I/O controller 520, a system management controller 522, an audio processing unit 523, a network interface controller 524, a first USB host controller 526, a second USB controller 528 and a front panel I/O subassembly 530 that may be implemented on a module 518. The USB controllers 526 and 528 serve as hosts for peripheral controllers 542(l)-842(2), a wireless adapter 548, and an external memory unit 546 (e.g., flash memory, external CD/DVD ROM drive, removable media, etc.). The network interface 524 and/or wireless adapter 548 provide access to a network (e.g., the Internet, home network, etc.) and may be any of a wide variety of various wired or wireless interface components including an Ethernet card, a modem, a Bluetooth module, a cable modem, and the like.
[0068] System memory 543 may store application data that is loaded during the boot process. A media drive 544 may comprise a DVD/CD drive, hard drive, or other removable media drive, etc. The media drive 544 may be internal or external to the game console 500. When media drive 544 is a drive or reader for removable media (such as removable optical disks, or flash cartridges), then media drive 544 is an example of an interface onto which (or into which) media are mountable for reading. The media drive 544 may access the application data 544 for execution, playback, etc. by game console 500. The media drive 544 may be connected to the I/O controller 520 via a bus, such as a Serial ATA bus or other high speed connection (e.g., IEEE 1394). While media drive 544 may generally refer to various storage embodiments (e.g., hard disk, removable optical disk drive, etc.), game console 500 may specifically include a hard disk 552, which can be used to store game data, application data, or other types of data.
[0069] The system management controller 522 may provide a variety of service functions related to assuring availability of the game console 500. The audio processing unit 523 and an audio codec 532 may form a corresponding audio processing pipeline with high fidelity, 3D, surround, and stereo audio processing according to aspects of the present subject matter described herein. A communication link may carry audio data between the audio processing unit 523 and the audio codec 526. The audio processing pipeline outputs
data to the A/V port 540 for reproduction by an external audio player or device having audio capabilities.
[0070] The front panel I/O subassembly 530 supports the functionality of the power button 550 and the eject button 552, as well as any LEDs (light emitting diodes) or other indicators exposed on the outer surface of the game console 500. A system power supply module 536 may provide power to the components of the game console 500. A fan 538 may cool the circuitry within the game console 500.
[0071] The interconnection between the CPU 501, GPU 508, memory controller 510, and various other components within the game console 500 may be via one or more buses, including serial and parallel buses, a memory bus, a peripheral bus, and a processor or local bus using any of a variety of bus architectures.
[0072] When the game console 500 is powered on or rebooted, application data can be loaded from the system memory 543 into memory 512 and/or caches 502, 504 and executed on the CPU 501. The application can present a graphical user interface that provides a consistent user experience when navigating to different media types available on the game console 500. In operation, applications and/or other media contained within the media drive 544 may be launched or played from the media drive 544 to provide additional functionalities to the game console 500.
[0073] The game console 500 may be operated as a standalone system by simply connecting the system to a television or other display. In this standalone mode, the game console 500 may allow one or more users to interact with the system, watch movies, listen to music, and the like. However, with the integration of broadband connectivity made available through the network interface 524 or the wireless adapter 548, the game console 500 may further be operated as a participant in a larger network community.
[0074] A computer system can be roughly divided into three component groups: the hardware component, the hardware/software interface system component, and the applications programs component (also referred to as the "user component" or "software component"). In various embodiments of a computer system the hardware component may comprise the central processing unit (CPU) 521, the memory (both ROM 564 and RAM 525), the basic input/output system (BIOS) 566, and various input/output (I/O) devices such as a keyboard 540, a mouse 562, a monitor 547, and/or a printer (not shown), among other things. The hardware component comprises the basic physical infrastructure for the computer system.
[0075] FIG. 6 illustrates an exemplary system for implementing aspects of the presently disclosed subject matter, including a general purpose computing device in the form of a computer 641. Components of computer 641 may include, but are not limited to, a processing unit 659, a system memory 622, a graphics processing unit 629 (and a graphics interface 631), a video memory 630 (and a video interface 632), and a system bus 621 that couples various system components including the system memory 622 to the processing unit 659. The system bus 621 may be any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus (also known as Mezzanine bus).
[0076] Computer 641 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by computer 641, and includes both volatile and nonvolatile media, removable and non-removable media. By way of example and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes both 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, program modules or other data. Computer storage media includes, but is not limited to, random access memory (RAM), read-only memory (ROM), electronically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 641.
[0077] Communication media typically embodies 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" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other
wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.
[0078] The system memory 622 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 623 and random access memory (RAM) 660. A basic input/output system 624 (BIOS), containing the basic routines that help to transfer information between elements within computer 641, such as during start-up, is typically stored in ROM 623. RAM 660 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 659. By way of example and not limitation, Fig. 6 illustrates operating system 625, application programs 626, other program modules 627, and program data 628.
[0079] The computer 641 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only, FIG. 6 illustrates a hard disk drive 638 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 639 that reads from or writes to a removable, nonvolatile magnetic disk 654, and an optical disk drive 640 that reads from or writes to a removable, nonvolatile optical disk 653 such as a CD-ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive 638 is typically connected to the system bus 621 through a non-removable memory interface such as interface 634, and magnetic disk drive 639 and optical disk drive 640 are typically connected to the system bus 621 by a removable memory interface, such as interface 635.
[0080] The drives and their associated computer storage media discussed above and illustrated in FIG. 6 provide storage of computer readable instructions, data structures, program modules and other data for the computer 641. In FIG. 6, for example, hard disk drive 638 is illustrated as storing operating system 658, application programs 657, other program modules 656, and program data 655. Note that these components can be either the same as or different from operating system 625, application programs 626, other program modules 627, and program data 628. Operating system 658, application programs 657, other program modules 656, and program data 655 are given different numbers here to illustrate that, at a minimum, they are different copies. A user may enter commands and information into the computer 641 through input devices such as a keyboard 651 and pointing device 652, commonly referred to as a mouse, trackball or touch pad. Other input
devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 659 through a user input interface 636 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor 642 or other type of display device is also connected to the system bus 621 via an interface, such as a video interface 632. In addition to the monitor, computers may also include other peripheral output devices such as speakers 644 and printer 643, which may be connected through an output peripheral interface 633.
[0081] The computer 641 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 646. The remote computer 646 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 641, although only a memory storage device 647 has been illustrated in Fig. 6. The logical connections depicted in FIG. 6 include a local area network (LAN) 645 and a wide area network (WAN) 649, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.
[0082] When used in a LAN networking environment, the computer 641 is connected to the LAN 645 through a network interface or adapter 637. When used in a WAN networking environment, the computer 641 typically includes a modem 650 or other means for establishing communications over the WAN 649, such as the Internet. The modem 650, which may be internal or external, may be connected to the system bus 621 via the user input interface 636, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 641, or portions thereof, may be stored in the remote memory storage device. By way of example and not limitation, FIG. 6 illustrates remote application programs 648 as residing on memory device 647. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
[0083] It should be understood that the various techniques described herein may be implemented in connection with hardware or software or, where appropriate, with a combination of both. Thus, the methods and apparatus of the presently disclosed subject matter, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium wherein, when the program code is loaded
into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the presently disclosed subject matter. In the case of program code execution on programmable computers, the computing device generally includes a processor, a storage medium readable by the processor (including volatile and non- volatile memory and/or storage elements), at least one input device, and at least one output device. One or more programs may implement or utilize the processes described in connection with the presently disclosed subject matter, e.g., through the use of an API, reusable controls, or the like. Such programs are preferably implemented in a high-level procedural or object oriented programming language to communicate with a computer system. However, the program(s) can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language, and may be combined with hardware implementations.
[0084] FIG. 7 illustrates an example system for providing a targeted recommendation to a user based a using a social online-multiplayer gaming environment 700. In one embodiment, a first user accesses the environment via the first user's access device 702. This device could comprise an e-commerce or advertising client capable of playing games, a dedicated gaming device, or a music or other device interface that is capable of playing games. The data transmitted during the course of this interaction between the first user and the environment is captured and stored by the behavioral data collection component 704 of the environment. The data is then sent to the behavioral data cleansing and aggregation component 706, which filters out unnecessary information to the process of determining a recommendation, transmits it to the correct databases (the user database 708, the item database 710 and the games database) as well as aggregates it to the level necessary for proper processing.
[0085] Then, the data analytics and inference engine 714 takes information about items contained in the item database 710 as well as information aggregated from the first user's behavior, as well as existing information about the first user, his or her friends, and his or her social network. This data analytics and inference engine 714 determines amongst all relevant items in the item database 710, the best recommendation for the first user, given his or her past behavior s well as the behavior of his or her friends in his social networks. For example, if all of the first user's friends have purchased a certain game's additional map and the first user has not, the likelihood of the first user purchasing that map is much higher than him or her buying an item in which no one in his or her network has show interest.
[0086] The recommendation component 716 takes the calculated relevance of each recommendable item from the data analytics and inference engine 714 and combines it with data from the user database 708, item database 710 and games database 712 in order to determine a recommendation to send to the first user. In one embodiment, this recommendation is the recommendation determined to be most helpful to the user. Along with the recommendation can be sent meta-data about the recommendation. For example, where the recommendation is a song, an image of the artist or album associated with the song, as well as text covering the song name, the artist name, the album name, the length of the song, similar artists, and a description of the song may be sent along with a link to purchase the item. This recommendation is then returned to the first user.
[0087] FIG.7 is a block diagram of an exemplary processor 700 for implementing the systems and methods disclosed herein. The processor 700 may include a processing portion 702, a memory portion 704, and an input/output portion 706. Coupling the processing portion 702, memory portion 704, and input/output portion 706 together (coupling not shown in FIG. 7) may allow communications there -between. The input/output portion 706 is capable of providing and/or receiving content over a network as described above.
[0088] The processor 700 can be implemented as a client processor and/or a server processor. In a basic configuration, the processor 700 can include at least one processing portion 702 and memory portion 704. The memory portion 704 can store any information utilized in conjunction with media reliability. Depending upon the exact configuration and type of processor, the memory portion 704 can be volatile (such as RAM) 708, non- volatile (such as ROM, flash memory, etc.) 710, or a combination thereof. The processor 700 may include both removable storage 712 and non-removable storage 714 including, but not limited to, magnetic or optical disks, tape, flash, smart cards or the like. Computer storage media, such as memory portions 704, 708, 710, 712, and 714, 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, program modules, or other data. Computer storage media include, but are not limited to, RAM, ROM, 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, universal serial bus (USB) compatible memory, smart cards, or any other medium which can be used to store the
desired information and which can be accessed by the processor 700. Any such computer storage media can be part of the processor 700.
[0089] The processor 700 can also contain communications connection(s) 720 that allow the processor 700 to communicate with other devices. Communications connection(s) 720 is an example of communication media. Communication media typically embodies 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 may include any information delivery media. Modulated data signal may compose a signal that has one or more of its 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, RF, infrared and other wireless media. The term computer readable media as used herein may include both storage media and communication media. The processor 700 also can have input device(s) 718 such as keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) 716 such as a display, speakers, printer, etc. also can be included.